Algoritma Kriptografi Modified Aes 128 Bit Dan Compressed Elgamal Chapter III V
BAB 3
METODOLOGI PENELITIAN
3.1.
Pengantar
Metodologi penelitian merupakan sekumpulan proses terstruktur mengenai peraturan,
kegiatan, dan prosedur yang digunakan oleh pelaku suatu disiplin ilmu dalam
melaksanakan penelitian. (Zarlis, et al., 2015)
Untuk menyelesaikan permasalahan penelitian ini, adapun metode penelitian
yang digunakan antara lain :
a.
Metode studi kepustakaan
Penulis mempelajari teori kriptografi dan algoritma AES 128 bit, algoritma
elgamal, dan algoritma terkait lainnya melalui buku, artikel, jurnal yang
mendukung penulisan penelitian ini baik dari perpustakaan, internet ataupun
sumber-sumber yang lain.
b.
Metode analisis
Menganalisa algoritma AES 128 bit, algoritma elgamal, algoritma Elias
gamma code dan algoritma terkait lainnya agar dapat diimplementasikan
untuk enkripsi dan dekripsi data.
c.
Metode perancangan
Penulis melakukan perancangan antar muka pengguna, yaitu rancangan layar
dan menu serta pembuatan kode untuk proses enkripsi dan dekripsi data.
d.
Metode Penyelesaian Masalah
Penulis merancang algoritma kriptografi yang telah dimodifikasi dimana
algoritma ini mengkombinasikan algoritma AES 128 bit dan algoritma
elgamal.
3.2.
Waktu Penelitian
Waktu yang diperlukan untuk penelitian ini diperkirakan ±6 (enam) bulan. Dalam
penelitian ini, penulis mengumpul data-data terkait penelitian melalui pustaka baik
berupa buku, jurnal, makalah, dan data di internet.
Universitas Sumatera Utara
24
3.3.
Data yang Digunakan
Pada penelitian ini, penulis menggunakan file text dengan ukuran 100 kb, 200 kb, 300
kb, 400 kb, dan 500 kb. Dari masing-masing data akan dicatat kecepatan enkripsi dan
dekripsi, panjang kunci awal, panjang kunci sesudah enkripsi, dan perbandingan
panjang kunci sebelum dan sesudah enkripsi.
3.4.
Prosedur Penyelesaian Masalah
Untuk menyelesaikan permasalahan diatas, maka penulis membuat sebuah rancangan
yang berguna untuk mengamankan data menggunakan algoritma AES 128 bit yang
dimodifikasi pada tahapan mix columns diganti menjadi pseudo hadamard transform
yang digunakan algoritma twofish. Untuk enkripsi kunci, digunakan algoritma elgamal
dengan menggunakan algoritma kompresi Elias gamma code agar ciphertext yang
dihasilkan berukuran lebih kecil.
3.4.1.
Enkripsi
Langkah-langkah enkripsi adalah sebagai berikut :
a.
Pengirim menentukan plaintext yang akan dienkripsi.
b.
Pengirim memasukkan kunci untuk enkripsi plaintext.
c.
Tabel S-Box diacak menggunakan persamaan Wichmann-Hill.
d.
Plaintext tersebut di enciphering sebanyak 10 putaran menggunakan algoritma
AES 128 bit yang menghasilkan ciphertext dimana tahapan mix columns diganti
menjadi pseudo hadamard transform.
e.
Kunci enkripsi kemudian di enkripsi menggunakan algoritma elgamal yang
menghasilkan cipherkey.
f.
Cipherkey dikompresi menggunakan algoritma Elias gamma code.
g.
Pengirim mengirimkan ciphertext, cipherkey yang telah dikompresi kepada
penerima.
Universitas Sumatera Utara
25
Kunci AES 128 bit
Plaintext
Enkripsi
Algoritma AES
128 bit
Ciphertext
Kompresi EGC
Kunci
AES 128
bit
Algoritma
Elgamal
Cipherkey
Penerima
Gambar 3.1. Proses Enkripsi Pesan
3.4.2.
Dekripsi
Langkah-langkah dekripsi adalah sebagai berikut :
a.
Penerima melakukan dekompresi terhadap cipherkey menggunakan algoritma
Elias gamma Code.
b.
Penerima melakukan dekripsi cipherkey menggunakan algoritma elgamal yang
menghasilkan kunci dekripsi.
c.
Penerima melakukan deciphering sebanyak 10 putaran terhadap ciphertext
menggunakan algoritma AES 128 bit sehingga menghasilkan plaintext dimana
tahapan inverse mix columns diganti menjadi pseudo hadamard transform.
Universitas Sumatera Utara
26
Dekompresi EGC
Penerima
Cipherkey
Algoritma
Elgamal
Kunci AES 128 bit
Ciphertext
Dekripsi
Algoritma MAES 128 bit
Plaintext
Gambar 3.2. Proses Dekripsi Pesan
3.5.
Diagram Alir
3.5.1.
Diagram Alir Proses Ekspansi Kunci AES 128 bit
Proses ekspansi kunci berfungsi untuk menghasilkan kunci (round key) yang
digunakan pada proses enkripsi dan dekripsi. Berikut ini adalah diagram alir ekspansi
kunci algoritma AES 128 bit.
Universitas Sumatera Utara
27
Start
Input Key
(16 Byte)
Round = 0
Round = Round +1
RotWord()
SubWord()
No
RCon()
XOR Operation
Round = 10
Yes
End
Gambar 3.3. Diagram Alir Ekspansi Kunci AES 128 bit
Alur proses dari flowchart diatas dimulai dari Start, kemudian user akan
diminta untuk memasukkan key sebesar 16 byte (karakter). Terlihat pada Round 0
tidak terjadi proses apapun, key yang dimasukkan oleh user akan menjadi Round Key
untuk Round 0. Kemudian dilanjutkan dengan Round 1 sampai Round 10 dimana
proses yang terjadi pada masing-masing Round adalah RotWord, SubWord, Rcon dan
XOR Operation.
Universitas Sumatera Utara
28
3.5.2.
Diagram Alir Pembentukan Tabel S-Box
Tabel S-Box pada algoritma AES digunakan untuk proses SubBytes dan SubWord.
Proses tersebut adalah mensubstitusi Byte menggunakan tabel S-Box. Secara
sederhana, proses ini mudah untuk dibalikkan kembali ke nilai awal jika seorang
kriptanalis berhasil mendapatkan nilai setelah SubBytes dengan menggunakan tabel
inverse S-Box. Dengan melakukan pengacakan terhadap tabel S-Box menggunakan
Pseudo-Random Number Generator metode Wichmann-Hill, maka seorang kriptanalis
akan sulit mengembalikan ke nilai awal.
Start
Input S1, S2, S3
i=0; iterasi i
Hitung S1= MOD (171 * S1,
30269)
Hitung S2= MOD (172 * S2,
30307)
No
Hitung S3= MOD (170 * S3,
30323)
Hitung R= MOD (S1/30269
+ S2/30307 + S3/30323,1)
i=255
Yes
Susun tabel S-Box & RS-Box
sesuai urutan bilangan acak
End
Gambar 3.4. Diagram Alir Pembentukan tabel S-Box dan RS-Box
Universitas Sumatera Utara
29
3.5.3.
Diagram Alir Proses Enkripsi AES 128 bit
Proses enkripsi bertujuan untuk mendapat ciphertext dan sebuah pesan asli
menggunakan kunci. Berikut ini adalah diagram alir proses enkripsi algoritma AES
128 bit, dimana proses Mix Columns diganti menjadi Pseudo Hadamard Transform
agar proses enkripsi lebih efisien waktu.
Start
Input Plaintext
(16 Byte)
Round = 0
AddRoundKey()
Round = Round + 1
SubBytes()
ShiftRows()
PHT()
No
AddRoundKey()
Round = 9
Yes
SubBytes()
ShiftRows()
AddRoundKey()
End
Gambar 3.5. Diagram Alir Enkripsi AES 128 bit
Universitas Sumatera Utara
30
Dalam proses enkripsi ini, dimulai dari Start, kemudian user diminta untuk
memasukkan 16 byte (karakter) plaintext yang akan dienkripsi. Round 0 dilakukan
proses AddRoundKey(), sedangkan Round 1 sampai 9 dilakukan proses SubBytes(),
ShiftRows(), PHT(), AddRoundKey(), dan pada Round 10 dilakukan proses yang sama
kecuali PHT sehingga didapatkan Ciphertext.
3.5.4.
Diagram Alir Proses Enkripsi Elgamal
Proses enkripsi elgamal digunakan untuk mengenkripsi kunci yang digunakan
algoritma AES 128 bit.
Start
Input p, α, a
Hitung $= α a mod p
Hitung += α ,Hitung .= $,-. -
p
p
End
Gambar 3.6. Diagram Alir Enkripsi Elgamal
3.5.5.
Diagram Alir Proses Kompresi Elias Gamma Code
Proses kompresi Elias gamma code digunakan untuk kompresi bilangan bulat yang
dihasilkan ciphertext elgamal.
Universitas Sumatera Utara
31
Start
Input teks
Urutkan karakter
berdasarkan frekensi
kemunculan
Bentuk tabel kode Elias
Gamma Code
Ganti karakter pada teks
sesuai tabel kode
Generate Kode Elias Gamma
ke ASCII
Konversi kode ASCII ke
karakter
End
Gambar 3.7. Diagram Alir Kompresi Elias Gamma Code
3.5.6.
Diagram Alir Proses Dekripsi AES 128 bit
Proses dekripsi berfungsi untuk mengembalikan ciphertext ke plaintext.
Universitas Sumatera Utara
32
Start
Input Ciphertext
(16 Byte)
Round = 0
AddRoundKey()
Round = Round + 1
Inv. ShiftRows()
Inv. SubBytes()
No
AddRoundKey()
Inv. PHT()
Round = 9
Yes
Inv. ShiftRows()
Inv. SubBytes()
AddRoundKey()
End
Gambar 3.8. Diagram Alir Dekripsi AES 128 bit
Dalam proses dekripsi ini, dimulai dari Start, kemudian user diminta untuk
memasukkan 16 byte (karakter) ciphertext yang akan di dekripsi. Round 0 dilakukan
proses AddRoundKey(), sedangkan Round 1 sampai 9 dilakukan proses Inv.
ShiftRows(), Inv. SubBytes(), AddRoundKey(), Inv. PHT() dan pada Round 10
dilakukan proses yang sama kecuali Inv. PHT sehingga didapatkan Plaintext.
Universitas Sumatera Utara
33
3.5.7. Diagram Alir Proses Dekripsi Elgamal
Proses dekripsi elgamal digunakan untuk mendekripsi kunci yang digunakan untuk
dekripsi AES 128 bit.
Start
Input p, α, $, a
Hitung + /−1−
Hitung
-=..
/
(+ ) −1 m
/
Konversi ke karakter
End
Gambar 3.9. Diagram Alir Dekripsi Elgamal
3.5.8.
Diagram Alir Proses Dekompresi Elias Gamma Code
Proses dekompresi Elias gamma code digunakan untuk dekompresi bilangan bulat
yang dihasilkan ciphertext elgamal.
Universitas Sumatera Utara
34
Start
Input teks
Generate isi file ke binary
Kembalikan ke string bit
semula
Ganti string bit sesuai tabel
kode elias gamma
End
Gambar 3.10. Diagram Alir Dekompresi Elias Gamma Code
3.6.
Analisis Enkripsi
Untuk melakukan enkripsi, plaintext dienkripsi menggunakan algoritma AES 128 bit
modifikasi
menghasilkan
Ciphertext,
kemudian
kunci
enkripsi
di
enkripsi
menggunakan algoritma elgamal yang menghasilkan cipherkey. Cipherkey dikompresi
menggunakan metode Elias gamma code. Ciphertext dan cipherkey dikirimkan kepada
penerima pesan.
3.6.1.
Analisis Enkripsi Algoritma AES 128 bit Modifikasi
Misalkan dipilih plaintext yang akan dienkripsi “Ilmu Kriptografi” dengan
menggunakan kunci “KeamananKomputer”, untuk enkripsi kunci digunakan
algoritma elgamal dengan bilangan prima aman p = 2579, elemen primitif α = 2, dan
bilangan acak a = 765. Tahap pertama adalah membangkitkan 256 bilangan acak
menggunakan metode Wichmann-Hill untuk menghasilkan tabel S-Box yang baru.
Metode Wichmann-Hill membutuhkan 3 buah bilangan yang disebut seed, yaitu S1,
S2, dan S3. Nilai dari bilangan tersebut dihasilkan dari kode ASCII kunci yang
digunakan untuk enkripsi.
Universitas Sumatera Utara
35
Tabel 3.1. Kode ASCII Kunci
Karakter
K
e
a
m
a
n
a
n
K
o
m
p
u
t
e
r
Kode ASCII (Dec)
75
101
97
109
97
110
97
110
75
111
109
112
117
116
101
114
Kode ASCII (Hex)
4B
65
61
6D
61
6E
61
6E
4B
6F
6D
70
75
74
65
72
S1 = K+e+a+m+a = 75+101+97+109+97 = 479
S2 = n+a+n+K+o = 110+97+110+75+111 = 503
S3 = m+p+u+t+e = 109+112+117+116+101 = 555
Kemudian dibangkitkan bilangan acak sebanyak 256 buah, bilangan acak yang
terbentuk ditulis sesuai urutan dari 0 sampai 255 dalam bilangan heksadesimal dan
dibentuk menjadi tabel S-Box dan Reverse S-Box.
Universitas Sumatera Utara
36
Tabel 3.2. Tabel S-Box
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
1F
A7
B4
68
22
FB
6B
55
57
39
D6
9B
E4
05
92
E0
1
B0
3D
08
97
9D
21
26
DA
7A
CC
88
19
A9
DD
AB
28
2
C6
F4
89
CF
5E
2A
90
C4
D5
10
AD
D1
03
5F
5B
54
3
65
7E
E3
9E
4F
F6
DC
C5
85
4E
EC
2B
B2
53
6C
A4
4
AF
BD
17
67
DB
E8
8A
09
23
F2
5C
8D
CB
72
E5
BC
5
1E
9C
37
3B
B5
29
4A
4D
94
BF
25
ED
82
E7
18
42
6
40
C3
7D
EB
D4
84
F9
F3
8C
45
76
99
41
BE
C8
30
7
34
CA
DF
32
66
3A
E2
70
43
04
56
FE
1A
91
52
A2
8
B3
BB
2F
46
E6
06
F5
77
61
FC
96
AE
78
44
A8
B7
9
81
64
7B
79
A0
A1
DE
38
0A
3C
D9
62
8F
02
8B
AA
A
F8
B6
6D
B1
13
95
48
60
74
D0
3E
00
CD
73
FF
8E
B
AC
6E
01
63
15
BA
FA
B8
24
3F
12
87
93
58
A3
0C
C
6F
B9
31
80
FD
47
2C
C0
E9
9A
E1
C1
36
2D
7C
F7
D
1D
35
98
1C
83
59
0D
27
EA
50
D3
6A
5A
14
EE
7F
E
4C
49
20
5D
2E
A6
EF
D2
0F
D7
07
A5
71
69
F1
D8
F
33
75
11
C7
51
0E
C9
CE
4B
1B
16
F0
9F
86
0B
C2
Tabel 3.3. Tabel Reverse S-Box
0
1
2
3
4
5
6
7
8
9
A
C
D
E
F
0
AB
B2
9D
2C
79
0D
85
EA
12
47
98
B
FE
BF
D6
F5
E8
1
29
F2
BA
A4
DD
B4
FA
42
5E
1B
7C
F9
D3
D0
50
00
2
E2
15
04
48
B8
5A
16
D7
1F
55
25
3B
C6
CD
E4
82
3
6F
C2
73
F0
70
D1
CC
52
97
09
75
53
99
11
AA
B9
4
60
6C
5F
78
8D
69
83
C5
A6
E1
56
F8
E0
57
39
34
5
D9
F4
7E
3D
2F
07
7A
08
BD
D5
DC
2E
4A
E3
24
2D
6
A7
88
9B
B3
91
30
74
43
03
ED
DB
06
3E
A2
B1
C0
7
77
EC
4D
AD
A8
F1
6A
87
8C
93
18
92
CE
62
31
DF
8
C3
90
5C
D4
65
38
FD
BB
1A
22
46
9E
68
4B
AF
9C
9
26
7D
0E
BC
58
A5
8A
13
D2
6B
C9
0B
51
14
33
FC
A
94
95
7F
BE
3F
EB
E5
01
8E
1C
9F
1E
B0
2A
8B
40
B
C
D
E
F
10
C7
A9
0F
FB
A3
CB
2B
CA
EE
3C
FF
E7
76
49
80
61
DA
32
67
02
27
64
0C
21
54
37
28
4E
86
A1
20
0A
84
35
8F
F3
E9
5D
CF
B7
6E
EF
45
A0
C1
F6
9A
C8
66
B5
71
17
D8
B6
81
4C
44
63
05
4F
19
36
3A
89
41
AC
1D
5B
C4
6D
F7
96
DE
7B
59
23
72
E6
AE
Tahap berikutnya adalah key expansion yang berfungsi untuk mendapatkan kunci
yang digunakan untuk 10 putaran pada algoritma AES 128 bit.
Universitas Sumatera Utara
37
Tabel 3.4. Key Expansion
Round-0
4B
65
61
6D
61
6E
61
6E
4B
6F
6D
70
75
74
65
72
Round-1
2C
E1
BE
57
4D
8F
DF
39
06
E0
B2
49
73
94
D7
3B
Round-2
8E
C6
95
65
C3
49
4A
5C
C5
A9
F8
15
B6
3D
2F
2E
Round-3
D9
92
CE
9F
1A
DB
84
C3
DF
72
7C
D6
69
4F
53
F8
Round-4
6D
A9
85
DA
77
72
01
19
A8
00
7D
CF
C1
4F
2E
37
Round-5
C1
F2
40
63
B6
80
41
7A
1E
80
3C
B5
DF
CF
12
82
Round-6
16
FA
6F
1C
A0
7A
2E
66
BE
FA
12
D3
61
35
00
51
Round-7
A0
E5
F3
DF
00
9F
DD
B9
BE
65
CF
6A
DF
50
CF
3B
Round-8
3E
12
D8
A0
3E
8D
05
19
80
E8
CA
73
5F
B8
05
48
Round-9
01
E9
FB
E2
3F
64
FE
FB
BF
8C
34
88
E0
34
31
C0
Round-10 78
97
94
AE
47
F3
6A
55
F8
7F
5E
DD
18
4B
6F
1D
Kemudian dilakukan enkripsi menggunakan algoritma AES 128 bit yang telah
dimodifikasi dengan urutan langkah sebagai berikut.
Round 0 dilakukan AddRoundKey, yaitu proses XOR antara plaintext dengan key.
State awal didapatkan dengan mengonversi masing-masing karakter plaintext ke kode
ASCII.
Tabel 3.5. Kode ASCII Plaintext
Karakter
I
l
m
u
[spasi]
K
r
i
p
t
o
g
r
a
f
i
Kode ASCII (Dec)
73
108
109
117
32
75
114
105
112
116
111
103
114
97
102
105
Kode ASCII (Hex)
49
6C
6D
75
20
4B
72
69
70
74
6F
67
72
61
66
69
Universitas Sumatera Utara
38
Plaintext = 49 6C 6D 75 20 4B 72 69 70 74 6F 67 72 61 66 69
R0 Key = 4B 65 61 6D 61 6E 61 6E 4B 6F 6D 70 75 74 65 72
XOR
----------------------------------------------------State
= 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B
Round 1 sampai 9 dilakukan proses SubBytes, ShiftRows, PHT, dan AddRoundKey.
Round 1 SubBytes
State
= 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B
SB
= B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19
Round 1 ShiftRows
State
= B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19
SR
= B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA
Round 1 PHT
State
= B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA
PHT
= DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E
Round 1 AddRoundKey
State
= DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E
R1 Key = 2C E1 BE 57 4D 8F DF 39 06 E0 B2 49 73 94 D7 3B
xor
----------------------------------------------------State
= F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15
Round 2 SubBytes
State
= F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15
SB
= C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21
Round 2 ShiftRows
State
= C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21
SR
= C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96
Round 2 PHT
State
= C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96
PHT
= AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A
Round 2 AddRoundKey
State
= AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A
R2 Key = 8E C6 95 65 C3 49 4A 5C C5 A9 F8 15 B6 3D 2F 2E
xor
----------------------------------------------------State
= 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54
Universitas Sumatera Utara
39
Round 3 SubBytes
State
= 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54
SB
= 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5
Round 3 ShiftRows
State
= 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5
SR
= 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61
Round 3 PHT
State
= 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61
PHT
= 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4
Round 3 AddRoundKey
State
= 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4
R3 Key = D9 92 CE 9F 1A DB 84 C3 DF 72 7C D6 69 4F 53 F8
xor
----------------------------------------------------State
= 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C
Round 4 SubBytes
State
= 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C
SB
= 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03
Round 4 ShiftRows
State
= 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03
SR
= 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1
Round 4 PHT
State
= 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1
PHT
= 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C
Round 4 AddRoundKey
State
= 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C
R4 Key = 6D A9 85 DA 77 72 01 19 A8 00 7D CF C1 4F 2E 37
xor
----------------------------------------------------State
= F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B
Round 5 SubBytes
State
= F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B
SB
= 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19
Round 5 ShiftRows
Universitas Sumatera Utara
40
State
= 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19
SR
= 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0
Round 5 PHT
State
= 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0
PHT
= FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A
Round 5 AddRoundKey
State
= FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A
R5 Key = C1 F2 40 63 B6 80 41 7A 1E 80 3C B5 DF CF 12 82
xor
----------------------------------------------------State
= 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8
Round 6 SubBytes
State
= 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8
SB
= 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B
Round 6 ShiftRows
State
= 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B
SR
= 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11
Round 6 PHT
State
= 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11
PHT
= E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D
Round 6 AddRoundKey
State
= E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D
R6 Key = 16 FA 6F 1C A0 7A 2E 66 BE FA 12 D3 61 35 00 51
xor
----------------------------------------------------State
= F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C
Round 7 SubBytes
State
= F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C
SB
= 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4
Round 7 ShiftRows
State
= 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4
SR
= 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F
Round 7 PHT
State
= 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F
Universitas Sumatera Utara
41
PHT
= 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60
Round 7 AddRoundKey
State
= 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60
R7 Key = A0 E5 F3 DF 00 9F DD B9 BE 65 CF 6A DF 50 CF 3B
xor
----------------------------------------------------State
= 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B
Round 8 SubBytes
State
= 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B
SB
= 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED
Round 8 ShiftRows
State
= 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED
SR
= 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5
Round 8 PHT
State
= 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5
PHT
= 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F
Round 8 AddRoundKey
State
= 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F
R8 Key = 3E 12 D8 A0 3E 8D 05 19 80 E8 CA 73 5F B8 05 48
xor
----------------------------------------------------State
= 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07
Round 9 SubBytes
State
= 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07
SB
= 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55
Round 9 ShiftRows
State
= 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55
SR
= 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43
Round 9 PHT
State
= 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43
PHT
= 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08
Round 9 AddRoundKey
State
= 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08
R9 Key = 01 E9 FB E2 3F 64 FE FB BF 8C 34 88 E0 34 31 C0
xor
-----------------------------------------------------
Universitas Sumatera Utara
42
State
= 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8
Pada Round 10, tidak dilakukan tahapan PHT sehingga pada round ini hanya
dilakukan SubBytes, ShiftRows dan AddRoundKey yang menghasilkan Ciphertext.
Round 10 SubBytes
State
= 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8
SB
= 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9
Round 10 ShiftRows
State
= 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9
SR
= 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45
Round 10 AddRoundKey
State
= 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45
R10 Key= 78 97 94 AE 47 F3 6A 55 F8 7F 5E DD 18 4B 6F 1D
xor
----------------------------------------------------State
= F9 2D E0 47 83 2D FC 51 EF F0 AF B1 AF F0 2A 58
State diatas dikonversi ke karakter sehingga didapatkan Ciphertext “ù-àGƒüQï卿¯ ð*X”.
3.6.2.
Analisis Enkripsi Kunci Algoritma Elgamal
Kunci “KeamananKomputer” dienkripsi menggunakan algoritma elgamal dengan
bilangan prima aman p = 2579, elemen primitif α = 2, dan bilangan rahasia a = 765.
Penerima pesan menghitung nilai $ = αa mod p
$=2765
2579 = 949
Kemudian nilai (p, α, $) = (2579, 2,
949) dikirimkan kepada pengirim pesan,
penerima pesan menyimpan bilangan rahasia a dan tidak boleh diketahui siapapun
termasuk pengirim pesan. Karakter kunci dikonversi ke kode ASCII, kemudian
dibangkitkan bilangan acak rahasia ki dengan range nilai k є {0, 1, ..., p-2}. Kelebihan
utama dari algoritma elgamal adalah plaintext yang sama akan menghasilkan
ciphertext yang berbeda karena adanya proses pembangkitan bilangan acak rahasia ki.
Pengirim pesan kemudian mengenkripsi kunci dengan menghitung nilai (+-, .-)
dengan menggunakan persamaan berikut ini.
+i = α ,-
p
Universitas Sumatera Utara
43
.i = $,-. -
p
Tabel 3.6. Proses Enkripsi Kunci Algoritma Elgamal
Karakter
K
e
a
m
a
n
a
n
K
o
m
p
u
t
e
r
ASCII (Dec)
mi
75
101
97
109
97
110
97
110
75
111
109
112
117
116
101
114
Pasangan (+i :.i)
ki
2497
1937
598
1400
1180
2520
2260
2315
249
2530
784
1965
1529
1792
2108
44
+i = 2,-
2579
.i = 949,-.
1714
1247
557
2115
956
2109
902
2207
1007
993
895
1363
265
1989
1814
380
-
2579
1642
266
119
1273
2139
1754
1824
2079
1433
555
882
2390
184
421
1792
2508
merupakan hasil enkripsi dari algoritma elgamal sehingga
didapatkan cipherkey berikut.
1714:1642:1247:266:557:119:2115:1273:956:2139:2109:1754:902:1824:2207:2079
:1007:1433:993:555:895:882:1363:2390:265:184:1989:421:1814:1792:380:2508
Perbandingan ukuran key sebelum dienkripsi dengan sesudah dienkripsi dihitung
menggunakan persamaan berikut ini.
146
:-/ℎ
METODOLOGI PENELITIAN
3.1.
Pengantar
Metodologi penelitian merupakan sekumpulan proses terstruktur mengenai peraturan,
kegiatan, dan prosedur yang digunakan oleh pelaku suatu disiplin ilmu dalam
melaksanakan penelitian. (Zarlis, et al., 2015)
Untuk menyelesaikan permasalahan penelitian ini, adapun metode penelitian
yang digunakan antara lain :
a.
Metode studi kepustakaan
Penulis mempelajari teori kriptografi dan algoritma AES 128 bit, algoritma
elgamal, dan algoritma terkait lainnya melalui buku, artikel, jurnal yang
mendukung penulisan penelitian ini baik dari perpustakaan, internet ataupun
sumber-sumber yang lain.
b.
Metode analisis
Menganalisa algoritma AES 128 bit, algoritma elgamal, algoritma Elias
gamma code dan algoritma terkait lainnya agar dapat diimplementasikan
untuk enkripsi dan dekripsi data.
c.
Metode perancangan
Penulis melakukan perancangan antar muka pengguna, yaitu rancangan layar
dan menu serta pembuatan kode untuk proses enkripsi dan dekripsi data.
d.
Metode Penyelesaian Masalah
Penulis merancang algoritma kriptografi yang telah dimodifikasi dimana
algoritma ini mengkombinasikan algoritma AES 128 bit dan algoritma
elgamal.
3.2.
Waktu Penelitian
Waktu yang diperlukan untuk penelitian ini diperkirakan ±6 (enam) bulan. Dalam
penelitian ini, penulis mengumpul data-data terkait penelitian melalui pustaka baik
berupa buku, jurnal, makalah, dan data di internet.
Universitas Sumatera Utara
24
3.3.
Data yang Digunakan
Pada penelitian ini, penulis menggunakan file text dengan ukuran 100 kb, 200 kb, 300
kb, 400 kb, dan 500 kb. Dari masing-masing data akan dicatat kecepatan enkripsi dan
dekripsi, panjang kunci awal, panjang kunci sesudah enkripsi, dan perbandingan
panjang kunci sebelum dan sesudah enkripsi.
3.4.
Prosedur Penyelesaian Masalah
Untuk menyelesaikan permasalahan diatas, maka penulis membuat sebuah rancangan
yang berguna untuk mengamankan data menggunakan algoritma AES 128 bit yang
dimodifikasi pada tahapan mix columns diganti menjadi pseudo hadamard transform
yang digunakan algoritma twofish. Untuk enkripsi kunci, digunakan algoritma elgamal
dengan menggunakan algoritma kompresi Elias gamma code agar ciphertext yang
dihasilkan berukuran lebih kecil.
3.4.1.
Enkripsi
Langkah-langkah enkripsi adalah sebagai berikut :
a.
Pengirim menentukan plaintext yang akan dienkripsi.
b.
Pengirim memasukkan kunci untuk enkripsi plaintext.
c.
Tabel S-Box diacak menggunakan persamaan Wichmann-Hill.
d.
Plaintext tersebut di enciphering sebanyak 10 putaran menggunakan algoritma
AES 128 bit yang menghasilkan ciphertext dimana tahapan mix columns diganti
menjadi pseudo hadamard transform.
e.
Kunci enkripsi kemudian di enkripsi menggunakan algoritma elgamal yang
menghasilkan cipherkey.
f.
Cipherkey dikompresi menggunakan algoritma Elias gamma code.
g.
Pengirim mengirimkan ciphertext, cipherkey yang telah dikompresi kepada
penerima.
Universitas Sumatera Utara
25
Kunci AES 128 bit
Plaintext
Enkripsi
Algoritma AES
128 bit
Ciphertext
Kompresi EGC
Kunci
AES 128
bit
Algoritma
Elgamal
Cipherkey
Penerima
Gambar 3.1. Proses Enkripsi Pesan
3.4.2.
Dekripsi
Langkah-langkah dekripsi adalah sebagai berikut :
a.
Penerima melakukan dekompresi terhadap cipherkey menggunakan algoritma
Elias gamma Code.
b.
Penerima melakukan dekripsi cipherkey menggunakan algoritma elgamal yang
menghasilkan kunci dekripsi.
c.
Penerima melakukan deciphering sebanyak 10 putaran terhadap ciphertext
menggunakan algoritma AES 128 bit sehingga menghasilkan plaintext dimana
tahapan inverse mix columns diganti menjadi pseudo hadamard transform.
Universitas Sumatera Utara
26
Dekompresi EGC
Penerima
Cipherkey
Algoritma
Elgamal
Kunci AES 128 bit
Ciphertext
Dekripsi
Algoritma MAES 128 bit
Plaintext
Gambar 3.2. Proses Dekripsi Pesan
3.5.
Diagram Alir
3.5.1.
Diagram Alir Proses Ekspansi Kunci AES 128 bit
Proses ekspansi kunci berfungsi untuk menghasilkan kunci (round key) yang
digunakan pada proses enkripsi dan dekripsi. Berikut ini adalah diagram alir ekspansi
kunci algoritma AES 128 bit.
Universitas Sumatera Utara
27
Start
Input Key
(16 Byte)
Round = 0
Round = Round +1
RotWord()
SubWord()
No
RCon()
XOR Operation
Round = 10
Yes
End
Gambar 3.3. Diagram Alir Ekspansi Kunci AES 128 bit
Alur proses dari flowchart diatas dimulai dari Start, kemudian user akan
diminta untuk memasukkan key sebesar 16 byte (karakter). Terlihat pada Round 0
tidak terjadi proses apapun, key yang dimasukkan oleh user akan menjadi Round Key
untuk Round 0. Kemudian dilanjutkan dengan Round 1 sampai Round 10 dimana
proses yang terjadi pada masing-masing Round adalah RotWord, SubWord, Rcon dan
XOR Operation.
Universitas Sumatera Utara
28
3.5.2.
Diagram Alir Pembentukan Tabel S-Box
Tabel S-Box pada algoritma AES digunakan untuk proses SubBytes dan SubWord.
Proses tersebut adalah mensubstitusi Byte menggunakan tabel S-Box. Secara
sederhana, proses ini mudah untuk dibalikkan kembali ke nilai awal jika seorang
kriptanalis berhasil mendapatkan nilai setelah SubBytes dengan menggunakan tabel
inverse S-Box. Dengan melakukan pengacakan terhadap tabel S-Box menggunakan
Pseudo-Random Number Generator metode Wichmann-Hill, maka seorang kriptanalis
akan sulit mengembalikan ke nilai awal.
Start
Input S1, S2, S3
i=0; iterasi i
Hitung S1= MOD (171 * S1,
30269)
Hitung S2= MOD (172 * S2,
30307)
No
Hitung S3= MOD (170 * S3,
30323)
Hitung R= MOD (S1/30269
+ S2/30307 + S3/30323,1)
i=255
Yes
Susun tabel S-Box & RS-Box
sesuai urutan bilangan acak
End
Gambar 3.4. Diagram Alir Pembentukan tabel S-Box dan RS-Box
Universitas Sumatera Utara
29
3.5.3.
Diagram Alir Proses Enkripsi AES 128 bit
Proses enkripsi bertujuan untuk mendapat ciphertext dan sebuah pesan asli
menggunakan kunci. Berikut ini adalah diagram alir proses enkripsi algoritma AES
128 bit, dimana proses Mix Columns diganti menjadi Pseudo Hadamard Transform
agar proses enkripsi lebih efisien waktu.
Start
Input Plaintext
(16 Byte)
Round = 0
AddRoundKey()
Round = Round + 1
SubBytes()
ShiftRows()
PHT()
No
AddRoundKey()
Round = 9
Yes
SubBytes()
ShiftRows()
AddRoundKey()
End
Gambar 3.5. Diagram Alir Enkripsi AES 128 bit
Universitas Sumatera Utara
30
Dalam proses enkripsi ini, dimulai dari Start, kemudian user diminta untuk
memasukkan 16 byte (karakter) plaintext yang akan dienkripsi. Round 0 dilakukan
proses AddRoundKey(), sedangkan Round 1 sampai 9 dilakukan proses SubBytes(),
ShiftRows(), PHT(), AddRoundKey(), dan pada Round 10 dilakukan proses yang sama
kecuali PHT sehingga didapatkan Ciphertext.
3.5.4.
Diagram Alir Proses Enkripsi Elgamal
Proses enkripsi elgamal digunakan untuk mengenkripsi kunci yang digunakan
algoritma AES 128 bit.
Start
Input p, α, a
Hitung $= α a mod p
Hitung += α ,Hitung .= $,-. -
p
p
End
Gambar 3.6. Diagram Alir Enkripsi Elgamal
3.5.5.
Diagram Alir Proses Kompresi Elias Gamma Code
Proses kompresi Elias gamma code digunakan untuk kompresi bilangan bulat yang
dihasilkan ciphertext elgamal.
Universitas Sumatera Utara
31
Start
Input teks
Urutkan karakter
berdasarkan frekensi
kemunculan
Bentuk tabel kode Elias
Gamma Code
Ganti karakter pada teks
sesuai tabel kode
Generate Kode Elias Gamma
ke ASCII
Konversi kode ASCII ke
karakter
End
Gambar 3.7. Diagram Alir Kompresi Elias Gamma Code
3.5.6.
Diagram Alir Proses Dekripsi AES 128 bit
Proses dekripsi berfungsi untuk mengembalikan ciphertext ke plaintext.
Universitas Sumatera Utara
32
Start
Input Ciphertext
(16 Byte)
Round = 0
AddRoundKey()
Round = Round + 1
Inv. ShiftRows()
Inv. SubBytes()
No
AddRoundKey()
Inv. PHT()
Round = 9
Yes
Inv. ShiftRows()
Inv. SubBytes()
AddRoundKey()
End
Gambar 3.8. Diagram Alir Dekripsi AES 128 bit
Dalam proses dekripsi ini, dimulai dari Start, kemudian user diminta untuk
memasukkan 16 byte (karakter) ciphertext yang akan di dekripsi. Round 0 dilakukan
proses AddRoundKey(), sedangkan Round 1 sampai 9 dilakukan proses Inv.
ShiftRows(), Inv. SubBytes(), AddRoundKey(), Inv. PHT() dan pada Round 10
dilakukan proses yang sama kecuali Inv. PHT sehingga didapatkan Plaintext.
Universitas Sumatera Utara
33
3.5.7. Diagram Alir Proses Dekripsi Elgamal
Proses dekripsi elgamal digunakan untuk mendekripsi kunci yang digunakan untuk
dekripsi AES 128 bit.
Start
Input p, α, $, a
Hitung + /−1−
Hitung
-=..
/
(+ ) −1 m
/
Konversi ke karakter
End
Gambar 3.9. Diagram Alir Dekripsi Elgamal
3.5.8.
Diagram Alir Proses Dekompresi Elias Gamma Code
Proses dekompresi Elias gamma code digunakan untuk dekompresi bilangan bulat
yang dihasilkan ciphertext elgamal.
Universitas Sumatera Utara
34
Start
Input teks
Generate isi file ke binary
Kembalikan ke string bit
semula
Ganti string bit sesuai tabel
kode elias gamma
End
Gambar 3.10. Diagram Alir Dekompresi Elias Gamma Code
3.6.
Analisis Enkripsi
Untuk melakukan enkripsi, plaintext dienkripsi menggunakan algoritma AES 128 bit
modifikasi
menghasilkan
Ciphertext,
kemudian
kunci
enkripsi
di
enkripsi
menggunakan algoritma elgamal yang menghasilkan cipherkey. Cipherkey dikompresi
menggunakan metode Elias gamma code. Ciphertext dan cipherkey dikirimkan kepada
penerima pesan.
3.6.1.
Analisis Enkripsi Algoritma AES 128 bit Modifikasi
Misalkan dipilih plaintext yang akan dienkripsi “Ilmu Kriptografi” dengan
menggunakan kunci “KeamananKomputer”, untuk enkripsi kunci digunakan
algoritma elgamal dengan bilangan prima aman p = 2579, elemen primitif α = 2, dan
bilangan acak a = 765. Tahap pertama adalah membangkitkan 256 bilangan acak
menggunakan metode Wichmann-Hill untuk menghasilkan tabel S-Box yang baru.
Metode Wichmann-Hill membutuhkan 3 buah bilangan yang disebut seed, yaitu S1,
S2, dan S3. Nilai dari bilangan tersebut dihasilkan dari kode ASCII kunci yang
digunakan untuk enkripsi.
Universitas Sumatera Utara
35
Tabel 3.1. Kode ASCII Kunci
Karakter
K
e
a
m
a
n
a
n
K
o
m
p
u
t
e
r
Kode ASCII (Dec)
75
101
97
109
97
110
97
110
75
111
109
112
117
116
101
114
Kode ASCII (Hex)
4B
65
61
6D
61
6E
61
6E
4B
6F
6D
70
75
74
65
72
S1 = K+e+a+m+a = 75+101+97+109+97 = 479
S2 = n+a+n+K+o = 110+97+110+75+111 = 503
S3 = m+p+u+t+e = 109+112+117+116+101 = 555
Kemudian dibangkitkan bilangan acak sebanyak 256 buah, bilangan acak yang
terbentuk ditulis sesuai urutan dari 0 sampai 255 dalam bilangan heksadesimal dan
dibentuk menjadi tabel S-Box dan Reverse S-Box.
Universitas Sumatera Utara
36
Tabel 3.2. Tabel S-Box
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
1F
A7
B4
68
22
FB
6B
55
57
39
D6
9B
E4
05
92
E0
1
B0
3D
08
97
9D
21
26
DA
7A
CC
88
19
A9
DD
AB
28
2
C6
F4
89
CF
5E
2A
90
C4
D5
10
AD
D1
03
5F
5B
54
3
65
7E
E3
9E
4F
F6
DC
C5
85
4E
EC
2B
B2
53
6C
A4
4
AF
BD
17
67
DB
E8
8A
09
23
F2
5C
8D
CB
72
E5
BC
5
1E
9C
37
3B
B5
29
4A
4D
94
BF
25
ED
82
E7
18
42
6
40
C3
7D
EB
D4
84
F9
F3
8C
45
76
99
41
BE
C8
30
7
34
CA
DF
32
66
3A
E2
70
43
04
56
FE
1A
91
52
A2
8
B3
BB
2F
46
E6
06
F5
77
61
FC
96
AE
78
44
A8
B7
9
81
64
7B
79
A0
A1
DE
38
0A
3C
D9
62
8F
02
8B
AA
A
F8
B6
6D
B1
13
95
48
60
74
D0
3E
00
CD
73
FF
8E
B
AC
6E
01
63
15
BA
FA
B8
24
3F
12
87
93
58
A3
0C
C
6F
B9
31
80
FD
47
2C
C0
E9
9A
E1
C1
36
2D
7C
F7
D
1D
35
98
1C
83
59
0D
27
EA
50
D3
6A
5A
14
EE
7F
E
4C
49
20
5D
2E
A6
EF
D2
0F
D7
07
A5
71
69
F1
D8
F
33
75
11
C7
51
0E
C9
CE
4B
1B
16
F0
9F
86
0B
C2
Tabel 3.3. Tabel Reverse S-Box
0
1
2
3
4
5
6
7
8
9
A
C
D
E
F
0
AB
B2
9D
2C
79
0D
85
EA
12
47
98
B
FE
BF
D6
F5
E8
1
29
F2
BA
A4
DD
B4
FA
42
5E
1B
7C
F9
D3
D0
50
00
2
E2
15
04
48
B8
5A
16
D7
1F
55
25
3B
C6
CD
E4
82
3
6F
C2
73
F0
70
D1
CC
52
97
09
75
53
99
11
AA
B9
4
60
6C
5F
78
8D
69
83
C5
A6
E1
56
F8
E0
57
39
34
5
D9
F4
7E
3D
2F
07
7A
08
BD
D5
DC
2E
4A
E3
24
2D
6
A7
88
9B
B3
91
30
74
43
03
ED
DB
06
3E
A2
B1
C0
7
77
EC
4D
AD
A8
F1
6A
87
8C
93
18
92
CE
62
31
DF
8
C3
90
5C
D4
65
38
FD
BB
1A
22
46
9E
68
4B
AF
9C
9
26
7D
0E
BC
58
A5
8A
13
D2
6B
C9
0B
51
14
33
FC
A
94
95
7F
BE
3F
EB
E5
01
8E
1C
9F
1E
B0
2A
8B
40
B
C
D
E
F
10
C7
A9
0F
FB
A3
CB
2B
CA
EE
3C
FF
E7
76
49
80
61
DA
32
67
02
27
64
0C
21
54
37
28
4E
86
A1
20
0A
84
35
8F
F3
E9
5D
CF
B7
6E
EF
45
A0
C1
F6
9A
C8
66
B5
71
17
D8
B6
81
4C
44
63
05
4F
19
36
3A
89
41
AC
1D
5B
C4
6D
F7
96
DE
7B
59
23
72
E6
AE
Tahap berikutnya adalah key expansion yang berfungsi untuk mendapatkan kunci
yang digunakan untuk 10 putaran pada algoritma AES 128 bit.
Universitas Sumatera Utara
37
Tabel 3.4. Key Expansion
Round-0
4B
65
61
6D
61
6E
61
6E
4B
6F
6D
70
75
74
65
72
Round-1
2C
E1
BE
57
4D
8F
DF
39
06
E0
B2
49
73
94
D7
3B
Round-2
8E
C6
95
65
C3
49
4A
5C
C5
A9
F8
15
B6
3D
2F
2E
Round-3
D9
92
CE
9F
1A
DB
84
C3
DF
72
7C
D6
69
4F
53
F8
Round-4
6D
A9
85
DA
77
72
01
19
A8
00
7D
CF
C1
4F
2E
37
Round-5
C1
F2
40
63
B6
80
41
7A
1E
80
3C
B5
DF
CF
12
82
Round-6
16
FA
6F
1C
A0
7A
2E
66
BE
FA
12
D3
61
35
00
51
Round-7
A0
E5
F3
DF
00
9F
DD
B9
BE
65
CF
6A
DF
50
CF
3B
Round-8
3E
12
D8
A0
3E
8D
05
19
80
E8
CA
73
5F
B8
05
48
Round-9
01
E9
FB
E2
3F
64
FE
FB
BF
8C
34
88
E0
34
31
C0
Round-10 78
97
94
AE
47
F3
6A
55
F8
7F
5E
DD
18
4B
6F
1D
Kemudian dilakukan enkripsi menggunakan algoritma AES 128 bit yang telah
dimodifikasi dengan urutan langkah sebagai berikut.
Round 0 dilakukan AddRoundKey, yaitu proses XOR antara plaintext dengan key.
State awal didapatkan dengan mengonversi masing-masing karakter plaintext ke kode
ASCII.
Tabel 3.5. Kode ASCII Plaintext
Karakter
I
l
m
u
[spasi]
K
r
i
p
t
o
g
r
a
f
i
Kode ASCII (Dec)
73
108
109
117
32
75
114
105
112
116
111
103
114
97
102
105
Kode ASCII (Hex)
49
6C
6D
75
20
4B
72
69
70
74
6F
67
72
61
66
69
Universitas Sumatera Utara
38
Plaintext = 49 6C 6D 75 20 4B 72 69 70 74 6F 67 72 61 66 69
R0 Key = 4B 65 61 6D 61 6E 61 6E 4B 6F 6D 70 75 74 65 72
XOR
----------------------------------------------------State
= 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B
Round 1 sampai 9 dilakukan proses SubBytes, ShiftRows, PHT, dan AddRoundKey.
Round 1 SubBytes
State
= 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B
SB
= B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19
Round 1 ShiftRows
State
= B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19
SR
= B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA
Round 1 PHT
State
= B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA
PHT
= DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E
Round 1 AddRoundKey
State
= DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E
R1 Key = 2C E1 BE 57 4D 8F DF 39 06 E0 B2 49 73 94 D7 3B
xor
----------------------------------------------------State
= F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15
Round 2 SubBytes
State
= F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15
SB
= C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21
Round 2 ShiftRows
State
= C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21
SR
= C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96
Round 2 PHT
State
= C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96
PHT
= AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A
Round 2 AddRoundKey
State
= AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A
R2 Key = 8E C6 95 65 C3 49 4A 5C C5 A9 F8 15 B6 3D 2F 2E
xor
----------------------------------------------------State
= 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54
Universitas Sumatera Utara
39
Round 3 SubBytes
State
= 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54
SB
= 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5
Round 3 ShiftRows
State
= 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5
SR
= 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61
Round 3 PHT
State
= 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61
PHT
= 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4
Round 3 AddRoundKey
State
= 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4
R3 Key = D9 92 CE 9F 1A DB 84 C3 DF 72 7C D6 69 4F 53 F8
xor
----------------------------------------------------State
= 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C
Round 4 SubBytes
State
= 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C
SB
= 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03
Round 4 ShiftRows
State
= 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03
SR
= 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1
Round 4 PHT
State
= 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1
PHT
= 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C
Round 4 AddRoundKey
State
= 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C
R4 Key = 6D A9 85 DA 77 72 01 19 A8 00 7D CF C1 4F 2E 37
xor
----------------------------------------------------State
= F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B
Round 5 SubBytes
State
= F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B
SB
= 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19
Round 5 ShiftRows
Universitas Sumatera Utara
40
State
= 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19
SR
= 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0
Round 5 PHT
State
= 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0
PHT
= FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A
Round 5 AddRoundKey
State
= FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A
R5 Key = C1 F2 40 63 B6 80 41 7A 1E 80 3C B5 DF CF 12 82
xor
----------------------------------------------------State
= 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8
Round 6 SubBytes
State
= 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8
SB
= 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B
Round 6 ShiftRows
State
= 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B
SR
= 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11
Round 6 PHT
State
= 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11
PHT
= E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D
Round 6 AddRoundKey
State
= E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D
R6 Key = 16 FA 6F 1C A0 7A 2E 66 BE FA 12 D3 61 35 00 51
xor
----------------------------------------------------State
= F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C
Round 7 SubBytes
State
= F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C
SB
= 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4
Round 7 ShiftRows
State
= 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4
SR
= 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F
Round 7 PHT
State
= 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F
Universitas Sumatera Utara
41
PHT
= 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60
Round 7 AddRoundKey
State
= 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60
R7 Key = A0 E5 F3 DF 00 9F DD B9 BE 65 CF 6A DF 50 CF 3B
xor
----------------------------------------------------State
= 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B
Round 8 SubBytes
State
= 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B
SB
= 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED
Round 8 ShiftRows
State
= 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED
SR
= 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5
Round 8 PHT
State
= 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5
PHT
= 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F
Round 8 AddRoundKey
State
= 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F
R8 Key = 3E 12 D8 A0 3E 8D 05 19 80 E8 CA 73 5F B8 05 48
xor
----------------------------------------------------State
= 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07
Round 9 SubBytes
State
= 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07
SB
= 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55
Round 9 ShiftRows
State
= 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55
SR
= 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43
Round 9 PHT
State
= 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43
PHT
= 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08
Round 9 AddRoundKey
State
= 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08
R9 Key = 01 E9 FB E2 3F 64 FE FB BF 8C 34 88 E0 34 31 C0
xor
-----------------------------------------------------
Universitas Sumatera Utara
42
State
= 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8
Pada Round 10, tidak dilakukan tahapan PHT sehingga pada round ini hanya
dilakukan SubBytes, ShiftRows dan AddRoundKey yang menghasilkan Ciphertext.
Round 10 SubBytes
State
= 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8
SB
= 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9
Round 10 ShiftRows
State
= 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9
SR
= 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45
Round 10 AddRoundKey
State
= 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45
R10 Key= 78 97 94 AE 47 F3 6A 55 F8 7F 5E DD 18 4B 6F 1D
xor
----------------------------------------------------State
= F9 2D E0 47 83 2D FC 51 EF F0 AF B1 AF F0 2A 58
State diatas dikonversi ke karakter sehingga didapatkan Ciphertext “ù-àGƒüQï卿¯ ð*X”.
3.6.2.
Analisis Enkripsi Kunci Algoritma Elgamal
Kunci “KeamananKomputer” dienkripsi menggunakan algoritma elgamal dengan
bilangan prima aman p = 2579, elemen primitif α = 2, dan bilangan rahasia a = 765.
Penerima pesan menghitung nilai $ = αa mod p
$=2765
2579 = 949
Kemudian nilai (p, α, $) = (2579, 2,
949) dikirimkan kepada pengirim pesan,
penerima pesan menyimpan bilangan rahasia a dan tidak boleh diketahui siapapun
termasuk pengirim pesan. Karakter kunci dikonversi ke kode ASCII, kemudian
dibangkitkan bilangan acak rahasia ki dengan range nilai k є {0, 1, ..., p-2}. Kelebihan
utama dari algoritma elgamal adalah plaintext yang sama akan menghasilkan
ciphertext yang berbeda karena adanya proses pembangkitan bilangan acak rahasia ki.
Pengirim pesan kemudian mengenkripsi kunci dengan menghitung nilai (+-, .-)
dengan menggunakan persamaan berikut ini.
+i = α ,-
p
Universitas Sumatera Utara
43
.i = $,-. -
p
Tabel 3.6. Proses Enkripsi Kunci Algoritma Elgamal
Karakter
K
e
a
m
a
n
a
n
K
o
m
p
u
t
e
r
ASCII (Dec)
mi
75
101
97
109
97
110
97
110
75
111
109
112
117
116
101
114
Pasangan (+i :.i)
ki
2497
1937
598
1400
1180
2520
2260
2315
249
2530
784
1965
1529
1792
2108
44
+i = 2,-
2579
.i = 949,-.
1714
1247
557
2115
956
2109
902
2207
1007
993
895
1363
265
1989
1814
380
-
2579
1642
266
119
1273
2139
1754
1824
2079
1433
555
882
2390
184
421
1792
2508
merupakan hasil enkripsi dari algoritma elgamal sehingga
didapatkan cipherkey berikut.
1714:1642:1247:266:557:119:2115:1273:956:2139:2109:1754:902:1824:2207:2079
:1007:1433:993:555:895:882:1363:2390:265:184:1989:421:1814:1792:380:2508
Perbandingan ukuran key sebelum dienkripsi dengan sesudah dienkripsi dihitung
menggunakan persamaan berikut ini.
146
:-/ℎ