[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

相关文章
相关标签/搜索