400 likes | 658 Views
9. BILANGAN BULAT. 9.7 Kriptografi Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan . Keamanan pesan diperoleh dengan menyandikannya menjadi pesan yang tidak dimengerti oleh orang yang tidak berkepentingan Pesan yang akan disandikan disebut plainteks .
E N D
9.7 Kriptografi Kriptografiadalahilmudanseniuntukmenjagakeamananpesan. Keamananpesandiperolehdenganmenyandikannya menjadipesan yang tidakdimengertiolehorang yang tidakberkepentingan Pesan yang akandisandikandisebutplainteks. Pesan yang telahdisandikandisebutcipherteks. Prosesmenyandikanpesandariplainteksmenjadicipherteksdisebutenkripsi. Prosesmengembalikancipherteksmenjadiplainteks disebutdekripsi.
Kriptanalisisadalahilmudanseniuntukmemecahkancipherteksmenjadiplaintekstanpamengetahuikunci yang diberikan. Orang yang melakukankriptanalisisdisebutkriptanalis. Kriptologiadalahstudimengenaikriptografidankriptanalisis. plainteks cipherteks enkripsi plainteks dekripsi Prosesenkripsidandekripsi
NotasiMatematis Jikacipherteksdilambangkandengan C danplainteksdilambangkandengan P, makafungsienkripsi E memetakan P ke C, E(P) = C (9.1) Padaproseskebalikannya, fungsienkripsi D memetakan C ke P, D(C) = P (9.2) Dari (9.1) dan (9.2) didapat, D(E(P)) = P (9.3)
Contoh 9.1 Plainteks : STRUKTUR DISKRIT Misalsekelompokorangsepakatuntukmenyandikanplainteksmenggunakanalgoritma yang sama. Algoritmanyaadalahmempertukarkanposisitiapduakarakter yang berurutanpadaplainteks, makadidapat, Cipherteks : TSURTKRU IDKSIRT Denganmenggunakanalgoritmatersebut, makacipherteksbisadikembalikanmenjadiplainteks.
Contoh 9.1 adalahcontohkriptografi yang mengandalkankerahasiaanalgoritma. Algoritma yang mengandalkankerahasiaanalgoritmadisebutalgoritmarestricted. Kelemahanalgoritmaadalahjikaadasatuataubeberapaorangkeluardarikelompoknya, makaalgoritmaharusdiubah, karenakerahasisaannyatidakbisadiandalkanlagi. Padasaatinikriptografitidaklagimengandalkankerahasiaanalgoritmanya. Algoritmabolehdiketahuiumum.
Kekuatanalgoritmasaatiniterletakpadakunci, yaituderetankarakterataubilanganbulat. Kuncidijagakerahasiaannyadanhanyaorang yang mengetahuikunci yang dapatmelakukanenkripsidandekripsi. Kuncitersebutsamafungsinyasepertisandi-lewat (password) padasistemkomputer, PIN padakartu ATM ataukartukredit. Perbedaannya, jikasandi-lewatatau PIN bertujuanuntukotorisasiakses, sedangkankuncipadakriptografidigunakanuntukprosesenkripsidandekripsi.
Caesar cipher Caesar cipher adalahteknikkriptografi yang digunakanolehKaisarRomawi, Julius Caesar untukmenyandikanpesan yang dikirimkepadaparapejabatnya. Pada Caesar cipher tiaphurufditukarkandenganhurufke 3 berikutnyadarisusunanalfabet. Kuncidarialgoritmainiadalahjumlahpergeseranhuruf, yaitu 3.
Susunanalfabetsetelahdigesersejauh 3 harufadalah: Plainteks : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Cipherteks :D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Kunci yang digunakanadalahmenggeser 3 hurufberikutnya. Artinyatiaphurufdisubstitusidenganhurufketigaberikutnya. Denganmengkodekansetiaphurufdengan integer, yaitu A = 0, B = 1, C = 2, … , Z = 25, makasecaramatematispergeseran 3 hurufalfabetekivalendenganmelakukanoperasi modulo terhadapplainteks p menjadicipherteks c denganpersamaan, c = E(p) = (p + 3) mod 26
Secaraumumfungsienkripsidandekripsipada Caesar cipher dapatdibuatlebihumumdenganmenggeserhurufalfabetsejauh K, sehingga Prosesenkripsidilakukandenganmenggunakanrumus c = E(p) = (p + K) mod 26 Sedangkandekripsi p = D(c) = (c – K) mod 26 PadapersamaandiatasK disebutkunci. Contoh 9.2 Sandikanpesan: AWASI ASTERIX DAN TEMANNYA OBELIX denganmenggunakan Caesar cipher dengan K = 3.
Penyelesaian Denganmenggunakanrumus c = E(p) = (p + 3) mod 26 danmengkonversialfabetkebilangan integer, maka cipherteksdapatditentukan: p1 = A c1 = E(0) = (0 + 3) mod 26 = 3 p2 = W c2 = E(22) = (22 + 3) mod 26 = 25 p3 = A c3 = E(0) = (0 + 3) mod 26 = 3 p4 = S c4 = E(18) = (18 + 3) mod 26 = 21 dst……. Makadiperolehciphertekssebagaiberikut: AWASI ASTERIX DAN TEMANNYA OBELIX DZDVL DVWHULA GDQ WHPDQQBD REHOLA
K1 K2 plainteks cipherteks enkripsi EnkripsidanDekripsipadaalgoritmakriptografi modern SistemKriptografiKunciSimetri Jikaprosesenkripsidandekripsimenggunakankunci yang sama (K1 = K2), makadisebutSistemKriptografi kuncisimetri. Istilah lain yang digunakanadalah Kriptografikuncipribadi. Contohalgoritmasimetri adalah DES (Data Encryption Standard) plainteks dekripsi
K1 K2 plainteks cipherteks enkripsi EnkripsidanDekripsipadaalgoritmakriptografi modern SistemKriptografiKunciPublik Jikaprosesenkripsidandekripsimenggunakankunci yang tidaksama (K1 = K2), makadisebutSistem KriptografikuncipublikatauSistemKriptografi Nirsimetri. Contohalgoritmakuncipublikadalah RSA (Rivest-Shamir-Adleman). plainteks dekripsi
Algoritma RSA Algoritmakriptografi RSA termasuksistemkriptografi kuncipublik, karenakuncienkripsidandekripsi berbeda. Berikutadalahalgoritma RSA. Pembangkitanpasangankunci Pilihduabuahbilangan prima a dan b sembarang. Jagakerahasiaan a dan b. 2. Hitungn = a.b. Nilai n tidakperludirahasiakan. 3. Hitungm = (a – 1)(b – 1). Setelah m dihitung, adan bdapatdihapus agar tidakdiketahuiolehpihak lain. 4. Pilihsebuahbilanganbulate untukkuncipublik. Syaratnyaadalahedanmharusrelatif prima. 5. Hitungkuncideskripsi d, dengankekongruenan ed 1 (mod m).
Enkripsi Susunpesanmenjadiblok-blokplainteks: p1, p2, p3, … , pi. Syaratnyanilai piharusterletak dalamhimpunannilai (1, 2, 3, … , n–1) untuk menjaminhasilperhitungantidakberadadiluar himpunan. 2. Hitungblokcipherteksciuntukblokpalinteks pi denganmenggunakanpersamaan ci = piemod n eadalahkuncipublik. Dekripsi Prosesdekripsidilakukandenganmenggunakanrumus, pi = cidmod n dadalahkuncipublik.
Contoh 9.3 Lakukanprosesenkripsiterhadapplainteks: HARI INI Penyelesaian Berdasarkantabel ASCII, plainteksdapatdikonversi menjadibentukdesimal 7265827332737873 Pembangkitanpasangankunci Pilihnilai a dan b masing-masing 47 dan 71. Hitung n = (47)(71) = 3337 Hitung m = (47 – 1)(71 – 1) = 3220 Pilih e = 79. Ingat e dan m harusrelatif prima. Hitung d darirumused 1 (mod m). Didapatd = 1019. Nilai d harusdirahasiakan.
Enkripsi 1. Nyatakanplainteksdalambentukblok-blokkecil, misalnyamenjadiblok-blok yang berukuran 3 digit. Berdasarkantabel ASCII, plainteksdapatdikonversi menjadibentukdesimal 7265827332737873 p1 = 726 p4 = 273 p2 = 582 p5 = 787 p2 = 733 p6 = 003 2. Hitungci = piemod n c1 = (726)79 mod 3337 = 215 c2 = (582)79 mod 3337 = 776 c3 = (733)79 mod 3337 = 1743 c4 = (273)79 mod 3337 = 933 c5 = (787)79 mod 3337 = 1731 c6 = (003)79 mod 3337 = 158
Dekripsi Prosesdekripsimenggunakanrumus, pi = cidmod n P1 = 2151019 mod 3337 = 726 P2 = 7761019 mod 3337 = 582 P3 = 17431019 mod 3337 = 733 P4 = 9331019 mod 3337 = 273 P5 = 17311019 mod 3337 = 787 P6 = 1581019 mod 3337 = 003 Kembaliketabel ASCII, didapat: 726582733273787003
Latihan Lakukanprosesenkripsiterhadapplainteks: SISTEM INFORMASI Penyelesaian Berdasarkantabel ASCII, plainteksdapatdikonversi menjadibentukdesimal: 83738384697732737870798277658373 Pembangkitanpasangankunci Pilihnilai a dan b masing-masing 37 dan 51. Hitung n = (37)(51) = 1887 Hitung m = (37 – 1)(51 – 1) = 1800 Pilih e = 29. Ingat e dan m harusrelatif prima. Hitung d darirumused 1 (mod m). Didapatd = 869. Nilai d harusdirahasiakan.
Enkripsi 1. Nyatakanplainteksdalambentukblok-blokkecil, misalnyamenjadiblok-blok yang berukuran 3 digit. Berdasarkantabel ASCII, plainteksdapatdikonversi menjadibentukdesimal 83738384697732737870798277658373 p1 = 837 p5 = 327 p9 = 776 p2 = 383 p6 = 378 p10 = 583 p3 = 846 p7 = 707 p11 = 073 p4 = 977 p8 = 982
2. Hitungci = piemod n c1 = (837)29 mod 1887 = 378 c7 = (707)29 mod 1887 = 317 c2 = (383)29 mod 1887 = 191 c8 = (982)29 mod 1887 = 217 c3 = (846)29 mod 1887 = 1815 c9 = (776)29 mod 1887 = 1775 c4 = (977)29 mod 1887 = 536 c10 = (583)29 mod 1887 = 955 c5 = (327)29 mod 1887 = 327 c11 = (073)29 mod 1887 = 1516 c6 = (378)29 mod 1887 = 837
Dekripsi Prosesdekripsimenggunakanrumus, pi = cidmod n p1 = 378869 mod 1887 = 837 p7 = 317869 mod 1887 = 707 p2 = 191869 mod 1887 = 383 p8 = 217869 mod 1887 = 982 p3 = 1815869 mod 1887 = 846 p9 = 1775869 mod 1887 = 776 p4 = 536869 mod 1887 = 977 p10 = 955869 mod 1887 = 583 p5 = 327869 mod 1887 = 327 p11 = 1516869 mod 1887 = 073 p6 = 837869 mod 1887 = 378 83738384697732737870798277658373
9.8 Fungsi Hash Data yang disimpandidalamnmemorikomputerperluditempatkandalamsuatucarasedemikiansehinggapencariannyaapatdilakukandengancepat. Setiap data yang beruparecordmempunyaifieldkunci yang unik yang membedakansuaturecorddenganrecordlainnya. FungsiHashdigunakanuntukmenempatkansuaturecord yang mempunyainilaikuncik. Fungsi Hash yang paling umumberbentuk: H(k) = k mod m
Misalm = 11, sehinggakitamempunyaisel-selmemori yang diberiindeks 0 sampai 10. Kita akanmenyimpan data record yang masingt-masingmempunyaikunci 15, 558, 32, 132, 102, dan 5. Padamulanyasel-selmemoridalamkeadaankosong. Keenam data recordtersebutmasing-masingdisimpanpadalokasi yang dihitungsebagaiberikut: h(15) = 15 mod 11 = 4 h(558) = 558 mod 11 = 8 h(32) = 32 mod 11 = 10 h(132) = 132 mod 11 = 0 h(102) = 102 mod 11 = 3 h(5) = 5 mod 11 = 5
Keadaansel-selmemorisetelahpenyimpanankeenam data recordtersebutdigambarkansepertiberikut: Karenafungsihashbukanfungsisatukesatu (beberapanilaik yang berbedadapatmenghasilkannilaih(k) yang sama), makadapatterjadibentrokan (collision) dalampenempatansuatu data record. Misalkitaakanmenempatkan data record dengankunci 257. Perhitungan hash menghasilkan h(257) = 257 mod 11 = 4, Padahalselmemoridenganlokasi 4 sudahterisi. Kita katakantelahterjadibentrokan.
Untukmengatasibentrokanperluditerapkankebijakanresolusibentrokan (collision resolution policy). Satukebijakanresolusibentrokanadalahmencariseltakterisitertinggiberikutnya (dengan 0 diasumsikanmengikuti 10). Jikakitaterapkankebijakanini, maka data recorddengankunci 257 ditempatkan p[adaposisi 6. Untukmencari data recordtertentu, makakitagunakanfungsihashkembali. Misalkitaakanmencari data recorddengankuncip, makakitahitungh(p) = p mod 11, misalh(p) = q. Jikarecordpsamadenganisiselpadalokasiq, kitakatakanlokasirecordpditemukan. Sebaliknyajikarecordptidaksamadenganisiselpadalokasi q, makalihatposisitertinggiberikutnya.
9.9 International Standard Book Number (ISBN) Buku yang diterbitkanolehpenerbitresmibiasanyadisertaidengankode ISBN yang terdiridari 10 karakter. ISBN terdiriatas 4 bagiankode, yaitu : Kode yang mengidentifikasibahasa, Kodepenerbit, Kode yang diberikansecaraunikpadabukutsb., Karakteruji (dapatberupangkaatauhuruf X untukmempresentasikanangka 10. Karaktewrujidigunakanuntukmemvalidasi ISBN, tepatnyauntukmendeteksikesalahanpadakarakter ISBN ataukesalahankarenaperpindahanangka-angkanya.
Karakterujidipilihsedemikianrupa, sehingga : xiadalahkarakteruji yang ke I didalamkode ISBN. Untukmendapatkankarakteruji, kitacukupmenghitung:
Untukkode ISBN 0–3015–4561–8, angka 0 adalahkodekelompoknegaraberbahasaInggris, 3015 adalahkodepenerbit, 4561 adalahkarakterunikuntukbuku yang diterbitkanolehpenerbittersebut, dan 8 adalahkarakteruji. Karakterujididapatmelaluiperhitungan, 1(0)+2(3)+3(0)+4(1)+5(5)+6(4)+7(5)+8(6)+9(1)=151 Jadikarakterujinyaadalah 151 mod 11 = 8
Kode ISBN jugaharusmemenuhi, dan 231 mod 11 = 0 atau 231 0 (mod 11) Contoh 9.4 Nomorsebuahbukuterbitanpenerbit Indonesia adalah 979–939p–04–5. Tentukanp. Penyelesaian:
Diketahuikarakteruji ISBN adalah 5. Hal iniberarti: Hitung: = 9 + 14 + 27 + 36 + 15 + 54 + 7p + 0 + 36 = 191 + 7p Jadi (191 + 7p) mod 11 = 5 191 + 7p = 11 k + 5 1(9)+2(7)+3(9)+4(9)+5(3)+6(9)+7(p)+8(0)+9(4)
Latihan Nomorsebuahbukuterbitanpenerbit Indonesia adalah 0–07–289p05–0. Tentukanp. Penyelesaian: = 1(0)+2(0)+3(7)+4(2)+5(8)+6(9)+7(p)+8(0)+9(5) = 0 + 0 + 21 + 8 + 40 + 54 + 7p + 0 + 45 = 168 + 7p Jadi (168 + 7p) mod 11 = 0 168 + 7p = 11 k + 0
9.10 PembangkitBilanganAcakSemu Bilanganacak (random) banyakdigunakanpada program komputer, misalnyauntuk program simulasi (misalnyamensimulasikanwaktukedatangannasabahdi bank, pompabensin, danseterusnya), program kriptografi, aplikasistatistik, dansebagainya. Tidakadakomputasi yang benar-benarmenghasilkanderetbilanganacaksecarasempurna. Bilanganacak yang dihasilkandenganrumus-rumusmatematikaadalahbilanganacaksemu (pseudo), karenapembangkitanbilangannyadapatdiulangkembali.
PembangkitderetbilangansemacamitudisebutPembangkitBilanganAcakSemu (Pseudo Random Number Generator) atauPRNG. Salahsatumetodeuntukmembangkitkanbilanganacakadalahdenganpembangkitbilanganacakkongruenlanjar (Linear Congruential Generator) ataudisingkatPRNG yang berbentuk, xn = (axn-1 + b) mod m xn= bilanganacakke –n darideretnya xn-1= bilanganacaksebelumnya a = faktorpengali b = increment m = modulus (a, b, m semuanyakonstanta)
Kuncipembangkitadalah x0 yang disebutumpanatauseed. LCG mempunyaiperiodetiodaklebihbesardarim. Jikaa, b, danmdipilihsecaratepat (misalnyabseharusnyarelatif prima terhadapm), makaLCGakanmempunyaiperiodemaksimalm – 1. Contoh 9.5 BangkitkanbilanganacakdenganmenggunakanLCG. m = 17, a = 7, b = 11, danx0 = 0.
Penyelesaian Persamaan LCG berbentuk, xn = (axn-1 + b) mod m xn = (7xn-1 + 11) mod 17 Perhitunganselanjutnya, x1 = (7xn-1+ 11) mod 17 = (7(0) + 11) mod 17 = 11 x2 = (7xn-1+ 11) mod 17 = (7(11) + 11) mod 17 = 3 dst…..
Terlihatpada n = 16 dan x16 = x0 , makabilangan acakberikutnya (x17 , x18 , dst.)
Latihan Sembilan angkapertamadarikode ISBN sebuah bukuadalah 0–07–053965. Tentukankarakteruji bukutersebut! 2. ISB sebuahbukutentangalgoritmaadalah 0–471–55p80–8. Berapanilaip? 3. Tunjukkanbagaimanasekumpulan data dengan kunci-kuncisebagaiberikut: 714, 631, 26, 373, 906, 509, 2032, 42, 4, 136, 1028 ditempatkandalam memoridenganfungsihash h(k) = k mod 17. 4. Tentukanbilanganacak yang dihasilkanoleh xn+1 = (4xn + 1) mod 7 denganumpan x0 = 7