JP2021141458A - Information processing device, information processing method, and program - Google Patents

Information processing device, information processing method, and program Download PDF

Info

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
Application number
JP2020038109A
Other languages
Japanese (ja)
Other versions
JP7459569B2 (en
Inventor
健二 高務
Kenji Takatsukasa
健二 高務
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2020038109A priority Critical patent/JP7459569B2/en
Publication of JP2021141458A publication Critical patent/JP2021141458A/en
Application granted granted Critical
Publication of JP7459569B2 publication Critical patent/JP7459569B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

To achieve a white-box implementation of AES with memory saving.SOLUTION: An information processing device includes acquisition means for acquiring a result of an operation, containing an operation result of an operation involving multiplication of SubBytes processing and MixColumns processing in a first round of White-Box AES, corresponding to an exclusive logical OR of an expansion key obfuscated in the first round and a conversion result obtained by converting a plaintext with a second lookup table by referring to a first lookup table commonly used in intermediate rounds.SELECTED DRAWING: Figure 4

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 Documents 1 and 2 is known.

"White-Box Cryptography and an AES Implementation." S. Chow, P. Eisen, H. Johnson, P.C. van Oorschot. In 9th Annual Workshop on Selected Areas in Cryptography (SAC 2002), Aug.15-16 2002."White-Box Cryptography and an AES Implementation." S. Chow, P. Eisen, H. Johnson, P.C. van Oorschot. In 9th Annual Workshop on Selected Areas in Cryptography (SAC 2002), Aug.15-16 2002. "A Tutorial on White-box AES." James A. Muir. Advances in Network Analysis and its Applications, Mathematics in Industry 18 (2013), 209-229."A Tutorial on White-box AES." James A. Muir. Advances in Network Analysis and its Applications, Mathematics in Industry 18 (2013), 209-229.

上記の非特許文献1及び2によれば、AESの鍵の長さが128ビットの場合に必要なルックアップテーブルの合計サイズは508KB、鍵の長さが256ビットの場合に必要なルックアップテーブルの合計サイズは732KBとなる。 According to Non-Patent Documents 1 and 2 described above, the total size of the look-up table required when the key length of AES is 128 bits is 508 KB, and the look-up table required when the key length is 256 bits. The total size of is 732KB.

しかしながら、近年は組み込みシステムのネットワーク接続が進められており、メモリ容量の少ない組み込みシステムでも鍵の難読化を行えるように、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.

暗号化の1ラウンド目における1サブラウンド目の処理の一例を示す図である。It is a figure which shows an example of the processing of the 1st sub-round in the 1st round of encryption. 暗号化のr(2≦r≦E)ラウンド目における1サブラウンド目の処理の一例を示す図である。It is a figure which shows an example of the processing of the 1st sub-round in the r (2 ≦ r ≦ E) round of encryption. 暗号化のE+1ラウンド目における1サブラウンド目の処理の一例を示す図である。It is a figure which shows an example of the processing of the 1st sub-round in the E + 1th round of encryption. 本実施形態に係る暗号システムの機能構成の一例を示す図である。It is a figure which shows an example of the functional structure of the encryption system which concerns on this embodiment. 本実施形態に係る暗号システムのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware configuration of the encryption system which concerns on this embodiment. 本実施形態に係る暗号化の1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。It is a figure which shows the flow of the process per 1 subround in the 1st round of the encryption which concerns on this embodiment. 本実施形態に係る暗号化のr(2≦r≦E)ラウンド目における1サブラウンドあたりの処理の流れを示す図である。It is a figure which shows the flow of processing per one sub-round in the r (2 ≦ r ≦ E) round of encryption which concerns on this embodiment. 本実施形態に係る暗号化のE+1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。It is a figure which shows the flow of processing per one sub-round in the E + 1th round of the encryption which concerns on this embodiment.

以下、本発明の一実施形態について説明する。本実施形態では、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 encryption system 10 that realizes the white-box implementation of AES (White-Box AES) in a memory-saving manner will be described. Here, it is assumed that the encryption system 10 according to the present embodiment is an embedded system (Embedded System) equipped with a general microprocessor or the like. An embedded system is, for example, a system that is embedded in an industrial device, a home electric appliance, or the like and realizes a specific function. Specifically, for example, it is possible to incorporate the encryption system 10 according to the present embodiment into a smart meter or the like used in a HEMS (Home Energy Management System).

ただし、本実施形態に係る暗号システム10は、組み込みシステムに限られず、例えば、PC(Personal Computer)やスマートフォン、タブレット端末等の各種端末又は装置であってもよい。 However, the encryption system 10 according to the present embodiment is not limited to the embedded system, and may be, for example, various terminals or devices such as a PC (Personal Computer), a smartphone, and a tablet terminal.

<理論的構成>
まず、本実施形態に係る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.

Figure 2021141458
Figure 2021141458

Figure 2021141458
なお、k'1xは難読化した拡大鍵である。
Figure 2021141458
Note that k'1x is an obfuscated enlarged key.

そして、任意の8ビットデータdに対して、平文を変換するルックアップテーブルTbを以下で構成する。 Then, a lookup table Tb that converts plaintext for arbitrary 8-bit data d is configured as follows.

Figure 2021141458
また、任意の8ビットデータdに対して、SubBytes処理とMixColumns処理の乗算とを合成したルックアップテーブルT0〜T3を以下で構成する。
Figure 2021141458
Further, the lookup tables T0 to T3 obtained by synthesizing the multiplication of the SubBytes process and the MixColumns process for the arbitrary 8-bit data d are configured as follows.

Figure 2021141458
以上のルックアップテーブルTb、T0〜T3及び難読化した拡大鍵k'1x(ただし、x=0,5,10,15)により、本実施形態に係るWhite-Box AESの1ラウンド目における1サブラウンド目の処理が実現される。すなわち、以下により出力データwのうちの1バイトデータw0〜w3が得られる。
Figure 2021141458
With the above lookup tables Tb, T0 to T3 and the obfuscated enlarged key k'1x (however, x = 0, 5, 10, 15), one sub in the first round of the White-Box AES according to the present embodiment. Round processing is realized. That is, 1-byte data w0 to w3 of the output data w can be obtained by the following.

Figure 2021141458
なお、出力データwのうちの1バイトデータw4〜w7は2サブラウンド目、w8〜w11は3サブラウンド目、w12〜w15は4サブラウンド目で同様に得られる。ただし、2サブラウンド目ではv0、v5、v10、v15の代わりにv4、v9、v14、v3をそれぞれ用いると共に、難読化した拡大鍵k'10、k'15、k'110、k'115の代わりにk'14、k'19、k'114、k'13をそれぞれ用いる。同様に、3サブラウンド目ではv0、v5、v10、v15の代わりにv8、v13、v2、v7をそれぞれ用いると共に、難読化した拡大鍵k'10、k'15、k'110、k'115の代わりにk'18、k'113、k'12、k'17をそれぞれ用いる。同様に、4サブラウンド目ではv0、v5、v10、v15の代わりにv12、v1、v6、v11をそれぞれ用いると共に、難読化した拡大鍵k'10、k'15、k'110、k'115の代わりにk'112、k'11、k'16、k'111をそれぞれ用いる。
Figure 2021141458
Of the output data w, 1-byte data w4 to w7 are similarly obtained in the second subround, w8 to w11 are obtained in the third subround, and w12 to w15 are obtained in the fourth subround. However, in the second subround, v4, v9, v14, and v3 are used instead of v0, v5, v10, and v15, and the obfuscated enlarged keys k'10, k'15, k'110, and k'115 are used. Instead, k'14, k'19, k'114, and k'13 are used, respectively. Similarly, in the third subround, v8, v13, v2, and v7 are used instead of v0, v5, v10, and v15, and the obfuscated enlarged keys k'10, k'15, k'110, and k'115 are used, respectively. Instead of, k'18, k'113, k'12, and k'17 are used, respectively. Similarly, in the 4th subround, v12, v1, v6, v11 are used instead of v0, v5, v10, v15, and the obfuscated enlarged keys k'10, k'15, k'110, k'115, respectively. Instead of, k'112, k'11, k'16, and k'111 are used, respectively.

≪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.

Figure 2021141458
以上のルックアップテーブルT0〜T3及び難読化した拡大鍵k'rx(ただし、x=0,5,10,15)により、本実施形態に係るWhite-Box AESのr(2≦r≦E)ラウンド目における1サブラウンド目の処理が実現される。すなわち、以下により出力データwのうちの1バイトデータw0〜w3が得られる。
Figure 2021141458
With the above lookup tables T0 to T3 and the obfuscated enlarged key k'rx (however, x = 0, 5, 10, 15), r (2 ≦ r ≦ E) of the White-Box AES according to the present embodiment. The processing of the first sub-round in the first round is realized. That is, 1-byte data w0 to w3 of the output data w can be obtained by the following.

Figure 2021141458
なお、出力データwのうちの1バイトデータw4〜w7は2サブラウンド目、w8〜w11は3サブラウンド目、w12〜w15は4サブラウンド目で同様に得られる。ただし、2サブラウンド目ではv0、v5、v10、v15の代わりにv4、v9、v14、v3をそれぞれ用いると共に、難読化した拡大鍵k'r0、k'r5、k'r10、k'r15の代わりにk'r4、k'r9、k'r14、k'r3をそれぞれ用いる。同様に、3サブラウンド目ではv0、v5、v10、v15の代わりにv8、v13、v2、v7をそれぞれ用いると共に、難読化した拡大鍵k'r0、k'r5、k'r10、k'r15の代わりにk'r8、k'r13、k'r2、k'r7をそれぞれ用いる。同様に、4サブラウンド目ではv0、v5、v10、v15の代わりにv12、v1、v6、v11をそれぞれ用いると共に、難読化した拡大鍵k'r0、k'r5、k'r10、k'r15の代わりにk'r12、k'r1、k'r6、k'r11をそれぞれ用いる。
Figure 2021141458
Of the output data w, 1-byte data w4 to w7 are similarly obtained in the second subround, w8 to w11 are obtained in the third subround, and w12 to w15 are obtained in the fourth subround. However, in the second subround, v4, v9, v14, and v3 are used instead of v0, v5, v10, and v15, and the obfuscated extended keys k'r0, k'r5, k'r10, and k'r15 are used. Instead, k'r4, k'r9, k'r14, and k'r3 are used, respectively. Similarly, in the third subround, v8, v13, v2, and v7 are used instead of v0, v5, v10, and v15, and the obfuscated extended keys k'r0, k'r5, k'r10, and k'r15 are used, respectively. Instead of, k'r8, k'r13, k'r2, and k'r7 are used, respectively. Similarly, in the 4th subround, v12, v1, v6, v11 are used instead of v0, v5, v10, v15, respectively, and the obfuscated extended keys k'r0, k'r5, k'r10, k'r15 are used. Instead of, k'r12, k'r1, k'r6, and k'r11 are used, respectively.

≪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.

Figure 2021141458
RIeは8ビットの乱数である。
Figure 2021141458
RIe is an 8-bit random number.

また、任意の8ビットデータdに対して、暗号文に変換するルックアップテーブルTeを以下で構成する。 Further, a lookup table Te that converts arbitrary 8-bit data d into a ciphertext is configured as follows.

Figure 2021141458
以上のルックアップテーブルT0、Te並びに難読化した拡大鍵k'Ex(ただし、x=0,5,10,15)及びk'(E+1)x(ただし、x=0,1,2,3)により、本実施形態に係るWhite-Box AESのE+1ラウンド目における1サブラウンド目の処理が実現される。すなわち、以下により出力データwのうちの1バイトデータw0〜w3が得られる。
Figure 2021141458
The above lookup tables T0, Te and the obfuscated extended keys k'Ex (where x = 0,5,10,15) and k'(E + 1) x (where x = 0,1,2,3) As a result, the processing of the first sub-round in the E + 1th round of the White-Box AES according to the present embodiment is realized. That is, 1-byte data w0 to w3 of the output data w can be obtained by the following.

Figure 2021141458
なお、出力データwのうちの1バイトデータw4〜w7は2サブラウンド目、w8〜w11は3サブラウンド目、w12〜w15は4サブラウンド目で同様に得られる。ただし、2サブラウンド目ではv0、v5、v10、v15の代わりにv4、v9、v14、v3をそれぞれ用いると共に、難読化した拡大鍵k'E0、k'E5、k'E10、k'E15、k'(E+1)0、k'(E+1)1、k'(E+1)2、k'(E+1)3の代わりにk'E4、k'E9、k'E14、k'E3、k'(E+1)4、k'(E+1)5、k'(E+1)6、k'(E+1)7をそれぞれ用いる。同様に、3サブラウンド目ではv0、v5、v10、v15の代わりにv8、v13、v2、v7をそれぞれ用いると共に、難読化した拡大鍵k'E0、k'E5、k'E10、k'E15、k'(E+1)0、k'(E+1)1、k'(E+1)2、k'(E+1)3の代わりにk'E8、k'E13、k'E2、k'E7、k'(E+1)8、k'(E+1)9、k'(E+1)10、k'(E+1)11をそれぞれ用いる。同様に、4サブラウンド目ではv0、v5、v10、v15の代わりにv12、v1、v6、v11をそれぞれ用いると共に、難読化した拡大鍵k'E0、k'E5、k'E10、k'E15、k'(E+1)0、k'(E+1)1、k'(E+1)2、k'(E+1)3の代わりにk'E12、k'E1、k'E6、k'E11、k'(E+1)12、k'(E+1)13、k'(E+1)14、k'(E+1)15をそれぞれ用いる。
Figure 2021141458
Of the output data w, 1-byte data w4 to w7 are similarly obtained in the second subround, w8 to w11 are obtained in the third subround, and w12 to w15 are obtained in the fourth subround. However, in the second subround, v4, v9, v14, and v3 are used instead of v0, v5, v10, and v15, and the obfuscated extended keys k'E0, k'E5, k'E10, and k'E15, respectively. Instead of k'(E + 1) 0, k'(E + 1) 1, k'(E + 1) 2, k'(E + 1) 3, k'E4, k'E9, k'E14, k'E3, k'(E + 1) ) 4, k'(E + 1) 5, k'(E + 1) 6, k'(E + 1) 7, respectively. Similarly, in the third subround, v8, v13, v2, and v7 are used instead of v0, v5, v10, and v15, and the obfuscated extended keys k'E0, k'E5, k'E10, and k'E15 are used. , K'(E + 1) 0, k'(E + 1) 1, k'(E + 1) 2, k'(E + 1) 3 instead of k'E8, k'E13, k'E2, k'E7, k'( E + 1) 8, k'(E + 1) 9, k'(E + 1) 10, and k'(E + 1) 11 are used, respectively. Similarly, in the 4th subround, v12, v1, v6, v11 are used instead of v0, v5, v10, v15, and the obfuscated extended keys k'E0, k'E5, k'E10, k'E15 are used. , K'(E + 1) 0, k'(E + 1) 1, k'(E + 1) 2, k'(E + 1) 3 instead of k'E12, k'E1, k'E6, k'E11, k'( E + 1) 12, k'(E + 1) 13, k'(E + 1) 14, and k'(E + 1) 15 are used, respectively.

また、図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 encryption system 10 according to the present embodiment will be described with reference to FIG. FIG. 4 is a diagram showing an example of the functional configuration of the encryption system 10 according to the present embodiment.

図4に示すように、本実施形態に係る暗号システム10は、選択部101と、テーブル参照部102と、演算部103と、記憶部104とを有する。 As shown in FIG. 4, the encryption system 10 according to the present embodiment includes a selection unit 101, a table reference unit 102, a calculation unit 103, and a storage unit 104.

記憶部104には、ルックアップテーブルTb、T0〜T3及びTeが記憶されている。なお、記憶部104には、暗号化に用いる種々のデータ(例えば、平文、中間値、暗号文等)が記憶されてもよい。 Look-up tables Tb, T0 to T3, and Te are stored in the storage unit 104. In addition, various data (for example, plaintext, intermediate value, ciphertext, etc.) used for encryption may be stored in the storage unit 104.

選択部101は、サブラウンド毎に入力データvから4つの選択データを選択する。テーブル参照部102は、記憶部104に記憶されているルックアップテーブルTb、T0〜T3及びTeを参照して、8ビットのデータに対応する演算値を取得(言い換えれば、8ビットのデータを、当該データに対応する演算値に変換)する。演算部103は、拡大鍵を難読化するための演算や排他的論理和演算等を行う。 The selection unit 101 selects four selection data from the input data v for each sub-round. The table reference unit 102 refers to the lookup tables Tb, T0 to T3, and Te stored in the storage unit 104, and acquires the calculated value corresponding to the 8-bit data (in other words, the 8-bit data is obtained. Convert to the calculated value corresponding to the data). The calculation unit 103 performs an operation for obfuscating the enlarged key, an exclusive OR operation, and the like.

<ハードウェア構成>
次に、本実施形態に係る暗号システム10のハードウェア構成について、図5を参照しながら説明する。図5は、本実施形態に係る暗号システム10のハードウェア構成の一例を示す図である。
<Hardware configuration>
Next, the hardware configuration of the encryption system 10 according to the present embodiment will be described with reference to FIG. FIG. 5 is a diagram showing an example of the hardware configuration of the encryption system 10 according to the present embodiment.

図5に示すように、本実施形態に係る暗号システム10は、プロセッサ201と、メモリ装置202と、I/F203とを有する。これら各ハードウェアは、それぞれがバス204を介して通信可能に接続されている。 As shown in FIG. 5, the encryption system 10 according to the present embodiment includes a processor 201, a memory device 202, and an I / F 203. Each of these hardware is connected so as to be able to communicate with each other via the bus 204.

プロセッサ201は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の各種演算装置である。本実施形態に係る暗号システム10が有する各機能部(選択部101、テーブル参照部102及び演算部103)は、メモリ装置202に格納された1以上のプログラムがプロセッサ201に実行させる処理により実現される。 The processor 201 is, for example, various arithmetic units such as a CPU (Central Processing Unit) and an MPU (Micro Processing Unit). Each functional unit (selection unit 101, table reference unit 102, and arithmetic unit 103) of the encryption system 10 according to the present embodiment is realized by a process of causing the processor 201 to execute one or more programs stored in the memory device 202. NS.

メモリ装置202は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。本実施形態に係る暗号システム10が有する記憶部104は、例えば、メモリ装置202を用いて実現可能である。 The memory device 202 is, for example, various storage devices such as a RAM (Random Access Memory), a ROM (Read Only Memory), and a flash memory. The storage unit 104 included in the encryption system 10 according to the present embodiment can be realized by using, for example, the memory device 202.

I/F203は、暗号システム10にデータを入力したり、暗号システム10からデータを出力したりするためのインタフェースである。 The I / F 203 is an interface for inputting data to the encryption system 10 and outputting data from the encryption system 10.

本実施形態に係る暗号システム10は、図5に示すハードウェア構成を有することにより、各種処理を実現することができる。なお、図5に示すハードウェア構成は一例であって、本実施形態に係る暗号システム10は、例えば、複数のプロセッサ201を有していてもよいし、複数のメモリ装置202を有していてもよい。 The encryption system 10 according to the present embodiment can realize various processes by having the hardware configuration shown in FIG. The hardware configuration shown in FIG. 5 is an example, and the encryption system 10 according to the present embodiment may have, for example, a plurality of processors 201 or a plurality of memory devices 202. May be good.

<処理の流れ>
以降では、本実施形態に係る暗号システム10により平文を暗号化する処理について説明する。
<Processing flow>
Hereinafter, a process of encrypting plaintext by the encryption system 10 according to the present embodiment will be described.

≪暗号化の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 selection unit 101 selects four selection data from the input data v (that is, plain text) (step S101). As described above, each selection data is 1 byte data.

次に、テーブル参照部102は、上記のステップS101で選択された選択データ毎に、記憶部104に記憶されているルックアップテーブルTbを参照して、当該選択データに対応する演算値を取得する(ステップS102)。 Next, the table reference unit 102 refers to the lookup table Tb stored in the storage unit 104 for each selection data selected in step S101, and acquires the calculated value corresponding to the selection data. (Step S102).

次に、演算部103は、上記のステップS101で選択された選択データ毎に、当該選択データに対応する拡大鍵(1ラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS103)。 Next, the calculation unit 103 obfuscates the expansion key (expansion key in the first round) corresponding to the selection data for each selection data selected in step S101, and then obfuscates the expansion key. And the exclusive OR with the calculated value corresponding to the selected data is calculated (step S103).

次に、テーブル参照部102は、上記のステップS101で選択された選択データ毎に、ルックアップテーブルT0〜T3をそれぞれ参照して、上記のステップS103で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS104)。 Next, the table reference unit 102 refers to the lookup tables T0 to T3 for each selection data selected in step S101, and obtains a calculation value corresponding to the calculation result obtained in step S103. Acquire each (step S104).

そして、演算部103は、上記のステップS104で得られた演算値のそれぞれに対して、MixColumns処理の排他的論理和演算を行う(ステップS105)。これにより、1ラウンド目の出力データwのうちの4バイトのデータが得られる。 Then, the calculation unit 103 performs an exclusive OR operation of the MixColumns process for each of the calculation values obtained in the above step S104 (step S105). As a result, 4 bytes of the output data w of the first round can be obtained.

≪暗号化の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 selection unit 101 selects four selection data from the input data v (that is, the output data w output in the previous round) (step S201).

次に、演算部103は、上記のステップS201で選択された選択データ毎に、当該選択データに対応する拡大鍵(rラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS202)。 Next, the calculation unit 103 obfuscates the expansion key (r-round expansion key) corresponding to the selection data for each selection data selected in step S201, and then obfuscates the obfuscation key. And the exclusive OR with the calculated value corresponding to the selected data is calculated (step S202).

次に、テーブル参照部102は、上記のステップS201で選択された選択データ毎に、ルックアップテーブルT0〜T3をそれぞれ参照して、上記のステップS202で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS203)。 Next, the table reference unit 102 refers to the lookup tables T0 to T3 for each selection data selected in step S201, and obtains a calculation value corresponding to the calculation result obtained in step S202. Acquire each (step S203).

そして、演算部103は、上記のステップS203で得られた演算値のそれぞれに対して、MixColumns処理の排他的論理和演算を行う(ステップS204)。これにより、rラウンド目の出力データwのうちの4バイトのデータが得られる。 Then, the calculation unit 103 performs an exclusive OR operation of the MixColumns process for each of the calculation values obtained in the above step S203 (step S204). As a result, 4 bytes of data in the output data w of the rth round can be obtained.

≪暗号化の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 selection unit 101 selects four selection data from the input data v (that is, the output data w output in the E round) (step S301).

次に、演算部103は、上記のステップS301で選択された選択データ毎に、当該選択データに対応する拡大鍵(Eラウンド目の拡大鍵)と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS302)。なお、Eラウンド目の拡大鍵は、Eラウンド目で既に難読化されているものを使用すればよい。 Next, the calculation unit 103 excludes the expansion key (E-round expansion key) corresponding to the selection data and the calculation value corresponding to the selection data for each selection data selected in step S301. Calculate the exclusive OR (step S302). As the expansion key for the E-round, a key that has already been obfuscated in the E-round may be used.

次に、テーブル参照部102は、上記のステップS301で選択された選択データ毎に、ルックアップテーブルT0をそれぞれ参照して、上記のステップS302で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS303)。なお、上述したように、ルックアップテーブルT0の代わりにルックアップテーブルT1が用いられてもよい。 Next, the table reference unit 102 refers to the lookup table T0 for each selection data selected in step S301, and acquires the calculation values corresponding to the calculation results obtained in step S302. (Step S303). As described above, the look-up table T1 may be used instead of the look-up table T0.

次に、演算部103は、上記のステップS301で選択された選択データ毎に、当該選択データに対応する拡大鍵(E+1ラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、上記のステップS303で得られた演算値のうち、当該選択データに対応する演算値との排他的論理和を演算する(ステップS304)。 Next, the calculation unit 103 obfuscates the expansion key (expansion key in the E + 1th round) corresponding to the selection data for each selection data selected in step S301, and then obfuscates the obfuscated expansion key. And, among the calculated values obtained in step S303, the exclusive OR is calculated with the calculated value corresponding to the selected data (step S304).

そして、テーブル参照部102は、上記のステップS301で選択された選択データ毎に、ルックアップテーブルTeを参照して、上記のステップS304で得られた演算結果に対応する演算値を取得する(ステップS305)。これにより、最終ラウンドの出力データw(つまり、暗号文)のうちの4バイトのデータが得られる。 Then, the table reference unit 102 refers to the lookup table Te for each selection data selected in step S301, and acquires a calculation value corresponding to the calculation result obtained in step S304 (step). S305). As a result, 4 bytes of data in the output data w (that is, ciphertext) of the final round can be obtained.

<まとめ>
以上のように、本実施形態に係る暗号システム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 encryption system 10 according to the present embodiment can realize the encryption by White-Box AES by using the lookup tables Tb, T0 to T3 and Te. Since the lookup tables Tb, T0 to T3, and Te are all 256 bytes, the total table size is 1.5 kilobytes and the data length of the extended key (that is, 176 bytes when the key length is 128 bits and 192 bits when the key length is 128 bits). Can realize White-Box AES in total with 208 bytes (240 bytes in the case of 256 bits). Further, in order to decipher the expansion key k1x, it is necessary to decipher the random number components included in the lookup tables Tb, T0 to T3 and Te, so that sufficient security strength is realized.

このように、本実施形態に係る暗号システム10では、十分なセキュリティ強度を実現しつつ、従来よりも省メモリでWhite-Box AESを実現することができる。特に、複数の鍵を保有する場合では、1.5キロバイトのルックアップテーブルを共通で利用できるためメモリ節約効果が大きくなる。 As described above, in the encryption system 10 according to the present embodiment, White-Box AES can be realized with less memory than before while realizing sufficient security strength. In particular, when a plurality of keys are held, a 1.5-kilobyte lookup table can be used in common, so that the memory saving effect is large.

なお、本実施形態では、平文を暗号化する場合について説明したが、暗号文を復号する場合については、暗号化の逆変換となるように各ラウンドを構成することで実現することができる。具体的には、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 Cryptographic system 101 Selection 102 Table reference 103 Calculation unit 104 Storage unit 201 Processor 202 Memory device 203 I / F
204 bus

Claims (7)

White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、平文を第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を取得する取得手段、を有することを特徴とする情報処理装置。 In the first round of White-Box AES, the operation result of the operation including the multiplication of SubBytes processing and MixColumns processing is included, and the plain text is referred to by referring to the first lookup table commonly used in the middle round. An information processing apparatus comprising: an acquisition means for acquiring an operation result corresponding to an exclusive OR of the conversion result obtained by converting the above in a second lookup table and the expanded key obfuscated in the first round. .. 前記取得手段は、
前記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.
前記第1のルックアップテーブルは、前記MixColumns処理の乗算の被演算子が1である第3のルックアップテーブル及び第4のルックアップテーブルと、前記乗算の被演算子が2である第5のルックアップテーブルと、前記乗算の被演算子が3である第6のルックアップテーブルとで構成されており、
前記取得手段は、
前記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.
前記第2のルックアップテーブルに含まれる演算結果は、所定の変換処理とSubBytes処理とMixColumns処理の乗算と前記変換処理に対応する逆変換処理との演算結果であり、
前記先頭ラウンドで難読化された拡大鍵は、前記先頭ラウンドの拡大鍵に対して前記逆変換処理を施した鍵である、ことを特徴とする請求項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.
White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、平文を第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を取得する取得手順、をコンピュータが実行することを特徴とする情報処理方法。 In the first round of White-Box AES, the operation result of the operation including the multiplication of SubBytes processing and MixColumns processing is included, and the plain text is referred to by referring to the first lookup table commonly used in the middle round. The computer executes an acquisition procedure for acquiring an operation result corresponding to the exclusive OR of the conversion result obtained by converting the above in the second lookup table and the expanded key obfuscated in the first round. Information processing method. White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、平文を第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を取得する取得手順、をコンピュータに実行させることを特徴とするプログラム。 In the first round of White-Box AES, the operation result of the operation including the multiplication of SubBytes processing and MixColumns processing is included, and the plain text is referred to by referring to the first lookup table commonly used in the middle round. Is characterized by having a computer execute an acquisition procedure for acquiring an operation result corresponding to the exclusive OR of the conversion result converted by the second lookup table and the expanded key obfuscated in the first round. program.
JP2020038109A 2020-03-05 2020-03-05 Information processing device, information processing method and program Active JP7459569B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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