Puji
dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa atas segala rahmat
dan karunia-Nya, sehingga dalam penyusunan Paper Makalah Kriptografi ini dapat penulis selesaikan tepat pada
waktunya.
Pada
kesempatan yang baik ini penulis ingin menyampaikan ucapan terima kasih yang
sebesar - besarnya kepada Bpk
Kriptografi selaku dosen mata kuliah Kriptografi yang selama ini telah banyak
membimbing dan memberi motivasi. Saya mendoakan semoga amal baik bapak
mendapatkan balasan dari Allah SWT.
Penulis
menyadari bahwa penulisan makalah ini masih jauh dari sempurna, oleh karena itu
dengan besar hati penulis menerima saran dan kritik dari para pembaca demi
perbaikan laporan ini.
Terima kasih.
Kata pengantar ............................................................................................................ i
daftar isi ...................................................................................................................... ii-v
1.
kRIPTANALISIS ..................................................................................................... 1
2.
kEAMANAN ALGORITMA KRIPTOGRAFI ....................................................... 2
3.
KOMPLEKSITAS SERANGAN .............................................................................. 3
4.
JENIS – JENIS SERANGAN .................................................................................... 4
1.
FUNGSI ..................................................................................................................... 5
2.
PERMUTASI DAN KOMBINASI ........................................................................... 5
3.
TEORI PELUANG ..................................................................................................... 5
4.
TEORI INFORMASI ................................................................................................ 6
5.
TEORI BILANGAN .................................................................................................. 7
6.
ALJABAR ABSTRAK .............................................................................................. 8
1.
CIPHER SUBSTITUSI ............................................................................................. 9
2.
JENIS – JENIS CIPHER SUBSTITUSI .................................................................. 10
3.
CIPHER TRANSPOSISI ......................................................................................... 13
4.
SUPER ENKRIPSI .................................................................................................. 13
5.
TEKNIK ANALISIS FREKUENSI ........................................................................ 13
6.
AFFINE CIPHER ..................................................................................................... 14
7.
VIGENERE CIPHER .............................................................................................. 15
8.
PLAYFAIR CIPHER .............................................................................................. 17
1.
RANGKAIAN BIT
DAN OPERASINYA ........................................................... 21
2.
ALGORITMA
ENKRIPSI DENGAN XOR SEDERHANA ............................... 21
3.
KATEGORI CIPHER KUNCI SIMETRI ............................................................... 21
4.
CIPHER ALIRAN .................................................................................................. 22
5.
PEMBANGKIT ALIRAN KUNCI ......................................................................... 23
6.
SERANGAN TERHADAP CIPHER ALIRAN ..................................................... 25
7.
CIPHER BLOK ....................................................................................................... 25
8.
ELECTRONIC CODE
BOOK (ECB) .................................................................... 26
9.
CIPHER BLOCK CHAINING (CBC) .................................................................... 27
10. CIPHER
FEEDBACK (CFB) ................................................................................. 30
11. OUTPUT
FEEDBACK (OFB) ................................................................................ 31
12. PRINSIP – PRINSIP PERANCANGAN CIPHER BLOK ................................... 31
1.
KONSEP KRIPTOGRAFI KUNCI PUBLIK ...................................................... 33
2.
SEJARAH KRIPTOGRAFI KUNCI PUBLIK ...................................................... 34
3.
PERBANDINGAN KRIPTOGRAFI KUNCI SIMETRI DENGAN
KRIPTOGRAFI KUNCI PUBLIK .................................................................................................................................... 35
4.
APLIKASI KRIPTOGRAFI KUNCI PUBLIC ..................................................... 36
5.
RSA ........................................................................................................................... 36
6.
ELGAMAL............................................................................................................... 39
7.
ALGORITMA
PERTUKARAN KUNCI DIFFIE-HELLMAN ........................... 41
8.
ALGORITMA KNAPSACK ................................................................................... 42
1.
LINEAR CONGRUENTIAL GENERATOR (LCG) ............................................ 43
2.
PEMBANGKIT
BILANGAN ACAK YANG AMAN UNTUK KRIPTOGRAFI 44
3.
BLUM BLUM SHUT .............................................................................................. 45
4.
CSPRNG BERBASIS RSA ..................................................................................... 45
5.
CSPRNG BERBASIS CHAOS ............................................................................... 45
1.
FUNGSI HASH SATU ARAH .............................................................................. 47
2.
ALGORITMA MD5................................................................................................. 48
3.
SECURE HASH ALGORITHM (SHA) .................................................................. 49
4.
MAC DAN APLIKASINYA ................................................................................... 50
5.
ALGORITMA MAC ................................................................................................ 51
1.
KONSEP TANDA TANGAN DIGITAL ............................................................... 53
2.
PENANDATANGANAN DENGAN CARA MENGENKRIPSI PESAN............ 55
3.
TANDATANGAN DENGAN MENGGUNAKAN FUNGSI HASH ................... 56
4.
DIGITAL STANDARD
ALGORITHM (DSA) ..................................................... 57
1.
PROTOKOL KOMUNIKASI DENGAN SISTEM KRIPTOGRAFI SIMETRI . 59
2.
PROTOKOL KOMUNIKASI DENGAN SISTEM KRIPTOGRAFI KUNCI
PUBLIC 59
3.
PROTOKOL UNTUK
TANDA TANGAN DIGITAL .......................................... 61
4.
PROTOKOL UNTUK
TANDA TANGAN DIGITAL DENGAN ENKRIPSI ... 63
5.
OTENTIKASI ........................................................................................................... 65
1.
SERTIFIKAT DIGITAL ......................................................................................... 68
2.
X.509 ......................................................................................................................... 68
3.
INFRASTRUKTUR KUNCI PUBLIK ................................................................... 68
4.
MICROSOFT AUTHENTICODE ........................................................................... 69
1.
PEMBANGKITAN KUNCI ................................................................................... 70
2.
PENYEBARAN KUNCI ......................................................................................... 70
3.
PENYIMPANAN KUNCI (KEY STORAGE) ....................................................... 71
4.
PENGGUNAAN KUNCI ........................................................................................ 71
5.
PERUBAHAN KUNCI ........................................................................................... 72
6.
PENGHANCURAN KUNCI (KEY DESTRUCTION) ........................................ 72
1.
KARTU CERDAS ................................................................................................... 73
2.
TRANSAKSI LEWAT
ANJUNGAN TUNAI MANDIRI (ATM) ....................... 74
3.
PAY TV .................................................................................................................... 75
4.
KOMUNIKASI
DENGAN TELEPON SELULER ............................................... 75
5.
E-COMMERCE DI INTERNET DAN SSL ............................................................ 76
6.
PENGAMANAN E-MAIL DENGAN PGP (PRETTY GOOD PRIVACY) ........ 77
1.
SEJARAH STEGANOGRAFI
.............................................................................. 78
2.
PERSOALAN TAHANAN PENJARA .................................................................. 79
3.
KONSEP DAN TERMINOLOGI
.......................................................................... 80
4.
TEKNIK PENYEMBUNYIAN DATA ................................................................. 80
5.
WATERMARKING ................................................................................................. 82
6.
JENIS – JENIS IMAGE WATERMARKING......................................................... 84
7.
APLIKASI IMAGE
WATERMARKING ............................................................. 85
8.
METODE IMAGE WATERMARKING ................................................................. 86
9.
WATERMARKING PADA MEDIA DIGITAL LAIN ......................................... 88
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
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.
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 :
pi : 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
ci
: 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 pi
menjadi ci dengan aturan:
ci = E(pi) = (pi
+ 3) mod 26 (1)
dan dekripsi chiperteks ci
menjadi pi dengan aturan:
pi = D(ci) = (ci – 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
ci = E(pi) = (pi + k) mod 26 (3)
dan fungsi dekripsi adalah
pi = D(ci) = (ci – k) mod 26 (4)
Catatan:
- Pergeseran
0 sama dengan pergeseran 26 (susunan huruf tidak berubah)
- 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).
- Karena ada
operasi penjumlahan dalam persamaan (3) dan (4), maka caesar chiper
kadang-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 Vigènere pada abad
16. Sudah berhasil dipecahkan pada Abad 19.Vigènere Cipher menggunakan Bujursangkar Vigènere 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. Vigènere 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 dan trigrams. 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
ini dikenal luas karena cara kerjanya mudah dimengerti dan dijalankan, dan bagi
para pemula sulit dipecahkan. Pada saat kejayaannya, sandi ini dijuluki le chiffre indéchiffrable (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 Vigenère. Metode ini dinamakan tes Kasiski karena Friedrich Kasiski-lah
yang pertama mempublikasikannya.
Sandi Vigenère 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 Vigenère terdiri dari beberapa sandi Caesar
dengan nilai geseran yang berbeda.
Untuk menyandikan suatu pesan,
digunakan sebuah tabel alfabet yang disebut tabel Vigenère (gambar). Tabel Vigenère 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 Vigenère, 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 Vigenère 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 2n
– 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 besaran vektor 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 = gK(Z)
sehingga
proses enkripsi dan dekripsi didefinisikan sebagai
C = P Å K = P Å gK(Z)
P = C Å K = C Å gK(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 (C1 dan C2)
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:
C1 Å C2 = (P1
Å K ) Å (P2 Å K)
= (P1 Å P2 ) Å (K Å K)
= (P1
Å P2 ) Å 0
= (P1 Å P2 )
P1 dan P2 dapat diperoleh
dengan mudah. Selanjutnya, XOR-kan salah satu plainteks dengan cipherteksnya
untuk memperoleh bit-aliran-kunci K yang berkoresponden:
P1 Å C1 = P1 Å (P1 Å 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 = Cií1) 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 cipher
aliran.
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