Bab 3 102006
Bab 3 102006
invers
+ merupakan operasi bilangan + mungkin merupakan penambaha atau perkalian + bilangan I disebut idensitas untuk jika x * i = x untuk setiap bilangan x + contoh : 0 merupakan identitas untuk + karena x + 0 = x 1 merupakan identitas untuk * karena x * 0 = x i = identitas untuk operasi * Bilangan b disebut invers a dibawah * jika a * b = i dan b * a = i Invers dari elemen a sering ditunjukan dengan : a-1
b.
Bilangan prima Bilangan yang besar dari 1 yang habis dibagi (dengan sisa 0) Tetapi tidak boleh bilangan itu sendiri atau 1 Contoh : 2 3 5 7 11 13 17 19 23 29 31 37 41 43\ Bilangan yang bukan prima disebut : Komposit
c. Great Common Divisor 2 bilangan integer (a,b) = gcd (a,b) adalah integer terbesar yg membagi 1 dan b contoh : gcd(15,10) hasilnya 5 bilangan 5 dapat habis membagi bilangan 15 dan 10 serta tidak ada integer yg lebih besar dari 5 yang habis membagi 15 dan 10 yang lain : + gcd(24,36) = .. + gcd(35,45) = .. + gcd(45,60) = .. d. Euclidean Algorithm perkembangan dari gcd , yang merupakan prosedure untuk menghitung gcd dari 2 bilangan jika x dibagi a, b maka a-(k*b) untuk setiap nilai k a = x * a1 dan b = x * b1 a (k*b) = x*a1 (x * k * b1) = x * (a1 k * b1) =x*d a=m*b+r untuk 0r<b m = a/b jika x = gcd(a,b)
contoh : gcd (3615807, 2763323) 3615807 = 1 * 2763323 + 852484 2763323 = 3 * 8525484 + 205871 8525484 = 4 * 205871 + 29000 205871 = 7 * 29000 + 2871 29000 = 10 * 2871 + 290 2871 = 9 * 290 + 261 290 = 1 * 261 + 29 261 = 9 * 29 + 0 gcd (3615807, 2763323) = 29
e. Modular aritmatic
+ merupakan cara untuk mendapatkan hasil dalam kisaran tertentu + 2 integer berbeda dapat memiliki modulus yg sama + contoh : 11 mod 3 = 2 5 mod 3 = 2 + Dua bilangan adalah ekuivalen dibawah modulus n, jika hasil mod n bilangan2 tersebut adalah sama X n Y jika dan hanya jika x mod n) = (y mod n) Ekuivalen X n Y jika dan hanya jika (x y) = k * n untuk k = integer rms: a mod n = b untuk a = c * n + b
- properti : associativity a + (b + c) mod n = (a + b) + c mod n a * (b * c) mod n = (a * b) * c mod n commutativity a + b mod a = b + a mod n a * b mod n = b * a mod n distributivity a * (b + c) mod n = ((a * b) + (a + c)) mod n
existence of identifier a + 0 mod n = 0 + a mod n = a a * 1 mod n = 1 * a mod n = a existence of invers a + (-a) mod n = 0 a * (a-1) mod n = 1 jika a 0
reducebility
(a + b) mod n = ((a mod n ) + (b mod n)) mod n (a * b) mod n = ((a mod n ) * (b mod n)) mod n
3 + 4 mod 5 = 2 sebab 3 + 4 = 7 dan 7 - 5 = 2 maka 3 + 4 mod 5 = 2 4 * 4 mod 5 = 1 sebab 4 * 4 = 16 , 16 5 = 11 , 115 = 6, 6 5 = 1 soal : a. mod 7 b. mod 11 c. mod 13
Menghitung invers :
Invers dari elemen a adalah elemen b, sehingga a * b = 1 Invers perkalian dari a dapat ditulis : a-1 Lihat tabel perkalian 5 diatas : Invers dari 1 = 1 Invers dari 2 = 3 Invers dari 3 = 2 Invers dari 4 = 4 Nilai-nilai ini diperoleh dari inspeksi/pemeriksaan bukan dari algoritma sistematik
Teorema fermat
Didalam teori bilangan, teorema fermat menyatakan : Untuk bilangan prima p dan elemen a < p ap mod p = a atau ap-1 mod p = 1 invers a adalah x, a x mod p = 1 kombinasi 2 persamaan: a x mod p = 1 = ap-1 mod p sehingga x = ap-2 mod p methoda ini bukan methoda lengkap untuk menghitung invers, hanya bekerja untuk p = prime dan elemen a < p
soal : hitung invers perkalian berikut : 3-1 mod 5 = .. 2-1 mod 7 = .. 4-1 mod 5 = . 2-1 mod 11 = .. 3-1 mod 7 = .. 2-1 mod 13 = ..
- Nondeterminism
2 phase algorithms: - The nondeterministic phase (the guessing phase) Merupakan perkiraan dari suatu problem yang dihadapi - The deterministic phase (the checking phase) Suatu kepastian dari algorithm yg dijalankan atau diluar hasil solusi dari phase 1. - Complexity Classes Class P P suatu tingkat masalah dalam polynomial-bounded. Class NP NP merupakan masalah dalam nondeterministic polynomial-bounded algorithm Aturan : P NP Maksud : Sebuah kepastian dari algorithm khususnya untuk nondeterministic algorithm (with phase 1 ignored
Karakteristik Hard Problem * clique suatu graph dimana vertex nya berhubungan satu sama lainya
- Setiap perolehan harus ada pemecahannya dan relatif mudah - Bila ada 2 n kasus ditemukan dan memecahanya hanya menggunakan non numeric maka semua hasilnya mungkin untuk semua input - Masalahnya : * logic * teori penomoran * teori graph - Jika taksiran mendatang untuk setiap problem ada pemecahanya dengan waktu singkat : proses verifiksi batasan polynomial - NP problem untuk kepuasan : FALSE atau True
Secret Key Encryption = Single Key = Symmetric private key = conventional algoritma Encryption & decryption sama keynya Contoh : DES
- Public key
pengirim menggunakan public key penerima untuk encryption dan penerima menggunakan private key untuk decryption
keuntungan: - symmetry mempunyai 2 arah - authetication (hanya yg berhak yg dapat mengirim) kerugian : - hanya 1 kesalahan - masalah didistribusi - penambahan key sukar - relatif lemah
Public-Key (Asymmetric)
Same algorithm but different keys used for encryption and decryption Parties share algorithm but each has one key from a matched pair One key must be kept secret Cipher must be strong Plaintext/ciphertext pairs plus one of the keys must not weaken the other key
Principles of PKC
Y = EKUb(X) X = DKRb(Y)
Principles of PKC
PKC: Authentication
Y = EKRa(X) X = DKUa(Y)
No protection of confidentiality
Principles of PKC
Z = EKUb[EKRa(X)] X = DKUa[DKRb(Z)]
Principles of PKC
a.
1 0 1 2 1
1 5 5
0 0 9 20
1 43 43 49
0 1
1 2 2
1 5 5
0 9
1 0 20 43 20 27
jenis a. Simple (superincrease) knapsack n Rms : ai * vi = T i=1 (1, 4, 11, 17,38,73 ) target jumlah 96 96 : 73 yes 96 73 = 23 38? No 23 : 17 yes 23 - 17 = 6 11? No 6: 4? yes 64=2 1? yes 2- 1=1 no solution plaintextnya : 1, 4, 17, 73 = 110101 95: 95- 73 = 22 22: 22- 17 = 5 5: 5-4=1 1 -1 = 0 73? yes 38? No 17 ? yes 11? No 4? yes 1? yes solution
Soal : 1. Diketahui superincreasing knapsack, S = (1, 2, 5 , 9, 18, 37) W = 15, n = 41 n = prima dan n > (1+2+5+9+18+37) Diminta cari hardknapsack H Diketahui superincreasing knapsack, S = (1, 2, 4 , 8, 16) W = 10, n = 37 n = prima dan n > (1+2+5+8+16) Diminta cari hardknapsack H
2.
contoh : 1. Diket : S = (1,2,4,9) H = (15,13,9,16) w = 15, n = 17 dan m = 4 pesan yang dikirim : P = 0100101110100101 Ditanya : encryptionnya Jawab : H = (15, 13, 9, 16) P = 0100 1011 1010 0101 (0, 1, 0, 0) * (15, 13, 9, 16) = 13 (1, 0, 1, 1) * (15, 13, 9, 16) = 15 + 9 + 16 = 40 (1, 0, 1, 0) * (15, 13, 9, 16) = 15 + 9 = 44 (0, 1, 0, 1) * (15, 13, 9, 16) = 13 + 16 = 29 Encryptionnya : 13 40 44 29 menggunakan publik key 15 13 9 16
Diket : S = (1,2,4,9) w = 15, n = 17 pesan yang dikirim : 13 40 24 29 Ditanya : descryptionnya Jawab : Bila perkalian 8 mod 17 sebab 8 adalah 15-1 mod 17 maka 13 * 8 = 104 mod 17 = 2 = 0100 40 * 8 = 320 mod 17 = 14 = 1011 24 * 8 = 192 mod 17 = 5 = 1010 29 * 8 = 232 mod 17 = 11 = 0101 hasilnya : 0100 1011 1010 0101
b. RSA (Rivest Shammir Adelman) - 1978 oleh Rivest, Shammir dan Adelman pada MIT - sifatnya public key encryption - berhubungan denan bilangan integer antara 0 dan n-1 - encryption key (e) dan descryption key (d) yang dapat dipertukarkan - 2 key e dan d merupakan bilangan tertentu C = Pe mod n untuk encryption P = Cd mod n untuk descryption Dimana P = message dan C = ciphertext (n) = bilangan positif integer dan < n dan prima jika n penerima maka : (n) = n-1 jika n = p* q dimana p dan q prima , p q (n) = (p) * (q) = (p-1) * (q-1)
RSA Algorithm
RSA Algorithm
dikembangkan 1977, oleh Ron Rivest, Adi Shamir, dan Len Adleman Block cipher: block size is log2(n), untuk nilai n integer Encryption: C = Me mod n Decryption: M = Cd mod n = Med mod n Requirements
Tentukan nilai e, d, dan n s.t. Med = M mod n untuk M < n Hitung Relatively Me dan Cd Didapat kemungkinan d didapat n dan e
RSA Algorithm
RSA
Need to find a relationship of the form Med = M mod n Can use the corollary of Eulers theorem Given two primes p and q, and two integers, n and m, s.t. n = pq and 0 < m < n. and an arbitrary integer k, the following relationship holds: mk(n)+1 m mod n where (n) is the Eulers totient function (n) = (pq) = (p-1)(q-1) Can achieve the desired relationship if ed = k(n)+1 Equivalent to saying that ed 1 mod (n) or d e-1 mod (n) That is, e and d are multiplicative inverses modulo (n) This is true only if d (and therefore e) is relatively to prime to (n)
RSA Algorithm
RSA Algorithm
RSA Algorithm
RSA Example
1. 2. 3. 4. Select two primes, p = 7 and q = 17 Calculate n = pq = 7 17 = 119 Calculate (n) = (p-1)(q-1) = 96 Select e s.t. e is relatively prime to (n) and less than (n); in this case, e = 5 5. Determine d s.t. de mod 96 = 1 and d < 96. The correct value is d = 77 (77 5 = 385 = 4 96 + 1) 6. KU = {5, 119}, KR = {77, 119}
RSA Algorithm
RSA Algorithm
RSA Algorithm
How many numbers are likely to be rejected before a prime number is found? Prime number theorem
(x) ~ x/ln(x) In other words, primes near x are spaced on the average one every (ln x) integers Thus, on average, ln(x) tests are required to find a prime (Actually ln(x)/2 because all even numbers can be immediately rejected)
Example
If a prime on the order of magnitude of 2100 were thought, then about ln(2200)/2 = 70 trials would be needed to find a prime
RSA Algorithm
RSA Algorithm
RSA Algorithm
Factoring
For a large n with large prime factors, factoring is a hard problem RSA factoring challenge Sponsored by RSA Labs. To encourage research into computational number theory and the practical difficulty factoring large integers A cash prize is awarded to the first person to factor each challenge number
Progress in Factorization
O (e
ln( n ) ln(ln( n ))
RSA Algorithm
RSA Algorithm
RSA Algorithm
Constraints on p and q
Suggested constraints on p and q (by RSA inventors and researchers) Length of p and q should differ by only a few digits Both p-1 and q-1 should contain a large prime factor gcd(p-1, q-1) should be small d > n
RSA Algorithm
Timing Attacks
Big integer multiplication take a long time Assume that the target system uses the following modular exponentiation algorithm for decryption By observing the time taken for modular multiplication, it is possible to infer bits in b If bi is set, d (d a) mod n will be executed (Will be much slower than the case of bi = 0) By varying values of a (ciphertext), and observing the execution (decryption) times carefully, values of bkbk-1b0 (private key) can be inferred
Modular-Exponentiation(a, b, n) /* Compute ab mod n */ 1. d 1 /* let bkbk-1b0 be the binary representation of b */ 2. for i k downto 0 3. do d (d d) mod n 4. if bi = 1 5. then d (d a) mod n 6. return d
RSA Algorithm
contoh : public key (e,n) privat key (d,n) tahap 1 : pilih bilangan n, p dan q misal n = 143 p*q = 143 11 * 13 tahap2 : pilih e prima e = (p-1) * (q-1) = (11-1) * (13-1) = 10 * 12 misalnya e = 17 tahap3 : hitung d d merupakan inverse e mod (p-1)*(q-1) d= e-1 mod(p-1)*(q-1) = 171 mod 120 = 113
c. EL GAMAL ALGORITMA
- 1984, public key - sebagai standard dalam US dalam DS (Digital Signature Standard) - pengirim dalam merubah sebagai key prima : DS = E(key privat , P) - penerima dalam verify menggunakan publickey pengirim : P=D(key public , DS) - tehniknya: pilih bilangan prima p dan 2 bilangan integer a dan x dimana p < p dan x < p pilih (p-1) lebih besar dari q hitung public key y = ax mod p private key = x dan public key = y untuk sender : misalnya message : M pilih bilangan integer k dimana 0 <p< p-1 dan k relprima (p-1) hitung r = ak mod p hitung s = k-1(m xr) mod (p-1) message signature r dan s
- Tahapannya : 1. Penambahan lapisan bits message dilapisi/ditambah bits panjangnya sama sebangun sampai 448 module n2 (panjang = 488 mod 512). Ini penambahan message 64 bits kurang dari kelipatan 512 bit. Lapisan selalu ditambah setiap kejadian jika message ingin ditambah. contoh : Jika panjang message 448 bit dilapisi 512 bit = 960 bit Pengisian harus tetap sebagai single 1 bit maka nomornya 0 bit
2. Penambahan panjang
64 bit mempresentasikan panjang message asli (sebelum ditambah). Jika panjang asli > 264 tetapi panjang yg digunakan < 64 maka panjang asli modulo 264 . Termasuk isi panjang sampai end message sehingga sulit bagi penyerang. Hasil pertama pada step kedua adalah sebuah message dengan kelipatan 512 bit. Dalam gambar diatas penambahan message memperlihatkan urutan blok 512 bit: Y0, Y1 . . . Y L-1 , total message : L * 512 bit akan sama hasilnya dengan kelipatan 9*32 bit word. kemudian M (0, . . . N-1) merupakan words hasil message dengan N kelipatan 16 N= L * 1
3. Initialization MD buffer
Sebanyak 128 bit pada buffer digunakan sebagai perantara dan hasil akhirnya merupakan hash function. Buffer dapat mempresentasikan 4 register 32 bits (A,B,C,D) dimana initialization dengan hexadecimal (low order octects first) A=012 3 45 67 B=89A BCDEF C=FEDCBA98 D=76 54 3210
4.
Mdq
5. Output.
Sesudah semua L 512 blok bit diolah dan menghasilkan menjadi pendek 128 bit. Algoritma MD5 mempunyai kelengkapan setiap bit merupakan code hash. Fungsi gabungan hash dari bit2 input merupakan pengulangan yg yg komplekx dasar dari fungsi (-F,G,H,I) menghasilkan suatu formulasi yang baik/unik. Jika tidak menghendaki 2 message pilihlah secara acak untuk memperlihatkan kelangsungan seperti hash kode. Dugaan Rivest dalam RFC pada MD5 suatu yg mungkin utuk 128 bit hash code. Kesulitan yang dihadapi bila 2 message dengan memperpendek semua pada operasi 264 dimana kesulitan memenuhi message dengan memperpendek pada 2128 operasi. penulisan ini tidak analyst dikerjakan untuk membuktikan dugaan
e. DES (The Data Encryption Standard) - 1972 oleh National Bureau of Standard
(National Institute of Standards Technologi) - digunakan dalam komunikasi - menggunakan 2 tehnik : substitution dan permutasi permutasi mengalami 16 iteration - dan iteration ada subkey yg merupakan kombinasi perputaran dan permutasian - fungsi permutasi sama setiap iteration setapi subkeynya berbeda karena adanya pergeseran bits
- Ada 2 input :
- plaintext panjang 64 bit - key panjang 56 bit Plaintext akan mengalami 3 proses : 1. 64 bit plaintext akan mengalami IP (Initial permutation) dan disusun sedemikian rupa akan menghasilkan : Permuted input. IP mengalami 16 iteration untuk fungsi yg sama, dimana hasilnya nanti 16 bit terakhir dari 64 bit berfungsi sebagai plaintext input dan key 2. Hasilnya dibagi dua, kanan dan kiri serta dipertukaran menghasilkan : PREOUTPUT 3. Preouput melalui permutation (IP-1) di inversi (dibalik) dengan order yg akan menghasilkan 64 bit ciphertext.
Input 64 bit permutasi akan mengalami 16 iteration. Hasil dari 64 bit akan mengahsilkan suatu kesimpulan dimana setiap iterasi dibagi dua setengah kiri dan kanan (L dan R). Key yg digunakan 56 bit input dengan algoritma pertama adalah permutasi. Hasil key 56 bit adalah 28 bit
3. STEGANOGRAFI 1. Pengertian - berasal dari bahasa Yunani - steganos : penyamaran atau penyembuyian - graphein : tulisan sebagai seni menyamarkan/menyembunyikan pesan tertulis kedalam pesan lainnya. Penyembunyian /penyamaran pesan ini dibuat sedemikian rupa sehingga pihak lain tidak mengetahui bahwa ada pesan lain didalam pesan yang dikirimkan. Hanya pihak penerima yang sah saja yang dapat mengetahui pesan lain tersebut
Istilah yang sering digunakan : - Carrier file : file yang berisi pesan rahasia tsb - Steganalysis : proses untuk mendeteksi keberadaanpesan rahasia dalam suatu file - Stego-medium : media yang digunakan untuk membawa pesan rahasia - Redundant bits : sebagian informasi yang terdapat di dalam file yang jika dihilangkan tidak akan menimbulakn kerusakan yang signifiakan (setidaknya bagi indera manusia) - Payload : informasi yang akan disembunyikan
2. Tehnik a. Wax tablets menulis pesan diatas panel kayu yang kemudian disembunyikan dengan melapisi lilin sebagai penutupnya b. Invisible ink). penyembuyian teks pesan yang diperkecil menjadi sebuah titik (microdots) yang ditaruh dibawah perangko dan penyembunyian pesan dengan menggunakan tinta transparan
3. Model Cover x is an instance of a random variable X distributed according to model: PX x = ( x , x ) Choose x0 = (x , x0 ) to encode a message M while maintaining model statistics PX
Encoding
Decoding