CBC ( Cipher - block chaining ) Mode 的概念是 在加密前,會先與前一個密文做 XOR ,
但因為第一個密文前面已經沒有東西了,所以會有 " iv "
" iv " 是避免相同的明文由相同的密文所產生,而且 " iv " 的產生方式必須是隨機的,本身可以公開,不用保護,
每次用都不同,跟免洗餐具一樣,用完就丟,像極了愛情~~
" CBC " 最大的特色就是 第 X 個密文區塊,會影響第 X+1 個密文區塊,
當我們要加密時,必須從第二組密文開始,然後與第一行的明文做 XOR ,
所以我們可以得到這行式子 : decryption ( c2 ) XOR c1 = p2
而 " CBC " 最常受到的就是 Padding Oracle attack ( CBC 位元反轉攻擊 ) 又稱 bit - flipping attack
是只知道 " iv " 的情況下,所進行的攻擊,
舉例來說:
第一組明文的最後一個 bit 是 " 0 " ,而我們透過位元翻轉讓他變成 " 1 " ,
而當我們在加密時,就會使第二組的明文的最後一個 bit 變號翻轉