3.3 Tahapan Sistem
3.3.1 Tahapan algoritma kriptografi Massey-Omura
Sebuah pesan akan dikirimkan oleh Sender kepada Recipient dalam bentuk file dokumen. Sebelum pesan dikirimkan, dilakukan proses pengamanan terhadap isi file
dokumen. File dokumen memiliki isi string “ASIMETRIS”. Langkah-langkah penyandian pesan dengan menggunakan algoritma Massey-Omura adalah sbb:
1 Proses Enkripsi1 algoritma Massey-Omura
a. Dibangkitkan sebuah bilangan prima 128. Bilangan prima yang digunakan
adalah 263. b.
Sender membangkitkan sebuah bilangan untuk digunakan sebagai kunci enkripsi dengan syarat:
1 1
�� ����� − 1. 2
GCD ��, ����� − 1 = 1 atau eA dan prima-1 adalah coprime.
Sender memilih 145 sebagai eA dan menghitung GCD ��, ����� − 1
dengan melakukan perhitungan sebagai berikut: 145 mod 262 = 145
262 mod 145 = 117 145 mod 117 = 28
117 mod 28 = 5 28 mod 5 = 3
5 mod 3 = 2 3 mod 2 = 1
Maka, GCD ��, ����� − 1 = 1 dan 145 dapat digunakan sebagai kunci eA.
c. Sender membangkitkan kunci dekripsi dengan menghitung invers eA dan
prima-1 dengan rumus �� � �� ��� ����� − 1 = 1.
Tabel 3.1. Perhitungan kunci dA
�� �� � �� ��� ����� − 1 = 1
�� � 145 ��� 262 = 1 25
219 73
105 ⋮
⋮ 103
1 Karena
103 � 145 ��� 262 − 1 = 1, maka 103 digunakan sebagai dA.
Universitas Sumatera Utara
d. Ubah pesan yang akan dikirim menjadi integer berdasarkan tabel ASCII.
Plainteks = “ASIMETRIS” M = 65 83 73 77 69 84 82 73 83
e. Enkripsi1 dilakukan oleh Sender dengan menghitung
�1 = �
��
��� �. Prima = 263, eA = 145
C1 = 65
145
mod 263 = 239 C1 = 83
145
mod 263 = 151 C1 = 73
145
mod 263 = 5 C1 = 77
145
mod 263 = 215 C1 = 69
145
mod 263 = 25 C1 = 84
145
mod 263 = 188 C1 = 82
145
mod 263 = 97 C1 = 73
145
mod 263 = 5 C1 = 83
145
mod 263 = 151 Hasil dari Enkripsi1 adalah Cipherteks1 “239 151 5 215 25 188 97 5 151”.
Sender kemudian mengirim C1 kepada Recipient.
2 Proses Enkripsi2 Recipient algoritma Massey-Omura
a. Recipient membangkitkan sebuah bilangan untuk digunakan sebagai kunci
enkripsi dengan syarat: 1
1 �� ����� − 1
2 GCD
��, ����� − 1 = 1 atau eB dan prima-1 adalah coprime. Recipient memilih 125 sebagai eB dan menghitung GCD
��, ����� − 1 dengan melakukan perhitungan sebagai berikut:
125 mod 262 = 145 262 mod 145 = 12
145 mod 12 = 1 Maka, GCD
��, ����� − 1 = 1 dan 125 dapat digunakan sebagai kunci eB. b.
Recipient membangkitkan kunci dekripsi dengan menghitung invers eB dan prima-1 dengan rumus
�� � �� ��� ����� − 1 = 1
Tabel 3.2. Perhitungan kunci dB
�� �� � �� ��� ����� − 1 = 1
�� � 125 ��� 262 = 1
Universitas Sumatera Utara
25 243
73 217
⋮ ⋮
109 1
Karena 109
� 125 ��� 262 − 1 = 1, maka 109 digunakan sebagai dB. c.
Enkripsi2 dilakukan oleh Recipient dengan menghitung �2 = �1
��
��� �. Prima = 263, eB
= 125 C2 = 239
125
mod 263 = 7 C2 = 151
125
mod 263 = 69 C2 = 5
125
mod 263 = 56 C2 = 215
125
mod 263 = 259 C2 = 25
125
mod 263 = 243 C2 = 188
125
mod 263 = 175 C2 = 97
125
mod 263 = 252 C2 = 5
125
mod 263 = 56 C2 = 151
125
mod 263 = 69 Hasil dari Enkripsi2 adalah Cipherteks2 “7 69 56 259 243 175 252 56 69”.
Recipient kemudian mengirim C2 kepada Sender.
3 Proses Dekripsi1 Sender algoritma Massey-Omura
Dekripsi1 dilakukan oleh Sender dengan menghitung �3 = �2
��
��� �. Prima = 263, dA = 103
C3 = 7
103
mod 263 = 191 C3 = 69
103
mod 263 = 178 C3 = 56
103
mod 263 = 251 C3 = 259
103
mod 263 = 38 C3 = 243
103
mod 263 = 144 C3 = 175
103
mod 263 = 29 C3 = 252
103
mod 263 = 174 C3 = 56
103
mod 263 = 251 C3 = 69
103
mod 263 = 178 Hasil dari Dekripsi1 adalah C3 = 191 178 251 38 144 29 174 251 178. Sender
kemudian mengirim C3 kepada Recipient.
Universitas Sumatera Utara
4 Proses Dekripsi1 Recipient algoritma Massey-Omura
a. Dekripsi2 dilakukan oleh Recipient dengan menghitung
� = �3
��
��� �. Prima = 263, dB
= 109 M = 191
109
mod 263 = 65 M = 178
109
mod 263 = 83 M = 251
109
mod 263 = 73 M = 38
109
mod 263 = 77 M = 144
109
mod 263 = 69 M = 29
109
mod 263 = 84 M = 174
109
mod 263 = 82 M = 251
109
mod 263 = 73 M = 178
109
mod 263 = 83 Hasil dari Dekripsi2 adalah M = 65 83 73 77 69 84 82 73 83.
b. M diubah kembali menjadi karakter berdasarkan tabel ASCII dan didapatkan
Plainteks = “ASIMETRIS”.
3.3.2 Tahapan algoritma Even-Rodeh
1 Proses Kompresi algoritma Even-Rodeh
Berikut ini adalah contoh proses kompresi file teks dengan algoritma Even-Rodeh dengan string “FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI”. Lakukan pengurutan karakter berdasarkan frekuensi kemunculan karakter. Pengurutan karakter dapat dilihat pada Tabel 3.3.
Tabel 3.3. Bit Karakter sebelum Kompresi
n char
Frekuensi ASCII code
ASCII Binari Bit
Bit x Frek 1
Sp 5
32 00100000
8 40
2 A
4 65
01000001 8
32 3
I 4
73 01001001
8 32
4 O
4 79
01001111 8
32 5
K 3
75 01001011
8 24
6 U
3 85
01010101 8
24 7
L 3
76 01001100
8 24
8 T
3 84
01010100 8
24 9
M 3
77 01001101
8 24
10 N
3 78
01001110 8
24 11
F 2
70 01000110
8 16
12 S
2 83
01010011 8
16
Universitas Sumatera Utara
13 E
2 69
01000101 8
16 14
R 2
82 01010010
8 16
15 P
1 80
01010000 8
8 16
D 1
68 01000100
8 8
17 G
1 71
01000111 8
8 Total Bit
368 Kemudian, ganti bit karakter dengan bit kode Even-Rodeh dan didapatkan bit
karakter yang sudah dikompresi sebagai berikut:
Tabel 3.4. Bit Karakter setelah Kompresi
n char
Frekuensi Kode Even-
Rodeh Bit
Bit x Frek 1
Sp 5
000 3
15
2 A
4 001
3 12
3 I
4 010
3 12
4 O
4 011
3 12
5 K
3 1000
4 12
6 U
3 1010
4 12
7 L
3 1110
4 12
8 T
3 10010000
8 24
9 M
3 10010010
8 24
10
N 3
10010100 8
24
11 F
2 10010110
8 16
12 S
2 10011000
8 16
13 E
2 10011010
8 16
14 R
2 10011100
8 16
15 P
1 10011110
8 8
16 D
1 101100000
9 9
17 G
1 101100010
9 9
Total Bit 249
Dari Tabel 3.4 dapat dibentuk string bit kompresi dari string asli “FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI” dan didapatkan string
bit dengan uraian sebagai berikut: 10010110 001 1000 1010 1110 10010000 001 10011000 000 010 1110
F A K U L T A S Sp I L
10010010 1010 000 1000 011 10010010 10011110 1010 10010000 10011010 M U Sp K O M P U T E
10011100 000 101100000 001 10010100 000 10010000 10011010 1000 R Sp D A N Sp T E K
10010100 011 1110 011 101100010 010 000 010 10010100 10010110 011 N O L O G I Sp I
N F O 10011100 10010010 001 10011000 010
R M A S I
Universitas Sumatera Utara
Lakukan penambahan bit padding dan flagging pada akhir string bit. Hitung sisa bagi panjang string bit dengan tujuh. karena hasil dari sisa bagi adalah 4
maka ditambahkan padding berupa angka 0 sebanyak 3 buah “000” untuk mencukupi jumlah bit ketika dibagi tujuh dan flag bits “0000011” yang
menunjukkan jumlah penambahan padding dalam bentuk binari sehingga string bit menjadi:
“10010110001100010101110100100000011001100000001011101001001010100 00100001110010010100111101010100100001001101010011100000101100000
00110010100000100100001001101010001001010001111100111011000100100 0001010010100100101100111001110010010010001100110000100000000011”.
Total bit setelah penambahan padding berjumlah 264 bit. Sebelum menuliskan string kompresi pada file, konversi bit menjadi karakter
berdasarkan tabel ASCII. Maka, didapatkan hasil karakter kompresi sebagai berikut:
1001011 0001100 0101011 1010010 0000011 0011000 0000101 1101001
K Œ « Ò ETX CAN … i
0010101 0000100 0011100 1001010 0111101 0101001 0000100 1101010
• EOT
FS J =
EOT j
0111000 0010110 0000001 1001010 0000100 1000010 0110101 0001001
8 SYN SOH J EOT
B 5 HT
0100011 1110011 1011000 1001000 0010100 1010010 0101100 1110011
s X H DC4
R , s
1001001 0010001 1001100 0010000 0000011
a. Ratio of Compression Rc
I
DC1
L
DLE ETX
String hasil kompresi yaitu:
K Œ « Ò ETX
CAN … i •
EOT FS
J = EOT
j 8 SYN
SOH J
EOT B 5
HT s X H
DC4 R , s
I
DC1
L
DLE ETX
Dari proses kompresi, kinerja kompresi algoritma dapat dihitung dengan cara sebagai berikut:
�� = ������ ���� ������� ��������
������ ���� ������ℎ �������� �� =
368 249
= 1,48
Universitas Sumatera Utara
b. Compression Ratio Cr
�� = ������ ���� ������ℎ ��������
������ ���� ������� �������� � 100
�� = 249
368 � 100 = 67,66
c. Redudancy Rd
�� = 100 − �� �� = 100 − 67,66 = 32,34
2 Proses Dekompresi algoritma Even-Rodeh
Proses dekompresi teks dimulai dengan mengubah karakter kompresi menjadi string bit. Didapatkan string bit hasil kompresi yaitu:
“10010110001100010101110100100000011001100000001011101001001010100 00100001110010010100111101010100100001001101010011100000101100000
00110010100000100100001001101010001001010001111100111011000100100 0001010010100100101100111001110010010010001100110000100000000011”.
Sebelum string bit dirubah menjadi karakter asli , tentukan panjang string yang harus dibaca dengan menghapus padding dan flag bits dari string bit. Lakukan
pembacaan flag bits yaitu tujuh bit terakhit string untuk mengetahui berapa jumlah padding yang ditambahkan pada string. Tujuh bit terakhir string bit adalah
“0000011” atau sama dengan 3 dalam bentuk desimal. Maka dapat diketahui bahwa dilakukan penambahan 3 bit diakhir string, sehingga indeks terakhir n
untuk pembacaan string bit adalah panjang string bit dikurangi dengan flag bits 7 bit ditambah jumlah padding yaitu 7 atau dapat ditulis n = panjang string bit – 7
+ padding. Setelah didapatkan indeks terakhir yang akan dibaca dari string, dilakukan
pembacaan string bit dari indeks ke-0 sampai ke-n. Indeks ke-0 dari string adalah “0” kemudian dilakukan pengecekan ke tabel kode Even-Rodeh. Karena “0” tidak
merepresentasikan karakter apapun pada kode, maka pembacaan dilanjutkan pada indeks ke-1. Indeks ke-1 dari string adalah “0” dan dilakukan pengecekan ke tabel
kode. Kode “00” tidak terdapat didalam tabel kode sehingga pengecekan dilanjutkan pada indeks ke-3. Indeks ke-3 dari string adalah “0”. Kode “000”
Universitas Sumatera Utara
terdapat pada kode tabel dan mewakili karakter Spasi. Proses ini akan terus dilakukan hingga indeks ke-n, sehingga diperoleh string asli yaitu “FAKULTAS
ILMU KOMPUTER DAN TEKNOLOGI INFORMASI”.
Universitas Sumatera Utara
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM