Jika plainteks dibagi menjadi blok-blok yang panjangnya 4 bit menjadi : 0011 1000
1111
Jika panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang ditetapkan
maka blok yang terakhir ditambah dengan padding bit atau bit-bit semu.
Padding bits dapat mengakibatkan ukuran cipherteks hasil enkripsi menjadi lebih
panjang daripada ukuran plainteks semula.
Selain itu rangkain bit dapat dinyatakan dalam notsi HEX (hexadecimal) seperti
dibawah ini:
Contoh plainteks 001110001111 dibagi menjadi blok bit yang panjangnya 4 bit :
0011 1000 1111
Operator biner yang sering digunakan dalam cipher yang beroperasi dalam mode bit
adalah XOR, notasinya . Operator XOR dioperasikan pada dua bit dengan aturan
sebagai berikut:
00= 0
0 1=1
1 0=1
1 1=0
Jika dua rangkain dioperasikan dengan XOR maka operasinya dengan cara meng-
XOR-kan setiap bit yang berkoresponden dari kedua rangkaian tersebut.
Contoh 4.1
Atau
0 0 0 1 1 1
1 0 1 0 0 0
1 0 1 1 1 1
Untuk algoritma enkripsi palaing sederhana yang menggunakan XOR adlah dengan
meng-XOR-kan plainteks (P) dengan kunci (K) yang akan menghasilkan cipherteks
( C ):
C = P K...............................................................................................(4.1)
P = C K...............................................................................................(4.2)
Stream Cipher atau cipher aliran adalah algoritma kriptografi yang beroperasi dalam
bentuk bit tunggal, Cipher aliran mengenkripsi plainteks menjadi cipherteks bit per
bit atau byte per byte. Contoh cipher aliran yang memproses data byte per byte adalah
Vigenere Cipher dan One-time pad cipher.
Stream Cipher cocok untuk mengenkripsikan aliran data yang terus menerus melalui
saluran komunikasi karena jika bit cipherteks yang diterima mengandung kesalahan,
maka hal ini hanya menghasilkan satu bit kesalahan pada waktu dekripsi karena tiap
bit plainteks ditentukan hanya oleh satu bit cipherteks.
Cipher aliran pertama kali dipekenalkan oleh Vernam melalui algoritmanya yang
dikenal dengan nama Vernam cipher. Vernam cipher diadopsi dari one time pad
cipher dengan karakter diganti dengan bit (0 atau 1). Cipherteks diperoleh dengan
melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci:
ci : bit cipherteks
Karena operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator
ci = (pi ki).............................................................................................(4.5)
pi = (ci ki)...............................................................................................(4.6)
Pada cipher aliran, bit hanya mempunyai dua buah nilai, sehingga proses enkripsi
hanya menyebabkan dua keadaan pada bit tersebut barubah atau tidak berubah. Dua
keadaan tersebut ditentukan oleh kunci enkripsi yang disebut aliran kunci
pembangkit aliran kunci (keysream generator). Aliran kunci (running key) di XOR-
kan dengan aliran bit-bit plainteks p1,p2,…pi. Untuk menghasilkan aliran bit-bit
cipherteks:
ci = pi ki
Untuk menghasilkan plainteks kembali bit-bit cipherteks di-XOR-kan dengan aliran
pi = ci ki
Pengirim Penerima
Keystream Keystream
Generator Generator
key
stream ki keys tream ki
Pi
Ci Pi
Plainteks Plainteks
Cipherteks Dekripsi
Enkripsi
Beberapa serangan yang dapat dilakukan oleh kriptanalis tehadap cipher aliran
adalah:
P C = P (P K)
= (P P ) K
=0K
=K
Contoh 4.2
Jadi kunci yang dideduksi sama dengan kunci enkripsi semula yaitu :
00110010
Serangan ini terjadi jika keystream yang sama digunakan dua kali terhadap
potongan plainteks yang berbeda. Misalkan kriptanalis memiliki dua potongan
cipherteks berbeda (C1 dan C2) yang dienkripsi dengan bit-bit kunci yang
sama.
C1 C2 = (P1 K) (P2 K)
= (P1 P2) (K K)
= (P1 P2) 0
= (P1 P2)
Jika P1 atau P2 tidak tidak diketahui, dua buah plainteks yang ter-XOR satu
sama lain ini dapat diketahui dengan menggunakan nilai statistic dari pesan.
Jika salah satu dari P1 atau P2 diketahui atau dapat diterka, maka XOR-kan
salah satu plainteks tersebut dengan cipherteks untuk memperoleh bit-bit
kunci K yang berkoresponden:
P1 C1 = P1 (P1 K) = K
Contoh 4.3
Plainteks dibagi menjadi beberapa blok bit dengan panjang yang sama.Proses
enkripsi menggunakan kunci yang ukurannya sama dengan plainteks dan
menghasilkan cipherteks dengan ukuran yang sama.
Enkripsi dan dekripsi dengan kunci K dinyatakan dengan persamaan berikut ini:
EK(P) = C.............................................................................................(4.7)
DK(C) = P............................................................................................(4.8)
p1 p2 ... pn c1 c2 ... cn
K K
EnkripEsi (E) DekripDsi (D)
c1 c2 ... cn p1 p2 ... pn
Plainteks dibagi menjadi beberapa blok dengan panjang tetap. Empat mode operasi
yang lazim diterapkan pada sistem blok cipher adalah:
Mode Operasi ECB membagi plainteks Pi menjadi beberapa blok, setiap blok
dienkripsi secara individual dan independen menjadi blok cipherteks .
Ci
Ci = Ek (Pi)..............................................................................(4.9)
Pi = Dk (Ci).............................................................................(4.10)
Gambar 4.2 dan 4.3 memperlihatkan enkripsi m buah blok plainteks, P1…Pm
dan dekripsi m buah blok cipherteks C1..Cm dengan mode ECB.
Padding
Padding adalah menambahkan blok terakhir dengan pola bit yang teratur agar
panjangnya sama dengan ukuran blok yang telah ditetapkan. Misalkan dengan
Contoh 4.4
Bagi plainteks menjadi blok blok 4 bit : 0101 1011 0011 0010 1010 1011
Terlihat bahwa blok plainteks yang sama akan selalu dienkripsi menjadi blok
copherteks yang sama. Pada contoh ini blok 1011 (B) muncul 2 kali dan selalu
dienkripsi menjadi 1100 (E)
p1 p2 pn p1 p2 pn
p1 p2 pn ... ...
...
K K E E
E …. K
Blok Cipherteks
Blok Cipherteks C2 Blok Cipherteks Cm
C1
c1 c2 ... cn c1 c2 ... cn
c1 c2 ... cn
K K D D
D …. K
Blok plainteks P1
Blok plainteks P2 Blok plainteks Pm
a. Tidak perlu mengenkripsi file secara linier karena tiap blok plainteks
dienkripsi secara independen.
b. Jika satu atau lebih bit pada blok cipherteks mengalami kesalahan, maka
kesalahan ini hanya mempengaruhi cipherteks yang bersangkutan pada
waktu dekripsi. Blok-blok cipherteks lainnya bila didekripsi tidak
terpengaruh oleh kesalahan bit cipherteks tersebut.
Mode CBC menerapakan mekanisme umpan balik pada sebuah blok, hasil
enkripsi blok sebelumnya diumpan balikkan ke dalam enkripsi blok yang
current. Blok plainteks yang current di-XOR- kan terlebih dahulu dengan blok
cipherteks hasil enkripsi esbelumnya, selanjutnya hasil peng-XOR-an ini
masuk ke dalam fungsi enkripsi. Dengan mode CBC setiap blok cipherteks
bergantung tidak hanya pada blok plainteksnya tetapi juga pada seluruh blok
plainteks sebelumnya.
Contoh 4.5
Bagi plainteks menjadi blok blok 4 bit : 0101 1011 0011 0010 1010 1011
( 5B32AB )
Pi - 1 Pi
Ci - 2
K K
E E
Ci - 1 Ci
K D K D
Ci - 2
Pi - 1
Pi
Mode CFB mengenkripsi cipher blok seperti pada cipher aliran. CFB p-bit
mengenkripsi plainteks sebanyak p bit setiap kalinya, dimana p ≤ n ( n=
ukuran blok). Mode ini membutuhkan sebuah antrian yang berukuran sama
dengan ukuran blok masukan. Algoritma enkripsi dan dekripsi mode CFB
lihat gambar 4.5.
Secara matematis enkripsi dan dekripsi mode CFB dinyatakan dengan
persamaan berikut ini :
Xi+1 = LSBn-p(Xi) || Ci
Xi+1 = LSBn-p(Xi) || Ci
Keterangan:
Xi = isi antrian dengn X1 adalah IV
E = fungsi enkripsi dengan algoritma cipher blok
K = kunci
N = panjang blok enkripsi
P = panjang unit enkripsi
|| = operator penyambungan
MSB = Most Significant Byte
LSB = Lost Significant Byte
Perambatan kesalahan
Kesalahan 1-bit pada blok plainteks akan merambat pada blok-blok cipherteks
yang berkoresponden dan blok-blok cipherteks selanjutnya pada proses
enkripsi. Hal yang kebalikan juga terjadi pada proses dekripsi.
Antrian(shift register) b byte Antrian(shift register) b byte
D
K E K
Ki Ki
Pi Ci Ci Pi
Mode OFB mirip dengan mode CFB, kecuali p-bit dari hasil enkripsi terhadap
antrian disalin menjadi elemen posisi paling kanan di antrian. Dekripsi
dilakukan sebagai kebalikan dari proses enkripsi. Gambar 6 adalah mode OFB
8 bit yang bekerja pada blok berukuran 64 bit. Kesalahan 1- bit pada blok
plainteks hanya akan mempengaruhi blok cipherteks yang berkoresponden
saja, begitu pula pada proses dekripsi.
Antrian(shift register) b byte Antrian(shift register) b byte
D
K E K
Ki Ki
Pi Ci Ci Pi
2. Sebutkan dan jelaskan teknik kriptografi klasik yang digunakan dalam proses
enkripsi pada algoritma block cipher !