TUGAS AKHIR lilda-08053111001.doc · Web viewAlgoritma simetri sering juga disebut sebagai...

42
TUGAS AKHIR Keamanan Jaringan Komputer ANALISA ALGORITMA VERNAM (OTP) Oleh AMANDA LILDA RAMADAYANTI 0805 3111 001 JURUSAN TEKNIK INFORMATIKA

Transcript of TUGAS AKHIR lilda-08053111001.doc · Web viewAlgoritma simetri sering juga disebut sebagai...

TUGAS AKHIR

TUGAS AKHIR

Keamanan Jaringan Komputer

ANALISA ALGORITMA VERNAM (OTP)

Keystream

Generator

Keystream

Generator

k

i

k

i

p

i

p

i

c

i

Enkripsi

Dekripsi

Keystream

Keystream

Plainteks

Plainteks

Cipherteks

Pengirim

Penerima

Oleh

AMANDA LILDA RAMADAYANTI0805 3111 001

JURUSAN TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER

UNIVERSITAS SRIWIJAYA

2008

ABSTRAKSI

Kehadiran Komputer memberi perhatian yang lebih bukan hanya dalam pengolahan data saja melainkan juga dengan keamanan data. Perkembangan teknologi telekomunikasi dan informatika (telematika) saat ini sangat pesat sekali. Teknologi Jaringan Komputer yang saat ini berkembang, memungkinkan satu computer untuk brhubungan dengan computer lainnya di seluruh dunia untuk saling nertukar data atau informasi. Perkembangan teknologi tersebut telah menciptakan suatu revolusi yang disebut dengan revolusi informasi, dunia sekarang terikat menjadi satu oleh sistem elektronik yang menyalurkan berita dan data dengan kecepatan cahaya ke seluruh tempat di dunia ini. Revolusi informasi yang merupakan gabungan antara ilmu pengetahuan dan teknologi telah merubah sumber kekayaan tidak lagi berupa materi-seperti pada revolusi industri- tetapi berupa informasi, pengetahuan yang diterapkan pada pekerjaan untuk menciptakan suatu nilai. Siapa yang menguasai informasi maka ia akan menguasai dunia.

Kriptografi adalah ilmu yang mempelajari bagaimana menjaga keamananan suatu pesan (plaintext). Tugas utama kriptografi adalah untuk menjaga agar baik pesan atau kunci ataupun keduanya tetap terjaga kerahasiaannya dari penyadap (attacker). Penyadap pesan diasumsikan mempunyai akses yang lengkap dalam saluran komunikasi antara pengirim pesan dan penerima pesan. Penyadapan pesan sering terjadi pada komunikasi melalui internet maupun saluran telepon.

Untuk mendapatkan pesan tanpa melalui kunci sebenarnya dapat dianalisis (analisis sandi), ilmunya disebut cryptanalysis. Hasil dari analisis sandi akan diperoleh pesan atau kunci. Analisis sandi juga dapat menemukan kelemahan dalam kriptosistem yang pada akhirnya dapat menemukan pesan atau kunci.

Kriptografi saat ini memang sangat tidak asing lagi didengar. Banyak perusahaan atau bahkan instansi-instansi yang sudah menggunakan kriptografi. Kriptografi memang dibutuhkan banyak pemakai dalam berbagai data atau informasi. Keamanan data harus sangat terjamin,karena banyaknya data yang harus menyimpan banyak rahasia. Kerahasiaan data sangat diperlukan dalam hal komunikasi data.Untuk menjamin keamanan dan kerahasiaan data tersebut diperlukan teknik tertentu

untuk menyandikan data atau informasi yang disebut kriptografi. Ada berbagai jenis algoritma kriptografi seperti DES, RSA dan sebagainya yang berusaha untuk menciptakan suatu algoritma yang benar-benar

dapat mengamankan data atau informasi yang ditransmisikan. Untuk itu para kriptografer semakin lama semakn berusaha menciptakan algoritma yang rumit untuk lebih menjamin keamanan informasi yang

dienkripsikan. Namun sebenarnya semakin sederhana algoritma pengenkripsian yang dibuat akan semakin baik, karena dengan demikian proses komputasinya akan semakin sedikit sehingga akan memakan waktu lebih sedikit untuk mengeksekusinya.

Makalah ini akan membahas salah satu bentuk kriptografi yang relatif sederhana namun cukup sulit untuk dipecahkan yaitu kriptografi one-time pad. Dalam dunia kriptografi dikenal sebuah metode penyandian yang sangat kuat sehingga tidak mudah dipecahkan, yaitu metode penyandian One Time Pad (OTP). Metode penyandian OTP merupakan salah satu variasi dari metode penyandian subtitusi dengan cara memberikan syarat-syarat khusus terhadap kunci yang digunakan yaitu terbuat dari karakter / huruf yang acak (kunci acak atau pad), dan pengacakannya tidak menggunakan rumus tertentu.

1. PENDAHULUAN

LATAR BELAKANG

Keamanan merupakan salah satu aspek yang penting dalam sebuah sistem informasi. Banyak orang menyiasati bagaimana cara mengamankan informasi yang dikomunikasikan atau menyiasati bagaimana cara mendeteksi keaslian dari informasi yang diterimanya.

Kriptografi adalah ilmu yang mempelajari bagaimana menjaga keamananan suatu pesan (plaintext). Tugas utama kriptografi adalah untuk menjaga agar baik pesan atau kunci ataupun keduanya tetap terjaga kerahasiaannya dari penyadap (attacker). Penyadap pesan diasumsikan mempunyai akses yang lengkap dalam saluran komunikasi antara pengirim pesan dan penerima pesan. Penyadapan pesan sering terjadi pada komunikasi melalui internet maupun saluran telepon.

Untuk mendapatkan pesan tanpa melalui kunci sebenarnya dapat dianalisis (analisis sandi), ilmunya disebut cryptanalysis. Hasil dari analisis sandi akan diperoleh pesan atau kunci. Analisis sandi juga dapat menemukan kelemahan dalam kriptosistem yang pada akhirnya dapat menemukan pesan atau kunci.

Pada sebuah data untuk menjaga keamanan data,data tersebut di enksipsi dan deskripsi. enkripsi dan dekripsi pada umumnya membutuhkan penggunaan sejumlah informasi rahasia, disebut sebagai kunci. Untuk beberapa mekanisme enkripsi,kunci yang sama digunakan baik untuk enkripsi dan dekripsi, untuk mekanismeyang lain, kunci yang digunakan untuk enkripsi dan dekripsi berbeda. Dua tipedasar dari teknologi kriptografi adalah symmetric key (secret/private key) cryptography dan asymmetric (publickey) cryptography. Pada symmetric key cryptography, baik pengirim maupun penerima memiliki kunci rahasia yang umum. Pada asymmetric key cryptography, pengirim dan penerima masingmasing berbagi kunci publik dan privat. Kriptografi saat ini lebih dari enkripsi dan dekripsi saja. Otentikasi menjadi bagian dari kehidupan kita sama seperti privasi.

Pesan-pesan yang dirahasiakan dalam kriptografi biasa disebut plainteks(plaintext) dan hasil penyamaran disebut chiperteks (chipertext). Proses penyamaran dari palinteks ke chiperteks disebut ENKRIPSI(dari kata encryption) dan proses pembalikan dari chiperteks menjadi plainteks kembali disebut DESKRIPSI(decryption). Baik proses enkripsi maupun proses dekripsi melibatkan satu atau beberapa kunci kriptografi. Dalam suatu system di mana terdapat algoritma kriptografi,ditambah seluruh kemungkinan plaintext, ciphertext dan kunci-kuncinya disebut kriptosistem (cryptosystem atau cryptographic system) Proses tersebut dapat digambarkan secara sederhana sebagai berikut :

Keystream

Generator

Keystream

Generator

k

i

k

i

p

i

p

i

c

i

Enkripsi

Dekripsi

Keystream

Keystream

Plainteks

Plainteks

Cipherteks

Pengirim

Penerima

~ Macam-Macam Algoritma Kriptografi

Ada dua jenis algoritma kriptografi berdasarkan jenis kuncinya, yaitu :

1. Algoritma Simetri (konvensional)

Adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Disebut konvensional karena algoritma ini digunakan orang sejak dahulu. Algoritma simetri sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Yang termasuk algoritma kunci simetri adalah OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan lain-lainnya.

Key (K)

Gambar 2. kriptografi konvensional

Gambar diatas, menggambarkan kriptografi simetri yang biasa disebut dengan kriptografi kunci konvesional. Pesan plaintext P, misalkan SIGIT dikodekan (dienkrip) menjadi ciphertext 11@@##$ menggunakan password (kunci K) TES. Untuk mengembalikan cipher 11@@##$ Menjadi SIGIT dilakukan proses dekripsi dengan kunci yang sama yaitu TES. Karena kunci yang digunakan sama, maka disebut kriptografi kunci simetri atau kriptografi konvensional. Dalam dunia kriptografi password sering disebut sebagai kunci. Pesan asli yang belum dikodekan disebut plaintext. Plaintext tidak harus berupa teks, namun dapat berupa file gambar (gif, jpg), file biner (exe, com, ocx), file suara (wav, mp3) dan sebagainya. File yang telah disandikan disebut ciphertext. Enkripsi adalah proses pengubahan pesan asal menjadi karakter yang tidak dapat dibaca. Sedangkan dekripsi adalah proses pengubahan karakter yang tidak dapat dibaca menjadi pesan asal.

saluran yang tidak aman

Gambar 3. Lingkungan Kriptosystem

menggambarkan cipher C dikirimkan ke tujuan melalui saluran yang umumnya tidak aman. Sedangkan kunci K sendiri harus dikirimkan melalui saluran yang aman. Untuk mengirimkan kunci dengan aman, pengirim dan penerima dapat bertemu dan menyepakati kunci tertentu untuk dipakai bersama dalam komunikasi berikutnya. Dalam saluran yang tidak aman ini, seorang penyerang dapat menyadap cipher C dan kemudian melakukan dan kemudian melakukan analisis untuk menemukan nilai P. Nilai K dan P perkiraan yang dihasilkan oleh penyerang disebut sebagai K dan P. Untuk memudahkan penulisan dan analisis, kriptografi modern menggunakan notasi matematika, dengan pesan asal P dan kode rahasia C yang diperoleh dari enkripsi dengan kunci K, sehingga penulisannya :

C = E(P) K

Notasi ini menyatakan bahwa C dihasilkan oleh fungsi enkripsi E yang dioperasikan terhadap masukan P dengan kunci K, operasi ini dilakukan di pengirim. Pada penerima dilakukan operasi sebaliknya

P = D(C). Pemecah kode (cryptanalyst) sering kali hanya memiliki C dan harus menemukan nilai P nya.

Algoritma simetri dapat dibagi dalam dua kategori. Jenis pertama beroperasi pada plaintext yang berupa satu bit tunggal pada satu waktu, yang disebut stream algorithms (algoritma aliran atau stream ciphers). Jenis kedua beroperasi pada plaintext dalam grup bit-bit. Grup bit-bit ini disebut blok, dan algoritmanya disebut sebagai algoritma blok atau kode rahasia blok. Untuk algoritma komputer modern ukuran blok dasarnya adalah 64 bit atau 128 bit, cukup besar untuk menghindari analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat. Sebelum pemakai komputer, algoritma biasanya beroperasi pada plaintext, satu karakter per satu operasi. Kita dapat mengatakan bahwa ini seperti algoritma aliran yang beroperasi pada aliran karakter.

2. Algoritma Asimetri

Algoritma Asimetri juga disebut algoritma kunci publik. Kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Kunci dekripsi tidak dapat dihitung dari kunci enkripsi. Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang dapat mengetahuinya. Sembarang orang dapat menggunakan kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya orang tertentu (calon penerima pesan dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi terhadap pesan tersebut. Dalam sistem ini, kunci enkripsi sering disebut kunci publik, sementara kunci dekripsi sering disebut kunci privat. Kunci privat kadang-kadang disebut kunci rahasia.

Yang termasuk algoritma asimetri adalah ECC, LUC, RSA, El Gamal dan DH. Enkripsi dengan kunci publik Ke dinyatakan sebagai

E (M) = C Ke

Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke), dekripsi dengan kunci privat yang bersesuaian dapat dinyatakan dengan

D(C) = M Kd

Di sini Ke merupakan pasangan Kd. Artinya tidak ada Kd lain yang dapat digunakan untuk melakukan dekripsi kode C yang merupakan hail enkripsi dengan kunci Ke. Sebaliknya, pesan dapat dienkrip dengan kunci privat dan didekrip dengan kunci publik. Metode ini digunakan pada tanda tangan digital. Meskipun agak membingungkan, operasi ini dapat dinyatakan sebagai

E (M) = C Kd

DKe (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara berlawanan dengan tujuan yang berbeda. Sifat ini hanya berlaku untuk algoritma kunci publik tertentu, seperti RSA. Sifat ini tidak berlaku untuk algoritma DH.

SEJARAH

Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan. Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus

atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale.

Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf apfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3 huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan C3 (untuk Caesar menggeser 3 tempat). Secar umum sistem cipher Caesar dapat

ditulis sbb:

Zi = Cn(Pi)

Dimana Zi adalah karakter-karekter ciphertext, Cn adalah transformasi substitusi alfabetik, n adalah jumlah huruf yang digeser, dan Pi adalah karakter-karakter plaintext.

Disk mempunyai peranan penting dalam kriptografi sekitar 500 th yang lalu. Di Italia sekitar tahun 1460, Leon Battista Alberti mengembangkan disk cipher untuk enkripsi. Sistemnya terdiri dari dua disk konsentris. Setiap disk memiliki alfabet di sekelilingnya, dan dengan memutar satu disk berhubungan dengan yang lainnya, huruf pada satu alfabet dapat ditransformasi ke huruf pada alfabet yang lain.

Bangsa Arab menemukan cryptanalysis karena kemahirannya dalam bidang matematika, statistik, dan lingiustik. Karena setiap orang muslim harus menambah pengetahuannya, mereka mempelajari peradaban terdahulu dan mendekodekan tulisan-tulisannya ke huruf-huruf Arab. Pada tahun 815, Caliph al-Mamun mendirikan House of Wisdom di Baghdad yang merupakan titik pusat dari usaha-usaha translasi. Pada abad ke-9, filsuf Arab al-Kindi menulis risalat ditemukan kembali th 1987) yang diberi judul A Manuscript on Deciphering Cryptographic Messages.

Pada 1790, Thomas Jefferson mengembangkan alat enkripsi dengan menggunakan tumpukan yang terdiri dari 26 disk yang dapat diputar scr individual. Pesan dirakit dengan memutar setiap disk ke huruf yang tepat dibawah batang berjajar yang menjalankan panjang tumpukan disk. Kemudian, batang berjajar diputar dengan sudut tertentu, A, dan huruf-huruf dibawah batang adalah pesan yang terenkripsi. Penerima akan menjajarkan karakter-karakter cipher dibawah batang berjajar, memutar batang kembali dengan sudut A dan membaca pesan plaintext.

Sistem disk digunakan secara luas selama perang sipil US. Federal Signal Officer mendapatkan hak paten pada sistem disk mirip dengan yang ditemukan oleh Leon Battista Alberti di Italia, dan dia menggunakannya untuk mengkode dan mendekodekan sinyal-sinyal bendera diantara unit-unit.

Sistem Unix menggunakan cipher substitusi yang disebut ROT 13 yang menggeser alfabet sebanyak 13 tempat. Penggeseran 13 tempat yang lain membawa alfabet kembali ke posisi semula, dengan demikian mendekodekan pesan.

Mesin kriptografi mekanik yang disebut Hagelin Machine dibuat pada tahun 1920 oleh Boris Hagelin di Scockholm, Swedia. Di US, mesin Hagelin dikenal sebagai M-209.

Pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia US MI-8 yang dikenal sebagai Black Chamber. MI-8 menjebol kode-kode sejumlah megara. Selama konferensi Angkatan Laut Washington tahun 1921-1922, US membatasi negosiasi dengan Jepang karena MI-8 telah memberikan rencana negosiasi Jepang yang telap disadap kepada sekretaris negara US. Departemen negara menutup MI-8 pada tahun 1929 sehingga Yardley merasa kecewa. Sebagai wujud kekecewaanya, Yardley menerbitkan buku The American Black Chamber, yang menggambarkan kepada dunia rahasia dari MI-8. Sebagai konsekuensinya, pihak Jepang menginstal kode-kode baru. Karena kepeloporannya dalam bidang ini, Yardley dikenal sebagai Bapak Kriptografi Amerika.

Japanese Purple Machine

Mengikuti peninggalan Yardley, William F.Friedman melanjutkan usaha cryptanalysis untuk tentara US. Tim Friedman berhasil menjebol cipher diplomatik Jepang yang baru. Rekan Yardley di Angkatan Laut US adalah Laurence Stafford. Stafford mengepalai tim yang memecahkan kode angkatan laut Purple Machine Jepang selama PD II. Kelompok pemecah kode ini bekerja di ruang bawah tanah yang gelap pada pusat distrik Naval di Pearl Harbour. Komandan Joseph J.Rochefort memimpin kelompok ini pada musim semi 1942 saat cryptanalysisnya menyadap dan mendekodekan pesan terkode Jepang. Pesan ini mengatakan akan ada serangan Jepang pada sebuah lokasi yang dikenal dengan AF. Rochefort yakin bahwa AF adalah pulau Midway. Midway adalah basis US kunci yang memproyeksikan kekuatan US di pasifik tengah.

Rochefort tidak dapat meyakinkan atasannya bahwa AF adalah pulau Midway. Sebagai tipu daya, Rochefort meminta personel Midway untuk mengirim pesan bahwa Midway memiliki masalah air. Pesannya dikirim dengan kode yang jelas dan lemah yang diyakini akan disadap dan dipecahkan oleh Jepang. Kemudian pada 22 Mei, agen rahasia Angkatan Laut Jepang mengirim pesan yang dibaca oleh US bahwa AF mempunyai masalah air. Sebagai hasil dari usaha jenius dalam memecahkan kode ini, laksamana Chester W.Nimitz mengotorisasi strategi untuk mengirimkan armada US untuk mengejutkan armada Jepang di Midway. Usaha yang hebat ini berdampak pada gema kemenangan US yang merupakan titik balik di perang Pasifik.

The German Enigma Machine

Militer Jerman menggunakan mesin cipher substitusi polialfabetik disebut Enigma sebagai sistem pengkodean utama selama PD II. Enigma menggunakan rotor mekanis untuk pengkodean dan pendekodean. Seorang Belanda, Hugo Koch mengembangkan mesin ini pada 1919, dan diproduksi untuk pasar komersial pada 1923 oleh Arthur Scherbius. Scherbius mendapatkan hal paten pada mesin Enigma untuk perusahaan Berlin Chiffriermasschinen Aktiengesellschaft. Pakar cryptanalysis Polandia, Marian Rejewski, bekerja bersama Perancis dari 1928 sampai 1938, berhasil memecahkan pengkabelan sistem 3 rotor yang digunakan Jerman saat itu dan menciptakan berkas kartu yang dapat mengantisipasi 6 kali 17,576 kemungkinan posisi rotor. Jerman mengubah indikator sistem dan jumlah rotor menjadi 6 pada 1938, sehingga meningkatkan kesulitan untuk memecahkan cipher Enigma. Dalam kerjanya pada 1938, Polandia dan Perancis mengkonstruksi mesin prototipe yang disebut The Bombe untuk memecahkan cipher Enigma. Namanya diturunkan dari bunyi detikan yang dihasilkan oleh mesin.

Usaha memecahkan cipher Enigma diambil alih oleh Inggris di Bletchley Park Inggris dan dipimpin oleh banyak ilmuwan terkemuka termasuk Alan Turing. Prototipe Bombe Turing muncul pada 1940, dan Bombe berkecepatan tinggi dikembangkan oleh Inggris dan Amerika pada 1943.

Perkembangan komputer dan sistem komunikasi pada tahun 60an berdampak pada permintaan dari sektor-sektor privat sebagai sarana untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan. Dimulai dari usaha Feistel pada IBM di awal tahun 70an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal US untuk mengenkripsi informasi

yang unclassified. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah.

Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan New Directions in Cryptography. Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan juga memberikan metode baru dan jenius untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret. Meskipun penulis tidak memiliki realisasi praktis pada ide enkripsi kunci publik saat itu, idenya sangat jelas dan menumbuhkan ketertarikan yang luas pada komunitas kriptografi. Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci publik dan tanda tangan, yang sekarang disebut RSA. Rancangan RSA berdasar pada masalah matematika yang sulit untuk kriptografi menggiatkan kembali usaha

untuk menemukan metode yang lebih efisien untuk pemfaktoran. Tahun 80an menunjukkan peningkatan luas di area ini, sistem RSA masih aman. Kelas lain yang merupakan rancangan kunci publik praktis ditemukan oleh ElGamal pada 1985. Rancangan ini juga berdasar pada masalah logaritma diskret.

Salah satu kontribusi penting dari kriptografi kunci publik adalah tanda tangan digital. Pada 1991 standar internasional pertama untuk tanda tangan digital (ISO/IEC 9796) diadopsi. Standar ini berdasar pada rancangan kunci publik RSA. Pada 1994 pemerintah US mengadopsi Digital Signature Standard, sebuah mekanisme yang berdasar pada rancangan kunci publik ElGamal.

Taksonomi Primitif-primitif Kriptografi

Ada beberapa dasar tool kriptografi (primitif) yang digunakan untuk mendukung keamanan informasi. Contoh dari primitif termasuk skema enkripsi,fungsi hash, dan skema tanda tangan digital. Gambar 1 menunjukkan daftar primitif yang dimaksud dan bagaimana hubungan mereka. Primitif-primitif ini harus dapat dievaluasi berdasarkan beberapa kriteria seperti:

Level keamanan. Hal ini biasanya sulit untuk dihitung. Sering diwakili dengan jumlah operasi yang dibutuhkan (menggunakan metode terbaik yang diketahui) untuk melawan tujuan yang diharapkan. Level keamanan biasanya didefinisikan work factor.

Fungsionalitas. Primitif-primitif dibutuhkan untuk memenuhi tujuan keamanan informasi yang bermacam-macam. Primitif mana yang paling efektif untuk tujuan yang diberikan akan ditentukan dengan properti dasardari primitif.

Metode operasi. Primitif, saat diterapkan dengan bermacam cara dan dengan bermacam input, biasanya akan menunjukkan karakteristik yang berbeda, sehingga satu primitif dapat menyediakan fungsionalitas yang sangat berbeda pada mode operasi atau penggunaannya.

Unjuk kerja. Merupakan efisiensi sebuah primitif pada mode tertentu.(sebagai contoh algoritma enkripsi dapat dihitung dengan jumlah bit per detik yang dapat dienkripsinya)

Kemudahan implementasi. Merupakan kesulitan dalam merealisasikan primitif pada prakteknya.Dapat meliputi kompleksitas pengimplementasian primitif dalam lingkungan software maupun hardware. Kepentingan relatif dari bermacam kriteria ini sangat tergantung pada aplikasi dan sumber daya yang tersedia.

TUJUAN

mengetahui bagaimana cara kerja algoritma OTP pada E-mail.

Algoritma OTP dapat dianalisa sifat-sifatnya (kelebihan dan kekurangan) baik dalam aspek one time key dan kehandalan.

METODE PENELITIAN

Pada makalah ini metode penelitian menggunakan literature. Yaitu dari beberapa sumber buku,e-book dan internet.

2. LANDASAN TEORI

Pada Makalah ini akan dibahas tentang algoritma ONE TIME PAD (OTP) pada email. One time pad termasuk dalam kelompok kriptografi simestris. One-time pad (pad = kertas bloknot) berisi deretan karakter-karakter kunci yang dibangkitkan secara acak.

Cipher ini diimplementasikan melalui sebuah kunci yang terdiri dari sekumpulan random karakter-karakter yang tidak berulang. Setiap huruf kunci dijumlahkan modulo 26 dengan huruf pada plaintext. Pada One Time Pad, tiap huruf kunci digunakan satu kali untuk satu pesan dan tidak digunakan kembali.Panjang stream karakter kunci sama dengan panjang pesan.Satu-satunya algoritma kriptografi yang tidak dapat dipecahkan adalah one time pad. One-Time Pads (OTP). One time pads ditemukan pada tahun 1917 oleh Major Joseph Mauborgne. Cipher ini termasuk ke dalam kelompok algoritma kriptografi simetri. One time pad (pad = kertas bloknot) berisi barisan karakter-karakter kunci yang dibangkitkan secara acak. Aslinya, satu buah one time pad adalah sebuah pita (tape) yang berisi barisan karakter-karakter kunci. Satu pad hanya digunakan sekali (one time) saja untuk mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain. Aturan enkripsi yang digunakan persis sama seperti pada cipher Vigenere. Pengirim pesan menggunakan setiap karakter kunci untuk mengenkripsikan satu karakter plainteks. Enkripsi dapat digambarkan sebagai penjumlahan modulo 26 dari satu karakter plainteks dengan satu karakter kuncione time pads: ci = (pi + ki) mod 26 yang dalam hal ini, pi : karakter plainteks ki : karakter kunci ci : karakter ciphertek

Perhatikan bahwa panjang kunci sama dengan panjang plainteks, sehingga tidak ada kebutuhan mengulang penggunaan kunci selama proses enkripsi.Setelah pengirim mengenkripsikan pesan dengan one time pads, ia menghancurkan one time pads tersebut (makanya disebut satu kali pakai atau one time).Penerima pesan menggunakan one time pads yang sama untuk mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plaintek dengan persamaan:

pi = (ci ki ) mod 26

Contoh :

plainteks: ONETIMEPAD

kunci:TBFRGFARFM

Misalkan A = 0, B = 1, , Z = 25.

cipherteks: HOJKOREGHP

yang mana diperoleh sebagai berikut:

(O + T) mod 26 = H

(N + B) mod 26 = O

(E + F) mod 26 = J, dst

Sistem cipher one time pads ini tidak dapat dipecahkan karena: Barisan kunci acak yang ditambahkan ke pesan plainteks yang tidak acak menghasilkan cipherteks yang seluruhnya acak. Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks mungkin menghasilkan pesan-pesan plainteks yang mempunyai makna, sehingga kriptanalis tidak punya cara untuk menentukan plainteks mana yang benar.Meskipun one time pads merupakan cipher yang sempurna aman, namun faktanya ia tidak diguanakan secara universal dalam aplikasi kriptografi sebagai satu-satunya sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang menggunakan one time pads). Malahan orang masih tetap menggunakan sistem cipher yang dapat dipecahkan. Alasannya adalah dari segi kepraktisan, yaitu: Karena panjang kunci harus sama dengan panjang pesan, maka one time pads hanya cocok untuk pesan berukuran kecil. Semakin besar ukuran pesan, semakin besar pula ukuran kunci. Pada aplikasi kriptografi untuk mengenkripsikan data tersimpan, timbul masalah lain dalam penyimpanan kunci. Karena kunci dibangkitkan secara acak, maka tidak mungkin pengirim dan penerima membangkitkan kunci yang sama secara simultan. Jadi, salah seorang dari mereka harus membangkitkan kunci lalu mengirimkannya ke pihak lain. Karena kerahasiaan kunci harus dijamin, maka perlu ada perlindungan selama pengiriman kunci. Jika hanya ada satu saluran komunikasi, maka pengirim dan penerima pesan perlu barisan kunci one time pads lain untuk melindungi kunci one time pads pertama, one time pads ketiga untuk melindungi one time pads pertama, dan seterusnya. Hal ini menghasilkan kumpulan barisan kunci one time pads yang tidak berhingga banyaknya.Mengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan yang padat. Oleh karena itu, one time pads hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman untuk mengirim kunci. Saluran kedua ini umumnya lambat dan mahal. Misalnya pada perang dingin antara AS dan Uni Soviet (dahulu), one time pads dibangkitkan, disimpan, lalu dikirim dengan menggunakan jasa kurir yang aman. Penting diingat bahwa saluran kedua yang aman tersebut umumnya lambat dan mahal.

Gambar contoh one time pad

Konsep terpenting dalam penggunaan kriptografi onetime

pad adalah meng-XOR-kan plainteks dengan kunci yang telah dipersiapkan untuk menghasilkan cipherteks.

Secara sederhana dapat dituliskan sebagai berikut :

(1) c = p XOR k [4]

sedangkan proses pendekripsian dituliskan sbb. :

(2) p = c XOR k [5]

dengan c : chiperteks

p : plainteks

k : kunci rahasia yang digunakan

jika,operator logika XOR akan menghasilkan T (benar) apabila salah satu dari kedua operand (tetapi tidak keduanya) bernilai T.

Apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah satu operand bernilai 1.

Contoh :

x 00111010 10101011

y 10100100 01010101

hasil 10011110 11111110

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan menghasilkan 0.

Contoh :

X 01010101 10101010

Y 01010101 10101010

Hasil 00000000 00000000

Apabila suatu bilangan biner x di XORkan sebanyak 2 kali dengan suatu bilangan biner yang sama maka akan diperoleh bilangan x tersebut kembali.

Contoh :

X 11010101 10001011

Y 01010110 11101010

Hasil1 10000011 01100001

Apabila hasil1 di-XOR-kan kembali dengan Y maka diperoleh :

Hasil1 10000011 01100001

Y 01010110 11101010

Hasil2 11010101 10001011

Ternyata diperoleh hasil2 sama dengan x.

Hal ini merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi, yaitu suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu dan dapat pula dengan mudah diperoleh kembali dari pesan sandi dengan menggunakan operator XOR pada kunci yang sama.

3. PEMBAHASAN

Pada tugas makalah ini akan dibahas analisa algoritma one time pad. Contonya adalah Pada saat kita mengirimkan pesan terhadap seseorang, pesan tersebut pastinya bersifat rahasia disini OTP akan menenkripsi nya sehingga pesan tersebut aman. Dibawah ini akan di jelaskan contoh penggunaan algoritma one time pad pada sebuah pesan.

Misalkan :

Kita ingin mengirim pesan untuk seseorang,pesan yang akan dikirimkan yaitu FIRMAN dengan kata kunci GLORIA.

Gambaran proses pengiriman pesan

Langkah yang dilakukan sbb :

a. Ubah menjadi kode ASCII dan biner

dibawah ini adalah table kode ASCII yang digunakan :

Tabel 2 . ASCII

0 1 2 3 4 5 6 7

00 NUL SOH STX ETX EOT ENQ ACK BEL

01 BS HT LF VT FF CR SO SI

02 DLE DC1 DC2 DC3 DC4 NAK SYN ETB

03 CAN EM SUB ESC FS GS RS US

04 Blank ! # $ % &

05 ( ) * + , - . /

06 0 1 2 3 4 5 6 7

07 8 9 : ; < = > ?

10 @ A B C D E F G

11 H I J K L M N O

12 P Q R S T U V W

13 X Y Z [ \ ] ^ _

14 ` a b c d e f G

15 h I j k l m n O

16 p q r s t u v W

17 x y z { | } ~ DEL

F 106 0001 0000 0110

I 111 0001 0001 0001

R 122 0001 0010 0010

M 115 0001 0001 0101

A 101 0001 0000 0001

N 116 0001 0001 0110

Hal yang sama dilakukan pada kunci

G 107 0001 0000 0111

L 114 0001 0001 0100

O 117 0001 0001 0111

R 122 0001 0010 0010

I 111 0001 0001 0001

A 101 0001 0000 0001

b. Pesan di-XORkan dengan kunci

Akan diperoleh

F 0000 0000 0001001

I 0000 0000 0101005

R 0000 0011 0101035

M 0000 0011 0100034

A 0000 0001 0000010

N 0000 0001 0111017

c. Kode ASCII tersebut diterjemahkan lagi

menjadi karakter

Diperoleh : NUL ENQ GS FS BS SI

Untuk memperoleh plainteks kembali,

penerima pesan cukup mengubah lagi

plainteks menjadi ASCII dan meng-XORkan

kembali dengan kunci.

Gambar Proses Enkripsi dan Deskripsi sebuah pesan

Pada Gambar diatas dapat dilihat proses dari sebuah pengiriman pesan dari komputer satu ke komputer lainnya. Proses diatas menggunakan fungsi hash. Dimana pertama-tama pesan milik pengirim di pisah menjadi 2. pesan tersebut dienkripsi oleh MD5+RSA dimana MD5+RSA sebagai kunci private milik pengirim. Dan dienkripsi juga oleh OTP. OTP disini sebagai simetrik key. Kemudian hasil enkripsi keduanya digabungkan menjadi satu bersama juga dengan RSA sebagai kunci public penerima. Kemudian ke semua file di kirim melalui internet dalam bentuk chipertext. Pada saat pesan diterima oleh penerima. Pesan tersebut dibuka satu persatu oleh penerima kemudian setelah itu baru digabungkan kesemuannya sehingga menjadi satu pesan yang utuh. Chiper simetrik key dibuka oleh RSA sebagai kunci public penerima. Hasilnya adalah simetrik key. Simetrik key adalah OTP. OTP yang berisi chipertext dibuka lalu dipisah menjadi 2. salah satunya ada pada MD5+RSA. MD5+RSA adalah kunci public pengirim. Kunci ini dibuka kemudian hasilnya digabungkan dengan hasil dari chipertext OTP. Setelah itu menjadi pesan yang benar.

Ada beberapa parameter yang diperhitungkan untuk mengetahui kehandalan Sistem OTP ini, antara lain:

Terenkrip/tidak terenkrip

Terenkripsi dan tidaknya sebuah pesan tergantung pada keadaan jaringan saat itu. File terenkripsi atau tidaknya tidak dapat dipastikan. Akan tetapi kita dapat mengetahui file tersebut terenkripsi atau tidak dengan melakukkan sniffing (alias mengendus, adalah suatu kegiatan mengendus-endus seperti namanya).

Authentifikasi

Autentifikasi pada OTP sama halnya dengan validasi pada system email user. proses validasi user pada saat melakukan proses dengan system. Sama seperti biasanya username dan password user dicek untuk diproses apakan kebenaranya memang benar. Bila benar maka mereka berhak masuk ke system selanjutnya. Jadi pada OTP hanya user yang benar yang boleh menggunakan system OTP. Pada tahap ini menggunakan privat key algoritma RSA. Pada saat pengiriman public dan private key dibutuhkan untuk proses pengiriman pesan ini.

Integritas

Integritas adalah suatu keadaan dimana pada saat kita mengirim pesan dan pada saat menerima pesan tersebut masii sama dengan pesan yang asli. Atau pada saat kita mengirim. Pesan tersebut masih terenkripsi dengan baik. Sehingga tidak ada perubahan dalam isi nya.

Dibawah ini adalah contoh bahasa C padaprogram one time pad untuk proses pengiriman pesan.

/* CRYPTIC.C V 1.0 Copyright 1998 by Glen E. Gardner, Jr. */

/* Encrypts a file using a random key and saves the key. */

/* Automatically generates a new key when needed. The new */

/* key is deleted on the second use (decryption) to prevent */

/* accidental reuse of the same key for encryption. */

/* This program is freeware, use it freely and enjoy! */

/* Be sure to cite the author and include the original */

/* source in all distributions. */

/* Written and compiled in ANSI C using Borland C++ V 5.02 */

/* Tested on Windows NT 4.0 and FreeBSD 2.2.5 (using gcc). */

/* Run this program once to encrypt and agin, using the */

/* same key, to decrypt. */

/* Any file can be used as a key provided it is the */

/* same size (or larger) as the file being encrypted. */

/* (small,repeating keys are for whimps) */

/* You need to be careful what you use as a key. If you */

/* don't believe this, try encrypting a file using a windows*/

/* dll file as a key and looking at the output with a text */

/* editor. */

/* The encrypted output is binary. You can use cryptic to */

/* encrypt any file. */

#include

#include

#include

/* Use this include with GCC on FreeBSD machines.*/

/* #include */

/* Use this include instead of the one above for Windows NT. */

#include

void makekey(long int,char *);

int main(int argc,char **argv)

{

struct stat statbuf;

time_t t;

int key;

int data;

int output;

int count=0;

int FLAG=0;

FILE * mykeyfile;

FILE * sourcefile;

FILE * destfile;

if(argc4){printf("Too many arguments.");return(1);}

/* Seed the random number generator for later use. */

srand((unsigned) time(&t));

/* get the size of the source file */

if ((sourcefile = fopen(argv[1], "rb"))== NULL)

{

printf("Can't open source file.\n");

return(4);

}

fflush(sourcefile);

fstat(fileno(sourcefile), &statbuf);

fclose(sourcefile);

/* Look for default key file if none is given */

if(argv[3]==NULL){argv[3]="newkey";}

/* If the key is not found make a new one. */

if ((mykeyfile = fopen(argv[3], "r"))== NULL)

{

FLAG=1;

printf("Can't open key file.\n");

printf("Making a new key...\n");

makekey(statbuf.st_size,"newkey");

}else{fclose(mykeyfile);}

/* open all the necessary files. */

mykeyfile=fopen(argv[3],"rb");

sourcefile=fopen(argv[1],"rb");

destfile=fopen(argv[2],"wb");

/* Use the key to encrypt/decrypt the source file. */

while (count < (statbuf.st_size))

{

key=fgetc(mykeyfile);

data=fgetc(sourcefile);

/* This is all there is to it. */

output=(key^data);

/* XOR the data byte once with a byte from a key

and it encrypts. */

/* XOR the resultant byte again with the same byte

from the same key, and it decrypts. */

/* write the result to the output file. */

fputc(output,destfile);

count++;

}

/* close the files. */

fclose(mykeyfile);

fclose(sourcefile);

fclose(destfile);

/* Delete the default key on the second time around to

prevent it being reused. */

/* The key is deleted only if a key was not specified

and if the default */

/* key is not new. */

if(FLAG==0)

{

/* use this for Windows NT */

system("erase newkey");

/* use this for FreeBSD */

/* system("rm newkey"); */

}

return(0);

}

/* MAKEKEY() makes a key using random numbers.

*/

/* The random number generator is seeded from the

real time clock. */

/* It is fairly random, but the nature of the

pseudorandom generator is not */

/* completely random. This means that a clever

programmer will */

/* eventually crack your key. */

/* Don't reuse keys, and consider investing time in a

better way of generating */

/* random number strings to use as a key. */

void makekey(long int size,char *name)

{

int byte;

int count=0;

FILE * filein;

filein=fopen(name,"wb");

while(count