Anda di halaman 1dari 15

MODE OPERASI CIPHER BLOCK :

CIPHER BLOCK CHAINING (CBC)

Canggih Gelar Setyo Adhi (18/433767/PPA/05582)


Faisal Dharma Adhinata (18/433774/PPA/05589)
Muhammad Ikhsan (18/433788/PPA/05603)

PROGRAM MAGISTER ILMU KOMPUTER


DEPARTEMEN ILMU KOMPUTER DAN ELEKTRONIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
Mode Operasi : CBC
Mode Operasi
• Berkaitan dengan cara blok dioperasikan

Tujuan CBC
• Membuat ketergantungan antar blok.

Konsep CBC
• Setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya
tetapi juga pada seluruh blok plainteks sebelumnya.
• Hasil enkripsi blok sebelumnya di-umpan-balikkan ke dalam enkripsi
blok selanjutnya.
Enkripsi dan Dekripsi CBC
Pi – 1 Pi Ci – 1 Ci

Ci – 2  

EK EK DK DK

Ci – 2  
Ci – 1 Ci

Pi – 1 Pi

Enkripsi Dekripsi
Ci = EK(Pi  Ci – 1) Pi = DK(Ci)  Ci – 1
Enkripsi dan Dekripsi CBC

Enkripsi blok pertama memerlukan blok semu (C0) yang disebut IV


(Initialization Vector).

IV dapat diberikan oleh user atau dibangkitkan secara acak oleh program.

Pada dekripsi, blok plainteks diperoleh dengan cara meng-XOR-kan IV


dengan hasil dekripsi terhadap blok cipherteks pertama.
Contoh Enkripsi

Misalkan terdapat plainteks : A23A9H


Plainteks dalam biner :
101000100011101010012
Membagi plainteks dalam blok blok 4 bit :
1010 0010 0011 1010 1001
P1 P2 P3 P4 P5
Misalkan kunci (K) yang panjangnya juga 4 bit : 1011, atau B dalam hexa
Kemudian IV diberikan user seluruhnya bit 0, maka C0 = 0000.
Fungsi enkripsi E dengan meng-XOR-kan blok plainteks Pi dengan K, kemudian
geser secara wrapping bit-bit dari Pi  K satu posisi ke kiri.
Contoh Enkripsi
C1 diperoleh sebagai berikut:
P1  C0 = 1010  0000 = 1010
Enkripsikan hasil ini dengan fungsi E:
1010  K = 1010  1011 = 0001
Geser (wrapping) hasil ini satu bit ke kiri: 0010
Jadi, C1 = 0010 (atau 2 dalam HEX)

C2 diperoleh sebagai berikut:


P2  C1 = 0010  0010 = 0000
0000  K = 0000  1011 = 1011
Geser (wrapping) hasil ini satu bit ke kiri: 0111
Jadi, C2 = 0111 (atau 7 dalam HEX)

C3 diperoleh sebagai berikut:


P3  C2 = 0011  0111 = 0100
0100  K = 0100  1011 = 1111
Geser (wrapping) hasil ini satu bit ke kiri: 1111
Jadi, C3 = 1111 (atau F dalam HEX)
Contoh Enkripsi
C4 diperoleh sebagai berikut:
P4  C3 = 1010  1111 = 0101
Enkripsikan hasil ini dengan fungsi E:
0101  K = 0101  1011 = 1110
Geser (wrapping) hasil ini satu bit ke kiri: 1101
Jadi, C4 = 1101 (atau D dalam HEX)

C5 diperoleh sebagai berikut:


P5  C4 = 1001  1101 = 0100
0100  K = 0100  1011 = 1111
Geser (wrapping) hasil ini satu bit ke kiri: 1111
Jadi, C5 = 1111 (atau F dalam HEX)

Hasil Enkripsi (Cipherteks) CBC : 27FDFH


Contoh Dekripsi
Cipherteks: 27FDFH
Plainteks dalam biner :
001001111111110111112
Membagi plainteks dalam blok blok 4 bit :
0010 0111 1111 1101 1111
C1 C2 C3 C4 C5
Kunci (K) : 1011, atau B dalam hexa
Kemudian IV diberikan user seluruhnya bit 0, maka C0 = 0000.

Fungsi dekripsi D dengan meng-XOR-kan blok cipherteks Ci (yang sudah digeser bit-
bitnya satu posisi kekanan) dengan K.
Contoh Dekripsi
C1 : 0010, Geser (wrapping) C1 satu bit ke kanan: 0001
Fungsi D diperoleh sebagai berikut:
0001  K = 0001  1011 = 1010
P1 diperoleh sebagai berikut:
1010  C0 = 1010  0000 = 1010
Jadi, P1 = 1010 (atau A dalam HEX)

C2 : 0111, Geser (wrapping) C2 satu bit ke kanan: 1011


1011  K = 1011  1011 = 0000
P2 diperoleh sebagai berikut:
0000  C1 = 0000  0010 = 0010
Jadi, P2 = 0010 (atau 2 dalam HEX)

C3 : 1111, Geser (wrapping) C3 satu bit ke kanan: 1111


1111  K = 0001  1011 = 0100
P3 diperoleh sebagai berikut:
0100  C2 = 0100  0111 = 0011
Jadi, P3 = 0011 (atau 3 dalam HEX)
Contoh Dekripsi
C4 : 1101, Geser (wrapping) C4 satu bit ke kanan: 1110
1110  K = 1110  1011 = 0101
P4 diperoleh sebagai berikut:
0101  C3 = 0101  1111 = 1010
Jadi, P4 = 1010 (atau A dalam HEX)

C5 : 1111, Geser (wrapping) C5 satu bit ke kanan: 1111


1111  K = 1111  1011 = 0100
P5 diperoleh sebagai berikut:
0100  C4 = 0100  1101 = 1001
Jadi, P5 = 1001 (atau 9 dalam HEX)

Hasil Dekripsi (Plainteks) CBC : A23A9H


Penggunaan mode of operation

Mode enkripsi CBC berbeda dengan algoritma block cipher biasa. Dalam CBC
terdapat penambahan XOR pada tiap block plaintext ke block ciphertext dan juga
tiap block ciphertext berikutnya bergantung dengan block ciphertext sebelumnya.
Penggunaan mode of operation

Pada mode operasi CBC : hasil enkripsi dari blok


sebelumnya mempengaruhi hasil enkripsi
selanjutnya, atau enkripsi sebelumnya menjadi
feedback pada enkripsi blok saat itu.

Jadi, setiap blok ciphertext bergantung bukan hanya


pada blok plaintext-nya tapi bergantung pula pada
blok-blok plaintext sebelumnya.

Sehingga untuk plaintext yang sama, belum tentu


menghasilkan ciphertext yang sama pula.
Kelebihan & Kekurangan CBC

Kelebihan:
1. Karena blok-blok plainteks yang sama tidak menghasilkan blok-blok cipherteks
yang sama, maka menyebabkan kriptanalis menjadi lebih sulit untuk
mendekripsinya. Sebagai contoh pada Electronic Code Book (ECB) setiap
plaintext yang sama akan menghasilkan cipherteks yang selalu sama pula.

Kekurangan:
1. Kesalahan satu bit pada sebuah blok plainteks akan merambat pada blok
cipherteks yang berkoresponden dan semua blok cipherteks berikutnya.
2. Kesalahan satu bit pada blok cipherteks hanya mempengaruhi blok plainteks
yang berkoresponden dan satu bit pada blok plainteks berikutnya (pada posisi
bit yang berkoresponden pula).
Referensi
• https://www.geeksforgeeks.org/computer-network-block-cipher-
modes-of-operation diakses pada : 29 April 2019.
• Kantarcioglu, Murat. Modes of Operation.
https://www.utdallas.edu/~muratk/courses/crypto07_files/modes.pdf
diakses pada 29 April 2019.
• Munir, Rinaldi. 2004. Tipe dan Mode Algoritma Simetri (Bagian 2).
Departemen Teknik Informatika : Institut Teknologi Bandung.
• Rosmala, Dewi dan Aprian, Riki. 2012. Implementasi Mode Operasi
Cipher Block Chaining (CBC) pada Pengamanan Data. Jurnal
Informatika. Vol. 3. Hal. 55-66.
Terimakasih

Anda mungkin juga menyukai