[ipsec][crypto] 什么是AEAD加密算法中的AAD 及aad length
AAD
全稱:Additianal Authenticated Data
翻譯成中文就是附加的驗證數據。
在理解AAD之前,需要理解什么是AEAD:
AEAD,簡單的來說就是一份數據在完成加密的時候同時完成了消息認證,或者反過來。
也就是說,加密用的數據和消息認證用的數據是一樣的。
好,那么下面引出一個場景,就是加密還是同樣的加密,但是消息認證需要給豐富的信息才能完成。比如序號。
這個時候多出來的那個需要就叫做附加驗證數據,即AAD。
那么這段數據的長度就是AAD length。
舉個栗子
ESP封裝既如此。當使用AEAD算法時,并不能滿足額外的消息認證能力。因為加密內容本身不包含序列信息,無法防止重放攻擊
所以消息認證需要增加SPI和seq信息。
又因為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
浙公網安備 33010602011771號