BAB 2 LANDASAN TEORI 2.1 Kriptografi - Kombinasi Algoritma Rsa Dan Elgamal Dalam Implementasi Algoritma Kriptografi

BAB 2 LANDASAN TEORI

2.1 Kriptografi

  Kriptografi (cryptography ) berasal dari Bahasa Yunani: “cryptós” artinya “secret

  (rahasia), sedangkan “gráphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia) (Munir, 2006).

  Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta otentikasi data ( Menezes et all, 1996).

  Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, 2009). Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai berikut: “Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan menggunakan 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”.

2.1.1 Aspek Keamanan Informasi

  Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan informasi, yaitu sebagai berikut (Menezes,1996) : a) Kerahasiaan ( Confidentiality )

  Kerahasiaan layanan yang digunakan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.

  b) Integritas Data ( Data Integrity)

  Integritas data adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman.

  c) Otentikasi ( Authentication )

  Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication). Dua pihak yang saling berkomunikasi harus dapat mengontentikasi satu sama lain sehingga dapat memastikan sumber pesan.

  d) Nirpenyangkalan (non-repudiation)

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

2.1.2 Terminologi Kriptografi

  Terdapat beberapa terminologi atau istilah yang sering ditemukan dalam Kriptografi, beberapa diantaranya adalah (Munir, 2006) : a)

  Pesan, Plainteks, dan Cipherteks Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas (cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran telekomunikasi, dsb) atau yang disimpan di dalam media perekaman (kertas, storage, dsb). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra (image), suara/bunyi (audio), dan video, atau berkas biner lainnya.

  Agar pesan tersembunyi dari pihak lain, maka pesan disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Pesan dapat terbaca bila chiperteks dikembalikan lagi menjadi plainteks.

  b) Pengirim dan Penerima

  Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin (komputer), kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya (contoh: Alice berkomunikasi dengan Bob), sedangkan di dalam jaringan komputer mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM berkomunikasi dengan komputer server di bank). Pengirim tentu menginginkan pesan dapat dikirim secara aman, yang ia yakini bahwa pihak lain tidak dapat membaca isi pesan yang ia kirim. Solusinya adalah dengan cara menyandikan pesan menjadi cipherteks.

  c) Enkripsi dan dekripsi

  Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498-2). Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2). Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pada pesan tersimpan. Istilah encryption of data in motion mengacu pada enkripsi pesan yang ditransmisikan melalui saluran komunikasi, sedangkan istilah enrypton of data at-

  rest mengacu pada enkripsi dokumen yang disimpan di dalam storage. Contoh encryption of data in motion adalah pengiriman nomor PIN dari mesin ATM ke

  komputer server di kantor bank pusat. Contoh encryption of data at-rest adalah enkripsi file basis data di dalam hard disk.

  d) Algoritma Kriptografi dan kunci

  Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan dechipering , atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.

  Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan

  deciphering . Kunci (key) adalah bagian dari fungsi matematika tersebut, yang memastikan hasil dekripsi pesan dapat mengembalikan pesan asal.

  e) Sistem Kriptografi

  Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci.

  f) Penyadap

  Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak- banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain penyadap: enemy,

  adversary, intruder, interceptor, bad guy .

  g) Kriptanalisis dan kriptologi

  Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan chiperteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Jika seorang kriptografer (cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi maupun kriptanalisis keduanya saling berkaitan. Gambar 2.1 memperlihatkan pohon kriptologi.

  

KRIPTOLOGI

KRIPTOGRAFI KRIPTANALISIS Ilmu dan seni untuk menjaga Ilmu untuk memecahkan chipertext kemananan pesan

Gambar 2.1 Kriptografi dan Kriptanalisis adalah cabang ilmu Kriptologi

2.1.3 Sejarah Kriptografi

  Kriptografi mempunyai sejarah yang panjang. Informasi yang lengkap mengenai sejarah kriptografi dapat ditemukan di dalam buku David Kahn yang berjudul The Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi mulai dari penggunaan kriptografi oleh Bangsa Mesir 4000 tahun yang lalu (berupa hieroglyph yang tidak standard pada priamid) hingga penggunaan kriptografi pada abad ke-20. Secara historis ada empat kelompok orang yang berkontribusi terhadap perkembangan kriptografi, dimana mereka menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer (termasuk intelijen dan mata-mata), kalangan diplomatik, penulis buku harian, dan pencinta (lovers). Di antara keempat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan di dalam suasana perang membutuhkan teknik enkripsi dan dekripsi yang rumit.

  Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution cipher). Cipher transposisi mengubah susunan huruf-huruf di dalam pesan, sedangkan cipher substitusi mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf lain. Sejarah kriptografi klasik mencatat penggunaan cipher transposisi oleh tentara Sparta di Yunani pada permulaan tahun

  400 SM. Mereka menggunakan alat yang namanya Scytale. Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu (diameter silender menyatakan kunci penyandian). Pesan ditulis secara horizontal, baris per baris. Bila pita dilepaskan, maka huruf-huruf di dalamnya telah tersusun secara acak membentuk pesan rahasia. Untuk membaca pesan, penerima pesan harus melilitkan kembali melilitkan kembali kertas tersebut ke silinder yang diameternya sama dengan diameter silinder pengirim. Sedangkan algoritma substitusi paling awal dan paling sederhana adalah Caesar Cipher, yang digunakan oleh raja Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti setiap karakter di dalam alfabet dengan karakter yang terletak pada tiga posisi berikutnya di dalam susunan alfabet.

  Kriptografi juga digunakan untuk tujuan keamanan. Kalangan gereja pada masa awal agama Kristen menggunakan kriptografi untuk menjaga tulisan relijius dari gangguan otoritas politik atau budaya yang dominan saat itu. Mungkin yang sangat terkenal adalah “Angka si Buruk Rupa (Number of the Beast)” di dalam Kitab Perjanjian Baru. Angka “666” menyatakan cara kriptografik (yaitu dienkripsi) untuk menyembunyikan pesan berbahaya; para ahli percaya bahwa pesan tersebut mengacu pada Kerajaan Romawi.

  Di India, kriptografi digunakan oleh pencinta (lovers) untuk berkomunikasi tanpa diketahui orang. Bukti ini ditemukan di dalam buku Kama Sutra yang merekomendasikan wanita seharusnya mempelajari seni memahami tulisan dengan cipher.

  Pada Abad ke-17, sejarah kriptografi mencatat korban ketika ratu Skotlandia, Queen Mary, dipancung setelah surat rahasianya dari balik penjara (surat terenkripsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh seorang pemecah kode.

Gambar 2.2 Mesin Enigma

  Seperti yang telah disebutkan di atas bahwa kriptografi umum digunakan di kalangan militer. Pada Perang Dunia ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan Enigma. (Gambar 2.2). Mesin yang menggunakan beberapa buah rotor (roda berputar) ini melakukan enkripsi dengan cara yang sangat rumit. Namun Enigma cipher berhasil dipecahkan oleh pihak Sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor yang memperpendek perang dunia ke-2.

  Kriptografi modern dipicu oleh perkembangan peralatan komputer digital. Dengan komputer digital, cipher yang lebih kompleks menjadi sangat mungkin untuk dapat dihasilkan. Tidak seperti kriptografi klasik yang mengenkripsi karakter per karakter (dengan menggunakan alfabet tradisionil), kriptografi modern beroperasi pada string biner.

  Cipher yang kompleks seperti DES (Data Encryption Standard) dan penemuan algoritma RSA adalah algoritma kriptografi modern yang paling dikenal di dalam sejarah kriptografi modern. Kriptografi modern tidak hanya berkaitan dengan teknik menjaga kerahasiaan pesan, tetapi juga melahirkan konsep seperti tanda-tangan digital dan sertifikat digital. Dengan kata lain, kriptografi modern tidak hanya memberikan aspek keamanan confidentiality, tetapi juga aspek keamanan lain seperti otentikasi, integritas data dan nirpenyangkalan

  Sejarah kriptografi paralel dengan sejarah kriptanalisis (cryptanalysis) , yaitu bidang ilmu dan seni untuk memecahkan cipherteks. Kata “kriptanalisis” sendiri relatif masih baru (pertama kali diungkapkan oleh William Friedman pada tahun 1920), namun sebenarnya teknik kriptanalisis sudah ada sejak abad ke-9. Adalah seorang ilmuwan Arab pada Abad IX bernama Abu Yusuf Yaqub Ibnu Ishaq Ibnu As- Sabbah Ibnu 'Omran Ibnu Ismail Al- Kindi, atau yang lebih dikenal sebagai Al-Kindi yang menulis buku tentang seni memecahkan kode. Dalam buku yang berjudul „Risalah fi Istikhraj al-Mu'amma‟ (Manuscript for the Deciphering Cryptographic

  

Messages ), ia menuliskan naskah untuk menguraikan kode-kode. Di dalam buku

  tersebut Al-Kindi memperkenalkan teknik penguraian kode atau atau sandi yang sulit dipecahkan. Ia juga mengklasifikasikan sandi rahasia itu serta menjelaskan ilmu fonetik Arab dan sintaksisnya.

  Yang paling penting lagi, dalam bukunya ini ia mengenalkan penggunaan beberapa teknik statistika untuk memecahkan kode-kode rahasia. Apa yang dilakukan oleh Al-Kindi didalam kriptanalisis dikenal dengan nama teknik analisis frekuensi, yaitu teknik untuk memecahkan cipherteks berdasarkan frekuensi kemunculan karakter di dalam pesan dan kaitannya dengan frekuensi kemunculan karakter di dalam alfabet. Analisis frekuensi dilatarbelakangi oleh fakta bahwa cipher gagal menyembunyikan statistik kemunculan karakter di dalam cipherteksnya. Misalnya, di dalam Bahasa Inggris hur uf “E” adalah huruf paling sering muncul di dalam kalimat kalimat berbahasa Inggris. Jika di dalam cipherteks terdapat huruf yang paling sering muncul, maka kemungkinan besar huruf tersebut di dalam plainteksnya adalah huruf E. Berbagai cipher klasik berhasil dipecahkan dengan teknik analisis frekuensi ini.

  Teknik analisis frekuensi masih digunakan di dalam kriptanalisis modern, tetapi karena cipher semakin rumit, maka pendekatan matematik masih tetap dominan dalam melakukan kriptanalisis. Perkembangan komputer pun ikut membantu kegiatan kriptanilisis. Sejarah kriptanalisis mencatat hasil gemilang seperti pemecahan Telegram Zimmermann yang membawa Amerika Serikat ke kancah Perang Dunia I, dan pemecahan cipherteks dari mesin Enigma ikut andil mengakhiri Perang Dunia II.

2.1.4 Masa Depan Kriptografi

  Masa depan kriptografi akan dipengaruhi oleh perkembangan ilmu dan teknologi terkait. Ilmu dan teknologi yang perkembangannya akan sangat berpengaruh pada masa depan kriptografi termasuk (Kromodimoeljo, 2009):

  a) Matematika

  Tahun 1976, Martin Gardner menulis dalam Scientific American bahwa kunci RSA sebesar 129 digit akan aman untuk sekitar 40 quadrillion tahun. Kurang dari 20 tahun kemudian, tepatnya tahun 1994, kunci tersebut dapat diuraikan menggunakan metode quadratic sieve. Ini adalah contoh bagaimana terobosan di bidang matematika dan algoritma dapat mempengaruhi kriptografi secara signifikan. Dewasa ini metode number field sieve bahkan lebih efisien dibandingkan metode quadratic sieve dalam menguraikan bilangan yang sangat besar (lebih dari 100 digit).

  Perkembangan lain di bidang matematika yang telah mempengaruhi kriptografi adalah penggunaan elliptic curves over finite field. Di masa yang akan datang, kriptografi kunci public yang berdasarkan pada penggunaan elliptic curve berpotensi mengambil alih posisi RSA sebagai algoritma yang dominan. Ini karena dengan kemajuan di bidang hardware, besarnya kunci yang diperlukan akan meningkat. Keunggulan kriptografi kunci publik versi elliptic curve adalah keperluan peningkatan besar kunci tidak sedrastis untuk RSA, seperti terlihat di tabel berikut yang menunjukkan perbandingan besar kunci dalam bit untuk kekuatan yang sama.

Tabel 2.1 Perbandingan Kunci RSA dan ECDS/ECES

  RSA ECDSA/ECES 1024 160 2048 224 3072 256 7680 384 15360 512

  RSA menggunakan kunci 1024 bit kekuatannya ekuivalen dengan kriptografi versi elliptic curve (ECDSA/ECES) menggunakan kunci 160 bit. RSA menggunakan kunci 15360 bit kekuatannya ekuivalen dengan ECDSA/ECES menggunakan kunci 512 bit. Dimana kunci RSA besarnya naik menjadi 15 kali lipat,untuk ECDSA/ECES kunci hanya diperlukan naik menjadi sekitar 3 kali lipat. Ini jelas menunjukkan keunggulan kriptografi kunci publik versi elliptic

  curve .

  Perkembangan dimasa depan dalam matematika dan algoritma, terutama dalam: a. penguraian bilangan bulat, b. komputasi logaritma diskrit, dan c. aljabar abstrak; akan terus mempengaruhi kriptografi.

  b) Hardware

  DES sudah tidak digunakan lagi bukan karena algoritmanya lemah, melainkan besar kunci terlalu kecil. Saat ini kunci sebesar 56 bit dapat dicari secara brute

  force menggunakan hardware kini, dalam waktu yang tidak terlalu lama, dengan ongkos yang relatif murah.

  Dengan perkembangan hardware di masa depan yang akan semakin cepat dan semakin murah, besar kunci untuk enkripsi mungkin perlu ditingkatkan. Saat ini enkripsi simetris dengan kunci 256 bit masih memiliki ruang cukup besar. Akan tetapi bisa saja terjadi terobosan di bidang hardware yang akan mengancam keamanan enkripsi simetris dengan kunci 256 bit. Perkembangan hardware di masa depan tidak akan hanya berfokus pada peningkatan clock speed, namun juga pada peningkatan parallelism. Peningkatan parallelism akan terjadi di berbagai bagian, mulai dari bagian terkecil processor yang dapat dibuat parallel, sampai dengan multi-processor yang mempunyai interkoneksi dengan bandwidth yang sangat tinggi. Jenis parallelism juga akan ada yang bersifat simetris dan akan ada yang bersifat asimetris misalnya menggunakan co-processor. Tentunya peningkatan parallelism di hardware juga akan diiringi dengan peningkatan penggunaan parallelism di software, baik yang secara otomatis dilakukan oleh

  compiler , maupun yang dilakukan secara manual oleh programmer misalnya menggunakan threads.

  Tentunya jika quantum computing menjadi realitas, jenis kriptografi yang dapat digunakan secara efektif akan berbeda dari yang digunakan sekarang.

c) Quantum Computing.

  Sekitar tahun 1982, Richard Feynman sedang mencoba melakukan simulasi interaksi beberapa partikel dalam fisika kuantum. Yang ia temukan adalah, jika menggunakan cara komputasi klasik (ekuivalen dengan penggunaan

  Turing machine ), maka secara umum simulasi memerlukan sumber daya yang

  bersifat eksponensial. Untuk interaksi n partikel, simulasi menggunakan komputasi klasik membutuhkan sumber daya yang eksponensial dalam n, sedangkan alam dapat melakukannya hanya menggunakan n partikel dalam real

  time . Ini mengindikasikan bahwa komputasi klasik bukanlah cara paling efisien

  untuk melakukan komputasi, dan menjadi inspirasi untuk konsep quantum

  computing (komputasi kuantum). Ada komputasi yang mempunyai kompleksitas

  eksponensial dalam komputasi klasik tetapi mempunyai kompleksitas linear dalam komputasi kuantum. Persoalannya adalah bagaimana ini dapat dimanfaatkan.

  Ada dua konsep fisika kuantum yang menjadi dasar dari komputasi kuantum: a.

  Superposition dari quantum states, dan b.

  Quantum entanglement.

2.2 Algoritma Kriptografi

  Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi 2 (dua) jenis yaitu kriptografi kunci-simetri (symmetric-key

  

cryptography ) dan kriptografi kunci-asimetris (asymmetric-key cryptography)

(Munir,2006)(Menezes,1996).

2.2.1 Kriptografi Kunci Simetris (symmetric key cryptography)

  Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Istilah lain untuk kriptografi kunci-simetris adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Sistem kriptografi kunci-simetris

  (atau disingkat menjadi “kriptografi simetris” saja), mengasumsikan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan sistem kriptografi simetris terletak pada kerahasiaan kuncinya.

  Kriptografi simetris merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga tahun 1976. Semua algoritma kriptografi klasik termasuk ke dalam sistem kriptografi simetris.

  Kelebihan algoritma simetris ini adalah proses enkripsi dan deskripsinya yang jauh lebih cepat dibandingkan dengan algoritma asimetris. Sedangkan kelemahan algoritma ini adalah permasalahan distribusi kunci (key distribution). Seperti yang telah dibahas, proses enkripsi dan deskripsi menggunakan kunci yang sama. Sehingga muncul persoalan menjaga kerahasian kunci, yaitu pada saat pengiriman kunci pada media yang tidak aman seperti internet. Tentunya jika kunci ini sampai hilang atau sudah dapat ditebak oleh orang lain (orang yang tidak berhak), maka kriptosistem ini sudah tidak aman lagi.

  Skema yang digunakan dalam algoritma simetris adalah (Munir,2006):

  

Kunci privat, K Kunci privat, K

Cipherteks, C

Enkripsi Dekripsi

Plainteks, P

  Plainteks, P

E K (P) = C D K (C) = P

Gambar 2.3 Skema Kriptogtrafi Simetris

2.2.2 Kriptografi kunci asimetris (asymmetric key cryptography)

  Jika kunci untuk enkripsi tidak sama dengan kunci untuk dekripsi, maka kriptografinya dinamakan sistem kriptografi asimetris (Munir, 2006). Nama lainnya adalah kriptografi kunci-publik (public-key cryptography), sebab kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan (karena itu rahasia). 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 (receiver).

  Hanya penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya sendiri (Gambar 2.4). Contoh algoritma kriptografi kunci- publik diantaranya RSA, Elgamal, DSA, dan sebagainya.

  Skema yang digunakan dalam algoritma asimetris adalah (Munir,2006):

  

Kunci publik, K1 Kunci privat, K2

Cipherteks, C

Enkripsi Dekripsi

Plainteks, P

  Plainteks, P

E (P) = C D (C) = P

K1 K2

Gambar 2.4 Skema Kriptografi Nirsimteri Algoritma asimetris pertama kali dipublikasikan oleh Diffie dan Hellman pada tahun 1976 dalam papernya yang berjudul “New Directions in Cryptography”. Menurut Diffie dan Hellman, ada beberapa syarat yang perlu diperhatikan pada algoritma asimetris, yaitu: a) dan kunci rahasia

  pB

  Penerima B membuat pasangan kunci, yaitu kunci publik k k rB .

  b) Pengirim A dengan kunci publik B dan pesan x, pesan dienkripsi dan diperoleh cipherteks

  = (

  )

  c) Penerima B untuk mendekripsi cipherteks menggunakan kunci privat B untuk mendapatkan kembali pesan aslinya

  =

  d) pB , bagi penyerang akan kesulitan dalam Dengan mengetahui kunci publik k melakukan untuk mendapatkan kunci rahasia.

  e) dan cipherteks c, bagi penyerang akan

  

pB

  Dengan mengetahui kunci publik k mengalami kesulitan untuk mengetahui pesan x.

  Keuntungan sistem ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaimana pada sistem kriptografi simetris. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan. Saluran untuk mengirim pesan umumnya tidak aman.

  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 mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan kriptografi 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 simetris. Kontribusi yang paling penting adalah tanda-tangan digital pada pesan untuk memberikan aspek keamanan otentikasi, integritas data, dan nirpenyangkalan. 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.

  Contoh penggunaan, misalkan jaringan komputer menghubungkan komputer karyawan di kantor cabang dengan komputer manejer di kantor pusat. Seluruh kepala cabang diberitahu bahwa kalau mereka mengirim laporan ke manejer di kantor pusat, mereka harus mengenkripsi laporan tersebut dengan kunci publik manejer (kunci publik menejer diumumkan kepada seluruh kepala cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya manejer yang dapat melakukan dekripsi, karena hanya dialah yang memegang kunci privat. Selama proses transmisi cipeherteks dari kantor cabang ke kantor pusat melalui saluran komunikasi mungkin saja data yang dikirim disadap oleh pihak ketiga, namun pihak ketiga ini tidak dapat mengembalikan cipherteks ke plainteksnya karena ia tidak mengetahui kunci untuk dekripsi.

2.3 Algoritma Rivest Samir Adleman (RSA)

  Tahun 1978, Len Adleman, Ron Rivest dan Adi Shamir yang merupakan peneliti MIT (Massachussets Institute of Technology), mempublikasikan sistem RSA. Semula sistem ini dipatenkan di Amerika Serikat dan seharusnya masa paten habis tahun 2003, akan tetapi RSA Security melepaskan hak paten setelah 20 September 2000.

  Sebetulnya sistem serupa telah dilaporkan oleh Clifford Cocks tahun 1973 meskipun informasi mengenai ini baru dipublikasi tahun 1997 karena merupakan hasil riset yang diklasifikasikan sangat rahasia oleh pemerintah Britania Raya (Clifford Cocks bekerja untuk GCHQ, suatu badan di Britania Raya yang fungsinya serupa

2.3.1 Proses pembangkitan kunci Algortima RSA

  2. Hitung n = p . q (sebaiknya p ≠ q, sebab jika p = q maka n = p

  Kunci privat adalah pasangan ( d, n)

  Kunci publik adalah pasangan (e, n) b.

  ≡ 1 (mod φ(n)) ekivalen dengan e . d = 1 + k φ(n), sehingga secara sederhana d dapat dihitung dengan =

  Perhatikan bahwa e . d ≡ 1 (mod φ(n)). Hitung d hingga d.e

  5. Bangkitkan kunci privat d dengan menggunakan persamaan e.d ≡ 1 mod φ(n).

  4. Pilih kunci publik e, yang relatif prima terhadap φ(n).

  3. Hitung φ(n) = (p - 1) (q - 1).

  sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n).

  2

  1. Pilih dua bilangan prima sembarang, p dan q.

  dengan fungsi NSA di Amerika Serikat), jadi validitas paten patut dipertanyakan karena adanya prior art.

  Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat adalah sebagai berikut:

  (tidak rahasia)

  (rahasia) 7. c = cipherteks

  (rahasia) 6. m = plainteks

  (tidak rahasia) 5. d = kunci dekripsi

  (rahasia) 4. e = kunci enkripsi

  (tidak rahasia) 3. φ(n) = (p - 1) (q - 1)

  (rahasia) 2. n = p . q

  Algoritma RSA memiliki besaran-besaran sebagai berikut: 1. p dan q bilangan prima

  • ( ) Hasil dari algoritma di atas: a.
Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa nilai

  a

  φ(n) ≡ 1 (mod n) yang dalam hal ini: 1. a harus relatif prima terhadap n atau gcd(a,n) = 1.

  2.

  1 )(1-1/p 2 n ), yang dalam hal ini p 1 , p 2 n adalah faktor

  ) … (1-1/p , …, p φ(n) = n(1-1/p prima dari n

  . φ(n) adalah fungsi yang menentukan berapa banyak bilangan 1, 2, 3, …, n yang relatif prima terhadap n.

  2.3.2 Proses Enkripsi Algoritma RSA

  Proses enkripsi pesan sebagai berikut: 1.

  Ambil kunci publik penerima pesan e, dan n.

  2.

  , m 1 , ..., m n-1 sedemikian sehingga

  Nyatakan plainteks m menjadi blok-blok m setiap blok merepresentasikan nilai di dalam selang [0, n - 1]. 3. i dienkripsi menjadi blok c i dengan rumus :

  Setiap bok m =

  2.3.3 Proses Dekripsi Algoritma RSA

  Pada proses dekripsi pesan, dilakukan langkah sebagai berikut: 1. didekripsikan kembali menjadi blok m dengan rumus

  i i

  setiap blok chiperteks c = 2.

  

1 , m

2 , ..., m n-1 menjadi plainteks m.

  menggabungkan kembali blok-blok m

  2.3.4 Flowchart Algoritma RSA

  Berdasarkan urutan langkah-langkah dalam proses pembangkitan kunci, enkripsi dan dekripsi, maka flowchart dari algoritma RSA adalah :

  Algoritma Rivest Samir Adleman Pembangkitan Kunci Enkripsi Dekripsi START Input p, q d plainteks m m = c mod n i i dan e n=pq Pecah plainteks m Gabungkan kembali blok

  φ(n) =(p-1)(q-1) menjadi blok m , m ,m ...., m 1 2, n-1 m , m , m , menjadi plainteks m

1

2 …., m n-1 tdk gcd(e,n)=1, e e<n c = m mod n Plainteks m

i i

ya d = (1+k

  END φ(n))/e kunci publik (e, n) Kunci privat (d, n)

Gambar 2.5 Flowchart Algoritma RSA

2.3.5 Keamanan Algoritma RSA

  Keamanan dari sistem kriptografi RSA adalah didasari problem teori bilangan matematika yaitu Problem dalam faktorisasi bilangan besar menjadi faktor-faktor prima. Proses dekripsi penuh dari sebuah ciphertext RSA dianggap sesuatu hal yang tidak mudah karena problem ini diasumsikan sulit. Belum ada algoritma yang mangkus untuk menyelesaikannya.

  Metode pendekatan yang diyakini dapat menyelesaikan problem RSA saat ini adalah memfaktor nilai n. Dengan kemampuan untuk mengembalikan faktor yang merupakan bilangan prima, sebuah serangan dapat menghitung eksponen rahasia d dari kunci publik (e, n), lalu mendekripsi c menggunakan prosedur standar.

2.4 Algoritma ElGamal

  Algoritma Elgamal dibuat oleh Taher ElGamal pada tahun 1984. Algoritma ini pada umumnya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan deskripsi. ElGamal digunakan dalam perangkat lunak sekuriti yang dikembangkan oleh GNU, program PGP, dan pada sistem sekuriti lainnya.

  Sistem kriptografi ElGamal menjadi populer ketika pengembang open source

  

software untuk kriptografi mencari alternatif dari RSA yang ketika itu patennya masih

  berlaku. Seperti halnya dengan Diffie-Hellman dan DSA, keamanan ElGamal didasarkan atas sukarnya mengkomputasi logaritma diskrit. Akan tetapi berbeda dengan Diffe-Hellman yang khusus dirancang untuk key agreement dan DSA yang khusus dirancang untuk digital signature, ElGamal lebih seperti RSA karena fungsinya untuk enkripsi umum. Besaran-besaran yang digunakan pada algoritma ElGamal adalah: 1.

  (tidak rahasia) p bilangan prima

  2.

  (tidak rahasia) g ( g < p), bilangan acak

  3.

  (tidak rahasia) y (kunci enkripsi)

  4.

  (rahasia) x (x < p), bil. Acak (kunci dekripsi)

  5.

  (rahasia) m (plainteks)

  6.

  (tidak rahasia) a dan b (cipherteks)

2.4.1 Proses Pembangkitan Kunci Algoritma ElGamal

  Proses pembangkitan kunci pada algoritma elGamal dilakukan dengan langkah sebagai berikut :

  1. Pilih sembarang bilangan prima p.

  2. Pilih dua buah bilangan acak, g dan x, dengan syarat g < p dan x < p.

  x 3. mod p.

  Hitung y = g 4. Kunci publik adalah y, kunci rahasia adalah x.

  2.4.2 Proses Enkripsi Algoritma ElGamal

  Langkah-langkah dalam proses enkripsi algoritma ElGamal adalah : 1.

  1 , m 2 p-1 sedemikian sehingga

  , …, m Plainteks m disusun menjadi blok-blok m setiap blok merepresentasikan nilai di dalam rentang 0 sampai p

  • – 1.

  2. Pilih bilangan acak k, yang dalam hal ini 0 ≤ k ≤ p – 1, sedemikian sehingga k relatif prima dengan p

  • – 1. 3. i dienkripsi dengan rumus

  Setiap blok m =

  = Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.

  2.4.3 Proses Dekripsi Algoritma ElGamal

  Untuk mendekripsi a dan b digunakan kunci rahasia d, dan plainteks m diperoleh kembali dengan persamaan =

  Catatlah bahwa karena : ≡ maka,

  ≡ ≡ ≡ ( ) yang berarti bahwa plainteks ditemukan kembali dari pasangan cipherteks a dan b.

  Kemudian menggabungkan lagi blok m

  1, m

  

2

, ….. menjadi plainteks yang utuh.

  2.4.4 Flowchart Algoritma ElGamal Algoritma ElGamal Pembangkitan Kunci Enkripsi Dekripsi

  START Input p, g, Input k; x m = b /a mod p i i i dan x plainteks m N

  N Gabungkan kembali blok g < p 1 m , m ,m ...., m

  ≤ k ≤ p-2 1 2, i

  1 ≤ x ≤ p-2 menjadi plainteks m x Y Y Plainteks m y = g mod p Pecah plainteks m menjadi blok

m , m , m ,

1 2 …., m i kunci publik k ( y, g, p) a = g mod p

i

k END Kunci privat b = y m mod p

i i

(x, p)

Gambar 2.6 Flowchart Algoritma ElGamal

  2.4.5 Keamanan Algoritma ElGamal

  Kekuatan algoritma ini berbasis pada salah satu permasalahan teori bilangan yaitu logaritma diskrit. Masalah logaritma diskrit yang dimaksud adalah jika p adalah bilangan prima dan g dan y adalah sembarangan bilangan bulat, maka carilah x sedemikian sehingga :

  ≡ ( ) Keamanan dari algoritma ElGamal bergantung pada properti dari group besaran

  • – besaran yang digunakan serta skema padding yang digunakan untuk mengenkripsi pesan.

2.5 Konsep Dasar Perhitungan Matematis

  Dalam mempelajari sebuah algoritma kriptografi, sebaiknya kita memahami terlebih dahulu konsep-konsep dasar perhitungan matematis yang akan digunakan dalam suatu algoritma kriptografi tersebut.

  2.5.1 Aritmatika Modular

  Aritmatika modular sering dicontohkan sebagai pemahaman aritmatika jam. Misalkan dalam operasi a mod m berarti menghasilkan sisa jika a dibagi dengan m. Bilangan m disebut modulus atau modulo, dan hasil arimetika modulo m terletak di dalam himpunan {0, 1,

  2, …, n-1} sehingga dapat dinotasikan = sedemikian sehingga: m = n * q + r, 0 ≤ r < n

  2.5.2 Teori Modulo Fast Eksponensial

  Modulo fast eksponensial adalah pemangkatan yang dilakukan bersamaan dengan operasi modulo. Modulo eksponensial sering digunakan dalam bidang kriptografi untuk menghitung hasil enkripsi maupun hasil dekripsi. Adapun yang dihitung dalam dalam modulo Fast eksponensial adalah sisa dimana bila sebuah bilangan x

  y dipangkatkan y, kemudian dibagi dengan n, dengan bentuk umum x mod n.

  Dalam proses enkripsi dan dekripsi, biasanya digunakan y ataupun pangkat

  y

  yang cukup besar, sehingga apabila kita menghitung secara langsung x dapat

  y

  menyebabkan x cukup besar hingga tidak bisa disimpan dalam variable yang ada dalam bahasa pemograman.

  Untuk menyelesaikan masalah ini digunakanlah algoritma big mod dimana

  y

  untuk mencari nilai dari x mod n, dilakukan proses membagi dan mengurangi pangkat yang ada.

  Contoh :

30 Hitung hasil dari 4 mod 10

  Bila pangkatnya genap, maka pangkatnya dibagi 2, jika pangkatnya ganjil, maka pangkat dikurangi 1, sampai dengan pangkatnya menjadi 1.

  30

  4 / \

  15

  15

  4 4  karena sama, yang dicari hanya salah satu saja

   / \

  1

  14

  4

  4

   / \

  7

  7

  4

  4

  / \

  1

  6

  4

  4

   / \

  3

  3

  4

  4

   / \

  1

  2

  4

  4

  / \

  1

  1

  4

  4 Karena pangkat terbawah sudah 1 maka dihitung kembali ke atas sambil dimodulo 10, maka dilakukan perhitungan dari bawah ke atas, seperti yang bisa dilihat berikut ini :

  30

  15

  15

  30

   = (4 4 x4 = 4 x 4 = 16 mod 10 = 6), jadi 4 = 6 / \

  15

  15

  1

  14

  15

  4 4  = (4 x4 = 4 x 6 = 24 mod 10 = 4), jadi 4 = 4

   / \

  1

  14

  7

  7

  14

  4 4  = (4 x4 = 4 x 4 = 16 mod 10 = 6), jadi 4 = 6

   / \

  7

  7

  1

  6

  7

  4 4  = (4 x4 = 4 x 6 = 24 mod 10 = 4), jadi 4 = 4

  / \

  1

  6

  3

  3

  6

  4 4  = (4 x4 = 4 x 4 = 16 mod 10 = 6), jadi 4 = 6

   / \

  3

  3

  1

  2

  3

  4 4  = (4 x4 = 4 x 6 = 24 mod 10 = 4), jadi 4 = 4

   / \

  1

  2

  1

  

1

  2

  4 4  = (4 x4 = 16 mod 10 = 6), jadi 4 = 6

  / \

  1

  1

  4

  4

30 Sehingga didapat 4 mod 10 = 6.

2.5.3 Algoritma Euclidean

  Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar (PBB) dari dua bilangan bulat (Munir, 2006). Algoritma ini didasarkan pada pernyataan bahwa ada dua buah bilangan bulat tak negatif yakni m dan n dimana nilai m n. Adapun tahap-tahap pada algoritma Euclidean adalah:

  1. Jika n = 0 maka m adalah PBB (m, n); stop.

  Kalau tidak (yaitu n ≠ 0) lanjutkan ke langkah nomor 2.

  2. Bagilah m dengan n dan misalkan sisanya adalah r.

  3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah nomor 1.

  Algoritma Euclidean dapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima.

  Contoh : Tentukan gcd (108, 360) Tentukan gcd (45, 13) 360 mod 108 = 36 45 mod 13 = 6 108 mod 36 = 0 (STOP) 13 mod 6 = 1 Jadi gcd (108, 360) = 36 6 mod 1 = 0 (STOP)

  Jadi gcd (45, 13) = 1

2.5.4 Modulo Invers

  

Modulo Invers untuk menghitung balikan dari modulo. Jika a dan m relatif prima dan

m > 1, maka kita dapat menemukan balikan (invers) dari a modulo m. Balikan dari a

  modulo m adalah bilangan bulat sedemikian sehingga

  a

  ≡ 1 (mod m) a

  Bukti:

  Dari definisi relatif prima diketahui bahwa PBB (a, m) = 1, dan terdapat bilangan bulat p dan q sedemikian sehingga:

  pa + qm = 1

  yang mengimplikasikan bahwa

  pa + qm

  ≡ 1 (mod m) karena qm ≡ 0 (mod m), maka

  pa

  ≡ 1 (mod m) Kekongruenan yang terakhir ini berarti bahwa p adalah balikan dari a modulo m.

  Pembuktian di atas juga menceritakan bahwa untuk mencari balikan dari a modulo m, kita harus membuat kombinasi lanjar dari a dan m sama dengan 1. Koefisien a dari kombinasi lanjar tersebut merupakan balikan dari a modulo m.

  Contoh : Tentukan balikan dari 4 (mod 9).

  Karena PBB(4, 9) = 1, maka balikan dari 4 (mod 9) ada. Dari algoritma Euclidean diperoleh bahwa : 9 = 2 .4 + 1

  Susun persamaan di atas menjadi

  • –2 . 4 + 1 . 9 = 1 Dari persamaan terakhir ini kita peroleh
  • –2 adalah balikan dari 4 modulo 9. Periksalah ba
  • –2 . 4 ≡ 1 (mod 9) (9 habis membagi –2 . 4 – 1 = –9)

  2.5.5 Bilangan Prima

  Sebuah bilangan prima adalah bilangan bulat yang besar dari 1 yang hanya mempunyai faktor 1 dan bilangan itu sendiri. Tidak ada bilangan pembagi lainnya. 2 (dua) adalah bilangan prima (Schneier, 1996).

  Contoh : 756839 73, 2521, 2365347734339, dan 2 - 1.

  Kriptografi, khususnya kunci publik biasanya menggunakan bilangan prima yang besar (512 bits atau lebih besar). Bilangan selain bilangan bilangan prima disebut bilangan komposit. Misalnya, 20 adalah bilangan komposit karena 20 dapat dibagi oleh 2, 4, 5, 10, selain 1 dan 20 sendiri.

  2.5.6 Bilangan Relatif Prima

  Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB atau gcd (greatest common divisor ) dari a dan b bernilai 1.

  Contoh :

  20 dan 3 relatif prima sebab PBB (20, 3) = 1. Begitu juga 7 dan 11 relatif prima karena PBB (7, 11) = 1. Tetapi 20 dan 5 tidak relatif prima sebab PBB (20, 5) = 5 ≠ 1.

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

  ma + nb = 1 Contoh :

  Bilangan 20 dan 3 adalah relatif prima karena PBB (20, 3) =1, atau dapat ditulis 2 . 20 + (

  • –13) . 3 = 1 dengan

Dokumen yang terkait

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

23 143 153

Simulasi Pencarian Kunci Privat dengan Algoritma Silver-Pohlig-Hellaman pada Algoritma Kriptografi Elgamal

4 73 104

Analisis Dan Implementasi Kriptografi Elgamal Dan Algoritma LUHN Untuk Keamanan Data Pada Smart Card

1 30 133

BAB 2 LANDASAN TEORI 2.1. Pengertian dan Tujuan Kriptografi - Implementasi Kombinasi Tiny Encryption Algorithm (TEA) Dan Algoritma Least Significant Bit(LSB)Untuk Keamanan File Text

0 1 15

1. libelgamal.py - Simulasi Pencarian Kunci Privat dengan Algoritma Silver-Pohlig-Hellaman pada Algoritma Kriptografi Elgamal

0 1 24

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Simulasi Pencarian Kunci Privat dengan Algoritma Silver-Pohlig-Hellaman pada Algoritma Kriptografi Elgamal

1 2 14

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Proteksi Sistem Manajemen Kartu Mifare untuk Perangkat Keamanan Sepeda Motor Menggunakan Algoritma AES

0 1 19

BAB 2 LANDASAN TEORI 2.1. Kriptografi Kriptografi (cryptography) berasal dari Bahasa Yunani: “cryptos” (rahasia) dan - Sistem Tanda Tangan Digital Pada Pesan Teks Menggunakan Algoritma Kriptografi Kunci Publik Rsa

0 0 39

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Perancangan Aplikasi Kombinasi Algoritma Steganografi Least Significant Bit dan Alagoritma Kriptografi Kanpsack Merkle-Hellman pada Citra Bitmap

0 0 17

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Implementasi Kombinasi Beaufort Cipher Dan Affine Cipher Pada Three-Pass Protocol Untuk Pengamanan Data

1 1 11