GOST ALGORITHYM
Sub Materi :
1. Konsep Kerja GOST
2. Contoh Enkripsi dan Dekripsi GOST
Sub Materi :
1. Konsep Kerja GOST
ALGORITMA GOST
GOST merupakan singkatan dari Gosudarstvennyi
Standard atau sering disebut Goverment Standard.
Penemu : Warga Kebangsaan Uni Soviet
•
Memiliki jumlah proses sebanyak 32 round (putaran)
•
Menggunakan 64 bit block cipher pada setiap kali
•
Menggunakan 64 bit block cipher pada setiap kali
prosesnya dan 256 bit kunci atau 32 karakter
•
Menggunakan 8 buah S-Box yang berbeda-beda
•
Menggunakan operasi XOR dan Left Circular Shift
11 bit atau Rotate Left Shift (RLS 11 bit)
PERTEMUAN XI-XII
Proses Enkripsi :
1.
Konversi Plaintext dan Kunci ke Biner
2.
Kelompokkan Biner Kunci menjadi 8 Kelompok
Jumlah bit kunci setiap kelompok adalah 32 bit.
dimulai dari
K[0] = bit ke 32..1,
K[1] = bit ke 64..33,
...dst, sampai
K[7] = bit ke 256..225
3.
Kelompokkan plainteks menjadi 2 bagian yaitu R[0] dan L[0] dengan
jumlah tiap kelompok adalah 32
bit.
32 bit bagian kiri menjadi
menjadi R[0] dan mulai bit ke 33 sampai bit ke 64 (sebelah kanan)
menjadi L[0]. Proses penulisan bitnya dilakukan secara terbalik.
PERTEMUAN XI-XII
4. Proses Enkripsi
Proses enkripsi dilakukan sebanyak 32 round (mulai dari Round 0 s/d 31) Pseudocode untuk setiap round :
j = 0 //array bit kunci; nilai i adalah putran For i = 0 to 31
//kelompok bit plaintext L[ i ] = 32 bit L[ i ] kemudian permutasikan dengan SBox
Gabungkan biner-biner hasil permutasi SBox
RLS = Lakukan proses Rotate Left Shift dari bit gabungan sebanyak 11 bit (dari kiri ke kanan)
Aturan Penggunaan Kunci :
Round 0 s/d Round 23 K[0] ... K[7] Round 24 s/d 31 K[7] ... K[0]
Aturan Penggunaan Kunci :
Round 0 s/d Round 23 K[0] ... K[7] Round 24 s/d 31 K[7] ... K[0]
L[i+1] = Reverse L[ i ]
PERTEMUAN XI-XII
5. Proses Dekripsi :
Proses dekripsi dilakukan sebanyak 32 round (mulai dari Round 0 s/d 31) sama seperti proses enkripsi Pseudocode untuk setiap round :
j = 0 //array bit kunci; nilai i adalah putran For i = 0 to 31
//kelompok bit ciphertext L[ i ] = 32 bit L[ i ] kelompok (4 bit per kelompok), kemudian permutasikan dengan SBox
Gabungkan biner-biner hasil permutasi SBox
RLS = Lakukan proses Rotate Left Shift dari bit gabungan sebanyak 11 bit (dari kiri ke kanan)
PERTEMUAN XI-XII
TABEL SBOX METODE GOST
Cara membaca tabel Sbox :
Misalnya pecahan biner 1011 dijadikan sebagai Sbox 3, maka nilainya adalah :
1011 = 11 (dlm desimal). Maka SBOX 3 yang nilainya 11 adalah :
PERTEMUAN XI-XII
Contoh Prosess ENKRIPSI :
Plaintext = STMIK_BD
Kunci
= Algoritma_GOST_Taroni_Zebua_2017
Plaintext :
Char
S
T
M
I
K
_
B
D
Dec
83
84
77
73
75
95
66
68
Biner
01010011
01010100
01001101
01001001 01001011 01011111 01000010
01000100
Biner
01010011
01010100
01001101
01001001 01001011 01011111 01000010
01000100
Gabungan Biner Plaintext :
01010011010101000100110101001001 (kiri)
R0
01001011010111110100001001000100 (kanan)
L0
PERTEMUAN XI-XII
Contoh Prosess Konversi Kunci (256 bit atau 32 karakter atau 32 byte):
Konversi Kunci
Char
Desimal
Biner
Char
Desimal
Biner
A
65
01000001
a
97
01100001
l
108
01101100
r
114
01110010
g
103
01100111
o
111
01101111
o
111
01101111
n
110
01101110
r
114
01110010
i
105
01101001
i
105
01101001
_
95
01011111
116
01110100
90
01011010
i
105
01101001
_
95
01011111
t
116
01110100
Z
90
01011010
m
109
01101101
e
101
01100101
a
97
01100001
b
98
01100010
_
95
01011111
u
117
01110101
G
71
01000111
a
97
01100001
O
79
01001111
_
95
01011111
S
83
01010011
2
50
00110010
T
84
01010100
0
48
00110000
_
95
01011111
1
49
00110001
PERTEMUAN XI-XII
Contoh Prosess Pengelompokkan Kunci:
Biner Kunci Seluruhnya :
01000001011011000110011101101111011100100110100101110100011011010110000101
011111010001110100111101010011010101000101111101010100011000010111001001101
1110110111001101001010111110101101001100101011000100111010101100001010111110
0110010001100000011000100110111
Pengelompokkan Biner Kunci :
Cara pengelompokkan :
Ambil 32 bit pertama
Tulis binernya dari bit
32 hingga bit 1 (ditulis
terbalik
dari kanan ke
kiri
).
Demikian
untuk
kelompok
bit
seterus-nya
Mis : ambil bit 33 hingga
64 (tulis mulai dari 64 –
33)
Kunci Posisi Bit
Biner yang diambil
K[0] =
32...1
11110110111001100011011010000010
01000001011011000110011101101111011100100110100101110100011011010110000101
011111010001110100111101010011010101000101111101010100011000010111001001101
1110110111001101001010111110101101001100101011000100111010101100001010111110
0110010001100000011000100110111
Pengelompokkan Biner Kunci :
Cara pengelompokkan :
Ambil 32 bit pertama
Tulis binernya dari bit
32 hingga bit 1 (ditulis
terbalik
dari kanan ke
kiri
).
Demikian
untuk
kelompok
bit
seterus-nya
Mis : ambil bit 33 hingga
64 (tulis mulai dari 64 –
33)
Kunci Posisi Bit
Biner yang diambil
PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 0
i = 0 :
Tahap 1 : L[0] = 00100010010000101111101011010010
R[0] = 10010010101100100010101011001010 rubah ke desimal Tahap 2 : ( R[0] + K[0] ) Mod 232
R[0] = 2461149898 biner R[0] setelah di rubah ke Desimal K[0] = 4142282370 biner K[0] setelah di rubah ke Desimal Hasil = 6603432268 Mod 232
Hasil Mod = 2308464972 konversi ke biner Biner = 10001001100110000110000101001100
Tahap 3 : Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok :
Biner Kelompok
Dec
Nilai Bit SBOX
Hasil Permutasi
dengan SBOX Biner
PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 0
i = 0 :
Tahap 4 : Gabungkan biner-biner hasil penukaran dari tabel Sbox dan lakukan Rotate Left Shift 11 bit Hasil Gabungan : 01100011111111101101101100110110
Hasil RLS[0] 11 bit : 11110110110110011011001100011111
Tahap 5 : R[1] = RLS[0] XOR L[0]
L[1] = R[0] sebelum di proses
RLS[0] = 111101 10110110011011001100011111 hasil RLS R[0] L [0] = 00100010010000101111101011010010 L[0] awal
R [1] = 11010100100110110100100111001101
L[1] = R[0] sebelum di proses
L[1] = 10010010101100100010101011001010
Tahap 6 : Hasil Putaran – 0 atau pada PUTARAN – i = 0, adalah :
PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 1
i = 1 :
Tahap 1 : L[1] = 10010010101100100010101011001010
R[1] = 11010100100110110100100111001101 rubah ke desimal
Tahap 2 : ( R[1] + K[1] ) Mod 232
R[1] = 3566946765 biner R[1] setelah di rubah ke Desimal K[1] = 3056506446 biner K[1] setelah di rubah ke Desimal Hasil = 6623453211 Mod 232
Hasil Mod = 2328485915 konversi ke biner Biner = 10001010110010011110000000011011
Tahap 3 : Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok :
Biner kelompok
Dec
Nilai Bit SBOX
Hasil Permutasi
dengan SBOX Biner
PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 1
i = 1 :
Tahap 4 : Gabungkan biner-biner hasil penukaran dari tabel Sbox dan lakukan Rotate Left Shift 11 bit Hasil Gabungan : 01101000011001001011010010111110
Hasil RLS[1] 11 bit : 00100101101001011111001101000011
Tahap 5 : R[2] = RLS[1] XOR L[1]
RLS[1] = 00100101101001011111001101000011 hasil RLS R[1] L [1] = 10010010101100100010101011001010 L[1] awal
R [2] = 10110111000101111101100110001001
L[2] = R[1] sebelum di proses
L[2] = 11010100100110110100100111001101
Tahap 6 : Hasil Putaran – 1 atau pada PUTARAN – i = 1, adalah :
L[2] = 11010100100110110100100111001101 R[2] = 10110111 000101111101100110001001
Lanjutkan untuk proses PUTARAN KE-2 sampai PUTARAN KE-30
PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 31
i = 31 :
Tahap 1 : L[31] = 00001001000001110000000100000111
R[31] = 11001001000001000011010010101110 rubah ke desimal
Tahap 2 : ( R[31] + K[0] ) Mod 232
R[31] = 3372496046 biner R[30] setelah di rubah ke Desimal K[0] = 4142282370 biner K[0] setelah di rubah ke Desimal Hasil = 7514778416 Mod 232
Hasil Mod = 3219811120konversi ke biner Biner = 10111111111010100110101100110000
Tahap 3 : Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok :
Biner kelompok
Dec
Nilai Bit SBOX
Hasil Permutasi
dengan SBOX Biner
PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 31
i = 31 :
Tahap 4 : Gabungkan biner-biner hasil penukaran dari tabel Sbox dan lakukan Rotate Left Shift 11 bit Hasil Gabungan : 11001001100101101101010100010001
Hasil RLS[31] 11 bit : 10110110101010001000111001001100
Tahap 5 : R[32 = R[31] sebelum diproses
R[32] = 11001001000001000011010010101110
Tahap 6 : L[32] = RLS[31] XOR L[31]
11010010111100011111010111111101 01110101001011000010000010010011
RLS[31] = 10110110101010001000111001001100 hasil RLS R[31] L [31] = 00001001000001110000000100000111 L[31] awal
L [32] = 10111 11 1101011111000111101001011
Tahap 7 : Lakukan pembalikkan penulisan biner-biner L[31] dan R[31]
L[32] = 11010010111100011111010111111101 R[32] = 01110101001011000010000010010011
Tahap 8 : Gabungkan R[32] dan L[32]
mulai dari bit R[1], R[2]...,.R[32], L[1], L[2],...L[32]
HASIL :0111010100101100001000001001001111010010111100011111010111111101
Tahap 9 : Kelompokkan Bit Hasil 8 bit per kelompok, kemudian masing-masing kelompok bit konversi menjadi karakter. Sehingga :
CIPHERTEXT :
u, “Òñõý
PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
Ciphertext =
u, “Òñõý
Kunci : Algoritma_GOST_Taroni_Zebua_2017
Ciphertext :
Char
u
,
“
Ò
ñ
õ
ý
Dec
117
44
32
147
210
241
245
253
Biner
01110101
00101100
00100000
10010011
11010010 11110001 11110101 11111101
Gabungan Biner Ciphertext :
0111010100101100001000001001001111010010111100011111010111111101
L[0]
= 10111111101011111000111101001011
R[0]
= 11001001000001000011010010101110
Konversi kunci dan kelompokkan seperti pada proses ENKRIPSI
PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
Penggunaan Kunci pada Proses Dekripsi :
Putaran ke-0 s/d 7
=
K[0], K[1], K[2], .... , K[7]
Putaran ke-8 s/d 15
=
K[7], K[6], K[5], .... , K[0]
Putaran ke-16 s/d 23 =
K[7], K[6], K[5], .... , K[0]
Putaran ke-24 s/d 31 =
K[7], K[6], K[5], .... , K[0]
PROSES DEKRIPSI :
PUTARAN KE-0 :
L[0] =
10111111101011111000111101001011
R[0] =
11001001000001000011010010101110
Konversi ke Desimal
Tahap 2: ( R[0] + K[0] ) Mod 2
23PUTARAN KE-0 :
Tahap 1 :
L[0] =
10111111101011111000111101001011
R[0] =
11001001000001000011010010101110
Konversi ke Desimal
Tahap 2: ( R[0] + K[0] ) Mod 2
23R[0] = 3372496046 biner R[0] setelah di rubah ke Desimal K[0] = 4142282370 biner K[0] setelah di rubah ke Desimal Hasil = 7514778416 Mod 232
PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
PUTARAN – 0
i = 0 :
Tahap 3 : Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok : Hasil Biner pada Proses Tahap Ke-2 :
10111111111010100110101100110000dikelompokkan 4 bit per kelompok
Biner Kelompok
Dec
Nilai Bit SBOX
Hasil
Tahap 4 : Gabungkan biner-biner hasil penukaran dari tabel Sbox dan lakukan Rotate Left Shift 11 bit Hasil Gabungan : 11001001100101101101010100010001
PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
PUTARAN – 0
i = 0 :
Tahap 5 : R[1] = RLS[0] XOR L[0]
L[1] = R[0] sebelum di proses
L[1] =
11001001000001000011010010101110
Tahap 6 : Hasil Putaran – 0 atau pada PUTARAN – i = 0, adalah :
RLS[0] = 10110110101010001000111001001100 hasil RLS R[0] L [0] = 10111 1111010111 11000111101001011 L[0] awal
R [1] = 00001001000001110000000100000111
11001001000001000011010010101110
Tahap 6 : Hasil Putaran – 0 atau pada PUTARAN – i = 0, adalah :
PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
PUTARAN KE-1 :
Tahap 1 : L[1] = 11001001000001000011010010101110
R[1] = 00001001000001110000000100000111 Konversi ke Desimal
Tahap 2: ( R[1] + K[1] ) Mod 223
Tahap 3 : Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok :
R[1] = 151453959 biner R[0] setelah di rubah ke Desimal K[1] = 3056506446 biner K[0] setelah di rubah ke Desimal Hasil = 3207960405 Mod 232
Hasil Mod = 3207960405 konversi ke biner Biner = 10111111001101011001011101010101
Biner Dec SBOX Hasil Permutasi Biner L[1] =
R[1] = Konversi ke Desimal
Tahap 2: ( R[1] + K[1] ) Mod 223
Tahap 4 : Gabungkan biner-biner hasil penukaran dari tabel Sbox dan lakukan Rotate Left Shift 11 bit Hasil Gabungan : 11001001110110001010110111110111
Hasil RLS[1] 11 bit : 11000101011011111011111001001110 Biner
Kelompok
Dec
Nilai Bit SBOX
Hasil Permutasi
PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
PUTARAN – 1
Tahap 5 : R[2] = RLS[1] XOR L[1]
L[2] = R[1] sebelum di proses
L[2] =
00001001000001110000000100000111
RLS[1] = 110001010110111 11011111 001001110 hasil RLS R[0] L [1] = 11001001000001000011010010101110 L[1] awal
R [2] = 00001100011010111000101011100000
Tahap 6 : Hasil Putaran – 1 atau pada PUTARAN – i = 1, adalah :
L[2] = 00001001000001110000000100000111 R[2] = 00001100011010111000101011100000
Lanjutkan untuk proses PUTARAN KE-2 sampai PUTARAN KE-30
PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI:
PUTARAN – 31 i = 31 :
Tahap 1 : L[31] = 11010100100110110100100111001101
R[31] =10010010101100100010101011001010 rubah ke desimal
Tahap 2 : ( R[31] + K[0] ) Mod 232
Tahap 3 : Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok :
Biner kelompok
Dec
Nilai Bit SBOX
Hasil Permutasi
dengan SBOX Biner
R[31] = 2461149898 biner R[30] setelah di rubah ke Desimal K[0] = 4142282370 biner K[0] setelah di rubah ke Desimal Hasil = 6603432268 Mod 232
Hasil Mod = 2308464972konversi ke biner
Biner =10001001100110000110000101001100
11010100100110110100100111001101 10010010101100100010101011001010
Tahap 4 Gabungkan biner-biner hasil Tahap 3, kemudian lakukan RLS sebanyak 11 bit Gabungan : 01100011111111101101101100110110
Hasil RLS : 11110110110110011011001100011111
Biner kelompok
Dec
Nilai Bit SBOX
Hasil Permutasi
dengan SBOX Biner
PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 31
i = 31 :
Tahap 5 : R[32 = R[31] sebelum diproses
R[32] =
10010010101100100010101011001010
Tahap 6 : L[32] = RLS[31] XOR L[31]
Tahap 7 : Lakukan pembalikkan penulisan biner-biner L[31] dan R[31]
L[32] = 01001011010111110100001001000100
RLS[31] =
11110110110110011011001100011111
hasil RLS R[31] L [31] =11010100100110110100100111001101
L[31] awalL [32] =
00100010010000101111101011010010
10010010101100100010101011001010
L[32] = 01001011010111110100001001000100 R[32] = 01010011010101000100110101001001
Tahap 8 : Gabungkan R[32] dan L[32]
mulai dari bit R[1], R[2]...,.R[32], L[1], L[2],...L[32]
HASIL :0101001101010100010011010100100101001011010111110100001001000100
Tahap 9 : Kelompokkan Bit Hasil 8 bit per kelompok, kemudian masing-masing kelompok bit konversi menjadi karakter. Sehingga :