• Tidak ada hasil yang ditemukan

Ekspoenisasi Cepat

N/A
N/A
Ivan Hawari

Academic year: 2024

Membagikan "Ekspoenisasi Cepat"

Copied!
53
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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

(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):

(5)

FAST EXPONENTIATION

(6)

— Jadi hasil dari 3

11

mod 35

(7)

— Contoh 10

98

mod 11

10

98

mod 11 ≡ 10

64+32+2

10 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

98

mod 11 ≡ 10

64+32+2

≡ 10

64

. 10

32

. 10

2

≡ (1). (1). (1) ≡ 1 mod 11

(8)

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

(9)

TUGAS (Kode 4-1.1 – 4-1.5)

Dengan Fast Exponentiation, carilah:

1. 15

35

mod 17

2. 23

15

mod 29

3. 3

24

mod 8

4. 5

105

mod 12

5. 7

37

mod 10

(10)

Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.

ENKRIPSI RSA

(11)

R S A

Ronald Rivest, Adi Shamir, Leonard Adleman)

RSA PUBLIC KEY

ALGORITHM

(12)

PUBLIC KEY CRYPTOGRAPHY

(13)

Everyone knows Bob ’ s public key.

Anyone can do the public operation.

(14)

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.

(15)

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

-

=

-

=

(16)

TABEL ASCII

(17)

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

-

=

-

=

(18)

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.

(19)

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)

(20)

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)

(21)

2. Enkripsi

c = m e mod n

m = pesan asli / plaintext 3. Dekripsi

m = c d mod n

(22)

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.

(23)

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

(24)

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.

(25)

— kunci publik (n,e)=(33,17)

— kunci privat (d)=(13) b. Enkripsi

c = me mod n m=5

v c=14

33

(26)

c. Dekripsi

v m = 5 (terbukti)

(27)

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.

(28)

Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.

ENKRIPSI EL GAMAL

(29)

El Gamal Encryption

— Diambil dari nama penggagasnya: Taher Elgamal (Mesir)

(30)

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

(31)

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

(32)

Fermat's little theorem

(33)

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

(34)

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)

(35)

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

(36)

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.

(37)

Rabin-Williams Cryptosystems

Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.

(38)

Michael Oser Rabin

(Israel, lahir di Jerman)

(39)

Hugh C. Williams (Kanada)

(40)

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

(41)

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

(42)

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

d

c = m

2

mod n

= 40309

2

mod 55 = 1624815481 mod 55

= [(29542099 x 55) + 36] = 36

(43)

—

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

2

mod n = 40569

2

mod 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

(44)

— 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 )

(45)

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)

(46)
(47)
(48)
(49)
(50)
(51)
(52)

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

(53)

Ada pertanyaan?

TERIMA KASIH

Gambar

TABEL ASCII

Referensi

Dokumen terkait

Pada proses pembangkitan kunci dibutuhkan perhitungan untuk menentukan nilai Totient n dan perhitungan dengan algoritma Euclidean untuk menentukan nilai dua buah

MENAMPILKAN 2 BILANGAN BULAT APAKAH BILANGAN BULAT TERSEBUT LEBIH BESAR ATAU LEBIH KECIL.

Sistem kriptografi kunci-publik (Public-key Cryptosystem), sering disebut algoritma asimetris (asymmetric cryptosystem), adalah algoritma di mana kunci yang digunakan

Aplikasi tes bilangan prima mengunakan rabin-miller, fast exponentiation , dan GCD dapat dijadikan alternatip pengujian bilangan prima yang besar, aplikasi ini

Metode yang digunakan dalam penelitian ini ialah deductive proof, dilakukan dengan mencari beberapa contoh graf pembagi nol dari gelanggang bilangan bulat modulo

Tingkat keamanan algoritma RSA standar memiliki celah keamanan pada kunci publik ataupun privat yang berasal dari inputan 2 bilangan prima saat pembangkitan kunci, begitupun

Aplikasi tes bilangan prima mengunakan rabin-miller, fast exponentiation, dan GCD dapat dijadikan alternatip pengujian bilangan prima yang besar, aplikasi ini dapat

Menyelesaikan masalah yang berkaitan dengan  bilangan bulat besar sebagai bilangan berpangkat  bulat positif.. Kunci : Buku