You are on page 1of 49

Contoh Aplikasi Bilangan Bulat Pertemuan 4

oleh : Tedy Setiadi tedyasni@gmail.com Teknik Informatika UAD


Aplikasi Bilangan Bulat 1

Tujuan : mhs memahami beberapa contoh penerapan teori bilangan bulat


Pokok Bahasan ISBN (International Book Serial Number) Fungsi hash Kriptografi Pembangkit bilangan acak-semu dll
Aplikasi Bilangan Bulat 2

ISBN
Kode ISBN terdiri dari 10 karakter, biasanya dikelompokkan dengan spasi atau garis, misalnya 0301545619. ISBN terdiri atas empat bagian kode: - kode yang mengidentifikasikan bahasa, - kode penerbit, - kode unik untuk buku tersebut, - karakter uji (angka atau huruf X (=10)).
Aplikasi Bilangan Bulat 3

Karakter uji dipilih sedemikian sehingga


0 (mod 11) ix mod 11 = karakter uji
ix
i 1 9 i 1 10 i i

Aplikasi Bilangan Bulat

Contoh: ISBN 0301545618 0 : kode kelompok negara berbahasa Inggris, 3015 : kode penerbit 4561 : kode unik buku yang diterbitkan 8 : karakter uji. Karakter uji ini didapatkan sebagai berikut: 10+23+30+41+55+64+ 7 5 + 8 6 + 9 1 = 151 Jadi, karakter ujinya adalah 151 mod 11 = 8.
Aplikasi Bilangan Bulat 5

Catatlah bahwa untuk kode ISBN ini,

ix = ix + 10x10 = 151 + 10 8 = 231


i 1 i i 1 i

10

dan 231 mod 11 = 0 atau 231 0 (mod 11).

Aplikasi Bilangan Bulat

Fungsi Hash
Tujuan: pengalamatan di memori Bentuk: h(k) = k mod m - m : jumlah lokasi memori yang tersedia - k : kunci (integer) - h(k) : lokasi memori untuk record dengan kunci k

Aplikasi Bilangan Bulat

Contoh: m = 11 mempunyai sel-sel memori yang diberi indeks 0 sampai 10. Akan disimpan data record yang masing-masing mempunyai kunci 15, 558, 32, 132, 102, dan 5. 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 132 0 1 2 102 15 5 3 4 5 6 7 558 8 9 32 10

Aplikasi Bilangan Bulat

Kolisi (collision) terjadi jika fungsi hash menghasilkan nilai h yang sama untuk k yang berbeda. Jika terjadi kolisi, cek elemen berikutnya yang kosong. Fungsi hash juga digunakan untuk me-locate elemen yang dicari.

Aplikasi Bilangan Bulat

Kriptografi
Pesan: data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain: plainteks (plaintext) Pesan dapat berupa: teks, gambar, audio, video. Pesan ada yang dikirim atau disimpan di dalam media penyimpanan.
Aplikasi Bilangan Bulat 10

Cipherteks (ciphertext): pesan yang telah disandikan sehingga tidak memiliki makna lagi. Tujuan: agar pesan tidak dapat dimengerti maknanya oleh pihak lain. Cipherteks harus dapat diubah kembali ke plainteks semula
Aplikasi Bilangan Bulat 11

Contoh: Plainteks: culik anak itu jam 11 siang Cipherteks: t^$gfUi89rewoFpfdWqL:p[uTcxZ


Aplikasi Bilangan Bulat 12

Enkripsi (encryption): proses menyandikan plainteks menjadi ciphertek. Dekripsi (decryption): Proses mengembalikan cipherteks menjadi plainteksnya.

Aplikasi Bilangan Bulat

13

plainteks

chiperteks

plainteks semula

enkripsi

dekripsi

Gambar 1.1 Enkripsi dan dekripsi

Aplikasi Bilangan Bulat

14

Kriptografi (cryptography) Dari Bahasa Yunani yang artinya secret writing Definisi: kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan.
Aplikasi Bilangan Bulat 15

Algoritma kriptografi (cipher) - aturan untuk enkripsi dan dekripsi - fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Kunci: parameter yang digunakan untuk transformasi enciphering dan dechipering Kunci bersifat rahasia, sedangkan algoritma kriptografi tidak rahasia
Aplikasi Bilangan Bulat 16

Sejarah Kriptografi
Sudah digunakan di Yunani 400 BC Alat yang digunakan: scytale

Gambar 1.2 Scytale


Aplikasi Bilangan Bulat 17

Aplikasi Kriptografi
1. Pengiriman data melalui komunikasi (data encryption on motion). saluran

2. Penyimpanan data di dalam disk storage (data encryption at rest)

Aplikasi Bilangan Bulat

18

Data ditransmisikan dalam bentuk chiperteks. Di tempat penerima chiperteks dikembalikan lagi menjadi plainteks.

Data di dalam media penyimpanan komputer (seperti hard disk) disimpan dalam bentuk chiperteks. Untuk membacanya, hanya orang yang berhak yang dapat mengembalikan chiperteks menjadi plainteks.
Aplikasi Bilangan Bulat 19

Contoh enkripsi pada dokumen


Plainteks (plain.txt): Ketika saya berjalan-jalan di pantai, saya menemukan banyak sekali kepiting yang merangkak menuju laut. Mereka adalah anak-anak kepiting yang baru menetas dari dalam pasir. Naluri mereka mengatakan bahwa laut adalah tempat kehidupan mereka.

Cipherteks (cipher.txt): Ztxzp/pp/qtyp{p}<yp{p}/sx/ p}px; pp/|t}t|zp}/qp}pz/tzp{x/zt xx }v p}v/|tp}vzpz/|t}y/{p=/\ttz p psp{pw/p}pz<p}pz/zt xx}v/p} v/qp |t}tp/spx/sp{p|/ px=/] p{x |ttzp/|t}vppzp}/qpwp/{p /psp{pw t| p/ztwxs p}/|ttzp=

Aplikasi Bilangan Bulat

20

Plainteks (lena.bmp):

Cipherteks (lena2.bmp):

Aplikasi Bilangan Bulat

21

Plainteks (siswa.dbf): NIM 000001 000002 000003 000004 000005 000006 000007 000008 000009 Nama Elin Jamilah Fariz RM Taufik Hidayat Siti Nurhaliza Oma Irama Aziz Burhan Santi Nursanti Cut Yanti Ina Sabarina Tinggi 160 157 176 172 171 181 167 169 171 Berat 50 49 65 67 60 54 59 61 62

Aplikasi Bilangan Bulat

22

Cipherteks (siswa2.dbf): NIM 000001 000002 000003 000004 000005 000006 000007 000008 000009 Nama tp}vzpz/|t}y/{ |t}tp/spx/sp t| p/ztwxs p}/| pp/|t}t|zp}/qppz tzp{x/zt xx}v p} spx/sp{p|/ px=/] Ztxzp/pp/qtypp}< qpwp/{p/psp{pw }t|zp}/qp}pz/p{ Tinggi |zp} px= }/|t qp}pz p/psp xx}v zp} Ztwxs qp}p Berat pp ztwxs spx/ wxs tzp{ ttzp/| }y/{ xx}v zp}/qp

Keterangan: hanya field Nama, Berat, dan Tinggi yang dienkripsi.

Aplikasi Bilangan Bulat

23

Notasi Matematis
Misalkan: C = chiperteks P = plainteks dilambangkan

Fungsi enkripsi E memetakan P ke C, E(P) = C


Fungsi dekripsi D memetakan C ke P, D(C) = P
Aplikasi Bilangan Bulat 24

Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi menjadi EK(P) = C DK(C) = P dan kedua fungsi ini memenuhi DK(EK(P)) = P
Aplikasi Bilangan Bulat 25

plainteks enkripsi

chiperteks dekripsi

plainteks semula

Gambar 1.3 Enkripsi dan dekripsi dengan kunci

Aplikasi Bilangan Bulat

26

Jika kunci enkripsi sama dengan kunci dekripsi, maka sistem kriptografinya disebut sistem simetri atau sistem konvensional. Algoritma kriptografinya disebut simetri atau algoritma konvensional . Contoh algoritma simetri: - DES (Data Encyption Standard) - Rijndael
Aplikasi Bilangan Bulat 27

algoritma

Skema algoritma simetri


Aplikasi Bilangan Bulat 28

Jika kunci enkripsi tidak sama dengan kunci dekripsi, maka sistem kriptografinya disebut sistem nirsimetri (asymmetric system)
Nama lain: sistem kriptografi kunci-publik karena, kunci enkripsi bersifat publik (public key) sedangkan kunci dekripsi bersifat rahasia (private key). Pengirim pesan menggunakan kunci publik si penerima pesan untuk mengenkripsi pesan

Penerima pesan mendekripsi pesan dengan kunci privatnya sendiri.


Contoh algoritmai: RSA Aplikasi Bilangan Bulat

29

Kunci publik

Kunci privat

plainteks enkripsi

cipherteks dekripsi

plainteks asal

Aplikasi Bilangan Bulat

30

Caesar Cipher
Tiap huruf alfabet digeser 3 huruf ke kanan
pi : 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 ci : 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

Contoh:
Plainteks: AWASI ASTERIX DAN TEMANNYA OBELIX Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA

Aplikasi Bilangan Bulat

31

Misalkan A = 0, B = 1, , Z = 25, maka secara matematis caesar cipher dirumuskan sebagai berikut: Enkripsi: ci = E(pi) = (pi + 3) mod 26 Dekripsi: pi = D(ci) = (ci 3) mod 26

Aplikasi Bilangan Bulat

32

p1 = A = 0 c1 = E(0) = (0 + 3) mod 26 = 3 = D p2 = W = 22 c2 = E(22) = (22 + 3) mod 26 = 25 = Z p3 = A = 0 c3 = E(0) = (0 + 3) mod 26 = 3 = D p4 = S = 18 c4 = E(18) = (18 + 3) mod 26 = 21 = V dst Alternatif lain: gunakan tabel substitusi

Aplikasi Bilangan Bulat

33

Jika pergeseran huruf sejauh k, maka: Enkripsi: ci = E(pi) = (pi + k) mod 26 Dekripsi: pi = D(ci) = (ci k) mod 26 k = kunci rahasia

Aplikasi Bilangan Bulat

34

Aplikasi Bilangan Bulat

35

Algoritma RSA
Ditemukan oleh tiga peneliti dari MIT (Massachussets Institute of Technology), yaitu Ron Rivest, Adi Shamir, dan Len Adleman, pada tahun 1976. Termasuk algoritma kriptografi nirsimetri.

Aplikasi Bilangan Bulat

36

Setiap pengguna mempunya sepasan kunci: 1. Kunci publik: untuk enkripsi 2. Kunci privat: untuk dekripsi Kunci publik tidak rahasia (diktehui semua orang), kunci privat rahasia (hanya diketahui pemilik kunci saja)
Aplikasi Bilangan Bulat 37

Pembangkitan pasangan kunci 1. Pilih dua bilangan prima, a dan b (rahasia) 2. Hitung n = a b. Besaran n tidak perlu dirahasiakan. 3. Hitung m = (a 1)(b 1). 4. Pilih sebuah bilangan bulat untuk kunci publik, sebut namanya e, yang relatif prima terhadap m. 5. Hitung kunci dekripsi, d, melalui d 1 (mod m).

Aplikasi Bilangan Bulat

38

Enkripsi 1. Nyatakan pesan menjadi blok-blok plainteks: p1, p2, p3, (harus dipenuhi persyaratan bahwa nilai pi harus terletak dalam himpunan nilai 0, 1, 2, , n 1 untuk menjamin hasil perhitungan tidak berada di luar himpunan) 2. Hitung blok cipherteks ci untuk blok plainteks pi dengan persamaan ci = pie mod n yang dalam hal ini, e adalah kunci publik.
Aplikasi Bilangan Bulat 39

Dekripsi Proses dekripsi dilakukan dengan menggunakan persamaan pi = cid mod n, yang dalam hal ini, d adalah kunci privat.

Aplikasi Bilangan Bulat

40

Contoh 21. Misalkan a = 47 dan b = 71 (keduanya prima), maka dapat dihitung n = a b = 3337 m = (a 1)(b 1) = 3220. Pilih kunci publik e = 79 (yang relatif prima dengan 3220 karena pembagi bersama terbesarnya adalah 1). Nilai e dan n dapat dipublikasikan ke umum.
Aplikasi Bilangan Bulat 41

Selanjutnya akan dihitung kunci dekripsi d dengan kekongruenan: e d 1 (mod m)

1 ( k 3220) d 79 Dengan mencoba nilai-nilai k = 1, 2, 3, , diperoleh nilai d yang bulat adalah 1019. Ini adalah kunci dekripsi.
Aplikasi Bilangan Bulat 42

Misalkan plainteks P = HARI INI atau dalam desimal ASCII: 7265827332737873

Pecah P menjadi blok yang lebih kecil (misal 3 digit): p1 = 726 p4 = 273 p2 = 582 p5 = 787 p3 = 733 p6 = 003
Aplikasi Bilangan Bulat 43

Enkripsi setiap blok: c1 = 72679 mod 3337 = 215 c2 = 58279 mod 3337 = 776 dst untuk sisa blok lainnya Keluaran: chiperteks C = 215 776 1743 933 1731 158.
Dekripsi (menggunakan kunci privat d = 1019) p1 = 2151019 mod 3337 = 726 p2 =7761019 mod 3337 = 582 dst untuk sisi blok lainnya Keluaran: plainteks P = 7265827332737873 Aplikasi Bilangan Bulat 44 yang dalam ASCII karakternya adalah HARI

Kekuatan dan Keamanan RSA


Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = a b. Sekali n berhasil difaktorkan menjadi a dan b, maka m = (a 1)(b 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e d 1 (mod m). Ini berarti proses dekripsi dapat dilakukan oleh orang yang tidak berhak. Aplikasi Bilangan Bulat 45

Penemu algoritma RSA menyarankan nilai a dan b panjangnya lebih dari 100 digit. Dengan demikian hasil kali n = a b akan berukuran lebih dari 200 digit.
Menurut Rivest dan kawan-kawan, uasaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).
Aplikasi Bilangan Bulat 46

daftar pustaka
Doer Allan, Kenneth Levasseur, Applied Discrete Structures for Computer Science, Science Research Associates, Inc. Toronti,1985 Kolman, Bernard, Robert C.Busby,Sharon Ross, Discrete Mathematical Structures,Prentice Hall,1987 Munir, Rinaldi, Matematika Diskrit, Edisi kedua,Penerbit Informatika Bandung,2001 Rosen,Kenneth H.,Discreete Mathematics and Its Application, The Random House Birkhauser Mathematics Series NewYork,1987
Aplikasi Bilangan Bulat 47

Tugas
1. Sembilan angka pertama dari kode ISBN sebuah buku adalah 0-07-053965. Tentukan karakter uji untuk buku tersebut 2. Tentukan bagaimana sekumpulan data dengan kunci-kunci : 714, 631, 26, 373, 775, 906, 509, 2032, 42, 4, 136 dan 1028 disimpan dalam memori dengan fungsi hash h(k)= k mod 17? 3. Enskripsikan pesan Teknik Informatika UAD dengan algoritam RSA dengan nilai-nilai a=23, b=31, dan e=29?
Aplikasi Bilangan Bulat 48

web site
http://syssci.atu.edu/math/faculty/finan/mai n2.pdf http://www1.cs.columbia.edu/~zeph/3203s 04/lectures.html http://www.informatika.org/~rinaldi/Matdis/ matdis.htm

Aplikasi Bilangan Bulat

49

You might also like