信息处理装置、程序、及记录介质的制作方法_2

文档序号:9794114阅读:来源:国知局
,“Nb”是设定有表示加密及解密的数据的块长度的值的变量。另外,在AES方案中,“Nb”为4,表示128位。以下,“Nb”是表示同样内容的变量。
[0064]在第一源代码2中,“Nr”是设定有表示轮(round)数的值的变量。另外,在AES方案中,“Nr”与密钥数据的长度对应,“Nr”的值为以10表示128位、以12表示192位、或以14表示256位的任意一者。以下,“ Nr”是表示同样内容的变量。
[0065]在第一源代码2中,“Rcon”是当变量“i”为“Nk”的倍数时,对在运算中所使用的4字节的轮数进行计算的函数。另外,在“Rcon”中所计算的值得高位I字节例如由以下(I)式所示。以下,“Rcon”是表示同样内容的函数。
[0066][数I]
[0067]2i/NkEGF(28)、其他为 O (公式 I)
[0068]<扩展密钥数据的生成处理例>
[0069]图3A、图3B及图3C是对本发明的一个实施方式中的生成扩展密钥数据的处理的一个例子进行说明的图。具体来说,图3A是对本发明的一个实施方式中的生成扩展密钥数据的处理的一个例子进行说明的源代码。另一方面,图3B是对图3A所示的源代码所进行处理进行了模式化的说明图。再有,图3C是对本发明的一个实施方式中的生成扩展密钥数据的处理的另一个例子进行了模式化的说明图。
[0070]与图2A所示的第一源代码2同样,第二源代码3对生成扩展密钥数据的处理进行实现。[0071 ]在第三处理31中,图1所示的嵌入式系统I对输入到“temp” 21中的4字节数据按每I字节分别进行处理。另外,第三处理31是按每I字节分别生成扩展密钥数据的处理。再有,如图所示,对于生成扩展密钥数据的处理,其进行利用“SubBytes”函数所进行的处理及利用“Rcon”函数所进行的处理等,来代替图2A所示的利用“RotWord”函数所进行的处理及利用“SubWord”函数所进行的处理。
[0072]另外,扩展密钥数据的生成处理可以通过图3C所示的方法等来实现。需要说明的是,在图3C中,扩展密钥数据的生成处理使用I字节的数组“r”32,来代替图3B所示的4字节的数组V’。再有,由于在数组“r” 32中所输入的数据为I字节,因此第三处理31按每I字节来针对数组“r” 32分别进行。
[0073]通过对4字节的数据按每I字节分别进行生成扩展密钥数据的处理,使得嵌入式系统I能够对输入数据以I字节的单位分别进行处理。另外,由于有时在4字节的数据中包含不需要的数据,因此通过使嵌入式系统I按每I字节进行处理,使得嵌入式系统I中对不需要的数据进行处理的情况减少,并能够提高处理速度。
[0074]另外,在图3C中,由于嵌入式系统I能够利用各个条件将对数组“r”32进行访问的代码通用化,因此源代码的记载量减少,嵌入式系统I能够降低程序的数据容量。
[0075]<比较例的加密及解密的整体处理例>
[0076]图4A、图4B及图4C是对比较例中的加密及解密的处理的一个例子进行说明的图。另外,图4A、图4B及图4C引用FIPS197(美国国立标准技术研究所,2001年公布)。具体来说,图4A是对比较例中的加密的处理的一个例子进行说明的源代码。
[0077]第四源代码4A实现对输入数据4A1进行加密、将其变为输出数据4A2的处理。另外,加密的处理以一轮、也即图4A中的每一轮的加密处理42的单位来分别进行。
[0078]图4B是对比较例中的解密的处理的一个例子进行说明的源代码。
[0079]第五源代码4B实现对输入数据4B1进行进行解密、将其变为输出数据4B2的处理。另外,加密的处理以一轮、也即图4B中的一轮之中每4字节的解密处理43的单位来分别进行。
[0080]在通过第四源代码4A及第五源代码4B所进行的处理中,将输入数据4A1及输入数据4B1以I字节数据的单位输入到4行4列的块数据“state”41中分别进行处理。
[0081]图4C是对比较例中的数据形式的一个例子进行说明的图。
[0082 ]输入数据4CI是图4A所示的输入数据4AI及图4B所示的输入数据4BI。另外,输出数据4C3是图4A所示的输出数据4A2及图4B所示的输出数据4B2。
[0083]在比较例中,针对4行4列的二维数据“state”进行处理,输入数据4C1变为输出数据 4C3。
[0084]在比较例中,如图4A所示,加密的处理通过“AddRoundKey”函数、“SubBytes”函数、“ShiftRows” 函数、及 “MixColumns” 函数来实现。
[0085]在比较例中,如图413所示,解密的处理通过“AddRoundKey”函数、“InvSubBytes”函数、“InvShiftRows” 函数、及 “InvMixColumns” 函数来实现。
[0086]需要说明的是,“InvSubBytes”函数是“SubBytes”函数的反函数。另外,“InvShiftRows” 函数是 “ShiftRows” 函数的反函数。再有,“InvMixColumuns” 函数是“MixColumns”函数的反函数。
[0087]<一维数组的例子>
[0088]图5是对本发明的一个实施方式中的输入数据的一维数组的一个例子进行说明的图。
[0089]具体来说,一维数组“S”是分别存储16个I字节的数据的一维的数组。针对该数组,嵌入式系统I按每个输入到一维数组“S”的数据分别进行加密及解密的各个处理。
[0090]<加密及解密的处理例>
[0091]图6A及图6B是对本发明的一个实施方式中的加密的每一轮的处理的一个例子进行说明的流程图。
[0092]在加密的每一轮的处理中,例如进行图6A或图6B所示的任意一个处理。以下,以图6A所示的处理为例进行说明。需要说明的是,图6B所示的处理与图6A所示的处理的处理顺序不同,在图6B所示的处理中,对于与图6A相同的处理名称及符号所示的处理,进行与图6A同样的处理。另外,图6A及图6B所示的各个处理相当于通过图4A所示的每一轮的加密处理42的代码所进行的处理。
[0〇93] 在步骤S0601中,嵌入式系统I进行对数据进行置换的置换(substitut1n)处理。需要说明的是,对于置换处理的细节,后面将叙述。
[0094]在步骤S0602中,嵌入式系统I进行对数据进行排序的排序处理。需要说明的是,对于排序处理的细节,后面将叙述。
[0095]在步骤S0603中,嵌入式系统I进行对数据进行变换的变换处理。需要说明的是,对于变换处理的细节,后面将叙述。
[0096]在步骤S0604中,嵌入式系统I基于扩展密钥数据对数据进行扩展处理。需要说明的是,扩展密钥数据例如是在扩展密钥数据的生成处理中所生成的数据。对于扩展处理的细节,后面将叙述。
[0097]图7A及图7B是对本发明的一个实施方式中的解密的一轮之中的每4字节的处理的一个例子进行说明的流程图及源代码。具体来说,图7A是对本发明的一个实施方式中的解密的一轮之中的每4字节的处理的一个例子进行说明的流程图。需要说明的是,图7A所示的处理相当于通过图4B所示的一轮16字节之中的每4字节的解密处理43的代码所进行的处理。
[0098]在步骤S0701中,嵌入式系统I进行对数据进行排序的排序处理。另外,当输入了在图6A或图6B所示的处理中所加密的数据时,步骤S0701的处理例如通过在图6A及图6B所示的步骤S0602中所使用的函数的反函数来实现。
[0099]在步骤S0702中,嵌入式系统I进行对数据进行置换的置换处理。另外,当输入了在图6A或图6B所示的处理中所加密的数据时,步骤S0702的处理例如通过分别在图6A及图6B所示的步骤S0601中所使用的函数的反函数来实现。
[0100]在步骤S0703中,嵌入式系统I基于扩展密钥数据进行数据的扩展处理。
[0101]在步骤S0704中,嵌入式系统I进行对数据进行变换的变换处理。另外,当输入了在图6A或图6B所示的处理中所加密的数据时,步骤S0704的处理通过分别在图6A及图6B所示的步骤S0603中所使用的函数的反函数来实现。
[0102]图7B是对本发明的一个实施方式中的解密的一轮之中的每4字节的处理的一个例子进行说明的源代码。
[0103]解密的一轮之中的每4字节的处理例如通过解密源代码10来实现。需要说明的是,解密源代码10是对4字节数据1IN进行解密处理的例子。
[0104]在解密源代码10中,嵌入式系统I针对4字节数据1IN执行作为排序处理的一个例子的“InvShiftRows”函数1FunI。另外,“InvShiftRows”函数1Funl的处理相当于图7A所示的步骤S0701的处理。
接着,在解密源代码10中,嵌入式系统I针对通过“InvShiftRows”函数1Funl所生成的数据执行作为置换处理的一个例子的“ I η V S u b B y t e s ”函数I O F u η 2。另外,“InvSubBytes”函数10Fun2的处理相当于图7A所示的步骤S0702的处理。
[0106]再接着,在解密源代码10中,嵌入式系统I针对通过“InvSubBytes”函数10Fun2所生成的数据执行作为扩展处理的一个例子的扩展处理代码1Cl的处理。另外,扩展处理代码I OCl的处理相当于图7A所示的步骤S0703的处理。
[0107]接着,在解密源代码10中,嵌入式系统I针对通过扩展处理代码1Cl的处理所生成的数据执行作为变换处理的一个例子的变换处理代码10C2的处理。另外,变换处理代码10C2的处理相当于图7A所示的步骤S0704的处理。
[0108]如图7B所示,当安装了源代码从而以一维数组且4字节的单位进行解密处理时,嵌入式系统I能够消减用于解密处理的源代码的记载量,并降低程序的数据容量。另外,如图7B所示,当安装了源代码从而以一维数据且4字节的单位进行解密处理时,嵌入式系统I能够高速地处理解密处理中的运算。
[0109]以下,以解密的
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1