祖冲之序列密码算法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位

ab 向量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,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值