密碼學學習整理三

密碼學學習整理三

一. Hash函數與消息認證碼

  1. Hash函數
    1. 定義算法

      是一個將任意長度的消息映射成固定長度輸出的函數安全

      Hash函數是一個具備壓縮功能的函數網絡

      • 設X是消息的集合,Y是散列值的集合
      • 咱們老是假設|X|≥|Y|,而且常常假設更強的條件|X|≥2|Y|
      • 根據鴿巢原理:兩個甚至多個消息會映射爲同一個散列值
    2. 安全性函數

      • 原像穩固:給定散列值y,要找到一個x,使得H(x)=y是計算上不可行的
      • 第二原像穩固:給定消息x,找到另外一個x’,使得H(x’)=H(x)是計算上不可行的
      • 碰撞穩固:找到兩個不一樣的消息 x和x’ ,使得H(x)=H(x’)是計算上不可行的
    3. 對Hash函數的攻擊實際就是 尋找一對碰撞 的過程工具

    4. 若是Hash函數 H 設計得「好」,對給定x,要想求得相應的散列值,必須經過計算H(x)才行。若是想繞過 H,而採用其餘方法計算出散列值是很是困難的。即便在已知若干散列值H(x1),H(x2),…的狀況下,還是困難的,所以有H(x1)+H(x2)≠H(x1+x2) ,H(x1)H(x2)≠H(x1x2)學習

    5. 生日攻擊告訴咱們:爲了能達到n-bit的安全性,你所選擇的Hash函數的散列值長度應該是2n。若是你想讓攻擊者成功破譯的可能性低於1/280,那麼應該使用散列值長度是160-bit的Hash函數加密

    6. 著名的Hash函數MD5,SHA-0,SHA-1,SHA-2,SHA-3設計

      1. MD5
        1. 輸入:將信息分爲512bit一組處理
        2. 輸出:散列值長度爲128bit
        3. 速度快,不依賴任何密碼模塊和假設條件,特別適合32位計算機軟件實現
      2. SHA系列
        1. 輸入:SHA-1將消息分爲512bit一組,整個消息長度小於2^64
        2. 輸出:SHA-1散列值長度爲160bit
        3. 速度比MD5慢
  2. 消息認證碼
    1. 消息在傳輸過程當中是否發生改變或被惡意篡改,咱們怎麼能知道?
      • 使用「數據完整性技術」當消息發生改變時,咱們能夠檢查出來
    2. Hash函數可否保證數據的完整性 ?
      • 不能,舉例:某公司經網絡發送一張訂單m,爲防範遭惡意篡改,先用Hash函數計算訂單散列值H(m),再將之與訂單一塊兒發送 [m,H(m)]。接收方計算收到訂單m’的散列值H(m’),若與收到的散列值相同,則確信訂單未被篡改。問此方法是否行得通?爲何?不行,攻擊者可先篡改訂單,再計算假訂單的散列值 (接收方沒法識別)。關鍵問題:Hash函數沒有密鑰 (給定消息,任何人均可以計算)。
    3. 能夠看得出,若是設計一個帶有密鑰的算法,即可以解決這一問題,也就能夠防範攻擊者進行僞造 。消息認證碼(MAC)算法即是這種帶密鑰的算法,它是實現數據完整性的重要工具 ,其產生的輸出也相應地被稱做MAC 。
    4. 安全性要求-抗僞造
      1. 在不知道密鑰的狀況下,給定任何消息,產生相應的MAC是計算上不可行的
      2. 即便已知不少消息及對應的MAC,對新消息產生MAC還是計算上不可行的
    5. MAC構造-基於CBC模式構造
      1. 該方法對於定長消息是安全的
      2. 若是消息長度可變,即便密鑰K沒泄露,一樣不安全
      3. CBC-MAC只有用於定長消息才能抗僞造
      4. ISO標準的CBC-MAC
  3. 消息認證code

    1. 消息認證,又稱數據源認證,它的重要目標blog

      1. 保證傳輸消息的完整性(檢查消息是否被改動過)
      2. 保證消息是由指定發送者發來的
    2. 主要技術

      1. 基於 Hash函數和加密 的認證

    1. 基於 MAC 的認證

    1. 基於MAC的認證 (續)

      1. 若是Bob計算獲得的MAC與接收到的MAC一致,則說明:

        1. Alice發送的消息未被篡改

          * 由於攻擊者不知道密鑰,沒法在篡改消息後產生相應的MAC
        2. Alice不是冒充的

          * 由於除收發雙方外,沒人知道密鑰,攻擊者沒法冒充Alice發送合法的MAC
      2. 提供機密性的消息認證(方案一)明文M先被加密,再與MAC一塊兒發送

      3. 提供機密性的消息認證(方案二)明文M與MAC被一塊兒加密

      4. 一般,咱們但願直接對明文進行認證,所以 方案2 的使用方式更爲經常使用

相關文章
相關標籤/搜索