Anda di halaman 1dari 10

STREAM CHIPER

Materi Diskusi Kuliah Teori Pengkodean


Hari selasa pukul 16.10 WIB
Ruang Kuliah 03 - 35B103 Gedung B3 FKIP

Dosen Pengampu:
Randi Pratama Murtikusuma, S.Pd.,M.Pd.

Oleh:
Kelas B
Kelompok 6
1. Alif Rahman Nasrul 140210101046
2. Umairotul Khusna 140210101056
3. Yuni Octafia 140210101062
4. Maulidiyah Tutut Nurjanah 140210101087
5. Lilavati Vijaganita Rahma 140210101091
6. Akhmad Ulul Albab 140210101101
7. Agfa Martina 140210101105

PROGRAM STUDI PENDIDIKAN MATEMATIKA


JURUSAN PENDIDIKAN MIPA
FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN
UNIVERSITAS JEMBER
2017
KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha Esa atas segala Rahmat-Nya sehingga
makalah ini dapat diselesaikan tepat waktu. Kami ucapkan terimakasih kepada bapak Randi
Pratama S.Pd., M.Pd. yang telah membimbing kami dalam menyelesaikan makalah ini. Tidak
lupa kami juga mengucapkan banyak terimakasih atas bantuan dari pihak yang telah
berkontribusi dengan memberikan sumbangan baik materi maupun pikirannya.
Dan harapan kamik semoga makalah ini dapat menambah pengetahuan bagi para
pembaca. Untuk ke depannya dapat memperbaiki bentuk maupun menambah isi makalah
agar menjadi lebih baik lagi.
Tak ada gading yang tak retak, masih banyak kekurangan dalam makalah ini, oleh
karena itu kami sangat mengharapkan saran dan kritik yang membangun dari pembaca demi
kesempurnaan makalh ini.

Jember, 30 Mei 2017

Penyusun
STREAM CIPHER

Sebuah stream cipher adalah metode mengenkripsi teks (untuk menghasilkan


ciphertext) di mana kunci kriptografi dan algoritma diterapkan pada setiap digit biner dalam
aliran data, satu bit pada satu waktu. Metode ini tidak banyak digunakan dalam kriptografi
modern. Metode alternatif utama adalah cipher blok dimana kunci dan algoritma diterapkan
pada blok data daripada bit individual dalam arus.
Cipher Aliran (Stream Cipher)
Mengenkripsi plainteks menjadi cipherteks bit per bit (1 bit setiap kali transformasi)
atau byte per byte (1 byte setiap kali transformasi) dengan kunci keystream. Diperkenalkan
oleh Vernam melalui algoritmanya, Vernam Cipher. Vernam cipher diadopsi dari one-time
pad cipher, yang dalam hal ini karakter diganti dengan bit (0 atau 1).

1. Definisi Stream chiper


Pada cryptosystem jenis Block cipher, walaupun pada umumnya merupakan
polyalphabetic, namun pada dasarnya elemen-elemen plaintext dienkripsi menggunakan
kunci yang sama, K. String ciphertext didapat dari:
y = y1y2... = eK (x1)eK (x2)eK (x3)...
Suatu pendekatan alternatif menggunakan Stream cipher. Ide dasarnya adalah dengan
membangun sebuah keystream z = z1z2... dan menggunakannya untuk mengenkripsi string
plaintext x = x1x2... dengan aturan:
y = y1y2... = ez1(x1)ez2(x2)ez3(x3)...
Jenis stream chiper yang paling sederhana salah satunya adalah keystream, keystream
dibangun dari sebuah kunci, terlepas dari string plaintext, dengan menggunakan algoritma
yang ditentukan. Jenis stream cipher ini disebut "sinkron" dan dapat didefinisikan secara
formal sebagai berikut
Definisi 1.6:
Stream cipher adalah sebuah tupel (Ƥ,C,K,L,F,E,Ɗ), yang memenuhi sifat berikut:
1. Ƥ adalah sebuah himpunan hingga dari plaintext
2. C adalah sebuh himpunan hingga dari chipertext
3. K, ruang kunci adalah sebuah himpunan hingga dari kunci
4. ℒ adalah sebuah himpunan hingga yang disebut alphabet keystream.
5. g adalah generator keystream. g mengambil kunci K sebagai input, dan menghasilkan
string tak hingga z 1 z 2 … yang disebut dengan keystream, dimana z 1 ∈ L ∀ i≥ 1
6. Untuk setiap z ∈ L, ada rule encrypsi e z ∈ E dan berkorespondensi rule deskripsi
d z ∈ Ɗ . e z :Ƥ →C dan d z :C →Ƥ adalah fungsi serupa dari d z ( e z ( x )) =x untuk setiap
anggota plaintext x ∈ Ƥ

2. Cara Kerja Stream Cipher


Misal K 2 K adalah kunci dan x1x2x3... adalah string plaintext. Fungsi fi
digunakan untuk membangun zi , yakni elemen ke-i pada keystream, merupakan
fungsi dari kunci K dan i − 1 karakter plaintext yang pertama.
zi = fi (K, x1, x2, ..., xi−1)
Elemen keystream zi digunakan untuk mengenkripsi xi , dan mendapatkan yi = ezi
(xi ). Dengan mengenkripsi string plaintext x1x2..., kita akan berhasil menghitung:
z1, y1, z2, y2, ...
Sebaliknya, dengan mendekripsi string ciphertext y1y2..., kita akan berhasil
menghitung:
z1, x1, z2, x2, ...

3. Definisi Formal Stream Cipher


Stream cipher adalah sebuah tupel (P, C,K,L,F, E,D), yang memenuhi sifat berikut:
1) L adalah sebuah himpunan hingga yang disebut alphabet keystream.
2) F = (f1, f2, ...) adalah generator keystream. Untuk i _ 1, fi : K × Pi−1 ! L
3) Untuk setiap z 2 L, ada sebuah aturan enkripsi ez 2 E dan aturan dekripsi yang
bersesuaian, dz 2 D, sehingga dz (ez (x)) = x, 8x 2 P.
Sebuah Block cipher bisa dipandang sebagai sebuah kasus khusus dari Stream cipher
dimana keystream-nya konstan: zi = K, 8i _ 1.

4. Special Types of Stream Cipher


Stream cipher dikatakan synchronous jika keystream-nya tidak bergantung pada
string plaintext, yakni jika keystream dibangun hanya oleh kunci K.
Stream cipher dikatakan periodic dengan periode d jika Zi+d = zi , untuk semua i _ 1.
Vigenere cipher dengan panjang kunci m dapat dipandang sebagai sebuah Stream
cipher periodic dengan periode m. Dalam hal ini, K = (k1, ..., km) menyediakan m
elemen keystream pertama.
5. Implementasi Stream Cipher
Stream cipher sering dideskripsikan pada alphabet biner, yakni P = C = L = Z2.
Operasi enkripsi dan dekripsi hanya merupakan penjumlahan modulo 2.
ez (x) = x + z mod 2 dan dz (y) = y + z mod 2.

6. Contoh Konstruksi Synchronous Keystream


Jika kita menganggap 0 mewakili nilai "salah" dan 1 mewakili "benar" maka modulo
2 tambahan sesuai dengan operasi eksklusif atau operasi. Oleh karena itu, enkripsi
(dan dekripsi) dapat diterapkan secara sangat efisien dalam perangkat keras. Mari kita
lihat metode lain untuk menghasilkan keystream (sinkron). Kami bekerja dengan
huruf biner. Misalkan kita memulai dengan biner m-tupel(k1 , . . . , km) dan
membiarkan zi = ki , 1 ≤ i ≤ m. Sekarang kita menghasilkan keystream menggunakan
kekambuhan linier derajat m.
m−1
z i+m =¿ ∑ C j zi + j mod 2
j=0

Untuk semua, dimana c0, . . . , cm-1 ε z2 sebagai konstanta.


Kekambuhan ini dikatakan memiliki derajat m karena masing-masing memiliki
persyaratan m sebelumnya. Itu linier karena Zi+m merupakan kodifikasi yang
menyenangkan dari istilah sebelumnya. Perhatikan bahwa kita dapat mengambil c0 = 1
tanpa kehilangan generalitas, karena jika tidak, kekambuhan akan mencapai tingkat
(paling banyak) m-1
Di sini, kunci k terdiri dari nilai 2m k1 , . . . , km, c0, . . . , cm-1.
Jika (k1 , . . . , km) = (0 , . . . , 0)
Maka keystream seluruhnya terdiri dari 0 tentu saja, ini harus dihindari, karena
ciphertext kemudian akan identik dengan plaintext. Namun, jika konstanta c0, . . . , cm-1
dipilih dengan cara yang sesuai, maka vektor inisialisasi lainnya (k 1 , . . . , km) akan
m m
menimbulkan keystream periodik 2 - 1yang mengalami masa 2 – 1. Jadi a kunci
"pendek" bisa menimbulkan keystream yang memiliki periode yang sangat lama. Ini
tentunya merupakan barang yang diinginkan. Kita akan melihat di bagian selanjutnya
bagaimana chiper vigenere dapat dikompresikan dengan memanfaatkan fakta bahwa
keystream memiliki waktu yang singkat.
Contoh 1. 8
Misal m = 4 dan keystream dibangun dengan aturan
zi+4 = zi + zi+1 mod 2
untuk i ≥ 1.
Misalnya diawali dengan vektor inisial (1,0,0,0), maka keystream yang terbentuk:
1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,...

7. Linear Feedback Shift Register


Keystream dapat diproduksi secara efisien dalam hardware menggunakan LFSR.
Misal dengan menggunakan shift register dengan m langkah. Vektor (k1, k2, ..., km)
digunakan untuk memulai shift register.
Pada setiap unit waktu, operasi-operasi berikut dilaksanakan:
1) k1 dijadikan sebagai bit keystream berikutnya.
2) k2, ..., km masing-masing digeser satu langkah ke kiri.
3) nilai baru untuk km dihitung dengan
m−1
∑ cjkj+1
j=0

8. Linear Feedback Shift Register


Contoh skema sebuah LFSR

9. Autokey Cipher
Sebuah contoh untuk Stream cipher non-synchronous adalah Autokey cipher.
Misal (P = C = K = L = Z26 dan zi = xi−1 untuk i _ 2. Didefinisikan
ez (x) = x + z mod 26 dan dz (y) = y − z mod 26, dimana x, y 2 Z26.

10. Contoh Autokey


A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Contoh 1.9 Misal kunci K=8 dan plaintextnya “rendezvous”.
 Konversi plaintext pada barisan bilangan:
17 4 13 3 4 25 21 14 20 18
 Keystream-nya menjadi:
8 17 4 13 3 4 25 21 14 20
 Tambahkan elemen-elemen plaintext dengan keystream pada modulo 16.
25 21 17 16 7 3 20 9 8 12
 Pada bentuk alphabetic, didapat ciphertext:
ZVRQHDUJIM

11. Dekripsi Autokey cipher

Misalkan
P=C=K =L=Z 26 , z 1=K , dan didefinisikan z i=x i−1 untuk

i≥2 . Pada 0≤z≤25 didefinisikan


e z ( x )=( x+ z )mod 26
dan
d z ( y )=( y −z )mod 26

Dimana, ( x, y ∈Z 26 )

Pertama yakni konversi plaintext menjadi barisan bilangan bulat:


17 4 13 3 4 25 21 14 20 18
keystreamnya menjadi sebagai berikut:
8 17 4 13 3 4 25 21 14 20
kemudian menambah elemen plaintext dengan keystream pada modulo 26:
25 21 17 16 7 3 20 9 8 12
dalam bentuk lafabet diperoleh chipertext sebagai berikut:
Z V R Q H D U J I M
kemudian komputasi bit pertama string plaintext:
x 1=d 8 (25 )=(25−8 )mod26=17
kemudian,
x 2=d17 (21 )=(21−17)mod 26=4 ,
dan sebagainya. Komputasi berlanjut hingga mendapatkan bit terakhir string plaintext.
Setiap kali suatu bit plaintext didapatkan, bit tersebut digunakan sebagai keystream
berikutnya. Tentu saja, Autokey cipher tidak aman, karena hanya ada 26 kemungkinan
kunci. Sedangkan metode lain untuk melakukan proses enkripsi sama dengan
metode vigènere cipher yaitu menggunakan tabula recta 

`
Latihan soal

1) Misalkan diketahui m= 6 dengan plaintextnya adalah , tentukan ciphertextnya


Penyelesaian:
Misal kunci K = 6 dan plaintextnya ”lulakuna”.
 Konversi plaintext pada barisan bilangan:
L u l a k u n a
11 20 11 0 10 20 13 0
 Keystream-nya menjadi:
6 11 20 11 0 10 20 13
 Tambahkan elemen-elemen plaintext dengan keystream pada modulo 26.
17 31 31 11 10 30 33 13
 Pada bentuk alphabetic, didapat ciphertext:
R F F L K E H N

2) Misalkan diketahui plaintextnya adalah “ratukamalia” , dengan m=9 tentukan


plaintextnya
Penyelesaian :
Misal kunci K = 9 dan plaintextnya ”ratukamalia”.
 Konversi plaintext pada barisan bilangan:
r a t u k a m a l i a
17 0 19 20 10 0 12 0 11 8 0
 Keystream-nya menjadi:
9 17 0 19 20 10 0 12 0 11 8
 Tambahkan elemen-elemen plaintext dengan keystream pada modulo 26.
26 17 19 39 30 10 12 12 11 19 8
 Pada bentuk alphabetic, didapat ciphertext: artnekmmlti
A R T N E K M M L T I

CRYPTO
DAFTAR PUSTAKA

Ariyus, Dony., 2008, Pengantar Ilmu Kriptografi: Teori, Analisis, dan


Implementasi. Yogyakarta: Penerbit Andi.
Rossen, Kenneth H. 2006. Cryptography Theory and Practice Third Edition.
USA: Chapman dan Hall/CRC.

Anda mungkin juga menyukai