JP6423100B2 - 暗号のシステム及び方法 - Google Patents

暗号のシステム及び方法 Download PDF

Info

Publication number
JP6423100B2
JP6423100B2 JP2017533838A JP2017533838A JP6423100B2 JP 6423100 B2 JP6423100 B2 JP 6423100B2 JP 2017533838 A JP2017533838 A JP 2017533838A JP 2017533838 A JP2017533838 A JP 2017533838A JP 6423100 B2 JP6423100 B2 JP 6423100B2
Authority
JP
Japan
Prior art keywords
representation
cryptographic algorithm
key
message
unit
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
JP2017533838A
Other languages
English (en)
Other versions
JP2018506059A (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 JP2018506059A publication Critical patent/JP2018506059A/ja
Application granted granted Critical
Publication of JP6423100B2 publication Critical patent/JP6423100B2/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/002Countermeasures against attacks on cryptographic mechanisms
    • 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

Description

本発明は、暗号のシステム及び方法に関する。
例えばソフトウェアの購入、評価トライアル、又はソフトウェアアップグレードに鑑みて顧客にソフトウェアパッケージを配布する場合、ソフトウェアの所有者との結付きを確立することが知られている。更に、許可された顧客だけがソフトウェアパッケージにアクセスできることを確実にするための予防策を取ることが知られている。これを行うための知られている方法は、パッケージ又はそのインタフェースを標準化された暗号、例えばAESやDESによって暗号化することによる。この手法の不利点は、悪意ある利用者が公式キーを使用してパッケージを復号し、その後(悪意ある利用者は使用されている暗号のキースケジュールを知るので)自分が選んだ別のキーでパッケージを容易に再び暗号化できることであり、極端な事例では、悪意ある利用者がパッケージを再び暗号化した後であたかもプログラムが自分のものであるかのようにそのアプリケーションを再販売し得る。
Proceeding SAC 2002 Revised Papers from the 9th Annual International Workshop on Selected Areas in Cryptography, pages 250-270, Springer-Verlag London, UKの中のS. Chow、P.A. Eisen、H. Johnson、及びP.C. van Oorschotによる「White-Box Cryptography and an AES Implementation」はホワイトボックス暗号と呼ばれる方法を開示し、ホワイトボックス暗号ではキーが暗号実装の不可欠な部分である1つ又は複数のルックアップテーブル内に拡張される。ルックアップテーブルが表すプロセスステップを理解するのをより困難にするために、これらのルックアップテーブルの入出力はことによると様々な符号化を使用して符号化される。
改善された暗号システムを有することが有利である。この関心事により上手く対処するために、本発明の第1の態様は
メッセージの表現である第1のメッセージ表現を与えるためのメッセージユニットと、
キー表現を与えるためのキーユニットであって、キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なり得る、キーユニットと、
第2のメッセージ表現を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現及びキー表現に基づいて実行するためのステップユニットであって、第2のメッセージ表現は第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である、ステップユニットと
を含む、システムを提供する。
第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現を得ることによって2つの暗号アルゴリズムを織り交ぜるこのやり方はキー空間を広げることを可能にし、それは両方のキーがキー空間に寄与するからである。更にこのシステムは、結果を暗号化形式に保ちながら、データに対して2つの暗号アルゴリズムを同時に行うことを可能にする。
ステップユニットはルックアップテーブル又はルックアップテーブルのネットワーク内の第2の暗号化表現を探索するためのルックアップユニットを含むことができ、ルックアップテーブル又はルックアップテーブルのネットワークは、第1のメッセージ表現及びキー表現の組合せから対応する第2のメッセージ表現へのマッピングを含む。これは、結果の暗号化表現を伴い、両方の暗号アルゴリズムのステップがどのように同時に行われ得るのかについての一実施例である。
第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップは同じ操作を含むことができ、第1の暗号アルゴリズムのステップの操作の少なくとも1つのパラメータが第2の暗号アルゴリズムのステップの対応するパラメータと異なる。これは第1の暗号アルゴリズムの暗号に比べ、第2の暗号アルゴリズムについて異なる暗号を作成する便利なやり方である。
第1の暗号アルゴリズムは第1の複数のステップを含むことができ、第2の暗号アルゴリズムは対応する第2の複数のステップを含むことができ、第1の複数のステップのステップ(又は各ステップ)は、第2の複数のステップの対応する各ステップと多くて1つ又は複数のパラメータ値の分だけ異なる。これは第1の暗号アルゴリズムの暗号に比べ、第2の暗号アルゴリズムについて異なる暗号を作成する便利なやり方である。
第1の暗号アルゴリズムは一連の第1のステップを含むことができ、第2の暗号アルゴリズムは対応する一連の第2のステップを含むことができ、メッセージユニットは第1のメッセージ表現を与えるように構成され、第1のメッセージ表現は、第1の暗号アルゴリズムの前のステップ及び第2の暗号アルゴリズムの前のステップをメッセージ表現及びキー表現に基づいて実行するための更なるステップユニットから得られる、第1の暗号アルゴリズムの前のステップの結果及び第2の暗号アルゴリズムの前のステップの結果の暗号化表現である。このことは両方の暗号アルゴリズムの一連のステップを暗号化された領域内で行うことを可能にする。
このシステムは、第2の暗号アルゴリズムの結果に基づいてキー表現を検証するための検証ユニットを含み得る。第2の暗号アルゴリズムの結果は、キー表現が一定の条件を満たすかどうかを判定するために使用され得る。
検証ユニットは、第2の暗号アルゴリズムの出力を入力メッセージと比較するように構成され得る。これはキー表現を検証するやり方の一実施例である。例えば第2の暗号アルゴリズムは、第2のキーが1組の所定の許可されたキーの要素である場合は入力メッセージの複製又は入力メッセージの単純な変換を出力し、第2のキーがその1組の所定の許可されたキーの要素でない場合は他のものを出力するように構成され得る。検証ユニットは、第2の暗号アルゴリズムの出力を入力メッセージと比較することにより、第2の暗号アルゴリズムの出力が入力メッセージ又は入力メッセージの単純な変換と等しいかどうかを検査するように構成され得る。悪意ある利用者はこの1組の許可されたキーを知らないので、この1組の許可されたキーの要素を見つけるのは困難である。
検証ユニットは、第2の暗号アルゴリズムの出力を更なる第1のメッセージ表現と暗号ブロックモードで組み合わせるように構成され得る。この更なる第1のメッセージ表現は、暗号ブロックモードで処理される次のデータブロックであり得る。暗号ブロック連鎖のモードを作るために、第2の暗号アルゴリズムの出力が次のブロックと組み合わせられても良い。
ステップユニットは、ホワイトボックス暗号実装の中に隠され得る。このことはステップの内部構造を隠すことを可能にする。例えば「許可された」1組のキーがこのようにして隠される。
別の態様では、上記のシステムの2つ、つまり第1のシステム及び第2のシステムが提供される。第1のシステムの第1の暗号アルゴリズムは第2のシステムの第1の暗号アルゴリズムと同一とすることができ、第1のシステムの第2の暗号アルゴリズムは第2のシステムの第2の暗号アルゴリズムと異なり得る。第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する複数の第2のキーが存在することができ、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を与える複数の第2のキーが存在し得る。このことは異なるキーを有する様々なオーディエンスを対象にすることを可能にする。これらの様々なオーディエンスは、そのオーディエンスによって使用される第2の暗号アルゴリズムによって許可される1組のキーに対応する第2のキーを使用することによって対処される。
別の態様によれば、暗号処理方法が提供される。この方法は、
メッセージの表現である第1のメッセージ表現を与えるステップと、
キー表現を与えるステップであって、キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なる、キー表現を与えるステップと、
第2のメッセージ表現を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現及びキー表現に基づいて実行するステップであって、第2のメッセージ表現は第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である、実行するステップと
を含む。
別の態様では、暗号処理用システムを提供する方法が与えられる。この方法は、
メッセージの表現である第1のメッセージ表現を与えるためのユニットを提供するステップと、
キー表現を与えるためのユニットを提供するステップであって、キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なる、キー表現を与えるためのユニットを提供するステップと、
第2のメッセージ表現を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現及びキー表現に基づいて実行するためのステップユニットを提供するステップであって、第2のメッセージ表現は第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である、ステップ手段を提供するステップと、
第2のアルゴリズムの少なくとも一部を秘密にしておくステップと
を含む。
第2のアルゴリズムの少なくとも一部が秘密に保たれるので、提供されるシステムが機能し得る別のキーを見つけるのが攻撃者にとって困難である。
この方法は、暗号処理用の第2のシステムを提供するステップを更に含むことができ、第1のシステムの第1の暗号アルゴリズムは第2のシステムの第1の暗号アルゴリズムと同一であり、第1のシステムの第2の暗号アルゴリズムは第2のシステムの第2の暗号アルゴリズムと異なり、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する複数の第2のキーが存在し、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を有する複数の第2のキーが存在する。このことは異なるシステムを有する様々なオーディエンスを対象にすることを可能にする。このシステム及び第2のシステムの両方の第2のアルゴリズムが秘密に保たれるので、どのキーがどのシステムによって使用され得るのかを見出すのが攻撃者にとって困難である。
この方法は、両方のシステムがメッセージへのアクセスを許可されている場合、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する第2のキーを使用してメッセージを与え、第1のシステム又は第2のシステムの何れかがメッセージへのアクセスを許可されていない場合、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を有する第2のキーを使用してメッセージを与えるステップを含み得る。
本明細書に記載の方法は、関連する方法を処理システムに実行させるための命令を含むコンピュータプログラム製品によって実装され得る。例えばコンピュータによって実施される方法としてコンピュータ上に実装されることに加え、本明細書に記載の方法は専用ハードウェア又はその両方の組合せによっても実装され得る。本発明による方法のための実行コードがコンピュータプログラム製品上に記憶され得る。コンピュータプログラム製品の例はメモリ装置、光学記憶装置、集積回路、サーバ、オンラインソフトウェア等を含む。好ましくは、コンピュータプログラム製品は、前述のプログラム製品がコンピュータ上で実行されるときに本発明による方法を実行するための、コンピュータ可読媒体上に記憶される非一時的プログラムコード手段を含む。好ましい実施形態では、コンピュータプログラムがコンピュータ上で実行されるとき、本発明による方法の全てのステップを実行するように適合されるコンピュータプログラムコードをコンピュータプログラムが含む。好ましくは、コンピュータプログラムはコンピュータ可読媒体上に実装される。
本発明の上記の実施形態、実装形態、及び/又は態様の2つ以上が、有用と見なされる任意のやり方で組み合わせられ得ることが当業者によって理解されよう。
記載される本システムの修正形態及び改変形態に対応する、画像取得機器、ワークステーション、システム、方法、及び/又はコンピュータプログラム製品の修正形態及び改変形態が、この説明に基づいて当業者によって実行され得る。
本発明のこれらの及び他の態様が以下に記載の実施形態から明らかになり、かかる実施形態に関して説明される。
暗号処理用システムのブロック図である。 暗号処理方法の流れ図である。 暗号システムを提供する方法の流れ図である。
本開示の中で明らかにされる実施例は専ら例示目的で与えられる多くの詳細を含む。これらの詳細が本開示の範囲を限定することは意図されない。本明細書で開示されるユニットの幾つかは、例えば計算装置用のプログラムの一部であるソフトウェアユニットによって実装され得る。
図1は、暗号処理用のシステムの一実施例を示す。このシステムは、メッセージ表現3を与えるように構成されるメッセージユニット1を含む。例えば、メッセージ表現3は暗号化メッセージである。メッセージユニット1は、例えばそれ自体が当技術分野で知られている通信技術及び/又は記憶技術を使用し、外部の情報源からメッセージ表現を受信し又は取得するように構成され得る。更に、このシステムはキーユニット2を含む。キーユニット2は、キー表現4を与えるように構成される。このキー表現4は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現である。
これらの暗号アルゴリズムは、典型的には異なる暗号アルゴリズムである。特定の実施例では、第1の暗号アルゴリズムがメッセージ表現を復号するように構成されても良く、第2の暗号アルゴリズムがその復号の追加の検証を行うように構成され得る。第2の暗号アルゴリズムは、DESやAES等の暗号化又は復号アルゴリズムと同様の又は同一の構造を有する意味で暗号アルゴリズムである。「構造」という用語は、アルゴリズム内で行われるXOR演算や任意のS-box等の演算を指す。S-boxによって行われる特定の並べ替え等、第2のアルゴリズムのパラメータは暗号アルゴリズムの「構造」の一部と見なされるべきではない。
キー表現4は、第1のキー及び第2のキーを暗号化形式で表し得る。例えば、第1のキー及び第2のキーの任意の組合せを一意であり且つ無作為に決定されるビット列にマップして暗号化形式のキー表現4を得るために、ランダム全単射が使用され得る。このようにして、第1のキーに関係するビットを第2のキーに関係するビットと区別することが攻撃者にとってとりわけ困難である。キー表現4を得るために、第1のキー及び第2のキーの他の暗号化も使用され得る。
ステップユニット5は、暗号アルゴリズム両方の第1のステップを行うように構成される。両方の暗号アルゴリズムのステップの実施例は、例えばS-box又はXOR演算を適用することを含む。ステップユニット5はメッセージ表現3及びキー表現4を入力として取り、中間メッセージ表現6を出力として与える。中間メッセージ表現6は、第1の暗号アルゴリズムのステップの出力と第2の暗号アルゴリズムのステップの出力とを含む。中間メッセージ表現6は、これらの出力を暗号化形式で含む。第1のキーに関係するビットを第2のキーに関係するビットと区別するのを困難にするやり方でキーが暗号化されるやり方と同様に、これらの出力は、第1のアルゴリズムのステップの出力に関係する情報が第2のアルゴリズムのステップの出力に関係する情報と容易に区別できないやり方で符号化され得る。例えば、第1のアルゴリズムのステップのあり得る出力と第2のアルゴリズムのステップのあり得る出力との任意の組合せを一意であり且つ無作為に決定されるビット列にマップして中間メッセージ表現6を得るために、ランダム全単射が使用され得る。
このプロセスは、暗号アルゴリズムの次のステップについて繰り返されても良い。但し入力は僅かに異なり、それは第1のステップでは、メッセージユニット1が入力メッセージのメッセージ表現3を与え、ステップユニット5が、第1の暗号アルゴリズムのステップの出力及び第2の暗号アルゴリズムのステップの出力の両方を表す中間メッセージ表現6を暗号化形式で出力するからである。
メッセージユニット7は、この中間メッセージ表現6をステップユニット10に与える。ステップユニット10は、両方の暗号アルゴリズムの第2のステップを実行し、従って第1の暗号アルゴリズムの第1のステップの出力及び第2の暗号アルゴリズムの第1のステップの出力を必要とする。この情報は、中間メッセージ表現6により、暗号化形式でメッセージユニット7によって与えられる。更にステップユニット10は、各暗号アルゴリズムのキー、例えばラウンドキーを必要とし得る。これらのキーは、キー表現9の形でキーユニット2によって与えられ得る。キー表現9は、それらの(ラウンド)キーを暗号化形式で表す。任意選択的に、キー表現9はステップユニット5によって生成され、キーユニット2に転送される。
ステップユニット10は、更なる中間メッセージ表現11を出力する。この中間メッセージ表現11は、第1の暗号アルゴリズムの第2のステップ及び第2の暗号アルゴリズムの第2のステップの出力を表す。
点21によって全体的に表わされているように、両方の暗号アルゴリズムの次のステップを実施するために、更なるメッセージユニット及びステップユニットが設けられても良い。これらのステップは、メッセージユニット7及びステップユニット10と同じやり方で実施され得る。更に、キーユニット2が、キー表現9及びキー表現14をステップユニット10及びステップユニット15への入力として与え得る。これらのキー表現9、14は両方のアルゴリズムに関するラウンドキーを例えば符号化形式で含み得る。当然ながら、各ユニットは第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを実施するので、各ユニットの実際のコンテンツは異なり得る。しかし、2つのアルゴリズムのステップが組み合わせられるやり方、及び中間結果が例えば全単射によって暗号化されるやり方は同じである。
メッセージユニット12が、かかるステップユニットによって生成される中間メッセージ表現を受信し、それを両方の暗号アルゴリズムの最後のステップを実施するステップユニット15に与える。ステップユニット15は、キー表現14(例えば上記のように両方の暗号アルゴリズムのラウンドキーを表す)をキーユニット2から更に受信する。ステップユニット15が最終的なメッセージ表現16を出力する。最終的なメッセージ表現16は、第1の暗号アルゴリズムの最後のステップの出力及び第2の暗号アルゴリズムの最後のステップの出力を表し得る。最終的なメッセージ表現16は、上記で開示されたようにこれらの出力を暗号化形式で表し得る。
検証ユニット17は、最終的なメッセージ表現16の検証を行う。この検証は、最終的なメッセージ表現内で暗号化形式にて入手可能な第2の暗号アルゴリズムの最後のステップの出力に基づいて行われる。ステップユニット5、10、15によって実装される第2の暗号アルゴリズムは、検証が所定の1組の第2のキーについて成功し、所定の1組の別の第2のキーについて失敗するように、検証ユニットと共同するように構成される。(検証が成功する)1組の有効なキーが1組のあり得る全てのキーに比べて少ない場合、有効なキーを推測することが攻撃者にとって困難である。より詳細には、システムで機能するキー表現4を推測することが困難である。検証は幾つかのやり方で行われ得る。従って、検証ユニット17を実装するやり方について幾つかの異なる可能性がある。
第1の実施例では、検証ユニット17が(矢印19で示される)メッセージ表現3を受信し、メッセージ表現3と第2の暗号アルゴリズムの出力との比較を行う。この事例では、比較が適切な結果を有する場合、検証ユニット17は、ことによると上記で説明された全単射によって暗号化される第1の暗号アルゴリズムの出力を処理済みメッセージ18として送るように構成され得る。比較が適切な結果を有さない場合、検証ユニット17はエラーメッセージを処理済みメッセージ18として送るように構成され得る。このエラーメッセージは、例えばランダムビットで構成されても良く、又は所定の列を含み得る。この比較及び適切な出力(処理済みメッセージ18)の生成は、例えばルックアップテーブル又はルックアップテーブルのネットワークとして実装され得る。ルックアップテーブルは、メッセージ表現3と最終的なメッセージ表現16との組合せを対応する処理済みメッセージ18にマップすることができる。
第2の実施例では、矢印20によって示されているように、検証ユニット17が第2のアルゴリズムの出力をメッセージユニット1に与える。メッセージユニット1は、検証ユニット17から受信されるデータを次の入力データブロックと組み合わせるように構成され得る。この次の入力データブロックは、上記のようにシステムによって同じやり方で処理され得る。つまり、メッセージユニット1が次の入力データブロックを第2のアルゴリズムの出力と組み合わせた後、その組合せの結果がメッセージ表現3としてステップユニット5に与えられ、その後も同様に続く。それ自体が当技術分野で知られている暗号ブロック連鎖スキームに基づき、第2のアルゴリズムの出力を次のデータブロックにフィードバックする他の可能性が当業者に明らかになる。従って検証ユニット17は、第1の暗号アルゴリズムの出力を第2の暗号アルゴリズムの出力と区別するように構成され得る。第1の暗号アルゴリズムの出力は、処理済みメッセージ18として出力され得る。処理済みメッセージ18は、上記のように全単射を使用して暗号化され得る。処理済みメッセージ18は、検証に関係なく第1の暗号アルゴリズムの出力を含み得るが、第2の暗号アルゴリズムの出力が予期されるものではない場合、第2の暗号アルゴリズムの出力が次のデータブロックと組み合わせられることにより、次のデータブロックの暗号処理は失敗する。組み合わせるやり方の一実施例は、XOR演算によって組み合わせることである。
ステップユニット5、10、15はルックアップテーブルによって実装され得る。例えば、それぞれのステップユニットは、ルックアップテーブル又はルックアップテーブルのネットワーク内の第2の暗号化表現を探索するためのルックアップユニットを含み、ルックアップテーブル又はルックアップテーブルのネットワークは、第1のメッセージ表現及びキー表現の組合せから対応する第2のメッセージ表現へのマッピングを含む。これらのルックアップテーブルは、その入力及び出力が例えばランダム全単射によって符号化(暗号化)され得る。ランダム全単射はルックアップ操作ごとに変わり得る。このようにして、キー表現及びメッセージ表現の両方がランダム全単射によって暗号化され得る。この手順はホワイトボックス実装と呼ばれる。操作のホワイトボックス実装は、Chowらによりそれ自体が知られている。
一実施例では、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップが同じ操作を含むが、第1の暗号アルゴリズムのステップの操作の少なくとも1つのパラメータが第2の暗号アルゴリズムのステップの対応するパラメータと異なる。例えば、両方のアルゴリズムの操作がS-boxを適用することであり得るが、両方のアルゴリズム内で使用されるS-boxの内容(パラメータ値である)は異なり得る。
上記の実施例の中で開示されたように、第1の暗号アルゴリズムは一連の第1のステップを含むことができ、第2の暗号アルゴリズムは対応する一連の第2のステップを含み得る。両方のアルゴリズムのステップは同一、同様とすることができ、或いは異なっても良い。例えば、第1のアルゴリズムはXORを適用するステップを含むことができ、第2のアルゴリズムはS-boxを適用するステップを含み得る。メッセージユニット7、12は、メッセージ表現を自らのステップユニット10、15に与えるように構成され、メッセージ表現は、前のステップユニットから得られる、第1の暗号アルゴリズムの前のステップの結果及び第2の暗号アルゴリズムの前のステップの結果の暗号化表現である。例えば、ステップユニット5は、ステップユニット10によって実行されるステップに対して前のステップを実行するステップユニットである。暗号アルゴリズムの連続したステップが複数のステップユニット5、10、15によって実行され得る。
上記の複数のシステムが提供され得る。例えば、これらのシステムは様々な利用者に分散され得る。システムのホワイトボックス符号化は異なっても同じでも良い。第1のシステムによって実装される第1の暗号アルゴリズムは、第2のシステムによって実装される第1の暗号アルゴリズムと同一である。しかし、第1のシステムの第2の暗号アルゴリズムは第2のシステムの第2の暗号アルゴリズムと異なり得る。第1のシステムの第2の暗号アルゴリズムは第2のシステムと僅かに異なるように作られ、そのため、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を与える複数の第2のキーが存在し、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を与える複数の第2のキーが存在する。
特定の実施例では、所定の1組の第2のキーについてのみ検証が成功するやり方で各分散システムの第2の暗号アルゴリズムが修正される。この所定の組はシステムごとに異なり得る。或いは利用者のグループに(同じ1組のキーで機能する)同じシステムが提供されても良く、他の利用者のグループにはそれぞれの異なるシステムが提供されても良く、それにより利用者の各グループは機能する1組の固有の第2のキーを有する。第2のキーのこれらの組は重複する場合がある。そのようにして、コンテンツ配布者はコンテンツへのアクセスを許可された1つ又は複数のグループで機能するキーを用いてコンテンツを暗号化することができる。
典型的には、暗号処理用システムは、システム装置内に記憶される適切なソフトウェアを実行するマイクロプロセッサ(別個に図示していない)を含み、例えばそのソフトウェアは対応するメモリ、例えばRAM等の揮発性メモリやフラッシュ等の不揮発性メモリ(別個に図示していない)内にダウンロードされており且つ/又は記憶されている可能性がある。メッセージユニット、キーユニット、ステップユニット、ルックアップユニット、及び検証ユニットの1つ又は複数がマイクロプロセッサ及びメモリ(別個に図示していない)を備えることもできる。
一実施形態では、このシステムがメッセージユニット回路、キーユニット回路、ステップユニット回路を含む。このシステムは追加の回路、例えばルックアップユニット回路や検証ユニット回路を含み得る。これらの回路は本明細書に記載の対応するユニットを実装する。これらの回路はプロセッサ回路及び記憶域回路とすることができ、プロセッサ回路は記憶域回路内で電子的に表わされる命令を実行する。
図2は、暗号処理方法を示す。ステップ201で、第1のメッセージ表現が与えられる。第1のメッセージ表現はメッセージの表現である。ステップ202で、キー表現が与えられる。キー表現は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なる。ステップ203で、第2のメッセージ表現を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップが第1のメッセージ表現及びキー表現に基づいて実行される。第2のメッセージ表現は、第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である。この方法は例えばコンピュータプログラムによって実装され得る。
図3は、暗号処理用システムを提供する方法を示す。ステップ301で、配布者が第1のメッセージ表現を与えるためのユニットを利用者に提供する。第1のメッセージ表現はメッセージの表現である。ステップ302で、配布者がキー表現を与えるためのユニットを利用者に提供する。キー表現は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なる。ステップ303で、第2のメッセージ表現を得るために、配布者が第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現及びキー表現に基づいて実行するためのステップユニットを提供する。第2のメッセージ表現は、第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である。ステップ301、302、及び303は、図1に関して上記で説明されたシステムを提供することによって実現され得ることを指摘しておく。ステップ304で、配布者が第2のアルゴリズムの少なくとも一部を秘密にしておく。従って、潜在的な攻撃者は第2のアルゴリズムのキースケジュールが分からず、機能する代替キーを見つけるのをより困難にする。
この方法はステップ305で、暗号処理用の第2のシステムが提供されるべきかどうかを判定するステップを含み得る。提供されるべき場合、この方法はステップ301から続行してその第2のシステムを提供する。第1のシステムの第1の暗号アルゴリズムは、第2のシステムの第1の暗号アルゴリズムと同一である。第2のシステムが第1のシステムと同じキーを使用可能であるべき場合、第1のシステムの第2の暗号アルゴリズムは第2のシステムの第2の暗号アルゴリズムと同じであり得る。但し配布者は、第1のシステムの第2の暗号アルゴリズムが第2のシステムの第2の暗号アルゴリズムと異なる第2のシステムを提供することもできる。後者の場合、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する複数の第2のキーが存在し、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を有する複数の第2のキーが存在するように第2の暗号アルゴリズム及び検証ユニットが選択され又は設計される。更なるシステムが提供される必要がない場合、この方法はステップ306に進む。
この方法はステップ306で、両方のシステムがメッセージへのアクセスを許可されている場合、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する第2のキーを使用してメッセージを与え、第1のシステム又は第2のシステムの何れかがメッセージへのアクセスを許可されていない場合、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を有する第2のキーを使用してメッセージを与えるステップを更に含み得る。ステップ306は、メッセージと第1のキー及び使用される第2のキーを表すキー表現とを被提供システムに伝送するステップを更に含み得る。
AESやDES等の暗号が良く知られており、従ってそのキースケジュールも広く知られていることにより、悪意ある顧客が(それらの顧客を公式に対象とするキーを使用してパッケージを復号した後)自分が選んだ異なるキーでパッケージを再び暗号化することができ、そのパッケージが自分から生じたとさえ主張し得る問題が発生する。本開示は、特定のソフトウェア配布について機能するキーの数を制限するやり方について説明する。キーの数を制限することは、使用される暗号アルゴリズムの有効キー空間を減らすことなしに、機能する代替キーを悪意ある利用者が見つけるのを暗号的により困難にする。
ホワイトボックス暗号では、キーが暗号実装の不可欠な部分である1つ又は複数のルックアップテーブル内に拡張される。特定のキーを有する暗号アルゴリズムは、データの異なるランダム符号化を使用してルックアップテーブル内に拡張され得るので区別は可能である。しかし、悪意ある利用者によって行われるChowの列内の別の難読化は、ソフトウェア製造業者がソフトウェアを自らのものとして認識するのを既に困難にし得る。キー又はハッシングを用いて署名することは可能だがそれはソフトウェアの出所を必ずしも十分に保護せず、その理由はそのソフトウェアが開封及び再梱包され、異なる方法及びキーを使って署名されることをそれらの方法が可能にするからである。
本開示の一態様は、パターンを秘密にしておきながら、キー内の特定のパターンを有するキーだけが機能するやり方で暗号を操作することである。ローダは、例えば非標準のS-boxを用いて僅かに修正された暗号を含み、その修正された暗号は一致するキーについてのみ正しく復号する。例えば、ソフトウェアパッケージの製造業者は、機能するにはキーの最後の4ビットが0101であることを課すことができる。製造業者は、例えば1組の別の顧客にパターン1001を使用することができるので、このメカニズムを使用して自らのオーディエンスを区別することさえできる。パターンが秘密のままである限り、このことは悪意ある利用者が有効な代替キーを生成するのを困難にする。しかし、この手続き(有効なキーのパターンを含む)が知られる場合、暗号のキー空間が事実上減らされる。一部の暗号ではその結果生じるキー空間が、全数探索が可能な程に小さくなり、そのため一度は標準化され最初にアプリケーションに組み込まれたセキュリティをもはや提供しない場合がある。
本開示によれば、知られている暗号が未知の暗号と暗号的に不可分に対にされ、それと同時に知られている暗号のキーを未知の暗号のキーで拡張し得る。これらの2つのキーは不可分に対にされても良く、それにより不可分に対にされたキーから個々のキーの値を抽出することができない。対にされる2つの暗号の組合せは、追加されるキーが特定の条件を満たす場合にのみ、その暗号機能(例えば不可分のキーの対に基づいて暗号文を復号すること)を実行するために使用され得るように作られる。追加される暗号は未知なのでそのキースケジュールも未知であり、従って攻撃者が正しい代替キーを推測することは暗号的に難しい。このようにしてパッケージ全体が暗号化され得る。このスキームをパッケージのインタフェースに組み込むことにより、一貫性がほぼ継続的に検査され得る。
これは、例えばセキュア仮想マシン(SVM:secure virtual machine)テクノロジ及び区分的に等価の暗号を使用して実装され得る。まず後者について詳しく述べ、その後、これらの機能がSVM設定内でどのように適用され得るのかを示す。
本開示の全体を通して、「区分的に等価の暗号」は以下のように定義される。下位領域内の全てのキーについて暗号A及び暗号Bが同一の出力を与え、この下位領域内にない全てのキーについて暗号A及び暗号Bが異なる出力を与えるように暗号のあり得る全てのキー領域の下位領域がある場合、暗号Aと暗号Bとは区分的に等価と呼ばれる。
つまり区分的に等価の暗号とは、キー空間の特定のサブセット上で等価の暗号である。暗号Aのソフトウェア実装を第1のオーディエンスに配布し、暗号Bのソフトウェア実装を第2のオーディエンスに配布することにより、これらの暗号を適用して意図されるオーディエンスと通信することができる。メッセージが両方のオーディエンスに宛てられる場合、暗号が等価である下位領域内のキーが使用される。第1のオーディエンスだけ又は第2のオーディエンスだけがメッセージへのアクセスを許可されている場合、この下位領域外のキーが使用される。特定の実施例では、キー及びメッセージの両方をブロードキャストすることさえでき、意図されるオーディエンス、即ち正しい資格情報を有するオーディエンスだけがそれをキーによって復号することができる。このスキームはオーディエンス(顧客)、アップデートソフトウェア、キー、及び区分的に等価の暗号(取消し)を識別するために使用され得る。
キーkを有する暗号Cを検討されたい。本開示の一態様によれば、C’が正しく機能する場合にのみCが正しく機能するように、Cが別の暗号C’と混合される。より形式的には、暗号Cが別の暗号C’と混合される一方、それと同時にキーk’が特定の条件を満たすとき且つそのときに限り組合せC|C’が暗号C単独と機能的に等価である(つまりC|C’を使用して特定の暗号操作を行うことができる)ようにキーkがキーk’によって拡張される。
特定の実施例では、任意のテキストXについて次式が成立する。
等式1:
Figure 0006423100
次に、1つ又は複数の暗号C(i=1,...,nであり、nは正の整数である)が設計されても良く、各CはC’に対して区分的に等価である。つまり、C=C’が成立するキー空間のサブセットがある。このサブセットは暗号Cごとに異なるように選択されても良く、それにより(特定のi値の)特定の暗号Cでのみ機能するキーが生成され得る。配布者はこれらの暗号C|C及びキーk|kのソフトウェア実装を配布することができ、C(i=1,...,nである)はC’と区分的に等価であるように選択される。
暗号C’及びC(i=1,...,nである)は、等式1の「所与の条件」を満たす代替キー、例えばk|k’を推測することがk|kからkを推測するのと少なくとも同程度難しい特徴を、あり得るキーk|k’によって形成されるキー空間が有するやり方で設計することができる。本開示の一態様によれば、暗号及びキー空間のこの拡張により、元の暗号が影響を受けないこと又は何かを推測するのが容易になっていないことにも留意されたい。
以下、関数C|C’のあり得る構成が示される。暗号Cを混同−拡散暗号と仮定する。適切な混同−拡散暗号の例は、これだけに限定されないがDES、3DES、及びAESを含む。Cと構造的に等価だが幾らか修正されている構造的に等価の暗号C’を利用する。例えばC’は、CのS-boxの少なくとも1つにより混同を変えることによって作られ得る。
C|C’k|k’(X)をデカルト積、即ち<C(X),C’k’(X)>だと仮定し、即ち出力サイズが2倍になる。出力<C(X),C’k’(X)>は、C’k’(X)の出力が予期されるものである(即ち特定の条件を満たす)とき且つそのときに限り、出力をC(X)に限定することによって減らされ得る。
この点に関して、条件の一例はC’k’(X)=Xであること、又はより広くはC’k’(X)がXの所定の関数だということである。或いは、C’k’(X)が条件を満たすかどうかの検査は、例えばC’k’(X)を暗号操作が加えられる次のデータブロックと組み合わせることによりC’k’(X)の結果を使用する暗黙的検査とすることができる。かかる手順は、例えば暗号ブロック連鎖(CBC:cipher-block-chaining)モードとして知られている。このようにして、C’k’(X)の結果がナンスとして使用され得る。C’k’(X)の結果は、それ自体が当技術分野で知られているやり方でセッションキーとして使用され得る。S-Boxの変更によりC’が「未知」の関数になったので、どの(サブ)キーについて条件が満たされているのかを推測することは攻撃者にとって困難である。
キー空間に対して区分的に等価の暗号を作成することは、キーのマテリアルを区分的に等価に操作する関数を設計することによって行われ得る。AES及びDESの両方で、キーのマテリアルを操作する関数の1つはxorであり、xorに対する1つの引数はこの段落ではkで示される(ラウンド)キーであり、他方の引数は処理されているデータ/メッセージに関する。この関数を
Figure 0006423100
として言及することができる。暗号C’が操作
Figure 0006423100
を含むと見なし、何らかのiに関する区分的に等価の暗号C
Figure 0006423100
に対する区分的に等価の関数を作成することによってC’から導出され得る。
Figure 0006423100
に対する区分的に等価の関数の一実施例は次式の通りである。
Figure 0006423100
これは一実施例に過ぎず、
Figure 0006423100
(x)は4を除くkの全ての値について
Figure 0006423100
に等しいことに留意されたい。単に1つの
Figure 0006423100

Figure 0006423100
をラウンド内でCを置換する場合、この新たな暗号Cは関連する(サブ)キーマテリアルがkに等しい場合にのみC’と機能的に等価であることに留意されたい。キースケジュールは可逆的なので、暗号C及びC’が区分的に等価である全てのキーk’を当業者は明らかにすることができる。
セキュア仮想マシン(SVM)の実装では、CとCとの間の結び付きを単一のテーブル内に確立することにより、CとCとの間の結び付きが完全に隠され得る。当技術分野で知られているように、このテーブルはその入出力の符号化を含み得る。例えばホワイトボックス技術が例えばChowらから知られていることを参照されたい。
この状況を実現するために、暗号Cの各ステップは暗号Cのステップと組み合わせられ得る。ステップの中間結果が符号化されても良く、つまり暗号Cのステップの入出力に関する情報が、暗号Cの対応するステップの入出力それぞれに関する情報と混合され得る。Cの出力に関する条件の検査もこの符号化領域内で実行されても良く、そのため攻撃者は条件が満たされていない場合Cの出力を容易に抽出することができない。ここではC’がCと構造的に等しいことが役立つ。同様に、キーk及びk’が暗号化/符号化によって混合され、そのように混合することは推測している組み合わさったキーk|k’内のビットと構成キーk及びk’のビットとの間の関係が何なのか攻撃者の見当がつかないことを確実にする。k及びk’を暗号化することにより、これらの値が攻撃者にとって非分離的になる。
今日のクレジットカード又は電話上の支払アプリケーションでは、平文で使用される検証キーがある。この検証キーが上記の拡張キーk|k’で置換される場合、クレジットカードの他の側面を複製することなしにキーを他のカード上で容易に使用することはできない。ホワイトボックスの技法と同様に、検証キーは全員にとって異なり得るが、本明細書で開示される解決策の少なくとも一部は使用される記憶空間の観点から、既存のホワイトボックス実装に比べて小さいフットプリントを有し得る。更に、本明細書で開示される解決策の少なくとも一部は、攻撃者に知られておらず且つ毎回異なるランダム機能を有する。
バイオメトリク照合のための有利な実施形態が以下の条項に記載されている。本願又は本願から導き出される任意の更なる出願の登録出願中、出願人はかかる条項、かかる条項の組合せ、及び/又は説明から理解される特徴に対して新たな請求項が考案され得ることを本明細書によって通知する。以下の条項の中で紹介される手段は、例えば本明細書に記載のそれぞれの対応するユニットとして実装され得る。
1.メッセージの表現である第1のメッセージ表現(3、6、11)を与えるためのメッセージ手段(1、7、12)と、
キー表現(4、9、14)を与えるためのキー手段(2)であって、キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なる、キー手段(2)と、
第2のメッセージ表現(6、11、16)を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現(3、6、11)及びキー表現に基づいて実行するためのステップ手段(5、10、15)であって、第2のメッセージ表現は第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である、ステップ手段(5、10、15)と
を含む、暗号処理用システム。
2.ステップ手段(5、10、15)がルックアップテーブル又はルックアップテーブルのネットワーク内の第2の暗号化表現を探索するためのルックアップ手段を含み、ルックアップテーブル又はルックアップテーブルのネットワークは、第1のメッセージ表現及びキー表現の組合せから対応する第2のメッセージ表現へのマッピングを含む、条項1のシステム。
3.第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップが同じ操作を含み、第1の暗号アルゴリズムのステップの操作の少なくとも1つのパラメータが第2の暗号アルゴリズムのステップの対応するパラメータと異なる、条項1のシステム。
4.第1の暗号アルゴリズムは一連の第1のステップを含み、第2の暗号アルゴリズムは対応する一連の第2のステップを含み、メッセージ手段(7)は第1のメッセージ表現(6)を与えるように構成され、第1のメッセージ表現(6)は、第1の暗号アルゴリズムの前のステップ及び第2の暗号アルゴリズムの前のステップをメッセージ表現(3)及びキー表現(4)に基づいて実行するための更なるステップ手段(5)から得られる、第1の暗号アルゴリズムの前のステップの結果及び第2の暗号アルゴリズムの前のステップの結果の暗号化表現である、条項1のシステム。
5.第2の暗号アルゴリズムの結果に基づいてキー表現を検証するための検証手段(17)を更に含む、条項1のシステム。
6.検証手段(17)が第2の暗号アルゴリズムの出力を入力メッセージと比較するように構成される、条項5のシステム。
7.検証手段(17)が第2の暗号アルゴリズムの出力を更なる第1のメッセージ表現(3)と暗号ブロックモードで組み合わせるように構成される、条項5のシステム。
8.ステップ手段(5、10、15)がホワイトボックス暗号実装の中に隠される、条項1のシステム。
9.第1のシステムの第1の暗号アルゴリズムは第2のシステムの第1の暗号アルゴリズムと同一であり、第1のシステムの第2の暗号アルゴリズムは第2のシステムの第2の暗号アルゴリズムと異なり、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する複数の第2のキーが存在し、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を与える複数の第2のキーが存在する、条項1によるシステムである第1のシステム及び第2のシステムからなる、2つのシステム。
10.メッセージの表現である第1のメッセージ表現を与えるステップ(201)と、
キー表現を与えるステップ(202)であって、キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なる、キー表現を与えるステップ(202)と、
第2のメッセージ表現を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現及びキー表現に基づいて実行するステップ(203)であって、第2のメッセージ表現は第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である、実行するステップ(203)と
を含む、暗号処理方法。
11.メッセージの表現である第1のメッセージ表現を与えるための手段を提供するステップ(301)と、
キー表現を与えるための手段を提供するステップ(302)であって、キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、第1の暗号アルゴリズムは第2の暗号アルゴリズムと異なる、キー表現を与えるための手段を提供するステップ(302)と、
第2のメッセージ表現を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現及びキー表現に基づいて実行するためのステップ手段を提供するステップ(303)であって、第2のメッセージ表現は第1の暗号アルゴリズムのステップの結果及び第2の暗号アルゴリズムのステップの結果の暗号化表現である、ステップ手段を提供するステップ(303)と、
第2のアルゴリズムの少なくとも一部を秘密にしておくステップ(304)と
を含む、暗号処理用システムを提供する方法。
12.暗号処理用の第2のシステムを提供するステップを含み(305)、第1のシステムの第1の暗号アルゴリズムは第2のシステムの第1の暗号アルゴリズムと同一であり、第1のシステムの第2の暗号アルゴリズムは第2のシステムの第2の暗号アルゴリズムと異なり、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する複数の第2のキーが存在し、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を有する複数の第2のキーが存在する、条項11の方法。
13.両方のシステムがメッセージへのアクセスを許可されている場合、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが同じ結果を有する第2のキーを使用してメッセージを与え、第1のシステム又は第2のシステムの何れかがメッセージへのアクセスを許可されていない場合、第1のシステムの第2の暗号アルゴリズム及び第2のシステムの第2の暗号アルゴリズムが異なる結果を有する第2のキーを使用してメッセージを与えるステップ(306)を更に含む、条項12の方法。
14.条項10の方法を処理システムに実行させるための命令を含む、コンピュータプログラム製品。
本発明はコンピュータプログラム、とりわけ本発明を実践するように適合される担体上の又は担体内のコンピュータプログラムにも当てはまることが理解されよう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース、及び部分的にコンパイルされた形式等にあるオブジェクトコード形式、又は本発明による方法を実施する際の使用に適した他の任意の形式を取ることができる。かかるプログラムは多くの異なる方式設計を有し得ることも理解されよう。例えば、本発明による方法又はシステムの機能を実装するプログラムコードは1つ又は複数のサブルーチンに細分され得る。これらのサブルーチンの間で機能を分散させる多くの異なる方法が当業者には明らかである。サブルーチンは、独立プログラムを形成するように1つの実行可能ファイル内に一緒に記憶され得る。そのような実行可能ファイルは、コンピュータ実行可能命令、例えばプロセッサ命令及び/又はインタプリタ命令(例えばJava(登録商標)インタプリタ命令)を含み得る。或いは、サブルーチンの1つ、複数、又は全てが少なくとも1つの外部ライブラリファイル内に記憶され、例えば実行時に主プログラムに静的に又は動的にリンクされても良い。主プログラムは、サブルーチンの少なくとも1つに対する少なくとも1つの呼出しを含む。サブルーチンは、互いへの呼出しを含むこともできる。コンピュータプログラム製品に関する一実施形態は、本明細書に記載した方法の少なくとも1つの各処理ステップに対応するコンピュータ実行可能命令を含む。これらの命令はサブルーチンに細分され、且つ/又は静的に若しくは動的にリンクされ得る1つ又は複数のファイル内に記憶され得る。コンピュータプログラム製品に関する別の実施形態は、本明細書に記載したシステム及び/又は製品の少なくとも1つの各ユニットに対応するコンピュータ実行可能命令を含む。これらの命令はサブルーチンに細分され、且つ/又は静的に若しくは動的にリンクされ得る1つ又は複数のファイル内に記憶され得る。
コンピュータプログラムの担体は、プログラムを運ぶことができる任意のエンティティ又は装置とすることができる。例えば担体は、ROM、例えばCD ROMや半導体ROM、又は磁気記録媒体、例えばフラッシュドライブやハードディスク等の記憶媒体を含み得る。更に担体は、電気ケーブル若しくは光ケーブルにより、又は無線若しくは他の手段によって伝えられ得る電気信号や光信号等の伝送可能担体とすることができる。プログラムがかかる信号内に具体化される場合、担体はかかるケーブル又は他の装置若しくは手段によって構成され得る。或いは担体は、プログラムが埋め込まれる集積回路とすることができ、集積回路は関連する方法を実行するように適合され、又は関連する方法を実行する際に使用されるように適合される。
本発明の一態様は、コンピュータプログラムを含む書込み可能部分を有するコンピュータ可読媒体に関し、コンピュータプログラムは実施形態による暗号処理方法をプロセッサシステムに実行させるための命令を含む。コンピュータプログラムは、物理的な印として又はコンピュータ可読媒体を磁化することによってコンピュータ可読媒体上に実装され得る。但し、他の任意の適切な実施形態も考えられる。コンピュータ可読媒体は光ディスク、又はハードディスク、ソリッドステートメモリ、フラッシュメモリ等の任意の適切なコンピュータ可読媒体とすることができ、記録不能又は記録可能であり得る。コンピュータプログラムは、前述の方法を処理システムに実行させるための命令を含む。
一実施形態では、このシステム又はステップユニットがプロセッサシステムである。プロセッサシステムは1つ又は複数の集積回路を含む。例えば回路は、実施形態による方法を実行するために且つ/又はそのモジュール若しくはユニットを実装するためにコンピュータプログラムコンポーネントを実行するための処理ユニット、例えばCPUと、プログラミングコードやデータ等を記憶するためのメモリとを含み得る。メモリの一部は読取専用であり得る。回路は通信素子、例えばアンテナ、コネクタ、その両方等を含み得る。回路は、方法の中で定められる処理の一部又は全てを実行するための専用集積回路を含み得る。プロセッサ、メモリ、任意選択的な専用IC及び通信素子は相互接続、例えばバスによって互いに接続され得る。プロセッサシステムは、アンテナ及び/又はコネクタのそれぞれを使用して接触通信及び/又は非接触通信用に構成され得る。
上記の実施形態は本発明を限定するのではなく例示し、当業者は添付の特許請求の範囲から逸脱することなく多くの代替的実施形態を設計できることに留意すべきである。特許請求の範囲では、括弧の間に配置される如何なる参照符号も請求項を限定するものとして解釈されるべきでない。動詞「含む」及びその活用形を使用することは、請求項の中で述べられるもの以外の要素又はステップがあることを排除しない。或る要素の前にくる冠詞「a」又は「an」は、その要素が複数存在することを排除しない。本発明は、幾つかの別個の要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実施され得る。幾つかのユニットを列挙する装置の請求項では、それらのユニットの幾つかがハードウェアの同一アイテムによって具体化され得る。或る手段が互いに異なる従属項の中で引用されるという単なる事実は、それらの手段の組合せが有利に使用されてはならないことを示すものではない。

Claims (15)

  1. 暗号処理用のシステムであって、
    メッセージの表現である第1のメッセージ表現を与えるためのメッセージユニットと、
    キー表現を与えるためのキーユニットであって、前記キー表現は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの組合せを一意であり且つ無作為に決定されるビット列にマップして得られる暗号化表現であり、前記第1の暗号アルゴリズムは前記第2の暗号アルゴリズムと異なるとともに、キー空間に対して区分的に前記第2の暗号アルゴリズムと等価の暗号である、キーユニットと、
    第2のメッセージ表現を得るために、前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップを前記第1のメッセージ表現及び前記キー表現に基づいて実行するためのステップユニットであって、前記第2のメッセージ表現は前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現である、ステップユニットと
    を含む、システム。
  2. 前記ステップユニットがルックアップテーブル又は当該ルックアップテーブルのネットワーク内の第2の暗号化表現を探索するためのルックアップユニットを含み、前記ルックアップテーブル又は当該ルックアップテーブルの前記ネットワークは、前記第1のメッセージ表現及び前記キー表現の組合せから対応する前記第2のメッセージ表現へのマッピングを含む、請求項1に記載のシステム。
  3. 前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップが同じ操作を含み、前記第1の暗号アルゴリズムのステップの操作の少なくとも1つのパラメータが前記第2の暗号アルゴリズムのステップの対応するパラメータと異なる、請求項1に記載のシステム。
  4. 前記第1の暗号アルゴリズムは一連の第1のステップを含み、前記第2の暗号アルゴリズムは対応する一連の第2のステップを含み、前記メッセージユニットは前記第1のメッセージ表現を与え、前記第1のメッセージ表現は、前記第1の暗号アルゴリズムの前のステップ及び前記第2の暗号アルゴリズムの前のステップをメッセージ表現及びキー表現に基づいて実行するための更なるステップユニットから得られる、前記第1の暗号アルゴリズムの前記前のステップの結果及び前記第2の暗号アルゴリズムの前記前のステップの結果の暗号化表現である、請求項1に記載のシステム。
  5. 暗号処理用のシステムであって、
    メッセージの表現である第1のメッセージ表現を与えるためのメッセージユニットと、
    キー表現を与えるためのキーユニットであって、前記キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、前記第1の暗号アルゴリズムは前記第2の暗号アルゴリズムと異なる、キーユニットと、
    第2のメッセージ表現を得るために、前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップを前記第1のメッセージ表現及び前記キー表現に基づいて実行するためのステップユニットであって、前記第2のメッセージ表現は前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現である、ステップユニットと、
    前記第2の暗号アルゴリズムの結果に基づいて前記キー表現を検証するための検証ユニットと、を含む、システム。
  6. 前記検証ユニットは、前記第2の暗号アルゴリズムの出力を入力メッセージと比較する、請求項5に記載のシステム。
  7. 前記検証ユニットは、前記第2の暗号アルゴリズムの出力を更なる第1のメッセージ表現と暗号ブロックモードで組み合わせる、請求項5に記載のシステム。
  8. 前記ステップユニットは、ホワイトボックス暗号実装の中に隠される、請求項1に記載のシステム。
  9. メッセージの表現である第1のメッセージ表現を与えるためのメッセージユニットと、
    キー表現を与えるためのキーユニットであって、前記キー表現は第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、前記第1の暗号アルゴリズムは前記第2の暗号アルゴリズムと異なるとともに、キー空間に対して区分的に前記第2の暗号アルゴリズムと等価の暗号である、キーユニットと、
    第2のメッセージ表現を得るために、前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップを前記第1のメッセージ表現及び前記キー表現に基づいて実行するためのステップユニットであって、前記第2のメッセージ表現は前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現である、ステップユニットと、含む第1のシステム及び第2のシステムを備え、
    前記第1のシステムの第1の暗号アルゴリズムは前記第2のシステムの第1の暗号アルゴリズムと同一であり、前記第1のシステムの第2の暗号アルゴリズムは前記第2のシステムの第2の暗号アルゴリズムと異なり、前記第1のシステムの前記第2の暗号アルゴリズム及び前記第2のシステムの前記第2の暗号アルゴリズムが同じ結果を有する複数の第2のキーが存在し、前記第1のシステムの前記第2の暗号アルゴリズム及び前記第2のシステムの前記第2の暗号アルゴリズムが異なる結果を与える複数の第2のキーが存在する、システム。
  10. 前記第1のシステム及び前記第2のシステムの前記メッセージユニットは、
    前記第1のシステム及び前記第2のシステムの両方がメッセージへのアクセスを許可されている場合、前記第1のシステムの前記第2の暗号アルゴリズム及び前記第2のシステムの前記第2の暗号アルゴリズムが同じ結果を有する第2のキーを使用してメッセージを与え、
    前記第1のシステム又は前記第2のシステムの何れかがメッセージへのアクセスを許可されていない場合、前記第1のシステムの前記第2の暗号アルゴリズム及び前記第2のシステムの前記第2の暗号アルゴリズムが異なる結果を有する第2のキーを使用してメッセージを与える、請求項9に記載のシステム。
  11. 暗号処理用のステップユニットであって、前記ステップユニットは、
    第2のメッセージ表現を得るために、第1の暗号アルゴリズムのステップ及び第2の暗号アルゴリズムのステップを第1のメッセージ表現及びキー表現に基づいて実行し、前記第2のメッセージ表現は、前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現であり、
    前記第1のメッセージ表現は、メッセージの表現であり、
    前記キー表現は、前記第1の暗号アルゴリズムの第1のキー及び前記第2の暗号アルゴリズムの第2のキーの組合せを一意であり且つ無作為に決定されるビット列にマップして得られる暗号化表現であり、前記第1の暗号アルゴリズムは、前記第2の暗号アルゴリズムと異なるとともに、キー空間に対して区分的に前記第2の暗号アルゴリズムと等価の暗号である、ステップユニット。
  12. メッセージユニット、キーユニット及びステップユニットを備える暗号処理用のシステムの作動方法であって、
    前記メッセージユニットが、メッセージの表現である第1のメッセージ表現を与えるステップと、
    前記キーユニットが、キー表現を与えるステップであって、前記キー表現は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの組合せを一意であり且つ無作為に決定されるビット列にマップして得られる暗号化表現であり、前記第1の暗号アルゴリズムは、前記第2の暗号アルゴリズムと異なるとともに、キー空間に対して区分的に前記第2の暗号アルゴリズムと等価の暗号である、キー表現を与えるステップと、
    前記ステップユニットが、第2のメッセージ表現を得るために、前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップを前記第1のメッセージ表現及び前記キー表現に基づいて実行するステップであって、前記第2のメッセージ表現は前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現である、実行するステップと、
    を含む、暗号処理用のシステムの作動方法。
  13. メッセージユニット、キーユニット、ステップユニット及び検証ユニットを備える暗号処理用のシステムの作動方法であって、
    前記メッセージユニットが、メッセージの表現である第1のメッセージ表現を与えるステップと、
    前記キーユニットが、キー表現を与えるステップであって、前記キー表現は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、前記第1の暗号アルゴリズムは、前記第2の暗号アルゴリズムと異なる、キー表現を与えるステップと、
    前記ステップユニットが、第2のメッセージ表現を得るために、前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップを前記第1のメッセージ表現及び前記キー表現に基づいて実行するステップであって、前記第2のメッセージ表現は前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現である、実行するステップと、
    前記検証ユニットが、前記第2の暗号アルゴリズムのステップの結果に基づいて前記キー表現を検証するステップと、
    を含む、暗号処理用のシステムの作動方法。
  14. メッセージの表現である第1のメッセージ表現を与える手段、
    キー表現を与える手段であって、前記キー表現は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの組合せを一意であり且つ無作為に決定されるビット列にマップして得られる暗号化表現であり、前記第1の暗号アルゴリズムは、前記第2の暗号アルゴリズムと異なるとともに、キー空間に対して区分的に前記第2の暗号アルゴリズムと等価の暗号である、キー表現を与える手段、及び、
    第2のメッセージ表現を得るために、前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップを前記第1のメッセージ表現及び前記キー表現に基づいて実行する手段であって、前記第2のメッセージ表現は前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現である、実行する手段として、コンピュータを機能させるためのコンピュータプログラム。
  15. メッセージの表現である第1のメッセージ表現を与える手段、
    キー表現を与える手段であって、前記キー表現は、第1の暗号アルゴリズムの第1のキー及び第2の暗号アルゴリズムの第2のキーの暗号化表現であり、前記第1の暗号アルゴリズムは、前記第2の暗号アルゴリズムと異なる、キー表現を与える手段、
    第2のメッセージ表現を得るために、前記第1の暗号アルゴリズムのステップ及び前記第2の暗号アルゴリズムのステップを前記第1のメッセージ表現及び前記キー表現に基づいて実行する手段であって、前記第2のメッセージ表現は前記第1の暗号アルゴリズムのステップの結果及び前記第2の暗号アルゴリズムのステップの結果の暗号化表現である、実行する手段、及び、
    前記第2の暗号アルゴリズムのステップの結果に基づいて前記キー表現を検証する手段として、コンピュータを機能させるためのコンピュータプログラム。
JP2017533838A 2014-12-24 2015-12-11 暗号のシステム及び方法 Active JP6423100B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14200285.6 2014-12-24
EP14200285 2014-12-24
PCT/EP2015/079334 WO2016102202A1 (en) 2014-12-24 2015-12-11 Cryptographic system and method

Publications (2)

Publication Number Publication Date
JP2018506059A JP2018506059A (ja) 2018-03-01
JP6423100B2 true JP6423100B2 (ja) 2018-11-14

Family

ID=52292691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017533838A Active JP6423100B2 (ja) 2014-12-24 2015-12-11 暗号のシステム及び方法

Country Status (8)

Country Link
US (1) US10469245B2 (ja)
EP (1) EP3238365B1 (ja)
JP (1) JP6423100B2 (ja)
CN (1) CN107278357B (ja)
BR (1) BR112017013588A2 (ja)
RU (1) RU2710670C2 (ja)
TR (1) TR201906026T4 (ja)
WO (1) WO2016102202A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7162411B2 (ja) * 2016-07-19 2022-10-28 ヤフー株式会社 暗号化装置、暗号化方法および暗号化プログラム
CN109547195A (zh) * 2018-11-13 2019-03-29 阳光保险集团股份有限公司 一种密码数据处理方法及装置
CN110990853B (zh) * 2019-11-29 2022-05-06 天津市滨海新区信息技术创新中心 动态异构冗余的数据访问保护方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04232588A (ja) * 1990-12-27 1992-08-20 Toshiba Corp Icカードを用いたデータ暗号化システム
DE19514084C1 (de) 1995-04-13 1996-07-11 Siemens Ag Verfahren zum rechnergestützten Austausch kryptographischer Schlüssel zwischen einer Benutzercomputereinheit U und einer Netzcomputereinheit N
JPH08335040A (ja) * 1995-06-02 1996-12-17 Fujitsu Ltd 暗号化処理方式
JP3093678B2 (ja) 1996-06-28 2000-10-03 株式会社東芝 暗号化方法、復号方法、記録再生装置、復号装置、復号化ユニット装置及び記録媒体の製造方法
EP0895149B1 (en) * 1997-07-31 2003-09-17 Siemens Aktiengesellschaft Computer system for protecting a file and a method for protecting a file
WO2001041359A1 (fr) * 1999-12-03 2001-06-07 Sanyo Electric Co., Ltd Systeme de distribution de donnees et enregistreur a utiliser dans ce systeme
KR100354488B1 (ko) * 2000-06-16 2002-10-11 주식회사 이플래닛 물리적 상품을 이용하여 디지털 상품의 복제/배포를방지하는 장치 및 방법
JP4470135B2 (ja) * 2001-01-17 2010-06-02 ネッツエスアイ東洋株式会社 擬似乱数生成システム
NZ552724A (en) * 2004-06-24 2009-12-24 Geoffrey David Bird Security for computer software
JP2006254099A (ja) * 2005-03-10 2006-09-21 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US8479016B2 (en) * 2006-03-10 2013-07-02 Irdeto B.V. Method and system for obfuscating a cryptographic function
CN101790865B (zh) 2007-05-22 2012-10-24 耶德托公司 更新密码密钥数据
CN101311942B (zh) * 2007-05-23 2011-08-24 西门子(中国)有限公司 对软件进行加密、解密的方法及加密、解密的装置
CN101884195B (zh) * 2007-09-13 2013-03-06 耶德托公司 内容的密码处理
US8380996B2 (en) * 2008-02-01 2013-02-19 Thomson Licensing Copy-protected software cartridge
CN101677269B (zh) * 2008-09-17 2012-01-25 比亚迪股份有限公司 密钥传输的方法及系统
CA2765622A1 (en) 2009-06-19 2010-12-23 Irdeto B.V. White-box cryptographic system with configurable key using intermediate data modification
EP2803009B1 (en) 2012-01-09 2019-11-20 Koninklijke Philips N.V. Virtual machine device having key driven obfuscation and method
MX343892B (es) 2012-12-21 2016-11-28 Koninklijke Philips Nv Dispositivo de computo configurado con una red de tablas.
BR112015014470A2 (pt) 2012-12-21 2017-07-11 Koninklijke Philips Nv compilador configurado para compilar um programa de computador, dispositivo de computação configurado para executar um programa de computador compilado por um compilador, método para executar um programa de computador compilado por um compilador e programa de computador
EP2979184A4 (en) * 2013-03-28 2016-10-19 Irdeto Bv METHOD AND SYSTEM FOR MEDIA PATIENT SECURITY
WO2015023341A2 (en) 2013-05-23 2015-02-19 Intertrust Technologies Corporation Secure authorization systems and methods
US10546155B2 (en) * 2014-03-31 2020-01-28 Irdeto B.V. Protecting an item of software

Also Published As

Publication number Publication date
JP2018506059A (ja) 2018-03-01
CN107278357B (zh) 2020-04-07
RU2017126186A3 (ja) 2019-07-17
EP3238365B1 (en) 2019-02-20
BR112017013588A2 (pt) 2018-03-06
TR201906026T4 (tr) 2019-05-21
US10469245B2 (en) 2019-11-05
US20170346621A1 (en) 2017-11-30
EP3238365A1 (en) 2017-11-01
RU2710670C2 (ru) 2019-12-30
WO2016102202A1 (en) 2016-06-30
CN107278357A (zh) 2017-10-20
RU2017126186A (ru) 2019-01-25

Similar Documents

Publication Publication Date Title
US11615411B2 (en) POS system with white box encryption key sharing
CN110214440B (zh) 计算系统,传送受保护数据的方法和可读存储介质
US8478980B2 (en) System and method for defining programmable processing steps applied when protecting the data
CA2831457C (en) Enabling a software application to be executed on a hardware device
US10700849B2 (en) Balanced encoding of intermediate values within a white-box implementation
US11063743B2 (en) Method of RSA signature of decryption protected using assymetric multiplicative splitting
KR20130093557A (ko) 적어도 하나의 암호화 명령어를 포함하는 소프트웨어 애플리케이션의 협력 실행을 위한 시스템, 장치, 및 방법
US20190132116A1 (en) Using white-box in a leakage-resilient primitive
US10567155B2 (en) Securing a cryptographic device
JP6423100B2 (ja) 暗号のシステム及び方法
CN110149312B (zh) 数据处理方法、装置、系统及计算机可读存储介质
KR102583995B1 (ko) 암호화 프로그램 다양화
JP2007515723A (ja) アクティブなエンティティを使用するソフトウェア実行保護
CN110166425B (zh) 数据处理方法、装置、系统及计算机可读存储介质
Agrawal et al. White-box cryptography with global device binding from message-recoverable signatures and token-based obfuscation
CN108242997A (zh) 安全通信的方法与设备
Costea et al. Secure software licensing: Models, constructions, and proofs
KR101834515B1 (ko) 입력부를 포함하는 암복호화 장치
KR20170132464A (ko) 암복호화 장치 및 이를 이용한 암복호화 방법
JP2020197832A (ja) データ処理方法、データ処理システム及びデータ処理管理媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181017

R150 Certificate of patent or registration of utility model

Ref document number: 6423100

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