GOST merupakan singkatan dari “Gosudarstvennyi Standard” atau
“Government Standard”. Metoda GOST merupakan suatu algoritma block
cipher yang dikembangkan oleh seorang berkebangsaan Uni Soviet.
Algoritma ini merupakan suatu algoritma enkripsi sederhana yang
memiliki jumlah proses sebanyak 32 round (putaran) dan menggunakan 64
bit block cipher dengan 256 bit key. Metoda GOST juga menggunakan 8
buah S-Box yang berbeda-beda dan operasi XOR serta Left Circular Shift.
SEJARAH
Kelemahan & Kelebihan
key schedule-nya yang sederhana sehingga pada keadaan
tertentu menjadi titik lemahnya terhadap metoda kriptanalisis seperti
Related-key Cryptanalysis. Tetapi hal ini dapat diatasi dengan
melewatkan kunci kepada fungsi hash yang kuat secara kriptografi
seperti SHA-1, kemudian menggunakan hasil hash untuk input
inisialisasi kunci.
Kelebihan dari metoda GOST ini adalah kecepatannya yang
cukup baik, walaupun tidak secepat Blowfish tetapi lebih cepat dari
IDEA.
Komponen
Key Store Unit (KSU) menyimpan 256 bit string dengan
menggunakan 32 bit register (K0, K1, …, K7).
Dua buah 32 bit register (R1, R2).
32 bit adder modulo 232 (CM1).
Bitwise Adder XOR (CM2).
Substitusion block (S) yaitu berupa 8 buah 64 bit S-Box.
Rotasi Left shift register (R) sebanyak 11 bit.
Proses Pembentukan Kunci Proses pembentukan kunci ini memerlukan input data key dengan
panjang 256 bit atau 64 digit heksadesimal atau 32 buah karakter.
Proses ini dapat dilihat pada contoh berikut ini :
Misalkan key : „Kriptografi Metoda GOST, Rosmaya‟
1. KUNCI = 'Kriptografi Metoda GOST, Rosmaya'.
2. Ubah kunci ke bentuk biner.
Hasil konversi kunci ke bentuk biner
= (k(1), k(2), k(3), ... , k(256))
=010010110111001001101001011100000111010001101111011001110111001001
1000010110011001101001001000000100110101100101011101000110111101
1001000110000100100000010001110100111101010011010101000010110000
10000001010010011011110111001101101101011000010111100101100001
3. Kelompokkan hasil yang didapat pada K(0) - K(7)
K(0) = k( 32), ... , k( 1) = 00001110100101100100111011010010
K(1) = k( 64), ... , k( 33) = 01001110111001101111011000101110
K(2) = k( 96), ... , k( 65) = 00000100100101100110011010000110
K(3) = k(128), ... , k( 97) = 11110110001011101010011010110010
K(4) = k(160), ... , k(129) = 11100010000001001000011000100110
K(5) = k(192), ... , k(161) = 00110100001010101100101011110010
K(6) = k(224), ... , k(193) = 11001110111101100100101000000100
K(7) = k(256), ... , k(225) = 10000110100111101000011010110110
Proses Pembentukan Kunci
Proses Enkripsi Proses enkripsi dari metoda GOST memproses input data plaintext 64 bit atau
16 digit heksadesimal atau 8 karakter dengan melalui 32 tahapan iterasi (putaran).
Misalkan diambil hasil pembentukan kunci di atas dan plaintext „ENKRIPSI‟,
PROSES ENKRIPSI - PUTARAN 0
(1) PLAIN TEXT = 'ENKRIPSI'
Konversi ke biner =
0100010101001110010010110101001001001001010100000101001101001001
L(0) = 10010010110010100000101010010010
R(0) = 01001010110100100111001010100010
(2) R(0) + K(0) mod 232
R( 0) = 1255305890
K( 0) = 244731602
-------------------------------- +
Hasil = 1500037492 mod 232
= 1500037492
= 01011001011010001100000101110100
Proses Enkripsi
Proses Enkripsi
Proses Enkripsi
Proses Enkripsi
Untuk putaran ke-31, langkah 5 dan 6
agak sedikit berbeda. Langkah 5 dan 6
untuk putaran 31 adalah sebagai
berikut,
R32 = R31 sebelum dilakukan proses
L32 = L31 XOR R31
Sehingga, ciphertext yang dihasilkan
adalah
L32 : b(32), b(31), …, b(1)
R32 : a(32), a(31), …, a(1)
T = a(1), …, a(32), b(1), …, b(32)
Proses Dekripsi Proses dekripsi merupakan kebalikan dari proses enkripsi. Proses
dekripsi dari metoda GOST menggunakan algoritma yang sama dengan proses
enkripsi.
PROSES DEKRIPSI - PUTARAN 0
(1) CIPHER TEXT = '©-ñ¦k¾'
Konversi ke biner =
1010100100011110000000110001100111110001101001100110101110111110
L(0) = 01111101110101100110010110001111
R(0) = 10011000110000000111100010010101
Proses Dekripsi
Proses Dekripsi
Proses Dekripsi
Proses Dekripsi
Proses Dekripsi
Proses Dekripsi
Proses Dekripsi untuk langkah 5 dan 6 pada putaran
ke-31 adalah sebagai berikut,
R32 = R31 sebelum dilakukan proses.
L32 = R31 XOR L31.
Plaintext yang dihasilkan pada proses
dekripsi adalah,
L32 = b(32), b(31), …, b(1)
R32 = a(32), a(31), …, a(1)
P = a(1),, a(32), b(1), , b(32)
Top Related