发明名称 一种抵抗能量分析的随机混合加密系统及其实现方法
摘要 本发明公开了一种抵抗能量分析的随机混合加密系统及其实现方法,属于信息安全领域。系统采用自上而下一体化的设计方案,由伪随机序列PN128生成模块、S盒更新模块、掩码修正值生成模块、明文输入寄存器、伪随机序列PN64生成模块、选通电路A、选通电路B、SMS4加密模块、AES加密模块、多路器、密文输出寄存器十一个部分组成。本发明首次提出了一种抵抗能量分析的随机混合加密系统及其实现方法,通过伪随机序列PN64,对明文随机采用基于掩码技术的AES或者SMS4算法进行加密,算法硬件实现中所有的基本电路单元均通过对称电路实现,从根本上杜绝了简单和差分能量分析,加密系统具有多种工作模式,适用于不同场景。
申请公布号 CN102546157B 申请公布日期 2014.06.18
申请号 CN201110418111.0 申请日期 2011.12.14
申请人 北京航空航天大学 发明人 郑志明;张筱;韦卫;郭炳晖;唐绍婷;姜鑫;张尧;姚丹丹
分类号 H04L9/26(2006.01)I 主分类号 H04L9/26(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 赵文利
主权项 一种抵抗能量分析的随机混合加密系统,其特征在于,包括伪随机序列PN128生成模块、S盒更新模块、掩码修正值生成模块、明文输入寄存器、伪随机序列PN64生成模块、选通电路A、选通电路B、SMS4加密模块、AES加密模块、多路器和密文输出寄存器;伪随机序列PN128生成模块通过128位的线性反馈移位寄存器产生128位伪随机掩码;每次加密前通过该模块随机生成128位掩码D<sub>10</sub>至S盒更新模块、掩码修正值生成模块、SMS4加密模块、AES加密模块;S盒更新模块接收到伪随机序列PN128生成模块发送来的伪随机掩码D<sub>10</sub>,通过该掩码分别计算得到SMS4算法和AES算法的修正S盒的查表元素,通过8位的数据通道D<sub>21</sub>和D<sub>20</sub>分别更新SMS4加密模块和AES加密模块中用于实现S盒查表功能的RAM存储器中的元素;掩码修正值生成模块接收到伪随机序列PN128生成模块发送来的伪随机掩码D<sub>10</sub>,计算得到在加入该掩码之后SMS4算法每个分组加密过程中每轮之后的掩码修正值D<sub>31</sub>,发送给SMS4加密模块,计算得到在加入该掩码之后AES算法每个分组加密过程中每轮之后的掩码修正值D<sub>30</sub>,发送给AES加密模块,其中D<sub>31</sub>为32位,D<sub>30</sub>为128位;明文输入寄存器通过16位并行接口接收并存储明文数据D<sub>in</sub>,并将16比特明文D<sub>80</sub>发送给选通电路A和选通电路B;每个分组明文为128比特,分8个时钟完成;伪随机序列PN64生成模块通过64位的线性反馈移位寄存器产生PN64,在每个分组128比特明文的加密周期内,产生一位新的伪随机码D<sub>70</sub>发送给选通电路B、多路器,通过一个反相器将D<sub>70</sub>取反得到D<sub>71</sub>发送给选通电路A;选通电路A接收反相器发送来的D<sub>71</sub>,当D<sub>71</sub>为1时,允许明文D<sub>80</sub>通过并进入SMS4加密模块,当D<sub>71</sub>为0时,阻止明文D<sub>80</sub>进入SMS4加密模块;选通电路B接收伪随机序列PN64生成模块发送来的D<sub>70</sub>,当D<sub>70</sub>为1时,允许明文D<sub>80</sub>通过并进入AES加密模块,当D<sub>70</sub>为0时,阻止明文D<sub>80</sub>进入AES加密模块;SMS4加密模块通过8位的数据通道D<sub>21</sub>接收S盒更新模块发送来的SMS4算法的修正S盒查表元素,并对本模块中用于实现S盒查表功能的RAM存储器进行数据更新;该模块接收来自选通电路A的明文D<sub>91</sub>,并对其进行基于掩码技术的SMS4加密;该模块接收来自伪随机序列PN128生成模块的伪随机掩码D<sub>10</sub>的低32位D<sub>11</sub>,在每个分组加密过程中,异或轮密钥的同时异或D<sub>11</sub>;该模块接收来自掩码修正值生成模块的SMS4算法掩码修正值D<sub>31</sub>,通过SMS4算法掩码修正值D<sub>31</sub>去除掩码值D<sub>11</sub>的影响,从而在每个分组加密完成后得到未经掩码影响的正确的128比特密文值,通过16位数据通道D<sub>40</sub>发送给多路器;AES加密模块通过8位的数据通道D<sub>20</sub>接收S盒更新模块发送来的AES算法的修正S盒查表元素,并对本模块中用于实现S盒查表功能的RAM存储器进行数据更新;该模块接收来自选通电路B的明文D<sub>90</sub>,并对其进行基于掩码技术的AES加密;该模块接收来自伪随机序列PN128生成模块的伪随机掩码D<sub>10</sub>,在每个分组加密之前,将128比特明文异或D<sub>10</sub>;该模块接收来自掩码修正值生成模块的AES算法掩码修正值D<sub>30</sub>,通过AES算法掩码修正值D<sub>30</sub>去除掩码值D<sub>10</sub>的影响,从而在每个分组加密完成后得到未经掩码影响的正确的128比特密文值,通过16位数据通道D<sub>50</sub>发送给多路器;多路器接收来自伪随机序列PN64生成模块的伪随机码D<sub>70</sub>,将其作为选择信号,当D<sub>70</sub>为1,选通D<sub>50</sub>,当D<sub>70</sub>为0,选通D<sub>40</sub>,并将选出的密文数据D<sub>60</sub>发送给16位密文输出寄存器;密文输出寄存器通过16位并行接口接收并存储密文数据D<sub>60</sub>,并通过16位数据接口D<sub>out</sub>将密文发送出去。
地址 100191 北京市海淀区学院路37号