Landasan Matematika
Kriptograf
Memahami kriptograf dan kriptanalisis memerlukan pemahaman MATEMATIKA.
Matematika memberikan landasan penting pada sebagian besar konsep dalam
kriptograf.
Matematika yang diperlukan untuk
kriptograf termasuk ke dalam MATEMATIKA DISKRIT
Relasi dari A ke B merupakan FUNGSI jika setiap elemen dalam A dihubungkan
dengan tepat satu elemen di dalam B.
f : A
B
f
memetakan
A ke B
Fungsi
A B
a b
Nama lain dari FUNGSI adalah
PEMETAAN atau TRANSFORMASI.
Himpunan A disebut DAERAH
ASAL (DOMAIN) dari f dan
himpunan B disebut DAERAH
HASIL (CODOMAIN) dari f.
Kita menuliskan f(a)=b
jika
elemen a didalam A dihubungkan
dengan elemen b didalam B.
b dinamakan BAYANGAN (IMAGE) dari
a
a dinamakan PRA_BAYANGAN
(PRE-IMAGE) dari b
Himpunan yang berisi semua nilai
pemetaan f disebut JELAJAH
(RANGE) dari f.
Fungsi adalah relasi yang khusus.
Kekhususan ini tercakup pada
dua hal penting yaitu :
1.
Tiap elemen dalam himpunan
A, yang merupakan daerah
asal f, harus digunakan oleh
prosedur atau kaidah yang
mendefnisikan f.
2.
Frasa “dihubungkan dengan
tepat satu elemen didalam B”
berarti bahwa jika (a,b)
f
dan (a,c)
f, maka b=c
Fungsi f dari himpunan A ke B
Fungsi f dari himpunan A ke B dikatakan PADA (ONTO) atau SURJEKTIF (SURJECTIVE) jika setiap elemen B merupakan bayangan dari SATU atau LEBIH elemen A.
Fungsi f dari himpunan A ke B dikatakan BERKORESPONDEN SATU-KE-SATU atau
BIJEKSI (BIJECTION) jika merupakan fungsi SATU-KE-SATU sekaligus fungsi PADA.
Fungsi INVERSI (INVERS) atau BALIKAN
adalah fungsi yang memetakan kembali B ke A. Dilambangkan dengan f-1
Fungsi Inversi
Fungsi
A B
a 1
f
Fungsi f dari himpunan A ke B dikatakan FUNGSI SATU ARAH jika f(x) “mudah” untuk dihitung untuk semua x A tetapi “sangat sukar” atau bahkan “hampir tidak mungkin secara komputasi”
menemukan inversinya, yaitu menemukan x sedemikian hingga f(x) = y untuk semua y jelajah f
Fungsi Satu Arah
Contoh :
Perkalian bilangan prima p=48611 dan q=53993 akan menghasilkan
n=2624653723
Tetapi sangat sulit untuk menemukan
faktor prima dari 2624653723, apalagi bila bilangan yang digunakan cukup besar.
Fungsi Satu Arah
Fungsi f dari himpunan A ke B dikatakan FUNGSI PINTU-KOLONG (TRAPDOOR
FUNCTION) jika f(x) “mudah” dihitung
untuk semua x A tetapi “sangat sukar secara komputasi” menemukan inversinya tanpa INFORMASI TAMBAHAN yang disebut “PINTU-KOLONG (TRAPDOOR)”.
Fungsi Pintu-Kolong
Jika f adalah fungsi pintu-kolong, maka terdapat INFORMASI RAHASIA k sedemikian hingga bila
diberikan f(x) dan k maka x lebih mudah dihitung.
Dalam kriptograf, fungsi pintu-kolong dan fungsi satu-arah banyak digunakan pada kriptograf
kunci-publik.
Fungsi Pintu-Kolong
Adalah jumlah urutan berbeda
dari pengaturan objek-objek.
Permutasi dari n objek adalah :
Permutasi
Permutasi r dari n objek disimbolkan
dengan P(n,r), adalah kemungkinan
urutan r buah objek yang dipilih dari
n buah objek, dengan r ≤ n. Yang
dalam hal ini pada setiap
kemungkinan urutan tidak ada
objekyang sama.
Permutasi
Contoh : Ada 26 huruf dalam alfabet.
Jika huruf-huruf disusun, maka ada
26! Urutan susunan yang dihasilkan.
Jika menyusun 5 huruf dari alfabet,
maka kemungkinan susunan huruf
yang terbentuk :
Permutasi
Bentuk khusus dari permutasi adalah
KOMBINASI.
Jika pada permutasi urutan
kemunculan diperhitungkan, maka
pada kombinasi urutan kemunculan
DIABAIKAN.
Contoh urutan abc,cba,acb dianggap
sama dan dihitung sekali.
Kombinasi
Kombinasi r elemen dari n elemen
disimbolkan dengan C(n,r) adalah
jumlah pemilihan yang tidak terurut r
elemen yang diambil dari n buan
elemen, yang banyaknya adalah :
Kombinasi
Contoh :
Setiap karakter ASCII panjangnya
1 byte. Jumlah byte yang
mengandung 3 buah bit 1 adalah
Kombinasi
Teori yang mendefnisikan jumlah
informasi di dalam pesan sebagai
jumlah minimum bit yang
dibutuhkan untuk mengkodekan
pesan
Contoh : 1 bit untuk
mengkodekan jenis kelamin, 3 bit
untuk nama hari.
Entropi (entropy) adalah ukuran yang
menyatakan jumlah informasi di
dalam pesan. (Biasanya dinyatakan
dalam satuan bit)
Entropi digunakan untuk
memperkirakan jumlah bit rata-rata
untuk mengkodekan elemen dari
pesan.
Contoh : entropi untuk pesan
yang menyatakan jenis kelamin =
1 bit untu, entropi untuk pesan
yang menyatakan nama hari = 3
bit.
Shannon merumuskan entropi
pesan, disimbolkan dengan H,
yang dihitung dengan persamaan
:
X=pesan, n=jumlah simbol berbeda di dalam pesan, pi=peluang kemunculan simbol ke-i
Misalkan pesan X adalah string
“AABBCBDB”. Jumlah simbol berbeda
di dalam pesan adalah n=4 (yaitu
A,B,C,D).
Sehingga p(A)=2/8, p(B)=4/8,
p(C)=1/8 dan p(D)=1/8.
Entropi pesan X adalah :
Entropi 1,75 berarti setiap simbol
dikodekan sebanyak 1,75 bit.
Sifat-sifat entropi adalah : 1. 0 ≤ H(X) ≤ log2(n)
2. H(X) = 0 jika dan hanya jika pi = 1
untuk semua i dan pj = 0 untuk semua j ≠ i
3. H(X) = log2(n) jika dan hanya jika pi = 1/n untuk setiap i, 1 ≤ i ≤ n
Entropi juga menyatakan ketidaktentuan (uncertainty) dari pesan.
Contohnya, bila kriptogram “Y6RuPZ” menyatakan plainteks “MALE” atau
“FEMALE”, maka uncertainty pesan = 1. Kriptanalis harus mempelajari hanya 1 bit yang dipilih secara tepat untuk
menemukan plainteks.
Entropi sistem kriptograf adalah
ukuran ruang kunci K. Misal
sistem kriptograf dengan kunci
64-bit mempunyai entropi 64 bit.
Semakin besar entropi, semakin
sulit memecahkan cipherteks.
Laju bahasa (rate of a language) didefnisikan sebagai berikut :
N = panjang pesan. Contohnya, laju normal Bahasa Inggris adalah 1,0 bit/huruf sampai dengan 1,5 bit/huruf untuk N besar
Laju mutlak (absolute rate)
didefnisikan sebagai berikut :
L = jumlah karakter didalam
bahasa. Contohnya, dalam
bahasa Inggris (26 huruf), R =
log
226 = 4,7 bit/huruf.
Redundansi bahasa (D) didefnisikan sebagai berikut :
Contoh, di dalam bahasa Inggris (ambil r = 1,3) D = 4,7 – 1,3 = 3,4 bit/huruf. Artinya setiap huruf dalam bahasa Inggris
membawa 3,4 bit informasi redundan (mubazir).
Contoh lain, pada pesan ASCII (256 karakter),
R = log2256 = 8 dan r = 1,3 (sama seperti bahasa Inggris), sehingga D = 8 – 1,3 = 6,7 bit/karakter.
Kriptanalis menggunakan redundansi alami dari bahasa untuk mengurangi
kemungkinan jumlah plainteks.
Contoh, kata “dan” dalam bahasa
Indonesia redundan. Misal jika dalam
cipherteks banyak muncul kriptogram “ftY” (3 huruf) maka kemungkinan besar itu
adalah “dan”.
Semakin besar redundansi bahasa,
semakin mudah melakukan kriptanalisis.
Dalam dunia nyata, implementasi
kriptograf dilengkapi dengan
program KOMPRESI sebelum
mengenkripsi pesan.
KOMPRESI mengurangi
mengurangi redundansi pesan.
Number theory adalah teori yang
mendasar dalam memahami
kriptograf. Khususnya sistem
kriptograf kunci-publik.
Bilangan yang dimaksud di sini
hanyalah bilangan bulat
(integer).
Misal a dan b adalah dua bilanga
bulat dengan syarat a ≠ 0, dapat
dinyatakan bahwa a HABIS
MEMBAGI b (a divides b) jika
terdapat bilangan bulat c
sedemikian hingga b = ac.
Sifat pembagian pada Bilangan
Bulat
TEOREMA EUCLIDAN. Misal m dan n adalah dua bilangan bulat dengan syarat n > 0. Jika m dibagi dengan n maka terdapat dua bilangan bulat unik q (quotient) dan r (remainder) sedemikian hingga :
Contoh : 1987 dibagi 97 memberikan hasil bagi 20 dan sisa 47. Atau ditulis 1987=97.20 + 47
Sifat pembagian pada Bilangan
Bulat
Misal a dan b adalah dua bilangan bulat
tidak nol. Pembagi bersama terbesar dari a dan b adalah bilangan bulat terbesar d
sedemikan hingga d | a dan d | b. Dalam hal ini dinyatakan PBB(a,b) = d.
Contoh : Faktor pembagi 45 : 1,3,5,9,15 ; 36 : 1,2,3,4,9,12,18,36. FPB dari 45 dan 36 adalah 1,3,9. Sehingga PBB(45,36) = 9
PBB (Pembagi Bersama Terbesar)
Adalah algoritma untuk mencari
PBB dari dua buah bilangan bulat.
Euclid, penemu algoritma
Euclidan adlah seorang
matematikawan Yunani yang
menuliskan algoritmanya dalam
bukunya “Element” .
Algoritma Euclidan
Diberikan dua buah bilangan bulat tak-negatif m dan n (m ≥ n). Algoritma Euclidan berikut
mencari pembagi bersama terbesar dari m dan n :
1.Jika n=0 maka m adalah PBB(m,n);stop; Kalau tidak, (yaitu n ≠ 0) lanjutkan ke langkah 2
2.Bagilah m dengan n dan misalkan r adalah sisanya
3.Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang dari langkah 1
Algoritma Euclidan
Misalkan m=80, n=12 dan dipenuhi syarat m ≥ n, maka PBB(80,12) dihitung dengan algoritma Euclidan sbb :
80 = 6 . 12 + 8
12 = 1 . 8 + 4
8 = 2 . 4 + 0
Algoritma Euclidan
Contoh 4. m = 80, n = 12 dan dipenuhi syarat m n 8
12 6
80
4 8 1
12
0 4 2
8
Sisa pembagian terakhir sebelum 0 adalah 4, maka PBB(80, 12) = 4.
Teori
Bilangan
Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB (a,b) = 1. Jika a dan b relatif prima, maka terdapat bilangan bulat m dan n sedemikian hingga :
ma + nb = 1
Contoh : 20 dan 3 relatif prima (PBB(20,3)=1), 20 dan 5 TIDAK relatif prima (PBB(20,5)=5)
Relatif Prima
Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m. Bilangan m disebut MODULUS atau MODULO, dan hasil
aritmetika modulo m terletak dalam himpunan {0,1,2,…,m-1}
Notasi : a mod m = r sedemikian hingga a=mq + r, dengan 0 ≤ r < m
Aritmetika Modulo
Contoh. Beberapa hasil operasi dengan operator
modulo:
(i) 23 mod 5 = 3 (23 = 5 4 + 3) (ii) 27 mod 3 = 0 (27 = 3 9 + 0) (iii) 6 mod 8 = 6 (6 = 8 0 + 6)
(iv) 0 mod 12 = 0 (0 = 12 0 + 0) (v) – 41 mod 9 = 4 (–41 = 9 (–5) + 4)
(vi) – 39 mod 13 = 0 (–39 = 13(–3) + 0)
Penjelasan untuk (v): Karena a negatif, bagi |a| dengan m
mendapatkan sisa r’. Maka a mod m = m – r’ bila r’ 0.
Jadi |– 41| mod 9 = 5, sehingga –41 mod 9 = 9 – 5 = 4.
Teori Bilangan
Kongruen
Misalnya 38 mod 5 = 3 dan 13 mod 5 = 3, maka dikatakan 38 13 (mod 5)
(baca: 38 kongruen dengan 13 dalam modulo 5).
Misalkan a dan b bilangan bulat dan m adalah bilangan > 0, maka a b (mod m) jika m
habis membagi a – b.
Jika a tidak kongruen dengan b dalam modulus
Contoh .
17 2 (mod 3) ( 3 habis membagi 17 – 2 = 15)
–7 15 (mod 11)
(11 habis membagi –7 – 15 = –22)
12 / 2 (mod 7)
(7 tidak habis membagi 12 – 2 = 10 )
–7 / 15 (mod 3)
a
b
(mod
m
) dapat dituliskan
sebagai
a
=
b
+
km
(
k
adalah bilangan
bulat)
Contoh 10.
17
2 (mod 3)
17 = 2 + 5
3
–7
15 (mod 11)
–7 = 15 + (–
Any Questions ?