目錄
1.1 密碼系統(Cryptosystem)
1.2 密碼編碼學
1.3 密碼分析學
1.4 基于算法保密
1.5 基于密鑰保密
1.6密碼系統的設計要求
1.7 單鑰體制
1.8 雙鑰體制
密鑰管理
1.1 密碼系統(Cryptosystem)
????????也稱為密碼體制,主要包括以下幾個基本要素:明文,密文,加密算法,解密算法和密鑰。用數學符號描述為:S = {M, C, K, E, D}
- M明文:發送方即將要發送的消息。
- C密文:明文經過密碼變換后的消息。
- E加密:由明文變換為密文的過程。
- D解密:由密文恢復出原明文的過程。
- K密鑰/或密鑰空間:是一種特定的值,能使密碼算法按照指定的方式進行,并產生相應的密文,密鑰是密碼體制安全保密的關鍵。
- 加密算法:對明文進行加密時所采用的一組規則。
- 解密算法:對密文進行解密時所采用的一組規則。
密碼系統中的一些基本術語:
- 加密員(密碼員):對明文進行加密操作的人員。
- 接收者:傳送消息的預定對象。
- 截收者:在信息傳輸和處理系統中,通過搭線竊聽、電磁竊聽、聲音竊聽等方式來竊取機密信息。 加密密鑰和解密密鑰:加密算法和解密算法的操作通常都是在一組密鑰控制下進行。
- 單鑰密碼體制(對稱密碼體制):傳統密碼體制所用的加密密鑰和解密密鑰相同,或實質上等同,即從一個易于得出另一個。如DES、ARS、RC4、
- 雙鑰密碼體制(非對稱密碼體制):若是加密密鑰和解密密鑰不相同,即從一個難于推出另一個。
- 密碼分析:截收者通過分析可能從截獲的密文推斷出原來的明文或密鑰。
- 密碼分析學:研究如何從密文推演出明文、密鑰或解密算法的學問。
- 密碼分析員:從事密碼分析這一工作的人。
- 被動攻擊:對一個保密通信系統采取截獲密文進行分析的這類攻擊。分為獲取消息的內容和業務流分析。
- 主動攻擊:非法入侵者、攻擊者或黑客主動向系統竄擾,采用刪除、增添、重放、偽造等竄改手段向系統注入假消息,達到利已害人的目的。主要有三類:中斷、篡改、偽造。
???
?? 密碼學(cryptology):是一門關于發現、認識、掌握和利用密碼內在規律的科學,由密碼編碼學(cryptography)和密碼分析學(cryptanalysis) 組成。
1.2 密碼編碼學
- 定義:密碼編碼學主要研究如何對信息進行編碼,以實現信息的保密性、完整性、認證性和不可否認性等安全目標。它通過設計各種加密算法和密碼體制,將明文信息轉化為密文形式,使得只有合法的接收者能夠在密鑰的幫助下還原出原始明文。
- 具體內容
- 設計加密算法:運用數學原理和計算方法,構造出復雜的變換規則,將明文按照特定方式進行混淆和擴散,例如著名的 AES(高級加密標準)算法,通過字節替換、行移位、列混合和輪密鑰加等操作,對明文進行多次變換,使其變成難以理解的密文。
- 密鑰生成與管理:產生安全可靠的密鑰,并確保密鑰在生成、存儲、分發和使用過程中的安全性和保密性。例如,使用密鑰交換協議在不安全的網絡環境中安全地共享密鑰。
- 構建密碼體制:將加密算法、密鑰管理等要素有機結合,形成一個完整的密碼系統,以滿足不同應用場景的安全需求,如對稱密碼體制、非對稱密碼體制等。
1.3 密碼分析學
- 定義:密碼分析學主要研究如何通過分析截獲的密文、已知的加密算法以及可能獲取的相關信息,來推斷出原始明文、密鑰或解密算法等。它是對密碼體制進行安全性評估和攻擊的學科。
- 具體內容
- 分析加密算法:研究加密算法的數學原理和邏輯結構,尋找其中可能存在的弱點和漏洞。例如,通過對 RSA 算法中模數分解的難度分析,來評估其安全性。
- 實施攻擊方法:利用各種技術和手段對密文進行攻擊,如窮舉攻擊、字典攻擊、差分密碼分析、線性密碼分析等。例如,窮舉攻擊通過嘗試所有可能的密鑰來解密密文。
- 評估密碼體制安全性:根據對加密算法的分析和攻擊結果,對密碼體制的安全性進行量化評估,確定其能夠抵御何種類型和強度的攻擊,以及在何種情況下可能被破解。
密碼系統可以采用的兩種安全策略:基于算法保密和基于密鑰保密。在實際應用中,基于密鑰保密的方式使用得更為廣泛。
1.4 基于算法保密
- 策略原理:該策略主要依靠對加密算法本身進行保密來實現信息安全。即通過隱藏加密算法的具體細節、操作步驟以及數學原理等,使得未授權者難以知曉信息是如何被加密的,從而無法輕易破解密文。
- 優點:在一定程度上能提供安全保障,若算法保密工作做得好,外界難以通過分析算法來進行解密。在早期一些簡單的密碼系統中,這種方式較為常見,例如古代一些通過特定的字符替換或移位規則進行加密的方法,只要這些規則不被泄露,信息就具有一定的保密性。
- 缺點
- 難以實現絕對保密:隨著技術的發展和人員的流動,算法的細節很可能會被泄露。而且,保密算法的相關人員一旦出現疏忽或被敵方策反,整個密碼系統的安全性就會立刻崩潰。
- 算法的開發非常復雜:一旦算法泄密,重新開發需要一定的時間;
- 不便于標準化:由于每個用戶單位必須有自己的加密算法,不可能采用統一的硬件和軟件產品;
- 不便于質量控制:用戶自己開發算法,需要好的密碼專家,否則對安全性難于保障。
1.5 基于密鑰保密
- 策略原理:這種策略是將加密算法公開,但是通過使用密鑰來對信息進行加密和解密。合法用戶擁有正確的密鑰就能順利進行加解密操作,而沒有密鑰的攻擊者即使知道加密算法,也難以從密文還原出明文。例如在現代的對稱加密算法如 AES(高級加密標準)和非對稱加密算法如 RSA 中,算法都是公開的,安全性主要依賴于密鑰的保密性。
- 優點
- 安全性高且可驗證:由于算法公開,能夠接受全球范圍內密碼學專家的分析和檢驗,其安全性可以得到更可靠的評估。如果經過長時間的公開驗證后沒有發現重大安全漏洞,那么該算法在當前技術條件下是較為安全的。
- 便于密鑰管理:可以通過專門的密鑰管理系統來生成、分發、存儲和更新密鑰,相較于保密算法,密鑰的管理更加集中和可控。而且可以根據不同的安全需求,靈活地更換密鑰,而無需改變加密算法。
- 促進技術發展:公開的算法為密碼學研究人員提供了研究和改進的基礎,有利于推動密碼技術的不斷發展和創新。新的算法可以在已有的公開算法基礎上進行優化和改進,提高加密效率和安全性。
- 缺點:
- 對密鑰的保密性要求極高。一旦密鑰泄露,那么整個密碼系統就會失去安全性,攻擊者可以利用獲取的密鑰輕易解密所有使用該密鑰加密的信息。因此,需要建立完善的密鑰保護機制,防止密鑰被竊取、篡改或泄露。
1.6密碼系統的設計要求
- 系統即使達不到理論上不可破譯,也應該是實際上不可破譯的(也就是說,從截獲的密文或某些已知的明文和密文對,要決定密鑰或任意明文在計算上是不可行的);
- 加密算法和解密算法適用于所有密鑰空間的元素;
- 系統便于實現和使用方便;
- 系統的保密性不依賴于對加密體制或算法的保密,而依賴于密鑰(著名的Kerckhoff原則,現代密碼學的一個基本原則)。
密碼體制從原理上分為兩類:
- 單鑰密碼體制(One-key System)或對稱密碼體制(Symmetric Cryptosystem)
- 雙鑰密碼體制(Two-Key System)或公開密碼體制(Public Key Cryptosystem)
1.7 單鑰體制
????????對稱密碼體制(symmetric cryptosystem)的加密密鑰和解密密鑰相同,也叫單鑰密碼體制或者秘密密碼體制。
- 單鑰體制的加密密鑰和解密密鑰相同。
- 單鑰體制有很高的保密性,很強的安全性,根據這種特性,單鑰加解密算法可通過低費用的芯片來實現。
- 單鑰體制不僅可用于數據加密,也用于消息的認證。
單鑰體制對明文消息的加密有兩種方式:
- 流密碼(或序列密碼,Stream Cipher):對明文消息按字符(如二元數字)逐位地進行加密。
- 分組密碼(Block Cipher):將明文消息分組(含有多個字符),逐組地進行加密。
下面為對稱密碼體制的基本流程,發送者需要發送明文消息m,發送前在加密器中使用密鑰K將明文加密,得到密文c;接受者受到密文c后在解密器使用密鑰K解密得到明文消息m。
1.8 雙鑰體制
????????雙鑰體制又稱作公鑰體制。采用雙鑰體制的每個用戶都有一對選定的密鑰:一個是可以公開的,可以像電話號碼一樣進行注冊公布;另一個則是秘密的。? ?
公鑰密碼中,加密密鑰一般是公開的,因此被稱為公開密鑰(public key),簡稱公鑰。相對地,解密密鑰是絕對不能公開的,不可以將它發送給別人(通信對象也不可以),只能由自己使用,因此被稱為秘密密鑰(private key),簡稱私鑰。因此公鑰密碼體制也叫做雙鑰密碼體制。公鑰和私鑰是一一對應的,一對公鑰和私鑰統稱為密鑰對(key pair)。公鑰和私鑰是不能分別單獨生成的,成對存在。
???
雙鑰密碼體制的特點:將加密和解密能力分開
- 可以實現多個用戶加密的消息只能由一個用戶解讀,可用于公共網絡中實現保密通信。
- 由一個用戶加密的消息而使多個用戶可以解讀,可用于實現對用戶的認證。
密鑰管理
- 主要包括密鑰產生、分配、存儲、銷毀等問題。
- 密鑰管理是影響系統安全的關鍵因素,即使密碼算法再好,若密鑰管理問題處理不好,就很難保證系統的安全保密。
下面是公鑰密碼體制的基本流程:
- 密鑰生成:用戶首先生成一對密鑰,一個是公鑰K1,一個是私鑰K2。這對密鑰在數學上是相關的,但從公鑰很難推導出私鑰。例如,RSA 算法中,通過選擇兩個大素數相乘等一系列操作生成公鑰和私鑰。
- 加密過程:當發送方要向接收方發送明文信息m時,發送方使用接收方的公鑰K1對明文進行加密得到密文C。由于公鑰是公開的,所以任何人都可以獲取接收方的公鑰來加密信息。加密后的信息稱為密文,這個過程是基于公鑰和特定的加密算法實現的。
- ?解密過程:接收方收到密文C后,使用自己的私鑰K2對密文進行解密,從而得到原始的明文信息m。只有擁有正確私鑰的接收方才能完成解密操作,因為私鑰是保密的,所以保證了信息的安全性。