Implementasi Algoritma Affine Cipher, RSA-CRT dan Alternate Unary Code Dalam Pengamanan dan Kompresi Teks Chapter III V
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem adalah penguraian suatu sistem utuh kedalam bagian-bagian
komponennya. Dalam proses analisis sistem dilakukan identifikasi terhadap masalahmasalah didalam sistem sehingga sistem yang dirancang dapat berjalan dengan baik serta
mampu memenuhi kebutuhan pengguna (user).
3.1.1. Analisis Masalah
Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya
sebuah sistem dengan menguraikan sistem utuh ke dalam komponen-komponen
pembentuknya agar sistem yang akan dibangun dapat berjalan dan mampu memenuhi
kebutuhan pengguna (user).
Identifikasi masalah-masalah tersebut dapat ditunjukkan dengan diagram Ishikawa.
Diagram Ishikawa/diagram fishbone/diangram herringbone/diagram cause-and-effect
merupakan diagram yang diciptakan oleh Kaoru Ishikawa (1968) yang menggambarkan
penyebab terjadinya suatu permasalahan/kejadian secara spesifik. Diagram Ishikawa
berbentuk seperti tulang ikan yang terdiri dari kepala ikan (fish’s head) dan tulangtulangnya (fish’s bones). Diagram Ishikawa pada sistem ini dapat dilihat pada Gambar
3.1.
Universitas Sumatera Utara
23
Orang
Sulit menjaga
kerahasiaan dan
keamanan file teks
Ukuran file teks
yang besar
Metode
Penggunaan algoritma
pengamanan dan
kompresi file yang
belum tepat
Mengamankan dan
meminimalkan ukuran
file teks
Belum ada aplikasi yang
mengkombinasikan algoritma affine
cipher, RSA-CRT dan AUC untuk
enkripsi dan kompresi teks
Tidak ada aplikasi yang
paling tepat untuk
enkripsi dan kompresi
teks
Material
Mesin
Gambar 3.1. Diagram Ishikawa
3.1.2. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem adalah sebuah proses memahami kebutuhan sistem baru yang
akan dibuat. Dalam analisis kebutuhan sistem terdapat dua jenis kebutuhan yang harus
dianalisis, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.
a. Kebutuhan Fungsional
Kebutuhan fungsional merupakan kebutuhan yang berisi proses atau fungsi yang nantinya
akan dilakukan sistem yang dirancang. Kebutuhan fungsional yang harus dipenuhi dalam
merancang sistem pengamanan dan kompresi file teks antara lain :
1. Sistem mampu membaca string dalam file teks yang diinputkan oleh user
2. Sistem mampu melakukan enkripsi dan dekripsi file teks dengan menggunakan
algoritma Affine Cipher
3. Sistem mampu melakukan enkripsi dan dekripsi kunci Affine Cipher dengan
menggunakan algoritma RSA-CRT
4. Sistem mampu melakukan kompresi dan dekompresi pesan tersandi (ciphertext)
dengan algoritma Alternate Unary Code
Universitas Sumatera Utara
24
5. Sistem mampu menyimpan file hasil dekripsi maupun kompresi dengan ekstensi
yang berbeda dengan file asli
6. Sistem mampu menghitung parameter kompresi yaitu Compression Ratio (CR) dan
Space Saving (SS)
b. Kebutuhan Non-fungsional
Kebutuhan non-fungsional adalah kebutuhan yang harus dipenuhi agar sistem/aplikasi
mendapat feedback (umpan balik) yang baik dari pengguna. Kebutuhan non-fungsional
yang harus dipenuhi oleh aplikasi yang akan dirancang, yaitu :
1. Kinerja
Sistem yang akan dibangun harus mampu melakukan proses enkripsi-dekripsi dan
kompresi-dekompresi terhadap file teks (doc dan txt).
2. Mudah Digunakan
Sistem harus dibangun sesederhana mungkin sehingga dapat dengan mudah
digunakan oleh pengguna.
3. Ekonomis
Sistem yang dibangun harus dapat bekerja/beroperasi tanpa perangkat tambahan
yang memerlukan biaya yang besar.
4. Dokumentasi
Sistem yang akan dibangun harus mampu menyimpan file hasil enkripsi maupun
kompresi.
5. Kontrol
Sistem yang akan dibangun harus menampilkan pesan error untuk setiap input
maupun proses yang tidak sesuai
6. Pelayanan
Sistem yang akan dibangun harus dapat dikembangkan kembali ke tingkat yang
lebih kompleks
Universitas Sumatera Utara
25
3.1.3. Analisis Proses
Dalam penelitian ini, plainteks akan dienkripsi dengan algoritma Affine Cipher, lalu kunci
Affine Cipher tersebut akan di enkripsi oleh algoritma RSA-CRT. File teks yang telah di
enkripsi (ciphertext) akan di kompresi dengan algoritma Alternate Unary Code.
Untuk mengembalikan cipherteks menjadi teks awal (plainteks), pertama sistem
akan mendekompresi file terkompresi sehingga diperoleh cipherteks. Setelah itu sistem
mendekripsi cipherkey dengan kunci privat RSA-CRT untuk memperoleh kunci Affine
Cipher, kemudian dengan kunci Affine Cipher tersebut file terenkripsi (cipherteks) akan
didekripsi dan menghasilkan plainteks.
a. Analisis Proses Pembangkitan Kunci RSA-CRT
Proses pembangkitan kunci RSA-CRT dilakukan untuk memperoleh kunci publik
dan kunci privat RSA-CRT yang akan digunakan dalam proses enkripsi dan dekripsi kunci
Affine Cipher dengan algoritma RSA-CRT.
1. Bangkitkan bilangan prima besar p dan q, dimana gcd(p-1, q-1) = 2
p = 727
q = 719
gcd(p-1, q-1) = 2
2. Hitung nilai N = p
N=p
q dan �(�) = (� − 1) × (� − 1)
q = 727 × 719 = 522713
�(�) = (� − 1) × (� − 1)
�(�) = (726) × (718)
�(�) = 521268
3. Tentukan �� dan �� secara acak yang memenuhi gcd��� , � − 1� = 1, gcd��� , � −
1) = 1 dan �� ≡ �� (��� 2)
�� = 59 → gcd(59,726) = 1
�� = 97 → gcd(97,718) = 1
59 ≡ 97 (��� 2)
4. Cari nilai d sedemikian hingga � ≡ �� ��� (� − 1) dan � ≡ �� ��� (� − 1)
� ≡ 59 ��� (726)
Universitas Sumatera Utara
26
� ≡ 97 ��� (718)
Nilai d tidak dapat langsung ditentukan menggunakan CRT karena gcd(726,718)
1, oleh karena itu persamaan tersebut harus diubah dengan memanfaatkan hukum
kanselasi, yaitu :
� − 1 ≡ 59 − 1(��� 726)
� − 1 ≡ 97 − 1(��� 718)
Maka didapat :
� = �′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)
� = � ′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)
� = � ′ ≡ (� − 1)/2 ≡ (59 − 1)/2 ��� (726/2) = 29 ��� 363
� = � ′ ≡ (� − 1)/2 ≡ (97 − 1)/2 ��� (718/2) = 48 ��� 359
Diperoleh gcd(363,359) = 1, maka persamaan tersebut dapat diselesaikan dengan
metode CRT.
� = 363 × 359 = 130317
�1 = 130317/363 = 359
�2 = 130317/359 = 363
�1 −1 = 359−1 ��� 363
�1 −1 = 359� (363)−1 ��� 363
�1 −1 = 359220−1 ��� 363
�1 −1 = 359219 ��� 363
�1 −1 = 272
�2 −1 = 363−1 ��� 359
�2 −1 = 363� (359)−1 ��� 359
�2 −1 = 363358−1 ��� 359
�2 −1 = 363357 ��� 359
�2 −1 = 90
Diperoleh nilai � ′ seperti berikut :
�′ = (29 × 359 × 272 + 48 × 363 × 90)��� 130317
�′ = (2831792 + 1568160) ��� 130317
�′ = (4399952) ��� 130317
Universitas Sumatera Utara
27
�′ = 99491
� = (2 × �’) + 1
� = (2 × 99491) + 1 = 198983
5. Tentukan nilai e
� = �−1 ��� �(�)
� = 198983−1 ��� (521268)
� = 198983� (521268 )−1 ��� (521268)
� = 198983157520 −1 ��� (521268)
� = 198983157519 ��� (521268)
� = 478151
6. Maka diperoleh kunci publik dan kunci privat sebagai berikut
������� = (�, �), ������� = (�, �, ��, ��)
������� = (478151, 522713), ������� = (727,719,59,97)
b. Analisis Proses Enkripsi File Teks dengan Affine Cipher
Misalkan akan mengenkripsi file dengan isi teks "BAYATI 141421043" maka prosesnya
adalah sebagai berikut :
1. Plainteks (m) = BAYATI 141421043
n = 256 (karena jumlah karakter dalam ASCII 8 bit = 256 karakter)
maka
:B
= 75
[Sp] = 32
1
= 49
A
= 65
1
= 49
0
= 48
Y
= 76
4
= 52
4
= 52
A
= 73
1
= 49
3
= 51
T
= 77
4
= 52
I
= 65
2
= 50
2. Kunci a dan b ditentukan secara acak degan ketentuan gcd(a,n) = 1, maka diperoleh
a = 13 dan b = 101
3. Proses enkripsi dengan rumus �� (�) ≡ �� + � (��� �)
�1 (�) ≡ 13(66) + 101 (��� 256)
�1 (�) ≡ 959 (��� 256)
Universitas Sumatera Utara
28
�1 (�) ≡ 191 → ¿
�2 (�) ≡ 13(65) + 101 (��� 256)
�2 (�) ≡ 946 (��� 256)
�2 (�) ≡ 178 → ²
�3 (�) ≡ 13(89) + 101 (��� 256)
�3 (�) ≡ 1258 (��� 256)
�3 (�) ≡ 234 → ê
�4 (�) ≡ 13(65) + 101 (��� 256)
�4 (�) ≡ 946 (��� 256)
�4 (�) ≡ 178 → ²
�5 (�) ≡ 13(84) + 101 (��� 256)
�5 (�) ≡ 1193 (��� 256)
�5 (�) ≡ 169 → ©
�6 (�) ≡ 13(73) + 101 (��� 256)
�6 (�) ≡ 1050 (��� 256)
�6 (�) ≡ 26 → [���]
�7 (��) ≡ 13(32) + 101 (��� 256)
�7 (��) ≡ 517 (��� 256)
�7 (��) ≡ 5 → [���]
�8 (1) ≡ 13(49) + 101 (��� 256)
�8 (1) ≡ 738 (��� 256)
�8 (1) ≡ 226 → â
�9 (4) ≡ 13(52) + 101 (��� 256)
�9 (4) ≡ 777 (��� 256)
�9 (4) ≡ 9 → [���]
�10 (1) ≡ 13(49) + 101 (��� 256)
�10 (1) ≡ 738 (��� 256)
Universitas Sumatera Utara
29
�10 (1) ≡ 226 → â
�11 (4) ≡ 13(52) + 101 (��� 256)
�11 (4) ≡ 777 (��� 256)
�11 (4) ≡ 9 → [���]
�12 (2) ≡ 13(50) + 101 (��� 256)
�12 (2) ≡ 751 (��� 256)
�12 (2) ≡ 239 → ï
�13 (1) ≡ 13(49) + 101 (��� 256)
�13 (1) ≡ 738 (��� 256)
�13 (1) ≡ 226 → â
�14 (0) ≡ 13(48) + 101 (��� 256)
�14 (0) ≡ 725 (��� 256)
�14 (0) ≡ 213 → Õ
�15 (4) ≡ 13(52) + 101 (��� 256)
�15 (4) ≡ 777 (��� 256)
�15 (4) ≡ 9 → [���]
�16 (3) ≡ 13(51) + 101 (��� 256)
�16 (3) ≡ 764 (��� 256)
�16 (3) ≡ 252 → ü
Maka diperoleh cipherteks : ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü
c. Analisis Proses Enkripsi Kunci Affine dengan RSA-CRT
Kunci Affine Cipher yang digunakan pada proses enkripsi sebelumnya akan dienkripsi
untuk menghasilkan cipherkey. Proses enkripsi kunci Affine Cipher dengan menggunakan
algoritma RSA-CRT sebagai berikut :
Plainkey a = 13 dan b = 101
Plainkey akan dienkripsi menggunakan kunci publik RSA-CRT yang telah
dibangkitkan sebelumnya, yaitu :
Universitas Sumatera Utara
30
� = 478151
� = 522713
Proses enkripsi kunci Affine Cipher dengan rumus : � = �� ��� �
�� = �� � ��� �
�� = 13478151 ��� 522713
�� = 485215
�� = �� � ��� �
�� = 101478151 ��� 522713
�� = 428983
Diperoleh nilai cipher a = 485215 dan cipher b = 428983
d. Analisis Proses Kompresi Cipherteks dengan AUC
Yang akan dikompresi pada tahap ini adalah cipherteks yang telah dihasilkan pada proses
enkripsi sebelumnya yaitu : ¿²ê²©[SUB][ENQ]â â
ïâÕ
ü
Sehingga diperoleh :
String = ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü
[SUB] = [SUBSTITUTE]
[ENQ]= [ENQIURY]
| String | = 16
∑(character set) = {¿, ², ê, ©, [SUB], [ENQ], â, [TAB] , ï, Õ, ü }
| ∑ | = 11
Perhitungan karakter bit dengan ASCII code dapat dilihat pada Tabel 3.1.
Universitas Sumatera Utara
31
Tabel 3.1. Perhitungan ASCII Code
Char
Char Code
ASCII Code
(Decimal)
(Biner)
191
Bit
Frek
Bit * Frek
0100 0010
8
1
8
178
0100 0001
8
2
16
234
0101 1001
8
1
8
169
0101 0100
8
1
8
26
0100 1001
8
1
8
[ENQ]
5
0010 0000
8
1
8
â
226
0011 0001
8
3
24
[TAB]
9
0011 0100
8
3
24
ï
239
0011 0010
8
1
8
Õ
213
0011 0000
8
1
8
ü
252
0011 0011
8
1
8
¿
²
ê
©
[SUB]
Total
128
Hasil kompresi dengan algortima Alternate Unary Code (AUC) dapat dilihat pada
Tabel 3.2. Karakter disusun secara descending (diurutkan berdasarkan frekuensi terbesar).
Tabel 3.2. Perhitungan AUC Code
Char
AUC Code
Bit
Frek
Bit * Frek
0
1
3
3
10
2
3
6
²
110
3
2
6
¿
1110
4
1
4
ê
11110
5
1
5
©
111110
6
1
6
[SUB]
1111110
7
1
7
[ENQ]
11111110
8
1
8
ï
111111110
9
1
9
Õ
1111111110
10
1
10
ü
11111111110
11
1
11
â
[TAB]
Total
75
Universitas Sumatera Utara
32
Pada tabel 3.2. dapat dilihat bahwa total bit setelah dikompresi dengan algoritma
AUC adalah 75 bit. Tahap selanjutnya adalah menyusun kode tiap karakter sesuai dengan
posisi karakter pada string awal yaitu ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü
Sehingga diperoleh string bit :
1110110111101101111101111110111111100100101111111100111111111010111111111
10 = 75 bit
Sebelum hasil kompresi dituliskan kedalam file, terlebih dahulu ditambahkan bit –
bit padding dan flagging. Penambahan bit-bit padding dilakukan agar jumlah bit dapat
dibagi menjadi per 8 bit. Bit-bit yang ditambahkan sebagai padding adalah bit 0. Jumlah
bit hasil kompresi yang telah dilakukan adalah 75 bit sehingga agar bisa dibagi menjadi
per 8 bit harus ditambahkan bit-bit padding sebanyak 5 bit. Maka diperoleh padding
00000. Agar sistem mengetahui berapa banyak padding yang ditambahkan maka
dilakukan penambahan bit-bit flagging dengan menambahkan biner sesuai dengan
padding yang ditambahkan. Karena bit-bit padding yang ditambah sebanyak 5 maka
flagging yang ditambahkan adalah biner dari 5 (dalam 8 bit) yaitu 00000101. Sehingga
diperoleh string bit akhir sebagai berikut :
111011011110110111110111111011111110010010111111110011111111101
0111111111100000000000101
Jadi total akhir bit yang diperoleh adalah 75 bit + 5 bit padding + 8 bit flag = 88 bit
Compression Ratio (�� )
�� =
�� =
���������� ���
������������ ���
88
128
Universitas Sumatera Utara
33
�� = 0,6875
Diperoleh nilai �� = 0,6875, berarti data yang terkompres besarnya adalah 68,75%
dari data awal atau dapat pula dikatakan perbandingan antara data terkompresi dengan
data awal adalah 0,6875 : 1
Space Saving (�� )
�� = 100 × (1 − ����������� �����)
�� = 100 × (1 − 0,6875)
�� = 100 × 0,3125
�� = 31,25
Diperoleh nilai �� = 31,25, berarti banyaknya data yang berhasil dihemat setelah
proses kompresi sebesar 31,25% dari data awal.
e. Analisis Proses Dekompresi Cipherteks dengan AUC
Diketahui string bit file terkompres adalah sebagai berikut :
111011011110110111110111111011111110010010111111110011111111101
0111111111100000000000101
Untuk melakukan proses dekompresi, terlebih dahulu sistem harus mengurangkan
jumlah bit data terkompres dengan panjang bit padding dan flaggingnya. Bit-bit flagging
pada string bit tersebut adalah 8 bit terakhirnya yaitu 00000101 jika kita ubah kedalam
bentuk desimal nilainya adalah 5, yang menunjukkan jumlah padding yang ditambahkan.
Dengan demikian dapat ditentukan panjang string bit yang harus dibaca sistem untuk
dilakukan proses dekompresi yaitu bit terkompres – padding – flagging = 88 – 5 – 8 = 75
bit pertama dari string bit terkompres.
Pembacaan dilakukan bit-per-bit lalu membandingkannya dengan tabel AUC. Bit
pertama bernilai 1 tidak sesuai dengan karakter dalam tabel. Karena tidak sesuai maka bit
pertama ditambahkan dengan bit berikutnya menjadi 11 masih tidak sesuai dengan
karakter dalam tabel. Tambahkan lagi bit berikutnya menjadi 111 masih tidak sesuai.
Tambahkan lagi bit berikutnya menjadi 1110 sesuai dengan karakter “¿” dalam tabel,
maka “¿” dimasukkan kedalam string dekompres. Lanjutkan dengan bit berikutnya yaitu
1, tidak sesuai.tambahkan bit berikutnya menjadi 11, masih tidak sesuai. Tambahkan lagi
Universitas Sumatera Utara
34
bit berikutnya menjadi 110 sesuai dengan karakter “²” dalam tabel, maka karakter “²”
dimasukkan dalam string dekompres. Begitu seterusnya hingga diperoleh string hasil
dekompresi yaitu : ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü.
f. Analisis Proses Dekripsi Cipherkey dengan RSA-CRT
Untuk mengembalikan cipherkey seperti semula, maka dilakukan proses dekripsi
cipherkey dengan algoritma RSA-CRT sebagai berikut :
1. Proses dekripsi cipher a = 485215
�� = � �� ��� �
�� = 48521559 ��� 727
�� = 13 ��� 727
�� = � �� ��� �
�� = 48521597 ��� 719
�� = 13 ��� 719
� = 727 × 719 = 522713
�1 = 522713/727 = 719
�2 = 522713/719 = 727
�1 −1 = 719−1 ��� 727 = 719� (727)−1 ��� 727 = 636
�2 −1 = 727−1 ��� 719 = 727� (719)−1 ��� 719 = 90
�� = (13 × 719 × 636 + 13 × 727 × 90)��� 522713
�� = (5944692 + 850590) ��� 522713
�� = (6795282) ��� 522713
�� = 13
2. Proses dekripsi cipher b = 428983
�� = � �� ��� �
�� = 42898359 ��� 727
�� = 101
�� = � �� ��� �
�� = 42898397 ��� 719
�� = 101
Universitas Sumatera Utara
35
� = 727 × 719 = 522713
�1 = 522713/727 = 719
�2 = 522713/719 = 727
�1 −1 = 719−1 ��� 727 = 719� (727)−1 ��� 727 = 636
�2 −1 = 727−1 ��� 719 = 727� (719)−1 ��� 719 = 90
�� = (101 × 719 × 636 + 101 × 727 × 90)��� 522713
�� = (46185684 + 6608430)��� 522713
�� = (52794114) ��� 522713
�� = 101
Berdasarkan perhitungan dekripsi dengan kunci privat RSA-CRT diatas maka
diperoleh nilai plainkey a = 13 dan b = 101.
g. Analisis Proses Dekripsi Cipherteks dengan Affine Cipher
Setelah diperoleh plainkey a dan b, maka proses dekompresi cipherteks menggunakan
algoritma Affine Cipher dapat dilakukan dengan rumus : � = �−1 (� − �)(��� �)
1. Cipherteks (c) = ¿²ê²©[SUB][ENQ]â
maka
â
ïâÕ
ü
:¿
= 191
²
= 178
â
ê
= 234
[TAB] = 9
[TAB] = 9
²
= 178
â
ü
©
= 169
[TAB] = 9
[SUB] = 26
[ENQ] = 5
ï
= 226
= 226
â
= 226
Õ
= 213
= 252
= 239
2. Hitung nilai invers a terhadap mod 256, diperoleh � −1 = 197
3. Proses dekripsi dengan rumus � = �−1 (� − �)(��� �)
�1 (¿ ) ≡ (197)(191 − 101) (��� 256)
�1 (¿ ) ≡ 17730 (��� 256)
�1 (¿ ) ≡ 66 → B
�2 (2 ) ≡ (197)(178 − 101)(��� 256)
�2 (2 ) ≡ 15169 (��� 256)
�2 (²) ≡ 65 → A
Universitas Sumatera Utara
36
�3 (ê) ≡ (197)(234 − 101) (��� 256)
�3 (ê) ≡ 26201 (��� 256)
�3 (ê) ≡ 89 → Y
�4 (2 ) ≡ (197)(178 − 101)(��� 256)
�4 (2 ) ≡ 15169 (��� 256)
�4 (²) ≡ 65 → A
�5 (©) ≡ (197)(169 − 101) (��� 256)
�5 (©) ≡ 13396 (��� 256)
�5 (©) ≡ 84 → T
�6 ([���]) ≡ (197)(26 − 101) (��� 256)
�6 (([���]) ≡ 35657 (��� 256)
�6 (([���]) ≡ 73 → �
�7 ([���]) ≡ (197)(5 − 101) (��� 256)
�7 ([���]) ≡ 31520 (��� 256)
�7 ([���]) ≡ 32 → [��]
�8 (â) ≡ (197)(226 − 101) (��� 256)
�8 (â) ≡ 24625 (��� 256)
�8 (â) ≡ 49 → 1
�9 ([���]) ≡ (197)(9 − 101) (��� 256)
�9 ([���]) ≡ 32308 (��� 256)
�9 ([���]) ≡ 52 → 4
�10 (â) ≡ (197)(226 − 101) (��� 256)
�10 (â) ≡ 24625 (��� 256)
�10 (â) ≡ 49 → 1
�11 ([���]) ≡ (197)(9 − 101) (��� 256)
�11 ([���]) ≡ 32308 (��� 256)
�11 ([���]) ≡ 52 → 4
Universitas Sumatera Utara
37
�12 (ï) ≡ (197)(239 − 101) (��� 256)
�12 (ï) ≡ 27186 (��� 256)
�12 (ï) ≡ 50 → 2
�13 (â) ≡ (197)(226 − 101) (��� 256)
�13 (â) ≡ 24625 (��� 256)
�13 (â) ≡ 49 → 1
�14 (Õ) ≡ (197)(213 − 101) (��� 256)
�14 (Õ) ≡ 22064 (��� 256)
�14 (Õ) ≡ 48 → 0
�15 ([���]) ≡ (197)(9 − 101) (��� 256)
�15 ([���]) ≡ 32308 (��� 256)
�15 ([���]) ≡ 52 → 4
�16 (ü) ≡ (197(252 − 101) (��� 256)
�16 (ü) ≡ 29747 (��� 256)
�16 (ü) ≡ 51 → 3
Maka diperoleh plainteks : BAYATI 141421043
3.2. Pemodelan Sistem
Pemodelan sistem bertujuan untuk memperoleh gambaran semua kondisi dan bagianbagian yang berperan dalam sistem yang dirancang. Pada penelitian ini pemodelan sistem
dilakukan dengan menggunakan use case diagram, activity diagram, dan sequence
diagram.
3.2.1. Use Case Diagram
Use case merupakan gambaran dari aktivitas atau tindakan yang dapat dilakukan user
terhadap sistem yang akan dibangun/dirancang. Use case digunakan untuk memodelkan
fungsi yang disediakan oleh sistem, sehingga user mengerti cara kerja dan kegunaan
sistem yang akan dibangun tersebut. Bentuk use case diagram pada sistem yang
dirancang dapat dilihat pada Gambar 3.2
Universitas Sumatera Utara
38
input File Teks
(.txt, .doc)
Enkrips i File Teks
input Kunci Publik
Enkrips i Key
Kompresi File Teren kripsi
pengirim
Simpan File
Dekompresi File Terenk ripsi
input File Terkompresi
(.auc)
Dekripsi Key
input kunci privat, dan
cipherkey
penerima
Dekripsi File Teks
bangkitkan kunci privat
dan kunci publik
Lihat isi File teks
Gambar 3.2. Use case Diagram pada Sistem
3.2.2. Activity Diagram
Activity diagram merupakan bagian dari pemodelan sistem yang mendeskripsikan proses
kerja dalam sebuah sistem. Activity diagram untuk proses pembangkitan kunci dapat
dilihat pada Gambar 3.3.
penerima
sistem
Bangkitkan Kunci
p, q, dP, dQ, N, e
proses bangkit kunci
Simpan Kunci Privat
dan Kunci Publik
menampilkan kunci
p, q, dP, dQ, N, e
Gambar 3.3. Activity Diagram pada Proses Pembangkitan Kunci
Activity diagram untuk proses enkripsi – kompresi file teks dapat dilihat pada
Gambar 3.4.
Universitas Sumatera Utara
39
pengirim
Input file
sistem
Cek file .doc ata .txt
Tidak
File harus doc / txt
Ya
Enkripsi file teks
Tampil isi file teks,
Kunci Affine
Proses enkripsi
Input kunci publik
Tampil cipherteks
Tampil kunci publik
Enkripsi kunci Affine
Proses enkripsi
Kompresi cipherteks
Menampilkan cipherkey
Proses kompresi
Simpan cipherkey,
Kunci privat dan File terkompresi
Tampil Rc, Ss, dan
waktu proses
Gambar 3.4. Activity Diagram pada Proses Enkripsi-Kompresi
Pada gambar 3.4, user menginputkan file teks yang akan dienkripsi, format file
harus yang berekstensi .doc atau .txt. Lalu sistem akan menampilkan isi file teks tersebut
dan kunci Affine. Untuk melakukan proses enkripsi user harus menekan tombol enkripsi
maka sistem akan mengenkripsi file teks tersebut dan menampilkan hasil enkripsi
(cipherteks) di layar. Untuk mengenkripsi kunci Affine terlebih dahulu input kunci publik
RSA-CRT lalu proses enkripsi kunci Affine maka sistem akan menampilkan cipherkey.
Setelah itu user dapat menyimpan file terenkripsi (cipherteks) dan cipherkey. Untuk
melakukan proses kompresi tekan tombol kompresi maka sistem akan memproses
Universitas Sumatera Utara
40
kompresi teks file, setelah proses kompresi selesai file terkompresi akan langsung
tersimpan di memori dan akan tampil parameter kompresi di layar.
Activity diagram untuk proses dekompresi – dekripsi file teks dapat dilihat pada
Gambar 3.5.
penerima
Input file terkompresi
(.auc)
sistem
Menampilkan lokasi file
terkompresi
Dekompresi file
Menampilkan cipherteks
Input cipherkey
Input kunci privat RSA-CRT
Dekripsi cipherkey
Menampilkan kunci affine
Dekripsi cipherteks
Menampilkan plainteks
Simpan plainteks
Gambar 3.5. Activity Diagram pada Proses Dekompresi – Dekripsi
Pada gambar 3.5., user menginputkan file terkompresi (.auc) lalu sistem melakukan
proses dekompresi maka sistem akan menampilkan hasil dekompresi berupa cipherteks.
Untuk mengembalikan cipherteks menjadi plainteks harus dilakukan dekripsi terhadap
cipherteks tersebut. User terlebih dahulu harus menginputkan cipherkey dan kunci privat
RSA-CRT untuk mengembalikan kunci. Setelah kunci enkripsi dikembalikan maka dapat
dilakukan dekripsi terhadap cipherteks tersebut.
Universitas Sumatera Utara
41
3.2.3. Sequence diagram
Sequence diagram merupakan suatu diagram yang memperlihatkan interaksi antar objek
didalam sistem. Sequence diagram pada sistem yang dirancang dapat dilihat pada Gambar
3.6 dan Gambar 3.7.
pengirim
Enkripsi Teks
dengan Affine
Buka File
Buka Kunci
Publik
Enkripsi dengan
RSA-CRT
Kompresi
AUC
cari file *.doc/
*.txt
tampil isi teks,
kunci Affine
enkripsi
plainteks
tampil cipherteks
cari kunci
publik
tampil kunci publik
enkripsi
kunci
Affine
tampil cipherkey
kompresi
cipherteks
tampil waktu proses, Cr, Ss
Gambar 3.6. Sequence Diagram pada Proses Enkripsi – Kompresi
penerima
Buka File
Terkompresi
Dekompresi
dengan AUC
Buka
Cipherkey
Buka Kunci
Privat
Dekripsi
Cipherkey
Dekripsi
Cipherteks
cari file terkompresi
dekompresi
teks file
tampil cipherteks
cari cipherkey
tampil cipherkey
cari kunci privat
dekripsi
cipherkey
tampil kunci privat
tampil kunci Affine
dekripsi
cipherteks
tampil plainteks (teks asli)
Gambar 3.7. Sequence Diagram Pada Proses Dekompresi - Dekripsi
Universitas Sumatera Utara
42
3.3. Flowchart
Flowchart adalah gambaran prosedur kegiatan dari suatu program yang ditampilkan
dalam bentuk bagan atau diagram.
3.3.1. Flowchart Sistem
Flowchart sistem merupakan bagan yang menunjukkna alur kerja atau apa yang sedang
dikerjakan didalam sistem secara keseluruhan dan menjelaskan urutan dari prosedurprosedur yang ada didalam sistem. Gambaran rancangan flowchart sistem yang akan
dibangun dapat dilihat pada Gambar 3.8.
Mula i
Input plainteks
(*.doc/*.txt)
Enkripsi Plainteks
ciphe rteks
Enkripsi Kunci
ciphe rkey
Kompresi cipherte ks
File Te ks
terkompresi
Dekompresi file teks
terkompresi
ciphe rteks
Dekripsi cipherkey
Kunci
enkripsi
Dekripsi cipherteks
Plainteks
End
Gambar 3.8. Flowchart Sistem
Universitas Sumatera Utara
43
Agar dapat lebih memahami alur proses sistem yang akan dibangun perhatikan
ilustrasi sistem pada gambar 3.9.
Affine
Cipher
44
Flowchart dari masing-masing algoritma tersebut akan dijelaskan pada subbab
berikutnya.
3.3.2. Flowchart Algoritma Affine Cipher
Gambar 3.10. Flowchart Algoritma Affine Cipher
Gambar 3.9. Menggambarkan alur pada proses enkripsi-dekripsi algoritma Affine
Cipher. Pertama-tama user menginputkan file teks *.doc atau *.txt sebagai plainteks.
Sistem akan mengacak secara otomatis kunci � dan kunci �, dengan ketentuan
���(�, 256) = 1 dan kunci � bernilai 0 < � ≤ 256. Sistem akan membaca setiap
karakter dalam plainteks dan mengenkripsinya menjadi karakter lain dalam ASCII
menjadi cipherteks dengan menggunakan rumus enkripsi � = �� + �(��� �). Untuk
mengembalikan cipherteks menjadi plainteks digunakan rumus dekripsi D = �−1 (� −
�)(��� �).
3.3.3. Flowchart Pembangkit Kunci Algoritma RSA-CRT
Universitas Sumatera Utara
45
Mulai
Bangkit Bil. Prima p dan q
dengan fermat
tidak
Gcd(p-1, q-1) = 2
ya
� =��
�(�) = (� − 1) × (� − 1)
acak �� dan ��
tidak
Gcd(�� , � − 1) = 1
Gcd(�� , � − 1) = 1
�� ≡ �� ��� 2
ya
� ≡ �� ��� (� − 1)
� ≡ �� ��� (� − 1)
� = � −1 ��� �(�)
Kpublik = (e,N)
Kprivat = (p, q, dP, dQ)
Selesai
Gambar 3.11. Flowchart Pembangkit Kunci Algoritma RSA-CRT
Gambar 3.11. menggambarkan alur pada proses pembangkitan kunci publik dan
kunci privat algoritma RSA-CRT. Proses pembangkitan kunci ini akan dilakukan oleh
sistem. Kunci privat yang akan dibangkitkan adalah bilangan prima p dan q, serta nilai dP
dan dQ. Sedangkan kunci publiknya adalah nilai e dan N. Bilangan prima p dan q
dibangkitkan secara acak dengan ketentuan ���(� − 1, � − 1) = 2. Nilai dP dan dQ
dipilih secara acak oleh sistem dengan memenuhi syarat ���(��, � − 1) = 1,
���(��, � − 1) = 1 dan �� = �� ��� 2. Kunci publik N merupakan hasil kali dari
bilangan prima p dan q, sedangkan kunci publik e diperoleh dari perhitungan � =
�−1 ��� �(�).
Universitas Sumatera Utara
46
3.3.4. Flowchart Algoritma RSA-CRT
Mulai
Input
Plainkey M
C = �� ��� �
Cipherkey
�� = � �� ��� �
�� = � �� ��� �
� ≡ �� ��� �
� ≡ �� ��� �
Plainkey
M
Selesai
Gambar 3.12. Flowchart Algoritma RSA-CRT
Gambar 3.12. menggambarkan alur pada proses enkripsi dan dekripsi algoritma
RSA-CRT. Pada sistem ini algoritma RSA-CRT akan digunakan untuk mengenkripsi
kunci Affine Cipher yang digunakan untuk mengenkripsi plainteks. Affine Cipher
memiliki dua buah kunci, yaitu kunci � dan � yang akan digunakan sebagai plainkey.
Plainkey akan dienkripsi dengan kunci publik RSA-CRT dengan rumus C = �� ��� �
sehingga menghasilkan cipherkey. Cipherkey didekripsi dengan kunci privat RSA-CRT
untuk mengembalikannya menjadi plainkey � dan �.
3.3.5. Flowchart Algoritma Alternate Unary Code
Universitas Sumatera Utara
47
Mulai
Hitung charset
(n)
Code[0] = “0”
i=0
i
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem adalah penguraian suatu sistem utuh kedalam bagian-bagian
komponennya. Dalam proses analisis sistem dilakukan identifikasi terhadap masalahmasalah didalam sistem sehingga sistem yang dirancang dapat berjalan dengan baik serta
mampu memenuhi kebutuhan pengguna (user).
3.1.1. Analisis Masalah
Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya
sebuah sistem dengan menguraikan sistem utuh ke dalam komponen-komponen
pembentuknya agar sistem yang akan dibangun dapat berjalan dan mampu memenuhi
kebutuhan pengguna (user).
Identifikasi masalah-masalah tersebut dapat ditunjukkan dengan diagram Ishikawa.
Diagram Ishikawa/diagram fishbone/diangram herringbone/diagram cause-and-effect
merupakan diagram yang diciptakan oleh Kaoru Ishikawa (1968) yang menggambarkan
penyebab terjadinya suatu permasalahan/kejadian secara spesifik. Diagram Ishikawa
berbentuk seperti tulang ikan yang terdiri dari kepala ikan (fish’s head) dan tulangtulangnya (fish’s bones). Diagram Ishikawa pada sistem ini dapat dilihat pada Gambar
3.1.
Universitas Sumatera Utara
23
Orang
Sulit menjaga
kerahasiaan dan
keamanan file teks
Ukuran file teks
yang besar
Metode
Penggunaan algoritma
pengamanan dan
kompresi file yang
belum tepat
Mengamankan dan
meminimalkan ukuran
file teks
Belum ada aplikasi yang
mengkombinasikan algoritma affine
cipher, RSA-CRT dan AUC untuk
enkripsi dan kompresi teks
Tidak ada aplikasi yang
paling tepat untuk
enkripsi dan kompresi
teks
Material
Mesin
Gambar 3.1. Diagram Ishikawa
3.1.2. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem adalah sebuah proses memahami kebutuhan sistem baru yang
akan dibuat. Dalam analisis kebutuhan sistem terdapat dua jenis kebutuhan yang harus
dianalisis, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.
a. Kebutuhan Fungsional
Kebutuhan fungsional merupakan kebutuhan yang berisi proses atau fungsi yang nantinya
akan dilakukan sistem yang dirancang. Kebutuhan fungsional yang harus dipenuhi dalam
merancang sistem pengamanan dan kompresi file teks antara lain :
1. Sistem mampu membaca string dalam file teks yang diinputkan oleh user
2. Sistem mampu melakukan enkripsi dan dekripsi file teks dengan menggunakan
algoritma Affine Cipher
3. Sistem mampu melakukan enkripsi dan dekripsi kunci Affine Cipher dengan
menggunakan algoritma RSA-CRT
4. Sistem mampu melakukan kompresi dan dekompresi pesan tersandi (ciphertext)
dengan algoritma Alternate Unary Code
Universitas Sumatera Utara
24
5. Sistem mampu menyimpan file hasil dekripsi maupun kompresi dengan ekstensi
yang berbeda dengan file asli
6. Sistem mampu menghitung parameter kompresi yaitu Compression Ratio (CR) dan
Space Saving (SS)
b. Kebutuhan Non-fungsional
Kebutuhan non-fungsional adalah kebutuhan yang harus dipenuhi agar sistem/aplikasi
mendapat feedback (umpan balik) yang baik dari pengguna. Kebutuhan non-fungsional
yang harus dipenuhi oleh aplikasi yang akan dirancang, yaitu :
1. Kinerja
Sistem yang akan dibangun harus mampu melakukan proses enkripsi-dekripsi dan
kompresi-dekompresi terhadap file teks (doc dan txt).
2. Mudah Digunakan
Sistem harus dibangun sesederhana mungkin sehingga dapat dengan mudah
digunakan oleh pengguna.
3. Ekonomis
Sistem yang dibangun harus dapat bekerja/beroperasi tanpa perangkat tambahan
yang memerlukan biaya yang besar.
4. Dokumentasi
Sistem yang akan dibangun harus mampu menyimpan file hasil enkripsi maupun
kompresi.
5. Kontrol
Sistem yang akan dibangun harus menampilkan pesan error untuk setiap input
maupun proses yang tidak sesuai
6. Pelayanan
Sistem yang akan dibangun harus dapat dikembangkan kembali ke tingkat yang
lebih kompleks
Universitas Sumatera Utara
25
3.1.3. Analisis Proses
Dalam penelitian ini, plainteks akan dienkripsi dengan algoritma Affine Cipher, lalu kunci
Affine Cipher tersebut akan di enkripsi oleh algoritma RSA-CRT. File teks yang telah di
enkripsi (ciphertext) akan di kompresi dengan algoritma Alternate Unary Code.
Untuk mengembalikan cipherteks menjadi teks awal (plainteks), pertama sistem
akan mendekompresi file terkompresi sehingga diperoleh cipherteks. Setelah itu sistem
mendekripsi cipherkey dengan kunci privat RSA-CRT untuk memperoleh kunci Affine
Cipher, kemudian dengan kunci Affine Cipher tersebut file terenkripsi (cipherteks) akan
didekripsi dan menghasilkan plainteks.
a. Analisis Proses Pembangkitan Kunci RSA-CRT
Proses pembangkitan kunci RSA-CRT dilakukan untuk memperoleh kunci publik
dan kunci privat RSA-CRT yang akan digunakan dalam proses enkripsi dan dekripsi kunci
Affine Cipher dengan algoritma RSA-CRT.
1. Bangkitkan bilangan prima besar p dan q, dimana gcd(p-1, q-1) = 2
p = 727
q = 719
gcd(p-1, q-1) = 2
2. Hitung nilai N = p
N=p
q dan �(�) = (� − 1) × (� − 1)
q = 727 × 719 = 522713
�(�) = (� − 1) × (� − 1)
�(�) = (726) × (718)
�(�) = 521268
3. Tentukan �� dan �� secara acak yang memenuhi gcd��� , � − 1� = 1, gcd��� , � −
1) = 1 dan �� ≡ �� (��� 2)
�� = 59 → gcd(59,726) = 1
�� = 97 → gcd(97,718) = 1
59 ≡ 97 (��� 2)
4. Cari nilai d sedemikian hingga � ≡ �� ��� (� − 1) dan � ≡ �� ��� (� − 1)
� ≡ 59 ��� (726)
Universitas Sumatera Utara
26
� ≡ 97 ��� (718)
Nilai d tidak dapat langsung ditentukan menggunakan CRT karena gcd(726,718)
1, oleh karena itu persamaan tersebut harus diubah dengan memanfaatkan hukum
kanselasi, yaitu :
� − 1 ≡ 59 − 1(��� 726)
� − 1 ≡ 97 − 1(��� 718)
Maka didapat :
� = �′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)
� = � ′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)
� = � ′ ≡ (� − 1)/2 ≡ (59 − 1)/2 ��� (726/2) = 29 ��� 363
� = � ′ ≡ (� − 1)/2 ≡ (97 − 1)/2 ��� (718/2) = 48 ��� 359
Diperoleh gcd(363,359) = 1, maka persamaan tersebut dapat diselesaikan dengan
metode CRT.
� = 363 × 359 = 130317
�1 = 130317/363 = 359
�2 = 130317/359 = 363
�1 −1 = 359−1 ��� 363
�1 −1 = 359� (363)−1 ��� 363
�1 −1 = 359220−1 ��� 363
�1 −1 = 359219 ��� 363
�1 −1 = 272
�2 −1 = 363−1 ��� 359
�2 −1 = 363� (359)−1 ��� 359
�2 −1 = 363358−1 ��� 359
�2 −1 = 363357 ��� 359
�2 −1 = 90
Diperoleh nilai � ′ seperti berikut :
�′ = (29 × 359 × 272 + 48 × 363 × 90)��� 130317
�′ = (2831792 + 1568160) ��� 130317
�′ = (4399952) ��� 130317
Universitas Sumatera Utara
27
�′ = 99491
� = (2 × �’) + 1
� = (2 × 99491) + 1 = 198983
5. Tentukan nilai e
� = �−1 ��� �(�)
� = 198983−1 ��� (521268)
� = 198983� (521268 )−1 ��� (521268)
� = 198983157520 −1 ��� (521268)
� = 198983157519 ��� (521268)
� = 478151
6. Maka diperoleh kunci publik dan kunci privat sebagai berikut
������� = (�, �), ������� = (�, �, ��, ��)
������� = (478151, 522713), ������� = (727,719,59,97)
b. Analisis Proses Enkripsi File Teks dengan Affine Cipher
Misalkan akan mengenkripsi file dengan isi teks "BAYATI 141421043" maka prosesnya
adalah sebagai berikut :
1. Plainteks (m) = BAYATI 141421043
n = 256 (karena jumlah karakter dalam ASCII 8 bit = 256 karakter)
maka
:B
= 75
[Sp] = 32
1
= 49
A
= 65
1
= 49
0
= 48
Y
= 76
4
= 52
4
= 52
A
= 73
1
= 49
3
= 51
T
= 77
4
= 52
I
= 65
2
= 50
2. Kunci a dan b ditentukan secara acak degan ketentuan gcd(a,n) = 1, maka diperoleh
a = 13 dan b = 101
3. Proses enkripsi dengan rumus �� (�) ≡ �� + � (��� �)
�1 (�) ≡ 13(66) + 101 (��� 256)
�1 (�) ≡ 959 (��� 256)
Universitas Sumatera Utara
28
�1 (�) ≡ 191 → ¿
�2 (�) ≡ 13(65) + 101 (��� 256)
�2 (�) ≡ 946 (��� 256)
�2 (�) ≡ 178 → ²
�3 (�) ≡ 13(89) + 101 (��� 256)
�3 (�) ≡ 1258 (��� 256)
�3 (�) ≡ 234 → ê
�4 (�) ≡ 13(65) + 101 (��� 256)
�4 (�) ≡ 946 (��� 256)
�4 (�) ≡ 178 → ²
�5 (�) ≡ 13(84) + 101 (��� 256)
�5 (�) ≡ 1193 (��� 256)
�5 (�) ≡ 169 → ©
�6 (�) ≡ 13(73) + 101 (��� 256)
�6 (�) ≡ 1050 (��� 256)
�6 (�) ≡ 26 → [���]
�7 (��) ≡ 13(32) + 101 (��� 256)
�7 (��) ≡ 517 (��� 256)
�7 (��) ≡ 5 → [���]
�8 (1) ≡ 13(49) + 101 (��� 256)
�8 (1) ≡ 738 (��� 256)
�8 (1) ≡ 226 → â
�9 (4) ≡ 13(52) + 101 (��� 256)
�9 (4) ≡ 777 (��� 256)
�9 (4) ≡ 9 → [���]
�10 (1) ≡ 13(49) + 101 (��� 256)
�10 (1) ≡ 738 (��� 256)
Universitas Sumatera Utara
29
�10 (1) ≡ 226 → â
�11 (4) ≡ 13(52) + 101 (��� 256)
�11 (4) ≡ 777 (��� 256)
�11 (4) ≡ 9 → [���]
�12 (2) ≡ 13(50) + 101 (��� 256)
�12 (2) ≡ 751 (��� 256)
�12 (2) ≡ 239 → ï
�13 (1) ≡ 13(49) + 101 (��� 256)
�13 (1) ≡ 738 (��� 256)
�13 (1) ≡ 226 → â
�14 (0) ≡ 13(48) + 101 (��� 256)
�14 (0) ≡ 725 (��� 256)
�14 (0) ≡ 213 → Õ
�15 (4) ≡ 13(52) + 101 (��� 256)
�15 (4) ≡ 777 (��� 256)
�15 (4) ≡ 9 → [���]
�16 (3) ≡ 13(51) + 101 (��� 256)
�16 (3) ≡ 764 (��� 256)
�16 (3) ≡ 252 → ü
Maka diperoleh cipherteks : ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü
c. Analisis Proses Enkripsi Kunci Affine dengan RSA-CRT
Kunci Affine Cipher yang digunakan pada proses enkripsi sebelumnya akan dienkripsi
untuk menghasilkan cipherkey. Proses enkripsi kunci Affine Cipher dengan menggunakan
algoritma RSA-CRT sebagai berikut :
Plainkey a = 13 dan b = 101
Plainkey akan dienkripsi menggunakan kunci publik RSA-CRT yang telah
dibangkitkan sebelumnya, yaitu :
Universitas Sumatera Utara
30
� = 478151
� = 522713
Proses enkripsi kunci Affine Cipher dengan rumus : � = �� ��� �
�� = �� � ��� �
�� = 13478151 ��� 522713
�� = 485215
�� = �� � ��� �
�� = 101478151 ��� 522713
�� = 428983
Diperoleh nilai cipher a = 485215 dan cipher b = 428983
d. Analisis Proses Kompresi Cipherteks dengan AUC
Yang akan dikompresi pada tahap ini adalah cipherteks yang telah dihasilkan pada proses
enkripsi sebelumnya yaitu : ¿²ê²©[SUB][ENQ]â â
ïâÕ
ü
Sehingga diperoleh :
String = ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü
[SUB] = [SUBSTITUTE]
[ENQ]= [ENQIURY]
| String | = 16
∑(character set) = {¿, ², ê, ©, [SUB], [ENQ], â, [TAB] , ï, Õ, ü }
| ∑ | = 11
Perhitungan karakter bit dengan ASCII code dapat dilihat pada Tabel 3.1.
Universitas Sumatera Utara
31
Tabel 3.1. Perhitungan ASCII Code
Char
Char Code
ASCII Code
(Decimal)
(Biner)
191
Bit
Frek
Bit * Frek
0100 0010
8
1
8
178
0100 0001
8
2
16
234
0101 1001
8
1
8
169
0101 0100
8
1
8
26
0100 1001
8
1
8
[ENQ]
5
0010 0000
8
1
8
â
226
0011 0001
8
3
24
[TAB]
9
0011 0100
8
3
24
ï
239
0011 0010
8
1
8
Õ
213
0011 0000
8
1
8
ü
252
0011 0011
8
1
8
¿
²
ê
©
[SUB]
Total
128
Hasil kompresi dengan algortima Alternate Unary Code (AUC) dapat dilihat pada
Tabel 3.2. Karakter disusun secara descending (diurutkan berdasarkan frekuensi terbesar).
Tabel 3.2. Perhitungan AUC Code
Char
AUC Code
Bit
Frek
Bit * Frek
0
1
3
3
10
2
3
6
²
110
3
2
6
¿
1110
4
1
4
ê
11110
5
1
5
©
111110
6
1
6
[SUB]
1111110
7
1
7
[ENQ]
11111110
8
1
8
ï
111111110
9
1
9
Õ
1111111110
10
1
10
ü
11111111110
11
1
11
â
[TAB]
Total
75
Universitas Sumatera Utara
32
Pada tabel 3.2. dapat dilihat bahwa total bit setelah dikompresi dengan algoritma
AUC adalah 75 bit. Tahap selanjutnya adalah menyusun kode tiap karakter sesuai dengan
posisi karakter pada string awal yaitu ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü
Sehingga diperoleh string bit :
1110110111101101111101111110111111100100101111111100111111111010111111111
10 = 75 bit
Sebelum hasil kompresi dituliskan kedalam file, terlebih dahulu ditambahkan bit –
bit padding dan flagging. Penambahan bit-bit padding dilakukan agar jumlah bit dapat
dibagi menjadi per 8 bit. Bit-bit yang ditambahkan sebagai padding adalah bit 0. Jumlah
bit hasil kompresi yang telah dilakukan adalah 75 bit sehingga agar bisa dibagi menjadi
per 8 bit harus ditambahkan bit-bit padding sebanyak 5 bit. Maka diperoleh padding
00000. Agar sistem mengetahui berapa banyak padding yang ditambahkan maka
dilakukan penambahan bit-bit flagging dengan menambahkan biner sesuai dengan
padding yang ditambahkan. Karena bit-bit padding yang ditambah sebanyak 5 maka
flagging yang ditambahkan adalah biner dari 5 (dalam 8 bit) yaitu 00000101. Sehingga
diperoleh string bit akhir sebagai berikut :
111011011110110111110111111011111110010010111111110011111111101
0111111111100000000000101
Jadi total akhir bit yang diperoleh adalah 75 bit + 5 bit padding + 8 bit flag = 88 bit
Compression Ratio (�� )
�� =
�� =
���������� ���
������������ ���
88
128
Universitas Sumatera Utara
33
�� = 0,6875
Diperoleh nilai �� = 0,6875, berarti data yang terkompres besarnya adalah 68,75%
dari data awal atau dapat pula dikatakan perbandingan antara data terkompresi dengan
data awal adalah 0,6875 : 1
Space Saving (�� )
�� = 100 × (1 − ����������� �����)
�� = 100 × (1 − 0,6875)
�� = 100 × 0,3125
�� = 31,25
Diperoleh nilai �� = 31,25, berarti banyaknya data yang berhasil dihemat setelah
proses kompresi sebesar 31,25% dari data awal.
e. Analisis Proses Dekompresi Cipherteks dengan AUC
Diketahui string bit file terkompres adalah sebagai berikut :
111011011110110111110111111011111110010010111111110011111111101
0111111111100000000000101
Untuk melakukan proses dekompresi, terlebih dahulu sistem harus mengurangkan
jumlah bit data terkompres dengan panjang bit padding dan flaggingnya. Bit-bit flagging
pada string bit tersebut adalah 8 bit terakhirnya yaitu 00000101 jika kita ubah kedalam
bentuk desimal nilainya adalah 5, yang menunjukkan jumlah padding yang ditambahkan.
Dengan demikian dapat ditentukan panjang string bit yang harus dibaca sistem untuk
dilakukan proses dekompresi yaitu bit terkompres – padding – flagging = 88 – 5 – 8 = 75
bit pertama dari string bit terkompres.
Pembacaan dilakukan bit-per-bit lalu membandingkannya dengan tabel AUC. Bit
pertama bernilai 1 tidak sesuai dengan karakter dalam tabel. Karena tidak sesuai maka bit
pertama ditambahkan dengan bit berikutnya menjadi 11 masih tidak sesuai dengan
karakter dalam tabel. Tambahkan lagi bit berikutnya menjadi 111 masih tidak sesuai.
Tambahkan lagi bit berikutnya menjadi 1110 sesuai dengan karakter “¿” dalam tabel,
maka “¿” dimasukkan kedalam string dekompres. Lanjutkan dengan bit berikutnya yaitu
1, tidak sesuai.tambahkan bit berikutnya menjadi 11, masih tidak sesuai. Tambahkan lagi
Universitas Sumatera Utara
34
bit berikutnya menjadi 110 sesuai dengan karakter “²” dalam tabel, maka karakter “²”
dimasukkan dalam string dekompres. Begitu seterusnya hingga diperoleh string hasil
dekompresi yaitu : ¿²ê²©[SUB][ENQ]â
â
ïâÕ
ü.
f. Analisis Proses Dekripsi Cipherkey dengan RSA-CRT
Untuk mengembalikan cipherkey seperti semula, maka dilakukan proses dekripsi
cipherkey dengan algoritma RSA-CRT sebagai berikut :
1. Proses dekripsi cipher a = 485215
�� = � �� ��� �
�� = 48521559 ��� 727
�� = 13 ��� 727
�� = � �� ��� �
�� = 48521597 ��� 719
�� = 13 ��� 719
� = 727 × 719 = 522713
�1 = 522713/727 = 719
�2 = 522713/719 = 727
�1 −1 = 719−1 ��� 727 = 719� (727)−1 ��� 727 = 636
�2 −1 = 727−1 ��� 719 = 727� (719)−1 ��� 719 = 90
�� = (13 × 719 × 636 + 13 × 727 × 90)��� 522713
�� = (5944692 + 850590) ��� 522713
�� = (6795282) ��� 522713
�� = 13
2. Proses dekripsi cipher b = 428983
�� = � �� ��� �
�� = 42898359 ��� 727
�� = 101
�� = � �� ��� �
�� = 42898397 ��� 719
�� = 101
Universitas Sumatera Utara
35
� = 727 × 719 = 522713
�1 = 522713/727 = 719
�2 = 522713/719 = 727
�1 −1 = 719−1 ��� 727 = 719� (727)−1 ��� 727 = 636
�2 −1 = 727−1 ��� 719 = 727� (719)−1 ��� 719 = 90
�� = (101 × 719 × 636 + 101 × 727 × 90)��� 522713
�� = (46185684 + 6608430)��� 522713
�� = (52794114) ��� 522713
�� = 101
Berdasarkan perhitungan dekripsi dengan kunci privat RSA-CRT diatas maka
diperoleh nilai plainkey a = 13 dan b = 101.
g. Analisis Proses Dekripsi Cipherteks dengan Affine Cipher
Setelah diperoleh plainkey a dan b, maka proses dekompresi cipherteks menggunakan
algoritma Affine Cipher dapat dilakukan dengan rumus : � = �−1 (� − �)(��� �)
1. Cipherteks (c) = ¿²ê²©[SUB][ENQ]â
maka
â
ïâÕ
ü
:¿
= 191
²
= 178
â
ê
= 234
[TAB] = 9
[TAB] = 9
²
= 178
â
ü
©
= 169
[TAB] = 9
[SUB] = 26
[ENQ] = 5
ï
= 226
= 226
â
= 226
Õ
= 213
= 252
= 239
2. Hitung nilai invers a terhadap mod 256, diperoleh � −1 = 197
3. Proses dekripsi dengan rumus � = �−1 (� − �)(��� �)
�1 (¿ ) ≡ (197)(191 − 101) (��� 256)
�1 (¿ ) ≡ 17730 (��� 256)
�1 (¿ ) ≡ 66 → B
�2 (2 ) ≡ (197)(178 − 101)(��� 256)
�2 (2 ) ≡ 15169 (��� 256)
�2 (²) ≡ 65 → A
Universitas Sumatera Utara
36
�3 (ê) ≡ (197)(234 − 101) (��� 256)
�3 (ê) ≡ 26201 (��� 256)
�3 (ê) ≡ 89 → Y
�4 (2 ) ≡ (197)(178 − 101)(��� 256)
�4 (2 ) ≡ 15169 (��� 256)
�4 (²) ≡ 65 → A
�5 (©) ≡ (197)(169 − 101) (��� 256)
�5 (©) ≡ 13396 (��� 256)
�5 (©) ≡ 84 → T
�6 ([���]) ≡ (197)(26 − 101) (��� 256)
�6 (([���]) ≡ 35657 (��� 256)
�6 (([���]) ≡ 73 → �
�7 ([���]) ≡ (197)(5 − 101) (��� 256)
�7 ([���]) ≡ 31520 (��� 256)
�7 ([���]) ≡ 32 → [��]
�8 (â) ≡ (197)(226 − 101) (��� 256)
�8 (â) ≡ 24625 (��� 256)
�8 (â) ≡ 49 → 1
�9 ([���]) ≡ (197)(9 − 101) (��� 256)
�9 ([���]) ≡ 32308 (��� 256)
�9 ([���]) ≡ 52 → 4
�10 (â) ≡ (197)(226 − 101) (��� 256)
�10 (â) ≡ 24625 (��� 256)
�10 (â) ≡ 49 → 1
�11 ([���]) ≡ (197)(9 − 101) (��� 256)
�11 ([���]) ≡ 32308 (��� 256)
�11 ([���]) ≡ 52 → 4
Universitas Sumatera Utara
37
�12 (ï) ≡ (197)(239 − 101) (��� 256)
�12 (ï) ≡ 27186 (��� 256)
�12 (ï) ≡ 50 → 2
�13 (â) ≡ (197)(226 − 101) (��� 256)
�13 (â) ≡ 24625 (��� 256)
�13 (â) ≡ 49 → 1
�14 (Õ) ≡ (197)(213 − 101) (��� 256)
�14 (Õ) ≡ 22064 (��� 256)
�14 (Õ) ≡ 48 → 0
�15 ([���]) ≡ (197)(9 − 101) (��� 256)
�15 ([���]) ≡ 32308 (��� 256)
�15 ([���]) ≡ 52 → 4
�16 (ü) ≡ (197(252 − 101) (��� 256)
�16 (ü) ≡ 29747 (��� 256)
�16 (ü) ≡ 51 → 3
Maka diperoleh plainteks : BAYATI 141421043
3.2. Pemodelan Sistem
Pemodelan sistem bertujuan untuk memperoleh gambaran semua kondisi dan bagianbagian yang berperan dalam sistem yang dirancang. Pada penelitian ini pemodelan sistem
dilakukan dengan menggunakan use case diagram, activity diagram, dan sequence
diagram.
3.2.1. Use Case Diagram
Use case merupakan gambaran dari aktivitas atau tindakan yang dapat dilakukan user
terhadap sistem yang akan dibangun/dirancang. Use case digunakan untuk memodelkan
fungsi yang disediakan oleh sistem, sehingga user mengerti cara kerja dan kegunaan
sistem yang akan dibangun tersebut. Bentuk use case diagram pada sistem yang
dirancang dapat dilihat pada Gambar 3.2
Universitas Sumatera Utara
38
input File Teks
(.txt, .doc)
Enkrips i File Teks
input Kunci Publik
Enkrips i Key
Kompresi File Teren kripsi
pengirim
Simpan File
Dekompresi File Terenk ripsi
input File Terkompresi
(.auc)
Dekripsi Key
input kunci privat, dan
cipherkey
penerima
Dekripsi File Teks
bangkitkan kunci privat
dan kunci publik
Lihat isi File teks
Gambar 3.2. Use case Diagram pada Sistem
3.2.2. Activity Diagram
Activity diagram merupakan bagian dari pemodelan sistem yang mendeskripsikan proses
kerja dalam sebuah sistem. Activity diagram untuk proses pembangkitan kunci dapat
dilihat pada Gambar 3.3.
penerima
sistem
Bangkitkan Kunci
p, q, dP, dQ, N, e
proses bangkit kunci
Simpan Kunci Privat
dan Kunci Publik
menampilkan kunci
p, q, dP, dQ, N, e
Gambar 3.3. Activity Diagram pada Proses Pembangkitan Kunci
Activity diagram untuk proses enkripsi – kompresi file teks dapat dilihat pada
Gambar 3.4.
Universitas Sumatera Utara
39
pengirim
Input file
sistem
Cek file .doc ata .txt
Tidak
File harus doc / txt
Ya
Enkripsi file teks
Tampil isi file teks,
Kunci Affine
Proses enkripsi
Input kunci publik
Tampil cipherteks
Tampil kunci publik
Enkripsi kunci Affine
Proses enkripsi
Kompresi cipherteks
Menampilkan cipherkey
Proses kompresi
Simpan cipherkey,
Kunci privat dan File terkompresi
Tampil Rc, Ss, dan
waktu proses
Gambar 3.4. Activity Diagram pada Proses Enkripsi-Kompresi
Pada gambar 3.4, user menginputkan file teks yang akan dienkripsi, format file
harus yang berekstensi .doc atau .txt. Lalu sistem akan menampilkan isi file teks tersebut
dan kunci Affine. Untuk melakukan proses enkripsi user harus menekan tombol enkripsi
maka sistem akan mengenkripsi file teks tersebut dan menampilkan hasil enkripsi
(cipherteks) di layar. Untuk mengenkripsi kunci Affine terlebih dahulu input kunci publik
RSA-CRT lalu proses enkripsi kunci Affine maka sistem akan menampilkan cipherkey.
Setelah itu user dapat menyimpan file terenkripsi (cipherteks) dan cipherkey. Untuk
melakukan proses kompresi tekan tombol kompresi maka sistem akan memproses
Universitas Sumatera Utara
40
kompresi teks file, setelah proses kompresi selesai file terkompresi akan langsung
tersimpan di memori dan akan tampil parameter kompresi di layar.
Activity diagram untuk proses dekompresi – dekripsi file teks dapat dilihat pada
Gambar 3.5.
penerima
Input file terkompresi
(.auc)
sistem
Menampilkan lokasi file
terkompresi
Dekompresi file
Menampilkan cipherteks
Input cipherkey
Input kunci privat RSA-CRT
Dekripsi cipherkey
Menampilkan kunci affine
Dekripsi cipherteks
Menampilkan plainteks
Simpan plainteks
Gambar 3.5. Activity Diagram pada Proses Dekompresi – Dekripsi
Pada gambar 3.5., user menginputkan file terkompresi (.auc) lalu sistem melakukan
proses dekompresi maka sistem akan menampilkan hasil dekompresi berupa cipherteks.
Untuk mengembalikan cipherteks menjadi plainteks harus dilakukan dekripsi terhadap
cipherteks tersebut. User terlebih dahulu harus menginputkan cipherkey dan kunci privat
RSA-CRT untuk mengembalikan kunci. Setelah kunci enkripsi dikembalikan maka dapat
dilakukan dekripsi terhadap cipherteks tersebut.
Universitas Sumatera Utara
41
3.2.3. Sequence diagram
Sequence diagram merupakan suatu diagram yang memperlihatkan interaksi antar objek
didalam sistem. Sequence diagram pada sistem yang dirancang dapat dilihat pada Gambar
3.6 dan Gambar 3.7.
pengirim
Enkripsi Teks
dengan Affine
Buka File
Buka Kunci
Publik
Enkripsi dengan
RSA-CRT
Kompresi
AUC
cari file *.doc/
*.txt
tampil isi teks,
kunci Affine
enkripsi
plainteks
tampil cipherteks
cari kunci
publik
tampil kunci publik
enkripsi
kunci
Affine
tampil cipherkey
kompresi
cipherteks
tampil waktu proses, Cr, Ss
Gambar 3.6. Sequence Diagram pada Proses Enkripsi – Kompresi
penerima
Buka File
Terkompresi
Dekompresi
dengan AUC
Buka
Cipherkey
Buka Kunci
Privat
Dekripsi
Cipherkey
Dekripsi
Cipherteks
cari file terkompresi
dekompresi
teks file
tampil cipherteks
cari cipherkey
tampil cipherkey
cari kunci privat
dekripsi
cipherkey
tampil kunci privat
tampil kunci Affine
dekripsi
cipherteks
tampil plainteks (teks asli)
Gambar 3.7. Sequence Diagram Pada Proses Dekompresi - Dekripsi
Universitas Sumatera Utara
42
3.3. Flowchart
Flowchart adalah gambaran prosedur kegiatan dari suatu program yang ditampilkan
dalam bentuk bagan atau diagram.
3.3.1. Flowchart Sistem
Flowchart sistem merupakan bagan yang menunjukkna alur kerja atau apa yang sedang
dikerjakan didalam sistem secara keseluruhan dan menjelaskan urutan dari prosedurprosedur yang ada didalam sistem. Gambaran rancangan flowchart sistem yang akan
dibangun dapat dilihat pada Gambar 3.8.
Mula i
Input plainteks
(*.doc/*.txt)
Enkripsi Plainteks
ciphe rteks
Enkripsi Kunci
ciphe rkey
Kompresi cipherte ks
File Te ks
terkompresi
Dekompresi file teks
terkompresi
ciphe rteks
Dekripsi cipherkey
Kunci
enkripsi
Dekripsi cipherteks
Plainteks
End
Gambar 3.8. Flowchart Sistem
Universitas Sumatera Utara
43
Agar dapat lebih memahami alur proses sistem yang akan dibangun perhatikan
ilustrasi sistem pada gambar 3.9.
Affine
Cipher
44
Flowchart dari masing-masing algoritma tersebut akan dijelaskan pada subbab
berikutnya.
3.3.2. Flowchart Algoritma Affine Cipher
Gambar 3.10. Flowchart Algoritma Affine Cipher
Gambar 3.9. Menggambarkan alur pada proses enkripsi-dekripsi algoritma Affine
Cipher. Pertama-tama user menginputkan file teks *.doc atau *.txt sebagai plainteks.
Sistem akan mengacak secara otomatis kunci � dan kunci �, dengan ketentuan
���(�, 256) = 1 dan kunci � bernilai 0 < � ≤ 256. Sistem akan membaca setiap
karakter dalam plainteks dan mengenkripsinya menjadi karakter lain dalam ASCII
menjadi cipherteks dengan menggunakan rumus enkripsi � = �� + �(��� �). Untuk
mengembalikan cipherteks menjadi plainteks digunakan rumus dekripsi D = �−1 (� −
�)(��� �).
3.3.3. Flowchart Pembangkit Kunci Algoritma RSA-CRT
Universitas Sumatera Utara
45
Mulai
Bangkit Bil. Prima p dan q
dengan fermat
tidak
Gcd(p-1, q-1) = 2
ya
� =��
�(�) = (� − 1) × (� − 1)
acak �� dan ��
tidak
Gcd(�� , � − 1) = 1
Gcd(�� , � − 1) = 1
�� ≡ �� ��� 2
ya
� ≡ �� ��� (� − 1)
� ≡ �� ��� (� − 1)
� = � −1 ��� �(�)
Kpublik = (e,N)
Kprivat = (p, q, dP, dQ)
Selesai
Gambar 3.11. Flowchart Pembangkit Kunci Algoritma RSA-CRT
Gambar 3.11. menggambarkan alur pada proses pembangkitan kunci publik dan
kunci privat algoritma RSA-CRT. Proses pembangkitan kunci ini akan dilakukan oleh
sistem. Kunci privat yang akan dibangkitkan adalah bilangan prima p dan q, serta nilai dP
dan dQ. Sedangkan kunci publiknya adalah nilai e dan N. Bilangan prima p dan q
dibangkitkan secara acak dengan ketentuan ���(� − 1, � − 1) = 2. Nilai dP dan dQ
dipilih secara acak oleh sistem dengan memenuhi syarat ���(��, � − 1) = 1,
���(��, � − 1) = 1 dan �� = �� ��� 2. Kunci publik N merupakan hasil kali dari
bilangan prima p dan q, sedangkan kunci publik e diperoleh dari perhitungan � =
�−1 ��� �(�).
Universitas Sumatera Utara
46
3.3.4. Flowchart Algoritma RSA-CRT
Mulai
Input
Plainkey M
C = �� ��� �
Cipherkey
�� = � �� ��� �
�� = � �� ��� �
� ≡ �� ��� �
� ≡ �� ��� �
Plainkey
M
Selesai
Gambar 3.12. Flowchart Algoritma RSA-CRT
Gambar 3.12. menggambarkan alur pada proses enkripsi dan dekripsi algoritma
RSA-CRT. Pada sistem ini algoritma RSA-CRT akan digunakan untuk mengenkripsi
kunci Affine Cipher yang digunakan untuk mengenkripsi plainteks. Affine Cipher
memiliki dua buah kunci, yaitu kunci � dan � yang akan digunakan sebagai plainkey.
Plainkey akan dienkripsi dengan kunci publik RSA-CRT dengan rumus C = �� ��� �
sehingga menghasilkan cipherkey. Cipherkey didekripsi dengan kunci privat RSA-CRT
untuk mengembalikannya menjadi plainkey � dan �.
3.3.5. Flowchart Algoritma Alternate Unary Code
Universitas Sumatera Utara
47
Mulai
Hitung charset
(n)
Code[0] = “0”
i=0
i