Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma Stream Cipher

Presentasi serupa


Presentasi berjudul: "Algoritma Stream Cipher"— Transcript presentasi:

1 Algoritma Stream Cipher

2 Synchronous Stream Cipher Self-Synchronous Stream Chiper
Algoritma Stream Chiper|Kriptografi modern Section Perkenalan Bit String KELOMPOK VI Stream Cipher Synchronous Stream Cipher Self-Synchronous Stream Chiper

3 Synchronous Stream Cipher Self-Synchronous Stream Chiper
Algoritma Stream Chiper|Kriptografi modern Perkenalan. Section Perkenalan Bit String Stream Chiper Synchronous Stream Cipher Self-Synchronous Stream Chiper

4 Synchronous Stream Cipher Self-Synchronous Stream Chiper
Algoritma Stream Chiper|Kriptografi modern Section Perkenalan Bit String Stream Chiper Stream Cipher Synchronous Stream Cipher Self-Synchronous Stream Chiper

5 Algoritma Stream Chiper|Kriptografi modern
Section Perkenalan Bit String synchronous stream cipher Stream Cipher Synchronous Stream Cipher Self-Synchronous Stream Chiper

6 Algoritma Stream Chiper|Kriptografi modern
Section Perkenalan Bit String Stream Cipher Synchronous Stream Cipher synchronous stream cipher Self-Synchronous Stream Chiper

7 Algoritma Stream Chiper|Kriptografi modern
Section Perkenalan Bit String Stream Cipher Synchronous Stream Cipher Self-Synchronous Stream Chiper Self-Synchronous Stream Chiper

8 Kelompok 6 1. Ardhi Nugrahanto (A11.2010.05266)
2. Febry Cahyanta N. (A ) 3. Naufal Hakim (A ) 4. Muhammad Ulin Nuha (A ) 5. Ryan Adi Prasetyo (A )

9 Operator XOR 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 = (mod 2) = 0 0  1 = (mod 2) = 1 1  0 = (mod 2) = 1 1  1 = (mod 2) = 0 Operator XOR identik dengan penjumlahan modulo 2.

10 Hukum dari 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

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

12 Algoritma enkripsi sederhana menggunakan XOR
Algoritma enkripsi sederhana yang menggunakan XOR adalah dengan meng-XOR-kan plainteks (P) dengan kunci (K) menghasilkan cipherteks: C = P  K Karena meng-XOR-kan nilai yang sama dua kali menghasilkan nilai semula, maka proses dekripsi menggunakan persamaan: P = C  K

13 Contoh plainteks 01100101 (karakter ‘e’)
kunci  (karakter ‘5’)  cipherteks (karakter ‘P’) kunci  (karakter ‘5’)

14 Any question?

15 Bit string 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.

16 Course Title |This is the slide title
Binary Desimal 4 I 0 0 2 1 (2x0) (2x1) (2x0) + 4+0+0 + skema encoding ASCII

17

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

19 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 menjadi   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.

20 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 = = = = 3 0100 = = = = 7 1000 = = = A 1011 = B 1100 = C 1101 = D 1101 = E 1111 = F Ex :  D  6

21 Any question?

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

23 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 = Key = C = pi : bit plainteks ki : bit kunci ci : bit cipherteks

24 Oleh karena operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR, maka persaman dapat ditulis sebagai ci = pi  ki dan proses deksripsi menggunakan persamaan pi = ci  ki NOTE : 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:

25 keystream k1 Keystream k2 c1 p1 p2
Di sisi penerima, bit-bit cipherteks di-XOR-kan dengan aliran-bit-kunci yang sama untuk menghasilkan bit-bit plainteks: pi = ci  ki Karena x keystream k1 Keystream k2 c1 p p2 Plaintext enkripsi chipertext deskripsi plaintext Gambar Konsep cipher aliran Keystream generator Keystream generator

26 Contoh: Misalkan plainteks adalah 1100101 (e)
  dan aliran-bit-kunci adalah (F)   maka cipherteks yang dihasilkan adalah yang mana diperoleh dengan meng-XOR-kan bit-bit plainteks dengan bit-bit aliran-kunci pada posisi yang berkoresponden.

27 KELEMAHAN STREAM CIPHER
Keamanan sistem cipher aliran bergantung seluruhnya pada pembangkit aliran-bit-kunci. Jika p embangkit mengeluarkan aliran-bit-kunci yang seluruhnya nol, maka cipherteks sama dengan plainteks, dan proses enkripsi menjadi tidak artinya. Contoh Plaintext : (S) Key : Chipertext : (S)

28 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 bella Plaintext :

29 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. contoh plaintext : key : chiper : 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.

30 Contoh serangan 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 dienkripsi dengan potongan aliran kunci P (karakter 'e') K (karakter '5') C (karakter 'p')

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

32 Contoh serangan 2. Ciphertext-only attack
Serangan 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= dan P2= dienkripsi dengan kunci aliran yang sama, P (karakter 'e') K  (karakter '5') C (karakter 'p') P (karakter 'B') K  (karakter '5') C (karakter 'w')

33 P1 + P2 = = C1 +C2 = = 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.

34 Contoh Serangan 3. Flip Bit Attack Seseorang mentransfer uang antar-rekening bank dengan jumlah 10 USD dengan Text asli : QT-TRNSFER USD $000010, 00 FRM ACCNT TO Text-Kode : aMz0rapltxMfpUn7UxOrtLm42ZuweeM0qaPtI7wEptAnxfl (1) pertukaran bit (0) Textkode : aMz0rapltxMfpUn7UxOrtLm42ZuweeM0qaPtI7wEptAnxfl Text asli : QT-TRNSFER USD $100010, 00 FRM ACCNT TO

35 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 USD. Pada aliran kode, penyerang tidak perlu mengetahui kunci yang digunakan untuk enkripsi. Yang perlu diketahi adalah letak dari posisi bitnya.

36 Any question?

37 Synchronous stream cipher
Pada 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.

38 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.

39 Konsep Synchronous stream cipher
sukses pengirim dan penerima harus sejalan / sinkron

40 Konsep Synchronous stream cipher
Misal :Bit Chiperteks hilang Gagal Solusi

41 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.

42 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

43 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 …..

44 Text asli baru : p1 p’ p2 p3 p4 ……….
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 c’2 c’3 c’4 c’5 …………. Diasumsikan kriptanalis mengetahui nilai dari “ p’ ”, yang dimasukkanya setelah bit text-asli dari text-kode asli dan text-kode yang baru K2 = c’2  p’ dan kemudian p2 = c2  k2 K3 = c’3  p2 dan kemudian p3 = c3  k3 K4 = c’4  p3 dan kemudian p4 = c4  k4

45 Kriptanalis tidak harus tahu dimana posisi p’ yang dimasukkanya
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.

46 Any question?

47 Self-Synchronous Stream Chiper
Self-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.

48 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.

49 Contoh : versi autokey dari kode vigenere, dengan kunci yang diambil dari text-asli Kunci : XTHEBOYHASTHEBA TextAsli : THEBOYHASTHEBAG Text-kode : QALFPNFHSLALFCT Dengan 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

50 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.

51 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.

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

53 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.

54 contoh Misalkan 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: 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.

55 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.

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

57 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)

58 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

59 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.

60

61 Sumber Referensi |materi
Wikipedia.comi Pengantar Ilmu Kriptografi Dony Ariyus Kriptografi Rinaldi Munir

62 SEKIAN TERIMAKASIH


Download ppt "Algoritma Stream Cipher"

Presentasi serupa


Iklan oleh Google