1. Pendahuluan
Komunikasi merupakan kebutuhan paling menonjol pada kehidupan manusia. Pada awal perkembangannya sebuah pesan disampaikan secara langsung kepada komunikan. Namun masalah mulai muncul ketika jarak antara komunikator dan komunikan jauh. Hingga akhirnya ditemukan telegraf oleh Samuel F.G Morse pada tahun 1838 dan Alexander Graham Bell yang menemukan pesawat telepon pada tahun 1876 yang mempermudah proses komunikasi jarak jauh. Alat komunikasi terus berkembang hingga ditemukannya internet yang memacu berkembangnya aplikasi berkirim pesan. Pada proses komunikasi terjadi pertukaran informasi antara pengirim dan penerima melalui suatu media. Nilai informasi menjadi sangat penting bagi pihak yang terlibat dalam proses komunikasi. Kemudahan akses media komunikasi oleh semua orang membawa dampak bagi keamanan informasi atau pesan dalam media komunikasi tersebut. Seiring dengan perkembangan teknologi yang sangat pesat, maka dibutuhkan keamanan terhadap kerahasiaan informasi yang saling dipertukarkan sehingga tidak akan disalahgunakan oleh pihak lain. Oleh karena itu dikembangkanlah cabang ilmu yang disebut kriptografi yang mempelajari tentang cara-cara pengamanan data.
Lester S Hill telah mengembangkan salah satu model kriptografi yaitu Hill
Cipher. Hill Cipher menggunakan polialfabetik dengan 26 huruf dalam bahasa
inggris, yang berkorespodensi dengan angka 0 sampai 25 [1]. Kriptografi Hill
Cipher telah dipecahkan oleh kriptanalis menggunakan teknik Known Plaintext Attack.
Dengan keterbatasan kriptografi Hill Cipher yang telah diuraikan di atas, maka dalam penelitian ini akan dilakukan modifikasi kriptografi Hill Cipher menggunakan fungsi rasional dan fungsi Weber dengan matriks kunci ordo 3 × 3 yang dibangkitkan dari kunci yang diproses dengan perhitungan tertentu. Proses enkripsi-deskripsi dilakukan perulangan sebanyak tiga (3) putaran sehingga diharapkan dapat mengatasi kekurangan dari teknik Hill Cipher.
2. Tinjauan Pustaka
Pada penelitian sebelumnya dengan judul “Modifikasi Teknik Kriptografi
Hill Cipher Menggunakan Fungsi Rasional dan Konversi Basis Bilangan pada Proses Enkripsi-Dekripsi”, menyatakan bahwa proses enkripsi dan dekripsi pada modifikasi Hill Cipher terdapat beberapa keunggulan dibandingkan dengan Hill
Cipher. Antara lain terdapat berbagai karakter seperti angka, abjad, tanda baca
serta simbol yang dapat dijadikan plainteks. Modifikasi mampu menghasilkan cipherteks dalam elemen bit biner yang jumlahnya bisa berlipat-lipat dari jumlah karakter aslinya, sehingga membuat modifikasi Hill Cipher dapat disejajarkan dengan kriptografi modern lainnya, dalam hal menghasilkan cipherteks dalam bit biner [2].
Penelitian yang lain berjudul “Pemanfaatan Kembali Kriptografi Klasik dengan Melakukan Modifikasi Metode-Metode Kriptografi yang Ada”
masih dapat digunakan pada jaman sekarang. Hal ini dikarenakan, karakter ASCII memiliki extended character yang berjumlah 128, sehingga total karakter yang dapat digunakan adalah 256. Jumlah kerumitan algoritma akan meningkat daripada hanya menggunakan karakter alfabet yang berjumlah 26 [3].
Penelitian lain berjudul “Modifikasi Kriptografi Hill Cipher Menggunakan Convert Between Base” menyatakan bahwa penggunaan kunci tambahan memberikan perubahan yag signifikan pada algoritma, sehingga dapat menahan kriptanalis dalam memecahkan Hill Cipher[4].
Penelitian terdahulu tersebut menjadi acuan untuk membuat modifikasi kriptografi yang akan dibuat. Perbedaan perancangan kriptografi ini dari perancangan kriptografi terdahulu terdapat pada fungsi yang digunakan yaitu fungsi Weber dan fungsi rasional sebagai pembangkit kunci enkripsi dan dekripsi.
Kriptografi (cryptography) berasal dari bahasa Yunani “cryptos” artinya “secret”, sedang “graphein” artinya “writing”. Sehingga arti kriptografi secara
kosa kata adalah tulisan rahasia [5]. Pesan adalah informasi atau data yang bisa dibaca dan dapat dimengerti artinya. Dalam istilah kriptografi pesan juga disebut
plaintext. Ciphertext atau kriptogram (cryptogram) adalah pesan yang sudah
tersandi menjadi data acak agar tidak bisa dimengerti oleh pihak lain. Enkripsi adalah proses penyandian pesan (plaintext) menjadi data acak yang tidak bisa dimengerti (ciphertext) dan dekripsi adalah kebalikan dari enkripsi yaitu proses mengembalikan ciphertext menjadi plaintext.
Kriptografi Hill Cipher adalah sebuah teknik kriptografi yang dalam melakukan proses enkripsi-dekripsi menggunakan matriks sebagai kunci [6]. Kunci yang digunakan pada Hill Cipher adalah matriks ordo × dan n adalah ukuran blok. Jika matriks kunci dideskripsikan sebagai M, maka matriks M adalah sebagai berikut :
= (1)
Defenisi 1. Invers Matrik [7]
- Jika A adalah matriks bujur sangkar, dan matriks B yang ukurannya sama sedemikian rupa sehingga
= = (2)
- Jika A dapat dibalik,
= det( )1 ( ) (3)
- Jika matriks B tidak dapat didefinisikan, maka A dinyatakan sebagai matriks singular.
Matriks A harus mempunyai invers (A-1), karena matriks tersebut akan
digunakan untuk proses dekripsi. Proses enkripsi dilakukan pada setiap blok plainteks yang ukurannya harus sama dengan ukuran matriks kunci. Plainteks dikonversi ke dalam bilangan ASCII yang berkorespodensi kemudian membagi teks menjadi deretan blok-blok, dengan ketentuan bilangan = {1,2, ,25,0} dan huruf{ , , , }.
= , =
Sehingga secara umum proses enkripsi dapat dinotasikan dengan
= (4)
Sedangkan proses dekripsi dinotasikan dengan
= (5)
Pada perancangan kriptografi ini menggunakan fungsi rasional yang dipadukan dengan fungsi Weber sebagai pembangkit kunci.
Fungsi rasional adalah fungsi yang variabel bebasnya berpangkat bilangan bulat [8]. Fungsi rasional dipilih dalam penelitian ini karena mampu merubah bilangan hasil perkalian matriks kunci dengan bilangan plainteks sehingga pola kombinasi linier dari perkalian matriks tidak lagi mudah ditemukan kriptanalis.
Persamaan fungsi rasional secara umum adalah berikut ini :
( )= ( )( ) (6)
Dengan ( )dan ( ) adalah fungsi polinomial. Domain dari semua nilai x,
sedemikian hingga ( ) 0 dan ( ) 0. Sebagai contoh ( ) = adalah fungsi rasional.
Fungsi kedua menggunakan fungsi Weber yang didefinisikan pada persamaan (7) [9]:
( , )=( ) ( ) ( + ) (7)
Perancangan kriptografi ini juga menggunakan proses Convert Between Base (CBB) yang didefinisikan sebagai berikut.
Definisi 2,
Konversi sembarang bilangan positif s, berbasis 10 ke basis β . Secara umum notasinya [2],
, (8)
Definisi 3,
Konversi dari urutan bilangan (list digit) ℓ dalam basis ke basis β [10]. Secara umum dinotasikan,
, (9)
Dengan jumlahan urutan bilangan (jumlahanℓ )mengikuti aturan [10],
.
( )
(10)
Dimana nops (ℓ ) adalah nilai terakhir dari urutan bilanganℓ [10], dimana: - 0≤ lk ≤ α danℓ adalah bilangan positif.
3. Metode Perancangan
Perancangan sistem Modifikasi Kriptografi Hill Cipher Menggunakan Fungsi Rasional dan Fungsi Weber, dilakukan dengan tahapan penelitian seperti ditunjukkan pada Gambar 1.
Gambar 1. Tahap Penelitian
Tahapan penelitian pada Gambar 1, dijelaskan sebagai berikut. Tahap
pertama : Analisis Kebutuhan yaitu menganalisa kebutuhan apa saja yang
diperlukan dalam modifikasi kriptografi Hill Cipher; Tahap Kedua : Pengumpulan Bahan yaitu pengumpulan bahan yang berkaitan dengan perancangan modifikasi kriptografi Hill Cipher berupa data dan literatur tentang proses enkripsi dan dekripsi pada data teks dengan menggunakan kriptografi Hill
Cipher melalui dokumen dan referensi yang ada; Tahap Ketiga : Melakukan
proses perancangan modifikasi Hill Cipher yang akan digunakan untuk proses enkripsi dan dekripsi dalam memodifikasi Hill Cipher proses modifikasi yang akan dilakukan. Kemudian melakukan analisis dari hasil modifikasi Hill Cipher;
Tahap Keempat : Uji Hasil Modifikasi Hill Cipher yaitu melakukan uji hasil
modifikasi dan analisa terhadap keseluruhan perancangan dan modifikasi yang telah dibuat; Tahap Kelima : Penulisan laporan hasil penelitian yaitu menuliskan proses penelitian dari tahap awal sampai tahap akhir yang akan menjadi laporan hasil penelitian.
Pada modifikasi Hill Cipher dilakukan dua (2) proses yaitu proses enkripsi dan proses dekripsi. Proses enkripsi dan dekripsi masing-masing dilakukan proses perputaran sebanyak tiga (3) kali. Tahapan dalam proses enkripsi dan deskripsi dijelaskan sebagai berikut:
a. Menyiapkan Plainteks. Plainteks diubah ke dalam bilangan ASCII.
= { , , , } (11)
Dimana adalah banyaknya karakter plainteks dalam bilangan ASCII. b. Menyiapkan kunci utama. Kunci utama diubah menjadi bilangan ASCII.
= { , , , } (12)
Dimana adalah banyaknya karakter plainteks dalam bilangan ASCII.
Pengumpulan bahan
Perancangan Modifikasi Hill Cipher
Uji Hasil Perancangan
Hasil pada Persamaan (12) kemudian dijumlahkan menjadi sebuah bilangan, maka
= ( + + + ) (13)
= 127 (14)
Hasil dari digunakan untuk membangkitkan kunci Weber dengan tambahan kombinasi hitungan tertentu.
c. Menyiapkan fungsi Weber, digunakan sebagai kunci pembangkit dalam proses enkripsi dan deskripsi. Hasil fungsi Weber akan dimasukkan ke dalam fungsi rasional di dalam proses putaran enkripsi dan deskripsi. Persamaan fungsi Weber ditunjukkan seperti pada Persamaan (7).
Untuk mendapatkan nilai fungsi Weber, diambil nilai dari Persamaan (14), maka
= ln( ) (15)
= ln( ) (16)
Berdasarkan Persamaan (15) dan Persamaan (16) maka didapatkan nilai fungsi Weber seperti ditunjukkan pada Persamaan (7)
= ( , ) (17)
d. Menyiapkan kunci tambahan. Digunakan dalam proses putaran enkripsi dan deskripsi. Nilai kunci didapat dari Persamaan (15) dengan kombinasi hitungan tertentu.
= 127 (18)
e. Menyiapkan matriks kunci yang invertible
Matrik kunci yang akan digunakan yaitu matrik ordo 3 × 3, matriks dihasilkan dengan mengalikan hasil Persamaan (14) dengan bilangan tertentu yang kemudian disusun ke dalam sebuah matriks.
= 2 ; = 4 ; = 6
= 5 ; = ; = 0 (19)
= 3 ; = 7 ; =
- Untuk mendapatkan kunci matriks yang pertama, berdasar pada Persamaan (19) maka digunakan matriks sebagai berikut
= 7 0 13
0 2 (20)
- Untuk mendapatkan kunci matriks yang kedua, berdasar pada Persamaan (19) maka digunakan matriks sebagai berikut
= 1 2 3
2 (21)
- Untuk mendapatkan kunci matriks yang ketiga, berdasar pada Persamaan (19) maka digunakan matriks sebagai berikut
= 3 2
Pada proses dekripsi menggunakan invers matrik kunci. Untuk mendapatkan invers matrik kunci harus memenuhi Persamaan (2). Berdasar Persamaan (3) maka diperoleh
- Invers matriks Persamaan (22), merujuk pada Persamaan (2) dan Persamaan (3) yang kemudian di-mod 127, maka
(23) - Invers matriks Persamaan (21), merujuk pada Persamaan (2) dan
Persamaan (3) yang kemudian di-mod 127, maka
(24) - Invers matriks Persamaan (20), merujuk pada Persamaan (2) dan
Persamaan (3) yang kemudian di-mod 127, maka
(25) f. Menyiapkan fungsi rasional, digunakan dalam proses putaran enkripsi dan
deskripsi. Persamaan fungsi rasional ditunjukkan pada Persamaan (6). - Fungsi rasional 1 diperoleh dari Persamaan (17) yang disubstitusikan
pada Persamaan (6) sehingga didapatkan
( ) = 127 (26)
- Fungsi rasional 2 diperoleh dari Persamaan (18) yang disubstitusikan pada Persamaan (6) sehingga didapatkan
( ) = 127 (27)
- Fungsi rasional 3 diperoleh dari Persamaan (17) yang disubstitusikan pada Persamaan (6) sehingga didapatkan
( ) = 127 (28)
Setiap proses putaran menggunakan lebih dari satu (1) fungsi rasional yang berbeda. Selanjutnya untuk proses dekripsi menggunakan invers fungsi rasional sebagai berikut
( ) = 2 127 (29)
( ) = 3 21 127 (30)
( ) = 1 + 127 (31)
g. Menyiapkan fungsi convert between base (CBB)
Proses enkripsi menggunakan konversi basis bilangan, berdasarkan Persamaan (9) maka
= plainteks ( ), = 131, dan = 2 (32) Sedangkan untuk proses dekripsi digunakan konversi basis bilangan berdasarkan Persamaan (9) maka
Gambar 2 menunjukkan proses enkripsi dalam modifikasi Hill Cipher.
Gambar 2. Proses Enkripsi
CBB cipherteks p r o s e s 1 p r o s e s 2 p r o s e s 3 Plaintext
= {a1, a2,…,an}
ASCII
= { , , , } =
= { , , , }
( ) =3 + 2+ 127,
= { , , , } =
= { , , , }
( ) = + 127,
= { , , , } =
= { , , , }
( ) = + 127,
= { , , , } =
= { , , , }
( ) = + 2 127,
= 7 0 13
0 2
Matrik kunci 1 ( )
= 1 2 3
2
Matrik kunci 2 ( )
= 3 2
5 2 2
Matrik kunci 3 ( )
= { , , , } =
= { , , , }
( ) + 2 127,
= { , , , }
= = { , , , } ( ) =3 + 2+ 127,
= 127
Kunci ASCII
= { , , , }
= ln( )
= ( + + + )
= 127
= ln( )
( , ): + ′+ (
) =( ) cos( ) ( + )
Fungsi Weber
Setelah tahap persiapan selesai dilakukan, maka proses enkripsi akan dijelaskan sebagai berikut :
1. Plainteks ( ) dikonversi ke dalam bilangan ASCII, seperti ditunjukkan pada Persamaan (11).
- Jika jumlah karakter pada Persamaan (11) sebanding dengan kelipatan ordo matrik M3 × 3, maka dilanjutkan pada proses selanjutnya.
- Apabila jumlah karakter pada Persamaan (11) tidak sebanding dengan kelipatan ordo matriks M 3 × 3, maka ditambahkan bilangan 32 (dalam kode ASCII merupakan karakter spasi) setelah bilangan terakhir sesuai kebutuhan sehingga jumlah karakter Persamaan (11) sebanding dengan kelipatan ordo matriks M3 × 3.
2. Pada putaran pertama, bilangan-bilangan dari Persamaan (11) yang bermodulo 127 disusun menjadi blok vector. Ukuran blok vektor sama dengan ukuran ordo matriks kunci. Blok kemudian dikalikan dengan matriks pada Persamaan (20), sehingga diperoleh
= { , , , , } (34)
Dimana adalah banyaknya karakter yang terbentuk dalam proses enkripsi. 3. Pada putaran pertama, bilangan-bilangan dari Persamaan (34) kemudian
disubtitusikan ke dalam fungsi rasional pada Persamaan (26), sehingga
= { , , , , } (35)
4. Pada putaran pertama, bilangan-bilangan pada Persamaan (35) disusun menjadi blok vector kemudian dikalikan dengan matriks pada Persamaan (21), sehingga diperoleh
= { , , , , } (36)
5. Pada putaran pertama, bilangan-bilangan dari Persamaan (36) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (27), sehingga
= { , , , , } (37)
6. Pada putaran kedua, bilangan-bilangan dari Persamaan (37) disusun menjadi blok vector kemudian dikalikan dengan matriks pada Persamaan (21), sehingga diperoleh
= { , , , , } (38)
7. Pada putaran kedua, bilangan-bilangan dari Persamaan (38) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (27), sehingga
= { , , , , } (39)
8. Pada putaran kedua, bilangan-bilangan pada Persamaan (39) disusun menjadi blok vector kemudian dikalikan dengan matriks pada Persamaan (22), sehingga diperoleh
= { , , , , } (40)
9. Pada putaran kedua, bilangan-bilangan dari Persamaan (40) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (28), sehingga
= { , , , , } (41)
10. Pada putaran ketiga, bilangan-bilangan dari Persamaan (41) disusun menjadi blok vector kemudian dikalikan dengan matriks pada Persamaan (22), sehingga diperoleh
11. Pada putaran ketiga, bilangan-bilangan dari Persamaan (42) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (28), sehingga
= { , , , , } (43)
12. Pada putaran ketiga, bilangan-bilangan pada Persamaan (43) disusun menjadi blok vector kemudian dikalikan dengan matriks pada Persamaan (20), sehingga diperoleh
= { , , , , } (44)
13. Pada putaran ketiga, bilangan-bilangan dari Persamaan (44) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (26), sehingga
= { , , , , } (45)
14. Bilangan yang dihasilkan pada akhir putaran ketiga yaitu Persamaan (45) kemudian dikonversi menggunakan Persamaan (32), sehingga diperoleh urutan biner yang merupakan cipherteks.
= { , , , , } (46)
Gambar 3. Proses Dekripsi
Gambar 3 menunjukkan rancangan proses dekripsi, dijelaskan sebagai berikut :
p r o s e s 1 p r o s e s 2 p r o s e s 3 1 =
Invers Matrik Kunci 1
2 =
Invers Matrik Kunci 2
3 =
I nve r s M a t r ik Ku nc i 3
Plaintext ASCII
= { , , , } ( ) = 2 127,
=
= { , , , }
= { , , , }
( ) = 1 + 12,
= = { , , , } Chipertext CBB Kunci ASCII = { , , , }
= ln( )
= ( + + + )
= 127
= ln( )
( , ): + ′+ ( ) =( ) cos( ) ( + ) Fungsi Weber
= 127
= { , , , } ( ) = 3 21 127,
=
= { , , , }
= { , , , }
( ) = 2 127 ,
=
= { , , , } = { , , , }
( ) = 1 + 127,
=
= { , , , }
= { , , , }
( ) = 3 21 127, =
= { , , , }
1. Hasil yang diperoleh pada Persamaan (46), selanjutnya dikonversi balik dengan mengacu pada Persamaan (33), maka diperoleh
= { , , , , } (47)
2. Pada putaran balik pertama, bilangan-bilangan dari Persamaan (47) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (29), sehingga
= { , , , , } (48)
3. Pada putaran balik pertama, bilangan pada Persamaan (48) disusun menjadi blok vector kemudian dikalikan dengan Persamaan (23), sehingga diperoleh
= { , , , , } (49)
4. Pada putaran balik pertama, bilangan-bilangan dari Persamaan (49) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (31), sehingga
= { , , , , } (50)
5. Pada putaran balik pertama, bilangan pada Persamaan (50) disusun menjadi blok vector kemudian dikalikan dengan Persamaan (25), sehingga diperoleh
= { , , , , } (51)
6. Pada putaran balik kedua, bilangan-bilangan dari Persamaan (51) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (31), sehingga
= { , , , , } (52)
7. Pada putaran balik kedua, bilangan pada Persamaan (52) disusun menjadi blok vector kemudian dikalikan dengan Persamaan (25), sehingga diperoleh
= { , , , , } (53)
8. Pada putaran balik kedua, bilangan-bilangan dari Persamaan (53) kemudian disubtitusikan ke dalam invers fungsi rasional Persamaan (30), sehingga
= { , , , , } (54)
9. Pada putaran balik kedua, bilangan pada Persamaan (54) disusun menjadi blok vector kemudian dikalikan dengan Persamaan (24), sehingga diperoleh
= { , , , , } (55)
10. Pada putaran balik ketiga, bilangan-bilangan dari Persamaan (55) kemudian disubtitusikan ke dalam invers fungsi rasional Persamaan (30), sehingga
= { , , , , } (56)
11. Pada putaran balik ketiga, bilangan pada Persamaan (56) disusun menjadi blok vector kemudian dikalikan dengan Persamaan (24), sehingga diperoleh
= { , , , , } (57)
12. Pada putaran balik ketiga, bilangan-bilangan dari Persamaan (57) kemudian disubtitusikan ke dalam invers fungsi rasional Persamaan (29), sehingga
= { , , , , } (58)
13. Pada putaran balik ketiga, bilangan pada Persamaan (58) disusun menjadi blok vector kemudian dikalikan dengan Persamaan (23), sehingga diperoleh
= { , , , , } (59)
4. Hasil dan Pembahasan
Untuk menguji hasil modifikasi kriptografi Hill Cipher, dilakukan proses enkripsi-dekripsi. Proses enkripsi-deskripsi dilakukan sesuai dengan langkah yang telah dijelaskan sebelumnya. Berikut ini adalah tahap persiapan sebelum masuk ke dalam proses enkripsi dan dekripsi :
a. Plainteks yang digunakan adalah “FTI UKSW”. Merujuk pada Persamaan (11) maka diperoleh
= {70, 84, 73, 32, 85, 75, 83, 87} (60) b. Kunci Utama yang digunakan yaitu “FTI”. Merujuk pada Persamaan (12),
Persamaan (13) dan Persamaan (14) maka diperoleh
= {70, 84, 73} (61)
= 227 (62)
= 100 (63)
c. Kunci Weber, digunakan sebagai kunci pembangkit dalam proses enkripsi dan deskripsi. Merujuk pada Persamaan (17) maka fungsi Weber adalah
= 107 (64)
d. Kunci tambahan, digunakan sebagai kunci pembangkit dalam proses enkripsi dan deskripsi. Merujuk pada Persamaan (18) maka diperoleh
= 10 (65)
e. Matriks Kunci ordo 3 × 3, digunakan dalam proses putaran enkripsi. Berdasarkan Persamaan (20), Persamaan (21), dan Persamaan (22) maka
= 73 0 17 35 3
0 19 2 (66)
= 119 35 31 2 73
100 19 2 (67)
= 65 2 733 35 65
5 38 2 (68)
Invers matriks ordo3 × 3, digunakan dalam proses putaran dekripsi.
= 56 33 11396 33 93
104 4 6 (69)
= 126 89 305 112 94
66 74 84 (70)
= 106 29 7822 67 4
79 115 47 (71)
f. Fungsi rasional, digunakan dalam proses putaran enkripsi. Dengan mensubstitusi hasil Persamaan (64) maka
( ) =107 + 2 127 (72)
( ) =10 +3 + 2 127 (73) Dengan mensubstitusi hasil Persamaan (64) maka
( ) =107 + 127 (74)
Invers fungsi rasional, digunakan dalam proses putaran deskripsi.
( ) = 1071 + 127 (75)
( ) =10 23 1 127 (76)
( ) = 2107 127 (77)
g. Konversi Basis Bilangan
Proses enkripsi menggunakan konversi basis bilangan, berdasarkan Persamaan (9) maka
= plainteks ( ), = 131, dan = 2 (78) Sedangkan untuk proses dekripsi digunakan konversi basis bilangan berdasarkan Persamaan (9) maka
= cipherteks, = 2, dan = 131 (79)
Selanjutnya untuk memulai proses enkripsi dapat dilakukan sebagai berikut: 1. Merujuk pada Persamaan (11), plainteks diubah ke dalam bentuk bilangan
ASCII. Sehingga diperoleh urutan bilangan ASCII sebagai berikut
= {70, 84, 73, 32, 85, 75, 83, 87} (80) Setelah plainteks menjadi bilangan ASCII, apabila jumlah karakter merupakan kelipatan tiga (3) maka ke proses selanjutnya. Jika jumlah karakter bukan kelipatan tiga (3) maka ditambahkan karakter spasi (dalam kode ASCII adalah 32) setelah nilai terakhir, sehingga
= {70, 84, 73, 32, 85, 75, 83, 87, 32} (81) 2. Untuk proses putaran yaitu
• Putaran pertama
- Bilangan-bilangan pada Persamaan (81) yang bermodulo 127 kemudian disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (66), maka didapatkan
= {103, 93, 91, 125, 122, 114, 122, 39,66} (82) - Bilangan-bilangan pada Persamaan (82) kemudian disubtitusikan ke
dalam fungsi rasional pada Persamaan (72), sehingga
= {54, 92, 114, 106, 5, 58, 5, 81, 57} (83) - Bilangan-bilangan pada Persamaan (83) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (67), maka didapatkan
= {51, 82, 10, 32, 9, 16, 10, 45, 121} (84) - Bilangan-bilangan pada Persamaan (84) kemudian disubtitusikan ke
dalam fungsi rasional pada Persamaan (73), sehingga
• Putaran kedua
- Bilangan-bilangan pada Persamaan (85) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (67), maka didapatkan
= {95, 79, 20, 117, 110, 61, 41, 28, 103} (86) - Bilangan-bilangan pada Persamaan (86) kemudian disubtitusikan ke
dalam fungsi rasional pada Persamaan (73), sehingga
= {84, 11, 107, 0, 109, 91, 38, 92, 51} (87) - Bilangan-bilangan pada Persamaan (87) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (68), maka didapatkan
= {85, 99, 36, 3, 78, 6, 27, 45, 105} (88) - Bilangan-bilangan pada Persamaan (88) kemudian disubtitusikan ke
dalam fungsi rasional pada Persamaan (74), sehingga
= {68, 38, 71, 79,4, 40, 52, 57, 25} (89)
• Putaran ketiga
- Bilangan-bilangan pada Persamaan (89) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (68), maka didapatkan
= {27, 53, 21, 62, 56, 119, 112, 93, 63} (90) - Bilangan-bilangan pada Persamaan (90) kemudian disubtitusikan ke
dalam fungsi rasional pada Persamaan (74), sehingga
= {52, 15, 121, 99, 46, 67, 87, 24, 41} (91) - Bilangan-bilangan pada Persamaan (91) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (66), maka didapatkan
= {107, 109, 19, 55, 91, 119, 42, 48, 30} (92) - Bilangan-bilangan pada Persamaan (92) kemudian disubtitusikan ke
dalam fungsi rasional pada Persamaan (72), sehingga
= {18, 121, 67, 47, 114, 75, 101, 70, 124} (93) 3. Langkah yang terakhir yaitu mendapatkan cipherteks dengan cara bilangan-bilangan pada Persamaan (93) dikonversi menggunakan Persamaan (78), sehingga
Setelah cipherteks didapat dilanjutkan dengan proses dekripsi, dengan langkah sebagai berikut :
1. Proses putaran pada dekripsi yaitu
• Proses putaran balik 3
- Cipherteks yang dihasilkan selanjutnya dikonversi balik dengan mengacu pada Persamaan (79), maka diperoleh
= {18, 121, 67, 47, 114, 75, 101, 70, 124} (94) - Bilangan-bilangan pada Persamaan (94) kemudian disubtitusikan ke
dalam invers fungsi rasional pada Persamaan (75), sehingga
= {107,109,19,55,91,119,42,48,30} (95)
- Kemudian bilangan-bilangan pada Persamaan (95) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (69), maka didapatkan
- Bilangan-bilangan pada Persamaan (96) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (77), sehingga
= {27, 53,21,62,56,119,112,93,63} (97)
- Kemudian bilangan-bilangan pada Persamaan (97) disusun ke dalam blok vektor, dan dikalikan dengan invers matriks pada Persamaan (71), maka didapatkan
= {68,38,71,79,4,40,52,57,25} (98)
• Proses putaran balik 2
- Bilangan-bilangan pada persamaan (98) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (77), sehingga
= {85,99,36,3,78,6, 27,45,105} (99) - Kemudian bilangan-bilangan pada pesamaan (99) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (71), maka didapatkan
= {84,11,107,127,109,91,38,92,51} (100) - Bilangan-bilangan pada persamaan (100) kemudian disubtitusikan ke
dalam invers fungsi rasional pada Persamaan (76), sehingga
= {95,79,20,117,110,61,41,28,103} (101) - Kemudian bilangan-bilangan pada pesamaan (101) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (70), maka didapatkan
= {43,27,80,73,97,31,80,69,95} (102)
• Proses putaran balik 1
- Bilangan-bilangan pada persamaan (102) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (76), sehingga
= {51,82,10,32,9,16,10,45,121} (103) - Kemudian bilangan-bilangan pada pesamaan (103) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (70), maka didapatkan
= {54,92,114,106,5,58,5,81,57} (104) - Bilangan-bilangan pada Persamaan (104) kemudian disubtitusikan ke
dalam invers fungsi rasional pada Persamaan (75), sehingga
= {103,93,91,125,122,114,122,39,66} (105) - Kemudian bilangan-bilangan pada Persamaan (105) ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (69), maka didapatkan
= {70,84.73,32,85,75,83,87,32} (106) 2. Langkah terakhir yaitu bilangan-bilangan yang dihasilkan pada akhir putaran yaitu Persamaan (106) disubtitusikan dalam kode ASCII yang berkorespodensi sehingga diperoleh plainteks :" "
- P adalah himpunan berhingga dari plainteks. Plainteks menggunakan karakter yang ekuivalen dengan bilangan ASCII. Bilangan ASCII adalah sekumpulan karakter yang ekuivalen dengan jumlah bilangan yang semuanya terbatas dalam sebuah himpunan yang berhingga. Maka himpunan plainteks pada modifikasi Hill Cipher adalah himpunan berhingga.
- C adalah himpunan berhingga dari cipherteks. Cipherteks yang terbentuk pada modifikasi Hill Cipher adalah elemen bit (bilangan 0 dan 1). Hasil himpunan cipherteks hanya {0,1}, maka cipherteks yang terbentuk pada modifikasi Hill Cipher adalah himpunan berhingga.
- K merupakan ruang kunci (keyspace), adalah himpunan berhingga dari kunci. Penggunaan fungsi rasional dan fungsi Weber sebagai pembangkit kunci dan fungsi yang digunakan dalam setiap proses perancangan kriptografi. Maka kunci yang dipakai dalam modifikasi Hill Cipher adalah ruang kunci.
- Untuk setiap k K, terdapat aturan enkripsi E dan berkorespodensi
dengan aturan dekripsi . Setiap dan adalah
fungsi sedemikian hingga ( ) = untuk setiap plainteks . Berdasar 4 keadaan secara menyeluruh terdapat kunci yang digunakan dalam proses enkripsi, merubah plainteks menjadi cipherteks. Kunci dapat melakukan proses dekripsi, merubah cipherteks menjadi plainteks kembali.
Uji perancangan dilakukan dengan membandingkan jumlah karakter yang diproses berdasarkan kebutuhan memori dan waktu yang diperlukan selama proses enkripsi dan dekripsi berlangsung.
Gambar 4. Perbandingan Terhadap Waktu 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
10 100 200 300 400 500 600 700 800 900 1000
Gambar 5. Perbandingan Terhadap Memory
Pada Gambar 5 menunjukkan modifikasi kriptografi ini membutuhkan jumlah memory yang sama saat jumlah plainteks 10 sampai 500 karakter dan membutuhkan memory lebih ketika plainteks diatas 500 karakter, sedangkan kriptografi terdahulu membutuhkan memory yang lebih besar saat jumlah plainteks lebih dari 300 karater.
Berdasarkan pada Gambar 4 maka kemiringan modifikasi kriptografi pada saat jumlah plainteks antara 10 sampai 100 terhadap waktu adalah , = 0,0073. Hasil lengkap ditunjukkan pada Tabel 1.
Tabel 1 Kemiringan Waktu Terhadap Plainteks
Plainteks Kriptografi Modifikasi Kriptografi Lama
10–100 0,0073 0,0067
100–200 0,0068 0,0002
200–300 0,0097 0,0160
300–400 0,0106 0,0347
400–500 0,0095 0,0124
500–600 0,0113 0,0163
600–700 0,0126 0,0081
700–800 0,0134 0,0277
800–900 0,0068 0,0209
900–1000 0,0250 0,0264
Pada modifikasi kriptografi terjadi peningkatan waktu yang tidak terlalu signifikan dan hampir sama pada saat jumlah plainteks 10 sampai 900 karakter dan terjadi peningkatan waktu yang signifikan ketika plainteks diatas 900 karakter, sedangkan pada perancangan kriptografi terdahulu terjadi peningkatan waktu yang cukup signifikan saat jumlah plainteks lebih dari 300 karakter.
Tabel 2 Kemiringan Memory Terhadap Plainteks 0
10 20 30 40 50 60 70 80
10 100 200 300 400 500 600 700 800 900 1000
Plainteks Kriptografi Modifikasi Kriptografi Lama
10–100 0 0,022
100–200 0 0
200–300 0 0
300–400 0 0,3602
400–500 0 0,0002
500–600 0,02 0,0001
600–700 0,02 0,0003
700–800 0,0002 0,0009
800–900 0,0002 0,0789
900–1000 0,0002 0
Berdasarkan tabel diatas, nilai kemiringan modifikasi kriptografi lebih besar dibandingkan nilai kemiringan modifikasi terdahulu pada saat menggunakan 10 sampai 200 karakter plainteks. Nilai kemiringan modifikasi kriptografi lebih kecil dibandingkan dengan nilai kemiringan kriptografi terdahulu pada saat jumlah karakter plainteks 200 sampai 900 karakter. Modifikasi kriptografi ini lebih baik dari kriptografi terdahulu karena membutuhkan lebih sedikit kebutuhan memory dan waktu pada rentang plainteks 200 sampai 900 karakter sedangkan saat plainteks kurang dari 200 kriptografi terdahulu lebih baik daripada modifikasi kriptografi. Kriptografi terdahulu cocok untuk melakukan proses enkripsi plainteks yang berjumlah sedikit sedangkan modifikasi kriptografi cocok untuk melakukan proses enkripsi plainteks yang jumlahnya lebih banyak.
Uji ketahanan pada modifikasi Hill Cipher
Untuk mengetahui ketahanan hasil modifikasi pada Hill Cipher maka dilakukan uji ketahanan terhadap known-plaintext attack dengan perkalian matriks. Kriptanalis melakukan uji coba terhadap seluruh kemungkinan kunci.
- Plaintext yang dipakai adalah :
FTIUKSWSALATIGA (107) - Matriks kunci yang dipakai adalah :
= 106 29 7822 67 4
79 115 47 (108)
- Dengan modifikasi Hill Cipher, maka terbentuk ciphertext dalam bilangan ASCII adalah sebagai berikut :
- Untuk mencari matriks kunci agar menemukan plaintext maka perlu diketahui ciphertext, berkas plaintext dan ukuran matriks kunci yang digunakan. Diasumsikan bahwa ciphertext dan berkas potongan plaintext telah diketahui oleh pihak lain. Kriptanalis memasukkan seluruh kemungkinan ukuran matrik kunci yang digunakan.
- Potongan plaintext yang diketahuipihak lain adalah “FTIUKSWSAL”
- Berikut proses pencarian matriks kunci dengan menggunakan perkalian matriks. Diasumsikan bahwa modifikasi menggunakan matriks kunci berordo 3 x 3, maka berkas plaintext yang disubsitusi menjadi kode ASCII diperoleh
= = 70 85 8784 75 83
73 83 65 (109)
- Disusun matriks ciphertext sebagai berikut :
= 121 44 11118 46 35
67 53 64 (110)
- Selanjutnya mencari matriks kunci dengan informasi yang diperoleh :
= . ( ) (111)
= 121 44 11118 46 35 67 53 64
73 109 61 108 69 78
81 85 82
= 18 26 3498 77 100 122 53 80
- Diperoleh, matriks K tidak sama dengan matriks kunci pada Persamaan (108), seperti ditunjukkan berikut :
106 29 78
22 67 4
79 115 47
18 26 34 98 77 100
122 53 80 (112)
Matriks yang ditemukan berbeda, maka dapat disimpulkan bahwa pada
known-plaintext attack dengan teknik perkalian matriks tidak dapat memecahkan matriks kunci pada modifikasi Hill Cipher.
5. Simpulan
Hasil modifikasi kriptografi Hill Cipher menggunakan fungsi rasional dan fungsi Weber dengan matriks ordo 3 × 3 yang dibangkitkan dari kunci dapat melakukan proses enkripsi dan dekripsi. Modifikasi telah memenuhi five tuple P, C, K, E, D sehingga dapat disebut sebagai sebuah sistem kriptografi. Modifikasi
Hill Cipher dapat mematahkan serangan kriptanalis known plaintext attack
dengan menggunakan metode perkalian matrik. Pengujian dengan jumlah karakter plainteks antara 200 - 900 karakter, modifikasi ini lebih baik dari perancangan kriptografi terdahulu dengan menggunakan lebih sedikit ketersediaan waktu dan
memory karena proses kriptografi ini menggunakan tiga putaran dengan
perhitungan 3 matrik kunci sedangkan proses kriptografi terdahulu menggunakan 10 matrik kunci. Keunggulan modifikasi ini adalah menghasilkan ciphertext dalam bentuk elemen bit biner, sehingga modifikasi ini dapat disejajarkan dengan teknik kriptografi modern lainnya dalam hal menghasilkan ciphertext dalam bit biner. Kekurangan dari modifikasi ini adalah plaintext hanya dapat berupa data
6. Daftar Pustaka
[1] Anton, H. & Rorres, C., 2005, Elementary Linear Algebra, Applications
Version, 9th Edition, New York: John Wiley & Sons.
[2] Wowor, A. D, Pakereng, M. A. Ineke, dan Sembiring, Irwan, 2011.
Modifikasi Teknik Kriptografi Hill Cipher Menggunakan Fungsi Rasional dan Konversi Basis Bilangan pada Proses Enkripsi-Dekripsi. Tesis : Magister
Sistem Informasi Universitas Kristen Satya Wacana.
[3] Primanio., Pemanfaatan Kembali Kriptografi Klasik dengan Melakukan
Modifikasi Metode-Metode Kriptografi yang Ada. Institut Teknologi Bandung.
[4] Wowor, A. D., 2013. Modifikasi Kriptografi Hill Cipher Menggunakan
Convert Between Base. Bali : Seminar Nasional Sistem Informasi Indonesia.
[5] Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika.
[6] Essilinger, Bernhard,2010,The CrypTool Script: Cryptography, Mathematics, and More,10th Edirion, Frankfurt-Germany: Prof Bernhard and the Cryptool Development Team 1998-2010.
[7] Sutojo,T., Bowo N., Erna, Z.A., dkk., 2010, Teori dan Aplikasi Aljabar
Linear dan Matrik dengan Implementasi Aljabar Linear dan Matriks Menggunakan Matlab., Semarang : Andi
[8] Tampomas, Husein. 2004. Fungsi Komposisi dan Fungsi Invers. Grasindo. [9] Maplesoft, 2010. WeberE - The Weber function, Maple-14, Waterloo:
Waterloo Maple Inc.