Dasar Cryptography.

Slides:



Advertisements
Presentasi serupa
Security+ Guide to Network Security Fundamentals, Third Edition
Advertisements

Chapter 12 Applying Cryptography
KULIAH VI KRIPTOGRAFI Aswin Suharsono KOM Keamanan Jaringan
Network Security Application
PGP (Pretty Good Privacy)
Kriptografi, Enkripsi dan Dekripsi
Enkripsi dan Kriptografi
 Encryption  Application layer interface for security protocols  Other risks and threats to data security and reliable network operations Listen.
Teknologi Informasi Kriptografi
PENGAMANAN DATA.
ENKRIPSI DATA.
KRIPTOGRAFI Kriptografi adalah suatu ilmu yang mempelajari
Kriptografi Kunci-Publik
PERTEMUAN KE-10 PERKULIAHAN KEAMANAN KOMPUTER
Enkripsi dan KEAMANAN JARINGAN
Otentikasi dan Tandatangan Digital
Rinaldi M/IF5054 Kriptografi
KELOMPOK FIRDAUS MARINGGA ( ) 2. HARUM AMBARWATI ( ) 3. I GUSTI BAGUS PRAMA ADITYA ( )
Dasar-dasar keamanan Sistem Informasi
Manajemen Jaringan Komputer Topik: Pengamanan Jaringan dan Informasi
Secure Socket Layer (SSL)
Kriptografi Kunci-Publik
Algoritma Kriptografi Modern
Enskripsi. Tujuan  Setelah perkuliahan pokok bahasan ini mahasiswa dapat: menjelaskan defenisi enskripsi, menjelaskan model-model enskripsi menjelaskan.
Sistem Kriptografi Kunci-Publik
Algoritma dan Struktur Data Lanjut
Kriptografi Kunci Publik (Asimetry Key) Algoritma RSA Materi 7
Perkembangan Riset dalam Bidang Kriptografi
Keamanan Jaringan Nirkabel
Peran Kriptografi dalam Kehidupan Sehari-hari
Keamanan (Security ) Pada Sistem Terdistribusi
Website Security.
Tandatangan Digital.
DIGITAL SIGNATURE.
KEAMANAN DALAM E-COMMERCE
KRIPTOGRAFI.
KEAMANAN PADA SISTEM TERDISTRIBUSI
Kriptografi Kunci-Publik
Kriptografi Kunci-Publik
Otentikasi dan Tandatangan Digital
MODUL KEAMANAN KOMPUTER
KEAMANAN DALAM E-COMMERCE
KRIPTOGRAFI.
KRIPTOGRAFI.
KELOMPOK DUA EDI TRIYANTO DAMANIK :
Kriptografi Kunci Publik (Asimetry Key) Algoritma Digital Signature Algorithm Materi 8 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG.
Public Key Infrastructure
Kriptografi (Simetry Key) Materi 6
Kriptografi dalam Kehidupan Sehari-hari
Tipe dan Mode Algoritma Simetri
Kriptografi, Enkripsi dan Dekripsi
Tandatangan Digital.
Dasar-dasar keamanan Sistem Informasi
Kriptografi (Simetry Key) Materi 6
Dasar-dasar keamanan Sistem Informasi
Kriptografi, Enkripsi dan Dekripsi
Enkripsi dan Dekripsi.
Protocol Keamanan Menggunakan Kriptografi (Enkripsi dan Dekripsi)
Tugas Keamanan Komputer dan Jaringan
KEAMANAN PADA SISTEM TERDISTRIBUSI
Pengantar Kriptografi
PENGAMANAN Sistem Komputer
Keamanan Informasi Week 4 – Enkripsi Algoritma asimetris.
Keamanan Pada Sistem Terdistribusi Nama Kelompok : 1.M.Ulfi Taufik Nurahman Nurmanudin Syaifuna
Kriptografi Levy Olivia Nur, MT.
KRIPTOGRAFI.
Kriptografi Kunci Publik
Enskripsi.
KEAMANAN PADA SISTEM TERDISTRIBUSI
This presentation uses a free template provided by FPPT.com Studi Algoritma Enkripsi AES, DES dan RSA untuk Keamanan.
Transcript presentasi:

Dasar Cryptography

Definisi Kata cryptography berasal dari bahasa Yunani krupto (hidden atau secret) dan grafh (written) Art of secret writing Seni merubah informasi ke dalam bentuk yang tidak dapat dimengerti, dengan cara yang sedemikian hingga memungkinkan untuk mengembalikannya ke dalam bentuk semula

Layanan yang Disediakan Cryptography User Authentication Mekanisme untuk membuktikan identitas anda (U are U) Password, user-id, kode pin, kartu magnetis, smart card, biometric properties (sidik jari, retina, dsb.) etc.

Layanan yang Disediakan Cryptography (2) Data Authentication Data integrity Layanan ini menjamin bahwa isi pesan yang dikirimkan belum pernah dimanipulasi Layanan data integrity sendiri tidak akan ada artinya bila bekerja sendirian (tidak mampu digunakan untuk mengetahui apakah data yang diterima belum dimodifikasi kecuali anda tahu betul bahwa pesan itu anda terima langsung dan dikirimkan oleh orang yang jujur) Oleh karena itu, data integrity service harus selalu dikombinasikan dengan data origin authentication service Data Integrity

Layanan yang Disediakan Cryptography (3) Data origin authentication Layanan untuk memastikan bahwa pengirim pesan adalah benar-benar orang yang mengirimkan pesan tersebut B A He can claim that he is A

Layanan yang Disediakan Cryptography (4) Non-repudiation of origin Layanan ini melindungi terhadap penyangkalan yang disampaikan oleh entitas-entitas yang terlibat dalam komunikasi Non-repudiation dengan proof of origin melindungi usaha penyangkalan pengiriman pesan oleh pengirim sedangkan non-repudiation dengan proof of delivery melindungi penyangkalan terhadap penerimaan suatu pesan

Layanan yang Disediakan Cryptography (5) Data confidentiality Layani ini melindungi pesan agar tidak dapat dibaca (bisa jadi dapat dibaca tapi tidak dapat dimengerti) pihak lain yang tidak berwenang Dia bisa ikut menerima pesan tapi tidak mengerti

bentuk yang sudah diubah encryption decryption Plaintext/cleartext ciphertext Plaintext Pesan dalam bentuk aslinya Pesan dalam bentuk yang sudah diubah Cryptographers : menemukan kode rahasia Cryptanalysts : berusaha memecahkan kode

System cryptography melibatkan dua hal : algoritma dan sebuah kunci Pengetahuan tentang suatu algoritma cryptography saja tanpa pengetahuan akan kunci yang digunakan, tidak dapat digunakan untuk men-dekripsi Contoh : Misalnya angka 42 (data anda) sangatlah penting bagi anda sehingga anda ingin melindunginya agar tidak dapat dilihat orang lain. Kemudian anda membuat algoritma cryptography berikut untuk meng-enkripsi data anda : data/kunci_crypto+(2 x kunci_crypto) Your crypto algorithm

Computational Difficulty Algoritma cryptography harus memungkinkan cryptographers (seseorang yang memiliki kunci) dapat melakukan perhitungan secara efisien Algoritma cryptography bisa saja dipecahkan tanpa adanya kunci Cryptanalysts dapat mencoba berbagai kemungkinan kunci Keamanan skema cryptography tergantung pada seberapa susah seorang cryptanalysts dapat memecahkannya Skema cryptography dapat dibuat lebih aman menggunakan Kunci yang lebih panjang Menggunakan kunci yang panjangnya bervariasi

Kode Rahasia Kode rahasia = secret code =cipher = metoda yang digunakan untuk meng-enkripsi data Caesar Cipher Mengganti setiap abjad dengan 3 abjad berikutnya (wrap wround to A from Z) Plaintext : ABCDEFGHIJKLMNOPQRSTUVWXYZ Ciphertext: DEFGHIJKLMNOPQRSTUVWXYZABC DOZEN becomes GRCHQ Captain Midnight Secret Decoder rings Pilih secara acak bilangan rahasia (n) antara 1 dan 25 Ganti setiap abjad dengan abjad yang posisinya n kali lebih tinggi (wrap wround to A from Z) Contoh : Jika n=1, maka abjad A menjadi B dst. Karena hanya ada n kemungkinan, kode ini dapat dengan mudah dipecahkan

The Beale Chiper Merupakan pengembangan dari Caesar Chiper tetapi lebih mudah dilakukan Setiap huruf diasosiasikan dengan banyaknya pergeseran abjad A menyatakan tidak ada (0) pergeseran, B menyatakan 1 kali pergeseran, C menyatakan 2 kali pergeseran,demikian seterusnya sampai Z yang menyatakan 25 pergeseran abjad Prosedur pada Beale chiper didahului dengan memilih teks standard (ini merupakan kuncinya) yang berasal dari suatu dokumen (yang diketahui bersama oleh sender maupun receiver) Pada sisi sender, teks standard ditulis pada baris pertama lalu pada baris kedua dituliskan pesan yang akan dienkripsi. Pada baris ketiga dituliskan pesan hasil enkripsi Pesan hasil enkripsi diperoleh dengan cara menggeser setiap abjad pada pesan original dengan jumlah pergeseran yang ditentukan oleh huruf pada teks standard Mari kita lihat contoh supaya jelas...

Contoh The Beale Chiper Sender dan receiver setuju untuk memilih teks standard yang diambil dari konstitusi Amerika Serikat (WE THE PEOPLE .....) Pesan yang akan di-enkripsi adalah ATTACK Standard text (key): WETHEP Message : ATTACK Encrypted message: WXMHGZ Perhatikan bahwa masing-masing huruf pada pesan yang sudah dienkripsi merupakan huruf yang dihasilkan dengan menggeser huruf pada pesan original dengan jumlah pergeseran yang didefinisikan oleh masing-masing huruf pada teks standard Misalnya huruf E pada teks standard menyatakan pergeseran sebanyak 4 posisi, maka huruf T pada pesan original harus digeser sebanyak 4 posisi menjadi X sedangkan huruf C pada pesan original harus digeser sebanyak 4 posisi menjadi G dst. |W|E|T|H|E|P| :teks standard yang mendefinisikan pergeseran |A|T|T|A|C|K| :pesan yang akan di-enkripsi |W|X|M|H|G|Z| :pesan yang sudah di-enkripsi Geser sebanyak 4 (ingat huruf E menyatakan geser 4) Geser sebanyak 4 (ingat huruf E menyatakan geser 4)

Receiver harus mengetahui teks standard yang digunakan, kemudian akan membalik proses untuk mendapatkan pesan yang belum dienkripsi Agar semakin aman, teks standard yang digunakan tidak boleh berasal dari dokumen yang diketahui banyak orang (seperti konsitusi Amerika pada contoh sebelumnya) Lebih baik apabila sender dan receiver mengambil teks standard dari sebuah halaman buku yang dimiliki oleh sender maupun receiver (misalnya) Bila teks standard tidak dapat diketahui pihak lain,maka akan sangat sulit untuk memecahkan Beale cipher

The One-Time Pad Merupakan variasi dari Beale Chiper Teks standard dipilih secara acak (tidak diambil dari suatu dokumen) Mekanisme selanjutnya seperti yang dilakukan pada Beale Chiper Contoh: Standard text (key): RQBOPS Message : ATTACK Encrypted message: RJUORC One-Time Pad merupakan metoda enkripsi yang sempurna asalkan teks standard dirahasiakan, contoh dibawah ini memperlihatkan teks standard yang beda tetapi menghasilkan message yang sama Standard text (random key) :LBYKXN Message :GIVEUP Encrypted message :RJUORC Kelemahan: panjang kunci (teks standard) harus sama denga panjang pesan

Monoalphabetic cipher Memetakan suatu huruf ke huruf lain secara acak Contoh : Plaintext : ABCDEFGHIJKLMNOPQRSTUVWXYZ Ciphertext: GLDCNUXAQOWPBSZKYREIFJMHVT Ada 26! kemungkinan pasangan huruf (4 x 1026) Kelihatan sangat secure Mudah dipecahkan dengan analisa bahasa secara statistik

Tipe serangan untuk memecahkan skema enkripsi Ciphertext Only Cryptanalysts memiliki ciphertext yang dapat dianalisanya Pola-pola yang ada di dalam ciphertext bisa dianalisa (frekuensi kemunculan huruf dsb.) Analisa dilakukan terus sampai diperoleh recognizabel plaintext Cryptanalysts harus memiliki sejumlah ciphertext Known Plaintext Cryptanalysts memiliki plaintext sekaligus ciphertext-nya Chosen Plaintext Cryptanalysts dapat membuat sistem melakukan enkripsi terhadap plaintext yang dimlikinya

Chosen-Plaintext Attack cipher(key,PIN) PIN di-enkripsi lalu dikirimkan ke bank Penjahat #2 melakukan penyadapan kemudian Mempelajari ciphertext dari PIN baru tersebut Penjahat #1 merubah PIN yang dimilikinya (chosen plaintext) … diulangi untuk beberapa nilai PIN

Brute Force Attack Mencari kemungkinan kunci yang dapat memecahkan kode Cryptanalysts mungkin tidak perlu mencari seluruh kemungkinan kunci Rata-rata diperlukan percobaan setengah dari kemungkinan kunci yang ada Waktu yang diperlukan untuk melakukan pencarian kunci

Macam-macam fungsi cryptography Hash function Tanpa melibatkan penggunaan kunci Secret key function Hanya melibatkan penggunaan satu kunci Public key function Melibatkan penggunaan dua kunci

Secret Key Cryptography Melibatkan penggunaan satu kunci Disebut pula : conventional/symmetric cryptography Contoh : monoalphabetic cipher dan Captain Midnight Code encryption Plaintext ciphertext key Ciphertext Plaintext decryption

Penggunaan Secret Key Cryptography Melakukan pengiriman informasi pada kanal yang tidak aman Melakukan penyimpanan informasi secara aman pada media yang tidak aman Authentication Strong authentication : someone can prove knowledge of a secret without revealling it Misalkan Alice dan Bob menggunakan kunci yang sama yaitu KAB. Mereka ingin memverifikasi bahwa merekalah yang sedang berkomunikasi. Masing-masing memilih suatu angka acak yang disebut challenge. Alice memilih rA, dan Bob memilih rB. Suatu nilai x yang di-enkripsi menggunakan KAB disebut response terhadap challenge x.

Penggunaan Secret Key Cryptography (2) Alice Bob rA rA encrypted with KAB rB rB encrypted with KAB Ada kemungkinan pihak ketiga (Fred) dapat memperoleh pasangan <chosen plaintext, ciphertext> sehingga dapat mengklaim diri sebagai Bob dan meminta Alice meng-enkripsi sebuah challenge bagi Fred Penting untuk memilih challenge dari sekumpulan kemungkinan angka yang sangat banyak, misalnya sebanyak 264 angka, sehingga peluang untuk menggunakan challenge yang sama sebanyak dua kali akan sangat kecil

Penggunaan Secret Key Cryptography (3) Integrity Check Skema secret key dapat digunakan untuk membangkitkan suatu fixed-length cryptographic checksum bagi sebuah message Checksum yang biasa (tanpa cryptography dan dipublikasikan (misalnya CRC)) dapat dibangkitkan setelah message diubah Untuk mencegah hal tsb di atas, diperlukan suatu algoritma checksum rahasia sedemikian hingga penyerang yang tidak mengetahui algoritmanya tidak dapat menghitung checksum yang tepat agar suatu message dianggap otentik Bila diketahui suatu kunci dan suatu message, algoritma rahasia ini akan membangkitkan suatu fixed-length message authentication code (MAC) yang dapat dikirimkan bersama message MAC sering disebut pula MIC (Message Integrity Code) Jika ada seseorang yang ingin merubah message, tetapi tidak memiliki kunci, dia harus menebak MAC Kemungkinan ketepatan menebak tergantung panjang MAC Panjang tipikal MAC = 48 bit

Public Key Cryptography Disebut pula asymmetric cryptography Tidak ada kunci yang digunakan secara bersama Setiap individual memiliki dua kunci: Suatu private key yang tidak boleh diberitahukan ke pihak lain Suatu public key yang dapat diketahui oleh siapapun Dalam literatur utama digunakan notasi berikut e menyatakan public key dan digunakan ketika meng-enkripsi message d menyatakan private key yang digunakan ketika men-dekripsi message

encryption Plaintext ciphertext Public key Private key Ciphertext Plaintext decryption

Pada teknologi public key dapat ditambahkan digital signature pada suatu message Digital signature adalah suatu bilangan yang diasosiasikan dengan suatu message Perbedaan dengan MAC : MAC dapat dibangkitkan siapapun sedangkan digital signature hanya dapat dibangkitkan oleh seseorang yang mengetahui private key. Alice dapat menandatangani sebuah message dengan tandatangan yang hanya dapat dibangkitkannya Pihak lain dapat memverifikasi tandatangan Alice menggunakan public key tetapi tidak dapat menirukannya

Penggunaan Public Key Cryptography Public key cryptography dapat melakukan fungsi yang dilakukan oleh secret key cryptography tetapi lebih lambat Untuk menanggulangi kelambatan ini, biasanya digunakan kombinasi public key dan secret key Pada tahap awal komunikasi untuk melakukan authentication, digunakan public key cryptography untuk membentuk suatu secret key sementara Secret key ini kemudian digunakan untuk meng-enkripsi message yang dipertukarkan pada tahapan komunikasi berikutnya Misalkan Alice ingin berbicara dengan Bob. Alice menggunakan public key Bob untuk meng-enkripsi sebuah secret key, yang pada gilirannya digunakan untuk meng-enkripsi message selanjutnya yang ingin dikirimkan Alice ke Bob. Hanya Bob yang dapat men-dekripsi secret key yang dikirimkan Alice. Bob kemudian dapat menggunakan secret key ini untuk berkomunikasi dengan siapapun yang mengirim message tersebut Pada protokol ini Bob tidak dapat mengetahui bahwa yang mengirimkan message adalah Alice Solusi : Alice menandatangani message menggunakan private key Alice

Penggunaan Public Key Cryptography (2) Mengirimkan informasi pada kanal yang tidak aman Misalkan Alice memiliki pasangan <public key,private key> yaitu <eA,dA> Misalkan Bob memiliki pasangan <public key,private key> yaitu <eB,dB> Diasumsikan Alice mengetahui public key Bob dan Bob mengetahui public key Alice Alice Bob Encrypt mA using eB Decrypt to mA using dB Decrypt to mB using dA Encrypt mB using eA

Penggunaan Public Key Cryptography (2) Melakukan penyimpanan informasi secara aman pada media yang tidak aman Kita dapat meng-enkripsi informasi menggunakan public key Hanya kita yang dapat mendekripsinya (menggunakan private key kita) Data bisa tidak secara langsung di-enkripsi menggunakan public key Bangkitkan dulu suatu secret key, lalu gunakan untuk meng-enkripsi data kemudian secret key di-enkripsi menggunakan public key Kelebihan dibandingkan secret key : Alice dapat meng-enkripsi-kan suatu message untuk Bob tanpa perlu tahu secret key dari Bob

Penggunaan Public Key Cryptography (3) Authentication Bila Alice dan Bob ingin berkomunikasi menggunakan secret key cryptography, mereka harus menggunakan secara bersama suatu kunci rahasia Bila Bob ingin membuktikan identitasnya kepada banyak pihak, maka dia harus mengingat seluruh secret key yang akan digunakan Penggunaan public key cryptography lebih menguntungkan Bob hanya perlu mengingat satu rahasia yaitu private key-nya Bila ingin berkomunikasi dengan banyak pihak, Bob masih perlu mendapatkan cara untuk memperoleh public key pihak-pihak tersebut

Penggunaan Public Key Cryptography (4) Introduction Penggunaan Public Key Cryptography (4) Contoh ketika Alice menggunakan public key cryptography untuk mem-verifikasi identitas Bob (diasumsikan Alice mengetahui public key dari Bob) Alice memilih suatu nomor acak r, lalu meng-enkripsinya menggunakan public key Bob eB, lalu mengirimkan hasilnya ke Bob. Bob membuktikan bahwa dia tahu dB dengan cara mendekripsi message lalu mengirimkan kembali r ke Alice Kelebihan : Alice tidak perlu menyimpan rahasia apapun untuk mem-verifikasi Bob Alice Bob Encrypt r using eB Decrypt to r using dB r

Penggunaan Public Key Cryptography (5) Digital Signature Tandatangan Bob untuk suatu messsage m hanya dapat dibangkitkan oleh Bob menggunakan private key (atau oleh seseorang yang mengetahui private key dari Bob) Tandatangan yang dibubuhkan tergantung dari m Jika m berubah, maka tandatangan menjadi tidak sesuai lagi Digital signature menyediakan dua fungsi berikut : Membuktikan pihak yang membangkitkan informasi Membuktikan bahwa message tidak diubah siapapun sejak message dan tandatangannya yang sesuai dibangktikan

Hash Algorithm Disebut pula message digests atau one-way transformation Cryptographic hash function : suatu transformasi matematis yang menghitung suatu nomor tertentu yang panjangnya tetap (dan pendek) dari suatu message yang panjangnya sembarang (setelah ditransformasikan ke dalam deretan bit) Hash of a message m : h(m)

Hash Algorithm (2) h(m) memiliki sifat-sifat sbb : Untuk setiap message m, relatif mudah untuk menghitung h(m) Bila diketahui h(m), tidak ada cara yang mudah untuk menemukan m Meskipun ada kemungkinan bahwa beberapa harga m akan ditransformasikan ke h(m) yang sama, tetapi tidak mungkin menemukan dua nilai yang di-hash ke nilai yang sama

Hash Algorithm (3) Password Hashing Ketika user mengetikan password, sistem harus mampu menentukan apakah user memasukkannya dengan benar Jika sistem menyimpan password secara tidak ter-enskripsi, maka siapapun yang memiliki akses ke tempat penyimpanan yang ada dalam sistem atau yang berada di back-up tape, dapat mencurinya Untungnya, sistem tidak perlu mengetahui password-nya untuk melakukan verifikasi password Sistem menyimpan password yang sudah di-hash (hash of the password) Ketika user memasukkan password, sistem menghitung hash dari password tersebut lalu membandingkannya dengan password hash yang telah disimpan Bila match, maka user telah memasukkan password dengan benar

Hash Algorithm (4) Password Hashing (2) Jika hashed password ada yang mencuri, tidak serta merta dapat dimanfaatkan untuk mengetahui password karena password tidak dapat diturunkan dari hash Dalam sejarahnya, file hashed password dapat dibaca oleh siapapun Jika ada user yang memilih password secara ceroboh (menggunakan kata yang ada dalam kamus misalnya), maka ada kemungkinan password dapat di-crack. Dengan alasan ini, hashed password disembunyikan

Hash Algorithm (5) Message Integrity Cryptography hash function dapat digunakan untuk membangkitkan MAC untuk melindungi integritas pesan yang dikirimkan melalui media yang tidak aman seperti halnya pada secret key cryptography Tidak aman bila mengirimkan message menggunakan MAC yang merupakan hash dari message tersebut Pihak lain dapat mengubah message lalu membangkitkan hash yang lain Solusi : Alice dan Bob sepakat untuk menggunakan sebuah rahasia (secret) Alice menggabungkan message dengan secret lalu menghitung hash dari message|secret tersebut (ini disebut keyed hash) Alice lalu mengirimkan hash tersebut bersama dengan message (tanpa secret) Bob menggabungkan secret ke message yang diterimanya, lalu menghitung hash-nya. Jika hasil perhitungannya sesuai dengan hash yang diterima, maka Bob yakin bahwa message dikirim oleh seseorang yang mengetahui secret tersebut

Hash Algorithm (6) Alice Bob secret message hash =? hash secret

Hash Algorithm (7) Message Fingerprint Downline Load Security Untuk mengetahui apakah suatu message yang panjang (mis. Program) telah dirubah, dapat digunakan hash dari program tersebut Storage saving Downline Load Security Downline load : mengambil program dari jaringan lalu menjalankannya Untuk meyakinkan bahwa program yang diambil secara downline load belum berubah (disengaja maupun tidak), kita hitung hash-nya lalu dibandingkan dengan hash program yang asli Digital Signature Efficiency Hash dari message dihitung lalu ditandatangani (bukan message yang langsung ditandatangi) Tidak terlalu membebani prosesor dan hash jauh lebih pendek daripada message

Secret Key Cryptography

Generic Block Encryption Meng-enkripsi satu blok data Dalam algoritma cryptographic yang merubah blok plaintext ke blok yang ter-enkripsi perlu diperhatikan panjang kunci dan panjang blok plaintext (plaintext block) Kunci yang terlalu pendek dapat menyebabkan ciphertext mudah dipecahkan (seluruh kemungkinan kunci dapat ditemukan dengan mudah) Panjang blok (block length) Bila terlalu pendek (misalnya 1 oktet (monoalphabetic cipher)), maka bila kita memiliki beberapa pasangan <plaintext,ciphertext>, kita dapat membentuk tabel untuk melakukan dekripsi Bila terlalu panjang : rumit dan mempengaruhi kinerja skema cryptography Reasonable length : 64 bit

Generic Block Encryption (2) The most general way to encrypt 64-bit block : Mapping 264 input values to a unique one of 264 output values The mapping is has to be one-to-one, untuk memungkinkan dekripsi 64 bit 64 bit ……. .. ……. .. Mapping one-to-one ……. .. ……. .. Ada 264 kemungkinan nilai input : : ……. .. ……. ..

Generic Block Encryption (3) Ada 264 kemungkinan input, masing-masing dipetakan ke salah satu output (yang panjangnya) 64 bit Untuk menyatakan pemetaan ini diperlukan 270 bit (264 x 64 = 264 x 26) Pemetaan harus terlihat betul-betul random (acak) bagi seseorang yang tidak memiliki kunci Random : setiap perubahan pada satu bit input akan menyebabkan perubahan output secara acak Setiap output harus tidak memiliki korelasi dengan output lainnya Jumlah bit yang sama harus kira-kira setengahnya Jumlah bit yang berbeda harus kira-kira setengahnya To spread bits arround : perubahan pada satu bit input harus berpengaruh pada semua bit output dan mampu merubah bit output manapun dengan peluang 50%

Generic Block Encryption (4) Ada dua macam transformasi terhadap sebuah blok data Substitution Untuk masing-masing dari 2k input, akan terdapat satu output k-bit Untuk menyatakan pemilihan substitusi yang betul-betul acak bagi blok data yang panjangnya k-bit, diperlukan k.2k bit. Permutation Untuk setiap bit pada input yang jumlahnya k-bit, ditentukan posisi bit tersebut di ouput Misalnya bit pertama di input menjadi bit ke-13 di output, bit kedua bisa menjadi bit ke 61 di output dsb. Untuk menyatakan pemilihan permutasi yang betul-betul acak dari sekumpulan k bit, diperlukan k.log2k bit Pada output ada ada sebanyak k bit, untuk menyatakan posisi masing-masing bit diperlukan log2k bit

Generic Block Encryption (5) Contoh Divide input into eight 8-bit pieces 64-bit input 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits Eight 8-bit substitution function derived from the key S1 S2 S3 S4 S5 S6 S7 S8 Loop for n rounds 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 64-bit intermediate Permute the bits, possibly based on the key Rounds dilakukan agar perubahan pada 1 bit input berpengaruh terhadap seluruh bit output 64-bit output

Generic Block Encryption (6) Sifat penting lain dari mekanisme enkripsi adalah dengan adanya kunci, prosesnya harus dapat dibalik secara efisien

Data Encryption Standard (DES) Dipublikasikan pada tahun 1977 oleh National Bureau of Standards (renamed National Institute of Standards and Technology (NIST)) Untuk aplikasi komersial dan aplikasi unclassified pemerintah Amerika Berbasis Lucifer cipher dari IBM dan masukan dari NSA

DES (2) Menggunakan kunci 56 bit Sebenarnya terdiri dari 64 bit, tetapi pada setiap oktet ada 1 bit yang digunakan untuk pariti ganjil, sehingga hanya ada 7 bit dari setiap oktet yang berguna sebagai kunci Memetakan blok input 64 bit ke blok output 64 bit Efisien untuk diimplementasikan secara hardware tetapi relatif lambat bila diterapkan secara software

: : Decryption 64 bit input 54- bit key Initial Permutation Generate 16 per-round keys 48-bit K1 Round 1 decryption 48-bit K16 48-bit K2 Round 2 decryption 48-bit K15 : : Decryption 48-bit K16 Round 16 decryption 48-bit K1 Swap left and right halves Final permutation (inverse of initial permutation) 64 bit output

Triple DES (3DES)

IDEA International Data Encryption Algorithm Serupa dengan DES: 64-bit blocks Menggunakan kunci 128-bit yang merupakan kekuatannya (belum memiliki kelemahan yang teridentifikasi)

IDEA Top View …... 128-bit Key 64-bit Input 48-bit K1 key expansion k1k2k3k4 Round 1 k5k6 Round 2 …... Round 16 k49k50k51k52 Round 17 64-bit Output

Public Key Algorithms

RSA (Rivest,Shamir,Adleman) Yang paling populer digunakan Diantaranya untuk TLS (Transport Layer Security) dan IPSec (IP Security) Mendukung public key encryption maupun digital signature Panjang kunci bervariasi (biasanya 512 bits) Ukuran blok plaintext bervariasi Ukuran plaintext harus lebih kecil daripada ukuran kunci Ukuran blok ciphertext sama dengan panjang kunci More information on RSA: www.rsasecurity.com/rsalabs/pkcs/pkcs-1/index.html

Diffie-Hellman Key Exchange Shared key, public communication No authentication of partners More on Diffie-Hellman can be found at www.rsasecurity.com/rsalabs/faq/3-6-1.html

Key Distribution and Management Secret key distribution Public key distribution Secret key distribution using public key encryption

Secret Key Distribution A and B can establish a secret key by: Manual delivery. Selection and delivery by a trusted third party. Using a previous key to encrypt the new key. Using encrypted links to a third party to relay. Problem: Need to scale up: need for each pair of hosts/applications ...

Key Distribution Center (KDC) Responsible for distributing keys to pairs of users (hosts, processes, applications) Each user must share a unique key, the master key, with the KDC Use the master key to communicate with KDC to get a temporary session key for establishing a secure “session” with another user Master keys are distributed in some non-cryptographic ways

Host sends packet requesting connection FEP Host KDC 1 2 3 4 Network Host sends packet requesting connection Front end buffers packet: asks KDC for session key KDC distributes session key to both front ends Buffered packet transmitted FEP =Front-end processor KDC =key distribution center

Details… Step 1 – When one host wishes to set up a connection to another host, it transmit a connection sequent packet. Step 2 – The FEP saves that packet and applies to the KDC for permission to establish the connection. The communications between the FEP and the KDC is encrypted using a master key shared only by the FEP and the KDC. Step 3 – If the KDC approves the connection sequent, it generates the session key and delivers it to the two appropriate FEPs, using a unique permanent key for each FEP. Step 4 – The requesting FEP can now release the connection sequent packet, and a connection is set up between the two and systems. All used data exchanged between the two end systems are encrypted by their respective FEPs using the one-time session key.

Public Key Systems Taken from Dr. Shlomo Kipnis Lecture Notes (The Hebrew University -- Institute of Computer Science)

Public Key Infrastructure Infrastruktur yang diperlukan untuk meng-otentifikasi digital certificates dan CAs PKI merupakan suatu jaringan hirarkis CA Suatu "root certificate" meng-otorisasi subordinate CAs

Komponen PKI Certification authority (CA) Registration authority (RA) PKI clients Digital certificates Certificate Distribution System or repository

CA Otoritas terpercaya yang mengotentikasi identitas entitas yang terlibat dalam komunikasi Untuk mengotentikasi identitas, CA mengeluarkan digital certificates Merupakan dokumen yang ditandatangani private key CA Mengandung informasi sperti nama pelanggan, public key pelanggan, suatu serial number, dan informasi lain Sertifikat ini mengkonfirmasi bahwa suatu public key merupakan milik suatu entitas tertentu

CA (2) Beberapa tipe CA: Internal CA Internal CA memberikan sertifikat pegawai suatu organisasi akan posisi mereka dan tingkat otoritasnya (level of authority) Sertifikat ini memungkinkan organisasi mendefinisikan pengendalian akses terhadap internal resources atau aliran informasi Misalnya, untuk setiap pegawai, CA membuat sebuah kunci dan mengeluarkan sertifikat yang berhubungan langsung dengan sistem komputer yang dapat diakses oleh pegawai yang bersangkutan Komputer kemudian dapat memutuskan apakah pegawai boleh mengakses komputer berdasarkan sertfikasi kunci Outsourced Employee CA Suatu organisasi dapat menandatangani perjanjian dengan perusahaan luar untuk menyediakan sertifikat bagi pegawainya Outsourced Customer CA Suatu organisasi dapat menandatangani perjanjian dengan perusahaan luar yang menyewa CA untuk menangani customer lama maupun baru dari suatu organisasi Trusted Third-Party CA Suatu organisasi terpercaya atau pemerintah dapat menjadi CA yang menghbungkan public keys dengan nama-nama lgal suatu individu atau perusahaan Untuk menggunakan sertifikat yang dikeluarkan oleh CA, kita harus memiliki copy dari public key CA Saat ini public keys didistribusikan sebagai bagian dari paket software, seperti Web browsers dan operating systems

Certification Authority Beberapa contoh CA:

Registration Authority (RA) RA adalah otoritas perantara yang mengkoordinasikan interaksi antara clients dengan CA Fungsi RA adalah untuk mengurangi beban CA atas permintaan sertifikasi Jika CA merasa tidak dapat menangani beban penerimaan dan validasi request sertifikat maka CA akan mengontak RA Beberapa fungsi yang dijalankan RA performs: Menerima dan memvalidasi requests dari organisasi Mem-forward request ke CA Menerima sertifikat yang sudah diproses dari CA Mengirimkan sertifikat ke organisasi yang memintanya

PKI clients Entitas atau organisasi yang mengeluarkan permintaan akan sertifikat digital Suatu client PKI harus melakukan beberapa langkah berikut untuk memperoleh sertifikat digital dari CA: Mengirimkan request untuk membangkitkan pasangan public dan private key pair Client atau CA dapat membangkitkan pasangan kunci ini (mengandung informasi client) Setelah pasangan kunci dibangkitkan, suatu request dikirimkan ke CA untuk meminta sertifikat digital. Request ini pada umumnya dirutekan melalui RA Setelah menerima sertifikat digital, client PKI akan menggunakannya untuk menotentikasi dirinya sendiri untuk berinteraksi di Internet.

Digital certificates Memiliki tujuan sbb: Membentuk integritas dari public key Menghubungkan public key dengan informasi pemiliknya secara aman Digital certificates menjamin bahwa public key untuk suatu certificate, yang diotentikasi oleh CA, akan bekerja secara baik dengan private key yang dimiliki PKI client Sebuah digital certificate mengandung elemen berikut: Serial number Digital signature of the CA Public key of the user to whom the certificate has been issued Date of expiration Name of the CA that issued the certificate Setelah menerima digital certificate, suatu organisasi atau individual melakukan langkah berikut untuk menggunakan sertifikat tersebut: Pengirim digitally signed message menggunakan private key untuk menjamin integritas dan keotentikan message. Setelah menerima message, penerima receiver memverifikasi digital signature menggunakan public key pengirim Penerima mencek validitas digital certificate pengirim menggunakan global directory database, yang akan mengembalikan status sertifikasi penerima Transaksi dianggap komplit jika sertifikat valid Setelah dikeluarkan, sertifikat harus didistribusikan ke users atau organisasi. Tugas ini dilakukan oleh suatu Certificate Distribution System Repository

Certification Distribution System (CDS) Repository Certification Distribution System Repository menditribusikan sertifikat ke users maupun organisasi Sertifikat dapat didistribusikan menggunakan dua mekanisme berikut: Didistribusikan oleh user sendiri Didistribusikan oleh suatu directory server yang menggunakan LDAP ntuk mengambil informasi yang disimpan di dalam suatu X.500 compliant database CDS melakukan tiga tugas berikut: Membangkitkan dan mengeluarkan pasangan kunci Memvalidasi public keys dengan cara menandatanganinya Me-revokes key yang hilang atau kadaluarsa Mempublikasikan public keys di dalam directory service server

Recaps Ada tiga algoritma public key yang digunakan sekarang: Diffie-Hellman RSA Digital Signature Algorithm (DSA)

Hash Function Suatu teknik untuk mencegah atau mendeteksi perubahan pada informasi Menghasilkan tingkat integritas yang tinggi dari message atau data Hash function mengambil suatu message dengan panjang tertentu lalu menghitung suatu harga yang panjangnya tertentu yang disebut "hash value" Hash value merupakan cryptographic checksum dari message Cryptographic checksum dapat dipandang sebagai “sidik jari” dari message Panjang pesan asli tidak akan merubah hash value Hash value dapat digunakan untuk menentukan apakah suatu message telah berubah atau tidak Hash functions harus hanya satu arah Tidak boleh ada satu cara-pun untuk membalikkan proses (mendapatkan message dari hash value) Persyaratan lain dari suatu one-way hash function yang efektif adalah ketiadaan (atau paling tidak hanya terbatas) “collision” Suatu collision terjadi bila untuk dua atau lebih message yang unik dihasilkan hash value yang sama Jika message berbeda maka hash values-nya harus berbeda pula

Beberapa algoritma hashing yang sering digunakan Message digest #4 (MD4) from RSA Message digest #5 (MD5) from RSA Secure hash algorithm-1 (SHA-1) RACE Integrity Primitives Evaluation (RIPE) MD-160 (RIPEMD-160)

MD4 MD4 dikembangkan oleh Ron Rivest dari RSA MD4 merupakan suatu one-way hash function yang mengambil message yang ukurannya bervariasi dan menghasilkan hash value (message digest) sepanjang 128-bit MD4 memiliki kelemahan: Paling tidak dua dari tiga round MD4 tidak one-way sehingga ada kemungkinan collisions

MD5 MD5 dikembangkan juga oleh Ron Rivest sebagai perbaikan dari MD4 MD5 menghasilkan message digest unik berukuran 128-bit yang diturunkan dari suatu message atau file Nilai message digest yang merupakan “sidik jari” message atau isi file, digunakan untuk memverifikasi integritas isi message atau file Jika message atau file dirubah sebanyak 1 bit pun, maka nilai message digest nya akan berbeda dengan nilai message digest untuk pesan yang original MD5 lebih aman daripada MD4, tetapi masih memiliki kelemahan : Ditemukan suatu collision di dalam fungsi kompressi pada MD5 (meski kelemahan ini tidak untuk MD5 sendiri) Algoritma MD5 ditujukan untuk aplikasi digital signature

Secure Hash Algorithm-1 (SHA-1) SHA-1 adalah suatu algoritma one-way hash yang digunakan untuk membangkitkan digital signatures SHA-1 diturunkan dari SHA yang dikembangkan pada tahun 1994 oleh NIST SHA-1 serupa dengan algoritma MD4 dan MD5 SHA-1 sedikit lebih lambat daripada MD4 dan MD5, tetapi lebih aman SHA-1 hash function menghasilkan has value dengan panjang 160-bit Lebih tahan terhadap brute force attacks daripada MD4 dan MD5, yang hanya menghasilkan hash value dengan panjang 128-bit

RIPEMD Merupakan hash function yang dikembangkan melalui the European Community's project RIPE Ada beberapa ekstensi: RIPEMD1RIPEMD-128, RIPEMD-160, dan RIPEMD-256 Setiap extension merupakan referensi terhadap panjang hash value Sebagai contoh, RIPEMD-160 adalah 160-bit cryptographic hash function, dirancang oleh Hans Dobbertin, Antoon Bosselaers, dan Bart Preneel.

Digital Signature

What’s Digital Signing? Digunakan untuk menyediakan keyakinan bahwa informasi berasal dari sumber tertentu dan belum pernah berubah Ada beberapa cara untuk menandatangai suatu dokumen secara digital, tetapi yang akan kita bahas adalah protokol standard digital signing

Definisi Digital Signature Digital Signature Generation Algorithm Merupakan sederatan data yang menghubungkan suatu message dengan beberapa entitas sumber informasi Digital Signature Generation Algorithm Metoda untuk menghasilkan digital signature Digital Signature Scheme Terdiri dari suatu signature generation algorithm dan algoritma verifikasi yang berhubungan

Contoh skenario President George W. Bush akan mengirimkan perintah kepada tentaramya di Timur Tengah Ia mendapatkan informasi dari dinas rahasia bahwa Saddam Hussein akan segera mem-bom Washington, sehingga ia harus segera mengambil tindakan

Ia memerintahkan untuk mem-bom Iraq secepat mungkin melalui sarana yang tidak aman (melaui e-mail bush_666@hotmail.com): “Start the military strike. G.W.B.”

Misalnya seseorang, sebut saja Mr Misalnya seseorang, sebut saja Mr. X, berhasil menyadap pesan yang dikirimkan lalu merubah perintah menjadi: “Let’s give peace a chance. G.W.B.”.

Tanpa adanya protokol digital signature, Saddam Hussein punya cukup waktu untuk melancarkan serangan ke Washington…

Jika Mr. Bush tahu teknologi digital signature Dia dapat menandatangani message Mr. X masih dapat merubah message, tetapi komandan tentara di Timur Tengah bisa mendeteksi bahwa message telah berubah Dia akan meminta konfirmasi ke White House.

Cara Kerja Digital Signing Kita bangkitkan suatu nilai (binary string) dari message menggunakan hash function. Kita gunakan algoritma digital signature untuk menghasilkan tanda tangan dari hash value dan private key. Dengan demikian sekarang message dapat di-otentifikasi menggunakan public key dan tandatangan.

Digital Signature Standard (DSS)/Digital Signature Algorithm (DSA)

Skenario George Bush yang sudah mengenal Digital Signature

Tandat tangan yang dihasilkan: -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+c2Tek9/AtOnRwPcRAuqtAJ0R3O4tPGWvhaYjXvfuIFiPAU4YfgCeN+Ox jqfjUxVpgKi2Ij5cY65KOtg= =05Ox -----END PGP SIGNATURE----- Tanda tangan ini dapat dikirim pada file terpisah

Mr. X yang berhasil menyadap akan merubah pesan lalu mengirimkannya ke tujuan Komandan tentara di Timur Tengah akan dapat mendeteksi bahwa pesan sudah berubah [general@kuwait general]$ gpg --verify Bush.sig Bush.txt gpg: Signature made Mon 17 Mar 2003 00:00:00 AM EST using DSA key ID E9D1C0F7 gpg: BAD signature from "George W. Bush (Millie) <bush_666@hotmail.com>" [general@kuwait general]$ _

Contoh software yang dapat digunakan GnuPG Free Dapat digunakan untuk tanda tangan digital menggunakan beberapa macam algoritma

Algoritma Digital Signing yang Lain RSA (saingan berat DSS/DSA) ElGamal One-Time Signatures Rabin One-Time Signatures Arbitrated Digital Signatures ESIGN Chaum-van Antwerpen

Legal Issues Patents Export Controls Pada umumnya teknik kriptografi dilindungi patent (ada royalty) Export Controls Pemerintah U.S. membatasi ekspor kriptografi Strong encryption untuk aplikasi dalam negeri No Strong encryption untuk produk yang diekspor