<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    8.2 傳輸信息的完整性

    8.2.1 采用CBC-MAC的完整性校驗方法

    電子標簽和讀寫器通信過程中,發送方發送敏感信息前,讀寫器讀取電子標簽的UID,使用該UID對根密鑰進行分散得到電子標簽個性化密鑰K1。雙方通信過程中,使用MAC方式進行完整性校驗,具體過程如下:

    a) 發送方用個性化密鑰K1計算待發送信息M的MAC值:MAC1=MAC(M,K1),并將MAC1附加至信息M后,將Token1=(M||MAC1)發送給接收方。

    b) 接收方收到Token1后,用個性化密鑰K1計算收到的信息M的MAC值:MAC2=MAC (M,K1),比較MAC1和MAC2,如相等則通過完整性校驗。

    MAC的計算過程如下:

    a) 將信息M分成長度為n比特的數據分組M1,M2,…,Mj。若Mj的長度不夠,在后面補足,補足方式由具體應用規定;若Mj的長度剛好為n比特,則在其后補一個數據分組。

    b) 計算C1=Enc(M1, K1)。

    c) 當j>1時,計算Ci=Enc(Mi?Ci-1, K1) ,其中i=2,3,…,j。

    d) MAC=Cj。

    8.2.2 采用HMAC的完整性校驗方法

    電子標簽和讀寫器通信過程中,發送方發送敏感信息前,讀寫器讀取電子標簽的UID,使用該UID對根密鑰進行分散得到電子標簽個性化密鑰K1。雙方通信過程中,使用HMAC的方式進行完整性校驗。

    選擇一個密碼雜湊函數H,其輸入數據塊的字節長度為B(B=64),輸出數據塊字節長度為L(L為所選密碼雜湊算法的輸出長度)。鑒別密鑰K1的長度應是小于等于B,但大于等于L的任何正整數值。

    定義兩個固定且不同的字符串ipad和opad:

    ipad = 字節‘0x36’重復B次

    opad = 字節‘0x5C’重復B次

    計算信息M的HMAC:

    HMAC(M)= H((K1 ?opad),H((K1 ? ipad),M))

    具體計算過程說明如下:

    a) 若密鑰K1長度小于B,在密鑰K1后面添加0來創建一個字長為B的字符串K;若K1長度大于B,返回密鑰長度錯誤。(例如,如果K1的字長是20字節,B=64字節,則K1后會加入44個字節0x00)。

    b) 計算Si=K?ipad。

    c) 將輸入信息M附加在Si之后。使用密碼雜湊函數H(Si,M)計算其雜湊值。

    d) 計算So=K?opad。

    e) 將c)得到的H(Si,M)附加在So后面,并用密碼雜湊函數H(So,H(Si,M))計算其雜湊值。

    f) 以上e)得到密碼雜湊函數的輸出即為最終的HMAC值。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类