JP6415542B2 - 難読化に適した電子ブロック暗号装置 - Google Patents

難読化に適した電子ブロック暗号装置 Download PDF

Info

Publication number
JP6415542B2
JP6415542B2 JP2016510996A JP2016510996A JP6415542B2 JP 6415542 B2 JP6415542 B2 JP 6415542B2 JP 2016510996 A JP2016510996 A JP 2016510996A JP 2016510996 A JP2016510996 A JP 2016510996A JP 6415542 B2 JP6415542 B2 JP 6415542B2
Authority
JP
Japan
Prior art keywords
substitution
layer
input
box
boxes
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
JP2016510996A
Other languages
English (en)
Other versions
JP2016520866A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2016520866A publication Critical patent/JP2016520866A/ja
Application granted granted Critical
Publication of JP6415542B2 publication Critical patent/JP6415542B2/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
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、ルックアップテーブルの形式で複数の換字ボックスを格納するストレージユニットと、メッセージブロックに対してブロック暗号のラウンドのシーケンスを適用することによって、ディジタルデータのメッセージブロックにブロック暗号を適用するように構成された制御ユニットと、を有するディジタルデータのメッセージブロックを暗号化又は復号化するための電子ブロック暗号装置に関し、前記換字ボックスは、ブロック暗号の換字レイヤをともに形成しており、前記換字レイヤは、換字レイヤ入力をとるように構成されるとともに、換字レイヤ入力を換字レイヤ出力へ変換し、前記ブロック暗号のラウンドの1つは、換字レイヤを有する。
本発明は、電子ブロック暗号方法及び対応するソフトウェアにも関する。
ブロック暗号は、暗号学において、しばしば用いられる原理である。ブロック暗号は、暗号キーの制御の下、ディジタルデータのメッセージブロックを暗号化又は復号化するためのアルゴリズムである。ブロック暗号は、慣例的にビットサイズである、幾つかの所定のブロックサイズのディジタルデータのメッセージブロック上で動作する。通常のブロックサイズは、64ビット、128ビット、192ビット、及び、256ビットを含む。上記の動作は、決定論的全単射の(ひいては可逆な)動作である。既知のブロック暗号は、DES及びAESを含む。
例えば、コンテンツ配布システムは、海賊版対策のため、配布前に、コンテンツを暗号化してもよい。暗号化されたコンテンツは、安全でないチャネル上で、例えばインターネット上で配布され得るが、暗号化に用いられたキーは、より安全な手段、例えばDRMシステムを用いて配布され得る。しかしながら、上記キーの配布でさえ、リスクがないわけではない。DRM実装でさえ、その秘密(秘密キーなど)を復元するために解読され得る。このため、及び、他の理由で、リバースエンジニアリングに対して保護され得る、安全な暗号化/復号化原理への要望がある。
例えば、マスターキーなどの、DRM実装において使用されるキーを保護するための1つの方法は、ブロック暗号の実装を用いることであり得る。ホワイトボックス暗号は、秘密キーが「インスタンス化」された、ブロック暗号のソフトウェア実装である。実装においてキーをインスタンス化することは、キーを固定し、キーについての部分的な評価によって、キーを実装に埋め込むことであり、即ち、キー入力は不要となる。キーに依存する計算が、メッセージブロック入力の知識なく、可能な限り評価される。典型的に、キースケジュールが計算され、ラウンドキーが、他のステップと結合され得る。しばしば、ラウンドキーは、換字レイヤと結合され得る。即ち、換字レイヤにおける換字ボックスの出力に対してラウンドキーが追加される。
次に、実装は、難読化される。典型的に、これは、暗号をテーブルネットワークとして表現し、ネットワークのテーブルの符号化にによってなされる。目的は、ホワイトボックス暗号からインスタンス化されたキーを回復する努力が、潜在する暗号上のブラックボックス(例えば、ブルートフォース)アタックと少なくとも同じくらい大きいことである。
1つの理想的な解決法は、1つの大きいルックアップテーブルとして暗号を実装することであろう。しかしながら、これは、実際のブロック暗号にとって、実施不可能である。この理想にアプローチするホワイトボックス戦略が、コンピュータサイエンス2003における講義ノートのディジタル著作権管理(DRM)において、2002年に発行された、S. Chow, P. Eisen、H. Johnson、及び、P.C. van Oorschot等による、「A White-Box DES Implementation for DRM Applications」で紹介されている。計算、特に、ブロック暗号が、キー情報がネットワーク全体に拡散されるように、ランダム化された、ルックアップテーブルのネットワークとして実装され得る。全ての構成ブロックが、キーから外見上独立しているように作られ得る。暗号を解読しようとする者は、秘密キー情報を得るために、完全なネットワークを分析することを強いられる。テーブルネットワークの難読化は、テーブルに書き出された変換に対して難読化の変換を加える(プリペンド及びアペンド)ことによって可能である。このようにして、全ての難読化変換の組み合わせがキャンセルしたまま、各テーブルがランダム化される。他の例は、Chow, Eisen及びvan Oorschot等による、「White-Box Cryptography and an AES Implementation」において与えられている。
ホワイトボックス暗号化では、ブロック暗号は、たとえ攻撃者が実装に対して完全なアクセスを有していたとしても、攻撃者が、キーを抽出することが困難であるように、ソフトウェアにおいて実装される。しかしながら、本発明者は、従来のホワイトボックス技術を用いて安全にすることが難しいという観点において、特定の種類のブロック暗号、いわゆる置換線形変換ネットワーク(Substitution-Linear Transformation Network)が、脆弱性を有することを発見した。より詳細には、Wil Michiels、Paul Gorissen、及び、Henk D. L. Hollmann等による「Cryptanalysis of a Generic Class of White-Box Implementations」を参照されたい。問題は、SLT(Substitution-Linear Transformation)タイプの暗号が組織化される、即ち、Chow等によって用いられるような、ホワイトボックス技術を用いた上述のタイプのブロック暗号の任意のホワイトボックス実装が、脆弱であるということに関する。
改善されたブロック暗号を有することが好ましい。
ディジタルデータのメッセージブロックを暗号化又は復号化するように構成された電子ブロック暗号装置が、提供される。当該ブロック暗号装置は、ストレージユニットと、制御ユニットとを有する。
上記ストレージユニットは、ルックアップテーブルの形式で複数の換字ボックスを格納するように構成され、複数の換字ボックスは、ブロック暗号の換字レイヤをともに形成し、換字レイヤは、換字レイヤ入力をとり、換字レイヤ入力を換字レイヤ出力に変換し、少なくとも1つの換字ボックスは、同じ換字レイヤにおける2以上の他の換字ボックスの出力の少なくとも一部の組み合わせを入力として受信する。
上記制御ユニットは、メッセージブロックにブロック暗号ラウンドのシーケンスを適用することによって、ブロック暗号をディジタルデータのメッセージブロックに適用するように構成され、ブロック暗号ラウンドの1つは、換字レイヤを有する。
少なくとも1つの換字ボックスが、入力として、同じ換字レイヤにおける2以上の他の換字ボックスの少なくとも一部の組み合わせを受信するように構成されるため、換字レイヤは、完全にパラレルではない。これは、ホワイトボックスにおいて用いられるような、このレイヤの入力−出力符号化が、上述の態様において、除去されることができないということを意味する。より一般的には、ブロック暗号部分が、かかる率直な態様において分析され得ることは望ましくないと考えられている。
また、ブロック暗号は、本発明者の、「Computing device configured with a table network」というタイトルで2012年12月21日に出願された米国特許出願第61/740726号明細書に説明されるようなシステムの使用にとても良く適している。さらに、一般的なブロック暗号よりも、上記タイプのソフトウェア実装ブロック暗号上で用いられる場合、自動化ソフトウェア難読化システムが、一般的に、より効果的である。
実際、上述の線形変換レイヤ手法とは異なる方法で、大きい非線形関数が、より小さい非線形関数(S−ボックス)から作られ、これは、ホワイトボックスアタックコンテキストにおける実装により適している。換字ボックスは、ルックアップテーブルであり、ディジタル入力をとり、当該入力をディジタル出力に変換するように構成される。好ましくは、上記S−ボックスは、非線形である。
また、非並列性が、少なくとも1つの換字ボックスのディジタル出力の第1の部分が、少なくとも1つの換字ボックスと同じ換字レイヤにおける他の換字ボックスの入力の一部として用いられ、少なくとも1つの換字ボックスのディジタル出力の第2の部分が、同じ換字レイヤにおける他の異なる換字ボックスの入力の一部として用いられるように構成された少なくとも1つの換字ボックスを持つことによって得られる。
ある実施形態では、換字レイヤは、複数のサブレイヤを有し、前記複数のサブレイヤの第1のサブレイヤは、前記換字レイヤ入力を入力として受信し、次のサブレイヤは、前の換字レイヤの前記出力を入力として受信し、前記次のサブレイヤの1つは、前記換字レイヤ出力を作る最後のサブレイヤである。複数のサブレイヤを用いることが、換字レイヤの範囲内で拡散が発生することを保証するための効果的な方法であることが発見された。
ブロック暗号装置は、携帯電話などの携帯電子装置を有していてもよく、携帯電子装置において使用されてもよい。ブロック暗号装置は、セットトップボックス、コンピュータなどを有していてもよく、セットトップボックス、コンピュータなどにおいて使用されてもよい。
本発明の一態様は、ディジタルデータのメッセージブロックを暗号化又は復号化するための電子ブロック暗号方法であって、ルックアップテーブルの形式で複数の換字ボックスを格納するステップであって、前記複数の換字ボックスは、ブロック暗号の換字レイヤをともに形成し、前記換字レイヤは、換字レイヤ入力をとり、前記換字レイヤ入力を換字レイヤ出力に変換し、少なくとも1つの換字ボックスは、同じ換字レイヤにおける2以上の他の換字ボックスの出力の少なくとも一部の組み合わせを入力として受信するステップと、前記メッセージブロックにブロック暗号ラウンドのシーケンスを適用することによって、前記ブロック暗号を前記ディジタルデータの前記メッセージブロックに適用するステップであって、前記ブロック暗号ラウンドの1つは、前記換字レイヤを有するステップと、を有する方法に関する。
本発明に従った方法は、コンピュータ実装された方法として、又は、専用のハードウェアにおいて、又は、それらの組み合わせにおいて、コンピュータ上で実装されてもよい。本発明に従った方法のための実行可能なコードが、コンピュータプログラム製品上に記録されてもよい。コンピュータプログラム製品の例は、メモリ装置、光学ストレージ装置、集積回路、サーバ、オンラインソフトウェアなどを含む。好ましくは、コンピュータプログラム製品は、上記プログラム製品がコンピュータ上で実行された場合に、本発明に従った方法を実行するために、コンピュータ読み取り可能な媒体に記録された非一時的なプログラムコード手段を有する。
好ましい実施形態では、コンピュータプログラムは、コンピュータプログラムがコンピュータ上で実行された場合に、本発明に従った方法の全てのステップを実行するために適合されたコンピュータプログラムコード手段を有する。好ましくは、コンピュータプログラムは、コンピュータ読み取り可能な媒体上に表される。
本発明のこれらの態様及び他の態様が、以下説明される実施形態を参照して、明確且つ明らかとなる。
図1aは、ブロック暗号を図示しているブロック図である。 図1bは、ブロック暗号のラウンドを図示しているブロック図である。 図2は、換字レイヤを図示しているブロック図である。 図3は、換字レイヤを図示しているブロック図である。 図4は、換字レイヤを図示しているブロック図である。 図5aは、換字レイヤを図示しているブロック図である。 図5bは、符号化を含んだ換字レイヤを図示しているブロック図である。 図6は、計算機を図示しているブロック図である。
異なる図面において同一の参照符号を有するアイテムは、同一の構造的特徴及び同一の機能を持ち、又は、同一の信号であることに留意すべきである。かかるアイテムの機能及び/又は構造が説明されている場合、詳細な説明において、それらの説明を繰り返す必要はない。
本発明は、多くの異なる形式の実施形態を許容可能であるが、本開示が、本発明の原理の一例であると考えられるべきであり、図示及び詳述される特定の実施形態に本発明を限定する意図はないという理解の下、ここでは、1又は複数の特定の実施形態が、図示及び詳述される。
図1aは、概略的な形式で、ブロック暗号を示している。ブロック暗号は、ブロック暗号ラウンド112,114,116で示される、複数のラウンドを有する。ラウンドの数は、ブロック暗号の設計に依存する。例えば、8又は12又は16個のラウンドが、しばしば用いられる。典型的には、ラウンドの数は、8以上である。また、ディジタルデータのメッセージ入力部110が示されている。当該メッセージ入力部は、典型的に、バイナリデータであり、固定されたブロックサイズを有する。通常のブロックサイズは、64、128、192、256であり、特に、128が便利な選択である。入力として受信されるメッセージブロックは、例えば、それぞれ8ビットのバイト、又は、それぞれ4ビットのニブルなどのワードに分割されてもよい。ラウンドの最後において、ブロックサイズのメッセージ出力部120が作られる。
メッセージブロック110から始めて、ラウンド112〜116が、順次適用され、各ラウンドは、ブロックサイズの中間結果を作る。図1aの場合、例えば、第1のラウンド112が、第1の中間結果を作るために適用され、ラウンド114が、第2の中間結果を作るために、第1の中間結果に対して適用される。第1の中間データブロックは、ブロック暗号入力のみに依存し、それぞれ、次の中間データブロックは前の中間データブロックに依存し、一般的に、ラウンド114〜116は、入力として受信し、ラウンドキーであろう、中間結果のみに依存する。
時々、第1及び最後のラウンドは、様々な実際の理由のために幾らか異なるが、しばしば、全てのブロック暗号ラウンドは、同一のアルゴリズムを用いる。ラウンドは、異なるラウンドキーを用いるため、しばしば、異なる。ラウンドキーは、キースケジュールを用いて、暗号化キーから抽出され得る。ブロック暗号が難読化される方法において実装される場合、ラウンドキーは、固定されてもよく、ラウンドが、部分的に評価される。例えば、多くのブロック暗号(例えば、AES)において、ラウンドキー適用を換字レイヤと結合することが可能である。ブロック暗号は、電子ブロック暗号装置において、便利に実装される。
ラウンドは、換字レイヤ及び線形変換レイヤを有していてもよい。換字レイヤ動作では、換字ボックス(S−ボックス)がデータブロックに適用される。線形変換レイヤは、データブロック全体に線形変換を適用する。
安全なブロック暗号を得るために、擬似ランダム関数に匹敵する転字E(全単射)を実装すべきであるが、暗号化関数も効率的に実装可能であるべきである。非線形関数のみが、小さいワードサイズのために効率的に実装されることができ、これは、一般的に、ルックアップテーブルによって実装され、これらのテーブルは、ブロックサイズととも指数関数的に増加するサイズを持つ。線形関数は、大きいブロックサイズのために効率的に実装されることができるが、極めて安全ではない。AES及び3DESなどの人気のあるブロック暗号は、これらの2つの可能性を結合する。つまり、ブロック暗号ラウンドは、キー適用ステップと、2つのレイヤとを有する。これらのレイヤの第1のレイヤが、S−ボックスと呼ばれる換字ボックスのセットによって特定される。S−ボックスは、例えば、kビットの小さいワード上の非線形関数である(典型的に、ワードサイズは、バイト又はニブルである)。入力は、kビットのワードに分割され、各ワードが、S−ボックスに与えられる。AES及びDESでは、上記レイヤは、異なるワードのビット間に依存性を作らず、同一ワードのビット間のみに依存性を作る。第2のレイヤは、線形関数を実行する。線形関数は、完全なnビットのデータブロック上で動作する。このため、このレイヤは、異なるワードのビット間に依存性を作る。かかるブロック暗号は、置換−線形変換(SLT:Substitution-Linear Transformation)ネットワークと呼ばれる。
図1bは、図1aにおいてブロック暗号ラウンドとして使用される、SLT暗号のブロック暗号ラウンドの可能な実装を開示している。
ラウンド入力130が図示されている。ラウンド入力は、例えば、バイナリなどのディジタルであり、ブロックサイズ幅を有するデータである。図示されるラウンド入力は、ふくすのラウンド入力ワード132〜136として与えられる。各ワードは、例えば、4又は8ビットの、換字ボックスのサイズを有する。ラウンドは、換字レイヤ140を持つ。換字レイヤ140は、S−ボックス142〜146を有する。各S−ボックスは、ラウンド入力ワードに対して、ラウンド入力ワード関数を実装する。当該関数は、典型的に、非線形である。例えば、XOR動作について非線形である。入力部130におけるワードの各々に関し、異なるS−ボックスが使用され得る。全てのワードに対して同一のS−ボックスが使用されてもよい。換字レイヤ140の適用前にラウンドキーが適用される、例えば、ラウンド入力130を有するブロックサイズのラウンドキーのXORされ得ることに留意すべきである。しかしながら、我々は、ラウンドキーが、部分的評価を用いて換字レイヤ140に組み込まれてきたことを想定している。
換字レイヤにおけるSボックス142〜146の結合結果に対して、例えば、結果は連結され、マトリクス動作などの線形変換150が適用される。線形変換は、例えば、AESにおけるワードシフトなど、複数の線形結合で作られてもよい。線形変換150の結果が、ラウンド出力160であり、ここでは、複数のラウンド出力ワード162〜166として示されている。
換字レイヤ140は、このブロックサイズの場合、換字レイヤ入力130を入力としてとり、この中間結果の場合、複数のワードを他のワードと置換することによって、換字レイヤ入力130を換字レイヤ出力に変換する。Sボックスは、ルックアップテーブルであってもよい。換字レイヤ140は、完全にパラレルであり、各Sボックスは、1つのラウンド入力ワードのみに正確に依存し、各Sボックスは、出力として、1つのラウンド出力ワードを作る。ラウンド出力ワードは、この換字レイヤにおいて、再度用いられることはない。換言すれば、換字レイヤ140は、同一の換字レイヤにおける2以上の他の換字ボックスの出力の少なくとも一部の組み合わせを入力として受信するように構成された換字ボックスを持たない。
典型的には、図1a及び図1bのブロック暗号を実装する装置は、装置に格納される適切なソフトウェアを実行するマイクロプロセッサを有し、例えば、そのソフトウェアは、RAMなどの揮発性メモリ、又は、Flashなどの不揮発性メモリ(図示省略)である、対応するメモリにダウンロード及び格納されたものであってもよい。
数学的表記では、通常、SLTネットワークにおいて、nビットの非線形関数は、線形変換150を介してS、S、・・・、Sのn個の出力ビットを混合することによって、m個の小さい、好ましくは高次の、非線形関数(Sボックス)S、S、・・・、S(142〜146)から形成される。
図1bは、典型的なSLTネットワークの構造を示している。ラウンドの入力130は、132〜136として示される、kビット(n=mk)のm個の等しいサイズのワードx、x、・・・、xに分割される。通常のワードレングスは、4〜8ビットである(例えば、3DESには6ビット、AESには8ビット)。入力は、ラウンドキーでXOR処理され(図1bにおいて別途示されてはいない)、この操作の結果が、m個のSボックスS、S、・・・、Sに与えられる。即ち、ワード132が、Sボックス142に与えられ、ワード134が、Sボックス136に与えられ、入力130の各ワードが、対応するSボックスに与えられる。例えば、ワードiは、SボックスSに与えられる。kビット毎の単一の関数において、ラウンドキー追加関数
Figure 0006415542
とSとが結合されてもよい。我々は、この関数をTと称する。次に、線形変換150が、Sボックスの出力に適用される。線形変換は、マトリクスMとの乗算として表現されてもよい。結果は、ラウンドの出力を与える。ラウンド出力は、次のラウンドへの入力として用いられてもよく、ブロック暗号の出力として用いられてもよく、又は、ブロック暗号への出力として処理及び使用されてもよい。例えば、最終的なラウンドキー適用又は最終的な転字が、前のラウンドとは異なる最終的なラウンドにおいて適用されてもよい。
本発明者は、一般的に、図1a及び図1bに示されるタイプのSLTブロック暗号が、特に、ホワイトボックス実装などにおいて、難読化された実装を抽出する点で脆弱性を持つことを発見した。ここでは、難読化実装に対して、より良好に適した換字レイヤが示されている。
換字レイヤは、連続的な換字ボックスによって、入力ブロックを出力ブロックに変換する。幾つかの換字ボックスは、換字レイヤ出力の一部を供給し、例えば、出力ボックスの幾つかのビットは、換字レイヤ出力の一部として直接使用され、これらのボックスは、出力ボックスとして表されてもよい。レイヤにおける幾つかの換字ボックスは、換字レイヤ出力から入力を受信し、我々は、入力ボックスとしてこれらのボックスを表し得る。好ましくは、換字レイヤ出力の各部分は、当該レイヤにおけるSボックスの出力から得られる。好ましくは、換字レイヤ入力の各部分は、当該レイヤにおけるSボックスのための入力として使用される。
換字レイヤが、SLTネットワークにおいて使用される場合、換字レイヤは、可逆であるべきである。さらに、かかる換字レイヤの入力及び出力サイズは、ブロックサイズと等しい。しかしながら、換字レイヤが、異なる構造において使用される場合、例えば、DESなどのファイステルタイプのネットワークにおいて換字レイヤを置き換える場合、当該レイヤは、可逆である必要もないし、入力及び出力サイズをブロックサイズと等しくする必要もない。実際、換字レイヤ入力のサイズを換字レイヤ出力と等しくないように(典型的には大きく)してもよい。
上述の換字レイヤは、符号化の非線形部分が、入力/出力符号化のアフィン部分から隔離され得るという利点を有することに留意すべきである。かかる分離は、これらの暗号に対する攻撃に直接つながるため、特に、SLT暗号において問題である。しかしながら、かかる弱点は、特に、ホワイトボックス攻撃モデルのコンテキストで実装される場合、任意のブロック暗号において好ましくない。
図2、図3、図4、図5a及び図5bにおいて、この弱点に苦しまない換字レイヤの例が示されている。これらの換字レイヤは、以下に示される換字レイヤと換字レイヤ140を置き換えることによって、図1a及び図1bに示されるSLT暗号において直接使用されてもよい。次に、幾つか又は全てのラウンドが、換字レイヤ及び可能なラウンドキー付加のみを含む場合、線形変換150を除去することも可能である。これは、例えば、換字レイヤが完全な拡散を持つ場合になされることができる。これを確立するための1つの方法は、換字レイヤ出力の各ビットが、換字レイヤ入力の各ビットに依存していることを必要とする。これを保証するための1つの基準は、換字レイヤ出力における各ビット位置x及び換字レイヤ入力における各入力ビット位置yに関し、ビット位置yにおいてのみ異なるとともに、w1及びw2に関する換字レイヤ出力が、少なくともビット位置xにおいて異なるという特性をもつ、2つの換字レイヤ入力w1及びw2が存在することを必要とする。理想的には、この特性は、各ラウンドキーのために保持されるべきであるが、実際には、ランダムに選択される1つのラウンドキーに関して確立する場合、又は、全てゼロなどに固定される場合に、満足され得る。
より進化したアプリケーションでは、アバランチェ基準が満足されることも必要とされ得る(ラウンド入力などの入力において任意のビットを入れ替え、出力において任意のビットの1/2の入れ替えの可能性を与え、可能性マージンをプラス又はマイナスする)。
アバランチェ基準の定義については、例えば、
Figure 0006415542
Vergili及びMelek Yucel等による、「Avalanche and Bit Independence Properties for the Ensembles of Randomly Chosen n x n S-Boxes」の2.1項を参照すればよい。アバランチェ基準は、入力される平文におけるわずかなビット差異が、変更の崩壊につながる、つまり、大きな暗号文ビット差異をもたらすという、ブロック暗号の重要な暗号化特性であると考えられている。より正式には、ある入力ビットが変更された場合に、平均的に、出力ビットの半分が変わる場合、関数は、アバランチェ基準を満たす。アバランチェ基準のこの定義の正確な要件は、現実的でなく、誤り間隔が許容される。アバランチェ基準は、Sボックスレベルと同様、ブロック暗号レベルにおいて使用され得る。
一般的に、より小さなSボックスから作られる大きなSボックスと同程度に小さく、換字レイヤが用いられ得る。大きなSボックスは、次に、より小さいSボックスと同様の方法で、置換線形変換ネットワークにおいて使用されることができるが、ファイステルネットワークにおいても、又は、一般的に、換字ボックスの交換としても、使用され得る。また、このようにして、我々は、より安全な難読化された実装が存在するブロック暗号を作ることができる。新たな手法は、このため、小さいSボックスからのnビット上で、非線形関数を作るために得られる。この非線形関数は、難読化実装のためにより適している。図2、図3、図4、図5a、及び、図5bにおいて、図1bに示されるようなSボックスのパラレルなアプリケーションは使用されないが、Sボックスのネットワーク化されたアプリケーションが使用される。つまり、線形変換150に対して全てのSボックスの出力を直接与える代わりに、Sボックスの一部の出力部分が、他のSボックスの入力として使用される。
図において、Sボックスは、ボックスとして図示されており、Sボックスに向かう矢印は、少なくとも1ビットのSボックスへの入力を示し、Sボックスから出て行く矢印は、少なくとも1ビットの出力を示している。
図2は、換字レイヤ200を示している。また、換字レイヤ入力202と換字レイヤ出力204とが示されている。換字レイヤ200は、第1のサブレイヤ210と第2のサブレイヤ220とを持つ。第1のサブレイヤ210は、換字ボックス212〜216を有し、第2のサブレイヤ220は、換字ボックス222〜226を有する。
第1のサブレイヤ210における各換字ボックスは、換字レイヤ入力202から入力の全て又は一部を受信する。第1のサブレイヤ210における第1の換字ボックス212は、換字レイヤ入力202からの入力のみを受信し、第1のサブレイヤ210における次の各換字ボックスは、前の換字ボックス及び換字レイヤ入力202の両方からの入力を受信する。例えば、換字ボックス212は、例えば、8ビットの、換字レイヤ入力202からの入力を受信する。換字ボックス214は、例えば、4ビットの、換字レイヤ入力202からの入力を受信するとともに、例えば、4ビットの、換字レイヤ212の出力からの入力を受信する。
ある実施形態では、各換字ボックスは、偶数個の入力ビットをとり、前の出力から半分を受信し、レイヤ入力202から半分を受信する(第1の換字ボックスが、レイヤ入力202から全てをとることは例外である)。しかし、これらの数は、必要であれば、例えば、前の出力から2ビット又は1ビットをとったり、1以外の全てをとったりするなど、変更されてもよい。
第2のレイヤ220における各換字ボックスは、第1のレイヤ210における対応するSボックスから入力を受信する。第1の換字ボックス226は、第1のレイヤ210における対応するSボックス216からの入力のみを受信し、次の各換字ボックスは、第1のレイヤ210における対応するSボックスからの入力と第2のレイヤ220における前のSボックスからの入力とを受信する。
第1のレイヤ210におけるSボックスの入力は、レイヤ入力202を共に形成している。第2のレイヤ220の出力は、レイヤ出力204を共に形成している。
第2のレイヤにおけるSボックス226を除く全ての換字ボックスは、入力として、同じ換字レイヤにおける2以上の他の換字ボックス、つまり、第1のサブレイヤ210における1つのSボックス及び同じサブレイヤにおける前のSボックスの出力の少なくとも一部の組み合わせを受信することに留意すべきである。この特徴は、Sボックスに適用されるホワイトボックス符号化の単純化のクラスを阻止する。
第2のサブレイヤにおける各Sボックスの出力は、第1のレイヤにおける各Sボックスの入力に依存していることに留意すべきである。この特徴は、特に、より大きなSボックスについて、換字レイヤが完全な拡散(各出力ビットが、各入力ビットに依存している)を引き起こす確からしさを高くする。Sボックスは、好ましくは、非線形関数として選択される。例えば、追加されるラウンドキーが可能であれば、AESのSボックス又はランダムな非線形関数がとられてもよい。
例えば、ブロックサイズとして、128などの、32以上の2のべき乗がとられ、これが、入力202のサイズのために使用されてもよい。各Sボックスは、入力及び出力として、4又は8ビットなどの、より小さな2のべき乗を受信してもよい。Sボックスが、2以上のソースに対して、入力をとる、又は、出力を送る場合、入力又は出力は、例えば、最上位及び最下位の半分など、2つのソースに等しく分割される(他の分割が可能である)。
図2は、長い依存性チェインの特性を示している。例えば、第4の換字ボックスが第3の換字ボックスの出力から入力を受信し、第3の換字ボックスが第2の換字ボックスの出力から入力を受信し、第2の換字ボックスが第1の出力から入力を受信する特性を持つ、第1の換字ボックス(212)、第2の換字ボックス(214)、第3の換字ボックス(224)、及び、第4の換字ボックス(222)がある。これは、例えば、差分又は線形暗号解析に関し、Sボックスを通じたチェインの不規則性を特に困難にする。
図3は、換字レイヤ300を示している。換字レイヤ入力302と換字レイヤ出力304とが示されている。換字レイヤ300は、第1のサブレイヤ310と第2のサブレイヤ320とを持つ。第1のサブレイヤ310は、換字ボックス312〜316を有し、第2のサブレイヤ320は、換字ボックス322〜326を有する。
第1のサブレイヤ310における各換字ボックスは、換字レイヤ入力302から全ての入力を受信する。第2のサブレイヤ320における各換字ボックスは、換字レイヤ310における換字ボックスの出力から全ての入力を受信する。第2のサブレイヤ320における各換字ボックスは、少なくとも2つの他の換字ボックス又はそれ以上の他の換字ボックスから入力を受信する。例えば、第1及び第2のレイヤにおいて、各Sボックスが出力において8ビットを有する、8個のSボックスがあってもよい。第1のレイヤにおける各Sボックスから1ビットを受信する第2のレイヤにおける各Sボックスは、第1のサブレイヤ310の各出力が、正確に使用されるものであってもよい。
図3の換字レイヤは、図2の長いチェイン特性を持たないが、換字レイヤが、第4及び第3の換字ボックスの両方が、第1及び第2の換字ボックスの出力から入力を受信するという特性を持つ第1の換字ボックス(312)、第2の換字ボックス(314)、第3の換字ボックス(324)、及び、第4の換字ボックス(322)を有するという特性を持つ。
図4は、3個のサブレイヤが用いられる図2の変形例を示している。換字レイヤ入力402を受信し、換字レイヤ出力404を作る換字レイヤ400が示されている。換字レイヤ400は、換字ボックス412〜416を持つ第1のサブレイヤ410と、換字ボックス422〜426を持つ第2のサブレイヤ420と、換字ボックス432〜436を持つ第3のサブレイヤとを有する。サブレイヤの数は、3より多くに増加されてもよいし、あるいは、例えば、32(又はより多く)又は64まで増加されてもよい。かかる換字レイヤは、線形拡散レイヤ150なしで用いられてもよい。
図2〜図4に示される換字レイヤの全てが、個別のSボックスが可逆である場合はいつでも可逆であることに留意すべきである。
図5aは、ラウンドキーがSボックスに含まれる図2の例を示している。この例では、ラウンドワードは、k=8のサイズを有する。使用されるSボックスの数は、pによって与えられている。Sボックスのネットワークは、左(第1)レイヤと右(第2)レイヤとからなる。左レイヤでは、SボックスT(i<p)の出力バイトが、2つのニブルに分割される(2つのワードへの他の分割も可能である)。一のニブルは、右レイヤのSボックスTp+Iに対する入力として与えられ、他のニブルは、左レイヤにおける次のSボックスSi+1に与えられる。
好ましくは、ネットワークの各出力ビットは、ネットワークの各入力ビットによって影響を受ける。この特性(拡散特性)は、SLT暗号において線形変換レイヤを導入したためである。この特性を実現、又は、少なくとも近似するために、左レイヤにおける各Sボックスから右レイヤにおける各Sボックスへの、ネットワーク内の経路が存在する。
上述したように与えられるSボックスT、T、・・・、T2pのネットワークを考える。p=3をとることによって、我々は、16ビット上で、非線形全単射関数を構築することができる。この関数を実装するために、我々は、各Tに1つが割り当てられる、6個のルックアップテーブルを必要とする。これらのルックアップテーブルは、2個の行からなり、各行は、1バイトを含む。このため、ストレージ要件は、1536バイトである。対称的に、我々が、単一のルックアップテーブルによって、任意の16ビットのSボックスGを実装する場合、これは、各行が2バイトからなる、216行からなるルックアップテーブルを必要とする。これは、131072バイトのストレージ要件を示している。より一般的には、Fのためのストレージ要件は、2p・2である一方、Gのためのストレージ要件は、24+4pである。このため、Fのストレージ要件は、pにおいて線形的に大きくなり、Gのストレージ要件は、pにおいて指数関数的に大きくなる。
図5aは、全ての入力/出力分割が2つのk/2サイズの部分である場合、サイズk(p+1)/2の入力を許容している。入力として2のべき乗を持つことが望まれる場合、2のべき乗として、k及び(p+1)が選択されるべきである。
図5aの構成によって得られる換字レイヤは、様々な方法において、Fから、nビット上でブロック暗号を構築するように採用され得る。我々は、ブロック暗号の単一ラウンドがどのように構築され得るのかを説明する事に対し、我々を制限する。完全なブロック暗号が、複数の上記ラウンドのシーケンスによって単純に得られる。Fがnビット上の関数となるようにpを選択する、又は、Fがlビット上の関数となるようにpを選択する。ここで、lはnを分割する、即ち、あるrに関し、n=l・rである。(F、F、・・・、Fによって示される)係る関数の生成rに関し、図1a及び図1bに図示されるようなSLTネットワークが、Sボックス142〜146がF及びm=rによって与えられ、構築され得る。得られた暗号は、特に、ホワイトボックス実装に関し、標準的なSLT暗号よりも、ホワイトボックス攻撃モデルのコンテキストにおける難読化実装に適している。
図5bのように、難読化された実装は、実装に対して完全なアクセスを持つ攻撃者からキーを隠す。当該技術自体は既知であり、以下により行なわれる。最初に、テーブルネットワークとして難読化されるべき関数を表現し、即ち、当該関数は、各テーブルが、ブロック暗号入力又は他のテーブルの出力などの、ネットワーク入力の一部を入力としてそれぞれ受信する、テーブルのネットワークによって計算され、他のテーブルに対してブロック暗号出力及び/又は入力を出力として作る。次に、上記テーブルが、テーブルに対して符号化を適用することによって、難読化される。出力及び入力に対する符号化をキャンセルすることを保証することによって、ネットワーク全体が同一の関数を計算することが保証されるが、この定時性はネットワーク全体に亘って分布される。換字ネットワークが既にテーブルネットワークであるため、この技術は、ここで説明される換字ネットワークに対してよく適合する。
我々は、ルックアップテーブルによって、図5aのネットワークにおけるSボックスTを実装する。我々は、次に、その入力及び出力を符号化することによって、(キーを含む)これらのルックアップテーブルを難読化する。テーブルTの入力及び出力を全単射関数f及びgで符号化することは、テーブルT
Figure 0006415542
によって、置換することにそれぞれ対応する。このため、我々は、それを、入力復号化及び出力符号化に組み込む。符号化のアプリケーションが難読化を実現するため、ルックアップテーブルの入力を符号化することが行の順序を変えること、及び、出力を符号化することが行の値を変えることであることを観測する。
符号化は、全ての実装の機能が影響されないように適用される。これは、テーブルの入力符号化を選択することによってなされ、結果、ネットワークにおいて先行するテーブルによってその入力データが置かれた符号化とマッチする。このことが、図5bに図示されている。
我々が、同様の難読化技術をSLT暗号に適用する場合、最終的な実装は安全ではない。即ち、かかる難読化された実装からキーを抽出するための幾つかの攻撃が、知られている。これらの全ての攻撃は、SLT暗号にとって典型的であり、図5bによって規定される暗号に存在しない脆弱性を悪用する。
図6は、ストレージ装置610と、コンピュータプロセッサ650と、I/O装置660とを有するブロック暗号装置600を示している。ストレージ装置610は、(ルックアップテーブル621及び622として示されている)ルックアップテーブルと、コンピュータコード655とを格納する。ルックアップテーブルは、可能であれば、例えば、ホワイトボックス形式などの符号化された形式の換字ボックスに対応している。I/O装置660は、ネットワークを介してメッセージを送受信するためのネットワーク装置であってもよい。
動作中、I/O装置660は、符号化されたメッセージを受信し得る。メッセージブロックが、受信されたメッセージから抽出される。プロセッサ650は、コンピュータコード655の制御下で、メッセージブロックにブロック暗号を適用する。例えば、プロセッサ650は、ルックアップテーブルにおいて表現されるように、メッセージブロックに対して換字レイヤを適用してもよい。例えば、ストレージ装置610は、ルックアップテーブルがどのデータに適用される必要があるかを示すテーブルを格納してもよい。換字レイヤの後で、プロセッサ650は、線形変換を適用してもよい。後者は、テーブルの形式よりもむしろコードの形式で表現され得る。しかし、当該変換は、テーブルネットワークの形式で格納されてもよい。後者は、ホワイトボックス攻撃モデルのコンテキストにおいて好まれる。このように、プロセッサ650は、それぞれ換字レイヤを具備する複数のラウンドを適用する。キーが、換字レイヤに組み込まれている場合、ラウンドにおいて、ラウンドキーの適用は必要とされない。ブロック暗号が完了し、全てのラウンドが実行された場合、プロセッサ650は、受信したメッセージブロックの暗号化バージョンにアクセスできる。全てのブロックが暗号化された場合、プロセッサ650は、例えば、それが暗号化されたコンテンツである場合、それを表示するなど、結果を処理してもよい。
逆に、暗号化された通信を送る必要がある場合、プロセッサ650は、暗号化されたメッセージブロックを得るために、平文テキストブロックに対してブロック暗号を適用する。しばしば、同一のブロック暗号が、暗号化の場合、反対の関数を実行するために適用され得る。しかしながら、ホワイトボックス攻撃モデルのコンテキストでは、暗号化及び復号化のために異なる実装を有することが好ましい。
ストレージ装置610において、暗号化キーを明確に格納する必要はないことに留意すべきである。むしろキーは、ブロック暗号自体に埋め込まれる。符号化の難読化及び換字レイヤの特性のため、このキーは、抽出されにくい。
ディジタルデータのメッセージブロックを暗号化又は復号化するための電子ブロック暗号方法では、格納ステップと、適用ステップとがある。格納ステップは、ルックアップテーブルの形式で複数の換字ボックスを格納するステップであって、複数の換字ボックスは、ブロック暗号の換字レイヤをともに形成し、換字レイヤは、換字レイヤ入力をとり、換字レイヤ入力を換字レイヤ出力に変換し、少なくとも1つの換字ボックスは、同じ換字レイヤにおける複数の換字ボックスの2以上の他の換字ボックスの出力の少なくとも一部の組み合わせを入力として受信する。適用ステップでは、メッセージブロックにブロック暗号ラウンドのシーケンスを適用することによって、ブロック暗号がディジタルデータのメッセージブロックに適用され、ブロック暗号ラウンドの1つは、換字レイヤを有する。
当該技術分野における当業者には明らかであるように、上記方法を実行する多くの異なる方法が可能である。本発明に従った方法は、プロセッサシステムに上記方法を実行させるための命令を有するソフトウェアを用いて実行されてもよい。ソフトウェアは、システムの特定のサブエンティティによって実行される上記ステップのみを含んでいてもよい。当該ソフトウェアは、ハードディスク、フロッピー、メモリなどの、適切なストレージ媒体に格納されてもよい。上記ソフトウェアは、有線又は無線で、あるいは、インターネットなどのデータネットワークを用いて、信号として送信されてもよい。上記ソフトウェアは、ダウンロード用に、及び/又は、サーバ上で遠隔使用できるように、利用可能であってもよい。
当然のことながら、本発明は、本発明を実施するために適合された、特に、媒体上又は媒体内のコンピュータプログラムなどの、コンピュータプログラムにも拡張される。当該プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形式などのソースコード及びオブジェクトコードの中間コードの形式、又は、本発明に従った方法の実装において用いられる適切な任意の他の形式であってもよい。コンピュータプログラム製品に関する実施形態は、上記方法の少なくとも1つの処理ステップの各々に対応するコンピュータ実行可能な命令を有する。これらの命令は、サブルーチンに分割されてもよいし、及び/又は、静的又は動的にリンクされ得る1又は複数のファイルに格納されてもよい。コンピュータプログラム製品に関する他の実施形態は、上記システム及び/又は製品の少なくとも1つの手段の各々に対応するコンピュータ実行可能な命令を有する。
上記実施形態は例示であって、本発明を限定せず、当該技術分野における当業者は、多くの代替的な実施形態を設計可能であることに留意すべきである。
請求項中、括弧内の任意の参照符号は、請求項を限定するものとして解釈されるべきではない。「有する」なる動詞及びその活用形の使用は、請求項に規定された要素又はステップ以外の要素又はステップの存在を除外しない。単数形は、かかる要素が複数存在することを除外しない。本発明は、幾つかの区別可能な要素を有するハードウェアにより実装されてもよく、適切にプログラムされたコンピュータにより実装されてもよい。幾つかの手段を規定している装置クレームにおいて、これらの手段の幾つかは、全く同一のハードウェアによって実現されてもよい。特定の特徴が相互に異なる従属請求項において言及されているという単なる事実は、これらの特徴の組み合わせが好適に用いられないということを示すものではない。
100 ブロック暗号
110 メッセージ入力部
112〜116 ブロック暗号ラウンド
120 メッセージ出力部
130 ラウンド入力
132〜136 ラウンド入力文字
140 換字レイヤ
142〜146 換字ボックス
150 線形変換
160 ラウンド出力
162〜166 ラウンド出力文字
200 換字レイヤ
202 換字レイヤ入力
204 換字レイヤ出力
210 第1のサブレイヤ
220 第2のサブレイヤ
212〜226 換字ボックス
300 換字レイヤ
302 換字レイヤ入力
304 換字レイヤ出力
310 第1のサブレイヤ
320 第2のサブレイヤ
312〜326 換字ボックス
400 換字レイヤ
402 換字レイヤ入力
404 換字レイヤ出力
410 第1のサブレイヤ
420 第2のサブレイヤ
430 第3のサブレイヤ
412〜436 換字ボックス
600 計算機
610 ストレージ装置
621,622 ルックアップテーブル
650 コンピュータプロセッサ
655 コンピュータコード
660 I/O装置

Claims (12)

  1. ディジタルデータのメッセージブロックを暗号化又は復号化するための電子ブロック暗号装置であって、
    ルックアップテーブルの形式で複数の換字ボックスを格納するストレージユニットであって、前記複数の換字ボックスは、ブロック暗号の換字レイヤをともに形成し、前記換字レイヤにおける前記換字ボックスは、それらの入力及び出力を符号化することによって、難読化され、前記換字レイヤは、換字レイヤ入力をとり、前記換字レイヤ入力を換字レイヤ出力に変換し、前記複数の換字ボックスの少なくとも1つの換字ボックスは、同じ換字レイヤにおける複数の換字ボックスの2以上の他の換字ボックスの出力の少なくとも一部の組み合わせを入力として受信する、前記ストレージユニットと、
    前記メッセージブロックにブロック暗号ラウンドのシーケンスを適用することによって、前記ブロック暗号を前記ディジタルデータの前記メッセージブロックに適用する制御ユニットであって、前記ブロック暗号ラウンドの1つは、前記換字レイヤを有する、前記制御ユニットと、
    を有
    前記換字レイヤは、第4及び第3の換字ボックスの両方が、第1及び第2の換字ボックスの出力から入力を受信する特性を持つ第1、第2、第3、及び、第4の換字ボックスを有する、
    電子ブロック暗号装置。
  2. 前記複数の換字ボックスのうちの少なくとも1つの換字ボックスは、前記少なくとも1つの換字ボックスの出力の第1の部分が、前記少なくとも1つの換字ボックスと同一の換字レイヤにおける他の換字ボックスの入力の一部として用いられ、前記少なくとも1つの換字ボックスの前記出力の第2の部分が、前記同一の換字レイヤにおける他の異なる換字ボックスの入力の一部として用いられるように、構成される、請求項1記載の電子ブロック暗号装置。
  3. 前記換字レイヤは、複数のサブレイヤを有し、前記複数のサブレイヤの第1のサブレイヤは、前記換字レイヤ入力を入力として受信し、次のサブレイヤは、前の換字レイヤの前記出力を入力として受信し、前記次のサブレイヤの1つは、前記換字レイヤ出力を作る最後のサブレイヤである、請求項1又は2に記載の電子ブロック暗号装置。
  4. 前記第1のサブレイヤにおける第1の換字ボックスは、前記換字レイヤ入力のみから入力を受信し、前記第1のサブレイヤにおける第2の換字ボックスは、前記換字レイヤ入力と前記第1の換字ボックスの出力との両方から入力を受信する、請求項3記載の電子ブロック暗号装置。
  5. 前記換字レイヤは、第4の換字ボックスが、第3の換字ボックスの出力から入力を受信し、前記第3の換字ボックスが、第2の換字ボックスの出力から入力を受信し、前記第2の換字ボックスが、第1の換字ボックスの出力から入力を受信する特性を持つ第1、第2、第3、及び、第4の換字ボックスを有する、請求項1乃至4のいずれか1項に記載の電子ブロック暗号装置。
  6. 前記第1及び第2の換字ボックスは、前記換字レイヤ入力から各入力の一部を受信し、及び/又は、
    前記第3及び第4の換字ボックスは、各出力として、前記換字レイヤ出力の一部を作る、請求項1乃至5のいずれか一項に記載の電子ブロック暗号装置。
  7. 前記メッセージブロックから始めて、前記メッセージブロックと同じデータサイズの中間データブロックのシーケンスを作り、次の中間データブロックの各々は、前の中間データブロックに依存する、請求項1乃至のいずれか1項に記載の電子ブロック暗号装置。
  8. 前記換字レイヤは、換字レイヤ入力として、中間データブロックを受信し、出力として、次の中間データブロックを作る、請求項記載の電子ブロック暗号装置。
  9. 前記ブロック暗号ラウンドのシーケンスは、前記ブロック暗号ラウンドの換字レイヤに組み込まれる暗号化ラウンドキーに従って、前記メッセージブロックを変換する、請求項1乃至のいずれか1項に記載の電子ブロック暗号装置。
  10. コンピュータが実行するディジタルデータのメッセージブロックを暗号化又は復号化するための電子ブロック暗号方法であって、
    前記コンピュータはストレージユニット及び制御ユニットを有し、
    前記ストレージユニットが、ルックアップテーブルの形式で複数の換字ボックスを格納するステップであって、前記複数の換字ボックスは、ブロック暗号の換字レイヤをともに形成し、前記換字レイヤにおける前記換字ボックスは、それらの入力及び出力を符号化することによって、難読化され、前記換字レイヤは、換字レイヤ入力をとり、前記換字レイヤ入力を換字レイヤ出力に変換し、前記複数の換字ボックスの少なくとも1つの換字ボックスは、同じ換字レイヤにおける複数の換字ボックスの2以上の他の換字ボックスの出力の少なくとも一部の組み合わせを入力として受信する、ステップと、
    前記制御ユニットが、前記メッセージブロックにブロック暗号ラウンドのシーケンスを適用することによって、前記ブロック暗号を前記ディジタルデータの前記メッセージブロックに適用するステップであって、前記ブロック暗号ラウンドの1つは、前記換字レイヤを有する、ステップと、
    を有し、
    前記換字レイヤは、第4及び第3の換字ボックスの両方が、第1及び第2の換字ボックスの出力から入力を受信する特性を持つ第1、第2、第3、及び、第4の換字ボックスを有する、電子ブロック暗号方法。
  11. コンピュータプログラムが前記コンピュータ上で実行された場合に、請求項10記載の全てのステップを実行するように適合されたコンピュータプログラムコード手段を有する、コンピュータプログラム。
  12. コンピュータ読み取り可能な媒体上に表された、請求項11記載のコンピュータプログラム。
JP2016510996A 2013-05-01 2014-04-17 難読化に適した電子ブロック暗号装置 Active JP6415542B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13166098.7 2013-05-01
EP13166098 2013-05-01
PCT/EP2014/057953 WO2014177400A1 (en) 2013-05-01 2014-04-17 Electronic block cipher device suitable for obfuscation

Publications (2)

Publication Number Publication Date
JP2016520866A JP2016520866A (ja) 2016-07-14
JP6415542B2 true JP6415542B2 (ja) 2018-10-31

Family

ID=48325411

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016510996A Active JP6415542B2 (ja) 2013-05-01 2014-04-17 難読化に適した電子ブロック暗号装置

Country Status (7)

Country Link
US (1) US9998279B2 (ja)
EP (1) EP2992637A1 (ja)
JP (1) JP6415542B2 (ja)
CN (1) CN105191206B (ja)
BR (1) BR112015027293A2 (ja)
RU (1) RU2666281C2 (ja)
WO (1) WO2014177400A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
US10110373B2 (en) * 2015-02-13 2018-10-23 Global Integrity, Inc. System and method for manipulating both the plaintext and ciphertext of an encryption process prior to dissemination to an intended recipient
US10020932B2 (en) * 2015-11-13 2018-07-10 Nxp B.V. Split-and-merge approach to protect against DFA attacks
WO2017203992A1 (ja) * 2016-05-23 2017-11-30 ソニー株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US10243937B2 (en) * 2016-07-08 2019-03-26 Nxp B.V. Equality check implemented with secret sharing
US10218497B2 (en) * 2016-08-31 2019-02-26 Intel Corporation Hybrid AES-SMS4 hardware accelerator
US10673616B2 (en) 2017-01-11 2020-06-02 Qualcomm Incorporated Lightweight mitigation against first-order probing side-channel attacks on block ciphers
EP3413500A1 (en) * 2017-06-09 2018-12-12 Koninklijke Philips N.V. Device and method to compute a block cipher
CN107453866A (zh) * 2017-08-03 2017-12-08 致象尔微电子科技(上海)有限公司 一种对数据进行加密的方法
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3012732B2 (ja) 1992-02-20 2000-02-28 富士通エフ・アイ・ピー株式会社 ブロック暗号処理装置
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
JP4142322B2 (ja) 2002-03-29 2008-09-03 株式会社 エヌティーアイ 暗号化装置及び情報処理装置並びに情報処理方法
US20090055458A1 (en) 2004-09-24 2009-02-26 O'neil Sean Substitution Boxes
EP2092684A2 (en) * 2006-11-17 2009-08-26 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
EP2406916A1 (en) * 2009-03-10 2012-01-18 Irdeto Corporate B.V. White-box cryptographic system with input dependent encodings
WO2010146139A1 (en) 2009-06-19 2010-12-23 Irdeto B.V. White-box cryptographic system with configurable key using intermediate data modification
WO2011080487A1 (fr) 2009-12-30 2011-07-07 France Telecom Procede de generation de table de correspondance pour une boite blanche cryptographique
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
KR20120089396A (ko) * 2010-11-16 2012-08-10 삼성전자주식회사 암호화 장치 및 그 암호화 방법
US8718280B2 (en) 2010-12-17 2014-05-06 Apple Inc. Securing keys of a cipher using properties of the cipher process
CN103827880B (zh) 2011-03-31 2017-06-16 爱迪德技术有限公司 保护非本机代码安全的方法
RU2467389C1 (ru) 2011-06-07 2012-11-20 Антон Андреевич Краснопевцев Способ защиты программно-информационного обеспечения от несанкционированного использования
EP2936730B1 (en) 2012-12-21 2016-06-15 Koninklijke Philips N.V. Computing device configured with a table network

Also Published As

Publication number Publication date
RU2666281C2 (ru) 2018-09-06
RU2015151343A (ru) 2017-06-06
WO2014177400A1 (en) 2014-11-06
RU2015151343A3 (ja) 2018-03-21
US20160050065A1 (en) 2016-02-18
EP2992637A1 (en) 2016-03-09
CN105191206A (zh) 2015-12-23
JP2016520866A (ja) 2016-07-14
BR112015027293A2 (pt) 2017-07-25
CN105191206B (zh) 2019-05-28
US9998279B2 (en) 2018-06-12

Similar Documents

Publication Publication Date Title
JP6415542B2 (ja) 難読化に適した電子ブロック暗号装置
JP5646612B2 (ja) 中間データ変更を使用する構成可能な鍵を用いるホワイトボックス暗号システム
US9654280B2 (en) White-box cryptographic system with input dependent encodings
JP5485694B2 (ja) ホワイトボックス実施のための暗号化方法
EP2924677B1 (en) Splitting s-boxes in a white-box implementation to resist attacks
US9515818B2 (en) Multi-block cryptographic operation
TWI571091B (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
US9774443B2 (en) Computing key-schedules of the AES for use in white boxes
JP2010515945A (ja) 実装のコピーの追跡
WO2011029753A1 (en) A method of diversification of a round function of an encryption algorithm
JP6517436B2 (ja) 暗号化デバイス及び符号化デバイス
US20160359618A1 (en) Using state reordering to protect against white box attacks
US8699702B2 (en) Securing cryptographic process keys using internal structures
CN105184115A (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
WO2010146140A1 (en) White-box cryptographic system with configurable key using block selection
CN105281893A (zh) 用于引入白箱实现对串集合的依赖性的方法
JP7215245B2 (ja) 情報処理装置、情報処理方法及びプログラム
Guttikonda et al. A New Approach for Data Security in Cryptography and Steganography

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181002

R150 Certificate of patent or registration of utility model

Ref document number: 6415542

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