• 一种安全性适应速度变化的加密方法及装置

    • 摘要:

      本发明提供了一种安全性适应速度变化的加密方法及装置,属于信息安全领域.系统采用自上而下一体化的设计方案,由速度选择模块、系数计算模块、轮数控制计数器、晶振、锁相环PLL1、锁相环PLL2、明文输入模块、加密模块、密钥扩展模块、密文输出模块十个部分组成.本发明首次提供了一种安全性适应速度变化的加密方法,适用于速度可变的硬件平台中,适应速度更改加密算法的轮数,使得空闲操作时钟得到充分利用来增加系统的安全性.本发明可以应用在保密的硬件存储设备的静态加密、微波或光通信链路、计算机终端的接受或者发射端口等工业和技术生产中.

    • 专利类型:

      发明专利

    • 申请/专利号:

      CN201310597201.X

    • 申请日期:

      2013.11.22

    • 公开/公告号:

      CN103607275A

    • 公开/公告日:

      2014-02-26

    • 发明人:

      郑志明 张筱 姚望 姚丹丹 韦卫 姜鑫

    • 申请人:

      北京航空航天大学

    • 主分类号:

      H04L9/06(2006.01)I,H,H04,H04L,H04L9

    • 分类号:

      H04L9/06(2006.01)I,H,H04,H04L,H04L9,H04L9/06

    • 主权项:

      一种安全性适应速度变化的加密方法及装置,其特征在于,该系统包括速度选择模块、系数计算模块、晶振、锁相环PLL1、锁相环PLL2、明文输入模块、加密模块、密钥扩展模块、密文输出模块;模块1.速度选择模块的方式多种多样,任意可以发送出表征加密速度的参数spi的方法或装置(比如多路器或者速度自适应装置)都在允许之列.在这里,不妨假设使用多路器来作为速度选择模块.该模块由一路选择信号sel_sp通过一个多路器将预设的可选加密速度sp1、sp2……spn选择其中一个,并将该信号作为一个系数发送给系数计算模块用于计算锁相环PLL1的分频系数para_sp1以及加密模块可以使用的轮数r_max;该模块通过调节按钮来改变sel_sp输入信号,从而达到速度选择的目的;模块2.系数计算模块接受速度选择模块发来的速度信号spi,并依据选择的加密速度spi、预设的明文输入(密文输出)分组长度data_io_blc以及明文输入(密文输出)时钟数rd_io计算出锁相环PLL1的分频系数para_sp1=(data_io_blc*rd_io*clk_pri)/spi;依据选择的加密速度spi、加密模块加载的加密算法分组长度crypt_blc以及加密模块加载的加密算法的最大钟频crypt_clk计算出加密模块可以使用的轮数r_max=spi/(crypt_blc*crypt_clk);模块3.轮数计数器接受来自系数计算模块的参数r_max,并将其作为计数器的上限值,通过在0和r_max之间的计数操作,达到算法的轮数控制的目的,实现了根据速度的变化自动变更轮数来改变其安全性能.模块4.晶振产生一个10MHz的原始时钟clk_pri,并将其发送到锁相环PLL1用于生成明文输入和密文输出钟频clk_io;发送到锁相环PLL2用于生成加密时钟clk_rd;模块5.锁相环PLL1根据晶振产生的原始时钟clk_pri和系数计算模块计算出的分频系数para_sp1,生成用于明文输入和密文输出的钟频clk_io,并将clk_io发送到明文输入模块和密文输出模块;模块6.锁相环PLL2根据晶振产生的原始时钟clk_pri和预先依据加密模块加载的加密算法的最大钟频crypt_clk,计算出的锁相环PLL2的分频系数para_sp2?=?(clk_pri)?/(crypt_clk),生成用于加密和密钥扩展的时钟clk_rd,并将clk_rd发送到加密模块;模块7.明文输入模块采用预设的明文输入分组长度data_io_blc和明文输入轮数rd_io,以及锁相环PLL1生成的分频时钟clk_io,将明文输入到加密模块;模块8.加密模块加载一种加密算法,接受系数计算模块计算出来的轮数r_max对自身轮数进行调节,使用时钟clk_rd,从明文输入模块输入明文,并对其进行加密,并将密文输出到密文输出模块进行输出;模块9.密钥扩展模块可以通过手动输入种子密钥,也可以通过外接伪随机序列生成模块(如图4)的方式自动生成种子密钥,接受到种子密钥后,使用时钟clk_rd,依据加密模块加载的加密算法配套的密钥扩展方案,接受系数计算模块计算出来的轮数r_max对自身产生轮密钥数进行调节,生成轮密钥,并发送给加密模块;模块10.密钥输出模块采用预设的密文输出分组长度data_io_blc和密文输出轮数rd_io,以及锁相环PLL1生成的分频时钟clk_io,接受加密模块传来的密文,并输出出去.