KEAMANAN DATA DIGITAL
KRIPTOGRAFI KLASIK II
Pertemuan Ke-3
Semester Gasal 2022-2023
Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.
Magister Teknik Elektro Departemen Teknik Elektro
Universitas Diponegoro SEMARANG
KRIPTOGRAFI KLASIK
• Ada 4 (empat) algoritme kriptografi klasik yang akan dipelajari pada pertemuan kali ini
• Keempat algoritme tersebut adalah:
SANDI AFFINE SANDI HILL
SANDI ONE-TIME PAD SANDI ROTOR
Pendahuluan tentang Konsep Modulo
• Konsep Modulo merupakan bagian yang dibahas pada Matematika Diskret. Sangat sering dipakai dalam algoritme 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 .
.
Cn = (a Pn + b) mod 26 Kunci (a,b)
Contoh :
Plaintext : BIMASAKTI, kunci (15,7) Jawaban :
Harus melihat tabel konversi
Sandi AFFINE…
Huruf Angka C(n) = ((a x Pn) + b) mod 26
B P0 = 1 C(0) = ((15 x 1)+7) mod 26 = 22 mod 26 = 22 = W I P1 =8 C(1) = ((15 x 8)+7) mod 26 = 127 mod 26 = 23 = X M P2 =12 C(2) = ((15 x 12)+7) mod 26 = 187 mod 26 = 5 = F A P3 = 0 C(3) = ((15 x 0)+7) mod 26 = 7 mod 26 = 7 = H S P4 =18 C(4) = ((15 x 18)+7) mod 26 = 277 mod 26 = 17 = R A P5 = 0 C(5) = ((15 x 0)+7) mod 26 = 7 mod 26 = 7 = H K P6 =10 C(6) = ((15 x 10)+7) mod 26 = 157 mod 26 = 1 = B T P7 =19 C(7) = ((15 x 19)+7) mod 26 = 292 mod 26 = 6 = G I P8 = 8 C(8) = ((15 x 8)+7) mod 26 = 127 mod 26 = 23 = X
• Enkripsi
Sandi AFFINE…
• Untuk mencari pasangan kunci (a,b)
- Prosedur : menggunakan serangan plaintext yang diketahui yaitu memilih 2 (dua) pasangan plaintext – ciphertext à 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 Dengan 0 <= (a,b) < 26
a + b = 22 8a + b = 23
7a = 1 mod 26
Sandi AFFINE…
• Menggunakan :
Metode Trial and Error
7a = 26n + 1 ; n = {1, 2, 3, 4, …}
Kandidat 7a = {27, 53, 79, 105, 131, ….}
Mana yang kelipatan 7? 105 à 105 = 7 x 15 à a = 15 Didapatkan :
a = 15
Sehingga : a + b = 22 15 + b = 22 b = 22 – 15 b = 7
a 7a mod 26 = 1 Keterangan
0 0 mod 26 = 0 tidak
1 7 mod 26 = 7 tidak
2 14 mod 26 = 14 tidak
3 21 mod 26 = 21 tidak
4 28 mod 26 = 2 tidak
5 35 mod 26 = 9 tidak
6 42 mod 26 = 16 tidak
7 49 mod 26 = 23 tidak
8 56 mod 26 = 4 tidak
9 63 mod 26 = 11 tidak
10 70 mod 26 = 18 tidak
11 77 mod 26 = 25 tidak
12 84 mod 26 = 6 tidak
13 91 mod 26 = 13 tidak
14 98 mod 26 = 20 tidak
15 105 mod 26 = 1 YA
: : : : :
: : : : :
25 157 mod 26 = 19 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 I J K L M
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}
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 setiap 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 dalam posisi 1 maka gunakan kunci 1, rotor dalam posisi 2 maka gunakan kunci 2,
rotor dalam posisi 3 maka gunakan kunci 3,
dan seterusnya.
Sandi Rotor…
Contoh :
Mesin rotor 3 posisi dengan 3 kunci subsitusi K
0= {C, D, E, A, B}
K
1= {B, E, A, C, D}
K
2= {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 K
0urutan kedua adalah huruf D,
sehingga prosesnya adalah B terenkripsi menjadi D, begitu seterusnya
P(i) = {A, B, C, D, E}
Ada Pertanyaan?
TERIMA KASIH
TUGAS 2
1. Carilah
ciphertextdari 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.
4. Bagaimanakah ciphertext dari pesan: “Apakah ini
Pesan Rahasia?” menggunakan algoritme One-Time Pad jika diketahui kuncinya adalah sebagai berikut.
{6,2,9,17,6,25,0,4,8,19,21,24,1,5,7,10,16,7,11,10,3}
SELAMAT MENGERJAKAN, SEMOGA SUKSES