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