首页> 中国专利> 抵抗差分功耗分析攻击的数据处理系统及其数据处理方法

抵抗差分功耗分析攻击的数据处理系统及其数据处理方法

摘要

本发明涉及通讯技术领域,特别涉及一种抵抗差分功耗分析攻击的数据处理系统及其数据处理方法。该数据处理系统包括:第一基于加法掩码仿射变换模块,用于对输入的掩码数据和掩码进行仿射变换运算,并输出第一数据和第二数据;基于加法掩码的有限域求逆模块,用于对第一数据和第二数据进行有限域求逆运算,并输出第三数据;第二基于加法掩码仿射变换模块,用于对第二数据和第三数据进行仿射变换运算,并输出第四数据和第五数据。本发明S盒的运算系统通过代数逻辑实现了S盒的运算,使得S盒的面积减小、功耗降低,减小了用户的实现代价。

著录项

  • 公开/公告号CN103888247A

    专利类型发明专利

  • 公开/公告日2014-06-25

    原文格式PDF

  • 申请/专利权人 深圳华视微电子有限公司;

    申请/专利号CN201410086766.6

  • 发明设计人 孙金龙;曾广旺;

    申请日2014-03-10

  • 分类号H04L9/06(20060101);

  • 代理机构深圳市瑞方达知识产权事务所(普通合伙);

  • 代理人张约宗;张秋红

  • 地址 518000 广东省深圳市福田区梅华路深华科技工业园1栋4层东A

  • 入库时间 2023-12-17 00:15:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-22

    授权

    授权

  • 2014-07-16

    实质审查的生效 IPC(主分类):H04L9/06 申请日:20140310

    实质审查的生效

  • 2014-06-25

    公开

    公开

说明书

技术领域

本发明涉及通讯技术领域,更具体地说,涉及一种抵抗差分功耗分析攻击的数据处理系统及其数据处理方法。

背景技术

随着网络技术的进步,电子商务、电子政务、网上银行等业务得到广泛开展,智能卡具有良好的安全特性,同时具有便于携带、使用方便等特点,这使得它在金融、社保、交通等领域扮演着非常重要角色。但由于网络的开放性,这些新兴业务更容易受到攻击。随着研究的不断深入,针对智能卡的侧信道攻击被认为是最危险的一种攻击方法。侧信道攻击可以利用智能卡的电力消耗、执行时间、故障时的输出与输入行为、辐射、电力尖峰情形等信息来攻击智能卡,最终得到用户的密钥。在各种各样的侧信道攻击中,差分功耗分析攻击是最有效的攻击方法之一。由于智能卡芯片在执行不同的指令进行各种运算时,它的功耗也会有相应的变化,差分功耗分析攻击根据数据和功耗之间的关联性,还原出密钥,进而达到攻击的效果。差分功耗分析攻击对智能卡中的加密算法的成功攻击已经被广泛报道。

国家商用密码管理局在2006年1月公布了用于无线局域网产品的分组对称密码算法SMS4算法。该算法采用非平衡的Feistel结构,具有较强的抵抗差分攻击的能力,安全强度达到国际分组密码算法标准。这是国内官方公布的第一个商用密码算法。在2012年3月,国家商用密码管理局批准SMS4算法为商用密码行业标准,命名为SM4算法。在SM4算法中,S盒是唯一的非线性部件,并且存在于密钥扩展运算和加解密运算中的每一轮运算中,因此S盒的实现不仅决定这SM4算法的性能,还决定了SM4算法的硬件是否能够抵抗差分功耗分析攻击。

现有的SM4算法中S盒的输入和输出都是8比特的数据,一般都是采用查表方法来实现。这种实现方法由于输入数据太多,实现代价很大,并且很难抵抗差分功耗分析攻击。

发明内容

本发明要解决的技术问题在于,提供一种改进的抵抗差分功耗分析攻击的数据处理系统及其数据处理方法。

本发明解决其技术问题所采用的技术方案是:构造一种抵抗差分功耗分析攻击的数据处理系统,其中包括采用SM4算法的S盒,所述S盒包括:

第一基于加法掩码仿射变换模块,用于对输入的掩码数据和掩码进行仿射变换运算,并输出第一数据和第二数据;

基于加法掩码的有限域求逆模块,用于对所述第一基于加法掩码仿射变换模块输出的第一数据和第二数据进行有限域求逆运算,并输出第三数据;

第二基于加法掩码仿射变换模块,用于对所述第一基于加法掩码仿射变换模块输出的第二数据和所述基于加法掩码的有限域求逆模块输出的第三数据进行仿射变换运算,并输出第四数据和第五数据。

上述抵抗差分功耗分析攻击的数据处理系统中,所述第一基于加法掩码仿射变换模块包括:

第一向量乘法模块,用于对输入的掩码数据进行向量乘法运算;

第二向量乘法模块,用于对输入的掩码进行向量乘法运算,以输出第二数据;

第一异或运算模块,连接于所述第一向量乘法模块,并用于根据所述第一向量乘法模块输出的计算结果与输入的常数进行异或运算,以输出第一数据。

上述抵抗差分功耗分析攻击的数据处理系统中,所述第一向量乘法模块的数学模型为:a1*A1

所述第二向量乘法模块的数学模型为:r1*A1

所述第一异或运算模块的数学模型为:a1*A1+C1

其中,a1和r1依次为输入的掩码数据和掩码;

>A1=1110010111110010011110011011110001011110001011111001011111001011>,常数C1=(1,1,0,0,1,0,1,1)。

上述抵抗差分功耗分析攻击的数据处理系统中,所述基于加法掩码的有限域求逆模块包括:

第一同构映射模块,用于对所述第一数据进行同构映射;

第二同构映射模块,用于对所述第二数据进行同构映射;

第三同构映射模块,用于根据所述第一同构映射模块输出的运算结果进行同构映射;

第四同构映射模块,用于根据所述第一同构映射模块输出的运算结果进行同构映射;

第五同构映射模块,用于根据所述第二同构映射模块输出的运算结果进行同构映射;

第六同构映射模块,用于根据所述第二同构映射模块输出的运算结果进行同构映射;

第一常量乘法运算模块,用于对所述第三同构映射模块输出的运算结果进行常量乘法运算;

第一平方运算模块,用于根据所述第三同构映射模块输出的运算结果进行平方运算;

第二平方运算模块,用于根据所述第六同构映射模块输出的运算结果进行平方运算;

第三平方运算模块,用于根据所述第一平方运算模块输出的运算结果进行平方运算;

第四平方运算模块,用于根据所述第五同构映射模块输出的运算结果进行平方运算;

第一乘法运算模块,用于根据所述第三同构映射模块和所述第四同构映射模块输出的运算结果进行乘法运算;

第二乘法运算模块,用于根据所述第五同构映射模块输出的运算结果进行乘法运算;

第三乘法运算模块,用于根据所述第四同构映射模块和第六同构映射模块输出的运算结果进行乘法运算;

第四乘法运算模块,用于根据所述第五同构映射模块和第六同构映射模块输出的运算结果进行乘法运算;

第二常量乘法运算模块,用于根据所述第二平方运算模块输出的运算结果进行乘法运算;

第二异或运算模块,用于根据所述第一乘法运算模块、第二乘法运算模块、第三乘法运算模块、第四乘法运算模块、第二常量乘法运算模块、第一常量乘法运算模块、第三平方运算模块以及第四平方运算模块输出的运算结果进行异或运算;

求逆运算模块,用于根据所述第二异或运算模块输出的运算结果进行求逆运算;

第三异或运算模块,用于根据所述求逆运算模块和第四同构映射模块输出的运算结果进行异或运算;

第四异或运算模块,用于根据所述第一平方运算模块和所述第三异或运算模块输出的运算结果进行异或运算;

第六乘法运算模块,用于根据所述第一平方运算模块和所述第三异或运算模块输出的运算结果进行乘法运算;

第七乘法运算模块,用于根据所述第二同构映射模块和所述第三异或运算模块输出的运算结果进行乘法运算;

第八乘法运算模块,用于根据所述第四同构映射模块和所述第四异或运算模块输出的运算结果进行乘法运算;

第九乘法运算模块,用于根据所述第四异或运算模块和所述第六乘法运算模块输出的运算结果进行乘法运算;

第五异或运算模块,用于根据所述第一乘法运算模块、第三乘法运算模块、所述第六乘法运算模块、第七乘法运算模块以及所述第一平方运算模块输出的运算结果进行异或运算;

第六异或运算模块,用于根据所述第二乘法运算模块、所述第八乘法运算模块、第九乘法运算模块、所述第三异或运算模块、所述第四异或运算模块以及所述第五异或运算模块输出的运算结果进行异或运算;

第一同构逆映射模块,用于根据所述第六异或运算模块输出的运算结果进行同构逆映射运算;

第二同构逆映射模块,用于根据所述第五异或运算模块输出的运算结果进行同构逆映射运算;

第三同构逆映射模块,用于根据所述第一同构逆映射模块和所述第二同构逆映射模块输出的运算结果进行同构逆映射运算以输出第三数据。

上述抵抗差分功耗分析攻击的数据处理系统中,所述基于加法掩码的有限域求逆模块的数学模型为:

>d=ah2v+ahal+al2+ahrl+alrh+rh2v+rl2+rhrl,>

oh=ah(d-1+rl)+(d-1+rl)rh+ahrl+rhrl+rh

以及ol=oh+(d-1+rh)al+(d-1+rh)rh+alrh+rl+rhrl+rh

其中,ah为第一数据为a的高4比特,al为第一数据a的低4比特,rh为第二数据r的高4比特,rl为第二数据r的低4比特,v为常数;d-1为中间数据d的逆元素;ol和oh所述基于加法掩码的有限域求逆模块(2)中的中间数据。

上述抵抗差分功耗分析攻击的数据处理系统中,所述第二基于加法掩码仿射变换模块包括:

第三向量乘法模块,用于对输入的第三数据进行向量乘法运算;

第四向量乘法模块,用于对输入的第二数据进行向量乘法运算,以输出第五数据;

第七异或运算模块,连接于所述第三向量乘法模块,并用于根据所述第三向量乘法模块输出的运算结果与输入的常数进行异或运算,以输出第四数据。

上述抵抗差分功耗分析攻击的数据处理系统中,所述第三向量乘法模块的数学模型为:a2*A1

所述第四向量乘法模块的数学模型为:r2*A1

所述第七异或运算模块的数学模型为:a2*A1+C1

其中,a2和r2依次为第三数据和第二数据;

>A1=1110010111110010011110011011110001011110001011111001011111001011>,常数C1=(1,1,0,0,1,0,1,1)。

本发明还构造了一种抵抗差分功耗分析攻击的数据处理方法,其采用SM4算法进行数据处理,所述数据处理方法包括以下步骤:

A、对输入的掩码数据和掩码进行仿射变换运算,并输出第一数据和第二数据;

B、对步骤A运算得到的所述第一数据和所述第二数据进行有限域求逆运算,并输出第三数据;

C、对步骤B运算得到的所述第二数据和所述第三数据进行仿射变换运算,并输出第四数据和第五数据。

优选地,上述抵抗差分功耗分析攻击的数据处理方法中,所述步骤B包括:

B1、通过所述第一数据和所述第二数据计算等式:;其中,ah为第一数据a的高4比特,al为第一数据为a的低4比特,rh为第二数据r的高4比特,rl为第二数据r的低4比特,v为常数;

B2、对步骤B1的运算结果d进行求逆运算,得到d的逆元素d-1

B3、通过ah、al、rh、rl、d-1计算等式:oh=ah(d-1+rl)+(d-1+rl)rh+ahrl+rhrl+rh和ol=oh+(d-1+rh)al+(d-1+rh)rh+alrh+rl+rhrl+rh

B4、对步骤B3的运算结果ol和oh进行同构逆映射运算,以输出第三数据。

优选地,上述抵抗差分功耗分析攻击的数据处理方法中,所述仿射变换运算包括:

对输入的数据分别进行向量乘法运算;

若输入的数据为掩码,则输出向量乘法运算的结果;若输入的数据为掩码数据,则对向量乘法运算的结果与外部输入常数进行异或运算,并输出异或运算的结果。

本发明的有益效果是:由于本发明的数据处理系统利用基于加法掩码的有限域求逆运算模块和第一基于加法掩码的仿射变换模块、第二基于加法掩码的仿射变换模块相互配合以实现S盒的运算,使得该S盒的面积减小、功耗降低,减小了用户的实现代价。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明优选实施例中数据处理系统的结构原理图;

图2是本发明优选实施例中数据处理系统中第一基于加法掩码仿射变换模块的结构原理图;

图3是本发明优选实施例中数据处理系统中基于加法掩码的有限域求逆模块的结构原理图;

图4是本发明优选实施例中数据处理系统中第二基于加法掩码仿射变换模块的结构原理图。

图5是本发明数据处理方法的流程示意图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。

图1示出了本发明一个优选实施例中的抵抗差分功耗分析攻击的数据处理系统,其中包括采用SM4算法的S盒。该S盒系统包括第一基于加法掩码仿射变换模块1、基于加法掩码的有限域求逆模块2和第二基于加法掩码的仿射变换模块3。其中:第一基于加法掩码仿射变换模块1用于对输入的掩码数据和掩码进行仿射变换运算,并输出第一数据和第二数据,其中,掩码数据是真正的数据和掩码进行异或以后的结果;掩码是外部输入的随机数,将掩码数据和掩码进行仿射变换运算,可以使真正的数据是在掩码的保护下进行运算的,可以抵抗侧信道攻击。基于加法掩码的有限域求逆模块2用于对第一基于加法掩码仿射变换模块1输出的第一数据和第二数据进行有限域求逆运算,并输出第三数据。第二基于加法掩码仿射变换模块3用于对所述第一基于加法掩码仿射变换模块1输出的第二数据和所述基于加法掩码的有限域求逆模块2输出的第三数据进行仿射变换运算,并输出第四数据和第五数据。

如图2所示,第一基于加法掩码仿射变换模块1包括第一向量乘法模块11、第二向量乘法模块12和第一异或运算模块13。在具体实施例中,设输入的掩码数据为a1,掩码为r1

第一向量乘法模块11用于对输入的掩码数据a1进行向量乘法运算。第一向量乘法模块11的数学模型为:a1*A1。第二向量乘法模块12用于对输入的掩码r1进行向量乘法运算,以输出第二数据。第二向量乘法模块12的数学模型为:r1*A1。第一异或运算模块13连接于第一向量乘法模块11,并用于根据第一向量乘法模块11输出的计算结果与输入的常数进行异或运算,以输出第一数据。第一异或运算模块13的数学模型为:a1*A1+C1。其中,>A1=1110010111110010011110011011110001011110001011111001011111001011,>常数C1=(1,1,0,0,1,0,1,1)。

如图1所示,基于加法掩码的有限域求逆模块2与第一基于加法掩码仿射变换模块1和第二基于加法掩码仿射变换模块3相连,用于对第一数据和第二数据在有限域GF(28)上进行基于加法掩码的求逆运算,以向第二基于加法掩码仿射变换模块3输出第三数据。其中,有限域GF(28)是由不可约多项式x8+x7+x6+x5+x4+x3+x2+1生成的有限域。设第一基于加法掩码仿射变换模块1输出的第一数据为a1,第二数据为r1;设a的高4比特和低4比特分别为ah和al,设r的高4比特和低4比特分别为rh和rl;其中高4比特和低4比特分别表示GF(24)里面的一个元素。

如图3所示,基于加法掩码的有限域求逆模块2包括:第一同构映射模块201,用于对第一数据进行同构映射。第一同构映射模块201将GF(28)上的元素a映射为GF((24)2)上的元素。其中有限域GF(24)是由不可约多项式x4+x+1生成的有限域。

第二同构映射模块202,用于对所述第二数据进行同构映射。第二同构映射模块202把GF(28)上的元素r映射为GF((24)2)上的元素。

第三同构映射模块203用于根据所述第一同构映射模块201输出的运算结果进行同构映射。第四同构映射模块204用于根据第一同构映射模块201输出的运算结果进行同构映射。第三同构映射模块203和第四同构映射模块204把第一同构映射模块201的输出结果映射为GF(((22)2)2)上的元素。

第五同构映射模块205用于根据第二同构映射模块202输出的运算结果进行同构映射。第六同构映射模块206用于根据第二同构映射模块202输出的运算结果进行同构映射。第五同构映射模块205和第六同构映射模块206把第二同构映射模块202的输出结果映射为GF(((22)2)2)上的元素,其中GF(22)是由不可约多项式x2+x+1生成的有限域。

第一常量乘法运算模块212,用于对第三同构映射模块203输出的运算结果进行常量乘法运算。

第一平方运算模块208,用于根据第三同构映射模块203输出的运算结果进行平方运算。

第二平方运算模块209,用于根据第六同构映射模块206输出的运算结果进行平方运算。第三平方运算模块211,用于根据第一平方运算模块208输出的运算结果进行平方运算。第四平方运算模块215,用于根据第五同构映射模块205输出的运算结果进行平方运算。

第一乘法运算模块210,用于根据第三同构映射模块203和第四同构映射模块204输出的运算结果进行乘法运算。第二乘法运算模块213,用于根据第五同构映射模块205输出的运算结果进行乘法运算。第三乘法运算模块214,用于根据第四同构映射模块204和第六同构映射模块206输出的运算结果进行乘法运算。第四乘法运算模块216,用于根据第五同构映射模块205和第六同构映射模块206输出的运算结果进行乘法运算。第二常量乘法运算模块217,用于根据第二平方运算模块209输出的运算结果进行乘法运算。

第二异或运算模块218,用于根据第一乘法运算模块210、第二乘法运算模块213、第三乘法运算模块214、第四乘法运算模块216、第二常量乘法运算模块217、第一常量乘法运算模块212、第三平方运算模块211以及第四平方运算模块215输出的运算结果进行异或运算。

第一平方运算模块208、第二平方运算模块209、第一乘法运算模块210、第三平方运算模块211、第一常量乘法运算模块212、第二乘法运算模块213、第三乘法运算模块214、第四平方运算模块215、第四乘法运算模块216、第二常量乘法运算模块217和第二异或运算模块218联合计算等式>d=ah2v+ahal+al2+ahrl+alrh+rh2v+rl2+rhrl.>

求逆运算模块219,用于根据第二异或运算模块218输出的运算结果进行求逆运算。求逆运算模块219用于计算GF(24)中的元素d的逆元d-1

第三异或运算模块220,用于根据求逆运算模块219和第四同构映射模块204输出的运算结果进行异或运算。第四异或运算模块221,用于根据第一平方运算模块208和第三异或运算模块220输出的运算结果进行异或运算。

第六乘法运算模块222,用于根据第一平方运算模块208和第三异或运算模块220输出的运算结果进行乘法运算。第七乘法运算模块223,用于根据第二同构映射模块202和第三异或运算模块220输出的运算结果进行乘法运算。第八乘法运算模块224,用于根据第四同构映射模块204和第四异或运算模块221输出的运算结果进行乘法运算。第九乘法运算模块225,用于根据第四异或运算模块221和第六乘法运算模块222输出的运算结果进行乘法运算。

第五异或运算模块226,用于根据第一乘法运算模块210、第三乘法运算模块214、第六乘法运算模块222、第七乘法运算模块223以及第一平方运算模块208输出的运算结果进行异或运算。第六异或运算模块227,用于根据第二乘法运算模块213、第八乘法运算模块224、第九乘法运算模块225、第三异或运算模块220、第四异或运算模块221以及第五异或运算模块226输出的运算结果进行异或运算。

第三异或运算模块220、第四异或运算模块221、第六乘法运算模块222、第七乘法运算模块223、第八乘法运算模块224、第九乘法运算模块225、第五异或运算模块226和第六异或运算模块联合227计算oh=ah(d-1+rl)+(d-1+rl)rh+ahrl+rhrl+rh和ol=oh+(d-1+rh)al+(d-1+rh)rh+alrh+rl+rhrl+rh

第一同构逆映射模块228,用于根据第六异或运算模块227输出的运算结果进行同构逆映射运算。第二同构逆映射模块229,用于根据第五异或运算模块226输出的运算结果进行同构逆映射运算。第三同构逆映射模块230,用于根据第一同构逆映射模块228和第二同构逆映射模块229输出的运算结果进行同构逆映射运算以输出第三数据。第一同构逆映射模块228和第二同构逆映射模块229把oh和ol分别映射为GF((24)2)上的元素;第三同构逆映射模块230把第一同构逆映射模块228和第二同构逆映射模块229输出的运算结果映射到GF(28)上的元素。

基于加法掩码的有限域求逆模块2的数学模型为:oh=ah(d-1+rl)+(d-1+rl)rh+ahrl+rhrl+rh,以及ol=oh+(d-1+rh)al+(d-1+rh)rh+alrh+rl+rhrl+rh;其中,ah为第一数据为a的高4比特,al为第一数据a的低4比特,rh为第二数据r的高4比特,rl为第二数据r的低4比特,v为常数;d-1为中间数据d的逆元素;ol和oh为所述基于加法掩码的有限域求逆模块2中的中间数据。

如图4所示,第二基于加法掩码仿射变换模块3包括第三向量乘法模块31、第四向量乘法模块32和第七异或运算模块33。第三向量乘法模块31,用于对输入的第三数据进行向量乘法运算。第四向量乘法模块32,用于对输入的第二数据进行向量乘法运算,以输出第五数据。第七异或运算模块33,连接于所述第三向量乘法模块31,并用于根据所述第三向量乘法模块31输出的运算结果与输入的常数进行异或运算,以输出第四数据。

第三向量乘法模块31的数学模型为:a2*A1。第四向量乘法模块32的数学模型为:r2*A1。第七异或运算模块33的数学模型为:a2*A1+C1。其中,a2和r2依次为第三数据和第二数据。

本发明还构造了一种抵抗差分功耗分析攻击的数据处理方法,其采用SM4算法进行数据处理,如图5所示,该数据处理方法包括以下步骤:

A、对输入的掩码数据和掩码进行仿射变换运算,并输出第一数据和第二数据;

B、对步骤A运算得到的第一数据和第二数据进行有限域求逆运算,并输出第三数据;

C、对步骤A运算得到的第二数据和步骤B运算得到的第三数据进行仿射变换运算,并输出第四数据和第五数据。

在步骤B中,还包括:

B1、通过所述第一数据和所述第二数据计算等式:其中,ah为第一数据a的高4比特,al为第一数据为a的低4比特,rh为第二数据r的高4比特,rl为第二数据r的低4比特,v为常数;

B2、对步骤B1的运算结果d进行求逆运算,得到d的逆元素d-1

B3、通过ah、al、rh、rl、d-1计算等式:oh=ah(d-1+rl)+(d-1+rl)rh+ahrl+rhrl+rh和ol=oh+(d-1+rh)al+(d-1+rh)rh+alrh+rl+rhrl+rh

B4、对步骤B3的运算结果ol和oh进行同构逆映射运算,以输出第三数据,该第三数据的输出结果是一个GF(24)中的元素。

>0011000010100100100110001011000001011010100100100101100001010001(oh,ol)>

步骤A与步骤C中的仿射变换运算包括:对输入的数据分别进行向量乘法运算;若输入的数据为掩码,则输出向量乘法运算的结果;若输入的数据为掩码数据,则对向量乘法运算的结果与外部输入常数进行异或运算,并输出异或运算的结果。

以上所述仅为本发明的优选实施例,并不用以限制本发明,凡在本发明的精神和原则内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号