应用于ZigBee协议的安全协处理器电路结构及其控制方法

文档序号:7893706阅读:121来源:国知局
专利名称:应用于ZigBee协议的安全协处理器电路结构及其控制方法
技术领域
本发明属于加解密技术领域,特别是涉及一种应用于ZigBee协议的安全协处理器电路结构及其控制方法。
背景技术
I. ZigBee协议安全机制
ZigBee技术是一种为低速率控制网络设计的标准无线网络协议,具有低复杂度、低功耗、低速率、低成本等特点,其工作在2. 4GHz的1311频段上,传输速率为201*/^2501*/8,传 输距离为10nT75m。ZigBee协议栈包含物理层、媒体访问控制层、网络层、应用层,并定义了安全服务提供机制。ZigBee标准是建立在IEEE 802. 15. 4标准基础上,其物理层、媒体访问控制层采用的是IEEE 802. 15. 4标准,因此ZigBee安全体系结构是建立在IEEE 802. 15. 4的安全服务基础上。ZigBee利用这些安全服务对传输的数据进行加密处理,并提供对接入网络的设备的身份认证、密钥管理等功能,ZigBee定义的网络层和应用层都包含该安全体系。IEEE 802. 15. 4安全服务是基于AES-CCM*安全模式生成一系列的安全机制。IEEE 802. 15. 4规定AES-CCM*安全模式中使用的加密函数为128位数据分组和128位密钥的AES加密算法,即AES-128加密算法。CCM*模式是CCM (Counter with Cipher blockchaining-Message authentication code)加密模式的扩展。CCM 模式结合了 CTR 数据加密模式(Counter Mode)和 CBC-MAC 身份认证模式(Cipher Block Chaining-MessageAuthentication Code)而衍生出来的安全模式,既包含了加/解密功能模式,又包含了身份认证模式。CCM*模式除了可以使用CCM模式以外,还可以单独使用CTR数据加/密模式(Counter Mode)和 CBC-MAC 身份认证模式(Cipher Block Chaining-MessageAuthentication Code)。2. AES加密算法
密码学中的高级加密标准(Advanced Encryption Standard,AES),由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。AES加密算法,又称为Rijndael加密算法,该算法为比利时密码学家JoanDaemen和Vincent Rijmen所设计,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。ZigBee/IEEE 802. 15. 4采用固定的128位密钥,记为AES-128。不论对于AES加密算法还是解密算法,都是使用轮变换的操作。轮变换操作次数与密钥的位数有关,AES-128轮数为10轮。ZigBee/IEEE 802. 15. 4协议中只用到了 AES-128加密算法,AES-128加密算法流程如图I所示,明文首先进行一个轮密钥加的操作,然后进行10轮轮变换操作。图2为轮变换流程示意图,如图2所示,轮变换包括四个操作字节替换、行移位、列混合替换和轮密钥加,其中第10轮轮变换中不包含列混合替换操作。3. CBC-MAC身份认证模式 CBC-MAC模式可以用以下公式表示
Λ = O128;
= EKey (Jj Bj), for i=0, ...,n\
T : = Firs t_M_Bytes (Xn+1) ·
公式中馬>0为密钥为心if的AES-128加密函数,O128表示128比特全0字符串。图3为CBC-MAC认证码产生过程示意图,图中/为截取前#个字节,即公式中的し#Bytes O 函数。如图3所示,发送方根据数据分组为128比特的辅助验证数据组ガΓ兄产生#字节验证码r,数据组凡为明文附加信息,数据组ガ广&为附加验证信息数据ル数据组久+广足为信息数据明文k接收方根据明文附加信息组成数据组凡,附加验证信息数据a组成数据组ガ广4,以及接收到的、解密后的信息数据的明文ろ,组成辅助验证数据组&+广兄,同发送方一祥按照图3所示的过程产生一个#字节验证码广,将广和接收到的并经过解密的发送方验证码r进行比较,如果广和r相同,则认为接收到的、解密后的信息数据的明文ゐz与发送方的发送信息数据的明文6相同,如果广和r不相同,则认为接收到的数据被篡改过。4. CTR数据加/解密模式 CTR数据加密表达式为
^0:= Exer(Ai) ; U ·.= T First_M_Bytes (^0);
Cj: = EKey(Aj) Mj', for J=I,…,m.
图4为CTR加/解密流程示意图。如图4所示,发送方首先将验证码Γ进行加密为U,然后将信息数据明文6进行分组为怂,每 组长为128比特,最后一组如果不足128比特,则填充O补足,AES-128每次加密ー组数据,生成信息密文数据组Cj。Aj为辅助加密数据组,由明文附加信息和计数值プ组成,计数值プ为(Γ 。发送方按照以下顺序发送C;,…,Cm,U。CTR数据解密表达式为
^0:= Exer(Ai) ; T .ニ U First_M_Bytes (^0);
Mj : = EKey (Aj) Cj, for J=I,…,m.
如图4所示,接收方首先将加密验证码ひ进行解密为T,然后对信息密文数据组Cj进行解密。5.辅助验证数据组
辅助验证数据组主要有三部分组成1.包含明文附加信息的数据组凡;2.包含附加验证信息数据a的数据组ガ广& ;3.包含信息数据明文6的数据组Α+Π①ガ。数据组结构
凡数据组结构如图5所示。由图5可知凡数据组由以下数据组成
B0 = Flags I I NONCE | | LM, | | 为连接符号;
其中 Flags = Reserved | | Adata | | (#-2)/2 | L。
Flags中各个字段的定义
Reserved :保留位,应当设为‘0’状态。Adata :附加验证信息数据a标志位,如果Adata= ‘ I’,则表明有附加验证信息数据も且数据组ガ广&为附加验证信息数据a。如果Adata= ‘0’,则表明没有附加验证信息数据a,数据组BfBn为信息数据明文数据组H此时》=/ 。( #_2ノ/2 #认证码Γ长度,以字节为单位。当# > 0,这三个比特位的数值为(#-2ノ/2,如栗# = 0,这三个比特位的数值为O。ZigBee/IEEE 802. 15. 4中規定#取值范围为 0,4,8,16。L :Z#的长度,以比特为单位,ZigBee/IEEE 802. 15. 4中规定Z=2。
B0数据组结构各个字段的定义
NONCE :此字段数据由信息源地址,帧计数器以及安全等级等信息组成。Z#:信息数据明文6的长度,以字节为单位,取值范围为O彡K 2'②ガΓ 数据组结构
数据组包含附加验证信息数据a以及其长度信息W,即将W I |a分组为ガ广&,每组128比特,最后一组如果不足128比特,则填充‘0’补齐。③BニBn数据组结构
Bt+' Bn数据组即信息数据明文数据组#广尾。6.辅助加密数据组ん
辅助加密数据组んC/=0,…,》)结构如图6所示,由图6可知,数据组ん结构与数据组凡结构很相似,ガ。数据组包含了ん结构所有信息,除了计数值Counter j。因此ん可根据数据组凡和ー个计数器值J'构成。
7. CCM*并行运行模式
因为A+广兄数据组就是信息数据明文数据组#广尾,因此CBC-MAC运算操作和CTR运算操作可以并行运行。图7为CCM*并行运行流程示意图,图中虚线部分为CTR解密,以及验证码确认部分。/^忍(即Filled With ‘0’ Bite)作用为,在"后面填充0,填充为16字节(128比特)数据组"I I O。如图7所示,发送方进行数据加密/认证码产生并行运行吋,首先对数据组进行CBC-MAC运算操作,然后对A+广兄数据组同时进行CBC-MAC运算操作和CTR加密运算操作。对于CTR运算操作,将验证码T的加密运算操作放到最后,并且对截取前#个字节的操作放到加密之后,Z为由‘0’比特或者‘I’比特组成的任意值比特串。接收方进行数据解密/认证码确认并行运行吋,也是首先对数据组进行CBC-MAC运算操作,然后对C;,…,G进行CTR解密运算操作,同时对解密后的A+广兄数据组进行CBC-MAC运算操作。对于CTR解密运算操作,将验证码U的解密运算操作放到最后,并且在运算操作之前将#字节ひ填充为16字节(128比特)数据组糾I O。将列I O解密为Tffx并与CBC-MAC运算操作结果T,Hx进行异或,取异或后的前#字节,如果前#字节全为0,则Γ和T,相同,如果不全为0,则Γ和T,不相同。8. MMO (Matyas- Meyer-Oseas) Hash 函数
ZigBee协议規定,AES-CCM*模式的密钥由对称密钥密钥建立SKKE(Symmetric-KeyKey Establishment)协议建立。SKKE协议使用Hash消息鉴权机制/MCr(Hash MessageAuthentication Code)机制提供密钥确认,ZigBee标准使用的Hash函数为MMO Hash函数,且规定采用AES-128加密算法来构造MMO Hash函数。MMO Hash函数表达公式
Hash0 : ニO128;
Hashu: =EQiashk^l, I1) Ik,forn=\,…,5;
HMAC-=Hashs.
公式中万Ofeァ,W= 4,Cr),即AES-128加密函数。图8为MMO Hash函数运算操作流程图。如图8所示,HASH函数根据输入数据组J广Js生成·C。 9.相关公开文献
关于CCM*模式的电路实现方式,国内外也有许多公开文献,与本发明相近的公开文献

(I)在已授权的美国专利US007831039B2中提出了基于两个AES加密器分别实现CCM*加密/认证码产生的电路结构和CCM*解密/认证码确认的电路结构,以及基于单个AES加密器分别实现CCM*加密/认证码产生的电路结构和CCM*解密/认证码确认的电路结构。STMicroelectronics Inc. (Guido Bertoni; Jefferson E. Owen). AESENCRYPTION CIRCUITRY WITH CCM. US007831039B2. 2010。在上述公开文献中,基于单个AES加密器的CCM*加密/认证码产生电路,与基于单个AES加密器的CCM*解密/认证码确认的电路是不同的电路。

发明内容
本发明提出ー种应用于ZigBee协议的安全协处理器电路结构及其控制方法。该电路结构通过控制信号的控制,既能实现ZigBee协议中CCM*模式的加密/认证码产生的并行处理功能,以及CCM*模式的解密/认证码确认的并行处理功能,还能单独实现CCM*模式的CTR加/解密功能,以及CCM*模式的CBC-MAC认证码产生/确认功能,除此之外,该电路还实现了 MMO Hash函数功能。为了达到上述目的,本发明首先提供ー种应用于ZigBee协议的安全协处理器电路结构,所采用的技术方案为
基于单个AES加密器的ZigBee安全协处理电路,其特征在于
所述电路结构包括计数器、辅助加密数据产生器、选择器MUX1、异或器X0R1、选择器MUX2、AES加密器、密钥产生器、选择器MUX3、选择器MUX4、寄存器、异或器X0R2,还包括控制信号输入端ロ、数据输入端ロ、密钥输入端ロ和数据输出端ロ ;
所述计数器的控制信号输入端与控制信号输入端ロ相连接;
所述辅助加密数据产生器的ー个数据输入端连接到计数器输出端,另ー个数据输入端连接到数据输入端ロ,控制信号输入端与控制信号输入端ロ相连接;
所述选择器MUXl的一个数据输入端连接到数据输入端ロ,另一个数据输入端连接到异或器X0R2的输出端,选择信号输入端与控制信号输入端ロ相连接;
所述异或器XORl的一个数据输入端连接到选择器MUXl的输出端,另ー个数据输入端连接到AES加密器的输出端,控制信号输入端与控制信号输入端ロ相连接;
所述选择器MUX2的ー个数据输入端连接到辅助加密数据产生器的输出端,一个数据输入端连接到数据输入端ロ,一个数据输入端连接到异或器XORl的输出端,选择信号输入端与控制信号输入端ロ相连接;
所述AES加密器的数据输入端连接到选择器MUX2的输出端,密钥输入端连接到密钥产生器的输出端,控制信号输入端与控制信号输入端ロ相连接;
所述密钥产生器的数据输入端连接到选择器MUX3的输出端,控制信号输入端与控制信号输入端ロ相连接;
所述选择器MUX3的一个数据输入端连接到密钥输入端ロ,另ー个数据输入端连接到异或器X0R2的输出端,选择信号输入端与控制信号输入端ロ相连接;
所述异或器X0R2的一个数据输入端连接到AES加密器的输出端,另ー个数据输入端连接到寄存器的输出端,控制信号输入端与控制信号输入端ロ相连接;
所述寄存器的数据输入端连接到选择器MUX4的输出端,控制信号输入端与控制信号输入端ロ相连接;
所述选择器MUX4的一个数据输入端连接到X0R2的输出端,一个数据输入端连接到数据输入端ロ,一个数据输入端连接到AES加密器的输出端,选择信号输入端与控制信号输入端ロ相连接;
所述数据输出端ロ连接到X0R2的输出端。本发明进ー步提供了上述电路结构的控制方法,具体方案如下
应用于ZigBee协议的安全协处理器电路结构,其特征在于通过控制信号输入端ロ输入控制信号,在控制信号的控制下,电路在六种状态之间转换,六种状态包括“空闲状态”、“CTR操作状态”、“CBC-MAC操作状态”、“CCM加密状态”、“CCM解密状态”和“HASH函数状态,,
所述的“空闲状态”,为电路的初始工作状态,在系统上电或系统复位后,电路进入“空闲状态”,电路中各个部件停止工作;
所述的“CTR操作状态”,在控制端ロ输入“CTR操作状态”控制信号吋,电路进入“CTR操作状态”,实现ZigBee协议中的CTR加密/解密运算操作,当完成CTR加密/解密运算操作后,在控制信号控制下返回“空闲状态”;
所述的“CBC-MAC操作状态”,在控制端ロ输入“CBC-MAC操作状态”控制信号时,电路进入“CBC-MAC操作状态”,实现ZigBee协议中的CBC-MAC认证码产生/确认运算操作,当完成CBC-MAC认证码产生/确认运算操作后,在控制信号控制下返回“空闲状态”;
所述的“CCM加密状态”,在控制端ロ输入“CCM加密状态”控制信号吋,电路进入“CCM加密状态”,实现ZigBee协议中的CCM*加密/认证码产生运算操作,当完成CCM*加密/认证码产生运算操作后,在控制信号控制下返回“空闲状态”;
所述的“CCM解密状态”,在控制端ロ输入“CCM解密状态”控制信号吋,电路进入“CCM解密状态”,实现ZigBee协议中的CCM*解密/认证码确认运算操作,当完成CCM*解密/认证码确认运算操作后,在控制信号控制下返回“空闲状态”;
所述的“HASH函数状态”,在控制端ロ输入“HASH函数状态”控制信号时,电路进入“HASH函数状态”,实现ZigBee协议中的MMO HASH函数运算操作,当完成MMO HASH函数运算操作后,在控制信号控制下返回“空闲状态”。本发明所使用的AES加密器采用流水线电路结构,流水线级数为两级以上,电路在实现CCM*加密/认证码产生功能或CCM*解密/认证码确认功能吋,AES加密器同时处理两组数据,当第一组数据到达第二级及第二级以上流线时,第一级流水线输入第二组数据。

电路在“CTR操作状态”下,由计数器、辅助加密数据产生器、选择器MUX2、AES加密器、异或器X0R2、寄存器以及选择器MUX4组成CTR加/解密运算操作电路;密钥产生器和选择器MUX3成初始密钥输入电路,用来输入初始密钥脚;电路在实现CTR加/解密功能时,异或器XORl和选择器MUXl停止工作。电路在“CBC-MAC操作状态”下,由选择器MUXl、异或器XORl、选择器MUX2、AES加密器、异或器X0R2、寄存器和选择器MUX4组成CBC-MAC认证码产生/确认运算操作电路;密钥产生器和选择器MUX3成初始密钥输入电路,用来输入初始密钥;电路在实现CBC-MAC认证码产生/确认功能吋,计数器和辅助加密数据产生器停止工作。电路在“ CCM加密状态”以及在“ CCM解密状态”下,由选择器MUXl、异或器XORl、选择器MUX2、AES加密器、异或器X0R2、寄存器和选择器MUX4组成CBC-MAC认证码产生/确认运算操作电路,用来实现CCM*模式中的认证码产生/确认运算操作;由计数器、辅助加密数据产生器、选择器MUX2、AES加密器、异或器X0R2、寄存器以及选择器MUX4组成CTR加/解密运算操作电路,用来实现CCM*模式中的数据加/解密运算操作;由选择器MUX3和密钥产生器组成初始密钥输入电路,用来输入初始密钥脚。电路在“HASH函数状态”下,由选择器MUX2、AES加密器、密钥产生器、选择器MUX3、异或器X0R2、寄存器和选择器MUX4组成MMO HASH函数运算操作电路,用来实现MMO HASH函数运算操作;电路在实现HASH函数功能时,计数器、辅助加密数据产生器、选择器MUXl和异或器XORl停止工作。本发明完全使用硬件电路实现AES-CCM*安全模式的运算操作和MMO HASH函数,减小了 ZigBee系统中CPU的负载,也避免了不必要的软件攻击,同时本发明所提出的电路皆既可以实现ZigBee协议中CCM*模式的加密/认证码产生的并行处理功能,以及CCM*模式的解密/认证码确认的并行处理功能,还可以単独实现CCM*模式的CTR加/解密功能,以及CCM*模式的CBC-MAC认证码产生/确认功能。


图I AES加密流程示意 图2加密轮变换步骤示意 图3 CBC-MAC认证码产生过程示意 图4 CTR加/解密流程示意 图5凡数据组结构示意 图6ん数据组结构示意 图7 CCM*并行运行流程示意 图8 MMO Hash函数运算操作流程 图9本发明电路结构意 图10电路控制状态转移 图11 AES加密算法的循环电路结构示意 图12两级流水线的串行电路结构的AES加密器;图13两级流水线的循环电路结构的AES加密器;
图14电路工作在“CTR操作状态”时的电路结构示意 图15电路工作在“CBC-MAC操作状态”时的电路结构示意 图16电路工作在“CCM加密状态”时的电路结构示意 图17电路工作在“CCM解密状态”时的电路结构示意 图18电路工作在“HASH函数状态”时的电路结构示意图。
具体实施方式

以下面是參照附图结合具体实施例对本发明作进ー步的描述。I.本发明电路结构
參见图9,ー种应用于ZigBee协议的安全协处理器电路结构,包括计数器、辅助加密数据产生器、选择器MUX1、异或器X0R1、选择器MUX2、AES加密器、密钥产生器、选择器MUX3、选择器MUX4、寄存器、异或器X0R2。电路结构还包括控制信号输入端ロ、数据输入端ロ、密钥输入端口和数据输出端□。其中,控制信号端ロ连接到电路中各个部件上,控制端ロ输入的信号包括各个部件的使能信号以及选择器的选择信号,图9中的虚线为控制信号线。如图9所示,计数器的控制信号输入端与控制信号输入端ロ相连接;辅助加密数据产生器的ー个数据输入端连接到计数器输出端,另ー个数据输入端连接到数据输入端ロ,控制信号输入端与控制信号输入端ロ相连接;选择器MUXl的一个数据输入端连接到数据输入端ロ,另ー个数据输入端连接到异或器X0R2的输出端,选择信号输入端与控制信号输入端ロ相连接;异或器XORl的一个数据输入端连接到选择器MUXl的输出端,另ー个数据输入端连接到AES加密器的输出端,控制信号输入端与控制信号输入端ロ相连接;选择器MUX2的ー个数据输入端连接到辅助加密数据产生器的输出端,ー个数据输入端连接到数据输入端ロ,一个数据输入端连接到异或器XORl的输出端,选择信号输入端与控制信号输入端ロ相连接;AES加密器的数据输入端连接到选择器MUX2的输出端,AES加密器的密钥输入端连接到密钥产生器的输出端,控制信号输入端与控制信号输入端ロ相连接;密钥产生器的数据输入端连接到选择器MUX3的输出端,控制信号输入端与控制信号输入端ロ相连接;选择器MUX3的一个数据输入端连接到密钥输入端ロ,另ー个数据输入端连接到异或器X0R2的输出端,选择信号输入端与控制信号输入端ロ相连接;异或器X0R2的ー个数据输入端连接到AES加密器的输出端,另ー个数据输入端连接到寄存器的输出端,控制信号输入端与控制信号输入端ロ相连接;寄存器的数据输入端连接到选择器MUX4的输出端,控制信号输入端与控制信号输入端ロ相连接;选择器MUX4的一个数据输入端连接到异或器X0R2的输出端,一个数据输入端连接到数据输入端ロ,一个数据输入端连接到AES加密器的输出端,选择信号输入端与控制信号输入端ロ相连接;数据输出端ロ连接到异或器X0R2的输出端。电路通过控制信号输入端ロ输入控制信号,在控制信号的控制下,电路实现CTR加/解密功能、CBC-MAC认证码产生/确认功能、CCM*加密/认证码产生功能、CCM*解密/认证码确认功能和HASH函数功能。
2.电路工作状态及其控制方法
參见图10,在控制信号输入端ロ输入的控制信号的控制下,本发明电路可以工作在六种状态“空闲状态”、“CTR操作状态”、“CBC-MAC操作状态”、“CCM加密状态”、“CCM解密状态”和“HASH函数状态”。“空闲状态”为电路的初始工作状态,在系统上电或系统复位后,电路进入“空闲状态”。在“空闲状态”下,电路中各个部件停止工作。如图10所示,当控制信号输入端ロ给出“ CTR操作状态”控制信号吋,电路进入“CTR操作状态”。在“CTR操作状态”下,电路实现ZigBee协议中的CTR加/解密运算操作。当电路完成CTR加/解密运算操作后,在控制信号控制下返回“空闲状态”。如图10所示,当控制信号输入端ロ给出“CBC-MAC操作状态”控制信号吋,电路进入“CBC-MAC操作状态”。在“CBC-MAC操作状态”下,电路实现ZigBee协议中的CBC-MAC认证码产生/确认运算操作。当电路完成CBC-MAC认证码产生/确认运算操作后,在控制信 号控制下返回“空闲状态”。如图10所示,当控制信号输入端ロ给出“ CCM加密状态”控制信号时,电路进入“CCM加密状态”。在“CCM加密状态”下,电路实现ZigBee协议中的CCM*加密/认证码产生运算操作。当电路完成CCM*加密/认证码产生运算操作后,在控制信号控制下返回“空闲状态”。如图10所示,当控制信号输入端ロ给出“ CCM解密状态”控制信号时,电路进入“CCM解密状态”。在“CCM解密状态”下,电路实现ZigBee协议中的CCM*解密/认证码确认运算操作。当电路完成CCM*解密/认证码确认运算操作后,在控制信号控制下返回“空闲状态”。如图10所示,当控制信号输入端ロ给出“ HASH函数状态”控制信号时,电路进入“HASH函数状态”。在“HASH函数状态”下,电路实现ZigBee协议中的MMO HASH函数运算操作。当电路完成MMO HASH函数运算操作后,在控制信号控制下返回“空闲状态”
3. AES加密器电路结构
AES加密器用于实现AES-128加密算法。AES加密算法电路的实现通常采用两种电路结构,串行电路结构和循环电路结构。图I可以视为ー个AES加密算法的串行电路结构示意图,待加密的明文数据首先进入ー个“轮密钥加”电路模块,然后依次进入10个“轮变换”电路模块,最后输出密文。图11为ー个AES加密算法的循环电路结构示意图,从图11可以看出,循环电路结构的整个电路,只实现ー个轮变换操作,待加密的明文数据在电路中循环10次,完成10轮轮操作外加一个密钥加操作。输入的明文数据在控制信号控制下,首先进入“轮密钥加”电路模块,然后控制信号将“轮密钥加”输出的数据送入“字节替换”电路模块,“字节替换”电路模块输出的数据直接送给“行移位”电路模块,之后控制信号将“行移位”输出的数据送入“列混合替换”电路模块,之后控制信号将“列混合替换”电路模块输出的数据反馈到“轮密钥加”电路模块。如此循环9次操作之后,第10次操作时,控制信号将“行移位”输出的数据馈到“轮密钥加”电路模块,而不通过“列混合替换”电路模块,并将此次反馈之后的“轮密钥加”电路模块的输出数据作为密文输出。图11为ー个轮变换操作的循环电路结构的AES加密器,在现有公开文献中还存在其他许多形式的循环电路结构的AES加密器。
本发明所使用的AES加密器电路,需要采用两级以上的流水线电路结构,图12为一个两级流水线的串行电路结构的AES加密器的ー个实施实例,本实施实例将“轮密钥加”和前5轮“轮变换”电路模块(即“轮变换I” “轮变换5”)作为流水线的第一级,将后5轮“轮变换”电路模块(即“轮变换6” “轮变换10”)作为流水线的第二级。当AES加密器需要同时加密两组数据时,第一组数据进入第二级流水线时(即第一组数据进入“寄存器2”),第二组数据输入到第一级流水线(即第二组数据输入到“寄存器I,,)。串行电路结构的AES加密器,存在多种流水线实现方式。对于流水线为两级以上的串行电路结构的AES加密器,可以指定第一个寄存器为“寄存器1”,其他任意一个寄存器为“寄存器2”。AES加密器需要同时加密两组数据时,当第一组数据进入“寄存器2”时,第ニ组数据输入到“寄存器I”。 图13为ー个两级流水线的循环电路结构的AES加密器的ー个实施实例,本实施实例将“轮密钥加”和“字节替换”电路模块作为流水线的第一级,将“行移位”和“列混合替换”电路模块作为流水线的第二级。当AES加密器需要同时加密两组数据时,第一组数据进入第二级流水线时(即第一组数据进入“寄存器2”),第二组数据输入到第一级流水线(即第二组数据输入到“寄存器I,,)。同样如此,循环电路结构的AES加密器,存在多种流水线实现方式。对于流水线为两级以上的循环电路结构的AES加密器,可以指定第一个寄存器为“寄存器1”,其他任意一个寄存器为“寄存器2”。AES加密器需要同时加密两组数据时,当第一组数据进入“寄存器2”时,第二组数据输入到“寄存器I”。4.本发明电路工作在“CTR操作状态”时的控制方法
參见图14,图14为本发明电路工作在“ CTR操作状态”时的电路结构示意图。电路在实现CTR加/解密功能吋,由计数器、辅助加密数据产生器、选择器MUX2、AES加密器、异或器X0R2、寄存器以及选择器MUX4组成CTR加/解密运算操作电路;密钥产生器和选择器MUX3成初始密钥输入电路,用来输入初始密钥Key ;电路在实现CTR加/解密功能时,异或器XORl和选择器MUXl停止工作,因此图14中未表出。图14中虚线表示该路径上的电路只在某ー时刻工作,工作时间很短。结合图4,对图14所示的电路结构的控制方法进行说明。电路在实现CTR加/解密功能时,控制方法具体包括以下步骤
第一歩,电路首先输入初始密钥脚,并将初始密钥脚读入密钥产生器。脚只输入一次,因此图14中相关电路用虚线表示,具体操作为
(1)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心if传送到密钥产生器数据输入端;
(2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;
第二歩,电路其次输入辅助加密数据组次,需要将ん读入辅助加密数据产生器,为辅助加密数据组ん的产生做准备,辅助加密数据产生器只读入一次次,因此图14中相关电路用虚线表示。输入到辅助加密数据产生器的操作,具体操作为
在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组ん读入其内部寄存器;
第三步,电路再次输入明文数据组怂或密文数据组 .,其中7=0,…,心 为自然数,电路需要完成明文数据组怂的CTR加密运算操作或密文数据组 .的CTR解密运算操作,具体操作为
(1)在控制信号控制下,计数器计数值加1,计数器初始值为O,计数器将当前计数值プ输出到辅助加密数据产生器数据输入端;
(2)在控制信号控制下,辅助加密数据产生器根据当前计数值J和内部寄存器中的数据组次,生成当前辅助加密数据组ん,并将ん输出到选择器MUX2 —个数据输入端;
(3)在控制信号控制下,选择器MUX2将ん输出到AES加密器数据输入端;同时,选择器MUX4将数据输入端ロ输入的数据组iz/ .传送到寄存器数据输入端;
(4)在控制信号控制下,AES加密器对ん进行加密,在加密过程中,密钥产生器根据初始密钥心IF产生10组子密钥,并输出到AES加密器密钥输入端,AES加密器使用子密钥对Aj进行加密,加密结果Kj输出到异或器XOR2 —个数据输入端;
同吋,寄存器将数据组&./ .传送到XOR2的另ー个数据输入端;
(5)在控制信号控制下,异或器XOR2对数据组iZ/ .与数据组Kj进行异或运算,异或结果CjIMj输出到数据输出端ロ。5.本发明电路工作在“CBC-MAC操作状态”时的控制方法
參见图15,图15为本发明电路工作在“CBC-MAC操作状态”时的电路结构示意图。电路在实现CBC-MAC认证码产生/确认功能时,由选择器MUXl、异或器XORl、选择器MUX2、AES加密器、异或器X0R2、寄存器和选择器MUX4组成CBC-MAC认证码产生/确认运算操作电路;密钥产生器和选择器MUX3成初始密钥输入电路,用来输入初始密钥心y ;电路在实现CBC-MAC认证码产生/确认功能时,计数器和辅助加密数据产生器停止工作,因此图15中未表出。图15中虚线表示该路径上的电路只在某ー时刻工作,工作时间很短。结合图3,对图15所示的电路结构的控制方法进行说明。电路在实现CBC-MAC认证码产生/确认功能时,控制方法具体包括以下步骤
第一歩,电路首先输入初始密钥脚,并将初始密钥脚读入密钥产生器。脚只输入一次,因此图15中相关电路用虚线表示。初始密钥心if读入密钥产生器操作,具体操作为
(1)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心IF传送到密钥产生器数据输入端;
(2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;
第二步,电路其次输入数据组及.,其中i=0,…,/ ,并对数据组数据组及.进行CBC-MAC运算操作,具体操作为
(1)在控制信号控制下,选择器MUXl将数据输入端ロ上的数据组尾传送到异或器XORl的一个数据输入端;
(2)在控制信号控制下,异或器XORl对数据组尾与数据组石进行异或运算,る为AES加密器的输出值,其中,AES加密器输出的初始值J0=O128, 0128表示128比特0,异或结果久.输出到选择器MUX2的一个数据输入端AES加密器的输入端;
(3)在控制信号控制下,选择器MUX2将异或器XORl的输出数据ル送入AES加密器的数据输入端,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥心if产生10组子密钥,并输出到AES加密器的密钥输入端,AES加密器根据子密钥对数据进行加密,加密结果石+i从AES加密器输出端输出;第三歩,电路完成认证码产生或者认证码确认的操作,由于对电路完成认证码产生或者认证码确认的操作只进行一次,因此图15中相关电路用虚线表示。电路完成认证码产生的操作,与认证码确认的操作有所不同,其中
(1)如果进行认证码产生,具体操作为
①在控制信号控制下,将寄存器清零;
②在控制信号控制下,将AES加密器最后一次运算结果Γ输出到异或器X0R2—个数据输入端,并将寄存器寄存器值O输出到异或器X0R2另ー个数据输入端;
③在控制信号控制下,异或结果 O输出到数据输出端ロ ;
(2)如果进行认证码产生确认,具体操作为
①在控制信号控制下,选择器MUX4将数据输入端输入的原认证码Γ送入寄存器;
②在控制信号控制下,将AES加密器最后一次运算结果广输出到异或器X0R2—个数据输入端,并将寄存器寄存器值r输出到异或器X0R2另ー个数据输入端;
③在控制信号控制下,异或结果万ニ广 Γ输出到数据输出端ロ ;
6.本发明电路工作在“CCM加密状态”时的控制方法
參见图16,图16为本发明电路工作在“CCM加密状态”时的电路结构示意图。电路在实现CCM*加密/认证码产生功能吋,由选择器MUXl、异或器XORl、选择器MUX2、AES加密器、异或器X0R2、寄存器和选择器MUX4组成CBC-MAC认证码产生运算操作电路,用来实现CCM*模式中的认证码产生运算操作;由计数器、辅助加密数据产生器、选择器MUX2、AES加密器、异或器X0R2、寄存器以及选择器MUX4组成CTR加密运算操作电路,用来实现CCM*模式中的数据加密运算操作;由选择器MUX3和密钥产生器组成初始密钥输入电路,用来输入初始密钥心17。图16中虚线表示该路径上的电路只在某ー时刻工作,工作时间很短。结合图7,对图16所示的电路结构的控制方法进行说明。电路在实现CCM*加密/认证码产生功能时,控制方法具体包括以下步骤
第一歩,电路首先输入初始密钥脚,并将初始密钥脚读入密钥产生器。脚只输入一次,因此图16中用虚线表示。初始密钥心if读入密钥产生器操作,具体操作为
(1)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心^传送到密钥产生器数据输入端;
(2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;
第二歩,电路其次输入包含明文附加信息的辅助验证数据组凡和包含附加验证信息a的辅助验证数据组ガΓ^, 为自然数,且此时电路有两个操作同时进行,ー个操作是将B0读入辅助加密数据产生器,另ー个操作是对凡 久进行CBC-MAC运算操作。(I)辅助加密数据产生器读入凡,为辅助加密数据組ん.的产生做准备,辅助加密数据产生器只读入一次凡,因此图16中用虚线表示。将辅助验证数据组凡输入到辅助加密数据产生器的操作,具体操作为
在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组凡读入其内部寄存器;
(2)辅助验证数据组的CBC-MAC运算操作,具体操作为
①在控制信号控制下,选择器MUXl将数据输入端口上的数据组及.传送到异或器XORl的ー个数据输入端,其中i=0,···,t ;②在控制信号控制下,异或器XORl对数据组及.与数据组る进行异或运算,る为AES加密器的输出值,其中,AES加密器输出的初始值J0=O128, 0128表示128比特0,异或结果久.输出到选择器MUX2的一个数据输入端AES加密器的输入端;
③在控制信号控制下,选择器MUX2将异或器XORl的输出数据送入AES加密器的数据输入端,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥心if产生10组子密钥,并输出到AES加密器的密钥输入端,AES加密器根据子密钥对数据进行加密,加密结果石+i从AES加密器输出端输出;
第三歩,电路再次输入输入包含信息数据明文6的辅助验证数据组A+广兄,/ 为自然数,对数据组A+广兄的操作有两个,ー个操作是对久+广兄进行CBC-MAC运算操作,另ー个是进行CTR加密运算操作,两个操作是同时进行的,具体操作为
(1)在控制信号控制下,计数器计数值加1,计数器初始值为0,计数器将当前计数值プ输出到辅助加密数据产生器数据输入端,其中J‘=l,…,m- m=n~t ;
同吋,在控制信号控制下,选择器MUXl将数据输入端口上的数据组及.传送到异或器XORl的ー个数据输入端,其中i=i+l,…,η ;
同吋,在控制信号控制下,选择器MUX4将数据输入端口上的数据组及.传送到寄存器
中;
(2)在控制信号控制下,辅助加密数据产生器根据当前计数值j和内部寄存器中的数据组凡,生成当前辅助加密数据组ん,并将ん输出到选择器MUX2 —个数据输入端;
同时,在控制信号控制下,异或器XORl对数据组及.与数据组る进行异或运算,る为AES加密器的输出值,异或结果久.输出到选择器MUX2的一个数据输入端;
(3)在控制信号控制下,MUX2首先将数据组ん输出到AES加密器,并对数据组ん进行加密操作,当数据组ん进入AES加密器的第二级及第二级以上流水线时,MUX2将数据组仏输出到AES加密器的第一级流水线,AES加密器同时对数据组ん和数据组ル进行加密操
同时,在控制信号控制下,密钥产生器根据初始密钥心IF产生10组子密钥,并输出到AES加密器密钥输入端,AES加密器使用子密钥对数据组ん和数据组进行加密;
(4)AES加密器首先输出数据组ん的加密结果Ty,在控制信号控制下,AES加密器将数据组ろ·输出到异或器X0R2 —个数据输入端;同吋,寄存器将数据组及.传送到异或器X0R2另ー个数据输入端,异或器X0R2对数据组及.与数据组Kj进行异或运算,异或结果Cj输出到数据输出端ロ ;随后AES加密器输出数据组仏的加密结果Zi+1 ;
第四歩,电路最后完成对CBC-MAC运算产生的验证码Γ进行CTR加密运算操作,具体操作为
(1)在控制信号控制下,选择器MUX4将AES加密器输出的毛+パ专送到寄存器中,毛+i为数据组ガ0" 的CBC-MAC运算結果,ΖΛ+1由#字节的验证码Γ和16-#字节的任意ニ进制比特串X组成,即Τ\ \χ ;
同时,在控制信号控制下,计数器计数值清零,并将当前计数值O输出到辅助加密数据产生器的数据输入端; (2)在控制信号控制下,辅助加密数据产生器根据当前计数值O和内部寄存器中的数据组凡,生成当前辅助加密数据组Α,并将ん输出到选择器MUX2 —个数据输入端;(3)在控制信号控制下,选择器MUX2将ん输出到AES加密器的数据输入端;
(4)在控制信号控制下,AES加密器对ん进行加密,在加密过程中,密钥产生器根据初始密钥心IF产生10组子密钥,并输出到AES加密器的密钥输入端,AES加密器使用子密钥对次进行加密,加密结果K输出到异或器XOR2 —个数据输入端;
(5)在控制信号控制下,异或器XOR2对数据组毛+i与数据组F0进行异或运算,异或结果列Ix输出到数据输出端ロ,异或结果列k由#字节的加密验证码ひ和16-#字节的任意ニ进制比特串^组成。7.本发明电路工作在“CCM解密状态”时的控制方法
參见图17,图17为本发明电路工作在“CCM解密状态”时的电路结构示意图。电路在实 现CCM*解密/认证码确认功能吋,由选择器MUXl、异或器XORl、选择器MUX2、AES加密器、异或器X0R2、寄存器和选择器MUX4组成CBC-MAC认证码确认运算操作电路,用来实现CCM*模式中的认证码确认运算操作;由计数器、辅助加密数据产生器、选择器MUX2、AES加密器、异或器X0R2、寄存器以及选择器MUX4组成CTR解密运算操作电路,用来实现CCM*模式中的数据解密运算操作;由选择器MUX3和密钥产生器组成初始密钥输入电路,用来输入初始密钥心17。图17中虚线表示该路径上的电路只在某ー时刻工作,工作时间很短。结合图7,对图17所示的电路结构的控制方法进行说明。电路在实现CCM*解密/认证码确认功能时,控制方法具体包括以下步骤
第一歩,电路首先输入初始密钥脚,并将初始密钥脚读入密钥产生器。脚只输入一次,因此图17中用虚线表示。初始密钥心if读入密钥产生器操作,具体操作为
(1)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心^传送到密钥产生器数据输入端;
(2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;
第二歩,电路其次输入包含明文附加信息的辅助验证数据组凡和包含附加验证信息a的辅助验证数据组ガ广ガη,此时电路有两个操作同时进行,ー个操作是将凡读入辅助加密数据产生器,另ー个操作是对进行CBC-MAC运算操作。(I)辅助加密数据产生器读入凡,为辅助加密数据組ん.的产生做准备,辅助加密数据产生器只读入一次凡,因此图17中用虚线表示。将辅助验证数据组凡输入到辅助加密数据产生器的操作,具体操作为
在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组凡读入其内部寄存器;
(2)辅助验证数据组ガ广ガg的CBC-MAC运算操作,具体操作为
①在控制信号控制下,选择器MUXl将数据输入端口上的数据组及.传送到异或器XORl的ー个数据输入端,其中i=0,···,t~\ ;
②在控制信号控制下,异或器XORl对数据组及.与数据组る进行异或运算,る为AES加密器的输出值,其中,AES加密器输出的初始值J0=O128, 0128表示128比特0,异或结果久.输出到选择器MUX2的一个数据输入端AES加密器的输入端;
③在控制信号控制下,选择器MUX2将异或器XORl的输出数据送入AES加密器的数据输入端,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥心if产生10组子密钥,并输出到AES加密器的密钥输入端,AES加密器根据子密钥对数据进行加密,加密结果石+i从AES加密器输出端输出;
第三歩,电路再次输入辅助验证数据组4,信息密文数据组CTC,以及加密验证码数据组"I |0,此时电路有两个运算操作同时进行,ー个是数据组CT Cm,ひI Io进行CTR解密运算操作,另ー个是对解密后的数据组ガ广兄进行CBC-MAC运算操作,具体操作为
(1)如果计数器当前的计数值J小于》,其中プ=0,…,为自然数,在控制信号控制下,计数值加1,如果计数器当前的计数值J等干 ,在控制信号控制下,计数值清零;计数器将计算后的计数值J输出到辅助加密数据产生器数据输入端;
同时,在控制信号控制下,选择器MUXl将数据组及.传送到异或器XORl —个数据输入端,其中i=i,…,/ ,&来自数据输入端ロ,&+1义来自异或器X0R2的输出端ロ;
(2)在控制信号控制下,辅助加密数据产生器根据计数值j和内部寄存器中的数据组凡,生成当前辅助加密数据组ん,并将ん输出到选择器MUX2的另ー个数据输入端;
同时,在控制信号控制下,异或器XORl对数据组及.与数据组る进行异或运算,る为AES加密器输出值,异或结果输出到选择器MUX2的一个数据输入端;
(3)在控制信号控制下,MUX2首先将数据组ん输出到AES加密器,并对数据组ん进行加密操作,当数据组ん进入AES加密器的第二级及第二级以上流水线时,MUX2将数据组仏输出到AES加密器的第一级流水线,AES加密器同时对数据组ん和数据组ル进行加密操
同时,在控制信号控制下,密钥产生器根据初始密钥心IF产生10组子密钥,并输出到AES加密器密钥输入端,AES加密器使用子密钥对数据组ん和数据组进行加密;
同吋,在控制信号控制下,选择器MUX4将数据输入端口上的数据组Cj/U\ I O传送到寄存器中;
(4)AES加密器首先输出数据组ん的加密结果Ty,在控制信号控制下,AES加密器将数据组ろ输出到异或器X0R2 —个数据输入端;同时,寄存器将数据组 ./びI |0传送到异或器X0R2另ー个数据输入端,异或器X0R2对数据组Cj/U\ | O与数据组Kj进行异或运算,异或结果i/y(即数据组ガ吣/r| k)输出到数据输出端ロ ;随后AES加密器输出数据组A的加密结果^0+1 ;
第四步,电路最后对验证码r进行确认操作,即对数据组ひ| Io解密后的数据组r|レ和CBC-MAC运算结果广Iレ进行比较,具体操作为
(1)在控制信号控制下,选择器MUX4将异或器X0R2输出的异或结果Γ|レ输出到寄存器中,异或Γ|レ结果由#字节的验证码Γ和16-#字节的任意ニ进制比特串Z组成;
(2)在控制信号控制下,异或器X0R2分别读入AES加密器输出的数据组毛+1;以及寄存器输出的数据组r Iレ,毛+数据组的CBC-MAC运算结果,毛+i由重新生成的验证码T,,以及任意ニ进制比特串パ且成,即广Iレ,广长度为#字节,z长度为16-#字节,异或器X0R2对数据组Γ|レ和数据组广Iレ进行异或运算,并将异或结果i 输出到认证结果输出端ロ。8.本发明电路工作在“HASH函数状态”时的控制方法
參见图18,图18为本发明电路工作在“HASH函数状态”时的示意图。电路在实现HASH函数功能吋,由选择器MUX2、AES加密器、密钥产生器、选择器MUX3、异或器X0R2、寄存器和选择器MUX4组成MMO HASH函数运算操作电路,用来实现MMO HASH函数运算操作;电路在实现HASH函数功能时,计数器、辅助加密数据产生器、选择器MUXl和异或器XORl停止エ作,因此在图18中未表出。图18中虚线表示该路径上的电路只在某ー时刻工作,工作时间很短。结合图8,对图18所示的电路结构的控制方法进行说明。电路在实现MMO HASH函数功能时,其控制方法具体包括以下步骤
(1)在控制信号控制下,选择器MUX2将数据输入端口上的 数据组Ik传送到AES加密器的数据输入端,其中左=1,…,S-Ij为自然数;
(2)在控制信号控制下,AES加密器输入数据组厶,并对输入的数据组厶进行加密,在加密过程中,密钥产生器根据初始密钥Zfeif1产生10组子密钥,其中,/Zaitl为密钥产生器内部寄存器的初始值,且沿4=0128,并输出到AES加密器的密钥输入端,AES加密器根据子密钥对数据组厶进行加密,加密结果输出到异或器X0R2的一个数据输入端;
同时,选择器MUX4将数据输入端口上的数据组Ik传送到寄存器中;
(3)在控制信号控制下,异或器X0R2对AES加密器的加密结果和数据组Ik进行异或运算,异或运算结果が35ん输出到异或器X0R2的输出端;
(4)如果Ka在控制信号控制下,选择器MUX3将异或器X0R2输出^Hashk传送到密钥产生器数据输入端,将沿作为下ー轮MMO HASH函数运算的初始密钥;
如果左=· ,在控制信号控制下,异或器X0R2运算结果沿Ms作为MMO HASH函数运算结果输出到数据输出端口上。本发明已參照当前的实施方式进行了描述,但本技术领域的普通技术人员应当认识到,上述实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进,均应包含在本发明的权利保护范围之内。
权利要求
1.一种应用于ZigBee协议的安全协处理器电路结构,其特征在于所述电路结构包括计数器、辅助加密数据产生器、选择器MUX1、异或器X0R1、选择器 MUX2、AES加密器、密钥产生器、选择器MUX3、选择器MUX4、寄存器、异或器X0R2,还包括控 制信号输入端口、数据输入端口、密钥输入端口和数据输出端口 ;所述计数器的控制信号输入端与控制信号输入端口相连接;所述辅助加密数据产生器的一个数据输入端连接到计数器输出端,另一个数据输入端 连接到数据输入端口,控制信号输入端与控制信号输入端口相连接;所述选择器MUX1的一个数据输入端连接到数据输入端口,另一个数据输入端连接到 异或器X0R2的输出端,选择信号输入端与控制信号输入端口相连接;所述异或器X0R1的一个数据输入端连接到选择器MUX1的输出端,另一个数据输入端 连接到AES加密器的输出端,控制信号输入端与控制信号输入端口相连接;所述选择器MUX2的一个数据输入端连接到辅助加密数据产生器的输出端,一个数据 输入端连接到数据输入端口,一个数据输入端连接到异或器X0R1的输出端,选择信号输入 端与控制信号输入端口相连接;所述AES加密器的数据输入端连接到选择器MUX2的输出端,AES加密器的密钥输入端 连接到密钥产生器的输出端,控制信号输入端与控制信号输入端口相连接;所述密钥产生器的数据输入端连接到选择器MUX3的输出端,控制信号输入端与控制 信号输入端口相连接;所述选择器MUX3的一个数据输入端连接到密钥输入端口,另一个数据输入端连接到 异或器X0R2的输出端,选择信号输入端与控制信号输入端口相连接;所述异或器X0R2的一个数据输入端连接到AES加密器的输出端,另一个数据输入端连 接到寄存器的输出端,控制信号输入端与控制信号输入端口相连接;所述寄存器的数据输入端连接到选择器MUX4的输出端,控制信号输入端与控制信号 输入端口相连接;所述选择器MUX4的一个数据输入端连接到异或器X0R2的输出端,一个数据输入端连 接到数据输入端口,一个数据输入端连接到AES加密器的输出端,选择信号输入端与控制 信号输入端口相连接;所述数据输出端口连接到异或器X0R2的输出端。
2.根据权利要求1所述的应用于ZigBee协议的安全协处理器电路结构,其特征在于所 述的AES加密器采用流水线电路结构,流水线级数为两级以上,电路在实现CCM*加密/认 证码产生功能或CCM*解密/认证码确认功能时,AES加密器同时处理两组数据,当第一组 数据到达第二级及第二级以上流线时,第一级流水线输入第二组数据。
3.基于权利要求1所述电路结构的控制方法,其特征在于通过控制信号输入端口输 入控制信号,在控制信号的控制下,电路在六种状态之间转换,六种状态包括“空闲状态”、 “CTR操作状态”、“CBC-MAC操作状态”、“CCM加密状态”、“CCM解密状态”和“HASH函数状 态”所述的“空闲状态”,为电路的初始工作状态,在系统上电或系统复位后,电路进入“空 闲状态”,电路中各个部件停止工作;所述的“CTR操作状态”,在控制端口输入“CTR操作状态”控制信号时,电路进入“CTR操作状态”,实现ZigBee协议中的CTR加密/解密运算操作,当完成CTR加密/解密运算操 作后,在控制信号控制下返回“空闲状态”;所述的“CBC-MAC操作状态”,在控制端口输入“CBC-MAC操作状态”控制信号时,电路进 入“CBC-MAC操作状态”,实现ZigBee协议中的CBC-MAC认证码产生/确认运算操作,当完 成CBC-MAC认证码产生/确认运算操作后,在控制信号控制下返回“空闲状态”;所述的“CCM加密状态”,在控制端口输入“CCM加密状态”控制信号时,电路进入“CCM 加密状态”,实现ZigBee协议中的CCM*加密/认证码产生运算操作,当完成CCM*加密/认 证码产生运算操作后,在控制信号控制下返回“空闲状态”;所述的“CCM解密状态”,在控制端口输入“CCM解密状态”控制信号时,电路进入“CCM 解密状态”,实现ZigBee协议中的CCM*解密/认证码确认运算操作,当完成CCM*解密/认 证码确认运算操作后,在控制信号控制下返回“空闲状态”;所述的“HASH函数状态”,在控制端口输入“HASH函数状态”控制信号时,电路进入 “HASH函数状态”,实现ZigBee协议中的MMO HASH函数运算操作,当完成MMO HASH函数运 算操作后,在控制信号控制下返回“空闲状态”。
4.根据权利要求3所述的控制方法,其特征在于,电路在“CTR操作状态”下,控制方法 具体包括以下步骤a.输入初始密钥心if;b.输入辅助加密数据组A;c.输入明文数据组怂或密文数据组其中j'=0,…,为自然数;所述的步骤a,是完成将初始密钥心y输入到密钥产生器的操作,进一步包括以下步骤al)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心17传送到密钥产 生器数据输入端;a2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;所述的步骤b,是完成辅助加密数据组次输入到辅助加密数据产生器的操作,具体操作为在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组A读入其内部寄 存器;所述的步骤c,是完成明文数据组#7.的CTR加密运算操作或密文数据组&的CTR解密 运算操作,进一步包括以下步骤cl)在控制信号控制下,计数器计数值加1,计数器初始值为0,计数器将当前计数值J 输出到辅助加密数据产生器数据输入端;c2)在控制信号控制下,辅助加密数据产生器根据当前计数值J和内部寄存器中的数 据组次,生成当前辅助加密数据组(,并将(输出到选择器MUX2 —个数据输入端; c3)在控制信号控制下,选择器MUX2将(输出到AES加密器数据输入端;同时,选择器MUX4将数据输入端口输入的数据组传送到寄存器数据输入端; c4)在控制信号控制下,AES加密器对(进行加密,在加密过程中,密钥产生器根据初 始密钥心17产生10组子密钥,并输出到AES加密器密钥输入端,AES加密器使用子密钥对 Aj进行加密,加密结果Kj输出到异或器X0R2 —个数据输入端;同时,寄存器将数据组传送到X0R2的另一个数据输入端; c5)在控制信号控制下,异或器X0R2对数据组与数据组Kj进行异或运算,异或 结果cjyij输出到数据输出端口。
5.根据权利要求3所述的控制方法,其特征在于,电路在“CBC-MAC操作状态”下,其控 制方法具体包括以下步骤a.输入初始密钥心IF;b.输入数据组及.,其中i=0,…,/ ,/ 为自然数;c.认证码产生/确认;所述的步骤a,是完成将初始密钥心y输入到密钥产生器的操作,进一步包括以下步骤al)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心17传送到密钥产 生器数据输入端;a2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;所述的步骤b,是完成将数据组&的CBC-MAC运算操作,进一步包括以下步骤 bl)在控制信号控制下,选择器MUX1将数据输入端口上的数据组尾传送到异或器 X0R1的一个数据输入端;b2)在控制信号控制下,异或器X0R1对数据组尾与数据组石进行异或运算,尤为AES 加密器的输出值,其中,AES加密器输出的初始值Jo=0128,0128表示128比特0,异或结果久. 输出到选择器MUX2的一个数据输入端AES加密器的输入端;b3)在控制信号控制下,选择器MUX2将异或器XOR1的输出数据R送入AES加密器的 数据输入端,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥心if产生 10组子密钥,并输出到AES加密器的密钥输入端,AES加密器根据子密钥对数据进行加密, 加密结果石+1从AES加密器输出端输出;所述的步骤c,是完成认证码产生或者认证码确认的操作,两个操作有所不同,其中 cl)如果进行认证码产生操作,进一步包括以下步骤①在控制信号控制下,将寄存器清零;②在控制信号控制下,将AES加密器最后一次运算结果f输出到异或器XOR2—个数 据输入端,并将寄存器寄存器值0输出到异或器XOR2另一个数据输入端;③在控制信号控制下,异或结果 0输出到数据输出端口 ; c2)如果进行认证码产生确认,进一步包括以下步骤①在控制信号控制下,选择器MUX4将数据输入端输入的原认证码f送入寄存器;②在控制信号控制下,将AES加密器最后一次运算结果广输出到异或器XOR2—个数 据输入端,并将寄存器寄存器值r输出到异或器XOR2另一个数据输入端;③在控制信号控制下,异或结果万二广 f输出到数据输出端口。
6.根据权利要求3所述的控制方法,其特征在于,电路在“CCM加密状态”下,其控制方 法具体包括以下步骤a.输入初始密钥心IF;b.输入辅助验证数据组(为自然数;C.输入辅助验证数据组4+广兄,为自然数,K/7; d.验证码f加密;所述的步骤a,是完成将初始密钥心y输入到密钥产生器的操作,进一步包括以下步骤al)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心if传送到密钥产 生器数据输入端;a2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;所述的步骤b,是完成将辅助验证数据组凡输入到辅助加密数据产生器,以及完成辅助 验证数据组的CBC-MAC运算操作,两个操作是同时进行的,其中bl)将辅助验证数据组凡输入到辅助加密数据产生器的操作,具体操作为在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组凡读入其内部寄 存器;b2)辅助验证数据组的CBC-MAC运算操作,进一步包括以下步骤 b2-l)在控制信号控制下,选择器MUX1将数据输入端口上的数据组&传送到异或器 X0R1的一个数据输入端,其中i=0,…,t ;b2-2)在控制信号控制下,异或器X0R1对数据组尾与数据组石进行异或运算,石为 AES加密器的输出值,其中,AES加密器输出的初始值;=0128,0128表示128比特0,异或结果 输出到选择器MUX2的一个数据输入端AES加密器的输入端; b2-3)在控制信号控制下,选择器MUX2将异或器X0R1的输出数据R送入AES加密器 的数据输入端,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥心if产 生10组子密钥,并输出到AES加密器的密钥输入端,AES加密器根据子密钥对数据进行加 密,加密结果尤+1从AES加密器输出端输出;所述的步骤c,是完成辅助验证数据组&+广兄的CBC-MAC和CTR加密运算操作,进一步 包括以下步骤cl)在控制信号控制下,计数器计数值加1,计数器初始值为0,计数器将当前计数值J 输出到辅助加密数据产生器数据输入端,其中J‘=l,…,m- ni=n-t,m为芑然M.,同时,在控制信号控制下,选择器MUX1将数据输入端口上的数据组&传送到异或器 X0R1的一个数据输入端,其中i=t+l,…,n ;同时,在控制信号控制下,选择器MUX4将数据输入端口上的数据组&传送到寄存器中;c2)在控制信号控制下,辅助加密数据产生器根据当前计数值j和内部寄存器中的数 据组凡,生成当前辅助加密数据组(,并将(输出到选择器MUX2 —个数据输入端;同时,在控制信号控制下,异或器X0R1对数据组&与数据组尤进行异或运算,尤为AES 加密器的输出值,异或结果A输出到选择器MUX2的一个数据输入端;c3)在控制信号控制下,MUX2首先将数据组(输出到AES加密器,并对数据组(进行 加密操作,当数据组4进入AES加密器的第二级及第二级以上流水线时,MUX2将数据组 输出到AES加密器的第一级流水线,AES加密器同时对数据组(和数据组A进行加密操 作;同时,在控制信号控制下,密钥产生器根据初始密钥心17产生10组子密钥,并输出到AES加密器密钥输入端,AES加密器使用子密钥对数据组4和数据组进行加密;c4) AES加密器首先输出数据组(的加密结果(,在控制信号控制下,AES加密器将数 据组Kj输出到异或器X0R2 —个数据输入端;同时,寄存器将数据组及.传送到异或器X0R2 另一个数据输入端,异或器X0R2对数据组&与数据组Kj进行异或运算,异或结果输出 到数据输出端口 ;随后AES加密器输出数据组A的加密结果Zi+1 ;所述的步骤d,是完成验证码T的CTR加密运算操作,进一步包括以下步骤 dl)在控制信号控制下,选择器MUX4将AES加密器输出的U专送到寄存器中,毛+1为 数据组尽T見的CBC-MAC运算结果,毛+1由#字节的验证码f和16-#字节的任意二进制比 特串x组成,即T\ \x ;同时,在控制信号控制下,计数器计数值清零,并将当前计数值0输出到辅助加密数据 产生器的数据输入端;d2)在控制信号控制下,辅助加密数据产生器根据当前计数值0和内部寄存器中的数 据组凡,生成当前辅助加密数据组4,并将A输出到选择器MUX2 —个数据输入端; d3)在控制信号控制下,选择器MUX2将A输出到AES加密器的数据输入端; d4)在控制信号控制下,AES加密器对A进行加密,在加密过程中,密钥产生器根据初 始密钥心17产生10组子密钥,并输出到AES加密器的密钥输入端,AES加密器使用子密钥 对次进行加密,加密结果&输出到异或器XOR2 —个数据输入端;d5)在控制信号控制下,异或器XOR2对数据组毛+1与数据组r0进行异或运算,异或结 果列k输出到数据输出端口,异或结果列k由#字节的加密验证码^和16-#字节的任意 二进制比特串z组成。
7.根据权利要求3所述的控制方法,其特征在于,电路在“CCM解密状态”下,其控制方 法具体包括以下步骤a.输入初始密钥心IF;b.输入辅助验证数据组(为自然数;c.输入信息密文数据组&,C^Cm,列|0, 为自然数;d.验证码71确认;所述的步骤a,是完成将初始密钥心y输入到密钥产生器的操作,进一步包括以下步骤al)在控制信号控制下,选择器MUX3将密钥输入端口上的初始密钥心17传送到密钥产 生器数据输入端;a2)在控制信号控制下,密钥产生器将初始密钥心if读入其内部寄存器;所述的步骤b,是完成将辅助验证数据组凡输入到辅助加密数据产生器,以及完成辅助 验证数据组的CBC-MAC运算操作,两个操作是同时进行的,其中bl)将辅助验证数据组凡输入到辅助加密数据产生器的操作,具体操作为在控制信号控制下,辅助加密数据产生器将数据输入端口上的数据组凡读入其内部寄 存器;b2)辅助验证数据组的CBC-MAC运算操作,进一步包括以下步骤 b2-l)在控制信号控制下,选择器MUX1将数据输入端口上的数据组&传送到异或器 XOR1的一个数据输入端,其中i=0,…,t~\ ;b2-2)在控制信号控制下,异或器XORl对数据组尾与数据组石进行异或运算,为 AES加密器的输出值,其中,AES加密器输出的初始值J0=O128, 0128表示128比特0,异或结果 Di输出到选择器MUX2的一个数据输入端AES加密器的输入端;b2-3)在控制信号控制下,选择器MUX2将异或器XORl的输出数据化送入AES加密器 的数据输入端,并对输入的数据进行加密,在加密过程中,密钥产生器根据初始密钥心IF产 生10组子密钥,并输出到AES加密器的密钥输入端,AES加密器根据子密钥对数据进行加 密,加密结果る+i从AES加密器输出端输出;所述的步骤c,是完成信息密文数据组CT Cm,ひI |0的CTR解密运算操作,以及完成辅 助验证数据组ガ广兄的CBC-MAC运算操作,进ー步包括以下步骤Cl)如果计数器当前的计数值プ小于》,其中J'=0,,为自然数,在控制 信号控制下,计数值加1,如果计数器当前的计数值J'等干 ,在控制信号控制下,计数值清 零;计数器将计算后的计数值J 输出到辅助加密数据产生器数据输入端;同时,在控制信号控制下,选择器MUXl将数据组及.传送到异或器XORl —个数据输入 端,其中i=ら…,来自数据输入端ロ,&+1义来自异或器X0R2的输出端ロ;c2)在控制信号控制下,辅助加密数据产生器根据计数值j和内部寄存器中的数据组 ガ。,生成当前辅助加密数据组ん,并将ん输出到选择器MUX2的另ー个数据输入端;同时,在控制信号控制下,异或器XORl对数据组及.与数据组る进行异或运算,る为AES 加密器输出值,异或结果输出到选择器MUX2的一个数据输入端;c3)在控制信号控制下,MUX2首先将数据组ん输出到AES加密器,并对数据组ん进行 加密操作,当数据组ん进入AES加密器的第二级及第二级以上流水线时,MUX2将数据组仏 输出到AES加密器的第一级流水线,AES加密器同时对数据组ん和数据组ル进行加密操同时,在控制信号控制下,密钥产生器根据初始密钥心IF产生10组子密钥,并输出到 AES加密器密钥输入端,AES加密器使用子密钥对数据组ん和数据组进行加密;同吋,在控制信号控制下,选择器MUX4将数据输入端口上的数据组Cj/U\ I 0传送到寄 存器中;c4) AES加密器首先输出数据组ん的加密结果Ty,在控制信号控制下,AES加密器将数 据组ろ输出到异或器X0R2 —个数据输入端;同时,寄存器将数据组G/びI |0传送到异或器 X0R2另ー个数据输入端,异或器X0R2对数据组Cj/U\ | 0与数据组Kj进行异或运算,异或结 果i/y,即数据组ガ^//ァ|レ,输出到数据输出端ロ ;随后AES加密器输出数据组久.的加密结果 ん+1;所述的步骤d,是完成验证码T的确认操作,进ー步包括以下步骤 dl)在控制信号控制下,选择器MUX4将异或器X0R2输出的异或结果レ输出到寄存 器中,异或Iレ结果由#字节的验证码7和16-#字节的任意ニ进制比特串z组成;d2)在控制信号控制下,异或器X0R2分别读入AES加密器输出的数据组毛+p以及寄存 器输出的数据组r Iレ,毛+:为数据组的CBC-MAC运算结果,毛+:由重新生成的验证码 T,,以及任意ニ进制比特串パ且成,即广Iレ,广长度为#字节,z长度为16-#字节,异 或器X0R2对数据组レ和数据组广Iレ进行异或运算,并将异或结果i 输出到认证结果 输出端ロ。
8.根据权利要求3所述的控制方法,其特征在于,电路在“HASH函数状态”下,其控制 方法具体包括以下步骤a.在控制信号控制下,选择器MUX2将数据输入端口上的数据组Ik传送到AES加密器 的数据输入端,其中左=1,…,为自然数;b.在控制信号控制下,AES加密器输入数据组Ik,并对输入的数据组Ik进行加密,在加 密过程中,密钥产生器根据初始密钥Zfeif1产生10组子密钥,其中,/Zaitl为密钥产生器内 部寄存器的初始值,且沿Mtl=O128,并输出到AES加密器的密钥输入端,AES加密器根据子密 钥对数据组厶进行加密,加密结果输出到异或器X0R2的一个数据输入端;同时,选择器MUX4将数据输入端口上的数据组Ik传送到寄存器中;c.在控制信号控制下,异或器X0R2对AES加密器的加密结果和数据组Ik进行异或运 算,异或运算结果ZfesA1输出到异或器X0R2的输出端;d.如果á&,在控制信号控制下,选择器MUX3将异或器X0R2输出^Hashk传送到密钥 产生器数据输入端,将沿作为下一轮MMO HASH函数运算的初始密钥;如果á3,在控制信号控制下,异或器X0R2运算结果沿Ms作为MMO HASH函数运算结 果输出到数据输出端口上。
9.根据权利要求31任一所述的控制方法,其特征在于,所述的AES加密器采用流水线 电路结构,流水线级数为两级以上,电路在“CCM加密状态”或“CCM解密状态”下,AES加密 器同时处理两组数据,当第一组数据到达第二级及第二级以上流水线时,第一级流水线输 入第二组数据。
全文摘要
本发明公开一种应用于ZigBee协议的安全协处理器电路结构及其控制方法,该电路结构基于单个AES加密器,通过控制信号的控制,既能实现ZigBee协议中CCM*模式的加密/认证码产生的并行处理功能,以及CCM*模式的解密/认证码确认的并行处理功能,还能单独实现CCM*模式的CTR加/解密功能,以及CCM*模式的CBC-MAC认证码产生/确认功能,除此之外,该电路还实现了MMOHash函数功能。本发明完全使用硬件电路实现AES-CCM*安全模式和MMOHASH函数,减小了ZigBee系统中CPU的负载,也避免了不必要的软件攻击。
文档编号H04W12/02GK102665202SQ201210109928
公开日2012年9月12日 申请日期2012年4月16日 优先权日2012年4月16日
发明者吕青松, 吴宁, 周芳, 张肖强, 王旭, 黎建华 申请人:南京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1