b. Ciphertext terpilih : Kriptanalis memilih ciphertext, dan kemudian melalui
ciphertext itu berusaha untuk mendapatkan plaintext yang sesuai. Biasanya dilakukan untuk menyerang kriptografi sistem kunci publik.
c. Plaintext dan ciphertext diketahui : Kriptanalis mempunyai baik plaintext maupun
ciphertext-nya dan berusaha untuk mencari hubungan diantara keduanya. Biasanya dilakukan untuk menemukan kunci dan algoritma penyandiannya yang akan
berguna untuk memecahkan pesan tersandi berikutnya. Beberapa pesan biasanya terdapat format baku template yang sudah terstruktur. Format baku ini
merupakan celah yang membuka peluang untuk menerka ciphertext dari plaintext yang bersesuaian. Misalnya :
From, To, kepada, dari, perihal, di dalam sebuah e-mail Dengan hormat, wassalam, best regards, pada surat resmi.
include, program, go, di dalam source code
d. Plaintext terpilih : Kriptanalis memilih plaintext tertentu, yaitu plaintexts yang
lebih mengarahkan ke penemuan kunci, untuk disandikan dan mempelajarimembandingkan hasil sandinya ciphertext. Biasanya cara ini
digunakan untuk memecahkan sandi pada metode penyandian asimetris, yang mana kripanalis biasanya telah memiliki kunci publik-nya.
e. Ciphertext atau plaintext diketahui secara adaptif : Kriptanalis memilih blok plaintext atau ciphertext yang besar, lalu disandi, kemudian memilih blok lainnya
yang lebih kecil berdasarkan hasil serangan sebelumnya, begitu seterusnya.
f. Kunci terpilih : Kriptanalis memiliki pengetahuan mengenai hubungan antara
kunci-kunci yang berbeda, dan kemudian memilih kunci yang tepat untuk membuka pesan bersandi. Biasanya digunakan untuk mengetahui algoritma
penyandian suatu pesan.
g. Social engineering rubber-hose cryptanalysis : Mencari informasi algoritmakunci
sandi melalui kegiatan intelijen, mengancam, mengirim surat gelap, memeras
black-mail atau melakukan penculikanpenyiksaan sampai orang yang memegang kunci memberinya kunci untuk membuka pesan.
2.1.4.6 Kategori Cipher Kunci-Simetri
Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini baik pengirim maupun penerima memiliki kunci yang sama.
Algoritma kunci-simetri modern beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua kategori:
1. Cipher Aliran Stream Cipher
Algoritma kriptografi beroperasi pada plaintextciphertext dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsididekripsikan bit per bit.
Cipher aliran mengenkripsi satu bit pada setiap kali proses enkripsi.
2. Cipher Blok Block Cipher
Algoritma kriptografi beroperasi pada plaintextciphertext dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya
sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memerlukan 8 karakter setiap kali enkripsi 1 karakter =
8 bit dalam pengkodean ASCII. Cipher blok mengenkripsi satu blok bit pada setiap kali proses enkripsi. Munir, 2006
2.1.4.6.1 Mode Operasi Cipher Blok
Plaintext dibagi menjadi beberapa blok dengan panjang tetap. Beberapa mode operasi dapat diterapkan untuk melakukan enkripsi terhadap keseluruhan blok plaintext.
Empat mode operasi yang lazim diterapkan pada sistem blok cipher adalah:
1. Electronik Code Book ECB
Pada mode ini, setiap blok plainteks dienkripsi secara individual dan independen menjadi blok cipherteks . Secara matematis, enkripsi dengan mode ECB dinyatakan
sebagai
= dan dekripsi sebagai
=
yang dalam hal ini, K adalah kunci, sedangkan dan masing-masing adalah blok
plainteks dan cipherteks ke-i.
Istilah “code book” di dalam ECB muncul dari fakta bahwa blok plainteks yang sama selalu dienkripsi menjadi blok cipherteks yang sama, maka secara teoritis
dimungkinkan membuat buku kode plaintext dan ciphertext yang berkoresponden. Namun, semakin besar ukuran blok, semakin besar pula ukuran buku kodenya.
Misalkan jika blok berukuran 64 bit, maka buku kode terdiri dari -1 buah kode
entry, yang berarti terlalu besar untuk disimpan. Lagipula semua kunci mempunyai buku kode yang berbeda Munir, 2006.
Gambar 2.8 Skema enkripsi dan dekripsi dengan mode ECB
Kelebihan Mode ECB: 1.
Karena tiap blok plainteks dienkripsi secara independen, maka kita tidak perlu mengenkripsi file secara linier. Kita dapat mengenkripsi 5 blok pertama, kemudian
blok-blok di akhir, dan kembali ke blok-blok di tengah dan seterusnya. Mode ECB cocok untuk mengenkripsi arsip file yang diakses secara acak, misalnya arsip-
arsip basis data. Jika basis data dienkripsi dengan mode ECB, maka sembarang record dapat dienkripsi atau didekripsi secara independen dari record lainnya
dengan asumsi setiap record terdiri dari sejumlah blok diskrit yang sama banyaknya. Jika mode ECB dikerjakan dengan prosesor paralel multiple
processor, maka setiap prosesor dapat melakukan enkripsi atau dekripsi blok plainteks yang berbeda-beda.
2. Jika satu atau lebih bit pada blok cipherteks mengalami kesalahan, maka kesalahan
ini hanya mempengaruhi cipherteks yang bersangkutan pada waktu dekripsi. Blok- blok cipherteks lainnya bila didekripsi tidak terpengaruhi oleh kesalahan bit
cipherteks tersebut.
Kekurangan Mode ECB: 1.
Karena bagian plainteks sering berulang sehingga terdapat blok-blok plainteks yang sama, maka hasil enkripsinya menghasilkan blok cipherteks yang sama.
Misalnya kriptanalis mempelajari bahwa blok plainteks 5EB82F
dalam notasi HEX dienkripsi menjadi blok
AC209D , maka setiap kali ia menemukan
cipherteks AC209D
, ia dapat langsung mendekripsikannya menjadi 5EB82F.
2. Pihak lawan dapat memanipulasi cipherteks untuk “membodohi” atau mengelabui
penerima pesan. Manipulasi misalnya dengan menghapus atau menyisipkan beberapa buah blok ciphertext baru.
Kedua kekurangan di atas dapat diatasi dengan mengatur enkripsi tiap blok individual bergantung pada semua blok-blok sebelumnya. Dengan cara ini, blok
plaintext yang identik akan menghasilkan blok cipherteks yang berbeda.
2. Cipher Block Chaining CBC
Mode ini menerapkan mekanisme umpan-balik feedback pada sebuah blok, yang dalam hal ini hasil enkripsi blok sebelumnya di-umpan-balikkan ke dalam enkripsi
blok yang current sekarang. Caranya, blok plainteks yang current di-XOR-kan terlebih dahulu dengan blok cipherteks hasil enkripsi sebelumnya, selanjutnya hasil
peng-XOR-an ini masuk ke dalam fungsi enkripsi. Dengan mode CBC, setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya, tetapi juga pada seluruh
blok plainteks sebelumnya Munir, 2006.
Dekripsi dilakukan dengan memasukkan blok cipherteks yang current ke fungsi dekripsi, kemudian meng-XOR-kan hasilnya dengan blok cipherteks
sebelumnya. Dalam hal ini, blok cipherteks sebelumnya berfungsi sebagai umpan- maju feedforward pada akhir proses dekripsi.
Gambar 2.9 Skema enkripsi dan dekripsi dengan mode CBC
Secara matematis, enkripsi dan dekripsi dengan mode CBC dinyatakan sebagai =
=
Pada enkripsi blok pertama, = IV initialization vector. IV dapat diberikan
oleh pengguna atau dibangkitkan secara acak oleh program. Jadi, untuk menghasilkan
blok cipherteks pertama , IV digunakan untuk menggantikan blok cipherteks
sebelumnya, . Sebaliknya pada dekripsi, blok plainteks pertama diperoleh dengan
cara meng-XOR-kan IV dengan hasil dekripsi terhadap blok cipherteks pertama. IV tidak perlu rahasia. Jadi, untuk m buah blok plainteks, enkripsinya adalah:
= =
= .
. .
=
dan dekripsi m buah blok cipherteks adalah :
= =
= .
. .
=
Kelebihan Mode CBC: Karena blok-blok plainteks yang sama tidak menghasilkan blok-blok cipherteks yang
sama, maka kriptanalis menjadi lebih sulit dalam memecahkan pesan tersandi tersebut.
Kekurangan Mode CBC: Karena blok cipherteks yang dihasilkan selama proses enkripsi bergantung pada blok-
blok cipherteks sebelumnya, maka kesalahan satu bit pada sebuah blok plainteks akan merambat pada blok cipherteks yang berkoresponden dan semua blok cipherteks
berikutnya. Tetapi hal ini berkebalikan pada proses dekripsi, kesalahan satu bit pada blok cipherteks, hanya mempengaruhi blok plainteks yang berkoresponden dan satu
bit pada blok plainteks berikutnya pada posisi bit yang berkoresponden pula. Kesalahan bit cipherteks biasanya terjadi karena adanya gangguan noise saluran
komunikasi data selama transmisi atau malfunction pada media penyimpanan.
3. Cipher Feedback CFB
Pada mode CFB, data dienkripsi dalam unit yang lebih kecil daripada ukuran blok. Unit yang dienkripsikan dapat berupa bit per bit jadi seperti cipher aliran atau stream
cipher, 2 bit, 3 bit, dan seterusnya. Bila unit yang dienkripsikan satu karakter setiap kalinya, maka mode CFB-nya disebut CFB 8-bit Munir, 2006.
Gambar 2.10 Skema enkripsi dengan mode CFB
Secara umum, CFB p-bit mengenkripsi plainteks sebanyak p bit setiap kalinya, yang dalam hal ini p
≤ n ukuran blok. Dengan kata lain, CFB mengenkripsi 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 berukuran 64-bit setara dengan 8-byte.
Gambar 2.11 Skema dekripsi dengan mode CFB
Algoritma enkripsi dengan mode CFB adalah sebagai berikut:
1. Antrian diisi dengan IV initialization 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 penyimanan data. Salinan copy dari karakter cipherteks ini juga dimasukkan ke
dalam antrian menempati 8 posisi bit paling kanan antrian, dan semua byte lainnya di dalam antrian digeser ke kiri menggantikan 8 bit pertama yang sudah
digunakan. 3. Karakter plainteks berikutnya dienkripsikan dengan cara yang sama seperti pada
langkah 2. 4. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi. Baik enkripsi maupun
dekripsi, algoritma E dan D yang digunakan sama.
Perambatan kesalahan: kesalahan 1-bit pada blok plainteks akan merambat pada blok-blok cipherteks yang berkoresponden dan blok-blok cipherteks selanjutnya
pada proses enkripsi. Hal yang kebalikan juga terjadi pada proses dekripsi.
4. Output Feedback OFB
Mode OFB mirip dengan mode CFB, kecuali p-bit dari hasil enkripsi terhadap antrian disalin menjadi elemen posisi paling kanan di antrian. Dekripsi dilakukan sebagai
kebalikan dari proses enkripsi Munir, 2006.
Gambar 2.12 Skema enkripsi dengan mode OFB
Gambar 2.13 Skema dekripsi dengan mode OFB
Perambatan kesalahan: kesalahan 1-bit pada blok plainteks hanya mempengaruhi blok cipherteks yang berkoresponden saja. Begitu pula pada proses dekripsi, kesalahan 1-
bit pada blok cipherteks hanya mempengaruhi blok plainteks yang bersangkutan saja. Karakteristik kesalahan semacam ini cocok untuk transmisi analog yang di-digitasi,
seperti suara atau video, yang dalam hal ini kesalahan 1-bit dapat ditolerir, tetapi penjalaran kesalahan tidak dibolehkan.
2.1.4.7 Prinsip – Prinsip Perancangan Cipher Blok
Perancangan algoritma kriptografi yang berbasis blok mempertimbangkan beberapa prinsip berikut:
1. Prinsip Confusion dan Diffusion dari Shannon
Pada tahun 1949, Shannon mengemukakan dua prinsip properties penyandian encoding data di dalam makalahnya yang berjudul Communication Theory of
Secrecy Systems. Kedua prisnsip ini dipakai dalam perancangan cipher blok yang kuat. Kedua prinsip Shannon itu adalah :
a. Confusion
Prinsip ini menyembunyikan hubungan apapun yang ada antara plainteks, cipherteks, dan kunci. Sebagai contoh, pada cipher substitusi seperti Caesar Cipher, hubungan
antara cipherteks dan plainteks mudah diketahui, karena satu huruf yang sama pada plainteks diganti dengan satu huruf yang sama pada cipherteksnya. Akibatnya, huruf
yang paling sering muncul di dalam plainteks akan sering muncul pula di dalam cipherteksnya sehingga cipherteks tersebut mudah dipecahkan dengan teknik analisis
frekuensi. Dengan demikian kita katakan Caesar Cipher tidak menganut prinsip confusion. Karena prinsip confusion akan membuat kriptanalis frustasi untuk mencari
pola-pola statistik yang muncul pada cipherteks. Confusion yang bagus membuat hubungan statistik antara plainteks, cipherteks, dan kunci menjadi sangat rumit.
b. Diffusion
Prinsip ini menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin cipherteks. Sebagai contoh, pengubahan kecil pada plainteks sebanyak satu atau dua
bit menghasilkan perubahan pada cipherteks yang tidak dapat diprediksi. Prinsip diffusion juga menyembunyikan hubungan statistik antara plainteks, cipherteks, dan
kunci sehingga membuat kriptanalisis menjadi sangat sulit. Untuk mendapatkan keamanan yang bagus, prisnip confusion dan diffusion diulang
berkali-kali pada sebuah blok tunggal dengan kombinasi yang berbeda-beda.
2. Cipher berulang Iterated Cipher
Fungsi transformasi sederhana yang mengubah plainteks menjadi cipherteks diulang sejumlah kali. Pada setiap putaran digunakan sub-kunci subkey atau kunci putaran
round key yang dikombinasikan dengan plainteks.
3. Jaringan Feistel Feistel Network
Jaringan Feistel ditemukan oleh Horst Feistel tahun 1970. Model jaringan Feistel adalah sebagai berikut:
1. Bagi blok yang panjangnya n bit menjadi dua bagian, kiri L dan kanan R, yang
masing-masing panjangnya n2 hal ini mensyaratkan n harus genap. 2.
Defenisikan cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari hasil putaran sebelumnya, yaitu:
= f
yang dalam hal ini, i = 1,2,…,r r adalah jumlah putaran.
= sub-kunci subkey pada putaran ke-i f = fungsi transformasi di dalamnya terdapat fungsi substitusi, permutasi danatau
ekspansi, kompresi.
Plainteks adalah gabungan L dan R awal, atau secara formal dinyatakan dengan
, sedangkan cipherteks didapatkan dari L dan R hasil dari putaran terakhir setelah terlebih dahulu dipertukarkan, atau secara formal dinyatakan
sebagai .
4. Kunci lemah Weak Key
Kunci lemah adalah kunci yang menyebabkan tidak adanya perbedaan antara enkripsi dan dekripsi. Dekripsi terhadap cipherteks tetap mengahasilkan plainteks semula,
namun enkripsi dua kali berturut-turut terhadap plainteks akan menghasilkan kembali plainteksnya.
5. Kotak-S S-box
Kotak-S adalah matriks yang berisi substitusi sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit yang lain. Pada kebanyakan algoritma cipher blok,
kotak-S memetakan m bit masukan menjadi n bit keluaran, sehingga kotak-S tersebut dinamakan kotak m x n S-box.
2.2 Tiny Encryption Algorithm TEA