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” menyatakan bahwa dengan memanfaatkan karakter ASCII kriptografi klasik
1
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, 1 (3) = ( ) det( ) - 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 { , , … , }. Dimisalkan P adalah plainteks dan C adalah cipherteks, maka 2
=
⋮ ,
=
⋮
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 : Dengan
( )
dan
( )
( )
=
( )
( )
(6)
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. - Nilai yang diperoleh merupakan kumpulan urutan bilangan dalam basis β.
3
3.
Metode Perancangan
Perancangan sistem Modifikasi Kriptografi Hill Cipher Menggunakan Fungsi Rasional dan Fungsi Weber, dilakukan dengan tahapan penelitian seperti ditunjukkan pada Gambar 1. Analisis Kebutuhan Pengumpulan bahan
Perancangan Modifikasi Hill Cipher
Uji Hasil Perancangan Laporan Penelitian 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. 4
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)
(16) ln( ) 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 0 1 7 3 = (20) 0 2 - Untuk mendapatkan kunci matriks yang kedua, berdasar pada Persamaan (19) maka digunakan matriks sebagai berikut 1 2 3 = (21) − 2 - Untuk mendapatkan kunci matriks yang ketiga, berdasar pada Persamaan (19) maka digunakan matriks sebagai berikut 2 = 3 (22) 5 2 2 5
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 ( ) = (29) 127 − ( )
( )
=
=
−2 3 −1
127
(30)
127 (31) −1 + 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 ℓ = cipherteks, = 2, dan = 131 (33)
6
Gambar 2 menunjukkan proses enkripsi dalam modifikasi Hill Cipher. Matrik kunci 2 ( 1 2 = −
Matrik kunci 1 ( ) 0 1 3 = 7 0 2
Plaintext
ASCII
)
Matrik kunci 3 ( 2 = 3 5 2
3 2
)
2
= {a1, a2,…,an}
={ ,
,…,
ASCII
=(
} =
=
+
+⋯+ 127 =
ln( ) Fungsi Weber
Kunci ( , ):
=
+
′
+(
−
127 = { , ,…,
3
( )= = ={ , ( )=
) =
}
3
={
=
,
} + 2
( )= ∗ ,…,
,…,
}
+
={ ,
={ ,
}
}
+ 2
,…,
127,
}
1
p r o s e s
127,
,…,
}
2
p r o s e s
127,
∗ ,…,
p r o s e s
= ∗ = {ℎ , ℎ , … , ℎ }
}
∗ ,…,
∗ ,…,
={ ,
127,
= ={ ,
127,
+
)−( + )
+ + 2 ,…,
= , ( )
)
( − ) cos(
={ ,
+ + 2
={
ln(
( )=
= ∗ = { , ,…, } ( )=
)
}
3 127,
={ ,
,…,
}
Kunci
CBB
Matrik Kunci
cipherteks
Gambar 2. Proses Enkripsi
7
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 M 3 × 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 M 3 × 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 = { , , ,…, } (42) 8
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) = {Ω , Ω , Ω , … , Ω } Dimana adalah banyaknya karakter yang dihasilkan.
9
Chipertext
=(
CBB Inve rs Ma t rik Ku nc i 3
3=
=
ln(
Invers Matrik Kunci 2
=
+
( , ):
( )=
Invers Matrik Kunci 1
1=
∗
={ ( )= ∗
={
∗
,
( )=
∗
,…,
( )=
={
∗
∗
,
∗
,…,
−
) =
∗
∗
∗ ,…,
∗
,
∗
∗
,…,
}
Matrik Kunci
∗
∗ ,…,
∗
∗
,
= = { ∗, −2 3 −1
∗
∗
,…,
∗
∗ ,…,
}
∗
p r o s e s
}
2 127,
={ 2 −
127
p r o s e s
}
= ∗ = {ℎ ∗ , ℎ ∗ , … , ℎ ∗ }
( )=
Kunci
Kunci
1
} ( )=
127,
ASCII
ln( )
} ={
∗
}
)−( + )
= = { ∗,
}
12,
}
∗
( − ) cos(
,…,
=
127,
−2 3 −1 ∗
+(
={ ,
127,
,…,
= = { ∗,
}
−1 +
∗ ,…,
∗
,
′
2 −
−1 +
={ = = { ∗,
+
)
=
)
Fungsi Weber
2=
+ ⋯+ 127
127 ,
Plaintext
∗
= = { ∗,
∗
,
∗
,…,
∗ ,…,
∗
}
p r o s e s 3
∗
}
ASCII
Gambar 3. Proses Dekripsi
Gambar 3 menunjukkan rancangan proses dekripsi, dijelaskan sebagai berikut :
10
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) 14. Bilangan yang dihasilkan pada akhir putaran yaitu Persamaan (59) disubtitusikan dalam kode ASCII yang berkorespondensi sehingga plainteks diperoleh kembali.
11
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 1 = 7 35 3 (66) 0 19 2 1 2 73 = 119 35 3 (67) 100 19 2 65 2 73 = 3 35 65 (68) 5 38 2 Invers matriks ordo 3 × 3, digunakan dalam proses putaran dekripsi. 56 33 113 = 96 33 93 (69) 104 4 6 126 89 30 = 5 (70) 112 94 66 74 84 106 29 78 = 22 (71) 67 4 79 115 47 f. Fungsi rasional, digunakan dalam proses putaran enkripsi. Dengan mensubstitusi hasil Persamaan (64) maka 107 + 2 ( )= 127 (72) Dengan mensubstitusi hasil Persamaan (65) maka
12
10 + 127 3 +2 Dengan mensubstitusi hasil Persamaan (64) maka 107 + ( )= 127 ( )=
g.
(73) (74)
Invers fungsi rasional, digunakan dalam proses putaran deskripsi. 107 ( )= 127 (75) −1 + 10 − 2 ( )= 127 (76) 3 −1 2 ( )= 127 (77) − 107 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 (81) = {70, 84, 73, 32, 85, 75, 83, 87, 32} 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 (82) = {103, 93, 91, 125, 122, 114, 122, 39,66} - Bilangan-bilangan pada Persamaan (82) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (72), sehingga (83) = {54, 92, 114, 106, 5, 58, 5, 81, 57} - Bilangan-bilangan pada Persamaan (83) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (67), maka didapatkan (84) = {51, 82, 10, 32, 9, 16, 10, 45, 121} - Bilangan-bilangan pada Persamaan (84) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (73), sehingga (85) = {43, 27, 80, 73, 97, 31, 80, 69, 95} 13
Putaran kedua - Bilangan-bilangan pada Persamaan (85) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (67), maka didapatkan (86) = {95, 79, 20, 117, 110, 61, 41, 28, 103} - Bilangan-bilangan pada Persamaan (86) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (73), sehingga (87) = {84, 11, 107, 0, 109, 91, 38, 92, 51} - Bilangan-bilangan pada Persamaan (87) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (68), maka didapatkan (88) = {85, 99, 36, 3, 78, 6, 27, 45, 105} - Bilangan-bilangan pada Persamaan (88) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (74), sehingga (89) = {68, 38, 71, 79,4, 40, 52, 57, 25} Putaran ketiga - Bilangan-bilangan pada Persamaan (89) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (68), maka didapatkan (90) = {27, 53, 21, 62, 56, 119, 112, 93, 63} - Bilangan-bilangan pada Persamaan (90) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (74), sehingga (91) = {52, 15, 121, 99, 46, 67, 87, 24, 41} - Bilangan-bilangan pada Persamaan (91) disusun ke dalam blok vector dan dikalikan dengan matriks pada Persamaan (66), maka didapatkan (92) = {107, 109, 19, 55, 91, 119, 42, 48, 30} - Bilangan-bilangan pada Persamaan (92) kemudian disubtitusikan ke dalam fungsi rasional pada Persamaan (72), sehingga (93) = {18, 121, 67, 47, 114, 75, 101, 70, 124} 3. Langkah yang terakhir yaitu mendapatkan cipherteks dengan cara bilanganbilangan pada Persamaan (93) dikonversi menggunakan Persamaan (78), sehingga = {1,1,0,1,0,1,0,0,1,0,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1, 1,0,1,1,0,0,1, 1,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,0,1,0,0,1}
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 (94) = {18, 121, 67, 47, 114, 75, 101, 70, 124} - Bilangan-bilangan pada Persamaan (94) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (75), sehingga (95) = {107,109,19,55,91,119,42,48,30} - Kemudian bilangan-bilangan pada Persamaan (95) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (69), maka didapatkan (96) = {52,15,121,99,46,67,87,24,41} 14
-
Bilangan-bilangan pada Persamaan (96) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (77), sehingga (97) = {27, 53,21,62,56,119,112,93,63} - Kemudian bilangan-bilangan pada Persamaan (97) disusun ke dalam blok vektor, dan dikalikan dengan invers matriks pada Persamaan (71), maka didapatkan (98) = {68,38,71,79,4,40,52,57,25} Proses putaran balik 2 - Bilangan-bilangan pada persamaan (98) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (77), sehingga (99) = {85,99,36,3,78,6, 27,45,105} - Kemudian bilangan-bilangan pada pesamaan (99) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (71), maka didapatkan (100) = {84,11,107,127,109,91,38,92,51} - Bilangan-bilangan pada persamaan (100) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (76), sehingga (101) = {95,79,20,117,110,61,41,28,103} - Kemudian bilangan-bilangan pada pesamaan (101) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (70), maka didapatkan (102) = {43,27,80,73,97,31,80,69,95} Proses putaran balik 1 - Bilangan-bilangan pada persamaan (102) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (76), sehingga (103) = {51,82,10,32,9,16,10,45,121} - Kemudian bilangan-bilangan pada pesamaan (103) disusun ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (70), maka didapatkan (104) = {54,92,114,106,5,58,5,81,57} - Bilangan-bilangan pada Persamaan (104) kemudian disubtitusikan ke dalam invers fungsi rasional pada Persamaan (75), sehingga (105) = {103,93,91,125,122,114,122,39,66} - Kemudian bilangan-bilangan pada Persamaan (105) ke dalam blok vektor dan dikalikan dengan invers matriks pada Persamaan (69), maka didapatkan (106) = {70,84.73,32,85,75,83,87,32} 2. Langkah terakhir yaitu bilangan-bilangan yang dihasilkan pada akhir putaran yaitu Persamaan (106) disubtitusikan dalam kode ASCII yang berkorespodensi sehingga diperoleh plainteks : " "
Berdasarkan hasil pengujian modifikasi Hill Cipher tersebut, dapat dikatakan sebagai sebuah sistem kriptografi karena dapat melakukan proses enkripsi dan dekripsi. Sistem kriptografi harus memenuhi lima tuple (five-tuple) [10]. Modifikasi kriptografi Hill Cipher yang dilakukan telah memenuhi lima tuple, dengan penjelasan sebagai berikut : 15
-
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. 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ALZ-2 Hill Modif H-AIS
10 100 200 300 400 500 600 700 800 900 1000 Gambar 4. Perbandingan Terhadap Waktu
16
80 70 60 50 40 30
ALZ-2 Hill Modif H-AIS
20 10 0 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 100 – 200 200 – 300 300 – 400 400 – 500 500 – 600 600 – 700 700 – 800 800 – 900 900 – 1000
0,0073 0,0068 0,0097 0,0106 0,0095 0,0113 0,0126 0,0134 0,0068 0,0250
0,0067 0,0002 0,0160 0,0347 0,0124 0,0163 0,0081 0,0277 0,0209 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
17
Plainteks
Kriptografi Modifikasi
Kriptografi Lama
10 – 100 100 – 200 200 – 300 300 – 400 400 – 500 500 – 600 600 – 700 700 – 800 800 – 900 900 – 1000
0 0 0 0 0 0,02 0,02 0,0002 0,0002 0,0002
0,022 0 0 0,3602 0,0002 0,0001 0,0003 0,0009 0,0789 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 78 = 22 (108) 67 4 79 115 47 - Dengan modifikasi Hill Cipher, maka terbentuk ciphertext dalam bilangan ASCII adalah sebagai berikut :
-
-
= {18, 121, 67, 46, 44, 53, 35, 111, 64, 25, 32, 121, 30, 102, 71}
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 diketahui pihak lain adalah “FTIUKSWSAL”
18
-
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 87 = = 84 75 83 (109) 73 83 65 - Disusun matriks ciphertext sebagai berikut : 18 46 35 = 121 44 111 (110) 67 53 64 - Selanjutnya mencari matriks kunci dengan informasi yang diperoleh : = . ( ) (111) 73 109 61 18 46 35 = 121 44 111 108 69 78 81 85 82 67 53 64 18 26 34 = 98 77 100 122 53 80 - Diperoleh, matriks K tidak sama dengan matriks kunci pada Persamaan (108), seperti ditunjukkan berikut : 106 29 78 18 26 34 (112) 22 67 4 ≠ 98 77 100 79 115 47 122 53 80 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 text. Saran pengembangan modifikasi selanjutnya yaitu plaintext berupa data file, folder, gambar dan berkas yang lainnya.
19
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. [10] Stinson, D.R. 1995. Cryptography Theory and Practice. Florida: CRC Press, Inc.
20