Social engineering rubber-hose cryptanalysis : Mencari informasi algoritmakunci

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