用于无线传感网络SOC芯片的安全系统的制作方法

文档序号:16547255发布日期:2019-01-08 20:55阅读:198来源:国知局
用于无线传感网络SOC芯片的安全系统的制作方法

本发明涉及无线传感器技术领域,具体涉及一种用于无线传感网络SOC芯片的安全系统。



背景技术:

对于无线传感器网络,安全引导可以说是最重要、最复杂,而且也是最富有挑战性的内容,因为无线传感器网络面临资源受限的约束,使得传统的安全引导方法不能直接应用于无线传感器网络中。而安全维护主要研究通信中的密钥更新,以及网络变更引起的安全变更。通信保密性包括:组密钥保密,后向保密,前向保密,密钥独立,隐含密钥认证,显示密钥认证,完善前向保密,抵抗已知密钥攻击等。上述问题在各个层次中都应该充分研究和重视,只是各自的侧重点不大相同。物理层主要考虑安全编码方面;链路层和网络层的保密性考虑的是数据帧和路由信息的加解密技术;而应用层则侧重在密钥的管理和交换过程,为下层的加解密提供安全支持。



技术实现要素:

本发明目的在于提供一种用于无线传感网络SOC芯片的安全系统,其能够为无线传感网络中的SOC芯片提供系统化的安全保护,半酣了数据加解密、数据流处理和密钥管理等保护功能。

为了解决现有技术中的这些问题,本发明提供的技术方案是:

一种用于无线传感网络SOC芯片的安全系统,安全系统挂载在无线传感网络的AHB总线上,安全系统接收AHB主机接口信号和AHB从机接口信号并完成与AHB总线间的控制命令和数据的传输,所述安全系统包括寄存器管理单元、状态机单元以及加解密单元,其中:

寄存器管理单元根据AHB从机接口信号配置安全加密模块的寄存器组并读写控制命令寄存器、状态寄存器以及加解密等所需信息数据寄存器,实现对安全系统的控制;

加解密单元包括数据加密单元、数据解密单元以及密钥扩展单元三个部分;

状态机单元包括数据读写单元、密钥管理单元以及数据流处理单元,状态机单元根据AHB主机接口信号和寄存器写入的控制命令,实现对AHB总线地址数据的读写。

作为优化,所述安全系统还包括身份认证单元,所述身份认证单元中的身份信息发送至寄存器管理单元,实现身份验证。

相对于现有技术中的方案,本发明的优点是:

本发明所描述的用于无线传感网络SOC芯片的安全系统,采用硬件电路的方式对数据流进行搬迁、加解密和存储,缩短了数据流加解密所需的时间,为系统更高效的运行提供保障。

附图说明

下面结合附图及实施例对本发明作进一步描述:

图1为本发明实施例中安全系统的框架示意图;

图2为本发明实施例中加解密单元的工作状态图;

图3为本发明实施例中加解密单元的密钥扩展过程示意图;

图4为本发明实施例中加解密单元的加密过程示意图;

图5为本发明实施例中加解密单元的解密过程示意图;

图6为本发明实施例中RC5分组算法加密结构示意图;

图7为本发明实施例中RC5分组解密加密结构示意图;

图8为本发明实施例中加解密单元的接口信号示意图;

具体实施方式

以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。

实施例:

本实施例描述了一种用于无线传感网络SOC芯片的安全系统,其结构如图1所示,安全系统挂载在无线传感网络的AHB总线上,安全系统接收AHB主机接口信号和AHB从机接口信号并完成与AHB总线间的控制命令和数据的传输,所述安全系统包括寄存器管理单元、状态机单元以及加解密单元,其中:

寄存器管理单元根据AHB从机接口信号配置安全加密模块的寄存器组并读写控制命令寄存器、状态寄存器以及加解密等所需信息数据寄存器,实现对安全系统的控制;

加解密单元包括数据加密单元、数据解密单元以及密钥扩展单元三个部分;

状态机单元包括数据读写单元、密钥管理单元以及数据流处理单元,状态机单元根据AHB主机接口信号和寄存器写入的控制命令,实现对AHB总线地址数据的读写。

所述安全系统还包括身份认证单元,所述身份认证单元中的身份信息发送至寄存器管理单元,实现身份验证。

加解密单元作为安全加密模块的核心功能模块,设计采用了RC5-32/12/16算法,能够实现密钥扩展、数据加密和数据解密。

加解密单元的接口信号设计如图8所示信号如下所列,具体如下:

Clk,rst信号:加解密单元的时钟输入信号和复位信号,与整个模块的全局时钟信号和复位信号同步;

Wr信号:加解密单元写使能信号;

Order[7:0]:单次数据加密时,用于写入加解密控制命令;

AHB_order[7:0],AHB_on:信号用于数据流加解密,其中AHB_order信号用于写入数据流加解密控制信号;AHB_on用于表示加解密单元处于数据流工作状态;

Key[31:0]:密钥输入信号;

addr_k[1:0]:密钥地址输出信号,根据该信号决定Key[31:0]信号的输入;

pt0[31:0],pt1[31:0]:数据输入信号;

free:加解密单元空闲信号;

intr:加解密中断信号;

ct0[31:0],ct1[31:0]:数据输出信号。

加解密单元可以分成如图2所示的5个工作状态:

密钥扩展:当order=1时,加解密单元处于密钥扩展状态。每次密钥跟新之后,都要进行密钥扩展处理。如果采用固定的密钥,则只要进行一次的密钥扩展,之后跳过这一状态,循环输入待加密或者解密的数据;

数据输入:当order=0时,加解密单元处于数据输入状态。pt0和pt1信号端输入两个32比特的数据,作为待加密或者解密的数据;

加密:当order=2时,加解密单元处于数据加密状态;

解密:当order=3时,加解密单元处于数据解密状态;

数据输出:在数据的加密或者解密状态之后,加解密单元进入数据输出状态,将加解密的结果数据输出到ct0,和ct1信号端。

采用由RSA公司设计的参数可变的分组加密算法RC5,是因为RC5算法只采用了常见的初等计算操作(异或,加法,减法,循环移位),一方面,它非常的便于硬件实现,另一方面,由于算法的简单,它的运算速度非常快。

密钥扩展设计:根据RC5加密算法,定义了寄存器数组L[]和S[]用于密钥的扩展运算。密钥扩展过程如图3所示,S,L扩展经过t=2r+2=2*12+2=26次循环后,S[]、L[]数组为扩展后的使用的密钥数组。S[]用于子密钥的初始化,是一个大小为t=26的32比特数组。按照RC5算法循环计算出S[]的值。L[]用于转换密钥,是一个大小为c=b*8/w=16*8/32=4的32比特数组。根据加解密单元输出的密钥地址addr_k,状态机单元会返回一个32比特的密钥到加解密单元的密钥输入端Key[31:0]。通过在每次写入一个密钥后递增addr_k数值,从而将新输入的密钥Key[31:0]写入密钥寄存器组L[],完成L[]的初始化。混合寄存器数据L[]和S[]的值,从而完成密钥的扩展。

加密设计:根据RC5算法,定义了32位寄存器A和B,用于存储加密时的临时数据。加密过程如图4所示,寄存器A和寄存器B值的更新算法在RC5算法加密过程中给出,在每个时钟周期内可以完成一次寄存器A或者寄存器B的值的更新。经过r=12次循环,寄存器A和寄存器B中的值就是加密所得的密文数据。RC5分组算法加密结构如图6所示。

解密设计:同样根据RC5算法设计的解密过程,使用寄存器A和寄存器B作为解密过程中临时数据存放寄存器。解密过程如图5所示,此时寄存器A和寄存器B值的跟新算法在4.2.1节RC5算法解密过程中给出,在每个时钟周期内可以完成一次寄存器A或者寄存器B的值的更新。经过r=12次循环,寄存器A和寄存器B中的值就是解密所得的明文数据。RC5分组算法解密结构如图7所示。

上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1