1 Pengenalan Algoritma D’JAZT Cipher
Kekuatan algoritma stream cipher terletak pada keacakan rangkaian kunci yang dihasilkan bukan tergantung pada kerahasiaan algoritmanya. Proses enkripsi pada stream cipher umumnya hanya meng-XOR plaintext dengan rangkaian kunci stream yang dihasilkan dari algoritma pembangkitan kunci.
Proses pembangkitan rangkaian kunci stream cipher yang berorientasi pada bit dengan menggunakan operasi Linier Feedback Shift Register (LFSR) akan menghasilkan rangkaian kunci yang sangat mudah diinverskan, sehingga algoritma ini dapat dikatakan lemah. Oleh karena itu diperlukan fungsi-fungsi tambahan, sehingga operasi pengacakan rangkaian kunci outputnya menjadi fungsi Non-Linear Feedback Shift Register(NLFSR), hal ini penting untuk dilakukan agar dalam pembangkitan rangkaian kunci outputnya tidak mudah untuk diinverskan, selain itu periode rangkaian kuncinya juga akan bertambah panjang. Untuk mengatasi masalah tersebut kami mencoba membuat algoritma stream cipher yang kami beri nama D’JAZT berbasiskan NLFSR dan berorientasi pada byte (8-bit). Hal ini dimaksudkan agar rangkaian kunci yang dihasilkan memiliki keacakan yang baik, panjang periode yang maksimum dan yang terakhir adalah cepat secara komputasi.
2 Algoritma D’JAZT Stream Cipher
Algoritma D’JAZT adalah algoritma Synchronous Stream Cipher yang berbasis NLFSR. Algoritma ini berorientasi pada byte (8-bit). Algoritma ini terdiri atas bagian pembangkitan rangkaian kunci dengan penambahan fungsi F. Bagian pembangkitan rangkaian kunci ini terdiri atas 2 buah LFSR (R1 dan R2), yang mempunyai nilai state yang berlainan dengan output dari masing-masing LFSR di-XOR untuk menghasilkan rangkaian kunci. Tiap LFSR terdiri atas 8-stages yang masing-masing stagesnya berisi 8-bit. State-state tersebut melalui peng-XORan dan penjumlahan modulo 28, serta perkalian modulo 28.
Algoritma ini menggunakan 2 buah LFSR, dimana fungsi yang digunakan ialah fungsi polynomial primitive, sehingga output yang dihasilkan oleh masing-masing LFSR maksimal. Shift register R1 sama dengan shift register R2. Operasi yang digunakan di tiap LFSR terdiri dari fungsi XOR, penjumlahan, perkalian, dan pergeseran. Operasi ini menggunakan modulo 28. Operasi XOR pada LFSR didasarkan pada persamaan polynomial-polinomial sebagai berikut:
R1 : x7 + x + 1
R2 : x4+ x3 + 1
R3 : x5 + x2 +1
R4 : x6 + 1
Dimana fungsi penjumlahan:
S1(x) = R1 + R2 (mod 28 )
S2(x) = R3 + R4 (mod 28)
Selanjutnya Output dari S1 akan masuk ke dalam fungsi F dan mengalami pergeseran setiap bitnya. S1 akan melakukan pergeseran ke kiri sebanyak 3kali dan ke kanan sebanyak 5 kali dari output awal S1. Lalu, output dari fungsi F ini akan dikalikan dengan output dari S2, dan menghasilkan feedback dari LFSR tsb. Untuk Skema dari fungsi F dapat dilihat pada gambar
Rangkaian kunci stream yang dihasilkan dari algoritma ini didapatkan dari peng-XORan output dari masing-masing LFSR. Rangkaian kunci yang dihasilkan berjumlah 8 byte atau 64 bit. Rangkaian kunci ini diharapkan memenuhi standar keacakan kunci dengan uji statistik, dan dapat menghasilkan periode yang maksimum
Parameter:
a. Periode rangkaian kunci yang dihasilkan harus maksimum
Bagian pembangkit kunci pada algoritma D’JAZT cipher adalah NLFSR, hal ini penting untuk dilakukan agar dalam pembangkitan rangkaian kunci outputnya tidak mudah untuk diinverskan, selain itu periode rangkaian kuncinya juga akan bertambah panjang. NLFSR berasal dari 2 buah LFSR, dimana fungsi yang digunakan ialah fungsi polynomial primitive, sehingga output yang dihasilkan oleh masing-masing LFSR maksimal. NLFSR juga berorientasi pada byte (8-bit), hal ini dimaksudkan agar rangkaian kunci yang dihasilkan memiliki keacakan yang baik dan panjang periode yang maksimum.
b. Rangkaian kunci yang dihasilkan harus random
Rangkaian kunci yang dihasilkan algoritma D’JAZT cipher dapat dikatakan random, karena menggunakan NLFSR. NLFSR menggunakan operasi XOR, penjumlahan, perkalian, pergeseran modulo 28 sebagai feedback yang menambah keacakan pada NLFSR.
c. Nonlinearity
Nonlinearity pada algoritma D’JAZT cipher terletak pada NLFSR. Sebagai feedback, operasi yang digunakan di tiap LFSR terdiri dari fungsi XOR, penjumlahan, perkalian, dan pergeseran. Operasi ini menggunakan modulo 28. Operasi XOR pada LFSR didasarkan pada persamaan polinomial-polinomial primitive yang digunakan untuk mencegah pola.
d. Untraceable
Salah satu syarat algoritma synchronous stream cipher yang baik adalah cryptanalis tidak dapat dengan mudah mendapatkan key input dengan hanya mendapatkan encryption key. Algoritma stream cipher D’JAZT cipher menggunakan NLFSR yang tidak mudah untuk diinverskan, sehingga ketika seorang cryptanalis ingin mentrace kembali bit input dari key generator, maka dia harus mengetahui dahulu fungsi-fungsi polinomial dan operasi-operasi yang ada dan menginversikannya. Selain itu algoritma D’JAZT cipher yang juga berbasis NLFSR menggunakan fungsi-fungsi nonlinear, hal ini tentu saja mempersulit cryptanalist melakukan attack.
e. No Error Propagation
Karena algoritma D’JAZT cipher merupakan algoritma synchronous stream cipher, maka kesalahan dekripsi satu ciphertext hanya akan mempengaruhi plaintext yang bersesuaian, tidak akan berpengaruh terhadap ciphertext yang lain, artinya ciphertext lain akan dapat didekripsi secara benar.
0 komentar:
Posting Komentar