伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备技术

技术编号:3516272 阅读:271 留言:0更新日期:2012-04-11 18:40
在伽罗瓦域中执行乘法的方法和设备。在伽罗瓦域(GF)中执行乘法的方法,用于通过在GF(2↑[n])中对被掩蔽数据和掩模执行转换而防止信息泄漏攻击,该方法包括:接收若干第一和第二被掩蔽输入数据、若干第一和第二输入掩模和一个输出掩模;通过在GF(2↑[n])中执行所述若干被掩蔽输入数据和所述若干输入掩模的乘法,计算若干中间值;并且通过执行这些中间值和输出掩模的异或运算,计算最终的被掩蔽输出值。

【技术实现步骤摘要】

本专利技术涉及在例如一个智能卡的微电子组件中的密码安全处理,更具体的说,涉及在高级加密标准的执行中采用微分功率(differential power)分析攻击时的密码安全侵犯的防止。
技术介绍
微分功率分析(DPA)是非常强的攻击技术,它采用了通过由使用密钥来处理数据的设备的功率消耗所泄漏的信息。然而,攻击者也能够使用一个称为“边通道”的辅助泄漏通道,例如电磁辐射、错误输出、时间等等。密钥块密码对于所有外围功能使用一个密钥执行计算。当使用一个密钥执行访问时,攻击者可以使用另外一个边通道,并且获取关于该密钥的信息。随后,攻击者采用一种数字处理和统计的方法就能够发现所泄漏的信息和实际密钥值之间的相互关系。对称块密码广泛地用于密码块中,例如一个智能卡中。对称块密码采用固定数量的输入比特而工作,这些比特被加密/解密为固定数量的输出比特。采用一种称为“循环函数(round function)”的简单的函数建立加密/解密功能。按照一定的次数来反复使用循环函数,就能够获得加密算法的安全性。这种密码也称为“迭代块密码”。可以知道rijndael算法是迭代块密码算法的一个常见例子。rijndael算法被建立作为高级加密标准(AES),用于对通过网络传输的或者存储在计算机的智能卡和存储设备中的文件和数据信息进行加密。根据AES算法,rijndael算法通过使用128比特、192比特和256比特的加密密钥来处理128比特的数据块而执行对称块加密,并且输出128比特的加密数据。尽管所述数据块可能有128比特之外的比特数量,但是AES标准采用了128比特。图1中的视图描述了在一个普通AES rijndael算法中的输入数据的结构、转换输入数据的状态队列的结构和加密或者解密后的输出数据的结构。参看图1,输入数据101、状态数据102和输出数据103的128比特块有一个由四个32比特列组成的矩阵结构。对输入数据101进行加密或者解密以生成输出数据103。对输入数据执行一个加密处理或者解密处理的相应运算所生成的数据为状态数据102。通常,AES rijndael算法重复执行一系列处理,每一次处理称为一个“循环”。图2A和2B是描述在普通rijndael算法中的一个循环的流程图。参看图2A,对输入状态数据执行由若干运算组成的处理,该处理称为一个AES循环。通过一个rijndael字节置换运算S201、一个行移位运算S203、一个混合列S205和一个循环密钥加法S207执行输入状态数据的一个AES循环。在字节置换运算S201中,采用一个称为“S-box”的置换表,对数据的各个字节独立地执行一个非线性字节置换运算。通过执行在有限域GF(28)中的乘法和GF(28)中的仿射变换的逆运算构建该“S-box”。在行移位运算S203中,不改变除状态数据102的第一列之外的三列中各个字节的值,而是仅仅改变它们的位置。在混合列运算S205中,将状态数据102的各列看作GF(28)中一个拥有四个项的多项式中的各个项的系数,然后将其转换为一个多项式中的四个项的系数,所述系数对应于由一个预先设定的多项式“a(x)={03}x3+{01}x2+{01}x+{02}”与该多项式相乘,然后除以“x4+1”所获得的余数。在循环密钥加法S207中,通过按比特为单位来执行一个XOR操作,将一个循环密钥加在状态数据102上。AES rijndael算法中一个循环的各个步骤的详细运算过程是在现有技术中公知的,因此省略其详细的解释。同时,在图2B中,叙述了另外一种AES循环。参看图2B,该AES循环包括一个行移位运算S211、一个字节置换运算S213、一个混合列运算S215和一个循环密钥加法S217。在图2B中的AES循环与图2A中的AES循环相同,除了行移位运算S211和字节置换运算S213的顺序颠倒了。与图2A中的AES循环相比,即使是按照颠倒的顺序执行移位运算S211和字节置换运算S213,通过图2B中的AES循环也可以获得相同的结果。根据AES算法,通过按照指定的次数来反复执行AES循环,对数据进行加密。根据加密密钥的长度确定AES循环的次数Nr。对于128比特、192比特和256比特的加密密钥,分别有“Nr=10”、“Nr=12”和“Nr=14”。在最后的AES循环中,在通过按照指定的次数来反复执行AES循环后,依序执行或者按照颠倒的顺序执行行移位步骤和字节置换运算步骤,然后不执行混合列步骤而直接执行循环密钥加法步骤,从而生成如图1所示的输出数据103。同时,根据AES rijndael算法的一个解密处理对应于上述根据AESrijndael算法的加密处理的逆处理。因此,通过一个rijndael字节置换逆运算步骤、一个行移位逆运算、一个列混合逆运算步骤和循环密钥加法运算S207,对输入数据进行解密。根据另外一个AES运算的解密处理类似于上述AES运算的解密处理,因此省略详细的叙述。到目前为止,提出了很多用于执行AES rijndael算法的设备。它们中一个设备拥有一种结构,其中,一个处理模块反复执行所有的AES循环。因此,由于在执行了“Nr”次循环时通过该数据处理模块对一个数据执行“Nr”次运算,因此执行所有循环所需要的时间就是执行一次循环的“Nr”倍。有很多方法和设备用于防止针对AES的信息泄露攻击。这些方法和设备包括一个特定寄存器备份充电,实际数据和随机数据的交叉处理和数据掩模(masking)技术。能够防止信息泄露攻击的最重要的技术是数据掩模技术。该技术采用XOR运算等,用一个不可预知的掩模将数据掩蔽。在该情况下,必要的计算被包含在被掩蔽(masked)的数据中。为了获得最终数据,被掩蔽的计算的结果应该是“未被掩蔽的”。为此,应该用一种特定的方法来处理用于掩蔽输入数据的掩模。这种掩模处理方法称为一个“掩模校正”。如果假设AES加密块被集成在一个资源受限的环境中,例如一个智能卡中,一个加密/解密电路所需要的功能是在电路维持在小规模的情况下,保证一个特定级别的处理速度。一个AES循环函数包括线性部分和非线性部分。线性部分的掩模校正是直接执行的,但是非线性部分的被掩蔽数据处理和掩模校正,即在非线性部分的字节置换,需要进行一个特殊计算。用于字节置换的被掩蔽计算的传统技术涉及掩模乘法运算、AND运算掩蔽、表查询等等。影响电路规模的一个主要部分是字节置换运算部分。如果在相同的电路执行字节置换运算和字节置换逆运算,则电路的尺寸几乎要翻倍。用于字节置换运算和字节置换逆运算的通常设备采用在GF(28)中的运算,并且包括字节置换、字节置换逆运算和从一个查询表中直接逻辑合成。然而,传统的字节置换运算和字节置换逆运算设备的电路规模并不适合资源受限的环境。可以知道,字节置换运算和字节置换逆运算需要大规模电路。为掩蔽数据的字节置换运算生成特殊的交叉器(crossbar)和多路复用器的一个解决方法导致电路规模变得巨大。为了在硬件的掩模字节置换中执行逆运算,需要将数据从域GF(28)转换到相反域GF((24)2)中,并执行相反域的计算。这种技术使得有可能降低用于字节置换的门的数量。在计算相反域的字节置换中最重要的工作之一是相反域的操作数的逆(inversion)运算。执行逆本文档来自技高网...

【技术保护点】
一种用于伽罗瓦域(GF)中的乘法运算的方法,用于通过在GF(2↑[n])中执行被掩蔽数据和掩模的转换来防止信息泄漏攻击,该方法包括:接收若干第一和第二被掩蔽输入数据、若干第一和第二输入掩模和一个输出掩模;通过在GF(2↑[n ])中对所述若干被掩蔽输入数据和所述若干输入掩模执行乘法,计算若干中间值;通过对所述中间值和输出掩模执行异或运算,计算最终的被掩蔽输出值。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:蒂默尔科基什科伊莱娜特里奇娜李炅熙
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:KR[韩国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1