[ipsec][crypto] 什麼是AEAD加密算法中的AAD 及aad length

AAD

全稱:Additianal Authenticated Datahtml

翻譯成中文就是附加的驗證數據。算法

在理解AAD以前,須要理解什麼是AEAD:

AEAD,簡單的來講就是一份數據在完成加密的時候同時完成了消息認證,或者反過來。加密

見:[crypto] AEAD是啥spa

也就是說,加密用的數據和消息認證用的數據是同樣的。翻譯

好,那麼下面引出一個場景,就是加密仍是一樣的加密,可是消息認證須要給豐富的信息才能完成。好比序號。code

這個時候多出來的那個須要就叫作附加驗證數據,即AAD。orm

那麼這段數據的長度就是AAD length。htm

 

舉個栗子

ESP封裝既如此。當使用AEAD算法時,並不能知足額外的消息認證能力。由於加密內容自己不包含序列信息,沒法防止重放攻擊blog

因此消息認證須要增長SPI和seq信息。ip

又由於SEN的存在。見[crypto][ipsec] 簡述ESP協議的sequence number機制

AAD的長度就有了兩種狀況,

 

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               SPI                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     32-bit Sequence Number                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Figure 3: AAD Format with 32-bit Sequence Number

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               SPI                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 64-bit Extended Sequence Number               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Figure 4: AAD Format with 64-bit Extended Sequence Number

 

 

 

SPI + SEQ(low32)

或 SPI + SEQ(low32)+  SEQ(high32)

即:8字節或12字節。

 

參考:

https://tools.ietf.org/html/rfc4106#section-5

https://tools.ietf.org/html/rfc4309#section-5

相關文章
相關標籤/搜索