CN102448059B - 应用于ZigBee协议的加解密电路结构及其控制方法 - Google Patents
应用于ZigBee协议的加解密电路结构及其控制方法 Download PDFInfo
- Publication number
- CN102448059B CN102448059B CN201110375406.4A CN201110375406A CN102448059B CN 102448059 B CN102448059 B CN 102448059B CN 201110375406 A CN201110375406 A CN 201110375406A CN 102448059 B CN102448059 B CN 102448059B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- data group
- control signal
- output
- 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
Links
Images
Abstract
本发明涉及了一种应用于ZigBee协议的加解密电路结构及其控制方法,该电路结构基于两个AES加密器,通过控制信号对电路控制,分别实现ZigBee协议中的CCM*加密/认证码产生、CCM*解密/认证码确认以及基于AES-128的MMOHash函数等运算操作。本发明完全使用硬件电路实现AES-CCM*安全模式和MMOHASH函数,减小了ZigBee系统中CPU的负载,也避免了不必要的软件攻击,同时本发明在CCM*加密/认证码产生运算操作过程中,可以使用加密运算操作和认证码产生运算操作并行运行方式,以及在CCM*解密/认证码确认运算操作过程中,可以使用解密运算操作和认证码确认运算操作并行运行方式,从而加快了CCM*模式的运算操作速度。
Description
技术领域
本发明属于加解密技术领域,特别是涉及一种应用于ZigBee协议的加解密电路结构及其方法。
背景技术
1.CCM*安全模式
(1)ZigBee(紫蜂)协议安全机制
ZigBee技术是一种为低速率控制网络设计的标准无线网络协议,具有低复杂度、低功耗、低速率、低成本等特点,其工作在2.4GHz的ISM频段上,传输速率为20kb/s~250kb/s,传输距离为10m~75m。ZigBee协议栈包含物理层、媒体访问控制层、网络层、应用层,并定义了安全服务提供机制。
ZigBee标准是建立在IEEE802.15.4标准基础上,其物理层、媒体访问控制层采用的是IEEE802.15.4标准,因此ZigBee安全体系结构是建立在IEEE802.15.4的安全服务基础上。ZigBee利用这些安全服务对传输的数据进行加密处理,并提供对接入网络的设备的身份认证、密钥管理等功能,ZigBee定义的网络层和应用层都包含该安全体系。
IEEE802.15.4安全服务是基于AES-CCM*安全模式生成一系列的安全机制。IEEE802.15.4规定AES-CCM*安全模式中使用的加密函数为128位数据分组和128位密钥的AES加密算法,即AES-128加密算法。CCM*模式是CCM(Counter with Cipher block chaining-Message authentication code)加密模式的扩展。CCM模式结合了CTR数据加密模式(Counter Mode)和CBC-MAC身份认证模式(Cipher Block Chaining-Message Authentication Code)而衍生出来的安全模式,既包含了加/解密功能模式,又包含了身份认证模式。CCM*模式除了可以使用CCM模式以外,还可以单独使用CTR数据加/密模式(Counter Mode)和CBC-MAC身份认证模式(Cipher Block Chaining-Message Authentication Code)。
(2)CBC-MAC身份认证模式
CBC-MAC模式可以用以下公式表示:
X0:=0128;
T:=First_M_Bytes(Xn+1).
公式中EKey()为密钥为Key的AES-128加密函数,0128表示128比特全0字符串。图1为CBC-MAC认证码产生过程示意图,图中FMB为截取前M个字节,即公式中的First_M_Bytes()函数。
如图1所示,发送方根据数据分组为128比特的辅助验证数据组B0~Bn产生M字节验证码T,辅助验证数据组B0~Bn主要由明文附加信息,附加验证信息数据a和信息数据明文m组成。接收方根据明文附加信息,附加验证信息数据a,以及接收到的、解密后的信息数据的明文m组成辅助验证数据组B0~Bn,同发送方一样按照图1所示的过程产生一个M字节验证码T,将T和接收到的并经过解密的发送方验证码T进行比较,如果T和T相同,则认为接收到的、解密后的信息数据的明文m′与发送方的发送信息数据的明文m相同,如果T′和T不相同,则认为接收到的数据被篡改过。
(3)CTR数据加/解密模式
CTR数据加密表达式为:
S0:=EKey(A0);
图2为CTR加/解密流程示意图。如图2所示,发送方首先将验证码T进行加密为U,然后将信息数据明文m进行分组为Mi,每组长为128比特,最后一组如果不足128比特,则填充0补足,AES-128每次加密一组数据,生成信息密文数据组Ci。Ai为辅助加密数据组,由明文附加信息和计数值组成,计数值为0~m。发送方按照以下顺序发送:C1,...,Cm,U。
CTR数据解密表达式为:
S0:=EKey(A0);
如图2所示,接收方首先将加密验证码U进行解密为T,然后对信息密文数据组Ci进行解密。
(4)辅助验证数据组Bi
辅助验证数据组B0~Bn主要有三部分组成:1.包含明文附加信息的数据组B0;2.包含附加验证信息数据a的数据组B1~Bt;3.包含信息数据明文m的数据组Bt-1~Bn。
①B0数据组结构
B0数据组结构如图3所示。由图3可知B0数据组由以下数据组成:
B0=Flags||NONCE||LM,||为连接符号;
其中Flags=Reserved||Adata||(M-2)/2||L。
Flags中各个字段的定义:
Reserved:保留位,应当设为‘0’状态。
Adata:附加验证信息数据a标志位,如果Adata=‘1’,则表明有附加验证信息数据a,且数据组B1~Bt为附加验证信息数据a。如果Adata=‘0’,则表明没有附加验证信息数据a,数据组B1~Bn为信息数据明文数据组M1~Mm,此时m=n。
(M-2)/2:M认证码T长度,以字节为单位。当M>0,这三个比特位的数值为(M-2)/2,如果M=0,这三个比特位的数值为0。ZigBee/IEEE802.15.4中规定M取值范围为0,4,8,16。
L:LM的长度,以比特为单位,ZigBee/IEEE802.15.4中规定L=2。
B0数据组结构各个字段的定义:
NONCE:此字段数据由信息源地址,帧计数器以及安全等级等信息组成。
LM:信息数据明文m的长度,以字节为单位,取值范围为0≤LM≤28L。
②B1~Bt数据组结构
B1~Bt数据组包含附加验证信息数据a以及其长度信息LA,即将LA||a分组为B1~Bt,每组128比特,最后一组如果不足128比特,则填充‘0’补齐。
③Bt+1~Bn数据组结构
Bt+1~Bn数据组即信息数据明文数据组M1~Mm。
(5)辅助加密数据组Ai
辅助加密数据组Ai(i=0,...,m)结构如图4所示,由图4可知,数据组Ai结构与数据组B0结构很相似,B0数据组包含了Ai结构所有信息,除了计数值Counter i。因此Ai可根据数据组B0和一个计数器值构成。
(6)CCM*并行运行模式
因为Bt+1~Bn数据组就是信息数据明文数据组M1~Mm,因此CBC-MAC运算操作和CTR运算操作可以并行运行。图5为CCM*并行运行流程示意图,图中虚线部分为CTR解密,以及验证码确认部分。FWZB(即Filled With‘0’Bite)作用为,在U后面填充0,填充为16字节(128比特)数据组U||0。
如图5所示,发送方进行数据加密/认证码产生并行运行时,首先对数据组B0~Bt进行CBC-MAC运算操作,然后对Bt+1~Bn数据组同时进行CBC-MAC运算操作和CTR加密运算操作。对于CTR运算操作,将验证码T的加密运算操作放到最后,并且对截取前M个字节的操作放到加密之后,x为由‘0’比特或者‘1’比特组成的任意值比特串。
接收方进行数据解密/认证码确认并行运行时,也是首先对数据组B0~Bt进行CBC-MAC运算操作,然后对C1,...,Cm进行CTR解密运算操作,同时对解密后的Bt+1~Bn数据组进行CBC-MAC运算操作。对于CTR解密运算操作,将验证码U的解密运算操作放到最后,并且在运算操作之前将M字节U填充为16字节(128比特)数据组U||0。将U||0解密为T||x并与CBC-MAC运算操作结果T||/x行异或,取异或后的前M字节,如果前M字节全为0,则T和T′相同,如果 不全为0,则T和T′不相同。
2.MMO(Matyas-Meyer-Oseas)Hash函数
ZigBee协议规定,AES-CCM*模式的密钥由对称密钥密钥建立SKKE(Symmetric-Key Key Establishment)协议建立。SKKE协议使用Hash消息鉴权机制HMAC(Hash Message Authentication Code)机制提供密钥确认,ZigBee标准使用的Hash函数为MMO Hash函数,且规定采用AES-128加密算法来构造MMO Hash函数。
MMO Hash函数表达公式:
Hash0:=0128;
HMAC:=Hashs.
公式中E(Key,x)=EKey(x),即AES-128加密函数。图6为MMO Hash函数运算操作流程图。如图6所示,HASH函数根据输入数据组I1~Is生成HMAC。
3.相关公开文献
在ZigBee协议中,在CCM*模式中和密钥建立过程中都使用到了AES-128加密算法。关于AES算法的电路实现方式,国内外公开的文献中提出了许多解决方案,可以满足不同应用场合的处理速度,电路面积,以及功耗等方面要求,在这些公开的解决方案中,有许多方案可以实现本发明中AES加密器。例如:
(1)Khoa Vu,David Zier.FPGA Implementation AES for CCM Mode Encryptionn Using Xilinx Spartan-II.ECE-679,Advanced Cryptography,Oregon State University,Spring 2003.
(2)LI Zhen-rong,ZHUANG Yi-qi,ZHANG Chao,JIN Gang.Low-power and area-optimized VLSI implementation of AES coproeessor for Zigbee system.The Journal of China Universities of Posts and Telecommunications,2009,16(3):89-94
关于CCM*模式的电路实现方式,国内外也有许多公开文献,与本发明相近的公开文献有:
(1)在已授权的美国专利US007831039B2中提出了基于两个AES加密器分别实现CCM*加密/认证码产生的电路结构和CCM*解密/认证码确认的电路结构,以及基于单个AES加密器分别实现CCM*加密/认证码产生的电路结构和CCM*解密/认证码确认的电路结构。
【ST Microelectronics Inc.(Guido Bertoni;Jefferson E.Owen).AES ENCRYPTION CIRCUITRY WITH CCM.US007831039B2.2010】。
(2)怀莲,韩煜等人提出了基于两个AES加密器实现既可以用来进行CCM*加密/认证码产生也可以进行CCM*解密/认证码确认的电路结构。
【Lian Huai,Xuecheng Zou,Zhenglin Liu,Yu Hang.An Energy-efficient AES-CCM Implementation for IEEE802.15.4 Wireless Sensor Networks.In:International Conference on Networks Security,Wireless Communications and Trusted Computing(NSWCTC 2009),Los Alamitos:IEEE Computer Society,2009(2).】。
【怀莲.IEEE802.15.4CCM-AES协处理器的研究与设计.武汉.华中科技大学硕士论文.2009】。
【韩煜.嵌入式系统安全的密码算法及实现技术研究.武汉.华中科技大学博士论文.2008】。
上述关于CCM*模式电路实现的公开文献中,都实现了CCM*模式的加密运算操作和认证码产生运算操作并行运行,以及解密运算操作和认证码确认运算操作并行运行。迄今为止,对于MMO Hash函数与CCM*相结合的电路结构及其方法,国内外还没有关于这方面的公开文献。
发明内容
本发明基于两个AES加密器,分别实现ZigBee协议中的CCM*加密/认证码产生、CCM*解密/认证码确认以及MMO Hash函数等功能,其中在CCM*加密/认证码产生运算操作过程中,可以使用加密运算操作和认证码产生运算操作并行运行方式,以及在CCM*解密/认证码确认运算操作过程中,可以使用解密运算操作和认证码确认运算操作并行运行方式。
为了达到上述目的,本发明首先提供一种应用于ZigBee协议的加解密电路结构,所采用的技术方案为:
一种应用于ZigBee协议的加解密电路结构,其特征在于:
所述电路结构包括:AES加密器1、AES加密器2、计数器、辅助加密数据产生器、选择器MUX1、选择器MUX2、选择器MUX3、选择器MUX4、异或器XOR1、异或器XOR2和异或器XOR3,还包括:控制信号输入端口、数据输入端口、密钥输入端口、认证结果输出端口和数据输出端口;
所述选择器MUX1的一个数据输入端连接到数据输入端口,另一个数据输入端连接到异或器XOR3的输出端,选择信号输入端与控制信号输入端口相连接;
所述选择器MUX2的一个数据输入端连接到密钥输入端口,另一个数据输入端连接到异或器XOR3输出端,选择信号输入端与控制信号输入端口相连接;
所述计数器的控制信号输入端与控制信号输入端口相连接;
所述辅助加密数据产生器的一个数据输入端连接到计数器输出端,另一个数据输入端连接到数据输入端口,控制信号输入端与控制信号输入端口相连接;
所述选择器MUX4的一个数据输入端连接到辅助加密数据产生器的输出端,另一个数据 输入端连接到数据输入端口,选择信号输入端与控制信号输入端口相连接;
所述异或器XOR1的一个数据输入端连接到选择器MUX1的输出端,另一个数据输入端连接到AES加密器1的输出端,控制信号输入端与控制信号输入端口相连接;
所述AES加密器1的数据输入端连接到异或器XOR1的输出端,AES加密器1密钥输入端连接到密钥产生器的一个输出端,控制信号输入端与控制信号输入端口相连接;
所述AES加密器2的数据输入端连接到选择器MUX4的输出端,AES加密器2密钥输入端连接到密钥产生器的另一个输出端,控制信号输入端与控制信号输入端口相连接;
所述密钥产生器的数据输入端连接到选择器MUX2的输出端,控制信号输入端与控制信号输入端口相连接;
所述异或器XOR2的一个数据输入端连接到AES加密器1的输出端,另一个数据输入端连接到异或器XOR3的输出端,控制信号输入端与控制信号输入端口相连接,输出端与认证结果输出端口相连接;
所述选择器MUX3的一个数据输入端连接到AES加密器1的输出端,另一个数据输入端连接到数据输入端口,选择信号输入端与控制信号输入端口相连接;
所述异或器XOR3的一个数据输入端连接到选择器MUX3的输出端,另一个数据输入端连接到AES加密器2的输出端,控制信号输入端与控制信号输入端口相连接,输出端与数据输出端口相连接。
本发明进一步提供了上述电路结构的控制方法,具体方案如下:
应用于ZigBee协议的加解密电路结构的控制方法,其特征在于通过控制信号输入端口输入控制信号,在控制信号的控制下,电路在四种状态之间转换,四种状态包括:“空闲状态”、“CCM加密状态”、“CCM解密状态”和“HASH函数状态”:
所述的“空闲状态”,为电路的初始工作状态,在系统上电或系统复位后,电路进入“空闲状态”,电路中各个部件停止工作;
所述的“CCM加密状态”,在控制信号输入端口给出“CCM加密状态”控制信号后,电路进入“CCM加密状态”,实现ZigBee协议中的CCM*加密/认证码产生运算操作,当完成CCM*加密/认证码产生运算操作后,在控制信号控制下返回“空闲状态”;
所述的“CCM解密状态”,在控制信号输入端口给出“CCM解密状态”控制信号后,电路进入“CCM解密状态”,实现ZigBee协议中的CCM*解密/认证码确认运算操作,当完成CCM*解密/认证码确认运算操作后,在控制信号控制下返回“空闲状态”;
所述的“HASH函数状态”,在控制信号输入端口给出“HASH函数状态”控制信号后,电路进入“HASH函数状态”,实现ZigBee协议中的MMO HASH函数运算操作,当完成MMO HASH函数运算操作后,在控制信号控制下返回“空闲状态”。
在“CCM加密状态”下,由选择器MUX1、异或器XOR1、AES加密器1和密钥产生器组成CBC-MAC认证码产生运算操作电路,用来实现CCM*模式中的认证码产生运算操作;由计数器、辅助加密数据产生器、选择器MUX4、AES加密器2、密钥产生器、异或器XOR3以及选择器MUX3组成CTR加密运算操作电路,用来实现CCM*模式中的数据加密运算操作;由选择器MUX2和密钥产生器组成初始密钥输入电路,用来输入CCM*加密/认证码产生运算操作中所使用的初始密钥Key,在“CCM加密状态”下,异或器XOR2停止工作。
在“CCM解密状态”下,由选择器MUX1、异或器XOR1、AES加密器1、密钥产生器和异或器XOR2组成CBC-MAC认证码确认运算操作电路,用来实现CCM*模式中的认证码确认运算操作;由计数器、辅助加密数据产生器、选择器MUX4、AES加密器2、密钥产生器、异或器XOR3以及选择器MUX3组成CTR解密运算操作电路,用来实现CCM*模式中的数据解密运算操作;由选择器MUX2和密钥产生器组成初始密钥输入电路,用来输入CCM*解密/认证码确认运算操作中所使用的初始密钥Key。
在“HASH函数状态”下,由选择器MUX2、选择器MUX3、选择器MUX4、密钥产生器、AES加密器2和异或器XOR3组成MMO HASH函数运算操作电路,用来实现MMO HASH函数运算操作;选择器MUX1,异或器XOR1,异或器XOR2,AES加密器1,计数器和辅助加密数据产生器停止工作。
本发明完全使用硬件电路实现AES-CCM*安全模式的运算操作和MMO HASH函数,减小了ZigBee系统中CPU的负载,也避免了不必要的软件攻击,同时本发明在CCM*加密/认证码产生运算操作过程中,可以使用加密运算操作和认证码产生运算操作并行运行方式,以及在CCM*解密/认证码确认运算操作过程中,可以使用解密运算操作和认证码确认运算操作并行运行方式,从而加快了CCM*模式的运算操作速度。
附图说明
图1CBC-MAC认证码产生过程示意图;
图2CTR加解密流程示意图;
图3B0数据组结构示意图;
图4Ai数据组结构示意图;
图5CCM*并行运行流程示意图;
图6MMO Hash函数运算操作流程图;
图7本发明电路结构示意图;
图8电路控制状态转移图
图9电路工作在CCM*加密/认证码产生模式下示意图;
图10电路工作在CCM*解密/认证码确认模式下示意图;
图11电路工作在MMO HASH函数模式下示意图。
具体实施方式
以下面是参照附图结合具体实施例对本发明作进一步的描述。
1.本发明电路结构
参见图7,一种应用于ZigBee协议的加解密电路结构,包括:AES加密器1、AES加密器2、计数器、辅助加密数据产生器、选择器MUX1、选择器MUX2、选择器MUX3、选择器MUX4、异或器XOR1、异或器XOR2、异或器XOR3。
电路结构还包括:控制信号输入端口、数据输入端口、密钥输入端口、认证结果输出端口和数据输出端口。
其中,控制信号端口连接到电路中各个部件上,控制端口输入的信号包括各个部件的使能信号以及选择器的选择信号,图7中的虚线为控制信号线。
如图7所示,选择器MUX1的一个数据输入端连接到数据输入端口,另一个数据输入端连接到异或器XOR3的输出端,选择信号输入端与控制信号输入端口相连接;选择器MUX2的一个数据输入端连接到密钥输入端口,另一个数据输入端连接到异或器XOR3输出端,选择信号输入端与控制信号输入端口相连接;计数器的控制信号输入端与控制信号输入端口相连接;辅助加密数据产生器的一个数据输入端连接到计数器输出端,另一个数据输入端连接到数据输入端口,控制信号输入端与控制信号输入端口相连接;选择器MUX4的一个数据输入端连接到辅助加密数据产生器的输出端,另一个数据输入端连接到数据输入端口,选择信号输入端与控制信号输入端口相连接;异或器XOR1的一个数据输入端连接到选择器MUX1的输出端,另一个数据输入端连接到AES加密器1的输出端,控制信号输入端与控制信号输入端口相连接;AES加密器1的数据输入端连接到异或器XOR1的输出端,AES加密器1密钥输入端连接到密钥产生器的一个输出端,控制信号输入端与控制信号输入端口相连接;AES加密器2的数据输入端连接到选择器MUX4的输出端,AES加密器2密钥输入端连接到密钥产生器的另一个输出端,控制信号输入端与控制信号输入端口相连接;密钥产生器的数据输入端连接到选择器MUX2的输出端,控制信号输入端与控制信号输入端口相连接;异或器XOR2的一个数据输入端连接到AES加密器1的输出端,另一个数据输入端连接到异或器XOR3的输出端,控制信号输入端与控制信号输入端口相连接,输出端与认证结果输出端口相连接;选择器MUX3的一个数据输入端连接到AES加密器1的输出端,另一个数据输入端连接到数据输入端口,选择信号输入端与控制信号输入端口相连接;异或器XOR3的一个数据输入端连接到选择器MUX3的输出端,另一个数据输入端连接到AES加密器2的输出端,控制信号输入端与控制信号输入 端口相连接,输出端与数据输出端口相连接。
2.电路工作状态及其控制方法
参见图8,在控制信号输入端口输入的控制信号的控制下,本发明电路可以工作在四种状态:“空闲状态”、“CCM加密状态”、“CCM解密状态”和“HASH函数状态”。
“空闲状态”为电路的初始工作状态,在系统上电或系统复位后,电路进入“空闲状态”。在“空闲状态”下,电路中各个部件停止工作。
如图8所示,启动模式1,即控制信号输入端口给出“CCM加密状态”控制信号,电路进入“CCM加密状态”。在“CCM加密状态”下,电路实现ZigBee协议中的CCM*加密/认证码产生运算操作。当电路完成CCM*加密/认证码产生运算操作后,在控制信号控制下返回“空闲状态”。
如图8所示,启动模式2,即控制信号输入端口给出“CCM解密状态”控制信号后,电路进入“CCM解密状态”。在“CCM解密状态”下,电路实现ZigBee协议中的CCM*解密/认证码确认运算操作。当电路完成CCM*解密/认证码确认运算操作后,在控制信号控制下返回“空闲状态”。
如图8所示,启动模式3,即控制信号输入端口给出“HASH函数状态”控制信号后,电路进入“HASH函数状态”。在“HASH函数状态”下,电路实现ZigBee协议中的MMO HASH函数运算操作。当电路完成MMO HASH函数运算操作后,在控制信号控制下返回“空闲状态”。
3.“CCM加密状态”下的电路结构
参见图9,图9为本发明电路工作“CCM加密状态”下的电路结构示意图。在“CCM加密状态”下,由选择器MUX1、异或器XOR1、AES加密器1和密钥产生器组成CBC-MAC认证码产生运算操作电路,用来实现CCM*模式中的认证码产生运算操作。由计数器、辅助加密数据产生器、选择器MUX4、AES加密器2、密钥产生器、异或器XOR3以及选择器MUX3组成CTR加密运算操作电路,用来实现CCM*模式中的数据加密运算操作。由选择器MUX2和密钥产生器组成初始密钥输入电路,用来输入CCM*加密/认证码产生运算操作中所使用的初始密钥Key。在“CCM加密状态”下,异或器XOR2停止工作,因此图9中未表出。
图9中虚线表示该路径上的电路只在某一时刻工作,工作时间很短。
4.“CCM加密状态”下的电路控制
结合图5,对图9所示的电路结构的控制方法进行说明。
(1)输入初始密钥Key
电路首先输入初始密钥Key,并将初始密钥Key读入密钥产生器。Key只输入一次,因此图9中用虚线表示。完成此操作的电路控制方法为:
①在控制信号控制下,选择器MUX2将密钥输入端口上的初始密钥Key,传送到密钥产 生器数据输入端。
②在控制信号控制下,密钥产生器将初始密钥Key读入其内部寄存器。
(2)输入数据组B0~Bt,其中t为自然数
电路其次输入包含明文附加信息的辅助验证数据组B0和包含附加验证信息a的辅助验证数据组B1~Bt,此时电路有两个操作同时进行,一个操作是将B0读入辅助加密数据产生器,另一个操作是对B0~Bt进行CBC-MAC运算操作。
辅助加密数据产生器读入B0,为辅助加密数据组Ai的产生做准备,辅助加密数据产生器只读入一次B0,因此图9中用虚线表示。
将数据组B0输入到密钥产生器操作的电路控制方法:在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组B0,读入其内部寄存器。
对每个数据组Bi(i=0,...,t)进行CBC-MAC运算操作的电路控制方法为:
①在控制信号控制下,选择器MUX1将数据输入端口上的数据组Bi,传送到异或器XOR1一个数据输入端。
②在控制信号控制下,异或器XOR1对数据组Bi与数据组Xi进行异或运算,Xi为AES加密器1输出值(其中,AES加密器1输出的初始值X0=0128,0128表示128比特0),异或结果输出到AES加密器1的输入端。
③在控制信号控制下,AES加密器1输入异或器XOR1输出的数据,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器1密钥输入端,AES加密器1根据子密钥对数据进行加密。加密结果Xi+1输出到AES加密器1输出端。
(3)输入数据组Bt+1~Bn,其中n为自然数
电路再次输入输入包含信息数据明文m的辅助验证数据组Bt+1~Bn,对数据组Bt+1~Bn的操作有两个,一个操作是对Bt+1~Bn进行CBC-MAC运算操作,另一个是进行CTR加密运算操作,两个操作是同时进行的。
对数据组Bt+1~Bn进行CBC-MAC运算操作的电路控制方法与数据组B1~Bt进行CBC-MAC运算操作的电路控制方法相同。
对每个数据组Bi(i=t+1,...,n)进行CTR加密运算操作的电路控制方法为:
①在控制信号控制下,计数器计数值加1,计数器初始值为0,计数器将当前计数值j(j=1,...,m;m=n-t)输出到辅助加密数据产生器数据输入端。
②在控制信号控制下,辅助加密数据产生器根据当前计数值j和内部寄存器中的数据组B0,生成当前辅助加密数据组Aj,并将Aj输出到选择器MUX4一个数据输入端。
③在控制信号控制下,选择器MUX4将Aj输出到AES加密器2数据输入端。
④在控制信号控制下,AES加密器2输入数据Aj,并对Aj进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2使用子密钥对Aj进行加密。加密结果Yj输出到异或器XOR3一个数据输入端。
同时,在控制信号控制下,选择器MUX3将数据组Bi,传送到异或器XOR3另一个数据输入端。
⑤在控制信号控制下,异或器XOR3对数据组Bi与数据组Yj进行异或运算,异或结果Cj输出到数据输出端口。
(4)验证码T加密
电路最后对CBC-MAC运算产生的验证码T进行CTR加密运算操作,电路控制方法为:
①在控制信号控制下,计数器计数值清零,并将当前计数值0输出到辅助加密数据产生器的数据输入端。
②在控制信号控制下,辅助加密数据产生器根据当前计数值0和内部寄存器中的数据组B0,生成当前辅助加密数据组A0,并将A0输出到选择器MUX4一个数据输入端。
③在控制信号控制下,选择器MUX4将A0输出到AES加密器2数据输入端。
④在控制信号控制下,AES加密器2输入数据A0,并对A0进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2使用子密钥对A0进行加密。加密结果Y0输出到异或器XOR3一个数据输入端。
同时,在控制信号控制下,选择器MUX3将AES加密器1输出的Xn+1传送到异或器XOR3另一个数据输入端,Xn+1为数据组B0~Bn的CBC-MAC运算结果,Xn+1由M字节的验证码T和16-M字节的任意二进制比特串x组成,即T||x。
⑤在控制信号控制下,异或器XOR3对数据组Xn+1与数据组Y0进行异或运算,异或结果U||x输出到数据输出端口,异或结果U||x由M字节的加密验证码U和16-M字节的任意二进制比特串x组成。
5.“CCM解密状态”下的电路结构
参见图10,图10为本发明电路工作“CCM解密状态”下的电路结构示意图。电路结构在“CCM解密状态”下,由选择器MUX1、异或器XOR1、AES加密器1、密钥产生器和异或器XOR2组成CBC-MAC认证码确认运算操作电路,用来实现CCM*模式中的认证码确认运算操作。由计数器、辅助加密数据产生器、选择器MUX4、AES加密器2、密钥产生器、异或器XOR3以及选择器MUX3组成CTR解密运算操作电路,用来实现CCM*模式中的数据解密运算操作。由选择器MUX2和密钥产生器组成初始密钥输入电路,用来输入CCM*解密/认证码确认运算操作中所使用的初始密钥Key。
图10中虚线表示该路径上的电路只在某一时刻工作,工作时间很短。
6.“CCM解密状态”下的电路控制
结合图5,对图10所示的电路结构的控制方法进行说明。
(1)输入初始密钥Key
电路首先输入初始密钥Key,其电路控制方法与“CCM加密状态”下输入初始密钥Key的电路控制方法相同。
(2)输入数据组B0~Bt
电路其次输入包含明文附加信息的数据组B0,其电路控制方法与“CCM加密状态”下输入数据组B0~Bt的电路控制方法相同
(3)输入数据组C1
电路再次输入信息密文数据组C1,数据组C1只进行CTR解密运算操作。对数据组Cj(j=1)进行CTR解密运算操作的电路控制方法为:
①在控制信号控制下,计数器计数值加1,计数器初始值为0,计数器将当前计数值j输出到辅助加密数据产生器数据输入端。
②在控制信号控制下,辅助加密数据产生器根据当前计数值j和内部寄存器中的数据组B0,生成当前辅助加密数据组Aj,并将Aj输出到选择器MUX4一个数据输入端。
③在控制信号控制下,选择器MUX4将Aj输出到AES加密器2数据输入端。
④在控制信号控制下,AES加密器2输入数据Aj,并对Aj进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2使用子密钥对Aj进行加密。加密结果Yj输出到异或器XOR3一个数据输入端。
同时,在控制信号控制下,选择器MUX3将数据输入端口上的数据组Cj,传送到异或器XOR3另一个数据输入端。
⑤在控制信号控制下,异或器XOR3对数据组Cj与数据组Yj进行异或运算,异或结果作为数据明文数据组Mj输出到数据输出端口,同时也作为辅助验证数据组Bj+t输出到选择器MUX1的一个数据输入端。
(4)输入数据组C2~Cm,其中m为自然数
电路再次输入信息密文数据组C2~Cm,此时电路有两个运算操作同时进行,一个是数据组C2~Cm进行CTR解密运算操作,另一个是对解密后的数据组Bt+1~Bn-1进行CBC-MAC运算操作。
对每个数据组Bi(i=t+1,...,n-1)进行CBC-MAC运算操作的电路控制方法为:
①在控制信号控制下,选择器MUX1将异或器XOR3输出的数据组Bi,传送到异或器XOR1一个数据输入端。
②在控制信号控制下,异或器XOR1对数据组Bi与数据组Xi进行异或运算,Xi为AES加密 器1输出值,异或结果输出到AES加密器1的输入端。
③在控制信号控制下,AES加密器1输入异或器XOR1输出的数据,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器1密钥输入端,AES加密器1根据子密钥对数据进行加密。加密结果Xi+1输出到AES加密器1输出端。
对每个数据组Cj(j=2,...,m;m=n-t)进行CTR解密运算操作的电路控制方法,与对数据组Cj(j=1)进行CTR解密运算操作的电路控制方法相同。
(6)输入数据组U||0;
电路再次输入加密验证码数据组U||0,此时电路有两个运算操作同时进行,一个数据组U||0进行CTR解密运算操作,另一个是对解密后的数据组Bn进行CBC-MAC运算操作。
数据组Bn进行CBC-MAC运算操作的电路控制方法与对数据组Bt+1~Bn-1进行CBC-MAC运算操作的电路控制方法相同。
U||0由M字节加密验证码U和16-M字节的0组成,对数据组U||0进行CTR解密运算操作的电路控制方法为:
①在控制信号控制下,计数器计数值清零,并将计数值0输出到辅助加密数据产生器的数据输入端。
②在控制信号控制下,辅助加密数据产生器根据当前计数值0和内部寄存器中的数据组B0,生成当前辅助加密数据组A0,并将A0输出到选择器MUX4一个数据输入端。
③在控制信号控制下,选择器MUX4将A0输出到AES加密器2数据输入端。
④在控制信号控制下,AES加密器2输入数据A0,并对A0进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2使用子密钥对A0进行加密。加密结果Y0输出到异或器XOR3一个数据输入端。
同时,在控制信号控制下,选择器MUX3将数据输入端口上的数据组U||0传送到异或器XOR3另一个数据输入端,U||0由M字节的加密验证码U和16-M字节的二进制“0”比特串组成。
⑤在控制信号控制下,异或器XOR3对数据组U||0与数据组Y0进行异或运算,异或结果T||x出到异或器XOR3输出端,异或T||x果由M字节的验证码T和16-M字节的任意二进制比特串x组成。
(7)验证码T确认
电路最后对验证码T进行确认操作,即对数据组U||0解密后的数据组T||x和CBC-MAC运算结果T||x行比较,其电路控制方法为:
在控制信号控制下,异或器XOR3分别读入AES加密器1输出的数据组Xn+1,以及异或器XOR3输出的数据组T||x。Xn+1为CBC-MAC运算结果,Xn+1由M字节重新生成的验证码T′,以及 16-M字节的任意二进制比特串x组成,即T||x。异或器XOR3对数据组T||x和数据组T||x进行异或运算,并将异或结果输出到认证结果输出端口。
7.“HASH函数状态”下的电路结构
参见图11,图11为本发明电路工作在MMO HASH函数模式下的示意图。电路结构在“HASH函数状态”下,由选择器MUX2、选择器MUX3、选择器MUX4、密钥产生器、AES加密器2和异或器XOR3组成MMO HASH函数运算操作电路,用来实现MMO HASH函数运算操作。在“HASH函数状态”下,选择器MUX1,异或器XOR1,异或器XOR2,AES加密器1,计数器和辅助加密数据产生器停止工作,因此在图10中未表出。
图11中虚线表示该路径上的电路只在某一时刻工作,工作时间很短。
8.“HASH函数状态”下的电路控制
结合图6,对图11所示的电路结构的工作原理进行说明。
(1)输入数据组I1~Is-1
电路首先输入数据组I1~Is-1,并数据组I1~Is-1进行的MMO HASH运算操作。对每个数据组Ii(i=1,...,s-1)进行MMO HASH运算操作的电路控制方法为:
①在控制信号控制下,选择器MUX4将数据输入端口上的数据组Ii,传送到AES加密器2数据输入端。
②在控制信号控制下,AES加密器2输入数据组Ii,并对输入的数据组Ii进行加密,在加密过程中,密钥产生器根据初始密钥Hashi-1产生10组子密钥(其中,Hash0为密钥产生器内部寄存器的初始值,且Hash0=0128),并输出到AES加密器2密钥输入端,AES加密器2根据子密钥对数据组Ii进行加密。加密结果输出到异或器XOR3一个数据输入端。
同时,在控制信号控制下,选择器MUX3将数据输入端口上的数据组Ii,传送到异或器XOR3另一个数据输入端。
③在控制信号控制下,异或器XOR3对AES加密器2加密结果和数据组Ii进行异或运算,异或运算结果Hashi输出到异或器XOR3的输出端。
④在控制信号控制下,选择器MUX2将异或器XOR3输出的Hashi,传送到密钥产生器数据输入端。
⑤在控制信号控制下,密钥产生器将Hashi读入其内部寄存器,将Hashi作为下一轮MMO HASH函数运算的初始密钥。
(2)输入数据组Is
电路最后输入数据组Is,并对数据组Is进行MMO HASH运算操作,其电路控制方法为:
①在控制信号控制下,选择器MUX4将数据输入端口上的数据组Is,传送到AES加密器2数据输入端。
②在控制信号控制下,AES加密器2输入数据组Is,并对输入的数据组Is进行加密,在加密过程中,密钥产生器根据初始密钥Hashs-1产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2根据子密钥对数据组Is进行加密。加密结果输出到异或器XOR3一个数据输入端。
同时,在控制信号控制下,选择器MUX3将数据输入端口上的数据组Is,传送到异或器XOR3另一个数据输入端。
③在控制信号控制下,异或器XOR3对AES加密器2加密结果和数据组Is进行异或运算,异或运算结果Hashs作为MMO HASH函数运算结果HMAC输出到数据输出端口上。
本发明已参照当前的实施方式进行了描述,但本技术领域的普通技术人员应当认识到,上述实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进,均应包含在本发明的权利保护范围之内。
Claims (2)
1.一种应用于ZigBee协议的加解密电路结构的控制方法,所述电路结构包括:AES加密器1、AES加密器2、计数器、辅助加密数据产生器、选择器MUX1、选择器MUX2、选择器MUX3、选择器MUX4、异或器XOR1、异或器XOR2和异或器XOR3,还包括:控制信号输入端口、数据输入端口、密钥输入端口、认证结果输出端口和数据输出端口;
其特征在于通过控制信号输入端口输入控制信号,在控制信号的控制下,电路在四种状态之间转换,四种状态包括:“空闲状态”、“CCM加密状态”、“CCM解密状态”和“HASH函数状态”:
所述的“空闲状态”,为电路的初始工作状态,在系统上电或系统复位后,电路进入“空闲状态”,电路中各个部件停止工作;
所述的“CCM加密状态”,在控制信号输入端口给出“CCM加密状态”控制信号后,电路进入“CCM加密状态”,实现ZigBee协议中的CCM*加密/认证码产生运算操作,当完成CCM*加密/认证码产生运算操作后,在控制信号控制下返回“空闲状态”;
所述的“CCM解密状态”,在控制信号输入端口给出“CCM解密状态”控制信号后,电路进入“CCM解密状态”,实现ZigBee协议中的CCM*解密/认证码确认运算操作,当完成CCM*解密/认证码确认运算操作后,在控制信号控制下返回“空闲状态”;
所述的“HASH函数状态”,在控制信号输入端口给出“HASH函数状态”控制信号后,电路进入“HASH函数状态”,实现ZigBee协议中的MMO HASH函数运算操作,当完成MMO HASH函数运算操作后,在控制信号控制下返回“空闲状态”;
在“CCM加密状态”下,由选择器MUX1、异或器XOR1、AES加密器1和密钥产生器组成CBC-MAC认证码产生运算操作电路,用来实现CCM*模式中的认证码产生运算操作;由计数器、辅助加密数据产生器、选择器MUX4、AES加密器2、密钥产生器、异或器XOR3以及选择器MUX3组成CTR加密运算操作电路,用来实现CCM*模式中的数据加密运算操作;由选择器MUX2和密钥产生器组成初始密钥输入电路,用来输入CCM*加密/认证码产生运算操作中所使用的初始密钥Key,在“CCM加密状态”下,异或器XOR2停止工作;
在“CCM解密状态”下,由选择器MUX1、异或器XOR1、AES加密器1、密钥产生器和异或器XOR2组成CBC-MAC认证码确认运算操作电路,用来实现CCM*模式中的认证码确认运算操作;由计数器、辅助加密数据产生器、选择器MUX4、AES加密器2、密钥产生器、异或器XOR3以及选择器MUX3组成CTR解密运算操作电路,用来实现CCM*模式中的数据解密运算操作;由选择器MUX2和密钥产生器组成初始密钥输入电路,用来输入CCM*解密/认证码确认运算操作中所使用的初始密钥Key;
在“HASH函数状态”下,由选择器MUX2、选择器MUX3、选择器MUX4、密钥产生器、AES加密器2和异或器XOR3组成MMO HASH函数运算操作电路,用来实现MMO HASH函数运算操作;选择器MUX1,异或器XOR1,异或器XOR2,AES加密器1,计数器和辅助加密数据产生器停止工作。
2.根据权利要求1所述的应用于ZigBee协议的加解密电路结构的控制方法,其特征在于实现CCM*加密/认证码产生运算操作的方法具体包括以下步骤:
a.输入初始密钥Key;
b.输入辅助验证数据组B 0~B t ,其中t为自然数;
c.输入辅助验证数据组B t+1~B n ,其中n为自然数;
d.验证码T加密;
所述的步骤a,是完成将初始密钥Key输入到密钥产生器的操作,进一步包括以下步骤:
a1) 在控制信号控制下,选择器MUX2将密钥输入端口上的初始密钥Key传送到密钥产生器数据输入端;
a2) 在控制信号控制下,密钥产生器将初始密钥Key读入其内部寄存器;
所述的步骤b,是完成将辅助验证数据组B 0输入到密钥产生器,以及完成辅助验证数据组B 0~B t 的CBC-MAC运算操作,两个操作是同时进行的,其中:
b1)将辅助验证数据组B 0输入到密钥产生器的方法为:
在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组B 0读入其内部寄存器;
b2) 辅助验证数据组B 0~B t 的CBC-MAC运算操作方法进一步包括以下步骤:
① 在控制信号控制下,选择器MUX1将数据输入端口上的数据组B i ,其中i=0, …, t,传送到异或器XOR1的一个数据输入端;
② 在控制信号控制下,异或器XOR1对数据组B i 与数据组X i 进行异或运算,X i 为AES加密器1的输出值,其中,AES加密器1输出的初始值X 0=0128,0128表示128比特0,异或结果输出到AES加密器1的输入端;
③ 在控制信号控制下,AES加密器1输入异或器XOR1输出的数据,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器1的密钥输入端,AES加密器1根据子密钥对数据进行加密,加密结果X i+1从AES加密器1输出端输出;
所述的步骤c,是完成辅助验证数据组B t+1~B n 的CBC-MAC和CTR加密运算操作,两个操作是同时进行的,其中
c1)对每个数据组B i ,其中i=t+1, …, n,进行CBC-MAC运算操作的方法与所述步骤b中数据组B i (i=0, …, t)进行CBC-MAC运算操作的方法相同;
c2)对每个数据组B i ,其中i=t+1, …, n,进行CTR加密运算操作的方法进一步包括以下步骤:
① 在控制信号控制下,计数器计数值加1,计数器初始值为0,计数器将当前计数值j ,其中j= 1, …, m; m=n-t,输出到辅助加密数据产生器数据输入端;
② 在控制信号控制下,辅助加密数据产生器根据当前计数值j和内部寄存器中的数据组B 0,生成当前辅助加密数据组A j ,并将A j 输出到选择器MUX4一个数据输入端;
③ 在控制信号控制下,选择器MUX4将A j 输出到AES加密器2数据输入端;
④ 在控制信号控制下,AES加密器2对A j 进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2使用子密钥对A j 进行加密,加密结果Y j 输出到异或器XOR3一个数据输入端;同时,选择器MUX3将数据组B i 传送到异或器XOR3另一个数据输入端;
⑤ 在控制信号控制下,异或器XOR3对数据组B i 与数据组Y j 进行异或运算,异或结果C j 输出到数据输出端口;
所述的步骤d,是完成验证码T的CTR加密运算操作,进一步包括以下步骤:
d1)在控制信号控制下,计数器计数值清零,并将当前计数值0输出到辅助加密数据产生器的数据输入端;
d2)在控制信号控制下,辅助加密数据产生器根据当前计数值0和内部寄存器中的数据组B 0,生成当前辅助加密数据组A 0,并将A 0输出到选择器MUX4一个数据输入端;
d3)在控制信号控制下,选择器MUX4将A 0输出到AES加密器2的数据输入端;
d4)在控制信号控制下,AES加密器2对A 0进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2的密钥输入端,AES加密器2使用子密钥对A 0进行加密,加密结果Y 0输出到异或器XOR3一个数据输入端;同时,选择器MUX3将AES加密器1输出的X n+1传送到异或器XOR3另一个数据输入端,X n+1为数据组B 0~B n 的CBC-MAC运算结果,X n+1由M字节的验证码T和16-M字节的任意二进制比特串x组成,即T||x;
d5)在控制信号控制下,异或器XOR3对数据组X n+1与数据组Y 0进行异或运算,异或结果U||x输出到数据输出端口,异或结果U||x由M字节的加密验证码U和16-M字节的任意二进制比特串x组成。
3.根据权利要求1或2所述的应用于ZigBee协议的加解密电路结构的控制方法,其特征在于实现CCM*解密/认证码确认运算操作的方法具体包括以下步骤:
a.输入初始密钥Key;
b.输入辅助验证数据组B 0~B t ,其中t为自然数;
c.输入信息密文数据组C 1;
d.输入信息密文数据组C 2~C m ,其中m为自然数;
e.输入加密验证码数据组U||0;
f.验证码T确认;
所述的步骤a,是完成将初始密钥Key输入到密钥产生器的操作,进一步包括以下步骤:
a1) 在控制信号控制下,选择器MUX2将密钥输入端口上的初始密钥Key传送到密钥产生器数据输入端;
a2) 在控制信号控制下,密钥产生器将初始密钥Key读入其内部寄存器;
所述的步骤b,是完成将辅助验证数据组B 0输入到密钥产生器,以及完成辅助验证数据组B 0~B t 的CBC-MAC运算操作,两个操作是同时进行的,其中:
b1)将辅助验证数据组B 0输入到密钥产生器的方法为:
在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组B 0读入其内部寄存器;
b2) 辅助验证数据组B 0~B t 的CBC-MAC运算操作方法进一步包括以下步骤:
① 在控制信号控制下,选择器MUX1将数据输入端口上的数据组B i ,其中i=0, …, t,传送到异或器XOR1的一个数据输入端;
② 在控制信号控制下,异或器XOR1对数据组B i 与数据组X i 进行异或运算,X i 为AES加密器1的输出值,其中,AES加密器1输出的初始值X 0=0128,0128表示128比特0,异或结果输出到AES加密器1的输入端;
③ 在控制信号控制下,AES加密器1输入异或器XOR1输出的数据,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器1的密钥输入端,AES加密器1根据子密钥对数据进行加密,加密结果X i+1从AES加密器1输出端输出;
所述的步骤c,是完成信息密文数据组C 1的CTR解密运算操作,对数据组C 1 进行CTR解密运算操作的方法进一步包括以下步骤:
c1)在控制信号控制下,计数器计数值加1,计数器初始值为0,计数器将当前计数值j输出到辅助加密数据产生器数据输入端;
c2)在控制信号控制下,辅助加密数据产生器根据当前计数值j和内部寄存器中的数据组B 0,生成当前辅助加密数据组A j ,并将A j 输出到选择器MUX4一个数据输入端;
c3)在控制信号控制下,选择器MUX4将A j 输出到AES加密器2数据输入端;
c4)在控制信号控制下,AES加密器2输入数据A j ,并对A j 进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2使用子密钥对A j 进行加密,加密结果Y j 输出到异或器XOR3一个数据输入端;同时,选择器MUX3将数据输入端口上的数据组C j ,传送到异或器XOR3另一个数据输入端;
c5)在控制信号控制下,异或器XOR3对数据组C j 与数据组Y j 进行异或运算,异或结果作为数据明文数据组M j 输出到数据输出端口,同时也作为辅助验证数据组B j+t 输出到选择器MUX1的一个数据输入端;
所述的步骤d,是完成信息密文数据组C 2~ C m 的CTR解密运算操作,以及完成辅助验证数据组B t+1~B n-1的CBC- MAC运算操作,两个操作是同时进行的,其中:
d1)对每个数据组B i ,其中i=t+1, …, n-1,进行CBC-MAC运算操作的方法进一步包括以下步骤:
① 在控制信号控制下,选择器MUX1将异或器XOR3输出的数据组B i ,传送到异或器XOR1一个数据输入端;
② 在控制信号控制下,异或器XOR1对数据组B i 与数据组X i 进行异或运算,X i 为AES加密器1输出值,异或结果输出到AES加密器1的输入端;
③ 在控制信号控制下,AES加密器1输入异或器XOR1输出的数据,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器1密钥输入端,AES加密器1根据子密钥对数据进行加密,加密结果X i+1输出到AES加密器1输出端;
d2)对每个数据组C j ,其中j=2, …, m; m=n-t,进行CTR解密运算操作的方法与步骤c中对数据组C j (j=1)进行CTR解密运算操作的方法相同;
所述的步骤e,是完成加密验证码数据组U||0的CTR解密运算操作,以及完成数据组B n 的CBC-MAC运算操作,两个操作是同时进行的,其中:
e1)对数据组B n 进行CBC-MAC运算操作的电路控制方法与步骤d中对数据组B i 进行CBC-MAC运算操作的方法相同;
e2)对数据组U||0进行CTR解密运算操作的方法,进一步包括以下步骤:
① 在控制信号控制下,计数器计数值清零,并将计数值0输出到辅助加密数据产生器的数据输入端;
② 在控制信号控制下,辅助加密数据产生器根据当前计数值0和内部寄存器中的数据组B 0,生成当前辅助加密数据组A 0,并将A 0输出到选择器MUX4一个数据输入端;
③ 在控制信号控制下,选择器MUX4将A 0输出到AES加密器2数据输入端;
④ 在控制信号控制下,AES加密器2输入数据A 0,并对A 0进行加密,在加密过程中,密钥产生器根据初始密钥Key产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2使用子密钥对A 0进行加密;加密结果Y 0输出到异或器XOR3一个数据输入端;
同时,选择器MUX3将数据输入端口上的数据组U||0传送到异或器XOR3另一个数据输入端,U||0由M字节的加密验证码U和16-M字节的二进制“0”比特串组成;
⑤ 在控制信号控制下,异或器XOR3对数据组U||0与数据组Y 0进行异或运算,异或结果T||x输出到异或器XOR3输出端,异或T||x结果由M字节的验证码T和16-M字节的任意二进制比特串x组成;
所述的步骤f,是完成验证码T的确认操作,具体方法为:
在控制信号控制下,异或器XOR3分别读入AES加密器1输出的数据组X n+1,以及异或器XOR3输出的数据组T||x,X n+1为数据组B 0~B n 的CBC-MAC运算结果,X n+1由M字节重新生成的验证码T′,以及16-M字节的任意二进制比特串x组成,即T′||x,异或器XOR3对数据组T||x和数据组T′||x进行异或运算,并将异或结果输出到认证结果输出端口。
4.根据权利要求1或2所述的应用于ZigBee协议的加解密电路结构的控制方法,其特征在于实现MMO HASH函数运算操作的方法可分解为以下步骤:
a.输入数据组I 1~ I s-1;
b.输入数据组I s ;
所述的步骤a,是完成数据组I i ,其中i=1, …, s-1,的MMO HASH运算操作,进一步包括以下步骤:
① 在控制信号控制下,选择器MUX4将数据输入端口上的数据组I i ,传送到AES加密器2的数据输入端;
② 在控制信号控制下,AES加密器2输入数据组I i ,并对输入的数据组I i 进行加密,在加密过程中,密钥产生器根据初始密钥Hash i-1产生10组子密钥,其中,Hash 0为密钥产生器内部寄存器的初始值,且Hash 0=0128,并输出到AES加密器2的密钥输入端,AES加密器2根据子密钥对数据组I i 进行加密,加密结果输出到异或器XOR3的一个数据输入端;同时,选择器MUX3将数据输入端口上的数据组I i 传送到异或器XOR3的另一个数据输入端;
③ 在控制信号控制下,异或器XOR3对AES加密器2的加密结果和数据组I i 进行异或运算,异或运算结果Hash i 输出到异或器XOR3的输出端;
④ 在控制信号控制下,选择器MUX2将异或器XOR3输出的Hash i 传送到密钥产生器数据输入端;
⑤ 在控制信号控制下,密钥产生器将Hash i 读入其内部寄存器,将Hash i 作为下一轮MMO HASH函数运算的初始密钥;
所述的步骤b,是完成数据组I s 的MMO HASH运算操作,进一步包括以下步骤:
① 在控制信号控制下,选择器MUX4将数据输入端口上的数据组I s ,传送到AES加密器2数据输入端;
② 在控制信号控制下,AES加密器2输入数据组I s ,并对输入的数据组I s 进行加密,在加密过程中,密钥产生器根据初始密钥Hash s-1产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2根据子密钥对数据组I s 进行加密,加密结果输出到异或器XOR3一个数据输入端;同时,选择器MUX3将数据输入端口上的数据组I s ,传送到异或器XOR3另一个数据输入端;
③ 在控制信号控制下,异或器XOR3对AES加密器2加密结果和数据组I s 进行异或运算,异或运算结果Hash s 作为MMO HASH函数运算结果HMAC输出到数据输出端口上。
5.根据权利要求3所述的应用于ZigBee协议的加解密电路结构的控制方法,其特征在于实现MMO HASH函数运算操作的方法可分解为以下步骤:
a.输入数据组I 1~ I s-1;
b.输入数据组I s ;
所述的步骤a,是完成数据组I i ,其中i=1, …, s-1,的MMO HASH运算操作,进一步包括以下步骤:
① 在控制信号控制下,选择器MUX4将数据输入端口上的数据组I i ,传送到AES加密器2的数据输入端;
② 在控制信号控制下,AES加密器2输入数据组I i ,并对输入的数据组I i 进行加密,在加密过程中,密钥产生器根据初始密钥Hash i-1产生10组子密钥,其中,Hash 0为密钥产生器内部寄存器的初始值,且Hash 0=0128,并输出到AES加密器2的密钥输入端,AES加密器2根据子密钥对数据组I i 进行加密,加密结果输出到异或器XOR3的一个数据输入端;同时,选择器MUX3将数据输入端口上的数据组I i 传送到异或器XOR3的另一个数据输入端;
③ 在控制信号控制下,异或器XOR3对AES加密器2的加密结果和数据组I i 进行异或运算,异或运算结果Hash i 输出到异或器XOR3的输出端;
④ 在控制信号控制下,选择器MUX2将异或器XOR3输出的Hash i 传送到密钥产生器数据输入端;
⑤ 在控制信号控制下,密钥产生器将Hash i 读入其内部寄存器,将Hash i 作为下一轮MMO HASH函数运算的初始密钥;
所述的步骤b,是完成数据组I s 的MMO HASH运算操作,进一步包括以下步骤:
① 在控制信号控制下,选择器MUX4将数据输入端口上的数据组I s ,传送到AES加密器2数据输入端;
② 在控制信号控制下,AES加密器2输入数据组I s ,并对输入的数据组I s 进行加密,在加密过程中,密钥产生器根据初始密钥Hash s-1产生10组子密钥,并输出到AES加密器2密钥输入端,AES加密器2根据子密钥对数据组I s 进行加密,加密结果输出到异或器XOR3一个数据输入端;同时,选择器MUX3将数据输入端口上的数据组I s ,传送到异或器XOR3另一个数据输入端;
③ 在控制信号控制下,异或器XOR3对AES加密器2加密结果和数据组I s 进行异或运算,异或运算结果Hash s 作为MMO HASH函数运算结果HMAC输出到数据输出端口上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110375406.4A CN102448059B (zh) | 2011-11-23 | 2011-11-23 | 应用于ZigBee协议的加解密电路结构及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110375406.4A CN102448059B (zh) | 2011-11-23 | 2011-11-23 | 应用于ZigBee协议的加解密电路结构及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102448059A CN102448059A (zh) | 2012-05-09 |
CN102448059B true CN102448059B (zh) | 2014-02-05 |
Family
ID=46010039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110375406.4A Active CN102448059B (zh) | 2011-11-23 | 2011-11-23 | 应用于ZigBee协议的加解密电路结构及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102448059B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106452731A (zh) * | 2016-09-18 | 2017-02-22 | 四川长虹电器股份有限公司 | 碎片化密钥存储系统及其存储方法 |
CN108933788B (zh) * | 2018-07-03 | 2020-11-06 | 西南交通大学 | 一种基于fpga的rssp-ii协议mac码快速验证装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761185A (zh) * | 2005-11-18 | 2006-04-19 | 清华大学 | 乱序执行的数据流aes加密电路结构 |
KR100889056B1 (ko) * | 2008-07-03 | 2009-03-17 | 주식회사 유비콘테크놀로지 | 무선 usb 시스템의 aes ccm 연산장치 |
-
2011
- 2011-11-23 CN CN201110375406.4A patent/CN102448059B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761185A (zh) * | 2005-11-18 | 2006-04-19 | 清华大学 | 乱序执行的数据流aes加密电路结构 |
KR100889056B1 (ko) * | 2008-07-03 | 2009-03-17 | 주식회사 유비콘테크놀로지 | 무선 usb 시스템의 aes ccm 연산장치 |
Non-Patent Citations (4)
Title |
---|
一种小面积低功耗串行AES硬件加解密电路;韩少男等;《微电子学》;20100630(第03期);图9,图10,第351页第3.4节-第352页第4节 * |
嵌入式系统安全的密码算法及实现技术研究;韩煜;《万方学位论文全文数据库》;20091231;第5.1.2节,图5-2,图5-3(a) * |
韩少男等.一种小面积低功耗串行AES硬件加解密电路.《微电子学》.2010,(第03期),全文. |
韩煜.嵌入式系统安全的密码算法及实现技术研究.《万方学位论文全文数据库》.2009,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN102448059A (zh) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rizk et al. | Two-phase hybrid cryptography algorithm for wireless sensor networks | |
CN103475464B (zh) | 一种电力专用量子加密网关系统 | |
CN1323507C (zh) | 分组加密算法中对短分组的处理方法 | |
CN102185692A (zh) | 基于aes加密算法的多模式可重构加密方法 | |
CN105227298B (zh) | 基于改进型gcm的智能变电站报文安全传输实现方法 | |
CN106533656B (zh) | 一种基于wsn的密钥多层混合加/解密方法 | |
CN111490871A (zh) | 一种基于量子密钥云的sm9密钥认证方法、系统及存储介质 | |
CN108429613A (zh) | 一种基于en-present算法的电网信息加密方法 | |
Panda | Data security in wireless sensor networks via AES algorithm | |
CN108400862A (zh) | 一种智能用电终端可信数据融合加密方法 | |
Haldankar et al. | Implementation of AES and blowfish algorithm | |
CN116321129A (zh) | 一种轻量级的基于动态密钥的电力交易专网通信加密方法 | |
Gong et al. | The application of data encryption technology in computer network communication security | |
CN102448059B (zh) | 应用于ZigBee协议的加解密电路结构及其控制方法 | |
McGrew | Low power wireless scenarios and techniques for saving bandwidth without sacrificing security | |
Jing et al. | WSN key management scheme based on fully bomomorphic encryption | |
CN104954136A (zh) | 一种云计算环境下网络安全加密装置 | |
CN102665202B (zh) | 应用于ZigBee协议的安全协处理器电路结构及其控制方法 | |
Patel et al. | A review paper of an encryption scheme using network coding for energy optimization in MANET | |
Prasithsangaree et al. | Analysis of tradeoffs between security strength and energy savings in security protocols for WLANs | |
CN102665203B (zh) | 应用于ZigBee协议安全机制的电路结构及其控制方法 | |
Eshghi et al. | Security Enhancement of Wireless Sensor Networks: A Hybrid Efficient Encryption Algorithm Approach | |
Seshabhattar et al. | Hummingbird key establishment protocol for low-power ZigBee | |
Qin et al. | Research on Secure Aggregation Scheme based on Stateful Public Key Cryptology in Wireless Sensor Networks. | |
Lan et al. | Data Encryption System for Smart Homes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210207 Address after: 210019 area a, 4 / F, building A8, 8 Bailongjiang East Street, Jianye District, Nanjing City, Jiangsu Province Patentee after: Nanji Agricultural Machinery Research Institute Co.,Ltd. Address before: Yudaojie Baixia District of Nanjing City, Jiangsu Province, No. 29 210016 Patentee before: Nanjing University of Aeronautics and Astronautics |
|
TR01 | Transfer of patent right |