Langsung ke konten utama

Prinsip Perancangan Block Cipher(zaidan 4C-2103015040)

 

Prinsip Perancangan Block Cipher




zaidan davin arrafi/4C
2103015040

Kriptografi 



Beberapa teknik yang digunakan dalam block cipher antara lain:

1)Cipher Berulang

Pada teknik cipher berulang (iterated cipher), blok plaintext mengalami pengulangan fungsi transformasi beberapa kali untuk mendapatkan blok ciphertext. Fungsi transformasi pada umumnya merupakan gabungan proses substitusi, permutasi, kompresi, atau ekspansi terhadap blok plaintext. Sebuah kunci pada setiap putaran (round key) akan dikombinasikan dengan plaintext. Parameter dalam cipher ini adalah jumlah putaran r, besar blok n, dan besar kunci k. Sub-kunci Ki pada setiap putaran diperoleh dari penurunan kunci input K.

2)Fiestel Cipher

Fiestel cipher beroperasi terhadap panjang blok data tetap sepanjang n (genap), kemudian membagi 2 blok tersebut dengan panjang masing-masing n/2, yang dinotasikan dengan L dan R. Fiestel cipher menerapkan metode cipher berulang dengan masukan pada putaran ke-i yang didapat dari keluaran sebelumnya. Secara matematis dapat dinyatakan sebagai berikut:

Li = Ri – 1

Ri = Li – 1 XOR f(Ri – 1, Ki) ; i = 1,2,3,…r

Ki adalah kunci untuk putaran ke-I dan f adalah fungsi transformasi.

Blok plaintext adalah gabungan L dan R awal atau secara formal plaintext dinyatakan dengan (Lo,Ro). Sedangkan blok ciphertext didapatkan dari L dan R hasil putaran terakhir setelah terlebih dahulu dipertukarkan atau secara formal ciphertext dinyatakan dengan (Rr,Lr).

3)Avalanche


Pada blok cipher, perubahan satu buah bit dapat menghasilkan perubahan lebih dari satu bit setelah satu putaran, lebih banyak lagi bit berubah untuk putaran berikutnya. Hasil perubahan tersebut dinamakan sebagai avalanche effect. Sebuah algoritma kriptografi memenuhi kriteria avalanche effect apabila satu buah bit input mengalami perubahan, maka probabiltas semua bit berubah adalah setengahnya. Avalanche effect merupakan salah satu karakteristik yang menjadi acuan untuk menentukan baik atau tidaknya sebuah algoritma kriptografi.

Perancangan algoritma kriptografi simetri cipher blok dapat mempertimbangkan beberapa prinsip berikut ini:


1.Confussion

Prinsip ini menyembunyikan hubungan apapun yang ada antara plainteks, cipherteks, dan kunci. Hal ini akan membuat kriptanalis frustasi untuk mencari pola-pola statistik yang muncul pada cipherteks.

2.Diffusion

Prinsip ini menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin cipherteks. Hal ini juga akan menyembunyikan hubungan statistic antara plainteks, cipherteks, dan kunci.

3.Iterated Cipher

Fungsi transformasi sederhana yang mengubah plainteks menjadi cipherteks diulang beberapa kali. Pada setiap putaran digunakan sub-kunci atau kunci putaran yang dikombinasikan dengan plainteks.

4.Feistel Network

Prinsip ini merupakan model jaringan yang membuat algoritma kriptografi menjadi reversible. Hal ini akan membuat kriptografer tidak perlu membuat algoritma baru untuk mendekripsi cipherteks menjadi plainteks.

5.Weak Key

Cipher blok yang bagus tidak memiliki kunci lemah (weak key). Kunci lemah adalah kunci yang menyebabkan tidak adanya perbedaan antara enkripsi dan dekripsi. Dekripsi terhadap cipherteks tetap menghasilkan plainteks semula, namun enkripsi dua kali berturut-turut pada plainteks akan menghasilkan kembali plainteksnya.

6.S-Box

Kotak-S (S-Box) adalah matriks yang berisi subtitusi sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit yang lain. Perancangan kotak-S menjadi isu penting dalam perancangan cipher blok karena kotak-S harus dirancang sedemikian rupa sehingga kekuatan kriptografinya bagus dan mudah untuk diimplementasikan.


Deskripsi mengenai Catfish…

Ide dasar dari algoritma Catfish ini adalah Blowfish, hanya saja input plaintext yang diperlukan lebih panjang dua kali yaitu 128-bit. Catfish terdiri dari Double Leght Encryption dengan enkripsi yang digunakan adalah blowfish dan fungsi Whitening. Diharapkan dengan menggunakan kedua teknik ini tidak hanya memudahkan menyandi plaintext yang besar tapi juga aman, khususnya untuk meet-in-the-middle-attack. Secara umum Catfish menggunakan 3 kunci. Kunci 1 dan 2 yang digunakan dalam fungsi Whitening dan kunci 3 yang digunakan dalam semua penyandian mengunkan algoritma blowfish. Complier yang digunakan unutk algorima ini adalah Dev C++. Untuk source code dari catfish dapat didapat pada catfish.c yang akan dilampirkan. Berikut penjelasan lebih jauh mengenai Catfish.


1.Blowfish


Blowfish merupakan algoritma yang dirancang oleh Bruce Scneier. Blowfish merupakan 64-bit block cipher dengan panjang kunci yang bervariasi. Terdiri dari 2 bagian, yaitu:

a.Key Expansion = mengkonversi kunci sampai 448 bit menjadi beberapa subkey yang terdiri dari 4168 byte


b.Data Encryption = terdiri dari fungsi sederhana yang diiterasi sebanyak 16 kali. Setiap round mempunyai permutasi key-dependent dan subtitusi key-and-data-dependent. Semua operasi merupakan penambahan dan XOR pada 32-bit word. Operasi tambahan lainnya adalah empat data lookup array yang berindeks.


P-array terdiri dari 18 32-bit subkey. P_array orginal adalah nilai P yang pertama kali dipakai. S-Box sebanyak 4 buah, yang masing-masing mempunyai masukan 256 dengan panjang 32-bit word. S-Box original merupakan inisialisasi pertama dari semua S-Box yang digunakan dalam blowfish. Baik nilai pada P-array dan S-Box didapatkan dari digit hexadesimal π.

Blowfish merupakan Feistel Network yang terdiri dari 16 round. Fungsi F: Bagi Xl ( setengah bagian kiri ) menjadi 4 sehingga masing-masing terdiri dari 8-bit: a, b, c, d. F (Xl) = ((S1.a + S2.b mod 232) XOR S3.c ) + S4.d mod 2^32. Dekripsi Blowfish sama seperti enkripsinya, kecuali P-array digunakan mulai dari P18 sampai P1.


2.Key Schedule

Keseluruhan kunci yang digunakan adalah 3 buah, K1,K2 dan K3. K1 dan K2 digunakan dalam proses Whitening yang akan dijelaskan kemudian, sedangkan K3 digunakan sebagai kunci pada enkripsi dan dekripsi blowfish.


3.Whitening

Proses Whitening adalah teknik untuk meng-XOR-kan material kunci denngan input yang akan dimasukkan dalam algoritma blok cipher. Whitening digunakan untuk mencegah kripanalisis untuk mendapatkan pasangan plaintext dan ciphertext terhadap algoritma yang digunakan. Whitening tidak hanya memaksa kripanalisis untuk menebak kunci pada algoritma tersebut tapi juga nilai dari whitenignya. Sangat disarankan nilai yang digunakan harus random, sehingga kripanalis makin susah untuk menebak keseluruhan kunci yang digunakan.

C = K1 XOR EK3 (P XOR K2)

P = K2 XOR EK3 (C XOR K1)

Jika K1=K2 maka dengan brute force attack membutuhkan operasi sebanyak 2n+m/p, dengan n adalah panjang kunci, m panjang blok dan p adalah banyaknya plaintext yang diketahui. Jika K1 tidak sama dengan K2 dengan brute force attack membutuhkan 2n+m+1 operasi dengan 3 plaintext yang diketahui.


4.Double Length Blowfish


Double Length Blowfish adalah blowfish yang dimodifikasi dengan teknik doubling block Length. Teknik ini tidak hanya meperbesar ukuran suatu blok namun juga dapat digunakan sebagai Triple Encryption. Walaupun rancangan seperti ini memungkinkan adanya kelemahan yang tersembunyi, sama seperti Triple Encryption.

Untuk plaintext yang besar, dengan menggunakan 64-bit memang mempunyai difusi tang baik, namun sulit untuk menyembunyikan pola dari algoritma yang digunakan. Karena itulah ide dari teknik ini muncul yaitu menggandakan panjang blok dengan menggunakan enkripsi secara berkali-kali. Pada Catfish untuk doble Length sendiri hanya menggunakan 3 round. Banyak round yang digunakan dapat lebih banyak namun semakin banyak round maka waktu untuk mengenkripsipun semakin panjang.


5.Encryption-Decryption Function


Plaintext, K1, K2, ciphertext semuanya sepanjang 128-bit. K3 panjangnya bervariasi (sama seperti blowfish). Untuk enkripsi XOR plaintext dengan K2, kemudian masukkan dalam fungsi enkripsi double Length blowfish dan yang terakhir XOR dengan K1. Untuk dekripsi dapat dilakukan dengan XOR K1 dengan ciphertext, masukkan hasilnya ke fungsi dekripsi double Length blowfish, kemudian XOR dengan K2.


Analisanya…

Pada algoritma Catfish ini digunakan prinsip confuse dan diffusion sehingga diperoleh teks sandi yang tidak mempunyai korelasi antara teks terang, teks sandi, maupun pada kunci yang digunakan. Hal ini terlihat dengan digunakannya Blowfish sebagai pusat dari algoritma ini. Pada algoritma ini juga digunakan suatu iterated cipher dengan menggunakan jaringan feistel. Penggunaan sistem Feistel menyebabkan algoritma ini tidak memerlukan fungsi invers untuk melakukan dekripsi teks sandi.

Selama algoritma ini dibuat, penulis belum menemukan adanya weak key, sehingga masih diperlukan pengkajian ulang mengenai algoritma ini. Sebagai contoh dengan plaintext 0 semua dan K1 dan K2 0 semua juga, K3 AAAAAAA dihasilkan:

whitening+enkripsi=6B49B1BB 380B8EB9 4F4A7C97 3CBE2DF4

Kecepatan Catfish dengan K3 sepanjang 7 karakter, K1 = 0x1234567812345678 dan K3 = 0x8765432187654321 dengan plaintext bernilai 0 semua (dalam hexa) sebanyak 10.000 kali dan dapat dilihat dibawah ini:

Waktu Proses baris pertama tiap nomor

Kecepatan Proses baris kedua tiap nomor

1)0.046000000 detik

13914434.782608695 bit/detik

2)0.046000000 detik

13914434.782608695 bit/detik

3)0.046000000 detik

13914434.782608695 bit/detik

4)0.062000000 detik

10323612.903225806 bit/detik

5)0.062000000 detik

10323612.903225806 bit/detik

6)0.046000000 detik

13914434.782608695 bit/detik

7)0.062000000 detik

10323612.903225806 bit/detik

8)0.046000000 detik

13914434.782608695 bit/detik

9)0.046000000 detik

13914434.782608695 bit/detik

10)0.046000000 detik

13914434.782608695 bit/detik


sumber:https:https://onlinelearning.uhamka.ac.id/my/





Komentar

Postingan populer dari blog ini

Kriptografi dan Keamanan Informasi zaidan davin arrafi/4C

  Kriptografi dan Keamanan Informasi  zaidan davin arrafi 2103015040 Apa itu Kriptografi? Kriptografi adalah praktik melindungi informasi melalui penggunaan algoritme kode,  hash , dan tanda tangan. Informasi dapat dalam keadaan diam (seperti  file  pada  hard drive ), bergerak (seperti komunikasi elektronik yang dipertukarkan antara dua pihak atau lebih), atau sedang digunakan (saat menghitung data). Kriptografi memiliki empat tujuan utama: Kerahasiaan  – Membuat informasi hanya tersedia untuk pengguna yang berwenang. Integritas  – Memastikan bahwa informasi tidak dimanipulasi. Autentikasi  – Mengonfirmasi keaslian informasi atau identitas pengguna. Antipenyangkalan  – Mencegah pengguna menolak komitmen atau tindakan sebelumnya. Apa kegunaan dari kriptografi? Kriptografi berakar pada pengiriman informasi sensitif antara tokoh militer dan politik. Pesan dapat dienkripsi sehingga tampak seperti teks acak bagi siapa pun kecuali penerima ya...

tugas 1 zaidan OAK2A22TI

  ZAIDAN DAVIN ARRAFI jumat,11 maret 2022 tugas 1 zaidan OAK2A22TI KONTRAK BELAJAR OAK2A22TI 1.  Perkuliahan ini dengan Bobot 3 SKS, diselenggarakan tiap Hari Jumat, Jam 07.50 - 10.20. 2.  Mohon untuk selalu membaca doa sebelum dan setelah belajar.  3.  Mohon mengisi daftar hadir  paling lambat 30 menit setelah jadwal dimulai, pada hari dan tanggal perkuliahan dijadwalkan.  5. Perkuliahan direncanakan dilaksanakan 16 pertemuan termasuk UTS dan UAS. 6. Penilaian akhir dilakukan menggunakan formula : 10 % Keaktifan ; 20 % Tugas ; 30 % UTS ; 40 % UAS. 7. Keaktifan terdiri dari absen dan ketepatan waktu mengerjakan Tugas 8.  Setiap mahasiswa diwajibkan memiliki BLOG PRIBADI untuk mengerjakan tugas kuliah. 9. Bagi yang sebelumnya sudah punya BLOG PRIBADI dianjurkan untuk menggunakan BLOG PRIBADI yang sudah lama tersebut. 10. Bagi yang belum punya silahkan membuat BLOG berbasis BLOG SPOT dengan berbasis gmail.  11. Mahasiswa diwajibkan mengiku...

Tugas 3 Struktur & Fungsi Komputer zaidan/2103015040

  zaidan davin arrafi jumat,25 maret 2022 Organisasi dan Arsitektur Komputer Organisasi komputer mempelajari bagian yang terkait dengan unit-unit operasional komputer dan hubungan antara komponen sistem komputer,contoh : sinyal kontrol, prosesor, interface komputer dan peripheral, teknologi memori yang digunakan.   Arsitektur komputer mempelajari atribut-atribut sistem komputer yang terkait dengan seorang programmer dan memiliki dampak langsung pada eksekusi logis sebuah program, contoh : set instruksi, jumlah bit yang digunakan untuk merepresentasikan bermacam-macam jenis data (misal bilangan, karakter), aritmetika yang digunakan, teknik pengalamatan, mekanisme I/O.    KOMPUTER SEBAGAI MESIN 6 LEVEL   Pada level 1 – 3 merupakan bahasa mesin bersifat numerik. Program-program didalamnya terdiri dari deretan angka yang panjang, yang tidak menjadi masalah untuk mesin tapi merupakan persoalan untuk manusia. Mulai pada level 4 bahasa berisi kata/singkatan yang mempun...