Pengertian Sistem Kriptografi
Berdasarkan jumlah kunci yang digunakan, terdapat dua jenis sistem kriptografi yaitu sistem kriptografi kunci rahasia (secret-key cryptography) dan sistem kriptografi kunci publik (public-key cryptography).
Kriptografi Kunci Rahasia
Kriptografi kunci rahasia (secret-key cryptography) sering disebut juga sistem kriptografi simetris (symmetric key cryptography). Sistem ini sering juga disebut sebagai enkripsi konvensional atau enkripsi kunci-tunggal (single key). Pada sistem ini digunakan algoritma yang sama untuk proses enkripsi/dekripsi dengan memakai satu kunci yang sama.
Keamanan dari sistem ini bergantung pada beberapa faktor, yaitu:
1. Algoritma enkripsi harus cukup kuat sehingga tidaklah praktis untuk mendekripsi suatu pesan hanya dengan memiliki cyphertextsaja.
2. Keamanan dari enkripsi simetris adalah bergantung pada kerahasiaan kunci, bukan kerahasiaan dari algoritma enkripsi itu sendir1. Semakin panjang kunci yang dipakai maka semakin sulit untuk menebak kunci dengan menggunakan metode brute force attacks, yaitu mencoba semua kemungkinan kunc1.
Algoritma enkripsi simetris yang popular dewasa ini adalah DES (Data Encryption Standard) dengan panjang kunci 56-bit, IDEA (128-bit), Twofish (sampai dengan 256-bit), Rijndael (sampai dengan 256-bit) dan lain-lain. [SCH96]
Block Cipher
Block cipher adalah bentuk algoritma enkripsi kunci simetri yang mentransformasikan satu blok data tertentu dari plaintext ke dalam satu blok data ciphertextdengan panjang blok yang sama. Transformasi ini berlangsung melalui penggunaan kunci rahasia yang disediakan oleh pemakai (user). Dekripsi dilakukan dengan menggunakan transformasi kebalikan terhadap blok ciphertext menjadi satu blok plaintext dengan kunci dan panjang blok yang sama. Panjang blok tertentu disebut ukuran blok (block size) dimana ukuran blok tersebut bervariasi misalnya 16 bit, 32 bit, 64 bit, 128 bit atau 256 bit tergantung dari teknik yang digunakan dan perkembangan kemampuan mikroprosesor selanjutnya.
Karena blok plaintext yang berbeda dipetakan ke blok ciphertext yang berbeda (untuk memungkinkan dekripsi yang unik), suatu block cipher secara efektif menyediakan satu permutasi (korespondensi satu ke banyak) dari set pesan yang mungkin. Permutasi berpengaruh pada saat enkripsi tertentu yang sudah pasti rahasia, karena permutasi tersebut adalah fungsi dari kunci rahasia. Jika pengguna menggunakan satu block cipher untuk mengenkrip satu pesan dengan panjang sembarang, pengguna menggunakan teknik yang dikenal sebagai modus operasi untuk block cipher tersebut. Agar dapat berguna, satu modus operasi setidak-tidaknya seefisien dan seaman cipher fundamental. Teknik enkripsi mungkin memiliki sifat-sifat tambahan terhadap sifat-sifat dasar yang dimiliki teknik biasa. [KUR04, SCH96]
Stream Cipher
Stream cipheradalah jenis algoritma enkripsi simetri yang mentransformasikan data secara karakter per karakter. Stream ciphers dapat dibuat sangat cepat sekali, jauh lebih cepat dibandingkan dengan algoritma block cipher yang manapun. Sementara algoritma block cipher secara umum digunakan untuk unit plaintext yang berukuran besar sedangkan stream cipherdigunakan untuk blok data yang lebih kecil, biasanya ukuran bit. Proses enkripsi terhadap plaintext tertentu dengan algoritma block cipherakan menghasilkan ciphertext yang sama jika kunci yang sama digunakan. Dengan stream cipher, transformasi dari unit plaintext yang lebih kecil ini berbeda antara satu dengan lainnya, tergantung pada kapan unit tersebut ditemukan selama proses enkrips1.
Suatu stream cipher akan menghasilkan apa yang disebut suatu keystream yaitu suatu barisan bit yang digunakan sebagai kunc1. Proses enkripsi dicapai dengan menggabungkankeystream dengan plaintext biasanya dengan operasi bitwise XOR. Pembentukan keystream dapat dibuat independen terhadap plaintextdan ciphertext, menghasilkan apa disebut dengan synchronous stream cipher, atau dapat dibuat tergantung pada data dan enkripsinya, dalam hal mana stream cipher disebut sebagai self-synchronizing. Kebanyakan bentuk stream cipher adalah synchronous stream ciphers. [KUR04, SCH96]
Kriptografi Kunci Publik
Kriptografi kunci-publik (public-key cryptography) sering disebut juga sistem kriptografi asimetris. Ide kriptografi asimetris ini pertama kali dimunculkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976. Diffie dan Hellman mendeskripsikan sistem ini tanpa menunjukkan algoritmanya. Walaupun demikian mereka menjabarkan syarat-syarat yang harus dipenuhi oleh suatu algoritma public-key yaitu
1. Mudah secara komputasi bagi suatu pihak B untuk mengkonstruksi sepasang kunci asimetris (kunci public KU, kunci pribadi KR).
2. Mudah secara komputasi bagi pengirim A, dengan memiliki kunci public B dan pesan yang ingin dienkripsi, M, untuk menghasilkan ciphertext (C) :
C = EKUb(M)
3. Mudah secara komputasi bagi penerima B untuk mendekripsi ciphertext yang dihasilkan dengan menggunakan kunci pribadinya untuk mengembalikan pesan aslinya.
M = DKRb (C) = DKRb[EKUb(M)]
4. Tidak bisa secara komputasi bagi pihak ketiga untuk memperoleh kunci pribadi KRb hanya dengan mengetahui kunci public KUb.
5. Tidak bisa secara komputasi bagi pihak ketiga untuk mengembalikan data asli M hanya dengan mengetahui kunci public KUb dan ciphertext C.
Walaupun bukanlah suatu keharusan bagi semua aplikasi public-key, namun persyaratan keenam bisa ditambahkan :
6. Fungsi enkripsi dan dekripsi bisa diterapkan dengan urutan yang dibalik :
M = EKUb[DKRb(M)]
Kegunaan dari persyaratan keenam adalah untuk penerapan tanda tangan digital (digital signature) yang digunakan memecahkan isu otentikasi (authentication) dalam masalah keamanan data.
Menurut Stalling, proses enkripsi public-key sederhana melibatkan empat tahap berikut:
1. Setiap userdi dalam jaringan membuat sepasang kunci untuk digunakan sebagai kunci enkripsi dan dekripsi dari pesan yang akan diterima.
2. User mempublikasikan kunci enkripsinya dengan menempatkan kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap dijaga kerahasiaannya.
3. Jika user A ingin mengirimkan sebuah pesan ke user B, ia akan mengenkripsi pesan tersebut dengan menggunakan kunci publik userB.
4. Pada saat user B ingin mengirimkan sebuah pesan ke user B, ia akan menggunakan kunci pribadinya sendir1. Tidak ada pihak lain yang bisa mendekripsi pesan itu karena hanya B sendiri yang mengetahui kunci pribadi B.
Sampai saat ini hanya ada beberapa sistem cryptography asimetris yang dipublikasikan. Yang paling berhasil sejauh ini adalah algoritma RSA yang memenuhi keenam persyaratan public-keydi atas. Di samping itu, algoritma enkripsi public-keyyang lain adalah LUC, DSS, Diffie-Hellman dan lain-lain. [SCH96]
Kunci publik adalah kunci yang tidak disembunyikan (boleh diketahui oleh orang lain) dan digunakan dalam proses enkrips1. Kunci private adalah kunci rahasia yang tidak boleh diketahui oleh orang lain dan digunakan dalam proses dekrips1.