公开/公告号CN104579635A
专利类型发明专利
公开/公告日2015-04-29
原文格式PDF
申请/专利权人 聚辰半导体(上海)有限公司;
申请/专利号CN201510040323.8
申请日2015-01-27
分类号H04L9/06(20060101);
代理机构上海信好专利代理事务所(普通合伙);
代理人张静洁;张妍
地址 201203 上海市浦东新区张江高科技园区松涛路647弄12号
入库时间 2023-12-18 08:35:15
法律状态公告日
法律状态信息
法律状态
2019-02-12
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L9/06 变更前: 变更后: 申请日:20150127
专利权人的姓名或者名称、地址的变更
2018-07-06
授权
授权
2015-05-27
实质审查的生效 IPC(主分类):H04L9/06 申请日:20150127
实质审查的生效
2015-04-29
公开
公开
技术领域
本发明涉及数据加密的实现方法,具体涉及可循环迭代抗侧信道攻击的DES系统及实现可重映射SBOX方法。
背景技术
数据加密标准(Data Encryption Standard,简称DES)是上世纪70年代由IBM公开的分组加密算法,由于其良好的密码特性,时至今日在各种场合仍有大量应用。然而接近40年前的加密算法在如今不断更新的攻击技术面前,安全性岌岌可危。特别是1998年差分功耗分析(Differential Power Analysis)技术的公布,使得侧信道攻击成为了一个新的突破点。
DES功耗攻击的重点在于SBOX(substitution box,非线性代换盒)计算。基于查找表原理的SBOX是DES运算中唯一的非线性组件,也是寄存器状态变化最为剧烈的部分,因此功耗特性曲线泄漏的秘密也最多。
发明内容
本发明的目的在于提供可循环迭代抗侧信道攻击的DES系统及实现可重映射SBOX方法,通过设置第一掩码C、第二掩码Cx以及经处理的Cx’,当进行非线性运算函数运算时,能够将传统SBOX功耗与汉明权重的线性相关性重映射为其他相关性类型,能够从原理上弱化传统侧信道攻击的威胁,提高DES的安全性。同时,本发明简化了进行非线性运算函数运算时的部分异或运算,在设计该DES电路系统中还能够减少电路的面积、降低工作功耗,具有较大的实用性。本发明通过对SBOX的重映射变化,一方面从原理上将了功耗曲线与数据翻转的关系弱化,另一方面通过设计SBOX的相关参数,简化了电路结构,在电路实现上减少信号延迟。
为了达到上述目的,本发明通过以下技术方案实现:
一种可循环迭代抗侧信道攻击的DES系统,其特点是,该DES系统包含:
运算单元,获取数据块,并对该数据块进行置换运算、非线性运算函数运算;
多层运算存储单元,多层所述运算存储单元依次连接,每层所述运算存储单元与所述运算单元连接;每层所述运算存储单元包含L数据存储器、R数据存储器及K密钥存储器;
数据寄存单元,分别与最后一层所述运算存储单元、所述运算单元连接;所述数据寄存单元包含LN数据存储器、RN数据存储器;
掩码存储单元,与所述运算单元连接。
优选地,
每层所述运算存储单元的L数据存储器、R数据存储器及K密钥存储器分别与所述运算单元连接;每个所述K密钥存储器内存储密钥数据;
每层所述运算存储单元的R数据存储器与下一层所述运算存储单元的L数据存储器连接,该层L数据存储器与下一层所述运算存储单元的R数据存储器连接;
所述数据寄存单元的LN数据存储器分别与最后一层所述运算存储单元的L数据存储器、所述运算单元连接;该数据寄存单元的RN数据存储器分别与最后一层所述运算存储单元的R数据存储器、所述运算单元连接;
优选地,所述掩码存储单元内存储第一掩码C、第二掩码Cx及经处理的第二掩码Cx’。
优选地,
所述运算单元获取原始数据块,将原始数据块通过初始置换分为第一半块数据、第二半块数据,并将第一半块数据、第二半块数据分别存入第一层所述运算存储单元的R数据寄存器、L数据寄存器;
所述运算单元依次调用每层运算存储单元的R数据寄存器内的数据、对应所述K密钥存储器内的密钥数据、所述掩码存储单元内第一掩码C、第二掩码Cx进行非线性运算函数运算,并将运算结果与该层运算存储单元的L数据寄存器的数据进行异或运算;
所述运算单元最后分别获取所述数据寄存单元的LN数据存储器内数据、RN数据寄存器内数据,并通过逆初始置换形成加密数据块。
一种利用可循环迭代抗侧信道攻击的DES系统实现可重映射SBOX的方法,其特点是,当所述运算单元对每层所述运算存储单元的R数据寄存器内的数据进行非线性运算函数运算时,采用可重映射SBOX的方法,该方法包含如下步骤:
S1,所述运算单元将当前层运算存储单元的R数据寄存器内的数据进行扩展置换;
S2,该运算单元将所述步骤S1中扩展置换后的数据与所述掩码存储单元内的第一掩码C进行异或运算,并将该结果与当前层运算存储单元的K密钥存储器的密钥数据进行异或运算,将该运算结果进行SBOX处理,形成多个SBOX数据块;
S3,所述运算单元将所有所述SBOX数据块与所述第二掩码Cx进行异或运算,并将该运算结果与L数据存储器存储的数据进行异或运算处理;
S4,所述运算单元将所述步骤S3的运算处理结果发送至与L数据存储器连接的下一层运算存储单元的R数据寄存器内。
优选地,所述步骤S3包含如下步骤:
S3.1,所述运算单元将每个所述SBOX数据块与所述第二掩码Cx的异或运算结果进行P置换;
S3.2,所述运算单元将进行P置换的运算结果与所述L数据存储器存储的数据进行异或运算处理。
优选地,该方法还包含步骤S5:
当所述运算单元运算至最后一层运算存储单元时,所述运算单元将最后一层运算存储单元的R数据寄存器内数据发送至数据寄存单元的RN数据寄存器内;
该运算单元同时将进行P置换的运算结果发送至数据寄存单元的LN数据寄存器内。
优选地,每层所述运算存储单元的掩码存储单元内的第一掩码C、第二掩码Cx及SBOX的具体运算关系如下:
newSBOXn[i]=(SBOXn[i]^C)^Cx;
其中,SBOXn[i]为第n个原始SBOX数据块数值,n表示SBOX数据块编号;
newSBOXn[i]为所述运算单元掩码后的第n个新SBOX数据块数值。
优选地,由于所述运算单元对多层所述运算存储单元的R数据寄存器内的数据进行非线性运算函数运算时,都需要在所述步骤S1中,该运算单元对当前层运算存储单元的R数据寄存器内的数据进行扩展置换,在所述步骤S3中,对所有SBOX数据块进行P置换;则该方法另一种操作步骤如下:
A1,所述运算单元将第一层运算存储单元的R数据寄存器内的数据进行扩展置换;并将扩展置换后的数据与所述掩码存储单元内的第一掩码C进行异或运算,并将该结果与当前层运算存储单元的K密钥存储器内的密钥数据进行异或运算,将上述运算结果进行SBOX处理,形成多个SBOX数据块;
A2,所述运算单元将所有所述SBOX数据块与经处理的第二掩码Cx’进行异或运算,并将该运算结果与L数据存储器存储的数据进行异或运算处理;
A3,所述运算单元将上述运算处理结果发送至与该L数据存储器连接的下一层运算存储单元的R数据寄存器内;
A4,所述运算单元将所述步骤A3中R数据寄存器内的数据与当前层运算存储单元的K密钥存储器的密钥数据进行异或运算,将上述运算结果进行SBOX处理,形成多个SBOX数据块;
A5,所述运算单元将所述步骤A4中所有所述SBOX数据块与经处理的第二掩码Cx’进行异或运算,并将结果与该层运算存储单元的L数据存储器存储的数据进行异或运算处理;
所述运算单元判断下一层所述运算存储单元是否为最后一层所述运算存储单元,当是最后一层所述运算存储单元时,执行步骤A6;否则,跳转至所述步骤A3;
A6,所述运算单元将最后一层运算存储单元的R数据寄存器内数据发送至数据寄存单元的RN数据寄存器内;
该运算单元同时将最后一层运算存储单元的R数据寄存器内数据与该层运算存储单元的K密钥存储器的密钥数据进行异或运算,将上述运算结果进行SBOX处理,形成多个SBOX数据块;将每个所述SBOX数据块与经处理的第二掩码Cx’进行异或运算,并将该运算结果进行P置换,并将该置换结果发送至数据寄存单元的LN数据寄存器内。
优选地,所述步骤A2、A5中经处理的Cx’具体算法如下:
Cx’ = Cx ^ invPP(invEP(C));
其中,invEP(C)表示对所述第一掩码C进行扩展运算的逆运算;
invPP表示为P置换的逆运算。
本发明与现有技术相比具有以下优点:
本发明通过设置第一掩码C、第二掩码Cx以及经处理的Cx’,当进行非线性运算函数运算时,能够将传统SBOX功耗与汉明权重的线性相关性重映射为其他相关性类型,能够从原理上弱化传统侧信道攻击的威胁,提高DES的安全性。本发明通过对SBOX的重映射变化,一方面从原理上将了功耗曲线与数据翻转的关系弱化,另一方面通过设计SBOX的相关参数,简化了电路结构,在电路实现上减少信号延迟。
附图说明
图1为本发明一种可循环迭代抗侧信道攻击的DES系统的整体结构示意图。
图2为本发明一种利用可循环迭代抗侧信道攻击的DES系统实现可重映射SBOX的方法中非线性运算函数运算结构示意图之一。
图3为本发明一种利用可循环迭代抗侧信道攻击的DES系统实现可重映射SBOX的方法中非线性运算函数运算结构示意图之二。
图4为本发明一种利用可循环迭代抗侧信道攻击的DES系统实现可重映射SBOX的方法中非线性运算函数运算结构示意图之三。
图5为本发明一种可循环迭代抗侧信道攻击的可重映射的SBOX实现方法的实施例示意图。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
如图1所示,一种可循环迭代抗侧信道攻击的DES系统,该DES系统包含:运算单元、多层运算存储单元、数据寄存单元及掩码存储单元。
其中,多层运算存储单元依次连接,每层运算存储单元均与运算单元连接。数据寄存单元分别与最后一层运算存储单元、运算单元连接;掩码存储单元与运算单元连接。
每层运算存储单元包含L数据存储器、R数据存储器及K密钥存储器;该层运算存储单元的L数据存储器、R数据存储器及K密钥存储器分别与运算单元连接。每层运算存储单元的R数据存储器与下一层运算存储单元的L数据存储器连接,该层L数据存储器与下一层运算存储单元的R数据存储器连接。数据寄存单元包含LN数据存储器、RN数据存储器,数据寄存单元的LN数据存储器分别与最后一层运算存储单元的L数据存储器、运算单元连接;该数据寄存单元的RN数据存储器分别与最后一层运算存储单元的R数据存储器、运算单元连接。
本发明中,每个K密钥存储器内存储密钥数据;掩码存储单元内存储第一掩码C、第二掩码Cx及经处理的第二掩码Cx’。
运算单元用于获取数据块,并对该数据块进行置换运算、非线性运算函数运算。运算单元首先获取原始数据块,将原始数据块通过初始置换分为第一半块数据、第二半块数据,并将第一半块数据、第二半块数据分别存入第一层运算存储单元的R数据寄存器、L数据寄存器。
运算单元将每层运算存储单元的R数据寄存器内的数据发送至与其连接的下一层算存储单元的L数据寄存器内;同时依次调用每层运算存储单元的R数据寄存器内的数据、对应K密钥存储器内的密钥数据、掩码存储单元内第一掩码C、第二掩码Cx进行非线性运算函数(Feistel函数,简称F函数)运算,并将运算结果与该层运算存储单元的L数据寄存器的数据进行异或运算;运算单元将上述运算结果发送至下一层运算存储单元的R数据寄存器中。
运算单元依次控制多层运算存储单元进行上述操作直至最后一层运算存储单元,运算单元控制最后一层运算存储单元的R数据寄存器内数据输入数据寄存单元的RN数据存储器,将最后一层运算存储单元的L数据寄存器内数据输入数据寄存单元的LN数据存储器。
运算单元分别获取数据寄存单元的LN数据存储器内数据、RN数据寄存器内数据,并通过逆初始置换将原始数据块形成加密数据块。
如图1所示,本实施例中,一共有16层运算存储单元,设定第一层运算存储单元的R数据寄存器、L数据寄存器、K密钥存储器分别为R0数据寄存器、L0数据寄存器、K0密钥存储器,以此类推,第m层运算存储单元的R数据寄存器、L数据寄存器、K密钥存储器分别为Rm-1数据寄存器、Lm-1数据寄存器及Km-1密钥存储器,其中m=1,2,……,16。
原始数据块为64位数据,运算单元经过初始置换(Initial Permutation,简称IP,如图1所示)将该原始数据块分为大小分别为32位的第一半块数据、第二半块数据,并将第一半块数据、第二半块数据分别存入R0数据寄存器、L0数据寄存器中。
运算单元控制R0数据寄存器内的第一半块数据发送至第二层运算存储单元的L1数据寄存器内。同时,运算单元控制R0数据寄存器内的第一半块数据与K0密钥存储器内存入的密钥数据进行非线性运算函数运算,并将运算结果与L0数据寄存器内的第二半块数据进行异或运算,并将运算结果发送至第二层运算存储单元的R1数据寄存器内。
运算单元控制第二层运算存储单元、第三层运算存储单元直至第十六层运算存储单元进行上述运算。
如图1所示,当运算单元控制第十六层运算存储单元进行运算时,运算单元将R15数据寄存器内数据发送至数据寄存单元的RN数据存储器中,将第十五层运算存储单元的L14数据寄存器与经过F函数运算的结果进行异或运算结果发送至L15数据寄存器中。
运算单元将R15数据寄存器内数据与L15数据寄存器内数据进行逆初始置换(inverse Initial Permutation,简称invIP)从而将原始数据块形成加密数据块。
本发明中,当运算单元对每层运算存储单元的R数据寄存器内的数据进行非线性运算函数运算时,采用可重映射SBOX的方法,该方法包含如下步骤:
如图2所示为本发明中DES系统进行F函数运算的具体结构。
S1,运算单元将第m层运算存储单元的Rm数据寄存器内的数据进行扩展置换。
本实施例中,由于每层运算存储单元的R数据寄存器或L数据寄存器均存放32位数据。因此运算单元获取Rm数据寄存器内的32位数据后,进行扩展置换(Expansion Permutation,简称EPerm,如图2、图3所示)成为48位数据。
S2,该运算单元将步骤S1中扩展置换后的数据与掩码存储单元内的第一掩码C进行异或运算,并将该结果与第m层运算存储单元的Km密钥存储器的密钥数据进行异或运算,将该运算结果进行SBOX处理,形成多个SBOX数据块。
本实施例中,运算单元对第m层运算存储单元的Rm数据寄存器内的数据进行SBOX处理之前,在SBOX上叠加第一掩码C, SBOX输入数据的汉明权重发生变化,使得SBOX输入与输出数据的关联性被重映射,则SBOX输出是需要另外一个参数第二掩码Cx恢复SBOX输入添加的掩码。
本实施例中,运算单元将48位数据与Km密钥存储器的密钥数据进行混合,随后,将48位数据分成8个6位的SBOX数据块,然后进行处理SBOX。
如图2所示,8个S盒(S1,S2,……S8)的每个都使用以查找表方式提供的非线性的变化,将每个S盒中的6位输入变为4位输出。
S3,运算单元将所有SBOX数据块与第二掩码Cx进行异或运算,并将该运算结果与L数据存储器存储的数据进行异或运算处理。该步骤S3包含如下步骤:
S3.1,运算单元将所有SBOX数据盒与第二掩码Cx的异或运算结果进行P置换。
通过上述步骤,将运算结果从48位数据转化为32位数据。
S3.2,运算单元将进行P置换的运算结果与L数据存储器存储的数据进行异或运算处理。
本发明中,每层运算存储单元的掩码存储单元内的第一掩码C、第二掩码Cx及SBOX的具体运算关系如下:
newSBOXn[i]=(SBOXn[i]^C)^Cx;
其中,SBOXn[i]为第n个原始SBOX数据块数值,n表示SBOX数据块编号;newSBOXn[i]为所述运算单元掩码后的第n个新SBOX数据块数值。
由于一共有8个S盒,因此n=1,2,……,8,i=0,1,=……,63,即每个SBOX数组中的64个元素。
C*、Cx*为相对应的计算每个SBOX需要的C和Cx的值。由于C为48位数据,Cx为32位数据,则每个C*、Cx*的宽度分别为6位、4位。将8个C*、Cx*分别拼接起来,形成掩码存储单元中的第一掩码C、第二掩码Cx。
S4,运算单元将步骤S3的运算处理结果发送至与L数据存储器连接的下一层运算存储单元的R数据寄存器内。
当运算单元运算至最后一层运算存储单元时,该方法还包含步骤S5:
运算单元将最后一层运算存储单元的R数据寄存器内数据发送至数据寄存单元的RN数据寄存器内;该运算单元同时将进行P置换的运算结果发送至数据寄存单元的LN数据寄存器内。
如图3所示,由于运算单元对多层运算存储单元的R数据寄存器内的数据进行非线性运算函数运算时,都需要在步骤S1中,该运算单元对当前层运算存储单元的R数据寄存器内的数据进行扩展置换,在步骤S3中,对所有SBOX数据块进行P置换。因此可以对图3中方框内的步骤进行简化,简化为图4中步骤,该方法另一种操作步骤如下:
A1,运算单元将第一层运算存储单元的R数据寄存器内的数据进行扩展置换;并将扩展置换后的数据与掩码存储单元内的第一掩码C进行异或运算,并将该结果与当前层运算存储单元的K密钥存储器内的密钥数据进行异或运算,将上述运算结果进行SBOX处理,形成多个SBOX数据块。
A2,运算单元将所有SBOX数据块与经处理的第二掩码Cx’进行异或运算,并将该运算结果与L数据存储器存储的数据进行异或运算处理。
本发明中,经处理的Cx’具体算法如下:
Cx’ = Cx ^ invPP(invEP(C));
其中,invEP(C)表示对第一掩码C进行扩展运算的逆运算;invPP表示为P置换的逆运算。
A3,运算单元将上述运算处理结果发送至与该L数据存储器连接的下一层运算存储单元的R数据寄存器内。
A4,运算单元将步骤A3中R数据寄存器内的数据与当前层运算存储单元的K密钥存储器的密钥数据进行异或运算,将上述运算结果进行SBOX处理,形成多个SBOX数据块。
A5,运算单元将步骤A4中所有SBOX数据块与经处理的第二掩码Cx’进行异或运算,并将结果与该层运算存储单元的L数据存储器存储的数据进行异或运算处理。运算单元判断下一层运算存储单元是否为最后一层运算存储单元,当是最后一层运算存储单元时,执行步骤A6;否则,跳转至步骤A3。
A6,运算单元将最后一层运算存储单元的R数据寄存器内数据发送至数据寄存单元的RN数据寄存器内。
该运算单元同时将最后一层运算存储单元的R数据寄存器内数据与该层运算存储单元的K密钥存储器的密钥数据进行异或运算,将上述运算结果进行SBOX处理,形成多个SBOX数据块;将每个SBOX数据块与经处理的第二掩码Cx进行异或运算,并将该运算结果进行P置换,并将该置换结果发送至数据寄存单元的LN数据寄存器内。
如图5所示,原始数据由二进制000000b(十进制0)到二进制111111b(十进制63),经过掩码C=010101b后,数据汉明权重的重新分布。原始数据在000000b(十进制0)到001111b(十进制15)区间的汉明权重曲线与110000b(十进制48)到111111b(十进制63)区间的汉明权重曲线有显著的线性相关,即显著的功耗相关,这也就是差分功耗攻击(Differential Power Analysis,简称DPA)的着重攻击点。而通过映射,经过本发明方法的掩码曲线在相同横轴数值区间是完全相同的变化趋势,使得功耗攻击无法区分,也就无法轻易攻击。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
机译: 使用第一起重系统远程控制方面的方法期望第二起重系统远程系统; _在具有转向装置的钻孔中测量s的起重方法的方法在第一系统和第二起重系统中,举升系统提升s的系统; Chin s进行起重的测量操作带有偏差的穿孔孔和用于实现提升孔的测量的系统,该系统使用第一子系统和第二提升装置来实现带有偏差的孔的测量操作Su Bsistema提升孔
机译: 使用三重DES密钥加密/解密共享文件和ECC公钥/私密密钥对传输三重DES密钥来加密传输和存储的共享文档的方法和系统
机译: 使用三重DES密钥加密/解密共享文件和ECC公钥/私密密钥对传输三重DES密钥来加密传输和存储的共享文档的方法和系统