日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

密码学系列之二:密码学基本概念

發布時間:2024/8/1 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 密码学系列之二:密码学基本概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

密碼學基本概念

  • 1. 密碼系統模型
  • 2. 柯克霍夫假設
  • 3.密碼體制分類
  • 4.密碼體制的攻擊
  • 5.密碼體制的安全性
    • 5.1 無條件安全
    • 5.2 有條件安全

1. 密碼系統模型

一個密碼系統(體制)至少由明文、密文、加密算法和解密算法、密鑰五部分組成。

  • 明文:信息的原始形式成為明文(Plaintext)
  • 密文:經過變換加密的明文稱為密文(Ciphertext)
  • 加密:對明文進行編碼生成密文的過程稱為加密(Encryption), 編碼的規則稱為加密算法。
  • 解密:將密文恢復出明文的過程稱為解密(Decryption),解密的規則稱為解密算法。
  • 密鑰(Key):是唯一能控制明文與密文之間變換的關鍵,分為加密密鑰和解密密鑰。


對于密碼系統(P,C,K,e,d)(P,C,K,e,d)(P,C,K,e,d),其中:

  • PPP為明文空間
  • CCC為密文空間
  • KKK為密鑰空間
  • eee為加密函數
  • ddd為解密函數

滿足:?k∈K\forall k \in K?kK, ?ek:P→C?ek:P→C\exists e_k:P \to C \qquad \exists e_k:P \to C?ek?:PC?ek?:PC使得?x∈P\forall x \in P?xP,均有:dk(ek(x))=xd_k(e_k(x))=xdk?(ek?(x))=x

2. 柯克霍夫假設

柯克霍夫原則(KerckhoffsPrinciple),又稱柯克霍夫假設(Kerckhoffs Assumption)或柯克霍夫公理(Kerckhoffs Axiom),是荷蘭密碼學家奧古斯特·柯克霍夫(Auguste Kerckhoffs)于1883年在其名著《軍事密碼學》中闡明的關于密碼分析的一個基本假設:密碼系統的安全性不應取決于不易改變的算法,而應取決于可隨時改變的密鑰,這就是設計和使用密碼系統時必須遵守的。即加密和解密算法的安全性取決于密鑰的安全性,而加密/解密的算法是公開的,只要密鑰是安全的,則攻擊者就無法推導出明文。

3.密碼體制分類

密碼體制根據使用密鑰策略的不同,分為對稱密制(Symmetric Key Cryptosystem)和非對稱密碼體制(Asymmetric Key Cryptosystem)。

(1)對稱密碼體制
對稱密碼體制又稱單鑰密碼體制(One KeyCryptosystem)或秘密密鑰密碼體制(secret Key Cryptosystem)。對稱密碼體制中,密鑰必須完全保密,且加密密鑰和解密密鑰相同,或其中的一個可以很容易地推出另一個。典型算法有DES、3DES、AES、IDEA、RC4、A5、SEAL等。

對稱密碼體制的密鑰相對較短,密文的長度往往與明文長度相同,具有較快的加解密速度,易于硬件實現。但發送方如何安全、高效地把密鑰送到接收方是對稱密碼體制的軟肋,往往需要“安全通道”;此外稱密碼體制密鑰量大,難于管理。多人用對稱密碼算法進行保密通信時,其密鑰組合會呈指數級增長,如n個人用對稱密碼體制相互通信,每個人擁有n-1個密鑰,共需n(n-1)個密鑰。

(2)非對稱密碼體制
非對稱密碼體制又稱為雙鑰密碼體制(Double Key Cryptosystem)或公開密鑰密碼體制(Public Key Cryptosystem)。非對稱密碼體制中用一個密鑰進行加密,而用另一個進行解密,加密密鑰和解密密鑰不相同,并且從一個很難推出另一個。其中一個密鑰可以公開,稱為公鑰(pulic key);另一個密鑰是必須保密,只有擁有者才知道,稱為私鑰(private key),從公鑰推出私鑰在計算上困難或者不可能。典型算法有RSA、ECC、Rabin、Elgamal和NTRU等。

非對稱密碼體制主要是為了解決對稱密碼體制中密鑰分發和管理的問題提出的。每個用戶對外公布自己的公鑰,并保存好自己的私鑰,n個用戶僅需產生n對密鑰,即密鑰總量為2n。但與對稱密碼體制相比,非對稱密碼體制加解密速度較慢,密鑰較長,密文長度往往大于明文長度。

4.密碼體制的攻擊

密碼分析學,俗稱密碼破譯,是伴隨著密碼編碼學而產生的分析或破解各種密碼體制的學科,指密碼分析者在不知道解密密鑰的條件下對密文進行分析,試圖得到明文或密鑰的過程。根據密碼分析者可獲得的密碼分析的信息量將密碼體制的攻擊劃分為以下5種類型:

(1)唯密文攻擊(Ciphertext Only Attack)
密碼分析者除了擁有截獲的密文外(密碼算法公開),無其他可以利用的信息。密碼分析者的任務是恢復盡可能多的明文,或者最好是能推算出加密消息的密鑰的信息。一般采用窮舉搜索法文的嘗試,直到得到有意義的明文。理論上窮舉搜索是可以成功的,但實際上任何一種能保障安全要求的復雜度都是實際攻擊者無法承受的。在這種情況下進行密碼破譯是最困難的,經不起這種攻擊的密碼體制被認為是完全不安全的。

(2)已知明文攻擊(Known Plaintext Attack)
密碼分析者不僅掌握了相當數量的密文,還有一些已知的明-密文對可供利用。密碼分析者的任務是用加密信息推出密鑰或導出一個算法,該算法可對用同一密鑰加密的任何新的信息進行解密。現代密碼體制要求不僅要經受得住唯密文攻擊而且要經受得住已知明文攻擊。

(3)選擇明文攻擊(Chosen Plaintext Attack)
密碼分析者不僅能夠獲得一定數量的明密文對,還可選擇任何明文并在使用同一未知密鑰的情況下能得到相應的密文。如果攻擊者在加密系統中能選擇特定的明文消息,則通過該明文消息對應的密文有可能確定密鑰的結構或獲取更多關于密鑰的信息選擇明文攻擊比已知明文攻擊更有效,這種情況往往是密碼分析者通過某種手段暫時控制加密機。此類攻擊主要用于公開密鑰算法,也就是說公開密鑰算法必須經受住這攻擊。

(4)選擇密文攻擊(Chosen Ciphertext Attack)
密碼分析者能選擇不同的被加密的密文,并還可得到對應的明文密碼分析者的售為是推出密鑰及其他密文對應的明文。如果攻擊者能從密文中選擇特定的密文消息,則通過該密文消息對應的明文有可能推導出密鑰的結構或產生更多關于密鑰的信息。這種情況往往是密碼分析者通過某種手段暫時控制解密機。

(5)選擇文本攻擊(Chosen Text Attack)
選擇文本攻擊是選擇明文攻擊和選擇密文攻擊的組合,即密碼分析者在掌握密碼算法的前提下不僅能夠選擇明文并得到對應的密文,而且還能選擇密文得到對應的明文。這種情況往往是密碼分析者通過某種手段暫時控制加密機和解密機。

這5種攻擊的強度通常是依次遞增的。如果一個密碼系統能夠抵御選擇明文攻擊,那么它就能抵抗已知明文攻擊和唯密文攻擊這兩種攻擊。

5.密碼體制的安全性

密碼體制的安全性分為無條件安全性(理論安全)和有條件安全性(實際安全)。

5.1 無條件安全

若在一種密碼體制中,密碼破譯者無論知道多少密文以及采用何種方法都得不到明文或是密鑰的信息,稱其為無條件安全。無條件安全與攻擊者的計算能力及時間無關。

對于密碼系統(P,C,K,e,d)(P,C,K,e,d)(P,C,K,e,d),其中:

  • PPP為明文空間
  • CCC為密文空間
  • KKK為密鑰空間
  • eee為加密函數
  • ddd為解密函數

令:

  • H(P)H(P)H(P)為明文空間的熵
  • H(C)H(C)H(C)為密文空間的熵
  • H(K)H(K)H(K)為密鑰空間的熵
  • H(P∣C)H(P|C)H(PC)為已知密文條件下的明文含糊度
  • H(K∣C)H(K|C)H(KC)為已知密文條件下的密鑰含糊度
  • I(P;C)=H(P)?H(P∣C)I(P; C) = H(P) - H(P|C)I(P;C)=H(P)?H(PC)為明文空間與密文空間的互信息,反應了秘文空間所包含的明文空間信息。

該密碼系統(P,C,K,e,d)(P,C,K,e,d)(P,C,K,e,d)稱為無條件保密系統或完全保密系統,如果H(P∣C)=H(P)H(P|C)=H(P)H(PC)=H(P)或者I(P;C)=0I(P;C)=0I(P;C)=0即密文不提供任何關于明文的信息(或者說分析者通過觀察密文不能獲得任何關于明文信息或是密鑰的信息)。無條件安全與攻擊者的計算能力及時間無關。

5.2 有條件安全

有條件安全性是根據破解密碼系統所需的計算量來評價其安全性,分為計算安全性、實際安全性和可證明安全性。

(1) 計算安全性
若破解一個密碼系統是可行的,但使用已知的算法和現有計算工具不可能完成所要求的計算量,即已有最好的方法破解該密碼系統所需要的努力超出了破解者的時間空間和資金等的破解能力,稱該密碼體制在計算上安全。

(2)實際安全性
實際安全是指密碼系統滿足以下兩個準則之一:

  • 破解該密碼系統的成本超過被加密信息本身的價值
  • 破譯該密碼系統的時間超過被加密信息的有效生命周期

(3)可證明安全性
可證明安全性是將密碼體制的安全性歸結為求解某個經過深入研究但尚未解決的數學難題,即將某種密碼體制的安全性問題等價為一個數學難題的求解問題。這種判斷方法存在的問題是:它只說明了該密碼體制的安全和某個數學問題相關,但沒有完全證明間題本身的安全性。

由此可見,如果一種密碼體制是實際可行的,則必須遵守如下基本原則:

  • 密碼體制的安全性依賴于密鑰的安全性,密碼算法是公開的;
  • 密碼算法沒有安全弱點,也就是說,密碼分析者除了窮舉搜索攻擊外再找不到更好的攻擊方法
  • 密鑰空間應足夠大,使得試圖通過窮舉搜索密鑰空間的攻擊方式在計算上不可行
  • 密碼體制既易于實現又便于使用,主要是指加密算法和解密算法都可高效地實現

總結

以上是生活随笔為你收集整理的密码学系列之二:密码学基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。