JP5711681B2 - 暗号処理装置 - Google Patents

暗号処理装置 Download PDF

Info

Publication number
JP5711681B2
JP5711681B2 JP2012048919A JP2012048919A JP5711681B2 JP 5711681 B2 JP5711681 B2 JP 5711681B2 JP 2012048919 A JP2012048919 A JP 2012048919A JP 2012048919 A JP2012048919 A JP 2012048919A JP 5711681 B2 JP5711681 B2 JP 5711681B2
Authority
JP
Japan
Prior art keywords
mask
value
data
processing
mask value
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
JP2012048919A
Other languages
English (en)
Other versions
JP2013186157A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012048919A priority Critical patent/JP5711681B2/ja
Priority to EP13155051.9A priority patent/EP2637349A3/en
Priority to US13/768,085 priority patent/US9166789B2/en
Publication of JP2013186157A publication Critical patent/JP2013186157A/ja
Application granted granted Critical
Publication of JP5711681B2 publication Critical patent/JP5711681B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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

Description

本発明の実施の形態は、暗号化または復号を行う暗号処理装置に関する。
暗号処理装置は、平文/暗号文を特定のアルゴリズムを用いて暗号化/復号する。暗号処理装置に対しては、動作中における消費電力や電磁波を測定するだけで内部秘密鍵を導き出すパッシブな攻撃であるSPA(Simple Power Analysis)やDPA(Differential Power Analysis)などのサイドチャネル攻撃が報告されている。サイドチャネル攻撃は、攻撃の痕跡が残らないため、対策技術が必要かつ重要である。
サイドチャネル攻撃は、暗号化処理や復号処理の演算中に測定することが可能な消費電力や電磁波と、推測する秘密鍵から計算することのできる中間値(暗号処理の途中のデータ)との類似度が高い秘密鍵を導き出すことにより実現されている。このようなサイドチャネル攻撃に対する対策としては、乱数を用いて暗号処理の中間値を隠蔽し、類似度の高さ判定を困難にすることで、サイドチャネル攻撃を無効化する対策方法(マスク対策)が知られている。
AES(Advanced Encryption Standard)などのブロック暗号方式では、マスク対策として、中間値に対して乱数との排他的論理和(XOR)をとる方法と、乱数を乗算する方法とが知られている。ここで、暗号処理に含まれる非線形処理に対してマスク対策を適用する場合、非線形処理の性質上、ランダムに生成した乱数との排他的論理和によるマスク対策をそのまま適用することができない。そのため、非線形処理の入出力の対応関係を定めたテーブルを用いて非線形処理におけるマスク対策を実現する方法がある。しかし、テーブルを用いたマスク対策では、回路規模の大幅な増加を生じさせないために利用するテーブル数が限定されるため、乱数性が低下する。
一方、乱数の乗算によるマスク対策は、AESの逆元計算のように乗算を用いた非線形処理に対しては、その数学的性質により相性に優れるが、サイドチャネル攻撃に対する脆弱性が報告されている。
このように、従来の暗号処理装置では、特に非線形処理においてサイドチャネル攻撃に対して十分な対策を講じることが難しく、サイドチャネル攻撃に対する安全性の向上が求められていた。
特許第3600454号公報
P. C. Kocher, J. Jaffe, and B. Jun, Differential Power Analysis, Crypto '99, Lecture Notes in Computer Science, Vol. 1666 (1999), pp.388-397. AES (Advanced Encryption Standard) : FIPS-197, http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf M. Akkar and C. Giraud, An implementation of DES and AES, secure against some attacks, CHES 2001, Lecture Notes in Computer Science, Vol. 2162 (2001), pp.309-318.
本発明が解決しようとする課題は、サイドチャネル攻撃に対して安全性を高めた暗号処理装置を提供することである。
実施形態の暗号処理装置は、平文または暗号文に対して乗算を用いた非線形処理を含む複数の処理を行って前記平文を暗号化または前記暗号文を復号する暗号処理装置であって、前記複数の処理の途中のデータである中間値を、該中間値を隠蔽する値であるマスク値を用いて隠蔽した状態で処理を行う。この暗号処理装置は、非線形処理手段を備える。非線形処理手段は、前記中間値と第1マスク値との積と、第2マスク値と、の排他的論理和である第1データを入力し、該第1データに対して前記非線形処理を行って、前記中間値の逆元と前記第1マスク値の逆元との積と、前記第2マスク値との対応関係が予め定められた第3マスク値と、の排他的論理和である第2データを出力する。
AESの一般的な処理手順の一例を説明する図。 SubBytesの一例を説明する概念図。 S−Boxを説明する概念図。 暗号処理部の概要を示すブロック図。 実施形態の暗号処理装置の概略構成を示すブロック図。 暗号処理部の概要を示すブロック図。 変形データ処理部の概要を示すブロック図。 第1比較例の変形逆元計算部を示すブロック図。 第2比較例の変形逆元計算部を示すブロック図。 第1実施例の変形逆元計算部を示すブロック図。 第2実施例の変形逆元計算部を示すブロック図。 第3実施例の変形逆元計算部を示すブロック図。
本実施形態の暗号処理装置は、ブロック暗号方式により暗号化/復号を行う暗号処理装置であり、特にAESを用いる暗号処理装置への適用例である。なお、適用可能な暗号処理装置はAESを用いる暗号処理装置に限定されるものではなく、暗号処理において乗算を用いた非線形処理を行う暗号処理装置に対して広く適用可能である。
(AESの概要)
まず、AESの概要について説明する。ブロック暗号方式であるAESでは、128ビットのデータブロックに対して、ラウンド関数を用いたラウンド処理をAES鍵長に応じた規定のラウンド数分繰り返す。AESのラウンド関数は、AddRoundKey、SubBytes、ShiftRows、およびMixColumnsを含む。
AddRoundKeyは、AES鍵長に応じた処理を実行する鍵スケジュールで更新される128ビットの拡大鍵と、128ビットの入力データとの排他的論理和である128ビットのデータを出力するビットごとの演算処理である。SubBytesは、128ビットの入力データを16個の8ビットデータに区切り、8ビットデータ単位で例えばS−Boxによる非線形処理を行う演算処理である。ShiftRowsは、128ビットの入力データを16個の8ビットデータに分割して並び替える演算処理である。MixColumnsは、128ビットの入力データを4個の32ビットデータに分けて32ビット単位に線形処理を行う演算処理である。
図1は、AESの一般的な処理手順の一例を説明する図である。AESでは、図1に示すように、まず128ビットの平文を入力し、例えば、第1ラウンドから最終ラウンドの1つ前のラウンドまで、AddRoundKey→SubBytes→ShiftRows→MixColumnsを繰り返す。そして、最終ラウンドでは、AddRoundKey→SubBytes→ShiftRowsを行った後、MixColumnsをスキップして、後処理として再度AddRoundKeyを行い、暗号文を出力する。なお、図1は暗号化処理の手順を示しているが、復号処理の場合も同様な手順で実行される。ただし、復号処理の場合は、暗号文を入力として、SubBytes、ShiftRows、およびMixColumnsにおいて暗号化処理の逆変換が行われ、平文を出力する。また、鍵スケジュールでの処理は図への記載を割愛している。
AESのラウンド処理は、SubBytesの非線形処理と、SubBytes以外の線形処理とに分けることができる。
図2は、SubBytesの一例を説明する概念図である。SubBytesは、例えば図2に示すように、AddRoundKeyの出力128ビットを8ビットずつに分割し、各8ビットデータに対してS−Boxを行って、ShiftRowsの入力とする。
図3は、S−Boxを説明する概念図である。S−Boxは、図3に示すように、AddRoundKeyの出力8ビット分のデータを入力し、入力した8ビットデータに対して、非線形処理である逆元計算と、線形処理であるAffine変換とを行い、ShiftRowsの入力8ビット分のデータを出力する。
逆元計算は、入力データXを拡大体GF2上の逆数X−1に変換する非線形処理であり、拡大体GF2上の乗算の繰り返し演算によっても実現できる。
逆元計算:X−1← F(X)
ここで、XからX−1への対応関係は一意に定義されており、その対応関係はテーブルとして表現されることが一般的であるため、本実施形態でも、逆元計算はテーブルを用いて行うものとして説明する。逆元計算は、AESの暗号化処理および復号処理で共通して使用されるため、逆元計算を用いてS−Boxを実装することで、ハードウェア実装の場合は回路規模の削減、ソフトウェア実装の場合はメモリの削減が可能である。
図4は、AESの暗号化処理および復号処理を実行する暗号処理部100の概要を示すブロック図である。図4の例では、AESの暗号化処理を、線形処理と非線形処理(逆元計算)で模式的に表している。
暗号処理部100は、入力した平文をデータ処理部110で処理し、暗号文として出力する。データ処理部110は、入力されたデータd1をデータd2に変換して出力する。データ処理部110は、第1線形処理部111と、逆元計算部112と、第2線形処理部113とを有する。第1線形処理部111は、データd1をデータDに変換する線形処理L1(D=L1(d1))を行って、データDを出力する。逆元計算部112は、データDを拡大体GF2上の逆数D−1に変換する非線形処理F(D−1=F(D))を行って、データD−1を出力する。第2線形処理部113は、データD−1をデータd2に変換する線形処理L2(d2=L2(D−1))を行って、データd2を出力する。
第1線形処理部111による線形処理L1は、AESのラウンド関数のAddRoundKeyである。逆元計算部112による非線形処理Fは、SubBytesを行うS−Boxの逆元計算である。第2線形処理部113による線形処理L2は、第1ラウンドから最終ラウンドの1つ前のラウンドまでは、S−BoxのAffine変換→ShiftRows→MixColumnsであり、最終ラウンドでは、S−BoxのAffine変換→ShiftRows→AddRoundKeyである。
暗号処理部100は、第1ラウンドでは、入力した平文をデータd1としてデータ処理部110に入力する。その後、第2ラウンドから最終ラウンドまで、前のラウンドでデータ処理部110が出力したデータd2をデータd1としてデータ処理部110に入力する。そして、最終ラウンドでデータ処理部110から出力されるデータd2を、暗号文として出力する。
暗号処理部100による処理の流れを纏めると、以下の(1)〜(5)ようになる。
(1)平文を入力
(2)第1ラウンド
d1←平文
線形処理L1(AddRoundKey)
非線形処理F(逆元計算)
線形処理L2(Affine変換→ShiftRows→MixColumns)
(3)第2ラウンド〜最終ラウンドの1つ前のラウンド
d1←d2
線形処理L1(AddRoundKey)
非線形処理F(逆元計算)
線形処理L2(Affine変換→ShiftRows→MixColumns)
(4)最終ラウンド
d1←d2
線形処理L1(AddRoundKey)
非線形処理F(逆元計算)
線形処理L2(Affine変換→ShiftRows→AddRoundKey)
暗号文←d2
(5)暗号文を出力
(実施形態の暗号処理装置)
次に、実施形態の暗号処理装置について説明する。実施形態の暗号処理装置は、サイドチャネル攻撃に対して安全性を高めた暗号処理装置である。サイドチャネル攻撃に対する典型的な対策では、暗号化処理ないし復号処理を行っている途中のデータX(上記のデータd1,d2,Dなど。以下、これらの処理途中のデータを中間値と呼ぶ。)を常に乱数などのマスク値で隠蔽(マスク)する処理を行う。平文をマスク値でマスクしてから暗号化処理を実行し、最後にマスク値を剥がして(アンマスクして)暗号文を出力する方法は、マスク対策と呼ばれる。なお、ここでマスク値とは、データを隠蔽(マスク)するために用いるデータを意味する。つまり、乱数に限らず、マスク対策に用いるデータ全般をマスク値と呼ぶ。
以下では、中間値Xに対してマスク値Rを排他的論理和(XOR)した状態をX(+)Rと記述し、このときのマスク値RをXORマスクと呼ぶ。中間値Xのマスクに用いるマスク値Rのビット長は、中間値Xのビット長と等しくとることが一般的である。
XORマスクによるマスク対策は、線形処理Lに対してはL(X(+)R)=L(X)(+)L(R)の関係が成り立つため、線形処理Lとの相性がよい。すなわち、XORマスクによりマスクされた中間値に対する演算L(X(+)R)と、XORマスクに対する演算L(R)とを別々に実行しておき、最終的にXORマスクを剥がす際には両者の演算で得られる値の排他的論理和をとることで、正しい結果を得ることができる。このとき、L(X)を直接計算する必要がない(つまり、マスクがかかっていない真の中間値Xに対する計算を実行しない)ため、中間値Xを常にマスク値で隠蔽した状態で暗号化処理ないし復号処理を実行できる。
一方、非線形処理Fは、F(X(+)R)≠F(X)(+)F(R)であることから、非線形処理Fの実行後にXORマスクを剥がすことができない。すなわち、中間値Xとマスク値Rとの排他的論理和であるX(+)Rを、非線形処理Fにそのまま入力することができないという問題がある。これを解決する方法の1つとして、以下に示すようなTmi,moを、Fの代わりに用いる方法が知られている。
F(X)(+)mo←Tmi,mo(X(+)mi)
Tmi,moは、miと、miに対する対応関係が予め定められたmoとをXORマスクとして用い、X(+)miの入力に対して、F(X)(+)moを出力する非線形処理である。以下、このような非線形処理を、XORマスク付き非線形処理という。なお、mi,moはXORマスクであるが、非線形処理に用いるマスク値であるため、本実施形態ではテーブルマスクと呼び、通常のXORマスクと区別する。
8ビット入力値を8ビット出力値に変換する非線形処理Fは、8ビット×256サイズのテーブルを要する。テーブルマスクmi,moの値を固定とした場合のXORマスク付き非線形処理Tmi,moのテーブルサイズは、非線形処理Fと同様に8ビット×256サイズである。ただし、テーブルマスクmi,moが取り得る値の全ての組み合わせに対してXORマスク付き非線形処理Tmi,moのテーブルを用意する場合は、8ビット×256サイズのテーブルが、65,536(=256×256)個必要となる。
ソフトウェア実装では、非線形処理Fの実行ごとにテーブルマスクmi,moをランダムに選択し、XORマスク付き非線形処理Tmi,moのテーブルを再作成して処理を行うことも可能である。ハードウェア実装では、通常、テーブルマスクmi,moの値ごとにXORマスク付き非線形処理Tmi,moを組み合わせ回路として実装するため、テーブルマスクmi,moの全ての組み合わせに対するXORマスク付き非線形処理Tmi,moのテーブルを用意しておくことは、回路規模の大幅な増大を招く。そのため、65,536個よりも十分に小さいn個のテーブルのみを用意しておき、非線形処理Fの実行ごとにn個のテーブルの中から1個を選択して使用する。これは、非線形処理F用に使用可能なテーブルマスクmi,moのペアがn個に限定されることを意味する。ソフトウェア実装においても、非線形処理Fの実行ごとにXORマスク付き非線形処理Tmi,moのテーブルを再作成する実装は処理時間が増大するため、テーブル数を限定する方法の適用は有効である。
しかし、XORマスク付き非線形処理Tmi,moのテーブル数を限定すると、テーブルマスクmi,moの取り得る値が限定されるため、乱数性が低下し、サイドチャネル攻撃に対して脆弱になる懸念がある。そこで、本実施形態の暗号処理装置では、XORマスク付き非線形処理Tmi,moに対して乱数の乗算によるマスク対策を導入することで、XORマスク付き非線形処理Tmi,moにおける乱数性の低下を補い、サイドチャネル攻撃に対する安全性を高めるようにしている。
図5は、実施形態の暗号処理装置の概略構成を示すブロック図である。実施形態の暗号処理装置は、暗号処理部1と、乱数生成器2と、記憶装置3と、を備える。暗号処理部1は、暗号化処理の場合は平文を暗号化して暗号文を出力し、復号処理の場合は暗号文を復号して平文を出力する。このとき、暗号処理部1は、乱数生成器2が生成する乱数、および記憶装置3が記憶するテーブルマスクmi,moを用いて、暗号処理における中間値をマスクする。なお、実施形態の暗号処理装置は、XORマスク付き非線形処理Tmi,moのテーブルを回路として組み込む場合は、記憶装置3を備えない構成とすることもできる。
図6は、暗号処理部1の概要を示すブロック図である。実施形態の暗号処理装置が備える暗号処理部1は、図4に示した暗号処理部100に対してマスク対策を適用したものである。
暗号処理部1は、乱数生成器2が生成した乱数をXORマスクr1として用いて平文との排他的論理和をとり、XORマスクr1でマスクされた中間値d1(+)r1とXORマスクr1を変形データ処理部10に入力する。変形データ処理部10からは、XORマスクr2でマスクされた中間値d2(+)r2とXORマスクr2が出力される。暗号処理部1は、規定のラウンド回数の繰り返しが終了するまでは、前のラウンドで変形データ処理部10から出力されたd2(+)r2とr2を、次のラウンドの変形データ処理部10への入力(d1(+)r1←d2(+)r2、r1←r2)として、変形データ処理部10での処理を繰り返す。そして、暗号処理部1は、最終ラウンドの変形データ処理部10での処理が終了したら、変形データ処理部10から出力されたd2(+)r2とr2との排他的論理和をとることでマスクを剥がし、d2を暗号文として出力する。
図7は、変形データ処理部10の概要を示すブロック図である。変形データ処理部10は、第1線形処理部11と、変形逆元計算部12と、第2線形処理部13と、第3線形処理部14と、第4線形処理部15とを有する。
第1線形処理部11は、変形データ処理部10に入力されたd1(+)r1に対して線形処理L1を行って、D(+)R1を出力する。また、第3線形処理部14は、変形データ処理部10に入力されたr1に対して線形処理L1を行って、R1を出力する。ここで、D=L1(d1)、R1=L1(r1)である。
変形逆元計算部12は、第1線形処理部11から出力されたD(+)R1および第3線形処理部14から出力されたR1を入力し、D−1(+)R2およびR2を出力する。変形逆元計算部12は、乱数を乗算するマスク対策を導入したXORマスク付き非線形処理Tmi,moを用いて構成される。なお、変形逆元計算部12の具体例については、詳細を後述する。
第2線形処理部13は、変形逆元計算部12から出力されたD−1(+)R2に対して線形処理L2を行って、d2(+)r2を出力する。また、第4線形処理部15は、変形逆元計算部12から出力されたR2に対して線形処理L2を行って、r2を出力する。ここで、d2=L2(D−1)、r2=L2(R2)である。
次に、本実施形態の変形逆元計算部12の具体例(第1実施例1〜第3実施例)について、乱数を乗算するマスク対策を導入しない構成例(第1比較例)、および乱数を乗算するマスク対策のみを適用した構成例(第2比較例)と対比しながら説明する。なお、以下では、XORマスク付き非線形処理Tmi,moのn個のテーブルを区別するためにテーブル番号s(s=1,2,・・・,n)を用い、テーブル番号sに対応するXORマスク付き非線形処理Tmi,moをTmi,mo[s]、テーブル番号sに対応するテーブルマスクmi,moをmi[s],mo[s]と表記する。
<第1比較例>
図8は、第1比較例の変形逆元計算部200を示すブロック図である。第1比較例の変形逆元計算部200は、XORマスク付き非線形処理Tmi,moを行うXORマスク付き非線形処理部210を備える。第1比較例の変形逆元計算部200では、テーブル番号s=1を選択した場合、記憶装置220からテーブルマスクmi[1]を読み出し、D(+)R1に対して、XORマスクR1からテーブルマスクmi[1]へのマスク値の付け替えを行った後、D(+)mi[1]をXORマスク付き非線形処理部210に入力する。そして、乱数生成器230から新たなXORマスクとなる乱数R2を入力するとともに、記憶装置220からテーブルマスクmo[1]を読み出し、XORマスク付き非線形処理部210から出力されるD−1(+)mo[1]に対して、テーブルマスクmo[1]からXORマスクR2へのマスク値の付け替えを行い、D−1(+)R2とR2とを出力する。
第1比較例の変形逆元計算部200の処理の流れを纏めると、以下の(1)〜(5)のようになる。
(1)D(+)R1,R1を入力
(2)マスク値付け替え
テーブル番号sを選択
D(+)mi[s]←(D(+)R1)(+)R1(+)mi[s]
(3)XORマスク付き非線形変換処理Tmi,mo(逆元計算)
−1(+)mo[s]←Tmi,mo[s](D(+)mi[s])
(4)マスク値付け替え
乱数R2を入力
−1(+)R2←(D−1(+)mo[s])(+)R2(+)mo[s]
(5)D−1(+)R2,R2を出力
第1比較例の変形逆元計算部200では、XORマスク付き非線形処理Tmi,mo[s]を行うXORマスク付き非線形処理部210の入力および出力がテーブルマスクmi[s],mo[s]によりマスクされているが、選択可能なテーブル番号sが1〜nに限定されており、mi[s],mo[s]も限定されるため、乱数性が低下している。これは、DPAなどのサイドチャネル攻撃が成功するリスクが高まることを意味する。また、選択されたテーブル番号sに対応するXORマスク付き非線形処理Tmi,mo[s]が行われる間、テーブルマスクmi,moはmi[s],mo[s]に固定されるため、テーブルマスクmi,moのみのマスク対策では、局所的な電磁波を測定してDPAと同様に秘密鍵を推定するDEMA(Differential Electro-Magnetic Analysis)や、それらのより強力な攻撃である高次DPAや高次DEMAなどのサイドチャネル攻撃に対して、十分な安全性を確保できない懸念がある。
<第2比較例>
第2比較例の変形逆元計算部は、XORマスク付き非線形処理Tmi,moを用いず、非線形処理F(逆元計算)に対してマスク値(乱数)を乗算するマスク対策のみを適用した構成例である。以下では、中間値Xに対してマスク値Rを乗算した状態をX(*)Rと記述し、このときのマスク値Rを乗算マスクと呼ぶ。
図9は、第2比較例の変形逆元計算部300を示すブロック図である。第2比較例の変形逆元計算部300は、非線形処理F(逆元計算)を行う非線形処理部310を備える。第2比較例の変形逆元計算部300では、乱数生成器320から乗算マスクとなる乱数Aを入力し、D(+)R1に対して、XORマスクR1から乗算マスクAへのマスク値の付け替えを行った後、D(*)Aを非線形処理部310に入力する。そして、乱数生成器320から乱数rを入力して新たなXORマスクR2を生成するとともに、非線形処理部310から出力されるD−1(*)A−1に対して、逆元計算された乗算マスクAからXORマスクR2へのマスク値の付け替えを行い、D−1(+)R2とR2とを出力する。
第2比較例の変形逆元計算部300の処理の流れを纏めると、以下の(1)〜(5)のようになる。
(1)D(+)R1,R1を入力
(2)マスク値付け替え
乱数A(乗算マスク)を入力
Ra←R1(*)A
D(*)A←((D(+)R1)(*)A)(+)Ra
(3)非線形処理F(逆元計算)
−1(*)A−1←F(D(*)A)
(4)マスク値付け替え
乱数rを入力
−1(+)R2←((D−1(*)A−1)(+)r)(*)A
R2←r(*)A
(5)D−1(+)R2,R2を出力
第2比較例の変形逆元計算部300では、逆元計算を行う非線形処理部310の入力および出力が乗算マスクAによりマスクされているが、乗算マスクAによるマスク対策のみでは、例えば、平文を操作して中間値D=0となるような演算が実行された場合に乗算マスクAが施された中間値 D(*)Aも必ずゼロになることを利用して秘密鍵を特定する攻撃が行われた場合に、秘密鍵が漏洩する懸念がある。
<第1実施例>
図10は、第1実施例の変形逆元計算部12Aを示すブロック図である。第1実施例の変形逆元計算部12Aは、第1変換部21Aと、XORマスク付き非線形処理部22と、第2変換部23と、を備える。
第1変換部21Aは、XORマスクR1でマスクされた中間値であるD(+)R1(第3データ)と、XORマスクR1(第4マスク値)と、乱数生成器2が生成した乗算マスクとなる乱数A(第1マスク値)とを入力し、乗算マスクAと、記憶装置3から読み出したテーブルマスクmi[s](第2マスク値)と、XORマスクR1とを用いて、D(+)R1をD(*)A(+)mi[s](第1データ)に変換する。つまり、第1変換部21Aは、D(+)R1に対して、XORマスクR1から乗算マスクAおよびテーブルマスクmi[s]へのマスク値の付け替えを行う。
具体的には、第1変換部21Aは、例えば、乱数生成器2が生成した乱数AとXORマスクR1とを演算部31で乗算し、その乗算により得られる値をRaとする。また、第1変換部21Aは、XORマスクR1でマスクされた中間値であるD(+)R1と乱数Aとを演算部32で乗算し、その乗算により得られる値と、演算部31の乗算により得られるRaとの排他的論理和を演算部33で演算し、さらに、演算部33の演算により得られる値と、記憶装置3から読み出したテーブルマスクmi[s]との排他的論理和を演算部34で演算することで、D(+)R1をD(*)A(+)mi[s]に変換する。
XORマスク付き非線形処理部22は、第1変換部21AによってD(+)R1から変換されたD(*)A(+)mi[s]を入力し、D(*)A(+)mi[s]に対してXORマスク付き非線形処理Tmi,mo[s]を行い、D−1(*)A−1(+)mo[s](第2データ)を出力する。非線形処理F(逆元計算)の数学的性質から、D−1(*)A−1←F(D(*)A)であり、非線形処理FをXORマスク付き非線形処理Tmi,moに置き換えた場合、D−1(*)A−1(+)mo←Tmi,mo(D(*)A(+)mi)が成り立つ。ここで、(*)は拡大体GF2上の乗算を表す。mo[s](第3マスク値)は、テーブル番号sのテーブルによりテーブルマスクmi[s]に対応付けられている。
第2変換部23は、XORマスク付き非線形処理部22から出力されるD−1(*)A−1(+)mo[s]と、乗算マスクAと、乱数生成器2が生成した乱数rとを入力し、乗算マスクAと、乱数rとを用いて、D−1(*)A−1(+)mo[s]をD−1(+)R2(第4データ)に変換して出力するとともに、乱数rと、記憶装置3から読み出したテーブルマスクmo[s]と、乗算マスクAとを用いて、XORマスクR2(第5マスク値)を演算して出力する。つまり、第2変換部23は、新たなXORマスクR2を生成するとともに、D−1(*)A−1(+)mo[s]に対して、逆元計算された乗算マスクA−1およびテーブルマスクmo[s]からXORマスクR2へのマスク値の付け替えを行う。
具体的には、第2変換部23は、例えば、XORマスク付き非線形処理部22から出力されるD−1(*)A−1(+)mo[s]と乱数生成器2が生成した乱数rとの排他的論理和を演算部35で演算し、その演算により得られる値に対して、乱数Aを演算部36で乗算することで、D−1(*)A−1(+)mo[s]をD−1(+)R2に変換する。また、第2変換部23は、乱数rと記憶装置3から読み出したテーブルマスクmo[s]との排他的論理和を演算部37で演算し、その演算により得られる値に対して、乱数Aを演算部38で乗算することで、新たなXORマスクR2を生成する。なお、第2変換部23での演算に用いる乱数rは、変形逆元計算部12Aの出力の乱数性をさらに高めるために用いられるものであり、乱数rを用いない構成とすることもできる。この場合、新たなXORマスクR2は、乱数Aとテーブルマスクmo[s]との乗算により生成される。
第1実施例の変形逆元計算部12Aの処理の流れを纏めると、以下の(1)〜(5)のようになる。
(1)D(+)R1,R1を入力
(2)マスク値付け替え
テーブル番号sを選択
乱数A(乗算マスク)を入力
Ra←R1(*)A
D(*)A(+)mi[s]←((D(+)R1)(*)A)(+)Ra(+)mi[s]
(3)XORマスク付き非線形変換処理Tmi,mo(逆元計算)
−1(*)A−1(+)mo[s]←Tmi,mo[s](D(*)A(+)mi[s])
(4)マスク値付け替え
乱数rを入力
−1(+)R2←((D−1(*)A−1(+)mo[s])(+)r)(*)A
R2←(mo[s](+)r)(*)A
(5)D−1(+)R2,R2を出力
以上のように、第1実施例の変形逆元計算部12Aでは、XORマスク付き非線形処理部22の入出力が、テーブルマスクmi[s],mo[s]だけでなく乗算マスクAも用いてマスクされる。ここで、乗算マスクAはゼロ以外の任意の値(8ビット変数)を取り得るため、XORマスク付き非線形処理部22での乱数性が高められることになる。したがって、第1実施例の変形逆元計算部12Aを備える暗号処理装置は、サイドチャネル攻撃に対して高い安全性を確保することができる。また、第1実施例の変形逆元計算部12Aを備える暗号処理装置は、XORマスク付き非線形処理部22での乱数性が高められるため、局所的な電磁波を測定してDPAと同様に秘密鍵を推定するDEMAや、それらのより強力な攻撃である高次DPAや高次DEMAなどのサイドチャネル攻撃に対しても、十分な安全性を確保することができる。さらに、第1実施例の変形逆元計算部12Aを備える暗号処理装置は、乗算マスクAのみで非線形処理の入出力をマスクする場合に懸念される攻撃に対しても、十分な安全性を確保することができる。
なお、第1実施例の変形逆元計算部12Aでの処理は、XORマスク付き非線形処理Tmi,mo[s](逆元計算)、排他的論理和、および乗算で構成されるが、そのうち排他的論理和は軽い演算であるため、主な処理コストは、逆元計算1回、乗算4回であり、第1比較例の変形逆元計算部200に対する処理コストの増加分は、乗算4回である。
<第2実施例>
図11は、第2実施例の変形逆元計算部12Bを示すブロック図である。第2実施例の変形逆元計算部12Bは、第1変換部21Bと、XORマスク付き非線形処理部22と、第2変換部23と、を備える。XORマスク付き非線形処理部22および第2変換部23は第1実施例と同様であるため、以下では説明を省略する。
第1変換部21Bは、第1実施例の変形逆元計算部12Aが備える第1変換部21Aと同様に、乗算マスクAと、記憶装置3から読み出したテーブルマスクmi[s]と、XORマスクR1とを用いて、D(+)R1をD(*)A(+)mi[s]に変換する。ただし、第1変換部21Bは、乱数生成器2が生成した乱数を乗算マスクAとして用いるのではなく、乗算マスクAを演算により求める。
具体的には、第1変換部21Bは、例えば、XORマスクR1に対して、逆元計算部41(第1演算部)により逆元計算を行い、XORマスクR1の拡大体GF2上の逆数R1−1を求める。そして、第1変換部21Bは、逆元計算部41の逆元計算で求めたR1−1と記憶装置3から読み出したテーブルマスクmi[s]とを演算部42(第2演算部)で乗算し、その乗算により得られる値を乗算マスクAとする。そして、第1変換部21Bは、XORマスクR1でマスクされた中間値であるD(+)R1と演算部42の乗算により得られる乗算マスクAとを演算部43(第3演算部)で乗算することで、D(+)R1をD(*)A(+)mi[s]に変換する。
第2実施例の変形逆元計算部12Bの処理の流れを纏めると、以下の(1)〜(5)のようになる。
(1)D(+)R1,R1を入力
(2)マスク値付け替え
テーブル番号sを選択
R1−1←逆元計算(R1)
A←R1−1(*)mi[s]
D(*)A(+)mi[s]←(D(+)R1)(*)A
(3)XORマスク付き非線形変換処理Tmi,mo(逆元計算)
−1(*)A−1(+)mo[s]←Tmi,mo[s](D(*)A(+)mi[s])
(4)マスク値付け替え
乱数rを入力
−1(+)R2←((D−1(*)A−1(+)mo[s])(+)r)(*)A
R2←(mo[s](+)r)(*)A
(5)D−1(+)R2,R2を出力
以上のように、第2実施例の変形逆元計算部12Bでは、XORマスク付き非線形処理部22の入出力が、テーブルマスクmi[s],mo[s]だけでなく乗算マスクAも用いてマスクされるため、第1実施例の変形逆元計算部12Aと同様に、XORマスク付き非線形処理部22での乱数性が高められることになる。したがって、第2実施例の変形逆元計算部12Bを備える暗号処理装置は、第1実施例の変形逆元計算部12Aを備える暗号処理装置と同様の効果を得ることができる。
また、第2実施例の変形逆元計算部12Bでは、XORマスクR1とテーブルマスクmi[s]から求めたR1−1(*)mi[s]を乗算マスクAとして用いるため、XORマスクR1でマスクされた中間値D(+)R1に対するマスク値の付け替えの処理が乗算1回のみとなり、マスク値の付け替え処理を簡略化することができる。サイドチャネル攻撃では中間値Dに対する演算処理から秘密鍵が漏洩することから、マスク値の付け替えの処理の簡略化はサイドチャネル攻撃に対する耐性を向上させることに繋がる。
また、乗算マスクAを生成するための演算部42の演算は、XORマスクR1とテーブルマスクmi[s]との乗算であるため、通常の乗算を、予め定められた値mi[s]に依存した軽量演算で置き換えることができる。この演算部42の軽量化は、ハードウェア実装では回路規模やデータパス長の削減、ソフトウェア実装では処理時間の削減に繋がる。
また、第2実施例の変形逆元計算部12Bでは、乗算マスクAを演算により求めるようにしているので、第1実施例と比較して、乱数生成器2による乱数の生成コストを削減することができる。これにより、乗算マスクによるマスク対策を導入した場合であっても、必要とする乱数のビット長を、乗算マスクによるマスク対策を導入しない第1比較例と同等とすることができる。
なお、第2実施例の変形逆元計算部12Bでの主な処理コストは、逆元計算2回、乗算3回(軽量演算を除く)であり、第1比較例の変形逆元計算部200に対する処理コストの増加分は、逆元計算1回、乗算3回である。
<第3実施例>
図12は、第3実施例の変形逆元計算部12Cを示すブロック図である。第3実施例の変形逆元計算部12Cは、第1変換部21Cと、XORマスク付き非線形処理部22と、第2変換部23と、を備える。XORマスク付き非線形処理部22および第2変換部23は第1実施例および第2実施例と同様であるため、以下では説明を省略する。
第1変換部21Cは、第2実施例の変形逆元計算部12Bが備える第1変換部21Bと同様に、乗算マスクAを演算により求める構成である。ただし、第1変換部21Cは、XORマスク付き非線形処理部22が、複数(n個)のテーブルのうちの1つ(テーブル番号s)を使用してXORマスク付き非線形処理Tmi,mo[s](逆元計算)を行う構成であることを利用し、XORマスク付き非線形処理部22が使用していない他のテーブル(テーブル番号s’)を用いて、逆元計算の代わりにXORマスク付き非線形処理Tmi,mo[s’]を行うことで、第2実施例の変形逆元計算部12Bが備える第1変換部21Bの逆元計算部41を不要としている。
具体的には、第1変換部21Cは、例えば、XORマスクR1と記憶装置3から読み出したテーブルマスクmi[s’]との排他的論理和を演算部51で演算し、その演算により得られる値に対して、XORマスク付き非線形処理部52においてXORマスク付き非線形処理Tmi,mo[s’]を行う。そして、第1変換部21Cは、XORマスク付き非線形処理部52の演算により得られる値と記憶装置3から読み出したテーブルマスクmo[s’]との排他的論理和を演算部53で演算し、XORマスクR1の拡大体GF2上の逆数R1−1を求める。その後、第1変換部21Cは、第2実施例の変形逆元計算部12Bが備える第1変換部21Bと同様に、求めたR1−1と記憶装置3から読み出したテーブルマスクmi[s]とを演算部54で乗算し、その乗算により得られる値を乗算マスクAとする。そして、第1変換部21Cは、XORマスクR1でマスクされた中間値であるD(+)R1と演算部54の乗算により得られる乗算マスクAとを演算部55で乗算することで、D(+)R1をD(*)A(+)mi[s]に変換する。
第3実施例の変形逆元計算部12Cの処理の流れを纏めると、以下の(1)〜(5)のようになる。
(1)D(+)R1,R1を入力
(2)マスク値付け替え
テーブル番号s,s’を選択
R1−1←Tmi,mo[s’](R1(+)mi[s’])(+)mo[s’]
A←R1−1(*)mi[s]
D(*)A(+)mi[s]←(D(+)R1)(*)A
(3)XORマスク付き非線形変換処理Tmi,mo(逆元計算)
−1(*)A−1(+)mo[s]←Tmi,mo[s](D(*)A(+)mi[s])
(4)マスク値付け替え
乱数rを入力
−1(+)R2←((D−1(*)A−1(+)mo[s])(+)r)(*)A
R2←(mo[s](+)r)(*)A
(5)D−1(+)R2,R2を出力
以上のように、第3実施例の変形逆元計算部12Cでは、XORマスク付き非線形処理部22の入出力が、テーブルマスクmi[s],mo[s]だけでなく乗算マスクAも用いてマスクされるため、第1実施例の変形逆元計算部12Aや第2実施例の変形逆元計算部12Bと同様に、XORマスク付き非線形処理部22での乱数性が高められることになる。したがって、第3実施例の変形逆元計算部12Cを備える暗号処理装置は、第1実施例の変形逆元計算部12Aを備える暗号処理装置や、第2実施例の変形逆元計算部12Bを備える暗号処理装置と同様の効果を得ることができる。
また、第3実施例の変形逆元計算部12Cでは、XORマスクR1とテーブルマスクmi[s]から求めたR1−1(*)mi[s]を乗算マスクAとして用いるため、第2実施例の変形逆元計算部12Bを備える暗号処理装置と同様の効果を得ることができる。
さらに、第3実施例の変形逆元計算部12Cでは、XORマスク付き非線形処理部22が使用していない他のテーブル(テーブル番号s’)を用いて、第2実施例の変形逆元計算部12Bの第1変換部21Bが行う逆元計算の代わりに、XORマスク付き非線形処理Tmi,mo[s’]を行うため、第2実施例の変形逆元計算部12Bよりも処理コストを軽減することができる。すなわち、サイドチャネル攻撃に対する対策では、XORマスク付き非線形処理Tmi,moに用いるn個のテーブルのうち、選択されていないテーブルを停止させる制御を行うと攻撃が成功する危険性が高まるため、選択されていないテーブルを用いたダミー処理を行うことが多い。第3実施例の変形逆元計算部12Cでは、このダミー処理のうちの1つをXORマスク付き非線形処理部52で行うようにすればよい。このため、第1比較例の変形逆元計算部200がダミー処理を行うものと考えると、第1比較例の変形逆元計算部200に対する処理コストの増加分は、乗算3回である。
なお、上述した実施形態の暗号処理装置は、通常のコンピュータを利用したハードウェア構成とし、コンピュータによって実行されるプログラムにより、上述した各構成要素の全部または一部を実現することができる。
上述した暗号処理装置の各構成要素を実現するプログラムは、例えば、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、上述した暗号処理装置の各構成要素を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述した暗号処理装置の各構成要素を実現するプログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。さらに、上述した暗号処理装置の各構成要素を実現するプログラムを、ROMなどに予め組み込んで提供するように構成してもよい。
上述した暗号処理装置の各構成要素を実現するプログラムは、各構成要素に対応するコンポーネントを含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各コンポーネントが主記憶装置上にロードされ、暗号処理装置の各構成要素が主記憶装置上に生成されるようになっている。
以上、具体的な例を挙げながら詳細に説明したように、実施形態の暗号処理装置によれば、サイドチャネル攻撃に対して高い安全性を確保することができる。
なお、以上説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上記の新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記の実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
1 暗号処理部
2 乱数生成器
3 記憶装置
10 変形データ処理部
12,12A,12B,12C 変形逆元計算部
21A,21B,21C 第1変換部
22 XORマスク付き非線形処理部
23 第2変換部
41 逆元計算部
52 XORマスク付き非線形処理部

Claims (4)

  1. 平文または暗号文に対して乗算を用いた非線形処理を含む複数の処理を行って前記平文
    を暗号化または前記暗号文を復号する暗号処理装置であって、前記複数の処理の途中のデ
    ータである中間値を、該中間値を隠蔽する値であるマスク値を用いて隠蔽した状態で処理
    を行う暗号処理装置において、
    前記中間値と第1マスク値との積と、第2マスク値と、の排他的論理和である第1デー
    タを入力し、前記中間値に対する前記非線形処理により得られる値と前記第1マスク値に
    対する前記非線形処理により得られる値との積と、前記第2マスク値との対応関係が予め
    定められた第3マスク値と、の排他的論理和である第2データを出力する非線形処理手段
    と、
    前記中間値と第4マスク値との排他的論理和である第3データと、前記第4マスク値と
    、を入力し、前記第1マスク値と前記第2マスク値と前記第4マスク値とを用いて、前記
    第3データを前記第1データに変換して前記非線形処理手段に入力する第1変換手段と、
    前記第1マスク値を用いて、前記非線形処理手段が出力する前記第2データを、前記中
    間値に対する前記非線形処理により得られる値と第5マスク値との排他的論理和である第
    4データに変換して出力するとともに、前記第1マスク値と前記第3マスク値とを用いて
    、前記第5マスク値を演算して出力する第2変換手段と
    を備える暗号処理装置。
  2. 前記第1変換手段は、
    前記第4マスク値に対して逆元計算を行う第1演算部と、
    前記第1演算部の逆元計算により得られる値と前記第2マスク値とを乗算して前記第1
    マスク値を算出する第2演算部と、
    前記第3データと前記第2演算部が算出した前記第1マスク値とを乗算して前記第1デ
    ータを求める第3演算部と、を有する請求項に記載の暗号処理装置。
  3. 前記非線形処理手段は、前記第2マスク値と前記第3マスク値との対応関係を定めた複
    数のテーブルのうちの1つを選択し、選択したテーブルに基いて前記第1データを前記第
    2データに変換するものであり、
    前記第1演算部は、前記複数のテーブルのうち、前記非線形処理手段が選択したテーブ
    ルとは異なるテーブルに基づいて、前記第4マスク値に対する逆元計算を行う請求項
    記載の暗号処理装置。
  4. 前記非線形処理は、逆元計算である請求項1に記載の暗号処理装置。
JP2012048919A 2012-03-06 2012-03-06 暗号処理装置 Active JP5711681B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012048919A JP5711681B2 (ja) 2012-03-06 2012-03-06 暗号処理装置
EP13155051.9A EP2637349A3 (en) 2012-03-06 2013-02-13 Cryptographic processing apparatus
US13/768,085 US9166789B2 (en) 2012-03-06 2013-02-15 Cryptographic processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012048919A JP5711681B2 (ja) 2012-03-06 2012-03-06 暗号処理装置

Publications (2)

Publication Number Publication Date
JP2013186157A JP2013186157A (ja) 2013-09-19
JP5711681B2 true JP5711681B2 (ja) 2015-05-07

Family

ID=47747423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012048919A Active JP5711681B2 (ja) 2012-03-06 2012-03-06 暗号処理装置

Country Status (3)

Country Link
US (1) US9166789B2 (ja)
EP (1) EP2637349A3 (ja)
JP (1) JP5711681B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301096B (zh) * 2014-10-13 2018-04-20 深圳中科讯联科技有限公司 Aes轮运算方法和电路
US10341090B2 (en) * 2014-10-14 2019-07-02 Sony Corporation Cipher processing apparatus and cipher processing method
WO2016061635A1 (en) * 2014-10-24 2016-04-28 National Ict Australia Limited Gradients over distributed datasets
US11563566B2 (en) * 2014-10-27 2023-01-24 Micro Focus Llc Key splitting
US10158485B2 (en) 2015-09-24 2018-12-18 Intel Corporation Double affine mapped S-box hardware accelerator
US9910792B2 (en) 2016-04-11 2018-03-06 Intel Corporation Composite field scaled affine transforms-based hardware accelerator
EP3475825B1 (en) * 2016-06-23 2023-01-25 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
CN107547193A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法
US11061997B2 (en) * 2017-08-03 2021-07-13 Regents Of The University Of Minnesota Dynamic functional obfuscation
CN107294700B (zh) * 2017-08-22 2019-11-08 兆讯恒达微电子技术(北京)有限公司 防御旁路攻击的与逻辑电路装置及处理方法
CN108650072B (zh) * 2018-03-28 2021-04-20 杭州朔天科技有限公司 一种支持多种对称密码算法的芯片的抗攻击电路实现方法
EP3557813A1 (en) * 2018-04-17 2019-10-23 Gemalto Sa Method secured against side-channel attacks performing an arithmetic operation of a cryptographic algorithm mixing boolean and arithmetic operations
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム
FR3124670A1 (fr) * 2021-06-29 2022-12-30 Stmicroelectronics (Rousset) Sas Protection de données traitées par un algorithme de chiffrement

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3600454B2 (ja) 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
JP2007334016A (ja) * 2006-06-15 2007-12-27 Matsushita Electric Ind Co Ltd データ暗号化装置及びデータ暗号化方法
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
JP5268609B2 (ja) * 2008-12-09 2013-08-21 株式会社東芝 暗号処理装置及び演算方法

Also Published As

Publication number Publication date
JP2013186157A (ja) 2013-09-19
US20130236005A1 (en) 2013-09-12
US9166789B2 (en) 2015-10-20
EP2637349A2 (en) 2013-09-11
EP2637349A3 (en) 2014-04-30

Similar Documents

Publication Publication Date Title
JP5711681B2 (ja) 暗号処理装置
CN106788974B (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
JP5911654B2 (ja) 乱数生成器及びストリーム暗号
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
EP2293487A1 (en) A method of diversification of a round function of an encryption algorithm
CN113940028B (zh) 实现白盒密码的方法和装置
JP5481455B2 (ja) 暗号処理装置
JP5268609B2 (ja) 暗号処理装置及び演算方法
US8675866B2 (en) Multiplicative splits to protect cipher keys
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
JP5612007B2 (ja) 暗号化鍵生成装置
Teh et al. A chaos-based authenticated cipher with associated data
Waqas et al. Generation of AES-like S-boxes by replacing affine matrix
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
KR101362675B1 (ko) 저전력 암호화 장치 및 방법
JP6136325B2 (ja) 暗号処理装置、暗号処理方法およびプログラム
Murtaza et al. Fortification of aes with dynamic mix-column transformation
Chou et al. A high performance, low energy, compact masked 128-bit AES in 22nm CMOS technology
KR20100059571A (ko) 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
JP5605197B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Silva-Garcia et al. The triple-DES-96 cryptographic system
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP2013205437A (ja) 非線形関数S−boxの計算方法及び装置
Lin et al. A DCA-resistant Implementation of SM4 for the White-box Context

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140620

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141216

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150306

R151 Written notification of patent or utility model registration

Ref document number: 5711681

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151