CN103813313B - 一种祖冲之算法的硬件实现装置及方法 - Google Patents

一种祖冲之算法的硬件实现装置及方法 Download PDF

Info

Publication number
CN103813313B
CN103813313B CN201210441283.4A CN201210441283A CN103813313B CN 103813313 B CN103813313 B CN 103813313B CN 201210441283 A CN201210441283 A CN 201210441283A CN 103813313 B CN103813313 B CN 103813313B
Authority
CN
China
Prior art keywords
lfsr
key
register
unit
chongzhi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210441283.4A
Other languages
English (en)
Other versions
CN103813313A (zh
Inventor
黑勇
任高峰
乔树山
王晨光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China core Microelectronics Technology Chengdu Co., Ltd
Original Assignee
Institute of Microelectronics of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN201210441283.4A priority Critical patent/CN103813313B/zh
Publication of CN103813313A publication Critical patent/CN103813313A/zh
Application granted granted Critical
Publication of CN103813313B publication Critical patent/CN103813313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本发明公开了一种祖冲之算法的硬件实现装置及方法,该装置包括:控制逻辑单元,用于协调控制祖冲之算法硬件装置的初始密钥加载、LFSR寄存器初始化以及密钥的产生;LFSR单元,采用素域GF(231‑1)的m序列,每个时钟周期产生一次寄存器移位;比特重组单元,采用相应寄存器值取半合并技术,实现LFSR寄存器值单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换;非线性函数F(X0,X1,X2)单元,通过将输入的X0,X1,X2经过分组密码设计,结合S盒以及高扩散性的线性变换L,实现非线性函数变换。本发明能够简单高效地硬件实现祖冲之算法,并且,既能保证以较小的芯片面积和较低的芯片功耗实现祖冲之算法,还能保证祖冲之算法输出密钥的高吞吐率。

Description

一种祖冲之算法的硬件实现装置及方法
技术领域
本发明涉及安全技术领域的加解密技术领域,尤其涉及一种祖冲之算法的硬件实现装置及方法。
背景技术
随着现代技术的发展,对通信过程中传输的数据和数字图像进行加密以保障数据传输的安全,显得尤为重要。
祖冲之算法(ZUC)是我国第一个成为国际密码标准的密码算法,是中国科学院数据保护和通信安全研究中心自主设计的加密算法,现在已被3GPP(3rd GenerationPartnership Proj ect)确定为LTE(Long TermEvaluation)的国际标准,即4G国际通信标准。在安全算法方面,LTE空中接口预留了16个机密性算法和16个完整性算法的接口。ZUC算法,作为3GPP机密性算法EEA3和完整性算法EIA3的核心,于2011年9月正式被3GPP SA全会通过,成为了继美国的高级加密标准AES和欧洲的SNOW3G之外的第三套加密标准核心算法。
ZUC算法在逻辑上采用三层结构设计:线性反馈移位寄存器(LFSR)、比特重组和非线性函数F(X0,X1,X2)。并在LFSR的设计中,采用了素域GF(231-1)的m序列,该序列周期长、统计特性好,具有线性结构弱、比特关系符合率低等优点,因而ZUC算法具有天然的强抵抗二元域上密码攻击方法的能力。同时比特重组采用相应寄存器值取半合并技术,实现LFSR寄存器单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换,这样可以破坏LFSR寄存器的线性结构,使得一些在素域GF(231-1)上的密码攻击方法变得非常困难。
此外,ZUC算法充分结合了分组密码的设计技巧、S盒以及高扩散性的线性变换L,设计出了高安全性的非线性函数F(X0,X1,X2)。非线性函数F(X0,X1,X2)具有高的抵抗区分分析、快速相关攻击和猜测确定攻击等 方法的能力。所以,ZUC算法具有高可靠的安全性能。
ZUC算法在设计时既充分考虑了安全问题,又充分考虑了软硬件实现的复杂度,在保证高可靠的安全性能的同时也可以高效地软硬件实现。本发明能够简单高效地硬件实现祖冲之算法,既能保证以较小的芯片面积和较低的芯片功耗实现祖冲之算法,还能保证祖冲之算法输出密钥的高吞吐率。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种简易高效的祖冲之算法的硬件实现装置及方法。
(二)技术方案
为达到上述目的,本发明提供了一种祖冲之算法的硬件实现装置,该装置包括控制逻辑单元、线性反馈移位寄存器(LFSR)单元、比特重组单元和非线性函数F(X0,X1,X2)单元,其中:
控制逻辑单元,用于协调控制祖冲之算法硬件装置的初始密钥加载、LFSR寄存器初始化以及密钥的产生;
LFSR单元,采用素域GF(231-1)的m序列,每个时钟周期产生一次寄存器移位;
比特重组单元,采用相应寄存器值取半合并技术,实现LFSR寄存器值单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换;
非线性函数F(X0,X1,X2)单元,通过将输入的X0,X1,X2经过分组密码设计,结合S盒以及高扩散性的线性变换L,实现非线性函数变换。
上述方案中,所述控制逻辑单元在祖冲之算法的一开始,控制一初始密钥加载单元为LFSR单元中的寄存器加载初始密钥,然后控制LFSR单元中的寄存器初始化一次,直到LFSR单元完成32次的寄存器初始化操作,接下来执行祖冲之算法的工作模式一次,第一次工作模式的密钥输出无效,然后循环执行ZUC工作模式并不断输出有效密钥,如果输出的密钥长度达到设定的密钥长度,则祖冲之算法结束。
上述方案中,所述初始密钥加载单元用于根据祖冲之算法硬件装置的输入产生初始密钥并加载入LFSR单元中的寄存器。
上述方案中,所述初始密钥加载单元将输入的COUNT、BEARER和DIRECTION组合成16个初始向量Initial Vectori(i=0,1,2,3......15),再由初始向量和输入的16个Initial Keyi(i=0,1,2,3......15)以及固定的16个常向量Di(i=0,1,2,3......15)组合成祖冲之算法的初始密钥,也即LFSR的16个寄存器的初始状态值Si(i=0,1,2,3......15),然后将LFSR单元的16个寄存器的初始状态值Si(i=0,1,2,3......15)输出给LFSR单元的16个31位的寄存器。
上述方案中,所述LFSR单元是由16个31位的寄存器组成,分别为si(0≤i≤15)。
上述方案中,所述LFSR单元具有两种操作模式,分别为LFSR寄存器初始化模式和LFSR工作模式,LFSR工作模式即为ZUC工作模式。
上述方案中,在LFSR单元的16个寄存器获得初始密钥后,LFSR单元即进入寄存器初始化模式,经过32次的寄存器移位初始化后,LFSR单元即进入工作模式;在进入工作模式后的第一次的密钥输出丢弃,以后循环执行LFSR工作模式,每次的密钥输出都是有效密钥输出,直到达到设定的密钥长度为止。
上述方案中,所述比特重组单元用于将LFSR的相应寄存器值取半合并,实现LFSR寄存器值单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换,比特重组的实现过程如下:
(1)X0=s15H||s14L
(2)X1=s11L||s9H
(3)X2=s7L||s5H
(4)X3=s2L||s0H.
上述操作中,siH为si的高16位,siL为si的低16位,siH||siL表示siH和siL拼接在一起,且siH在高位。
上述方案中,所述比特重组单元的三个32位的输出X0、X1和X2是非线性函数F(X0,X1,X2)的输入,32位的W为F(X0,X1,X2)的输出,F(X0,X1,X2)中的R1和R2为32位的寄存器。
上述方案中,所述非线性函数F(X0,X1,X2)单元通过将输入的X0,X1 和X2经过分组密码设计,结合S盒以及高扩散性的线性变换L,实现非线性函数变换。
上述方案中,所述S盒是一个32×32的S盒,等效为4个8×8的S盒,即S=(S0,S1,S2,S3);因为S0=S2,S1=S3,所以实现时仅需要S0盒和S1盒;而S0和S1都是256×8的查找表,表中的每个值都是8位,且表中的每一个值都是确定的;所以,硬件实现时,需要两个256×8bit的ROM存储S0和S1的值。
上述方案中,为使S盒的硬件实现芯片面积和功耗最小化,采用一个512×8bit的单端口ROM来存储S0和S1的值;通过对ROM的读逻辑控制和寄存器寄存的方法分四步读出一个S盒的32位的输出,以完成S盒的功能。
上述方案中,所述非线性函数F(X0,X1,X2)单元的操作如下:
(7)W1=R1田X1
(9)R1=S(L1(W1L‖W2H))
(10)R2=S(L2(W2L‖W1H))
上述操作中,田表示模232的加法,S表示S盒,L1和L2为两个线性变换函数。
上述方案中,所述L1和L2是两个线性变换函数,具体操作如下所示:
其中,<<<表示循环左移。
为达到上述目的,本发明还提供了一种祖冲之算法的硬件实现方法,该方法包括:
在祖冲之算法开始时,控制逻辑单元先根据相应输入控制初始密钥加载单元向线性反馈移位寄存器(LFSR)单元加载初始密钥;
初始密钥加载结束后,线性反馈移位寄存器(LFSR)单元开始初始化操作一次,然后线性反馈移位寄存器(LFSR)单元重复初始化操作32次;此期间的密钥输出Z为无效输出;
LFSR寄存器初始化操作循环执行32次以后,进入LFSR工作模式,即为ZUC工作模式;ZUC工作模式执行第一次的密钥输出Z为无效输出,不用做加解密;此后循环执行ZUC工作模式,每执行一ZUC工作模式,即可得到一个32位的密钥输出Z,即可用作加解密;
当输出密钥Z的长度达到预先设定的密钥长度时,祖冲之算法结束。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明采用了S盒硬件实现面积和功耗最小化的优化策略,使得祖冲之算法实现的芯片面积和功耗最小化。
2、本发明采用了简单高效的硬件设计策略实现了祖冲之算法,保证了祖冲之算法输出密钥的高吞吐率。
3、本发明的祖冲之算法硬件实现具有芯片面积小和芯片功耗低的优点,非常适用于对芯片面积和功耗有较高要求的移动设备。
附图说明
下面结合附图和实施例对本发明进一步说明:
图1是本发明提供的祖冲之算法的硬件实现装置的结构示意图;
图2是祖冲之算法的初始密钥加载单元结构图;
图3是祖冲之算法的控制逻辑框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,图1是本发明提供的祖冲之算法的硬件实现装置的结构示意图,该装置包括控制逻辑单元、线性反馈移位寄存器(LFSR)单元、比特重组单元和非线性函数F(X0,X1,X2)单元,其中:控制逻辑单元,用于协调控制祖冲之算法硬件装置的初始密钥加载、LFSR寄存器初始化以及密钥的产生;LFSR单元,采用素域GF(231-1)的m序列,每个时钟周期产生一次寄存器移位;比特重组单元,采用相应寄存器值取半合并技术,
实现LFSR寄存器值单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换;非线性函数F(X0,X1,X2)单元,通过将输入的X0,X1,X2经过分组密码设计,结合S盒以及高扩散性的线性变换L,实现非线性函数变换。
控制逻辑单元在祖冲之算法的一开始,控制一初始密钥加载单元为LFSR单元中的寄存器加载初始密钥,然后控制LFSR单元中的寄存器初始化一次,直到LFSR单元完成32次的寄存器初始化操作,接下来执行祖冲之算法的工作模式一次,第一次工作模式的密钥输出无效,然后循环执行ZUC工作模式并不断输出有效密钥,如果输出的密钥长度达到设定的密钥长度,则祖冲之算法结束。
初始密钥加载单元如图2所示,用于根据祖冲之算法硬件装置的输入产生初始密钥并加载入LFSR单元中的寄存器。初始密钥加载单元将输入的COUNT、BEARER和DIRECTION组合成16个初始向量Initial Vectori(i=0,1,2,3......15),再由初始向量和输入的16个Initial Keyi(i=0,1,2,3......15)以及固定的16个常向量Di(i=0,1,2,3......15)组合成祖冲之算法的初始密钥,也即LFSR的16个寄存器的初始状态值Si(i=0,1,2,3......15),然后将LFSR单元的16个寄存器的初始状态值Si(i=0,1,2,3......15)输出给LFSR单元的16个31位的寄存器。
LFSR单元是由16个31位的寄存器组成,分别为si(0≤i≤15)。LFSR单元具有两种操作模式,分别为LFSR寄存器初始化模式和LFSR工作模式,LFSR工作模式即为ZUC工作模式。在LFSR单元的16个寄存器获得初始密钥后,LFSR单元即进入寄存器初始化模式,经过32次的寄存器移位初始化后,LFSR单元即进入工作模式;在进入工作模式后的第一次的密钥输出丢弃,以后循环执行LFSR工作模式,每次的密钥输出都是有效密钥输出,直到达到设定的密钥长度为止。
在LFSR寄存器初始化和工作之前,需要对LFSR的16个寄存器加载初始密钥。如图2所示,初始密钥加载过程中,由输入的32位的COUNT,5位的BEARER和1位的DIRECTION可以得到128位的INITIALVECTOR(以下简称VECTOR),VECTOR由16个8位的VECTORi组成。VECTOR生成过程如下所示:
COUNT=COUNT0||COUNT1||COUNT2||COUNT3
VECTOR=VECTOR0||VECTOR1||...||VECTOR15
VECTOR0=COUNT0
VECTOR1=COUNT1
VECTOR2=COUNT2
VECTOR3=COUNT3
VECTOR4=BEARER||DIRECTION||2′b00;
VECTOR5=8′b0;
VECTOR6=8′b0; VECTOR11=VECTOR3
VECTOR7=8′b0; VECTOR12=VECTOR4
VECTOR8=VECTOR0; VECTOR13=VECTOR5
VECTOR9=VECTOR1; VECTOR14=VECTOR6
VECTOR10=VECTOR2; VECTOR15=VECTOR7.
‖表示拼接运算,左右两个数按位拼接在一起成为一个新数。
如图2所示,VECTOR结合输入的128位的INITIAL KEY(以下简称KEY)以及240位的固定常值向量D,可以产生LFSR的16个寄存器的初始值S0~S15。KEY由16个8位的KEYi组成,D由16个15位的Di组成。具体产生过程如下所示:
KEY=KEY0||KEY1||...||KEY15
VECTOR=VECTOR0‖VECTOR1||...||VECTOR15
D=D0||D1||...‖D15
si=KEYi|Di‖VECTORi,0≤i≤15.
LFSR的16个寄存器S0~S15得到初始值以后,ZUC开始进入LFSR寄存器初始化过程。如图1所示,设置非线性函数F(X0,X1,X2)中32位的R1和R2为全零。经过比特重组,可以得到X0,X1,X2,X3的初始值,进而可以得到非线性函数F(X0,X1,X2)的输出W以及 表示异或操作。此u值用来进行第一次LFSR寄存器初始化模式下的操作。如图1所示,更新X0,X1,X2,X3、R1、R2、W和u后,进行下一次LFSR寄存器初始化。如此循环执行,重复LFSR寄存器初始化操作共32次。在初始化阶段,ZUC算法计算得到的不是有效密钥,不作输出密钥使用。
如图1所示,LFSR寄存器初始化过程中,LFSR一开始收到一个31位的输入u,即非线性函数F(X0,X1,X2)的32位的输出 W与X3的异或结果向右移一位。它的操作过程如下:
(1)v=[215s15+217s13+221s10+220s4+(1+28)s0]mod(231-1);
(2)If v=0,then set v=231-1;
(3)
(4)If s16=0,then set s16=231-1;
(5)
上述操作(1)为模(231-1)的加法,在硬件实现时将加和结果的第32位与低31位相加即可实现,硬件实现简单。(1)式中还包括2的整数次幂加权,为保证硬件与算法的等效性,可以实现如下:
2m si mod(231-1)=(si<<m|si>>(31-m))mod(231-1)
ZUC算法结束初始化模式后,即进入工作模式,如图1所示。工作模式中,LFSR没有输入,实现16个寄存器的移位操作如下:
(1)s16=[215s15+217s13+221s10+220s4+(1+28)s0]mod(231-1);
(2)If s16=0,then set s16=231-1;
(3)
ZUC算法使用LFSR初始化后的寄存器的值进行LFSR工作模式下的操作一次,第一次LFSR工作模式得到的密钥输出Z为无效输出。此后重复工作模式操作,每执行一次工作模式操作并更新相关寄存器的值后,就能得到一个32位的有效密钥Z,即可开始加解密工作。
比特重组单元用于将LFSR的相应寄存器值取半合并,实现LFSR寄存器值单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换,比特重组的实现过程如下:
(1)X0=s15H||s14L
(2)X1=s11L‖s9H
(3)X2=s7L‖s5H
(4)X3=s2L||s0H.
上述操作中,siH为si的高16位,siL为si的低16位,siH||siL表示siH和siL拼接在一起,且siH在高位。
如图1所示,比特重组单元的三个32位的输出X0、X1和X2是非线性函数F(X0,X1,X2)的输入,32位的W为F(X0,X1,X2)的输出,F(X0,X1,X2)中的R1和R2为32位的寄存器。
非线性函数F(X0,X1,X2)单元通过将输入的X0,X1和X2经过分组密码设计,结合S盒以及高扩散性的线性变换L,实现非线性函数变换。
S盒是一个32×32的S盒,等效为4个8×8的S盒,即S=(S0,S1,S2,S3);因为S0=S2,S1=S3,所以实现时仅需要S0盒和S1盒;而S0和S1都是256×8的查找表,表中的每个值都是8位,且表中的每一个值都是确定的;所以, 硬件实现时,需要两个256×8bit的ROM存储S0和S1的值。
为使S盒的硬件实现芯片面积和功耗最小化,采用一个512×8bit的单端口ROM来存储S0和S1的值;通过对ROM的读逻辑控制和寄存器寄存的方法分四步读出一个S盒的32位的输出,以完成S盒的功能。
非线性函数F(X0,X1,X2)单元的操作如下:
(12)W1=R1田X1
(14)R1=S(L1(W1L||W2H))
(15)R2=S(L2(W2L||W1H))
上述操作中,田表示模232的加法,S表示S盒,L1和L2为两个线性变换函数。
ZUC算法的S盒是一个32×32的S盒,可以等效为4个8×8的S盒,即S=(S0,S1,S2,S3)。又因为S0=S2,S1=S3,所以实现时仅需要S0盒和S1盒。而S0和S1都是256×8的查找表,表中的每个值都是8位,且表中的每一个值都是确定的。所以,硬件实现时,需要两个256×8bit的ROM存储S0和S1的值。
ZUC算法的S盒的输入为32位的X,输出为32位的Y,其中X=x1||x2||x3||x4,Y=y1||y2||y3||y4,xi和yi都是8位。则y1=S0(x1),y2=S1(x2),y3=S0(x3),y4=S1(x4)。
硬件实现时,用一个512×8bit的单端口ROM来存储S0和S1的值,以使S盒的硬件实现芯片面积和功耗最小化。通过对ROM的读逻辑控制和寄存器寄存的方法分四步读出一个S盒的32位的输出,以完成S盒的功能。
L1和L2为两个线性变换函数,具体操作如下所示:
其中,<<<表示循环左移。
图1所示的控制逻辑单元的功能结构图如图3所示,该方法包括:在祖冲之算法开始时,控制逻辑单元先根据相应输入控制初始密钥加载单元 向线性反馈移位寄存器(LFSR)单元加载初始密钥;初始密钥加载结束后,线性反馈移位寄存器(LFSR)单元开始初始化操作一次,然后线性反馈移位寄存器(LFSR)单元重复初始化操作32次;此期间的密钥输出Z为无效输出;LFSR寄存器初始化操作循环执行32次以后,进入LFSR工作模式,即为ZUC工作模式;ZUC工作模式执行第一次的密钥输出Z为无效输出,不用做加解密;此后循环执行ZUC工作模式,每执行一ZUC工作模式,即可得到一个32位的密钥输出Z,即可用作加解密;当输出密钥Z的长度达到预先设定的密钥长度时,祖冲之算法结束。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种祖冲之算法的硬件实现装置,其特征在于,该装置包括控制逻辑单元、线性反馈移位寄存器(LFSR)单元、比特重组单元和非线性函数F(X0,X1,X2)单元,其中:
控制逻辑单元,用于协调控制祖冲之算法硬件装置的初始密钥加载、LFSR寄存器初始化以及密钥的产生;
LFSR单元,采用素域GF(231-1)的m序列,每个时钟周期产生一次寄存器移位;
比特重组单元,采用相应寄存器值取半合并技术,实现LFSR寄存器值单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换;
非线性函数F(X0,X1,X2)单元,通过将输入的X0,X1,X2经过分组密码设计,结合S盒以及高扩散性的线性变换L,实现非线性函数变换;
其中,所述控制逻辑单元在祖冲之算法的一开始,控制一初始密钥加载单元为LFSR单元中的寄存器加载初始密钥,然后控制LFSR单元中的寄存器初始化一次,直到LFSR单元完成32次的寄存器初始化操作,接下来执行祖冲之算法的工作模式一次,第一次工作模式的密钥输出无效,然后循环执行ZUC工作模式并不断输出有效密钥,如果输出的密钥长度达到设定的密钥长度,则祖冲之算法结束。
2.根据权利要求1所述的祖冲之算法的硬件实现装置,其特征在于,所述初始密钥加载单元用于根据祖冲之算法硬件装置的输入产生初始密钥并加载入LFSR单元中的寄存器。
3.根据权利要求2所述的祖冲之算法的硬件实现装置,其特征在于,所述初始密钥加载单元将输入的COUNT、BEARER和DIRECTION组合成16个初始向量Initial Vectori(i=0,1,2,3……15),再由初始向量和输入的16个Initial Keyi(i=0,1,2,3……15)以及固定的16个常向量Di(i=0,1,2,3……15)组合成祖冲之算法的初始密钥,也即LFSR的16个寄存器的初始状态值Si(i=0,1,2,3……15),然后将LFSR单元的16个寄存器的初始状态值Si(i=0,1,2,3……15)输出给LFSR单元的16个31位的寄存器。
4.根据权利要求1所述的祖冲之算法的硬件实现装置,其特征在于,所述LFSR单元是由16个31位的寄存器组成,分别为si(0≤i≤15)。
5.根据权利要求4所述的祖冲之算法的硬件实现装置,其特征在于,所述LFSR单元具有两种操作模式,分别为LFSR寄存器初始化模式和LFSR工作模式,LFSR工作模式即为ZUC工作模式。
6.根据权利要求5所述的祖冲之算法的硬件实现装置,其特征在于,在LFSR单元的16个寄存器获得初始密钥后,LFSR单元即进入寄存器初始化模式,经过32次的寄存器移位初始化后,LFSR单元即进入工作模式;在进入工作模式后的第一次的密钥输出丢弃,以后循环执行LFSR工作模式,每次的密钥输出都是有效密钥输出,直到达到设定的密钥长度为止。
7.根据权利要求1所述的祖冲之算法的硬件实现装置,其特征在于,所述比特重组单元用于将LFSR的相应寄存器值取半合并,实现LFSR寄存器值单元到非线性函数F(X0,X1,X2)和密钥输出Z的数据转换,比特重组的实现过程如下:
(1)X0=s15H||s14L
(2)X1=s11L||s9H
(3)X2=s7L||s5H
(4)X3=s2L||s0H.
上述操作中,siH为si的高16位,siL为si的低16位,siH||siL表示siH和siL拼接在一起,且siH在高位。
8.根据权利要求7所述的祖冲之算法的硬件实现装置,其特征在于,所述比特重组单元的三个32位的输出X0、X1和X2是非线性函数F(X0,X1,X2)的输入,32位的W为F(X0,X1,X2)的输出,F(X0,X1,X2)中的R1和R2为32位的寄存器。
9.根据权利要求8所述的祖冲之算法的硬件实现装置,其特征在于,所述非线性函数F(X0,X1,X2)单元通过将输入的X0,X1和X2经过分组密码设计,结合S盒以及高扩散性的线性变换L,实现非线性函数变换。
10.根据权利要求9所述的祖冲之算法的硬件实现装置,其特征在于,所述S盒是一个32×32的S盒,等效为4个8×8的S盒,即S=(S0,S1,S2,S3);因为S0=S2,S1=S3,所以实现时仅需要S0盒和S1盒;而S0和S1都是256×8的查找表,表中的每个值都是8位,且表中的每一个值都是确定的;所以,硬件实现时,需要两个256×8bit的ROM存储S0和S1的值。
11.根据权利要求10所述的祖冲之算法的硬件实现装置,其特征在于,为使S盒的硬件实现芯片面积和功耗最小化,采用一个512×8bit的单端口ROM来存储S0和S1的值;通过对ROM的读逻辑控制和寄存器寄存的方法分四步读出一个S盒的32位的输出,以完成S盒的功能。
12.根据权利要求10所述的祖冲之算法的硬件实现装置,其特征在于,所述非线性函数F(X0,X1,X2)单元的操作如下:
(1)W=(X0⊕R1)田R2
(2)W1=R1田X1
(3)W2=R2⊕X2
(4)R1=S(L1(W1L||W2H))
(5)R2=S(L2(W2L||W1H))
上述操作中,田表示模232的加法,S表示S盒,L1和L2为两个线性变换函数。
13.根据权利要求12所述的祖冲之算法的硬件实现装置,其特征在于,所述L1和L2是两个线性变换函数,具体操作如下所示:
L1(X)=X⊕(X<<<2)⊕(X<<<10)⊕(X<<<18)⊕(X<<<24);
L2(X)=X⊕(X<<<8)⊕(X<<<14)⊕(X<<<22)⊕(X<<<30).
其中,<<<表示循环左移。
14.一种祖冲之算法的硬件实现方法,应用于权利要求1至13中任一项所述的硬件实现装置,其特征在于,该方法包括:
在祖冲之算法开始时,控制逻辑单元先根据相应输入控制初始密钥加载单元向线性反馈移位寄存器(LFSR)单元加载初始密钥;
初始密钥加载结束后,线性反馈移位寄存器(LFSR)单元开始初始化操作一次,然后线性反馈移位寄存器(LFSR)单元重复初始化操作32次;此期间的密钥输出Z为无效输出;
LFSR寄存器初始化操作循环执行32次以后,进入LFSR工作模式,即为ZUC工作模式;ZUC工作模式执行第一次的密钥输出Z为无效输出,不用做加解密;此后循环执行ZUC工作模式,每执行一ZUC工作模式,即可得到一个32位的密钥输出Z,即可用作加解密;
当输出密钥Z的长度达到预先设定的密钥长度时,祖冲之算法结束。
CN201210441283.4A 2012-11-07 2012-11-07 一种祖冲之算法的硬件实现装置及方法 Active CN103813313B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210441283.4A CN103813313B (zh) 2012-11-07 2012-11-07 一种祖冲之算法的硬件实现装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210441283.4A CN103813313B (zh) 2012-11-07 2012-11-07 一种祖冲之算法的硬件实现装置及方法

Publications (2)

Publication Number Publication Date
CN103813313A CN103813313A (zh) 2014-05-21
CN103813313B true CN103813313B (zh) 2017-06-06

Family

ID=50709414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210441283.4A Active CN103813313B (zh) 2012-11-07 2012-11-07 一种祖冲之算法的硬件实现装置及方法

Country Status (1)

Country Link
CN (1) CN103813313B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11843689B2 (en) 2021-08-06 2023-12-12 Samsung Electronics Co., Ltd. Methods and systems for reducing propagation delays in hardware implementation of ZUC cryptographic algorithms

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104602015A (zh) * 2014-12-31 2015-05-06 西安蒜泥电子科技有限责任公司 一种实时视频监控加密认证方法
CN104811295A (zh) * 2015-05-05 2015-07-29 国家密码管理局商用密码检测中心 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法
CN105916141B (zh) * 2016-07-12 2019-05-21 黑龙江大学 一种自同步的祖冲之加解密算法的实现系统及其方法
CN110011798A (zh) * 2019-04-08 2019-07-12 中国科学院软件研究所 一种zuc-256流密码算法的初始化方法和装置及通信方法
CN112367155B (zh) * 2020-10-13 2022-06-07 黑龙江大学 一种基于fpga的zuc加密系统ip核构建方法
CN114553424B (zh) * 2022-02-21 2024-03-15 南京航空航天大学 Zuc-256流密码轻量级硬件系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007110506A1 (fr) * 2006-03-29 2007-10-04 Eads Secure Networks Generateur de nombres aleatoires
CN102684870A (zh) * 2012-04-26 2012-09-19 重庆重邮信科通信技术有限公司 祖冲之算法密钥生成装置及方法
CN102710415A (zh) * 2012-06-18 2012-10-03 西安西电捷通无线网络通信股份有限公司 一种利用对称密码算法进行数据加解密的方法及查表装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007110506A1 (fr) * 2006-03-29 2007-10-04 Eads Secure Networks Generateur de nombres aleatoires
CN102684870A (zh) * 2012-04-26 2012-09-19 重庆重邮信科通信技术有限公司 祖冲之算法密钥生成装置及方法
CN102710415A (zh) * 2012-06-18 2012-10-03 西安西电捷通无线网络通信股份有限公司 一种利用对称密码算法进行数据加解密的方法及查表装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
祖冲之算法的安全分析;杜红红,张文英;《计算机技术与发展》;20120630(第6期);参见1-3章 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11843689B2 (en) 2021-08-06 2023-12-12 Samsung Electronics Co., Ltd. Methods and systems for reducing propagation delays in hardware implementation of ZUC cryptographic algorithms

Also Published As

Publication number Publication date
CN103813313A (zh) 2014-05-21

Similar Documents

Publication Publication Date Title
CN103813313B (zh) 一种祖冲之算法的硬件实现装置及方法
CN105049194B (zh) 一种流水线结构的sm4算法实现系统
CN102799800B (zh) 一种安全加密协处理器及无线传感器网络节点芯片
CN109361507A (zh) 一种数据加密方法及加密设备
CN102546157A (zh) 一种抵抗能量分析的随机混合加密系统及其实现方法
CN109768854A (zh) 一种轻量级分组密码算法Wheel的实现方法
CN109617671A (zh) 加解密、扩展方法及装置、加解密系统、终端
CN105916141B (zh) 一种自同步的祖冲之加解密算法的实现系统及其方法
CN104219045B (zh) Rc4 流密码生成器
US7627113B2 (en) Method and system for hardware accelerator for implementing f8 confidentiality algorithm in WCDMA compliant handsets
CN102752107A (zh) 实现rc4加/解密的装置及其方法
CN103427981A (zh) 一种实现加密、解密的方法以及装置
CN101958790A (zh) 无线通信网络数字信息加密或解密方法
CN104753662B (zh) 基于aes算法的加密密钥流产生方法
CN105577362B (zh) 一种应用于aes算法的字节替换方法及系统
CN108566271B (zh) 复用轮变换电路、aes加密电路及其加密方法
CN105187198B (zh) 一种用于IPSec协议下的AES算法硬件实现装置
CN104219043B (zh) 一种可预置和重构的密钥装置及运行方法
CN102448059B (zh) 应用于ZigBee协议的加解密电路结构及其控制方法
He et al. A 3DES implementation especially for CBC feedback loop mode
CN106788968A (zh) 应用于wia-pa协议的安全协处理器的实现方法
WO2020037981A1 (zh) 一种基于双S核的8-bitAES电路
CN112737767A (zh) 抗差分功耗分析与时间攻击的消息认证码生成方法及系统
CN102665202B (zh) 应用于ZigBee协议的安全协处理器电路结构及其控制方法
Chen et al. TinyStream: a lightweight and novel stream cipher scheme for wireless sensor networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200506

Address after: 100029 Beijing city Chaoyang District Beitucheng West Road No. 3, building 15, room 328

Patentee after: Beijing Zhongke micro Investment Management Co., Ltd.

Address before: 100083 Beijing city Chaoyang District Beitucheng West Road No. 3

Patentee before: Institute of Microelectronics, Chinese Academy of Sciences

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200526

Address after: 610200 Sichuan Chengdu Shuangliu District Dongsheng Street Chengdu core industrial park concentration area

Patentee after: China core Microelectronics Technology Chengdu Co., Ltd

Address before: 100029 Beijing city Chaoyang District Beitucheng West Road No. 3, building 15, room 328

Patentee before: Beijing Zhongke micro Investment Management Co., Ltd.

TR01 Transfer of patent right