Kriptografi
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti keabsahan, integritas data, serta autentikasi data. Kriptografi tidak berarti hanya memberikan keamanan informasi saja, namun lebih ke arah teknik-tekniknya.
Ada empat tujuan mendasar dari ilmu kriptografi ini yaitu :
- Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas.
- Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
- Autentikasi, adalah berhubungan dengan identifikasi, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
- Non-repudiasi.
Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen plaintext dan yang berisi elemen ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemen-elemen plaintext dinotasikan dengan P, elemen-elemen ciphertext dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan notasi D.
Enkripsi :
Dekripsi : atau
Pada skema enkripsi konvensional atau symmetric-key, digunakan sebuah kunci untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem asymmetric-key, sepasang kunci yang berbeda, umumnya disebut kunci umum (public key) dan kunci pribadi (private key), digunakan untuk proses enkripsi dan proses dekripsinya. Bila elemen plaintext dienkripsi dengan menggunakan kunci pribadi maka elemen chipertext yang dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk enkripsi maka proses dekripsi harus menggunakan kunci publik.
Symmetric-key
Skema enkripsi akan disebut symmetric-key apabila untuk setiap proses enkripsi maupun dekripsi sebuah data secara keseluruhan digunakan kunci yang sama. Pada skema enkripsi symmetric-key dibedakan menjadi dua kelas, yaitu block-cipher dan stream-cipher.
Block Cipher
Block-cipher adalah skema enkripsi yang akan membagi-bagi plaintext yang akan dikirimkan menjadi string-string (disebut blok) dengan panjang t, dan mengenkripsinya per-blok dengan menggunakan kunci yang sama pada setiap blok. Pada umumnya, block-cipher memproses plaintext dengan blok yang relatif panjang lebih dari 64 bit, untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci.
Stream Cipher
Stream cipher adalah skema enkripsi yang mengenkripsi data persatuan data, seperti bit, byte, nible atau per lima bit(saat data yang di enkripsi berupa data Boudout). Setiap mengenkripsi satu satuan data di gunakan kunci yang merupakan hasil pembangkitan dari kunci sebelum.
Algoritma Kriptografi dengan Symmetric-key
Beberapa contoh algoritma yang menggunakan Symmetric-key:
Asymmetric-key
Skema ini adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Skema ini disebut juga sebagai sistem kriptografi Public-key karena kunci untuk enkripsi dibuat secara umum (public-key) atau dapat diketahui siapa saja, tapi untuk proses dekripsinya dibuat satu hanya oleh yang berwenang untuk mendekripsinya, disebut private-key. Keuntungan skema model ini, untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci, yaitu public-key bagi para korensponden untuk mengenkripsi pesan, dan private-key untuk mendekripsi pesan. Berbeda dengan skema symmetric-key, jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak berkorespondensi.
Fungsi Enkripsi dan Dekripsi Algoritma Asymmetric-key
Apabila Ahmad dan Bobby hendak bertukar berkomunikasi, maka:
- Ahmad dan Bobby masing-masing membuat 2 buah kunci
- Ahmad membuat dua buah kunci, public-key dan secret-key
- Bobby membuat dua buah kunci, public-key dan secret-key
- Mereka berkomunikasi dengan cara:
- Ahmad dan Bobby saling bertukar public-key. Bobby mendapatkan dari Ahmad, dan Ahmad mendapatkan dari Bobby.
- Ahmad mengenkripsi plaintext ke Bobby dengan fungsi
- Ahmad mengirim ciphertext ke Bobby
- Bobby menerima dari Ahmad dan membuka plaintext dengan fungsi
Hal yang sama terjadi apabila Bobby hendak mengirimkan pesan ke Ahmad
- Bobby mengenkripsi plaintext ke Ahmad dengan fungsi
- Ahmad menerima dari Bobby dan membuka plaintext dengan fungsi
Algoritma Kriptografi dengan Asymmetric-key
- RSA - Rivert-Shamir-Adelman
- Diffie-Hellman
Fungsi Hash Kriptografi
Fungsi hash Kriptografi adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data seperti autentikasi dan integritas data. Fungsi hash adalah fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.
Sifat-Sifat Fungsi Hash Kriptografi
- Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
- Tahan preimej kedua (Second preimage resistant): bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2).
- Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)