CBC-MAC

Chipper Block Chaining Message Authentication Code

Blok cipher merupakan algoritma kriptografi simetrik yang mengenkripsi satu blokplaintext dengan jumlah bit tertentu dan menghasilkan blok ciphertext dengan jumlah bit yang sama. Misalkan ukuran blok plaintext yang dienkripsi adalah 64 bit, maka akan menghasilkan ciphertext yang berukuran 64 bit.(https://cryptobounce.wordpress.com/2008/06/19/block-cipher/)
  • Pada cipher blok chaining (CBC), setiap blok plaintext adalah XOR dengan blok cipherteks sebelumnya sebelum dienkripsi.
  • Setiap blok ciphertext bergantung pada semua blok plaintext yang diproses.
  • Pada mode operasi ini 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.
Skema dari mode operasi

Penjelasan skema enkripsi :

Mula-mula sebelum si pengirim hendak mengirimkan pesannya kepada si penerima, dia terlebih dahulu harus meng-XOR plaintext dengan IV (initialization vector) baru kemudian dienkripsi, setelah itu baru dikirimkan ciphertext pertamanya kepada si penerima.

Untuk plaintext ke-2 dan seterusnya, sebelum dienkripsi, dia harus di-XOR terlebih dahulu dengan ciphertext sebelumnya. Setelah dienkripsi, baru pesan tersebut dapat dikirimkan ke si penerima sebagai ciphertext 2 dan seterusnya.

  • Pada enkripsi blok pertama C0 = IV (initialization vector).
  • IV diberikan oleh pengguna atau dibangkitkan secara acak oleh program. IV tidak bersifat rahasia.
  • Jadi untuk menghasilkan blok cipherteks pertama (Ci), IV digunakan untuk menggantikan blok cipherteks sebelumnya C0.
  • Sebaliknya pada dekripsi, blok plainteks pertama dieroleh den cara meng-XOR-kan IV dengan hasil dekripsi terhadap blok cipherteks pertama.
  • Secara matematis enkripsi dan dekripsi dengan mode CBC dinyatakan sebagai (1) Ci = EK ( Pi Å Ci-1) à enkripsi (2) Pi = DK ( Ci Å Ci-1) à dekripsi

Contoh Proses Enkripsi:

Plainteks : 10100010001110101001

IV yang digunakan seluruhnya bit 0 (Jadi, C0 = 0000).

Penyelesaian:

Step 1

Bagi plainteks menjadi blok-blok yang berukuran 4 bit : 1010 0010 0011 1010 1001

Atau dalam notasi HEX adalah A23A9.

Step 2

C1 diperoleh dari :

P1 Å C0 = 1010 Å 0000 = 1010

Enkripsi hasil tersebut (C1) dengan fungsi E sebagai berikut :

C1 Å K = 1010 Å K = 1010 Å 1011 = 0001

Geser hasilnya satu bit kekiri = 0010

Jadi C1 = 0010 (atau “2” dalam HEX)

Step 3

C2 diperoleh dari :

P2 Å C1 = 0010 Å 0010 = 0000

Enkripsi hasilnya dengan fungsi E adalah :

C2 Å K = 0000 Å K = 0000 Å 1011 = 1011

Geser hasilnya satu bit kekiri = 0111

Jadi C2 = 0111 (atau “7” dalam HEX)

Step 4

C3 diperoleh dari :

P3 Å C2 = 0011 Å 0111 = 0100

Enkripsi hasilnya dengan fungsi E adalah :

C3 Å K = 0100 Å K = 0100 Å 1011 = 1111

Geser hasilnya satu bit kekiri = 1111

Jadi C3 = 1111 (atau “F” dalam HEX)

Step 4

C3 diperoleh dari :

P3 Å C2 = 0011 Å 0111 = 0100

Enkripsi hasilnya dengan fungsi E adalah :

C3 Å K = 0100 Å K = 0100 Å 1011 = 1111

Geser hasilnya satu bit kekiri = 1111

Jadi C3 = 1111 (atau “F” dalam HEX)

Step 5 dan Step 6 dilakukan dengan cara yang sama

  • Sehingga untuk Plainteks : A23A9
  • Cipehrteks (mode ECB) : 23124
  • Cipherteks (mode CBC) : 27FBF
  • Terlihat pada mode CBC, enkripsi terhadap plainteks “A” menghasilkan cipher yang berbeda, yaitu 2 dan B. Sedangkan pada mode ECB, plaintext “A” menghasilkan nilai yang sama, yaitu “2”.
Keuntungan Mode CBC :
1. Karena blok-blok plainteks yang sama tidak menghasilkan blok-blok cipherteks yang sama, maka menyebabkan kriptanalis menjadi lebih sulit untuk mendekripsinya.
Kelemahan Mode CBC :
1. Karena blok cipherteks yang dihasikan selama proses enkripsi bergantung pada blok –blok cipherteks sebelumnya, maka kesalahan satu bit pada sebuah blok plainteks akan merambat pada blok cipherteks yang berkoresponden dan semua blok cipherteks berikutnya.
2. Kesalahan bit cipheteks biasanya terjadi karena adanya gangguan saluran komunikasi data selama transmisi atau malfunction pada media penyimpanan.

Persoalan Keamanan Yang Muncul Pada Mode CBC

  1. Karena blok cipher mempengaruhi blok-blok berikutnya, pihak lawan dapat menambahkan blok cipherteks tambahan pada akhir pesan terenkripsi tanpa terdeteksi.
  2. Pihak lawan dapat mengubah cipherteks, misalnya mengubah sebuah bit pada suatu blok cipherteks.