老赵揉搓苏清雅双乳的视频_老头老太性行交视频_老同学3免费集_老师没戴套子C了我一天视频_老师的丰满大乳奶_老师把我添高潮了A片潘金莲

咨詢電話:400-6446-808

新聞動態

密碼學可證明安全性中的攻擊模型
2024-09-20 09:53:51

引言

密碼學具有極為源遠流長的發展歷史,不同于現代密碼學中密碼體制安全性對于密鑰安全性的依賴,密碼學在發展早期受限于密鑰空間的規模,安全性更依賴的是加密機制的安全性,而對于該怎樣分析并證明一個密碼體制是安全的這個問題,直到1949年香農發表的信息論之前都沒有一個完善的回答。香農信息論中基于概率理論完整的給出了通信系統安全性的相關描述,在此基礎上經過1976年Hellman等人發表的《密碼學新方向》一文的補充,密碼學正式成為了一門科學,對于如何分析密碼算法與協議的安全性開始逐漸建立起了完整的模型。

現代密碼學中主要有三種描述密碼體制安全性的標準,分別是計算安全、可證明安全和無條件安全,這三種標準出發的角度雖然不同,但都是從攻擊者的角度出發刻畫的安全性分析模型。無條件安全假設攻擊者在擁有無限的計算能力和計算資源的前提下仍然無法攻破密碼體制,這更偏向于一種理想化的安全。計算安全則是通過分析當前技術條件下攻擊者在攻擊密碼體制時能使用的最優算法,通過研究其中必要操作的執行次數與攻擊效率的關系刻畫密碼的安全性,但是受限于攻擊算法的多樣性和密碼實例的變化,實際上很難得出一個穩定的結論。

目前最廣泛接受和應用的密碼分析技術主要是基于可證明安全性理論。可證明安全中通過刻畫攻擊者的攻擊能力建立安全模型,利用安全規約的技術將攻擊者對密碼算法的攻擊轉化為對數學困難問題的攻擊,通過數學困難問題的不可破解性來證明密碼算法的安全性,其中安全模型則直接影響到安全規約的實現邏輯,換言之,攻擊者的攻擊能力直接影響到密碼算法的構造路線以及安全性的強度。

可證明安全中基于攻擊者的不同攻擊能力,主要有唯密文攻擊、已知明文攻擊、選擇明文攻擊和選擇密文攻擊幾種安全模型,這幾種模型中都假設了攻擊者具有有限的計算能力和計算資源,各自之間的不同在于攻擊者可以訪問的信息差異。

本文將從攻擊者的不同攻擊能力出發,對可證明安全中幾種主要的安全模型進行簡要介紹。

一、唯密文攻擊

唯密文攻擊(Ciphertext Only Attack, COA)是指攻擊者在僅僅知道密文的情況下進行攻擊求解密鑰,攻擊者可以利用密碼算法的特點以及明文空間的統計特性等,通過對密文進行分析從而發起攻擊。

圖 1 英文字母頻率表

 

大多數的古典密碼算法在唯密文攻擊下都是不安全的,如凱撒密碼、仿射密碼等,其根本原因在于這些算法都是確定性算法,在相同密鑰下加密同一個明文得到的密文始終是相同的,因此密文空間和明文空間保持了相同的統計特性。例如在凱撒密碼中,明文空間和密文空間都是26個英文字母,經過統計語言規律可以總結出明文中每個字母出現的頻率表如圖 1,攻擊者可以收集大量密文分析其中每個字母出現的頻率,由于E在明文空間中的統計概率是最高的,攻擊者就可以猜測密文中出現頻率最高的字母對應的是E的加密,從而確定出密鑰。對于更復雜的維吉尼亞密碼,則可以使用Kasiski測試法和指數重合法分析密文,其本質仍然是利用確定性算法帶來的相同明文對應的密文不變特點和明文空間的統計特性實現的。

在香農的信息論問世后,密碼算法就開始逐漸向著概率性算法發展,此時由于明文和密文不再具有相同的統計特性,唯密文攻擊的攻擊難度逐漸上升,例如目前唯密文攻擊的主要方式便是通過窮舉法進行爆破,通過設置一個足夠大的密鑰空間抵抗這種攻擊基本是可以輕易實現的。但需要說明的是這并不意味著在唯密文攻擊下安全的密碼算法就一定具有很高的安全性,因為唯密文攻擊中做了很強的假設來限制攻擊者的攻擊能力,即攻擊者除了密文之外得不到任何其他信息,但在實際中攻擊者其實可以很輕易的收集到明文-密文對,甚至構造特殊明文發起攻擊??傮w而言,一個在越強假設的安全模型下證明安全的算法可能在實際場景中呈現出更弱的安全性。

二、已知明文攻擊

已知明文攻擊(Known Plaintext Attack, KPA)中假設攻擊者知道有限數量的明文-密文對,攻擊者通過分析明文-密文對之間的關系來發起攻擊。不同于唯密文攻擊中利用統計特性發起攻擊的方法,已知明文攻擊通常是利用密碼算法實現機制中的漏洞結合已知的明密文對進行分析從而得到密鑰的相關信息。

一個典型的例子是二戰時圖靈破解恩格瑪密碼機的過程,由于德軍特殊的發文習慣使得電文內容具有固定的格式,圖靈便從電文的固定格式中分析出密文中一定會包含的某些特定詞語的加密,并利用恩格瑪機中明文不會被加密為自身的特點從截獲的大量電文中分析出這些詞語對應的密文,從而破解了使用的密鑰。

在現代密碼學中已知明文攻擊的一種普適方法是線性密碼分析技術,這種技術在理論上適用于對任何序列密碼的攻擊。線性密碼分析的思想在于通過分析SPN網絡的結構(主要是S盒的結構),攻擊者可以確定出SPN網絡中一個輸入的明文比特子集與網絡最后一輪代換的輸入比特集之間的概率線性關系,較為直觀的理解是:在理想的加密算法中,輸入的明文比特經過網絡中前面所有輪的代換后的輸出(也就是最后一輪代換的輸入)取值為0或1的概率應該是相等且為1/2的,但是由于實際S盒的結構呈現的偽隨機特性,這個輸出通常會顯示出一定的概率偏差,攻擊者利用這個偏差的概率可以計算出一個線性逼近式,通過利用持有的明-密文對,測試所有可能的候選密鑰進行最后一輪解密的結果對上述的線性概率關系是否成立,實現最后一輪子密鑰的恢復,Matsui等人在1993年便是利用這種技術成功破解了DES算法。

三、選擇明文攻擊

選擇明文攻擊(Chosen Plaintext Attack, CPA)具有比唯密文攻擊和已知明文攻擊更強的安全性,他主要提供的是一種抵抗被動攻擊的安全性,該模型中假設攻擊者可以自己隨意選擇或構造明文,并獲得其對應的密文,攻擊者利用密碼體制可能存在的漏洞結合自己構造的明文特殊結構實現攻擊。這種攻擊模式在公鑰密碼學中尤為常見,因為公鑰密碼學中的公鑰是公開的,攻擊者可以任意的構造明文并使用公鑰加密。

選擇明文攻擊的一種典型例子是對DES的差分密碼分析技術。通常我們把兩個輸入比特串x1和x2之間的異或值定義為這兩個輸入的差分值,其對應的輸出y1和y2之間的異或值定義為輸出的差分值,對于一個理想的隨機置換,所有相同差分值的輸入對應的輸出差分值應該是一個均勻的分布,輸出差分值對應的每種取值概率都是,其中是分組的長度,但是由于SPN網絡的偽隨機特性,實際加密過程中得到的輸出差分值往往會在某些取值上顯著偏離這個期望概率,攻擊者通過在最后一輪加密中收集這些偏離明顯的差分對,之后利用線性密碼分析中類似的手段對每一種可能的子密鑰進行測試找到最符合概率偏離值那一個從而實現密鑰恢復。在這個過程中,攻擊者選擇了所有具有相同差分值的輸入明文,因此是一種典型的選擇明文攻擊。

四、選擇密文攻擊

選擇密文攻擊(Chosen Ciphertext Attack, CCA)是在選擇明文攻擊的基礎上進一步增強攻擊者的攻擊能力和可利用資源提出的一種安全模型,在選擇明文攻擊抵抗被動攻擊的基礎上完善了算法在面臨攻擊者發起主動攻擊時的安全性。并且在公鑰密碼領域,由于可證明安全主要面對的安全目標是密碼體制在已知公開參數情況下的不可區分性語義安全,因此選擇明文攻擊與選擇密文攻擊逐漸成為了公鑰算法安全性分析中主要使用的分析模型。受限于篇幅本文中將主要通過一個對稱密碼下的例子簡要介紹選擇密文攻擊的特點。

選擇密文攻擊模型中假設攻擊者在選擇明文攻擊的基礎上,還具有訪問解密喻言機的能力,即攻擊者可以選擇或構造任意對自己有利的密文,并欺騙密鑰持有者為自己進行解密。本文簡單引用Dan Bohen在斯坦福密碼學公開課中使用過的例子說明攻擊者利用選擇密文攻擊竊取不屬于自己的通信消息的方法。假設在服務器上有兩個不同端口的進程,其中一個端口號為80,另一個為攻擊者與服務器的通信端口,假設為25,通信流量在網絡層使用了隨機IV的CBC模式進行加密,當服務器接收到加密流量后會進行解密并且TCP協議棧會轉發目的地址為25端口的流量發送給攻擊者。攻擊者已知根據CBC模式的加密規則,即第一個明文分組會與IV進行異或得到第一個密文分組,并且從報文結構中攻擊者知道第一個密文分組其實是對目標端口的加密,那么假設攻擊者希望竊取所有發送給80端口的消息,他可以在劫持網絡層的流量后,通過對第一個密文分組異或上80端口從而抵消密文中原有的目標端口,之后再異或自己的25端口從而實現將發往80端口的流量篡改為發給自己,由于這種篡改并沒有改變密文的合規性,服務器將會自然的接收并解密這個密文。

顯然,選擇密文攻擊的核心在于攻擊者發起主動攻擊時可以輕易破壞密文的完整性從而實現篡改消息,事實上在實際密碼應用場景中,分組加密算法通常只能滿足選擇明文攻擊下安全性,因此需要和消息鑒別碼或數字簽名配套使用,以此為接收方提供一種對明文的完整性進行鑒別的方法,從而實現在選擇密文攻擊下的安全性。

欢迎光临: 河曲县| 当阳市| 申扎县| 宜兴市| 安泽县| 侯马市| 乌拉特后旗| 扶风县| 汾阳市| 融水| 连州市| 溆浦县| 逊克县| 马公市| 吉安县| 冀州市| 开封县| 鲜城| 辽源市| 平原县| 靖远县| 吉木萨尔县| 团风县| 新龙县| 唐山市| 福海县| 黎城县| 平利县| 津南区| 墨脱县| 宜昌市| 安徽省| 乳源| 麻城市| 招远市| 句容市| 文成县| 定西市| 利川市| 庆阳市| 和静县|