• Tidak ada hasil yang ditemukan

Menurut Stephen Herlambang dalam makalah “Studi dan Analisis Grain Cipher”,tahun 2011 menyatakan bahwa LFSR adalah shift register yang bit masukannya merupakan fungsi linear dari state sebelumnya. Satu-satunya fungsi linear pada bit satuan exclusive-or XOR, oleh karena itu LFSR adalah shift register yang bit masukannya dibangkitkan oleh exclusive-or (XOR) dari bit dari keseluruhan nilai shift register.[14]

Inisial value dari LFSR dikenal dengan seed, dan karena operasi dari register bersifat deterministik, aliran nilai yang dihasilkan oleh register akan sepenuhnya ditentukan oleh state sekarang atau sebelumnya. Dengan begitu karena register memiliki jumlah state yang terbatas pasti akan terbentuk siklus yang berulang, akan tetapi LFSR yang memiliki fungsi umpan balik yang baik dapat memproduksi sekuens bit yang tampak acak dan memiliki siklus yang sangat penting [3].

Linear Feedback Shift Register (LFSR) adalah suatu mekanisme untuk menghasilkan sekuens bit biner. Register memiliki sebarisan sel yang ditentukan oleh vektor inisialisasi yakni, biasanya, menjadi kunci rahasia. Tingkah laku register diatur oleh sebuah counter (clock). Pada setiap saat isi sel dari register digeser (shift) ke kanan sejauh satu posisi, dan hasil operasi XOR terhadap subset dari isi sel ditempatkan pada sel paling kiri. Satu bit dari output biasanya diturunkan selama prosedur ini. Pada sebuah algoritma stream cipher berbasis LFSR dengan menggunakan n stages maka jumlah variasi kemungkinan kunci input adalah 2n-1. Karena fungsi feedback yang digunakan adalah polinomial karakteristik yang primitif, maka dapat diketahui periode maksismumnya adalah 2n-1.Penggunaan LFSR ini sendiri tidak menjamin tersedianya tingkat keamanan yang tinggi. Beberapa skema lainnya telah diusulkan untuk meningkatkan keamanan dari LFSR ini[11].

Untuk memperoleh LFSR dengan periode maksimal, fungsi feedback yang digunakan harus polinomial primitive modulo2. Contoh polinomial primitif yaitu x4 + x + 1.Degree (derajat) polinomial adalah panjang dari shift register. Suatu polinomial primitif dengan degree n adalah polinomial irreducible yang membagi xm + 1, dengan m = 2n – 1, tetapi tidak membagi

xd + 1 untuk setiap d yang membagi 2n – 1.

Perbedaan LFSR dengan NLFSR. Berikut ini adalah beberapa perbedaan antara Linear Feedback Shift Register dengan non Linear Feedback Shift Register:

1. Fungsi feedback dari NLFSR tidak dapat ditulis dalam bentuk umum seperti pada LFSR.

2. Fungsi feedback dari LFSR sering dinyatakan dalam bentuk persamaan polinomial khusus (characteristic polynomial), sedangkan fungsi feedback pada NLFSR tidak dapat direpresentasikan dalam bentuk fungsi polinomial khusus karena lebih kompleks.

3. Pada LFSR panjang periode maksimal yang dapat dicapai adalah 2n-1, sedangkan pada NLFSR dapat mencapai 2n untuk n variabel.

4. Dalam NLFSR, operasi yang digunakan tidak hanya penjumlahan seperti pada LFSR, tetapi juga perkalian.

5. Pada LFSR, kompleksitas linier yang diperoleh maksimal adalah n, sedangkan pada NLFSR dibatasi hingga 2n, sehingga kompleksitas liniernya lebih besar. 6. Karena tingkat kompleksitas liniernya lebih tinggi maka sifat konfusi pada

NLFSR lebih baik daripada LFSR, yang merupakan salah satu faktor penguat NLFSR terhadap upaya kriptanalisis.

0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1

X

Linear Feedback Shift Register (LFSR) sering digunakan oleh Stream cipher sebagai pembangkit keystream.

Register geser umpan-balik atau Feedback Shift Register (FSR) terdiri dari dua bagian:

1. Register Geser, yaitu barisan bit-bit yang panjangnya n- bit. Register geser disebut juga sebagai register geser n bit.

2. Fungsi Umpan-balik, yaitu fungsi yang menerima masukan dari register geser dan mengembalikan nilai fungsi ke register geser.

bn bn-1 …... b4 b3 b2 b1 Register Geser

Fungsi umpan-balik

Gambar 2.6 Bagian-bagian FSR

Tiap kali sebuah bit dibutuhkan, semua bit didalam register digeser 1 bit ke kanan. Bit paling kiri (bn) dihitung sebagai fungsi bit-bit lain didalam register tersebut. Keluaran dari register adalah 1 bit (yaitu bit b1 yang tergeser).Periode register geser adalah panjang barisan keluaran sebelum ia berulang kembali. Suatu shift register cascade merupakan sebuah set dari LFSR yang dihubungkan bersama-sama dengan cara tertentu sedemikian hingga perlakuan dari LFSR sebelumnya dalam bentuk yang menyrupai air terjun[10] [11]. Sifat dan tingkah laku yang saling tergantung ini biasanya ditempuh dengan menggunakan satu LFSR untuk mengontrol LFSR lainnya. LFSR yang digunakan dapat terbagi 2 jenis, yaitu :

1. LFSR yang selalu aktif.

Beberapa jenis generator yang aktif didalam LFSR adalah :

1. Geffe Generator. Generator ini menggunakan tiga atau lebih LFSR. Keluaran-keluaran dari generator ini dikombinasikan secara nonliniear

LFSR-n+1 Multiplexern-to-1

Select

LFSR-1 LFSR-2

LFSR-3 Bit(t)

Gambar 2.7 Sketsa Geffe Generator

2. Jennings Generator. Generator ini menggunakan sebuah multiplexer untuk mengkombinasikan dua buah LFSR. Multiplexer dikontrol oleh LFSR-1, memilih 1 bit dari LFSR-2 untuk setiap output bit.

3. Threshold Generator.

4. Multispeed-Inner-Product Generator 5. Gollmann Cascade Generator

Generator yang akan selalu aktif setelah di-clock adalah ; 1. Beth-Piper Stop – and – Go Generator

2. Alternating Stop – and – Go Generator 3. Bilateral Stop – and – Go Generator 4. Self – Decimated Generators

bn bn-1 …... b4 b3 b2 b1

Register Geser

Bit keluaran

b4 b3 b2 b1

Bit Keluaran

Gambar 2.9 LFSR 4-bit

Gambar 2.9 adalah contoh LFSR 4-bit, yang dalam hal ini fungsi umpan-balik meng-XOR-kan b4 dan menyimpan hasilnya di b4.

Register geser dengan umpan balik linier, Prosesnya adalah: 1. S1 sampai S4 diisi oleh bit-bit yang sudah ditentukan 2. Tahap pertama, S1 dan S4 akan di XOR- kan

3. S1-S4 digeser ke kanan sepanjang satu bit 4. Bit pertama akan dijadikan output

5. Bit hasil XOR antar S1 dan S4 (sebelum digeser) akan dimasukkan ke S4

Contoh:

Pergeseran sebanyak 20 kali, S4 akan mengisi sampai S1 dengan nilai 1110 ---

| Tahap ke- | S4 S3 S2 S1 | Output | --- | 0 | 1 1 1 0 | |<-| ---> 0 | | | 1 | 1 1 1 1 | |<---| ---> 1 | | | | 2 | 0 1 1 1 | |<---| ---> 1 | | | | | 3 | 1 0 1 1 | |<---|

---> 1 | | | | | | 4 | 0 1 0 1 | |<---| ---> 1 | | | | | | | 5 | 1 0 1 0 | |<---| ---> 0 | | | | | | | | 6 | 1 1 0 0 | | | | | | | |

---> 0 | | | | | | | Setelah 14 kali tahap | 7 | 1 1 1 0 | | | | | | | | pergeseran maka ---> 0 | | | | | | | periodenya akan | 8 | 1 1 1 1 | | | | | | | | berulang. ---> 1 | | | | | | | | 9 | 0 1 1 1 | | | | | | | | ---> 1 | | | | | | | | 10 | 1 0 1 1 | | | | | | | | ---> 1 | | | | | | | | 11 | 0 1 0 1 | | | | | | | | ---> 1 | | | | | | | | 12 | 1 0 1 0 | | | | | | | | ---> 0 | | | | | | | | 13 | 1 1 0 1 | | | | | | | | ---> 1 | | | | | | | | 14 | 0 1 1 0 | | | | | | | | ---> 0 | | | | | | | | 15 | 0 0 1 1 | <--- |<-| | | | | | | 16 | 1 0 0 1 | <--- |<---| | | | | | 17 | 0 1 0 0 | <--- |<---| | | | | 18 | 0 0 1 0 | <--- |<---| | | | 19 | 0 0 0 1 | <--- |<---| | | 20 | 1 0 0 0 | <--- |<---| ---

Didalam LFSR ini, tidak akan pernah muncul bit 0000 karena bit tersebut tidak akan berguna [6]. LFSR diatas yang hanya sepanjang 4 bit, periodenya akan berulang ketika pergeseran ke-15.Untuk menghitung periode maksimum sebuah LFSR digunakan rumus di bawah ini:

Periode = 2 ^ n – 1 Dimana:

2.3.1. OPERASI NOT

Beberapa dengan operasi logika yang lain, operasi NOT hanya mempunyai satu input dan satu output.

Tabel 2.4 Kebenaran dari operasi NOT

A Ᾱ

0 1

1 0

Keterangan :

A : Input operasi logika NOT Ᾱ : Output operasi logika NOT 1 : Nilai logika benar (true) 0 : Nilai logika salah (false)

2.3.2 Operasi AND

Operasi AND mempunyai dua input dan satu input. Operasi AND dari dua input A dan B hanya akan bernilai logika 1, apabila kedua input A dan B bernilai logika 1, atau dengan kata lain output dari operasi AND akan memiliki nilai logika 0.

Tabel 2.5 Kebenaran dari operasi AND

A B AB

0 0 0

0 1 0

1 0 0

Keterangan :

A,B : Input operasi logika AND AB : Output operasi logika AND 0 : Nilai logika benar (true) 1 : Nilai logika salah (false)

2.3.3. Operasi OR

Operasi OR mempunyai dua input dan satu output. Operasi OR dari dua input A dan B hanya akan bernilai logika 0, apabila kedua input A dan B bernila logika 0, atau dengan kata lain output dari operasi OR akan memiliki nilai logika 1, apabila salah satu inputnya bernilai 1.

Tabel 2.6 Kebenaran operasi OR

A B A˅B 0 0 0 0 1 1 1 0 1 1 1 1 Keterangan:

A,B : Input operasi logika OR A+B : Output operasi logika OR 0 : nilai logika benar (true) 1 : nilai logika salah (false)

2.3.4 Operasi XOR

XOR adalah operasi Exclusive-OR yang dilambangkan dengan tanda “⊕”. Operasi XOR akan menghasilkan nilai bit “0” (nol) jika meng-XOR-kan dua buah bit yang sama nilainya dan akan menghasilkan nilai bit “1” (satu) jika meng-XOR-kan dua

buah bit yang masing – masing nilai bitnya berbeda. Aturan yang berlaku untuk operasi XOR dapat dilihat pada Tabel 2.1 berikut ini,

Tabel 2.7 Aturan Operasi XOR

A B A ⊕B

0 0 0

0 1 1

1 0 1

1 1 0

Nilai A jika di-XOR-kan dengan nilai B sebanyak dua kali maka akan didapatkan nilai A kembali. Karena sifat istimewa yang dimiliki operasi XOR tersebut sehingga operasi XOR cenderung dipakai dalam proses enkripsi dan dekripsi yang memiliki algoritma yang sama.

P ⊕ K = C ; C ⊕ K = P Keterangan:

P = Plaintext K = Key C = Ciphertext

Berikut ini adalah contoh operasi XOR : 1101 1001 1001 1101 1110 1000 1110 0000 ⊕ 0001 0001 0111 1101 1010 0010 1110 1011 1111 0101 0001 0110 ⊕ 0101 0111 1111 1101

Dokumen terkait