序列密码算法c语言实现,祖冲之序列密码算法.PDF"/>
祖冲之序列密码算法c语言实现,祖冲之序列密码算法.PDF
祖冲之序列密码算法
祖冲之序列密码算法
ZUCstreamcipheralgorithm
目 次
目 次II
祖冲之序列密码算法3
1 术语和定义3
2 符号和缩略语3
2.1 运算符3
2.2 符号4
2.3 缩略语4
3 算法描述4
3.1 算法整体结构4
3.2 线性反馈移位寄存器LFSR5
3.3 比特重组BR6
3.4 非线性函数F6
3.5 密钥装入6
3.6 算法运行7
附 录 A S盒8
31 31
附 录 B 模2 -1乘法和模2 -1加法的实现10
附 录 C 算法计算实例11
参考文献15
II
祖冲之序列密码算法
1 术语和定义
下列术语和定义适用于本文件。
1.1
比特 bit
二进制字符0或1称之为比特。
1.2
字节 byt
由8个比特组成的比特串称之为字节。
1.3
字 word
由2个以上(包含2个)比特组成的比特串称之为字。
本文主要使用31比特字和32比特字。
1.4
字表示 word representation
本文字默认采用十进制表示。当字采用其它进制表示时,总是在字的表示之前或之后添加指示符。
例如,前缀0x指示该字采用十六进制表示,后缀下角标2指示该字采用二进制表示。
1.5
高低位顺序 bit ordering
本文规定字的最高位总是位于字表示中的最左边,最低位总是位于字表示中的最右边。
2 符号和缩略语
2.1 运算符
+ 算术加法运算
ab 整数a和b的乘积
= 赋值操作符
mod 整数模运算
⨁ 按比特位逐位异或运算
32
⊞ 模2 加法运算
‖ 字符串或字节串连接符
∙H 取字的最高16比特
∙L 取字的最低16比特
<<
3
>>k 32比特字右移k位
ab 向量a赋值给向量b,即按分量逐分量赋值
2.2 符号
下列符号适用于本文:
s,s,s,…,s 线性反馈移位寄存器的16个31 比特寄存器单元变量
0 1 2 15
X,X,X,X 比特重组输出的4个32 比特字
0 1 2 3
R, R 非线性函数F 的2个32 比特记忆单元变量
1 2
W 非线性函数F输出的32 比特字
32
W1 R 与X 进行模2 加法运算输出的32 比特字1 1
W2 R 与X 按比特位逐位异或运算输出的32 比特字2 2
Z 算法每拍输出的32 比特密钥字
k 初始种子密钥
iv 初始向量
di 15比特的字符串常量,i=0,1,2,…15
F 非线性函数
L 输出密钥字长度
2.3 缩略语
下列缩略语适用于本文:
ZUC 祖冲之序列密码算法或者祖冲之算法
LFSR 线性反馈移位寄存器
BR 比特重组
3 算法描述
3.1 算法整体结构
祖冲之算法逻辑上分为上中下层,见图1。上层是16级线性反馈移位寄存器(LFSR);中层是比特
重组(BR);下层是非线性函数F。
4
图 1 祖冲之算法结构图
3.2 线性反馈移位寄存器LFSR
3.2.1 概述
LFSR包括 16个31 比特寄存器单元变量s, s,
更多推荐
祖冲之序列密码算法c语言实现,祖冲之序列密码算法.PDF
发布评论