天天看點

網絡與系統安全筆記------密碼技術及應用

網絡與系統安全筆記------密碼技術及應用

      • 密碼學
        • 密碼學分支
        • 密碼編碼
        • 古典加密技術
        • 現代加密技術
        • 加密解密
        • 密碼分析
      • 哈希函數
          • MD族算法
          • SHA族算法
          • 完整性保護
          • 認證
      • 對稱密碼
        • 國際标準
        • 機密性保證
        • 消息認證與完整性
        • 密鑰管理
      • 公鑰密碼(非對稱密碼)
        • 加密模型(公鑰加密)(機密性)
        • 認證模型(數字簽名)(真實性,不可否認性)
        • 常用的加密算法
        • 相應特性
          • 機密性
          • 完整性
          • 可認證性與不可否認性
      • 比較
      • 密鑰管理
        • 生成
        • 登記
        • 存儲
          • 主密鑰
          • 二級密鑰
        • 初級密鑰
        • 配置設定
        • 協商
      • 密碼學的應用

密碼是指使用特定變換對資訊等進行 加密保護、 安全認證的技術、 産品和服務。

密碼學

密碼學分支

密碼編碼學和密碼分析學

密碼編碼學: 研究對資訊進行變換,尋求提供資訊機密性、完整性、真實性和非否認性等的方法,以保護資訊在信道的傳遞過程中不被敵手竊取、解讀和利用的科學。

密碼分析學: 研究分析和破譯密碼方法的科學。

密碼編碼

密碼編碼技術可以分為古典加密技術和現代加密技術

古典加密技術: 位移法,替代法。

現代加密技術

  • 對稱密碼算法——分組密碼和序列密碼
  • 非對稱密碼算法——公鑰密碼
  • 單向加密算法——哈希函數

量子密碼

古典加密技術

替代法: 按照一定的方法重新排列字元。通常可以借助幾何圖形表示,将明文按某種特定的路徑寫入,以某種路徑從圖形中取出字元構成密文。

  • 簡單代替密碼: 将明文字母表中的每個字母用密文字母表中相應的字母來代替。
  • 同音代替密碼: 明文字母表中的每個字母可用密文字母表中的多個字母之一來代替。
  • 多表代替密碼: 對于不同位置的字母,周期使用不同的代替規則。

現代加密技術

單向加密: 哈希函數

對稱密碼

  • 序列密碼(流密碼):一次隻對明文中的單個位(有時對位元組)運算。
  • 分組密碼(塊密碼):對明文的一組位進行運算,這些位稱為分組。

公鑰密碼

RSA,ElGamal、Rabin…

正常密碼系統模型

網絡與系統安全筆記------密碼技術及應用

加密解密

加密: C = E k ( P ) C=E_k(P) C=Ek​(P)

網絡與系統安全筆記------密碼技術及應用

解密: P = D k ( C ) P=D_k(C) P=Dk​(C)

網絡與系統安全筆記------密碼技術及應用
  • 明文§: 未加密的資訊。
  • 密文©: 已加密的資訊。
  • 密鑰(K): 控制密碼變換的随機數序列。
  • 加密(E): 将明文變換成密文的過程。
  • 解密(D): 将密文變換成明文的過程。
  • 密碼算法(cipher algorithm): 密碼算法是加密算法和解密算法的統稱,是密碼系統的核心

密碼分析

目的: 擷取明文,擷取密鑰。

攻擊類型

  • 唯密文攻擊: 知道部分密文資訊,去擷取明文或者密鑰資訊。
  • 已知明文的攻擊: 知道一些明文及對應的密文的對應關系,來擷取密文與密鑰。
  • 選擇明文的攻擊: 選擇性知道一些特定明文與對應的密文,在此基礎上擷取密鑰或者密文。
  • 選擇密文的攻擊: 選擇性地知道一些特定密文,并得到對應的明文,在此基礎上擷取密鑰或者密文。
  • 選擇文本攻擊: 選擇明文攻擊與選擇密文攻擊的結合。

基本方法

分析法: 通過加密算法的性質與明文的一般特征進行破解。

窮舉法: 試遍所有可能的密鑰對所獲密文進行解密,直至得到正确的明文;或者用一個确定的密鑰對所有可能的明文進行加密,直至得到所獲得的密文。

社會工程法: 通過對知情者進行恐吓、敲詐、賄賂、或折磨等手段使其将密鑰洩漏出來。

哈希函數

将任意長度的封包映射成一個較短的定長輸出封包(哈希值或者消息摘要)的函數。 h = H ( M ) h=H(M) h=H(M)M是變長的封包,h是定長的哈希值。

要求:隻要改動消息M的任何一位,重新計算出的消息摘要 h ′ h' h′就會與原先消息摘要值h不符。

特性:壓縮性,易計算,單向性,弱碰撞阻止性,強碰撞阻止性

  • 壓縮性:有限長的輸入M映射為一個固定長的短輸出h。
  • 易計算:給出H和輸入M,容易計算出H(M)。
  • 單向性:對所有确定的輸出h,推導輸入值M是計算困難的。
  • 弱碰撞阻止性:對任何指定的輸入M,發現任何第二個輸入M′ ≠M,使得H(M′)=H(M)是計算困難的。
  • 強碰撞阻止性:兩個任意選擇的不同的輸入M和 M′ ,計算H(M′)=H(M)是困難的。
MD族算法
  • MD2:摘要值長度為128位,16位元組,32個十六進制數。
  • MD4:摘要值長度為128位,16位元組,32個十六進制數。計算速度快。
  • MD5:摘要值長度為128位,16位元組,32個十六進制數。計算速度比MD4慢,但是安全性高。
  • MD6:2008年提出,沒有廣泛推行。
SHA族算法
  • SHA-0:摘要值長度為160位,20位元組,40個十六進制數。
  • SHA-1:SHA-0基礎上改進,摘要值長度為160位,20位元組,40個十六進制數。
  • SHA-2:SHA-256、SHA-384和SHA-512,SHA-224;輸出摘要長度為相應數字。
  • SHA-3:SHA3-224、SHA3-256、SHA3-384、SHA3-512;(輸出摘要長度為相應數字)。SHAKE128 、SHAKE256;(可輸出任意長度(2128/2256)散列值的函數)。
完整性保護
網絡與系統安全筆記------密碼技術及應用

雙方摘要相同則表示消息未經篡改,真實可用。

認證

密碼認證: 檢查密碼的散列值來進行認證。

消息認證: 與公鑰密碼算法結合,生成數字簽名,或者與共享密鑰結合,生成消息驗證碼。

哈希函數反查: 窮舉法,字典法,彩虹表法

對稱密碼

  • 單鑰密碼算法,加密密鑰和解密密鑰相同,或從一個易于推出另一個。
  • 要求發送者和接收者在安全通信之前,商定一個共享密鑰。
  • 安全性依賴于密鑰,隻要通信需要保密,密鑰就必須保密。

加解密速度很快,加密效率高,但是密鑰分發困難,管理複雜,不便用于網絡開放的環境中。

國際标準

DES:資料加密标準,56位密鑰

AES:進階加密标準,128位、192位或256位密鑰

機密性保證

加密/解密的過程保證資料的機密性。

網絡與系統安全筆記------密碼技術及應用
網絡與系統安全筆記------密碼技術及應用

對稱加密的安全取決于密鑰的保密性而非算法的保密性

消息認證與完整性

消息認證碼(MAC): M A C = C K ( M ) MAC=C_K(M) MAC=CK​(M),M是變長消息,K是收發雙方共享的密鑰,C為MAC算法(基于對稱密鑰)。

基于分組算法構造:XORMAC、ANSIX9.9MAC、ANSIX9.19MAC。

基于hash算法構造:HMAC。

網絡與系統安全筆記------密碼技術及應用

通信雙方擁有共享密鑰才能計算消息的消息認證碼,不僅能夠确認資料完整性,還可以實作資料源的認證。

網絡與系統安全筆記------密碼技術及應用

密鑰管理

密鑰分發問題: 如何安全地讓加、解密雙方擁有相同的密鑰(手動,自動分發)。

密鑰管理問題: 多方通信時,随着通信人數增加,需要維護的對稱密鑰數量也會增加,密鑰管理量将急劇增長。

KMC密鑰管理中心

公鑰密碼(非對稱密碼)

現代密碼學最重要的發明

密鑰對: 由公鑰(公開的密鑰)與私鑰(私有的密鑰)組成。

公鑰加密與對稱加密相比,加解密速度慢,不适合用于加解

密大量資料。

加密模型(公鑰加密)(機密性)

公鑰加密私鑰解密。

網絡與系統安全筆記------密碼技術及應用

可以用于對稱密鑰的分發:

網絡與系統安全筆記------密碼技術及應用

數字信封:結合了對稱密碼和公鑰密鑰的優點

網絡與系統安全筆記------密碼技術及應用

對消息使用對稱密碼加密,發送方使用接收方的公鑰進行密鑰加密,接受方使用私鑰解密。

認證模型(數字簽名)(真實性,不可否認性)

私鑰簽名公鑰認證

網絡與系統安全筆記------密碼技術及應用

隻使用公鑰密碼技術進行數字簽名,對于明文資料量大的,簽名的時間會變長,對應的性能會下降。

網絡與系統安全筆記------密碼技術及應用

利用公鑰密碼與資訊摘要進行數字簽名:

網絡與系統安全筆記------密碼技術及應用

保證真實性,不可否認性,完整性。

網絡與系統安全筆記------密碼技術及應用

在數字簽名的基礎上進行對稱加密,然後隻用公鑰加密對稱密鑰用于密鑰交換傳輸。相應的消息也會被加密,增加了機密性。

常用的加密算法

  • SM2(商密算法,ISO國際标準算法)
  • ECC(橢圓曲線算法)
  • RSA(計算量大于DES,很少用于大量資料的加密)

相應特性

機密性

公鑰加密隻有私鑰才能解密,但是運算速度慢。

完整性

hash函數解決消息摘要問題,公鑰密碼解決傳輸過程中的加密問題。

可認證性與不可否認性

用發方私鑰加密的消息,任何一個擁有其公鑰的對方都能解密,并且使用發方之外的其它人的公鑰都無法解密。

實際過程中往往是對摘要進行加密(數字簽名)。

比較

對稱密碼:加解密速度快,加密強度高。但是密鑰的分發、管理複雜,在開放網絡中使用不便。

公鑰密碼:密鑰分發簡單,要儲存的密鑰量少,可用于數字簽名。但是運算量大,加密速度慢,不能對大的資料進行加密。

密鑰管理

密鑰管理的階段:生成,登記,存儲,配置設定與協商,撤銷與銷毀。

生成

密鑰的基本要求要有好的随機性(長周期性、非線性、等概性以及不可預測性).

密鑰等級

  • 主密鑰: 安全性至關重要,可用噪聲發生器等方法産生。
  • 密鑰加密密鑰: 數量大,可由機器自動産生。(資料加密密鑰)(二級密鑰)
  • 會話密鑰: 可利用密鑰加密密鑰及某種算法産生。(初級密鑰)

産生方式

有邊界生産:由中心(或分中心)集中生産。

無邊界生産:由個人分散生産。

登記

将産生的密鑰與特定的使用捆綁在一起(用于數字簽名的密鑰,必須與簽名者的身份捆綁在一起),捆綁必須通過某一授權機構來完成。

存儲

保證密鑰在存儲狀态下的秘密性、真實性和完整性。各級密鑰根據不同特點分級存儲。

主密鑰
  • 主密鑰是最進階的密鑰,是以它隻能以明文形态存儲,

    否則便不能工作。

  • 要求存儲器必須是高度安全的,實體上是安全的,而且

    邏輯上也是安全的。

  • 通常是将其存儲在專用密碼裝置中。
二級密鑰
  • 二級密鑰可以以明文形态存儲,也可以以密文形态存儲。
  • 通常采用以加密的形式存儲二級密鑰。這樣可減少明文形态密鑰的數量,便于管理。

初級密鑰

初級檔案密鑰和初級資料加密密鑰是兩種性質不同的初級密鑰。

初級檔案密鑰:其生命周期與受保護的檔案的生命周期一樣長,一般采用密文形态存儲,通常采用以二級檔案密鑰加密的形式存儲初級檔案密鑰。

初級資料加密密鑰:按“一次一密”的方式工作,使用時動态産生,使用完畢後即銷毀,生命周期很短。

配置設定

系統内的一個成員選擇密鑰,然後将它們安全傳給其他成員。

  1. 密鑰由A標明,然後通過實體方法安全傳遞給B
  2. 密鑰由可信賴的第三方C選取并通過實體方法安全地發送給A和B。
  3. 如果A和B事先已有一密鑰,那麼其中一方選取新密鑰後,用已有的密鑰加密新密鑰發送給另一方
  4. 如果A和B都有一個到可信賴的第三方C的保密信道,那麼C就可以為A和B選取密鑰後安全地發送給A和B。

    可信賴的第三方C就是密鑰配置設定中心KDC,常用于對稱密碼技術的密鑰配置設定。

  5. 如果A和B都在可信賴的第三方C釋出自己的公開密鑰,那麼他們用彼此的公開密鑰進行保密通信

    可信賴的第三方C就是證書授權中心CA,常用于非對稱密碼技術的公鑰的配置設定。

協商

系統兩個或者多個成員在公開的信道上聯合建立秘密密鑰。

一般情況下,一個密鑰協商方案的密鑰是某個函數的值,其輸入量由通信雙方提供,協商過程是由一系列順序步驟完成的。兩個成員的密鑰協定也稱為密鑰交換。

常見的密鑰協商算法:DH、ECC、RSA

密碼學的應用

機密性:提供隻允許特定使用者通路和閱讀資訊,任何非授權使用者對資訊都不可了解的服務

通過資料加密實作

認證:提供與資料和身份認證有關的服務。

通過資料加密、散列函數或數字簽名來實作

完整性:提供確定資料在存儲和傳輸過程中不被未授權修改(竄改、删除、插入和重放等)的服務。

通過資料加密、散列函數或數字簽名來實作

不可否認性:提供阻止使用者否認先前的言論或行為的服務。

通過對稱加密或非對稱加密,以及數字簽名等,并借助可信的注冊機構或證書機構的輔助。

繼續閱讀