期末複習:信息安全(二)

密碼學概論

🔖基本術語
密碼學:研究信息系統安全保密的科學
密碼編碼學:研究對信息進行編碼,實現對信息的隱蔽
密碼分析學:研究加密消息的破譯或消息的僞造
明文:消息被稱爲明文
加密:用某種方法僞裝消息以隱藏明文內容的過程
密文:被加密的消息
解密:把密文轉變爲明文的過程
密碼算法:用於加密和解密的數學算法
加密算法:密碼元對明文進行加密操作所採用的一組規則
接收者:所傳送消息的預定對象
解密算法:接收者對密文解密所採用的一組規則
🔖加密過程
加密和解密算法的操作通常都是在一組密鑰的控制下進行的,分別稱爲加密密鑰和解密密鑰。
密碼體制,一個五元組(P,C,K,E,D)滿足條件:P是可能明文的有限集(明文空間),C是可能密文的有限集(密文空間),K是一切可能密鑰構成的有限集(密鑰空間)。
加密算法基本原理:代替:明文中的元素映射成另一個元素,置換:重新排列。要求:不允許信息丟失,即算法可逆。
🔖密碼算法分類
按照保密的內容分:受限制的算法:保密性基於保持算法的祕密;基於密鑰的算法:保密性基於對密鑰的保密。
基於密鑰的算法、按照密鑰的特點分類:對稱密碼算法:加密密鑰和解密密鑰相同,或實質上等同,即從一個易推出另一個,又稱祕密密鑰算法或但密鑰算法;非對稱密鑰算法:加密密鑰和解密密鑰不相同,從一個很難推出另一個,又稱公開密鑰算法。(雙密鑰體制又稱爲非對稱密碼體制和公開密鑰密碼體制。雙密鑰雙密鑰體制有兩個密鑰,一個是公開的密鑰,用K1表示,誰都可以使用;另一個是私人密鑰,用K2表示,只由採用此體制的人自己掌握。從公開的密鑰推不出私人密鑰。)
公鑰體制特點:加密密鑰K公,公開。解密密鑰K私,保密。優點:使得密鑰分配相對容易。
按照明文的處理方法:分組密碼(將明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文);流密碼(又稱序列密碼。序列密碼每次加密一位或一字節的明文,也可以稱爲流密碼)。關鍵區別:分組密碼裏相同的明文分組被加密成同樣的密文,而序列密碼不是。
🔖密碼分析學
唯密文攻擊、已知明文攻擊、選擇明文攻擊、選擇密文攻擊、選擇文本攻擊、窮舉攻擊(殭屍主機–密碼口令單一簡單)。
🔖密碼的安全性
無條件安全
理想上的安全,實際上無法達到。無論破譯者有多少密文,他也無法解出對應的明文,即使他解出了,他也無法驗證結果的正確性。(除一次一密鑰,都不是無條件安全)。
計算上安全
🌸破譯的代價超出信息本身的價值
🌸破譯的時間超出了信息的有效期
🔖現代密碼學基本原則
設計加密系統時,總假定密碼算法是可以公開的,需要保密的是密鑰。"一切祕密在於密鑰之中,而加密算法可以公開"即Kerchhoff原則。
對加密系統的要求:
系統應該是實際上安全的,至少經受已知明文攻擊。
加密解密算法適用於密鑰空間中的所有元素。
系統易於實現,使用方便。
系統的安全性不依賴於對加密體制或加密算法的保密,而依賴於密鑰。
系統的使用不應使通信網絡的效率過分降低。

🔖密碼學的起源和發展
1949年之前:密碼學是一門藝術
1949~1975年:密碼學成爲科學
1976年以後:密碼學的新方向–公鑰密碼學
(1976年Diffle&Hellman的"New Directions in Cryptography"提出了不對稱密鑰密碼,1977年Rivest,Shamir&Adleman提出了RSA公鑰算法)
公鑰密碼使得發送端和接收端無密鑰傳輸的保密通信稱爲可能!
(1977年DES正式稱爲標準800現代出現"過渡性"的"post DES"算法,如IDEA,RCx,CAST等)
🔖經典密碼體制
經典密碼體制採用手工或機械操作實現加解密,相對簡單。回顧和研究這些密碼的原理和技術,對於理解、設計和分析現代密碼仍然具有借鑑的價值。

  • 代替密碼:就是明文中的每一個字符被替換成密文中的另一個字符。接收者對密文做反向替換就可以恢復出明文。
    簡單代替密碼;多字母代替密碼(明文中的字符映射到密文空間的字符還依賴於它在上下文的位置)
    已知的最早(也是最簡單的方式)的簡單替代密碼是朱里斯·凱撒使用的密碼,凱撒密碼是把字母表中的每個字母用該字母后面第3個字母進行代替。
  • 置換密碼:又稱換位密碼(transposition cipher),明文的字母保持相同,但順序被打亂了。
    🔖仿射密碼
    仿射密碼是對移位密碼的擴展。
    在這裏插入圖片描述
    仿射密碼中b可以在1~25中任意選擇,a一定要有逆元,和26互素。如果不互素,則不同的明文被加密成相同的密文,這樣在解密時就有歧義,解決方法:合理選取密鑰,要求a和26互素,即gcd(a,26)=1,互素纔有"逆"
    🌸逆元,討論在餘數集合上進行。
    加法逆元:如果a+b≡0 mod n,互爲加法逆元。
    乘法逆元:如果axb≡1 mod n,則互爲乘法逆元。(定義a的乘法逆元a^-1a≡1 mod n),顯然可交換。
    並不是每個元素都有乘法逆元,概括爲解方程ax≡1 mod n
    🔖任意的單標代替密碼算法
    任意的單標代替密碼算法可由統計的方式破譯。
    🔖多字母代替密碼
    Playfair:將明文中的雙字母組合作爲一個單元對待,並將這些單元轉換爲密文的雙字母組合。
    5x5變換矩陣:I與J視爲同一字符
    在這裏插入圖片描述
    Playfair有26x26=676種字母組合,字母頻率的攻擊比較困難。
    🔖置換密碼
    斯巴達密碼棒(置換指的是位置上的變換)
    在這種密碼中最簡單的是柵欄技術,在該密碼中以角色順序寫下明文,並以行的順序讀出。(按列寫,按行讀)。
    更爲複雜的方式是以一個矩陣逐行寫出消息,再逐列讀出該消息。該方法以行的順序排列,列的階則成爲該算法的密鑰,密鑰包含3方面信息:行寬、列高、讀出順序。
    在這裏插入圖片描述
    完全保留字符的統計信息。
    使用多輪加密可提高安全性。
    置換密碼不改變字母的出現頻率
    🔖密碼分析
  • 唯密文攻擊:密碼分析者僅知道有限數量用同一個密鑰加密的密文
  • 已知明文攻擊:密碼分析者除了擁有有限數量的密文外,還有數量限定的一些已知"明文-密文"對
  • 選擇明文攻擊:密碼分析者除了擁有有限數量的密文外,還有機會使用注入了未知密鑰的加密機,通過自由選擇明文來獲取所希望的“明文—密文”對
  • 選擇密文攻擊:密碼分析者除了擁有有限數量的密文外,還有機會使用注入了未知密鑰的解密機,通過自由選擇密文來獲取所希望的“密文—明文”對
    這一切的目的在於破譯出密鑰或密文
    🌸攻擊方法
    在這裏插入圖片描述
  • 窮舉破譯法
    對截獲的密文依次用各種可能的密鑰試譯,直到獲得有意義的明文;或者利用對手已注入密鑰的加密機(比如繳獲得到),對所有可能的明文依次加密直到得出與截獲的密文一致的密文。
    對策:將密鑰空間和明文空間設計得足夠大。
  • 確定性分析法
    方法:利用密文或者明文—密文對等已知量以數學關係式表示出所求未知量(如密鑰等),然後計算出未知量。
    對策:設計具有堅實數學基礎和足夠複雜的加密函數。
  • 統計分析法
    方法:密碼破譯者對截獲的密文進行統計分析,找出其統計規律或特徵,並與明文空間的統計特徵進行對照比較,從中提取出密文與明文間的對應關係,最終確定密鑰或明文。
    對策:擾亂密文的語言統計規律。
  • 物理破譯法
    利用加密執行時的物理現象來確定密鑰的密碼分析方法,也被稱爲“邊信道攻擊”(side-channel attack)。所利用的物理現象有密碼算法執行器件(加密芯片)的功耗,各算法步執行時間度量,甚至主機執行加密任務時主板上電容器發出的聲音等等。
    🔖課後提問
    1.爲什麼雙字母替換密碼比單字母替換更安全?
    單字母26,雙字母組合26x26比單字母更多一些,字母頻率相對會分得比較均勻,區分開有難度。
    2.爲什麼兩個相對簡單的額密碼(如替代和換位)的積可以將安全提高到較高層次?
    密鑰空間更大。
    3.計算22關於模31的乘法逆元、28關於模75的乘法逆元、269關於模349的乘法逆元?
    仿射密碼是凱撒密碼和移位密碼的擴展,單表代換容易遭受字頻或者詞頻攻擊,可用雙字母替換來解決(多表代換Hill或者Veginia),柵欄密碼基於矩陣(矩陣的寬度、高度和順序), Engima(置換密碼)三個輪轉機。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章