• Tidak ada hasil yang ditemukan

D AFTAR R IWAYAT H IDUP

LANDASAN TEOR

2.7. Teori Bilangan Integer

Teori bilangan integer atau bilangan bulat (ℤ) memiliki peran yang sangat besar dalam kriptografi pada umumnya serta merupakan pondasi bagi sistem kriptografi kunci publik (Munir, 2006). Berikut ini merupakan beberapa teori yang mendukung dalam penelitian ini.

2.7.1. Kemampuan dibagi habis (divisibility)

Misalkan a dan b adalah dua bilangan bulat dengan syarat a ≠ 0. Dinyatakan bahwa a

habis membagi b (b mod a = 0) jika terdapat bilangan bulat c sedemikian sehingga

b = ac, maka hal tersebut dapat ditulis sebagai berikut (Munir, 2006).

a | b jika b = ac, c ∈ℤ dan a ≠ 0 ... (2.1) Beberapa properti keterbagihabisan dapat didasarkan sebagai berikut (Sadikin, 2012).

1. Jika 1 | a, maka a = ±1 ... (2.2) 2. Jika b | a dan a | b, maka a = ±b ... (2.3) 3. Jika d | b dan b | a, maka d | a ... (2.4) 4. Jika b mod a = r, maka berlaku a | (b r) ... (2.5)

2.7.2. Divisor

Himpunan bilangan integer yang membagi habis sebuah bilangan integer disebut dengan divisor. Misalnya, 15 memiliki divisor: {1, 3, 5, 15}. Perlu untuk diperhatikan bahwa bilangan 1 yang hanya memiliki satu divisor yaitu 1 atau bilangan itu sendiri. Sedangkan bilangan integer lainnya paling sedikit memiliki dua divisor yaitu bilangan itu sendiri dan 1.

Bilangan integer i yang memiliki divisor {1, i} disebut bilangan prima, selain itu disebut sebagai bilangan komposit (Sadikin, 2012).

2.7.3. Faktor persekutuan terbesar (greatest common divisor)

Faktor persekutuan terbesar adalah elemen terbesar pada himpunan divisor dua bilangan integer. Dua bilangan dapat saja memiliki beberapa elemen divisor yang sama namun hanya satu yang terbesar (Sadikin, 2012). Misalnya, divisor 15 = { 1, 3, 5, 15 } dan

14

{ 1, 3, 5, 15 } dan yang terbesar ialah 15. Dengan kata lain, faktor persekutuan terbesar 15 dan 45 dapat dinotasikan sebagai GCD(15, 45) = 15 (Fauzana, 2013).

Dalam notasi matematika, faktor persekutuan terbesar d dari dua bilangan integer a dan b, di mana keduanya tidak sama dengan nol, didefinisikan sebagai berikut (Welschenbach, 2005):

d = GCD(a,b) jika d > 0, maka d | a, d | b ... (2.6)

(d | a dibaca d habis membagi a) dan jika terdapat bilangan d’,

di mana d’ | a dan d’ | b, maka d’ | d ... (2.7)

Sebagai contoh, telah diketahui GCD(15, 45) = 15. Pembuktian dari persamaan (2.6) dapat dilihat dari 15/15 = 1 dan 45/15 = 3. Hal ini dikarenakan 15 merupakan salah satu divisor dari 15 dan 45.

Berikut ini beberapa aturan yang berlaku dalam faktor persekutuan terbesar (Welschenbach, 2005). 1. GCD(a,b) = GCD(b,a) ... (2.8) 2. GCD(a,0) = |a| ... (2.9) 3. GCD(a,b,c) = GCD(a, GCD(b,c))... (2.10) 4. GCD(a,b) = GCD(-a,b) ... (2.11) 2.7.4. Aritmatika modulo

Aritmatika modulo merupakan sisa hasil pembagian dua bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan, jika bilangan integer a dibagi dengan bilangan integer yang lebih besar dari nol (b > 0), maka akan menghasilkan sisa bagi r (remainder) dengan hasil bagi s (quotient). Sehingga dapat dinotasikan sebagai berikut (Lipschutz & Lipson, 2007).

a mod b = r sedemikian sehingga a = bs + r, dengan 0 ≤ b < n ... (2.12)

Sebagai contoh, jika 23 mod 4 = 3, maka 23 = (4 × 5) + 3.

Jika a negatif, maka bagi |a| dengan b mendapatkan sisa bagi r’ (Munir, 2006). Sehingga didapatkan:

a mod b = b r’, di mana r’ ≠ 0 dan a < 0 ... (2.13)

Sebagai contoh, jika |-23| mod 4 = 3, maka -23 mod 4 = 4 – 3 = 1.

Cormen, et al. (2009) menuliskan di dalam bukunya, untuk setiap bilangan bulat

a dan setiap bilangan bulat positif b, nilai a mod b adalah sisa (residu) dari hasil bagi a/b:

a mod b = a b (a/b), di mana 0 ≤ a mod b < b ... (2.14)

Contohnya adalah 23 mod 4 = 23 – 4(23/4) = 23 – 4(5) = 23 – 20 = 3.

2.7.5. Algoritma Euclid

Euclid (±300 SM), seorang matematikawan klasik yang bekerja pada perpustakaan Alexandria pada zaman Ptolomeus I, membuat algoritma yang dapat menemukan GCD dua bilangan integer a dan b dengan cara rekursif (Sadikin, 2012). Algoritmanya tersebut dituliskan dalam buku Euclid yang terkenal, Element (Munir, 2006). Terdapat dua kasus (Sadikin, 2012), pertama kasus dasar, yaitu ketika b = 0.

GCD(a, 0) = a ... (2.15) Kasus kedua merupakan kasus umum, ketika b ≠ 0.

GCD(a, b) = GCD(b, a mod b) ... (2.16) Kasus dasar (2.15) menyatakan bila b = 0, maka didefinisikan nilai GCD adalah

a (merupakan stop condition). Sebab semua bilangan integer habis membagi 0 dan a

habis membagi dirinya sendiri (0 mod a = 0 dan a mod a = 0, perlu untuk diingat bahwa

a mod 0 = undefined).

Pada kasus umum (2.16) menyatakan untuk mencari GCD(a,b) dapat direduksi menjadi GCD(b, a mod b). Jadi kasus umum (2.16) dapat dikenakan berkali-kali sampai akhirnya akan bertemu dengan kasus dasar (2.15) untuk menemukan GCD(a,b) (Sadikin, 2012).

Contoh: Untuk menemukan GCD(31, 23), dengan menggunakan persamaan (2.15) dan (2.16): (2.16): GCD(31, 23) = GCD(23, (31 mod 23)) = GCD(23, 8) (2.16): GCD(23, 8) = GCD(8, (23 mod 8)) = GCD(8, 7) (2.16): GCD(8, 7) = GCD(7, (8 mod 7)) = GCD(7, 1) (2.16): GCD(7, 1) = GCD(1, (7 mod 1)) = GCD(1, 0) (2.15): GCD(1, 0) = 1

Sehingga dapat disimpulkan bahwa GCD(31, 23) = 1.

2.7.6. Relatif prima

Bilangan bulat positif i (i > 1) disebut bilangan prima jika pembaginya 1 dan i (Cormen,

16

menguji apakah i merupakan bilangan prima atau komposit adalah dengan membagi i dengan sejumlah bilangan prima, mulai dari 2 hingga bilangan prima yang lebih kecil atau sama dengan akar kuadrat dari i (2 ≤ x ≤ √�). Jika i habis dibagi dengan salah satu dari bilangan prima tersebut, maka i adalah bilangan komposit dan jika tidak, maka i adalah prima (Munir, 2006). Hal ini berdasarkan teori dari Ibn al-Banna (ca. 1258-1339) dalam menemukan bilangan prima kurang dari i dengan menggunakan metode saringan Eratosthenes (Mollin, 2007). Sebagai contoh, misalkan bilangan yang ingin diuji keprimaannya adalah 23. Hasil dari √ = 4,795831523, maka bilangan prima dari 2 hingga lebih kecil atau sama dengan 4,795831523 adalah 2 dan 3. Karena 23 tidak habis dibagi dengan 2 dan 3, maka 23 adalah bilangan prima. Berikut ini adalah langkah untuk menguji keprimaan dari 23 dengan menggunakan metode saringan Eratosthenes (Mollin, 2007).

Langkah 1: Tuliskan seluruh bilangan natural (asli) yang lebih kecil atau sama dengan 23 dan yang lebih besar dari 1. Lalu eliminasi bilangan yang lebih besar dari 2 dan merupakan kelipatan dari 2.

{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23} {2,3,5,7,9,11,13,15,17,19,21,23}

Langkah 2: Selanjutnya, eliminasi bilangan yang lebih besar dari 3 dan kelipatan dari 3.

{2,3,5,7,9,11,13,15,17,19,21,23} {2,3,5,7,11,13,15,17,19,21,23}

Langkah 3: Selanjutnya, eliminasi bilangan yang lebih besar dari 5 dan kelipatan dari 5.

{2,3,5,7,11,13,15,17,19,21,23}

Pada langkah ini, tidak ada yang dapat dieliminasi. Jika diteruskan dengan 7, 11, 13 dan bilangan selanjutnya, maka tidak ada lagi yang dapat dieliminasi dari himpunan bilangan ini. Hal tersebut menyatakan himpunan tersebut adalah himpunan bilangan prima dan membuktikan bahwa 23 adalah bilangan prima.

Dapat dilihat, pengujian keprimaan dari 23 dapat berhenti pada langkah 2, yaitu menguji 23 dengan membagi 23 dengan sejumlah bilangan prima, mulai dari 2 hingga bilangan prima yang lebih kecil atau sama dengan akar kuadrat dari 23 (2 ≤ x ≤ √ ). Di mana x adalah 2 dan 3.

Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu

bilangan bulat, beberapa diantaranya adalah Teori Fermat (dibaca “Fair-ma”) (Munir,

2006) dan Miller-Rabin.

Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Jika a dan

b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga

ma + nb = 1 ... (2.17)

Bilangan-bilangan a1, a2, a3, …, an adalah relatif prima berpasangan (pairwise

relatively prime) jika GCD(a1, a2, a3, …, an) = 1 (Cormen, et al. 2012). Contoh bilangan yang relatif prima adalah 31 dan 23.

2.7.7. Persamaan Diophantine linier

Jika terdapat bilangan bulat a, b, c, x, y dalam bentuk persamaan:

ax + by = c,

dengan nilai a, b dan c yang diketahui, maka persamaan ini disebut sebagai persamaan Diophantine linier (Mollin, 2008).

2.7.8. Persamaan Diophantine linier dengan identitas Bézout

Jika nilai c pada persamaan Diophantine linier berikut ini,

ax + by = c,

adalah merupakan nilai faktor persekutuan terbesar dari a dan b atau dengan kata lain c = GCD(a,b), maka persamaan tersebut disebut sebagai persamaan Diophantine linier dengan identitas Bézout (Rosen, 2012).

2.7.9. Extended Euclidean

Algoritma Euclid dapat dikembangkan (disebut dengan algoritma Extended Euclid) agar dapat menemukan dua integer x dan y yang unik selain nilai GCD(a,b) sehingga memenuhi relasi yang ditunjukkan oleh persamaan (2.18) (Lipschutz & Lipson, 2007).

18

2.7.10. Inversi modulo

Jika a dan m relatif prima dan m > 1, maka inversi dari a mod m dapat ditemukan. Inversi dari a (mod m), disebut juga inversi perkalian, di mana bilangan bulat a-1 sedemikian sehingga

aa-1≡ 1 (mod m) ... (2.19)

Pembuktian dari persamaan (2.19) dapat dilihat dari definisi relatif prima diketahui bahwa GCD(a, m) = 1 dan menurut persamaan (2.17) terdapat bilangan bulat

j dan k sedemikian sehingga

aj + mk = 1

yang mengimplikasikan bahwa aj + mk ≡ 1 (mod m). Karena mk ≡ 0 (mod m),

maka aj ≡ 1 (mod m). Kekongruenan tersebut berarti bahwa j adalah inversi dari a (mod m) atau dapat dinotasikan sebagai j = a-1 (Munir, 2006; Mollin, 2008).

Contoh: untuk inversi dari 31 (mod 23), penyelesaiannya dapat dilihat pada Tabel 2.1.

Tabel 2.1. Penyelesaian Contoh Soal Inversi Modulo

a-1 a-1 × 31 (mod 23)

1 8

2 16

3 1

Pada Tabel 2.1., iterasi berhenti ketika a-1a ≡ 1 (mod m) dan diperoleh a-1 = 3.

2.7.11. Modulo eksponensial

Permasalahan pada operasi modulo adalah bagaimana menghitung xy (mod z) dengan y yang sangat besar. Terdapat beberapa algoritma untuk menghitung modulo eksponensial, antara lain adalah dengan metode iteratif dan square and multiply.

Metode square and multiply mengasumsikan eksponen y dalam bentuk biner (mengekspresikan y sebagai sum of power dari 2), sehingga

= ∑ � �

�− �=

, � ∈ { , }

Untuk menyelesaikan modulo eksponensial, berikut ini adalah algoritma dan contoh dari metode square and multiply: left-to-right variant (Smart, 2004).

Langkah 1: Untuk menghitung xy mod z, misalkan x = 65, y = 2 dan z = 713 maka representasi biner dari y adalah b = ‘10’, dengan index bit

paling kanan bernilai 0, index paling kiri bernilai jumlah bit - 1 = 2 - 1 = 1.

Langkah 2: Tetapkan bilangan a = 1 lalu i = jumlah bit - 1 = 1.

Langkah 3: Jika i 0, maka hitung a = a2 mod z dan lanjutkan ke Langkah 4. Jika i < 0, maka hentikan algoritma dan hasil perhitungan adalah nilai a.

Langkah 4: Jika bi = ‘1’, maka hitung a = ax mod z dan i = i - 1. Kembali ke

Langkah 3.

Untuk penyelesaian xy mod z dengan x = 65, y = 2 dan z = 713 dapat dilihat pada

Tabel 2.2. berikut.

Tabel 2.2. Penyelesaian Contoh Soal Square and Multiply Left-to-Right Variant

i b[i] a2 a2 mod z b[i] == ‘1’ a

- - - 1

1 ‘1’ 1 1 Ya 65

0 ‘0’ 4225 660 Tidak 660 Dari Tabel 2.2. dapat disimpulkan bahwa 652 mod 713 = 660.

2.7.12. Algoritma Miller-Rabin

Algoritma pengujian bilangan prima ini disebut juga algoritma Selfridge-Miller-Rabin atau strong prime test. Ini merupakan penyempurnaan dari algoritma Fermat, dan bekerja dengan sangat baik dalam praktiknya (Galbraith, 2012). Algoritma ini dikembangkan oleh Michael Rabin yang didasarkan pada sebagian ide Gary Miller (Schneier, 1996).

Sampai saat ini algoritma pengujian bilangan prima yang banyak dipakai dalam sistem kriptografi adalah algoritma probabilistik Miller-Rabin yang memiliki komputasi yang ringan dan memberikan probabilitas yang tinggi (Sadikin, 2012). Berikut ini adalah algoritma Miller-Rabin (Cormen, et al. 2009).

20

Langkah 1: Pilih bilangan yang ingin diuji keprimaannya n, di mana n ≥ 3 dan

n merupakan bilangan ganjil (n mod 2 ≠ 0).

Langkah 2: Hitung n-1 = u2t, di mana u adalah bilangan ganjil dan t ≥ 1. Representasi bilangan biner dari n-1 adalah representasi biner dari bilangan ganjil u yang diikuti oleh bit 0 sebanyak t.

Langkah 3: Uji n yang akan diperiksa keprimaannya dengan bilangan integer sembarang a, di mana 2 ≤ a n-1 sebanyak s. Jika pengujian sudah

sampai s kali, maka lanjutkan ke Langkah 6. Langkah 4: Hitung ≡ au (mod n).

Langkah 5: Hitung �− mod sebanyak t kali di mana 1 ≤ i t. Jika � mod , �− 1 (mod n) dan �− n-1 maka hentikan

algoritma dengan menyatakan n adalah bilangan komposit. Selain dari itu, maka lanjut ke Langkah 3.

Langkah 6: Jika mod , maka hentikan algoritma dengan menyatakan n adalah bilangan komposit. Jika tidak, maka hentikan algoritma dan nyatakan n adalah kemungkinan bilangan prima. Contoh: nilai yang akan diuji keprimaannya (n) adalah 23 (23 ≥ 3 dan 23 mod 2 ≠ 0), maka perhitungan menggunakan algoritma Miller-Rabin untuk menguji keprimaan dari n adalah sebagai berikut.

Hitung n-1 = u2t, di mana n-1 = 23-1 = 22.

n-1 = 2210 = 101102

u = 10112 = 1110

t = 1, karena jumlah digit 0 setelah u (10112) dalam biner n-1 sebanyak satu. Sehingga n-1 = 22 = 2tu = 21 × 11.

Pilih nilai a secara acak sebanyak s. Dalam hal ini, nilai s adalah banyak digit dari n yaitu 2. Sehingga nilai a0 = 15 dan a1 = 4.

Pengujian dengan a0 (iterasi 1):

Hitung ≡ au (mod n) ≡ 1511 (mod 23) ≡ 22 (mod 23)

Hitung �− mod sebanyak t kali di mana nilai t adalah 1.

Maka mod mod mod .

Karena mod , 1 (mod 23) dan 22, maka dilanjutkan ke langkah berikutnya yaitu pengujian dengan nilai a1.

Hitung ≡ au (mod n) ≡ 411 (mod 23) ≡ 1 (mod 23)

Hitung �− mod sebanyak t kali di mana nilai t adalah 1.

Maka mod mod mod .

Karena mod , 1 (mod 23), 22 dan pengujian sudah dilakukan sebanyak s kali, maka dilanjutkan ke langkah terakhir.

Karena mod , maka algoritma dihentikan dan n dinyatakan kemungkinan bilangan prima.

2.7.13. Chinese remainder theorem

Chinese Remainder Theorem (CRT) ditemukan oleh seorang matematikawan Cina

bernama Sun-Tsu (disebut juga Sun Tse) sekitar 100 A.D (anno domini) atau 100 M (Stallings, 2011). Chinese Remainder Theorem (teorema sisa Cina), dinamai setelah masalah peninggalan Cina yang melibatkan sistem persamaan atau kekongruenan linier, menyatakan bahwa ketika modulus dari sistem kekongruenan linier yang berpasangan relatif prima, ada solusi unik dari sistem modulo produk dari modulus. Berikut ini adalah pertanyaan atau teka-teki Sun-Tsu (Rosen, 2012).

Ada beberapa hal yang bilangannnya tidak diketahui. Bila dibagi dengan 3, sisanya adalah 2, ketika dibagi oleh 5, sisanya adalah 3, dan ketika dibagi 7, sisanya adalah 4. Berapakah bilangan itu?

Teka-teki tersebut dapat dituliskan sebagai berikut. Apa solusi dari sistem kekongruenan berikut ini?

x ≡ 2 (mod 3)

x ≡ 3 (mod 5)

x ≡ 4 (mod 7)

Sebelum menyelesaikan teka-teki tersebut, berikut ini adalah teorema sisa Cina (Chinese Remainder Theorem) (Rosen, 2012).

Misalkan m1, m2, …, mn adalah bilangan bulat positif yang relatif prima

berpasangan (pairwise relatively prime) yang lebih besar dari 1 dan a1, a2, …, an

merupakan bilangan bulat sembarang. Maka sistem kekongruenan linier

x a1 (mod m1), x ≡ a2 (mod m2), ⋯, x an (mod mn)

memiliki sebuah solusi unik modulo m = m1m2…mn. (Terdapat solusi x dengan

22

Solusi dari penyelesaian teka-teki Sun-Tsu tersebut adalah sebagai berikut (Wandani, 2012).

Langkah 1: Hitung hasil perkalian dari keseluruhan modulus.

M = m1m2…mn M = 3 × 5 × 7 = 105

Langkah 2: Buat himpunan penyelesaian untuk masing-masing persamaan dari bilangan terkecil hingga hasil perkalian modulus (M).

x1 = {2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104} x2 = {3, 8, 13, 18, 23, 28, 33, 38, 43, 48, 53, 58, 63, 68, 73, 78, 83, 88, 93, 98, 103} x3 = {4, 11, 18, 25, 32, 39, 46, 53, 60, 67, 74, 81, 88, 95, 102} Langkah 3: X merupakan irisan dari keseluruhan himpunan penyelesaian

tersebut.

X = x1 ∩ x2 ∩ … ∩ xn X = x1 ∩ x2 ∩ x3 = 53

Langkah 4: Agar tercapai seluruh bilangan yang memenuhi x, maka dihitung kelipatan persekutuan terkecil (Least Common Multiple) dari ketiga modulus (interval yang memenuhi x).

Berikut ini merupakan rumus untuk mencari LCM dari dua bilangan bulat positif (Rosen, 2012).

ab = GCD(a,b) . LCM(a, b) ... (2.20)

Dari persamaan (2.20) dapat disimpulkan:

LCM , =G , ... (2.21) GCD(GCD(3,5),7) = 1 dan LCM(LCM(3,5),7) = 105

Sehingga x memenuhi akan bilangan dalam interval 105 dimulai dari 53, yaitu x = 53 ± (k × 105). Atau interval ini dapat dituliskan: x ∈ X ± (k × LCM(m1,m2, …,mn)) ... (2.22)

Cara yang dapat digunakan untuk menyelesaikan teka-teki Sun-Tsu menurut Rosen (2012) adalah sebagai berikut.

Langkah 1: Hitung hasil perkalian dari keseluruhan modulus.

M = 3 × 5 × 7 = 105

Langkah 2: Hitung hasil bagi dari M dengan tiap-tiap modulus.

Mn = M/mn M1 = 105/3 = 35

M2 = 105/5 = 21

M3 = 105/7 = 15

Langkah 3: Hitung invers modulo (yn) dari (Mn mod mn). Maka diperoleh: y1 = 2, y2 = 1 dan y3 = 1

Langkah 4: Diperoleh solusi x dari teka-teki dengan menghitung rumus berikut ini.

x a1M1y1 + a2M2y2 + … + anMnyn ... (2.23)

x a1M1y1 + a2M2y2 + a3M3y3 ≡ (2×35×2) + (3×21×1) + (4×15×1)

x ≡ 263 ≡ 53 (mod 105).

Dokumen terkait