在RSA攻擊中,存在著“小明文攻擊“的方式;
在明文夠小時,密文也夠小,直接開e次方即可;
在明文有點小時,如果e也較小,可用pow(m,e)=n*k+c窮舉k嘗試爆破
所以,比如說,在選擇明文攻擊中,單純的RSA非常容易被破解。
於是,我們就像將密文進行一下填充,最好讓密文都等長。
但是填充方式也是很講究的;不好的填充規則往往僅僅有限的增加了攻擊的難度,或者難以實現等長密文。
於是我們就查到了(bushi)OAEP——最優非對稱加密填充。
最優非對稱加密填充:
(1)準備工作:
將k位元內容轉化為m位元內容的 公共單向函式G
將m位元內容轉化為k位元內容的 公共單向函式H
(2)Alice的加密過程:
最初有一個小於m位元的資訊。它填充這個資訊來獲得一個m位元的資訊M
選擇一個k位元的隨機數r。
運用G和r生成一個m位元的整數G(m,r),並丟棄r。
運用G(m,r)生成明文的第一部分c1=M xor G(m,r),並生成明文的第二部分c2=H(P1) xor r
最後,運用c1,c2生成密文C
(3)Bob的解密過程(?):
大概是,運用H找到G(m,r)並,運用G(r)找到資訊。
當OAEP與RSA結合:
關於“在加密中引入隨機化的作用”:
大量對教科書式加密演算法的攻擊都是這樣取樣一種通用技術:篡改密文從而以一種可控的方式修改相應的明文。
然而,OAEP有良好的特性;因此,如果攻擊者想篡改密文,就會導致明文的改變是不可控的,
因為使用了雜湊函式,在保證雜湊函式的安全性下(比若說單向性、抗碰撞性等),很難找到一個有效的hash值,其對應的明文是有效的。
即:如果攻擊者試圖以適應性的方式修改密文,那麼資料完整性檢驗將以“壓倒性”概率失敗,並且解密結果為一條沒有任何意義的明文。
注:因為在查閱相關資料和文獻時,幾乎沒有背景知識,甚至是初次接觸“填充”;
所以,我對“在加密中引入隨機化的作用”可能有偏差;並留下疑問作為可能會填的坑:
(1)其實感覺一切都沒完全懂。
(2)關於填充。(加密描述和“作用”中都直接跳過了這部分的敘述)
參考:
https://www.cnblogs.com/akira90/archive/2012/11/19/2778234.html
https://blog.csdn.net/qq_39743001/article/details/117249884?utm_source=app&app_version=4.16.0