JP7459569B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP7459569B2
JP7459569B2 JP2020038109A JP2020038109A JP7459569B2 JP 7459569 B2 JP7459569 B2 JP 7459569B2 JP 2020038109 A JP2020038109 A JP 2020038109A JP 2020038109 A JP2020038109 A JP 2020038109A JP 7459569 B2 JP7459569 B2 JP 7459569B2
Authority
JP
Japan
Prior art keywords
round
data
lookup table
obfuscated
byte
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.)
Active
Application number
JP2020038109A
Other languages
English (en)
Other versions
JP2021141458A (ja
Inventor
健二 高務
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/ja
Publication of JP2021141458A publication Critical patent/JP2021141458A/ja
Application granted granted Critical
Publication of JP7459569B2 publication Critical patent/JP7459569B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
暗号化や暗号アルゴリズムを使った認証等の暗号処理を行う際は、その暗号処理に使用されている鍵が第三者に知られていないことが前提となる。しかしながら、暗号化や認証等を行う機器が第三者の手の内にあることも多く、攻撃者は、機器を分解/解析等し、機器のファームウェア等にハードコーディングされている鍵を入手しようとする。
ハードコーディングされている鍵を難読化する方法として、ホワイトボックス実装(White-Box Cryptography)が知られている。AES(Advanced Encryption Standard)に関するホワイトボックス実装として、例えば、非特許文献1及び2に記載されているホワイトボックス実装が知られている。
"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.
上記の非特許文献1及び2によれば、AESの鍵の長さが128ビットの場合に必要なルックアップテーブルの合計サイズは508KB、鍵の長さが256ビットの場合に必要なルックアップテーブルの合計サイズは732KBとなる。
しかしながら、近年は組み込みシステムのネットワーク接続が進められており、メモリ容量の少ない組み込みシステムでも鍵の難読化を行えるように、AESのホワイトボックス実装をより少ないメモリ容量で実現することが望まれている。
開示の技術は、上記の点に鑑みてなされたもので、AESのホワイトボックス実装を省メモリで実現することを目的とする。
上記目的を達成するため、一実施形態に係る情報処理装置は、White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、平文を第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドで難読化された拡大鍵との排他的論理和に対応する演算結果を取得する取得手段、を有することを特徴とする。
AESのホワイトボックス実装を省メモリで実現することを目的とする。
暗号化の1ラウンド目における1サブラウンド目の処理の一例を示す図である。 暗号化のr(2≦r≦E)ラウンド目における1サブラウンド目の処理の一例を示す図である。 暗号化のE+1ラウンド目における1サブラウンド目の処理の一例を示す図である。 本実施形態に係る暗号システムの機能構成の一例を示す図である。 本実施形態に係る暗号システムのハードウェア構成の一例を示す図である。 本実施形態に係る暗号化の1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。 本実施形態に係る暗号化のr(2≦r≦E)ラウンド目における1サブラウンドあたりの処理の流れを示す図である。 本実施形態に係る暗号化のE+1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。
以下、本発明の一実施形態について説明する。本実施形態では、AESのホワイトボックス実装(White-Box AES)を省メモリで実現する暗号システム10について説明する。ここで、本実施形態に係る暗号システム10は、一般的なマイクロプロセッサ等が搭載された組み込みシステム(Embedded System)であるものとする。組み込みシステムは、例えば、産業用機器や家電製品等に内蔵され、特定の機能を実現するシステムである。具体的には、例えば、HEMS(Home Energy Management System)に利用されるスマートメーター等に対して、本実施形態に係る暗号システム10を組み込むことが可能である。
ただし、本実施形態に係る暗号システム10は、組み込みシステムに限られず、例えば、PC(Personal Computer)やスマートフォン、タブレット端末等の各種端末又は装置であってもよい。
<理論的構成>
まず、本実施形態に係るWhite-Box AESによる暗号化の理論的構成について説明する。なお、AESでは、16バイトのデータに対する処理を1つのラウンドとして、鍵(暗号鍵)のビット長に応じた回数のラウンドを繰り返し実行することで、データを暗号化する。また、1つのラウンドでは、4バイトに対する処理を1つのサブラウンドとして、4回のサブラウンドを実行する。
以降では、各ラウンドの入力データを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である。
≪1ラウンド目≫
本実施形態に係るWhite-Box AESの1ラウンド目(つまり、r=1である場合)の処理について説明する。暗号化の1ラウンド目では、入力データvは平文であり、出力データwは中間値である。
以降では、一例として、暗号化の1ラウンド目における1サブラウンド目(つまり、s=1である場合)の処理について、図1を参照しながら説明する。図1は、暗号化の1ラウンド目における1サブラウンド目の処理の一例を示す図である。
図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バイトのデータを「選択データ」とも表す。
このとき、本実施形態に係るWhite-Box AESの1ラウンド目における1サブラウンド目では、選択データをルックアップテーブルTbで変換した後、難読化した拡大鍵k'1x(ただし、x=0,5,10,15)との排他的論理和演算を行った上で、ルックアップテーブルT0~T3でそれぞれ変換し、MixColumns処理の排他的論理和演算を行うことで、出力データwのうちの1バイトデータw0~w3を得る。
ここで、図1における各記号は以下を意味する。
RIx(ただし、xはb又は0~4のいずれか):8ビットの乱数
RJ:並べ替え番号を表す16ビットの乱数
RL:ガロア体上の乗算に使用する8ビットの乱数(既約多項式は30通り)。なお、図中では、ガロア体上の乗算を「・」で表記している。また、ガロア体上のRLの逆元を「RL-1」で表記している。
k1x(ただし、x=0~15):1ラウンド目における8ビットの拡大鍵
S():SubBytes処理を実行する関数。なお、図中では、「S」と表記している。
Sort(RJ,d):パラメータRJと8ビットのデータdとを入力として、このデータdの各ビット値を並べ替えて8ビットのデータを出力する関数。なお、図中では、「Sort(RJ)」と表記している。
Rvrs(RJ,d):パラメータRJと8ビットのデータdとを入力としたSort(RJ,d)の逆変換。なお、図中では、「Rvrs(RJ)」と表記している。
また、RI4及びk'1xを以下で定義する。
Figure 0007459569000001
Figure 0007459569000002
なお、k'1xは難読化した拡大鍵である。
そして、任意の8ビットデータdに対して、平文を変換するルックアップテーブルTbを以下で構成する。
Figure 0007459569000003
また、任意の8ビットデータdに対して、SubBytes処理とMixColumns処理の乗算とを合成したルックアップテーブルT0~T3を以下で構成する。
Figure 0007459569000004
以上のルックアップテーブルTb、T0~T3及び難読化した拡大鍵k'1x(ただし、x=0,5,10,15)により、本実施形態に係るWhite-Box AESの1ラウンド目における1サブラウンド目の処理が実現される。すなわち、以下により出力データwのうちの1バイトデータw0~w3が得られる。
Figure 0007459569000005
なお、出力データ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をそれぞれ用いる。
≪r(1≦r≦E)ラウンド目≫
次に、本実施形態に係るWhite-Box AESのr(2≦r≦E)ラウンド目(すなわち、中間ラウンド)の処理について説明する。暗号化のr(2≦r≦E)ラウンド目では、入力データvは1つ前のラウンドで出力された中間値であり、出力データwは次のラウンドに入力される中間値である。
以降では、一例として、暗号化のr(2≦r≦E)ラウンド目における1サブラウンド目(つまり、s=1である場合)の処理について、図2を参照しながら説明する。図2は、暗号化のr(2≦r≦E)ラウンド目における1サブラウンド目の処理の一例を示す図である。
図2に示すように、r(2≦r≦E)ラウンド目における1サブラウンド目では、例えば、16バイトの入力データvのうち、v0、v5、v10及びv15が選択データとなる。
このとき、本実施形態に係るWhite-Box AESのr(2≦r≦E)ラウンド目における1サブラウンド目では、選択データと難読化した拡大鍵k'rx(ただし、x=0,5,10,15)との排他的論理和演算を行った上で、ルックアップテーブルT0~T3でそれぞれ変換し、MixColumns処理の排他的論理和演算を行うことで、出力データwのうちの1バイトデータw0~w3を得る。
ここで、krx(ただし、x=0~15)はrラウンド目における8ビットの拡大鍵であり、k'rxは拡大鍵krxを以下により難読化したものである。
Figure 0007459569000006
以上のルックアップテーブルT0~T3及び難読化した拡大鍵k'rx(ただし、x=0,5,10,15)により、本実施形態に係るWhite-Box AESのr(2≦r≦E)ラウンド目における1サブラウンド目の処理が実現される。すなわち、以下により出力データwのうちの1バイトデータw0~w3が得られる。
Figure 0007459569000007
なお、出力データ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をそれぞれ用いる。
≪E+1ラウンド目≫
次に、本実施形態に係るWhite-Box AESのE+1ラウンド目(すなわち、最終ラウンド)の処理について説明する。暗号化のE+1ラウンド目では、入力データvは1つ前のラウンドで出力された中間値であり、出力データwは暗号文である。
以降では、一例として、暗号化のE+1ラウンド目における1サブラウンド目(つまり、s=1である場合)の処理について、図3を参照しながら説明する。図3は、暗号化のE+1ラウンド目における1サブラウンド目の処理の一例を示す図である。
図3に示すように、E+1ラウンド目における1サブラウンド目では、例えば、16バイトの入力データvのうち、v0、v5、v10及びv15が選択データとなる。
このとき、本実施形態に係る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を得る。
ここで、k(E+1)x(ただし、x=0~15)はE+1ラウンド目における8ビットの拡大鍵であり、k'(E+1)xは拡大鍵k(E+1)xを以下により難読化したものである。
Figure 0007459569000008
RIeは8ビットの乱数である。
また、任意の8ビットデータdに対して、暗号文に変換するルックアップテーブルTeを以下で構成する。
Figure 0007459569000009
以上のルックアップテーブル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 0007459569000010
なお、出力データ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をそれぞれ用いる。
また、図3に示す例では、ルックアップテーブルT0を用いたが、ルックアップテーブルT0の代わりに、ルックアップテーブルT1が用いられてもよい。このように、ルックアップテーブルT0又はT1を利用することで、必要なルックアップテーブル数が削減され、省メモリ化に寄与することができる。
≪応用例≫
図1~図3で説明したルックアップテーブルTb、T0~T3及びTeは、その変換成分及び逆変換成分を多段に構成することで、よりセキュリティ強度を高めることが可能になる。具体的には、Nを2以上の整数として、図1の(1)に示す変換成分をN個用いてルックアップテーブルTbを構成し、図1の(2)に示す逆変換成分及び(3)に示す変換成分をそれぞれN個用いてルックアップテーブルT0~T3を構成し、図3の(4)に示す逆変換成分をN個用いてルックアップテーブルTeを構成すればよい。
<機能構成>
次に、本実施形態に係る暗号システム10の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係る暗号システム10の機能構成の一例を示す図である。
図4に示すように、本実施形態に係る暗号システム10は、選択部101と、テーブル参照部102と、演算部103と、記憶部104とを有する。
記憶部104には、ルックアップテーブルTb、T0~T3及びTeが記憶されている。なお、記憶部104には、暗号化に用いる種々のデータ(例えば、平文、中間値、暗号文等)が記憶されてもよい。
選択部101は、サブラウンド毎に入力データvから4つの選択データを選択する。テーブル参照部102は、記憶部104に記憶されているルックアップテーブルTb、T0~T3及びTeを参照して、8ビットのデータに対応する演算値を取得(言い換えれば、8ビットのデータを、当該データに対応する演算値に変換)する。演算部103は、拡大鍵を難読化するための演算や排他的論理和演算等を行う。
<ハードウェア構成>
次に、本実施形態に係る暗号システム10のハードウェア構成について、図5を参照しながら説明する。図5は、本実施形態に係る暗号システム10のハードウェア構成の一例を示す図である。
図5に示すように、本実施形態に係る暗号システム10は、プロセッサ201と、メモリ装置202と、I/F203とを有する。これら各ハードウェアは、それぞれがバス204を介して通信可能に接続されている。
プロセッサ201は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の各種演算装置である。本実施形態に係る暗号システム10が有する各機能部(選択部101、テーブル参照部102及び演算部103)は、メモリ装置202に格納された1以上のプログラムがプロセッサ201に実行させる処理により実現される。
メモリ装置202は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。本実施形態に係る暗号システム10が有する記憶部104は、例えば、メモリ装置202を用いて実現可能である。
I/F203は、暗号システム10にデータを入力したり、暗号システム10からデータを出力したりするためのインタフェースである。
本実施形態に係る暗号システム10は、図5に示すハードウェア構成を有することにより、各種処理を実現することができる。なお、図5に示すハードウェア構成は一例であって、本実施形態に係る暗号システム10は、例えば、複数のプロセッサ201を有していてもよいし、複数のメモリ装置202を有していてもよい。
<処理の流れ>
以降では、本実施形態に係る暗号システム10により平文を暗号化する処理について説明する。
≪暗号化の1ラウンド目における1サブラウンドあたりの処理≫
まず、暗号化の1ラウンド目における1サブラウンドあたりの処理の流れについて、図6を参照しながら説明する。図6は、本実施形態に係る暗号化の1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。
選択部101は、入力データv(つまり、平文)から4つの選択データを選択する(ステップS101)。なお、上述したように、各選択データは1バイトのデータである。
次に、テーブル参照部102は、上記のステップS101で選択された選択データ毎に、記憶部104に記憶されているルックアップテーブルTbを参照して、当該選択データに対応する演算値を取得する(ステップS102)。
次に、演算部103は、上記のステップS101で選択された選択データ毎に、当該選択データに対応する拡大鍵(1ラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS103)。
次に、テーブル参照部102は、上記のステップS101で選択された選択データ毎に、ルックアップテーブルT0~T3をそれぞれ参照して、上記のステップS103で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS104)。
そして、演算部103は、上記のステップS104で得られた演算値のそれぞれに対して、MixColumns処理の排他的論理和演算を行う(ステップS105)。これにより、1ラウンド目の出力データwのうちの4バイトのデータが得られる。
≪暗号化のr(2≦r≦E)ラウンド目における1サブラウンドあたりの処理≫
次に、暗号化の中間ラウンドにおける1サブラウンドあたりの処理の流れについて、図7を参照しながら説明する。図7は、本実施形態に係る暗号化のr(2≦r≦E)ラウンド目における1サブラウンドあたりの処理の流れを示す図である。
選択部101は、入力データv(つまり、1つ前のラウンドで出力された出力データw)から4つの選択データを選択する(ステップS201)。
次に、演算部103は、上記のステップS201で選択された選択データ毎に、当該選択データに対応する拡大鍵(rラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS202)。
次に、テーブル参照部102は、上記のステップS201で選択された選択データ毎に、ルックアップテーブルT0~T3をそれぞれ参照して、上記のステップS202で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS203)。
そして、演算部103は、上記のステップS203で得られた演算値のそれぞれに対して、MixColumns処理の排他的論理和演算を行う(ステップS204)。これにより、rラウンド目の出力データwのうちの4バイトのデータが得られる。
≪暗号化のE+1ラウンド目における1サブラウンドあたりの処理≫
次に、最終ラウンドにおける1サブラウンドあたりの処理の流れについて、図8を参照しながら説明する。図8は、本実施形態に係る暗号化のE+1ラウンド目における1サブラウンドあたりの処理の流れを示す図である。
選択部101は、入力データv(つまり、Eラウンド目で出力された出力データw)から4つの選択データを選択する(ステップS301)。
次に、演算部103は、上記のステップS301で選択された選択データ毎に、当該選択データに対応する拡大鍵(Eラウンド目の拡大鍵)と、当該選択データに対応する演算値との排他的論理和を演算する(ステップS302)。なお、Eラウンド目の拡大鍵は、Eラウンド目で既に難読化されているものを使用すればよい。
次に、テーブル参照部102は、上記のステップS301で選択された選択データ毎に、ルックアップテーブルT0をそれぞれ参照して、上記のステップS302で得られた演算結果に対応する演算値をそれぞれ取得する(ステップS303)。なお、上述したように、ルックアップテーブルT0の代わりにルックアップテーブルT1が用いられてもよい。
次に、演算部103は、上記のステップS301で選択された選択データ毎に、当該選択データに対応する拡大鍵(E+1ラウンド目の拡大鍵)を難読化した上で、難読化された拡大鍵と、上記のステップS303で得られた演算値のうち、当該選択データに対応する演算値との排他的論理和を演算する(ステップS304)。
そして、テーブル参照部102は、上記のステップS301で選択された選択データ毎に、ルックアップテーブルTeを参照して、上記のステップS304で得られた演算結果に対応する演算値を取得する(ステップS305)。これにより、最終ラウンドの出力データw(つまり、暗号文)のうちの4バイトのデータが得られる。
<まとめ>
以上のように、本実施形態に係る暗号システム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に含まれる乱数成分の解読が必要なため、十分なセキュリティ強度が実現されている。
このように、本実施形態に係る暗号システム10では、十分なセキュリティ強度を実現しつつ、従来よりも省メモリでWhite-Box AESを実現することができる。特に、複数の鍵を保有する場合では、1.5キロバイトのルックアップテーブルを共通で利用できるためメモリ節約効果が大きくなる。
なお、本実施形態では、平文を暗号化する場合について説明したが、暗号文を復号する場合については、暗号化の逆変換となるように各ラウンドを構成することで実現することができる。具体的には、ShiftRows処理の代わりにInvShiftRows処理、SubBytes処理の代わりにInvSubBytes処理、MixColumns処理の代わりにInvMixColumns処理を用いればよい。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
10 暗号システム
101 選択部
102 テーブル参照部
103 演算部
104 記憶部
201 プロセッサ
202 メモリ装置
203 I/F
204 バス

Claims (7)

  1. White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、前記先頭ラウンドの入力データである16バイトの平文データの中からShiftRows処理によって選択された1バイトの選択データを第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドの難読化された拡大鍵のうちの前記選択データに対応する難読化された拡大鍵との排他的論理和に対応する演算結果を取得するを有することを特徴とする情報処理装置。
  2. 記White-Box AESの中間ラウンドにおいて、前記第1のルックアップテーブルを参照して、前記中間ラウンドの入力データである16バイトの中間データの中からShiftRows処理によって選択された1バイトの選択データと前記中間ラウンドの難読化された拡大鍵のうちの前記選択データに対応する難読化された拡大鍵との排他的論理和に対応する演算結果を取得する、ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1のルックアップテーブルは、前記MixColumns処理の乗算の被演算子が1である第3のルックアップテーブル及び第4のルックアップテーブルと、前記乗算の被演算子が2である第5のルックアップテーブルと、前記乗算の被演算子が3である第6のルックアップテーブルとで構成されており、
    記White-Box AESの最終ラウンドにおいて、前記第3のルックアップテーブル又は前記第4のルックアップテーブルを参照して、前記最終ラウンドの入力データである16バイトの中間データの中からShiftRows処理によって選択された1バイトの選択データと前記最終ラウンドの1つ前のラウンドで難読化された拡大鍵のうちの前記選択データに対応する難読化された拡大鍵との排他的論理和に対応する演算結果を取得する、ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. らに、暗号文を得るための第7のルックアップテーブルを参照して、前記取得した演算結果と前記最終ラウンドの難読化された拡大鍵のうちの前記選択データに対応する難読化された拡大鍵との排他的論理和に対応する演算結果を暗号文として取得する、ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記第2のルックアップテーブルに含まれる演算結果は、所定の変換処理とSubBytes処理とMixColumns処理の乗算と前記変換処理に対応する逆変換処理との演算結果であり、
    前記先頭ラウンド難読化された拡大鍵は、前記先頭ラウンドの拡大鍵に対して前記逆変換処理を施した鍵である、ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理装置。
  6. White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、前記先頭ラウンドの入力データである16バイトの平文データの中からShiftRows処理によって選択された1バイトの選択データを第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドの難読化された拡大鍵のうちの前記選択データに対応する難読化された拡大鍵との排他的論理和に対応する演算結果を取得する手順、をコンピュータが実行することを特徴とする情報処理方法。
  7. White-Box AESの先頭ラウンドにおいて、SubBytes処理とMixColumns処理の乗算とが含まれる演算の演算結果が含まれ、かつ、中間ラウンドで共通に利用される第1のルックアップテーブルを参照して、前記先頭ラウンドの入力データである16バイトの平文データの中からShiftRows処理によって選択された1バイトの選択データを第2のルックアップテーブルにより変換した変換結果と前記先頭ラウンドの難読化された拡大鍵のうちの前記選択データに対応する難読化された拡大鍵との排他的論理和に対応する演算結果を取得する手順、をコンピュータに実行させることを特徴とするプログラム。
JP2020038109A 2020-03-05 2020-03-05 情報処理装置、情報処理方法及びプログラム Active JP7459569B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020038109A JP7459569B2 (ja) 2020-03-05 2020-03-05 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020038109A JP7459569B2 (ja) 2020-03-05 2020-03-05 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2021141458A JP2021141458A (ja) 2021-09-16
JP7459569B2 true JP7459569B2 (ja) 2024-04-02

Family

ID=77669170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020038109A Active JP7459569B2 (ja) 2020-03-05 2020-03-05 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7459569B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023192772A2 (en) * 2022-03-29 2023-10-05 The Board Of Regents For Oklahomaagricultural And Mechanical Colleges A reconfigurable architecture for improvement and optimization of advanced encryption standard

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017044757A (ja) 2015-08-24 2017-03-02 富士電機株式会社 情報処理装置及び情報処理方法
JP6135804B1 (ja) 2016-06-01 2017-05-31 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
JP6187624B1 (ja) 2016-03-17 2017-08-30 富士電機株式会社 情報処理装置、情報処理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017044757A (ja) 2015-08-24 2017-03-02 富士電機株式会社 情報処理装置及び情報処理方法
JP6187624B1 (ja) 2016-03-17 2017-08-30 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
JP6135804B1 (ja) 2016-06-01 2017-05-31 富士電機株式会社 情報処理装置、情報処理方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赤井 健一郎 ほか,White-Box AESのプログラムサイズ削減に関する一方式,コンピュータセキュリティシンポジウム2008 論文集,日本,社団法人情報処理学会,2008年10月08日,第2008巻 第8号,p.373-378

Also Published As

Publication number Publication date
JP2021141458A (ja) 2021-09-16

Similar Documents

Publication Publication Date Title
JP5911654B2 (ja) 乱数生成器及びストリーム暗号
CN109417468B (zh) 安全高效的分组密码算法实现的方法与装置
JP5542896B2 (ja) 低電力暗号化装置および方法
TW201545524A (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
EP3032523B1 (en) Information processing device, program, and storage medium
Lu et al. Walsh transforms and cryptographic applications in bias computing
JP2017216619A (ja) 情報処理装置、情報処理方法及びプログラム
JP5652363B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Alahdal et al. A systematic technical survey of lightweight cryptography on IoT environment
JP6187624B1 (ja) 情報処理装置、情報処理方法及びプログラム
JP7459569B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
Tiwari Cryptography in blockchain
KR101445339B1 (ko) 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
Arrag et al. Design and Implementation A different Architectures of mixcolumn in FPGA
Akhshani et al. Hash function based on hierarchy of 2D piecewise nonlinear chaotic maps
Pu et al. Boolean matrix masking for SM4 block cipher algorithm
JP7383985B2 (ja) 情報処理装置、情報処理方法及びプログラム
Rouaf et al. Performance Evaluation of Encryption Algorithms in Mobile Devices
Carlet et al. A new construction of differentially 4-uniform $(n, n-1) $-functions
JP2017044757A (ja) 情報処理装置及び情報処理方法
Goll et al. Vectorization of Poly1305 message authentication code
Touzene et al. Performance of algebraic graphs based stream-ciphers using large finite fields
Ding et al. Slide attack on standard stream cipher Enocoro-80 in the related-key chosen IV setting
CN116866038B (zh) 动态掩码加密方法及动态掩码加密装置

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