信息繁杂,特此整合
OCB简述
OCB (Offset Codebook)是802.11健壮安全网络(RSN)AES算法所采用的操作模式。OCB算法使用AES块加密,利用一个临时密钥K和一个随机数(Nonce)完成对数据的保密和完整性检验。
AES-OCB数据加密原理如图所示。( ntz(i): i>0 )
预先计算
分支编码本的值L0可以由密钥K通过对128比特的0字符串进行AES加密运算而获得,其数学表达形式为:
L0=AES_Encrypt(K) (0^128)
其它分支编码本的值可以由L 0通过有限域乘法算出。
加密过程
在使用OCB模式对数据进行加密的过程中,设备要为每一个加密帧产生一个新的Nonce,用于计算偏移量(Offset)的值:
Offset0=AES_Encrypt(K) (Nonce L 0)
其它偏移量的值可以由Offset0通过递推而得到,其数学表达形式为:
Offseti =Offset(i -1)L i
加密数据块Ci =AES_Encrypt(K) (Mi Offseti )
Offseti
i =1,2,…,m-1
其中,Mi 用来表示第i 个明文数据块。
当i =m 时,
Zm =AES_Encrypt(K) ( len(Mm) L-1
Offsetm )
Cm =Mm (the first len(Mm) bit of Zm【Zm的前len(Mm)比特】 )
其中len(Mm)表示第m个明文数据块的比特长度。
消息完整性检验码
MIC =AES_Encrypt(K)(M1M2…
Mm-1
Zm
Cm 0*
Offsetm+1)
其中Cm 0*表示将加密数据块Cm 补0生成一个128比特的数据块。
最后将128比特的消息完整性检验码数据块截断,取前64比特作为输出负载MIC。
参考链接:
基于AES算法的WLAN安全机制分析 (zte.com.cn)
The Design and Evolution of OCB | Journal of Cryptology (springer.com)
RFC 7253: The OCB Authenticated-Encryption Algorithm (rfc-editor.org)