modul praktikum bahasa basic - elista:.

advertisement
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

  j1  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  17  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
Download