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
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.
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}
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
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
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.
Electronic Code Book (ECB)…
• Diagram Blok Enkripsi ECB
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.
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)
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
Cipher Block Chaining (CBC)…
• Diagram Blok Enkripsi CBC
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.
Cipher Block Chaining (CBC)…
Maka hasil akhir C = 000010111001101110001100001010110000110101111010
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).
Cipher-FeedBack Mode (CFB)…
• Diagram Blok Enkripsi CFB
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.
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.
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
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
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).
Output-FeedBack (OFB)…
• Diagram Blok Enkripsi OFB
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.
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.
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
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
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
Feistel Cipher
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
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
TERIMA KASIH
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.
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.
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.
Soal No. 4 (Kode 3-4):
Gambarkan diagram DEKRIPSI atas Feistel Cipher, jika diketahui Diagram enkripsi adalah sebagai berikut.