• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Analisis Dan Perbandingan Penggunaan Metode Pembangkitan Bilangan Prima Fermat Dan Lucas-Lehmer Dalam Kriptografi Elgamal

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1 Kriptografi - Analisis Dan Perbandingan Penggunaan Metode Pembangkitan Bilangan Prima Fermat Dan Lucas-Lehmer Dalam Kriptografi Elgamal"

Copied!
22
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

2.1.1 Pengertian Kriptografi

Kriptografi (cryptography) berasal dari bahasa yunani yaitu “cryptos” yang artinya “secret” (rahasia) dan “graphein” yang artinya “writing” (tulisan). Jadi kriptografi berarti “secret writing” (tulisan rahasia)[2]. Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is the art and science of keeping message secure)[5].

Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai berikut:

“ Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan mengguanakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini.”

Jadi, secara umun dapat diartikan sebagai seni menulis atau memecahkan cipher[12].

(2)

informasi seperi kerahasiaan, integritas data, otentikasi entitas dan otentikasi keaslian data. Kriptografi tidak hanya berarti penyediaan keamanan informasi, melainkan sebuah himpunan teknik-teknik.

Dalam menjaga kerahasiaan data dengan kriptografi, data sederhana yang dikirim (plainteks) diubah ke dalam bentuk data sandi (cipherteks), kemudian data sandi tersebut hanya dapat dikembalikan ke bentuk data sebenarnya hanya dengan menggunakan kunci (key) tertentu yang dimiliki oleh pihak yang sah saja. Tentunya hal ini menyebabkan pihak lain yang tidak memiliki kunci tersebut tidak akan dapat membaca data yang sebenarnya sehingga dengan kata lain data akan tetap terjaga.

2.1.2 Terminologi Kriptografi

Di dalam kriptografi, sering ditemukan istilah-istilah (terminologi). Berikut ini adalah beberapa istilah yang sering digunakan dalam kriptografi yaitu:

a. Pesan, plainteks, dan cipherteks

Pesan adalah data ataupun suatu informasi yang dapat dibaca dan dimengerti maknanya, nama lain dari pesan adalah plainteks. Cipherteks adalah suatu bentuk pesan yang sudah disandikan agar pesan tersebut tidak dapat dibaca oleh pihak lainnya.

b. Pengirim dan penerima

Suatu aktifitas komunikasi data melibatkan pertukaran antara dua entitas, pengirim dan penerima. Pengirim adalah entitas yang mengirimkan pesan kepada entitas lainnya Penerima adalah entitas yang menerima pesan.[7]. c. Enkripsi dan dekripsi

(3)

d. Cipher dan kunci

Algoritma kriptografi disebut juga cipher, yaitu aturan atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk proses enkripsi dan dekripsi.

Untuk menjaga kerahasiaan pengiriman pesan, di dalam kriptografi dibutuhkan suatu kunci (key). Kunci adalah parameter yang digunakan untuk mentransformasi proses enkripsi dan dekripsi pesan. Dengan menggunakan kunci K maka proses enkripsi dan dekripsi dapat ditulis sebagai berikut:

EK(P) = C dan DK(C) = P dan keduanya memenuhi DK(EK(P)) = P.

2.1.3 Jenis Algoritma Kriptografi

Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokan menjadi dua bagian, yaitu: algoritma simetris (algoritma konvensional) dan algoritma asimetris (algoritma kunci publik)[1][7].

2.1.3.1 Algoritma Simetris

Pada sistem algoritma simetris, kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi. Keamanan sistem algoritma simetris terletak pada kerahasiaan kunci. Istilah lain untuk algoritma simetris adalah kriptografi kunci privat (private key cryptography) atau kriptografi konvensional (conventional cryptography).

(4)

Plainteks, P Chiperteks, C Plainteks, P

Kunci Privat, K Kunci Privat, K

Gambar 2.1 Skema Kriptografi Simetri

Kriptografi simetri adalah kunci enkripsi sama dengan kunci dekripsi, yaitu K. Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia (secret-key algorithm)[7].

Kelebihan kriptografi simetri:

1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat;

2. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time;

3. Ukuran kunci simetri relatif pendek;

4. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat;

5. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

Kelemahan kriptografi simetri:

1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasisan kunci ini;

2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.

Contoh untuk algoritma simetris adalah algoritma TwoFish, Rijndael, dan Camellia.

Enkripsi Ek (P) = C

(5)

2.1.3.2 Algoritma Asimetris

Pada sistem algoritma asimetri, kunci untuk proses enkripsi tidak sama dengan kunci untuk proses dekripsi. Istilah lain untuk algoritma kriptografi asimetri adalah kriptografi kunci publik (public key cryptography), sebab kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun, sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan.

Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya sendiri.

Plainteks, P Chiperteks, C Plainteks, P

Kunci Publik, PK Kunci Privat, SK

Gambar 2.2 Skema Kriptografi Asimetri

Kriptografi asimetri adalah kunci enkripsi tidak sama dengan kunci dekripsi. Kriptografi kunci-publik dapat dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukkan surat. Setiap orang dapat memasukkan surat ke dalam kotak surat tersebut, tetapi hanya pemilik kotak yang dapat membuka kotak dan membaca surat di dalamnya karena ia yang memiliki kunci. Keuntungan sistem ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaimana pada sistem kriptografi simetri. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan. Saluran untuk mengirim pesan umumnya tidak aman[7].

Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk

Enkripsi Epk (P) =C

(6)

mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengankriptografi kunci-simetris dimana jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak berkorespondensi.

Meski berusia relatif muda (sejak 1976), kriptografi kunci-publik mempunyai kontribusi yang luar biasa dibandingkan dengan sistem kriptografi simetri. Kontribusi yang paling penting adalah tanda-tangan digital pada pesan untuk memberikan aspek keamanan otentikasi, integritas data, dan nir-penyangkalan. Tanda-tangan digital adalah nilai kriptografis yang bergantung pada isi pesan dan kunci yang digunakan. Pengirim pesan mengenkripsi pesan (yang sudah diringkas) dengan kunci privatnya, hasil enkripsi inilah yang dinamakan tanda-tangan digital. Tanda-tangan digital dilekatkan (embed) pada pesan asli. Penerima pesan memverifikasi tanda-tangan digital dengan menggunakan kunci publik.

Kelebihan kriptografi kunci-publik (asimetri) yaitu:

1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomuniaksi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetri;

2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang;

3. Dapat digunakan untuk mengamankan pengiriman kunci simetri;

4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan.

Kelemahan kriptografi kunci-publik (asimetri):

1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar;

2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks);

3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri;

(7)

5. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block cipher). Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dan sebagainya) yang menjadi dasar pembangkitan kunci.

Contoh algoritma asimetris adalahAlgoritma RivestShamirAdleman (RSA), Digital Signature Algorithm (DSA), dan Algoritma ElGamal.

2.1.4 Tujuan Kriptografi

Tujuan dari kriptografi yang juga merupakan aspek keamanan informasi adalah sebagai berikut:[1]

1. Kerahasiaan (Confidentiality) adalah layanan yang digunakan untuk menjagaisi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi. Ada beberapa pendekatan untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy.

2. Keutuhan data (Data integrity) adalah layanan penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital. Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli.

(8)

berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital menyatakan sumber pesan.

4. Anti-penyangkalan (Non-repudiation) adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.

2.2 Algoritma ElGamal

Algoritma ElGamal merupakan algoritma enkripsi kunci asimetris yang berdasarkan pada pertukaran kunci Diffe-Hellman. Algoritma ini diusulkan Taher Elgamal pada tahun 1984. Keamanan algoritma ini didasarkan pada kesulitan memecahkan masalah logaritma diskrit dalam grup.Sampai akhir tahun 1970, hanya ada sistem kriptografi simetri. Karena sistem kriptografi simetri menggunakan kunci yang sama untuk enkripsi dan dekripsi, maka hal ini mengimplikasikan dua pihak yang berkomunikasi saling mempercayai. Konsep sistem kriptografi kunci-publik ditemukan oleh Diffie dan Hellman yang mempresentasikan konsep ini pada Tahun 1976. Ide dasar dari sistem kriptografi kunci-publik adalah bahwa kunci kriptografi dibuat sepasang, satu kunci untuk enkripsi dan satu kunci untuk dekripsi. Kunci untuk enkripsi bersifat publik (tidak rahasia), sehingga dinamakan kunci publik (public-key). Sedangkan kunci dekripsi bersifat rahasia sehingga dinamakan kunci rahasia (private key atau secret key)[1].

(9)

digunakan adalah bilangan prima yang besar, maka sangat sulit bahkan tidak mungkin menurunkan kunci privat dari kunci publik yang diketahui walaupun serangan dilakukan dengan menggunakan sumberdaya komputer yang sangat besar.

Algoritma ElGamal mempunyai kunci publik berupa tiga pasang bilangan dankunci rahasia berupa satu bilangan. Algoritma ini mempunyai kerugian pada cipherteksnya yang mempunyai panjang dua kali lipat dari plainteksnya. Akan tetapi, algoritma ini mempunyai kelebihan pada enkripsi. Untuk plainteks yang sama, algoritma ini memberikan cipherteks yang berbeda (dengan kepastian yang dekat) setiap kali plainteks dienkripsi. Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plainteks dan menghasilkan blok-blok cipherteks yang kemudian dilakukan proses dekripsi dan hasilnya digabungkan[10].

2.2.1 Proses Pembentukan Kunci

Proses pertama pada algoritma ElGamal adalah pembentukan kunci yang terdiri dari kunci rahasia dan kunci publik. Pada proses ini dibutuhkan sebuah bilangan prima aman p yang digunakan untuk membentuk grup Zp*, elemen primitif α yang

merupakan elemen pembangun grup dan sembarang a Є {0,1,..., p-2}. Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu (p, α , β ), dengan:

β = αa( mod p )……….. ……...(2.1)

dimana a merupakan kunci rahasia dan harus prima[9].

2.2.1.1 Bilangan Prima Aman

(10)

suatu bilangan merupakan bilangan prima yang aman atau tidak dapat dilakukan dengan langkah-langkah berikut:

1. Input bilangan prima p ≥ 5 2. Hitung𝑞= 𝑝−1

2

3. Jika q adalah bilangan prima, maka output (”prima aman”) 4. Jika q komposit, maka output (”bukan prima aman”)

Sementara untuk mengetahui apakah suatu bilangan merupakan bilangan prima atau bukan dapat dilakukan pengujian. Ada pun langkah-langkah tes untuk menentukan suatu bilangan merupakan bilangan prima atau tidak adalah sebagai berikut :

1. Input p ≥ 3 2. b = 1 3. Repeat

3.1b = b+1 3.2c = p mod b 3.3Until c = 0

4. Jika p = b maka output (”prima”)

5. Jika tidak, maka output (”bukan bilangan prima”)

2.2.1.2 Elemen Primitif

Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitif yang merupakan elemen pembangun dari grup Zp. Untuk mencari elemen ini

digunakan p=2q+1, dimana q merupakan bilangan prima. Jika elemen α memenuhi α2

mod p ≠ 1 dan αq mod p ≠ 1, maka α merupakan elemen primitif.

Untuk mengetahui suatu bilangan merupakan elemen primitif atau tidak dapat dilakukan langkah-langkah sebagai berikut :

(11)

2. Hitung 𝑞= 𝑝−1 2

3. Hitung α2mod p dan αq

4. Jika α

mod p.

2

5. Jika α

mod p= 1, maka α bukan elemen primitif.

q

6. Jika tidak terpenuhi dua persyaratan di atas maka q merupakan elemen primitif.

mod p= 1, maka α bukan elemen primitif.

2.2.1.3 Proses Pembentukan Kunci

Langkah-langkah dalam pembentukan kunci sebagai berikut: 1. Input bilangan prima aman p > 255

2. Input sebuah bilangan α yang merupakan elemen primitif dimana αЄ Zp

3. Input sebuah bilangan prima a Є {0,1,..., p-2}

*

4. Hitung β = αa

5. Publikasikan nilai p, α , dan β , serta rahasiakan nilai a. (mod p)

Pihak yang membuat kunci publik dan kunci rahasia adalah penerima, sedangkan pihak pengirim hanya mengetahui kunci publik yang diberikan oleh penerima, dan kunci publik tersebut digunakan untuk mengenkripsi pesan. Jadi, kentungan menggunakan algoritma kriptografi kunci publik adalah tidak ada permasalahan pada distribusi kunci apabila jumlah pengirim sangat banyak serta tidak ada kepastian keamanan jalur yang digunakan.

Misalkan Andi dan Budi saling berkomunikasi. Pada suatu saat, Andi akan mengirimkan pesan rahasia kepada Budi. Oleh karena itu, Budi harus membuat kunci publik dan kunci rahasia. Misalkan Budi ingin membangkitkan pasangan kuncinya. Budi memilih bilangan prima p=2099, α=975 sebagai elemen pembangun dan kunci rahasia a = 225. Andi menghitung:

(12)

Jadi, kunci publik Budi adalah (p = 2099, α = 975 dan β = 469) dan kunci rahasianya 225. Budi mengirimkan pasangan kunci publik (2099, 975, 469) pada Andi dan menyimpan kunci rahasianya.

2.2.2 Proses Enkripsi

Karena pada algoritma ElGamal menggunakan bilangan bulat dalam proses perhitungannya, maka pesan harus dikonversi ke dalam suatu bilangan bulat. Untuk mengubah pesan menjadi bilangan bulat, digunakan kode ASCII (American Standard for Information Interchange). Kode ASCII merupakan representasi numerik dari karakter-karakter yang digunakan pada komputer, serta mempunyai nilai minimal 0 dan maksimal 255. Oleh karena itu, berdasarkan sistem kriptografi ElGamal di atas maka harus digunakan bilangan prima yang lebih besar dari 255 sehingga kode ASCII berkorespondensi 1-1 dengan karakter pesan.

Pada proses enkripsi pesan dienkripsi menggunakan kunci publik ( p, α, β ) dan sembarang bilangan acak rahasia k Є {0,1,..., p-2}. Misalkan m adalah pesan yang akan dikirim. Selanjutnya, m diubah ke dalam blok-blok karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga diperoleh plainteks m1, m2,

m3, ..., mn dengan mi Є {1, 2,..., p-1} dan i =1, 2,..., n.

Proses enkripsi pada algoritma ElGamal dilakukan dengan menghitung

γi= 𝛼𝑘𝑖( mod p )………...

(2.2)

dan

δi=𝛽𝑘𝑖.m (mod p)……….

(2.3)

(13)

Bilangan acak k ditentukan oleh pihak pengirim dan harus dirahasiakan, jadi hanya pengirim saja yang mengetahuinya, tetapi nilai k hanya digunakan saat melakukan enkripsi saja dan tidak perlu disimpan.

Langkah-langkah proses enkripsi:

1. Pesan dipotong-potong ke dalam bentuk blok-blok pesan dengan setiap blok adalah satu karakter pesan.

2. Konversikan masing-masing karakter ke dalam kode ASCII, maka diperoleh plainteks sebanyak n bilangan, yaitu m1, m2, ..., mn.

3. Untuk i dari 1 sampai n kerjakan:

3.1Pilih bilangan acak ki

3.2Hitung γ

dimana 1 < k ≤ p-2

i

3.3Hitung δ

= 𝛼𝑘𝑖(modp)

i = 𝛽𝑘𝑖.mi (mod p)

4. Diperoleh cipherteks ( γi, δi ), dimana i = 1,2,...,n.

Andi memperoleh kunci publik ( p, α, β ) = (2099, 975, 469) . Pada suatu hari, Andi akan mengirimkan pesan rahasia ”ILMU KOMPUTER” kepada Budi. Oleh karena sifat pesan yang rahasia, maka pesan tersebut harus dienkripsi, dan Andi akan mengenkripsi menggunakan kunci publik (2099, 975, 469) yang telah diberikan Budi. Selanjutnya, Andi melakukan proses berikut. Pertama, pesan dipotong-potong menjadi blok-blok karakter dan setiap karakter dikonversi ke dalam kode ASCII. Perhatikan tabel di bawah ini:

Tabel 2.1 Konversi Karakter Pesan Ke Kode ASCII

i Karakter Plainteks mi ASCII

1 I m1 73

(14)

3 M m3 77

i Karakter Plainteks mi ASCII

4 U m4 85

5 <spasi> m5 32

6 K m6 75

7 O m7 79

8 M m8 77

9 P m9 80

10 U m10 85

11 T m11 84

12 E m12 69

13 R m13 82

Berdasarkan Tabel 2.1 sebelumnya, diperoleh banyaknya karakter pada pesan tersebut adalah n = 13. Proses selanjutnya adalah menentukan bilangan acak rahasia dimana ki € {0,1,...,2097}. Kemudian dihitung γi = 975𝑘𝑖.(mod 2099) dan δi =

469𝑘𝑖.mi (mod 2099).

Tabel 2.2 Proses Enkripsi

i mi ki γi= 975𝑘𝑖. ( mod 2099 ) 469𝑘𝑖. . mi( mod 2099

)

1 73 1414 61 121

2 76 1527 228 349

3 77 1843 1480 1836

4 85 2175 2040 1185

5 32 1553 395 980

6 75 2210 908 1582

7 79 1404 534 1676

8 77 2183 1005 209

9 80 1091 1686 521

10 85 1606 1566 1524

11 84 1664 2004 736

(15)

13 82 1127 852 83

Berdasarkan Tabel 2.2, diperoleh cipherteks ( γi , δi

(61, 121) (228, 349) (1480, 1836) (2040, 1185)

), i =1, 2,...,13 sebagai berikut :

(395, 980) (908, 1582) (534, 1676) (1005,209) (1686, 521) (1566, 1524) (2004, 736) (474, 1734) (852, 83).

Selanjutnya, Andi mengirimkan cipherteks ini kepada Budi.

Salah satu kelebihan algoritma ElGamal adalah bahwa suatu plainteks yang sama akan dienkripsi menjadi cipherteks yang berbeda-beda. Hal ini dikarenakan pemilihan bilangan k yang acak. Akan tetapi, walaupun cipherteks yang diperoleh berbeda-beda, tetapi pada proses dekripsi akan diperoleh plainteks yang sama, seperti dijelaskan berikut ini.

2.2.3 Proses Dekripsi

Setelah menerima cipherteks ( γ, δ ), proses selanjutnya adalah mendekripsikan cipherteks menggunakan kunci publik p dan kunci rahasia a. Dapat ditunjukkan bahwa plainteks m dapat diperoleh dari cipherteks menggunakan kunci rahasia a.

Diberikan (p, α, β) sebagai kunci publik dan a sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks ( γ ,δ ), maka:

m = ( γa)-1.(mod p)………... (2.4)

(16)

Diketahui kunci publik ( p, α, β ) dan kunci rahasia a pada algoritma ElGamal. Diberikan cipherteks ( γ,δ ) dari persamaan (2.1), (2.2), dan (2.3) diperoleh bahwa:

Langakah-langkah proses dekripsi: 1. Input cipherteks.

2. Potong cipherteks ke dalam blok-blok cipherteks. 3. Untuk i dari 1 sampai n kerjakan:

5. Konversikan masing-masing bilangan m

n

1, m2, ..., mn ke dalam karakter sesuai

dengan kode ASCII-nya, kemudian hasilnya digabungkan kembali.

Contoh:

Andi telah mengirimkan cipherteks kepada Budi. Cipherteks yang diperoleh Budi adalah sebagai berikut:

(17)

Budi mempunyai kunci publik p = 2099 dan kunci rahasia a = 225 Selanjutnya, untuk mendapatkan pesan asli yang dikirimkan Andi, Budi melakukan perhitungan sebagai berikut:

Tabel 2.3 Proses Dekripsi

i γi δi γi1873( mod 2099 ) δiγi1873( mod 2099 ) Karakter mi

1 61 121 920 73 I

2 228 349 1588 76 L

3 1480 1836 1556 77 M

4 2040 1185 1054 85 U

5 395 980 1268 32 <spasi>

6 908 1582 1567 75 K

7 534 1676 1156 79 O

8 1005 209 1547 77 M

9 1686 521 1378 80 P

10 1566 1524 1241 85 U

11 2004 736 1928 84 T

12 474 1734 1587 69 E

13 852 83 1139 82 R

Berdasarkan perhitungan pada Tabel 2.3, Andi mengetahui pesan rahasia yang dikirimkan oleh Budi, yaitu ”ILMU KOMPUTER”.

2.3 Metode Pembangkit Bilangan Prima Fermat

Bilangan prima adalah bilangan yang tepat memiliki dua faktor yaitu 1 dan bilangan itu sendiri. Semua anggota bilangan prima adalah bilangan ganjil kecuali 2.

Contoh bilangan prima: {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, …}.

(18)

232.582.657

Salah satu perhitungan matematis yang digunakan untuk menghasilkan bilangan prima adalah metode Fermat yang dapat dirumuskan sebagai berikut:

-1

Bila p adalah bilangan prima maka berlaku

a p-1 mod p = 1

untuk

1 a < p

Di mana p adalah bilangan bulat dan a adalah urutan bilangan yang lebih kecil dari p[11].

Contoh penerapan metode Fermat adalah sebagai berikut: a. Bila p = 4

Jadi, angka 4 bukan merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 4 terdapat nilai yang 0.

(19)

45-1 mod 5 = 44

Jadi, angka 5 merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 5 adalah 1.

mod 5 = 1

c. Bila p = 28

Maka 1 a< 28, didapat a = {1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20,21,22,24,25,26,27}

Untuk angka yang besar dengan jumlah nilai a yang banyak, disini hanya diambil 4 angka sebagai contoh. Jadi, menurut pengecekan menggunakan metode Fermat didapat bahwa angka 28 bukan bilangan prima karena didapat hasil yang tidak semuanya 1.

mod 28 = 1

d. Bila p = 29

Maka 1 a< 28, didapat a = {1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20,21,22,24,25,26,27,28}

Untuk angka yang besar dengan jumlah nilai a yang banyak, disini hanya diambil 4 angka sebagai contoh. Jadi, angka 29 merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat hasil dari urutan bilangan yang lebih kecil dari 29 adalah 1.

mod 29 = 1

e. Bila p = 2099

(20)

a p-1

Untuk angka yang besar dengan jumlah nilai a yang banyak, disini hanya diambil beberapa angka sebagai contoh. Jadi, angka 2099 merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat hasil dari urutan bilangan yang lebih kecil dari 2099 adalah 1.

mod 2099 = 1

2.4 Metode Pembangkit Bilangan Prima Lucas-Lehmer

Metode pembangkit bilangan prima Fermat adalah salah satu metode pembangkit bilangan prima yang awalnya dikembangkan oleh Édouard Lucas pada tahun 1856 dan kemudian diperbaiki oleh Lucas pada tahun 1878 dan Derrick Henry Lehmer pada 1930-an. Metode Lucas-Lehmer ini hanya bisa dilakukan pada bilangan yang termasuk dalam bilangan Mersenne. Kebanyakan bilangan-bilangan prima besar diketahui merupakan bilangan prima Mersenne. Bilangan prima Mersenne terbesar, sekaligus bilangan prima terbesar yang diketahui saat ini memiliki 9.808.358 digit angka. Bilangan Mersenne dapat dirumuskan dengan:

Mp = (2p-1)

Di mana Mp adalah bilangan prima Mersenne dan p adalah bilangan prima[6].

(21)

1. p = 2 M2 = (22-1)M2

Berdasarkan contoh di atas dapat disimpulkan bahwa tidak semua bilangan prima termasuk dalam bilangan prima Mersenne. Bilangan prima yang termasuk dalam bilangan Mersenne adalah 3, 7, 31, 127, 8191, 131071,… dan bilangan 2047 termasuk bilangan prima tanpa atribut bilangan prima Mersenne.

Metode Lucas-Lehmer memiliki algoritma sebagai berikut: 1. Tentukan nilai awal s := 4;

2. Untuk i from 3 to p do s := s2

3. Jika s = 0, return prime; otherwise return composite[4]. – 2 mod Mp;

Contoh penerapan metode Lucas-Lehmer adalah sebagai berikut: a. p = 3 MP = (23-1)MP

dari 3 hingga 3, maka lakukan: = 7

dari 3 hingga 7, maka lakukan: = 127

sn = s2

s

– 2 mod Mp

(22)

= (42

= 14 mod 127 – 2) mod 127

= 14 s2 = (142

= 194 mod 127 – 2) mod 127

= 67 s3 = (672

= 4487 mod 127 – 2) mod 127

= 42 s4 = (422

= 1762 mod 127 – 2) mod 127

= 111 s5 = (1112

= 12319 mod 127 – 2) mod 127

= 0

Gambar

Gambar 2.1  Skema Kriptografi Simetri
Gambar 2.2 Skema Kriptografi Asimetri
Tabel 2.1 Konversi Karakter Pesan Ke Kode ASCII
Tabel 2.2 Proses Enkripsi
+2

Referensi

Dokumen terkait

Penelitian ini telah mengukur tekanan darah pada penderita hipertensi di PSTW unit Abiyoso tahun 2012 yang diadakan pada kelompok eksperimen yang diberikan jus tomat selama 7

Dalam praktik jual beli roti rijekan yang ada di Pasar kebakkramat peneliti dapat menarik kesimpulan bahwa, faktor yang mempengaruhi maraknya jual beli roti rijekan di

Judul Skripsi : “ Pengaruh Kerja Sama Tim, Motivasi dan Komunikasi terhadap Kinerja Pegawai pada Puskesmas Desa Lampur ”.. Pembimbing Utama

Pembinaan mutu bibit yang telah dilakukan dalam sapi potong barulah dalam tahapan mempertahankan kemurnian darah (kualitatif) pada sapi Ongole, Bali, dan Madura disamping

Seperti halnya dengan Asas legalitas yang tergambarkan dalam ungkapan “ nullum delictum nulla poena sine praevia lege poenali” yang kemudian menjadi asas dan merupakan

Selanjutnya apabila kita berbi- cara dengan berbahasa dengan tumpuan pada la- wan tutur misalnya agar orang yang kita ajak berbicara tidak tersinggung agar lawan bicara

Maklumat ini hanya khusus untuk bahan tertentu dan boleh menjadi tidak sah untuk bahan tersebut apabila ia digunakan bersama dengan sebarang bahan lain atau dalam sebarang

Naik turunnya nilai tukar mata uang atau kurs valuta asing bisa terjadi dengan berbagai cara, yakni bisa dengan cara dilakukan secara resmi oleh pemerintah suatu negara yang