14
2.1 Algoritma Euclidean Di dalam upabab 5.6 telah diperlihankan bahwa untuk mencari PBB dari dua buah bilangan bulat m dan n, mula-mula kita mendaftarkan semua pembagi dari masing-masing m dan n,lalu memilih pembagi persekutuan yang bernilai terbesar.di dalam upabab 5.7 ini diberikan metode yang mangkus untuk menemukan PBB, yang dikenal dengan nama algoritma Euclidean.Algoritma Euclidean udah dikenal berabad-abad yang lampau. euclid, penemu algoritma Euclidean, adalah seorang matematikawan yunani yang menulisakn algoritmanya tersebut dalam bukunya uang terkenal,Element. Algoritmanya Euclidean didasarkan pada aplikasi seacara berturut-turut sampai kita menemui sisa pembagaian bernilai nol, dan contoh ilustrasi yang menarik untuk hal ini sudah diperlihatkan secara formal algoritma Euclidean kita di rumuskan sebagai berikut: Misalkan m dan n adalah bilangan bulat tak negative dengan , m > n. Misalkan r0 = m dan r1 = n. Lakukan secara berturut-berturut pembagian (Teorema 5.1) untuk memperoleh r0= r1q1+r2 0 < r2 < r1, r1= r2q2+r3 0 < r3< r2, rn-2=rn-1qn-1+rn 0 < rn < rn-1, rn-1 =rnqn + 0 Menurut Teorema 5.3,

Ringkasan

Embed Size (px)

Citation preview

Page 1: Ringkasan

2.1 Algoritma Euclidean

Di dalam upabab 5.6 telah diperlihankan bahwa untuk mencari PBB dari dua buah

bilangan bulat m dan n, mula-mula kita mendaftarkan semua pembagi dari masing-masing m

dan n,lalu memilih pembagi persekutuan yang bernilai terbesar.di dalam upabab 5.7 ini

diberikan metode yang mangkus untuk menemukan PBB, yang dikenal dengan nama

algoritma Euclidean.Algoritma Euclidean udah dikenal berabad-abad yang lampau. euclid,

penemu algoritma Euclidean, adalah seorang matematikawan yunani yang menulisakn

algoritmanya tersebut dalam bukunya uang terkenal,Element.

Algoritmanya Euclidean didasarkan pada aplikasi seacara berturut-turut sampai kita menemui

sisa pembagaian bernilai nol, dan contoh ilustrasi yang menarik untuk hal ini sudah

diperlihatkan secara formal algoritma Euclidean kita di rumuskan sebagai berikut:

Misalkan m dan n adalah bilangan bulat tak negative dengan , m > n. Misalkan r0 = m dan r1

= n. Lakukan secara berturut-berturut pembagian (Teorema 5.1) untuk memperoleh

r0= r1q1+r2 0 < r2 < r1,

r1= r2q2+r3 0 < r3< r2,

rn-2=rn-1qn-1+rn 0 < rn < rn-1,

rn-1 =rnqn + 0

Menurut Teorema 5.3,

PBB(m, n) = PBB(r0,r1) = PBB(r1, r2) = … = PBB(rn-2, r n-1,)

= PBB(r n-1,r0) =PBB(r n, 0) = r n

Jadi,PBB dan m dan n adalah sisa terakhir yang tidak nol dari runtunan pembagian tersebut

Diberikan dua buah bilangan bulat tak-negatif m dan n (m > n).Algoritma Euclidean berikut

mancari pembagi bersama tersebar,PBB,dari kedua bilangan tersebut,Yaitu bilangan bulat

positif terbesaryang habis membagi m dan n.

Page 2: Ringkasan

Algoritma Euclidean

1. Jika n = 0 maka

m adalah PBB(m, n);

stop.

Tetapi jika 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 dengan nilai r, lalu ulang kembali ke langkah 1

2.2 Kongruen

Kadang-kadang dua buah bilangan bulat, a dan b, mempunyai sisa yang sama jika dibagi

bilangan bulat positif m. kita katakana bahwa a dan b kongruen dalam modulo m, dan

dilambangkan sebagai

a = b (mod m)

(notasi ‘=’ dibaca ‘kongruen’)

Jika a tidak,kongruen dengan b dalam modulus m,maka ditulis

a=/ b (mod m)

Kongruen lanjar

Kongruen lanjar adalah konguren yang berbentuk

ax = b (mod m)

dengan m adalah bilangan bulat positif, a dan b sembarang bilangan bulat dan x

adalah peubah. Bentuk kongruen lanjar berati mentukan nilai-nilai x yang memenuhi

kongruenan tersebut.Metode yang sederhana untuk mencari nilai-nilai x tersebut adalah

dengan menggunakan persamaan(5.6) menurut persamaan (5.6) ax= b (mod m) dapat ditulis

dalam hubungan

ax = b + km

yang dapat disusun menjadi

Page 3: Ringkasan

x= b+km

a

dengan k adalah sembarang bilangan bulat. Cobakan nilai-nilai k=0,1,2,…. Dan k=-1,-2,….

Ke dalam persamaanyang teakhir untuk menghasilkan x sebagai bilangan bulat.

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 di bagi

7 menyisakan 5,dan bila di bagi 11 menyisakan 7.

Pertanyaan Sun Tse dapat dirumuskan kedalam system konguren lanjar;

x=3(mod 5)

x=5(mod 7)

x=7(mod 11)

Untuk menyelesaikan persolan pertama ambil kongruen pertama, x ≡ 3 (mod 5), memberikan

x = 3 + 5k1 untuk beberapa nilai k. Sulihkan ini ke dalam kongruen kedua menjadi 3 + 5k1

≡ 5 (mod 7), dari sini kita peroleh k1 ≡ 6 (mod 7), atau k1 = 6 + 7k2 untuk beberapa nilai k2.Jadi kita

mendapatkan x = 3 + 5k1 = 3 + 5(6 + 7k2) =33 + 35k2 yang mana memenuhi dua kongruen pertama.

Jika x memenuhi kongruen yang ketiga, kita harus mempunyai 33 + 35k2 ≡ 7 (mod 11), yang

mengakibatkan k2 ≡ 9 (mod 11) atau k2 = 9 + 11k3. Sulihkan k2 ini ke dalam kongruen yang ketiga

menghasilkan x = 33 + 35(9 + 11k3) ≡ 348 + 385k3 (mod 11).Dengan demikian, x ≡ 348 (mod 385)

yang memenuhi ketiga konruen tersebut. Dengan kata lain,348 adalah solusi unik modulo

385. Catatlah bahwa 385 = 5 × 7 × 11.Solusi unik ini mudah dibuktikan sebagai berikut.

Solusi tersebut modulo m = m1 × m2 × m3 = 5 × 7 × 11= 5 × 77 = 11 × 35. Karena 77 3 ≡ 1

(mod 5), 55 × 6 ≡ 1 (mod 7), dan 35 × 6 ≡ 1 (mod 11), solusi unik dari system kongruen

tersebut adalahx ≡ 3 × 77 × 3 + 5 × 55 × 6 + 7 × 35 × 6 (mod 385) ≡ 3813 (mod 385) ≡ 348

(mod 385).

Page 4: Ringkasan

Teorema Chinese Remainder berikut akan digunakan untuk menemukan solusi system

kongruen lanjar seperti di atas.

2.3 Bilangan Prima

Bilangan bulat positif yang mempunyai aplikasi penting dalam ilmu penting dan

matematika diskit adalah bilangan prima. Bilangan prima adalah bilangan positifyang lebih

besar dari 1 yang hanya habis di bagi oleh 1 dan diri sendirinya.

Sebagai contoh,23 adalah bilangan prima Karena ia hanya habis di bagi oleh 1 dan 23.karena

bilangan prima harus dilebih besar dari 1,maka barisan bilangan prima di mulai dari 2,yaitu

2,3,5,7,11,13,…….seluruh bilangan prima adalah ganjil,kecuali 2 yang merupakan bilangan

genap.

Bilangan selain prima disebut bilangan Komposit (composite). Misalnya 20 adalah bilangan

komposit karena 20 dapat dibagi oleh 2,4,5 dan 10, selain 1 dan 20 sendiri

Algoritma Brute Force.

Algoritma di bawah ini adalah algoritma Brute Force (cara naif) dan merupakan algoritma

yang sederhana.Pertama-tama kita membuat suatu list yang akan diisi dengan bilangan prima

yang kita dapatkan. Pada awalnya di dalam list tersebut tidak ada bilangan lain selain 3.

Kemudian kita akan mengecek seluruh bilangan ganjil sampai dengan batas yang telah kita

tentukan sendiri, dan membandingkannya dengan

bilangan prima yang ada dalam list bilangan prima tadi. Jika bilangan tersebut tidak bisa

dibagi oleh seluruh bilangan prima yang ada dalam list maka bilangan tersebut adalah

bilangan prima dan kita bisa menambahkannya ke dalam list bilangan prima tadi. Pada

akhirnya kita harus menambahkan angka 2 ke dalam list tersebut. Satu hal lainnya yang patut

dicatat, kita hanya harus mengecek bilangan prima sampai akar kuadrat dari

batas nilai dari list tersebut.

Hal ini terlihat baik, sebagai sebuah pendekatan kasar terhadap fungsi perhitungan bilangan

prima adalah x/ln x, dan kita hanya perlu mengecek bilangan prima sampai √(n). Secara

kasar kita harus melakukan paling banyak √(n)/ln√(n) tes terhadap suatu angka untuk

menentukan dengan keakuratan 100% bahwa bilangan tersebut adalah prima. Fungsi ini

Page 5: Ringkasan

memang akan memakan waktu yang lama, tapi pada kenyataannya tidak teralalu lama.

Berikut kodenya dalam pseudocode:

Procedure

deterministicPrimeSeqence(end):

If end < 2: return

[]

if end < 3: return

[2]

primes = [3]

for i in

range(5,end,2):

sqt = int(sqrt(i))

for prime in primes:

if prime >

sqt:

primes.append(i)

break

if i%prime == 0: break

primes.insert(0,2)

return primes

2.4 Kriptografi

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita [bruce Schneier -

Applied Cryptography]. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari

teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan

data, keabsahan data, integritas data, serta autentikasi data [A. Menezes, P. van Oorschot and S.

Vanstone - Handbook of Applied Cryptography]. Tidak semua aspek keamanan informasi ditangani

oleh kriptografi.

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi

yaitu :

Page 6: Ringkasan

Kerahasiaan , adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun

kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang

telah disandi.

Integritas data , adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah.

Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi

manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan

pensubsitusian data lain kedalam data yang sebenarnya.

Autentikasi , adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem

maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling

memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian,

isi datanya, waktu pengiriman, dan lain-lain.

Non-repudiasi. , atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan

terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.

2.2.1 Pengertian Dasar

Suatu pesan yang tidak disandikan disebut sebagai plaintext ataupun dapat disebut juga

sebagai cleartext. Proses yang dilakukan untuk mengubah plaintext ke dalam ciphertext  disebut

encryption atau encipherment. Sedangkan proses untuk mengubah ciphertext kembali ke plaintext

disebut decryption atau decipherment. Secara sederhana istilah-istilah di atas dapat digambarkan

sebagai berikut :

Gb. 1. Proses Enkripsi/Dekripsi Sederhana

Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh

cryptographer. Sedang, cryptanalysis adalah suatu ilmu dan seni membuka (breaking) ciphertext dan

orang yang melakukannya disebut cryptanalyst.

Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan

plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan

transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu

atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses

pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan.

Page 7: Ringkasan

Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai

berikut :

EK (M) = C  (Proses Enkripsi)

DK (C) = M  (Proses Dekripsi)

Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan

pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K

sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya.

Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang

digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang

digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan

algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui

algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat

membaca pesan.Suatu penyerangan pasif atas cryptosystem adalah semua metode untuk

mengungkapkan informasi tentang plaintext dan ciphertextnya dengan tanpa mengetahui kunci.

Secara matematis :

Diberikan fungsi F, G, dan H yang terdiri dari n variabel.

Diberikan sistem enkripsi E.

Diberikan suatu distribusi plaintext dan kunci.

Suatu penyerangan atas E dengan menggunakan G dengan mengasumsikan F membagi H

dengan probabilitas p adalah suatu algoritma A dengan sepasang input f,g dan satu buah output h

sedemikian hingga terdapat probabilitas p atas h = H(P1, …, Pn), jika kita memiliki f = F(P1, …, Pn)

dan g = G(EK(P1), …, EK(Pn)). Perlu diperhatikan bahwa probabilitas ini tergantung pada distribusi

vektor-vektor (K,P1,…,Pn).

Penyerangan akan merupakan suatu trivial bila terdapat probabilitas paling sedikir p untuk h = H(P 1,

…, Pn) jika f = F (P1,…,Pn) dan g = G (C1,…,Cn). Di sini C1,…,Cn terletak pada ciphertext yang

mungkin, dan tidak memiliki hubungan tertentu dengan P1,…,Pn. Dengan kata lain, suatu serangan

akan merupakan trivial bila ia tidak benar-benar menggunakan enkripsi EK(P1),…,EK(Pn).

2.2.2 Algoritma Pembangkitan Kunci

1. Ambil dua buah bilangan prima sembarang, x dan y

2. Hitung n = xy dan m = (x-1)*(y-1).

Page 8: Ringkasan

3. Pilih bilangan integer e, 1 < e < m, yang relative prima terhadap m yaitu FPB(e,m) = 1.

4. Hitung eksponen rahasia d, 1 < d < m, sehingga ed ≡1 (mod m).

5. Kunci publik adalah (n,e) dan kunci privat adalah (n,d). Nilai x, y dan m juga harus

dirahasiakan.

n disebut juga modulus

e disebut juga public exponent atau exponent enkripsi

d disebut juga secret exponent atau exponent dekripsi

2.5 Fungsi Hash

Hash function atau fungsi hash adalah suatu cara menciptakan“fingerprint” dari berbagai data

masukan. Hash function akan mengganti atau mentranspose-kan data tersebut untuk menciptakan

fingerprint, yang biasa disebut hash value. Hash value biasanya digambarkan sebagai suatu string

pendek yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi

heksadesimal).Suatu hash function adalah sebuah fungsi matematika, yang mengambil sebuah

panjang variabel string input, yang disebut pre-image dan mengkonversikannya ke sebuah string

output dengan panjang yang tetap dan biasanya lebih kecil, yang disebut message digest5.Hash

function digunakan untuk melakukan fingerprint pada pre-image, yaitu menghasilkan sebuah nilai

yang dapat menandai (mewakili) pre-image sesungguhnya. Fungsi hash satu arah (one-way hash

function) adalah hash function yang bekerja satu arah, yaitu suatu hash function yang dengan mudah

dapat menghitung hash value dari pre-image, tetapi sangat sukar untuk menghitung pre-image dari

hash value. Sebuah fungsi hash satu arah, H(M), beroperasi pada suatu pre-image pesan M dengan

panjang sembarang, dan mengembalikan nilai hash h yang memiliki panjang tetap. Dalam notasi

matematika fungsi hash satu arah dapat ditulis sebagai:

h = H(M), dengan h memiliki panjang b

Ada banyak fungsi yang mampu menerima input dengan panjang sembarang dan menghasilkan output

dengan panjang tetap, tetapi fungsi hash satu arah memiliki karakteristik tambahan yang membuatnya

satu arah :

Diberikan M, mudah menghitung h.

Diberikan h, sulit menghitung M agar H(M) = h.

Diberikan M, sulit menemukan pesan lain, M', agar H(M) = H(M').

Dalam dunia nyata, fungsi hash satu arah dikembangkan berdasarkan ide sebuah fungsi kompresi.

Fungsi satu arah ini menghasilkan nilai hash berukuran n bila diberikan input berukuran b. Input

Page 9: Ringkasan

untuk fungsi kompresi adalah suatu blok pesan dan hasil blok teks sebelumnya. Sehingga hash suatu

blok M, adalah

hi = f(Mi,hi-1)

dengan

hi = hash value saat ini.

Mi = blok pesan saat ini.

hi-1 = hash value blok teks sebelumnya.

Mi hi

hi-1

Gbr.1.1 Fungsi hash satu arah

Fungsi hash sangat berguna untuk menjaga integritas sebuah data. Sudah banyak algoritma hash

function yang diciptakan, namun hash function yang umum digunakan saat ini adalah MD5 dan SHA

(Secure Hash Algorithm).Algoritma hash function yang baik adalah yang menghasilkan sedikit hash

collision.

Andai m=11 sehingga kita mempunyai sel-sel memori yang beri indeks 0 sampai 10.kita akan

menyimpan data record yang masing-masing mempunyai kunci 15,558,32,132,102 dan 5.pada

mulanya sel-sel memori dalam keadaan kosong.

Keenam data record tersebut masing-masing disimpan pada lokasi yang dihitung sebagai berikut :

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

One-way hashfunction

Page 10: Ringkasan

h(5) = 5 mod 11 = 5

132 102 15 5 558 32

0 1 2 3 4 5 6 7 8 9 10