JP6371197B2 - 暗号処理装置 - Google Patents
暗号処理装置 Download PDFInfo
- Publication number
- JP6371197B2 JP6371197B2 JP2014222783A JP2014222783A JP6371197B2 JP 6371197 B2 JP6371197 B2 JP 6371197B2 JP 2014222783 A JP2014222783 A JP 2014222783A JP 2014222783 A JP2014222783 A JP 2014222783A JP 6371197 B2 JP6371197 B2 JP 6371197B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- mask
- candidates
- exclusive
- cryptographic processing
- 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
Links
Images
Description
暗号処理を行う際の消費電力は、これら中間値の値に依存しており、この中間値と消費電力との間の依存関係から暗号鍵を抽出するサイドチャネルアタック(SCA:Side Channel Attacks)が報告されている(例えば、非特許文献2参照)。この依存関係は、中間値のハミング重みや、ハミング距離などを用いて効果的に抽出することができる(例えば、非特許文献3参照)。
上記課題を解決する暗号処理装置は、候補を限定したマスク値で中間値を秘匿したまま暗号処理を行う暗号処理装置であって、前記候補を限定したマスク値に応じて事前計算したテーブルを用いるテーブル変換によって非線形変換を行い、前記非線形変換の後にガロア体上の定数倍演算によって線形変換を行い、前記ガロア体上の定数倍演算の前段では限定しない候補からランダムに選択したマスク値で中間値を秘匿し、前記ガロア体上の定数倍演算の後段では前記候補を限定したマスク値の中からランダムに選択した値で中間値を再び秘匿し、前記候補を限定したマスク値の集合は、全てのビットが1である符号語を含む線形符号であることをその要旨としている。
以下、図1〜図7を参照して、暗号処理装置の第1の実施形態について説明する。以下では、AES(Advance Encryption Standard)を用いる暗号処理装置への適用例として説明する。なお、適用可能な暗号処理装置はAESを用いる暗号処理装置に限定されるものではなく、暗号処理において乗算を用いた線形処理を行う暗号処理装置に広く適用可能である。
図1及び図2に示されるように、暗号処理装置は、AES暗号方式を用いる。AESでは、まず1バイト単位での非線形な変換を行うSubBytes(以降、SBと表す)という処理を行う。続いて、1バイト単位で順序の入れ替えを行うShiftRows(以降、SRと表す)という処理を行う。続いて、4バイト単位で線形な変換を行うMixColumns(以降、MCと表す)という処理を行う。続いて、暗号鍵から生成される秘密データ(拡大鍵)との排他的論理和を行うAddRoundKey(以降、AKと表す)という処理を行う。すなわち、AESでは、これらの4つの処理(SB、SR、MC、AK)を繰り返し行う。
AESで行われるSB、SR、MC、AKのうち、SBのみ非線形変換であって、SR、MC、AKは線形変換である。SBにおける1バイト単位の変換は、S−boxと呼ばれる。
(事前準備)
マスク値の候補(マスク候補値Ms)を、式(3)に示す4候補に限定した場合について説明する。マスク候補値Msは、全てのビットが1である符号語(ここではFF)を含む線形符号である。
まず初めに、図3に示されるように、平文データP(0)〜P(15)とマスク候補値Msからランダムに選択したマスク値Mask(0)〜Mask(15)との排他的論理和を計算する。続いて、計算したものと拡大鍵バイトK(0)〜K(15)との排他的論理和を計算して、結果M(0)〜M(15)を出力する。
式(2)の関係から、マスクされた出力バイトM″(0)とそのマスク値Mask″(0)とは、それぞれ式(9)及び式(10)によって計算される。
暗号処理装置は、マスク値Mask′(0)でマスクされたMCの入力バイトM′(0)に対してガロア体上の2倍演算を下記手順で行う。
暗号処理装置は、ステップS5の結果A5とステップS6の結果A6との排他的論理和を計算する(ステップS7)。ここで、ステップS7の結果A7のマスク値は、候補が限定されたマスク値Mask′_d(0)である。この候補が限定されたマスク値Mask′_d(0)は、(00,36,C9,FF)のいずれかである。ステップS7で得られた結果A7を2M′(0)とする。
図6に示されるように、まず、暗号処理装置は、ランダムな1バイト値Rt(5)を生成する(ステップS11)。このランダムな1バイト値Rt(5)は、候補を限定しない値である(00,01,02,…,FE,FF)の候補からランダムに選択した値である。
暗号処理装置は、ステップS15の結果A15とステップS16の結果A16との排他的論理和を計算する(ステップS17)。ここで、ステップS17の結果A17のマスク値は、候補が限定されたマスク値Mask′_t(5)である。この候補が限定されたマスク値Mask′_t(5)は、(00,36,C9,FF)のいずれかである。ステップS17の結果A17を3M′(5)とする。
以上では、入力バイトM′(0)の2倍演算と入力バイトM′(5)の3倍演算とを例として説明したが、SBの出力の任意の各バイトM′(i)に対して、同様の手順で2倍、3倍を計算し、MCの出力を計算することができる。残りの処理は、AK、SB、SR、MCで構成されているため、同様の手順を繰り返し、最終的な出力の前にマスクを外すことで、AESの処理を完了することができる。
(1)ガロア体上の定数倍演算の前段におけるマスク値は候補が限定されていない。このため、ガロア体上の定数倍演算の後段でも候補が限定されていないマスク値でマスクされることとなる。よって、線形変換におけるマスク値変化による秘匿性の低下を防ぐことができる。
以下、図8を参照して、暗号処理装置の第2の実施形態について説明する。この実施形態の暗号化装置は、2のべき乗倍のみを計算して、その結果から必要なもののみの排他的論理和を計算する点が上記第1の実施形態と異なっている。以下、第1の実施形態との相違点のみを説明する。
(2)2のべき乗倍(2倍、4倍、8倍、…)のみを計算して、その結果から必要なもののみの排他的論理和を行うことでマスク値が求められる。このため、MCにおいて9倍、11倍、13倍、14倍のそれぞれを独立で計算するよりも処理効率を向上させることができる。
以下、図9を参照して、暗号処理装置の第3の実施形態について説明する。この実施形態の暗号化装置は、ガロア体の定数倍演算時にランダムな値の生成を1度だけに限定し、このランダムな値を他でも再利用する点が上記第1の実施形態と異なっている。以下、第1の実施形態との相違点のみを説明する。
図9に示されるように、暗号処理装置は、MCに含まれるガロア体の2倍演算を行うにあたって、ランダムな1バイト値Rを生成する(ステップS41)。
(3)暗号化毎に生成した1値のみをマスク値として、ガロア体上の定数倍演算の全てで同一の値(R)を使用する。このため、全て異なる値を使用するよりも処理効率を向上させることができる。
・上記各実施形態では、マスク値の候補を4値としたが、これらに限らずすべてのビットが1である符号語を含む線形符号であれば、4値よりも大きい2の累乗数である、8,16,32,64,128,256でも良い。なお、上記各実施形態で示したAESの場合は、8値、16値、64値、128値のものが採用可能である。
Claims (3)
- 候補を限定したマスク値で中間値を秘匿したまま暗号処理を行う暗号処理装置であって、
前記候補を限定したマスク値に応じて事前計算したテーブルを用いるテーブル変換によって非線形変換を行い、前記非線形変換の後にガロア体上の定数倍演算によって線形変換を行い、
前記ガロア体上の定数倍演算の前段では限定しない候補からランダムに選択したマスク値で中間値を秘匿した後に、マスク値との排他的論理和演算を行い、
前記ガロア体上の定数倍演算の後段では前記候補を限定したマスク値の中からランダムに選択した値で中間値を再び秘匿した後に、限定しない候補からランダムに選択したマスク値に対してガロア体上の定数倍演算を行った結果との排他的論理和演算を行い、
前記候補を限定したマスク値の集合は、全てのビットが1である符号語を含む線形符号であり、
マスク値の候補は、いくつかの候補を抽出して排他的論理和演算を行った結果が必ず候補となること、かつ、各マスク値の候補の反転値もマスク値の候補となることを条件として選択する
ことを特徴とする暗号処理装置。 - 候補を限定したマスク値で中間値を秘匿したまま暗号処理を行う暗号処理装置であって、
入力平文に対して前記限定した候補の中からランダムに選択した値との排他的論理和演算を行い、前記排他的論理和の後にテーブル変換によって非線形変換を行い、前記非線形変換の後にガロア体上の定数倍演算によって線形変換を行い、
前記ガロア体上の定数倍演算の前段では限定しない候補からランダムに選択したマスク値で中間値を秘匿した後に、マスク値との排他的論理和演算を行い、
前記ガロア体上の定数倍演算の後段では前記候補を限定したマスク値の中からランダムに選択した値で中間値を再び秘匿した後に、限定しない候補からランダムに選択したマスク値に対してガロア体上の定数倍演算を行った結果との排他的論理和演算を行い、
前記ガロア体上の定数倍演算において2のべき乗倍のみを計算して、その結果から必要なもののみ排他的論理和を行い、
前記候補を限定したマスク値の集合は、全てのビットが1である符号語を含む線形符号であり、
マスク値の候補は、いくつかの候補を抽出して排他的論理和演算を行った結果が必ず候補となること、かつ、各マスク値の候補の反転値も候補となることを条件として選択する
ことを特徴とする暗号処理装置。 - 候補を限定したマスク値で中間値を秘匿したまま暗号処理を行う暗号処理装置であって、
入力平文に対して前記限定した候補の中からランダムに選択した値との排他的論理和演算を行い、前記排他的論理和の後にテーブル変換によって非線形変換を行い、前記非線形変換の後にガロア体上の定数倍演算によって線形変換を行い、
前記ガロア体上の定数倍演算の前段では限定しない候補からランダムに選択したマスク値で中間値を秘匿し、
前記ガロア体上の定数倍演算の後段では前記候補を限定したマスク値の中からランダムに選択した値で中間値を再び秘匿し、マスク値と限定しない候補からランダムに選択したマスク値との排他的論理和演算を行い、さらに、ガロア体上の定数倍演算を行った結果との排他的論理和演算を行い、
前記限定しない候補からランダムに選択したマスク値は暗号化毎に1値のみ生成して、前記ガロア体上の定数倍演算の一部または全てで同一の値を使用し、
前記候補を限定したマスク値の集合は、全てのビットが1である符号語を含む線形符号であり、
マスク値の候補は、いくつかの候補を抽出して排他的論理和演算を行った結果が必ず候補となること、かつ、各マスク値の候補の反転値も候補となることを条件として選択する
ことを特徴とする暗号処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014222783A JP6371197B2 (ja) | 2014-10-31 | 2014-10-31 | 暗号処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014222783A JP6371197B2 (ja) | 2014-10-31 | 2014-10-31 | 暗号処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016090710A JP2016090710A (ja) | 2016-05-23 |
JP6371197B2 true JP6371197B2 (ja) | 2018-08-08 |
Family
ID=56016165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014222783A Active JP6371197B2 (ja) | 2014-10-31 | 2014-10-31 | 暗号処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6371197B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
JP2008233683A (ja) * | 2007-03-22 | 2008-10-02 | Toshiba Corp | 暗号処理装置及びプログラム |
JP2009175196A (ja) * | 2008-01-21 | 2009-08-06 | Toshiba Corp | 暗号化装置及び復号装置 |
JP5202350B2 (ja) * | 2009-01-16 | 2013-06-05 | 三菱電機株式会社 | 暗号処理装置及び暗号処理方法及び暗号処理プログラム |
JP5612007B2 (ja) * | 2012-03-15 | 2014-10-22 | 株式会社東芝 | 暗号化鍵生成装置 |
-
2014
- 2014-10-31 JP JP2014222783A patent/JP6371197B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016090710A (ja) | 2016-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5229315B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
De Mulder et al. | Cryptanalysis of the Xiao–Lai white-box AES implementation | |
Kazymyrov et al. | A method for generation of high-nonlinear s-boxes based on gradient descent | |
JP5711681B2 (ja) | 暗号処理装置 | |
US20070140478A1 (en) | Encryption apparatus and encryption method | |
RU2449482C2 (ru) | Устройство обработки шифрования, способ обработки шифрования и компьютерная программа | |
Lee et al. | A masked white-box cryptographic implementation for protecting against differential computation analysis | |
JP5268609B2 (ja) | 暗号処理装置及び演算方法 | |
RU2603550C2 (ru) | Устройство обработки данных, способ обработки данных и программа | |
WO2015146431A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR101586811B1 (ko) | Hight 부채널 분석에 대응하기 위한 장치 및 방법 | |
US8675866B2 (en) | Multiplicative splits to protect cipher keys | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
EP3467808A1 (en) | Encryption device, encryption method, decryption device, and decryption method | |
JP2015191106A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
US20130243191A1 (en) | Encryption key generating apparatus | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
Ara et al. | Dynamic key dependent S-Box for symmetric encryption for IoT devices | |
WO2015146430A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR101362675B1 (ko) | 저전력 암호화 장치 및 방법 | |
Carlet | Correlation-immune Boolean functions for leakage squeezing and rotating S-box masking against side channel attacks | |
JP6371197B2 (ja) | 暗号処理装置 | |
US20100128870A1 (en) | Pseudo-random number generation device, program, and method for stream encoding | |
JP6089668B2 (ja) | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170524 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180424 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180620 |
|
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: 20180703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180712 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6371197 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |