Modul 3 -1 I. PENDAHULUAN Kriptografi saat ini berkembang sedemikaian rupa sehingga menjadi sebuah ilmu tidak hanya seni. Memahami kriptografi dan kriptanalis memerlukan pengetahuan matematik. Matematika memberikan landasan matematis pada sebagian besar konsep di dalam kriptografi. Pada kryptography dasar tidak membutuhkan pengetahuan yang dalam atau sulit tapi seperti juga kita mempelajari ilmu-ilmu yang bukan matematika, yang kita butuhkan hanya sebatas pengenalan semua ide dari yang dibutuhkan saja. Pada bab ini akan merangkum secara ringkas beberapa teori di dalam matematika yang berguna untuk memahami kriptografi. II. TEORI BILANGAN A. KOMPETENSI Setelah mempelajari pokok bahasan ini mahasiswa dapat: a. Menjelaskan konsep bilangan yang mendukung algoritma kriptografi. b. Memahami penerapan konsep bilangan untuk diimplementasikan pada kriptografi B. URAIAN MATERI Teori bilangan adalah teori yang mendasar dalam memahami kriptografi, khususnya system kriptografi kunci public. Bilangan yang dimaksudkan di sini hanyalah blangan bulat (integer). Bilangan bulat adalah blangan yang tidak mempunyai pecahan decimal, misalnya 8, 21, 8765, -34, 0. 1. Modular Arithmetic Aritmatika modular sering kali diberikan diawal bangku sekolah dasar sebagai pemahaman aritmatik jam. Sebagai contoh 14 jam setelah jam 3 pagi adalah jam 5 pagi. Secara sederhana dapat dipahami sebagai berikut : Kriptografi - by Emy Setyaningsih Modul 3 -2 14 + 3 5 ( mod 12) atau 14 + 3 = 1 . 12 + 5 Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca a modulo m) memberkan sisa jika a dibagi dengan m. Bilangan m disebut modulus atau modulo, dan hasil arimetika modulo m terletak di dalam himpunan { 0, 1, 2, …, n-1 } Notasi : m mod n = r sedemikian sehingga m = nq + r, dengan 0 ≤ r < n Teorema EUCLIDEAN : Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n > 0. Jika m dibagi denga n maka terdapat dua buah bilangan bulat unik q (quotient) dan r (remainder), sedemikian sehingga m = nq + r Dengan 0 ≤ r < n Contoh : 1987 dibagi dengan 97 memberikan hasil bagi 20 dan sisa 47, atau ditulis sebagai 1987 mod 97 = 47 (1987 = 97. 20 + 47) -22 dibagi dengan 3 memberikan hasil bagi -8 dan sisa 2, atau ditulis sebagai -22 mod 3 = 2 ( -22 = (-8). 3 + 2 ) -22 = (-7).3 -1 salah karena r = -1 tidak memenuhi 0 ≤ r ≤ n Apabila m negative, bagi | m | dengan n mendapatkan sisa r. Maka m mod n = n – r bila r ≠ 0. Jadi |-22| mod 3 = 1, sehingga – 22 mod 3 = 3 – 1 = 2 2. Pembagi Bersama Terbesar (PBB) Misalkan a dan b adalah dua buah bilangan bulat tidak nol. Pembagi bersama terbesar PBB (PBB – greatest common divisor atau gcd) dari a dan b adalah bilangan Kriptografi - by Emy Setyaningsih Modul 3 -3 bulat terbesar d sedemikian sehingga d | a dan d | b. Dalam hal ini kita nyatakan bahwa PBB(a,b) = d. Contoh : Factor pembagi 45 : 1, 3, 5, 9, 15, 45 Factor pembagi 36 : 1, 2, 3, 4, 9, 12, 18, 36 Factor pembagi bersama dari 45 dan 36 adalah : 1, 3, 9 Sehingga PBB(45,36) = 9 3. Algoritma Euclidean Algoritma Euclidean adalah algoritma untuk mencari PBB dari dua buah bilangan bulat. Euclid adalah matematikawan Yunani yang menuliskan algoritma Euclidean dalam bukunya yang berjudul Element yang sangat terkenal. Apabila diberikan dua buah bilangan blat tak negative m dan n (m ≥ n). Algoritma Eulidean berikut mencari pembagi bersama terbesar dari m dan n Algoritma Euclidean : Jika n = 0 maka m adalah PBB(m,n); stop Kalau tidak (yaitu n ≠ 0) lanjutkan ke langkah 2 Bailah m dengan n dan misalkan r adalah sisanya Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulangi kembali ke langkah 1. Contoh : Misalkan m = 80 dan n = 12 dan dipenuhi syarat m ≥ n, maka PBB(80,12) dihitung dengan algoritma Euclidean sebagai berikut : 80 = 6 . 12 + 8 12 = 1 . 8 + 4 8=2.4+0 Sisa pembagian terakhir sebelum 0 adalah 4, maka PB(80,12) = 4 Kriptografi - by Emy Setyaningsih Modul 3 4. -4 Relatif Prima Dua buah bilangan bulat a dan b dikatakan relaif prima jika PBB(a,b) = 1. Jika a dan b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga ma + nb = 1 Contoh : 20 dan 3 relatif prima sebab PBB(20,3) = 1. Atau dapat ditulis 2 . 20 + (-13) . 3 = 1 Dengan m = 2 dan n = -13. Tetapi 20 dan 5 tidak relatif prima karena PBB(20,5) = 5 ≠ 1 sehingga 20 dan 5 tidak dapat dinyatakan dalam m . 20 + n . 5 = 1 5. Kekongruenan Notasi a b (mod n) dibaca a adalah kongruen ke b modulo n. Dimana untuk integer a, b dan n 0 jika dan hanya jika A=b+kn untuk beberapa k Oleh sebab itu n | (a – b) yang mana disebut juga n dibagi (a-b) Jika a b (mod n), b disebut sisa dari a modulo n . Sebagai contoh 17 5 (mod 12) dan 5 adalah sisa dari 17 modulo 12. A adalah himpunan {r1, r2, …,rn} disebut semua himpunan sisa mod n jika setiap bilangan bulat a, tepat berpasangan dengan satu ri di dalam himpunan yang memenuhi a ri (mod n). Untuk sembarang modulus { 0,1, …, n-1} bentuk-membentuk semua himpunan sisa mod n. Untuk n = 12 semua himpunan sisa adalah {0, 1, …, 11} Kita selalu lebih suka menggunakan b {0, 1, …, n-1} tetapi kadang-kadang bilangan bulat berada didalam range b {-½ (n-1), … ½(n-1)} yang lebih berguna lagi. Sebagai catatan : -12 (mod 7) -5 (mod 7) 2 (mod 7) 9 (mod 7) … dst. Beberapa contoh kekongruenan : 17 2 ( mod 3) - 7 15 (mod 11) ( 11 habis membagi -7 – 15 = -22) ( 3 habis membagi 17 – 2 = 15) Kriptografi - by Emy Setyaningsih Modul 3 -5 Kekongruenan a b (mod m) dapat pula dituliskan dalam hubungan a = b + km yang dalam hal ini k adalah bilangan bulat. Bedasarkan definisi aritmetika modulo, kitajuga dapat menliskan a mod m = r sebagai a r (mod m ) Contoh : 17 2 ( mod 3) dapat ditulis sebagai 17 = 2 + 5 . 3 - 7 15 (mod 11) dapat ditulis sebagai - 7 = 15 + (-2) . 11 Sekarang pembagian bilangan bulat n untuk penjumlahan dan perkalian dengan hukum assosiatif, komutatif, dan distributive terbentuk. Untuk faktanya kita dapat menurunkan modulo n dari yang lain dan kemudian dilakukan operasi dan kemudian dilakukan penurunan dari modulo n, karena sisa modulo n adalah homomorphism dari lingkaran bilangan bulat ke lingkaran bilangan bulat modulo n. Maka, (a b) (mod n) [a(mod n) b (mod n)] (mod n) dan (a * b) (mod n) [a(mod n) * b (mod n)] (mod n) Teorema : misalkan m adalah bilangan bulat positif 1. 2. Jika a b (mod m) dan c adalah sembarang bilangan bulat maka (a + c) (b + c) (mod m) ac bc (mod m) ap bp (mod m) untuk suatu bilangan bulat tak negative p Jika a b (mod m) dan c d (mod m), maka (a + c) (b + d) (mod m) ac bd (mod m) Contoh : Misalkan 17 2 (mod 3) dan 10 4 (mod 3), maka menurut teorema diatas: 17 + 5 = 2 + 5 ( mod 3 ) 22 = 7 ( mod 3) 17 . 5 = 2 . 5 ( mod 3 ) 85 = 10 ( mod 3 ) Kriptografi - by Emy Setyaningsih Modul 3 6. 17 + 10 = 2 + 4 (m0d 3) 17 . 10 = 2 . 4 (m0d 3) -6 27 = 6 (mod 3) 170 = 8 (mod 3) Invers Modulo Jika a dan m relative prima dan m > 1, maka kita dapat menemukan inversi dari a modulo m. Inversi dari a (mod m), disebut juga inversi perkalian, adalah bilangan bulat a-1, sedemikian sehingga aa-1 1 (mod m) dari definisi relative prima diketahui bahwa PBB (a,m) = 1, dan menurut persamaan terdapat bilangan bulat p dan q, sedemikian sehingga pa + qm = 1 yang mengimplikasikan bahwa pa + qm 1 (mod m) Karena qm 0 (mod m ) maka pa 1 (mod m) Kekongruenan yang terakhir ini berarti bahwa p adalah inverse dari a( mod m) Pembuktian diatas juga menceritakan bahwa, untuk mencari inverse dari a(mod m),kita harus membuat kombinasi lanjar dari a dan m = 1. Koeffisien a dari kombinasi lanjar tersebut merupakan, inverse dari a Modulo m. Contoh : Tentukan inverse dari 4 (mod 9),17 (mod 7), dan 18 (mod 10 ) Penyelesaian : a. Karena PBB (4,9) = 1, maka inverse dari 4 (mod 9) ada. Dari algoritma Euclidean diperoleh bahwa 9=2.4+1 Susun persamaan diatas menjadi -2 . 4 + 1 . 9 = 1 Dari persamaan terakhir ini kita peroleh -2 adalah inverse dari 4 (mod 9) Jadi 4-1 -2 (mod 9). Kriptografi - by Emy Setyaningsih Modul 3 -7 Periksalah bahwa -2 . 4 1 (mod 9) (9 habis membagi -2 . 4 – 1 = -9) Perhatikan bahwa semua bilangan bulat yang kongruen dengan -2 (mod 9) juga adalah inverse dari 4( mod 9), misalnya 7( perhatikan bahwa 7 -2 (mod 9)), karena 7 . 4 1( mod 9) (9 habis membagi 7 . 4 – 1 = 27) Bilangan bulat lain yang kongruen dengan -2 (mod 9) adalah 16,25,… b. Karena PBB (17,7) = 1, maka inverse dari 17 (mod 7) ada. Dari algoritma Euclidean diperoleh bahwa 17 = 2 . 7 + 3 ……… ( i ) 7 = 2 . 3 + 1 …….. ( ii ) 3 = 3 . 1 + 0 …….. ( iii ) Susun persamaan ( ii ) menjadi 1=7–2.3 …….. ( iv ) Susun persamaan ( i ) menjadi 3 = 17 -2 . 7 …….. ( v ) Substitusikan ( v ) ke dalam ( iv ) 1 = 7 – 2 . (17 – 2 . 7) = 1 . 7 – 2 . 17 + 4 . 7 =5 . 7 – 2 .17 Atau -2 . 17 + 5 . 7 = 1 Dari persamaan terakhir ini kita peroleh -2 adalah invers dari 17 modulo 7 -2 . 17 1 (mod 7) ( 7 habis membagi -2 . 17 – 1 = -35) c. Karena PBB (18,10) = 2 ≠ 1, maka inverse dari 18 (mod 10) tidak ada. 7. Chinese Remainder Problem Pada abad pertama, seorang matematikawan China yang bernama Sun Tse mengajukan pertanyaan sebagai berikut : Tentukan sebuah bilangan bulat yang bila dibagi dengan 5 menyisakan 3, bila dibagi 7 menyisakan 5 dan bila dibagi 11 menyisakan 7 Pertanyaan Sun Tse dapat diirumuskan ke dalam system konruen lanjar : x 3 ( mod 5) Kriptografi - by Emy Setyaningsih Modul 3 -8 x 5 ( mod 7) x 7 (mod 11) Teorema Chinese Remainder Theorem Misalkan m = m1, m2… mn dan setiap pasang mi,mj coprime (bilagan bulat positif sedemikain hingga PBB(mi,mj) = 1 untuk i ≠ j), maka system kongruen lanjar x = ak mod mk mempunyai sebuah solusi unik modulo m = m1 .m2 … . mn Chines Remainder Algorithm : t n x i 1 d i y i x i mod n dimana yi adalah suatu solution n di y i mod d i 1 Dengan catatan t n x mod d i y i x j mod j1 d j n mod d i x i CONTOH : Diketahui 3 x mod 10 = 1, maka tentukan nilai x untuk permasalahan tersebut. Penyelesaian : Nilai 10 = 2 x 5 ( 10 didapat dari perkalian 2 bilangan prime yaitu 2 dan 5) Pertama dicari solusi untuk nilai x1 dan x2, maka : 3 x mod 2 = 1 x1 = 1 3 x mod 5 = 1 x2 = 2 Langkah selanjutnya aplikasikan Chinese remainder algorithm untuk mencari solusi dari persamaan : X mod 2 = x1 = 1 X mod 5 = x2 = 2 Kriptografi - by Emy Setyaningsih Modul 3 -9 Pertama dicari nilai y1 dan y2 sehingga didapat : 10 y1 mod 2 1 y1 1 2 10 y 2 mod 5 1 y1 3 5 Sehingga kita dapatkan : 10 10 x y1 x1 y 2 x 2 mod 10 2 5 5 1 1 2 3 2 mod 10 7 maka x = 7 adalah jawaban dari 3 x mod 10 = 1 (yang mana berarti 7 adalah multiplicative invers dari 3 modulo 10 1. General Equations Penyelesaian general equation pada bentuk ax mod n = b Apabila gcd(a,n) = 1 Dicari penyelesaian x0 untuk ax mod n = b. Jika ax0 mod n = 1 termasuk abx0 mod n = b, maka x = bx0 mod n Apabila gcd(a,n) = g : Jika g pembagi b, yang mana b mod g = 0. Maka ax mod n = b jika q b n penyelesaian dari bentuk x x 0 t mod n , untuk t = 0, 1, …, g g g-1, dimana x0 adalah penyelesaian untuk a n x mod 1 g g Jika g bukan pembagi b maka tidak ada penyelesaiannya. CONTOH : jika diketahui 6x mod 10 = 4 Penyelesaian : g = gcd(6,10) = 2 dan 2 merupakan pembagi dari 4, maka tedapat 2 penyelesaian. 6 10 x mod 1 . Diambil x0 = 2 2 2 Dihitung x0 dari Kemudian dihitung kedua penyelesaian tersebut. Kriptografi - by Emy Setyaningsih Modul 3 T = 0 maka x 4 10 2 0 mod 10 4 2 2 T = 1 maka x 4 10 2 1 mod 10 9 2 2 - 10 Cek : 6 x 4 mod 10 = 24 mod 10 = 4 6 2. x 9 mod 10 = 54 mod 10 = 4 Euler Totient Function Dasar teorema dari teori bilangan adalah : Setiap bilangan bulat positif dapat ditulis dalam bentuk yang unik. e1 e2 p1 p 2 ...p t et dimana pi adalah bilangan prima dan p1 p 2 p t Untuk setiap bilangan bulat positif n, nilai n pada fungsi Euler Totient adalah jumlah bilangan bulat positif < n yang mana relative prime ke n. Jika n adalah prime maka (n) = n – 1 Contoh : (1) = 1 – 1 = 0 (2) = 2 – 1 = 1 (3) = 3 – 1 = 2 (7) = 7 – 1 = 6 Jika n adalah hasil kali dari 2 prime, n = p x q maka (n) = (p - 1) x (q – 1) Contoh : (10) = 4 Karena 10 = 5 . 2 , maka (5) . (2) = 4 . 1 = 4 Jika p bilangan prima dan k > 0, maka (pk) = pk - pk-1 = pk-1 (p – 1) Contoh : (16) = (24) = 24 - 23 = 16 – 8 = 8. (40) = (5 x 23) = (5 – 1) x 22 x (2 – 1) = 4 x 4 x 1 = 16 Fungsi ini digunakan pada cryptography pada penggunaan Euler’s Theorem Kriptografi - by Emy Setyaningsih Modul 3 - 11 Euler’s Theorem : jika gcd(a,n) = 1 maka a ( n ) 1(mod n) Note : a = 1 (mod n) a mod n 1 Contoh : gcd(9,14) = 1 maka 9 14 mod 14 1 14 1 6 6 dari 14 2 7 14 2 17 1 6 maka : 9 6 mod 14 1 Fermat’s Theorem : Jika p adalah prime dan 1 < a < p maka a p 1 1(mod p ) . Maka hal ini dimungkinkan untuk dicari multiplicative invers dengan fast exponentiation Tetapi (n) mungkin menjadi sulit untuk dilakukan perhitungan; jika (n) tidak diketahui hal ini lebih mudah dengan menggunakan CRT atau algoritma Euclid. Jika kita mengetahui factor-faktor n maka kita dapat menghitung (a b) (a) (b) untuk mencari (n) . Selanjutnya, jika kita mengetahui (n) dan n dan diketahui n adalah hasil dari hasil kali p dan q maka kita dapat mencari p dan q dengan menggunakan metode : sum = n - (n) + 1 diff = sqrt(sum*sum – 4n) p = (sum – diff) / 2 q = sum – p jika n bukan suatu hasil kali dari dua prime maka hal ini kan lebih sulit untuk dicari factor-faktor untuk n dari n dan (n) Kriptografi - by Emy Setyaningsih Modul 3 - 12 C. SOAL LATIHAN 1. Kriptografi - by Emy Setyaningsih Modul 3 - 13 BAHAN BACAAN Mao, Wenbo., 2004, Modern Cryptography Theori & Practice, Hawlett-Packard Company Menezes, Alfred J., Paul C van Oorsschot, dan Scott A. Vanstone, 1996, Handbook of Applied Cryptography, CRC Press. Munir, Rinaldi, 2006, Kriptografi, Informatika, Bandung. Schneier, Bruce 1996, Aplied Cryptography 2nd , John Wiley & Sons, New York Stinson, R Douglas, 1995, Cryptography Theory and Practice, CRC Press, Inc, Boca Raton, London Wahana Komputer, 2003, Memahami Model Enkripsi dan Sekuriti Data, Andi Offset, Yogyakarta. William Stallings, 1995, Network and Internetwork Security, Prentice Hall. www.wikepedia.org, diakses selama Juli-Agustus 2006 Kriptografi - by Emy Setyaningsih