self-synchronous stream chiper

62
Algoritma Stream Cipher

Upload: dangliem

Post on 14-Jan-2017

241 views

Category:

Documents


1 download

TRANSCRIPT

Slide 1

Algoritma Stream Cipher

Section

Stream Cipher

Synchronous Stream CipherPerkenalanSelf-Synchronous Stream Chiper

Algoritma Stream Chiper|Kriptografi modern Bit String

KELOMPOK VI

2

Section

Stream Chiper

Synchronous Stream CipherPerkenalanSelf-Synchronous Stream Chiper

Algoritma Stream Chiper|Kriptografi modern Bit StringPerkenalan.

3

Section

Stream Cipher

Synchronous Stream CipherPerkenalanSelf-Synchronous Stream Chiper

Stream ChiperBit String

Algoritma Stream Chiper|Kriptografi modern

4

Section

synchronous stream cipher

Synchronous Stream CipherPerkenalanSelf-Synchronous Stream Chiper

Bit String

Stream Cipher

Algoritma Stream Chiper|Kriptografi modern

5

Section

Stream Cipher

synchronous stream cipherPerkenalanSelf-Synchronous Stream Chiper

Synchronous Stream Cipher

Algoritma Stream Chiper|Kriptografi modern Bit String

6

Section

Stream Cipher

Synchronous Stream CipherPerkenalanSelf-Synchronous Stream Chiper

Bit String

Self-Synchronous Stream Chiper

Algoritma Stream Chiper|Kriptografi modern

7

1. Ardhi Nugrahanto(A11.2010.05266)2. Febry Cahyanta N.(A11.2010.05267)3. Naufal Hakim(A11.2010.05365)4. Muhammad Ulin Nuha(A11.2010.05376)5. Ryan Adi Prasetyo(A11.2010.05576)

Kelompok 6

Operator biner yang sering digunakan dalam cipher yang yang beroperasi dalam mode bit adalah XOR atau exclusive-or. Notasi matematis untuk opeartor XOR adalah (dalam Bahas C, operator XOR dilambangkan dengan ^).Operator XOR diperasikan pada dua bit dengan aturan sebagai berikut:0 0 = 00+0 (mod 2) = 00 1 = 10+1 (mod 2) = 11 0 = 11+0 (mod 2) = 11 1 = 01+1 (mod 2) = 0Operator XOR identik dengan penjumlahan modulo 2. Operator XOR

Misalkan a, b, dan c adalah peubah Boolean. Hukum-hukum yang terkait dengan operator XOR:(i) a a = 0(Hukumkomutatif)(ii) a b = b a (Hukum asosiatif)(iii) a (b c) = (a b) c

Hukum dari XOR

Jika dua rangkaian dioperasikan dengan XOR, maka operasinya dilakukan dengan meng-XOR-kan setiap bit yang berkoresponden dari kedua ramngkaian bit tersebut.Contoh: 10011 11001 = 01010 yang dalam hal ini, hasilnya diperoleh sebagai berikut:

1 0 0 1 11 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0

Algoritma enkripsi sederhana yang menggunakan XOR adalah dengan meng-XOR-kan plainteks (P) dengan kunci (K) menghasilkan cipherteks:

C = P KKarena meng-XOR-kan nilai yang sama dua kali menghasilkan nilai semula, maka proses dekripsi menggunakan persamaan:

P = C KAlgoritma enkripsi sederhana menggunakan XOR

Contohplainteks01100101(karakter e)kunci00110101(karakter 5)

cipherteks01010000(karakter P)

kunci00110101(karakter 5)plainteks01100101(karakter e)

Any question?

kripto klasik menggunakan sistem subsitusi dan permutasi karakter dari text-asli. Kalau modern, karakter yang ada dikonversi ke dalam urutan digit biner yaitu 1 dan 0, atau gunakan skema encoding ASCII (American Standard Code for Information Interchange).Urutan bit yang akan mewakili text-asli yang kemudian dienkripsi untuk mendapatkan text-kode dalam bentuk bit. Pembagian antar aliran kode dengan motode bit-by-bit atau dengan metode block kode. ASCII perlu 8 bit untuk 1 karakter dan blok kode perlu 64 bit untuk 1 blok.Bit string

Course Title |This is the slide title

skema encoding ASCIIBinary Desimal4I 0 0(2x0)0(2x0)+1(2x1)+24+0+0

Ex :12 bit 100111010110, dipecah jadi 3 blok maka di dapat .

100 111 010 110 4726

Ex : di pecah jadi 4 blok maka di dapat

1001 1101 01109136

Bila panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang ditetapkan, maka blok yang terakhir ditambah dengan bit-bit semu yang disebut padding bits. Misalnya rangkaian bit di atas dibagi menjadi blok 5-bit menjadi10011 10101 00010351

Blok yang terakhir telah ditambahkan 3 bit 0 di bagian awal (dicetak kuning) agar ukurannya menjadi 5 bit. Padding bits dapat mengakibatkan ukuran plainteks hasil dekripsi lebih besar daripada ukuran plainteks semula.

Cara lain untuk menyatakan rangkaian bit adalah dengan notasi heksadesimal (HEX). Rangkaian bit dibagi menjadi blok yang berukuran 4 bit dengan representasi dalam HEX adalah:0000 = 00001 = 10010 = 20011 = 30100 = 40101 = 50011 = 60111 = 71000 = 81011 = 91010 = A1011 = B1100 = C1101 = D1101 = E1111 = FEx : 100111010110 1001 1101 0110 9 D 6

Any question?

Stream CipherChiper aliran merupakan salah satu tipe algoritma kriptografi Simetri.Chiper aliran mengenkripsikan plainteks menjadi chiperteks bit per bit (1 bit setiap kali transformasiCipher aliran pertama kali diperkenalkan oleh Vernam melalui algoritmanya yang dikenal dengan nama Vernam Cipher.

Vernam cipher diadopsi dari one-time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 atau 1). Cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci:ci = (pi + ki) mod 2

yang dalam hal ini, contoh P = 110010101Key= 101101001C= 011111100pi : bit plaintekski : bit kuncici : bit cipherteks

Oleh karena operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR, maka persaman dapat ditulis sebagaici = pi kidan proses deksripsi menggunakan persamaanpi = ci kiNOTE :Pada cipher aliran, bit hanya mempunyai dua buah nilai, sehingga proses enkripsi hanya menyebabkan dua keadaan pada bit tersebut: berubah atau tidak berubah. Dua keadaan tersebut ditentukan oleh kunci enkripsi yang disebut aliran-bit-kunci (keystream)

Aliran-bit-kunci dibangkitkan dari sebuah pembangkit yang dinamakan pembangkit aliran-bit-kunci (keystream generator). Aliran-bit-kunci (sering dinamakan running key) di-XOR-kan dengan aliran bit-bit plainteks, p1, p2, , pi, untuk menghasilkan aliran bit-bit cipherteks:ci = pi ki

Di sisi penerima, bit-bit cipherteks di-XOR-kan dengan aliran-bit-kunci yang sama untuk menghasilkan bit-bit plainteks:pi = ci kiKarena xkeystreamk1Keystreamk2c1p1p2Plaintextenkripsichipertextdeskripsiplaintext

Gambar Konsep cipher aliran

Keystream generator

Keystreamgenerator

Contoh: Misalkan plainteks adalah1100101 (e)

dan aliran-bit-kunci adalah1000110 (F)maka cipherteks yang dihasilkan adalah0100011yang mana diperoleh dengan meng-XOR-kan bit-bit plainteks dengan bit-bit aliran-kunci pada posisi yang berkoresponden.

KELEMAHAN STREAM CIPHER

Keamanan sistem cipher aliran bergantung seluruhnya pada pembangkit aliran-bit-kunci. Jika pembangkit mengeluarkan aliran-bit-kunci yang seluruhnya nol, maka cipherteks sama dengan plainteks, dan proses enkripsi menjadi tidak artinya.

ContohPlaintext: 1010011(S)Key:0000000Chipertext:1010011 (S)

Jika pembangkit mengeluarkan aliran-bit-kunci dengan pola 16-bit yang berulang, maka algoritma enkripsinya menjadi sama seperti enkripsi dengan XOR sederhana yang memiliki tingkat kemanan yang tidak berarti.

contoh bellaPlaintext : 01101100 01101100

Jika key mengeluarkan aliran-bit-kunci yang benar-benar acak (truly random), maka algoritma enkripsinya sama dengan one-time pad dengan tingkat keamanan yang sempurna. Pada kasus ini, aliran-bit-kunci sama panjangnya dengan panjang plainteks, dan kita mendapatkan cipher aliran sebagai unbreakable cipher.contohplaintext : 1011010key: 1110011chiper: 0101001

Tingkat keamanan cipher aliran terletak antara algoritma XOR sederhana dengan one-time pad. Semakin acak keluaran yang dihasilkan oleh pembangkit aliran-bit-kunci, semakin sulit kriptanalis memecahkan cipherteks.

1. Known-plaintext attack Misalkan kriptanalis memiliki potongan plainteks (P) dan cipherteks (C) yang berkoresponden, maka ia dapat menemukan bagian aliran kunci (K) yang berkoresponden dengan meng-XOR-kan bit2 plainteks & cipherteks.

Misal: potongan plainteks 01100101 dienkripsi dengan potongan aliran kunci 00110101.

P 01100101 (karakter 'e')K 00110101+ (karakter '5')--------------------------C 01010000 (karakter 'p')

Contoh serangan

Contoh:

Misalkan kriptanalis menemukan potongan plainteks 01100101, dan cipherteks yang berkoresponden, 01010000. Kriptanalis dapat mendeduksi kunci dari dua buah informasi ini:C 01010000 (karakter 'p')P 01100101+ (karakter 'e')-------------------------------K 00110101 (karakter '5')Jadi, kunci yang dideduksi sama dengan kunci enkripsi semula, yaitu 00110101

2. Ciphertext-only attackSerangan ini terjadi jika keystream yang sama digunakan dua kali terhadap potongan plainteks yang berbeda. Serangan semacam ini disebut juga keystream reuse attack. Misalkan kriptanalis memiliki dua potongan cipherteks berbeda (C1 dan C2) yang dienkripsi dengan bit-bit kunci yang sama. Ia meng-XOR-kan kedua cipherteks tersebut dan memperoleh dua buah plainteks yang ter-XOR-kan satu sama lain:Contoh:Misal P1=01100101 dan P2=01000010 dienkripsi dengan kunci aliran yang sama, 00110101

P1 01100101 (karakter 'e') K 00110101 (karakter '5')---------------------------C1 01010000 (karakter 'p')

P2 01000010 (karakter 'B')K 00110101 (karakter '5')---------------------------C2 01110111 (karakter 'w')Contoh serangan

Perhatikan bahwa P1+P2=C1+C2, sehingga kriptanalis mempunyai C1dan C2, maka hasil peng-XOR-an keduanya sama dengan dua buah potongan plainteks ter-XOR satu sama lain. Jika P1 ata P2 telah diketahui, maka XOR-kan plainteks tersebut dengan cipherteks yang berkoresponden untuk memperoleh K.Moral dari cerita dua serangan di atas adalah pengguna cipher aliran harus mempunyai bit-bit kunci yang tidak dapat diprediksi sehingga mengetahui sebagian dari bit-bit knci tidak memungkinkan kriptanalis dapat mendeduksi bagian sisanya.P1 + P2 = 01100101 + 01000010 = 00100111C1 +C2 = 01010000 + 01110111 = 00100111

Contoh Serangan3. Flip Bit AttackSeseorang mentransfer uang antar-rekening bank dengan jumlah 10 USD denganText asli : QT-TRNSFER USD $000010, 00 FRM ACCNT 12345-67 TOText-Kode : aMz0rapltxMfpUn7UxOrtLm42ZuweeM0qaPtI7wEptAnxfl0010110(1)pertukaran bit0010110(0)

Textkode : aMz0rapltxMfpUn7UxOrtLm42ZuweeM0qaPtI7wEptAnxflText asli : QT-TRNSFER USD $100010, 00 FRM ACCNT 12345-67 TO

ket

Jika penyerang bisa memahami aliran kode lebih baik,maka dia dapat melakukan serangan pembalikan bit yang akan mengakibatkan pesan dapat diterjemahkan dan dimodifikasi. Pada perjalananya pesan yang di kirim itu dapat diinterupsi oleh penyerang. Bit 1 dari karakter U dimodifikasi menjadi 0 yang mengakibatkan karakter U berubah menjadi karakter T, da setelah sampai ke tujuan dilakukan dekripsi sehingga didapatkan bahwa yang sebenarnya ditransfer 10 USD telah berubah menjadi 100010 USD. Pada aliran kode, penyerang tidak perlu mengetahui kunci yang digunakan untuk enkripsi. Yang perlu diketahi adalah letak dari posisi bitnya.

Any question?

Synchronous stream cipherPada synchronous stream cipher, sebuah aliran digit yang acak-semu diciptakan secara terpisah dengan plainteks (dalam proses enkripsi) atau dengan cipherteks (untuk dekripsi). Pada bentuk yang paling umum, bit bit diciptakan secara acak-semu, kemudian keystream yang ada akan dioperasikan dengan plainteks menggunakan operasi XOR. Proses ini dinamakan proses binary additive stream cipher.

Pada synchronous stream cipher, pengirim dan penerima harus sejalan, sehingga proses dekripsi dapat berjalan dengan sukses. Apabila digit ditambahkan atau dihilangkan dari pesan selama transmisi, maka dikatakan bahwa sinkronisasi telah hilang. Untuk mengembalikan sinkronisasi kedalam proses, berbagai cara dapat digunakan. Ada yang menggunakan offset bit untuk mendapatkan proses dekripsi yang benar, dan ada pula pendekatan lain yaitu penandaan pada cipherteks dengan penanda untuk mendapatkan dekripsi yang benar.

Konsep Synchronous stream cipher

pengirim dan penerima harus sejalan / sinkron

sukses

Konsep Synchronous stream cipher

Misal :Bit Chiperteks hilang

Gagal

011111100

Solusi

Namun apabila gangguan yang terjadi berupa kerusakan pada bit, bukan penambahan atau kehilangan informasi, maka hanya satu digit plainteks yang akan rusak. Kerusakan pada bit tersebut tidak akan menjalar ke bit bit berikutnya . hal ini berguna apabila terjadi tingkat kesalahan yang tinggi pada jaringan, namun kelebihan ini dapat menjadi bumerang karen cipher aliran yang bersifat synchronous ini bisa terkena serangan aktif.

Apabila seorang penyerang dapat mengganti sebuah digit pada cipherteks, ada kemungkinan si penyerang itu akan dapat membuat perubahan yang dapat diatur, sebab membalik bit pada cipherteks akan menyebabkan bit yang sama terbalik pula pada plainteks

Aliran text-kode sinkron rawan terhadap insertion attact (serangan penyisipan). Jika kriptanalis mendapatkan aliran text-kode itu, walaupun mereka tidak mengetahui keystream yang digunakan untuk melakukan deskripsi dan enkripsi,namun mereka bisa memodifikasi pesanya

Text asli: p1 p2 p3 p4 ..Keystream : k1 k2 k3 k4 ..Text-kode asli: c1 c2 c3 c4 ..

kriptanalis akan mencoba menyisipkan satu bit p ke dalam text-asli p1 untuk memodifikasi text-asli yang dienkripsi dengan keystream yang sama sehingga akan mendapatkan text-kode baru sebagai berikut :Text asli baru: p1 p p2 p3 p4 .Keystream asli: k1 k2 k3 k4 k5 Text-kode baru: c1 c2 c3 c4 c5 .Diasumsikan kriptanalis mengetahui nilai dari p , yang dimasukkanya setelah bit text-asli dari text-kode asli dan text-kode yang baru K2 = c2 p dan kemudian p2 = c2 k2K3 = c3 p2 dan kemudian p3 = c3 k3K4 = c4 p3 dan kemudian p4 = c4 k4

Kriptanalis tidak harus tahu dimana posisi p yang dimasukkanya. Dia hanya perlu membandingkan text-kode yang asli dengan yang telah di-update. Dari sinilah kriptanalis mengetahui keystream untuk melakukan deskripsi. Untuk meminimalkan serangan semacam ini, selalu gunakan keystream yang berbeda untuk setiap pesan yang akan di kirim.

Any question?

Self-Synchronous Stream ChiperSelf-Synchronous Stream Chiper menggunakan metode pengambilan kunci dari pesan itu sendiri, atau sering disebut dengan autokey chiper, menggunakan pesan untuk kunci. Dengan menggunakan metode ini juga didapat kunci one time pad, kemungkinan setiap pesan dikirim dua kali jarang terjadi, kunci dari sistem ini menggunakan pesan yang akan dikirim dengan menambahkan satu karakter yang berbeda di depan maupun di belakang dari kunci yang ada.

Pendekatan lain menggunakan n digit dari cipherteks untuk menghitung keystream. Skema ini dikenal sebagai Self-synchronizing stream ciphers, asynchronous stream ciphers, atau ciphertext autokey (CTAK).

Keunggulan dari skema ini adalah penerima akan secara otomatis mensinkronkan diri dengan keystream generator setelah menerima cipherteks sebanyak N digit, sehingga membuat skema ini lebih mudah direcover apabila ada digit yang ditambahkan atau dihilangkan dali aliran pesan.

Contoh :versi autokey dari kode vigenere, dengan kunci yang diambil dari text-asliKunci: XTHEBOYHASTHEBATextAsli: THEBOYHASTHEBAGText-kode: QALFPNFHSLALFCTDengan menggunakan metode ini juga didapatkan kunci one time pad karena kemungkinan satu pesan dikirim 2 kali jarang terjadi. Kunci dari sistem ini menggunakan pesan yang akan dikirim dengan menambahkan satu karakter yang berbeda di depan maupun dibelakang kunci

Keystream Generator

Pembangkit aliran-bit-kunci dapat membangkitkan bit-bit kunci (keystream) berbasis bit per bit atau dalam bentuk blok-blok bit.

Untuk yang terakhir ini, cipher blok dapat digunakan untuk untuk memperoleh cipher aliran.

Untuk alasan praktis, pembangkit aliran-bit kunci diimplementasikan sebagai prosedur algoritmik,

sehingga bit-bit kunci (keystream) dapat dibangkitkan secara simultan oleh pengirim dan penerima pesan.

Prosedur algoritmik tersebut menerima masukan sebuah kunci U.

Keluaran dari prosedur merupakan fungsi dari U

Pembangkit harus menghasilkan bit-bit kunci yang kuat secara kriptografi.

Cipher aliran dengan pembangkit aliran-bit-kunci yang bergantung pada kunci U.

Karena pengirim dan penerima harus menghasilkan bit-bit kunci yang sama , maka keduanya harus memiliki kunci U yang sama.

Kunci U ini harus dijaga kerahasiaanya.

Cipher aliran menggunakan kunci U yang relatif pendek untuk membangkitkan bit-bit kunci yang panjang.

contohMisalkan U adalah kunci empat-bit yang dipilih sembarang, kecuali 0000. Bit-aliran-kunci yang dibangkitkan akan berulang setiap 15 bit.

Misalkan U = 1111

Barisan bit-bit kunci diperoleh dengan meng-XOR-kan bit pertama dengan bit terakhir dari empat bit sebelumnya, sehingga menghasilkan:111101011001000

dan akan berulang setiap 15 bit.Secara umum, jika panjang kunci U adalah n bit, maka bit-bit kunci tidak akan berulang sampai 2n 1 bit.

Karena U adalah besaran yang konstan, maka aliran bit-bit kunci yang dihasilkan pada setiap lelaran tidak berubah jika bergantung hanya pada U.

Ini berarti pembangkit aliran-bit-kunci tidak boleh mulai dengan kondisi awal yang sama supaya tidak menghasilkan kembali bit-bit kunci yang sama pada setiap lelaran.

Cipher aliran dengan pembangkit bit-aliran-kunci yang bergantung pada kunci U dan umpan Z.

Dengan demikian, bit-bit kunci K dapat dinyatakan sebagai hasil dari fungsi g dengan parameter kunci U dan masukan umpan Z:

K = gK(Z)

sehingga proses enkripsi dan dekripsi didefinisikan sebagai

C = P + K = P + gK(Z)P = C + K = C + gK(Z)

Nilai Z yang berbeda-beda pada setiap lelaran menghasilkan bit-bit kunci yang berbeda pula.

Menggunakan pasangan Z dan U yang sama dua kali dapat menyebabkan bit-bit kunci (keystream) yang sama pada setiap kali.

Penggunaan keystream yang sama dua kali memudahkan jenis penyerangan ciphertext attack

Karena bit-bit kunci hanya tergantung pada Z dan U, maka bit-bit kunci ini tidak terpengaruh oleh kesalahan transmisi di dalam cipherteks.

Kesalahan 1-bit pada transmisi cipherteks hanya menghasilkan kesalahan 1-bit pada plainteks hasil dekripsi.

Sumber Referensi |materi

Wikipedia.comiPengantar Ilmu Kriptografi Dony AriyusKriptografiRinaldi Munir

SEKIAN TERIMAKASIH