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:

  • DES - Data Encryption Standard
  • 3DES - DES diaplikasikan 3 kali
  • AES - Advanced Encryption Standard

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:

  1. Ahmad dan Bobby masing-masing membuat 2 buah kunci
    1. Ahmad membuat dua buah kunci, public-key   dan secret-key  
    2. Bobby membuat dua buah kunci, public-key   dan secret-key  
  2. Mereka berkomunikasi dengan cara:
    1. Ahmad dan Bobby saling bertukar public-key. Bobby mendapatkan   dari Ahmad, dan Ahmad mendapatkan   dari Bobby.
    2. Ahmad mengenkripsi plaintext   ke Bobby dengan fungsi  
    3. Ahmad mengirim ciphertext   ke Bobby
    4. Bobby menerima   dari Ahmad dan membuka plaintext dengan fungsi  

Hal yang sama terjadi apabila Bobby hendak mengirimkan pesan ke Ahmad

  1. Bobby mengenkripsi plaintext   ke Ahmad dengan fungsi  
  2. Ahmad menerima   dari Bobby dan membuka plaintext dengan fungsi  

Algoritma Kriptografi dengan Asymmetric-key

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)