JP6292195B2 - 情報処理装置及び情報処理方法 - Google Patents

情報処理装置及び情報処理方法 Download PDF

Info

Publication number
JP6292195B2
JP6292195B2 JP2015165174A JP2015165174A JP6292195B2 JP 6292195 B2 JP6292195 B2 JP 6292195B2 JP 2015165174 A JP2015165174 A JP 2015165174A JP 2015165174 A JP2015165174 A JP 2015165174A JP 6292195 B2 JP6292195 B2 JP 6292195B2
Authority
JP
Japan
Prior art keywords
data
information processing
round
processing apparatus
replacement
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
JP2015165174A
Other languages
English (en)
Other versions
JP2017044757A (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 JP2015165174A priority Critical patent/JP6292195B2/ja
Publication of JP2017044757A publication Critical patent/JP2017044757A/ja
Application granted granted Critical
Publication of JP6292195B2 publication Critical patent/JP6292195B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置及び情報処理方法に関する。
従来、データの暗号化の方式として、FIPS(Federal Inrmation Processing Standard)197(アメリカ国立標準技術研究所、2001年公表)で定められているAES(Advanced Encryption Standard)方式が知られている。
また、スマートカードにおいて、Lombok暗号化アルゴリズムのホワイトボックス実装を行うことによって、鍵を保護する方法が知られている(例えば、特許文献1)。
特表2011−512726号公報
しかしながら、AESにおける従来のホワイトボックス実装では、用いられるテーブルのデータ等の容量が大きいため、テーブルのデータ等を記憶するメモリ容量が大きくなる場合がある。
本発明の1つの側面は、AES方式において、テーブルのデータ等を記憶するメモリ容量を小さくすることを目的とする。
一態様における、入力データをAES方式で暗号化又は復号化する情報処理装置は、前記入力データのうち、4バイトのサブラウンドデータを選択する選択部と、前記サブラウンドデータを1バイトのデータごとに、第1テーブルに基づいてそれぞれ1ステップで置換して難読化し、それぞれの置換データを生成する置換部と、前記置換データのビットを並び替え、かつ、所定の値との排他的論理和となるように、第2テーブルに基づいて前記置換データを1ステップで置換して並替データを生成する並び替え部と、前記並替データの排他的論理和を計算する排他的論理和計算部とを含む。

AES方式において、テーブルのデータ等を記憶するメモリ容量を小さくすることができる。
本発明の一実施形態に係る組み込みシステムのハードウェア構成の一例を説明するブロック図である。 本発明の一実施形態に係る暗号化の1ラウンド当たりの処理の一例を説明するフローチャートである。 本発明の一実施形態に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図である。 比較例に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図である。 本発明の一実施形態に係る暗号化の別の1ラウンド当たりの処理の一例を説明する模式図である。 本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。
情報処理装置は、例えば、組み込みシステム(Embedded system)である。組み込みシステムは、産業機器又は家電製品等に内蔵され、特定の機能を実現するためのシステムである。なお、情報処理装置は、PC(Personal Computer)等でもよい。以下、本発明の実施形態を図面に基づいて、情報処理装置が組み込みシステムである例で説明する。
1.組み込みシステムのハードウェア構成例
2.組み込みシステムによる全体処理例
3.組み込みシステムの機能構成例
<<1.組み込みシステムのハードウェア構成例>>
図1は、本発明の一実施形態に係る組み込みシステムのハードウェア構成の一例を説明するブロック図である。図示するように、組み込みシステム1は、演算装置HW1と、記憶装置HW2と、I/F(interface)HW3とを有する。
演算装置HW1は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等である。また、演算装置HW1は、組み込みシステム1が行う処理の全部又は一部を実現するための演算と、データの加工とを行う演算装置並びに組み込みシステム1が有するハードウェアを制御する制御装置である。さらに、演算装置HW1は、例えば、図示するように、RAM(Random Access Memory)HW10及びROM(Read−Only Memory)HW11等の記憶装置を内蔵し、記憶領域を実現する。
RAMHW10は、演算装置HW1等が用いるプログラム、設定値又はデータ等を展開及び記憶するために用いられる記憶装置である。
ROMHW11は、演算装置HW1等が用いるプログラム、設定値又はデータ等を記憶する記憶装置である。
記憶装置HW2は、いわゆるメモリ(memory)等である。また、記憶装置HW2は、組み込みシステム1が用いるプログラム、設定値又はデータ等を記憶する記憶装置である。なお、記憶装置HW2は、補助記憶装置等を有してもよい。
I/FHW3は、組み込みシステム1にデータ等を入出力するインタフェースである。I/FHW3は、バス、コネクタ、ケーブル及びドライバ等で実現される。
なお、組み込みシステム1のハードウェア構成は、図示する構成に限られない。例えば組み込みシステム1は、記憶装置HW2を有さなくともよい。また、組み込みシステム1は、更に演算装置等の補助装置を外部又は内部に有してもよい。
<<2.組み込みシステムによる全体処理例>>
図2は、本発明の一実施形態に係る暗号化の1ラウンド当たりの処理の一例を説明するフローチャートである。以下、AES方式において、処理の単位となる16バイト(byte)の入力データに対する処理単位(以下「1ラウンド(round)」という。)について説明する。なお、1ラウンド当たりの処理は、AES方式に用いられる鍵のビット(bit)長等に合わせて、繰り返し行われる。
図3は、本発明の一実施形態に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図である。具体的には、1ラウンド当たりの処理は、図3に示す「0」乃至「15」の1バイトのデータが16個入力された入力データD_INに対する処理である。さらに、1ラウンド当たりの処理は、16バイトのうち、選択される4バイトのデータを処理単位(以下「1サブラウンド(sub−round)」という。)として処理が繰り返し行われる。つまり、1ラウンド当たりの処理では、4サブラウンドの処理が繰り返し行われる。以下、図2及び図3では、1ラウンド当たりの処理のうち、1サブラウンド当たりの処理を中心に説明する。
<<サブラウンドデータの選択例(ステップS0101)>>
図2に示すステップS0101では、組み込みシステムは、サブラウンドデータを選択する。即ち、図2に示すステップS0101では、組み込みシステムは、図3に示す入力データD_INのうち、1サブラウンド当たりの処理対象となる1サブラウンドデータを選択する。
以下、図3に示すように、図2に示すステップS0101で、入力データD_INのうち、「0」、「5」、「10」及び「15」の1バイトのそれぞれのデータがサブラウンドデータとして選択される例で説明する。そのうち、選択されるサブラウンドデータのうち、「0」の1バイトのデータに対する処理を例に説明する。
<<第1テーブルに基づく置換例(ステップS0102)>>
図2に示すステップS0102では、組み込みシステムは、第1テーブルに基づいて置換を行う。即ち、図3に示すように、組み込みシステムは、入力される「0」の1バイトのデータを第1テーブルに基づいて置換する。第1テーブルに基づいて置換が行われると、置換データが生成される。また、第1テーブルに基づく置換には、第1変換「g」と、第2逆変換「f−1」とが含まれる。なお、ステップS0102の詳細は、後述する。
<<第2テーブルに基づいてビットの並び替え例(ステップS0103)>>
図2に示すステップS0103では、組み込みシステムは、第2テーブルに基づいてビットを並び替える。なお、ステップS0103の詳細は、後述する。
<<排他的論理和(XOR、exclusive or)の計算例(ステップS0104)>>
図2に示すステップS0104では、組み込みシステムは、排他的論理和を計算する。なお、ステップS0104の詳細は、後述する。
また、第2テーブルに基づく置換及び排他的論理和が計算には、第2変換「f」が含まれる。
「0」の1バイトのデータと同様に、入力データD_INのうち、「5」、「10」及び「15」の1バイトのデータに対してステップS0101乃至ステップS0104がそれぞれ行われると、出力データD_OUTのうち、「0」乃至「3」のデータがそれぞれ生成され、1サブラウンドの処理が完了する。
なお、図2に示す処理における各手順が行われる順序は、図2に示す順序に限られない。例えば、ステップS0101及びステップS0102が行われる順序は、逆でもよい。また、各手順の一部又は全部は、分散、並列、冗長又はこれらを組み合わせて行われてもよい。
<<比較例>>
図4は、比較例に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図である。図4は、図3と同様に、入力データD_INのうち、4つの1バイトのデータに対して処理が行われ、出力データD_OUTのうち、4つの1バイトのデータが生成される1サブラウンド当たりの処理の一例を示す。図4に示す処理も、図3と同様に、1ラウンド当たりの処理では、4サブラウンドの処理が繰り返し行われる。以下、1サブラウンド当たりの処理を中心に説明する。
ステップS0201では、4つの1バイトのデータが選ばれる。また、FIPS197で定められている「ShiftRows」関数を実行した処理結果と、ステップS0201を行った処理結果とは、同様の結果となる。
ステップS0202では、ステップS0201で選ばれる1バイトのデータが、いわゆるT−Box等によって変換され、変換されたデータが出力される。
ステップS0203では、ステップS0202で出力されるデータに対して、いわゆるXOR−Tables等のテーブルによって変換が行われ、図示するように、排他的論理和の計算が行われた場合と同様の処理結果が出力される。
図示するように、FIPS197で定められている「AddRoundKey」関数、「SubBytes」関数及び「MixColumns」関数をそれぞれ実行した処理結果と、ステップS0202及びステップS0203をそれぞれ行った処理結果とは、同様の結果となる。
図示するように、1サブラウンド当たりの処理が行われると、ステップS0203の出力である4つの1バイトのデータが、出力データD_OUTのうちの「0」乃至「3」のデータとして、生成される。
この比較例では、処理で変換等に用いる各テーブルのデータは、鍵のビット長さが128ビットである場合には、合計して508キロバイト(k byte)の容量となり、鍵のビット長さが256ビットである場合には、合計して732キロバイトの容量となる。即ち、鍵のビット長さが128ビットである場合には、比較例を実現するのに、508キロバイト以上のメモリ領域が必要となり、情報処理装置は、508キロバイト以上を記憶できるROM等を実装する必要がある。
<<本発明の一実施形態に係る組み込みシステムによる各処理の詳細及び処理結果例>>
図3に示すように、FIPS197で定められている「ShiftRows」関数を実行した処理結果に対して、ステップS0101(図2及び図3)を行うことによって、組み込みシステムは、同様の処理結果を得ることができる。
また、図3に示すように、FIPS197で定められている「AddRoundKey」関数及び「SubBytes」関数をそれぞれ実行した処理結果に対して、ステップS0102(図2及び図3)を行うことによって、組み込みシステムは、同様の処理結果を含むことができる。例えば、入力データD_IN(図3)のうち、「0」の1バイトのデータに対して、ステップS0102が行われると、組み込みシステムは、第1変換「g」と、第2逆変換「f −1」と、図4に示す「T 」による変換とがそれぞれ行われた場合と、同一の処理結果を含むことができる。
なお、第1変換「g」と、第1逆変換「g−1」とは、変換と、逆変換との関係である。同様に、第2変換「f」と、第2逆変換「f−1」とは、変換と、逆変換との関係である。変換と、逆変換との関係は、任意のデータに対して、変換が行われた後、更に逆変換が行われると、変換前のデータに戻る関係である。
図3に示すように、第1テーブルT1に基づく置換に第1変換「g」が含まれると、いわゆる乱数成分が含まれることになり、組み込みシステムは、ステップS0102の出力において、いわゆる難読化が実現できる。
また、図3に示すように、ステップS0102は、第1テーブルT1、いわゆるLUT(Look Up Table)で実現される。第1テーブルT1による置換によって、1バイトのデータが「2=256」通りに置換されるとすると、第1テーブルT1は、「1バイト×256通り=256バイト」の容量となる。
さらに、1ラウンド当たりの処理では、4サブラウンドが行われるので、1ラウンドに対して、第1テーブルT1に係る容量は、「256バイト×4個/サブラウンド=1024バイト/サブラウンド=1キロバイト/サブラウンド」となる。さらにまた、図3に示すように、第1テーブルT1は、4つの1バイトに対してそれぞれ用いられるため、第1テーブルT1の容量は、「1キロバイト×4個=4キロバイト」となる。各ラウンドでそれぞれ異なる第1テーブルT1が用いられるとすると、第1テーブルT1に係る全ラウンドに必要な容量は、9ラウンドが行われる場合には、「4キロバイト×9ラウンド=36キロバイト」となる。
なお、各ラウンドでそれぞれ異なる第1テーブルT1が用いられ、かつ、9ラウンドが行われる場合には、第1テーブルT1の数は、「4個×4サブラウンド×9ラウンド=144個」となる。
また、第1テーブルT1に係る全ラウンドに必要な容量及び第1テーブルT1の数は、AES方式における鍵のビット長によって異なる。具体的には、鍵のビット長が192ビットである場合には、鍵のビット長が128ビットである場合と行われるラウンド数等が異なるため、第1テーブルT1に係る全ラウンドに必要な容量は、「44キロバイト」であり、第1テーブルT1の数は、「176個」となる。また、鍵のビット長が256ビットである場合には、第1テーブルT1に係る全ラウンドに必要な容量は、「52キロバイト」であり、第1テーブルT1の数は、「208個」となる。
次に、図3に示すように、FIPS197で定められている「MixColumns」関数を実行した処理結果に対して、ステップS0103(図2及び図3)及びステップS0104(図2及び図3)をそれぞれ行うことによって、組み込みシステムは、同様の処理結果を含ませることができる。
図3に示すように、ステップS0103は、第2テーブルT2、いわゆるLUTで実現される。図3に示す処理では、「MixColumns」関数を実行した処理結果と、同様の処理結果を含ませるため、ステップS0103で、第2テーブルT2による置換が行われる。
また、図3に示すように、第2テーブルT2による置換が行われると、ステップS0102による第1変換「g」に対する第1逆変換「g−1」が含まれる。
さらに、図3に示す第2テーブルT2による置換が行われると、ビットの並び替えが行われる。ビットの並び替えは、図3では、並び替え「h」で示すとする。例えば、並び替え「h」は、入力された1バイトのデータをそれぞれ1倍、1倍、2倍及び3倍にし、続いて、各計算結果の出力である4バイトの各ビットの並びを並び替える。これによって、並び替え「h」は、1バイトのデータの入力に対して、それぞれ乗算し、かつ、並び替えた値をそれぞれ出力する、即ち、4つの1バイトのデータをそれぞれ出力する。
したがって、第2テーブルT2は、入力が256通りであり、256通りの入力に対して4つの出力を行うため、「256通り×4バイト=1024バイト=1キロバイト」の容量となる。また、図3に示すように、1サブラウンドでは、4個の第2テーブルT2がそれぞれ用いられるため、第2テーブルT2に係る容量は、「1キロバイト×4個=4キロバイト」となる。
また、第2テーブルT2による置換及びステップS0104による排他的論理和の計算とそれぞれ行った処理結果には、図3に示すステップS0102における第2逆変換「f−1」に対する第2変換「f」が含まれる。具体的には、入力データD_INのうち、「0」の1バイトのデータとして、「a」のデータが入力されるとすると、並び替え「h」及び排他的論理和の計算と、第2変換「f」との関係は、下記(1)式に示す関係となる。
Figure 0006292195
上記(1)式と同様に、入力データD_INのうち、「5」の1バイトのデータとして、「a」のデータが入力されるとすると、ステップS0103及びステップS0104を合わせた処理と、第2変換「f」との関係は、下記(2)式に示すようになる。
Figure 0006292195
第2テーブルT2による置換に含まれる並び替え「h」は、1バイト、即ち、8ビットのビットを並び替えるため、並び替えのパターンは、「8!=40320≒215.3」通りとなる。また、ステップS0104による排他的論理和の計算は、「232=4294967296」通りのパターンを作り出せる。したがって、ステップS0103における第2テーブルT2による置換及びステップS0104による排他的論理和の計算によって、組み込みシステムは、「MixColumns」関数を実行した処理結果と同様の処理結果を含ませることができる。
図4に示す比較例と比較すると、ステップS0203で用いられる、いわゆるXOR−Tables等のテーブルがなくとも、ステップS0103及びステップS0104によって、「MixColumns」関数を実行した場合と同様程度に、組み込みシステムは、セキュリティの強度を確保することができる。
また、図3に示すように、「AddRoundKey」関数、「SubBytes」関数及び「MixColumns」関数の実行を第1テーブルT1による置換、第2テーブルT2による置換及び排他的論理和の計算等をそれぞれ行うことによって実現して、組み込みシステムは、処理中のデータ等が解析された場合に、処理対象となっているデータの内容等が理解されにくい、即ち、データの内容等を難読化させることができる。
これは、処理対象となるデータを取得又は解析されにくくするBlack Box AESに対して、何らかの方法によって処理対象となるデータが取得されてしまい、データが解析された場合でも、解析によってデータの内容等が理解されにくくできる、いわゆるWhite Box AESに相当する。したがって、組み込みシステムは、図2及び図3に示す処理をそれぞれ行うことで、White Box AESを実現することができる。
なお、第2テーブルT2は、サブラウンドにおける処理ごとにそれぞれ異なるテーブルが用意されると、サブラウンドにおけるそれぞれの処理で参照されるテーブルが異なるため、組み込みシステムは、第2テーブルT2による置換を解析する計算コストを高くすることができる。即ち、組み込みシステムは、よりセキュリティを向上させることができる。具体的には、図3では、入力データD_INの「0」、「5」、「10」及び「15」に対する各処理において、それぞれの処理で用いられる第2テーブルT2が、それぞれ異なるようにテーブルを記憶する等である。
一方、第2テーブルT2は、ラウンドごとに異なるテーブルが用意されてもよい。即ち、第2テーブルT2は、サブラウンドごとには、使い回されてもよい。
図5は、本発明の一実施形態に係る暗号化の別の1ラウンド当たりの処理の一例を説明する模式図である。具体的には、図2及び図3に示す処理の次の処理として、図示するように、入力データD_INのうち、「3」、「4」、「9」及び「14」の1バイトのデータがそれぞれ選択され、図3と同様に、図2に示す各処理が選択された1バイトのデータに対してそれぞれ行われる例である。つまり、まず、図3に示す処理により、出力データとして、「0」乃至「3」のデータが、それぞれ生成され、1サブラウンドの処理が完了する。次に、図5に示す処理により、出力データD_OUTのうち、「4」乃至「7」データが、それぞれ生成される場合の例である。
この例において、図5に示すように、前の処理である図3に示す処理と、図5に示す次の処理とで、共通して、同一の第2テーブルT2が使用されてもよい。
一方、第2テーブルT2は、奇数ラウンドと、偶数ラウンドとでそれぞれ異なるテーブルが用意されてもよい。
第2テーブルT2がサブラウンド、ラウンド、奇数ラウンド又は偶数ラウンドごとに共通して使用されると、組み込みシステムは、第2テーブルT2のデータを記憶するメモリ容量を小さくすることができる。
例えば、ラウンド内で同一の第2テーブルT2が共通して使用されると、1サブラウンド当たり4キロバイトの容量となるので、1ラウンド当たりの容量は、4キロバイトの容量とすることができる。これに対して、それぞれ異なる第2テーブルT2が使用されると、1ラウンド当たりの容量は、16キロバイトの容量となる。
したがって、組み込みシステムは、第2テーブルT2のデータを記憶するメモリ容量をより小さくすることができる。
また、上述に示す構成は、組み合わせて実現されてもよい。例えば、サブラウンドにおける処理ごとに異なる第2テーブルT2が用意され、かつ、奇数ラウンドごと又は偶数ラウンドごとに、第2テーブルT2がそれぞれ共通して使用されると、第2テーブルT2の数は、「4個×2個=8個」となる。また、第2テーブルT2に係る全ラウンドに必要な容量は、「4キロバイト×8個=32キロバイト」となる。
例えば、9ラウンドが行われ、かつ、奇数ラウンドごと又は偶数ラウンドごとに、第2テーブルT2がそれぞれ共通して使用されるとする。この場合には、第1テーブルT1に係る全ラウンドに必要な容量は、「36キロバイト」であり、かつ、第2テーブルT2に係る全ラウンドに必要な容量は、「8キロバイト」である。したがって、組み込みシステムは、「36キロバイト+8キロバイト=44キロバイト」の小さいメモリ容量で、データの内容等が解析されにくいWhite Box AESを実現することができる。また、鍵のビット長が256ビットである場合には、組み込みシステムは、「60キロバイト」の小さいメモリ容量で、データの内容等が解析されにくいWhite Box AESを実現することができる。
<<3.組み込みシステムの機能構成例>>
図6は、本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。図示するように、組み込みシステム1は、選択部FN1と、置換部FN2と、並び替え部FN3と、排他的論理和計算部FN4とを含む。
選択部FN1は、入力データD_INのうち、4バイトのサブラウンドデータD_SRを選択する。なお、入力データD_INは、図3に示すように、16バイトの1ラウンドデータである。また、選択部FN1によって、サブラウンドデータD_SRが選択されると、FIPS197で定められている「ShiftRows」関数を実行した処理結果と同様の処理結果が得られる。さらに、選択部FN1は、例えば、演算装置HW1(図1)等によって実現される。
置換部FN2は、サブラウンドデータD_SRを1バイトのデータごとに、第1テーブルT1に基づいてそれぞれ置換して、それぞれの置換データD_SSを生成する。また、第1テーブルT1に基づく置換には、図3に示す第1変換「g」等が含まれる。さらに、第1テーブルT1に基づく置換には、図3に示す第2逆変換「f−1」等が含まれる。さらにまた、置換部FN2によって、第1テーブルT1に基づく置換が行われると、FIPS197で定められている「AddRoundKey」関数及び「SubBytes」関数をそれぞれ実行した処理結果と同様の処理結果が含まれる。なお、置換部FN2は、例えば、演算装置HW1等によって実現される。
並び替え部FN3は、置換データD_SSのビットを第2テーブルT2に基づく置換によって、並び替えて並替データD_CHを生成する。また、第2テーブルT2に基づく置換には、図3に示す第1逆変換「g−1」等が含まれる。さらに、並び替え部FN3は、第2テーブルT2をサブラウンド、ラウンド、奇数ラウンド又は偶数ラウンドごとに共通して使用してもよい。なお、並び替え部FN3は、例えば、演算装置HW1等によって実現される。
排他的論理和計算部FN4は、並替データD_CHの排他的論理和を計算する。なお、排他的論理和計算部FN4は、例えば、演算装置HW1等によって実現される。
並び替え部FN3による第2テーブルT2に基づく置換及び排他的論理和計算部FN4による排他的論理和の計算がそれぞれ行われると、FIPS197で定められている「MixColumns」関数を実行した処理結果と同様の処理結果が含まれる。
なお、組み込みシステムは、AES方式によって暗号化を行うに限られない。例えば、組み込みシステムは、各処理の逆関数に相当する処理を用いて、復号化を行ってもよい。なお、例えば、「ShiftRows」関数の逆関数は、「InvShiftRows」関数等である。他にも、「SubBytes」関数の逆関数は、「InvSubBytes」関数であり、「MixColumns」関数の逆関数は、「InvMixColumns」関数である。
また、本発明は、使用できる記憶容量等に係る制約が多い組み込みシステムに適用される形態が望ましい。さらに、組み込みシステムは、プログラム及びデータの解読を難しくするため、図1に示すように、演算装置にメモリが内蔵されるハードウェア構成であるのが望ましい。
組み込みシステムは、例えば、いわゆるスマートメータ(Smart Meter)等に用いられる。スマートメータ等は、外部装置等とデータを送受信する場合が多い。この場合には、スマートメータ等は、組み込みシステムによって、AES方式で暗号化してデータを送受信できる。これによって、送受信されるデータは、暗号化されているため、スマートメータは、データの送受信においてセキュリティを向上させることができる。
なお、組み込みシステムは、スマートメータに応用されるに限られない。例えば、組み込みシステムは、組込機器全般、クラウド等によって他の装置と通信を行う装置、IoT(Internet of Things)に用いられる各装置、又はこれらを組み合わせた情報処理システム等に応用されてもよい。
また、組み込みシステムは、1つの情報処理装置によって実現される構成に限られない。即ち、組み込みシステムは、2つ以上の情報処理装置を有する情報処理システムによって実現されてもよい。なお、情報処理システムでは、各処理の一部又は全部が分散、冗長、並列又はこれらを組み合わせるように、処理が行われてもよい。
以上、本発明の好ましい実施例について詳述したが、本発明は、係る特定の実施形態に限定されるものではない。即ち、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
1 組み込みシステム
D_IN 入力データ
D_OUT 出力データ
T1 第1テーブル
T2 第2テーブル

Claims (11)

  1. 入力データをAES方式で暗号化又は復号化する情報処理装置であって、
    前記入力データのうち、4バイトのサブラウンドデータを選択する選択部と、
    前記サブラウンドデータを1バイトのデータごとに、第1テーブルに基づいてそれぞれ1ステップで置換して難読化し、それぞれの置換データを生成する置換部と、
    前記置換データのビットを並び替え、かつ、所定の値との排他的論理和となるように、第2テーブルに基づいて1ステップで前記置換データを置換して並替データを生成する並び替え部と、
    前記並替データの排他的論理和を計算する排他的論理和計算部と
    を含む情報処理装置。
  2. 前記入力データは、16バイトの1ラウンドデータである請求項1に記載の情報処理装置。
  3. 前記第1テーブルに基づく置換には、第1変換が含まれ、前記第2テーブルに基づく置換には、前記第1変換に対する第1逆変換が含まれる請求項1又は2に記載の情報処理装置。
  4. 前記第2テーブルに基づく置換及び前記排他的論理和の計算には、第2変換が含まれ、前記第1テーブルに基づく置換には、前記第2変換に対する第2逆変換が含まれる請求項1に記載の情報処理装置。
  5. 前記選択が行われると、ShiftRows関数を実行した処理結果と同様の処理結果が得られる請求項1に記載の情報処理装置。
  6. 前記第1テーブルに基づく置換が行われると、AddRoundKey関数及びSubBytes関数をそれぞれ実行した処理結果と同様の処理結果が含まれる請求項1に記載の情報処理装置。
  7. 前記第2テーブルに基づく置換及び前記排他的論理和の計算がそれぞれ行われると、MixColumns関数を実行した処理結果と同様の処理結果が含まれる請求項1に記載の情報処理装置。
  8. 前記第2テーブルは、サブラウンド、ラウンド、奇数ラウンド又は偶数ラウンドごとに共通して使用される請求項1に記載の情報処理装置。
  9. 前記情報処理装置は、組み込みシステムである請求項1に記載の情報処理装置。
  10. 前記AES方式は、White Box AESである請求項1に記載の情報処理装置。
  11. 入力データをAES方式で暗号化又は復号化し、演算装置及び記憶装置を有する情報処理装置が行う情報処理方法であって、
    前記演算装置が、前記入力データのうち、4バイトのサブラウンドデータを選択する選択手順と、
    前記演算装置が、前記サブラウンドデータを1バイトのデータごとに、前記記憶装置が記憶する第1テーブルに基づいてそれぞれ1ステップで置換して難読化し、それぞれの置換データを生成する置換手順と、
    前記演算装置が、前記置換データのビットを並び替え、かつ、所定の値との排他的論理和となるように、前記記憶装置が記憶する第2テーブルに基づいて前記置換データを1ステップで置換して並替データを生成する並び替え手順と、
    前記演算装置が、前記並替データの排他的論理和を計算する排他的論理和計算手順と
    を含む情報処理方法。
JP2015165174A 2015-08-24 2015-08-24 情報処理装置及び情報処理方法 Active JP6292195B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015165174A JP6292195B2 (ja) 2015-08-24 2015-08-24 情報処理装置及び情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015165174A JP6292195B2 (ja) 2015-08-24 2015-08-24 情報処理装置及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2017044757A JP2017044757A (ja) 2017-03-02
JP6292195B2 true JP6292195B2 (ja) 2018-03-14

Family

ID=58210030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015165174A Active JP6292195B2 (ja) 2015-08-24 2015-08-24 情報処理装置及び情報処理方法

Country Status (1)

Country Link
JP (1) JP6292195B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7383949B2 (ja) 2019-09-20 2023-11-21 富士電機株式会社 情報処理装置及びプログラム
JP7383985B2 (ja) 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
JP7459569B2 (ja) 2020-03-05 2024-04-02 富士電機株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003195749A (ja) * 2001-12-26 2003-07-09 Denso Create:Kk データ変換装置、データ変換プログラム、記録媒体及びデータ変換方法
JP2006235440A (ja) * 2005-02-28 2006-09-07 Seiko Epson Corp 半導体集積回路
JP2007034178A (ja) * 2005-07-29 2007-02-08 Canon Inc データ変換装置、プログラム、記憶媒体
WO2007105126A2 (en) * 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function
US20080019524A1 (en) * 2006-06-29 2008-01-24 Kim Moo S Apparatus and method for low power aes cryptographic circuit for embedded system
US7890750B2 (en) * 2006-07-06 2011-02-15 Accenture Global Services Limited Encryption and decryption on a graphics processing unit
EP2293487A1 (en) * 2009-09-08 2011-03-09 Thomson Licensing A method of diversification of a round function of an encryption algorithm
JP5439233B2 (ja) * 2010-03-08 2014-03-12 株式会社東芝 制御装置
CN102411683B (zh) * 2011-08-15 2014-04-02 复旦大学 一种适用于嵌入式系统的基于高速缓存的aes加速器
JP5612007B2 (ja) * 2012-03-15 2014-10-22 株式会社東芝 暗号化鍵生成装置

Also Published As

Publication number Publication date
JP2017044757A (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
US10148427B2 (en) Information processing apparatus, method for processing information, and medium
KR102169369B1 (ko) 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치
JPWO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、コンピュータプログラム、そのデータ通信システム
US10044499B2 (en) Information processing apparatus, program, and storage medium
JP6292195B2 (ja) 情報処理装置及び情報処理方法
US10411881B2 (en) Data processing apparatus, method for processing data, and medium
KR101914453B1 (ko) 암호화 장치 및 방법
KR102565443B1 (ko) 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
US10097343B2 (en) Data processing apparatus and data processing method
CN113098675A (zh) 基于多项式完全同态的二进制数据加密系统及方法
KR101445339B1 (ko) 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
JP5992651B2 (ja) 暗号化方法、プログラム、および、システム
US8774402B2 (en) Encryption/decryption apparatus and method using AES rijndael algorithm
US10181947B2 (en) Information processing apparatus, program, and recording medium
JP2014240921A (ja) 暗号装置、暗号処理方法及び暗号処理プログラム
JP6167721B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
JP7383985B2 (ja) 情報処理装置、情報処理方法及びプログラム
JPWO2009090689A1 (ja) 暗号化装置及び暗号処理方法
KR101807259B1 (ko) 암호화 장치 및 방법
KR102157219B1 (ko) 경량 블록 암호화에 대한 고차 부채널 공격에 대응하는 방법 및 이를 이용한 장치
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
KR102287962B1 (ko) 부채널 공격 대응이 용이한 128비트 경량 블록 암호화 방법 및 이를 이용한 장치
KR102282363B1 (ko) 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
JP6070408B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161219

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161219

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171122

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20171204

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: 20180116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180129

R150 Certificate of patent or registration of utility model

Ref document number: 6292195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250