Kriptografi
Pendahuluan Plaintext : Secretkey Ciphertext Cryptography Cryptho = rahasia (secret) Graphy = tulisan Seni dan ilmu untuk menjaga agar pesan aman Cryptanalyst pelaku atau praktisi kriptografi Cryptanalysis seni dan ilmu untuk memecahkan ciphertext menjadi plaintext tanpa melalui cara yang seharusnya (deskripsi) Cryptology Ilmu pengetahuan tentang kode-kode rahasia Cabang matetatika yang mencakup kriptografi dan kriptoanalisis Cryptologist pelaku cryptology Cryptosystem algoritma kriptografi, ditambah dengan seluruh kemungkinan plaintext, ciphertext dan kunci-kuncinya.
Plaintext + Secretkey Ciphertext Pengirim : Plaintext + Secretkey Ciphertext Proses Enkripsi Penerima : Ciphertext + Secretkey Plaintext Proses Dekripsi
Tujuan sistem kriptografi Confidentiality Message integrity Non-repudiation Authentication
Algoritma Algoritma; Hubungan secara matematis: Algoritma enskripsi = E Algoritma deskripsi = D Algoritma enskripsi menggunakan kunci enskripsi = KE Algoritma deskripsi menggunakan kunci deskripsi = KD Hubungan secara matematis: KE (M) = C proses enskripsi KD (C) = M proses deskripsi Pesan M dengan kunci K menghasilkan pesan C, sedangkan C dengan kunci K menghasilkan pesan M. Keamanan pesan tergantung kepada kunci-kunci yang digunakan, tidak tergantung kepada algoritmanya. Tidak jadi masalah algoritma diketahui publik selama tidak mengetahui kuncinya.
Pemecah algoritma Usaha analisis algoritma attack Diungkapkan Dutchman A Kerckhoffs (abad ke 19) yaitu: kerahasiaan harus terletak pada kuncinya Lars Knudsen jenis pemecah algoritma: Total Break seorang analis berhasil menemukan kunci K, yang digunakan untuk melindungi data Dk(C) = P Global deduction analisis sandi mendapatkan algoritma aternatif A yang ekuivalen dengan Dk(C), tanpa mengetahui K Instance (local) deduction analis mendapatkan plaintext atau ciphertext yang disadap Information deduction analis mendapatkan informasi mengenai kunci atau plaintext.
Mengukur kompleksitas serangan Data complexity Jumlah data yang diperlukan sebagai input attack; Semakin sedikit data yang diperlukan untuk melakukan attack, maka kulitas algoritmanya semakin tidak baik. Processing complexity Lama waktu yang tersedia untuk melakukan serangan faktor kerja; Semakin cepat waktu yang dibutuhkan, maka kualitas algoritma semakin jelek. Storage requirement Jumlah memori yang dibutuhkan untuk melakukan attack
Jenis algoritma kriptografi Algoritma simetris Algoritma konvensional; Menggunakan kunci enskripsi yang sama dengan deskripsi; Pengirim dan penerima menyetujui satu kunci tertentu sebelum melakukan komunikasi; Yang termasuk OTP, DES, RC2, RC4, RC5, RC6, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi Algoritma asimetris Disebut kunci publik; Kunci eksnripsi dan kunci deskripsi berbeda; Kunci enskripsi kunci publik; Kunci deskripsi kunci private (kadang-kadang disebut juga kunci rahasia); Algoritma Hash Panjang pesan tertentu dikurangi sehingga menjadi panjang pesan khusus.
Tipe dan karakteristik algoritma kriptografi
Jenis-jenis serangan kriptanalis Asumsi algoritma telah dikenal secara luas: Ciphertext only attack; Known-plaintext attack; Chosen-plaintext attack; Adaptive-chosen-palintext attack; Chosen-chipertext attack; Chosen text.
Ciphertext only attack Cryptanalys hanya memiliki beberapa ciphertext; Semua informasi dienskrip dengan algoritma yang sama; Tidak mengetahui kunci dan plaintext; Pekerjaan hanya mendapatkan plaintext atau mencari kuncinya terlebih dahulu diketahui: C1 = KE(P1), C2 = KE(P2), …CN = KE(PN) dicari : K dan P1, P2 , PN
Known-plaintext attack Mengetahui chipertext beserta plaintext-nya; Sebuah surat mendapatkan kalimat ‘apa khabar’; Analis memperkirakan chipertext yang berhubungan dengan plaintext ‘apa khabar’; Analis mencari kunci menemukan kuncinya dapat menemukan palintext-nya yang lain dienskrip dengan algoritma yang sama Diketahui: P1, P2 , …… PN serta C1, C2, …… CN Dicari : K atau P lainnya
Chosen-plaintext attack Hanya mengetahui sejumlah plaintext dan ciphertext; Bebas memilih plaintext-nya dienskripsi dengan agoritma dan kunci yang sama; Memilih satu blok besar plaintext untuk dienskripsi; Hanya melakukan menebak kuncinya; Diketahui: P1, P2 , …… PN serta C1, C2, …… CN dan analis memilih P1, P2 , …… PN Dicari : K atau P lainnya
Adaptive-chosen-palintext attack Memilih plaintext yang dienskrip dan memodifikasi pilihan berdasarkan enskrip sebelumnya; Hanya memilih blok plaintext yang lebih kecil dan memilih lainnya berdasarkan hasil sebelumnya
Chosen-chipertext attack Memilih chipertext yang berbeda untuk dienskrip; Dan mempunyai akses terhadap plaintext yang dienskripsikan. Pekerjaan yang dialukan mencari K Diketahui :C1, P1=KD(C1), C2, P2=KD(C2), ….Cn, Pn=KD(Cn)’ Dicari : K
Chosen text Mengabungkan chosen plaintext dan chosen ciphertext attack. Lebih lengkap lihat tabel
Yang diketahui Cryptanalyst No Jenis serangan Yang diketahui Cryptanalyst 1 Ciphertext only attack Algoritma enskripsi Chipertext yang akan dibaca 2 Known-plaintext attack Sepasang/lebih plaintext-chipertext yang disusun dengan kunci rahasia tertentu 3 Chosen-plaintext attack Plaintext yang dipilih analis, bersama sama dengan ciphertext pasangannya yang dibangkitkan kunci rahasia tertentu
4 Adaptive-chosen-plaintext attack Algoritma enskripsi Chipertext yang akan dibaca Plaintext dapat dipiih lebih khusus 5 Chosen-chipertext attack 6 Chosen text
Keamanan algoritma Algoritma aman bila tidak ada cara untuk ditemukan. Sampai saat ini algoritma yang cukup aman on-time-pad. Rata-rata algoritma dapat dipecahkan dengan Ciphertext only attack dengan teknik brute-force-attack. Cukup aman : Harga menjebol lebih mahal dari informasi; Waktu untuk membobol lebih lama daripada lamanya waktu informasi Membobol kartu kredit 1thn dan sebelumnya kartu kredit sudah habis masanya; Jumlah data yang dienskrip denga kunci dan agoritma yang sama lebih sedikit dari jumlah data yang diperlukan untuk menebus algoritma Satu kunci untuk satu pesan.
Permasalahan algoritma Memastikan keamanan algoritma enkripsi Algoritma harus dievaluasi oleh pakar Algoritma yang tertutup (tidak dibuka kepada publik) dianggap tidak aman Membuat algoritma yang aman tidak mudah Code maker vs code breakers akan terus berlangsung
Sisi Lain Kriptografi
Security & Intelligence Pengamanan Signal Security Steganography Traffic security (call sign changes, dummy msg, radio silence) Cryptography Electronic Security Emission security (shifting radar freq.) Counter -Countermeasures (looking through jammed radar) Signal Intelligence Interception & Direction-Finding Traffic Analysis Cryptanalysis Electronic Intelligence Electronic reconnaissance (eavesdroping on radar emission) Countermeasures (jamming, false radar echose) Source: David Kahn, The Code Breakers
Keamanan Negara Kemampuan mengamankan data dan menangkap data merupakan kepentingan negara Privacy vs keamanan negara? Spy vs spy?
Penyadapan Internasional Sumber: IEEE Spectrum April 2003
Sadap, Filter, Simpan Sumber: IEEE Spectrum April 2003
Steganography Yunani (Greek) vs Persia Histalaeus Digital watermarking Pesan disembunyikan di meja yang dilapisi lilin Histalaeus Pesan ditato di kepala budak yang telah digunduli Digital watermarking Menandai kepemilikan gambar digital
Kriptografi: Transposition Contoh transposition Rail fence Spartan Scytale (5 BC) http://www.unmuseum.org/excoded.htm http://www.ccisource.com/content/resources/articles/Jan01/symmetric.htm
Kriptografi: Substitution Contoh substitution Caesar cipher (geser 3 huruf) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z d e f g h i j k l m n o p q r s t u v w x y z a b c Enigma (rotor) Digunakan Jerman pada perang dunia ke 2
Komponen dari kriptografi Plain text Sumber berita/pesan/teks asli Cipher text Teks yang sudah diproses (diacak, digantikan) Algoritma & kunci Misal: subsitusi (algoritma) & number of shift (kunci) Pemisahan alg & kunci ditemukan oleh Auguste Kerckhoffs von Niewenhof (1883)
CRYPTOGRAPHY Private key cryptosystem (Sistem kripto kunci privat) Simetrik (kunci untuk mengunci dan membuka sama/satu) Public key cryptosystem (Sistem kripto kunci publik) Asimetrik (kunci untuk mengunci dan membuka berbeda)
Kripto Kunci Privat Shared (secret) key Encryption Decryption Alice Bob Shared (secret) key Encryption Decryption Plaintext Plaintext Ciphertext My phone 555-1234 My phone 555-1234 Y$3*@ Eve
Kripto Kunci Privat Menggunakan satu kunci Masalah dalam distribusi kunci Pengiriman kunci membutuhkan saluran khusus Jumlah kunci meledak secara eksponensial: n (n-1)/2: (lihat ilustrasi / gambar di bawah) Keuntungan: operasi yang cepat Contoh: DES, IDEA
Kripto Kunci Publik Public key repository Certificate Authority (CA) Private key Encryption Decryption Plaintext Plaintext Ciphertext My phone 555-1234 My phone 555-1234 L)8*@Hg
Kripto Kunci Publik Menggunakan kunci yang berbeda untuk enkripsi dan dekripsi Jumlah kunci yang lebih sedikit dibandingkan enkripsi dengan kunci privat Membutuhkan komputasi yang tinggi (membutuhkan waktu yang lebih lama)
Kripto Kunci Publik Membutuhkan penyimpanan kunci publik (Certificate Authority) yang terpercaya (trusted). Siapa? Verisign? Pengelolaan kunci bisa menjadi kompleks (revocation, pihak ketiga, dll.) Contoh: RSA, ECC
Penggunaan Kripto Kunci Publik Secure Socket Layer (SSL) HTTPS SSH STUNNEL Pretty Good Privacy (PGP) dan GNU Privacy Guard (GPG)
Sertifikat Digital X.509 versi 3 Nomor Seri Sertifikat Signature Algorithm Identifier (untuk signature dari CA) Nama X.500 dari CA Digital Signature dibuat dengan menggunakan kunci privat CA Perioda validitas (mulai dan berakhirnya) Nama X.500 dari Subjek Sertifikat Informasi Kunci Publik milik Subjek Agoritma yang digunakan Isi Kunci Publik Identifier Unik dari Penerbit (optional) Identifier Unik dari Subjek (optional) Extensions (optional) Digital Signature yang dibuat CA
Protokol SSL 1 2 Client Server 3 4 Client Hello / Connection Request Daftar algoritma / cipher suite Pemilihan cipher suite 2 Sertifikat Digital Server Encrypted secret / key / nonce Client Server Decrypted secret 3 Sertifikat Digital Client Encrypted secret / key / nonce Decrypted secret 4 Kunci simteris disepakati Transfer data dengan enkripsi kunci simetris
Message Digest Menghasilkan summary (digest) dari sebuah pesan (file, stream data) Menggunakan hash function untuk menghasilkan digest tersebut
Fungsi Hash (Hash Function) Merupakan fungsi satu arah (one way function) yang dapat menghasilkan ciri (signature) dari data (berkas, stream) Perubahan satu bit saja akan mengubah keluaran hash secara drastis Digunakan untuk menjamin integritas dan digital signature
Fungsi Hash (Hash Function)
Contoh Hash Function Contoh: MD5, SHA unix$ md5sum /bin/login af005c0810eeca2d50f2904d87d9ba1c /bin/login Program md5sum untuk windows merupakan bagian dari Cygwin distribution yang dapat diperoleh dari http://sunsite.bilkent.edu.tr/pub/cygwin/cygwin-b20/full.exe
Penggunaan Hash: Pengirim Isi email tidak dirahasiakan. Diinginkan terjaganya integritas dan non-repudiation Keduanya disatukan dan dikirimkan From: Budi Subject: Kiriman Kiriman datang Senin pagi From: Budi Subject: Kiriman Kiriman datang Senin pagi ohx76@# hash af005c0810eeca2d5 Enkripsi (jika perlu) ohx76@#
Pada Penerima hash sama? dekripsi ohx76@# Jika keduanya tidak sama, patut dicurigai. Integritas tidak terjamin. Jika keduanya sama, integritas terjamin. Jika enkripsi menggunakan public key cryptosystem,pengirim tidak dapat menyangkal. From: Indrawan Subject: Kiriman Kiriman akan datang minggu malam hash af005c0810eeca2d5 sama? dekripsi ohx76@# af005c0810eeca2d5
Contoh Penggunaan Hash Hasil hash dienkripsi untuk menjamin keamanannya (integritas) Ukuran hasil hash yang lebih kecil dibandingkan ukuran pesan asalnya membutuhkan waktu enkripsi yang lebih singkat (dibandingkan jika mengenkripsi seluruh pesan) Digital Signature Pesan juga dapat dienkripsi jika diinginkan kerahasiaan
Masalah Seputar Kripto Memastikan keamanan algoritma enkripsi Algoritma harus dievaluasi oleh pakar Algoritma yang tertutup (tidak dibuka kepada publik) dianggap tidak aman Membuat algoritma yang aman tidak mudah Code maker vs code breakers akan terus berlangsung