祖冲之序列密码算法(ZUC算法).doc

上传人:11****ws 文档编号:3754032 上传时间:2019-07-12 格式:DOC 页数:25 大小:136.89KB
下载 相关 举报
祖冲之序列密码算法(ZUC算法).doc_第1页
第1页 / 共25页
祖冲之序列密码算法(ZUC算法).doc_第2页
第2页 / 共25页
祖冲之序列密码算法(ZUC算法).doc_第3页
第3页 / 共25页
祖冲之序列密码算法(ZUC算法).doc_第4页
第4页 / 共25页
祖冲之序列密码算法(ZUC算法).doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、1祖冲之序列密码算法第 1 部分:算法描述1 范围本部分描述了祖冲之序列密码算法,可用于指导祖冲之算法相关产品的研制、检测和使用。2 术语和约定以下术语和约定适用于本部分。2.1比特 bit二进制字符0和1称之为比特。2.2字节 byte由8个比特组成的比特串称之为字节。2.3字 word由2个以上(包含2个)比特组成的比特串称之为字。本部分主要使用31比特字和32比特字。2.4 字表示 word representation本部分字默认采用十进制表示。当字采用其它进制表示时,总是在字的表示之前或之后添加指示符。例如,前缀0x指示该字采用十六进制表示,后缀下角标2指示该字采用二进制表示。2.5

2、 高低位顺序 bit ordering本部分规定字的最高位总是位于字表示中的最左边,最低位总是位于字表示中的最右边。GM/T 10004.2-201223 符号和缩略语3.1 运算符+ 算术加法运算mod 整数取余运算 按比特位逐位异或运算 模 232加法运算 字符串连接符H 取字的最高16比特L 取字的最低16比特k 32比特字右移 k位ab 向量a赋值给向量b,即按分量逐分量赋值3.2 符号下列符号适用于本部分:s0,s1,s2,s15 线性反馈移位寄存器的 16 个 31 比特寄存器单元变量X0,X1,X2,X3 比特重组输出的 4 个 32 比特字R1, R2 非线性函数 F 的 2

3、个 32 比特记忆单元变量W 非线性函数 F 输出的 32 比特字Z 算法每拍输出的 32 比特密钥字k 初始种子密钥iv 初始向量D 用于算法初始化的字符串常量3.3 缩略语下列缩略语适用于本部分:ZUC 祖冲之序列密码算法或祖冲之算法LFSR 线性反馈移位寄存器BR 比特重组F 非线性函数4 算法描述4.1 算法整体结构祖冲之算法逻辑上分为上中下三层,见图 1。上层是 16 级线性反馈移位寄存器(LFSR) ;中层是比特重组(BR ) ;下层是非线性函数 F。GM/T 10004.2-20123图 1 祖冲之算法结构图4.2 线性反馈移位寄存器 LFSR4.2.1 概述LFSR 包括 16

4、 个 31 比特寄存器单元变量 s0, s1, , s15。LFSR 的运行模式有 2 种:初始化模式和工作模式。4.2.2 初始化模式在初始化模式下,LFSR 接收一个 31 比特字 u。u 是由非线性函数 F 的 32 比特输出 W 通过舍弃最低位比特得到,即 u=W 1。在初始化模式下, LFSR 计算过程如下:LFSRWithInitialisationMode(u)(1) v = 215 s15 +217 s13 + 221 s10 + 220 s4 + (1 + 28)s0 mod (231-1);(2) s16=(v+u) mod (231-1);(3) 如果 s16=0,则置

5、s16=231-1;(4) (s1, s2, , s15, s16) (s0, s1, , s14, s15)。GM/T 10004.2-201244.2.3 工作模式在工作模式下,LFSR 不接收任何输入。其计算过程如下:LFSRWithWorkMode()(1) s16 = 215 s15 +217 s13 + 221 s10 + 220 s4 + (1 + 28)s0 mod (231-1);(2) 如果 s16=0,则置 s16=231-1;(3) (s1, s2, , s15, s16) (s0, s1, , s14, s15)。4.3 比特重组 BR比特重组从 LFSR 的寄存器单

6、元中抽取 128 比特组成 4 个 32 比特字 X0、X 1、X 2、X 3。BR 的具体计算过程如下:BitReconstruction()(1) X0 = s15Hs 14L;(2) X1 = s11Ls 9H;(3) X2 = s7Ls 5H;(4) X3 = s2Ls 0H。4.4 非线性函数 FF 包含 2 个 32 比特记忆单元变量 R1 和 R2。F 的输入为 3 个 32 比特字 X0、X 1、X 2,输出为一个 32 比特字 W。F 的计算过程如下:F (X0, X1, X2)(1) W = (X0 R1) R2;(2) W1 = R1 X1;(3) W2 = R2 X2;

7、(4) R1 = S(L1(W1LW 2H);(5) R2 = S(L2(W2LW 1H)。其中 S 为 32 比特的 S 盒变换,定义在附录 A 中给出;L 1 和 L2 为 32 比特线性变换,定义如下:L1(X) = X (X 1)。4.6.2 工作阶段首先执行下列过程一次,并将 F 的输出 W 舍弃:(1) BitReconstruction();(2) F (X0, X1, X2);(3) LFSRWithWorkMode()。然后进入密钥输出阶段。在密钥输出阶段,每运行一个节拍,执行下列过程一次,并输出一个 32比特的密钥字 Z:(1) BitReconstruction();(2

8、) Z = F (X0, X1, X2) X3;(3) LFSRWithWorkMode()。GM/T 10004.2-20126GM/T 10004.2-20127附 录 A(规范性附录)S 盒32 比特 S 盒 S 由 4 个小的 88 的 S 盒并置而成,即 S=(S0, S1, S2, S3),其中 S0=S2,S 1=S3。S 0 和 S1 的定义分别见表 1 和表 2。设 S0(或 S1)的 8 比特输入为 x。将 x 视作两个 16 进制数的连接,即 x=h|l,则表 1 (或表 2)中第 h 行和第 l 列交叉的元素即为 S0(或 S1)的输出 S0(x)(或 S1(x)。设

9、S 盒 S 的 32 比特输入 X 和 32 比特输出 Y 分别为:X = x0 x1 x2 x3,Y = y0 y1 y2 y3,其中 xi 和 yi 均为 8 比特字节,i = 0, 1, 2, 3。则有 yi = Si(xi), i = 0, 1, 2, 3。表 1 S0 盒0 1 2 3 4 5 6 7 8 9 A B C D E F0 3E 72 5B 47 CA E0 00 33 04 D1 54 98 09 B9 6D CB1 7B 1B F9 32 AF 9D 6A A5 B8 2D FC 1D 08 53 03 902 4D 4E 84 99 E4 CE D9 91 DD B

10、6 85 48 8B 29 6E AC3 CD C1 F8 1E 73 43 69 C6 B5 BD FD 39 63 20 D4 384 76 7D B2 A7 CF ED 57 C5 F3 2C BB 14 21 06 55 9B5 E3 EF 5E 31 4F 7F 5A A4 0D 82 51 49 5F BA58 1C6 4A 16 D5 17 A8 92 24 1F 8C FF D8 AE 2E 01 D3 AD7 3B 4B DA46 EB C9 DE 9A 8F 87 D7 3A 80 6F 2F C88 B1 B4 37 F7 0A 22 13 28 7C CC 3C 89

11、C7 C3 96 569 07 BF 7E F0 0B 2B 97 52 35 41 79 61 A6 4C 10 FEA BC 26 95 88 8A B0 A3 FB C0 18 94 F2 E1 E5 E9 5DB D0 DC 11 66 64 5C EC 59 42 75 12 F5 74 9C AA 23C 0E 86 AB BE 2A 02 E7 67 E6 44 A2 6C C2 93 9F F1D F6 FA 36 D2 50 68 9E 62 71 15 3D D6 40 C4 E2 0FE 8E 83 77 6B 25 05 3F 0C 30 EA 70 B7 A1 E8

12、A9 65F 8D 27 1A DB 81 B3 A0 F4 45 7A 19 DF EE 78 34 60表 2 S1 盒0 1 2 3 4 5 6 7 8 9 A B C D E F0 55 C2 63 71 3B C8 47 86 9F 3C DA5B 29 AA FD 771 8C C5 94 0C A6 1A 13 00 E3 A8 16 72 40 F9 F8 422 44 26 68 96 81 D9 45 3E 10 76 C6 A7 8B 39 43 E13 3A B5 56 2A C0 6D B3 05 22 66 BF DC 0B FA 62 484 DD 20 11 0

13、6 36 C9 C1 CF F6 27 52 BB 69 F5 D4 875 7F 84 4C D2 9C 57 A4 BC 4F 9A DF FE D6 8D 7A EB6 2B 53 D8 5C A1 14 17 FB 23 D5 7D 30 67 73 08 097 EE B7 70 3F 61 B2 19 8E 4E E5 4B 93 8F 5D DB A9GM/T 10004.2-201288 AD F1 AE 2E CB 0D FC F4 2D 46 6E 1D 97 E8 D1 E99 4D 37 A5 75 5E 83 9E AB 82 9D B9 1C E0 CD 49 89

14、A 01 B6 BD 58 24 A2 5F 38 78 99 15 90 50 B8 95 E4B D0 91 C7 CE ED 0F B4 6F A0 CC F0 02 4A 79 C3 DEC A3 EF EA 51 E6 6B 18 EC 1B 2C 80 F7 74 E7 FF 21D 5A 6A 54 1E 41 31 92 35 C4 33 07 0A BA 7E 0E 34E 88 B1 98 7C F3 3D 60 6C 7B CA D3 1F 32 65 04 28F 64 BE 85 9B 2F 59 8A D7 B0 25 AC AF 12 03 E2 F2注:S 0

15、盒和 S1 盒数据均为十六进制表示。GM/T 10004.2-20129(资料性附录)模 231-1 乘法和模 231-1 加法的实现B.1 模 231-1 乘法两个 31 比特字模 231-1 乘法可以快速实现。特别地,当其中一个字具有较低的汉明重量时,可以通过 31 比特的循环移位运算和模 231-1 加法运算实现。例如,计算 ab mod(231-1),其中 b=2i+2j+2k。则ab mod(231-1) = (a 31)。GM/T 10004.2-201210附 录 C(资料性附录)算法计算实例C.1 测试向量 1(全 0)输入:密钥 k: 00 00 00 00 00 00 00

16、 00 00 00 00 00 00 00 00 00 初始向量 iv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00输出:z1: 27bede74 z2: 018082da初始化:线性反馈移位寄存器初态:i S0+i S1+i S2+i S3+i S4+i S5+i S6+i S7+i0 0044d700 0026bc00 00626b00 00135e00 00578900 0035e200 00713500 0009af008 004d7800 002f1300 006bc400 001af100 005e2600 003c4d00 00

17、789a00 0047ac00t X0 X1 X2 X3 R1 R2 W S150 008f9a00 f100005e af00006b 6b000089 67822141 62a3a55f 008f9a00 4563cb1b1 8ac7ac00 260000d7 780000e2 5e00004d 474a2e7e 119e94bb 4fe932a0 28652a0f2 50cacb1b 4d000035 13000013 890000c4 c29687a5 e9b6eb51 291f7a20 7464f7443 e8c92a0f 9a0000bc c400009a e2000026 29c

18、272f3 8cac7f5d 141698fb 3f5644ba4 7eacf744 ac000078 f100005e 350000af 2c85a655 24259cb0 e41b0514 006a144c5 00d444ba cb1b00f1 260000d7 af00006b cbfbc5c0 44c10b3a 50777f9f 07038b9b6 0e07144c 2a0f008f 4d000035 780000e2 e083c8d3 7abf7679 0abddcc6 69b90e2b7 d3728b9b f7448ac7 9a0000bc 13000013 147e14f4 b6

19、69e72d aeb0b9c1 62a913ea8 c5520e2b 44ba50ca ac000078 c400009a 982834a0 f095d694 8796020c 7b591cc09 f6b213ea 144ce8c9 cb1b00f1 f100005e e14727d6 d0225869 5f2ffdde 70e21147初始化后线性反馈移位寄存器状态:i S0+i S1+i S2+i S3+i S4+i S5+i S6+i S7+i0 7ce15b8b 747ca0c4 6259dd0b 47a94c2b 3a89c82e 32b433fc 231ea13f 31711e428 4ccce955 3fb6071e 161d3512 7114b136 5154d452 78c69a74 4f26ba6b 3e1b8d6a有限状态机内部状态:R1 = 14cfd44c R2 = 8c6de800密钥流:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。