Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
s t
U Q
R S
{ e
f :
; Q
R H
Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet lanjutan
Plaintext Ciphertext
Plaintext Ciphertext
Plaintext Ciphertext
Plaintext Ciphertext
v w
x T
U V
g s
C ,
. l
o p
Proses pengubahannya dilakukan karakter per karakter. Sebagai contoh, misalnya terdapat suatu pesan awal : Raja Salomo, maka bentuk ciphernya adalah :
ez]z~fz:,:. Hal ini dapat dilihat pada gambar 2.3 dibawah ini :
Gambar 2.3 Substitusi Mono Alphabetic
Untuk mengubahnya kembali ke bentuk awal plaintext maka dilakukan dengan cara membalik proses perubahannya berdasarkan tabel yang sudah ada.
2.4 Secure Hash Algorithm SHA
Secure Hash Algorithm SHA adalah salah satu fungsi satu arah yang dibuat oleh NIST National Institute of Standards and Technology dan digunakan bersama DSS
Digital Signature Standard. Oleh NSA National Security Agency, SHA dinyatakan sebagai standard fungsi hash satu arah. SHA didasarkan pada algoritma MD4 yang
dibuat oleh Ronald L. Rivest dari MIT. SHA disebut aman secure karena algoritma ini dirancang sedemikian rupa sehingga secara komputasi tidak mungkin menemukan
pesan yang berkoresponden dengan message digest yang diberikan. Raja Salomo
ez]z~fz:,:
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
Fungsi satu arah one-way function sering disebut juga sebagai fungsi hash, message digest, fingerprint, fungsi kompresi, dan Message Authentication Code MAC.
Fungsi ini biasanya diperlukan bila diperlukan pengambilan “sidik jari” dari suatu pesan. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik
sidik jari, fungsi ini diharapkan memiliki kemampuan yang serupa dengan sidik jari manusia, dimana “sidik jari” pesan diharapkan menunjuk ke satu pesan dan tidak
dapat menunjuk kepada pesan lainnya. Dinamakan sebagai fungsi kompresi karena biasanya, masukan fungsi satu arah ini selalu lebih besar daripada keluarannya,
sehingga seolah-olah mengalami kompresi. Namun kompresi hasil fungsi ini tidak dapat dikembalikan ke asalnya sehingga disebut sebagai fungsi satu arah. Dinamakan
sebagai message digest karena seolah-olah merupakan inti sari pesan. Namun kondisi sebenarnya tidak demikian sebab inti sari pesan seharusnya merupakan ringkasan
pesan yang masih dapat dipahami maknanya, sedangkan kondisi yang terjadi adalah kebalikannya, bahkan dengan mengetahui sidik jari ini, justru pihak-pihak yang tidak
berkepentingan tidak mengetahui pesan aslinya.Munir, 2007:35
Fungsi hash satu arah H beroperasi pada pesan M dengan panjang sembarang, dan menghasilkan keluaran h yang selalu sama panjangnya. Maka dapat
ditulis HM = h. Sebagai contoh, untuk MD5, masukan pesan bisa sembarang
panjangnya, sedangkan keluarannya selalu sepanjang 128 bit. Fungsi hash harus memiliki sifat-sifat sebagai berikut:
1. Diberikan M, untuk menghitung HM = h.
2. Diberikan h, sangat sulit atau mustahil mendapatkan M sedemikian sehingga
HM = h. 3.
Diberikan M, sangat sulit atau mustahil mendapatkan M’ sedemikian sehingga HM = HM’. Bila diperoleh pesan M’ yang semacam ini, maka akan disebut
tabrakan collision. 4.
Sangat sulit atau mustahil mendapatkan dua pesan M dan M’ sedemikian sehingga HM = HM’.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
Point ketiga berbeda dari point keempat, di mana pada point ketiga, sudah ada pesan tertentu M, kemudian mencari pesan lain M’ sedemikian sehingga HM =
HM’. Sedangkan pada point keempat, dua pesan sembarang M dan M’ yang memenuhi HM = HM’ dicari. Serangan terhadap point keempat lebih mudah dari
pada point ketiga. Karena sangat mungkin M dan M’ yang diperoleh tidak memiliki arti pada point keempat. Sedangkan serangan pada point ketiga lebih sulit karena baik
pesan M maupun pesan M’ harus memiliki arti yang diinginkan. Keberhasilan serangan terhadap point keempat tidak berarti algoritma telah dipecahkan. Namun
keberhasilan serangan terhadap point ketiga berarti berakhirnya riwayat algoritma fungsi hash.
Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 2
64
bit 2.147.483.648 gigabyte dan menghasilkan message digest yang panjangnya 160 bit. Proses tersebut dapat ditunjukkan pada Gambar 2.4 berikut ini.
Gambar 2.4 Pembuatan message digest dengan algoritma SHA
Langkah-langkah dalam pembuatan message digest secara garis besar adalah sebagai berikut:
1. Penambahan bit-bit pengganjal padding bits.
100..0
Message
K bits L x 512 bits = N x 32 bits
Padding 1 to 512 bits
Message length K mod 2
64
. . . . . .
Y Y
1
Y
q
Y
L-1
512 bits 512 bits
512 bits 512 bits
512 512
512 512
160 160
160 160
160-bits digest
CV
1
CV
q
CV
L-1
IV
H
SHA
H
SHA
H
SHA
H
SHA
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan dalam satu bit kongruen dengan 448 modulo 512. Ini berarti panjang pesan setelah
ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 ini muncul karena SHA memproses pesan dalam blok-blok yang berukuran 512. Pesan
dengan panjang 448 bit tetap ditambah dengan bit-bit pengganjal. Jika bit pesan 448 bit, maka pesan tersebut ditambahi dengan 512 bit menjadi 960 bit. Maka, panjang bit-
bit pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.
Contoh 1: Pesan asal adalah huruf A capital : “A” = 0100 0001
2
= 41
16
panjang pesan asal 8 bit
Tambahan : 1000 0000 00…….dalam biner.
Dalam bentuk hexa: 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 00000 0000 0000 0000 00 Jumlah bit tambahan adalah 440 bit. Bila tambahan 440 bit ditambahkan ke pesan
asal 8 bit, maka jumlah totalnya menjadi 448 bit. Ini disebut pula sebagai kongruen dengan 448 mod 512. Dalam contoh ini n = 1, sehingga k = 5121-64 = 448.
Untuk memenuhi syarat bahwa masukan SHA harus kelipatan 512 bit maka terdapat kekurangan sebanyak 64 bit. 64 bit ini diisi dengan panjang asli pesan yaitu 8 bit = 8
16
sehingga masukannya menjadi dalam hexa: 4180 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0008
2. Penambahan nilai panjang pesan semula.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang
pesan sekarang menjadi 512 bit perhatikan contoh 1 diatas.
3. Inisialisasi penyangga buffer pada message digest.
SHA membutuhkan 5 buah penyangga buffer yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 5 x 32 = 160 bit. Kelima penyangga ini diberi
nama A,B,C,D,E. Setiap penyangga diinisialisasi dengan niai-nilai dalam notasi Hexa sebagai berikut:
A = 67452301 B = EFCDAB89
C = 98BADCFE D = 10325476
E = C3D2E1F0
4. Pengolahan pesan dalam blok berukuran 512 bit.
Pesan kemudian dibagi menjadi L buah blok yang masing-masing panjangnya 512-bit Y
sampai Y
L-1
. Setiap blok 512 bit diproses bersama dengan penyangga menjadi keluaran 128-bit, dan ini disebut dengan proses H
SHA
. Gambaran proses H
SHA
diperlihatkan pada gambar 2.5.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
, ,
K Y
ABCDE f
ABCDE
q
←
A B
C D
...
A B
C D
+ +
+ +
MD
q
MD
q + 1
160
Y
q
512
E A
B C
D E
, ,
1
K Y
ABCDE f
ABCDE
q
←
, ,
79
K Y
ABCDE f
ABCDE
q
←
E
Gambar 2.5 Pengolahan blok 512 bit Proses H
SHA
Proses H
SHA
terdiri dari 80 buah putaran, dan masing-masing putaran menggunakan bilangan penambah K
t
, yaitu: Putaran 0
≤ t ≤ 19 K
t
= 5A827999 Putaran 20
≤ t ≤ 39 K
t
= 6ED9EBA1 Putaran 40
≤ t ≤ 59 K
t
= 8F1BBCDC Putaran 60
≤ t ≤ 79 K
t
= CA62C1D6
Pada gambar diatas, Y
q
menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MD
q
adalah nilai message digest 160-bit dari proses H
SHA
ke-q. Pada awal proses, MD
q
berisi nilai inisialisasi penyangga MD.
Setiap putaran menggunakan operasi dasar yang sama dinyatakan dengan fungsi f. Operasi dasar SHA dapat ditunjukkan pada gambar 2.6.
S
5
f
t
+ +
A B
C D
E
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
Gambar 2.6 Operasi dasar SHA dalam satu putaran fungsi f
Operasi dasar SHA yang diperlihatkan pada gambar diatas dapat ditulis dengan persamaan sebagai berikut:
a, b, c, d, e CLS
5
a + f
t
b,c,d + e + W
t
+ K
t
, a, CLS
30
b, c, d
Keterangan: a, b, c, d, e
= Lima buah peubah penyangga 32-bit berisi nilai penyangga A, B, C, D, E
t = Putaran, 0
≤ t ≤ 79
f
t
= Fungsi logika
CLS
s
= Circular left shift sebanyak s bit W
t
= Word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses
K
t
= Konstanta penambah
+ = Operasi penjumlahan modulo 2
32
Atau dapat dinyatakan dalam kode program berikut:
for t to 79 do
TEMP a5 +
f
t
b,c,d + e + Wt + K
t
S
30
W
t
K
t
+ +
A B
C D
E
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.
USU Repository © 2009
e d
d c
c b 30
b a
a TEMP
endfor
dalam hal ini, lambang “” menyatakan operasi pergeseran circular left shift.
Fungsi f
t
adalah fungsi logika yang melakuk an operasi logika bitwise. Operasi logika yang dilakukan dapat dilihat pada tabel 2.3 berikut:
Tabel 2.3 Fungsi logika f
t
pada setiap putaran Putaran
f
t
b, c, d