You are on page 1of 19

PENYANDIAN DALAM KRIPTOGRAFI

Hendro NIM : 13505103


Program Studi Teknik Informatika, Institut Teknologi Bandung
Jl. Ganesha 10, Bandung
E-mail : if15103@students.if.itb.ac.id

Abstrak
Makalah ini membahas mengenai penyandian yang digunakan dalam kriptografi. Kriptografi adalah ilmu
sekaligus seni untuk menjaga keamanan pesan (message) [Schneier, 1996]. Dalam kriptografi, sistem
penyandian dapat dikelompokan menjadi 2 kelompok, yaitu sistem cipher klasik dan sistem cipher modern.
Sistem cipher klasik adalah sistem algoritma kriptografi yang digunakan pada zaman dahulu yang masih
berbasis karakter sehingga algoritmanya tidak terlalu sulit untuk dipecahkan. Sistem cipher modern adalah
sistem algoritma yang sampai saat ini masih digunakan karena berbasis bit sehingga cukup sulit untuk
dipecahkan dan tingkat keamanannya lebih tinggi dibandingkan dengan sistem cipher klasik.

Sebelum komputer ada, kriptografi dilakukan dengan sistem cipher klasik (algoritma kriptografi yang
bersejarah) yang berbasis karakter. Algoritma yang digunakan termasuk ke dalam sistem kriptografi simetri
dan digunakan jauh sebelum sistem kriptografi kunci publik ditemukan. Terdapat sejumlah algoritma yang
tercatat dalam sejarah kriptografi (sehingga dinamakan algoritma kriptografi klasik), namun sekarang
algoritma tersebut sudah usang karena ia sangat mudah dipecahkan. Algoritma kriptografi klasik terbagi 2,
yaitu cipher Substitusi (Substitution ciphers) dan cipher Transposisi (Transposition ciphers).

Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter (seperti yang
dilakukan pada cipher substitusi atau cipher transposisi dari algoritma kriptografi klasik). Operasi dalam
mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam
rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua data dan informasi
dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi cipherteks dalam
bentuk rangkaian bit, demikian sebaliknya. Perkembangan algoritma kriptografi modern berbasis bit
didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner. Algoritma
kriptografi modern dapat dikelompokkan menjadi dua kategori, yaitu cipher Aliran (Stream cipher) dan
cipher Blok (Block cipher).

Kata kunci: Kriptografi, cipher, block cipher, stream cipher , Substitution ciphers, Transposition ciphers,
enkripsi, dekripsi.

Untuk itu, diperlukan suatu proses penyandian


1. Pendahuluan terhadap data. Proses ini disebut enkripsi
(encryption) dan dekripsi (decryption). Enkripsi
Sekarang ini, penyimpana dan pengiriman data adalah proses pengubahan data asli (plaintext)
sangat mudah dilakukan. Kita dapat menyimpan menjadi data rahasia (ciphertext) pada saat
dan mengirimkan data-data secara cepat dan pengiriman (sending) sehingga kerahasiaan data
praktis. Data dapat disimpan di dalam media terjaga. Sedangkan dekripsi adalah proses
elektronik seperti komputer, handphone, telepon, pengubahan data rahasia (ciphertext) menjadi
dan lain-lain sehingga kita tidak perlu data asli (plaintext) pada saat penerimaan
mengingatnya satu per satu. Dalam proses ini, (receiving) sehingga data sesuai dengan data asli
harus diperhatikan keamanan dan keutuhan data. yang dikirimkan. Dengan proses ini, maka
Data haruslah terjaga kerahasiaannya dan utuh selama proses pengiriman data, data bersifat
sampai pada saat penerimaan di tujuan. rahasia sehingga keamanannya dapat terjaga.
Untuk melakukan enkripsi maupun dekripsi, ini kuncinya adalah jumlah pergeseran huruf
diperlukan suatu algoritma. Algoritma ini disebut (yaitu k = 3).
algoritma kriptografi. Jadi setiap orang yang
mengetahui algoritma kriptografi dari suatu data Tabel substitusi:
dapat mengetahui isi dari data tersebut Sehingga
biasanya algoritma kriptografi dibuat serumit pi : A B C D E F G H I J K L M N
mungkin. Semakin rumit algoritmanya, semakin O P Q R S T U V W X Y Z
aman data tersebut karena semakin sulit untuk ci : D E F G H I J K L M N O P Q
mengubah data rahasia menjadi data asli. R S T U V W X Y Z A B C

Contoh 1. Pesan
2. Algoritma Kriptografi
Menurut sejarahnya, algoritma kriptografi dapat HELLO WORLD
dikategorikan menjadi 2 kelompok, yaitu sistem disamarkan (enskripsi) menjadi
cipher klasik dan sistem cipher modern.
KHOOR ZRUOG
2.1. Sistem Cipher Klasik Penerima pesan mendekripsi Cipherteks dengan
(Algoritma Kriptografi menggunakan tabel substitusi, sehingga
Bersejarah) Cipherteks

KHOOR ZRUOG
Sebelum komputer ada, kriptografi dilakukan
dengan algoritma berbasis karakter. dapat dikembalikan menjadi plainteks semula:

Algoritma yang digunakan termasuk ke dalam


HELLO WORLD
sistem kriptografi simetri dan digunakan jauh
sebelum sistem kriptografi kunci publik
ditemukan. Dengan mengkodekan setiap huruf abjad dengan
integer sebagai berikut: A = 0, B = 1, , Z = 25,
Terdapat sejumlah algoritma yang tercatat dalam maka secara matematis caesar Cipher
sejarah kriptografi (sehingga dinamakan menyandikan plainteks pi menjadi ci dengan
algoritma kriptografi klasik), namun sekarang aturan:
algoritma tersebut sudah usang karena ia sangat
mudah dipecahkan. ci = E(pi) = (pi + 3) mod 26 (1)

Algoritma kriptografi klasik: dan dekripsi Cipherteks ci menjadi pi dengan


1. Cipher Substitusi (Substitution Ciphers) aturan:
2. Cipher Transposisi (Transposition Ciphers)
pi = D(ci) = (ci 3) mod 26 (2)
2.1.1. Cipher Substitusi
Karena hanya ada 26 huruf abjad, maka
Ini adalah algoritma kriptografi yang mula-mula pergeseran huruf yang mungkin dilakukan adalah
digunakan oleh kaisar Romawi, Julius Caesar dari 0 sampai 25. Secara umum, untuk
(sehingga dinamakan juga caesar Cipher), untuk pergeseran huruf sejauh k (dalam hal ini k adalah
menyandikan pesan yang ia kirim kepada para kunci enkripsi dan deksripsi), fungsi enkripsi
gubernurnya. adalah

Caranya adalah dengan mengganti (menyulih ci = E(pi) = (pi + k) mod 26 (3)


atau mensubstitusi) setiap karakter dengan
karakter lain dalam susunan abjad (alfabet). dan fungsi dekripsi adalah

Misalnya, tiap huruf disubstitusi dengan huruf pi = D(ci) = (ci k) mod 26 (4)
ketiga berikutnya dari susunan akjad. Dalam hal
Catatan : Kunci(k) Pesan Kunci(k) Pesan
1. Pergeseran 0 sama dengan pergeseran 26 Ciphering hasil Ciphering hasil
(susunan huruf tidak berubah) dekripsi dekripsi
2. Pergeseran lain untuk k > 25 dapat juga
dilakukan namun hasilnya akan kongruen 15 IXKGS 2 VKXTF
dengan bilangan bulat dalam modulo 26. 14 JYLHT 1 WLYUG
Misalnya k = 37 kongruen dengan 11 dalam
modulo 26, atau 37 11 (mod 26). Dari Tabel 1, kata dalam Bahasa Inggris yang
3. Karena ada operasi penjumlahan dalam potensial menjadi plainteks adalah CREAM
persamaan (3) dan (4), maka caesar Cipher dengan menggunakan k = 21. Kunci ini
kadang-kadang dinamakan juga additive digunakan untuk mendekripsikan Cipherteks
Cipher. lainnya.

Kriptanalisis Terhadap Caesar Cipher Kadang-kadang satu kunci yang potensial


menghasilkan pesan yang bermakna tidak selalu
Caesar Cipher mudah dipecahkan dengan satu buah. Untuk itu, kita membutuhkan
metode exhaustive key search karena jumlah informasi lainnya, misalnya konteks pesan
kuncinya sangat sedikit (hanya ada 26 kunci). tersebut atau mencoba mendekripsi potongan
Cipherteks lain untuk memperoleh kunci yang
Contoh 2. benar.
Misalkan kriptanalis menemukan potongan
Cipherteks (disebut juga cryptogram) XMZVH. Contoh 3.
Diandaikan kriptanalis mengetahui bahwa Misalkan potongan Cipherteks HSPPW
plainteks disusun dalam Bahasa Inggris dan menghasilkan dua kemungkinan kunci yang
algoritma kriptografi yang digunakan adalah potensial, yaitu k = 4 menghasilkan pesan
caesar Cipher. Untuk memperoleh plainteks, DOLLS dan k = 11 menghasilkan WHEEL.
lakukan dekripsi mulai dari kunci yang terbesar, Lakukan deksripsi terhadap potongan Cipherteks
25, sampai kunci yang terkecil, 1. Periksa apakah lain tetapi hanya menggunakan k = 4 dan k = 11
dekripsi menghasilkan pesan yang mempunyai (tidak perlu exhaustive key search) agar dapat
makna (lihat Tabel 1). disimpulkan kunci yang benar.

Cara lain yang digunakan untuk memecahkan


Tabel 1. Contoh exhaustive key search terhadap Cipherteks adalah dengan statistik, yaitu dengan
Cipherteks XMZVH menggunakan tabel kemunculan karakter, yang
membantu mengidentifikasi karakter plainteks
Kunci(k) Pesan Kunci(k) Pesan yang berkoresponden dengan karakter di dalam
Ciphering hasil Ciphering hasil Cipherteks (akan dijelaskan kemudian).
dekripsi dekripsi Jenis-jenis Cipher Subsbtitusi
0 XMZVH 13 KZMIU
a. Cipher abjad-tunggal (monoalphabetic
25 YNAWI 12 LANJV Cipher atau Cipher substitusi sederhana -
24 ZOBXJ 11 MBOKW simple substitution Cipher)
23 APCYK 10 NCPLX Satu karakter di plainteks diganti dengan satu
22 BQDZL 9 ODQMY karakter yang bersesuaian. Jadi, fungsi
CREAM PERNZ Ciphering-nya adalah fungsi satu-ke-satu.
21 8
20 DSFBN 7 QFSOA Jika plainteks terdiri dari huruf-huruf abjad,
19 ETGCO 6 RGTPB maka jumlah kemungkinan susunan huruf-huruf
Cipherteks yang dapat dibuat adalah sebanyak
18 FUHDP 5 SHUQC
17 GVIEQ 4 TIVRD 26! = 403.291.461.126.605.635.584.000.000
16 HWJFR 3 UJWSE
Caesar Cipher adalah kasus khusus dari Cipher P = p1p2 pmpm+1 p2m
abjad tunggal di mana susunan huruf Cipherteks
diperoleh dengan menggeser huruf-huruf alfabet maka Cipherteks hasil enkripsi adalah
sejauh 3 karakter.
Ek(P) = f1(p1) f2(p2) fm(pm) fm+1(pm+1) f2m(p2m)
ROT13 adalah program enkripsi sederhana yang
ditemukan pada sistem UNIX. ROT13
menggunakan Cipher abjad-tunggal dengan yang dalam hal ini pi adalah huruf-huruf di dalam
pergeseran k = 13 (jadi, huruf A diganti dengan plainteks.
N, B diganti dengan O, dan seterusnya).
Untuk m = 1, Cipher-nya ekivalen dengan
Enkripsi arsip dua kali dengan ROT13 Cipher abjad-tunggal.
menghasilkan arsip semula:
Contoh Cipher substitusi periodik adalah Cipher
P = ROT13(ROT13(P)) Vigenere yang ditemukan oleh kriptologi
Perancis, Blaise de Vigenere pada abad 16.
b. Cipher substitusi homofonik Misalkan K adalah deretan kunci
(Homophonic substitution Cipher)
K = k1 k2 km
Seperti Cipher abjad-tunggal, kecuali bahwa
setiap karakter di dalam plainteks dapat yang dalam hal ini ki untuk 1 i m menyatakan
dipetakan ke dalam salah satu dari karakter jumlah pergeseran pada huruf ke-i. Maka,
Cipherteks yang mungkin. Misalnya huruf A karakter Cipherteks yi(p) adalah
dapat berkoresponden dengan 7, 9, atau 16,
huruf B dapat berkoresponden dengan 5, 10, yi(p) = (p + ki) mod n (5)
atau 23 dan seterusnya.
Misalkan periode m = 20, maka 20 karakter
Fungsi Ciphering-nya memetakan satu-ke- pertama dienkripsi dengan persamaan (5),
banyak (one-to-many). dimana setiap karakter ke-i menggunakan kunci
ki. Untuk 20 karakter berikutnya, kembali
Cipher substitusi homofonik digunakan pertama menggunakan pola enkripsi yang sama.
kali pada tahun 1401 oleh wanita bangsawan
Mantua. Cipher abjad-majemuk ditemukan pertama kali
oleh Leon Battista pada tahun 1568. Metode ini
Cipher substitusi homofonik lebih sulit digunakan oleh tentara AS selama Perang Sipil
dipecahkan daripada Cipher abjad-tunggal. Amerika.
Namun, dengan known-plaintext attack, Cipher
ini dapat dipecahkan, sedangkan dengan Meskipun Cipher abjad-majemuk dapat
Ciphertext-only attack lebih sulit. dipecahkan dengan mudah (dengan bantuan
komputer), namun anehnya banyak program
c. Cipher abjad-majemuk keamanan komputer (computer security) yang
(Polyalpabetic substitution Cipher ) menggunakan Cipher jenis ini.

Merupakan Cipher substitusi-ganda (multiple- d. Cipher substitusi poligram


substitution Cipher) yang melibatkan (Polygram substitution Cipher )
penggunaan kunci berbeda.
Blok karakter disubstitusi dengan blok
Cipher abjad-majemuk dibuat dari sejumlah Cipherteks. Misalnya ABA diganti dengan RTQ,
Cipher abjad-tunggal, masing-masing dengan ABB diganti dengan SLL, dan lain-lain.
kunci yang berbeda.
Playfair Cipher, ditemukan pada tahun 1854,
Kebanyakan Cipher abjad-majemuk adalah termasuk ke dalam Cipher substitusi poligram
Cipher substitusi periodik yang didasarkan pada dan digunakan oleh negara Inggris selama
periode m. Perang Dunia I.
Misalkan plainteks P adalah
2.1.2 Cipher Transposisi Contoh 5. Misalkan plainteks adalah

Pada Cipher transposisi, plainteks tetap sama, GANESHAITB


tetapi urutannya diubah. Dengan kata lain,
algoritma ini melakukan transpose terhadap Plainteks diblok atas 5 karakter. Kemudian, pada
rangkaian karakter di dalam teks. tiap blok, karakter pertama dan karakter terakhir
dipertukarkan
Nama lain untuk metode ini adalah permutasi,
karena transpose setiap karakter di dalam teks 1 2 3 4 5 6 7 8 9 10
sama dengan mempermutasikan karakter-
karakter tersebut. G A N E S H A I T B

Contoh 4.
Misalkan plainteks adalah
1 2 3 4 5 6 7 8 9 10
TEKNIK INFORMATIKA ITB
S A N E G B A I T H
Untuk meng-enkripsi pesan, plainteks ditulis
secara horizontal dengan lebar kolom tetap,
maka Cipherteksnya adalah
misal selebar 5 karakter (kunci k = 5):
SANEGBAITH
TEKNI
KINFO
Dekripsi dilakukan dengan cara yang sama, yaitu
RMATI
Cipherteks diblok atas delapan karakter.
KAITB
Kemudian, pada tiap blok, karakter pertama dan
karakter terakhir dipertukarkan.
maka Cipherteksnya dibaca secara vertikal
menjadi
Contoh 6. Misalkan plainteks adalah
TKRKEIMAKNAINFTTIOIB
KRIPTOGRAFI
Untuk mendekripsi pesan, kita membagi panjang
Plainteks disusun menjadi 3 baris (k = 3) seperti
Cipherteks dengan kunci. Pada contoh ini, kita
di bawah ini:
membagi 20 dengan 4 untuk mendapatkan 5.
K T A
Algoritma dekripsi identik dengan algoritma
R P O R F
enkripsi. Jadi, untuk contoh ini, kita menulis
I G I
Cipherteks dalam baris-baris selebar 5 karakter
menjadi:
maka Cipherteksnya adalah
TKRK
KTARPORFIGI
EIMA
KNAI
Kriptografi dengan alat scytale yang digunakan
NFTT
oleh tentara Sparta pada zaman Yunani termasuk
IOIB
ke dalam Cipher transposisi.
Dengan membaca setiap kolom kita memperoleh
Lebih Jauh Dengan Cipher Abjad-tunggal
pesan semula:
Seperti sudah disebutkan sebelum ini, metode
TEKNIK INFORMATIKA ITB
Cipher abjad-tunggal mengganti setiap huruf di
dalam abjad dengan sebuah huruf lain dalam
abjad yang sama.
Variasi dari metode transposisi lainnya
ditunjukkan pada Contoh 5 dan Contoh 6.
Jumlah kunci di dalam Cipher abjad-tunggal Terkaan juga dilakukan kriptanalis untuk
sama dengan jumlah cara menyusun 26 huruf memperoleh sebanyak mungkin plainteks dari
abjad tersebut, yaitu sebanyak potongan Cipherteks yang disadap. Plainteks
yang diperoleh dari hasil terkaan ini biasanya
26! = 403.291.461.126.605.635.584.000.000 digunakan dalam known-plaintext attack.

Ini berarti terdapat 26! buah kunci untuk Asumsi yang digunakan: kriptanalis mengetahui
menyusun huruf-huruf alfabet ke dalam tabel bahwa pesan ditulis dalam Bahasa Inggris dan
substitusi. algoritma kriptografi yang digunakan adalah
Cipher abjad-tunggal.
Contohnya, susunan guruf-huruf untuk
Cipherteks diperoleh dengan menyusun huruf- Contoh kasus 1:
huruf abjad secara acak seperti tabel substitusi Kriptanalis mempunyai potongan Cipherteks
berikut:
G WR W RWL
Tabel substitusi:
Karena hanya ada dua kata yang panjangnya satu
pi : A B C D E F G H I J K L M N O P Q R S T huruf dalam Bahasa Inggris (yaitu I dan A),
UVWXYZ maka G mungkin menyatakan huruf A dan W
ci : D I Q M T B Z S Y K V O F E R J A U W menyatakan huruf I, atau sebaliknya.
PXHLCNG
Kemungkinan G adalah huruf A dapat
Satu cara untuk membangkitkan kunci adalah dieliminasi, maka diapstikan G = I, sehingga
dengan sebuah kalimat yang mudah diingat. dengan cepat kriptanalis menyimpulkan bahwa
Misal kuncinya adalah potongan Cipherteks tersebut adalah

cryptography is fun I AM A MA*

Dari kunci tersebut, buang perulangan huruf Dengan pengetahuan Bahasa Inggris, karakter
sehingga menjadi terakhir (*) hampir dipastikan adalah huruf N,
sehingga kalimatnya menjadi
cryptogahisfunbdejklmqvwxz
I AM A MAN
lalu sambung dengan huruf-huruf lain yang tidak Hasil ini mengurangi jumlah kunci dari 26!
terdapat di dalam kalimat tersebut sehingga menjadi 22!
menjadi
Contoh kasus 2:
C R YPT O G AH I S F U N B D E J K LM Q Kriptanalis mempunyai potongan Cipherteks
VWXZ
HKC
Dengan demikian, tabel substitusi yang diperoleh
adalah Tidak banyak informasi yang dapat disimpulkan
dari cryptogram di atas. Namun kriptanalis dapat
Tabel substitusi: mengurangi beberapa kemungkinan kunci,
karena sebagai contoh tidak mungkin Z
pi : A B C D E F G H I J K L M N O P Q R S T diganti dengan H, Q dengan K, dan K dengan C.
UVWXYZ
ci : C R Y P T O G A H I S F U N B D E J K L Namun, jumlah kemungkinan kunci yang tersisa
MQVWXZ tetap masih besar. Jika pesan yang dikirim
memang hanya tiga huruf, maka exhaustive key
Menerka Plainteks dari Cipherteks search akan menghasilkan kata dengan tiga huruf
berbeda yang potensial sebagai plainteks.
Kadang-kadang kriptanalis melakukan terkaan
untuk mengurangi jumlah kunci yang mungkin Contoh kasus 3:
ada. Kriptanalis mempunyai potongan Cipherteks
HATTPT
Huruf % Huruf %
Dalam hal ini, kriptanalis dapat membatasi
jumlah kemungkinan huruf plainteks yang
F 2,2 S 6,3
dipetakan menjadi T. G 2,0 T 9,0
H 6,1 U 2,8
Kriptanalis mungkin mendeduksi bahwa salah
satu dari T atau P merepresentasikan huruf I 7,0 V 1,0
vokal. Kemungkinan plainteksnya adalah J 0,1 W 2,4
CHEESE, MISSES, dan CANNON.
K 0,8 X 2,0
Contoh kasus 4: L 4,0 Y 0,1
Kriptanalis mempunyai potongan Cipherteks M 2,4 Z 0,1
HATTPT
Tabel 2 di atas pada mulanya dipublikasikan di
dan diketahui informasi bahwa pesan tersebut dalam Cipher-Systems: The Protection of
adalah nama negara. Dengan cepat kriptanalis Communications dan dikompilasi oleh H. J.
menyimpulkan bahwa polygram tesrebut adalah Beker dan F.C. Piper
GREECE.
Terdapat sejumlah tabel frekuensi sejenis yang
Dalam hal ini, kriptanalis dapat membatasi dipublikasikan oleh pengarang lain, namun
jumlah kemungkinan huruf plainteks yang secara umum persentase kemunculan tersebut
dipetakan menjadi T. konsisten pada sejumlah tabel.

Kriptanalis mungkin mendeduksi bahwa salah Bila Cipher abjad-tunggal digunakan untuk
satu dari T atau P merepresentasikan huruf meng-engkripsi pesan, maka kemunculan huruf-
vokal. Kemungkinan plainteksnya adalah huruf di dalam plainteks tercermin pada tabel 2
CHEESE, MISSES, dan CANNON. di atas. Misalnya bila di dalam Cipher abjad-
tunggal huruf R menggantikan huruf E, maka
Metode Statistik dalam Kriptanalisis frekuensi R di dalam Cipherteks sama dengan
frekuensi E di dalam plainteksnya.
Metode yang paling umum digunakan dalam
memecahkan Cipherteks adalah menggunakan 2.2. Algoritma Kriptografi
statistik. Modern
Dalam hal ini, kriptanalis menggunakan tabel Algoritma kriptografi modern umumnya
frekuensi kemunculan huruf-huruf dalam teks beroperasi dalam mode bit ketimbang mode
bahasa Inggris. Tabel 2 memperlihatkan karakter (seperti yang dilakukan pada
frekuensi kemunculan huruf-huruf abjad yang cipher substitusi atau cipher transposisi dari
diambil dari sampel yang mencapai 300.000 algoritma kriptografi klasik).
karakter di dalam sejumlah novel dan suratkabar.
Operasi dalam mode bit berarti semua data dan
Tabel 2. Frekunsi kemunculan (relatif) huruf- informasi (baik kunci, plainteks, maupun
huruf dalam teks Bahasa Inggris cipherteks) dinyatakan dalam rangkaian (string)
bit biner, 0 dan 1. Algoritma enkripsi dan
Huruf % Huruf % dekripsi memproses semua data dan informasi
dalam bentuk rangkaian bit. Rangkaian bit yang
A 8,2 N 6,7 menyatakan plainteks dienkripsi menjadi
cipherteks dalam bentuk rangkaian bit, demikian
B 1,5 O 7,5 sebaliknya.
C 2,8 P 1,9
D 4,2 Q 0,1 Perkembangan algoritma kriptografi modern
berbasis bit didorong oleh penggunaan komputer
E 12,7 R 6,0
digital yang merepresentasikan data dalam Misalnya rangkaian bit di atas dibagi menjadi
bentuk biner. blok 5-bit menjadi

Algoritma kriptografi yang beroperasi dalam 10011 10101 00010


mode bit dapat dikelompokkan menjadi dua
kategori: Blok yang terakhir telah ditambahkan 3 bit 0 di
bagian awal (dicetak tebal) agar ukurannya
1. Cipher aliran (stream cipher) menjadi 5 bit. Padding bits dapat mengakibatkan
Algoritma kriptografi beroperasi pada ukuran plainteks hasil dekripsi lebih besar
plainteks/cipherteks dalam bentuk bit tunggal, daripada ukuran plainteks semula.
yang dalam hal ini rangkaian bit
dienkripsikan/didekripsikan bit per bit. Cara lain untuk menyatakan rangkaian bit adalah
dengan notasi heksadesimal (HEX). Rangkaian
2. Cipher blok (block cipher) bit dibagi menjadi blok yang berukuran 4 bit
Algoritma kriptografi beroperasi pada dengan representasi dalam HEX adalah:
plainteks/cipherteks dalam bentuk blok bit,
yang dalam hal ini rangkaian bit dibagi 0000 = 0 0001 = 1 0010 = 2 0011 = 3
menjadi blok-blok bit yang panjangnya sudah 0100 = 4 0101 = 5 0011 = 6 0111 = 7
ditentukan sebelumnya. Misalnya panjang 1000 = 8 1011 = 9 1010 = A 1011 = B
blok adalah 64 bit, maka itu berarti algoritma 1100 = C 1101 = D 1101 = E 1111 = F
enkripsi memperlakukan 8 karakter setiap kali
penyandian (1 karakter = 8 bit dalam Misalnya, plainteks 100111010110 dibagi
pengkodean ASCII). menjadi blok bit yang panjangnya 4 menjadi

Rangkaian bit 1001 1101 0110

Rangkaian bit yang dipecah menjadi blok-blok yang dalam notasi HEX adalah
bit dapat ditulis dalam sejumlah cara bergantung
pada panjang blok. 9D6

Contoh: Plainteks 100111010110 dibagi menjadi Operator XOR


blok bit yang panjangnya 4 menjadi
Operator biner yang sering digunakan dalam
1001 1101 0110 cipher yang yang beroperasi dalam mode bit
adalah XOR atau exclusive-or.
Setiap blok menyatakan bilangan bulat dari 0
sampai 15, yaitu Notasi matematis untuk opeartor XOR adalah
(dalam Bahas C, operator XOR dilambangkan
9 13 6 dengan ^).

Bila plainteks dibagi menjadi blok-blok yang Operator XOR diperasikan pada dua bit dengan
berukuran 3 bit, maka rangkaian bit di atas aturan sebagai berikut:
menjadi:
00=0
100 111 010 110 01=1
10=1
Setiap blok menyatakan bilangan bulat dari 0 11=0
sampai 7, yaitu
Operator XOR identik dengan penjumlahan
4 7 2 6
modulo 2.
Misalkan a, b, dan c adalah peubah Boolean.
Bila panjang rangkaian bit tidak habis dibagi
Hukum-hukum yang terkait dengan operator
dengan ukuran blok yang ditetapkan, maka blok
XOR:
yang terakhir ditambah dengan bit-bit semu yang
(i) a a = 0
disebut padding bits.
(ii) a b = b a (Hukum komutatif)
(iii) a (b c) = (a b) c(Hukum asosiatif) 0.4% akan sama. Angka persentase ini disebut
index of coincidence. Pergeseran terkecil
Jika dua rangkaian dioperasikan dengan XOR, mengindikasikan panjang kunci yang dicari.
maka operasinya dilakukan dengan meng-XOR-
kan setiap bit yang berkoresponden dari kedua b. Geser cipherteks sejauh panjang kunci dan
ramngkaian bit tersebut. XOR-kan dengan dirinya sendiri. Operasi ini
menghasilkan plainteks yang ter-XOR dengan
Contoh: 10011 11001 = 01010 plainteks yang digeser sejauh panjang kunci
yang dalam hal ini, hasilnya diperoleh sebagai tersebut.
berikut:
2.2.1. Cipher Aliran (Stream Cipher)
1 0 0 1 1
1 1 0 0 1 Cipher aliran merupakan salah satu tipe
algoritma kriptografi kriptografi simetri.
0 1 0 1 0
Cipher aliran mengenkripsikan plainteks menjadi
Algoritma enkripsi sederhana yang Cipherteks bit per bit (1 bit setiap kali
menggunakan XOR adalah dengan meng-XOR- transformasi).
kan plainteks (P) dengan kunci (K) menghasilkan
cipherteks: Catatan: Variasi Cipher aliran lainnya adalah
mengenkripsikan plainteks menjadi Cipherteks
C= PK (6.1) karakter per karakter atau kata per kata, misalnya
pada Vigenere Cipher dan one-time pad Cipher.
Karena meng-XOR-kan nilai yang sama dua kali
menghasilkan nilai semula, maka proses dekripsi Cipher aliran pertama kali diperkenalkan oleh
menggunakan persamaan: Vernam melalui algoritmanya yang dikenal
dengan nama Vernam Cipher.
P=CK (6.2)
Vernam cipher diadopsi dari one-time pad
Contoh: cipher, yang dalam hal ini karakter diganti
plainteks 01100101 (karakter e) dengan bit (0 atau 1). Cipherteks diperoleh
kunci 00110101 (karakter 5) dengan melakukan penjumlahan modulo 2 satu
bit plainteks dengan satu bit kunci:
cipherteks 01010000 (karakter P)
kunci 00110101 (karakter 5) ci = (pi + ki) mod 2 (6.3)

plainteks 01100101 (karakter e) yang dalam hal ini,

Program komersil yang berbasis DOS atau pi : bit plainteks


Macintosh menggunakan algoritma XOR ki : bit kunci
sederhana ini. Sayangnya, algoritma XOR ci : bit cipherteks
sederhana tidak aman karena cipherteksnya
mudah dipecahkan. Plainteks diperoleh dengan melakukan
penjumlahan modulo 2 satu bit cipherteks
Cara memecahkannya adalah sebagai berikut dengan satu bit kunci:
(asumsi: panjang kunci adalah sejumlah kecil
byte): pi = (ci ki) mod 2 (6.4)

a. Cari panjang kunci dengan prosedur counting Dengan kata lain, Vernam cipher adalah versi
coincidence sbb: XOR-kan cipherteks lain dari one-time pad cipher
terhadap dirinya sendiri setelah digeser
sejumlah byte, dan hitung jumlah byte yang Oleh karena operasi penjumlahan modulo 2
sama. Jika pergeseran itu kelipatan dari identik dengan operasi bit dengan operator XOR,
panjang kunci (yang tidak diketahui), maka maka persaman (6.3) dapat ditulis sebagai
6% dari byte akan sama. Jika tidak, maka
ci = pi ki (6.5) 1000110

dan proses deksripsi menggunakan persamaan maka cipherteks yang dihasilkan adalah

pi = ci ki (6.6) 0100011

Pada cipher aliran, bit hanya mempunyai dua yang mana diperoleh dengan meng-XOR-kan
buah nilai, sehingga proses enkripsi hanya bit-bit plainteks dengan bit-bit aliran-kunci pada
menyebabkan dua keadaan pada bit tersebut: posisi yang berkoresponden.
berubah atau tidak berubah. Dua keadaan
tersebut ditentukan oleh kunci enkripsi yang Keamanan sistem cipher aliran bergantung
disebut aliran-bit-kunci (keystream). seluruhnya pada pembangkit aliran-bit-kunci.
Jika pembangkit mengeluarkan aliran-bit-kunci
Aliran-bit-kunci dibangkitkan dari sebuah yang seluruhnya nol, maka cipherteks sama
pembangkit yang dinamakan pembangkit aliran- dengan plainteks, dan proses enkripsi menjadi
bit-kunci (keystream generator). Aliran-bit-kunci tidak artinya.
(sering dinamakan running key) di-XOR-kan
dengan aliran bit-bit plainteks, p1, p2, , pi, Jika pembangkit mengeluarkan aliran-bit-kunci
untuk menghasilkan aliran bit-bit cipherteks: dengan pola 16-bit yang berulang, maka
algoritma enkripsinya menjadi sama seperti
ci = pi ki enkripsi dengan XOR sederhana yang memiliki
tingkat kemanan yang tidak berarti.
Di sisi penerima, bit-bit cipherteks di-XOR-kan
dengan aliran-bit-kunci yang sama untuk Jika pembangkit mengeluarkan aliran-bit-kunci
menghasilkan bit-bit plainteks: yang benar-benar acak (truly random), maka
algoritma enkripsinya sama dengan one-time pad
pi = ci ki dengan tingkat keamanan yang sempurna. Pada
kasus ini, aliran-bit-kunci sama panjangnya
dengan panjang plainteks, dan kita mendapatkan
karena
cipher aliran sebagai unbreakable cipher.
ci ki = (pi ki) ki = pi (ki ki)
Tingkat keamanan cipher aliran terletak antara
= pi 0 = pi algoritma XOR sederhana dengan one-time pad.
Semakin acak keluaran yang dihasilkan oleh
Catatlah bahwa proses enkripsi dua kali berturut- pembangkit aliran-bit-kunci, semakin sulit
turut menghasilkan kembali plainteks semula kriptanalis memecahkan cipherteks.
Gambar 6.1 memperlihatkan konsep cipher Pembangkit aliran-bit-kunci (Keystream
aliran. Generator)
Keystream Keystream
Generator Generator Pembangkit bit-aliran-kunci dapat
Keystream ki Keystream ki membangkitkan bit-aliran-kunci berbasis bit per
ci bit atau dalam bentuk blok-blok bit. Untuk yang
terakhir ini, cipher blok dapat digunakan untuk
pi pi untuk memperoleh cipher aliran.
plainteks enkripsi dekripsi plainteks
Untuk alasan praktis, pembangkit bit-aliran-
kunci diimplementasikan sebagai prosedur
Gambar 6.1 Konsep cipher aliran
algoritmik, sehingga bit-aliran-kunci dapat
dibangkitkan secara simultan oleh pengirim dan
Contoh: Misalkan plainteks adalah
penerima pesan.

1100101 Prosedur algoritmik tersebut menerima masukan


sebuah kunci U. Keluaran dari prosedur
dan aliran-bit-kunci adalah merupakan fungsi dari U (lihat Gambar 6.2).
Pembangkit harus menghasilkan bit-aliran-kunci diperoleh kondisi awal yang berbeda pada setiap
yang kuat secara kriptografi. lelaran (lihat Gambar 6.3).

Z Z
Keystream Keystream
U Generator U Generator

Keystream ki Keystream ki
ci U Keystream
Generator U Keystream
Generator

pi pi Keystream ki Keystream ki
plainteks enkripsi dekripsi plainteks ci

Gambar 6.2 Cipher aliran dengan pembangkit pi pi


bit-aliran-kunci yang bergantung pada kunci U. plainteks enkripsi dekripsi plainteks

Karena pengirim dan penerima harus Gambar 6.3 Cipher aliran dengan pembangkit
menghasilkan bit-aliran-kunci yang sama , maka bit-aliran-kunci yang bergantung pada kunci U
keduanya harus memiliki kunci U yang sama. dan umpan Z.
Kunci U ini harus dijaga kerahasiaanya.
Dengan demikian, bit-aliran-kunci K dapat
Cipher aliran menggunakan kunci U yang dinyatakan sebagai hasil dari fungsi g dengan
relatif pendek untuk membangkitkan bit-aliran- parameter kunci U dan masukan umpan Z:
kunci yang panjang.
K = gK(Z)
Contoh: Misalkan U adalah kunci empat-bit yang
dipilih sembarang, kecuali 0000. Bit-aliran-kunci sehingga proses enkripsi dan dekripsi
yang dibangkitkan akan berulang setiap 15 bit. didefinisikan sebagai
Misalkan
C = P K = P gK(Z)
U = 1111 P = C K = C gK(Z)

Barisan bit-bit aliran-kunci diperoleh dengan Nilai Z yang berbeda-beda pada setiap lelaran
meng-XOR-kan bit pertama dengan bit terakhir menghasilkan bit-aliran-kunci yang berbeda
dari empat bit sebelumnya, sehingga pula.
menghasilkan:
Merancang pembangkit bit-aliran-kunci yang
111101011001000 bagus cukup sulit karena membutuhkan
pengujian statistik untuk menjamin bahwa
dan akan berulang setiap 15 bit. keluaran dari pembangkit tersebut sangat
mendekati barisan acak yang sebenarnya.
Secara umum, jika panjang kunci U adalah n bit,
maka bit-aliran-kunci tidak akan berulang Serangan Terhadap Cipher Aliran
sampai 2n 1 bit.
Serangan yang dapat dilakukan oleh kriptanalis
Karena U adalah besaran yang konstan, maka terhadap cipher aliran adalah:
bit-aliran-kunci yang dihasilkan pada setiap
lelaran tidak berubah jika bergantung hanya pada a. Known-plaintext attack
U. Misalkan kriptanalis memiliki potongan
Ini berarti pembangkit bit-aliran-kunci tidak plainteks (P) dan cipherteks (C) yang
boleh mulai dengan kondisi awal yang sama berkoresponden, maka ia dapat menemukan
supaya tidak menghasilkan kembali bit-aliran- bagian bit-aliran-kunci (K) yang
kunci yang sama pada setiap lelaran. berkoresponden dengan meng-XOR-kan
bit-bit plainteks dan cipherteks:
Oleh karena itu, beberapa pembangkit bit-aliran-
kunci menggunakan besaran vektor inisialisasi P C = P (P K) = (P P) K
atau umpan (seed), disimbolkan dengan Z, agar =0K=K
b. Ciphertext-only attack Pada cipher blok, rangkaian bit-bit plainteks
Misalkan kriptanalis memiliki dua dibagi menjadi blok-blok bit dengan panjang
potongan cipherteks berbeda (C1 dan C2) sama, biasanya 64 bit (tapi adakalanya lebih).
yang dienkripsi dengan bit-aliran-kunci Algoritma enkripsi menghasilkan blok cipherteks
yang sama. Ia meng-XOR-kan kedua yang pada kebanyakan sistem kriptografi
cipherteks tersebut dan memperoleh dua simetri berukuran sama dengan blok plainteks.
buah plainteks yang ter-XOR satu sama
lain: Dengan blok cipher, blok plainteks yang sama
akan dienkripsi menjadi blok cipherteks yang
C1 C2 = (P1 K ) (P2 K) sama bila digunakan kunci yang sama pula. Ini
= (P1 P2 ) (K K) berbeda dengan cipher aliran dimana bit-bit
= (P1 P2 ) 0 plainteks yang sama akan dienkripsi menjadi bit-
bit cipherteks yang berbeda setiap kali
= (P1 P2 )
dienkripsi.
P1 dan P2 dapat diperoleh dengan mudah.
Misalkan blok plainteks (P) yang berukuran m
Selanjutnya, XOR-kan salah satu plainteks
bit dinyatakan sebagai vektor
dengan cipherteksnya untuk memperoleh
bit-aliran-kunci K yang berkoresponden:
P = (p1, p2, , pm)
P1 C1 = P1 (P1 K) = K yang dalam hal ini pi adalah 0 atau 1 untuk i = 1,
2, , m, dan blok cipherteks (C) adalah
Pesan dari dua serangan di atas adalah: pengguna
cipher aliran harus mempunyai bit-aliran-kunci C = (c1, c2, , cm)
yang tidak dapat diprediksi sehingga mengetahui
sebagian dari bit-aliran-kunci tidak yang dalam hal ini ci adalah 0 atau 1 untuk i = 1,
memungkinkan kriptanalis dapat mendeduksi 2, , m.
bagian sisanya.
Bila plainteks dibagi menjadi n buah blok,
Aplikasi Cipher Aliran barisan blok-blok plainteks dinyatakan sebagai
Cipher aliran cocok untuk mengenkripsikan (P1, P2, , Pn)
aliran data yang terus menerus melalui saluran
komunikasi, misalnya: Untuk setiap blok plainteks Pi, bit-bit
a. Mengenkrips penyusunnya dapat dinyatakan sebagai vektor
ikan data pada saluran yang
menghubungkan antara dua buah Pi = (pi1, pi2, , pim)
komputer.
b. Mengenkripi Enkripsi dan dekripsi dengan kunci K dinyatakan
skan suara digital pada jaringan telepon berturut-turut dengan persamaan
mobile GSM.
EK(P) = C
Alasannya, jika bit cipherteks yang diterima
mengandung kesalahan, maka hal ini hanya untuk enkripsi, dan
menghasilkan satu bit kesalahan pada waktu
dekripsi, karena tiap bit plainteks ditentukan DK(C) = P
hanya oleh satu bit cipherteks. Kondisi ini tidak
benar untuk cipher blok karena jika satu bit Fungsi E haruslah fungsi yang berkoresponden
cipherteks yang diterima mengandung satu-ke-satu, sehingga
kesalahan, maka kesalahan ini akan merambat
pada seluruh blok bit plainteks hasil dekripsi E-1 = D
(error propagation).
Skema enkripsi dan dekripsi dengan cipher blok
2.2.2. Cipher Blok (Block Cipher) digambarkan pada Gambar 1.
Dalam praktek, M dinyatakan sebagai tabel atau
matriks permutasi.
Enkripsi Dekripsi
Selain kedua teknik di atas, cipher blok juga
Blok Plainteks P Blok Cipherteks C menggunakan dua teknik tambahan sebagai
P=(p1,p2,...,pm) C=(c1,c2,...,cm) berikut:
3. Ekspansi
Teknik ini memperbanyak jumlah bit pada
Kunci K Kunci K blok plainteks berdasarkan aturan tertentu,
E D misalnya dari 32 bit menjadi 48 bit. Dalam
praktek, aturan eskpansi dinyatakan dengan
tabel.
Blok Cipherteks C Blok Plainteks P
C=(c1,c2,...,cm) P=(p1,p2,...,pm) 4. Kompresi
Teknik ini kebalikan dari ekspansi, di mana
Gambar 1 Skema enkripsi dan dekripsi pada jumlah bit pada blok plainteks diciutkan
cipher blok berdasarkan aturan tertentu. Dalam praktek,
aturan kompresi dinyatakan dengan tabel.

Teknik Kriptografi Klasik yang Digunakan Prinsip Penyandian Shannon


pada Cipher Blok
Pada tahun 1949, Shannon mengemukakan dua
Algoritma blok cipher menggabungkan beberapa prinsip (properties) penyandian (encoding) data.
teknik kriptografi klasik dalam proses enkripsi. Kedua prinsip ini dipakai dalam perancangan
Dengan kata lain, cipher blok dapat diacu cipher blok yang kuat. Kedua prinsip Shannon
sebagai super-enkripsi. tersebut adalah:
1. Confusion
Teknik kriptografi klasik yang digunakan adalah:
Prinsip ini menyembunyikan hubungan
1. Substitusi.
apapun yang ada antara plainteks, cipherteks,
Teknik ini mengganti satu atau sekumpulan
dan kunci. Sebagai contoh, pada cipher
bit pada blok plainteks tanpa mengubah
substitusi seperti caesar cipher, hubungan
urutannya. Secara matematis, teknik
antara cipherteks dan plainteks mudah
substitusi ini ditulis sebagai
diketahui, karena satu huruf yang sama pada
plainteks diganti dengan satu huruf yang
ci = E(pi), i = 1, 2, (urutan bit)
sama pada cipherteksnya.
yang dalam hal ini ci adalah bit cipherteks,
Prinsip confusion akan membuat kriptanalis
pi adalah bit plainteks, dan f adalah fungsi
frustasi untuk mencari pola-pola statistik
substitusi.
yang muncul pada cipherteks. Confusion
yang bagus membuat hubungan statistik
Dalam praktek, E dinyatakan sebagai fungsi
antara plainteks, cipherteks, dan kunci
matematis atau dapat merupakan tabel
menjadi sangat rumit.
susbtitusi (S-box).
2. Diffusion
2. Transposisi atau permutasi
Prinsip ini menyebarkan pengaruh satu bit
Teknik ini memindahkan posisi bit pada
plainteks atau kunci ke sebanyak mungkin
blok plainteks berdasarkan aturan tertentu.
cipherteks. Sebagai contoh, pengubahan kecil
Secara matematis, teknik transposisi ini
pada plainteks sebanyak satu atau dua bit
ditulis sebagai
menghasilkan perubahan pada cipherteks
yang tidak dapat diprediksi.
C = PM
Prinisp diffusion juga menyembunyikan
yang dalam hal ini C adalah blok
hubungan statistik antara plainteks,
cipherteks, P adalah blok plainteks, dan M
adalah fungsi transposisi.
cipherteks, dan kunci dan membuat
kriptanalisis menjadi sulit. Gambar 2 Skema enkripsi dan dekripsi dengan mode
ECB
Untuk mendapatkan keamanan yang bagus, Contoh 1: Misalkan plainteks (dalam biner)
prinsip confusion dan diffusion diulang berkali- adalah
kali pada sebuah blok tunggal dengan kombinasi
yang berbeda-beda. 10100010001110101001

Mode Operasi Cipher Blok Bagi plainteks menjadi blok-blok yang


berukuran 4 bit:
Plainteks dibagi menjadi beberapa blok dengan
1010 0010 0011 1010 1001
panjang tetap. Beberapa mode operasi dapat
diterapkan untuk melakukan enkripsi terhadap
atau dalam notasi HEX adalah A23A9.
keseluruhan blok plainteks. Empat mode operasi
yang lazim diterapkan pada sistem blok cipher
Misalkan kunci (K) yang digunakan panjangnya
adalah:
4 bit
1. Electronic Code Book (ECB)
1011
2. Cipher Block Chaining (CBC)
3. Cipher Feedback (CFC)
atau dalam notasi HEX adalah B.
4. Output Feedback (OFB)

Hanya 2 mode operasi saja yang akan dibahas Misalkan fungsi enkripsi E yang sederhana
dalam kuliah ini, yaitu ECB dan CBC. (tetapi lemah) adalah dengan meng-XOR-kan
blok plainteks Pi dengan K, kemudian geser
Electronic Code Book (ECB) secara wrapping bit-bit dari Pi K satu posisi ke
kiri.
Pada mode ini, setiap blok plainteks dienkripsi
secara individual dan independen. Proses enkripsi untuk setiap blok digambarkan
sebagai berikut:
Secara matematis, enkripsi dengan mode ECB 1010 0010 0011 1010 1001
dinyatakan sebagai 1011 1011 1011 1011 1011

Ci = EK(Pi) Hasil XOR: 0001 1001 1000 0001 0010


Geser 1 bit ke kiri: 0010 0011 0001 0010 0100
dan dekripsi sebagai Dalam notasi HEX: 2 3 1 2 4

Pi = DK(Ci) Jadi, hasil enkripsi plainteks

yang dalam hal ini, Pi dan Ci masing-masing 10100010001110101001


blok plainteks dan cipherteks ke-i. (A23A9 dalam notasi HEX)

Gambar 2 memperlihatkan enkripsi dua buah adalah


blok plainteks, P1 dan P2 dengan mode ECB,
yang dalam hal ini E menyatakan fungsi enkripsi 00100011000100100100
yang melakukan enkripsi terhadap blok plainteks (23124 dalam notasi HEX)
dengan menggunakan kunci K.
Catatlah bahwa blok plainteks yang sama selalu
Enkripsi Dekripsi dienkripsi menjadi blok cipherteks yang sama
Blok Plainteks P1 Blok Plainteks P2 (atau identik). Pada contoh 1 di atas, blok 1010
muncul dua kali dan selalu dienkripsi menjadi
0010.
Kunci K Kunci K
E E
Contoh yang lebih nyata misalkan pesan

KUTU BUKU DI LEMARIKU


Blok Cipherteks C1 Blok Cipherteks C2
Mode ECB cocok untuk mengenkripsi arsip
dibagi menjadi blok-blok yang terdiri dua huruf (file) yang diakses secara acak, misalnya
(dengan menghilangkan semua spasi) menjadi arsip-arsip basisdata. Jika basisdata
dienkripsi dengan mode ECB, maka
KU TU BU KU DI LE MA RI KU
sembarang record dapat dienkripsi atau
didekripsi secara independen dari record
maka blok yang menyatakan KU akan
lainnya (dengan asumsi setiap record terdiri
dienkripsi menjadi blok cipherteks (dua huruf)
dari sejumlah blok diskrit yang sama
yang sama.
banyaknya).
Kata code book di dalam ECB muncul dari
Jika mode ECB dikerjakan dengan prosesor
fakta bahwa karena blok plainteks yang sama
paralel (multiple processor), maka setiap
selalu dienkripsi menjadi blok cipherteks yang
prosesor dapat melakukan enkripsi atau
sama, maka secara teoritis dimungkinkan
dekripsi blok plainteks yang berbeda-beda.
membuat buku kode plainteks dan cipherteks
yang berkoresponden. 2. Jika satu atau lebih bit pada blok
cipherteks mengalami kesalahan, maka
Namun, semakin besar ukuran blok, semakin kesalahan ini hanya mempengaruhi
besar pula ukuran buku kodenya. Misalkan jika cipherteks yang bersangkutan pada waktu
blok berukuran 64 bit, maka buku kode terdiri dekripsi. Blok-blok cipherteks lainnya bila
dari 264 1 buah kode (entry), yang berarti didekripsi tidak terpengaruh oleh kesalahan
terlalu besar untuk disimpan. Lagipula, setiap bit cipherteks tersebut.
kunci mempunyai buku kode yang berbeda.
Kelemahan ECB
Padding 1. Karena bagian plainteks sering berulang
(sehingga terdapat blok-blok plainteks yang
Ada kemungkinan panjang plainteks tidak habis sama), maka hasil enkripsinya
dibagi dengan panjang ukuran blok yang menghasilkan blok cipherteks yang sama
ditetapkan (misalnya 64 bit atau lainnya). Hal ini (lihat Contoh 1).
mengakibatkan blok terakhir berukuran lebih
pendek daripada blok-blok lainnya. Bagian plainteks yang sering berulang
misalnya kata-kata seperti (dalam Bahasa
Satu cara untuk mengatasi hal ini adalah dengan Indonesia) dan, yang, ini, itu, dan
padding, yaitu menambahkan blok terakhir sebagainya.
dengan pola bit yang teratur agar panjangnya
sama dengan ukuran blok yang ditetapkan. Di dalam e-mail, pesan sering mengandung
Misalnya ditambahkan bit 0 semua, atau bit 1 bagian yang redundan seperti string 0 atau
semua, atau bit 0 dan bit 1 berselang-seling. spasi yang panjang, yang bila dienkripsi
maka akan menghasilkan pola-pola
Misalkan ukuran blok adalah 64 bit (8 byte) dan cipherteks yang mudah dipecahkan dengan
blok terakhir terdiri dari 24 bit (3 byte). serangan yang berbasis statistik
Tambahkan blok terakhir dengan 40 bit (5 byte) (menggunakan frekuensi kemunculan blok
agar menjadi 64 bit, misalnya dengan cipherteks). Selain itu, e-mail mempunyai
menambahkan 4 buah byte 0 dan satu buah byte struktur yang teratur yang menimbulkan
angka 5. Setelah dekripsi, hapus 5 byte terakhir pola-pola yang khas dalam cipherteksnya.
dari blok dekripsi terakhir.
Misalnya kriptanalis mempelajari bahwa
Keuntungan Mode ECB blok plainteks 5EB82F (dalam notasi HEX)
1. Karena tiap blok plainteks dienkripsi dienkripsi menjadi blok AC209D, maka
secara independen, maka kita tidak perlu setiap kali ia menemukan cipherteks
mengenkripsi file secara linear. Kita dapat AC209D, ia dapat langsung
mengenkripsi 5 blok pertama, kemudian mendekripsinya menjadi 5EB82F.
blok-blok di akhir, dan kembali ke blok-
blok di tengah dan seterusnya. Satu cara untuk mengurangi kelemahan ini
adalah menggunakan ukuran blok yang
besar, misalnya 64 bit, sebab ukuran blok
yang besar dapat menghilangkan Cipher Block Chaining (CBC)
kemungkinan menghasilkan blok-blok yang
identik. Mode ini menerapkan mekanisme umpan-balik
(feedback) pada sebuah blok, yang dalam hal ini
2. Pihak lawan dapat memanipulasi hasil enkripsi blok sebelumnya di-umpan-
cipherteks untuk membodohi atau balikkan ke dalam enkripsi blok yang current.
mengelabui penerima pesan.
Caranya, blok plainteks yang current di-XOR-
Contoh 2. Misalkan seseorang mengirim kan terlebih dahulu dengan blok cipherteks hasil
pesan enkripsi sebelumnya, selanjutnya hasil peng-
XOR-an ini masuk ke dalam fungsi enkripsi.
Uang ditransfer lima satu juta rupiah
Dengan mode CBC, setiap blok cipherteks
bergantung tidak hanya pada blok plainteksnya
Andaikan bahwa kriptanalis mengetahui
tetapi juga pada seluruh blok plainteks
bahwa blok plainteks terdiri dari dua huruf
sebelumnya.
(spasi diabaikan sehingga menjadi 16 blok
plainteks) dan blok-blok cipherteksnya
Dekripsi dilakukan dengan memasukkan blok
adalah
cipherteks yang current ke fungsi dekripsi,
C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, kemudian meng-XOR-kan hasilnya dengan blok
C12, C13, C14, C15, C16 cipherteks sebelumnya. Dalam hal ini, blok
cipherteks sebelumnya berfungsi sebagai umpan-
Misalkan kriptanalis berhasil mendekripsi maju (feedforward) pada akhir proses dekripsi.
keseluruhan blok cipherteks menjadi
plainteks semula, sehingga ia dapat Gambar 3 memperlihatkan skema mode operasi
mendekripsi C1 menjadi Ua, C2 menjadi ng, CBC.
C3 menjadi di dan seterusnya. Kriptanalis
memanipulasi cipherteks dengan Pi-1 Pi Ci-1 Ci
membuang blok cipheteks ke-8 dan 9


sehingga menjadi
Ci-2
C1, C2, C3, C4, C5, C6, C7, C10, C11, C12, C13,
C14, C15, C16 Dk Dk
Ek Ek
Penerima pesan mendekripsi cipherteks
yang sudah dimanipulasi dengan kunci
yang benar menjadi
Ci-2
Ci-1 Ci Pi-1 Pi
Uang ditransfer satu juta rupiah
Enkripsi Dekripsi
Misalkan kunci (K) yang digunakan adalah
Karena dekripsi menghasilkan pesan yang (panjangnya juga 4 bit)
bermakna, maka penerima menyimpulkan
bahwa uang yang dikirim kepadanya 1011
sebesar satu juta rupiah.
atau dalam notasi HEX adalah B. Sedangkan IV
Kedua kelemahan di atas dapat diatasi dengan yang digunakan seluruhnya bit 0 (Jadi, C0 =
mengatur enkripsi tiap blok individual 0000)
bergantung pada semua blok-blok sebelumnya.
Dengan cara ini, blok plainteks yang identik akan Misalkan fungsi enkripsi E yang sederhana
menghasilkan blok cipherteks yang berbeda, dan (tetapi lemah) adalah dengan meng-XOR-kan
manipulasi cipherteks mungkin menghasilkan blok plainteks Pi dengan K, kemudian geser
pesan hasil dekripsi yang tidak mempunyai secara wrapping bit-bit dari Pi K satu posisi ke
makna. Prinsip inilah yang mendasari mode kiri.
operasi cipher blok yang kedua, yaitu Cipher
Block Chaining.
1. C1 diperoleh sebagai berikut: pada sebuah blok plainteks akan merambat pada
blok cipherteks yang berkoresponden dan semua
P1 C0 = 1010 0000 = 1010 blok cipherteks berikutnya.

Enkripsikan hasil ini dengan fungsi E sbb: Tetapi, hal ini berkebalikan pada proses dekripsi.
Kesalahan satu bit pada blok cipherteks hanya
1010 K = 1010 1011 = 0001 mempengaruhi blok plainteks yang
berkoresponden dan satu bit pada blok plainteks
Geser (wrapping) hasil ini satu bit ke kiri: berikutnya (pada posisi bit yang berkoresponden
0010 pula).
Jadi, C1 = 0010 (atau 2 dalam HEX)
Kesalahan bit cipherteks biasanya terjadi karena
2. C2 diperoleh sebagai berikut: adanya gangguan (noise) saluran komunikasi
data selama transmisi atau malfunction pada
P2 C1 = 0010 0010 = 0000 media penyimpanan.
0000 K = 0000 1011 = 1011
Persoalan Keamanan yang Muncul pada Mode
CBC
Geser (wrapping) hasil ini satu bit ke kiri:
0111
1. Karena blok cipherteks mempengaruhi
Jadi, C2 = 0111 (atau 7 dalam HEX)
blok-blok berikutnya, pihak lawan dapat
menambahkan blok cipherteks tambahan
3. C3 diperoleh sebagai berikut:
pada akhir pesan terenkripsi tanpa
P3 C2 = 0011 0111 = 0100 terdeteksi. Ini akan menghasilkan blok
0100 K = 0100 1011 = 1111 plainteks tambahan pada waktu dekripsi.

Pesan moral untuk masalah ini, pengirim


Geser (wrapping) hasil ini satu bit ke kiri:
pesan seharusnya menstrukturkan
1111
plainteksnya sehingga ia mengetahui di
Jadi, C3 = 1111 (atau F dalam HEX)
mana ujung pesan dan dapat mendeteksi
adanya blok tambahan.
Demikian seterusnya, sehingga plainteks dan
cipherteks hasilnya adalah:
2. Pihak lawan dapat mengubah
cipherteks, misalnya mengubah sebuah bit
Pesan (plainteks):A23A9
pada suatu blok cipherteks. Tetapi hal ini
Cipherteks (mode ECB): 23124
hanya mempengaruhi blok plainteks hasil
Cipherteks (mode CBC): 27FBF
dekripsinya dan satu bit keslahan pada
posisi plainteks berikutnya.
Terlihat bahwa dengan menggunakan mode
CBC, blok plainteks yang sama (A dalam HEX)
dienkripsikan menjadi dua blok cipherteks yang
berbeda (masing-masing 2 dan B). Bandingkan
dengan mode EBC yang menghasilkan blok
cipherteks yang sama (2 dalam HEX) untuk dua
buah blok yang sama (A).

Dengan kata lain, pada mode CBC, tidak ada


korelasi antara posisi blok
plainteks yang sams dengan posisi blok
cipherteksnya.

Perambatan Kesalahan

Karena blok cipherteks yang dihasilkan selama


proses enkripsi bergantung pada blok-blok
cipherteks sebelumnya, maka kesalahan satu bit
blok cipherteks yang pada kebanyakan
sistem kriptografi simetri berukuran sama
dengan blok plainteks.
Teknik kriptografi pada cipher blok ada 4,
3. Kesimpulan yaitu substitusi,tansposisi/permutasi,
ekspansi, dan kompresi.
Enkripsi adalah proses pengubahan data Pada tahun 1949, Shannon
asli (plaintext) menjadi data rahasia mengemukakan dua prinsip (properties)
(ciphertext) pada saat pengiriman penyandian (encoding) data, yaitu
(sending) sehingga kerahasiaan data confusion dan diffusion. Kedua prinsip
terjaga. Sedangkan dekripsi adalah ini dipakai dalam perancangan cipher
proses pengubahan data rahasia blok yang kuat.
(ciphertext) menjadi data asli (plaintext) Empat mode operasi yang lazim
pada saat penerimaan (receiving) diterapkan pada sistem blok cipher
sehingga data sesuai dengan data asli adalah:
yang dikirimkan. 1. Electronic Code Book (ECB)
Menurut sejarahnya, algoritma 2. Cipher Block Chaining (CBC)
kriptografi dapat dikategorikan menjadi 3. Cipher Feedback (CFC)
2 kelompok, yaitu sistem cipher klasik 4. Output Feedback (OFB)
dan sistem cipher modern.
Algoritma kriptografi klasik terbagi 2,

yaitu Cipher Substitusi (Substitution
DAFTAR PUSTAKA
Ciphers) dan Cipher Transposisi
[1] http://id.wikipedia.org/wiki/Kriptografi
(Transposition Ciphers).
Tanggal akses: 28 Desember 2006 pukul
Cipher Substitusi mengganti (menyulih
10:00.
atau mensubstitusi) setiap karakter
dengan karakter lain dalam susunan
[2]http://www.geocities.com/amwibowo/resource
abjad (alfabet).
/komparasi/bab3.html
Cipher Substitusi dapat dikelompokkan
Tanggal akses: 28 Desember 2006 pukul
menjadi 4 jenis, yaitu cipher abjad- 10:00.
tunggal, cipher substitusi homofonik,
cipher abjad-majemuk, dan cipher [3] Munir, Rinaldi. (2004). Bahan Kuliah IF5054
substitusi poligram. Kriptografi. Departemen Teknik Informatika,
Cipher Tansposisi memiliki algoritma Institut Teknologi Bandung.
yang melakukan transposisi pada Tanggal akses: 28 Desember 2006 pukul
karakter dalam plainteks. 10:00.
Algoritma kriptografi modern umumnya
beroperasi dalam mode bit ketimbang [4] http://kur2003.if.itb.ac.id/
mode karakter (seperti yang dilakukan Tanggal akses: 28 Desember 2006 pukul
pada cipher substitusi atau cipher 10:00.
transposisi dari algoritma kriptografi
klasik). [5] http://www.informatika.org/~rinaldi
Algoritma kriptografi modern terbagi 2 Tanggal akses: 28 Desember 2006 pukul
kategori, yaitu Cipher Aliran (Stream 10:00.
Cipher) dan Cipher Blok (Block
Cipher). [6] http://hadiwibowo.wordpress.com/
Chiper aliran mengenkripsikan plainteks Tanggal akses: 28 Desember 2006 pukul
menjadi chiperteks bit per bit (1 bit setiap 10:00.
kali transformasi).
Serangan pada chiper aliran adalah [7]http://tedi.heriyanto.net/papers/p_kripto.html
Known-plaintext attack dan Ciphertext-only Tanggal akses: 28 Desember 2006 pukul
attack. 10:00.
Pada cipher blok, rangkaian bit-bit plainteks
dibagi menjadi blok-blok bit dengan panjang
[8]http://ilmukomputer.com/umum/husni-
sama, biasanya 64 bit (tapi adakalanya
lebih). Algoritma enkripsi menghasilkan kriptografi.php
Tanggal akses: 28 Desember 2006 pukul
10:00.

You might also like