Sistem Kriptografi Hill Cipher

15 2.4.5. Bilangan prima Bilangan prima adalah bilangan bulat positif a, dimana a ≥ 2 hanya dapat dibagi dengan 1 dan bilangan itu sendiri. Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap. Contoh bilangan prima adalah 2, 3, 5, 7, 11, 13, 17, …. Untuk menguji apakah n merupakan bilangan prima atau bukan, kita cukup membagi n dengan sejumlah bilangan prima, dengan syarat bilangan prima ≤ √n. Jika n habis dibagi dengan salah satu dari bilangan prima tersebut, maka n bukan bilangan prima, tetapi jika n tidak habis dibagi oleh semua bilangan prima tersebut, maka n adalah bilangan prima. Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan bulat, yang terkenal dengan Teorema Fermat. Berikut pernyataan dari Teorema Fermat : Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p, yaitu GCDa,p = 1, maka : a p-1 ≡ 1 mod p Mollin, 2007. Teorema Fermat ini memiliki kelemahan yaitu terdapat bilangan bulat bukan prima p sedemikian sehingga a p –1 ≡ 1 mod p. Bilangan bulat p seperti itu disebut bilangan prima semu pseudoprimes. Bilangan bulat a yang menyebabkan a p –1 ≡ 1 mod p, dimana p adalah bilangan prima semu disebut dengan bilangan carmichael atau fermat’s liar. Akan tetapi, bilangan prima semu relatif jarang ditemukan. Contoh : Apakah p = 49 adalah bilangan prima? a. Pilihlah sembarang bilangan bulat positif a dengan syarat 1ap. b. Hitung a p-1 mod p sebanyak dua kali untuk menghindari ditemukan bilangan prima semu. Jika salah satu hasil perhitungan tidak sama dengan 1, maka bilangan bulat p bukan bilangan prima. 3 48 mod 49 = 43 6 48 mod 49 = 8 Karena a p-1 mod p ≠ 1, maka bilangan bulat p = 49 bukan bilangan prima

2.5. Sistem Kriptografi Hill Cipher

Sejak kekaisaran Romawi, kriptosistem yang lebih rumit dikembangkan oleh orang seperti ahli matematika Italia Leon Battista Alberti lahir pada tahun 1404, matematikawan Jerman Johannes Trithernius lahir pada tahun 1492, seorang Universitas Sumatera Utara 16 kriptographer dan diplomat Perancis Blaise de Vigenere 1523-1596, Lester S.Hill, yang menemukan Hill Cipher pada tahun 1929. Hill Cipher merupakan jenis lain dari Polygraphic cipher. Sandi ini mengenkripsi suatu string huruf menjadi bentuk string yang lain dengan panjang sama. Teknik Hill Cipher dikembangkan oleh Lester S.Hill pada Hunter Collage dan dipublikasikan pada American Mathematical Monthly, Volume 36, Issue 6 Juni-Juli, 1929 halaman 106-312. Hill Cipher menggunakan matriks untuk mentransformasi string berupa blok huruf Simamora,2015. Hill Cipher berdasarkan pada aljabar linier dan seperti sandi Vignere, Hill Cipher merupakan Block Cipher. Sandi ini dapat dipecahkan dengan Known-Plaintext Attacks tetapi tahan melawan ciphertext-only attack. Cara kerja sandi ini berdasarkan atas perkalian matriks dengan menggunakan sebuah kunci K. Penjelasan mengenai Hill Cipher ini dapat diuraikan sebaai berikut: Misalkan m adalah bilangan bulat positif dan � = � = � dan misalkan K ={ × merupakan matriks yang nilai elemennya terdiri dari }, maka untuk suatu kunci K, dapat didefenisikan sebagai ℮ � � = � × dan � � = � − � dimana semua operasi dilakukan dalam matriks . Karena � − dengan mudah dapat dihitung dari K, maka Hill Cipher merupakan suatu kriptosistem simetris. Hill Cipher juga merupakan blok cipher linier umum. Suatu blok cipher linier dapat dengan mudah dipecahkan yang dikenal cara Known-plaintext attacks. Maka bagi penyerang yang mengetahui beberapa contoh plaintext dengan enkripsi yang berhubungan, tidaklah sulit baginya untuk mencari kunci yang dipakai untuk mengenkripsikan plaintext tersebut. Metode dari perhitungan frekuensi sering dipakai untuk usaha ini. Metode ini mengeksplorasi perulangan redundancy dari bahasa alami yang dipakai sebagai plaintext pada pesan. Cara kerja Hill Cipher dapat disederhanakan dengan cara perkalian dengan matriks kunci K. K merupakan sebuah matriks kunci × yang merupakan representasi dari suatu persamaan linier. Cara mencari matriks kunci itu sendiri adalah dengan mencari GCD dari matriks K tersebut. Cara kerja Hill Cipher dapat diuraikan sebagai berikut. Pertama tentukan matriks kunci secara acak. Misal matriks kuncinya: � = Setelah matriks kunci ditentukan secara acak, lalu buktikan matriks kunci tersebut apakah mempunyai invers atau tidak. Syarat matriks punya invers yaitu Universitas Sumatera Utara 17 determinan matriks ≠ 0. Jika sudah memenuhi syarat, maka selanjutnya lakukan GCD det, 26 =1 Sebagai contoh, buktikan apakah matriks kunci ini mempunyai invers : � = Mencari determinan matriks : = 12 + 18 + 36 – 27 + 24 + 12 = 3 Setelah dapat determinannya selanjutnya pembuktian apakah matriks kunci atau tidak dengan cara : GCD det,26 = 1 GCD 3,26 = 1 3 mod 26 = 3 26 mod 3 = 2 3 mod 2 = 1 2 mod 1 = 0 Maka terbukti matriks diatas merupakan matriks kunci karena memenuhi syarat. Setelah mendapatkan matrik kunci. Maka untuk menghasilkan ciphertext menggunakan persamaan sebagai berikut: C=K.Pmod26 ………….……………….…………….…… 2.11 � � � = � � � � � � � � � � � � 2.5.1. Enkripsi Hill Cipher Langkah-langkah untuk proses enkripsi plaintext dengan Hill Cipher adalah sebagai berikut: 1. Pilih suatu matriks kunci K yang berupa matriks bujur sangkar yang dipakai sebagai kunci. 2. Transformasikan tiap huruf dalam teks ke bilangan bulat yang sesuai A=1; B=2;...Z=26. Universitas Sumatera Utara 18 3. Kelompokkan barisan angka yang didapat ke dalam beberapa blok vektor P yang panjangnya sama dengan ukuran matriks K. 4. Hitung C = K. P mod 26 untuk tiap vektor P. 5. Kembalikan tiap angka dalam vektor sandi C ke huruf yang sesuai untuk mendapatkan teks sandi. Skema kerja enkripsi Hill Cipher dapat dilihat pada Gambar 2.5. Gambar 2.5. Illustrasi Enkripsi Hill Cipher Bagian ini akan menjelaskan enkripsi dengan Hill Cipher dengan memberikan contoh. Hill Cipher menggunakan matriks untuk mentransformasikan string plaintext menjadi ciphertext. Untuk mentransformasikan plaintext maka pertama sekali semua alphanumerik dinyatakan dalam Tabel 2.1 seperti berikut: Tabel 2.1 Transformasi alphanumerik A B C D E F G H I J K L M N O P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Q R S T U V W X Y Z 16 17 18 19 20 21 22 23 24 25 Contoh : Kode Hill dengan mengunakan matriks 3×3 dengan kunci matriks : Diketahui teks asli adalah: “FITRIIMUT”. Perhatikan Tabel 2.2 pada proses enkripsi hill cipher. Universitas Sumatera Utara 19 Tabel 2.2 Enkripsi Hill Cipher Kunci Matriks 3×3 Plaintext Hasil perkalian kunci dengan Plaintext Hasil Akhir Ciphertext FIT= + + + + + + � = P H Y RII= + + + + + + � = E U X MUT= + + + + + + � = � H � Jadi, enkripsi dari “FITRIIMUT” adalah “PHYEUXPHR” 2.5.2. Dekripsi Hill Cipher Algoritma proses pendekripsian Hill Cipher dapat diuraikan dalam bentuk langkah- langkah sebagai berikut: 1. Hitung matriks � − Mod 26 sebagai kunci pembuka. � − ada jika GCD detK,26=1. 2. Transformasikan tiap huruf dalam teks ke bilangan bulat yang sesuai A=1; B=2; … Z=26. 3. Kelompokkan barisan angka yang didapat ke dalam beberapa blok vektor C yang panjangnya sama dengan ukuran matriks � − . 4. Hitung P = � − . � � untuk tiap vector C. 5. Kembalikan tiap angka dalam vektor sandi P ke huruf yang sesuai untuk mendapatkan teks sandi. Gambar 2.6 berikut adalah ilustrasi dekripsi Hill Cipher: Universitas Sumatera Utara 20 Gambar 2.6. Illustrasi dekripsi Hill Cipher Contoh : Diketahui Kode Hill dengan mengunakan matriks 3×3 dengan kunci matriks: Diketahui teks adalah: “PHYEUXPHR”. 1. Cari Adjoint dari matriks K yang ditunjukkan pada Tabel 2.3 Tabel 2.3 Mencari Adjoint dari Matriks K � = = 31-32= - 3 = � = − + ∗ − = − 3 3 2 1 � = = 61- 33= -3 = � = − + ∗ − = 6 3 3 1 � = = 62- 33= 3 = � = − + ∗ = 6 3 3 2 � = = 21- 32= -4 = � = − + ∗ − = 2 3 2 1 � = = 41- 33= -5 = � = − + ∗ − = − 4 3 3 1 Universitas Sumatera Utara 21 � = = 42- 23= 2 = � = − + ∗ = − 4 2 3 2 � = = 23- 33= -3 = � = − + ∗ − = − 2 3 3 3 � = = 43- 36= -6 = � = − + ∗ − = 4 3 6 3 � = = 43- 26= 0 = � = − + ∗ = 4 2 6 3 Adj K adalah � � � � � � � � � Adj K adalah -3 4 -3 3 -5 6 3 -2 b. Adjoint diperoleh, cari determinan matriks K yang ditunjukkan pada Tabel 2.4 berikut. Tabel 2.4 Proses determinan matriks K 4 2 3 4 2 6 3 3 6 3 3 2 1 3 2 Det K = 431+233+362-333-432-262 = 12+18+36-27-24-12 = 66-63 = 3 c. Invers dari determinan K Det K X = 1 mod 26 = 3X = 1 mod 26 Universitas Sumatera Utara 22 = 3X mod 26 = 1 = 39 mod 26 = 1 = 27 mod 26 = 1 d. Kemudian � � � − = det � − ∗ adj � mod � − = 9 − − − − = − − − − = − − − − e. Ketika adanya hasil yang negatif - maka, ditambahkan 26 agar tetap memperoleh bilangan Positif +, ini dilakukan karena yang digunakan adalah bilangan 0 hingga 25 seperti yang ditunjukkan pada Tabel 2.5. Tabel 2.5 Proses Pembulatan − − − − +26 Hanya yang bernilai negative f. Pembuktian bahwa K saling invers dengan � − , dengan melakukan perkalian, dan hasil akhirnya adalah matriks identitas yang ditunjukkan pada Tabel 2.6 berikut ini : Tabel 2.6 Proses Saling Invers K � − = K � − 425+21+31 410+27+38 425+22+30 625+31+31 610+37+38 625+32+30 325+21+11 310+27+18 325+22+30 100+2+3 40+14+24 100+40+0 Mod 26 = 150+3+3 60+21+24 150+6+0 75+2+1 30+14+8 75+2+0 g. Mendekripsikan dengan mengalikan matriks � − dengan Ciphertext � − ∗ �� . Tabel ciphertext dapat dilihat pada Tabel 2.7 dan proses dekripsi Hill Cipher dapat dilihat pada Tabel 2.8. Tabel 2.7 Tabel Ciphertext P H Y E U X P H R 15 7 24 4 20 23 15 7 17 Universitas Sumatera Utara 23 Tabel 2.8 Proses dekripsi Hill Cipher PHY � − ∗ �� Plaintext ∗ mod 2515+107+2524 Mod 26 mod =FIT 115+77+224 Mod 26 115+87+024 Mod 26 EUX � − ∗ �� Plaintext ∗ mod 254+1020+2523 Mod 26 mod =RII 14+720+223 Mod 26 14+820+023 Mod 26 PHR � − ∗ �� Plaintext ∗ mod 2515+107+2517 Mod 26 mod =MUT 115+77+217 Mod 26 115+87+017 Mod 26 Jadi teks asli dari “PHYEUXPHR” adalah “FITRIIMUT”.

2.6. Sistem Kriptografi Rabin Public Key