一种使用基于混沌的随机时钟的加密方法及装置
技术领域
本发明涉及信息传输中的高速加密技术,加密电路设计以及加密控制电路设计技术,属于信息安全领域。
背景技术
随着计算机技术,通信技术的飞速发展,信息安全问题越来越受到人们的重视,各种新型加密技术和分析技术不断涌现。与传统的软件加密技术相比,硬件加密技术具有占用主机资源少、加密速度快等优点,无疑具有更大的发展潜力。但是,同样,针对硬件加密技术的攻击方法也层出不穷,其中相对有效的攻击方法为能量攻击和电磁分析。该两种方法对硬件加密技术的安全性产生了巨大的威胁。
能量攻击基于加密设备在处理不同运算以及不同操作数时消耗的功率不同,通过分析加密系统的功率消耗特征来判断运算所涉及的操作数,从而恢复密钥信息,并于1999年成功的运用在对DES算法硬件实现的实际攻击中;电磁分析基于硬件加密系统各组件在运算时通常会产生电磁辐射,通过测量加密设备的电磁辐射情况,攻击者可以利用所执行的计算和操作数与电磁辐射之间的关系来获得关于执行的计算和使用的数据等信息。
但是由于能量攻击和电磁分析在攻击的过程中都需要对设备的信息(功耗或者电磁辐射)进行采样,因此在设备计算中,引入随机时钟,能够有效的抵抗能量攻击和电磁分析。但是引入随机时钟的方式也存在问题。现今的硬件加密技术一般采用线性反馈移位寄存器的方式生成伪随机序列。但是线性反馈移位寄存器的安全性能并不强。因此使用线性反馈移位寄存器引入随机时钟的方式,只是相当于在能量攻击和电磁分析之前,增加了一步并非十分麻烦的破解线性反馈移位寄存器的步骤。
近年来,因为混沌现象隶属于确定性系统而难以预测,隐含于复杂系统但又不可分解,以及呈现出“混乱无序却有规律”的性质,混沌理论在密码学中的应用得到了极大的关注和发展,使用混沌原理产生随机序列具有很好的统计性质。
本发明的先进性体现在:将混沌映射,线性反馈移位寄存器以及加密后密文性质三方面结合起来,从而使得产生随机时钟的随机序列的安全强度依托于混沌映射的安全强度、线性反馈移位寄存器的安全强度和使用的密码算法的安全强度三个方面,有效的保证了随机时钟随机性不可破译,使得硬件加密系统切实有效的抵抗能量攻击和电磁分析。
发明内容
针对上述存在的问题,本发明提出了一种使用基于混沌的随机时钟的加密方法及装置。
本发明所述的使用基于混沌的随机时钟的加密系统,其特征在与,该系统包括以下十个部分:
1.一种使用基于混沌的随机时钟的加密系统,其特征在于,该系统包括晶振、锁相环PLL1、锁相环PLL2、伪随机序列生成模块、混沌映射控制模块、扰动生成模块、明文输入模块、加密模块、密钥扩展模块、密文输出模块;
模块1.晶振产生一个10MHz的原始时钟clk_pri,并将其发送到锁相环PLL1用于生成明文输入和密文输出钟频clk_io;发送到锁相环PLL2用于生成随机加密时钟clk_rd;
模块2.锁相环PLL1根据晶振产生的原始时钟clk_pri和预先计算出的分频系数para_pll1,生成用于明文输入和密文输出的钟频clk_io,并将clk_io发送到明文输入模块和密文输出模块;
模块3.锁相环PLL2根据晶振产生的原始时钟clk_pri和伪随机序列生成模块产生的随机分频系数para_pll2,生成用于加密和密钥扩展的随机时钟clk_rd,并将clk_rd发送到加密模块;
模块4.伪随机序生成模块列的主体是一个线性反馈移位寄存器(LFSR),使用32级LFSR,本源多项式满足LFSR生成的序列为m-序列,受混沌映射控制模块的信号con_cha控制其输出信号前进行的圈数,并将输出信号异或由干扰生成模块生成的干扰信号,得到反馈输入信号,进行反馈信号的计算。当LFSR的输出信号为0时,定义分频系数para_pll2=1,当LFSR的输出信号为0时,定义分频系数para_pll2=2;
模块5.混沌映射控制模块使用混沌logistic映射,基于混沌吸引子理论,利用离散化方法,可以随机产生四个随机数{1,2,3,4}作为控制信号con_cha。混沌映射控制模块采用的混沌logistic映射为
依据吸引子理论,将区间(-1,1)分为
和
四个部分,选取合适的初值x
0进行logistic映射的迭代操作,若假定映射变量x
n落在区间τ
i中,则令con_cha=i。当con_cha=1时,控制LFSR运行1圈后输出位异或干扰信号,计算反馈信号,并输出随机分频系数para_pll2;当con_cha=2时,控制LFSR运行2圈后输出位异或干扰信号,计算反馈信号,并输出随机分频系数para_pll2;当con_cha=3或4时分别代表3圈和4圈;
模块6.扰动生成模块根据加密模块单个时钟内产生的密文信息data_out,将加密模块在该时钟生成的密文信号data_out进行逐比特异或,最终生成的二进制数作为干扰信号para_ob,发送给伪随机序列生成模块;
模块7.明文输入模块采用预设的明文输入分组长度data_io_blc和明文输入轮数rd_io,以及锁相环PLL1生成的分频时钟clk_io,将明文输入到加密模块;
模块8.加密模块加载一种加密算法,使用随机时钟clk_rd,从明文输入模块输入明文,并对其进行加密,并将密文输出到密文输出模块进行输出;
模块9.密钥扩展模块可以通过手动输入种子密钥,也可以通过外接物理噪声源的方式自动生成种子密钥,接受到种子密钥后,使用随机时钟clk_rd,依据加密模块加载的加密算法配套的密钥扩展方案,生成轮密钥,并发送给加密模块;
模块10.密钥输出模块采用预设的密文输出分组长度data_io_blc和密文输出轮数rd_io,以及锁相环PLL1生成的分频时钟clk_io,接受加密模块传来的密文,并输出出去。
附图说明
图1为本发明的整体结构示意图;
图2为伪随机序列生成模块示意图;
图3为混沌映射控制模块示意图;
图4为本发明提供方法的流程图。
具体实施方法
具体实施步骤如图1总体结构示意图和图4方法流程图所示:
步骤1:混沌映射控制模块和伪随机序列生成模块的初始化。首先定义干扰信号para_ob=0的情况下,对混沌映射控制模块和伪随机序列生成模块给定一定的初值,然后分别运行180个时钟,从而实现混沌映射控制模块和伪随机序列生成模块的初始化过程,转至步骤2。
步骤2:输入种子密钥。种子密钥的输入有两种方式,可以手动输入,也可以外接物理噪声源自动生成,转至步骤3。
步骤3:明文输入模块读取明文,并输入到加密模块中。锁相环PLL1接受来自根据预先计算好的分频系数para_pll1,并进行分频处理,生成钟频clk_io,明文输入模块按照钟频clk_io,每个时钟读入data_io_blc个比特数据,总计使用rd_io个时钟完成明文输入过程,并将输入的明文转到加密模块,转到步骤4。
步骤4:进行密钥扩展,并将扩展密钥round key输入到加密模块中,加密模块进行加密。锁相环PLL2接受来自伪随机序列生成模块的分频系数para_pll2,并进行分频处理,生成随机钟频clk_rd;加密模块和密钥扩展模块按照随机钟频clk_rd进行操作,转到步骤5。
步骤5:生成干扰信号,并计算下一时钟分频系数。激活扰动生成模块,依据加密模块该时钟产生的密文信号data_out,将其逐比特异或生成干扰信号,并将干扰信号para_ob输出到伪随机序列生成模块进行反馈位的计算;激活混沌映射控制模块,生成控制下一时钟伪随机序列生成模块LFSR圈数的控制信号con_cha;激活伪随机序列生成模块,按照上一轮混沌映射控制模块的控制信号con_cha的控制运行LFSR相应的圈数,并异或干扰信号,作为分频信号输出,决定下一个时钟的分频系数,同时分频信号作为反馈输入信号,参与LFSR反馈位的计算,转至步骤6。
步骤6:密文输出模块输出密文。密文输出模块按照钟频clk_io,每个时钟输出data_io_blc个比特数据,总计使用rd_io个时钟完成密文输出过程。加密结束。
本发明的有益效果:
本发明首次提供了一种使用基于混沌的随机时钟的加密方法,适用于速度可变的硬件平台中,适应速度更改加密算法的轮数,使得空闲操作时钟得到充分利用来增加系统的安全性,在不增加加密装置资源,不影响加密装置速度变化的条件下,成功的更加了加密的安全性,实现了装置性能的提高。本发明可以应用在保密的硬件存储设备的静态加密、微波或光通信链路、计算机终端的接受或者发射端口等工业和技术生产中。