JP2021141458A - Information processing device, information processing method, and program - Google Patents
Information processing device, information processing method, and program Download PDFInfo
- Publication number
- JP2021141458A JP2021141458A JP2020038109A JP2020038109A JP2021141458A JP 2021141458 A JP2021141458 A JP 2021141458A JP 2020038109 A JP2020038109 A JP 2020038109A JP 2020038109 A JP2020038109 A JP 2020038109A JP 2021141458 A JP2021141458 A JP 2021141458A
- Authority
- JP
- Japan
- Prior art keywords
- round
- lookup table
- information processing
- data
- white
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 14
- 238000003672 processing method Methods 0.000 title claims description 3
- 238000006243 chemical reaction Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
本発明は、情報処理装置、情報処理方法及びプログラムに関する。 The present invention relates to an information processing device, an information processing method and a program.
暗号化や暗号アルゴリズムを使った認証等の暗号処理を行う際は、その暗号処理に使用されている鍵が第三者に知られていないことが前提となる。しかしながら、暗号化や認証等を行う機器が第三者の手の内にあることも多く、攻撃者は、機器を分解/解析等し、機器のファームウェア等にハードコーディングされている鍵を入手しようとする。 When performing encryption processing such as encryption or authentication using an encryption algorithm, it is a prerequisite that the key used for the encryption processing is not known to a third party. However, devices that perform encryption and authentication are often in the hands of third parties, and attackers try to obtain keys that are hard-coded in the device firmware, etc. by disassembling / analyzing the device. ..
ハードコーディングされている鍵を難読化する方法として、ホワイトボックス実装(White-Box Cryptography)が知られている。AES(Advanced Encryption Standard)に関するホワイトボックス実装として、例えば、非特許文献1及び2に記載されているホワイトボックス実装が知られている。
A white-box implementation (White-Box Cryptography) is known as a method of obfuscating a hard-coded key. As a white box implementation related to AES (Advanced Encryption Standard), for example, the white box implementation described in Non-Patent
上記の非特許文献1及び2によれば、AESの鍵の長さが128ビットの場合に必要なルックアップテーブルの合計サイズは508KB、鍵の長さが256ビットの場合に必要なルックアップテーブルの合計サイズは732KBとなる。
According to
しかしながら、近年は組み込みシステムのネットワーク接続が進められており、メモリ容量の少ない組み込みシステムでも鍵の難読化を行えるように、AESのホワイトボックス実装をより少ないメモリ容量で実現することが望まれている。 However, in recent years, network connection of embedded systems has been promoted, and it is desired to realize AES white box implementation with a smaller memory capacity so that key obfuscation can be performed even in an embedded system with a small memory capacity. ..
開示の技術は、上記の点に鑑みてなされたもので、AESのホワイトボックス実装を省メモリで実現することを目的とする。 The disclosed technology was made in view of the above points, and aims to realize AES white box implementation with low memory.
上記目的を達成するため、一実施形態に係る情報処理装置は、White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、平文を第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を取得する取得手段、を有することを特徴とする。 In order to achieve the above object, the information processing apparatus according to one embodiment includes the calculation result of the operation including the multiplication of the SubBytes process and the MixColumns process in the first round of the White-Box AES, and in the intermediate round. An operation corresponding to the exclusive OR of the conversion result obtained by converting the plain text by the second lookup table and the expanded key obfuscated in the first round with reference to the commonly used first lookup table. It is characterized by having an acquisition means for acquiring a result.
AESのホワイトボックス実装を省メモリで実現することを目的とする。 The purpose is to realize AES white box implementation with memory saving.
以下、本発明の一実施形態について説明する。本実施形態では、AESのホワイトボックス実装(White-Box AES)を省メモリで実現する暗号システム10について説明する。ここで、本実施形態に係る暗号システム10は、一般的なマイクロプロセッサ等が搭載された組み込みシステム(Embedded System)であるものとする。組み込みシステムは、例えば、産業用機器や家電製品等に内蔵され、特定の機能を実現するシステムである。具体的には、例えば、HEMS(Home Energy Management System)に利用されるスマートメーター等に対して、本実施形態に係る暗号システム10を組み込むことが可能である。
Hereinafter, an embodiment of the present invention will be described. In this embodiment, the
ただし、本実施形態に係る暗号システム10は、組み込みシステムに限られず、例えば、PC(Personal Computer)やスマートフォン、タブレット端末等の各種端末又は装置であってもよい。
However, the
<理論的構成>
まず、本実施形態に係るWhite-Box AESによる暗号化の理論的構成について説明する。なお、AESでは、16バイトのデータに対する処理を1つのラウンドとして、鍵(暗号鍵)のビット長に応じた回数のラウンドを繰り返し実行することで、データを暗号化する。また、1つのラウンドでは、4バイトに対する処理を1つのサブラウンドとして、4回のサブラウンドを実行する。
<Theoretical composition>
First, the theoretical configuration of encryption by White-Box AES according to this embodiment will be described. In AES, the data is encrypted by repeatedly executing the rounds corresponding to the bit length of the key (encryption key), with the processing for 16 bytes of data as one round. Further, in one round, processing for 4 bytes is regarded as one sub-round, and four sub-rounds are executed.
以降では、各ラウンドの入力データをv、出力データをw、ラウンドを示すインデックスをr(ただし、1≦r≦E+1)、サブラウンドを示すインデックスをs(ただし、1≦s≦4)で表す。また、16バイトの入力データvの1バイト目〜16バイト目のデータをそれぞれv0〜v15で表す。同様に、16バイトの出力データwの1バイト目〜16バイト目のデータをそれぞれw0〜w15で表す。なお、Eは鍵長に対応するラウンド数であり、例えば、鍵長が128ビットの場合はE=10、192ビットの場合はE=12、256ビットの場合はE=14である。 Hereinafter, the input data of each round is represented by v, the output data is represented by w, the index indicating the round is represented by r (however, 1 ≦ r ≦ E + 1), and the index indicating the sub round is represented by s (however, 1 ≦ s ≦ 4). .. Further, the data of the 1st to 16th bytes of the 16-byte input data v is represented by v0 to v15, respectively. Similarly, the 1st to 16th bytes of the 16-byte output data w are represented by w0 to w15, respectively. Note that E is the number of rounds corresponding to the key length. For example, when the key length is 128 bits, E = 10, when the key length is 192 bits, E = 12, and when the key length is 256 bits, E = 14.
≪1ラウンド目≫
本実施形態に係るWhite-Box AESの1ラウンド目(つまり、r=1である場合)の処理について説明する。暗号化の1ラウンド目では、入力データvは平文であり、出力データwは中間値である。
≪1st round≫
The processing of the first round (that is, when r = 1) of the White-Box AES according to the present embodiment will be described. In the first round of encryption, the input data v is plaintext and the output data w is an intermediate value.
以降では、一例として、暗号化の1ラウンド目における1サブラウンド目(つまり、s=1である場合)の処理について、図1を参照しながら説明する。図1は、暗号化の1ラウンド目における1サブラウンド目の処理の一例を示す図である。 Hereinafter, as an example, the processing of the first sub-round (that is, when s = 1) in the first round of encryption will be described with reference to FIG. FIG. 1 is a diagram showing an example of processing in the first sub-round in the first round of encryption.
図1に示すように、1ラウンド目における1サブラウンド目では、例えば、16バイトの入力データvのうち、v0、v5、v10及びv15が選択され、これらの選択されたデータ(つまり、4バイトのデータ)に対して処理が行われる。この4バイトのデータを選択する処理は、ShiftRows処理と呼ばれる。なお、ShiftRows処理では、2サブラウンド目で1サブラウンド目とは異なる4バイトのデータが選択され、3サブラウンド目で1〜2サブラウンド目とは異なる4バイトのデータが選択され、4サブラウンド目で1〜3サブラウンド目とは異なる4バイトのデータが選択される。具体的には、例えば、2サブラウンド目ではv4、v9、v14及びv3が選択され、3サブラウンド目ではv8、v13、v2及びv7が選択され、4サブラウンド目ではv12、v1、v6及びv11が選択される。以降では、ShiftRows処理で選択された4バイトのデータのうちの1バイトのデータを「選択データ」とも表す。 As shown in FIG. 1, in the first sub-round in the first round, for example, v0, v5, v10 and v15 are selected from the 16-byte input data v, and these selected data (that is, 4 bytes) are selected. Data) is processed. The process of selecting this 4-byte data is called the Shift Rows process. In the Shift Rows process, 4-byte data different from the 1st sub-round is selected in the 2nd sub-round, and 4-byte data different from the 1st and 2nd sub-rounds is selected in the 3rd sub-round. In the first round, 4 bytes of data different from those in the 1st to 3rd sub rounds are selected. Specifically, for example, v4, v9, v14 and v3 are selected in the second subround, v8, v13, v2 and v7 are selected in the third subround, and v12, v1, v6 and in the fourth subround. v11 is selected. Hereinafter, 1-byte data of the 4-byte data selected by the Shift Rows process is also referred to as "selected data".
このとき、本実施形態に係るWhite-Box AESの1ラウンド目における1サブラウンド目では、選択データをルックアップテーブルTbで変換した後、難読化した拡大鍵k'1x(ただし、x=0,5,10,15)との排他的論理和演算を行った上で、ルックアップテーブルT0〜T3でそれぞれ変換し、MixColumns処理の排他的論理和演算を行うことで、出力データwのうちの1バイトデータw0〜w3を得る。 At this time, in the first sub-round in the first round of the White-Box AES according to the present embodiment, the selected data is converted by the lookup table Tb, and then the obfuscated enlarged key k'1x (however, x = 0, After performing the exclusive OR operation with 5, 10, 15), the lookup tables T0 to T3 are used for conversion, and the exclusive OR operation of the MixColumns process is performed to obtain one of the output data w. Obtain byte data w0 to w3.
ここで、図1における各記号は以下を意味する。 Here, each symbol in FIG. 1 means the following.
RIx(ただし、xはb又は0〜4のいずれか):8ビットの乱数
RJ:並べ替え番号を表す16ビットの乱数
RL:ガロア体上の乗算に使用する8ビットの乱数(既約多項式は30通り)。なお、図中では、ガロア体上の乗算を「・」で表記している。また、ガロア体上のRLの逆元を「RL−1」で表記している。
RIx (where x is either b or 0-4): 8-bit random number RJ: 16-bit random number representing the sort number RL: 8-bit random number used for multiplication on the Galois field (the irreducible polynomial is 30 ways). In the figure, the multiplication on the Galois field is indicated by "・". In addition, the inverse element of RL on the Galois field is indicated by "RL -1".
k1x(ただし、x=0〜15):1ラウンド目における8ビットの拡大鍵
S():SubBytes処理を実行する関数。なお、図中では、「S」と表記している。
k1x (however, x = 0 to 15): 8-bit expansion key in the first round S (): A function that executes SubBytes processing. In the figure, it is written as "S".
Sort(RJ,d):パラメータRJと8ビットのデータdとを入力として、このデータdの各ビット値を並べ替えて8ビットのデータを出力する関数。なお、図中では、「Sort(RJ)」と表記している。 Sort (RJ, d): A function that takes the parameter RJ and 8-bit data d as inputs, sorts each bit value of this data d, and outputs 8-bit data. In the figure, it is described as "Sort (RJ)".
Rvrs(RJ,d):パラメータRJと8ビットのデータdとを入力としたSort(RJ,d)の逆変換。なお、図中では、「Rvrs(RJ)」と表記している。 Rvrs (RJ, d): Inverse conversion of Sort (RJ, d) with parameter RJ and 8-bit data d as inputs. In the figure, it is described as "Rvrs (RJ)".
また、RI4及びk'1xを以下で定義する。 In addition, RI4 and k'1x are defined below.
そして、任意の8ビットデータdに対して、平文を変換するルックアップテーブルTbを以下で構成する。 Then, a lookup table Tb that converts plaintext for arbitrary 8-bit data d is configured as follows.
≪r(1≦r≦E)ラウンド目≫
次に、本実施形態に係るWhite-Box AESのr(2≦r≦E)ラウンド目(すなわち、中間ラウンド)の処理について説明する。暗号化のr(2≦r≦E)ラウンド目では、入力データvは1つ前のラウンドで出力された中間値であり、出力データwは次のラウンドに入力される中間値である。
≪r (1 ≦ r ≦ E) round ≫
Next, the processing of the r (2 ≦ r ≦ E) round (that is, the intermediate round) of the White-Box AES according to the present embodiment will be described. In the r (2 ≦ r ≦ E) round of encryption, the input data v is the intermediate value output in the previous round, and the output data w is the intermediate value input in the next round.
以降では、一例として、暗号化のr(2≦r≦E)ラウンド目における1サブラウンド目(つまり、s=1である場合)の処理について、図2を参照しながら説明する。図2は、暗号化のr(2≦r≦E)ラウンド目における1サブラウンド目の処理の一例を示す図である。 Hereinafter, as an example, the processing of the first sub-round (that is, when s = 1) in the r (2 ≦ r ≦ E) round of encryption will be described with reference to FIG. FIG. 2 is a diagram showing an example of processing in the first sub-round in the r (2 ≦ r ≦ E) round of encryption.
図2に示すように、r(2≦r≦E)ラウンド目における1サブラウンド目では、例えば、16バイトの入力データvのうち、v0、v5、v10及びv15が選択データとなる。 As shown in FIG. 2, in the first sub-round in the r (2 ≦ r ≦ E) round, for example, v0, v5, v10 and v15 of the 16-byte input data v are selected data.
このとき、本実施形態に係るWhite-Box AESのr(2≦r≦E)ラウンド目における1サブラウンド目では、選択データと難読化した拡大鍵k'rx(ただし、x=0,5,10,15)との排他的論理和演算を行った上で、ルックアップテーブルT0〜T3でそれぞれ変換し、MixColumns処理の排他的論理和演算を行うことで、出力データwのうちの1バイトデータw0〜w3を得る。 At this time, in the first sub-round in the r (2 ≦ r ≦ E) round of the White-Box AES according to the present embodiment, the selected data and the obfuscated enlarged key k'rx (however, x = 0.5) After performing the exclusive OR operation with 10 and 15), the lookup tables T0 to T3 are used for conversion, and the exclusive OR operation of the MixColumns process is performed to perform the 1-byte data of the output data w. Obtain w0 to w3.
ここで、krx(ただし、x=0〜15)はrラウンド目における8ビットの拡大鍵であり、k'rxは拡大鍵krxを以下により難読化したものである。 Here, krx (where x = 0 to 15) is an 8-bit expansion key in the rth round, and k'rx is an obfuscation of the expansion key krx as follows.
≪E+1ラウンド目≫
次に、本実施形態に係るWhite-Box AESのE+1ラウンド目(すなわち、最終ラウンド)の処理について説明する。暗号化のE+1ラウンド目では、入力データvは1つ前のラウンドで出力された中間値であり、出力データwは暗号文である。
≪E + 1 round ≫
Next, the processing of the E + 1th round (that is, the final round) of the White-Box AES according to the present embodiment will be described. In the E + 1th round of encryption, the input data v is the intermediate value output in the previous round, and the output data w is the ciphertext.
以降では、一例として、暗号化のE+1ラウンド目における1サブラウンド目(つまり、s=1である場合)の処理について、図3を参照しながら説明する。図3は、暗号化のE+1ラウンド目における1サブラウンド目の処理の一例を示す図である。 Hereinafter, as an example, the processing of the first sub-round (that is, when s = 1) in the E + 1th round of encryption will be described with reference to FIG. FIG. 3 is a diagram showing an example of processing in the first sub-round in the E + 1th round of encryption.
図3に示すように、E+1ラウンド目における1サブラウンド目では、例えば、16バイトの入力データvのうち、v0、v5、v10及びv15が選択データとなる。 As shown in FIG. 3, in the first sub-round in the E + 1th round, for example, of the 16-byte input data v, v0, v5, v10 and v15 are the selection data.
このとき、本実施形態に係るWhite-Box AESのE+1ラウンド目における1サブラウンド目では、選択データと難読化した拡大鍵k'Ex(ただし、x=0,5,10,15)との排他的論理和演算を行い、ルックアップテーブルT0で変換した後、難読化した拡大鍵k'(E+1)x(ただし、x=0,1,2,3)との排他的論理和演算を行った上で、ルックアップテーブルTeで変換することで、出力データwのうちの1バイトデータw0〜w3を得る。 At this time, in the first sub-round in the E + 1th round of the White-Box AES according to the present embodiment, the selection data and the obfuscated enlarged key k'Ex (however, x = 0, 5, 10, 15) are exclusive. An exclusive OR operation was performed, and after conversion by the lookup table T0, an exclusive OR operation was performed with the obfuscated extended key k'(E + 1) x (however, x = 0,1,2,3). By converting with the lookup table Te above, 1-byte data w0 to w3 of the output data w are obtained.
ここで、k(E+1)x(ただし、x=0〜15)はE+1ラウンド目における8ビットの拡大鍵であり、k'(E+1)xは拡大鍵k(E+1)xを以下により難読化したものである。 Here, k (E + 1) x (where x = 0 to 15) is an 8-bit expansion key in the E + 1th round, and k'(E + 1) x obfuscates the expansion key k (E + 1) x by the following. It is a thing.
また、任意の8ビットデータdに対して、暗号文に変換するルックアップテーブルTeを以下で構成する。 Further, a lookup table Te that converts arbitrary 8-bit data d into a ciphertext is configured as follows.
また、図3に示す例では、ルックアップテーブルT0を用いたが、ルックアップテーブルT0の代わりに、ルックアップテーブルT1が用いられてもよい。このように、ルックアップテーブルT0又はT1を利用することで、必要なルックアップテーブル数が削減され、省メモリ化に寄与することができる。 Further, in the example shown in FIG. 3, the look-up table T0 is used, but the look-up table T1 may be used instead of the look-up table T0. By using the look-up tables T0 or T1 in this way, the number of required look-up tables can be reduced, which can contribute to memory saving.
≪応用例≫
図1〜図3で説明したルックアップテーブルTb、T0〜T3及びTeは、その変換成分及び逆変換成分を多段に構成することで、よりセキュリティ強度を高めることが可能になる。具体的には、Nを2以上の整数として、図1の(1)に示す変換成分をN個用いてルックアップテーブルTbを構成し、図1の(2)に示す逆変換成分及び(3)に示す変換成分をそれぞれN個用いてルックアップテーブルT0〜T3を構成し、図3の(4)に示す逆変換成分をN個用いてルックアップテーブルTeを構成すればよい。
≪Application example≫
The lookup tables Tb, T0 to T3, and Te described with reference to FIGS. 1 to 3 can be further enhanced in security by configuring the conversion component and the inverse conversion component in multiple stages. Specifically, the lookup table Tb is constructed by using N of the conversion components shown in (1) of FIG. 1 with N as an integer of 2 or more, and the inverse conversion components and (3) shown in (2) of FIG. ) May be used to form the look-up tables T0 to T3, and N of the inverse conversion components shown in FIG. 3 (4) may be used to form the look-up table Te.
<機能構成>
次に、本実施形態に係る暗号システム10の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係る暗号システム10の機能構成の一例を示す図である。
<Functional configuration>
Next, the functional configuration of the
図4に示すように、本実施形態に係る暗号システム10は、選択部101と、テーブル参照部102と、演算部103と、記憶部104とを有する。
As shown in FIG. 4, the
記憶部104には、ルックアップテーブルTb、T0〜T3及びTeが記憶されている。なお、記憶部104には、暗号化に用いる種々のデータ(例えば、平文、中間値、暗号文等)が記憶されてもよい。
Look-up tables Tb, T0 to T3, and Te are stored in the
選択部101は、サブラウンド毎に入力データvから4つの選択データを選択する。テーブル参照部102は、記憶部104に記憶されているルックアップテーブルTb、T0〜T3及びTeを参照して、8ビットのデータに対応する演算値を取得(言い換えれば、8ビットのデータを、当該データに対応する演算値に変換)する。演算部103は、拡大鍵を難読化するための演算や排他的論理和演算等を行う。
The
<ハードウェア構成>
次に、本実施形態に係る暗号システム10のハードウェア構成について、図5を参照しながら説明する。図5は、本実施形態に係る暗号システム10のハードウェア構成の一例を示す図である。
<Hardware configuration>
Next, the hardware configuration of the
図5に示すように、本実施形態に係る暗号システム10は、プロセッサ201と、メモリ装置202と、I/F203とを有する。これら各ハードウェアは、それぞれがバス204を介して通信可能に接続されている。
As shown in FIG. 5, the
プロセッサ201は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の各種演算装置である。本実施形態に係る暗号システム10が有する各機能部(選択部101、テーブル参照部102及び演算部103)は、メモリ装置202に格納された1以上のプログラムがプロセッサ201に実行させる処理により実現される。
The
メモリ装置202は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。本実施形態に係る暗号システム10が有する記憶部104は、例えば、メモリ装置202を用いて実現可能である。
The
I/F203は、暗号システム10にデータを入力したり、暗号システム10からデータを出力したりするためのインタフェースである。
The I /
本実施形態に係る暗号システム10は、図5に示すハードウェア構成を有することにより、各種処理を実現することができる。なお、図5に示すハードウェア構成は一例であって、本実施形態に係る暗号システム10は、例えば、複数のプロセッサ201を有していてもよいし、複数のメモリ装置202を有していてもよい。
The
<処理の流れ>
以降では、本実施形態に係る暗号システム10により平文を暗号化する処理について説明する。
<Processing flow>
Hereinafter, a process of encrypting plaintext by the
≪暗号化の1ラウンド目における1サブラウンドあたりの処理≫
まず、暗号化の1ラウンド目における1サブラウンドあたりの処理の流れについて、図6を参照しながら説明する。図6は、本実施形態に係る暗号化の1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。
≪Processing per subround in the first round of encryption≫
First, the flow of processing per subround in the first round of encryption will be described with reference to FIG. FIG. 6 is a diagram showing a processing flow per subround in the first round of encryption according to the present embodiment.
選択部101は、入力データv(つまり、平文)から4つの選択データを選択する(ステップS101)。なお、上述したように、各選択データは1バイトのデータである。
The
次に、テーブル参照部102は、上記のステップS101で選択された選択データ毎に、記憶部104に記憶されているルックアップテーブルTbを参照して、当該選択データに対応する演算値を取得する(ステップS102)。
Next, the
次に、演算部103は、上記のステップS101で選択された選択データ毎に、当該選択データに対応する拡大鍵(1ラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS103)。
Next, the
次に、テーブル参照部102は、上記のステップS101で選択された選択データ毎に、ルックアップテーブルT0〜T3をそれぞれ参照して、上記のステップS103で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS104)。
Next, the
そして、演算部103は、上記のステップS104で得られた演算値のそれぞれに対して、MixColumns処理の排他的論理和演算を行う(ステップS105)。これにより、1ラウンド目の出力データwのうちの4バイトのデータが得られる。
Then, the
≪暗号化のr(2≦r≦E)ラウンド目における1サブラウンドあたりの処理≫
次に、暗号化の中間ラウンドにおける1サブラウンドあたりの処理の流れについて、図7を参照しながら説明する。図7は、本実施形態に係る暗号化のr(2≦r≦E)ラウンド目における1サブラウンドあたりの処理の流れを示す図である。
<< Processing per sub-round in the r (2≤r≤E) round of encryption >>
Next, the flow of processing per subround in the intermediate round of encryption will be described with reference to FIG. 7. FIG. 7 is a diagram showing a processing flow per sub-round in the r (2 ≦ r ≦ E) round of encryption according to the present embodiment.
選択部101は、入力データv(つまり、1つ前のラウンドで出力された出力データw)から4つの選択データを選択する(ステップS201)。
The
次に、演算部103は、上記のステップS201で選択された選択データ毎に、当該選択データに対応する拡大鍵(rラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS202)。
Next, the
次に、テーブル参照部102は、上記のステップS201で選択された選択データ毎に、ルックアップテーブルT0〜T3をそれぞれ参照して、上記のステップS202で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS203)。
Next, the
そして、演算部103は、上記のステップS203で得られた演算値のそれぞれに対して、MixColumns処理の排他的論理和演算を行う(ステップS204)。これにより、rラウンド目の出力データwのうちの4バイトのデータが得られる。
Then, the
≪暗号化のE+1ラウンド目における1サブラウンドあたりの処理≫
次に、最終ラウンドにおける1サブラウンドあたりの処理の流れについて、図8を参照しながら説明する。図8は、本実施形態に係る暗号化のE+1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。
≪Processing per sub-round in E + 1th round of encryption≫
Next, the flow of processing per subround in the final round will be described with reference to FIG. FIG. 8 is a diagram showing a processing flow per sub-round in the E + 1th round of encryption according to the present embodiment.
選択部101は、入力データv(つまり、Eラウンド目で出力された出力データw)から4つの選択データを選択する(ステップS301)。
The
次に、演算部103は、上記のステップS301で選択された選択データ毎に、当該選択データに対応する拡大鍵(Eラウンド目の拡大鍵)と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS302)。なお、Eラウンド目の拡大鍵は、Eラウンド目で既に難読化されているものを使用すればよい。
Next, the
次に、テーブル参照部102は、上記のステップS301で選択された選択データ毎に、ルックアップテーブルT0をそれぞれ参照して、上記のステップS302で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS303)。なお、上述したように、ルックアップテーブルT0の代わりにルックアップテーブルT1が用いられてもよい。
Next, the
次に、演算部103は、上記のステップS301で選択された選択データ毎に、当該選択データに対応する拡大鍵(E+1ラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、上記のステップS303で得られた演算値のうち、当該選択データに対応する演算値との排他的論理和を演算する(ステップS304)。
Next, the
そして、テーブル参照部102は、上記のステップS301で選択された選択データ毎に、ルックアップテーブルTeを参照して、上記のステップS304で得られた演算結果に対応する演算値を取得する(ステップS305)。これにより、最終ラウンドの出力データw(つまり、暗号文)のうちの4バイトのデータが得られる。
Then, the
<まとめ>
以上のように、本実施形態に係る暗号システム10は、ルックアップテーブルTb、T0〜T3及びTeを用いてWhite-Box AESによる暗号化を実現することができる。ルックアップテーブルTb、T0〜T3及びTeはいずれも256バイトであるため、合計テーブルサイズ1.5キロバイトと拡大鍵のデータ長(つまり、鍵長が128ビットの場合は176バイト、192ビットの場合は208バイト、256ビットの場合は240バイト)との合計でWhite-Box AESを実現することができる。また、拡大鍵k1xを解読するためにはルックアップテーブルTb、T0〜T3及びTeに含まれる乱数成分の解読が必要なため、十分なセキュリティ強度が実現されている。
<Summary>
As described above, the
このように、本実施形態に係る暗号システム10では、十分なセキュリティ強度を実現しつつ、従来よりも省メモリでWhite-Box AESを実現することができる。特に、複数の鍵を保有する場合では、1.5キロバイトのルックアップテーブルを共通で利用できるためメモリ節約効果が大きくなる。
As described above, in the
なお、本実施形態では、平文を暗号化する場合について説明したが、暗号文を復号する場合については、暗号化の逆変換となるように各ラウンドを構成することで実現することができる。具体的には、ShiftRows処理の代わりにInvShiftRows処理、SubBytes処理の代わりにInvSubBytes処理、MixColumns処理の代わりにInvMixColumns処理を用いればよい。 In the present embodiment, the case of encrypting the plaintext has been described, but the case of decrypting the ciphertext can be realized by configuring each round so as to be the reverse conversion of the encryption. Specifically, InvShiftRows processing may be used instead of ShiftRows processing, InvSubBytes processing may be used instead of SubBytes processing, and InvMixColumns processing may be used instead of MixColumns processing.
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。 The present invention is not limited to the above-described embodiment disclosed in detail, and various modifications and modifications, combinations with known techniques, and the like are possible without departing from the scope of claims.
10 暗号システム
101 選択部
102 テーブル参照部
103 演算部
104 記憶部
201 プロセッサ
202 メモリ装置
203 I/F
204 バス
10
204 bus
Claims (7)
前記White-Box AESの中間ラウンドにおいて、前記第1のルックアップテーブルを参照して、前記中間ラウンドの入力データと前記中間ラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を取得する、ことを特徴とする請求項1に記載の情報処理装置。 The acquisition means
In the intermediate round of the White-Box AES, the calculation result corresponding to the exclusive OR of the input data of the intermediate round and the expanded key obfuscated in the intermediate round with reference to the first lookup table. The information processing apparatus according to claim 1, wherein the information processing apparatus is obtained.
前記取得手段は、
前記White-Box AESの最終ラウンドにおいて、前記第3のルックアップテーブル又は前記第4のルックアップテーブルを参照して、前記最終ラウンドの入力データと前記最終ラウンドの1つ前のラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を取得する、ことを特徴とする請求項1又は2に記載の情報処理装置。 The first lookup table includes a third lookup table and a fourth look-up table in which the operand of the multiplication in the MixColumns process is 1, and a fifth lookup table in which the operand of the multiplication is 2. It is composed of a lookup table and a sixth lookup table in which the operand of the multiplication is 3.
The acquisition means
In the final round of the White-Box AES, the input data of the final round and the previous round of the final round are obfuscated with reference to the third lookup table or the fourth lookup table. The information processing apparatus according to claim 1 or 2, wherein the calculation result corresponding to the exclusive OR with the expansion key is acquired.
さらに、暗号文を得るための第7のルックアップテーブルを参照して、前記取得した演算結果と前記最終ラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を暗号文として取得する、ことを特徴とする請求項3に記載の情報処理装置。 The acquisition means
Further, referring to the seventh lookup table for obtaining the ciphertext, the operation result corresponding to the exclusive OR of the acquired operation result and the expanded key obfuscated in the final round is used as the ciphertext. The information processing apparatus according to claim 3, wherein the information processing apparatus is to be acquired.
前記先頭ラウンドで難読化された拡大鍵は、前記先頭ラウンドの拡大鍵に対して前記逆変換処理を施した鍵である、ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理装置。 The calculation result included in the second lookup table is a calculation result of a predetermined conversion process, a SubBytes process, a multiplication of the MixColumns process, and an inverse conversion process corresponding to the conversion process.
The expansion key obfuscated in the first round is a key obtained by subjecting the expansion key in the first round to the reverse conversion process, according to any one of claims 1 to 4. Information processing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020038109A JP7459569B2 (en) | 2020-03-05 | 2020-03-05 | Information processing device, information processing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020038109A JP7459569B2 (en) | 2020-03-05 | 2020-03-05 | Information processing device, information processing method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021141458A true JP2021141458A (en) | 2021-09-16 |
JP7459569B2 JP7459569B2 (en) | 2024-04-02 |
Family
ID=77669170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020038109A Active JP7459569B2 (en) | 2020-03-05 | 2020-03-05 | Information processing device, information processing method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7459569B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023192772A3 (en) * | 2022-03-29 | 2024-01-18 | The Board Of Regents For Oklahomaagricultural And Mechanical Colleges | A reconfigurable architecture for improvement and optimization of advanced encryption standard |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6292195B2 (en) | 2015-08-24 | 2018-03-14 | 富士電機株式会社 | Information processing apparatus and information processing method |
JP6187624B1 (en) | 2016-03-17 | 2017-08-30 | 富士電機株式会社 | Information processing apparatus, information processing method, and program |
JP6135804B1 (en) | 2016-06-01 | 2017-05-31 | 富士電機株式会社 | Information processing apparatus, information processing method, and program |
-
2020
- 2020-03-05 JP JP2020038109A patent/JP7459569B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023192772A3 (en) * | 2022-03-29 | 2024-01-18 | The Board Of Regents For Oklahomaagricultural And Mechanical Colleges | A reconfigurable architecture for improvement and optimization of advanced encryption standard |
Also Published As
Publication number | Publication date |
---|---|
JP7459569B2 (en) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Beaulieu et al. | The SIMON and SPECK lightweight block ciphers | |
JP5911654B2 (en) | Random number generator and stream cipher | |
Benvenuto | Galois field in cryptography | |
CN107005404B (en) | Processor apparatus implementing executable white-box mask implementations of cryptographic algorithms | |
CN113940028B (en) | Method and device for realizing white box password | |
JP5542896B2 (en) | Low power encryption apparatus and method | |
RU2124814C1 (en) | Method for encoding of digital data | |
JP6044738B2 (en) | Information processing apparatus, program, and storage medium | |
JP5652363B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and program | |
Qasaimeh et al. | A novel simplified aes algorithm for lightweight real-time applications: Testing and discussion | |
JP2017216619A (en) | Information processing device, information processing method and program | |
KR100574965B1 (en) | Finite field multiplier | |
KR101506499B1 (en) | Method for encrypting with SEED applying mask | |
JP7459569B2 (en) | Information processing device, information processing method and program | |
CN114124359A (en) | Method and device for preserving format encrypted data, electronic equipment and storage medium | |
Tiwari | Cryptography in blockchain | |
JP6187624B1 (en) | Information processing apparatus, information processing method, and program | |
CN110336658B (en) | Encryption method based on AES algorithm, user equipment, storage medium and device | |
JP6194136B2 (en) | Pseudorandom number generation device and pseudorandom number generation program | |
JP7383985B2 (en) | Information processing device, information processing method and program | |
Yang et al. | A new cryptosystem based on chaotic map and operations algebraic | |
Rouaf et al. | Performance Evaluation of Encryption Algorithms in Mobile Devices | |
Touzene et al. | Performance of algebraic graphs based stream-ciphers using large finite fields | |
Yahya et al. | An AES-Based Encryption Algorithm with Shuffling. | |
Abubaker et al. | DAFA-A Lightweight DES Augmented Finite Automaton Cryptosystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231114 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231211 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240304 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7459569 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |