BAB 2 LANDASAN TEORI
2.1 Sejarah Kriptografi
Kriptografi memiliki sejarah yang panjang. Penulisan rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphics untuk tulisan mereka agar tidak mudah dimengerti oleh orang yang tidak diharapkan. Hieroglyphics diturunkan dari bahasa Yunani yakni hieroglyphica yang berarti ukiran rahasia. Hieroglyphcs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah digunakan. (Dony, 2009)
Gambar 2.1 Egyptian Hieroglyphs Sumber : www.wikipedia.org
Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papyrus atau perkamen dibungkus dengan batang kayu. Sistem ini disebut dengan Scytale.
Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher subsitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf alphabet disubtitusikan dengan huruf-huruf yang lain pada alphabet yang sama. Karena hanya satu alphabet yang digunakan, cipher ini merupakan subsitusi monoalfabetik. Cipher
Universitas Sumatera Utara
semacam ini mencakup penggeseran alphabet dengan 3 (tiga) huruf dan mensubsitusikan huruf tersebut. Subsitusi ini kadang disebut dengan C3.
Di India, cryptography digunakan oleh pecinta untuk berkumunikasi tanpa diketahui orang lain. Bukti itu ditemukan dalam buku Kama Sutra yang merekomendasikan bagaimana wanita seharusnya mempelajari seni memahami tulisan menggunakan cipher.
Pada abad ke-15, Leo Battista Alberti menemukan suatu metode wheel cipher, lalu mengembangkannya menjadi alat enkripsi dan dekripsi. Metode ini kemudian dikembangkan ulang oleh Thomas Jefferson yang kemudian dinamakan Jefferson Wheel Cipher. Selanjutnya metode tersebut dikembangkan lagi oleh Bazeries yang kemudian dinamakan Bazaries Cylinder. Metode tersebut terus dikembangkan menjadi M94, dan versi-versi setelahnya.
Bentuk wheel cipher yang pada saat itu masih dikenal sebagai cipher disk, ditemukan pertama kali oleh Leon Alberti. Terdapat dua buah potongan silinder, yaitu potongan silinder dalam dan potongan silinder luar. Masing-masing potongan silinder berlabel seluruh alfabet dengan susunan yang tidak harus terurut sama. Potongan silinder luar merupakan alfabet untuk plaintext dan potongan silinder dalam untuk ciphertext.
Pada perang dunia kedua, Jerman menggunakan enigma, atau juga disebut mesin rotor, yang oleh Hitler dimanfaatkan untuk mengirim pesan kepada tentaranya. Enigma yang digunakan Jerman bisa mengenkripsi satu pesan yang memiliki 15 miliyar kemungkinan untuk didekripsikan. Dari kemungkinan-kemungkinan tersebut, Jerman tidak percaya bahwa pesan yang dikirim melalui enigma tersebut bisa dipecahkan. Namun pada kenyataannya pesan tersebut bisa didekripsikan oleh pihak sekutu.
Selama bertahun-tahun, cryptography menjadi bidang khusus yang hanya dipelajari oleh pihak militer untuk mengamankan komunikasi mereka dari pihak luar.
Universitas Sumatera Utara
Akan tetapi, 30 tahun terakhir ini, cryptography tidak hanya dimonopoli oleh pihak militer saja. Hal yang sama juga dilakukan oleh individu-individu yang menginginkan pesan dan komunikasi mereka tidak diketahui oleh pihak lain. Apalagi pada zaman sekarang ini, dimana persaingan begitu ketat sehingga mereka mengeluarkan biaya lebih hanya untuk menjaga privasi mereka.
2.2 Pengertian Kriptografi Kata cryptography berasal dari bahasa Yunani, kripto (hidden atau secret) dan grafh (writing) artinya “secret writing”. Menurut terminologinya, cryptography adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. (Dony, 2009)
Cryptography adalah cabang ilmu matematika tentang persandian untuk menjaga keamanan data. (Munawar, 2012)
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematis yang berhubungan dengan aspek keamanan informasi seperti keabsahan, integritas data, serta autentifikasi data. Kriptografi tidak berarti hanya memberikan keamanan informasi saja, namun lebih kearah teknik-tekniknya.
2.3 Konsep Kriptografi Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walaupun masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi adalah sebagai berikut : a. Confidentiality (kerahasiaan) yaitu layanan yang ditujukan untuk menjaga agar isi pesan yang dikirimkan 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.
Universitas Sumatera Utara
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 pihak-pihak 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 diotentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan : “apakah pesan yang diterima benar-benar berasal dari pengirim yang benar ?” 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. Didalam kriptografi, layanan ini direalisasikan dengan menggunakan tandatangan digital (digital signature). Oleh sebab itu tandatangan digital selalu dikombinasikan dengan layanan otentikasi sumber pesan. d. Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerimaan pesan menyangkal telah menerima pesan. Sebagai contoh, misalnya pengiriman pesan memberi otoritas kepada penerima pesan untuk melakukan pembelian, namun kemudian ia menyangkal telah memberikan otoritas tersebut.
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi : a. Pesan, Plaintext dan Chiphertext Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plaintext. Pesan dapat berupa data
Universitas Sumatera Utara
atau informasi yang dikirim melalui kurir, saluran telekomunikasi maupun saluran lain. Pesan yang tersimpan tidak hanya berupa text, tetapi juga dapat berbentuk citra (image), suara/bunyi (audio) dan video atau berkas biner lainnya. 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. 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 yang dimaksud dapat berupa orang , mesin (komputer, kartu kredit) dan sebagainya. Jadi orang dapat bertukar pesan dengan orang lainnya, sementara didalam jaringan komputer mesin (komputer) berkomunikasi dengan mesin. contoh : mesin ATM dengan komputer server di bank.
c. Enkripsi (E) dan Dekripsi (D) Proses menyandikan plainteks menjadi ciphertext disebut enkripsi. Ada 2 syarat keamanan suatu system enkripsi, yaitu true random bits dan key space yang sangat besar untuk algoritma enkripsi tersebut. Jika kedua syarat dipenuhi, maka tidak ada masalah seberapa kompleks algoritma enkripsinya. Bahakan semakin sederhana semakin baik, karena semakin sederhana, maka makin sedikit proses komputasinya, dan semakin sedikit waktu yang dibutuhkan untuk mengeksekusinya. Proses mengembalikan ciphertext menjadi plainteks disebut dekripsi. Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pada pesan tersimpan.
Universitas Sumatera Utara
d. Cipher dan Kunci Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan deciphering, atau fungsi matematik yang digunakan untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yaitu himpunan yang berisi elemen-elemen plainteks dan himpunan yang berisi ciphertext. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara kedua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan ciphertext, maka fungsi enkripsi E memetakan P ke C E(P) = C
(2.1)
Dan fungsi dekripsi D memetakkan C ke P D(C) = P
(2.2)
Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut harus benar : D (E(P)) = P
(2.3)
Kriptografi modern juga telah banyak mengatasi masalah dengan penggunaan kunci, yang dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai berikut : Ek(P)= C dan Dk(C) = P
(2.4)
dan kedua fungsi ini memenuhi Dk(Ek(P))= P
(2.5)
berikut ilustrasi skema enkripsi dan dekripsi dengan menggunakan kunci terhadap sebuah pesan :
Universitas Sumatera Utara
Kunci Enkripsi
Plaintext
Kunci Ciphertext
Dekripsi
Plaintex t
Gambar 2.2 Proses enkripsi/dekripsi Sederhana
e. 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 memecahkan ciphertext.
f. Kriptanalisis dan kriptologi Kriptanalisis adalah ilmu dan seni untuk memecahkan ciphertext menjadi plainteks tanpa mengetahui kunci yang digunakan dan pelakunya disebut Kriptanalis. Jika seorang kriptografer mentransformasikan plainteks menjadi ciphertext dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan ciphertext tersebut untuk menemukan plainteks atau kunci.
Kriptologi adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi maupun kriptanalisis keduanya saling berkaitan.
2.4 Macam-macam Algoritma Kriptografi
Berdasarkan sejarahnya, kriptografi dapat dibedakan menjadi dua bagian yaitu Kriptografi Klasik dan Kriptografi Modern. Perbedaan mendasar yang terdapat pada kedua jenis tersebut adalah pada kriptografi modern, algoritma kriptografi umumnya beroprasi pada mode-bit sehingga kriptanalis sangat sulit untuk memcahkan cipherteks tanpa mengetahui kuncinya, sedangkan kriptografi klasik beroprasi pada mode karakter, sehingga memungkinkan cipherteks dapat depecahkan dengan mudah, seperti
Universitas Sumatera Utara
penggunaan statistik kemunculan huruf pada bahasa tertentu, terkaan, intuisi dan sebagainya.
Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan. Apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut. Kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.
2.4.1
Algoritma Kriptografi Klasik
Kriptografi klasik meruapakan algoritma yang menggunakan satu kunci untk mengamankan data. Teknik ini telah digunakan beberapa abad yang lalu. Dua teknik dasar yang digunakan pada algoritma klasik adalah teknik subsitusi dan teknik permutasi. a. Teknik Subsitusi Teknik ini merupakan penggantian setiap karakter dari plaintext dengan karakter lainnya. Ada empat istilah subsitusi cipher, yaitu : monoalphabet adalah dimana setiap karakter cipherteks menggantikan satu karakter plainteks. Polyalphabet dimana setiap karakter cipherteks dapat menggantikan lebih dari satu macam karakter plainteks. Monograf yaitu satu enkripsi dilakukan terhadap satu karakter plainteks. Polygraph dimana satu enkripsi dilakukan terhadap lebih dari satu karakter plainteks.
Contoh algoritma subsitusi adalah Caesar Cipher, Shift Cipher, Hill Cipher, Vigenere Cipher, dan Playfair Cipher.
Universitas Sumatera Utara
b. Teknik Permutasi Teknik ini menggunakan permutasi karakter. Penggunaan teknik ini menyebabkan pesan yang asli tidak dapat dibaca kecuai bila memiliki kunci untuk mengembalikan pesan cipherteks ke pesan plainteks atau disebut dekripsi.
Teknik Permutasi (transposisi) dengan bermacam pola bisa dilakukan untuk menyembunyikan pesan dari tangan-tangan orang yang tidak berhak. Kombinasi dari pola-pola tersebut merupakan dasar dari pembentukan algoritma kriptografi yang dikenal sekarang ini.
2.4.2
Algoritma Kriptografi Modern
Kriptografi modern berbeda dengan kriptografi konvensional karena kriptografi modern sudah menggunakan komputer dalam pengoperasiannya. Fungsinya adalah untuk mengamankan data, baik yang ditransfer melalui jaringan komputer maupun tidak. Hal tersebut sangat berguna untuk melindungi privasi, integritas data, authentication, dan non-repudiation. Kriptografi modern merupakan suatu perbaikan yang mengacu pada kriptografi klasik. Pada kriptografi modern terdapat berbagai macam algoritma yang bertujuan mengamankan informasi yang dikirim melalui jaringan komputer.
Kriptografi modern terdiri dari 3 (tiga) bagian, yaitu : a. Algoritma Simetris Algoritma ini mengasumsikan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan sama dengan kunci dekripsi, sehingga algoritma ini disebut juga sebagai single-key algorithm. Algoritma ini sering juga disebut dengan algoritma klasik karena memakai kunci yang sama untuk kegiatan enkripsi dan
Universitas Sumatera Utara
dekripsi. Algoritma ini sudah ada sejak lebih dari 4000 tahun yang lalu. Semua algoritma kriptografi klasik termasuk kedalam sistem kriptografi simetri. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain maka orang tersebut akan dapat melakukan enkripsi dan dekripsi terhadap pesan.
Berikut ilustrasi penggunaan algoritma simetris :
Kunci
Kunci Ciphertext
Plaintext
Enkripsi
Dekripsi
Plaintex t
Gambar 2.3 Ilustrasi Algoritma Kriptografi Simetris
Algoritma kriptografi yang memakai kunci simetris antara lain adalah Data Encryption Standard (DES), RC2, RC4, RC5, RC6, International Data Encrytion Algorithm (IDEA), Advanced Encryption Standard (AES), One Time Pad (OTP), dan lain-lain Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih 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).
Kelebihan Algoritma Simetris: 1. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik. 2. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time
Universitas Sumatera Utara
Kelemahan Algoritma Simetris : 1. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut. 2. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”
b. Kriptografi Kunci Asimetris Kriptografi asimetris juga disebut dengan kriptografi kunci-publik. Dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsi adalah berbeda. Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci yaitu:
1. Kunci umum (publik key) : yaitu kunci yang boleh semua orang tahu. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan.
2. Kunci rahasia (private key) : yaitu kunci yang dirahasiakan atau diketahui oleh satu orang saja. Hanya penerima pesan yang dapat mendekripsi pesan, karena hanya ia yang mengetahui kunci private nya sendiri Kunci-kunci tersebut berhubungan satu sama lain. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci private yang digunakan. Contoh algoritma kriptografi kunci-publik diantaranya RSA, Elgamal, DSA dll.
Universitas Sumatera Utara
Berikut ilustrasi penggunaan algoritma Asimetris :
Kunci Enkripsi
Kunci Dekripsi Ciphertext
Plaintext
Enkripsi
Dekripsi
Plaintex t
Gambar 2.4 Ilustrsi Algoritma Kriptografi Asimetris
Kelebihan Algoritma Asimetris: 1. Masalah keamanan pada distribusi kunci dapat lebih baik 2. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit. Kelemahan Algoritma Asimetris: 1. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris. 2. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.
c. Hybrid Algoritma Algoritma Hybrid adalah algoritma yang memanfaatkan dua tingkatan kunci, yaitu kunci rahasia (simetri) untuk enkripsi dan pasangan kunci private-kunci publik untuk memberikan tanda tangan digital serta melindungi kunci simetri.
Berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu : a. Algoritma block cipher Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan dengan fungsi enkripsi yang
Universitas Sumatera Utara
sama dan akan menghasilkan informasi rahasia dalam blok-blok yang berukuran sama.
b. Algoritma stream cipher Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter persatuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu.
2.5 RSA 2.5.1 Sejarah Singkat RSA Algortima RSA dijabarkan pada tahun 1977 oleh tiga orang : Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Huruf RSA itu sendiri berasal dari inisial nama mereka (Rivest-Shamir-Adleman).
Clifford Cocks, seorang matematikawan Inggris yang bekerja untuk GCHQ, menjabarkan tentang sistem equivalen pada dokumen internal di tahun 1973. Penemuan Clifford Cocks tidak terungkap hingga tahun 1997 karena alasan top-secret classification. Algoritma tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat sebagai U.S. Patent 4405829. Paten tersebut berlaku hingga 21 September 2000.
Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi di sebagian besar negara-negara lain tidak memungkinkan penggunaan paten. Hal ini menyebabkan hasil temuan Clifford Cocks dikenal secara umum.
Universitas Sumatera Utara
2.5.2 Cara Kerja Algoritma RSA
RSA juga dikenal sebagai Algoritma cryptography asymetric. Algoritma cryptography asymetric adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini disebut juga algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat diketahui oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key).
RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya enkripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamankan dengan menggunakan kunci yang cukup panjang sehingga akan sulit untuk memecahkan kode sandinya.
RSA
merupakan
algoritma
yang
melibatkan
ekspresi
dengan
fungsi
eksponensial. Plaintext dienkripsi dalam blok blok, dimana setiap blok tersebut mempunyai nilai biner yang kurang dari angka tertentu (n). Proses enkripsi dan dekripsi untuk plaintext blok M dan ciphertext blok C dapat digambarkan sebagai berikut : C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n
(2.6)
Kedua belah pihak (pengirim dan penerima) harus mengetahui nilai dari n. Pengirim mengetahui nilai e dan hanya penerima yang tahu nilai d. Jadi, dapat disimpulkan bahwa kunci publik dari algoritma ini adalah e, n dan kunci pribadinya adalah d, n. Untuk penentuan kunci ini juga tidaklah bebas, harus melalui rumus tertentu.
Universitas Sumatera Utara
Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima.
2.5.3 Pembangkitan Kunci Pada RSA Pembangkitan pasangan kunci pada RSA mengikuti algoritma sebagai berikut : a. Pilih dua bilangan prima, a dan b (rahasia) b. Hitung n = ab. Besaran n tidak perlu dirahasiakan. c. Hitung m = (a – 1)(b – 1). d. Pilih sebuah bilangan bulat untuk kunci publik, sebut namanya e, yang relatif prima terhadap m. e. Hitung kunci dekripsi, d, melalui ed 1 (mod m) atau (de) mod m = 1.
2.5.4 Proses Enkripsi pada RSA Proses selanjutnya setelah pembangkitan kunci pada RSA adalah proses Enkripsi. Enkripsi adalah proses mengubah pesan asli (plaintext) menjadi pesan rahasia (chipertext).
Pada proses ini pesan asli terlebih dahulu diubah kedalam bentuk desimal, kemudian pesan yang sudah berbentuk desimal kemuadian di bagi-bagi menjadi beberapa blok desimal secara teratur. Setiap blok desimal akan memiliki nilai yang harus lebih kecil dari nilai n yang disebut P.
Rumus yang digunakan untuk melakukan proses Enkripsi pada RSA adalah : C = Pe (mod n).
(2.7)
Dimana P = blok pesan asli C = Chipertext e = kunci publik n = kunci publik (ab)
Universitas Sumatera Utara
2.5.5 Proses Dekripsi Pada RSA
Proses dekripsi pada RSA mirip dengan proses enkripsinya, hanya saja pada proses dekripsinya menggunakan kunci private d. Rumus untuk proses dekripsi pada RSA adalah sebagai berikut : P = Cd (mod n),
(2.8)
Dimana P = Plainteks (pesan asli) C = cipertext d = kuci private (kunci dekripsi) n = kunci publik (ab)
2.5.6 Kelebihan dan Kelemahan RSA
Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya, dalam hal ini memfaktorkan n menjadi p dan q. Karena jika n berhasil difaktorkan, maka menghitung nilai m adalah perkara mudah. Selanjutnya, walau nilai e diumumkan, perhitungan kunci d tidaklah mudah pula karena nilai m yang tidak diketahui.
Kelebihan lain algoritma RSA terletak pada ketahanannya terhadap berbagai bentuk serangan, terutama serangan brute force. Hal ini dikarenakan kompleksitas dekripsinya yang dapat ditentukan secara dinamis dengan cara menentukan nilai p dan q yang besar pada saat proses pembangitkan pasangan kunci, sehingga dihasilkan sebuah key space yang cukup besar, sehingga tahan terhadap serangan.
Namun demikian, kelebihan tersebut sekaligus menjadi kelemahan dari sistem ini. Ukuran kunci privat yang terlalu besar akan mengakibatkan proses dekripsi yang cukup lambat, terutama untuk ukuran pesan yang besar. Oleh karena itu, RSA
Universitas Sumatera Utara
umumnya digunakan untuk meng-enkripsi pesan berukuran kecil seperti kata kunci dari enkripsi simetris seperti DES dan AES yang kemudian kunci tersebut dikirim secara bersamaan dengan pesan utama.
2.6
2.6.1
Teori Bilangan
Sifat Habis Dibagi Pada Bilangan Bulat
Suatu bilangan bulat b dikatakan habis dibagi (divisible ) oleh suatu bilangan bulat tak nol a jika ada suatu bilangan bulat q sedemikian sehingga b = aq. Atau dapat juga dikatakan a membagi habis b dan ditulis dengan a | b.
Sifat – sifat hasil bagi : a. jika a | b maka a | bc untuk sebarang c bilangan bulat. b. jika a | b dan b | c maka a | c. c. jika a | b dan a | c maka a | bx+cy untuk sebarang x,y bilangan bulat. d. jika a | b dan b | a maka a = b. e. jika a b dan b ≠ 0, maka |a|b| f. jika m ≠ 0, maka a | b jika hanya jika ma | mb
Jika a | b maka a disebut faktor dari b. Kemudian jika suatu bilangan bulat d membagi dua bilangan bulat a dan b maka d disebut faktor persekutuan dari a dan b. Bilangan bulat terbesar di antara semua faktor persekutuan bagi a dan b dinamakan faktor persekutuan terbesar (greatest common divisor) bagi a dan b dan dilambangkan dengan GCD(a,b) atau sering juga sering dilambangkan dengan FPB(a,b).
Contoh : Faktor pembagi 45 adalah : 1, 3, 5, 9, 15, 45 Faktor pembagi 36 adalah : 1, 2, 3, 4, 6, 9, 12, 18, 36 Faktor pembagi bersama dari 45 dan 36 adalah : 1, 3, 9. Sehingga gcd(45, 36) = 9
Universitas Sumatera Utara
Untuk menentukan faktor persekutuan terbesar dapat pula digunakan teorema algoritma euclide berikut :
Diberikan dua bilangan bulat a dan b dengan a > b > 0, maka GCD(a,b) dapat dicari dengan mengulang algoritma pembagian. a = q1.b + r1 ... (0 < r1 < b) b = q2.r1 + r2 ... (0 < r2 < r1) r1 = q3.r2 + r3 ...(0 < r3 < r2) : : r(n-2) = qn.r(n-1) + rn r(n-1) = q(n+1).rn + 0 Maka, rn, sisa terakhir dari pembagian diatas yang bukan nol merupakan GCD(a,b).
Akibat selanjutnya dari teorema euclide yaitu persamaan linear Diophantine sebagai berikut :
Suatu persamaan linear Diophantine ax + by = c dengan a,b dan c bilangan bulat mempunyai penyelesaian bilangan bulat jika dan hanya jika GCD(a,b) membagi habis c.
Bukti : Dari akibat sebelumnya diketahui bahwa untuk setiap GCD(a,b) maka terdapat bilangan bulat m dan n sedemikian hingga GCD(a,b) = am + bn. Selanjutnya karena GCD(a,b) membagi habis c maka terdapat bilangan k sedemikian hingga c = k. GCD(a,b) c = k. (am +bn) c = a(km) + b(kn)
Jadi salah satu penyelesain untuk persamaan linear Diophantine tersebut yaitu x = km dan y = kn.
Universitas Sumatera Utara
2.6.2
Kongruensi
Misalkan m adalah suatu bilangan bulat positif. Dua buah bilangan a dan b dikatakan kongruen modulo m jika dan hanya jika m | a-b, dan ditulis dengan a b (mod m). Misalkan a, b, c, d, x, dan y adalah bilangan bulat, maka : a. a b (mod m), dan b a (mod m), dan a-b 0 (mod m) adalah pernyataanpernyataan setara. b. Jika a b (mod m) dan b c (mod m) maka a c (mod m). c. Jika a b (mod m) dan d membagi habis m maka a b (mod d) Jika a b (mod m) dan c d (mod m) maka ax + cy bx + dy (mod m).
2.6.3
Kekongruenan Lanjar
Kekongruenan lanjar adalah kongruen yang berbentuk ax b (mod m) dengan m adalah bilangan bulat positif, a dan b sembarang bilangan bulat, dan x adalah peubah bilangan bulat.
Nilai-nilai x dicari sebagai berikut : ax = b + km yang dapat disusun menjadi
x
b km a
dengan k adalah sembarang bilangan bulat. Cobakan untuk k = 0, 1, 2, … dan k = –1, –2, … yang menghasilkan x sebagai bilangan bulat.
Universitas Sumatera Utara
2.6.4
Bilangan Prima dan Relatif Prima
Bilangan prima adalah bilangan asli yang lebih besar dari 1, yang faktor pembaginya adalah 1 dan bilangan itu sendiri. 2 dan 3 adalah bilangan prima. 4 bukan bilangan prima karena 4 bisa dibagi 2. Sepuluh bilangan prima yang pertama adalah 2, 3, 5, 7, 11, 13, 17, 19, 23 dan 29.
Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB(a, b) = 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. Bilangan 20 dan 3 adalah relatif prima karena PBB(20, 3) =1, atau dapat ditulis 2 . 20 + (–13) . 3 = 1 dengan m = 2 dan n = –13. Tetapi 20 dan 5 tidak relatif prima karena PBB(20, 5) = 5 ≠ 1 sehingga 20 dan 5 tidak dapat dinyatakan dalam m . 20 + n . 5 = 1.
2.6.5
Remainder Theorem
Teorema sisa (Remainder Theorem) adalah suatu cara untuk menentukan sisa pembagian suatu sukubanyak jika dibagi faktor linear (x - c) atau secara umum oleh faktor linear (ax + b). Jika sukubanyak P dibagi oleh faktor linear (x - c), maka sisanya adalah P(c), jika sukubanyak P dibagi oleh faktor linear (ax+b), a ≠0, maka sisanya adalah P(-b/a). Tentukan sisanya jika 2x3 – x2 + 7x + 6 dibagi x + 1 atau dibagi x – (-1). Jawab: sisanya adalah P(-1) = 2.(-1)3 – (-1)2 + 7(-1) + 6 = - 2 – 1 – 7 + 6 = -4
Universitas Sumatera Utara
2.7 Chinese Remainder Theorem
Chinese remainder theorem adalah teorema mengenai kekongruenan lanjar dalam teori bilangan bulat yaitu aritmetika modulo. Teorema ini pertama kali ditemukan oleh Sun Tze pada abad pertama.
Misalkan m1, m2, ...,mn adalah bilangan bulat positif sedemikian sehingga FPB(mi, mj) = 1 untuk i ≠ j. Maka sistem kongruen lanjar x ≡ ak (mod mk) mempunyai sebuah solusi unik modulo m = m1.m2. ... .mn. Sebagai contoh, Sun Tze mengajukan pertanyaan sebagai berikut : Tentukan sebuah bilangan bulat yang bila dibagi dengan 5menyisakan 3, bila dibagi 7 menyisakan 5, dan bila dibagi 11 menyisakan 7.(Putri, 2007)
Pertanyaan Sun Tze di atas dapat dirumuskan kedalam system kongruen lanjar: x 3 (mod 5) x 5 (mod 7) x 7 (mod 11) Penyelesaian : Kongruen pertama, x 3 (mod 5), memberikan x = 3 + 5k1 untuk beberapa nilai k. Subsitusikan ke dalam kongruen kedua menjadi 3 + 5k1 5 (mod 7), dari sini diperoleh k1 6 (mod 7), atau k1 = 6 + 7k2 untuk beberapa nilai k2. Jadi didapatkan x = 3 + 5k1 = 3 + 5(6 + 7k2) = 33 + 35k2 yang mana memenuhi dua kongruen pertama. Jika x memenuhi kongruen yang ketiga, harus mempunyai 33 + 35k2 7 (mod 11), yang mengakibatkan k2 9 (mod 11) atau k2 = 9 + 11k3. Subsitusikan k2 ini ke dalam kongruen yang ketiga menghasilkan x = 33 + 35(9 + 11k3) 348 + 385k3 (mod 11). Dengan demikian, x 348 (mod 385) yang memenuhi ketiga konruen tersebut. Dengan kata lain, 348 adalah solusi unik modulo 385. Catatlah bahwa 385 = 5 7 11.
Universitas Sumatera Utara
Solusi unik ini mudah dibuktikan sebagai berikut. Solusi tersebut modulo m = m1 m2 m3 = 5 7 11 = 5 77 = 11 35. Karena 77 3 1 (mod 5), 55 6 1 (mod 7), dan 35 6 1 (mod 11), solusi unik dari sistem kongruen tersebut adalah x 3 77 3 + 5 55 6 + 7 35 6 (mod 385) 3813 (mod 385) 348 (mod 385)
Universitas Sumatera Utara