• Tidak ada hasil yang ditemukan

Pengantar Block Cipher

N/A
N/A
Ivan Hawari

Academic year: 2024

Membagikan " Pengantar Block Cipher"

Copied!
35
0
0

Teks penuh

(1)

KEAMANAN DATA DIGITAL

BLOCK CIPHER

Pertemuan Ke-5

Semester Gasal 2022-2023

Dr. Ir. R. Rizal Isnanto, S.T., M.M., M.T., IPU.

Magister Teknik Elektro

(2)

Introduction

ž Block-cipher adalah skema algoritme sandi yang akan membagi-bagi plaintext yang akan dikirimkan dengan ukuran tertentu (disebut blok) dengan panjang t, dan setiap blok dienkripsi dengan menggunakan kunci yang sama.

ž Pada umumnya, block-cipher memproses plaintext dengan blok yang relatif panjang lebih dari 64 bit, untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci.

(3)

Introduction…

Blok plainteks berukuran m bit:

P = (p1, p2, …, pm), pi Î {0, 1}

Blok cipherteks (C) berukuran m bit:

C = (c1, c2, …, cm), ci Î {0, 1}

(4)

Enkripsi: Dekripsi:

Blok Plainteks P Blok Cipherteks C

P = (p1, p2, …, pm) C = (c1, c2, …, cm)

Kunci K E Kunci K D

Blok Cipherteks C Blok Plainteks P

C = (c1, c2, …, cm) P = (p1, p2, …, pm) Gambar 2.1 Skema enkripsi dan dekripsi pada cipher blok

(5)

Untuk menambah keandalan model algoritma sandi ini, dikembangkan pula beberapa tipe proses enkripsi, yaitu :

ž ECB, Electronic Code Book

ž CBC, Cipher Block Chaining

ž CFB, Cipher Feed Back Mode

ž OFB, Output Feed Back

ž Feistel Cipher

(6)

Electronic Code Book (ECB)

• Setiap blok plainteks Pi dienkripsi secara individual dan independen menjadi blok cipherteks Ci .

• Enkripsi: Ci = EK(Pi) Dekripsi: Pi = DK(Ci)

yang dalam hal ini, Pi dan Ci masing-masing blok plainteks dan cipherteks ke-i.

(7)

Electronic Code Book (ECB)…

Diagram Blok Enkripsi ECB

(8)

Electronic Code Book (ECB)…

• Contoh:

Plainteks: 10100010001110101001 Bagi plainteks menjadi blok-blok 4-bit:

1010 0010 0011 1010 1001 ( dalam notasi HEX : A23A9)

• Kunci (juga 4-bit): 1011

• Misalkan fungsi enkripsi E yang sederhana adalah:

XOR-kan blok plainteks Pi dengan K, kemudian geser secara wrapping bit-bit dari Pi Å K satu posisi ke kiri.

(9)

1010 0010 0011 1010 1001 1011 1011 1011 1011 1011 Å

Hasil XOR: 0001 1001 1000 0001 0010

Geser 1 bit ke kiri: 0010 0011 0001 0010 0100 Dalam notasi HEX: 2 3 1 2 4 Jadi, hasil enkripsi plainteks

10100010001110101001 (A23A9 dalam notasi HEX) adalah

00100011000100100100 (23124 dalam notasi HEX)

(10)

Cipher Block Chaining (CBC)

• Mode ini menerapkan mekanisme umpan-balik (feedback) pada sebuah blok, yang dalam hal ini hasil enkripsi blok sebelumnya di-umpan-balikkan ke dalam enkripsi blok yang current.

• Caranya, blok plainteks yang sedang di-XOR-kan terlebih dahulu dengan blok cipherteks hasil enkripsi sebelumnya, selanjutnya hasil peng-XOR-an ini masuk ke dalam fungsi enkripsi

(11)

Cipher Block Chaining (CBC)…

Diagram Blok Enkripsi CBC

(12)

Cipher Block Chaining (CBC)…

• Contoh :

Suatu pesan 110000100110 010010100110

011101101110 010101011010. Dengan panjang blok 12-bit dimasukkan ke dalam CBC dengan kunci untuk blok

pertama K1 = 110010011111 dan Kn ditentukan oleh Kn-1 yang digeser ke kanan memutar sebanyak 3-bit. Tentukan cipher text keluaran CBC tersebut. Dengan acuan

Initialization Vector (IV) = 000000000000 dan blok enkripsi E merupakan fungsi XOR.

(13)

Cipher Block Chaining (CBC)…

Maka hasil akhir C = 000010111001101110001100001010110000110101111010

(14)

Cipher-FeedBack Mode (CFB)

• Pada mode CFB, data dienkripsikan dalam unit yang lebih kecil daripada ukuran blok. Unit yang

dienkripsikan dapat berupa bit per bit, 2-bit, 3-bit, dan seterusnya.

• Secara umum CFB n-bit mengenkripsi plainteks

sebanyak n bit setiap kalinya, yang mana n m (m = ukuran blok).

(15)

Cipher-FeedBack Mode (CFB)…

Diagram Blok Enkripsi CFB

(16)

Cipher-FeedBack Mode (CFB)…

1. Antrian diisi dengan IV (initialization vector).

2. Enkripsikan antrian dengan kunci K. n bit paling kiri dari hasil

enkripsi berlaku sebagai keystream (ki) yang kemudian di-XOR-kan dengan n-bit dari cipherteks menjadi n-bit pertama dari plainteks.

Salinan (copy) n-bit dari cipherteks dimasukkan ke dalam antrian (menempati n posisi bit paling kanan antrian), dan semua m-n

lainnya di dalam antrian digeser ke kiri menggantikan n bit pertama yang sudah digunakan.

3. m-n bit cipherteks berikutnya dienkripsikan dengan cara yang sama seperti pada langkah 2.

(17)

Cipher-FeedBack Mode (CFB)…

Contoh soal:

Untuk panjang block setelah enkripsi adalah 8-bit (bukan 64-bit) dan r = 2-bit

Tentukan C1, C2, C3 dan C4 menggunakan CFB jika

diketahui bahwa pesan asli m = 11010100; dengan m1 = 11, m2 = 01, m3 = 01, dan m4 = 00 dengan IV = 00000000 dan K1 = 01101101 dengan E fungsi EXOR, Kn= SHL (Kn-1 ) 1 – bit ke kiri.

(18)

Cipher-FeedBack Mode (CFB)…

m = 1 1 0 1 0 1 0 0 m1 = 1 1 IV = 0 0 0 0 0 0 0 0 m2 = 0 1 k = 0 1 1 0 1 1 0 1 m3 = 0 1

r = 2 bit m4 = 0 0

IV = 0 0 0 0 0 0 0 0 K1 = 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1

m1 = 1 1 0 1 c1 = 1 0

0 0 0 0 0 0 1 0 K2 = 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0

m2 = 0 1 1 1 c2 = 1 0

Geser 1 bit ke kiri

(19)

Cipher-FeedBack Mode (CFB)…

0 0 0 0 1 0 1 0 K3 = 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1

m3 = 0 1 1 0 c3 = 1 1

0 0 1 0 1 0 1 1 K4 = 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0

m4 = 0 0 0 1 c4 = 0 1

C = 1 0 1 0 1 1 0 1

Geser 1 bit ke kiri

Geser 1 bit ke kiri

(20)

Output-FeedBack (OFB)

• Pada mode OFB, data dienkripsikan dalam unit yang lebih kecil daripada ukuran blok. Unit yang dienkripsikan dapat berupa bit per bit, 2-bit, 3-bit, dan seterusnya.

• Secara umum OFB n-bit mengenkripsi plainteks sebanyak n bit setiap kalinya, yang mana n m (m = ukuran blok).

(21)

Output-FeedBack (OFB)…

Diagram Blok Enkripsi OFB

(22)

Output-FeedBack (OFB)…

1. Antrian diisi dengan IV (initialization vector).

2. Dekripsikan antrian dengan kunci K. n bit paling kiri dari hasil dekripsi dimasukkan ke dalam antrian 7 (menempati n posisi bit paling kanan antrian), dan m-n bit lainnya di dalam antrian digeser ke kiri menggantikan n bit pertama yang sudah digunakan. n bit paling kiri dari hasil dekripsi juga berlaku sebagai keystream (ki) yang kemudian di-XOR-kan dengan n- bit dari plaintext menjadi n-bit pertama dari ciphertext.

3. m-n bit cipherteks berikutnya dienkripsikan dengan cara yang sama seperti pada langkah 2.

(23)

Output-FeedBack (OFB)…

Contoh soal:

Untuk panjang block setelah enkripsi adalah 8-bit (bukan 64-bit) dan r = 2-bit

Tentukan C1, C2, C3 dan C4 menggunakan OFB jika

diketahui bahwa pesan asli m = 11010100; dengan m1 = 11, m2 = 01, m3 = 01, dan m4 = 00 dengan IV = 00000000 dan K1 = 01101101 dengan E fungsi EXOR, Kn= SHL (Kn-1 ) 1 – bit ke kiri.

(24)

Output-FeedBack (OFB)…

m = 1 1 0 1 0 1 0 0 m1 = 1 1 IV = 0 0 0 0 0 0 0 0 m2 = 0 1 k = 0 1 1 0 1 1 0 1 m3 = 0 1

r = 2 bit m4 = 0 0

IV = 0 0 0 0 0 0 0 0 K1 = 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1

m1 = 1 1 0 1 c1 = 1 0

0 0 0 0 0 0 0 1 K2 = 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1

m2 = 0 1 1 1 c2 = 1 0

Geser 1 bit ke kiri

(25)

Output-FeedBack (OFB)…

C = 1 0 1 0 1 1 0 1

0 0 0 0 0 1 1 1 K3 = 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0

m3 = 0 1 1 0 c3 = 1 1

0 0 0 1 1 1 1 0 K4 = 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1

m4 = 0 0 0 1 c4 = 0 1

Geser 1 bit ke kiri

Geser 1 bit ke kiri

(26)

Perbandingan antara CFB dan OFB

• CFB : CFB (Video harap diputar sendiri)

• OFB: OFB (Video harap diputar sendiri)

• Hasil enkripsi CFB dan OFB adalah SAMA, namun OFB punya keunggulan à

1. Pada OFB, blok C bisa dipulihkan jika salah satu blok ada yang hilang;

2. OFB lebih kuat (strong/robust) dibandingkan CFB

(27)

Feistel Cipher

(28)

Feistel Cipher…

Contoh soal:

Cari ciphertext dari m = 10111000, dengan K = 0001, dengan fungsi f adalah XOR (K,R) yang digeser putar 1-bit ke kiri

L2 = R1 = 1 0 0 0 R2 = L1 f(K1, R1) f(K1, R1)

1 0 0 1 – left circular = 0 0 1 1

1 0 1 1 1 0 0 0

L1 R1

R = 1 0 0 0 K = 0 0 0 1 1 0 0 1

(29)

Feistel Cipher…

R2 = L1 f(K1, R1) R2

C = 1 0 0 0 1 0 0 0

L1 = 1 0 1 1 f = 0 0 1 1 1 0 0 0

(30)

TERIMA KASIH

(31)

TUGAS 3

Soal No.1: (Kode 3-1) Suatu pesan:

101101010100110010101010110100101010011010110100, dengan panjang blok: 12-bit dimasukkan ke dalam CBC dengan kunci K1 = 001100101011, dan Kn ditentukan oleh Kn-1 yang

digeser ke-kiri memutar sebanyak 2-bit. Tentukan ciphertext keluaran dari CBC tersebut. Vektor inisialisasi IV =

000000000000. Anggaplah bahwa Fungsi Enkripsi yang digunakan adalah fungsi XOR juga.

(32)

Soal no. 2 (Kode 3-2)

Untuk panjang block setelah enkripsi adalah 8-bit (bukan 64- bit) dan r = 2-bit

Tentukan C1, C2, C3 dan C4 menggunakan CFB jika diketahui bahwa pesan asli m = 11010100; dengan m1 = 11, m2 = 01, m3 = 01, dan m4 = 00 dengan IV = 00000000 dan K1 =

10101011 dengan E fungsi EXOR, Kn= SHR (Kn-1) 2 – bit ke kanan.

(33)

Soal no. 3 (Kode: 3-3)

Untuk panjang block setelah enkripsi adalah 8-bit (bukan 64- bit) dan r = 2-bit

Tentukan C1, C2, C3 dan C4 menggunakan OFB jika diketahui bahwa pesan asli m = 11010100; dengan m1 = 11, m2 = 01, m3 = 01, dan m4 = 00 dengan IV = 00000000 dan K1 =

10101011 dengan E fungsi EXOR, Kn= SHR (Kn-1) 2 – bit ke kanan.

Bandingkan hasil no 2 dan no 3.

(34)

Soal No. 4 (Kode 3-4):

Gambarkan diagram DEKRIPSI atas Feistel Cipher, jika diketahui Diagram enkripsi adalah sebagai berikut.

(35)

Referensi

Dokumen terkait

disebabkan karena teknik enkripsi Hill Cipher ini menggunakan teknik dengan membagi setiap karakter yang akan dienkripsi sesuai dengan jumlah matriks kunci yang digunakan.

Algoritma Block Cipher Block Cipher adalah algoritma enkripsi yang akan membagi-bagi plaintext yang akan dikirimkan dengan ukuran tertentu (disebut blok) dengan panjang t, dan

Block Cipher adalah algoritma kriptografi modern yang melakukan enkripsi dengan cara membagi plainteks menjadi beberapa blok bit dengan panjang bit yang sama

akan dibahas pada Perancangan Kriptografi Block Cipher 64 Bit Berbasis Pola Vertikal dan Horizontal, yaitu: 1) Plaintext dan kunci dibatasi maksimal 32 karakter;

Sehingga algoritma kriptografi block cipher berbasis pada pola formasi sepak bola 3-5-2 dapat digunakan dalam mengamankan data. Kata Kunci: Kriptografi, Block

Block cipher dengan pola ikan berenang merupakan algoritma yang dikembangkan berdasarkan prinsip block cipher dengan ukuran blok sebanyak 64 bit. Penelitian ini membuat

Modifikasi algoritma Caesar cipher menggunakan tabel ascii dengan rentang nilai ascii antara 0 - 255. Setiap karakter dari Plaintext akan dienkripsi dengan

Kemudian informasi yang diperoleh dari caesar cipher akan dienkripsi kembali menggunakan algoritma hill cipher untuk menyembunyikan frekuensi kemunculan karakter pada kunci yang