Contoh Manual Enkripsi and Dekripsi Berd

GOST ALGORITHYM

Sub Materi :
1. Konsep Kerja GOST
2. Contoh Enkripsi dan Dekripsi 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
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)
• Menggunakan modulo 232

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.
R[0] = bit[32], bit[31]......bit[1]
L[0] = bit[64], bit[63]......bit[33]

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

If i < 31 then
For i = 0 to 31
R[ i +1] = RLS[ i ] XOR L[ i ]
//kelompok bit plaintext
L[ i +1 ] = R[ i ] sebelum diproses
L[ i ] = 32 bit L[ i ]
Else
R[ i ] = 32 bit R[ i ]
R[ i +1] = R[ i ] sebelum proses
//jumlahkan R[ i ] dan L[ i ], kemudian mod 232
L[ i +1 ] = RLS[ i ] XOR L[ i ]
if i < 24 then
if j = 7 then j = 0
R[ i +1] =Reverse R[ i ]
(R[ i ] + K[ j ] ) Mod 232
L[i+1] = Reverse L[ i ]
j = j +1
Cipher = Reverse R[ i ], Reverse L[ i ]
else
Next i

j=7
Aturan Penggunaan Kunci :
(R[ i ] + K[ j ] ) Mod 232
j=j–1
Round 0 s/d Round 23  K[0] ... K[7]
End If
Round 24 s/d 31  K[7] ... K[0]
Hasil (R[ i ] + K[ j ] ) Mod 232 Pecah menjadi 8 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
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
Hasil (R[ i ] + K[ j ] ) Mod 232 Pecah menjadi 8
For i = 0 to 31
kelompok (4 bit per kelompok), kemudian

permutasikan dengan SBox
//kelompok bit ciphertext
L[ i ] = 32 bit L[ i ]
Gabungkan biner-biner hasil permutasi SBox
R[ i ] = 32 bit R[ i ]
//jumlahkan R[ i ] dan L[ i ], kemudian mod 232
RLS = Lakukan proses Rotate Left Shift dari bit
gabungan sebanyak 11 bit (dari kiri ke kanan)
if i < 8 then
(R[ i ] + K[ j ] ) Mod 232
If i < 31 then
j = j +1
R[ i +1] = RLS[ i ] XOR L[ i ]
else
L[ i +1 ] = R[ i ] sebelum diproses
j=7
Else
if j = 0 then
R[ i +1] = R[ i ] sebelum proses
j=j+7

L[ i +1 ] = RLS[ i ] XOR L[ i ]
else
j=j-1
end if
(R[ i ] + K[ j ] ) Mod 232
End If

R[ i +1] =Reverse R[ i ]
L[i+1] = Reverse L[ i ]
Cipher = Reverse R[ i ], Reverse L[ i ]
End if
Next i

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 :
Lihat baris Sbox 3, kolom 11  nilainya adalah 12 = 1100 (dlm biner)


PERTEMUAN XI-XII
Contoh Prosess ENKRIPSI :

Plaintext = STMIK_BD
Kunci
= Algoritma_GOST_Taroni_Zebua_2017
Plaintext :
Char
Dec
Biner

S
83
01010011

T
M
I
K

_
B
D
84
77
73
75
95
66
68
01010100 01001101 01001001 01001011 01011111 01000010 01000100

Gabungan Biner Plaintext :
01010011010101000100110101001001 (kiri)  R0
01001011010111110100001001000100 (kanan)  L0
L[0] = 00100010010000101111101011010010
R[0] = 10010010101100100010101011001010

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
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
T
84
01010100
7
55
00110111

PERTEMUAN XI-XII
Contoh Prosess Pengelompokkan Kunci:
Biner Kunci Seluruhnya :
01000001011011000110011101101111011100100110100101110100011011010110000101
011111010001110100111101010011010101000101111101010100011000010111001001101
1110110111001101001010111110101101001100101011000100111010101100001010111110
0110010001100000011000100110111

Pengelompokkan Biner Kunci :

Kunci
K[0] =
K[1] =
K[2] =
K[3] =
K[4] =
K[5] =
K[6] =
K[7] =

Posisi Bit
32...1
64...33
96...65
128...97
160...129
192...161
224...193
256...225

Biner yang diambil
11110110111001100011011010000010
10110110001011101001011001001110
11110010111000101111101010000110
00101010111110100010101011001010
01110110111101100100111010000110
10100110010110101111101010010110
11111010100001101010111001000110
11101100100011000000110001001100

Cara pengelompokkan :
Ambil 32 bit pertama
Tulis binernya dari bit
32 hingga bit 1 (ditulis
terbalik dari kanan ke
kiri).
Demikian
untuk
kelompok bit seterusnya
Mis : ambil bit 33 hingga
64 (tulis mulai dari 64 –
33)

PERTEMUAN XI-XII
Contoh Prosess Enkipsi :
PUTARAN – 0  i = 0 :
Tahap 1 :
Tahap 2 :

L[0] = 00100010010000101111101011010010
R[0] = 10010010101100100010101011001010

 rubah ke desimal

( 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

1000
1001
1001
1000
0110
0001
0100
1100

8
9
9
8
6
1
4
12

 S-Box(0)
 S-Box(1)
 S-Box(2)
 S-Box(3)
 S-Box(4)
 S-Box(5)
 S-Box(6)
 S-Box(7)

6
3
15
14
13
11
3
6

0110
0011
1111
1110
1101
1011
0011
0110

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]
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 :
L[1] = 10010010101100100010101011001010
R[1] = 11010100100110110100 100111001101

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

1000
1010
1100
1001
1110
0000
0001
1011

8
10
12
9
14
0
1
11

 S-Box(0)
 S-Box(1)
 S-Box(2)
 S-Box(3)
 S-Box(4)
 S-Box(5)
 S-Box(6)
 S-Box(7)

6
8
6
4
11
4
11
14

0110
1000
0110
0100
1011
0100
1011
1110

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] =
L [1] =
R [2] =

00100101101001011111001101000011
10010010101100100010101011001010 
10110111000101111101100110001001

 hasil RLS R[1]
 L[1] awal

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
INGAT ...!! Pada putaran ke 24 sampai 31, kunci yang digunakan TERBALIK URUTANNYA, yaitu
mulai dari K[7] .....K[0]

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 =
3219811120  konversi 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

1011
1111
1110
1010
0110
1011
0011
0000

11
15
14
10
6
11
3
0

 S-Box(0)
 S-Box(1)
 S-Box(2)
 S-Box(3)
 S-Box(4)
 S-Box(5)
 S-Box(6)
 S-Box(7)

12
9
9
6
13
5
1
1

1100
1001
1001
0110
1101
0101
0001
0001

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]
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
Kelompokkan Bit Hasil 8 bit per kelompok, kemudian masing-masing kelompok bit
konversi menjadi karakter. Sehingga :

Tahap 9 :

CIPHERTEXT : u,

“Òñõý

PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :

Ciphertext = u, “Òñõý
Kunci : Algoritma_GOST_Taroni_Zebua_2017
Ciphertext :
Char
Dec
Biner

u
117
01110101

,
44
00101100

32
00100000


Ò
ñ
õ
ý
147
210
241
245
253
10010011 11010010 11110001 11110101 11111101

Gabungan Biner Ciphertext :

0111010100101100001000001001001111010010111100011111010111111101
L[0]
R[0]

= 10111111101011111000111101001011
= 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
Putaran ke-8 s/d 15
Putaran ke-16 s/d 23
Putaran ke-24 s/d 31

=
=
=
=

K[0], K[1], K[2], ....
K[7], K[6], K[5], ....
K[7], K[6], K[5], ....
K[7], K[6], K[5], ....

, K[7]
, K[0]
, K[0]
, K[0]

PROSES DEKRIPSI :

PUTARAN KE-0 :
Tahap 1 : L[0] =
R[0] =

10111111101011111000111101001011
11001001000001000011010010101110  Konversi ke Desimal

Tahap 2: ( R[0] + K[0] ) Mod 223
R[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
Hasil Mod =
3219811120  konversi ke biner
Biner = 10111111111010100110101100110000

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 :
10111111111010100110101100110000  dikelompokkan 4 bit per kelompok

Biner
Dec
Kelompok Nilai Bit
1011
1111
1110
1010
0110
1011
0011
0000
Tahap 4 :

11
15
14
10
6
11
3
0

SBOX
 S-Box(0)
 S-Box(1)
 S-Box(2)
 S-Box(3)
 S-Box(4)
 S-Box(5)
 S-Box(6)
 S-Box(7)

Hasil
Permutasi
dengan SBOX
12
9
9
6
13
5
1
1

Biner
1100
1001
1001
0110
1101
0101
0001
0001

Gabungkan biner-biner hasil penukaran dari tabel Sbox dan lakukan Rotate Left Shift 11 bit
Hasil Gabungan
: 11001001100101101101010100010001
Hasil RLS[0] 11 bit : 10110110101010001000111001001100

PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
PUTARAN – 0  i = 0 :
Tahap 5 :

R[1] = RLS[0] XOR L[0]
RLS[0] = 10110110101010001000111001001100
 hasil RLS R[0]
L [0] = 10111 1111010111 11000111101001011   L[0] awal
R [1] = 00001001000001110000000100000111
L[1] = R[0] sebelum di proses

L[1] = 11001001000001000011010010101110
Tahap 6 :

Hasil Putaran – 0 atau pada PUTARAN – i = 0, adalah :
L[1] = 11001001000001000011010010101110
R[1] = 00001001000001110000000100000111

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
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

Tahap 3 :

Tahap 4 :

Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok :
Biner
Kelompok

Dec
Nilai Bit

SBOX

Hasil Permutasi
dengan SBOX

Biner

1011
1111
0011
0101
1001
0111
0101
0101

11
15
3
5
9
7
5
5

 S-Box(0)
 S-Box(1)
 S-Box(2)
 S-Box(3)
 S-Box(4)
 S-Box(5)
 S-Box(6)
 S-Box(7)

12
9
13
8
10
13
15
7

1100
1001
1101
1000
1010
1101
1111
0111

Gabungkan biner-biner hasil penukaran dari tabel Sbox dan lakukan Rotate Left Shift 11 bit
Hasil Gabungan
: 11001001110110001010110111110111
Hasil RLS[1] 11 bit : 11000101011011111011111001001110

PERTEMUAN XI-XII
Contoh Prosess DEKRIPSI :
PUTARAN – 1
Tahap 5 :

R[2] = RLS[1] XOR L[1]
RLS[1] = 110001010110111 11011111 001001110
 hasil RLS R[0]
L [1] = 11001001000001000011010010101110   L[1] awal
R [2] = 00001100011010111000101011100000
L[2] = R[1] sebelum di proses

L[2] = 00001001000001110000000100000111
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
INGAT ...!! Pada putaran ke 8 sampai 31, kunci yang digunakan TERBALIK URUTANNYA, yaitu
mulai dari K[7] .....K[0]

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
R[31] =
K[0] =
Hasil =
Hasil Mod =

2461149898  biner R[30] setelah di rubah ke Desimal
4142282370  biner K[0] setelah di rubah ke Desimal
6603432268 Mod 232
2308464972  konversi ke biner

Biner = 10001001100110000110000101001100

Tahap 3 :

Tahap 4

Kelompokkan biner hasil di atas menjadi 4 bit tiap kelompok :
Biner
kelompok

Dec
Nilai Bit

SBOX

Hasil Permutasi
dengan SBOX

Biner

1000
1001
1001
1000
0110
0001
0100
1100

8
9
9
8
6
1
4
12

 S-Box(0)
 S-Box(1)
 S-Box(2)
 S-Box(3)
 S-Box(4)
 S-Box(5)
 S-Box(6)
 S-Box(7)

6
3
15
14
13
11
3
6

0110
0011
1111
1110
1101
1011
0011
0110

Gabungkan biner-biner hasil Tahap 3, kemudian lakukan RLS sebanyak 11 bit
Gabungan : 01100011111111101101101100110110
Hasil RLS : 11110110110110011011001100011111

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]
RLS[31] = 11110110110110011011001100011111
L [31] = 11010100100110110100100111001101 
L [32] = 00100010010000101111101011010010

 hasil RLS R[31]
 L[31] awal

Tahap 7 :

Lakukan pembalikkan penulisan biner-biner L[31] dan R[31]
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 :
PLAINTEXT : STMIK_BD

Dokumen yang terkait

Analisis Komparasi Internet Financial Local Government Reporting Pada Website Resmi Kabupaten dan Kota di Jawa Timur The Comparison Analysis of Internet Financial Local Government Reporting on Official Website of Regency and City in East Java

19 819 7

ANTARA IDEALISME DAN KENYATAAN: KEBIJAKAN PENDIDIKAN TIONGHOA PERANAKAN DI SURABAYA PADA MASA PENDUDUKAN JEPANG TAHUN 1942-1945 Between Idealism and Reality: Education Policy of Chinese in Surabaya in the Japanese Era at 1942-1945)

1 29 9

Improving the Eighth Year Students' Tense Achievement and Active Participation by Giving Positive Reinforcement at SMPN 1 Silo in the 2013/2014 Academic Year

7 202 3

Improving the VIII-B Students' listening comprehension ability through note taking and partial dictation techniques at SMPN 3 Jember in the 2006/2007 Academic Year -

0 63 87

The Correlation between students vocabulary master and reading comprehension

16 145 49

The correlation intelligence quatient (IQ) and studenst achievement in learning english : a correlational study on tenth grade of man 19 jakarta

0 57 61

An analysis of moral values through the rewards and punishments on the script of The chronicles of Narnia : The Lion, the witch, and the wardrobe

1 59 47

Improping student's reading comprehension of descriptive text through textual teaching and learning (CTL)

8 140 133

The correlation between listening skill and pronunciation accuracy : a case study in the firt year of smk vocation higt school pupita bangsa ciputat school year 2005-2006

9 128 37

Transmission of Greek and Arabic Veteri

0 1 22