Teknikkriptografi
Teknikkriptografi
Teknik Substitusi
Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan diatas.
Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat
sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk
keperluan dekripsi. Bila tabel substitusi dibuat secara acak, akan semakin sulit
pemecahan ciphertext oleh orang yang tidak berhak.
A B C D E F G H I J K L M N O P Q R S T U VWX Y Z1
2 3 4 5 6 7 8 9 0
B F 1 K Q G A T P J 6 H Y D 2 X 5 MV 7 C 8 4 I 9 N R E U 3 L S WO Z 0
Tabel substitusi diatas dibuat secara acak. Dengan menggunakan tabel tersebut,
dari plaintext "5 teknik dasar kriptografi" dihasilkan ciphertext "L 7Q6DP6 KBVBM
6MPX72AMBGP". Dengan menggunakan tabel substitusi yang sama secara dengan arah
yang terbalik (reverse), plaintext dapat diperoleh kembali dari ciphertext-nya.
2.3.2
Teknik Blocking
Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri
Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk
penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik
ini. Plaintext dituliskan secara vertikal ke bawah berurutan pada
2.3.3
Teknik Permutasi
Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga
disebut transposisi. Teknik ini memindahkan atau merotasikan karakter dengan aturan
tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam teknik substitusi,
karakter berada pada posisi yang tetap tapi identitasnya yang diacak. Pada teknik
permutasi, identitas karakternya tetap, namun posisinya yang diacak. Sebelum dilakukan
permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang
yang sama.
Untuk contoh diatas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter,
dengan aturan permutasi sebagai berikut :
2.3.4
Teknik Ekspansi
Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan
itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan
meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di
akhir kata itu dan menambahkan akhiran "an". Bila suatu kata dimulai dengan huruf
vokal atau bilangan genap, ditambahkan akhiran "i". Proses enkripsi dengan cara
ekspansi terhadap plaintext terjadi sebagai berikut :
5
5 AN
T EKN I K
EKN
KTAN
DA S AR
KR I P TOGRA F I
ASARDAN
R I P TOGRA F I KAN
2.3.5
DES, yang dikembangkan dari Lucifer, didesain untuk dapat diimplementasikan secara
komersial, namun hasilnya terjadi pengurangan panjang key yang cukup signifikan, yaitu
pengurangan panjang key sebanyak 72-bitmenjadi 56-bit.
Hal inilah yang menjadi pertanyaan sekaligus kekuatiran sementara orang pada saat DES
ditetapkan sebagai standard enkripsi badan pemerintahan federal Amerika Serikat, bahwa
DES yang memiliki panjang key 56-bit tidak cukup andal untuk menghadapi serangan
paksa terhadap key, yang disebut brute force attack, yang pada prinsipnya adalah upaya
menggunakan key secara trial and error dari seluruh kombinasi yang mungkin.
Algoritma enkripsi modern umumnya dipublikasikan secara luas, dan keandalan
teknik enkripsi modern tidak tergantung pada kerahasiaan algoritmanya, namun amat
tergantung pada key yang digunakan untuk proses enkripsi dan dekripsi. Dengan key
sepanjang 56-bit, brute force attack dengan teori peluang cukup mencoba setengah dari
kombinasi yang ada. Kombinasi key yang mungkin untuk DES adalah 2 56 alternatif, atau
7.2 x 1016.
Pada dasarnya, setiap iterasi menghasilkan nilai antara (intermediate) 64-bit yang
menjadi input bagi proses iterasi selanjutnya, sampai 16 iterasi diselesaikan. Nilai-nilai
32-bit kiri dan kanan dari 64-bit nilai antara ini diperlakukan terpisah (sebagai L untuk
kiri, dan R untuk kanan). Secara umum proses setiap iterasi dapat disingkat dengan
persamaan berikut ini :
Ln = Rn-1
Rn = Ln-1 XOR f(Rn-1,Kn)
32 bit sebelah kiri yang menjadi masukan bagi suatu iterasi ke-n (L n) adalah keluaran 32bit sebelah kanan dari iterasi sebelumnya (R n-1). Sementara itu 32 bit sebelah kanan yang
menjadi masukan bagi iterasi ke-n (Rn) merupakan fungsi ekslusif OR (XOR) dari
keluran 32-bit sebelah kiri dari iterasi sebelumnya (Ln-1)dengan suatu fungsi yang
memproses Rn-1 dengan sub-key yang dihasilkan pada iterasi ke-n (K n). Sub-key sendiri
dihasilkan dengan melakukan permutasi antara bit-bit key sebelah kiri (C n-1) dan sebelah
kanan (Dn-1), setelah sebelumnya masing-masing dirotasikan sirkular.
Sekilas proses enkripsi yang terjadi di dalam suatu iterasi terlihat amat rumit,
namun sebenarnya proses yang terjadi merupakan kombinasi dari ekspansi, permutasi
dan substitusi, yang prinsip dasarnya sebenarnya sederhana, seperti telah diuraikan pada
teknik dasar kriptografi.
Proses dekripsi DES pada dasarnya sama dengan proses enkripsi. Ciphertext dan
key menjadi input algoritma dekripsi DES. Algoritma dekrispi ini persis sama dengan
algoritma yang digunakan untuk proses enkripsi. Perbedaannya adalah, sub-key yang
digunakan dalam proses dekripsi memiliki urutan yang berlawanan dengan proses
enkripsi. Jadi, sub-key untuk dekripsi iterasi ke 1 sama dengan sub-key untuk enkripsi
iterasi ke 16. Selanjutnya dekripsi iterasi ke 2 menggunakan sub-key yang sama dengan
enkripsi iterasi ke 15, dst. Setelah iterasi ke 16 dari proses dekripsi, diperoleh kembali
plaintext dari ciphertextnya.
Karena algoritma DES ini telah dipublikasikan secara luas, maka keamanan
kriptografi dengan algoritma ini amat tergantung pada keamanan dan kerahasiaan key
yang digunakan. Bila key ini jatuh ke tangan orang yang tidak berhak, maka informasi
yang dienkripsikan dengan DES dapat diketahui oleh orang yang tidak berhak.
Diffie-Hellman berupa algoritma enkripsi berbasis public key yang aplikatif pada tahun
1978.
Berbeda dengan DES yang banyak menggunakan teknik-teknik dasar kriptografi,
teknik yang dilakukan RSA adalah pendekatan matematis, suatu terobosan yang benarbenar berarti pada ilmu kriptografi yang telah berusia kurang lebih 4 millenium, yang
diawali dengan penggunaan kode rahasia dalam makam-makam raja mesir kuno.
Skema RSA banyak menggunakan ekspresi eksponensial dan aritmetika modulus.
Plaintext dienkripsikan perblok data yang masing-masing memiliki panjang biner yang
kurang dari suatu angkat tertentu (n). Dengan plaintext (P) dan ciphertext tertentu (C),
berlaku :
C = Pe mod n
P = Cd mod n
Dalam aritmetika modulus, a mod b adalah sisa (residu) hasil pembagian a
terhadap b, atau dengan persamaan matematis, jika a = bx + r, dengan x integer terbesar
yang menghasilkan bx a, maka r = a mod b. Dalam persamaan diatas, public key adalah
e dan private key adalah d dan nilai n harus diketahui oleh pengirim maupun penerima.
Untuk suatu nilai n tertentu, antara public key (e) dan private key (d) terdapat
hubungan ed = 1 mod f (n), dimana f (n) adalah fungsi totient Euler, yang menyatakan
jumlah integer positif yang lebih kecil dari n dan relatif prima ( bukan faktor ) terhadap n.