5 0 603 KB
KRIPTOGRAFI Pertemuan Ke-3 Semester Genap 2016-2017
KRIPTOGRAFI KLASIK II
Dr. R. Rizal Isnanto, S.T., M.M., M.T.
KRIPTOGRAFI KLASIK • Ada 4 algoritma kriptografi klasik yang dipelajari pada pertemuan kali ini • Keempat algoritma tersebut adalah: ▫ ▫ ▫ ▫
SANDI AFFINE HILL ONE-TIME PAD ROTOR
Konsep Modulo • Konsep Modulo merupakan bagian yang dibahas pada Matematika Diskret. Sangat sering dipakai dlm alg. Modern • Operasi modulo, misal: a mod b = c mempersyaratkan nilai-nilai a, b, dan c harus integer (bulat), dengan c merupakan sisa hasil-bagi bulat dari a/b div (a/b) • Contoh: 10/3 = 3, sisa 1 maka 10 mod 3 = 1 • Penggunaan kalkulator yang tidak ada fungsi mod-nya contoh: Berapa 124 mod 5? cara: 124 : 5 = 24.8 24 0.8 0.8*5 = 4 Sehingga, 124 mod 5 = 4, atau bisa ditulis: 124 4 mod 5
Konsep Modulo
• Jika a mod b, dengan a < b, maka a mod b = a • Jika a mod b, dengan a > b/2 dan a < b maka a mod b = a-b = (b-a) Contoh: berapakah 31 mod 33? Jawab: a = 31, b = 33, dengan a < b (=31 < 33), sekaligus a > b/2 (= 31 > 33/2 = 16,5), maka dapat dituliskan: 31 mod 33 = 31 31-33 -2 mod 33 atau dapat ditulis: 31 31-33 -2 mod 33 yang merupakan cara penulisan cepat. Angka hasil modulo yang kecil lebih disukai lebih mudah penghitungannya pada fast exponentiation (dibahas nanti) Model penulisan lain (lebih panjang): 31 mod 33 = (31-33) mod 33 = -2 mod 33 = -2
Sandi AFFINE • Sandi ini menggunakan pasangan kunci (a , b) untuk menentukan sebuah ciphertext • Harus ada konversi dari teks ke huruf sebagai berikut (H = Huruf; A = Angka)
Sandi AFFINE… C0 = (a P0 + b) mod 26 C1 = (a P1 + b) mod 26 Kunci (a,b) Contoh : Plaintext : BIMASAKTI, kunci (15,7) Jawaban : Harus melihat tabel konversi
Sandi AFFINE… • Enkripsi B
C(0) =
((15 x 1)+7) mod 26 =
22 mod 26 =
22 =
W
I
C(1) =
((15 x 8)+7) mod 26 =
127 mod 26 =
23 =
X
M
C(2) =
((15 x 12)+7) mod 26 =
187 mod 26 =
5 =
F
A
C(3) =
((15 x 0)+7) mod 26 =
7 mod 26 =
7 =
H
S
C(4) =
((15 x 18)+7) mod 26 =
277 mod 26 =
17 =
R
A
C(5) =
((15 x 0)+7) mod 26 =
7 mod 26 =
7 =
H
K
C(6) =
((15 x 10)+7) mod 26 =
157 mod 26 =
1 =
B
T
C(7) =
((15 x 9)+7) mod 26 =
142 mod 26 =
12 =
M
I
C(8) =
((15 x 8)+7) mod 26 =
127 mod 26 =
23 =
X
Sandi AFFINE… • Dekripsi – Dimulai dengan mencari kunci terlebih dahulu – Prosedur : known plaintext attack W = C0 = (a P0 + b) mod 26 X = C1 = (a P1 + b) mod 26 22 = (a . 1 + b) mod 26 23 = (a . 8 + b) mod 26
a + b = 22 8a + b = 23 7a = 1 mod 26
Sandi AFFINE… • Menggunakan : Metode Trial and Error Didapatkan : a = 15 Jadi : a + b = 22 15 + b = 22 b = 22 – 15 b=7
a 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 : : 25
7a mod 26 = 0 mod 26 7 mod 26 14 mod 26 21 mod 26 28 mod 26 35 mod 26 42 mod 26 49 mod 26 56 mod 26 63 mod 26 70 mod 26 77 mod 26 84 mod 26 91 mod 26 98 mod 26 105 mod 26 : : 157 mod 26
= = = = = = = = = = = = = = = = : : =
1
Keterangan
0 7 14 21 2 9 16 23 4 11 18 25 6 13 20 1 : : 19
tidak tidak tidak tidak tidak tidak tidak tidak tidak tidak tidak tidak tidak tidak tidak YA : : tidak
Sandi Hill Sandi Polyalphabet dengan perkalian matriks Contoh : Teks : “MATAHARI” Kunci : Huruf ke-
0
1 2 3 4 5 6 7 8 9 10 11 12
Plaintext
A B C D E F G H
Huruf ke-
13 14 15 16 17 18 19 20 21 22 23 24 25
Plaintext
N O P Q R S T U V W X Y Z
MATAHARI = {12, 0, 19, 0, 7, 0, 17, 8}
I
J K L M
Sandi Hill…
Jadi Ciphertext-nya = QIIRSJST
Sandi One-Time Pad • Setiap karakter/blok karakter, kuncinya dibangkitkan secara acak untuk semua plaintext, dan hanya digunakan sekali. • Contoh: one-time pad dengan sandi Caesar • Plaintext: “INITEKSRAHASIA” • Kunci: {8 , 15 , 17 , 3 , 11 , 19 , 24 , 8 , 1 , 14 , 14 , 18 , 24 , 23}
Sandi One-Time Pad…
Sandi Rotor • Ide : kunci berubah saat dengan menggunakan rotor • Misal rotor dengan 4 posisi, maka rotor berputar pada posisi : 0,1,2,3,0,1,2,3,0,1,2,3,…. • Ketika rotor dalam posisi 0, maka gunakan kunci 0, rotor posisi 1, maka digunakan kunci 1, dst
Sandi Rotor… Contoh : Mesin rotor 3 posisi dengan 3 kunci subsitusi K0 = {C, D, E, A, B} K1 = {B, E, A, C, D} K2 = {E, A, D, B, C} Tentukan ciphertext untuk plaintext “BACADE”, jika posisi awal =0
Sandi Rotor… i
Posisi Rotor
P(i)
C(i)
0
0
B
K0(B) = D
1
1
A
K1(A) = B
2
2
C
K2(C) = D
3
0
A
K0(A) = C
4
1
D
K1(D) = C
5
2
E
K2(E) = C
Maka ciphertextnya = DBDCCC Penjelasan : B berada pada urutan kedua dari alfabet {A, B, C, D, E} sementara pada K0 urutan kedua adalah huruf D, sehingga prosesnya adalah B terenkripsi menjadi D, begitu seterusnya
TERIMA KASIH
TUGAS 4 1. Carilah ciphertext dari pesan asli “REMBULAN” menggunakan Sandi Hill dengan kunci matriks sebagai berikut.
2.Pada implementasi Sandi Affine, seorang penyerang mencoba mencari pasangan kunci (a,b) yang dipakai untuk proses enkripsi dan dekripsi. Jika diketahui bahwa untuk teks asli “COSTARICA” maka teks sandinya adalah “EISBMJGEM”. Bantulah penyerang tersebut untuk mencari pasangan kunci tersebut. Diketahui bahwa a > 5.
3.Diketahui mesin rotor dengan 4 posisi, menggunakan 4 kunci substitusi K0 = {A,C,D,B,F,E} K1 = {C,A,B,E,D,F} K2 = {E,B,F,D,C,A} K3 = {F,D,E,A,B,C} Tentukan teks sandi untuk teks asli “FADBACE” jika posisi awal rotor adalah 2. Petunjuk: Urutan posisi rotor adalah: 0,1,2,3,0,1,2,3,... dan seterusnya.