2.1.1 Definisi Kriptografi Show Kriptografi berasal dari bahasa Yunani yaitu cryptos yang berarti secret (rahasia) dan graphein yang berarti writing (tulisan). Berdasarkan kata dasar pembentuknya kriptografi berarti secret writing (tulisan rahasia). Ada beberapa definisi yang dikemukan dalam berbagai literature yang ada. Sebelum tahun 1980-an beberapa buku menyatakan bahwa kriptografi merupakan ilmu dan seni untuk menjaga pesan kerahasian pesan dengan cara menyandikannya kedalam bentuk yang tidak dapat dimengerti lagi maknanya [11]. Kata “seni” didalam definisi diatas berasal dari fakta sejarah yang ada bahwa pada masa-masa awal kriptografi, setiap orang memiliki cara yang unik untuk merahasiakan pesan. Setelah tahun 1980-an berbagai literatur yang ada sudah memiliki definisi yang lebih kompleks mengenai kriptografi. Salah satu definisi yang ditulis dalam buku [8] menyatakan bahwa kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasian, integritas data, serta autentikasi. Oleh karena itu kriptografi tidak hanya berarti keamanan informasi saja, tetapi juga mengenai teknik atau cara yang dipakai didalamnya. 2.1.2 Sejarah Kriptografi Penggunakan kriptografi sudah ada sejak 4000 tahun yang lalu oleh bangsa Mesir. Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi sederhana yang menggunkan kertas dan pensil atau menggunakan bantuan alat mekanik sederhana. Sejarah kriptografi klasik mencatat bahwa pada permulaan tahun 400 SM tentara Sparta di Yunani sudah menggukan algortima transposisi yaitu mengubah susunan huruf yang terdapat didalam pesan. Mereka menggunakan alat yang dinamakan scytale. Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada sebuah silinder dengan diameter tertentu. Pesan ditulis secara horizontal, baris perbaris. Bila daun papyrus dilepaskan maka huruf-huruf yang telah tersusun menjadi acak membentuk pesan rahasia. Untuk membaca pesan, penerima harus kembali melilitkan daun papyrus ke silinder yang memiliki diameter yang sama seperti silinder awal [11]. Algoritma lain yang biasa digunakan adalah algorima subsitusi, yaitu mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf yang lain. Caesar cipher merupakan salah satu algoritma kriptografi subsitusi sederhana dengan enkripsi monoalfabet, yaitu dengan cara memutar beberapa langkah urutan dari alphabet yang ada. Contohnya adalah ketika kata cleoptra dienkripsi dengan memutar urutan alphabet sejauh 3 langkah, maka akan menghasilkan cipherteks yaitu fohrsdwud . Pada perang dunia ke II, pemerintah Jerman melalui Arthur Scherbius membuat mesin enkripsi yang dinamakan Enigma. Mesin ini menggunakan beberapa buah rotor (roda berputar) dalam melakukan enkripsi[13]. 2.1.3 Tujuan Kriptografi Pada awalnya kriptografi hanya dipakai dengan tujuan untuk merahasiakan pesan dan dalam penggunaanya terbatas kepada kalangan pemerintahan serta pihak yang memiliki kekuasaan saja. Namun dalam perkembanganya kriptografi tidak hanya digunakan untuk merahasiakan pesan tetapi juga untuk menjamin integrtas data dan untuk tujuan lainnya. Serta pada saat ini kriptografi sudah digunakan dalam segala aspek kehidupan, tidak hanya pada kalangan pemerintahan saja, tetapi juga kalangan biasa atau pribadi. Berikut merupakan tujuan umum yang diharapkan dalam pengimplementasian kriptografi dalam kehidupan : a. Kerahasiaan (Confidentiality) Tujuan paling dasar kriptografi adalah menjamin kerahasian, menjaga agar pesan hanya dapat dibaca pihak-pihak yang memiliki hak dan tidak jatuh kepada pihak yang tidak berhak. Ada beberapa pendekatan yang digunakan untuk memperoleh kerahasian ini salah satunya adalah dengan mengubah pengamanan secara fisik menjadi pengamanan yang bersifat algoritma matematika yang membuat pesan menjadi tidak bisa dipahami. Misalnya pesan “ kerjakan skripsi dengan baik” , dengan menggunakan ceasar cipher pesan dapat dirubah kedalam bentuk cipherteks menjadi “ pjwofpfs xpwnuxn ijslfs gfnp “. Istilah yang sama dengan confidentiality adalah secrecy dan privacy. b. Integritas Data (Data Integrity) Integritas data bertujuan untuk menjamin pesan yang dikirim masih asli dan tidak dimanipulasi selama pengiriman. Untuk menjamin integritas data, sistem yang ada harus memiliki kemampuan untuk mendeteksi jika terjadi manipulasi pesan yang dilakukan oleh pihak yang tidak memiliki hak atas pesan tersebut. Manipulasi yang dimaksudkan adalah penyisipan, penghapusan dan pensubsitusian data lain kedalam pesan yang asli. Didalam kriptografi, integritas data direalisasikan dengan menggunakan tanda tangan digital, pesan yang menandakan pesan yang dikirim adalah asli. c. Autentikasi (Autentication) Autentikasi berhubungan dengan identifikasi. Tujuannya untuk menjamin bahwa semua pihak yang berkomunikasi memang pihak yang memiliki otoritas. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain- lain. Dalam aspek autentikasi terbagi atas dua bagian utama yaitu user authentication atau entity authentication dan data origin authentication. d. Nir-Penyangakalan (Non-Repudiation) Nir-penyangkalan dimaksudkan untuk mencegah supaya semua pihak yang terlibat dalam proses komunikasi tidak ada yang dapat melakukan penyangkalan. Misalnya ketika beberapa pihak menandatangani sebuah kontrak, tanda tangan yang ada di kontrak tersebut menjadi alat nir- penyangkalan. Contoh lainnya ketika pengirim pesan memberikan otoritas kepada penerima pesan untuk melakukan pembelian. Namun kemudian pemberi pesan tersebut menyangkal telah memberikan otoritas pembelian tersebut. Oleh karena itu perlu dilibatkan pihak ketiga yang dipercaya untuk menyelesaikan masalah seperti ini. Didalam kriptografi nir-penyangkalan diimplementasikan dengan menggunakan tanda tangan kunci publik [8]. 2.1.4 Istilah Dalam Kriptografi Beberapa istilah yang biasa digunakan dalam kriptografi adalah : a. Pesan, Plainteks, Cipherteks Pesan ( message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks ( plaintext) atau teks-jelas (clear text). Pesan yang dikirim tidak hanya berupa teks, 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 kedalam bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks ( ciphertext). b. Pengirim, Penerima, Arbitrator Komunikasi data melibatkan pertukaran pesan antara beberapa entitas. Pengirim ( sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima ( receiver) entitas yang menerima pesan. Arbitrator pihak ketiga yang terpercaya. Biasanya dipakai dalam beberapa protokol dalam kriptografi. Entitas yang ada disini dapat berupa orang, mesin, kartu kredit dan sebagainya. c. Enkripsi dan Dekripsi Proses menyandikan plainteks atau pesan menjadi bentuk cipherteks disebut dengan enkripsi ( encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks dinamakan dekripsi ( decryption) atau deciphering. d. Cipher dan Kunci Algortima kriptografi disebut juga cipher yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algortima yang berbeda untuk enkripsi dan dekripsi. Jika keamanan kriptografi ditentukan dengan menjaga keamanan algoritmanya, maka algoritma kriptografi ini dinamakan algoritma restricted. Algoritma ini biasanya digunakan oleh sekelompok orang untuk bertukar pesan satu sama lain. Mereka membuat suatu algoritma yang hanya diketahui oleh kelompok itu saja. Tetapi algorima restricted tidak cocok lagi saat ini, sebab setiap kali ada anggota yang kelompok keluar, maka algoritma kriptografi harus diganti lagi. Kriptografi modern mengatasi masalah ini dengan penggunaan kunci, yang dalam hal ini algoritmanya tidak dirahasiakan, tetapi kunci harus dijaga kerahasiaanya. Kunci ( key) adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. e. Sistem Kriptografi Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi ( cryptosystem). Sistem kriptografi adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks dan kunci. Oleh karena itu didalam kriptografi, cipher hanyalah salah satu komponen saja. f. Penyadap Penyadap ( eavesdropper) adalah pihak yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadapan adalah untuk mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud memecahkan cipherteks. g. Kriptanalisis dan kriptologi Setiap orang yang menggunakan kriptografi disebut dengan kriptografer( cryptographer). Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Sedangkan orang yang mempelajari kriptanalisis disbut dengan kriptanalis ( cryptanalysts). Kriptologi ( cryptology) adalah studi mengenai kriptografi dan kriptoanalisis. Sebagian praktisi sering menggunakan istilah kriptografi dan kriptologi secara bergantian, sebagian lagi membedakan bahwa kriptografi mengacu pada penggunaan praktis teknik-teknik kriptografi, sedangkan kriptologi mengacu pada subjek sebagai bidang studi [11]. ` PLAINTEXT CIPHERTEXT PLAINTEXT ENKRIPSI DEKRIPSI KUNCI KUNCI Gambar 2.1 Proses Enkripsi dan Dekripsi2.2 AutentikasiAutentikasi merupakan salah tujuan yang diharapkan dalam kriptografi. Proses autentikasi terdiri dari proses mendapatkan informasi autentikasi dari sebuah entitas, analisa data dan menentukan apakah informasi tersebut berhubungan dengan entitas tersebut. Syarat sebuah sistem autentikasi terdiri atas lima komponen : a. Set A dari informasi autentikasi (authentication information) merupakan set mengenai informasi tertentu dimana dengan entitas yang ada mereka membuktikan identitas mereka. b. Set C dari informasi pelengkap (complementary information) merupakan set mengenai informasi dimana sistem menyimpan dan menggunakannya untuk melakukan validasi terhadap informasi autentikasi. c. Set F merupakan fungsi pelengkap (complementation functions) merupakan set yang akan membangkitkan infromasi pelengkap dari informasi autentikasi. Dimana, untuk f Є F, f: A → C. d. Set L dari fungsi autentikasi (authentication functions) dipakai untuk memverifikasi identitas. Dimana, untuk l Є L, l:A x C→ { true,false} e. Set S dari fungsi pilihan (selection functions) memungkinkan sebuah entitas untuk membuat atau mengubah autentikasi dan informasi pelengkap. Contohnya adalah user mengautentikasi dirinya dengan memasukkan kata sandi ( password), sistem kumudian akan membandingkannya dengan password asli yang tersimpan secara online . Disini A adalah set dari string yang membuat password dapat diterima, C – A, F = { I }, dan L = { eq }, dimana I merupakan fungsi identitas, dan eq akan bernilai benar jika memiliki argument yang sama, dan salah kita memiliki argumen yang bebeda. Beberapa mekanisme yang dipakai untuk autentikasi adalah : a. Password Password adalah informasi yang berhubungan dengan entitas yang dapat mengkonfirmasi identitas dari sebuah entitas. Password menjadi salah satu bentuk mekanisme yang dipakai untuk melakukan autentikasi berdasarkan apa yang orang tahu. Contohnya pengguna memasukkan password dan komputer akan melakukan validasi. b. Challenge-Response Masalah mendasar pada password adalah pemakaian yang berulang ( reusable). Jika penyadap (attacker) mendapatkan password pengguna, maka nantinya penyadap tersebut dapat menggunakan kembali password tersebut. Sistem tidak dapat membedakan antara penyadap dengan pengguna yang sah, sistem secara pasti akan memberikan akses. Maka perlu dipakai suatu cara untuk mengatasi hal tersebut yaitu dengan cara mengubah password yang ada setiap saat, dengan begitu jika penyadap menggunakan password yang sebelumnya dipakai, maka sistem akan menolaknya. Contohnya ketika user U ingin mengautentikasi dirinya kepada sistem S. Sebelumnya U dan S telah menyepakati fungsi rahasia f. Sebuah sistem autentikasi challenge- response terpenuhi ketika S mengirim pesan acak m (the challenge) kepada U , dan U akan membalasnya dengan transformasi r = f(m) ( the response). S akan memvalidasi r dengan menghitungnya secara terpisah. Algoritma ini sama dengan teknik IFF (identification-friend or foe) yang digunakan pesawat militer untuk mengidentifikasi sekutu atau musuh. c. Biometrics Biometric merupakan pengukuran otomatis dari segi fisik maupun tingkah laku untuk mengidentifikasi seseorang. Saat user diberi sebuah identitas, administrator sistem akan membuat sebuah tolak ukur yang dapat mengidentifikasi agar user tersebut dapat diterima dengan tingkat kesalahan tertentu. Ketika user akan masuk kedalam sistem, mekanisme autentikasi biometric akan melakukan verifikasi terhadap identitas tersebut. Perbandingan data yang ada terhadap identitas yang dimasukkan user akan menentukan apakah entitas tersebut diterima atau tidak. d. Location Denning dan Macdoran dalam “Location-Based Authentication: Grounding Cyberspace for Better Security” melakukan sebuah inovasi dalam melakukan autentikasi. Misalnya ketika seorang user mengaku sebagai Anna, dimana Anna merupakan wanita yang bekerja disalah satu bank di California pada saat itu tetapi melakukan logging dari Rusia, dapat dipastikan user tersebut berpura-pura sebagai Anna. Cara ini dilakukan berdasarkan GPS ( Global Positioning System) yang dapat menunjukkan dengan tepat lokasi sebuah tempat. Lokasi fisik sebuah entitas ditunjukkan dengan lokasi yang ditandai oleh GPS. Tanda ini dikirim untuk mengautentikasi user. Host juga memiliki sebuah LSS ( Location Signature Sensor) dan menerima tanda yang sama untuk seorang user. Jika tanda yang didapat tidak sama, maka proses autentikasi gagal. e. Multiple Methods Multiple method merupakan metode atau mekanisme autentikasi yang dikombinasikan. Bentuk autentikasi ini memakai satu atau lebih bentuk autentikasi untuk setiap entitasnya. Setiap entitas harus menggunakan metode yang khusus. Metode autentikasi khusus ini berubah dari satu sistem ke sistem yang lain. Contohnya pada metode challenge-response membutuhkan penggunaan komputer dan kartu pintar ( smartcard). Cara ini mengkombinasikan akan apa yang kita tahu ( password) dan apa yang kita punya (komputer atau smartcard) [2]. 2.3 Protokol Denning-SaccoProtokol merupakan serangkaian langkah-langkah yang melibatkan dua pihak atau lebih untuk menyelesaikan sebuah tugas. Langkah-langkah yang dimaksudkan disini adalah urutan mulai dari awal hingga akhir. Setiap langkah harus diselesaikan sesuai urutan, dan tidak ada langkah yang dilakukan tanpa menyelesaikan langkah sebelumnya. Melibatkan dua pihak atau lebih dimana harus ada minimal dua orang yang terlibat untuk menyelesaikan protokol, jika hanya satu melibatkan satu orang saja, maka hal tersebut tidak merupakan sebuah protokol. Untuk menyelesaikan tugas maksudnya adalah protokol tersebut pada akhirnya harus memperoleh sesuatu. Protokol memiliki karakteristik sebagai berikut:
Protokol kriptografi merupakan protokol yang menggunakan kriptografi dalam penerapannya. Setiap orang yang terlibat didalamnya mungkin ingin membagi rahasia mereka dalam mengkomputasi sebuah nilai, bersama-sama membangkitkan rangkaian acak, meyakinkan satu dengan yang lain mengenai identitas mereka, atau untuk menandatangani sebuah kontrak. Tujuan utama menggunakan protokol kriptogtafi adalah untuk mencegah dan mendeteksi penyusup ataupun penipu. Protokol kriptografi melibatkan algoritma kriptografi [3]. Salah satu fungsi utama dari sebuah protokol adalah untuk melakukan proses autentikasi. Ada berbagai macam protokol bentuk protokol kriptografi, mulai dari bentuk simetri maupun asimetri. Contoh protokolnya adalah One-Way Functions Protocol, Kerberos Protocol, Denning-Sacco protocol dan lain sebagainya. Protokol Denning-Sacco adalah salah satu bentuk protokol kriptografi. Protokol ini disesuaikan dengan nama dari peneliti yang mengemukakannya yaitu Dorothy E. Denning dan Giovanni Maria Sacco dalam penelitian mereka yang berjudul “ Timestamps in Key Distribution Protocols”. Protokol ini memanfaatkan timestamp dalam proses pendistribusian kunci. Dalam penelitian mereka tersebut dikatakan komunikasi yang aman antara dua pengguna pada jaringan komputer sangat memungkinkan menggunakan enkripsi satu kunci atau enkripsi kunci publik. Dikedua sistem tersebut protokol pendistribusian kunci sangat diperlukan agar pengguna dapat menggunakan saluran yang aman. Dalam sistem yang menggunakan satu kunci, user harus mendapatkan kunci komunikasi ( key communication) yang dibagikan, sedangkan pada sistem kunci publik user harus mendapatkan kunci publik setiap user yang lain. Needham dan Schroeder membuat protokol pendistribusian kunci untuk sistem kunci tunggal dan sistem kunci publik yang berdasarkan fasilitas pendistribusian kunci terpusat yang dinamakan Autentication Server (AS). Protokol yang ada pada sistem satu kunci mengasumsikan bahwa AS adalah pihak yang bertanggungjawab dalam semua pembangkitan dan pendistribusian kunci komunikasi, dan setiap user mempunyai kunci rahasia yang tercatat didalam AS. AS akan menggunakan kunci rahasia untuk mengamankan kunci komunikasi yang akan dikirimkan kepada user. Jika kunci komunikasi dan kunci rahasia tidak bocor seperti yang diasumsikan mereka, maka komunikasi akan aman. Namun ketika kunci yang ada bocor, maka dapat dipastikan komunikasi menjadi tidak aman. Oleh karena itu diperlukan cara agar hal seperti ini tidak terjadi, yaitu dengan menggunakan timestamp. Walaupun kemungkinan mengurangi tingkat kebocoran yang terjadi kecil, tetapi timestamp dapat menggantikan cara two-step handshake untuk mencegah terjadinya replays terhadap kunci yang ada. Sistem yang menggunakan kunci publik juga memiliki cara yang sama dalam penggunaan timestamp. Pada protokol Needham-Schroeder sistem kunci publik, AS akan menyimpan dan mendistribusikan kunci publik user, tetapi AS tidak memiliki akses terhadapa kunci rahasia ( private) mereka, sama seperti pada sistem satu kunci, two-step handshake tidak diperlukan lagi. Jika AS mendistribusikan kunci yang telah diserifikasi, maka seluruh protokol bisa dikurangi menjadi tiga langkah dari yang seharusnya tujuh. Jika P A dan S A adalah kunci publik dan kunci rahasia dari A, maka protokol akan berjalan sebagai berikut: A (1) →SL: A, B AS (2) →A: CA, CB A →B: CA, CB (3) SAS SASDimana CA = { A, PA, T} dan CB = {B, PB, T} merupakan kunci publik yang telah disertifikasi. Sertifikat ditandai oleh AS menggunakan kunci rahasia AS untuk menghindari terjadinya pemalsuan. A dan B kedua-duanya diberikan salinan masing- masing kunci hasil sertifikasi mereka sendiri, jadi mereka bisa bisa memvalidasinya sendiri. Karena kunci publik dapat diketahui oleh semua orang, maka keterbukaan dari kunci ini tidak menjadi masalah. Walaupun demikian, integritas dari kunci tersebut sangat diperlukan. Jadi kunci publik tetap memerlukan keamanan tingkat tinggi. Penggunaan timestamp yang juga ditandai sertifikat sangat membantu dalam keamanan mencegah terjadinya replay. Protokol pendistribusian kunci publik juga bisa digunakan untuk mendistribusikan kunci komunikasi untuk enkripsi data tunggal. Protokolnya menjadi: A → AS: A, B (1) AS → A: CA, CB (2) SA PBA } → B: CA,CB, {{CK,T} CK akan digunakan pada proses pengiriman pesan yang terenkripsi antara A dan B. Karena CK dipilih dan dienkripsi oleh A maka tidak akan ada resiko akan terbongkar oleh AS, walaupun demikian tetap masih dapat diserang melalui komputer A atau B. Oleh karena itu penggunaan timestamp dapat melindungi terjadinya replays terhadap kunci yang bocor [4]. Secara sederhana protokol Denning-Sacco dapat dijabarkan seperti pada Gambar 2.2. a. Alice mengirim kepada Trent kunci publik dan identitasnya serta kunci publik dan identitas Bob b. Kemudian Trent mengirim kepada Alice kunci publiknya dan kunci publik Bob yang di signed menggunakan kunci rahasia Trent. c. Alice kemudian mengirim kepada Bob, kunci acak dan timestamp yang di signed menggunakan kunci rahasia Alice dan mengenkripsi kembali dengan menggunakan kunci publik Bob bersama dengan kunci publik dan identitas yang telah di signed. d. Bob mendekripsi pesan Alice menggunakan kunci rahasianya kemudian melakukan verifikasi signature Alice menggunakan kunci publik Alice. Bob juga memastikan timestamp masih berlaku [3]. Gambar 2.2 Proses Autentikasi Denning-SaccoBerikut merupakan contoh dari proses autentikasi Denning-Sacco: Penentuan kunci publik dan kunci rahasia masing-masing orang: Alice : Bob: Trent: nA = 403 nB = 493 nT = 437 eA = 7 eB = 5 eT = 13 dA = 103 dB = 269 dT = 61 a. Alice mengirim kunci publik dan identitasnya dan Bob kepada Trent : A = 50 B = 30 b. Trent mengirim kepada Alice kunci publik Alice dan Bob yang telah di signed menggunakan kunci rahasia Trent. dT Signed_eA = eA mod nT 61 = 7 mod 437 = 387 dT Signed_nA = nA mod nT 61 = 403 mod 437 = 101 dT Signed_eB = eB mod nT 61 = 5 mod 437 = 130 dT Signed_nB = nB mod nT 61 = 493 mod 437 = 132 Trent juga mengirim kepada Alice identitas mereka yaitu A dan B yang telah di signed menggunakan kunci rahasia Trent. dT Signed_A = A mod nT 61 = 30 mod 437 = 278 dT Signed_B = B mod nT 61 = 50 mod 437 = 410 c. Alice menentukan kunci acak (K) dan timestamp (T) K = 24 T = 115 Alice menandai K dan T dengan kunci rahasianya dA Signed_K = K mod nA 103 = 24 mod 403 = 353 Signed_T = T dA mod nA = 50 269 mod 493 = 106 B = signed_B eA mod nA = 410 13 mod 437 = 50 A = signed_A eA mod nA = 278 Bob mendekripsi identitas A dan B dengan menggunakan kunci publik Trent 269 mod 403 = 115 T = Decrypted_Signed_T eA mod nA = 1067 mod 403 = 24 K = Decrypted_Signed_K eA mod nA = 353Kemudian mendekripsinya kembali dengan menggunakan kunci publik Alice Decrypted_Signed_K = Encrypted_Signed_K dB mod nB = 21 103 mod 403 = 106 269 mod 493 = 353Decrypted_Signed_K = Encrypted_Signed_K dB mod nB = 370 Bob mendekripsi Encrypted_signed_K dan Encrypted_signed_T dengan kunci rahasianya d. 5 mod 493 = 21 Encrypted_Signed_T = signed_T eB mod nB = 106 5 mod 493 = 370 Encrypted_Signed_K = signed_K eB mod nB = 353 Kemudian Alice mengenkripsi kembali dengan kunci publik Bob 13 mod 437 = 30 2.4 Jenis KriptografiBerdasarkan jenis kunci yang digunakan untuk melakukan enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi dua yaitu kriptografi simetri ( symmetric cryptography) dan kriptografi asimetri (asymmetric cryptography). 2.4.1 Kriptografi Simetri Kriptografi simetri disebut juga kriptografi konvensional, kriptografi satu kunci. Kriptografi simetri menggunakan kunci yang sama dan bersifat rahasia dalam melakukan proses enkripsi maupun dekripsi. Sebutan lain untuk kripgrafi simetri adalah kriptografi konvensional, kriptografi klasik dan kriptografi kunci rahasia [13]. Kriptografi simetri satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga tahun 1976. Ada puluhan algoritma kriptografi modern yang termasuk ke dalam sistem kriptografi simetri, diantaranya adalah DES (Data Encryption Standard), Blowfish, Twofish, Triple-DES, IDEA, Serpent, dan yang terbaru adalah AES (Advanced Encryption Standard).` KUNCI PRIVAT (k) PLAINTEXT CIPHERTEXT PLAINTEXTENKRIPSI DEKRIPSI E k (p)=c D k (c)=p Gambar 2.3 Proses Enkripsi dan Dekripsi Pada Kriptografi SimetriKeterangan : k : Kunci rahasia : p Plaintext c : Ciphertext E k (p) : Proses enkripsi : Proses dekripsi D k (c) Aplikasi kriptografi simetri yang utama adalah melindungi kerahasisaan data yang dikirim melalui saluran yang tidak aman dan melindungi kerahasisaan data yang disimpan pada media yang tidak aman. Kelemahan dari sistem ini adalah baik pengirim maupun penerima pesan harus memiliki kunci yang sama, sehingga pengirim pesan harus mencari cara yang aman untuk memberitahukan kunci kepada penerima pesan [11]. Kriptografi simetri dapat dikategorikan menjadi dua yaitu block cipher dan stream cipher. Block cipher beroperasi pada panjang pesan yang tetap dan menghasilkan ciphertext yang sama panjang. Panjang blok yang digunakan pada block cipher adalah 64 atau 128 bit. Stream cipher yaitu kriptografi simetri yang menghasilkan ciphertext dari plaintext secara terus menerus dan tidak memiliki batasan pada ukuran plaintext. Dalam proses membuat stream cipher digunakan block cipher [1]. 2.4.2 Kriptografi Asimetri Kriptografi asimetri adalah jenis kriptografi yang salah satu kuncinya digunakan untuk proses enkripsi dan kunci yang lain untuk melakukan dekripsi. Kriptografi asimetri disebut juga dengan kriptografi kunci publik. Sebenarnya penemu dari sistem kriptografi asimetri adalah James H Ellis, Clifford Cocks, dan Malcolm Williamson pada awal 1970. Mereka menemukan mekanisme pertukaran kunci. Namun algoritma mereka tersebut dirahasiakan dan tidak pernah dipublikasikan hingga 1997. Sistem kriptografi asimetri pertama kali dipublikasikan pada tahun 1976 oleh Whitefield Diffie dan Martin Hellman, melalui makalah mereka yang berjudul “ New Directions in Crryptography”. Makalah yang mereka buat membahas distribusi kunci rahasia pada saluran komunikasi publik (yang tidak aman) dengan metode pertukaran kunci yang belakangan dikenal dengan nama algoritma pertukaran kunci Deffie-Hellman. Kemudian pada tahun 1977. Pada tahun 1977, generalisasi dari ide Cocks ditemukan kembali oleh tiga ilmuan yaitu Rivest, Shamir dan Adleman. Algoritma enkripsi yang mereka buat dikenal dengan nama RSA. Pada tahun 1980 Neal Koblitz memperkenalkan elliptic-curve cryptography. Hingga saat ini kriptografi kunci publik terus berkembang pesat seiring dengan aplikasinya yang begitu luas [11]. Pada kriptografi kunci publik, kunci untuk enkripsi diumumkan kepada publik, karena itu tidak bersifat rahasia disimbolkan dengan e. Sedangkan kunci untuk melakukan dekripsi sehingga dinamakan kunci rahasia, disimbolkan dengan d. ` KUNCI KUNCI PUBLIK(k ) 1 PRIVAT (k ) 2 PLAINTEXT CIPHERTEXT PLAINTEXT ENKRIPSI DEKRIPSI E (p)=c D (c)=p k1 k2 Gambar 2.4 Proses Enkripsi dan Dekripsi pada Kriptografi AsimetriKeterangan: : Kunci publik k 1 k 2 : Kunci rahasia p : Plaintext : c Ciphertext E (p) : Proses enkripsi k1 D k2 (c) : Proses dekripsi Keuntungan utama yang didapat dari kriptografi kunci publik adalah memungkinkan orang orang yang sebelumnya tidak memiliki pengaturan keamanan dapat bertukar pesan dengan aman. Pengirim dan penerima tidak perlu lagi berbagi kunci rahasia melalui saluran yang aman karena semua komunikasi hanya melibatkan kunci publik dan kunci rahasia yang tidak perlu dibagi. Beberapa contoh dari kunci publik kriptografi adalah Elgamal (dinamai penemunya, Taher Elgamal), RSA (Ron Rivest, Adi Shamir, dan Leonard Adleman), Diffie-Hellman dan DSA (ditemukan oleh David Kravitz) [9]. 2.5 Algoritma RSA Algoritma kunci publik RSA merupakan salah satu jenis kriptografi asimetri.Algoritma RSA banyak digunakan dalam protokol autentikasi. Algoritma RSA merupakan singkatan dari ketiga orang yang menemukannya, mereka adalah Ron Rivest, Adi Shamir dan Len Adlemen dan RSA merupakan kepanjangan dari Rivest- Shamir-Adlemen. Pada RSA memakai dua buah kunci yaitu kunci publik dan kunci rahasia. Kunci publik digunakan untuk melakukan enkripsi dan kunci rahasia digunakan untuk melakukan dekripsi. 2.5.1 Pembangkit Kunci Pembagkit kunci merupakan cara yang dilakukan untuk mendapatkan kunci publik dan kunci rahasia. Dimisalkan Alice ingin mengirim pesan kepada Bob, maka yang pertama dilakukun adalah menciptakan kunci publik dan kunci rahasia. Langkah langkah yang harus dilakukan oleh Alice adalah : a. Pilih bilingan prima secara acak p dan q dimana p≠q b. Hitung nilai n dimana : n = p * q c. Cari nilai dari totien n dimana φ(n)= (p − 1)(q − 1) d. Pilih nilai dari e, dimana 1 < e < φ(n), nilai e relatif prima terhadap nilai φ(n), atau gcd(e, φ(n)) = 1. e. Hitung nilai dari d , dimana ∗ ≡ 1 ( ) atau d (1 (mod φ(n)) [10]. ≡ e Dari perhitungan di atas maka dapat ditentukan kunci publik dan kunci rahasia. Kunci publik Alice sekarang adalah ( e,n) dan kunci rahasia (d,n). 2.5.2 Proses Enkripsi dan Dekripsi Enkripsi Bob melakukan proses enkripsi dimulai dengan mengambil kunci publik dari Alice (e,n) lalu menyusun pesan yang akan dikirim menjadi blok-blok , enkripsi dilakukan dengan menggunakan rumus e c (mod n) ≡ m dengan c adalah hasil enkripsi dan m merupakan pesan yang akan dikirim. Dekripsi Alice mendekripsi pesan dari Bob dengan rumus : d m (mod n) [13]. ≡ c Contoh penggunaan algoritma RSA Bob akan mengirim pesan kepada Alice. Maka Alice akan memberitahukan kunci publiknya kepada Bob. Pembangkit kunci Pilih bilangan prima p dan q , p = 11 dan q = 17 Hitung nilai n = p * q n = 11 x 17 = 187 Hitung nilai φ(n)= (p − 1)(q – 1) φ(n)= (11 − 1)(17 − 1)) φ(n)= 160 Pilih bilangan e dengan syarat 1 < e < φ(n) dan gcd(e, φ(n)) = 1 Dipilih nilai e = 3 Nilai d e ≡ 1 (mod φ(n)) d * 3 ≡ 1 (mod 160) d ≡ 107 Kemudian Alice akan memberitahu kunci publik ( e,n)= (3,187) kepada Bob, dan menyimpan kunci rahasia nya (d,n) = (107,187). Proses enkripsi Setelah memperoleh kunci publik dari Alice, Bob akan melakukan enkripsi terhadapa pesan yang akan dikirim. Bob akan mengirim pesan SANTO kepada Alice. Bob akan mengubah ke dalam bentuk desimal dengan melihat tabel ASCII pada Tabel 2.5 berikut ini : Tabel 2.1 Kode ASCII 256 bit Desimal Simbol Desimal Simbol Desimal Simbol Desimal SimbolNULL 64 @ 126 ~ 190 ¥ 1 65 127 191 SOH A DEL ┐ 2 66 128 192 STX B Ç └ 3 67 129 193 ETX C ü ┴ 4 EOT 68 D 130 é 194 ┬ 5 ENQ 69 E 131 â 195 ├ 6 70 132 196 ACK F ä ─ 7 BEL Tabel 2.1 Kode ASCII 256 bit ( Lanjutan) Desimal Simbol Desimal Simbol Desimal Simbol Desimal Simbol92 30 RS █ 219 ø 155 [ 91 29 GS ┌ 90 Z 154 Ü 218 28 FS ┘ 156 89 Y 153 Ö 217 27 ESC 88 X 152 ÿ 216 Ï 26 SUB Î 215 ù 87 W 151 25 EM Í 214 û \ £ 24 CAN ` ß 225 í 161 a 97 # 35 Ó 224 á 160 96 220 " 34 ▀ 32 94 ^ 158 × 222 Ì 33 ! 95 _ 159 ƒ 223 ¦ 221 Ø 157 ] 93 31 US ▄ 86 V 150 ı 71 G 133 à 197 ê 14 SO ╦ 77 M 139 ï 203 13 CR ╩ 76 L 138 è 202 12 FF ╔ 75 K 137 ë 201 11 VT ╚ 200 74 J 136 î 10 LF Ã 199 ç 73 I 135 9 HT ã 198 å 72 H 134 8 BS ┼ 76 L 140 204 85 U 149 ò 213 æ 23 ETB 84 T 148 ö 212 È 22 SYN 83 S 147 ô 211 Ë 21 NAK Ê 210 Æ 82 R 146 20 DC4 Ð 209 81 Q 145 ╠ 19 DC3 80 P 144 É 208 ð 18 DC2 79 O 143 Å 207 ¤ 17 DC1 ╬ 78 N 142 Ä 206 16 DLE ═ 205 ì 77 M 141 15 SI 36 $ 98 b 162 ó 226 Ô 7 58 : 120 x 184 © 248 ° Tabel 2.1 Kode ASCII 256 bit (Lanjutan)9 119 w 183 À 247 ¸ 57 8 118 v 182 Â 246 ÷ 56 § 245 Á 181 u 117 55 59 ¶ 244 ┤ 180 t 116 6 54 243 ¾ 5 115 s 179 │ 53 ‗ Desimal Simbol Desimal Simbol Desimal Simbol Desimal Simbol ; 4 114 r 178 ▓ 61 255 ■ 252 ³ 63 ? 125 } 189 ¢ 253 ² 254 ╝ 62 > 124 | 188 ¹ 251 ╗ 187 { 123 = · 121 250 ║ 186 z 122 < 60 ¨ 249 ╣ 185 y 242 52 37 % 99 c 163 ú 227 Ò Ñ 44 41 ) 103 g 167 º 231 þ 42 * 104 h 168 ¿ 232 Þ 43 + 105 i 169 ® 233 Ú µ 230 ª 166 f 102 ( 40 Õ 229 165 106 e 101 ' 39 õ 228 ñ 164 d 100 & 38 , j 241 ± 175 3 113 q 177 ▒ 51 240 ░ 176 p 112 2 50 ´ 239 » o 170 111 1 49 46 . 108 l 172 ¼ 236 ý 47 / 109 m 173 ¡ 237 Ý 48 110 n 174 « 238 ¯ Ù 235 ½ 171 k 45 Û 234 ¬ nbsp Dari tabel maka didapat nilai desimal dari S = 83 A = 65 N = 78 T = 84 O = 79. Maka enkripsi dilakukan dengan e = 3 dan n = 187 didapat hasil e c (mod n) ≡ m 3 c1 (mod 187) ≡ 83 c1 ≡ 128 3 c2 (mod 187) ≡ 65 c2 ≡ 109 3 c3 (mod 187) ≡ 78 c3 ≡ 133 3 c4 (mod 187) ≡ 84 c4 ≡ 101 3 c5 (mod 187) ≡ 79 c5 ≡ 107 Dari hasil perhitungan diatas maka didapat nilai dari c = 128109133101107. Kemudian Bob akan mengirimkan c kepada Alice dimana c = 128109133101107 Proses dekripsi Setelah menerima ciphertext c = 128109133101107 dari Bob, Alice akan melakukan proses dekripsi dengan menggunakan kunci rahasia yang dimilikinya. d m (mod n) |