Cryptography
Total Page:16
File Type:pdf, Size:1020Kb
University of Indonesia Magister of Information Technology Cryptography Arrianto Mukti Wibowo University of Indonesia – University of Budi Luhur Magister of Information Technology Tujuan • Mempelajari berbagai metode dan teknik penyembunyian data menggunakan kriptografi. University of Indonesia – University of Budi Luhur Magister of Information Technology Topik • Symmetric & asymmetric cryptography, key strength, cryptosystems, public key infrastructure (PKI), one-way function, hash function, key management, cryptographic attacks University of Indonesia – University of Budi Luhur Magister of Information Technology Cryptography Issues (Schneier ‟96) • Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi (penyandian). • Keutuhan (integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu arah. • Jaminan atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan transaksi dilakukan dengan menggunakan password atau sertifikat digital. Sedangkan keotentikan data transaksi dapat dilakukan dengan tanda tangan digital. • Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal (non-repudiation) dengan memanfaatkan tanda tangan digital dan sertifikat digital. University of Indonesia – University of Budi Luhur Magister of Information Technology Makna Kriptografi • Krupto + Grafh = secret + writing • Cryptography: ilmu untuk membuat sebuah pesan menjadi aman University of Indonesia – University of Budi Luhur Magister of Information Technology Cryptographic algorithm & key • Cipher: fungsi matematika yang dipergunakan untuk enkripsi & dekripsi. • Key (kunci): Kenapa tidak pakai algoritma rahasia saja? Karena susah untuk membuat yang baru setiap kali akan mengirim pesan! Jadi pakai kunci saja • Analogi: Pernah lihat gembok yang menggunakan kode-kode angka untuk membuka gemboknya? – Cipher / algoritma: hampir semua orang tahu cara membuka/ mengunci gembok: putar saja kode-kode angkanya ke posisi yang tepat – Kuncinya: hanya bisa diputar oleh orang yang tahu urutan kode yang benar! University of Indonesia – University of Budi Luhur Magister of Information Technology Proses Kriptografis Key Key Plaintext Encryption Ciphertext Decryption Plaintext University of Indonesia – University of Budi Luhur Magister of Information Technology Monoalphabetic cipher • Jumlah kombinasi: 26! ( = 26x25x24x…x1 4 x 1026) kemungkinan kunci ABCDEFGHIJKLMNOPQRSTUVWXYZ PBUYMEVHXIJCLDNOGQRTKWZAFS • Jadi kalau plaintext-nya “FASILKOM” maka ciphertextnya adalah “EPRXCJNL” University of Indonesia – University of Budi Luhur Magister of Information Technology Beberapa sejarah kriptografi • Spartan roll • Atbash, kriptografi Ibrani monoalphabetic cipher • Julius Caesar cipher menggeser alphabet • Mesin rotor dipergunakan dalam Perang Saudara di A.S. abad ke-19 • Enigma, perang dunia II • Steganography? Menyembunyikan, bukan menyandikan! University of Indonesia – University of Budi Luhur Magister of Information Technology Symetric Cryptography • Sebuah kunci yang dipakai bersama-sama oleh pengirim pesan dan penerima pesan • Contoh: DES, TripleDES, AES, Blowfish, Rambutan, Twofish, RC4, RC5, RC6, Lucifer, IDEA (dalam PGP) • Ada problem “pendistribusian kunci rahasia”. University of Indonesia – University of Budi Luhur Magister of Information Technology Authentication dgn Symetric Key • Kalo agen 007 ingin ketemu agen 005, tapi mereka belom pernah kenal muka, gimana caranya? M (boss mereka) memberikan mereka password „Golden Gun‟. Tapi kalau mereka menyebutkan password itu di depan umum, nanti bisa terdengar orang lain! • Solusi, dengan „challenge & respons‟. Misalnya 007 mengotentikasi 005: – 007 memilih bilangan random – 007 mengirim bilangan random itu sebagai tantangan kepada 005 – 005 mengenkripsi bilangan random itu dengan kunci „Golden Gun‟ – 005 mengirim ciphertext kepada 007 – 007 mendekripsi ciphertext itu – Jika plaintextnya = bilangan random ybs, maka 007 dapat merasa pasti bahwa 005 itu benar-benar yang asli! 007 Bil random 005 mengenkripsi bil 007 mendekripsi random itu EK(Bil random) ciphertext University of Indonesia – University of Budi Luhur Magister of Information Technology Beberapa “black box” dasar untuk kriptrografi • XOR • Permutasi • Subtitusi University of Indonesia – University of Budi Luhur Magister of Information Technology XOR Input 1 Input 2 Output 0 0 0 0 1 1 1 0 1 1 1 0 Coba kalau dibalik…! University of Indonesia – University of Budi Luhur Magister of Information Technology Subtitution • Jika kita memiliki input k-bit dengan kemungkinan 2k, kita harus menentukan pasangan setiap k-bit tersebut yang lebarnya juga k-bit. 0000 0001 0010 0011 dst… 0101 1011 1000 0100 University of Indonesia – University of Budi Luhur Magister of Information Technology Permutasi • Untuk setiap bit dari input k-bit, tiap bit ditukar posisinya ke tempat lain. Misalnya bit ke-4 dari input menjadi bit ke-5. Lalu bit ke-7 dari input jadi bit ke 2, dst. Bit ke: 0 1 2 3 4 5 6 7 Bit ke: 0 1 2 3 4 5 6 7 • Why permute secara fixed? • Tak terlalu berguna kecuali untuk membuatnya tidak efisien pada software! University of Indonesia – University of Budi Luhur Magister of Information Technology Data Encryption Standard • Diciptakan tahun 1977 oleh National Bureau of Standard, AS. • Menggunakan kunci 56-bit dengan tambahan 8-bit parity untuk kunci ybs. • Termasuk „block cipher‟. Satu blok DES panjangnya 64- bit. • Menggunaan XOR, S-Box, dan P-Box • Memiliki sifat-sifat symetric key: – One-to-one mapping: hal ini diperlukan agar saat proses dekripsi dari ciphertext, hanya ada satu plaintext. – Cipertext dari plaintext harus tidak dapat diduga (random). Perfect secrecy berarti antara ciphertext dan plaintext secara statistik saling lepas. University of Indonesia – University of Budi Luhur Magister of Information Technology Beberapa metode DES • Electronic Code Book • Cipher Block Chaining University of Indonesia – University of Budi Luhur Magister of Information Technology Electronic Code Book Plaintext1 Plaintext2 Plaintext3 DES DES DES key key Encryption key Encryption Encryption Ciphertext1 Ciphertext2 Ciphertext3 University of Indonesia – University of Budi Luhur Magister of Information Technology Cipher Block Chaining Plaintext 1 Plaintext2 Plaintext3 random IV DES key DES DES Encryption key Encryption key Encryption Ciphertext 1 Ciphertext2 Ciphertext3 University of Indonesia – University of Budi Luhur Magister of Information Technology Triple DES • Kalau enkripsi 2 kali dengan kunci yang sama: search space –nya tetap sama, yakni 256. Jadi tidak bertambah secure. • Kalau enkripsi 2 kali dengan kunci yang berbeda bagaimana? Harusnya kalau kuncinya 2 maka panjangnya jadi 112-bit. Jadi faktor kesulitannya bertambah 256 kali. Ternyata Merkle & Hellman menemukan „celah‟ untuk membobol hanya dalam waktu kira-kira 2 kali DES 56 bit. Jadi seolah-oleh DES 57-bit. • Ada beberapa mode Triple DES (112 bit): – Umumnya menggunakan EncryptK1 lalu DecryptK2 lalu EncryptK1 --> EDE2 – Bisa juga EEE2, tapi less secure dari EDE2, karena permutasi akhir (pada blok pertama) dan permutas awal (pada blok berikutnya) akan saling meng-cancel • Kenapa enkripsi 3 kali? Karena belum ada yang menemukan kelemahannya… • Alasan EDE pakai 2 kunci adalah karena dianggap cukup aman dengan kunci 112-bit dan belum ada yang bisa menjebolnya (kecuali dengan brute force). Jadi tidak perlu bikin K3 56x3 bit (meskipun bisa, dan paling aman). University of Indonesia – University of Budi Luhur Magister of Information Technology Advanced Encryption Standard • Diinisiasikan oleh NIST thn 1997 • Syarat: – Tahan terhadap semua jenis serangan yg diketahui – Simpel – Code yang kecil – Cepat • Thn 1999 ada 5 finalis: Twofish (Counterpane), Rijndael (Daemen & Rijmen), RC6 (RSA), Serpent (Anderson, Biham, Knudsen), MARS (IBM Lucifer) • Thn 2000 diumumkan pemenangnya adalah Rijndael • AES bisa menggunakan kunci 128, 192 dan 256 bit • Jika sebuah mesin pemecah DES bisa memecahkan DES dalam waktu 1 detik, maka mesin yang sama perlu 149 trilyun tahun. University of Indonesia – University of Budi Luhur Magister of Information Technology One Time Pad • Meskipun ada yang mengatakan bahwa tidak ada skim enkripsi yang 100% secure, ada yang sebenarnya bisa dibuktikan 100% aman (secara matematis). • Caranya: kuncinya adalah deretan yang random yang tidak pernah berulang. Atau dengan kata lain, kuncinya sepanjang messagenya. • Dengan kata lain, sebuah ciphertext tanpa one-time pad-nya, dapat menghasilkan message (meskipun bukan message asli) apa saja! • Bisa pakai XOR…! • Termasuk jenis „stream cipher‟ University of Indonesia – University of Budi Luhur Magister of Information Technology Public Key Cryptography • Ada 2 kegunaan yang mendasar: – Menandatangani pesan – Mengirim surat rahasia dalam amplop yang tidak bisa dibuka orang lain • Ada sepasang kunci untuk setiap orang (entitas): – kunci publik (didistribusikan kepada khalayak ramai / umum) – kunci privat (disimpan secara rahasia, hanya diketahui diri sendiri) University of Indonesia – University of Budi Luhur Magister of Information Technology Membungkus pesan • Semua orang bisa (Anto, Chandra, Deni) mengirim surat ke “Penerima” (Badu) • Hanya “penerima” yang bisa membuka surat • (pada prakteknya tidak persis spt ini) Pengirim (Anto) Penerima (Badu) Kunci Enkripsi privat Kunci publik Dekripsi Pesan Sandi Pesan University of Indonesia – University of Budi Luhur Magister of Information Technology Menandatangani pesan dgn public-key cryptography • Hanya pemilik kunci privat (penandatangan, Anto) saja yang bisa membuat tanda tangan