JP7031580B2 - 暗号化装置、暗号化方法、復号化装置、及び復号化方法 - Google Patents

暗号化装置、暗号化方法、復号化装置、及び復号化方法 Download PDF

Info

Publication number
JP7031580B2
JP7031580B2 JP2018519182A JP2018519182A JP7031580B2 JP 7031580 B2 JP7031580 B2 JP 7031580B2 JP 2018519182 A JP2018519182 A JP 2018519182A JP 2018519182 A JP2018519182 A JP 2018519182A JP 7031580 B2 JP7031580 B2 JP 7031580B2
Authority
JP
Japan
Prior art keywords
input
function
values
output
trapdoor
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
JP2018519182A
Other languages
English (en)
Other versions
JPWO2017203992A1 (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.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group 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 Sony Corp, Sony Group Corp filed Critical Sony Corp
Publication of JPWO2017203992A1 publication Critical patent/JPWO2017203992A1/ja
Application granted granted Critical
Publication of JP7031580B2 publication Critical patent/JP7031580B2/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
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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/16Obfuscation or hiding, e.g. involving white box

Landscapes

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

Description

本開示は、暗号化装置、暗号化方法、復号化装置、及び復号化方法に関する。
従来、例えば下記の非特許文献1,2には、既存のブロック暗号をホワイトボックスモデルにおいても安全であるように変換する方法が記載されている。非特許文献1,2に記載された方法は、既存のアルゴリズム(DES,AES)のホワイトボックス実装に関し、演算を大きなテーブル参照に変換し、秘密鍵をテーブルに埋め込むことで、内部演算が外部から見られても安全性を保障する技術に関する。
S. Chow, P. Eisen, H. Johnson, P.C. van Oorschot "A white-box DESimplementation for DRM applications. " DRM 2002 S. Chow, P. Eisen, H. Johnson, P.C. van Oorschot "White-Box Cryptographyand an AES Implementation?" SAC 2002
非特許文献1,2に記載された方式は、ホワイトボックスモデルにおいては、暗号化をテーブル演算で行う。一般的には、テーブル参照ベースの演算を逆方向に計算することは容易である。つまり、攻撃者は暗号化関数Encにアクセスできれば、逆関数である復号関数Decを構成することが可能である。従って、非特許文献1,2に記載された技術では、満たすべき安全性を十分に確保することは困難である。
そこで、ホワイトボックスモデル暗号化において、逆方向の計算を抑止することが求められていた。
本開示によれば、平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、を備える、暗号化装置が提供される。
また、本開示によれば、平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有することと、前記複数の出力値の一部を前記落とし戸付一方向性関数により暗号化し、前記落とし戸付一方向性関数は落とし戸が不明な状態では暗号化したデータを復号化できない特性を有することと、を備える、暗号化方法が提供される。
また、本開示によれば、複数の入力値を復号して平文を構成する複数の出力値を出力する復号化部を備え、前記復号化部は、平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、の逆演算により復号を行う、復号化装置が提供される。
また、本開示によれば、複数の入力値を復号して平文を構成する複数の出力値を出力することを備え、平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、の逆演算により復号を行う、復号化方法が提供される。
以上説明したように本開示によれば、ホワイトボックスモデルにおいて、逆方向の計算を抑止することが可能となる。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
kビットの鍵長に対応したnビット共通鍵ブロック暗号アルゴリズムEを示す模式図である。 図1に示した暗号アルゴリズムEに対応する復号アルゴリズムDを示す模式図である。 CBCモードを示す模式図である。 counter(CTR)モードを示す模式図である。 共通鍵ブロック暗号アルゴリズムEの演算をテーブル参照演算で表現する例を示す模式図である。 公開鍵暗号方式を示す模式図である。 ハイブリッド暗号方式を示す模式図である。 本実施形態の基本的な構成を示す模式図である。 ホワイトボックスエンコーディング関数の構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 ホワイトボックスエンコーディング関数100の具体的な構成を示す模式図である。 ホワイトボックスエンコーディング関数100の具体的な構成を示す模式図である。 ホワイトボックスエンコーディング関数100の具体的な構成を示す模式図である。 ホワイトボックスエンコーディング関数100の具体的な構成を示す模式図である。 ホワイトボックスエンコーディング関数100の具体的な構成を示す模式図である。 共通の擬似ランダム置換の出力にカウント値をXORする構成例を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。 変換関数の具体的構成を示す模式図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.前提となる技術
2.本実施形態の基本的な構成例
3.ホワイトボックスエンコーディング関数の構成例
4.落とし戸付き一方向性関数について
5.特別な性質を持った変換関数について
6.ホワイトボックスエンコーディング関数の具体的な構成例
7.エンコーディングの方法
8.デコーディングの方法
1.前提となる技術
図1は、kビットの鍵長に対応したnビット共通鍵ブロック暗号アルゴリズムEを示す模式図である。共通鍵ブロック暗号は、平文Pと鍵Kを入力とし、暗号文Cを出力する。平文と暗号文のビット長をブロックサイズと呼び、ここではnで表す。nは任意の整数値を取りうるが、通常、ブロック暗号アルゴリズムごとに、予め1つに決められている値である。ブロック長がnのブロック暗号のことをnビットブロック暗号と称する場合がある。
図1に示すように、鍵Kのビット長をkで表す。鍵Kは任意の整数値を取り得る。共通鍵ブロック暗号アルゴリズムは、1つまたは複数の鍵サイズに対応することになる。例えば、あるブロック暗号アルゴリズムAはブロックサイズn=128であり、k=128、またはk=192、またはk=256の鍵サイズに対応するという構成もあり得る。
ものとする。図1に示す例では、平文Pはnビット、暗号文Cはnビット、鍵Kはkビットである。
図2は、図1に示した暗号アルゴリズムEに対応する復号アルゴリズムDを示す模式図である。ブロック暗号化アルゴリズムEに対応する復号アルゴリズムDは、ブロック暗号化アルゴリズムEの逆関数E-1と定義でき、入力として暗号文Cと鍵Kを受け取り、平文Pを出力する。
ブロック暗号は、nビットの固定長の入出力の関数である。nビット以上の大きなサイズのデータを暗号化する際は、複数のブロック暗号アルゴリズムEを接続し、大きな入出力サイズの暗号化関数を作成する。これを暗号化モードと称する。代表的な暗号化モードとして、CBCモードがある.ブロック単位に分割させた入力データをP1,P2,…,Pbとした場合、以下のようにブロック単位の暗号文C1,C2,…,Cbを作成する。ここで、IV(Initialization Vector)は、ブロックサイズと同じサイズの予測不可能な公開値とする。
C1=P1 XOR IV
Cb= Pb XOR Cb-1 for b>1
図3は、CBCモードを示す模式図である。また、図4はcounter(CTR)モードを示す模式図である。その他に、暗号化モードとしてはCipher Feedback(CFB),Output Feedback(OFB)等がある。また、改ざん検知機能を付けたcounter with CBC-MAC(CCM) modeや、Galois/Counter Mode (GCM) modeなどがある。モードを含めた任意サイズ(ただし、nの定数倍)の暗号化関数をEnc、復号関数をDecと定義する。
ブロック暗号の安全性モデルとして、ブラックボックスモデルとホワイトボックスモデルがある.以下それぞれのモデルにおいて想定される攻撃者の能力と求められる安全性について説明する。
ブラックボックスモデルは、攻撃者がブロック暗号アルゴリズムの入力、出力である平文P、暗号文Cにしかアクセスすることができない安全性モデルである。攻撃者のタイプとして、平文、暗号文のペアの値を知っているのみである既知平文暗号文攻撃、さらに値自体を攻撃者が自由にコントロールできる選択平文暗号文攻撃に分けることができる。モデルでは、暗号演算自体は安全に実行され、攻撃者が暗号の中間値を見たり、改ざんできないことを想定している。ブラックボックスモデルは、ハードウェアサポートなどを利用し、暗号演算の耐タンパ性が保障できている場合が対応する。ブラックボックスモデル用の暗号アルゴリズムの実装方法をブラックボックス実装と称する。ブラックボックスモデルの安全性として、鍵回復攻撃耐性(鍵Kを求めることが計算量的に困難)、識別攻撃耐性(ブロック暗号と擬似ランダム鍵付置換を識別するのが計算量的に困難)が挙げられる。
ホワイトボックスモデルは、ブラックボックスモデルよりも強い攻撃者を想定した安全性モデルであり、攻撃者がブロック暗号アルゴリズムの入力、出力である平文P、暗号文Cのみならず、演算の中間値にも自由にアクセスできることを想定したモデルである。攻撃者がブロック暗号の入力である平文P、暗号文Cを自由にコントロールでき、さらに演算中の任意の中間値を見ることや、改ざんできることを想定している。ホワイトボックスモデルは、ハードウェアのサポートがないオールソフトウェアなどの、実装上の制約により耐タンパが保障できないケースに対応している。また、ホワイトボックスモデルは、バッファオーバーフロー等の実装上の脆弱性やマルウェア等により中間値が漏れてしまう場合にも対応する。ホワイトボックスモデル用の暗号アルゴリズムの実装方法をホワイトボックス実装と称する。ホワイトボックスモデルの安全性として、平文回復困難性(暗号文から平文を見つけることが計算量的に困難)が挙げられ、この安全性を満たすために、ホワイトボックスモデルにおいて、暗号化関数Eは、暗号化関数Encから復号化関数Decを作ることができないという一方向性を満たす必要がある。この一方向性をホワイトボックス一方向性と称することとする。
既存技術1
2002年にChowらにより、ホワイトボックスモデルにおいても安全にブロック暗号DES,AESを安全に実装する方法が提案された(前述した非特許文献1,2)。この技術では、先ず、図5に示すように、共通鍵ブロック暗号アルゴリズムEの演算をテーブル参照演算で表現する。この手法は、テーブル50をdecompositionの難しい問題から生成し、テーブル50をつなぎ合わせることにより、ブロック暗号を生成するアプローチである。
これらの方式は、ホワイトボックスモデルにおいては、暗号化をテーブル演算で行う。一般的には、テーブル参照ベースの演算を逆方向に計算することは容易である。つまり、攻撃者は暗号化関数Encにアクセスできれば、逆関数である復号関数Decを構成することが可能である。よって、既存技術1では、満たすべき安全性であるホワイトボックス一方向性を満たすことができない。
既存技術2
図6は、公開鍵暗号方式を示す模式図である。公開鍵暗号方式では、暗号化(公開)鍵pkと復号(秘密)鍵skが異なり、それぞれの鍵を用いて暗復号を行う。ここで、安全な公開鍵暗号方式では、暗号化鍵pkからは復号鍵skを求めることは計算量的に困難である。一般に、暗号化鍵skは公開されて使用され、復号鍵skは秘密情報として使われる。よって、既存技術2においては、暗号化関数から復号関数を求めることは困難であり、ホワイトボックス一方向の条件をみたすことになる。具体的な公開鍵の構成方法として、RSA,ECCなどが広く用いられている。
既存方法2は、ホワイトボックスモデルにおいて、安全性の要件は満たしているが、パフォーマンスが非常に悪く、広く使われている共通鍵方式と比べて数百倍から数千倍処理時間が遅くなる。このため、現実のアプリケーションとしては、大きなデータの暗号化を行うことはできない。
既存技術3(ハイブリッド暗号方式)
図7は、ハイブリッド暗号方式を示す模式図である。公開鍵暗号と秘密鍵暗号を組み合わせた方式であり、乱数生成器とハッシュ関数より、暗号化毎に共通鍵ブロック暗号用の秘密鍵Kを生成する方式である。この方式では、データサイズの小さい共通鍵ブロック暗号用の秘密鍵Kのハッシュされる前の値を公開鍵暗号方式で暗号化し、実際のデータは高速な共通鍵暗号方式で暗号化を行う。復号の際は、公開鍵暗号の復号関数とハッシュ関数によって共通鍵ブロック暗号用の秘密鍵Kを得る。その後、復号した共通鍵ブロック暗号用の秘密鍵Kで、実際のデータを復号する。
既存方法3では、共通鍵用の秘密鍵を毎回乱数生成器から生成する。乱数生成器は擬似乱数アルゴリズムと真性乱数生成器に分けることができる。擬似乱数生成器では、シードと呼ばれ秘密情報をベースに乱数を生成する。このため、ホワイトボックスモデルでは、秘密のシードは攻撃者に見えてしまい、アルゴリズムは公開であるため、乱数の出力を攻撃者は予想することができる。つまり、共通鍵用の秘密鍵Kを攻撃者が予測できるため、容易に復号関数を構成することができる。
真性乱数生成を用いた場合は上記のような安全上の問題は無いが、真性乱数生成器のハードウェアが必要になる。そもそもホワイトボックスモデルは、すべてソフトウェアで実行したとしても安全性を保つ方式であるため、ハードウェアを準備した場合、ホワイトボックスモデルが想定している問題と矛盾する。また、効率的で安全な真性乱数生成器を導入するコストは非常に高くなる。
以上のように、既存技術1,3は求められる安全性(ホワイトボックス一方向性)を満たすことができない。また、既存技術2は,安全性は満たしているが、パフォーマンスが非常に悪く、実際の環境やユースケースでは用いることができない。
2.本実施形態の基本的な構成例
図8は、本実施形態の基本的な構成を示す模式図である。本実施形態に係るホワイトボックスエンコーディング関数100は、落とし戸付き一方向性関数と特別な性質から構成されるエンコーディング方法であり、ホワイトボックス一方向性の性質の成立を達成している。これを任意のブロック暗号演算を行う暗号化関数200の前に付けることで、暗号化関数(Enc)200にホワイトボックス一方向性の性質をもたせることができる。
3.ホワイトボックスエンコーディング関数の構成例
図9は、ホワイトボックスエンコーディング関数100の構成を示す模式図である。図9に示すように、ホワイトボックスエンコーディング関数100は、エンコーディング関数を落とし戸付き一方向性関数102と特別な性質(All-from-the-Part Transform)を持った変換関数104から構成する。具体的には、図9に示すように、平文Pを特別な性質を持った変換関数104に入力し、その出力の一部P1を落とし戸つき一方向性関数102の入力とする。落とし戸付き一方向性関数102の出力と、残りの特別な性質を持った変換関数104の出力をホワイトボックスエンコーディング関数100の出力とする。暗号化関数200の入力前にこの演算を行うことにより、任意のブロック暗号に対してホワイトボックス一方向性を持たせることができる。
4.落とし戸付き一方向性関数について
落とし戸付き一方向性関数102とは、順方向の演算は容易だが、逆方向の演算は”落とし戸”を知らない限り計算量的に困難な関数である。一方で、落とし戸さえ知っていれば、逆方向の演算も容易に計算できる関数である。例えば、RSA関数が代表的な落とし戸付き関数である。RSA関数では、公開鍵pkを用いて順方向演算を行い、逆方向演算では、秘密鍵skを用いて行う。秘密鍵skが落とし戸に対応し、公開鍵pkからは秘密鍵skを求めることは計算量的に困難である。その他、落とし戸付き一方向性関数としては、Rabin-WilliamsやKurosawa-Itoh-Takeuchi
cryptosystem,Dickson polynomials等がある。ここで、落とし戸付き一方向性関数102の入出力サイズをnin,noutと定義する。
5.特別な性質を持った変換関数について
特別な性質を持った変換関数104は、秘密鍵を含まない公開の関数であり、入力ブロックをX1,X2,X3, …,Xb、出力ブロックをY1,Y2,Y3,…,Ybとしたときに、次の性質1を満たす関数である。
(性質1)b-1通りのY2, Y3, …, Ybの出力ブロックと、任意の1つ入力ブロック(X1,X2,X3, …,Xbのいずれか1つ)が与えられたとき、全ての入出力を決定的に求めることができる。例えば、Y2,Y3,…,YbとX3が与えられたときに、Y1と残りのXは計算量1で計算可能である。なお、X1,X2,X3, …,Xbは図9のP1,P2,P3,…,Pbに対応し、Y1,Y2,Y3, …, Ybは図9のP1, P2, P3,…, Pbに対応する。
図9に示したように、ホワイトボックスエンコーディング関数100は、特別な性質を持った変換関数104と落とし戸付き一方向性関数102から構成される。平文をブロック毎に分けたP1,P2,P3,…,Pb,を特別な性質を持った変換関数104の入力とし、出力をP*1,P*2,P*3,…,P*bとする.ここで、出力の1ブロックを落とし戸付き一方向性関数102の入力とする。図9の場合、出力の1ブロックであるP*1が落とし戸付き一方向性関数102の入力になる。P*1以外の出力P*2,P*3,…,P*nと、落とし戸付き一方向性関数102の出力とが、ホワイトボックスエンコーディング関数100の出力P’1,P’2,P’3,…,P’bとなる。
図10~図14は、特別な性質を持った変換関数104の具体的構成を示す模式図である。図10に示す構成は、XOR演算(XOR Operation)のみの構成であって、以下の関係式で表すことができる。
Yi=Xi XOR Xb (1≦i≦n-1)
Yn=(Xb XOR (b mod 2)) X1 XOR X2 XOR X3 XOR X4 XOR…XOR Xb-1
図11に示す構成は、図10に示す構成に非線形関数P,…Pb-3,Pb-2,Pb-1を加えたものである。図11に示す構成は、以下の関係式で表すことができる。
Yi=Xi XOR Pi(Xb) (1≦i≦n-1)
Yn=(P1(Xb) XOR P2(Xb) XOR … XOR Pn-1(Xb)) XOR X2 XOR X3 XOR X4 XOR…XOR Xb
ここで、Piはn-bitの入出力の擬似ランダム置換である。
図12に示す構成は、図10に示す構成に非線形関数P,…Pb-3,Pb-2,Pb-1を加えたものである。図12に示す構成は、以下の関係式で表すことができる。
Yi=Pi(Xi) XOR Xb (1≦i≦n-1)
Yn=(Pb(Xb) XOR (b
mod 2)) Pi(X1) XOR Pi(X2) XOR Pi(X3) XOR Pi(X4) XOR …XOR Pi(Xb-1)
ここで、Piはn-bitの入出力の擬似ランダム置換である。
図13に示す構成は、XOR演算(XOR Operation)のみの最も基本的な構成例であって、以下の関係式で表すことができる。
Y1=X1
Yi=X1 XOR Xi (2≦i≦n)
図14に示す構成は、図13に示す構成に非線形関数P,…P2,P3,Pbを加えたものである。図14に示す構成は、以下の関係式で表すことができる。
Y1=P1(X1)
Yi=P1(X1) XOR Pi(Xi) (2≦i≦n)
ここで、Piはn-bitの入出力の独立な擬似ランダム置換である。
擬似ランダム置換は、秘密鍵は固定の公開値をいれることで、ブロック暗号から置換関数が構成可能である。効率的な構成方法として、AESの128 bit鍵のAESを4 roundに縮約したものがあげられる。4 roundでも非線形関数として十分な性質を持っているためである。また独立な関数にするために、図20に示すように、共通の擬似ランダム置換の出力にカウント値rをXORすることで疑似ランダム変換を構成することもできる。
図21~図25は、特別な性質を持った変換関数104の更に別の具体的構成を示す模式図である。図21~図25においても、入力ブロックをX1,X2,X3, …,Xb、出力ブロックをY1,Y2,Y3,…,Ybとしている。また、図22~図25に示す構成例では、入出力の独立な擬似ランダム置換Piを備えている。
6.ホワイトボックスエンコーディング関数の具体的な構成例
図15~図19は、ホワイトボックスエンコーディング関数100の具体的な構成を示す模式図である。図15は、図10に示す構成に落とし戸付き一方向性関数102を加えたものである。図16は、図11に示す構成に落とし戸付き一方向性関数102を加えたものである。図17は、図12に示す構成に落とし戸付き一方向性関数102を加えたものである。図18は、図13に示す構成に落とし戸付き一方向性関数102を加えたものである。図19は、図14に示す構成に落とし戸付き一方向性関数102を加えたものである。
7.エンコーディングの方法
ホワイトボックスエンコーディング関数100におけるエンコーディングの方法は以下の通りである。先ず、平文Pをn-bitブロック毎に分割する。次に、平文Pのブロックを入力として変換関数104による演算を行う。次に、出力の特定の1ブロックを落とし戸付き一方向性関数102に入力し、計算する。ここで、落とし戸付き一方向性関数102は、公開鍵を用いて演算される。次に、落とし戸付き一方向性関数102の出力と、変換関数104の残りの出力を暗号文として生成する。
8.デコーディングの方法
また、ホワイトボックスエンコーディング関数100と逆方向のデコーディング関数によるデコーディング(復号)の方法は以下の通りである。先ず、暗号文Cをn-bitブロック毎に分割する。次に、暗号文の特定のブロックを落とし戸付き一方向性関数102の逆関数の入力として計算する。ここで、落とし戸付き一方向性関数102の逆関数は、落とし戸である秘密鍵を用いて計算される。次に、落とし戸付き一方向性関数102の逆関数の出力と、残りの暗号文ブロックを入力として、変換関数104の逆関数を計算する。そして、変換関数104の逆関数の出力を平文Pとする。
本実施形態によれば、既存技術1,3で満たすことのできなかったホワイトボックス一方向性を満たすことができる。具体的には,ランダムに与えられた暗号文から平文を求めることが、落とし戸付き一方向性関数102を破るのと等価かそれ以上難しいことを証明可能である。
更に、ホワイトボックスモデルにおいて、暗号化関数Encからどの1つの平文ブロックの復号化関数Decを作ることもできない。これは、ランダムに与えられた暗号文から平文の1ブロックさえも求めることが難しいことを保障している。このように、より強い安全性も同様の安全性であることを証明可能である。また、エンコーディング関数を付けたとしても、ブロック暗号関数の持っている性質は保存可能である。
既存技術2は、ホワイトボックス一方向性を満たすことはできたが、パフォーマンスが非常に悪い欠点があった。b個のブロックの暗号化に対して、既存技術2はb回のRSA演算が必要であったが、暗号化関数にCBC modeを用いた場合、本実施形態によれば、1回のRSAとN回のブロック暗号演算になる。bの値が十分に大きい場合、それぞれRSA演算とブロック暗号演算のコストが支配的になり、提案方式は数百倍速くなる。
本実施形態の手法は、暗号化関数に入力される平文Pに対して実行される。つまり、暗号化関数とは独立に行われるため、基本的にはどんな暗号関数(AES, CLEFIA)や暗号化モード(CBC. CTR mode)に対しても適用可能である。また、暗号化関数の実装に対しても変更を必要としないので、既存のライブラリに対してもwrapperとして適用可能である。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1) 平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、
前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、
を備える、暗号化装置。
(2) 前記変換関数は、前記所定の関係として、前記複数の出力値のうち前記落とし戸付一方向性関数に入力されない出力値と前記複数の入力値の任意の1つとが定まると、前記複数の入力値の全てと前記複数の出力値の全てが定まる関係を有する、前記(1)に記載の暗号化装置。
(3) 前記落とし戸付一方向性関数に入力されて暗号化された出力値と、前記一方向性関数に入力されない出力値とを暗号化する暗号化関数を更に備える、前記(1)又は(2)に記載の暗号化装置。
(4) 前記変換関数は、b個の前記複数の入力値のうちの特定の1つと他のb-1個の入力値とをそれぞれ排他論理和演算して得られたb-1個の値と前記特定の1つの入力値とからなるb個の値を前記複数の出力値とする、前記(1)~(3)のいずれかに記載の暗号化装置。
(5) 前記特定の入力値がそのまま前記落とし戸付一方向性関数に入力される、前記(4)に記載の暗号化装置。
(6) 前記変換関数は、前記複数の入力値のそれぞれについてランダム置換を行う非線形関数を含む、前記(4)に記載の暗号化装置。
(7) 前記変換関数は、b個の前記複数の入力値のうちの特定の1つと他のb-1個の入力値とをそれぞれ排他論理和演算して得られたb-1個の出力値と、前記特定の1つの入力値と前記b-1個の出力値を順次に排他論理和演算して得られた特定の1つの出力値とからなるb個の出力値を前記複数の出力値とする、前記(1)~(3)のいずれかに記載の暗号化装置。
(8) 特定の1つの出力値が前記落とし戸付一方向性関数に入力される、前記(7)に記載の暗号化装置。
(9) 前記変換関数は、前記複数の入力値のそれぞれについてランダム置換を行う非線形関数を含む、前記(7)記載の暗号化装置。
(10) 前記変換関数は、前記特定の1つの入力値と他のb-1個の前記入力値とをそれぞれ排他論理和演算する前に、当該他のb-1個の前記入力値と排他論理和される前記特定の1つの入力値にランダム置換を行う非線形関数を含む、前記(7)に記載の暗号化装置。
(11) 前記落とし戸付一方向性関数はRSAである、前記(1)~(10)のいずれかに記載の暗号化装置。
(12) 平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有することと、
前記複数の出力値の一部を前記落とし戸付一方向性関数により暗号化し、前記落とし戸付一方向性関数は落とし戸が不明な状態では暗号化したデータを復号化できない特性を有することと、
を備える、暗号化方法。
(13) 複数の入力値を復号して平文を構成する複数の出力値を出力する復号化部を備え、
前記復号化部は、平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、の逆演算により復号を行う、復号化装置。
(14) 複数の入力値を復号して平文を構成する複数の出力値を出力することを備え、
平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、の逆演算により復号を行う、復号化方法。
100 ホワイトボックスエンコーディング関数
102 落とし戸付き一方向性関数
104 変換関数
200 暗号化関数

Claims (14)

  1. 平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、
    前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、
    を備える、暗号化装置。
  2. 前記変換関数は、前記所定の関係として、前記複数の出力値のうち前記落とし戸付一方向性関数に入力されない出力値と前記複数の入力値の任意の1つとが定まると、前記複数の入力値の全てと前記複数の出力値の全てが定まる関係を有する、
    請求項1に記載の暗号化装置。
  3. 前記落とし戸付一方向性関数に入力されて暗号化された出力値と、前記落とし戸付一方向性関数に入力されない出力値とを暗号化する暗号化関数を更に備える、
    請求項1に記載の暗号化装置。
  4. 前記変換関数は、b個の前記複数の入力値のうちの特定の1つと他のb-1個の入力値とをそれぞれ排他論理和演算して得られたb-1個の値と前記特定の1つの入力値とからなるb個の値を前記複数の出力値とする、
    請求項1に記載の暗号化装置。
  5. 前記特定の入力値がそのまま前記落とし戸付一方向性関数に入力される、
    請求項4に記載の暗号化装置。
  6. 前記変換関数は、前記複数の入力値のそれぞれについてランダム置換を行う非線形関数を含む、
    請求項4に記載の暗号化装置。
  7. 前記変換関数は、b個の前記複数の入力値のうちの特定の1つと他のb-1個の入力値とをそれぞれ排他論理和演算して得られたb-1個の出力値と、前記特定の1つの入力値と前記b-1個の出力値を順次に排他論理和演算して得られた特定の1つの出力値とからなるb個の出力値を前記複数の出力値とする、
    請求項1に記載の暗号化装置。
  8. 特定の1つの出力値が前記落とし戸付一方向性関数に入力される、
    請求項7に記載の暗号化装置。
  9. 前記変換関数は、前記複数の入力値のそれぞれについてランダム置換を行う非線形関数を含む、
    請求項7に記載の暗号化装置。
  10. 前記変換関数は、前記特定の1つの入力値と他のb-1個の前記入力値とをそれぞれ排他論理和演算する前に、当該他のb-1個の前記入力値と排他論理和される前記特定の1つの入力値にランダム置換を行う非線形関数を含む、
    請求項7に記載の暗号化装置。
  11. 前記落とし戸付一方向性関数はRSAである、
    請求項1に記載の暗号化装置。
  12. 暗号化装置が、
    平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、
    前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と
    用いて暗号化を行う
    暗号化方法。
  13. 複数の入力値を復号して平文を構成する複数の出力値を出力する復号化部を備え、
    前記復号化部は、平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、の逆演算により復号を行う、
    復号化装置。
  14. 復号化装置が、
    複数の入力値を復号して平文を構成する複数の出力値を出力
    平文を構成する複数の入力値に応じて複数の出力値を出力し、前記複数の出力値の一部が落とし戸付一方向性関数に入力され、当該落とし戸付一方向関数に入力されない出力値と前記複数の入力値の任意の1つによって規定される所定の関係を有する変換関数と、前記複数の出力値の一部を暗号化し、落とし戸が不明な状態では暗号化したデータを復号化できない特性を有する前記落とし戸付一方向性関数と、の逆演算により復号を行う、
    復号化方法。
JP2018519182A 2016-05-23 2017-05-11 暗号化装置、暗号化方法、復号化装置、及び復号化方法 Active JP7031580B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016102869 2016-05-23
JP2016102869 2016-05-23
PCT/JP2017/017869 WO2017203992A1 (ja) 2016-05-23 2017-05-11 暗号化装置、暗号化方法、復号化装置、及び復号化方法

Publications (2)

Publication Number Publication Date
JPWO2017203992A1 JPWO2017203992A1 (ja) 2019-03-22
JP7031580B2 true JP7031580B2 (ja) 2022-03-08

Family

ID=60411169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018519182A Active JP7031580B2 (ja) 2016-05-23 2017-05-11 暗号化装置、暗号化方法、復号化装置、及び復号化方法

Country Status (4)

Country Link
US (1) US11153068B2 (ja)
EP (1) EP3467808B1 (ja)
JP (1) JP7031580B2 (ja)
WO (1) WO2017203992A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101933649B1 (ko) * 2016-05-27 2018-12-28 삼성에스디에스 주식회사 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
JP6624307B2 (ja) * 2016-12-12 2019-12-25 日本電気株式会社 復号装置、復号方法およびプログラム
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
US10776522B1 (en) * 2018-02-20 2020-09-15 Xilinx, Inc. Asymmetric protection of circuit designs
WO2020018454A1 (en) * 2018-07-16 2020-01-23 Islamov Rustam Cryptography operations for secure post-quantum communications
KR102319699B1 (ko) * 2019-08-02 2021-11-02 국민대학교산학협력단 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
JP7383949B2 (ja) * 2019-09-20 2023-11-21 富士電機株式会社 情報処理装置及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510539A (ja) 2006-11-17 2010-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ホワイトボックス実施のための暗号化方法
JP2011514091A (ja) 2008-03-05 2011-04-28 イルデト・ビー・ヴイ 暗号システム
JP2012520589A (ja) 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム
US20160050065A1 (en) 2013-05-01 2016-02-18 Koninklijke Philips N.V. Electronic block cipher device suitable for obfuscation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142579A (en) * 1991-01-29 1992-08-25 Anderson Walter M Public key cryptographic system and method
ATE128297T1 (de) * 1991-03-14 1995-10-15 Omnisec Ag Verschlüsselungssystem mit öffentlichem schlüssel unter verwendung elliptischer kurven über ringe.
US5493614A (en) * 1994-05-03 1996-02-20 Chaum; David Private signature and proof systems
US6345101B1 (en) 1998-10-07 2002-02-05 Jayant Shukla Cryptographic method and apparatus for data communication and storage
JP3998640B2 (ja) * 2004-01-16 2007-10-31 株式会社東芝 暗号化及び署名方法、装置及びプログラム
CN104335218B (zh) * 2012-03-30 2017-08-11 爱迪德技术有限公司 使用基函数编码来保护可访问的系统
WO2016082857A1 (en) * 2014-11-24 2016-06-02 Nec Europe Ltd. Method for encrypting data for distributed storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510539A (ja) 2006-11-17 2010-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ホワイトボックス実施のための暗号化方法
JP2011514091A (ja) 2008-03-05 2011-04-28 イルデト・ビー・ヴイ 暗号システム
JP2012520589A (ja) 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム
US20160050065A1 (en) 2013-05-01 2016-02-18 Koninklijke Philips N.V. Electronic block cipher device suitable for obfuscation

Also Published As

Publication number Publication date
WO2017203992A1 (ja) 2017-11-30
EP3467808A1 (en) 2019-04-10
US20190103957A1 (en) 2019-04-04
JPWO2017203992A1 (ja) 2019-03-22
EP3467808B1 (en) 2020-04-08
EP3467808A4 (en) 2019-06-12
US11153068B2 (en) 2021-10-19

Similar Documents

Publication Publication Date Title
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US11546135B2 (en) Key sequence generation for cryptographic operations
Mitali et al. A survey on various cryptography techniques
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
JP6740902B2 (ja) 認証暗号化方法、認証復号方法および情報処理装置
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
KR20100069610A (ko) 연쇄화된 암호화 모드를 위한 방법 및 디바이스
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
TW201044334A (en) Encryption device, encryption method, and computer program
CN109714154B (zh) 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法
JP5365750B2 (ja) ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
Tayal et al. Analysis of various cryptography techniques: a survey
KR101971001B1 (ko) 화이트박스 암호가 적용된 블록 암호 기반의 난수 생성 방법 및 장치
Nakahara Jr Lai-Massey Cipher Designs: History, Design Criteria and Cryptanalysis
Saarinen GCM, GHASH and Weak Keys.
Sakamoto Design of Efficient Symmetric-Key Cryptographic Algorithms
Nu1L Team Crypto
WO2009081975A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP2014041389A (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5338945B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
Bellare et al. CFRG S. Smyshlyaev, Ed. Internet-Draft CryptoPro Intended status: Informational R. Housley Expires: September 8, 2017 Vigil Security, LLC
Lei et al. The FCM Scheme for Authenticated Encryption
Abdelbadie Abdallah et al. COMPARATIVE STUDY OF CRYPTOGRAPHY TECHNIQUES

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190208

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190214

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190222

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190515

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190522

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210806

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220207

R151 Written notification of patent or utility model registration

Ref document number: 7031580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151