• Tidak ada hasil yang ditemukan

BAB 2 TINJAUAN PUSTAKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 TINJAUAN PUSTAKA"

Copied!
27
0
0

Teks penuh

(1)

BAB 2

TINJAUAN PUSTAKA

2.1 Pengertian Kriptografi

Kriptografi adalah merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data serta otentikasi (Munir, kriptografi, 2008 ). Kriptografi adalah proses penggunaan berbagai teknik dan atau ilmu dan seni untuk menjaga keamanan pesan.

2.2 Pengenalan Kriptografi

Kriptografi (cryptography) berasal dari bahasa yunani: “ cryptos” yang artinya “secret” (rahasia) dan “graphein” yang artinya “writing” (tulisan). Jadi Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is the art and science of keeping message secure). (Munir, 2008) Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Kata “seni” didalam definisi diatas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia, pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan. Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan lebih dari 4000 tahun yang lalu, diperkenalkan oleh orang-orang mesir lewat hieroglyph. Jenis tulisan ini bukanlah bentuk standard untuk menulis pesan. Dikisahkan pada zaman romawi kuno, pada suatu saat Julius Caesar ingin mengirimkan pesan rahasia kepada seorang jenderal di medan perang. Pesan tersebut harus di kirim melalui seorang kurir. Karena pesan tersebut mengandung rahasia, Julius Caesar tidak ingin pesan rahasia tersebut sampai terbuka di jalan. Julius Caesar

(2)

kemudian memikirkan bagaimana mengatasinya. Kemudian mengacak pesan tersebut hingga menjadi suatu pesan yang tidak dapat dipahami oleh siapapun terkecuali oleh Jenderalnya saja. Tentu Sang Jenderal telah diberi tahu sebelumnya bagaiman cara membaca pesan teracak tersebut yang dilakukan Julius Caesar adalah mengganti semua susunan alfabet dari a, b, c yaitu a menjadi b, b menjadi c dan c menjadi d dan seterusnya hingga kalimat tersebut tidak bisa dibaca siapapun.

Dalam arti lain, cryptography adalah seni dan ilmu dalam mengamankan pesan. Dalam dunia kriptografi, pesan disebut plaintext atau cleartext. Proses untuk menyamarkan pesan dengan cara sedemikian rupa untuk menyembunyikan isi aslinya disebut enkripsi. Pesan yang telah dienkripsi disebut ciphertext. Proses pengembalian

sebuah ciphertext ke plaintext disebut dekripsi.

Gambar 2.1 Konsep Dasar dari Enkripsi dan Dekripsi

Cryptographer adalah orang yang mempraktekkan ilmu kriptografi, sedangkan

cryptoanalysts adalah orang yang mempraktekkan kriptanalisis, seni dan ilmu dalam memecahkan ciphertext.

2.3 Konsep Kriptografi

Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:

a. Confidentiality (kerahasiaan) yaitu layanan yang ditujukan untuk menjaga agar isi pesan yang di kirimkan tidak dapat dibaca oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak yang memiliki ijin). Umumnya hal ini dilakukan dengan cara menyandikan pesan menjadi ciphertext sehingga sulit dibaca dan dipahami. Misalnya: “BELAJAR KRIPTOGRAFI” disandikan menjadi

(3)

“676525024912432374087133368665572917926466924334 “. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan kebentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut ciphertext atau sering juga disebut kriptogram. Ciphertext harus dapat ditransformasikan kembali menjadi plaintext semula agar pesan yang diterima bisa dibaca.

b. Data integrity (keutuhan data) yaitu layanan yang mampu menjamin pesan masih asli/utuh atau belum pernah dimanipulasi selama masa waktu pengiriman. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi adanya manipulasi pesan tersebut oleh pihakpihak yang tidak berhak antara lain penghapusan, pengubahan atau penambahan data yang tidak sah oleh pihak lain.

c. Authentication (otentikasi) yaitu layanan yang berhubungan dengan identifikasi. Baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi maupun mengidentifikasi kebenaran sumber pesan. Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang di kirim melalui saluran komunikasi juga harus di otentikasi asalnya

2.4. Sistem Kriptografi

Sistem kriptografi seperti yang ditunjukkan pada gambar 2.1. terdiri dari 5 bagian yaitu : (Sadikin, 2012)

1. Plaintext

Yaitu pesan atau data dalam bentuk aslinya dapat terbaca. Plaintext merupakan masukan bagi algoritma enkripsi

2. Secret Key

Secret Key juga merupakan masukkan bagi algoritma enkripsi serta merupakan nilai yang bebas terhadap text asli dan menentukan hasil keluaran algoritma enkripsi. Untuk selanjutnya istilah kunci rahasia sebagai padanan kata secret ke.

3. Ciphertext

Cipher text adalah keluaran algoritma enkipsi. Cipher text dapat dianngap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan

(4)

cipher text yang kelihatan acak. Selanjutnya digunakan istilah teks sandi sebagai padanan kata ciphertext

4. Algoritma enkripsi

Algoritma enkripsi memiliki 2 masukan teks asli dan kunci rahasia.Algoritma melakukan tranformasi terhadap teks asli sehingga menghasilkan teks sandi.

5. Algoritma Dekripsi

Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.

Kunci rahasia dibangkitkan oleh pembangkit kunci dan dikirim melalui saluran aman ke pihak penyandi (encryptor) maupun pemulih sandi (descriptor). Teks sandi dikirim melalui saluran umum sehingga ada pihak ketiga yang dapat membaca teks sandi tersebut. IRA M Algoritma Enkripsi RINA M Algoritma Dekripsi Saluran Publik Sumber Kunci Saluran Aman C RIKO

(5)

Gambar 2.2. Sistem Kriptografi

2.5Kriptografi Modern

Untuk kondisi yang lebih aman, semua algortima kriptografi modern menggunakan kunci atau key. Kunci ini dapat berisi banyak sekali peluang nilai. Batas nilai yang mungkin untuk sebuah kunci disebut keyspace. Dalam kriptografi yang berbasiskan kunci, terdapat dua buah bentuk umum algoritma, yaitu Algoritma Simetrik (Symetric Algorithm) dan Algoritma Asimetrik (Asymetric Algorithm).

Perkembangan algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner. Muara dari kriptografi modern adalah menyediakan keamanan pesan di dalam jaringan computer. Adapun diagram blok kriptografi modern bisa dilihat pada Gambar 2.3.

Gambar 2.3. Blok kriptografi modern

(6)

Algoritma simetrik adalah suatu algoritma yang simetris dengan menggunakan sebuah kunci yang sama baik dalam melakukan enkripsi maupun dekripsi. Apabila kunci yang digunakan dalam melakukan enkripsi dan dekripsi berbeda, maka menyebabkan keluaran terakhir dari algoritma kacau, sehingga tidak berhasil mengembalikan bentuk

ciphertext ke plaintext semula. Karena kunci ini memegang peranan yang sangat penting dalam melakukan enkripsi maupun dekripsi, maka algoritma simetrik ini disebut juga dengan algoritma kunci rahasia (Secret key algorithm). Algortima ini mengharuskan pengirim dan penerima pesan untuk menyetujui kunci yang akan digunakan dan keamanan dari algoritma ini tergantung dari kunci yang digunakan, sehingga kunci ini harus dirahasiakan. Jika kunci ini disebarkan berarti semua orang dapat melakukan enkripsi dan dekripsi pesan dalam sistem tersebut.

Dalam notasi matematika, proses algoritma kunci rahasia digambarkan sebagai berikut:

Ek(P) = C Dk(C) = P

Ek dan Dk adalah fungsi enkripsi dan dekripsi yang menggunakan kunci sama.

Gambar 2.4 Proses Enkripsi dan Dekripsi pada algoritma Kunci Rahasia Sumber : Kriptografi, Dony Ariyus, Andi Publisher

Algoritma Simetrik dapat dibagi menjadi dua kategori.yaitu algoritma stream

(stream algorithm) atau stream ciphers, yang beroperasi pada setiap bit dari plaintext, dan algoritma blok (block algorithms) atau cipher blok (block ciphers), yang beroperasi pada kelompok-kelompok bit.

(7)

Untuk plaintext yang panjangnya lebih besar dari n-bit perlu dipilih mode operasi untuk menentukan cara enkripsi dan dekripsi tersebut. Ada beberapa pilihan mode operasi yang bisa diterapkan antara lain Electronic Codebook (ECB), Cipher-Block Chaining (CBC), Cipher Feedback (CFB) dan Output FeedBack (OFB).

2.5.2 Algoritma asimetrik

Berbeda dengan algoritma kunci rahasia, algoritma kunci umum dirancang sedemikian rupa sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi, dan bahkan kunci yang digunakan untuk dekripsi tidak dapat dikalkulasikan atau diturunkan dari kunci enkripsi. Algoritma ini disebut algoritma kunci umum (public key algorithm) karena kunci enkripsi yang digunakan boleh disebarluaskan, berarti setiap orang dapat melakukan enkripsi, namun hanya pihak yang memegang kunci dekripsi saja yang dapat melakukan dekripsi.

Beberapa istilah dalam algoritma kunci umum yaitu,

1. Kunci umum, yaitu kunci yang diberikan atau disebarkan kepada publik sehingga semua orang akan tahu.

2. Kunci privat, yaitu kunci yang tetap disimpan oleh pemilik kunci.

Dalam notasi matematika, proses algoritma kunci publik digambarkan sebagai berikut, Ek1(P) = C

Dk2(C) = P

Ek1  fungsi enkripsi dengan kunci publik Dk2  fungsi dekripsi dengan kunci privat

(8)

Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada proses enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekripsi.

2.6. Hibrid Cryptosystem

Hybrid cryptosystem merupakan gabungan antara cryptosystem yang memakai

asymmetric cryptosystem dan cryptosystem yang memakai symmetric cryptosystem.

(Schneier, 1996)

Cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya, cryptosystem terdiri dari suatu algoritma seluruh kemungkinan plaintext, ciphertext, dan kunci.

Algoritma hibrid adalah algoritma yang memanfaatkan dua tingkatan kunci yaitu kunci rahasia (simetris) – yang disebut juga session key (kunci sesi) – untuk enkripsi data dan pasangan kunci rahasia – kunci public untuk pemberian tanda tangan digital serta melidungi kunci simetriss. (Ariyus, 2008)

Pada sistem hibrid ini enkripsi/dekripsi pesan menggunakan kriptografi kunci simetris, sedangkan kunci simetris dienkripsi/dekripsi dengan menggunakan kunci publik. Kunci simetris (yang disebut juga kunci sesi) dibangkitkan oleh salah satu pihak dan mengenkripsi pesan dengan kunci tersebut. Selanjutnya kunci sesi dienkripsikan dengan kunci publik penerima lalu dikirim bersama-sama dengan pesan yang sudah dienkripsi. Penerima mula-mula mendekripsikan kunci sesi dengan kunci privatnya, lalu mendekripsikan pasan dengan kunci sesi tersebut.

Kriptografi hibrid sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data oleh algoritma simetris dan kemudahan transfer kunci menggunakan

(9)

algoritma asimetris. Hal ini mengakibatkan peningkatan kecepatan tanpa mengurangi kenyamanan serta keamanan.

2.7.Manajemen Kunci

Aspek manajemen kunci sangat penting dalam aplikasi kriptografi. Manajemen kunci yang tidak baik dapat berakibat fatal. Proses pembuatan kunci sangat penting dan sebaiknya proses ini benar acak. Sumber acak (entropi) dapat diambil dari proses fisika acak seperti proses radio-aktif. Sumber acak dapat juga diambil dari berbagai kejadian (events) yang muncul secara acak. Aplikasi kriptografi dapat menggunakan

random number generator yang disediakan operating system untuk pembuatan kunci, akan tetapi sebaiknya ini dilakukan hanya jika random number generator yang disediakan cukup acak. (Kromodimoeljo, 2010)

Distribusi kunci secara aman juga penting untuk keperluan pengamanan komunikasi. Sebagai contoh, untuk komunikasi yang diamankan dengan en- kripsi simetris, tentunya kedua mitra dalam komunikasi harus menggunakan kunci yang sama. Kunci ini dapat dibuat oleh satu pihak dan dikirim secara aman ke mitra komunikasi. Pengiriman kunci dapat dilakukan out-of-band yaitu menggunakan jalur khusus diluar jalur normal komunikasi, atau dilakukan in-band melalui jalur normal menggunakan sarana public key cryptography. Alternatif dari pengiriman kunci adalah key agreement, dimana kedua mitra berpartisipasi membuat kunci tanpa dapat diketahui oleh pihak ketiga. Keyagreement juga menggunakan sarana public key cryptography. Penyimpanan kunci jelas sangat penting untuk pengamanan sistem enkripsi secara menyeluruh. Kunci yang disimpan secara sembrono akan mudah untuk \dicuri" oleh pihak yang tidak diinginkan. Solusi untuk penyimpanan kunci beraneka ragam, mulai dari penggunaan hardware khusus dimana semua proses kriptografi dilakukan didalam hardware khusus dan kunci enkripsi disimpan dan tidak dapat keluar dari hardware, sampai dengan penyimpanan dalam file yang dienkripsi menggunakan password atau

passphrase. Karena praktis, metode terakhir sangat populer, yang berarti pengamanan password menjadi penting.

(10)

Pengamanan password juga mempunyai beberapa masalah, dari masalah manusia seperti menulis password di secarik kertas yang ditempelkan ke meja kerja, sampai dengan masalah sistem seperti program yang menyimpan pass- word dalam bentuk teks.

Pada dasarnya masalah akses terhadap sesuatu yang penting seperti kunci enkripsi menjadi masalah authentication dan tren saat ini mengarah pada mul- tiple factor authentication. Kebenaran identititas seseorang atau sesuatu dinilai dari gabungan berbagai atribut yang cukup unik seperti sidik jari, pengetahuan password, dan kepemilikan sesuatu yang unik lainnya.

2.8.Konsep Acak

Sifat acak adalah (randomness) dalam kriptografi adalah sifat bebas dari kecendrungan sehingga tidak mudah untuk diterka. Dari segi matematika, jika sudau variabel dianggap bersifat acak, maka teori probabilitas dapat digunakan untuk memprediksi “kelakuan” dari variabel tersebut, antara lain variabel akan memenuhi beberapa kreteria statistic. Metode statistika dapat digunakan, berdasarkan apa yang sudah terjadi, untuk menilai apakah variabel memenuhi kreteria statistic untuk variabel acak. Akan tetapi jika criteria statistik terpenuhi, belum tentu variabel benar acak, karena sesuatu yang deterministic seperti pseudo-random number generator

dapat memenuhi kreteria statistic untuk variabel acak. Jadi criteria statistic bukan merupakan definisi untuk variabel acak. (Kromodimoeljo, 2010)

Sifat acak dapat dikaitkan dengan urutan event, dimaka event berikutnya dalam suatu urutan tidak mudah untuk diterka berdasarkan apa yang sudah lalu. Sifat ini diperlukan dalam pembuatan kunci (key generator) supaya kunci dekripsi tidak mudah untuk diterka. Sifat acak juga dikaitkan dengan tidak adanya korelasi (atau korelasi yang mendekati nol). Dalam kriptografi, tidak diinginkan adanya korelasi antara naskah asli dengan naskah acak atau kunci dengan naskah acak. Ini untuk mempersulit analisa seperti analisa frekuensi (frequency analysis) atau analisa lebih canggih seperti linear cryptanalysis atau differential cryptanalysis.

(11)

Meskipun tidak sebenarnya acak, sesuatu yang pseudo-random berguna dan digunakan dalam kriptografi, tetapi harus dikombinasikan dengan sesuatu yang benar acak. Sebagai contoh, pseudo-random number generator dikombinasikan dengan sumber entropi yang benar acak sebagai seed, untuk mendapatkan sesuatu yang praktis bersifat random number generator.

2.9.Pembangkit Bilangan Acak Semu

Pembangkit Bilangan Acak-Semu atau yang biasa dikenal dengan singkatan PRNG (Pseudo-Random Number Generator) adalah sebuah algoritma untuk menghasilkan suatu urutan bilangan yang terlihat acak, namun sebenarnya urutan tersebut tidak benar-benar acak karena urutan tersebut ditentukan oleh suatu nilai awal. Urutan bilangan yang terlihat acak ini sangat penting karena bisa dimanfaatkan untuk suatu parameter bagi percobaan atau simulasi dan juga menjadi pusat pake praktik kriptografi. (Pratama, 2011)

Sebuah pembangkit bilangan acak-semu bisa dimulai dengan memberikan nilai umpan. Pembangkit bilangan acak-semu ini akan selalu memberikan urutan bilangan yang sama jika diberikan nilai umpan yang sama, dengan jumlah bilangan yang dihasilkan bergantung kepada besar nilai umpan yang diukur dengan satuan bit.

Keuntungan dari penggunaan pembangkit bilangan acak-semu ini adalah efisien, algoritma ini mampu menghasilkan banyak angka dalam waktu singkat, dan tertentu, urutan yang digunakan bisa dimunculkan kembali dengan mudah jika nilai awalnya diketahui. Efisien adalah karakteristik yang sangat baik jika aplikasi kita membutuhkan banyak angka. Tertentu juga akan berguna jika kita perlu mengulang suatu urutan bilangan.

Dalam kriptografi, bilangan acak banyak dibutuhkan antara lain untuk: 1. Session dan message keys dalam cipher simetris seperti triple-DES atau Blowfish. 2. Umpan (seeds) untuk fungsi-fungsi yang membangkitkan nilai-nilai matematis

seperti bilangan prima besar pada RSA dan ElGamal.

3. Dikombinasikan dengan password untuk mengacaukan program untuk menebak password secara offline.

(12)

4. Initialization Vectors untuk enkripsi dengan mode cipher block chaining. 5. Nilai acak untuk berbagai skema tanda tangan digital, seperti DSA. 6. Random challenges pada protokol otentikasi seperti Kerberos

Kesemua contoh di atas menggunakan suatu nilai acak dengan ukuran tertentu. Acak disini dalan artian acak secara probabilitas. Selain acak, biasanya juga menggunakan ukuran yang cukup besar, misalnya 512 bit. Ukuran yang besar dan keacakan ini membuat kriptanalis tidak akan berfikir untuk melakukan brute-force. Karena, akan memakan waktu yang sangat lama, bisa mencapai ratusan atau ribuan tahun bahkan dengan super komputer paling hebat.

Berikut ini beberapa contoh PRNG pembangkit bilangan acak semu : 1. Linear Congruential Generators (LCG)

2. Blum Blum Shub

3. Lagged Fibonacci generators

4. Linear feedback shift registers

5. Generalised feedback shift registers

6. Mersenne twister 7. Lehmann

8. Well Equidistributed Long-period Linear

2.10. Algoritma Lehmann

Bilangan P dan a akan dibangkitkan secara acak menggunakan program , dimana bilangan P adalah bilangan prima, sedangkan bilangan a adalah bilangan bulat yang merupakan { } Oleh karena itu, bilangan P yang didapat secara acak tersebut harus diuji kembali keprimaannya. Dalam penelitian ini, penulis menggunakan teori Lehmann untuk menguji keprimaannya nilai P tersebut. Dalam teori Lehmann dinyatakan bahwa untuk setiap bilangan prima P dan setiap bilangan a yang kurang dari P dan tidak habis dibagi oleh P, maka berlaku :

(13)

2.11. Probabilistic Encryption

Probabilistic encryption adalah penggunaan keadaan acak pada sebuah algoritma kriptografi, sehingga ketika mengenkripsi pesan yang sama beberapa kali, secara umum akan menghasilkan cipher text yang berbeda. Bentuk probabilistic encryption

secara khusus digunakan pada algoritma kriptografi kunci public. Ide probabilistic encryption pertama kali ditemukan oleh Shafi Gold Wasser dan Silvia Micali.

Inti dari metode probabilistic encryption adalah untuk meneliminasi kebocoran informasi dengan kriptografi kunci public, karena metode ini menerapkan konsep acak dalam proses enkripsinya sehingga setiap kali proses enkripsi terhadap pesan yang sama akan menghasilkan nilai cipher text yang berbeda. Hal ini menyebabkan cryptanalyst tidak dapat menerka bentuk pesan dari ciphertext yang diperolehnya, karena setiap kali proses percobaan akan selalu menghasilkan yang berbeda-beda.

2.12. El-Gamal

Algoritma ElGamal ditemukan pada tahun 1985 oleh ilmuwan Mesir yaitu Taher ElGamal. Algoritma ElGamal merupakan algoritma berdasarkan konsep kunci publik. Algoritma ini pada umumnya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga bisa digunakan untuk enkripsi dan dekripsi. Algoritma kriptografi kunci publik ElGamal merupakan algoritma blok chipper yaitu algoritma yang melakukan proses enkripsi pada blok-blok plainteks yang kemudian menghasilkan blok-blok chipertext, yang nantinya blok-blok chipertext tersebut akan didekripsi kembali dan hasilnya kemudian digabungkan menjadi plainteks semula. Keamanan algoritma ElGamal terletak pada kesulitan perhitungan logaritma diskrit pada modulo prima yang besar, sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sulit untuk dipecahkan. Algoritma ini memiliki kelebihan yaitu pembangkitan kunci yang menggunakan logaritma diskrit dan metode enkripsi dekripsi yang menggunakan proses komputasi yang besar sehingga hasil enkripsinya berukuran dua kali dari ukuran semula. Kekurangan algoritma ini adalah membutuhkan resource yang besar karena chipertext yang dihasilkan dua kali panjang

(14)

plaintext serta membutuhkan processor yang mampu untuk melakukan komputasi yang besar untuk perhitungan logaritma perpangkatan besar. (Madhur, Yadav, dan Vijay, 2012)

Dari beberapa banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma El-gamal juga termasuk algoritma yang populer. Algoritma ini melakukan pemfaktoran bilangan yang sangat besar. Oleh karena alasan tersebut El-gamal dianggap aman. Untuk membangkitkan dua kunci, dipilih dua bilangan prima acak yang besar. (Ariyus, 2008).

Enkripsi ElGamal merupakan salah satu skema enkripsi yang memanfaatkan pengacakan dalam proses enkripsi. Lainnya termasuk enkripsi McEliece (x 8.5), dan Goldwasser-Micali (x 8.7.1), dan Blum-Goldwasser (x8.7.2) enkripsi probabilistik. Skema enkripsi deterministik seperti RSA juga dapat menggunakan pengacakan untuk menghindari beberapa serangan (misalnya, lihat x8.2.2 (ii) dan x8.2.2 (iii)). Ide dasar di balik enkripsi acak adalah dengan menggunakan pengacakan untuk keamanan kriptografi dari proses enkripsi melalui satu atau lebih metode berikut - Meningkatkan ukuran efektif dari ruang pesan plaintext. Proses enkripsi menggunakan kunci publik (p,g,y) dan sebuah bilangan integer acak k (k {0,1,..., p − 1}) yang dijaga kerahasiaannya oleh penerima pesan. Untuk setiap karakter dalam pesan dienkripsi dengan menggunakan bilangan k yang berbeda-beda. Satu karakter yang direpresentasikan dengan menggunakan bilangan bulat ASCII akan menghasilkan kode dalam bentuk blok yang terdiri atas dua nilai (a, b). (Rashmi Singh, Shiv Kumar, 2012)

a) Ambil sebuah karakter dalam pesan yang akan dienkripsi dan transformasi karakter tersebut ke dalam kode ASCII sehingga diperoleh bilangan bulat m. Plainteks tersebut disusun menjadi blok-blok m1, m2, …, sedemikian hingga setiap blok merepresentasikan nilai di dalam rentang 0 (nol) sampai p-1. b) Memilih bilangan acak k, yang dalam hal ini 0 < k < p-1, sedemikian hingga k

relative prima dengan p-1.

c) Hitung nilai a dan b dengan persamaan berikut :

(15)

(mod p) …..………(4) b = yk

m (mod p) ...……..(5)

d) Diperoleh cipherteks untuk karakter m tersebut dalam blok (a,b)

e) Melakukan proses di atas untuk seluruh karakter dalam pesan termasuk karakter spasi.

Dekripsi dari cipherteks ke plainteks menggunakan kunci rahasia a yang disimpan kerahasiaanya oleh penerima pesan. Teorema :

Diberikan (p,g, y) sebagai kunci public dan x sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks (a, b), maka

m = b/a x mod p ... (4) dengan M adalah plainteks. Di mana nilai

(ax)-1= r –a = rp -1-a mod p. … (5)

a. Ambil sebuah blok cipherteks dari pesan yang telah dienkripsikan pengirim. b. Dengan menggunakan a yang dirahasiakan oleh penerima, hitung nilai

plainteks dengan menggunakan “persamaan (4)” dan “persamaan (5)”.

Gambar 2.6. Pembentukan Kunci Key

Pseudo Random sequence

Plaintext Bitstream Cipertext

Plaintext stream

Ciphertext stream Pseudo Random sequence

1 1 1 1 1 1 1 1 0 0 0 0 0

0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0

(16)

Secara garis besar algoritma el-gamal mempunya langkah-langkah pembentukan kunci sebagai berikut :

a. Bilangan prima, p (bersifat public atau tidak rahasia)

b. Bilangan acak, g (dimana g < p dan bersifat public atau tidak rahasia) c. Bilangan acak, x (dimana x < p dan bersifat private atau rahasia) d. Bilangan acak, k (dimana k < p dan bersifat private atau rahasia) e. m merupakan plainteks dan bersifat private/rahasia

f. a dan b merupakan pasangan chiperteks hasil enkripsi bersifat private atau tidak rahasia.

Proses Pembentukan kunci Algoritma ElGamal Proses pembentukan kunci merupakan proses penentuan suatu bilangan yang kemudian akan digunakan sebagai kunci pada proses enkripsi dan dekripsi pesan. Kunci untuk enkripsi dibangkitkan dari nilai p, g, y sedangkan kunci untuk dekripsi terdiri dari nilai x, p. Masing-masing nilai mempunyai persyaratan yang harus dipenuhi.

Langkah-langkah dalam pembuatan kunci adalah sebagai berikut : 1. Pilih sembarang bilangan prima p, dengan syarat p > 255. 2. Pilih bilangan acak g dengan syarat g < p.

3. Pilih bilangan acak x dengan syarat 1 ≤ x ≤ p – 2. 4. Hitung y = g^x mod p.

Kunci public nya adalah y, g, p sedangkan kunci private nya adalah x. nilai y, g, dan p tidak dirahasiakan sedangkan nilai x harus dirahasiakan karena merupakan kunci privat untuk mendekripsi plainteks. (Rashmi Singh, Shiv Kumar, 2012).

2.13. Algoritma DES

2.13.1.Proses enkripsi algoritma DES

Data Encrytion Standar (DES) merupakan teknik atau algoritma kriptografi penyandian pesan yang menggunakan teknik blok simetris, Algoritma DES juga memerlukan sebuah kunci yang panjang bloknya 64 bit di setiap blok DES digunakan

(17)

untuk mengamankan data pada perangkat lunak dan keras negara tersebut. Dan berikut desain input-output algoritma DES.

Gambar 2.7. DES input-output

Sumber : ( ZHONG PuCha & BAO WanSu,2010 )

Dapat dilihat bahwa ada dua input untuk fungsi enkripsi, yaitu plaintext dengan panjang 64-bit dan kunci dengan panjang 56-bit. Seperti pada gambar 2.8

Gambar 2.8. Tahapan proses enkripsi DES Sumber :Munir, 2008

Untuk mengenkripsi data dengan menggunakan algoritma DES, dimulai dengan membagi bit dari teks tersebut kedalam blok-blok dengan ukuran blok sebesar 64-bit, yang kemudian disebut blok plaintext. Ukuran efektif dari kunci rahasia (secret key) K

(18)

adalah k = 56 bit, masukan kunci (input key) K dispesifikasikan sebagai 64-bit kunci (key), dan 8-bit (bit 8, 16,…,64) digunakan sebagai parity bit. Parity bit tersebut akan mereduksi ukuran efektif key dari 64-bit menjadi 56-bit. Proses enkripsi dimulai dengan 16 iterasi blok ciphertext (disebut juga round) dengan menggunakan initial permutation (IP) dan diakhiri dengan invers initial permutation (IP-1).(ZHONG PuCha & BAO WanSu, 2010)

2.13.2. Proses dekripsi algoritma DES

Algoritma yang digunakan untuk enkripsi dan dekripsi sebenarnya sama, hanya perbedaannya pada dekripsi pengiriman subkey yang terbalik. Untuk proses Dekripsi yang berdasarkan algoritma enkripsi dengan menggunakan kunci yang sama tetapi tetapi dengan membalikkan key schedule, yang dimulai dari K16,K15,…,K1. Efek dari

IP-1 dibatalkan oleh IP pada proses dekripsi, membebaskan (R16, L16); dengan menggunakan round-1 sebagai input. Operasi pada bagian kiri (L) adalah:

L0 f(R0, Ki) Maka : R16 ⊕⊕f(L16, K16)

Setelah : L16 = R15 dan R16 = L15 ⊕f(R15, K16) Ini sama dengan :

L15 f(R

15, K16) ⊕f(R15, K16) = L15 Jadi hasil dekripsi pada round-1 adalah (R

15, L15). Penggunaan key schedule pada dekripsi DES, subkey K

1,..,K16 dibuat berdasarkan algoritma. Setelah K16 telah dibuat, nilai asli dari register 28-bit C dan D dimasukkan kembali (masing-masing di rotasi 28-bit). Untuk membuat subkey K

1,…,K16, caranya adalah dengan menukarkan rotasi

left-shift dengan right-shift dan merubah nilai shift v1 = 0.Untuk melihat algoritma yang sama dalam urutan terbalik dapat dilihat pada Gambar 6 [STALL95]. Pada gambar tersebut dapat dilihat bahwa nilai berikutnya dari proses dekripsi adalah sama dengan nilai yang sama dari proses enkripsi dengan dua bagian dari nilai yang ditukarkan (swap). Dengan cara lain, dianggap bagian enkripsi yang ke-i dinotasikan dengan Li || Ri (Li dikonkantinasi dengan Ri). Kemudian untuk input (16-i) yang sama dari taraf dekripsi adalah Ri || Li.

(19)

Gambar. 2.9. Proses Enkripsi dan Dekripsi Algoritma DES Sumber :Munir, 2008

Pada Gambar 2.9. setelah iterasi terakhir dari proses enkripsi, output saling ditukarkan, maka input untuk bagian IP-1 adalah R

16 || L16. Outputnya merupakan

ciphertext. Kemudian ciphertext tersebut digunakan sebagai input untuk algoritma DES. Langkah pertama adalah dengan memasukkan ciphertext melalui IP, yang akan menghasilkan jumlah 64-bit : L

d 0 || R

d

0. Juga diketahui bahwa IP merupakan invers dari IP -1 , maka : Ld 0 || Rd0 = IP(ciphertext) Ciphertext = IP -1 (R 16 || L16) , L d 0 || R d 0 = IP(IP -1 (R 16 || L16)) = R16 || L16

Input pada tingkat pertama dari proses dekripsi sama dengan 32-bit ditukarkan dengan output bagian ke-16 dari proses enkripsi. Pertama, dengan mengingat bahwa

(20)

proses enkripsi adalah berdasarkan persamaan (Ld

0 || Rd0 = IP(ciphertext)). Maka pada proses dekripsi : Ld

1 = R d 0 = L16 = R15, R d 1 = L d 0 f(Rd 0, K16) = R16 f(R15,K16) R d

1 = [L15 f(R15,K16)] f(R15,K16) Karena fungsi XOR mempunyai sifat :

[A B] C = A [B ⊕⊕C], D D = 0, E 0 = E

Dapat dilihat bahwa output bagian terakhir dari proses dekripsi adalah R

0 || L0. Penukaran 32-bit dilakukan, maka input untuk bagian IP-1 adalah L

0 || R0, tetapi : IP –1 (L 0 || R0) = IP -1 (IP(plaintext)) = plaintext

Dengan demikian berdasarkan persamaan diatas, maka plaintext yang asli dapat diperoleh. (ZHONG PuCha & BAO WanSu, 2010)

2.14. Triple DES

2.14.1.Sejarah Triple DES

Pada akhir tahun 1960, IBM memulai suatu riset Lucifer proyek yang dipimpin oleh Horst Feistel untuk komputer kriptografi. Proyek ini berakhir pada tahun 1971 dan Lucifer yang pertama kali dikenal sebagai blok cipher pada pengoperasian pada blok 64 bit dan menggunakan ukuran kunci 128 bit. Setelah IBM mengembangkan suatu sistem enkripsi yang dikomersilkan, maka Lucifer disebut dengan DES (Data Encryption Standard), proyek ini dipimpin oleh Walter Tuchman, hasil dari riset ini merupakan versi dari Lucifer yang bersifat menentang pemecahan algoritma kriptografi. (Kurniawan, Yusuf, Kriptografi. Keamanan Internet dan jaringan Komunikasi, 2004.)

Pada tahun 1973, National Burean of Standard (NBS), sekarang menjadi National Institute of Standard and Technology (NIST), mengeluarkan proposal cipher standar untuk nasional. IBM menyampaikan hasil risetnya tentang proyek DES dan mengajukan sebagai kandidat untuk cipher standar nasional. NBS meminta agar National Security Agency (NSA) untuk melakukan evaluasi keamanan algoritma dan menentukan apakah pantas menjadi standar pemerintahan. Pada bulan November

(21)

untuk menggunakan atas nama US Government Communication. Undang-undang atas penggunaan DES yaitu PUB 46 diterbitkan pada 15 Januari 1977.

Algoritma DES merupakan salah satu proposal yang terbaik pada tahun 1977, tidak ada kritik yang datang dari kalangan ilmuan tentang panjang kunci yang digunakan dan S-Box yang merupakan bagian internal dari DES. Selama 20 tahun algoritma DES dipakai sebagai standar nasinal. Pada tahun 1990 panjang kunci DES dianggap terlalu pendek dan pada tahun 1998, 70 ribu PC di internet berhasil membobol satu kunci DES dalam tempo waktu 96 hari, tahun 1999 dalam tempo 22 hari. Dengan alasan tersebut, maka pada tahun 2001 NIST mengganti DES menjadi Triple DES sebagai standar dari algoritma DES.

Tahap pertama, plainteks yang diinputkan dioperasikan dengan kunci eksternal pertama (K1) dan melakukan proses enkripsi dengan menggunakan algoritma DES. Sehingga menghasilkan pra-cipherteks pertama. Tahap kedua, pra-cipherteks pertama yang dihasilkan pada tahap pertama, kemudian dioperasikan dengan kunci eksternal kedua (K2) dan melakukan proses enkripsi atau proses dekripsi (tergantung cara pengenkripsian yang digunakan) dengan menggunakan algoritma DES. Sehingga menghasilkan pra-cipherteks kedua. Tahap terakhir, pra-cipherteks kedua yang dihasilkan pada tahap kedua, dioperasikan dengan kunci eksternal ketiga (K3) dan melakukan proses enkripsi dengan menggunakan algoritma DES, sehingga menghasilkan cipherteks (C).

Gambar. 2.10. Algoritma Triple DE S(NIST, 2004) Sumber :Munir, 2008

(22)

Keterangan pada gambar :

1. Dilakukan tiga kali DES dengan cara seri; hasil enkripsi DES1 menjadi masukan DES2 dan hasil enkripsi DES2 menjadi masukan DES3.

2. DES1, DES2, dan DES3 memiliki tiga kunci dengan kemungkinan: a. Ketiga kunci berlainan sama sekali.

b. Kunci 1 dan kunci 2 berlainan; kunci 1 = kunci 3 c. Ketiga kunci sama

3. Hasil enkripsi DES3 merupakan cipherteks yang dikirimkan.

2.14.2.Pemilihan kunci

Ada dua pilihan untuk pemilihan kunci eksternal algoritma Triple, yaitu:

Jumlah kunci yang digunakan pada Triple DES adalah 3 buah dengan panjang masing-masing kunci adalah 8 karakter.

Ada 3 kemungkinan pemilihan kunci yang digunakan: 1. K1 ≠ K2 ≠ K3

2. K1 = K3 ≠ K2 3. K1 = K2 = K3

Pemilihan kunci biasanya didasarkan atas metode Triple DES mana yang akan digunakan:

1. Metode EEE atau EK3( EK2( EK1 (P))). 2. Metode EDE atau EK3( DK2( EK1 (P))).

Untuk metode pertama maka ketiga kemungkinan kunci dapat digunakan dikarenakan proses yang terjadi adalah Enkripsi sebanyak 3 kali, meskipun kunci yang paling aman adalah K1 ≠ K2 ≠ K3 dikarenakan panjang kunci adalah 168 bits (setelah mengalami proses permutasi PC-1) .

Untuk metode kedua maka kemungkinan yang dapat dipakai adalah pilihan pertama dan kedua. Pilihan ketiga, di mana semua kunci adalah sama, tidak dapat digunakan karena akan mengubah Triple DES menjadi DES. Dapat dilihat pada persamaan berikut:

(23)

maka DK2( EK1 (P)) = P, dan didapat EK3(P)

Pada proses pembentukan kunci internal ini dapat dilakukan sebelum atau bersamaan dengan proses enkripsi. Karena ada 16 putaran, dibutuhkan kunci internal sebanyak 16 buah, yaitu K1, K2, K3, ..., K16. Kunci internal dibangkitkan dari kunci eksternal yang panjangnya 64 bit atau 8 karakter.

Gambar 2.11 Flowchart Pembentukan Kunci DES

Proses pembentukan kunci pada algoritma 3DES adalah sebagai berikut. Misalkan: Input key = “ALGORITM” Input key dalam biner:

(24)

Input key dalam biner dijadikan masukkan ke Matriks permutasi kompresi sehingga menghasilkan 56 bit

00000000111111110000000001010001110011001110101010100000 Pecah menjadi 2 (dua) bagian:

C0 : 0000000011111111000000000101 D0 : 1000111001100111010101010000

Selanjutnya dilakukan pergeseran bit ke kiri atau Left Shift terhadap C0 dan D0. Pergeseran bit dilakukan sepanjang 1 (satu) atau 2 (dua) bit bergantung pada tiap putaran. Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 2.1:

Tabel 2.1 Jumlah Pergeseran Bit

Putaran, i Jumlah pergeseran bit

1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 1 10 2 11 2 12 2 13 2 14 2 15 2 16 1 Keterangan: Ci = LeftShift(Ci-1) Di = LeftShift(Di-1) Ci adalah nilai C pada putaran ke-i Di adalah nilai D pada putaran ke-i

2.14.3.Perancangan sistem

Perancangan dimulai dengan pembuatan diagram konteks, berupa gambaran system penerapan algoritma Triple secara garis besar.

(25)

Gambar 2.12 Diagram Konteks Triple DES Sumber : Munir, 2008

Contoh file yang akan dienkripsi dan didekripsi berikut ini diambil dari file teks dan kunci yang digunakan adalah saling bebas.

(K1 ≠ K2 ≠ K3 ≠ K1) yaitu: Kunci 1 : Enkripsi

Kunci 2 : Keamanan Kunci 3 : Dekripsi

Pada dasarnya algoritma yang digunakan sama, hanya pada Triple DES dikembangkan dengan melakukan enkripsi dengan implementasi algoritma DES sebanyak tiga kali. Triple DES memiliki tiga buah kunci yang berukuran 168-bit (tiga kali kunci 56-bit dari DES). Pada algoritma Triple DES dibagi menjadi tiga tahap, setiap tahapnya merupakan implementasi dari algoritma DES.

Tahap pertama, plainteks yang diinputkan dioperasikan dengan kunci eksternal pertama (K1) dan melakukan proses enkripsi dengan menggunakan algoritma DES. Sehingga menghasilkan pra-cipherteks pertama.

Tahap kedua, pra-cipherteks pertama yang dihasilkan pada tahap pertama, kemudian dioperasikan dengan kunci eksternal kedua (K2) dan melakukan proses enkripsi atau proses dekripsi (tergantung cara pengenkripsian yang digunakan) dengan menggunakan algoritma DES. Sehingga menghasilkan prs-cipherteks kedua. Tahap

(26)

terakhir, pra-cipherteks kedua yang dihasilkan pada tahap kedua, dioperasikan dengan kunci eksternal ketiga (K3) dan melakukan proses enkripsi dengan menggunakan algoritma DES, sehingga menghasilkan cipherteks (C), untuk algoritma Triple DES adalah sebagai berikut:

Li= Ri – 1

Ri= Li – 1  f(Ri – 1, Ki).

Bagian R disubstitusikan pada fungsi ekspansi panjangnya menjadi 48-bit kemudian di XOR-kan dengan kunci internal yang sudah diproses sebelumnya pada proses pembangkitan kunci (pada putaran pertama menggunakan kunci internal pertama, dan seterusnya). Hasil XOR kemudian disubstitusikan pada S-box yang dikelompokkan menjadi 8 kelompok, masing-masing 6-bit hasilnya menjadi 4-bit. Kelompok 6-bit pertama menggunakan S1, kelompok 6-bit kedua menggunakan S2, dan seterusnya. Setelah proses S-box tersebut panjangnya menjadi 32-bit.

Kemudian disubstitusikan lagi pada matriks permutasi P-box, kemudian di-XOR-kan dengan bagian L. Hasil dari XOR tersebut disimpan untuk bagian selanjutnya. Sedangkan untuk bagian Ldiperoleh dari bagian Ryang sebelumnya. Proses tersebut dilakukan 16 kali.Setelah 16 putaran selesai, bagian Ldan Rdigabungkan dan disubstitusikan pada matriks permutasi awal balikan (invers initial permutation) atau IP-1, hasilnya merupakan cipherteks 64-bit.

2.14.4 Differential Attack

Differential cryptanalysis adalah metode yang menganalisa hubungan dari perbedaan atas pasangan plaintext dengan pasangan ciphertext. Perbedaan ini dapat digunakan untuk mencari kemungkinan kunci yang digunakan dan menentukan kunci mana yang paling cocok. Metode ini dapat diterapkan pada pasangan plaintext yang memiliki pola perbedaan yang sama terhadap pasangan ciphertext. Untuk DES, tingkat perbedaan yang digunakan adalah menggunakan metode XOR terhadap pasangan plaintext yang dipilih. (Biham & Shamir, 1990)

Notasi yang digunakan adalah sebagai berikut:

(27)

2. (P, P*) adalah pasangan plaintext yang akan dilakukan operasi XOR untuk mendapatkan nilai Pl di mana Pl = P ⊕ P*.

3. (T, T*) adalah pasangan plaintext yang akan dilakukan operasi XOR untuk mendapatkan nilai Tl di mana Tl = T ⊕ T*.

Dengan karateristik dari S-box ada 642 = 4,096 kemungkinan dari masukan (x, x*). Besar dari x, x* dan xl = x ⊕ x* adalah 6 bit. Besar dari y = S(x), y* = S(x*), dan yl = y ⊕ y* = S(x) ⊕ S(x*) adalah 4 bit.

Gambar

Gambar 2.1  Konsep Dasar dari Enkripsi dan Dekripsi
Gambar 2.2. Sistem Kriptografi
Gambar 2.4  Proses Enkripsi dan Dekripsi pada algoritma Kunci Rahasia  Sumber : Kriptografi, Dony Ariyus, Andi Publisher
Gambar 2.5 Proses Enkripsi dan Dekripsi pada algoritma Kunci Umum
+5

Referensi

Dokumen terkait

Target dari penelitian yang penulis lakukan adalah membandingkan metode certainty factor dengan dempster shafer dalam sistem pakar mendiagnosa penyakit hernia

Aplikasi pencatatan data ini merupakan sebuah aplikasi yang dapat mencatat data produksi, maintenance dan penjualan minyak berbasis web, yang bertujuan untuk memudahkan

Dari hasil analisis dan perancangan yang telah dilakukan, telah berhasil dibuat suatu Sistem Informasi Penjualan Rokok Pada PR1. Syihab Aji Putra Berbasis

Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan, maka dapat disimpulkan bahwa gaya kepemimpinan dan ketidakapastian lingkungan memiliki pengaruh terhadap

Hasil dari penelitian ini, menunjukkan bahwa subjek belum mampu melakukan interaksi sosial dalam kelas inklusi, baik dengan guru maupun dengan temannya saat dalam kelas,

Bertolak dari pandangan tersebut, maka kompetensi gerak yang akan dibekalkan kepada anak-anak dalam pendidikan jasmani tidak semata-mata untuk mempersiapkan anak agar berkompeten

Menerima, mengolah dan memproses data yang dilengkapi dengan hasil laporan sebagai bahan untuk pemrosesan selanjutnya terkait organisasi dan ketatalaksanaan di lingkungan Universitas