cbc字節翻轉攻擊

本來很久之前就應該把它學了,但是不能靜下心看完,拖到現在.........

今天上課的時候跟cg一起看,抱着神仙的大腿將它看完了,cg牛逼!!

首先我們先看下他的加密過程

可以看到,它先將明文進行分塊,第一塊與初始變量異或,然後祕鑰進行加密,得到的密文再與第二塊明文進行異或,繼續祕鑰加密,以此類推,加密過程有個最顯著的特點就是:前一個密文用來產生後一個密文

接下來是解密的過程,其實懂了加密的過程,解密得過程就是加密的逆推過去

將密文進行分塊,第一塊先祕鑰解密,然後再去跟初始變量進行異或,得出來的是第一塊明文,第二塊密文祕鑰解密,然後與第一塊密文進行異或,得到第二塊密文,以此類推,同樣的,前一塊的密文也會參與後一塊密文的解密

接下來就講翻轉攻擊,先給張圖

可以看到,因爲加密過程密文和明文其實都是可控的,假設第一塊密文爲A,第二塊密文祕鑰加密以後是B,第二塊明文是C

由圖可以得到

C=A^B,也就有A^B^C=0,即是B=A^C

假設我們現在將第一塊密文替換成A^C,這樣的話第二塊明文(也就是原來的C)就會變成A^C^B,剛好是0,如果再改一下,異或多一個X的話,那麼第二塊明文就可以變成是我們可控的了,即是A^C^X^B=0^X=X,至於爲什麼不用B直接異或B,這是因爲B祕鑰加密的過程難以破解。

到了這裏,cbc翻轉攻擊的原理就全部講完了,這裏順便給一題,bugku的login4

https://blog.csdn.net/xiaorouji/article/details/81988296#t52

萌新的一些見解,還請大佬們多多指教,給大佬遞茶.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章