Anda di halaman 1dari 18

BAB 1

SERANGAN TERHADAP KRIPTOGRAFI



1. Kriptanalisis
Kriptografi menyebabkan timbulnya kriptanalisis, yaitu ilmu pengetahuan dan seni untuk membongkar data
acak. Praktisi dari kriptanalisis disebut kriptanalis. Kriptanalis berkembang sejalan dengan kriptografi.
Setiap ada algoritma kriptografi baru yang dibuat oleh kriptografer, langsung diikuti oleh adanya upaya
percobaan kriptanalisis. Percobaan kriptanalisis ini disebut attack (serangan).
Kriptanalisis mencoba megembalikan data jelas tanpa akses ke ke kunci kriptografi. Ukuran keberhasilan
suatu upaya kriptanalisis adalah sampai sejauh mana keberhasilan diketahuinya data jelas atau kunci
kriptografi.
Asumsi dasar dari suatu kriptosistem adalah bahwa seorang kriptanalis mengetahui keseluruhan
mekanisme enkripsi kecuali kuncinya. Kriptanalisis adalah ilmu (sains) untuk membuka (recovering) suatu
pesan tanpa akses ke kunci. Kriptanalisis yang sukses dapat memperoleh teks terang atau kunci. Juga
dapat menemukan kelemahan suatu sistem kripto berdasarkan analisis sebelumnya (Schneier, Applied
Cr., 1996).
Kriptanalisis adalah studi tentang prinsip2/metode2 pembukaan teks sandi tanpa mengetahui kuncinya.
Stalling (Cr and Netsec, 2003).
Kriptanalisis adalah teknik matematik dalam upaya menggagalkan (defeat) suatu teknik kriptografik, dan
lebih luas lagi suatu servis pengamanan informasi.(Menezes Cs, Handbook of Applied Cr., 1996)
Kriptanalis bertujuan untuk memcahkan cipherteks menjadi plainteks semula tanpa memiliki akses ke kunci
ynag digunakan. Kriptanalis berusaha menemukan kelemahan dari system kriptografi yang pada akhirnya
mengarah untuk menemukan kunci dan mengungkap plainteks.
Dalam membahas serangan terhadap kriptografi, kita selalu menganggap bahwa kriptanalis mengetahui
algoritma yang digunakan dalam penyandian plainteks., sehingga satu-satunya keamanan siste terdapat
pada panjang kunci. Asumsi ini juga diungkapkan dalam prnsip Kerckhoff ynag berbumyi Semua
algoritma kriptografi harus publik hanya kunci yang rahasia.
Dengan kata lain kriptanalis mengetahui enkripsi dan dekripsi secara detil. Merahasiakan Algoritma
Kriptografi bukan cara yang praktis tetapi malah cara yang pmborosan sebab bila algoritma sandi diketahui
oleh pihak lawan, maka kita harus membuat algoritma baru. Oleh karena itu lebih baik uncinya yang
rahasia. Jika kunci berhasil dicuri maka kriptografer cukup membangkitkan kunci baru dan seterusnya.
Ada saat ini tidak mengherankan bila semua algoritma kriptografi sudah dipublikasikan ke khalayak umum.
Algoritma tersebut sudah dapat dipelajari secara umum oleh semua pihak termasuk di luar lingkubngan
persandian. Menurut Scheiner [SCH96], algoritma yang terbaik adalah algoritma yang sudah
dipublikasikan dan sudah dipecahkan.Dengan mempublikasikan algoritma baru, kriptografer memperoleh
konsultasi gratis dari sejumlah kriptologis akademisi yang ingin sekali memecahkan algoritma sehingga
mereka dapat mempublikasikan paper yang memperlihatkan kecerdasan mereka. Jadi banyak pakar yang
mencoba mmecahkan suatu algoritma selama beberapa tahun setelah dipublikasikan dan tidak
seorangpun berhasil, maka bisa disebut algoritma tersebut tangguh.
Karena keamanan sistem tergantung kunci, maka agar lebih aman maka kunci harus diperpanjang.
2. Keamanan Algoritma Kriptografi
Lrs Knudsen mengelompokan hasil kriptanalis ke dalam beberqapa kategori berdasrkan jumlah dana
kualitas informasiyang ditemukan :
1. Pemecah total
Kriptanalis menemukan kunci K edemikian sehingga deskripsi DK = P
2. Deduksi ( Penarikan Kesimpulan ) global
Kriptanalis menemukan algoritma alternatif , A, yang ekuivalen dengan DK(C) tetapi tyidak mengetahuui
kunci K
3. Deduksi Lokal
Kriptanalis menemukan plainteks dari ciphereks ynag disadap
4. Deduksi informasi
Kriptanalis menemukan beberapa informasi perihalk kunci atau plainteks. Misalnya kriptanalis mengetahui
beberapa bit kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plainteks, kriptanalis
mengetahui format plainteks, dan sebagainya.
Sebuah algoritma dikatakan aman mutlak tanpa syarat bila cipherteksnya tidak mengandung cukup
data yang dapat digunakan oleh kriptanalis untuk membukanya menjadi plainteks. Artinya sebanyak
apapun cipherteks yang dimiliki moeh kriptanalis, tidak ada suatu hubungan yang dapat menyebabkan
kriptanalis membukanya. Di dalamkriptografi hanya one time pad yang aman mutlak. Karena kunci yang
digunakan benar-benar acak dan tiak mungkin dipecahkan.

Sebaliknya sebuah algoritma dikatakan aman secara komputasi bila memenuhi criteria berikut :
1. Biaya untuk memecahkan cipherteks melampaui nilai yang terkandung di dalam cipherteksnya.
2. Waktu yang dibutuhkan untuk memecahkan cipherteksya melampaui lamanya waktu informasi tersebut
harus dijaga. Untuk menemukan kunci setidaknyua setengah darfi semua kmungkinan kunci harus dicoba,
dan akan menghabiskan waktu yang lama. Adas yang mencapai 5,4 x 1024 tahun untuk satu juta
percobaan per detik. Hal itu tidak mungkin karena umur bumi tidak saqmpai sekian.
3. Kompleksitas Serangan
Kompleksitas serangan dapat diukur dengan berbagai cara yaitu :
1. Kompleksitas Data
Jumlah data yang dibutuhkan sebagai input sebagai serangan yang dilakukan. Semakin banyak data ynag
dibutuhkan untuk melakukan serangan maka semakin kompleks serangan itu, yang mengandung arti
semakin algoritma kriptografi itu semakin berkualitas.
2. Kompleksitas Waktu
Adalah waktu yang dibutuhkan dalam melakukan serangan. Semakin lama waktu untuk melakukan
serangan maka semakin bagus system kriptografi itu.
3. Kompleksitas Ruang Memori
Adalah junlah memori yang dibutuhkan untuk melakukan serangan. Semakin banyak memori yang
dibutuhkan untuk melakukan serangan maka semakin bagus algoritma kriptografi yang dipakai.

4. Jenis-jenis Serangan
Keseluruhan point dari kriptografi adalah menjaga kerahasiaan plainteks (atau kunci, atau
keduanya) dari penyadap (eavesdropper) atau kriptanalis (cryptanalyst). Penyadap bisa juga
merupakan seorang kriptanalis atau sebaliknya.
Nama lain penyadap: - penyusup (intruder)
a. penyerang (attacker)
b. musuh (enemy, adversaries)
c. pencegat (interceptor)
d. lawan (opponent)
Penyadap berusaha mendapatkan data yang digunakan untuk kegiatan kriptanalisis
(cryptanalysis). Kriptanalis berusaha mengungkap plainteks atau kunci dari data yang
disadap. Kriptanalis juga dapat menemukan kelemahan dari sistem kriptografi yang pada
akhirnya mengarah untuk menemukan kunci dan mengungkap plainteks.
Beberapa metode penyadapan data:
1. Wiretapping
Penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan
menggunakan sambungan perangkat keras.
2. Electromagnetic eavesdropping
Penyadap mencegat data yang ditransmisikan melalui saluran wireless, misalnya radio
dan microwive.
3. Acoustic Eavesdropping.
Menangkap gelombang suara yang dihasilkan oleh suara manusia.
Yang dimaksud dengan serangan (attack) adalah usaha (attempt) atau percobaan yang
dilakukan oleh kriptanalis.


BAB II
LANDASAN MATEMATIKA

1. Fungsi
Fungsi, dalam istilah matematika adalah pemetaan setiap anggota sebuah himpunan (domain)
kepada anggota himpunan yang lain (kodomain). Istilah ini berbeda pengertiannya dengan kata yang sama
yang dipakai sehari-hari, seperti alatnya berfungsi dengan baik. Konsep fungsi adalah salah satu konsep
dasar dari matematika dan setiap ilmu kuantitatif. Istilah "fungsi", "pemetaan", "peta", "transformasi", dan
"operator" biasanya dipakai secara sinonim.
2. Permutasi dan Kombinasi
Kombinasi adalah menggabungkan beberapa objek dari suatu grup tanpa memperhatikan urutan. Di
dalam kombinasi, urutan tidak diperhatikan.
{1,2,3} adalah sama dengan {2,3,1} dan {3,1,2}.
Contoh: Seorang anak hanya diperbolehkan mengambil dua buah amplop dari tiga buah amplop yang
disediakan yaitu amplop A, amplop B dan amplop C. Tentukan ada berapa banyak kombinasi untuk
mengambil dua buah amplop dari tiga buah amplop yang disediakan?
Solusi: Ada 3 kombinasi yaitu; A-B, A-C dan B-C.
Sedangkan permutasi adalah menggabungkan beberapa objek dari suatu grup dengan
memperhatikan urutan. Di dalam permutasi, urutan diperhatikan.
{1,2,3} tidak sama dengan {2,3,1} dan {3,1,2}
Contoh: Ada sebuah kotak berisi 3 bola masing-masing berwarna merah, hijau dan biru. Jika seorang anak
ditugaskan untuk mengambil 2 bola secara acak dan urutan pengambilan diperhatikan, ada berapa
permutasi yang terjadi?
Solusi: Ada 6 permutasi yaitu; M-H, M-B, H-M, H-B, B-M, B-H.
3. Teori Peluang
Peluang diperlukan untuk mengetahui ukuran atau derajad ketidakpastian suatu
peristiwa. Di dalam statistik, peluang dipakai antara lain terkait dengan cara pengambilan
sampel dari suatu populasi.
Mengundi dengan sebuah mata uang logam atau sebuah dadu, membaca temperatur
dengan termometer tiap hari, menghitung barang rusak yang dihasilkan tiap hari, mencatat
banyak kendaraan yang melalui pertigaan jalan tertentu setiap jam, dan masih banyak contoh
yang lain, merupakan eksperimen yang dapat diulangi. Semua hasil yang mungkin terjadi
bisa dicatat. Segala bagian yang mungkin didapat dari hasil ini dinamakan peristiwa.
Contoh:
Eksperimen mencatat banyak kendaraan yang melalui sebuah tikungan X setiap jam.
Hasilnya bisa didapat 0, 1, 2, 3, buah kendaraan setiap jam yang melalui tikungan X.
Beberapa peristiwa yang didapat misalnya: tidak ada kendaraan selama satu jam, lebih dari
tiga kendaraan selama satu jam, ada 6 kendaraan dalam satu jam, dsb.
Simbol untuk menyetakan peristiwa misalnya dengan huruf besar A, B, C, .baik
disertai indeks atu tidak. Misal: A berarti tidak ada kendaraan yang melalui tikungan dalam
satu jam. B berarti ada 10 kendaraan yang melalui tikungan dalam satu jam, dsb.
Definisi: Dua peristiwa atau lebih dinamakan saling ekslusif jika terjadinya peristiwa yang satu
mencegah terjadinya yang lain.
Contoh:
Sebuah kotak berisi 10 kelereng merah, 18 kelereng hijau, dan 22 kelereng kuning.
Kecuali warna, lain-lainnya identik. Bila semua kelereng dimasukkan ke dalam kotak dan
diaduk-aduk, maka berapakah peluang warna merah atau hijau yang terambil dari kotak jika
kelereng diambil secara acak dengan mata tertutup?
Jawab:
Misal A = mengambil warna merah
B = mengambil warna kuning
C = mengambil warna hijau
P(A) = 10/(10+18+22) = 0,2
P(B) = 18/(10+18+22) = 0,36
P(C) = 22/(10+18+22) = 0,44
Ketiga peristiwa di atas adalah saling eksklusif, sehingga berlaku:
P(A atau C) = P(A) + P(C) = 0,2 + 0,44 = 0,64
Hal itu berarti jika pengambilan kelereng dilakukan dalam jangka waktu lama, maka 64 dari
setiap 100 kali mengambil akan terambil kelereng warna merah atau kuning.
4. Teori Informasi
Teori informasi (Inggris: information theory) adalah disiplin ilmu dalam
bidang matematika terapan yang berkaitan dengan kuantisasi data sehingga data
atau informasi itu dapat disimpan dan dikirimkan tanpa kesalahan (error) melalui suatu kanal
komunikasi. Entropi informasi (information entropy) sering dipakai sebagai alat untuk
maksud ini, dan biasanya dinyatakan sebagai banyaknya bit rerata yang diperlukan untuk
penyimpanan dan pengiriman informasi tersebut. Sebagai contoh, jika keadaan cuaca harian
dinyatakan dengan entropi 3 bit, maka kita katakan bahwa cuaca itu mempunyai rata-rata 3
bit tiap harinya.
Aplikasi dari topik dasar dalam teori informasi meliputi kompresi data tanpa cacat
(lossless data compression, pada file ZIP misalnya), kompresi data (lossy data compression,
pada file MP3, misalnya), dan pengkodean kanal (channel coding, pada saluran DSL, ADSL
dll). Biasanya teori informasi merupakan titik temu dari bidang bidang matematika,
statistika, ilmu komputer, fisika, neurobiologi, dan teknik listrik serta komputer.
Implementasi dari teori ini berdampak langsung dengan misi ruang angkasa, pemahaman
mengenai lubang hitam dalam galaksi, dengan penelitianlinguistika dan persepsi manusia,
dengan jaringan komputer, jaringan Internet serta jaringan telepon genggam.
Fungsi entropi biner Bernoulli
Secara khusus, teori informasi adalah cabang dari matematika peluang dan statistik,
yang berkaitan dengan konsep informasi dan entropi informasiseperti telah dijelaskan di
atas. Claude E. Shannon (1916-2001) dikenal sebagai "bapak dari teori informasi". Shannon
mendefinisikan pengukuran darientropi informasi (dalam bit) sebagai:

Rumus ini jika diterapkan pada suatu sumber informasi, dapat menentukan kapasitas dari
saluran yang diperlukan untuk mengirim data yang diterjemahkan ke dalam digit biner.
5. Teori Bilangan
Teori bilangan (number theory) adalah teori yang mendasar dalam memahami algoritma
kriptografi Bilangan yang dimaksudkan adalah bilangan bulat (integer)
1. Bilangan Bulat
Bilangan bulat adalah bilangan yang tidak mempunyai pecahan desimal, misalnya 8, 21,
8765, -34, 0 Berlawanan dengan bilangan bulat adalah bilangan riil yang mempunyai titik
desimal, seperti 8.0, 34.25, 0.02.
Sifat Pembagian pada Bilangan Bulat
Misalkan a dan b adalah dua buah bilangan bulat dengan syarat a 0. Kita menyatakan
bahwa a habis membagi b (a divides b) jika terdapat bilangan bulat c sedemikian
sehingga b = ac.
Notasi: a | b jika b = ac, c Z dan a 0. (Z = himpunan bilangan bulat)
Kadang-kadang pernyataan a habis membagi b ditulis juga b kelipatan a.
Contoh 1:
4 | 12 karena 12 4 = 3 (bilangan bulat) atau 12 = 4 3. Tetapi 4 | 13 karena 13 4 = 3.25
(bukan bilangan bulat).
6. Aljabar Abstrak
Aljabar abstrak adalah bidang subjek matematika yang mempelajari struktur aljabar,
seperti grup, ring, medan, modul, ruang vektor, dan aljabar medan. Frasa aljabar abstrak diciptakan pada
awal abad ke-20 untuk membedakannya dengan bidang yang biasa disebut sebagai aljabar, yaitu studi
aturan manipulasi rumus dan ekspresi aljabar yang melibatkan variabel dan bilangan riilatau kompleks,
yang saat ini lebih sering disebut sebagai aljabar elementer. Perbedaan ini jarang dikemukakan pada
tulisan-tulisan matematika yang lebih mutakhir.
Matematika kontemporer dan fisika matematika menggunakan aljabar abstrak secara intensif.
Sebagai contoh, fisika teoretis mengandalkan aljabar Lie. Bidang subjek seperti teori bilangan
aljabar, topologi aljabar dan geometri aljabar menerapkan metode aljabar terhadap bidang matematika
lain. Secara kasar, dapat disebutkan bahwa teori representasi mengeluarkan istilah 'abstrak' dari 'aljabar
abstrak', dan mempelajari sisi konkret dari suatu struktur (lihat pula teori model).
Dua bidang subjek matematika yang mempelajari sifat-sifat struktur aljabar yang dipandang
secara keseluruhan adalah aljabar universal dan teori kategori. Struktur aljabar, bersama-sama
denganhomomorfisme yang berkaitan, membentuk kategori. Teori kategori adalah formalisme ampuh
untuk mempelajari dan membandingkan berbagai struktur aljabar yang berbeda-beda.


BAB III
ALGORITMA KRIPTOGRAFI KLASIK

1. Cipher Substitusi
Subsitusi adalah penggantian setiap karakter plaintext dengan karakter lain. Beberapa istilah yang
mungkin perlu diingat adalah KUR04:
a. Monoalfabet : Setiap karakter ciphertext mengganti satu macam karakter plainteks tertentu.
b. Polyalfabet : Setiap karakter ciphertext dapat mengganti lebih dari satu karakter plaintext.
c. Monograf / unilateral : Satu enkripsi dilakukan terhadap satu karakter plaintext.
d. Polygraf / multilateral : Satu enkripsi dilakukan terhadap lebih dari satu karakter plaintext sekaligus.
Adalah algoritma kriptografi yang mula-mula digunakan oleh kaisar Romawi, Julius
Caesar (sehingga dinamakan juga caesar chiper), untuk menyandikan pesan yang ia kirim
kepada para gubernurnya.
Caranya adalah dengan mengganti (menyulih atau mensubstitusi) setiap karakter
dengan karakter lain dalam susunan abjad (alfabet). Misalnya, tiap huruf disubstitusi dengan
huruf ketiga berikutnya dari susunan akjad. Dalam hal ini kuncinya adalah jumlah pergeseran
huruf (yaitu k = 3).
Tabel substitusi :
p
i
: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
c
i
: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Contoh 1. Pesan
AWASI ASTERIX DAN TEMANNYA OBELIX
disamarkan (enskripsi) menjadi
DZDVL DVWHULA GDQ WHPDQQBA REHOLA
Penerima pesan men-dekripsi chiperteks dengan menggunakan tabel substitusi, sehingga
chiperteks
DZDVL DVWHULA GDQ WHPDQQBA REHOLA
dapat dikembalikan menjadi plainteks semula:
AWASI ASTERIX DAN TEMANNYA OBELIX
Dengan mengkodekan setiap huruf abjad dengan integer sebagai berikut: A = 0,B = 1,
, Z = 25, maka secara matematis caesar chiper menyandikan plainteks p
i
menjadi c
i
dengan
aturan:
c
i
= E(p
i
) = (p
i
+ 3) mod 26 (1)
dan dekripsi chiperteks c
i
menjadi p
i
dengan aturan:
p
i
= D(c
i
) = (c
i
3) mod 26 (2)
Karena hanya ada 26 huruf abjad, maka pergeseran huruf yang mungkin dilakukan adalah
dari 0 sampai 25. Secara umum, untuk pergeseran huruf sejauh k (dalam hal ini k adalah
kunci enkripsi dan deksripsi), fungsi enkripsi adalah
c
i
= E(p
i
) = (p
i
+ k) mod 26 (3)
dan fungsi dekripsi adalah
p
i
= D(c
i
) = (c
i
k) mod 26 (4)
Catatan:
1. Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah)
2. Pergeseran lain untuk k > 25 dapat juga dilakukan namun hasilnya akan kongruen
dengan bilangan bulat dalam modulo 26. Misalnya k = 37 kongruen dengan 11 dalam
modulo 26, atau 37 11 (mod 26).
3. Karena ada operasi penjumlahan dalam persamaan (3) dan (4), maka caesar
chiperkadang-kadang dinamakan juga additive chiper.
2. Jenis-jenis Cipher Substitusi
Cipher subsitusi paling tua yang dikenal adalah subsitusi yang dilakukan Julius Caesar. Beberapa
teknik subsitusi yang pernah dilakukan, antara lain [KUR04]:
a. Subsitusi deret campuran kata kunci yaitu subsitusi yang kata kuncinya didapat dari mengumpulkan
karakter yang sama dari sebuah plaintext dan pada ciphertextnya ditambahkan semua sisa karakter dalam
abjad.
b. Subsitusi monomer-dinome-trinome.
Monome berarti setiap satu karakter plaintext akan disubsitusi oleh satu karakter ciphertext, dinome
disubsitusi dua karakter ciphertext, tridome disubsitusi tiga karakter ciphertext. Jadi sistem ini adalah
campuran.
c. Subsitusi multilateral variant.
Subsitusi ini masih termasuk jenis monoalfabet yang dalam mensubsitusi memanfaatkan huruf abjad
a,b,c,,z yang disusun dalam matrik 5 X 5.
d. Subsitusi digrafik.
Pada sistem ini, setiap huruf plaintext akan disubsitusi oleh dua huruf ciphertext. Pola huruf cipher text
diambil dari sebuah matrik 26 X 26 yang berasal dari 26 abjad yang memiliki pola khusus.
e. Subsitusi persegi panjang.
Sistem digrafik terlalu memerlukan matrik yang besar. Untuk memperkecil matrik dengan keamanan yang
setara dapat digunakan sistem empat persegi.
f. Subsitusi kode playfair
Kode rahasia multi huruf yang paling terkenal adalah playfair. Playfair menggunakan 676 digraf. Selama
waktu yang lama, kode ini dianggap tak dapat dipecahkan. Playfair dijadikan system standar oleh tentara
Inggris dalam PD I dan masih digunakan secara luas oleh tentara Amerika dan sekutu selama PD II.
Sistem ini menggunakan matrik 5 x 5
g. Subsitusi Polialfabet periodik.
Dalam sistem polialfabet, setiap ciphertext dapat memiliki banyak kemungkinan plaintext. Dan
sistem periodik itu sendiri dikarenakan adanya kunci yang berulang. Jenis polialfabet klasik yang terkenal
adalah Vigenere.
Termasuk ke dalam cipher abjad-majemuk (polyalpabetic substitution cipher ). Ditemukan oleh
diplomat (sekaligus seorang kriptologis) Perancis, Blaise de Vignere pada abad 16. Sudah berhasil
dipecahkan pada Abad 19.Vignere Cipher menggunakan Bujursangkar Vignere untuk melakukan
enkripsi. Setiap baris di dalam bujursangkar menyatakan huruf-huruf cipherteks yang diperoleh
dengan Caesar Cipher.
Jika panjang kunci lebih pendek daripada panjang plainteks, maka kunci diulang secara periodik.
Bila panjang kunci adalah m, maka periodenya dikatakan m.
Contoh: kunci = sony
Plainteks: THIS PLAINTEXT
Kunci: sony sonysonys
Huruf yang sama tidaks elalu dienkripsi menjadi huruf cipheteks yang sama pula. Contoh: huruf
plainteks T dapat dienkripsi menjadi L atau H, dan huruf cipherteks V dapat merepresentasikan huruf
plainteks H, I, dan X. Hal di atas merupakan karakteristik dari cipher abjad-majemuk: setiap huruf
cipherteks dapat memiliki kemungkinan banyak huruf plainteks. Pada cipher substitusi sederhana, setiap
huruf cipherteks selalu menggantikan huruf plainteks tertentu. Vignere Cipher dapat mencegah frekuensi
huruf-huruf di dalam cipherteks yang mempunyai pola tertentu yang sama seperti pada cipher abjad-
tunggal. Jika periode kunci diketahui dan tidak terlalu panjang, maka kunci dapat ditentukan dengan
menulis program komputer untuk melakukan exhaustive key search.
h. Enigma.
Merupakan mesin kriptografi yang digunakan oleh tentara NAZI Hitler pada masa PD II. Mesin ini
menggunakan rotor. Enigma menggunakan tiga rotor untuk melakukan subsitusi. Tiga rotor berarti tiga kali
subsitusi.
Enigma adalah mesin yang digunakan Jerman selama Perang Dunia II untuk mengenkripsi/dekripsi pesan-
pesan militer.
Enigma menggunakan sistem rotor (mesin berbentuk roda yang berputar) untuk membentuk huruf
cipherteks yang berubah-ubah. Setelah setiap huruf dienkripsi, rotor kembali berputar untuk membentuk
huruf cipherteks baru untuk huruf plainteks berikutnya. Enigma menggunakan 4 buah rotor untuk
melakukan substitusi. Ini berarti terdapat 26 26 26 26 = 456.976 kemungkinan huruf cipherteks sebagai
pengganti huruf plainteks sebelum terjadi perulangan urutan cipherteks.
Setiap kali sebuah huruf selesai disubstitusi, rotor pertama bergeser satu huruf ke atas. Setiap
kali rotor pertama selesai bergeser 26 kali, rotor kedua juga melakukan hal yang sama, demikian
untuk rotor ke-3 dan ke-4. Posisi awal keempat rotor dapat di-set; dan posisi awal ini menyatakan kunci
dari Enigma. Jerman meyakini bahwa cipherteks yang dihasilkan Enigma tidak mungkin dipecahkan.
Namun, sejarah membuktikan bahwa pihak Sekutu berhasil juga memecahkan kode Enigma. Keberhasilan
memecahkan Enigma dianggap sebagai faktor yang memperpendek Perang Dunia II menjadi hanya 2
tahun.
3. Cipher Transposisi
Beberapa model kriptografi yang menggunakan teknik transposisi, antara lain [KUR04]:
1. Algoritma transposisi kolom dengan kunci numerik. Teknik ini menggunakan permutasi karakter. Kunci
dapat diperoleh dari kata yang mudah dibaca dan kemudian dikodekan menjadi bentuk bilangan.
2. Masukan plaintext pola zig-zag, keluaran ciphertext berupa baris.
3. Masukan pola segitiga, keluaran berupa kolom, dibaca dari atas kebawah.
4. Masukan berpola spiral, dari luar kedalam, keluaran berupa kolom dibaca pembacaannya mengikuti pola
yang berasal dari atas ke bawah.
5. Dimasukan secara diagonal dari kiri bawah ke kanan atas, keluaran baris.
6. Masukan spiral dari dalam ke luar, keluaran diagonal bergantian.
Kombinasi subsitusi dan transposisi yang komplek menjadi dasar pembentukan algoritma-
algoritma kriptografi modern. Salah satu algoritma klasik yang menggunakan kedua teknik ini adalah VIC
yang tidak memerlukan komputer dalam penggunaannya
4. Super Enkripsi
Super enkripsi adalah mengkombinasikan metode cipher substitusi dengan cipher transposisi.
Tujuanya memperoleh cipher yang lebih kuat daripada hanya satu cipher saja. Mula-mula enkripsi
dengan cipher substitusi sederhana (cipher abjad-tunggal), lalu hasilnya dienkripsi lagi
dengan cipher transposisi
Contoh:
Plainteks: HELLO WORLD
Enkripsi dengan caesar cipher menjadi:
KHOOR ZRUOG
Kemudian enkripsi lagi dengan cipher transposisi (k = 4):
KHOO
RZRU
OGZZ
Cipherteks akhir adalah: KROHZGORZOUZ
5. Teknik Analisis Frekuensi
Kelemahan sandi substitusi adalah hubungan frekuensi kemunculan huruf pada
plainteks dan cipherteks yang tidak berubah. Jika huruf a dienkripsi menjadi huruf X, dan a
muncul sebanyak n kali, maka X juga muncul sebanyak n kali. Hal ini dimanfaatkan
penyerang untuk menemukan kuncinya. Penyerang memanfaatkan data statistik peluang
kemunculan huruf berikut ini. Teknik seperti ini disebut dengan teknik analisis frekuensi.




Data di atas dapat dibagi menjadi lima kelompok, yaitu:
1. E, mempunyai peluang 0.120.
2. T, A, O, I, N, S, H, R, mempunyai peluang antara 0.06 dan 0.09.
3. D, L, mempunyai peluang sekitar 0.04.
4. C, U, M, W, F, G, Y, P, B, mempunyai peluang antara 0.015 dan 0.023.
5. V, K, J, X, Q, Z, peluangnya kurang dari 0.01.
Selain itu juga ditemukan data mengenai frekuensi kemunculan digrams dantrigrams.
30 digram paling sering muncul dalam Bahasa Inggris berturut-turut dari yang peluang
terbesar adalah:
TH, HE, IN, ER, AN, RE, ED, ON, ES, ST, EN,
AT, TO, NT, HA, ND, OU, EA, NG, AS, OR,
TI, IS, ET, IT, AR, TE, SE, HI, OF.
Sedangkan 12 trigram yang sering muncul dalam Bahasa Inggris berturut-turut dari peluang
terbesar adalah:
THE, ING, AND, HER, ERE, ENT, THA, NTH,
WAS, ETH, FOR, DTH.
Untuk lebih jelasnya mengenai cara kerja teknik analisis frekuensi dalam memecahkan cipher
substitusi.
6. Affine Cipher
Salah satu kriptosistem klasik selain shift cipher adalah Affine Cipher. Ide awalnya hampir sama
dengan shift cipher di mana tiap huruf direpresentasikan oleh nilai dari 0 ( yaitu a ) sampai 25 ( z ).
Bedanya adalah jika pada shift cipher, tiap-tiap huruf digeser sejauh k, dan nilai k pada tiap huruf sama,
pada Affine cipher, tiap huruf pada ciphertext merupakan hasil fungsi berikut :
X = x + (mod 26)
7. Vigenere Cipher
Sandi Vigenre adalah metode menyandikan teks alfabet dengan menggunakan deretan sandi
Caesar berdasarkan huruf-huruf pada kata kunci. Sandi Vigenre merupakan bentuk sederhana dari
sandi substitusi polialfabetik. Kelebihan sandi ini dibanding sandi Caesar dan sandi monoalfabetik lainnya
adalah sandi ini tidak begitu rentan terhadap metode pemecahan sandi yang disebut analisis frekuensi.
Giovan Batista Belaso menjelaskan metode ini dalam buku La cifra del. Sig. Giovan Batista Belaso (1553);
dan disempurnakan oleh diplomat Perancis Blaise de Vigenre, pada 1586. Pada abat ke-19, banyak
orang yang mengira Vigenre adalah penemu sandi ini, sehingga, sandi ini dikenal luas sebagai "sandi
Vigenre".
Sandi ini dikenal luas karena cara kerjanya mudah dimengerti dan dijalankan, dan bagi para
pemula sulit dipecahkan. Pada saat kejayaannya, sandi ini dijuluki le chiffre indchiffrable (bahasa
Prancis: 'sandi yang tak terpecahkan'). Metode pemecahan sandi ini baru ditemukan pada abad ke-19.
Pada tahun 1854, Charles Babbage menemukan cara untuk memecahkan sandi Vigenre. Metode ini
dinamakan tes Kasiski karena Friedrich Kasiski-lah yang pertama mempublikasikannya.
Sandi Vigenre sebenarnya merupakan pengembangan dari sandi Caesar. Pada sandi
Caesar, setiap huruf teks terang digantikan dengan huruf lain yang memiliki perbedaan
tertentu pada urutan alfabet. Misalnya pada sandi Caesar dengan geseran
3, A menjadi D, B menjadi E and dan seterusnya. Sandi Vigenre terdiri dari beberapa sandi
Caesar dengan nilai geseran yang berbeda.
Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut tabel
Vigenre (gambar). Tabel Vigenre berisi alfabet yang dituliskan dalam 26 baris, masing-
masing baris digeser satu urutan ke kiri dari baris sebelumnya, membentuk ke-26
kemungkinan sandi Caesar. Setiap huruf disandikan dengan menggunakan baris yang
berbeda-beda, sesuai kata kunci yang diulang
Misalnya, teks terang yang hendak disandikan adalah perintah "Serbu Berlin":
serbuberlin
Sedangkan kata kunci antara pengirim dan tujuan adalah "Pizza"
"PIZZA" diulang sehingga jumlah hurufnya sama banyak dengan teks terang:
PIZZAPIZZAP
Huruf pertama pada teks terang, S, disandikan dengan menggunakan baris berjudul P,
huruf pertama pada kata kunci. Pada baris Pdan kolom S di tabel Vigenre, terdapat huruf H.
Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris I (huruf kedua
kata kunci) dan kolom E (huruf kedua teks terang), yaitu huruf M. Proses ini dijalankan terus
sehingga
Teks terang: serbuberlin
Kata kunci: PIZZAPIZZAP
Teks bersandi: HMQAUQMQKIC
Proses sebalinya (disebut dekripsi), dilakukan dengan mencari huruf teks bersandi
pada baris berjudul huruf dari kata kunci. Misalnya, pada contoh di atas, untuk huruf pertama,
kita mencari huruf H (huruf pertama teks tersandi) pada baris P (huruf pertama pada kata
kunci), yang terdapat pada kolom S, sehingga huruf pertama adalah S. Lalu M terdapat pada
baris I di kolom E, sehingga diketahui huruf kedua teks terang adalah E, dan seterusnya
hingga didapat perintah "serbuberlin".
Enkripsi (penyandian) dengan sandi Vigenre juga dapat dituliskan secara matematis,
dengan menggunakan penjumlahan dan operasi modulus, yaitu:

atau C = P + K kalau jumlah dibawah 26 & - 26 kalau hasil jumlah di atas 26 dan dekripsi,

atau P = C - K kalau hasilnya positif & + 26 kalau hasil pengurangan minus
Keterangan: adalah huruf ke-i pada teks tersandi, adalah huruf ke-i pada teks
terang, adalah huruf ke-i pada kata kunci, dan adalah operasi modulus (sisa
pembagian).
Rumus enkripsi vigenere cipher :

atau
Ci =( Pi +Ki ) 26 kalau hasil penjumlahan Pi dan Ki lebih dari 26
Rumus dekripsi vigenere cipher :

atau
Pi =( Ci Ki ) +26 kalau hasil pengurangan Ci dengan Ki minus
Dimana:
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i
Pada contoh kata kunci KAMPUS diulang sedemikian rupa hingga panjang kunci sama
dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi vigenere plainteks huruf
pertamaS (yang memiliki nilai Pi=18) akan dilakukan pergeseran dengan huruf K (yang
memiliki Ki=10) maka prosesnya sebagai berikut:
Ci = ( Pi + Ki ) mod 26
= (18 + 10) mod 26
= 28 mod 26
= 2
Ci=2 maka huruf ciphertext dengan nilai 2 adalah C . Begitu seterusnya dilakukan pergeseran
sesuai dengan kunci pada setiap huruf hingga semua plainteks telah terenkripsi menjadi
ciphertext. Setelah semua huruf terenkripsi maka proses dekripsinya dapat dihitung sebagai
berikut:
Pi = ( Ci Ki ) + 26
= ( 2 10 ) + 26
= 8 + 26
= 18

8. Playfair Cipher
Termasuk ke dalam polygram cipher
Ditemukan oleh Sir Charles Wheatstone dan Baron Lyon Playfair pada tahun 1854
Kunci kriptografinya adalah 25 buah huruf yang disusun di dalam bujursangkat 5x5 dengan
menghilangkan huruf J dari abjad.
Contoh kunci:
S T A N D
E R C H B
K F G I L
M O P Q U
V W X Y Z

Jumlah kemungkinan kunci:
25!=15.511.210.043.330.985.984.000.000
Susunan kunci di dalam bujursangkar diperluas dengan menambahkan kolom keenam dan
baris keenam

S T A N D S
E R C H B E








K F G I L K
M O P Q U M
V W X Y Z V
S T A N D
Baris ke-6 = baris ke-1
Kolom ke-6 = kolom ke-1

Pesan yang akan disamarkan diatur terlebih dahulu sebagai berikut:
1. Ganti huruf dengan J (bila ada) dengan huruf I
2. Tulis pesan dalam pasangan huruf
3. Jangan sampai ada pasangan huruf yang sama. Jika ada, sisipkan Z di tengahnya
4. Jika jumlah huruf ganjil,tambahkan huruf Z di akhir

Contoh: plainteks GOOD BROOMS SWEEP CLEAN
Tidak ada huruf J, maka langsung tulis pesan dalam pasangan huruf:
GO OD BR OZ OM SZ SW EZ EP CL EA NZ

Algoritma enkripsi sebagai berikut:
1. Jika ada dua huruf terdapat pada baris kunci yang sama maka tiap huruf diganti dengan huruf
di kanannya (pada kunci yang sudah diperluas)
2. Jika dua huruf terdapat pada kolom kunci yang sama maka tiap huruf diganti dengan huruf di
bawahnya (pada kunci yang sudah diperluas)
3. Jika dua huruf tidak pada baris yang sama atau kolom yang sama, maka huruf pertama
diganti dengan huruf pada perpotongan baris huruf pertama dengan kolom huruf kedua.
Huruf kedua diganti dengan huruf pada titik sudut keempat dari persegi panjang yang
dibentuk dari 3 huruf yang digunakan sampai sejauh ini
Contoh: Kunci (yang sudah diperluas) ditulis kembali sebagai berikut:

S T A N D S
E R C H B E
K F G I L K
M O P Q U M
V W X Y Z V
S T A N D

Plainteks (dalam pasangan huruf):
GO OD BR OZ OM SZ SW EZ EP CL EA NZ
Cipherteks:
FP UT EC UW PO DV TV BV CM BG CS DY

Algoritma dekripsi kebalikan dari algoritma enkripsi
Kunci dapat dipilih dari sebuah kalimat yang mudah diingat, misal
JALAN GANESHA SEPULUH
Buang huruf yang berulang dan huruf J jika ada:
ALNGESHPU
Lalu tambahkan huruf-huruf yang belum ada (kecuali J):
ALNGESHPUBCDFIKMOQRTVWXYZ
Masukkan ke dalam bujursangkar:
A L N G E
S H P U B
C D F I K
M O Q R T
V W X Y Z

SUPER ENKRIPSI
Menggunakan metode cipher substitusi dengan cipher transposisi
Tujuan: memperoleh cipher yang lebih kuat daripada hanya satu cipher saja.
Mula-mula enkripsi dengan cipher substitusi sederhana (cipher abjad-tunggal), lalu hasilnya
dienkripsi lagi dengan cipher transposisi
Contoh: Plainteks: HELLO WORLD
Enkripsi dengan caesar cipher menjadi:
Chiperteks1: KHOOR ZRUOG
Kemudian enkripsi lagi dengan cipher transposisi (k=4):
KHOO
RZRU
OGZZ
Cipherteks akhir adalah:
Cipherteks2: KROHZGORZOUZ
Banyak dari algoritma kriptografi modern yang diacu sebagai hasil dari super enkripsi yang
menggunakan sejumlah algoritma kriptografi yang secara komparatif lemah.



BAB IV
ALGORITMA KRIPTOGRAFI MODERN

1. Rangkaian Bit dan Operasinya
Umumnya data diproses dalam bentuk blok-blok bit yang dituliskan dalam sejumlah cara tergantung pada
panjang blok.
Misal P : 1 0 0 1 1 1 0 1 0 1 1 0 dibagi menjadi bit yang panjangnya 4 bit menjadi :
1001 1101 0110 alias 9 13 6
Bila panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang ditetapkan, maka blok terakhir
ditambahkan dengan bit-bit semu yang disebut PADDING BIT.
Misal : 1 0 0 1 1 1 0 1 0 1 1 0 dibagi dengan blok 5 bit menjadi : 10011 10101 00010
Cara lain untuk menyatakan rangkaian bit adalah dengan notasi heksadesimal (HEX). Rangkaian dibagi
menjadi blok yang berukuran 4 bit :
0000 = 0 0001 = 1 0010 = 2 0011 = 3
0100 = 4 0101 = 5 0110 = 6 0111 = 7
1000 = 8 1001 = 9 1010 = A 1011 = B
1100 = C 1101 = D 1110 = E 1111 = F
Misal P : 100111010110 dibagi menjadi 1001 1101 0110, dalam notasi HEX menjadi 9 D 6
Operator biner yang sering digunakan dalam cipher yang beroperasi dalam mode bit adalah XOR atau
exclusive-OR. Notasi matematis XOR adalah
0 0 = 0
0 1 = 1
1 0 = 1
1 1 = 0
Jika dua rangkaian bit dioperasikan dengan XOR, maka operasinya dilakukan dengan meng-XOR-kan
setiap bit yang berkoresponden dari kedua rangkaian bit.
Contoh :

2. Algoritma Enkripsi dengan XOR Sederhana
Dengan cara meng-XOR-kan Plainteks (P) dengan Kunci (K) sehingga menghasilkan Cipherteks (C)
Karena meng-XOR-kan nilai yang sama dua kali berturut-turut menghasilkan nilai semula, maka dekripsi
menggunakan persamaan :
3. Kategori Cipher Kunci Simetri
Algoritma Kunci Simetri Pengirim dan penerima memiliki kunci yang sama. Beroperasi dalam mode bit.
a. Cipher Aliran (Stream Cipher)
Beroperasi pada plainteks/cipherteks dalam bentuk BIT TUNGGAL. Rangkaian bit dienkripsi /
didekripsi bit per bit.
b. Cipher Blok (Block Cipher)
Beroperasi pada plainteks/cipherteks dalam bentuk BLOK BIT. Rangkaian bit dibagi menjadi blok-blok
dng ukuran tertentu. dienkripsi / didekripsi blok per blok.
4. Cipher Aliran
Pada cipher aliran, bit hanya mempunyai dua buah nilai, sehingga proses enkripsi hanya menyebabkan
dua keadaan pada bit : berubah atau tidak berubah.
Dua keadaan tersebut ditentukan oleh ALIRAN-KUNCI (keystream) yang dibangkitkan oleh PEMBANGKIT
ALIRAN KUNCI (keystream generator).
Keamanan sistem ini sepenuhnya bergantung pada keystream generator. Jika yang dibangkitkan hanya bit
0,maka cipherteks = plainteks Tidak berguna
Jika keystream generator mengeluarkan aliran kunci dengan pola 16-bit yang berulang, maka algoritma
enkripsinya menjadi sama persis dengan XOR sederhana dengan tingkat keamanan yang rendah.
Jika keystream generator mengeluarkan aliran kunci yang benar-benar acak (truly random), maka
algoritma enkripsinya sama dengan one-time pad dengan tingkat keamanan yang sempurna. Dalam hal ini
aliran kunci sama panjangnya dengan panjang plainteks sehingga akan didapatkan unbreakable cipher.
Kesimpulan : hanya dengan perhitungan XOR sederhana, KUNCI ACAK yang di-generate SEPANJANG
plainteks dan metode enkripsi ONE-TIME PAD, akan didapatkan cipherteks yang sulit dipecahkan.
5. Pembangkit Aliran-Kunci
Pembangkit bit-aliran-kunci dapat membangkitkan bit-aliran-kunci berbasis bit per
bit atau dalam bentuk blok-blok bit. Untuk yang terakhir ini,cipher blok dapat
digunakan untuk untuk memperoleh cipher aliran.
Untuk alasan praktis, pembangkit bit-aliran-kunci diimplementasikan sebagai
prosedur algoritmik, sehingga bit-aliran-kunci dapat dibangkitkan secara simultan
oleh pengirim dan penerima pesan.
Prosedur algoritmik tersebut menerima masukan sebuah kunci U. Keluaran dari
prosedur merupakan fungsi dari U (lihat Gambar 6.2). Pembangkit harus
menghasilkan bit-aliran-kunci yang kuat secara kriptografi.
Gambar 6.2 Cipher aliran dengan pembangkit bit-aliran-kunci yang bergantung pada
kunci U.
Karena pengirim dan penerima harus menghasilkan bit-aliran-kunci yang sama ,
maka keduanya harus memiliki kunci U yang sama. Kunci U ini harus dijaga
kerahasiaanya.
Cipher aliran menggunakan kunci U yang relatif pendek untuk membangkitkan bit-aliran-
kunci yang panjang.
Contoh: Misalkan U adalah kunci empat-bit yang dipilih sembarang, kecuali 0000. Bit-aliran-kunci yang
dibangkitkan akan berulang setiap 15 bit. Misalkan
U = 1111
Barisan bit-bit aliran-kunci diperoleh dengan meng-XOR-kan bit pertama dengan
bit terakhir dari empat bit sebelumnya, sehingga menghasilkan:
111101011001000
dan akan berulang setiap 15 bit.
Secara umum, jika panjang kunci U adalah n bit, maka bit-aliran-kunci tidak akan berulang
sampai 2
n
1 bit.
Karena U adalah besaran yang konstan, maka bit-aliran-kunci yang dihasilkan pada setiap
lelaran tidak berubah jika bergantung hanya pada U.
Ini berarti pembangkit bit-aliran-kunci tidak boleh mulai dengan kondisi awal yang sama
supaya tidak menghasilkan kembali bit-aliran-kunci yang sama pada setiap lelaran.
Oleh karena itu, beberapa pembangkit bit-aliran-kunci menggunakan besaranvektor
inisialisasi atau umpan (seed), disimbolkan dengan Z, agar diperoleh kondisi awal yang
berbeda pada setiap lelaran (lihat Gambar 6.3).

Gambar 6.3 Cipher aliran dengan pembangkit bit-aliran-kunci yang bergantung pada
kunci U dan umpan Z.
Dengan demikian, bit-aliran-kunci K dapat dinyatakan sebagai hasil dari
fungsi g dengan parameter kunci U dan masukan umpan Z:
K = g
K
(Z)
sehingga proses enkripsi dan dekripsi didefinisikan sebagai
C = P K = P g
K
(Z)

P = C K = C g
K
(Z)
Nilai Z yang berbeda-beda pada setiap lelaran menghasilkan bit-aliran-kunci yang
berbeda pula.
Merancang pembangkit bit-aliran-kunci yang bagus cukup sulit karena
membutuhkan pengujian statistik untuk menjamin bahwa keluaran dari pembangkit
tersebut sangat mendekati barisan acak yang sebenarnya.
6. Serangan Terhadap Cipher Aliran
Serangan yang dapat dilakukan oleh kriptanalis terhadap cipher aliran adalah:
1. Known-plaintext attack
Misalkan kriptanalis memiliki potongan plainteks (P) dan cipherteks (C) yang
berkoresponden, maka ia dapat menemukan bagian bit-aliran-kunci (K) yang
berkoresponden dengan meng-XOR-kan bit-bit plainteks dan cipherteks:
P C = P (P K)

= (P P) K = 0 K = K
2. Ciphertext-only attack
Misalkan kriptanalis memiliki dua potongan cipherteks berbeda (C
1
danC
2
) yang
dienkripsi dengan bit-aliran-kunci yang sama. Ia meng-XOR-kan kedua cipherteks
tersebut dan memperoleh dua buah plainteks yang ter-XOR satu sama lain:
C
1
C
2
= (P
1
K ) (P
2
K)
= (P
1
P
2
) (K K)
= (P
1
P
2
) 0
= (P
1
P
2
)
P
1
dan P
2
dapat diperoleh dengan mudah. Selanjutnya, XOR-kan salah satu
plainteks dengan cipherteksnya untuk memperoleh bit-aliran-kunci Kyang
berkoresponden:
P
1
C
1
= P
1
(P
1
K) = K
Pesan dari dua serangan di atas adalah: pengguna cipher aliran harus mempunyai
bit-aliran-kunci yang tidak dapat diprediksi sehingga mengetahui sebagian dari bit-
aliran-kunci tidak memungkinkan kriptanalis dapat mendeduksi bagian sisanya.
7. Cipher Blok
Rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama, biasanya 64-bit atau lebih.
Kemudian setiap blok di-enkripsi dengan bit-bit kunci yang panjangnya sama dengan panjang bit dalam
blok plainteks.
Algoritma cipher blok menggabungkan beberapa teknik kriptografi klasik dalam proses enkripsi sehingga
dapat menjadi super-enkripsi.
a. Substitusi
Menggantikan satu atau sekumpulan bit pada blok plainteks tanpa merubah urutannya.
b. Transposisi atau permutasi
Memindahkan atau menggeser posisi bit pada blok plainteks berdasarkan aturan tertentu.
c. Ekspansi
Memperbanyak jumlah bit pada blok plainteks berdasarkan aturan tertentu. Misal 32-bit menjadi 48-bit.
d. Kompresi
Kebalikan dari ekspansi, jumlah bit pada blok plainteks dimampatkan berdasarkan aturan tertentu.
Tahun 1949, Shannon mengemukakan dua prinsip (properties) penyandian (encoding) data dalam
makalahnya yang berjudul Communication Theory of Secrecy Systems. Kedua prinsip tersebut digunakan
dalam perancangan cipher blok yang kuat.
1. Confusion
Menyembunyikan hubungan apapun antara plainteks, cipherteks dan kunci. Hal ini akan membuat
kriptanalis frustasi untuk mencari pola-pola yang muncul pada cipherteks. Confusion akan membuat
hubungan statistik plainteks, cipherteks dan kunci menjadi rumit.
2. Diffusion
Menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin cipherteks sehingga perubahan
pada cipherteks tidak dapat diprediksi.
Untuk mendapatkan keamanan yang tinggi, prinsip confusion dan diffusion diulang berkali-kali
pada tiap-tiap blok enkripsi dengan kombinasi yang berbeda.
8. Electronic Code Book (ECB)
Setiap blok plainteks Pi dienkripsi secara individual dan independen menjadi blok
cipherteks Ci. Secara matematis, enkripsi dengan mode ECB dinyatakan sebagai Ci = Ek(Pi)
dan dekripsi sebagai Pi = Dk(Ci), yang dalam hal ini, Pi dan Ci masing masing block
plainteks dan cipherteks ke- I Skema enkripsi.
Gambar. 2 .2 Electronic Code Book (ECB)

9. Cipher Block Chaining (CBC)
Mode ini menerapkan mekanisme umpan balik (feedback) pada sebuah blok, yang
dalam hal ini hasil enkripsi blok sebelumnya diumpan balikkan ke dalam enkripsi blok yang
current. Secara matematis, enkripsi dengan mode CBC dinyatakan sebagai Ci = Ek(P1 =
Ci1) dan dekripsi sebagai Pi = Dk(Ci) = Ci-1 Yang dalam hal ini, C0 = IV ( initialization
vector ). IV dapat diberikan oleh pengguna atau dibangkitkan secara acak oleh program.
gambar enkripsi dengan mode CBC dapat dilihat pada Gambar 2.3 .
Gambar 2.3 Enkripsi dengan Mode CBC

10. Cipher Feedback (CFB)
Jika mode CBC yang diterapkan pada aplikasi komunikasi data, maka enkripsi tidak dapat
dilakukan bila blok plainteks yang diterima belum lengkap. Misalnya bila pengiriman data dilakukan setiap
kali karakter di-enter dari terminal komputer ke host.
Pada mode CFB, data dienkripsikan dalam unit yang lebih kecil daripada ukuran blok, misalnya
dienkripsikan satu karakter setiap kalinya (ini disebut CFB 8-bit). Unit yang dienkripsikan dapat berupa bit
per bit (jadi seperti cipher aliran), 2 bit, dan seterusnya. Secara umum, CFB n-bit mengenkripsi plainteks
sebanyak n bit setiap kalinya, yang mana n ukuran blok. Dengan kata
lain, CFB mengenkripsikan cipher blok seperti pada cipheraliran.
Mode CFB membutuhkan sebuah antrian (queue) yang berukuran sama dengan ukuran blok masukan.
Tinjau mode CFB 8-bit yang bekerja pada blok cipher berukuran 64-bit (setara
dengan 8 byte). Algoritma enkripsi dengan mode CFB adalah sbb (lihat Gambar 1):
1. Antrian diisi dengan IV (initialiazation vector) seperti pada mode CBC.
2. Enkripsikan antrian dengan kunci K. Delapan bit paling kiri dari hasil enkripsi berlaku
sebagai keystream yang kemudian di-XOR-kan dengan karakter 8-bit dari plainteks menjadi
karakter 8-bit pertama dari cipherteks. Karakter cipherteks ini dikirim (pada aplikasi
komunikasi data) atau disimpan (pada aplikasi penyimpanan data). Salinan (copy) dari
karakter cipherteks ini juga dimasukkan ke dalam antrian (menempati 8 posisi bit paling
kanan antrian), dan semua bit bit-bit
lainnya di antrian digeser ke kiri menggantikan 8 bit pertama yang sudah digunakan.
3. Karakter plainteks berikutnya dienkripsikan dengan cara yang sama seperti pada langkah
ke 2.
4. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi.
Gambar 1 Mode CFB 8-bit
- Secara formal, mode CFB dapat dinyatakan sebagai:
Proses Enkripsi: Ci = Pi MSBm(Ek (Xi))
Xi+1 = LSBm n(Xi) || Ci
Proses Dekripsi: Pi = Ci MSBm(Ek (Xi))
Xi+1 = LSBm n(Xi) || Ci


yang dalam hal ini,
Xi = isi antrian dengan X1adalah IV
E = fungsi enkripsi dengan algoritma cipher blok.
K = kunci
m = panjang blok enkripsi
n = panjang unit enkripsi
|| = operator penyambungan (concatenation)
MSB = Most Significant Byte
LSB = Least Significant Byte


- Seperti pada mode CBC, mode CFB juga menggunakan skema umpan-balik dengan mengaitkan blok
plainteks bersama-sama dengan blok cipherteks sebelumnya (Gambar 2).

Gambar 2. Skema umpan-balik yang diterapkan pada mode CFB
Dari Gambar 2 dapat dilihat bahwa:
Ci = Pi Ek (Ci 1 )
Pi = Ci Ek (Ci 1 )

Anda mungkin juga menyukai