Kriptografi, secara umum adalah
ilmu dan
seni untuk menjaga kerahasiaan
berita [
bruce Schneier -
Applied Cryptography]. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik
matematika yang berhubungan dengan
aspek keamanan informasi seperti
kerahasiaan data,
keabsahan data,
integritas data, serta
autentikasi data [A. Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied Cryptography]. Tidak semua aspek keamanan
informasi ditangani oleh kriptografi.
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :
- Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.
- 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/pengenalan, 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.,
atau nirpenyangkalan adalah usaha untuk mencegah terjadinya
penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang
mengirimkan/membuat.
Algoritma Sandi
algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografis.
Algoritma tersebut harus memiliki kekuatan untuk melakukan (dikemukakan oleh Shannon):
- konfusi/pembingungan (confusion), dari teks terang sehingga sulit
untuk direkonstruksikan secara langsung tanpa menggunakan algoritma
dekripsinya
- difusi/peleburan (difusion), dari teks terang sehingga karakteristik dari teks terang tersebut hilang.
sehingga dapat digunakan untuk mengamankan informasi. Pada implementasinya sebuah algoritmas sandi harus memperhatikan
kualitas layanan/
Quality of Service atau
QoS
dari keseluruhan sistem dimana dia diimplementasikan. Algoritma sandi
yang handal adalah algoritma sandi yang kekuatannya terletak pada kunci,
bukan pada kerahasiaan algoritma itu sendiri. Teknik dan metode untuk
menguji kehandalan algoritma sandi adalah
kriptanalisa.
Dasar matematis yang mendasari proses
enkripsi dan
dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen teks terang /
plaintext dan yang berisi elemen teks sandi/
ciphertext. Enkripsi dan dekripsi merupakan fungsi
transformasi
antara himpunan-himpunan tersebut. Apabila elemen-elemen teks terang
dinotasikan dengan P, elemen-elemen teks sandi dinotasikan dengan C,
sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan
notasi D.
Enkripsi :
Dekripsi :
atau
Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
- kunci-simetris/symetric-key, sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik
- kunci-asimetris/asymetric-key
Berdasarkan arah implementasi dan pembabakan jamannya dibedakan menjadi :
Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama
untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem
kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut
kunci publik(
public key) dan kunci pribadi (
private key),
digunakan untuk proses enkripsi dan proses dekripsinya. Bila elemen
teks terang dienkripsi dengan menggunakan kunci pribadi maka elemen teks
sandi yang dihasilkannya hanya bisa didekripsikan dengan menggunakan
pasangan kunci pribadinya. Begitu juga sebaliknya, jika kunci pribadi
digunakan untuk proses enkripsi maka proses dekripsi harus menggunakan
kunci publik pasangannya.
algoritma sandi kunci-simetris
Skema algoritma sandi akan disebut kunci-simetris apabila untuk
setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan
kunci yang sama. Skema ini berdasarkan jumlah data per proses dan alur
pengolahan data didalamnya dibedakan menjadi dua kelas, yaitu
block-cipher dan stream-cipher.
Block-Cipher
Block-cipher adalah skema algoritma sandi yang akan membagi-bagi teks
terang yang akan dikirimkan dengan ukuran tertentu (disebut blok)
dengan panjang t, dan setiap blok dienkripsi dengan menggunakan kunci
yang sama. Pada umumnya, block-cipher memproses teks terang dengan blok
yang relatif panjang lebih dari 64
bit,
untuk mempersulit penggunaan pola-pola serangan yang ada untuk
membongkar kunci. Untuk menambah kehandalan model algoritma sandi ini,
dikembangkan pula beberapa tipe proses enkripsi, yaitu :
Stream-Cipher
Stream-cipher adalah algoritma sandi 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
digunakan kunci yang merupakan hasil pembangkitan dari kunci sebelum.
Algoritma-algoritma sandi kunci-simetris
Beberapa contoh algoritma yang menggunakan kunci-simetris:
algoritma sandi adalah algoritma yang berfungsi untuk melakukan
tujuan kriptografis. Algoritma tersebut harus memiliki kekuatan untuk
melakukan (dikemukakan oleh Shannon):
konfusi/pembingungan (confusion), dari teks terang sehingga sulit untuk direkonstruksikan secara langsung tanpa menggunakan algoritma dekripsinya
difusi/peleburan (difusion), dari teks terang sehingga karakteristik dari teks terang tersebut hilang.
sehingga dapat digunakan untuk mengamankan informasi. Pada
implementasinya sebuah algoritmas sandi harus memperhatikan kualitas
layanan/Quality of Service atau QoS dari keseluruhan sistem dimana dia
diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi
yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma
itu sendiri. Teknik dan metode untuk menguji kehandalan algoritma sandi
adalah kriptanalisa.
Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah
relasi antara dua himpunan yaitu yang berisi elemen teks terang /
plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan
dekripsi merupakan fungsi transformasi antara himpunan-himpunan
tersebut. Apabila elemen-elemen teks terang dinotasikan dengan P,
elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses
enkripsi dinotasikan dengan E, dekripsi dengan notasi D.
Enkripsi : E(P) = C
Dekripsi : D(C) = P atau D(E(P)) = P
Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
kunci-simetris/symetric-key, sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik
kunci-asimetris/asymetric-key
Berdasarkan arah implementasi dan pembabakan jamannya dibedakan menjadi :
algoritma sandi klasik classic cryptography
algoritma sandi modern modern cryptography
Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
algoritma sandi kunci rahasia secret-key
algoritma sandi kunci publik publik-key
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama
untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem
kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut
kunci publik(public key) dan kunci pribadi (private key), digunakan
untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang
dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang
dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci
pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk
proses enkripsi maka proses dekripsi harus menggunakan kunci publik
pasangannya.
Algoritma Sandi Kunci-Asimetris
Skema ini adalah algoritma yang menggunakan kunci yang berbeda untuk
proses enkripsi dan dekripsinya. Skema ini disebut juga sebagai sistem
kriptografi kunci publik karena kunci untuk enkripsi dibuat untuk
diketahui oleh umum (public-key) atau dapat diketahui siapa saja, tapi
untuk proses dekripsinya hanya dapat dilakukan oleh yang berwenang yang
memiliki kunci rahasia untuk mendekripsinya, disebut private-key. Dapat
dianalogikan seperti kotak pos yang hanya dapat dibuka oleh tukang pos
yang memiliki kunci tapi setiap orang dapat memasukkan surat ke dalam
kotak tersebut. Keuntungan algoritma model ini, untuk berkorespondensi
secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia
sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci, yaitu
kunci publik bagi para korensponden untuk mengenkripsi pesan, dan kunci
privat untuk mendekripsi pesan. Berbeda dengan skema kunci-simetris,
jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak
berkorespondensi.
Fungsi Enkripsi dan Dekripsi Algoritma Sandi Kunci-Asimetris
Apabila Ahmad dan Bejo hendak bertukar berkomunikasi, maka:
- Ahmad dan Bejo masing-masing membuat 2 buah kunci
- Ahmad membuat dua buah kunci, kunci-publik dan kunci-privat
- Bejo membuat dua buah kunci, kunci-publik dan kunci-privat
- Mereka berkomunikasi dengan cara:
- Ahmad dan Bejo saling bertukar kunci-publik. Bejo mendapatkan dari Ahmad, dan Ahmad mendapatkan dari Bejo.
- Ahmad mengenkripsi teks-terang ke Bejo dengan fungsi
- Ahmad mengirim teks-sandi ke Bejo
- Bejo menerima dari Ahmad dan membuka teks-terang dengan fungsi
Hal yang sama terjadi apabila Bejo hendak mengirimkan pesan ke Ahmad
- Bejo mengenkripsi teks-terang ke Ahmad dengan fungsi
- Ahmad menerima dari Bejo dan membuka teks-terang dengan fungsi
Algoritma -Algoritma Sandi Kunci-Asimetris
Fungsi Hash Kriptografis
Fungsi hash Kriptografis adalah
fungsi hash
yang memiliki beberapa sifat keamanan tambahan sehingga dapat dipakai
untuk tujuan keamanan data. Umumnya digunakan untuk keperluan
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)
Algoritma-Algoritma Fungsi Hash Kriptografi
Beberapa contoh algoritma fungsi hash Kriptografi:
Mengembalikan Fungsi Hash Kriptografi
algoritma sandi adalah algoritma yang berfungsi untuk melakukan
tujuan kriptografis. Algoritma tersebut harus memiliki kekuatan untuk
melakukan (dikemukakan oleh Shannon):
konfusi/pembingungan (confusion), dari teks terang sehingga sulit untuk direkonstruksikan secara langsung tanpa menggunakan algoritma dekripsinya
difusi/peleburan (difusion), dari teks terang sehingga karakteristik dari teks terang tersebut hilang.
sehingga dapat digunakan untuk mengamankan informasi. Pada
implementasinya sebuah algoritmas sandi harus memperhatikan kualitas
layanan/Quality of Service atau QoS dari keseluruhan sistem dimana dia
diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi
yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma
itu sendiri. Teknik dan metode untuk menguji kehandalan algoritma sandi
adalah kriptanalisa.
Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah
relasi antara dua himpunan yaitu yang berisi elemen teks terang /
plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan
dekripsi merupakan fungsi transformasi antara himpunan-himpunan
tersebut. Apabila elemen-elemen teks terang dinotasikan dengan P,
elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses
enkripsi dinotasikan dengan E, dekripsi dengan notasi D.
Enkripsi : E(P) = C
Dekripsi : D(C) = P atau D(E(P)) = P
Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
kunci-simetris/symetric-key, sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik
kunci-asimetris/asymetric-key
Berdasarkan arah implementasi dan pembabakan jamannya dibedakan menjadi :
algoritma sandi klasik classic cryptography
algoritma sandi modern modern cryptography
Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
algoritma sandi kunci rahasia secret-key
algoritma sandi kunci publik publik-key
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama
untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem
kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut
kunci publik(public key) dan kunci pribadi (private key), digunakan
untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang
dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang
dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci
pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk
proses enkripsi maka proses dekripsi harus menggunakan kunci publik
pasangannya.
Salah satu cara mengembalikan (mendapatkan nilai asal) dari fungsi hash kriptografi adalah dengan menggunakan
Tabel pelangi.
Tabel pelangi bekerja dengan cara mengumpulkan nilai akhir fungsi hash
kriptografi lalu menyusun basis data untuk mendapatkan nilai asal fungsi
hash kriptografi.
algoritma sandi adalah algoritma yang berfungsi untuk melakukan
tujuan kriptografis. Algoritma tersebut harus memiliki kekuatan untuk
melakukan (dikemukakan oleh Shannon):
konfusi/pembingungan (confusion), dari teks terang sehingga sulit untuk direkonstruksikan secara langsung tanpa menggunakan algoritma dekripsinya
difusi/peleburan (difusion), dari teks terang sehingga karakteristik dari teks terang tersebut hilang.
sehingga dapat digunakan untuk mengamankan informasi. Pada
implementasinya sebuah algoritmas sandi harus memperhatikan kualitas
layanan/Quality of Service atau QoS dari keseluruhan sistem dimana dia
diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi
yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma
itu sendiri. Teknik dan metode untuk menguji kehandalan algoritma sandi
adalah kriptanalisa.
Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah
relasi antara dua himpunan yaitu yang berisi elemen teks terang /
plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan
dekripsi merupakan fungsi transformasi antara himpunan-himpunan
tersebut. Apabila elemen-elemen teks terang dinotasikan dengan P,
elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses
enkripsi dinotasikan dengan E, dekripsi dengan notasi D.
Enkripsi : E(P) = C
Dekripsi : D(C) = P atau D(E(P)) = P
Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
kunci-simetris/symetric-key, sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik
kunci-asimetris/asymetric-key
Berdasarkan arah implementasi dan pembabakan jamannya dibedakan menjadi :
algoritma sandi klasik classic cryptography
algoritma sandi modern modern cryptography
Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
algoritma sandi kunci rahasia secret-key
algoritma sandi kunci publik publik-key
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama
untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem
kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut
kunci publik(public key) dan kunci pribadi (private key), digunakan
untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang
dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang
dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci
pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk
proses enkripsi maka proses dekripsi harus menggunakan kunci publik
pasangannya.