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

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

Info

Publication number
JP2017167390A
JP2017167390A JP2016053737A JP2016053737A JP2017167390A JP 2017167390 A JP2017167390 A JP 2017167390A JP 2016053737 A JP2016053737 A JP 2016053737A JP 2016053737 A JP2016053737 A JP 2016053737A JP 2017167390 A JP2017167390 A JP 2017167390A
Authority
JP
Japan
Prior art keywords
data
round
information processing
byte
conversion
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
JP2016053737A
Other languages
English (en)
Other versions
JP6187624B1 (ja
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 JP2016053737A priority Critical patent/JP6187624B1/ja
Priority to US15/439,147 priority patent/US10097343B2/en
Application granted granted Critical
Publication of JP6187624B1 publication Critical patent/JP6187624B1/ja
Publication of JP2017167390A publication Critical patent/JP2017167390A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】AES方式において、データを難読化することを目的とする。【解決手段】入力データをAES方式で暗号化又は復号化する情報処理装置が、第1ラウンドの処理対象となる前記入力データのうち、4バイトのサブラウンドデータを選択し、前記サブラウンドデータを1バイトのデータごとに、前記第1ラウンドの次のラウンドである第2ラウンドで用いられる鍵データの成分を含むテーブルに基づいて変換して、それぞれ、4バイトの変換データを生成し、それぞれの前記変換データの排他的論理和を計算することで上記課題を解決する。【選択図】図14

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
従来、データの暗号化及び復号化の方式として、FIPS(Federal Inrmation Processing Standard)197(アメリカ国立標準技術研究所、2001年公表)で定められているAES(Advanced Encryption Standard)方式が知られている。
また、AES方式において、セキュリティを向上させるための方法として、ホワイトボックスクリプトグラフィ(White−Box Cryptography)が知られている(例えば、非特許文献1及び非特許文献2等)。
さらに、入力に依存する符号化を行うホワイトボックスクリプトグラフィが知られている。具体的には、まず、システムが、暗号化に用いられる鍵を示す複数の基本ブロックから構成するネットワークを備える。そして、基本ブロックが、入力データを出力データにマッピングする。さらに、ネットワークが、複数の基本ブロックのうちの第1基本ブロックからの出力データを選択された符号化方式に従って符号化する。また、符号化方式の選択は、入力メッセージに依存するようにする。その上、符号化の影響を補償するため、システムが、複数の再復号化方式のうちから選択される再復号化方式に従って中間データを再符号化する補償器を有する。このようにして、リバースエンジニアリングに対して、複雑化させる方法が知られている(例えば、特許文献1等)。
"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. Advnces in Network Analysis and its Applications, Mathematics in Industry 18 (2013), 209−229.
特表2012−520589号公報
しかしながら、従来の方法では、AES方式において、入力と出力の関係から解析を行う方法等が用いられると、データが解読される場合があり、データの難読化ができていない場合がある。
本発明の1つの側面は、AES方式において、データを難読化することを目的とする。
一態様における、入力データをAES方式で暗号化又は復号化する情報処理装置は、
第1ラウンドの処理対象となる前記入力データのうち、4バイトのサブラウンドデータを選択する選択部と、
前記サブラウンドデータを1バイトのデータごとに、前記第1ラウンドの次のラウンドである第2ラウンドで用いられる鍵データの成分を含むテーブルに基づいて変換して、それぞれ、4バイトの変換データを生成する変換部と、
それぞれの前記変換データの排他的論理和を計算する排他的論理和計算部と
を含む。
AES方式において、データを難読化することができる。
本発明の一実施形態に係る組み込みシステムのハードウェア構成の一例を説明するブロック図である。 本発明の一実施形態に係る暗号化の1ラウンド当たりの処理の一例を説明するフローチャートである。 本発明の一実施形態に係る最初のラウンドの処理の一例を説明する模式図である。 本発明の一実施形態に係るテーブルに含まれる鍵データの一例を説明する模式図である。 本発明の一実施形態に係るテーブルに含まれる乱数成分の一例を説明する模式図である。 本発明の一実施形態に係る中間のラウンドの処理の一例を説明する模式図(その1)である。 本発明の一実施形態に係る中間のラウンドの処理の一例を説明する模式図(その2)である。 本発明の一実施形態に係る最終のラウンドの処理の一例を説明する模式図である。 ホワイトボックスクリプトグラフィの一例の原理を示す概念図である。 ホワイトボックスクリプトグラフィにおけるラウンド処理の一例を示す模式図である。 比較例に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図(その1)である。 比較例に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図(その2)である。 比較例に係るLUTのデータ容量の一例を示す表である。 本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。
情報処理装置は、例えば、組み込みシステム(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)長等に合わせて、繰り返し行われる。
また、以下の説明では、1ラウンド当たりの処理は、16バイトのうち、選択される4バイトのデータを処理単位(以下「1サブラウンド(sub−round)」という。)にする1サブラウンド当たりの処理が繰り返し行われる。つまり、1ラウンド当たりの処理では、4サブラウンドの処理が繰り返し行われる(4バイト(1サブラウンド)×4サブラウンド=16バイト、1ラウンド)。そして、1ラウンド当たりの処理は、図示する処理又は図示する処理と等価の処理である。
<<サブラウンドデータの選択例(ステップS0101)>>
ステップS0101では、組み込みシステムは、サブラウンドデータを選択する。すなわち、ステップS0101によって、入力される16バイトの入力データのうち、4バイトのデータ(以下「サブラウンドデータ」という。)が選択される。なお、ステップS0101は、いわゆる「ShiftRows」に相当する処理である。以下、ステップS0101で選択される4バイトのデータのうち、1バイトのデータごとに行われる処理を説明する。すなわち、それぞれの1バイトのデータに対して、4回同様の処理が行われると、1サブラウンド当たりの処理となる。
<<テーブルに基づく変換例(ステップS0102)>>
ステップS0102では、組み込みシステムは、テーブルに基づいて変換を行う。なお、テーブルは、いわゆるLUT(Look Up Table)等である。テーブルについての詳細は、後述する。以下、ステップS0102による変換によって、生成されるデータを「変換データ」という。なお、変換データは、1バイトの入力に対して、1バイトを4つ、すなわち、4バイトとなる。
<<排他的論理和(XOR、exclusive or)の計算例(ステップS0103)>>
ステップS0103では、組み込みシステムは、変換データの排他的論理和を計算する。なお、ステップS0102及びステップS0103は、いわゆる「AddRoundKey」、「SubBytes」及び「MixColumns」に相当する処理である。
例えば、組み込みシステムは、図2に示す処理を以下のようなテーブルを用いて行う。
なお、以下の説明では、ラウンド数を「r」で示し、「r=1」(初期値)から順に「r=R」まで、1ラウンド当たりの処理が繰り返し行われる例を説明する。すなわち、最初に行われるラウンド(以下「最初のラウンド」という。)は、「r=1」とする。そして、最後に行われるラウンド(以下「最後のラウンド」という。)は、「r=R」とする。さらに、最初のラウンド及び最後のラウンド以外のラウンド(以下「中間のラウンド」という。)は、「r=2」乃至「r=R−1」とする。なお、鍵長によって、中間のラウンドの数が変化する。
最初のラウンドは、前に行われるラウンドがないラウンドである。一方で、最後のラウンドは、次に行われるラウンドがないラウンドである。これに対して、中間のラウンドは、前後に行われるラウンドがあるラウンドである。これらの点に対応するため、最初のラウンド、中間のラウンド及び最後のラウンドで行われるそれぞれの処理は、処理内容が異なる。そのため、以下の説明では、最初のラウンドと、中間のラウンドと、最後のラウンドとで行われるそれぞれの処理を分けて模式図を用いて説明する。
<<最初のラウンドの処理例>>
図3は、本発明の一実施形態に係る最初のラウンドの処理の一例を説明する模式図である。図示する処理では、最初のラウンドにおいて、まず、1ラウンド当たりの処理対象となる16バイトのデータ(以下「入力データD_IN」という。)から、組み込みシステムは、4つの1バイトのデータを選択する。そして、図は、組み込みシステムが、サブラウンドデータが有する1バイトのデータにそれぞれ行う処理の例を示す。具体的には、図示する例では、「0」乃至「15」の1バイトのデータから構成される入力データD_INから、第0番目データD_1B0、第5番目データD_1B5、第10番目データD_1B10及び第15番目データD_1B15の1バイトのデータが、それぞれ選択される例である。以下の説明では、サブラウンドデータのうち、第0番目データD_1B0の1バイトのデータに対する処理を例に説明する。
なお、入力データD_INから4つの1バイトのデータを選択する処理は、「ShiftRows」の処理に相当し、図2に示すステップS0101の処理に相当する。
次に、組み込みシステムは、第0番目データD_1B0を、あらかじめ記憶されるテーブルTBに基づいて、変換する。そして、テーブルTBによる変換によって、1バイトの変換データが、4つ生成される。次に、組み込みシステムは、第0番目データD_1B0、第5番目データD_1B5、第10番目データD_1B10及び第15番目データD_1B15のそれぞれの変換データの1バイトずつの排他的論理和PXを計算する。このように計算すると、組み込みシステムは、出力データD_OUTのうち、第0番目出力データDOUT0を出力できる。
同様に、図示するように、第0番目データD_1B0、第5番目データD_1B5、第10番目データD_1B10及び第15番目データD_1B15のそれぞれの変換データの1バイトずつの排他的論理和PXを計算すると、組み込みシステムは、出力データD_OUTのうち、第1番目出力データDOUT1、第2番目出力データDOUT2及び第3番目出力データDOUT3をそれぞれ出力できる。
図3では、「S」は、S−BOXによる変換、すなわち、「SubBytes」関数の実行と同様の成分を示す。また、「・03」、「・02」及び「・01」は、AES既約多項式に基づくかけ算を示す。すなわち、例えば、「・03」は、AES既約多項式に基づくかけ算で「3倍」を示す。さらに、「p」は、次のラウンドで用いられる鍵データの一部又は全部を含む鍵データを示す。また、「k」及び「i」については、後述の中間のラウンド(図6参照)で説明する。以下、同様に記載する。
なお、テーブルTBによる変換は、図2に示すステップS0102に相当する。また、排他的論理和PXによる計算は、図2に示すステップS0103に相当する。さらに、テーブルTBには、最初のラウンドとは異なるラウンドで用いられる鍵データD_Kが含まれる。例えば、第1ラウンドを「r=1」のラウンドとすると、第2ラウンドは、第1ラウンドの次に行われるラウンドであり、「r=2」のラウンド等である。これを図示すると、以下のように示せる。
図4は、本発明の一実施形態に係るテーブルに含まれる鍵データの一例を説明する模式図である。図は、第1ラウンドと、第2ラウンドとで行われるそれぞれの1サブラウンド当たりの処理において行われるテーブルTBによる変換の処理例を示す。なお、第1ラウンドは、例えば、図3に示すような最初のラウンド等である。一方で、第2ラウンドは、「r=2」等のラウンドである。
図示するように、第1ラウンドで用いられるテーブルTBには、第2ラウンドで用いられる鍵データが含まれる。例えば、第1ラウンドで用いられるテーブルTBには、あらかじめ、第2ラウンドで用いられる鍵データが含まれるように、生成される。このように、異なるラウンドの鍵データの全部又は一部をテーブルTBに含ませると、組み込みシステムは、第1ラウンドにおいて、第1ラウンド用のテーブルTBを解析しても、第1ラウンド用の鍵データを推定するのを難しくできる。すなわち、鍵データは、他のラウンドから入ってくる部分があると、組み込みシステムは、鍵データを推定するために行われる鍵データが有する1バイト当たりのデータを探索する処理量を多くすることができる。
図示する例では、第2ラウンドで用いられる4つの鍵データは、第0番目データに係る処理で用いられるテーブルTBにすべて入力される。例えば、このように、他のラウンドの鍵データD_Kが含まれた鍵データが使用された場合と同様となるように、テーブルTBは、あらかじめ生成される。
ただし、本発明に係る実施形態は、これに限られない。例えば、組み込みシステムは、他のラウンドの鍵データをビット単位で、テーブルTBに分散させて入力させてもよい。このようにすると、鍵データを推定する場合において、他のラウンドから、鍵データの行き先は、「入力しない」と、4つ(1バイト×4通り)のテーブルとを合わせた5通りとされる。そして、他のラウンドの鍵データがビット単位で分散されて含まれるので、8ビットの場合には、他のラウンドの鍵データの行き先は、「5」の組み合わせとなる。これが1ラウンド当たりの処理では、組み込みシステムは、4つの1バイトのデータにそれぞれ当てはまるので、「58×4=532」の組み合わせとすることができる。
このようにすると、暗号化処理における入力と出力の関係を解析し、データ等を解読しようとする方法に対して、組み込みシステムは、データを難読化させることができる。例えば、入力と、出力との関係から解析し、データを解読しようとする方法は、いわゆるBGEアタック(「入出力対応攻撃」等という場合もある。)等である。より具体的には、BGEアタックは、例えば、「"Cryptanalysis of a White Box AES Implementation." Olivier Billet, Henri Gilbert, Charaf Ech−Chatbi,Selected Areas in Cryptography: 11th International Workshop, SAC 2004.」に記載されている方法等である。
図3に示す例では、BGEアタックがされると、入力の例である第0番目データD_1B0と、出力の例である1バイトの出力データDOUT0との関係から、入力と出力の間でどのような処理が行われているか等が解析される。すなわち、入力と出力の間で行われる処理を入力されたデータがどのような出力となるかに基づいて、鍵データ又は行われる処理内容を推測する方法がある。
これに対して、本発明に係る実施形態では、図4に示すように、組み込みシステムは、第1ラウンドに係る処理に、第2ラウンドで用いられる鍵データを含むテーブルTBを用いて、変換する処理を行う。すなわち、組み込みシステムは、あらかじめ生成されるテーブルTBに基づいて、変換を行う。そのため、BGEアタック等によって、テーブルTB等が解析されても、組み込みシステムは、第1ラウンド用の鍵データが推測されるのを難しくできる。すなわち、図4に示すように、第1ラウンドに係る処理に、第2ラウンドで用いられる鍵データを含ませて処理を行うと、組み込みシステムは、BGEアタック等に対しても、鍵データを難読化することができる。このようにして、組み込みシステムは、AES方式において、データを難読化することができる。なお、乱数成分RPは、例えば、乱数を生成する関数等を実行して生成される。
さらに、図2に示すように、ステップS0101及びステップS0103以外の処理は、1回のテーブルに基づく変換で行うようにすると、組み込みシステムは、行う処理の数を少なくできる。すなわち、1テーブル当たりに含まれる処理が多いと、セキュリティを破る目的等で、鍵データ又は行われている処理の解析の難易度を向上させることができる。このようにして、組み込みシステムは、セキュリティを向上させることができる。また、処理の数は、少ない方が処理負荷が軽くできる場合が多い。
なお、図4及び図5では、「P」は、前のラウンド(当ラウンドが最初のラウンドでないとする。)で行われた出力の際の変換(図3の例では、出力結果を出力データD_OUTにおいて第0番目、第1番目、第2番目及び第3番目とする処理)(後述する図12に示す比較例では、「Q」に相当する処理)に対応する、当ラウンドで行う逆変換を示す。すなわち、前のラウンドで行われた「出力の際の変換」を「変換」とすると、「P」は、前のラウンドで「出力の際の変換」の「逆変換」を示す。
また、「f」は、図3に示す「i」及び「h」を合わせた成分に相当する。なお、図4に示すように、「f」、すなわち、「i」及び「h」は、1バイトを分割して、4ビットごとに変換されてもよい。
さらにまた、図3に示すように、テーブルTBには、乱数成分RPが含まれるのが望ましい。このように、乱数成分RPが含まれると、組み込みシステムは、AES方式において、データをより難読化することができる。これを図示すると、以下のように示せる。
図5は、本発明の一実施形態に係るテーブルに含まれる乱数成分の一例を説明する模式図である。図は、図4と同様に、第1ラウンドと、第2ラウンドとで行われるそれぞれの1サブラウンド当たりの処理において用いられるテーブルTBの例を示す。図示するように、第1ラウンドでは、組み込みシステムは、テーブルTBに乱数成分RPが含まれるようにする。例えば、テーブルTBは、あらかじめ、乱数成分RPを含むように、生成される。すなわち、例えば、乱数成分RPを含むテーブルTBを生成するには、テーブルTBを示すデータを生成する際に、まず、乱数を発生させるランダム関数等を情報処理装置が実行して、乱数を発生させる。次に、情報処理装置は、発生した乱数が打ち消されるような成分(以下「打消成分CP」という。)を生成する。なお、図5では、「R」は、打消成分CPを示す。
そして、図示するように、第1ラウンド用のテーブルTBに、乱数成分RPが含まれるように、情報処理装置は、第1ラウンド用のテーブルTBを生成する。そのため、第1ラウンドで、乱数成分RPが含まれるテーブルによる変換が行われた場合には、第1ラウンドで生成される変換データは、乱数成分RPを有する。そこで、情報処理装置は、第1ラウンド用のテーブルTBに含まれた乱数成分RPを打ち消す打消成分CPが含まれるように、第2ラウンド用のテーブルを生成する。このようにすると、第1ラウンドの変換で含まれた乱数成分RPは、第2ラウンドの変換が行われると、打ち消される。
また、このように、乱数成分RPが含まれるようにすると、データを解析するのに乱数成分RPを解析する処理が必要となるため、組み込みシステムは、AES方式において、データをより難読化することができる。なお、図示する例では、乱数成分RPは、「28×4=232」の組み合わせがある成分である。
なお、打消成分CPは、第2ラウンド用のテーブルに入力されるに限られない。例えば、1ラウンド中に、サブラウンドデータに対して行われる4つの1バイトに対する変換のうち、3つの変換で、乱数成分RPが含まれるテーブルが用いられ、残りの1つの処理で用いられるテーブルに打消成分CPが含まれてもよい。このようにしても、組み込みシステムは、テーブルに乱数成分RPが含まれるようにすることができ、AES方式において、データをより難読化することができる。
次に、図3に示すように、組み込みシステムは、各変換データのうち、それぞれの1バイトデータを1つずつ集め、計4つの1バイトデータに対して、排他的論理和PXを計算して、出力データDOUTのうち、1バイトを生成する。図示するように、組み込みシステムが、1つのサブラウンドデータに対して、排他的論理和PXまで行うと、組み込みシステムは、「DOUT0」、「DOUT1」、「DOUT2」及び「DOUT3」の1バイトデータを4つ生成することができる。
なお、テーブルTBに基づく変換及び排他的論理和PXの計算は、「AddRoundKey」、「SubBytes」及び「MixColumns」の処理に相当する。また、テーブルTBに基づく変換は、図2に示すステップS0102の処理に相当する。さらに、各変換データの排他的論理和PXを計算する処理は、図2に示すステップS0103の処理に相当する。
なお、最初のラウンドの処理における鍵1バイトに対するテーブルの組み合わせは、図示するように、約「2167.50」通りとなる。
<<中間のラウンドの処理例>>
図6は、本発明の一実施形態に係る中間のラウンドの処理の一例を説明する模式図(その1)である。なお、図示する処理は、図3に示す処理の次のラウンドである例とする。以下、図3に示す処理と異なる点を中心に説明する。
図示する処理は、図3に示す処理と比較すると、入力の際に、「hr,0 −1」、「hr,5 −1」、「hr,10 −1」及び「hr,15 −1」が含まれる点が異なる。この「hr,0 −1」、「hr,5 −1」、「hr,10 −1」及び「hr,15 −1」は、図3に示すテーブルTBによる変換による「h」の逆変換となる成分の例である。なお、図では、「h」は、ビットの並び替えを示し、排他的論理和に影響のない成分を示す。具体的には、「h」によるビットの並び替えがされると、データ内のビットが並び替えられる。なお、8ビットの場合には、「h」による並び替えは、「8!(階乗)」通りの組み合わせがある。これに対して、「h−1」は、「h」による並び替えを元に戻す並び替え(「h」によって並び替えられる前に戻す)をすることを示す。そのため、「h」及び「h−1」の両方の成分があると、「h」による並び替えがない場合と、同様の結果が得られる。
また、図示する処理は、図3に示す処理と比較すると、入力の際に、「ir,0」、「ir,5」、「ir,10」及び「ir,15」が含まれる点が異なる。この「ir,0」、「ir,5」、「ir,10」及び「ir,15」は、図5に示すように、第1ラウンドでテーブルTB(図5)に含まれる乱数成分RPを打ち消す打消成分CPの例である。例えば、「i」は、乱数の排他的論理和による加算を示す。
また、図6では、「q」は、当ラウンドの鍵データの成分を示す。詳しくは、鍵データの成分のうち、一部の成分は、前のラウンドに入力される場合がある。その場合において、「q」は、前のラウンドに入力されず、残った成分を示す。なお、前のラウンドに、当ラウンドの鍵データの成分を入力しない場合には、当ラウンドの鍵データの全成分が残ることになる。一方で、図3、すなわち、最初のラウンドでは、前のラウンドがないため、「k」で示す。さらに、「h−1」、「i」及び「q」は、添え字で対応するラウンド及び入力データを示す。具体的には、「hr,0 −1」の場合には、「r」は、第1ラウンド、すなわち、前のラウンドを示し、「r+1」は、第2ラウンド、すなわち、当ラウンドを示す。「0」は、図示するように、入力データの0番目に対応することを示す。
さらに、図示する処理は、最初のラウンドの処理(図3参照)と同様に、「pr+1,0,0」等のように、異なるラウンドで用いられる鍵データがテーブルに含まれる。第2ラウンドの場合には、異なるラウンドは、例えば、第3ラウンドのことである。このようにして、組み込みシステムは、異なるラウンドで用いられる鍵データを含ませて処理を行うと、最初のラウンドの処理と同様に、BGEアタック等に対してもデータを難読化することができる。
なお、中間のラウンドの処理における鍵1バイトに対するテーブルの組み合わせは、図示するように、約「2209.37」通りとなる。
また、図6の次のサブラウンドでは、例えば、以下のように処理が行われる。
図7は、本発明の一実施形態に係る中間のラウンドの処理の一例を説明する模式図(その2)である。図7に示す処理は、図6と同様のラウンドにおいて、図6に示す処理の次のサブラウンドで行われる処理の例である。図示する例は、図6と比較すると、入力データから選択されるサブラウンドデータが異なる。図6と同様に、各サブラウンドデータが処理されるため、組み込みシステムは、最初のラウンドの処理及び図6に示す中間のラウンドの処理と同様に、BGEアタック等に対してもデータを難読化することができる。
<<最後のラウンドの処理例>>
図8は、本発明の一実施形態に係る最終のラウンドの処理の一例を説明する模式図である。なお、図示する処理は、図6及び図7に示す処理と比較すると、テーブルによる、「MixColumns」に相当する処理がない点が異なる。また、図示する処理では、「AddRoundKey」に相当する処理が2回行われる点が異なる。
最後のラウンドは、次のラウンドがないラウンドである。そのため、最後のラウンドの処理では、図3、図6及び図7に示す処理のように、後段のラウンドから鍵データが入力されない。ゆえに、最後のラウンドの処理は、前のラウンド(中間のラウンド等)に鍵データを入力し、一方で、後段のラウンドからの鍵データをテーブルに含ませて行う「MixColumns」に相当する処理を行わない。
図9は、ホワイトボックスクリプトグラフィの一例の原理を示す概念図である。図示するように、暗号化処理は、入力データ(平文の状態のデータである。)に対して、「拡大鍵」等の鍵データを用いて暗号化し、出力データ(暗号文の状態のデータである。)を生成する処理である。そして、暗号化処理において、まず、鍵に対してアクセスを難しくするためのブラックボックス(Black−Box)的アプローチがある。一方で、暗号化処理において、鍵に対してアクセスされても、鍵と認識されるのを難しくするためのホワイトボックス(White−Box)的アプローチがある。ホワイトボックスクリプトグラフィは、ホワイトボックス的アプローチの方法である。
図示するように、ホワイトボックスクリプトグラフィでは、暗号化における各処理と鍵データ(拡大鍵)とを合成して、演算をLUTによる変換とする。特に、本発明に係る実施形態のように、複数の演算を1つのLUTで行うと、複数の演算を行う場合よりも、処理負荷が小さくできる。そのため、LUT等のテーブルによる変換を用いるのは、より組み込みシステム等には望ましい。そして、ホワイトボックスクリプトグラフィでは、図示するように、各処理の間(図では「処理A」と「処理B」の間)に変換と、逆変換が挿入される。このように、ホワイトボックスクリプトグラフィは、変換と逆変換をLUTに追加合成することにより、データを難読化する方法である。すなわち、図示する例では、テーブルは、「変換」と、「逆変換」と、「処理」とを1回の変換で行うように生成される。これを模式図で示すと、例えば、以下のように示せる。
図10は、ホワイトボックスクリプトグラフィにおけるラウンド処理の一例を示す模式図である。図示するようなラウンド処理が、鍵長に合わせて繰り返し行われる。図示するように、1ラウンド当たりの処理では、サブラウンドデータに対して、「ShiftRows」、「AddRoundKey」、「SubBytes」及び「MixColumns」の処理が行われる。図2に示す全体処理が行われると、図示する処理が行われた場合と、等価の処理結果となる。
<<比較例>>
図11は、比較例に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図(その1)である。図11は、入力データD_INのうち、4つの1バイトのデータに対して処理が行われ、出力データD_OUTのうち、4つの1バイトのデータが生成される1サブラウンド当たりの処理の一例を示す。また、図11に示す処理、すなわち、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」のデータとして、生成される。
また、比較例の処理は、以下のように示せる。
図12は、比較例に係る暗号化の1ラウンド当たりの処理の一例を説明する模式図(その2)である。サブラウンド処理におけるLUTの入力及び出力の関係は、図示するように示せる。また、この比較例に用いるLUTのデータ容量は、以下のようになる。
図13は、比較例に係るLUTのデータ容量の一例を示す表である。図示するように、データ容量は、鍵長、すなわち、行われるラウンド数に応じて異なる。
この比較例のように、1つのラウンドにおける処理に用いられるデータが、他のラウンドのデータを用いないと、入力と出力の関係を解析されると、1ラウンド中で複雑な処理をしても、データが解読される場合がある。
<<3.組み込みシステムの機能構成例>>
図14は、本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。図示するように、組み込みシステム1は、選択部FN1と、変換部FN2と、排他的論理和計算部FN3とを含む。
選択部FN1は、入力データD_INのうち、4バイトのサブラウンドデータD_SRを選択する。なお、入力データD_INは、図3に示すように、16バイトの1ラウンドデータである。また、選択部FN1によって、サブラウンドデータD_SRが選択されると、FIPS197で定められている「ShiftRows」関数を実行した処理結果と同様の処理結果が得られる。さらに、選択部FN1は、例えば、演算装置HW1(図1)等によって実現される。
変換部FN2は、サブラウンドデータD_SRを1バイトのデータごとに、異なるラウンドで用いられる鍵データの成分を含むテーブルに基づいて変換して、それぞれ、4バイトの変換データを生成する。なお、テーブルを示すテーブルデータDTは、十分な記憶領域が確保できる情報処理装置によって、あらかじめ生成されるのが望ましい。テーブルデータDTの生成には、RAM又はスタックメモリといった記憶領域等が多く必要となる場合が多い。そこで、組み込みシステム1等の装置より、十分な記憶領域が確保できるPC等によって、テーブルデータDTは、あらかじめ生成されるのが望ましい。すなわち、テーブルデータDTは、生成されるラウンドとは、他のラウンドの鍵データD_Kを用いてあらかじめ生成され、組み込みシステム1にあらかじめ入力される。なお、変換部FN2は、例えば、演算装置HW1等によって実現される。
排他的論理和計算部FN3は、それぞれの変換データD_CHの排他的論理和を計算する。なお、排他的論理和計算部FN3は、例えば、演算装置HW1等によって実現される。
変換部FN2によるテーブルに基づく変換及び排他的論理和計算部FN3による排他的論理和の計算がそれぞれ行われると、出力は、FIPS197で定められている「AddRoundKey」、「SubBytes」及び「MixColumns」の関数を実行した処理結果と同様の処理結果となる。
また、あるラウンドの処理(第1ラウンド)で用いられるテーブルには、他のラウンド(第2ラウンド)の鍵データD_Kが含まれる。そのため、BGEアタック等によって、第1ラウンド当たりの入出力の関係が解析されても、テーブル及び鍵データを解析するのが難しくなるため、暗号化されたデータを解読するのが難しくなり、組み込みシステムは、データを難読化することができる。
また、本発明に係る実施形態では、128ビットの鍵長の場合には、組み込みシステムは、最初のラウンド及び中間のラウンドで、1ラウンドにつき、16キロバイトのLUTを用いる。また、組み込みシステムは、最後のラウンドで、4キロバイトのLUTを用いる。したがって、組み込みシステムは、「16×9ラウンド+4=148キロバイト」のデータ容量でAES方式によって暗号化を行うことができる。なお、192ビットの鍵長の場合には、11ラウンド行われるので、組み込みシステムは、「16×11ラウンド+4=180キロバイト」のデータ容量でAES方式によって暗号化を行うことができる。さらに、256ビットの鍵長の場合には、13ラウンド行われるので、組み込みシステムは、「16×13ラウンド+4=212キロバイト」のデータ容量でAES方式によって暗号化を行うことができる。このようにして、組み込みシステムは、少ないデータ容量でAES方式によって暗号化を行うことができる。
また、本発明は、使用できる記憶容量等に係る制約が多い組み込みシステムに適用される形態が望ましい。さらに、組み込みシステムは、プログラム及びデータの解読を難しくするため、図1に示すように、演算装置にメモリが内蔵されるハードウェア構成であるのが望ましい。
組み込みシステムは、例えば、いわゆるスマートメータ(Smart Meter)等に用いられる。そして、スマートメータ等は、外部装置等とデータを送受信する場合が多い。この場合には、スマートメータ等は、組み込みシステムによって、AES方式で暗号化してデータを送受信できる。これによって、送受信されるデータは、暗号化されているため、スマートメータは、データの送受信においてセキュリティを向上させることができる。
<<変形例>>
組み込みシステムは、AES方式によって、暗号化を行うに限られない。例えば、組み込みシステムは、各処理の逆関数に相当する処理を用いて、復号化を行ってもよい。なお、例えば、「ShiftRows」関数の逆関数は、「InvShiftRows」関数等である。他にも、「SubBytes」関数の逆関数は、「InvSubBytes」関数であり、「MixColumns」関数の逆関数は、「InvMixColumns」関数である。
組み込みシステムは、スマートメータに限られない。例えば、組み込みシステムは、組込機器全般、クラウド等によって他の装置と通信を行う装置、IoT(Internet of Things)に用いられる各装置又はこれらを組み合わせた1以上の情報処理装置を有する情報処理システム等であってもよい。
また、組み込みシステムは、1つの情報処理装置によって実現される構成に限られない。即ち、組み込みシステムは、2つ以上の情報処理装置を有する情報処理システムによって実現されてもよい。なお、情報処理システムでは、各処理の一部又は全部が分散、冗長、並列又はこれらを組み合わせるように、処理が行われてもよい。
さらに、本発明に係る実施形態は、情報処理装置又は情報処理システム等のコンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、本発明に係る情報処理方法をコンピュータに実行させるためのプログラムであって、プログラミング言語等によって記述されるコンピュータプログラムである。
また、プログラムは、DVD若しくはブルーレイ(登録商標)等の光ディスク、フラッシュメモリ、磁気ディスク又は光磁気ディスク等の記録媒体に記憶され、頒布されてもよい。さらに、プログラムは、電気通信回線等を介して、頒布されてもよい。
以上、本発明の好ましい実施例について詳述したが、本発明は、係る特定の実施形態に限定されるものではない。すなわち、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
1 組み込みシステム
D_IN 入力データ
D_OUT 出力データ
TB テーブル
D_K 鍵データ
RP 乱数成分
CP 打消成分
FN1 選択部
FN2 変換部
FN3 排他的論理和計算部

Claims (8)

  1. 入力データをAES方式で暗号化又は復号化する情報処理装置であって、
    第1ラウンドの処理対象となる前記入力データのうち、4バイトのサブラウンドデータを選択する選択部と、
    前記サブラウンドデータを1バイトのデータごとに、前記第1ラウンドの次のラウンドである第2ラウンドで用いられる鍵データの成分を含むテーブルに基づいて変換して、それぞれ、4バイトの変換データを生成する変換部と、
    それぞれの前記変換データの排他的論理和を計算する排他的論理和計算部と
    を含む情報処理装置。
  2. 前記第1ラウンドで用いられる前記テーブルには、乱数成分が含まれ、
    前記第2ラウンドで用いられるテーブルには、前記乱数成分を打ち消す打消成分が含まれる請求項1に記載の情報処理装置。
  3. 前記変換部は、乱数成分を含む前記変換データと、前記乱数成分を打ち消す打消成分を含む前記変換データとを生成する請求項1又は2に記載の情報処理装置。
  4. 前記情報処理装置は、組み込みシステムである請求項1に記載の情報処理装置。
  5. 前記選択が行われると、ShiftRows関数を実行した処理結果と同様の処理結果が得られる請求項1に記載の情報処理装置。
  6. 前記テーブルに基づく変換及び前記排他的論理和の計算が行われると、AddRoundKey関数、SubBytes関数及びMixColumns関数をそれぞれ実行した処理結果と同様の処理結果が含まれる請求項1に記載の情報処理装置。
  7. 入力データをAES方式で暗号化又は復号化する情報処理装置が行う情報処理方法であって、
    前記情報処理装置が、第1ラウンドの処理対象となる前記入力データのうち、4バイトのサブラウンドデータを選択する選択手順と、
    前記情報処理装置が、前記サブラウンドデータを1バイトのデータごとに、前記第1ラウンドの次のラウンドである第2ラウンドで用いられる鍵データの成分を含むテーブルに基づいて変換して、それぞれ、4バイトの変換データを生成する変換手順と、
    前記情報処理装置が、それぞれの前記変換データの排他的論理和を計算する排他的論理和計算手順と
    を含む情報処理方法。
  8. 入力データをAES方式で暗号化又は復号化するコンピュータに情報処理方法を実行させるためのプログラムであって、
    前記コンピュータが、第1ラウンドの処理対象となる前記入力データのうち、4バイトのサブラウンドデータを選択する選択手順と、
    前記コンピュータが、前記サブラウンドデータを1バイトのデータごとに、前記第1ラウンドの次のラウンドである第2ラウンドで用いられる鍵データの成分を含むテーブルに基づいて変換して、それぞれ、4バイトの変換データを生成する変換手順と、
    前記コンピュータが、それぞれの前記変換データの排他的論理和を計算する排他的論理和計算手順と
    を実行させるためのプログラム。
JP2016053737A 2016-03-17 2016-03-17 情報処理装置、情報処理方法及びプログラム Active JP6187624B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016053737A JP6187624B1 (ja) 2016-03-17 2016-03-17 情報処理装置、情報処理方法及びプログラム
US15/439,147 US10097343B2 (en) 2016-03-17 2017-02-22 Data processing apparatus and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016053737A JP6187624B1 (ja) 2016-03-17 2016-03-17 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP6187624B1 JP6187624B1 (ja) 2017-08-30
JP2017167390A true JP2017167390A (ja) 2017-09-21

Family

ID=59720295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016053737A Active JP6187624B1 (ja) 2016-03-17 2016-03-17 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US10097343B2 (ja)
JP (1) JP6187624B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019207393A (ja) * 2018-04-02 2019-12-05 インテル・コーポレーション 高性能認証付き暗号に関するハードウェアアクセラレータ及び方法
US11477024B2 (en) 2019-09-20 2022-10-18 Fuji Electric Co., Ltd. Information processing apparatus and information processing method
US11477009B2 (en) 2019-10-30 2022-10-18 Fuji Electric Co., Ltd. Information processing apparatus and method

Families Citing this family (1)

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

Citations (7)

* 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 データ変換装置、データ変換プログラム、記録媒体及びデータ変換方法
JP2005513541A (ja) * 2001-12-18 2005-05-12 アナログ デバイシーズ インク Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
JP2008017489A (ja) * 2006-07-06 2008-01-24 Accenture Global Services Gmbh グラフィック処理ユニットでの暗号化及び復号化
US20100054461A1 (en) * 2008-09-02 2010-03-04 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems
US20130010963A1 (en) * 2011-07-07 2013-01-10 Farrugia Augustin J Multiplicative splits to protect cipher keys
US8422668B1 (en) * 2006-12-15 2013-04-16 Spansion Llc Table lookup operation on masked data
JP5485694B2 (ja) * 2006-11-17 2014-05-07 イルデト・コーポレート・ビー・ヴイ ホワイトボックス実施のための暗号化方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3053527B2 (ja) * 1993-07-30 2000-06-19 インターナショナル・ビジネス・マシーンズ・コーポレイション パスワードを有効化する方法及び装置、パスワードを生成し且つ予備的に有効化する方法及び装置、認証コードを使用して資源のアクセスを制御する方法及び装置
CA2302784A1 (en) * 1997-09-17 1999-03-25 Frank C. Luyster Improved block cipher method
US20040202318A1 (en) * 2001-10-04 2004-10-14 Chih-Chung Lu Apparatus for supporting advanced encryption standard encryption and decryption
TW527783B (en) * 2001-10-04 2003-04-11 Ind Tech Res Inst Encryption/deciphering device capable of supporting advanced encryption standard
JP4128395B2 (ja) * 2002-05-23 2008-07-30 三菱電機株式会社 データ変換装置
US8102997B2 (en) * 2004-03-29 2012-01-24 Stmicroelectronics S.A. Processor for executing an AES-type algorithm
WO2005103908A1 (ja) * 2004-04-26 2005-11-03 Matsushita Electric Industrial Co., Ltd. 暗号又は復号を行うコンピュータシステム及びコンピュータプログラム
JP4909018B2 (ja) * 2006-11-16 2012-04-04 富士通株式会社 共通鍵暗号のための暗号化装置
ES2366753T3 (es) * 2007-12-13 2011-10-25 Oberthur Technologies Método de procesamiento criptográfico de datos, en particular con la ayuda de una caja s, dispositivo y programas asociados.
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5532560B2 (ja) * 2008-08-25 2014-06-25 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
CA2754094C (en) 2009-03-10 2017-08-15 Irdeto Corporate B.V. White-box cryptographic system with input dependent encodings
EP2369778B1 (en) * 2010-03-26 2018-08-15 Irdeto B.V. Personalized whitebox descramblers
US8838997B2 (en) * 2012-09-28 2014-09-16 Intel Corporation Instruction set for message scheduling of SHA256 algorithm

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005513541A (ja) * 2001-12-18 2005-05-12 アナログ デバイシーズ インク Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
JP2003195749A (ja) * 2001-12-26 2003-07-09 Denso Create:Kk データ変換装置、データ変換プログラム、記録媒体及びデータ変換方法
JP2008017489A (ja) * 2006-07-06 2008-01-24 Accenture Global Services Gmbh グラフィック処理ユニットでの暗号化及び復号化
JP5485694B2 (ja) * 2006-11-17 2014-05-07 イルデト・コーポレート・ビー・ヴイ ホワイトボックス実施のための暗号化方法
US8422668B1 (en) * 2006-12-15 2013-04-16 Spansion Llc Table lookup operation on masked data
US20100054461A1 (en) * 2008-09-02 2010-03-04 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems
US20130010963A1 (en) * 2011-07-07 2013-01-10 Farrugia Augustin J Multiplicative splits to protect cipher keys

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019207393A (ja) * 2018-04-02 2019-12-05 インテル・コーポレーション 高性能認証付き暗号に関するハードウェアアクセラレータ及び方法
US11477024B2 (en) 2019-09-20 2022-10-18 Fuji Electric Co., Ltd. Information processing apparatus and information processing method
US11477009B2 (en) 2019-10-30 2022-10-18 Fuji Electric Co., Ltd. Information processing apparatus and method

Also Published As

Publication number Publication date
JP6187624B1 (ja) 2017-08-30
US10097343B2 (en) 2018-10-09
US20170272238A1 (en) 2017-09-21

Similar Documents

Publication Publication Date Title
JP6135804B1 (ja) 情報処理装置、情報処理方法及びプログラム
KR100296958B1 (ko) 블록 데이터 암호화 장치
JP5646612B2 (ja) 中間データ変更を使用する構成可能な鍵を用いるホワイトボックス暗号システム
KR101600016B1 (ko) 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
WO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
RU2666281C2 (ru) Электронное устройство блочного шифрования, подходящее для обфускации
US8675866B2 (en) Multiplicative splits to protect cipher keys
JP6187624B1 (ja) 情報処理装置、情報処理方法及びプログラム
KR20060134992A (ko) 정수를 가산하는 컴퓨터 시스템
TW201545524A (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
KR20180110550A (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
Elgeldawi et al. A comparative analysis of symmetric algorithms in cloud computing: a survey
CN113098675B (zh) 基于多项式完全同态的二进制数据加密***及方法
KR101914453B1 (ko) 암호화 장치 및 방법
JP5992651B2 (ja) 暗号化方法、プログラム、および、システム
US8774402B2 (en) Encryption/decryption apparatus and method using AES rijndael algorithm
KR20200047138A (ko) 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
JP6292195B2 (ja) 情報処理装置及び情報処理方法
JP6194136B2 (ja) 疑似乱数生成装置及び疑似乱数生成プログラム
JP6167721B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
KR20080072345A (ko) 암호화 장치 및 그 방법
CN115632765A (zh) 加密方法、解密方法、装置、电子设备及存储介质
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
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: 20170704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170717

R150 Certificate of patent or registration of utility model

Ref document number: 6187624

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