KEAMANAN DATA DIGITAL FAST EXPONENTIATION
1. Konsep Modulo 2. Perpangkatan Cepat
Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.
Magister Teknik Elektro – Universitas Diponegoro
Fast Exponentiation
Algoritma kunci-publik seperti RSA, Elgamal, Rabin-Williams Cryptosystem, DSA, dan sebagainya, sederhana dalam
perhitungannya namun sulit dalam implementasinya pada
perangkat lunak. Hal ini karena algoritma tersebut melakukan operasi perpangkatan dengan bilangan yang besar.
Metode Fast Exponentiation digunakan untuk menghitung operasi pemangkatan besar bilangan bulat modulo dengan cepat.
Konsep Modulo (1)
Konsep Modulo merupakan bagian yang dibahas pada Matematika Diskret.
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
Konsep Modulo (2)
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.
Model penulisan lain (lebih panjang):
FAST EXPONENTIATION
Jadi hasil dari 3
11mod 35
≡
Contoh 10
98mod 11
10
98mod 11 ≡ 10
64+32+210 mod 11 ≡ 10 ≡ (-1) mod 11 10
2≡ (-1)
2≡ 1 mod 11
10
32≡ (10
2)
16=1
16≡ 1 mod 11 10
64≡ (10
32)
2= 1
2≡ 1 mod 11
Jadi 10
98mod 11 ≡ 10
64+32+2≡ 10
64. 10
32. 10
2≡ (1). (1). (1) ≡ 1 mod 11
Untuk angka-angka yang besar, mau tidak mau harus menggunakan kalkulator.
Contoh:
Carilah: 57237 mod 713 57237 = 57232 × 5724 × 572
572 mod 713 ≡ 572 ≡ (-141) mod 713 5722 ≡ (-141)2 ≡ 630 ≡ (-83) mod 713
5724 ≡ (5722) 2 ≡ (-83) 2 ≡ 472 ≡ (-241) mod 713 5728 ≡ (5724) 2 ≡ (-241) 2 ≡ 328 mod 713
57216 ≡ (5728) 2 ≡ 328 2 ≡ 634 ≡ (-79) mod 713 57232 ≡ (57216) 2 ≡ (-79) 2 ≡ 537 ≡ (-176) mod 713 Jadi 57237 mod 713 ≡ 57232 × 5724 × 572 ≡
(-176).(-241).(-141) ≡ (-12) mod 713
TUGAS (Kode 4-1.1 – 4-1.5)
Dengan Fast Exponentiation, carilah:
1. 15
35mod 17
2. 23
15mod 29
3. 3
24mod 8
4. 5
105mod 12
5. 7
37mod 10
Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.
ENKRIPSI RSA
R S A
Ronald Rivest, Adi Shamir, Leonard Adleman)
RSA PUBLIC KEY
ALGORITHM
PUBLIC KEY CRYPTOGRAPHY
Everyone knows Bob ’ s public key.
Anyone can do the public operation.
Only Bob knows his own private key.
It is not possible to find M, given only C and not the private key.
It is not possible to find the private key, given the public key.
Therefore, only Bob can do the private operation.
Konversi Huruf ke Angka dalam RSA
Dalam implementasinya, pesan m yang akan dienkripsi adalah
berbentuk teks, sehingga teks (rangkaian huruf/karakter) tersebut harus dinyatakan dalam sebuah angka.
Cara mengkonversi adalah mengikuti rumus (Cara Pertama)
dengan n = panjang karakter
Contoh: bagaimana mengubah pesan “aabc” menjadi sebuah angka m?
n i i
i
m
1(ASCII(kar akter ke ) * 256
å
0-
=
-=
TABEL ASCII
Konversi Huruf ke Angka dalam RSA (2)
Contoh: bagaimana mengubah pesan “aabc” menjadi sebuah angka m?
Jawab: ASCII (‘a’) = 97 ASCII (‘b’) = 98
ASCII (‘c’) = 99
sehingga m = (97 x 2560) + (97 x 2561) + (98 x 2562) + (99 x 2563)
= 97 + 24.842 + 6.422.528 + 1.660.944.384
= 1.667.391.841 (angka yang cukup besar)
n i i
i
m
1(ASCII(kar akter ke ) * 256
å
0-
=
-=
Konversi Huruf ke Angka….(3)
Namun demikian, sebetulnya cara tersebut bukan satu-satunya, tergantung dari kesepakatan Alice dan Bob.
Ada yang menggunakan cara karakter per karakter (Cara kedua)
Misal kata ”tugasakhir” akan dikonversi terlebih dahulu menjadi:
“tugasakhir” = 116 117 103 97 115 97 107 104 105 114
Misalkan Alice mengambil blok dengan panjang 4 digit menjadi : 1161, 1710, 3971, 1597, 1071, 0410, 5114.
Masing-masing angka ini kemudian dihitung menggunakan pasangan kunci publik.
• Tentang kunci publik, kunci rahasia, enkripsi, dekripsi, dsb. dibahas setelah ini.
Konversi Huruf ke Angka….(4)
Cara ketiga: Mirip dengan cara pertama, namun dengan bilangan basis yang dipangkatkan 95.
Cara keempat, kelima, dan seterusnya bisa dicek di Internet.
Intinya, untuk mengubah ke suatu angka tergantung konvensi (kesepakatan) antara Alice dan Bob
Untuk mengembalikan dari angka menjadi huruf saat
dekripsi, dibutuhkan tabel ASCII (untuk cara kedua) dan
kalkulasi komputer yang lebih rumit (untuk cara pertama
dan ketiga)
Ide Utama Enkripsi RSA (Rivest, Shamir, Adleman)
1. Key setup
v Pilih dua buah bilangan prima p,q
v Hitung n = p.q
v Pilih e sedemikian hingga 1<e<ф dengan ф = (p-1)(q-1)
v Hitung d yang secara relatif prima terhadap ф 1<d< ф
kunci publik (n,e) kunci privat (d)
2. Enkripsi
c = m e mod n
m = pesan asli / plaintext 3. Dekripsi
m = c d mod n
Perhatikan contoh soal berikut.
Diketahui pada algoritma RSA bahwa key setup yang dilakukan adalah p=3, q=11 dan e dipilih 17
a. Berapa nilai d yang dipilih?
b. Jika m=5 tentukan ciphertext-nya.
c. Buktikan bahwa dekripsi yang dilakukan akan
menghasilkan m yang sesuai butir b.
Jawab:
p=3 q=11
n=p.q=(3)(11)=33
ф=(p-1)(q-1)=(2)(10)=20 e 1<e<ф 1<e<20 misal e=17
pilih d, 1<d< ф ed=1 mod ф
Kandidat d e.d e.d mod ф keterangan
2 34 34 mod 20 = 14 bukan
3 51 51 mod 20 = 11 Bukan
4 68 68 mod 20 = 8 Bukan
…. … … …
13 221 221 mod 20 = 1 Dipilih
Cari cara cerdas untuk mencari d
1. Perkirakan, d genap atau ganjil à akan menghemat setengah waktu untuk pencarian
2. Perkirakan kandidat d yang paling mungkin.
Contoh: dari kasus sebelumnya e.d mod ф = 1; untuk e = 17 dan ф = 20 dapat ditulis sebagai 17d/20 = sebuah angka (tidak penting berapa nilainya) dengan sisa pembagian 1.
Semua kelipatan 20 pasti berakhiran 0 (yaitu: 20, 40, 60, dst.)
17d pasti berakhiran (0 + 1) = 1; dan d pasti berakhiran 3, karena bilangan lain jelas tidak mungkin (ingat 7*3 = 21)
Untuk 1<d< 20, maka d yang mungkin adalah 3 dan 13.
Bilangan 3 sudah dicari à bukan. Berarti jawabannya pasti d = 13.
Cek: 17*13 = 221; 221 mod 20 = 1 àTERBUKTI.
kunci publik (n,e)=(33,17)
kunci privat (d)=(13) b. Enkripsi
c = me mod n m=5
v c=14
33
c. Dekripsi
v m = 5 (terbukti)
TUGAS (Kode 4-2 dan 4-3)
4-2. Untuk teks “Hello”, tentukan m (plaintext) yang siap dienkripsi dalam RSA, dengan cara pertama dan kedua (asumsi: ukuran blok 3 digit menjadi 4 digit). Lihat Tabel ASCII.
4-3. Diketahui pada algoritma RSA bahwa key setup yang dilakukan adalah p=13, q=17, dan e dipilih = 25.
a. Berapa nilai d yang dipilih? (d adalah ganjil sedemikian hingga 159 < d < 190)
b. Jika m = 7, tentukan ciphertext c-nya.
c. Buktikan bahwa dekripsi yang dilakukan akan menghasilkan m sesuai butir b.
Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.
ENKRIPSI EL GAMAL
El Gamal Encryption
Diambil dari nama penggagasnya: Taher Elgamal (Mesir)
Ide Utama Enkripsi El Gamal
1. Key setup
a. Tentukan bilangan prima p
b. hitung α sedemikian hingga 1< α ≤p-1 α(p-1)/2 ≠1 mod p
c. pilih a sedemikian hingga 1 ≤ a ≤ p-2 hitung αa mod p
kunci publik (α, p, αa mod p) kunci privat a
2. Enkripsi
Pesan m dengan kisaran {0,1, … , p-1}
a. Pilih bilangan bulat k, 1 ≤ k ≤ p-2
b. Hitung 𝛾 = αk mod p dan 𝛿 = m(αa)k mod p pasangan chiperteks c=(𝛾,𝛿)
3. Dekripsi
Hitung 𝛾p-1-a ≡ 𝛾-a ≡ α-ak mod p
Kemudian tentukan m = 𝛿(𝛾p-1-a) mod p
Fermat’s Little Theorem: ap-1 ≡ 1 mod p untuk semua 1 < a < p, dengan p bil. prima
Fermat's little theorem
contoh soal
Pada metode El gamal prima p yang dipilih adalah 23 a. Tentukan α yang sesuai
b. Jika kunci rahasia yang dipilih adalah a=7 dan k=6 tentukan chiperteks c sebagai hasil enkripsi dari m=9
c. Buktikan hasil dekripsi yang dilakukan akan menghasilkan m sesuai butir b
jawab
a. p = 23
mencari α untuk 1 < α < 23 2,3,4,…,22 coba coba α(p-1)/2 ≠1 mod p
α = 2 211 mod 23 = 1 mod 23 α = 3 311 mod 23 = 1 mod 23 α = 4 411 mod 23 = 1 mod 23
α = 5 511 mod 23 = -1 mod 23 dipilih α = 5
b. a=7 k=6 m=9
c = (𝛾,𝛿)
𝛾 = αk mod p = 56 mod 23 = 8 mod 23 𝛾=8
𝛿 = m (αa)k mod p = 9 (57)6 mod 23 = 16 mod 23 𝛿=16 c = (𝛾,𝛿) = (8,16)
c. dekripsi
m = 𝛿 (𝛾p-1-a) mod 23
= 16 (815) mod 23
= 9
(untuk jawaban di ujian atau tugas, harus menyertakan caranya, tidak boleh TIBA-TIBA langsung ke hasil akhir J)
terbukti m = 9
TUGAS
1. Pada metode El Gamal, prima p yang dipilih adalah 19.
a.Tentukan a yang sesuai.
b. Jika kunci rahasia yang dipilih a = 5, dan k = 4, tentukan ciphertext c sebagai hasil enkripsi dari m = 8.
c. Buktikan bahwa dekripsi yang dilakukan akan menghasilkan m sesuai butir b
TUGAS (LANJUTAN EL-GAMAL)
2. Dengan menggunakan rumus-rumus yang ada, buktikan bahwa:
𝛿(𝛾p-1-a) mod p = m 3. Pada metode El Gamal, prima p yang dipilih adalah 29.
a. Tentukan a yang sesuai, dengan syarat
b. Jika kunci rahasia yang dipilih a = 7, dan k = 6, tentukan ciphertext c sebagai hasil enkripsi dari m = 9.
c. Buktikan bahwa dekripsi yang dilakukan akan menghasilkan m sesuai butir b.
Rabin-Williams Cryptosystems
Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.
Michael Oser Rabin
(Israel, lahir di Jerman)
Hugh C. Williams (Kanada)
Rabin-Williams Cryptosystems
Key setup : pilih prima p,q
n = pq → public key p,q → private key
Enkripsi :
pesan m sebagai pesan asli
pesan m direplika pada r-bit LSB Pesan enkripsi m = m ║ r
ciphertext c ≡ m2 mod n
Rabin-Williams Cryptosystems
Dekripsi
Hitung akar dari → c mod n terdapat 4 akar :m1,m2,m3,m4 Pilih m yang sesuai
Buang replika
Tentukan pesan asli m
Contoh soal #1:
Diketahui pada algoritma enkripsi Rabin- Williams bahwa p = 5, q = 11. Pesan yang dikirim = m=1001110101, kemudian 6-bit terakhir direplika sehingga m memiliki panjang 16-bit. Tentukan ciphertext c yang dikirimkan.
Jawab: n = pq = (5)(11) = 55
m = m ║ r = 1001110101110101
b= 40309
dc = m
2mod n
= 40309
2mod 55 = 1624815481 mod 55
= [(29542099 x 55) + 36] = 36
Contoh Soal #2:
Ø
Key setup : p=277 ;q=331 ; n=pq= 277.331 = 91687
Ø
Enkripsi : misal m = 633 = 1001111001 b; replika 6-bit m = m ║ r = 1001 1110 0111 1001 = 40569 d
Ciphertext : c ≡ m
2mod n = 40569
2mod 91687
≡ 62111
Ø
Dekripsi : misal diketahui, m
1= 69654 ; m
2=22033 ; m
3= 40569 ; m
4= 51118, tentukan m !
Jawab : m
1= 69654 = 100001000000010110 (bukan replika) m
2= 22033 = 1010110000100001 (bukan replika) m
3= 40569 = 1001 111001 111001 (replika)
karena m3 mempunyai replika maka m = m3 dipotong
Contoh Soal #3 :
diketahui enkripsi rabin, p=23, q=29 . Pesan yang dikirim 1111 0010 1010. 4 bit terakhir diduplikasi sehingga panjang pesan
menjadi 16 bit. Tentukan C!
Jawab :
p=23, q=29 ; n= pq = (23)(29) = 667 Enkripsi : m = 1111 0010 1010
m = m ║ r = 1111 0010 1010 1010 = 62122 C = m2 mod n = (62122) 2 mod 667 =277
(untuk jawaban di ujian atau tugas, harus menyertakan caranya,
tidak boleh TIBA-TIBA langsung ke hasil akhir J )
Dekripsi pada Rabin-Williams Cryptosystem à sedikit rumit
Untuk perkuliahan, diberikan hanya enkripsinya
Silakan untuk dekripsi bisa dipelajari sendiri à lihat slide-slide berikut
(bukan materi UTS ataupun tugas)
TUGAS tentang Rabin-Williams Cryptosystem
Diketahui pada algoritma enkripsi Rabin- Williams bahwa p = 17, q = 13. Pesan yang dikirim = 101010100111, kemudian 4-bit
terakhir direplika sehingga m memiliki panjang
16-bit. Tentukan ciphertext c yang dikirimkan
Ada pertanyaan?
TERIMA KASIH