12
Kunci private adalah kunci rahasia yang tidak boleh diketahui oleh orang lain. Kunci private digunakan dalam proses dekripsi [3].
2.2.3 Block Cipher dan Mode Operasi
Sebuah block cipher adalah sebuah fungsi yang memetakan n-bit blok plaintext menjadi n-bit ciphertext Menezes, 1996. Fungsi tersebut terdiri dari
sebuah algoritma dan sebuah kunci. Hasil pemetaan dari plaintext ke ciphertext akan berbeda-beda tergantung pada kunci yang digunakan. Baik cryptography
simetris maupun cryptography asimetris bisa merupakan block cipher. Untuk plaintext yang panjangnya lebih besar dari n-bit perlu dipilih mode
operasi untuk menentukan cara enkripsidekripsi plaintext tersebut. Ada beberapa pilihan mode operasi yang bisa diterapkan antara lain Electronic CodeBook
ECB, Cipher Block Chaining CBC, Cipher FeedBack CFB, Output FeedBack OFB. Keempat mode operasi ini memiliki kelebihan dan kekurangan
masing-masing. Untuk penelitian dalam skripsi ini mode operasi yang digunakan hanya ECB dan CBC saja [3].
2.2.3.1 Mode Operasi ECB Electronic Code Book
Mode operasi ECB membagi-bagi plaintext menjadi blok-blok yang panjangnya n-bit dan masing-masing blok dienkripsi secara terpisah dengan
menggunakan kunci yang sama. Dengan demikian, untuk blok n-bit plaintext yang sama dalam satu pesan akan menghasilkan n-bit ciphertext yang sama pula.
13
M
i-1
M
i
M
i+1
C
i-1
C
i
C
i+1
C
i
= E
k
M
i
; M
i
= E
k
C
i
Gambar 2.3 Mode Electronic Code Book ECB Dari gambar di atas dapat dilihat plaintext dipecah menjadi urutan yang terdiri
dari blok-blok n-bit, M
i-1
, M
i
, M
i+1
dengan hasil enkripsinya berupa blok-blok ciphertext n-bit, C
i-1
, C
i
, C
i+1
[3].
2.2.3.2 Mode Operasi CBC Cipher Block Chaining
Salah satu alternatif untuk mencegah munculnya blok-blok ciphertext yang sama dari blok plaintext yang sama pada satu pesan adalah dengan menggunakan
mode CBC. Pada skema ini setiap blok n-bit plaintext di-XOR-kan dengan blok n- bit ciphertext sebelumnya. Kecuali blok plaintext pertama di-XOR-kan dengan
suatu konstanta awal atau initialization vector IV, sebesar n-bit. Hasil dari proses XOR tersebut yang kemudian dienkripsi.
Untuk proses dekripsi, hasil dekripsi blok ciphertext di-XOR-kan dengan blok ciphertext sebelumnya untuk menghasilkan blok plaintext. Untuk blok
pertama, hasil dekripsi blok ciphertext pertama di-XOR-kan dengan IV untuk menghasilkan blok plaintext pertama. Walaupun nilai IV tidak perlu dirahasiakan
akan tetapi integritas dari nilai IV harus dilindungi [3]. E
k
E
k
E
k
14
M
1
M
2
M
3
C
C
1
C
2
C
3
C
i
= E
k
C
i-1
⊕ M
i
; M
i
= C
i-1
⊕ D
k
C
i
Gambar 2.4 Mode Cipher Block Chaining CBC
2.2.3.3 Mode Operasi CFB Cipher Feedback
Dalam mode Cipher Feedback CFB blok ciphertext sebelumnya di- enkrip dan outputnya digabungkan dengan blok plaintext dengan menggunakan
XOR untuk menghasilkan blok ciphertext sekarang. Kita dapat mendefinisikan mode CFB sedemikian hingga mode tersebut menggunakan feedback yang lebih
kecil dari 1 blok penuh data. Sebuah vektor inisialisasi C digunakan sebagai
sebuah “seed” untuk prosesnya, seperti terlihat pada Gambar 2.5 di bawah ini [3]. M
1
M
2
M
3
C C
1
C
2
C
3
C
i
= E
k
C
i-1
⊕ M
i
; M
i
= E
k
C
i-1
⊕ C
i
Gambar 2.5 Mode Cipher Feedback E
k
E
k
E
k
E
k
E
k
E
k
15
2.2.3.4 Mode Output Feedback