36
BAB III
METODOLOGI PENELITIAN 3.1 Analisis Permasalahan
Algoritma Block Cipher dengan kunci simetri adalah algoritma yang proses enkripsi dan dekripsinya menggunakan kunci yang sama. Algoritma ini mengenkripsi plaintext menjadi ciphertext setiap blok per blok dengan meng XOR kan blok plaintext dengan keystream. Keamanan algoritma ini bergantung pada keystream yang akan digunakan, karena jika keystream seluruhnya adalah 0, maka tidak akan mengubah plaintext menjadi kode- kode yang sulit dimengerti. Jika keystream berulang secara periodik maka kriptanalis dapat dengan mudah mengetahui pola keystreamnya, sehingga dapat dengan mudah pula mengetahui pesan aslinya. Maka dari itu, keystream haruslah benar-benar acak agar pesan benar-benar terjaga keamanannya.
Pada penelitian kali ini dilakukan pengelompokan plaintext yang berguna untuk mengetahui blok-blok biner dari plaintext yang memiliki karakteristik yang mirip. Pengelompokan ini dilakukan menggunakan metode K-Means Clustering, yang mana metode ini melakukan pengelompokan data dengan sistem partisi. Plaintext akan dikonversi terlebih dahulu menjadi bit-bit biner, yang selanjutnya di partisi menjadi beberapa bit tergantung masukan dari pengguna. Lalu bit-bit yang telah di partisi tadi akan diambil secara acak untuk dijadikan centroid. Setelah centroid didapatkan, maka akan dihitung jarak antara semua blok plaintext dengan centroid menggunakan Euclidean Distance. Dalam perhitungan jarak ini terdapat dua variabel yang akan menjadi tolak ukur dalam perhitungan, yaitu variabel x yang merupakan frekuensi dari biner 1 di dalam blok plaintext, dan variabel y yang merupakan nilai dari perubahan setiap bit di dalam blok plaintext.
Pengelompokan plaintext ini digunakan sebagai parameter penentuan
kunci untuk proses enkripsi dan dekripsi. Setelah plaintext berhasil
dikelompokan ke dalam beberapa cluster, terdapat ketentuan yang harus
37
diperhatikan. Untuk blok plaintext yang berada di dalam satu cluster, maka tiap-tiap anggota cluster tersebut harus di enkripsi dengan keystream yang berbeda, namun jika blok plaintext terdapat dalam cluster yang berbeda maka diperbolehkan menggunakan keystream yang sama dengan anggota cluster lain. Hal ini berfungsi untuk membangun keystream yang lebih beragam dan acak yang tentunya akan menghilangkan hubungan antara ciphertext yang memiliki plaintext dengan karakteristik yang sama atau mirip, sehingga akan menyulitkan dan mengecoh kriptanalis dalam memecahkan pesan aslinya.
3.2 Rancangan Algoritma
Penelitian ini memiliki dua tahap dalam perancangan sistem algoritma stream cipher ini, yaitu proses enkripsi dan proses dekripsi.
3.2.1 Proses Enkripsi
Proses enkripsi adalah proses mengubah plaintext menjadi ciphertext.
Plaintext yang sebelumnya telah dikelompokan menggunakan k-means
clustering, akan di XOR kan dengan keystream yang telah dibangun
menggunakan keystream generator LFSR untuk menghasilkan sebuah
ciphertext. Gambar III.1 merupakan flowchart dari proses enkripsi.
38
Gambar III.1 Flowchart proses enkripsi
39
Gambar III.1 merupakan flowchart yang menjelaskan proses enkripsi secara garis besar. Yang mana di dalamnya terdapat dua proses yaitu pengelompokan plaintext menggunaan k-means clustering dan pembentukan keystream menggunakan LFSR.
a) Proses pengelompokan plaintext menggunakan k-means clustering
Pada proses ini dilakukan pengelompokan blok-blok plaintext berdasarkan karakteristik dari bit-bit plaintext.
Pengelompokan ini dimulai dari penentuan beberapa centroid secara random terhadap blok-blok plaintext. Selanjutnya, akan dilakukan perhitungan jarak menggunakan Euclidean Distance untuk menentukan kemiripan masing-masing blok plaintext dengan centroid berdasarkan dua variabel, yaitu variabel x yang merupakan frekuensi dari biner 1 dan variabel y yang merupakan nilai perubahan dari setiap bit di dalam blok plaintext. Misalkan terdapat substring dengan ukuran 10 bit yaitu 1011010010, maka variabel x akan bernilai 5 karena terdapat 5 buah biner 1 di dalam substring. Sedangkan untuk variabel y bernilai 7 dengan melihat perubahan biner dari 1 ke 0 atau sebaliknya.
Blok plaintext akan dibagi menjadi beberapa cluster tergantung dari jumlah centroid yang telah ditentukan sebelumnya. Hasil dari perhitungan Euclidean Distance akan menentukan blok plaintext tersebut masuk ke dalam cluster yang mana, berdasarkan jarak terdekatnya terhadap salah satu centroid.
Setelah itu, dilakukan perhitungan rata-rata dari anggota cluster, dan hasilnya akan menjadi nilai untuk centroid baru. Hal ini akan dilakukan beberapa kali iterasi sampai akhirnya blok plaintext tidak lagi berpindah cluster.
b) Proses pembentukan keystream menggunakan LFSR
Pada proses ini dibutuhkan kunci utama yang bersifat
rahasia, kunci inilah yang akan dibangkitkan menggunakan
40
metode LFSR. Metode ini terdiri dari dua bagian, yaitu register geser dan fungsi umpan balik. Bit paling kiri kunci utama akan di XOR kan dengan bit paling kanan dari kunci utama, hasilnya akan diletakan ke bit paling depan kunci utama yang otomatis akan menggeser semua bit di register sebanyak 1 kali ke kanan, bit terakhir akan otomatis keluar dari register dan menjadi rangkaian keystream. Hal tersebut akan dilakukan berulang sampai dengan bit yang menjadi keystream tadi memiliki panjang yang sama dengan blok plaintext.
Pembentukan kunci ini akan dilakukan sebanyak jumlah maksimal dari anggota cluster. Kunci utama akan dilakukan pengacakan urutan bit untuk memenuhi kombinasi biner yang dibutuhkan. Barulah proses LFSR dioperasikan terhadap masing-masing kunci sesuai penjelasan diatas.
Kedua proses diatas dapat dilihat pada Gambar III.2 berikut.
(a) Flowchart pengelompokan (b) Flowchart pembentukan
plaintext keystream
Gambar III.2 Flowchart pengelompokan plaintext dan pembentukan keystream
41
Berikut merupakan contoh manual dari proses enkripsi. Pada contoh ini digunakan kata “Enkripsi” sebagai pesan masukan atau plaintext. Dengan jumlah bit partisi yaitu 10, dan jumlah cluster yaitu 2. Konversi kode ASCII biner dapat dilihat pada tabel III.1 berikut.
Tabel III.1 Konversi plaintext
Plaintext Desimal Biner
E 69 01000101
n 110 01101110
k 107 01101011
r 114 01110010
i 105 01101001
p 112 01110000
s 115 01110011
i 105 01101001
Plaintext sebelum di konversi : Enkripsi
Plaintext setelah di konversi :
0100010101101110011010110111001001101001011100000111001101101 001000000
Plaintext di partisi menjadi blok-blok, pada contoh kali ini plaintext akan di partisi sebanyak 10 karakter setiap bloknya. Untuk blok terakhir yang karakternya tidak memenuhi, maka akan dilakukan padding dengan penambahan biner 0 sebanyak yang dibutuhkan. Pada contoh ini, bit terakhir dilakukan penambahan biner 0 sebanyak 6 bit.
Dari blok plaintext diatas akan dibentuk data dengan dua variabel x dan
y seperti yang telah dijelaskan sebelumnya. Data plaintext dapat dilihat pada
tabel III.2 berikut.
42
Tabel III.2 Data plaintext
n Data Plaintext x y
1 0100010101 4 7
2 1011100110 6 5
3 1011011100 6 5
4 1001101001 5 6
5 0111000001 4 3
6 1100110110 6 5
7 1001000000 2 3
Proses selanjutnya adalah pengelompokan plaintext menggunakan k-means clustering, dimulai dengan menentukan data yang akan dijadikan centroid.
Pada contoh kali ini akan digunakan 2 data sebagai centroid, yaitu data 1 dan data 7 dengan C1 = {4,7} dan C2 = {2,3}. Berikut perhitungan jarak semua data dengan masing-masing centroid menggunakan euclidean distance.
Lakukan perhitungan jarak Euclidean Distance untuk masing-masing data terhadap centroid 1 :
D (1,1) = √(4 − 4)
2+ (7 − 7)
2= 0
D (2,1) = √(6 − 4)
2+ (5 − 7)
2= 4 + 4 = 8
D (3,1) = √(6 − 4)
2+ (5 − 7)
2= 4 + 4 = 8
D (4,1) = √(5 − 4)
2+ (6 − 7)
2= 1+ 1 = 2
D (5,1) = √(4 − 4)
2+ (3 − 7)
2= 0 + 16 = 16
D (6,1) = √(6 − 4)
2+ (5 − 7)
2= 4 + 4 = 8
D (7,1) = √(2 − 4)
2+ (3 − 7)
2= 4 + 16 = 20
43
Lakukan perhitungan jarak Euclidean Distance untuk masing-masing data terhadap centroid 2 :
D (1,2) = √(4 − 2)
2+ (7 − 3)
2= 4 + 16 = 20 D (2,2) = √(6 − 2)
2+ (5 − 3)
2= 16 + 4 = 20 D (3,2) = √(6 − 2)
2+ (5 − 3)
2= 16 + 4 = 20 D (4,2) = √(5 − 2)
2+ (6 − 3)
2= 9 + 9 = 18 D (5,2) = √(4 − 2)
2+ (3 − 3)
2= 4 + 0 = 4 D (6,2) = √(6 − 2)
2+ (5 − 3)
2= 16 + 4 = 20 D (7,2) = √(2 − 2)
2+ (3 − 3)
2= 0
Dari perhitungan diatas, didapatkan hasil sebagai berikut :
Tabel III.3 Hasil Clustering Iterasi 1
n Data Plaintext x y Cluster 1 Cluster 2
1 0100010101 4 7 √
2 1011100110 6 5 √
3 1011011100 6 5 √
4 1001101001 5 6 √
5 0111000001 4 3 √
6 1100110110 6 5 √
7 1001000000 2 3 √
Setelah iterasi satu dilakukan dan data telah masuk ke dalam masing- masing cluster, maka dicari nilai rata-rata dari anggota cluster untuk menentukan nilai centroid yang baru.
Cluster 1 : x = (4 + 6 + 6 + 5 + 6) / 5 = 27/5 = 5.4
44
y = (7 + 5 +5 + 6 + 5 ) / 5 = 28 / 5 = 5.6 Cluster 2 : x = (4 + 2) / 2 = 3
y = (4 + 2) / 2 = 3
Maka ditentukan nilai C1 = {5.4 , 5.6} dan C2 = {3, 3}
Lakukan perhitungan jarak Euclidean Distance untuk masing-masing data terhadap centroid 1 :
D (1,1) = √(4 − 5.4)
2+ (7 − 5.6)
2= 1.96 + 1.96 = 3.92 D (2,1) = √(6 − 5.4)
2+ (5 − 5.6)
2= 0.36 + 0.36 = 0.72 D (3,1) = √(6 − 5.4)
2+ (5 − 5.6)
2= 0.36 + 0.36 = 0.72 D (4,1) = √(5 − 5.4)
2+ (6 − 5.6)
2= 0.16 + 0.16 = 0.32 D (5,1) = √(4 − 5.4)
2+ (3 − 5.6)
2= 1.96 + 6.76 = 8.72 D (6,1) = √(6 − 5.4)
2+ (5 − 5.6)
2= 0.36 + 0.36 = 0.72 D (7,1) = √(2 − 5.4)
2+ (3 − 5.6)
2= 11.56 + 6.76 = 18.32
Lakukan perhitungan jarak Euclidean Distance untuk masing-masing data terhadap centroid 2 :
D (1,2) = √(4 − 3)
2+ (7 − 3)
2= 1 + 16 = 17 D (2, 2) = √(6 − 3)
2+ (5 − 3)
2= 9 + 4 = 13 D (3, 2) = √(6 − 3)
2+ (5 − 3)
2= 9 + 4 = 13 D (4, 2) = √(5 − 3)
2+ (6 − 3)
2= 4 + 9 = 13 D (5, 2) = √(4 − 3)
2+ (3 − 3)
2= 1
D (6, 2) = √(6 − 3)
2+ (5 − 3)
2= 9 + 4 = 13 D (7, 2) = √(2 − 3)
2+ (3 − 3)
2= 1
Dari perhitungan diatas, didapatkan hasil sebagai berikut :
45
Tabel III.4 Hasil Clustering Iterasi 2
n Data Plaintext x y Custer 1 Cluster 2
1 0100010101 4 7 √
2 1011100110 6 5 √
3 1011011100 6 5 √
4 1001101001 5 6 √
5 0111000001 4 3 √
6 1100110110 6 5 √
7 1001000000 2 3 √
Karena data tidak ada yang berpindah cluster lagi otomatis nilai centroid pun tidak akan berubah, maka proses clustering selesai. Maka didapat kode cluster sebagai berikut [C1, C1, C1, C1, C2, C1, C2], atau dapat diterjemahkan sebagai data 1 masuk kedalam cluster 1, data 2 masuk kedalam cluster 2 dan seterusnya.
Setelah proses clustering selesai, terdapat beberapa ketentuan yang harus dipenuhi diantaranya yaitu :
2
t≥ x ≥ t dan 2
t≥ m
Dimana , t : jumlah bit kunci utama yang akan dibangkitkan x : jumlah bit partisi
m : jumlah anggota maksimal dalam cluster
Ketentuan diatas digunakan untuk menentukan berapa jumlah minimal
bit kunci utama yang harus digunakan untuk dapat memenuhi kombinasi
kunci pada saat proses enkripsi. Sebelumnya pada flowchart enkripsi telah
dijelaskan bahwa yang menjadi masukan oleh pengguna diantaranya yaitu
plaintext, jumlah bit partisi, dan jumlah cluster. Setelah plaintext
dimasukan, selanjutnya pengguna memasukan jumlah bit partisi, lalu jumlah
46
cluster yang di inginkan untuk pengelompokan plaintext. Setelah itu,akan dilakukan proses clustering dan pengecekan yang melibatkan ketentuan diatas, berfungsi sebagai terkaan untuk jumlah bit kunci utamanya. Pada contoh ini digunakan dua cluster atau dua centroid dalam proses pengelompokan plaintextnya, maka dengan masing-masing nilai variabel yaitu x = 10 dan m = 5 (nilai m didapat dari perhitungan di atas) maka dapat dicari nilai t yang memenuhi 2
t≥ x ≥ t dan 2
t≥ m dengan cara melakukan iterasi nilai t dari 1 sampai x yang memenuhi persamaan tersebut, didapat nilai t=4 telah memenuhi persamaan tersebut, karena 2
4≥ 10 ≥4 dan 2
4≥ 5, dari hasil tersebut dapat disimpulkan bahwa bit minimal untuk kunci utama yang tentunya memenuhi kombinasi kunci adalah 4 bit.
Dari hasil perhitungan diatas, maka dapat dipetakan antara cluster, anggota cluster dan kunci utama. Pada contoh kali ini, akan digunakan kunci utama berjumlah 4 bit. Sebelumnya akan dijelaskan terlebih dahulu konsep kombinasi biner, untuk pembentukan kunci utama. Jika di dalam desimal terdapat 10 bilangan yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 maka di dalam biner hanya ada 2 bilangan yaitu 0 dan 1. Untuk nilai yang lebih besar dari sembilan akan ditulis dengan kombinasi 2 digit atau lebih simbol. Untuk bilangan desimal dapat ditulis …, 10
5,10
4,10
3,10
2, … Yang jika hitung pangkatnya nilai nya menghasilkan …, 100.000, 10.000, 1.000, 100, … Hal ini juga berlaku untuk bilangan biner. Bilangan biner dapat ditulis …, 2
5, 2
4, 2
3,2
2, … Yang jika hitung pangkatnya nilai nya menghasilkan … 32, 16, 8, 4, … Semakin besar nilai pangkat, akan menambah jumlah kombinasi yang dihasilkan oleh bilangan tersebut. Jumlah kombinasi yang dihasilkan oleh kode dengan panjang n bit adalah 2 pangkat n. Sehingga, kode biner dengan panjang 1 bit, hanya akan menghasilkan dua kombinasi, yaitu 0 dan 1. Kode biner 2 bit, menghasilkan 4 kombinasi, yaitu 00, 01, 10, dan 11, dan begitu seterusnya.
Pada contoh kali ini, akan digunakan kunci utama berjumlah 4 bit. Yang
berarti kombinasi dari binernya yaitu 2
4atau 16 kombinasi, maka sistem
akan melakukan proses pengkombinasian biner 0 dan 1 yang berjumlah 4
bit menjadi 16 kombinasi kunci yang berbeda
.Karena dalam kriptografi
47
tidak diperbolehkan menggunakan kunci 0000, maka kombinasi yang diambil kombinasi selain biner 0000 sebanyak jumlah maksimal anggota pada cluster.
Tabel III.5 Pemasangan Anggota Cluster dan Kunci Utama
Cluster 1 Cluster 2 Kunci Utama
0100010101 0111000001 0001
1011100110 1001000000 0010
1011011100 0011
1001101001 0100
1100110110 0101
Setelah di tentukan pasangan plaintext dengan kunci utamanya, maka akan dilakukan operasi LFSR untuk membangkitkan kunci utama sehingga memiliki panjang yang sama dengan plaintext.
(1) Berikut adalah proses pembangkitan kunci utama menggunakan metode LFSR dengan kunci utama 0001 :
Tabel III.6 Operasi LFSR Kunci Utama (1)
i Isi Register Bit Keluaran
0 0001
1 1000 1
2 1100 0
3 1110 0
4 1111 0
5 0111 1
48
i Isi Register Bit Keluaran
6 1011 1
7 0101 1
8 1010 1
9 1101 0
10 0110 1
Dari hasil diatas, di dapat rangkaian keystream : 1000111101
(2) Berikut adalah proses pembangkitan kunci utama menggunakan metode LFSR dengan kunci utama 0010 :
Tabel III.7 Operasi LFSR Kunci Utama (2)
i Isi Register Bit Keluaran
0 0010
1 0001 0
2 1000 1
3 1100 0
4 1110 0
5 1111 0
6 0111 1
7 1011 1
8 0101 1
9 1010 1
10 1101 0
49
Dari hasil diatas, di dapat rangkaian keystream : 0100011110
(3) Berikut adalah proses pembangkitan kunci utama menggunakan metode LFSR dengan kunci utama 0011 :
Tabel III.8 Operasi LFSR Kunci Utama (3)
i Isi Register Bit Keluaran
0 0011
1 1001 1
2 0100 1
3 0010 0
4 0001 0
5 1000 1
6 1100 0
7 1110 0
8 1111 0
9 0111 1
10 1011 1
Dari hasil diatas, di dapat rangkaian keystream : 1100100011
(4) Berikut adalah proses pembangkitan kunci utama menggunakan metode LFSR dengan kunci utama 0100 :
Tabel III.9 Operasi LFSR Kunci Utama (4)
i Isi Register Bit Keluaran
0 0100
50
i Isi Register Bit Keluaran
1 0010 0
2 0001 0
3 1000 1
4 1100 0
5 1110 0
6 1111 0
7 0111 1
8 1011 1
9 0101 1
10 1010 1
Dari hasil diatas, di dapat rangkaian keystream : 0010001111
(5) Berikut adalah proses pembangkitan kunci utama menggunakan metode LFSR dengan kunci utama 0101 :
Tabel III.10 Operasi LFSR Kunci Utama (5)
i Isi Register Bit Keluaran
0 0101
1 1010 1
2 1101 0
3 0110 1
4 0011 0
5 1001 1
51
i Isi Register Bit Keluaran
6 0100 1
7 0010 0
8 0001 0
9 1000 1
10 1100 0
Dari hasil diatas, di dapat rangkaian keystream : 1010110010
Berikut merupakan tabel pasangan plaintext dan keystream yang telah melalui proses LFSR.
Tabel III.11Pasangan plaintext dan keystream
Setelah rangkaian keystream dihasilkan, maka langkah selanjutnya yaitu melakukan operasi XOR untuk plaintext dan keystreamnya.
Proses enkripsi untuk Cluster 1 dan keystream yang bersesuaian : (1) Plaintext : 0100010101
Keystream : 1000111101 ⊕ Ciphertext : 1100101000 (2) Plaintext : 1011100110
Cluster 1 Cluster 2 Kunci Utama
0100010101 0111000001 1000111101
1011100110 1001000000 0100011110
1011011100 1100100011
1001101001 0010001111
1100110110 1010110010
52
Keystream : 0100011110 ⊕ Ciphertext : 1111111000 (3) Plaintext : 1011011100
Keystream : 1100100011 ⊕ Ciphertext : 0111111111 (4) Plaintext : 1001101001
Keystream : 0010001111 ⊕ Ciphertext : 1011100110 (5) Plaintext : 1100110110
Keystream : 1010110010 ⊕ Ciphertext : 0110000100
Proses enkripsi untuk Cluster 2 dan keystream yang bersesuaian : (1) Plaintext : 0111000001
Keystream : 1000111101 ⊕ Ciphertext : 1111111100 (2) Plaintext : 1001000000
Keystream : 0100011110 ⊕ Ciphertext : 1101011110
Dari hasil proses enkripsi di atas maka didapatkan ciphertext sebagai berikut. Urutan ciphertext dapat disesuaikan dengan urutan plaintext menggunakan data hasil clustering ,yaitu [C1, C1, C1, C1, C2, C1, C2].
Plaintext :
010001010110111001101011011100100110100101110000011100110110 1001000000
Ciphertext :
11001010001111111000011111111110111001101111111100011000010
01101011110
53
Setelah bit ciphertext dihasilkan maka akan dilakukan konversi dari biner menjadi karakter ASCII, karena proses konversi dilakukan per delapan bit maka jika terdapat kekurangan bit di akhir dapat dilakukan padding atau penambahan biner 0 sebanyak yang dibutuhkan. Maka hasil bit ciphertext adalah sebagai berikut.
Ciphertext :
1100101000111111100001111111111011100110111111110001100001001101 01111000
Tabel III.12 Konversi ciphertext
Biner Desimal Ciphertext
11001010 202 Ê
00111111 63 ?
10000111 135 135
11111110 254 þ
11100110 230 æ
11111111 255 ÿ
00011000 24 24
01001101 77 M
01111000 120 x
Dengan hasil konversi :Ê? 135 þæÿ 24 Mx
Dalam proses enkripsi ini, dihasilkan pula sebuah matriks yang mana
berisi data ciphertext dan juga kunci. Yang nantinya akan digunakan
untuk proses dekripsi. Berikut merupakan tabel pasangan ciphertext dan
keystream yang telah malalui proses LFSR.
54
Tabel III.13 Pasangan ciphertext dan keystream
3.2.2 Proses Dekripsi
Proses dekripsi adalah proses mengubah ciphertext menjadi plaintext. Ciphertext yang awalnya merupakan karakter-karakter yang sulit untuk dipahami, akan diterjemahkan kembali menjadi sebuah pesan yang bisa dimengerti. Gambar III.3 merupakan flowchart dari proses dekripsi.
Cluster 1 Cluster 2 Kunci Utama
1100101000 1111111100 1000111101
1111111000 1101011110 0100011110
0111111111 1100100011
1011100110 0010001111
0110000100 1010110010
55
Gambar III.3 Flowchart proses dekripsi
Berikut merupakan contoh manual dari proses dekripsi. Pada contoh ini digunakan kata “Ê? 135 þæÿ 24 Mx” sebagai pesan rahasia atau ciphertext.
Dalam proses dekripsi, pengguna tidak perlu menginputkan apapun, karena sistem telah menyimpan matriks ciphertext dan keystream serta urutan cluster yang didapat dari proses enkripsi. Selanjutnya sistem akan melakukan XOR data ciphertext dan keystream yang ada didalam matriks untuk menghasilkan sebuah plaintext. Sedangkan data hasil cluster akan digunakan untuk mengurutkan plaintext sesuai urutan awal. Setelahnya barulah plaintext di konversi menjadi sebuah karakter. Berikut contoh proses yang dilakukan secara manual.
Dibawah ini merupakan matriks atau tabel yang berisi data plaintext dan
keystream.
56
Tabel III.14 Pasangan ciphertext dan keystream
Dari tabel diatas, selanjutnya bit-bit ciphertext di pasangkan dengan keystream berdasarkan urutan kode yang telah diinputkan lalu di lakukan operasi XOR seperti berikut.
Proses dekripsi untuk Cluster 1 dan keystream yang bersesuaian:
(1) Ciphertext : 1100101000 Keystream : 1000111101 ⊕ Plaintext : 0100010101 (2) Ciphertext : 1111111000
Keystream : 0100011110 ⊕ Plaintext : 1011100110 (3) Ciphertext : 0111111111
Keystream : 1100100011 ⊕ Plaintext : 1011011100 (4) Ciphertext : 1011100110
Keystream : 0010001111 ⊕ Ciphertext : 1001101001
Cluster 1 Cluster 2 Kunci Utama
1100101000 1111111100 1000111101
1111111000 1101011110 0100011110
0111111111 1100100011
1011100110 0010001111
0110000100 1010110010
57
(5) Ciphertext : 0110000100 Keystream : 1010110010 ⊕ Plaintext : 1100110110
Proses dekripsi untuk Cluster 2 dan keystream yang bersesuaian:
(1) Ciphertext : 1111111100 Keystream : 1000111101 ⊕ Plaintext : 0111000001 (2) Ciphertext : 1101011110
Keystream : 0100011110 ⊕ Plaintext : 1001000000
Sebelumnya pada proses enkripsi juga didapatkan urutan plaintext beserta clusternya yang dapat digunakan untuk mengurutkan hasil ciphertext. Berikut data yang dihasilkan [C1, C1, C1, C1, C2, C1, C2], atau dapat diterjemahkan sebagai data 1 masuk kedalam cluster 1, data 2 masuk kedalam cluster 2 dan seterusnya.
Dari hasil proses dekripsi di atas maka didapatkan plaintext sebagai berikut.
Plaintext :
010001010110111001101011011100100110100101110000011100110110 10010000000
01000101011011100110101101110010011010010111000001110011011 01001000000
Tabel III.15 Konversi plaintext
Biner Desimal Plaintext
0 1 0 0 0 1 0 1 69 E
0 1 1 0 1 1 1 0 110 n
58
Biner Desimal Plaintext
0 1 1 0 1 0 1 1 107 k
0 1 1 1 0 0 1 0 114 r
0 1 1 0 1 0 0 1 105 i
0 1 1 1 0 0 0 0 112 p
0 1 1 1 0 0 1 1 115 s
0 1 1 0 1 0 0 1 105 i
0 0 0 0 0 0 0
Dengan hasil konversi : Enkripsi 3.3 Rancangan Pengujian
Pada penelitian ini setelah dilakukan implementasi akan dilakukan pengujian, yang diantaranya evaluasi recovery hasil ciphertext, menganalisis frekuensi dari karakter yang dominan pada plaintext dan ciphertext, dan akan dilakukan perbandingan antara Algoritma Block Cipher dan Algoritma Block Cipher dengan Algoritma yang telah dimodifikasi dengan pengelompokan plaintext dan pengujian nilai Silhoutte Coefisien. Pada keempat pengujian ini akan digunakan file yang diperoleh dari website http://textfiles.com/stories/. File-file tersebut nantinya akan dijadikan sebagai plaintext dalam proses enkripsi di dalam proses pengujian sistem ini dengan memproses seluruh karakter dan juga spasi yang terdapat di dalam file.
3.3.1 Evaluasi Recovery
Evaluasi recovery adalah pengujian yang dilakukan untuk mengevaluasi hasil dari proses enkripsi, apakah ciphertext yang dihasilkan dapat kembali menjadi plaintext yang sesuai dengan masukan user.
Pengujian ini bertujuan untuk menguji seberapa baik dan akurat kinerja
sistem yang dibuat dalam memproses pesan menjadi ciphertext atau pun
59