JP6017501B2 - 暗号システム - Google Patents

暗号システム Download PDF

Info

Publication number
JP6017501B2
JP6017501B2 JP2014137592A JP2014137592A JP6017501B2 JP 6017501 B2 JP6017501 B2 JP 6017501B2 JP 2014137592 A JP2014137592 A JP 2014137592A JP 2014137592 A JP2014137592 A JP 2014137592A JP 6017501 B2 JP6017501 B2 JP 6017501B2
Authority
JP
Japan
Prior art keywords
function
implementation
data
result
cryptographic
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.)
Expired - Fee Related
Application number
JP2014137592A
Other languages
English (en)
Other versions
JP2014180061A (ja
Inventor
ヴィルヘルムス・ペー・アー・イェー・ミヒールス
パウルス・エム・ハー・エム・アー・ゴリッセン
Original Assignee
イルデト・ベー・フェー
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 イルデト・ベー・フェー filed Critical イルデト・ベー・フェー
Publication of JP2014180061A publication Critical patent/JP2014180061A/ja
Application granted granted Critical
Publication of JP6017501B2 publication Critical patent/JP6017501B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • 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/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Description

本発明は、暗号システムおよび暗号処理の方法に関する。
今日、コンテンツは、例えばインターネット、放送媒体、またはCDやDVD等のデジタルデータキャリアを用いて、デジタル形式でユーザが入手できるようになりつつある。テレビ、セットトップボックス、オーディオ機器等の消費者家電(CE)製品は、そうしたデジタルコンテンツをレンダリングするためのデジタルデータ処理機能を備えている。
正当なユーザへのデジタルコンテンツの配布を管理するためにデジタル権利管理システムが導入されている。通例、デジタル権利管理システムは、正当なユーザのみがコンテンツを解読することを可能にする暗号化技術を用いる。消費者装置内でのそのような暗号化技術の実装は、攻撃者が鍵の値を知ることをより難しくするように難読化(obfuscate)することが可能である。多種のアプリケーションで一般に使用される暗号の例は、DES、AES、RSA、および特許文献1に開示される方法である。
デジタル権利管理システムでの鍵の扱いに関連して、メディアプレーヤは再生のためにライセンスデータベースから解読鍵を取得しなければならない。そして、メディアプレーヤは、暗号化されたコンテンツの解読のためにその解読鍵をメモリ中のどこかに記憶しなければならない。これは、攻撃者に、鍵を攻撃するための2つの選択肢を与える。第1に、ライセンスデータベースへのアクセス機能のリバースエンジニアリングにより、攻撃者は、すべてのライセンスデータベースから価値ある鍵を取得することができる。第2に、コンテンツ解読時にメモリへのアクセスを観察することにより、価値ある鍵を取得することが可能である。どちらの場合も、鍵は危険にさらされると考えられる。
ソフトウェアで実施される暗号システムの分野では、改竄防止ソフトウェア製品の必要性から、攻撃者が暗号鍵を取得することおよび不正コピーを阻止する難読化技術が生まれた。こうした難読化技術の1つは、暗号アルゴリズムのホワイトボックス実装を提供することを伴う。暗号アルゴリズムのホワイトボックス実装とは、ホワイトボックス攻撃、すなわち攻撃者がプロセッサによって実行される命令の一部またはすべてを観察することができる攻撃から、暗号アルゴリズムの内部原理の一部またはすべてを隠蔽する実装である。場合によっては、攻撃者は動作環境に対する何らかの形のコントロールを有し、それにより、暗号動作の少なくとも一部を観察し、実行時にアルゴリズムで使用される暗号鍵の少なくとも一部を特定することができる。例えば、攻撃者は、デバッグ環境または仮想マシンの内部で実装を実行することにより、すべての動作を観察し、データバッファを操作し、実行の流れを監視することができる。
他の事例では、攻撃者は、暗号アルゴリズムの実行時に、実装の一部またはデータバッファの内容の一部を動作環境から「漏洩」させる、すなわち明らかにさせることができる。例えば、攻撃者は、バッファオーバーフロー攻撃を使用して、暗号実装の一部を抽出できる場合がある。適切な部分が抽出された場合、攻撃者は、それにより暗号鍵または実装中の特定の設定を知り、暗号保護の一部またはすべてを取り消すことができる。
ホワイトボックス実装は、暗号アルゴリズム、特に鍵データの内部原理の一部またはすべてを隠蔽する。これは、各種方式で行うことが可能である。ホワイトボックス実装を作成する一般的な技術は、暗号アルゴリズム内のテーブルの符号化と、個々のステップではなく合成(composition)を表すランダムな全単射との組み合わせを使用するものである。
解読鍵と解読アルゴリズムは、実質的に1つのモノリシックなブロックの形にされる。そのブロックのどの部分も、アルゴリズムまたは鍵の内部原理についての情報を一切明らかにしない。実際、ホワイトボックス実装全体が与えられた場合であっても、元のアルゴリズムまたは使用されている解読鍵をリバースエンジニアリングで得ることは極めて難しい。別の技術、例えば欧州特許出願第08155798.5号(整理番号PH010099)に開示される技術は、RSA等の暗号アルゴリズムにおける指数の難読化である。
現在、ホワイトボックス実装は、限られた数の暗号についてのみ知られている。非特許文献1(以下「Chow 1」と呼ぶ)、および非特許文献2(以下「Chow 2」と呼ぶ)は、暗号アルゴリズム、特にAESやDESとして知られる暗号アルゴリズムのホワイトボックス実装を作成する方法を開示する。
国際公開第9967918号 国際公開第2007/105126号
「White-Box Cryptography and an AES Implementation」、Stanley Chow, Philip Eisen, Harold Johnson、およびPaul C. Van Oorschot著, in Selected Areas in Cryptography: 9th Annual International Workshop, SAC 2002、カナダ、ニューファンドランド州、セントジョンズ、2002年8月15〜16日 「A White-Box DES Implementation for DRM Applications」、Stanley Chow, Phil Eisen, Harold Johnson, and Paul C. van Oorschot著, in Digital Rights Management: ACM CCS-9 Workshop, DRM 2002、アメリカ合衆国、ワシントンDC、2002年11月18日
暗号アルゴリズムのホワイトボックス実装を作成する、より柔軟性の高い方式があると有利と思われる。この問題により適切に対処するために、本発明の第1の態様では暗号システムが提示され、この暗号システムは、関数のホワイトボックス実装と、暗号アルゴリズムの実装と、関数の結果に依存しかつ暗号アルゴリズムの結果に依存して、暗号処理されたデータを設定する結合動作の実装とを備える。
ホワイトボックス実装であるので、関数によって定義される対応付けが攻撃者によって容易に発見され得ない。したがって、関数のホワイトボックス実装に適切な値を供給することにより、攻撃者が予測することが難しい値の連続が生成されることが可能である。暗号アルゴリズムの結果をホワイトボックス実装の結果と結合することにより、攻撃者が暗号システムを破ることがより難しくなる。事実、ホワイトボックス実装のセキュリティ特性により暗号アルゴリズムの強度が高められる。
暗号アルゴリズム自体のホワイトボックス実装を提供する必要はない。暗号アルゴリズムは、例えばRSAに基づくことができる。
関数は、その関数のホワイトボックス実装の入力および出力を監視することで振る舞いを予測するのが難しい関数であることが好ましい。関数は、例えば、DESやAES等のさらに別の暗号アルゴリズムを備えてよい。そのような場合、関数のホワイトボックス実装は、その暗号アルゴリズムのホワイトボックス実装を備えることができる。あるいは、関数はハッシュ関数または乱数生成関数であってもよい。そのような場合、関数のホワイトボックス実装は、適宜、ハッシュ関数または乱数生成関数のホワイトボックス実装を含む。
結合動作は、例えばXOR演算、または、何らかの正の整数kについての2kを法とする加算からなる。結合動作は、ホワイトボックス実装として実装されても、されなくてもよい。
上記のホワイトボックス実装を作成する技術を使用することができるが、現在知られる、または今後考案される他のホワイトボックス技術も使用されてよい。好ましくは、ホワイトボックス実装は、サイズが小さ過ぎず、かつ、攻撃者が実装のいずれかの部分(アルゴリズムで使用される鍵を含む)を有する場合に、その部分から、ホワイトボックス実装の対象である関数の機能的に正しいバージョンを導出することが難しいという特性を有する。この想定は、ホワイトボックス実装でしばしば想定されること、すなわち攻撃者が環境に対する完全なコントロールを有するという想定に比べて弱い想定である。ホワイトボックス実装の一部から、攻撃者が、基礎となる鍵、または乱数生成関数の場合には使用されるシードを導出できないことが好ましい。一部のホワイトボックス技術、例えば上述のテーブルの符号化の組み合わせの使用は、攻撃者が環境に対する完全なコントロールを有する場合に、ホワイトボックス攻撃に抵抗するように設計されている。そのような技術は、本発明の目的に適するが、本発明に適する他のより容易なホワイトボックス技術も存在する。一例として、AESのホワイトボックス実装を作成する際には、各ルックアップテーブルの入力と出力を非線形符号化で符号化すれば十分である場合がある。XOR演算に先行するルックアップテーブルの出力(および、それに対応して、XOR演算の後のルックアップテーブルの入力)を線形符号化で符号化することにより、本発明の目的のために、XOR演算をルックアップテーブルによって実装する必要がなくなる。
添付の特許請求の範囲の独立請求項に、本発明のさらなる態様を定義する。同様に従属請求項は、有利な実施形態を定義する。
本発明の上記および他の態様について、図面を参照してさらに解説および説明する。
暗号システムの一実施形態の図である。 暗号システムの別の実施形態の図である。 暗号化部および解読部を備えるシステムの図である。 暗号プロセスを説明する図である。
現在、ホワイトボックス実装は、限られた数の暗号(例えばAES、DES、Lombok)についてのみ知られている。以下に、(暗号または他の関数の)知られているホワイトボックス実装の上に、任意の暗号(より一般的には関数)のホワイトボックス実装を構築する一般的な手法の説明を提供する。このホワイトボックス実装は、多くの追加的な処理時間がかからないような方式で構築することができる。
関数のホワイトボックス実装、暗号アルゴリズムの実装、およびその関数の結果と暗号アルゴリズムの結果に依存して暗号技術で処理されたデータを設定するための結合動作の実装を含む暗号システムを作成することができる。関数のホワイトボックス実装と結合動作のために、暗号システム全体がホワイトボックス実装になる。いくつかの結合動作が可能であるが、そのうちの一部を図1〜図4を使用してより詳細に説明する。図面に図示されない例として、合成を用いて関数と暗号アルゴリズムを組み合わせることが可能である。すなわち、初めに関数を適用し、次いで暗号アルゴリズムを適用する、または初めに暗号アルゴリズムを適用してから関数を適用する。
図1に、暗号システム100のブロック図を示す。この暗号システムは、暗号技術で処理されるデータを受け取る入力112を有する。例えば、処理されるデータは、暗号化すべき平文、または解読すべき暗号文である。あるいは、処理されるデータは、デジタル署名を生成すべきデータである。暗号システム100は、相補的な暗号システム(図示せず)と併せて使用することができる。システム100が暗号システムからなる場合は、相補暗号システムは解読部からなることができる。一方、システム100が、対応する解読システムからなる場合は、相補暗号システムは、対応する暗号化システムからなることができる。したがって、2つの暗号システムは、一方のシステムが他方のシステムで生成されたメッセージを処理することが可能である場合に、本テキストでは相補システムと呼ぶ。
暗号システム100は、暗号アルゴリズムの実装104をさらに備える。この実装は、ホワイトボックス実装である必要はないが、ホワイトボックス実装の技術から自ずと知られる技術を少なくとも一部分に使用して暗号アルゴリズムを実装することが可能である。暗号システム104は、解読部または暗号化部からなることができる。典型的には、システム100が解読に使用される場合は、暗号システム104は解読部からなる。それに代えて、システム100が暗号化に使用される場合は、暗号システム104は暗号化部からなる。暗号アルゴリズムの実装104はホワイトボックス実装である必要はないので、使用される暗号アルゴリズムの選択には高い自由度がある。詳細には、ホワイトボックス実装が知られていない暗号アルゴリズム、またはホワイトボックス実装がその他の点で使用するのが不便である可能性のある暗号アルゴリズムが適用できる。
また、暗号システム100は、値xを生成する手段110を備える。この値xは、例えば、入力112によって受け取られたデータに対応する暗号文から導出することが可能である。あるいは、手段110は、所定のインスタンスで増加されるカウンタを備えてもよい。手段110は、相補の暗号システムが再現することが可能な値xを生成するように構成されることが好ましい。これは、値xを相補システムと同期させることによって構成されることが可能であり、値の同期は、xの現在の値の表現を含むメッセージを交換することによって実現することができる。
値xは、関数のホワイトボックス実装102に提供されることが可能である。この関数は、その入力と出力を分析することによりあまり容易に理解できないことが好ましい。例えば、この関数は、AES等の暗号アルゴリズムからなる。あるいは、ハッシュ関数または乱数生成関数からなってもよい。そのようなホワイトボックス実装を作成する方法は、Chow等から自ずと知られる。
関数のホワイトボックス実装102および暗号アルゴリズムの実装104によって生成される出力は、結合動作の実装106によって組み合わせられる。結合動作の実装106によって生成される結果は、関数の実装102によって生成される結果と、暗号アルゴリズムの実装104で生成される結果に応じて決まる。図1に、関数の実装102と暗号アルゴリズムの実装104が並行して動作し、互いに独立した結果を生成する状況を示す。結合動作の実装106は、これらの結果を組み合わせて1つの結果にする。したがって、結合動作は、暗号アルゴリズムの結果を関数の結果と組み合わせることを含む。結合動作は、関数と暗号アルゴリズムの独立した結果が単一の結果から抽出できないようなものであることが好ましい。例えば、XOR演算を使用して結果を組み合わせる、または何らかのkについて何らかの値2kを法とする加算が使用される。
結合動作の実装106の結果は、出力114に提供される。出力114は、例えば、提供された結果より取得されたデータから出力データパケットを作成するパッケージャ(packager)からなることができる。出力114は、例えば放送網やインターネットなどのネットワークを介して、受信者にデータを送信する送信機からなることができる。あるいは、出力114は、実装106から得られた結果を、データのプレゼンテーションを作成するディスプレイまたは増幅器に提供するように構成されてもよい。
図2に、ここに記載される暗号システムの別の実施形態である暗号システム200を示す。暗号システム200では、結合動作は、関数の結果を受信データ要素と組み合わせて結合の結果を得、その統合の結果に暗号アルゴリズムを適用することを含む。
システム100と同様に、システム200は、入力212、値xを生成する手段210、関数のホワイトボックス実装202、暗号アルゴリズムの実装204、結合動作の実装206、および出力214を備える。ただし、システム200では、実行の順序がシステム100と異なる。システム200は、F(C(y,G(x)))を効率的に計算し、Gは関数を表し、Fは暗号アルゴリズム、Cは結合動作、およびyは、入力212で得られる値を表す。結合動作の実装206は、入力212で得られたデータと、関数のホワイトボックス実装202で生成された結果とを組み合わせることにより、結合の結果を生成し、暗号アルゴリズムの実装204にその結果を処理させる。処理の結果は、出力214に提供される。
一実施形態では、関数の結果の特定の値を与えられると、結合動作は、暗号アルゴリズムの結果と結合動作の結果との間に1対1の対応を定義する。これは、解読部でデータを一意に解読することを可能にするので、例えばシステム100または200がデータの暗号化に使用される場合に有用である。
一実施形態では、出力214は、結合動作の結果の表現を含む信号を生成する信号生成器からなる。この信号は、例えば、記憶手段に記憶される、または受信機に送信されることが可能である。信号生成器は、第1の関数への入力の表現を信号に含めるように構成されることが可能である。これは、受信者がこの値を別の方式で得ることができる場合には省略されてよい。結合動作の実装は、関数の単一の結果を暗号アルゴリズムの複数の結果と組み合わせるように構成できる。そのように構成すると、関数の同一の結果を複数回再使用することで効率が向上する。したがって、関数への対応する入力は、信号中に一度のみ含めればよい。
ホワイトボックス実装は、ルックアップテーブルおよびXOR演算を備えることができる。Chow等によると、明示的なXOR演算が、入力と出力の符号化を使用して難読化されたルックアップテーブルに置き換えられる。効率を向上させるために、それらのルックアップテーブルは、明示的なXOR演算に置き換えられてよい。そのようにしても、なお攻撃者がホワイトボックス実装の一部から基礎となる鍵を導出することを阻止するので、アプリケーションによっては十分なホワイトボックスセキュリティが得られることが分かっている。
ホワイトボックス実装をハードウェア装置または特定のユーザにバインドするには、ホワイトボックス実装は、装置および/またはユーザを識別して識別データを得る手段と、識別データに依存して関数の出力を設定する手段とを備えることができる。例えば、ルックアップテーブルの1つまたは複数が、識別データを含むように選択される。その他のルックアップテーブルは、ホワイトボックス実装の最終結果全体が識別データの包含によって変化しないように適合できる。この特徴により、暗号システムの不正使用を阻止することができる。この技術の例は、特許文献2に開示されている。
図3に暗号化部301および解読部350の一実施形態を示す。暗号化部301は、暗号システム100に基づき、解読部は暗号システム200に基づく。ただし、これは限定ではない。例えば、暗号化部を暗号システム200に基づかせ、解読部を暗号システム100に基づかせることも可能である。例えば、暗号化部301は、コンテンツサーバに含め、音声または映像コンテンツの暗号化に使用され、解読部350は消費者家電装置に含めて、暗号化コンテンツを解読し、コンテンツの再生を許可することができる。暗号化部301と解読部350の間の通信は、インターネット、ケーブルテレビ網等のデジタル放送媒体、またはDVDやBlu-ray(登録商標)ディスク等の取り外し可能な記憶媒体を介して行うことができる。図1および図2と同様の要素を識別するために同様の参照符号が記載されている。暗号化部301は以下を備える。
-第1の暗号アルゴリズム(例えばRSAのような公開鍵暗号化アルゴリズム等の暗号化アルゴリズム)を利用して暗号化するデータを取得する入力112。
-入力112で取得されたデータを暗号化するように構成された第1の暗号アルゴリズムの実装104。
-値xを生成する手段110。この手段にはカウンタまたは乱数生成器が使用されてもよい。外部の供給源から値xを取得する、または暗号アルゴリズムの実装104の出力から生成することも可能である。
-値xに適用される第1の関数の実装102。
-第1の関数の結果および第1の暗号アルゴリズムの結果に依存して暗号化データを設定する第1の結合動作の実装106。
-第1の結合動作の結果を表す情報を解読部350に提供する出力114。出力は、第1の関数への入力を表す情報を解読部350に提供することもできる。
解読部350は、以下を備える。
-第1の関数への入力を表す情報を取得する入力210。この情報は、暗号化部301の出力114から受け取られる。解読部350内で値xを再現することも可能である。その場合、入力210は、値xを生成する手段110のコピーに置き換えられてよい。
-暗号化部301の出力114から第1の結合動作の結果を表す情報を取得する入力212。
-第1の関数への入力を表す情報に少なくとも部分的に基づく値に第2の関数を適用するように構成された第2の関数の実装202。第2の関数は、第1の関数と同じであってよい。ただし、値xが符号化された形態で解読部350に送信される場合は、その符号化が第2の関数によって取り消される。
-第2の関数の結果および第2の暗号アルゴリズムの結果に依存して、解読されたデータを設定する第2の結合動作の実装206。第2の結合動作の実装206は、まず第1の結合動作106の効果を取り消す。例えば、第1の結合動作が、実装102の出力と実装104の出力の乗算を伴う場合、第2の結合動作は、入力212で得られる値と第2の関数の実装の出力の逆数との乗算を含んで、中間の結合値を得ることができる。その後、第2の結合動作の実装206は、第2の暗号関数の実装204に、その第2の暗号関数を中間の結合値に適用させ、それにより、解読されたデータを生成する。そのために、実装206は、第2の暗号アルゴリズムの実装204を呼び出す制御手段(図示せず)を含むことができる。
-第1の結合動作の結果を表す情報の少なくとも一部から導出されたデータに暗号アルゴリズムを適用するように構成された第2の暗号アルゴリズムの実装204。第2の暗号アルゴリズムは、例えば、第1の暗号アルゴリズムに使用される暗号アルゴリズムに対応する解読アルゴリズムである。
第1の関数の実装102もしくは第2の関数の実装202、またはその両方は、それぞれ暗号化部301もしくは解読部350、またはその両方を不正な改竄から保護するためのホワイトボックス実装である。
図4に、暗号処理の方法を示し、この方法は、関数のホワイトボックス実装を利用して第1の値に関数を適用する(402)ステップと、第2の値に暗号アルゴリズムを適用する(404)ステップと、関数の結果および暗号アルゴリズムの結果に依存して、暗号処理されたデータを設定する結合動作を適用する(406)ステップを含む。図4に示す処理ステップの順序は一例に過ぎず、限定ではない。
暗号アルゴリズムを関数Fで表す。以下に、関数Fのホワイトボックス実装を説明する。例えば、RSAの暗号化アルゴリズムのホワイトボックス実装を導出することが目標である場合は、F(m)が、メッセージmに関連付けられた暗号文を表し、ハッシュ関数MD4のホワイトボックス実装を導出することが目標である場合は、F(m)は、メッセージmに関連付けられたハッシュ値を表す。
ホワイトボックス実装が利用できる任意の関数をGとする。関数Gは全単射である必要はない。関数Gは、例えば、ハッシュ関数または乱数生成関数である。FおよびGの領域をそれぞれdom(F)およびdom(G)で表し、FおよびGの範囲をそれぞれim(F)およびim(G)と表す。
さらに、im(F)内の値のビット長をnとし、dom(G)内の値のビット長をmとする。
関数Cが、C: im(G)×im(F) → im(F)と定義される。この関数は、2番目の引数が全単射
であることが好ましい。Cは効率的に計算できることが好ましい。例えば、C(x,y)=x・yまたはC(x,y)=x+yである。
次に関数Hが導入される。H: dom(G)×dom(F) → dom(G)×im(F)。関数Hは、H(x,y)=(x,
C(G(x),F(y)))によって定義される。
関数Hは、暗号アルゴリズムを定義する。HがFおよびGから構成される方式を考慮して、Hの実装は、HがFの暗号特性とGのホワイトボックス特性を「継承」するように構築することが可能である。その結果、Fの暗号強度は、Gのホワイトボックス実装の改竄防止特性と組み合わせられる。したがって、Hは、そのブラックボックスセキュリティに関して、少なくともFと同等にセキュアにすることができる。また、そのホワイトボックスセキュリティに関して、Hは、FおよびCがホワイトボックスではない実装形態で実装された場合でも、Gを少なくとも部分的にホワイトボックス実装の形で実装することにより、ホワイトボックスのセキュリティを持たせることができる。
Fが、nFの出力ブロックサイズを有するブロック暗号の暗号化または解読のアルゴリズムを表し、Gが、サイズnGの入力データを有する関数を表す場合、Gの入力データとGの出力の両方がHに含められるので、送信されるデータはnF+nGのサイズになりうる。一定の値aによってxが与えられるか、またはxがその他の形で解読部において既知であるとする。
すると、Hの出力を導出するためにホワイトボックス実装を実行する必要がなくなる。そして、CおよびFの実装を実行すれば十分であり、Gのホワイトボックス実装と比べると計算的に効率的である可能性がある。さらに、そのような場合には、値xは、暗号文から省略されてもよく、それにより暗号文のサイズが小さくなる。これにより、以下の手法が可能になる。
データブロックごとではなく、時折xを変えることも可能である。そのようにすると、ホワイトボックスのセキュリティと性能のバランスを取ることができる。Hが暗号化アルゴリズムを指定する場合、xが変更された場合には、暗号文はH(x,y)=(x,C(G(x),F(y)))によって与えられ、xが変更されていない場合は単にHx(y)=C(G(x),F(y))によって与えられることに留意されたい。Hが解読アルゴリズムを指定する場合は、暗号文は、xが変更された場合は(x,y)によって与えられ、xが変更されていない場合はyのみによって与えられうる。xの値の所定の連続を使用する、またはxを暗号文に依存させることも想定される。それによっても、暗号部から解読部に送信されるデータの量が減る。
上記の手法および処理は、例えば何らかの関数DについてH(x,y)=(D(x),C(G(x),F(y)))を使用して適用することも可能であることが認識される。Dは、D(x)からG(x)を導出できるという特性とともに選択される。したがって、受信側は、E(D(x))=G(x)によって定義される関数Eを実装することが好ましい。
一実施形態では、AESのホワイトボックス実装に基づいてRSAのホワイトボックス実装が構築される。Chow等によって説明されるAESのホワイトボックス実装はこの目的に適しているが、別の種類のホワイトボックス実装も使用することができる。ここではRSAおよびAESは、例として使用される。暗号関数であるか否かに関係なく、他の関数がRSAおよびAESの代わりの代替として使用されてよい。
RSAの暗号化アルゴリズムを関数Fで表すとする。したがって、データブロックmについて、F(m)は、RSAに従ってデータブロックmに関連付けられた暗号文を表す。何らかの特定の鍵または鍵のセットが併せて使用されることが想定されるが、鍵の扱いの詳細は、このテキストでは詳細に説明しない。RSA等の暗号アルゴリズムにおける暗号鍵の使用法は、当技術分野で知られている。本実施形態では、mのブロックサイズは、128ビット未満である。ただし、これは限定ではない。128ビットはAESのブロックサイズに対応するが、これは、本実施形態ではAESも使用されることを考えると利便である。本実施形態では、関数Gは、AESの暗号化アルゴリズムを表し、Cは、GF(2128)における乗算を表し、すなわち、x,y∈GF(2128)の場合にC(x,y)=x・yである。カウンタTを使用して、xの値を提供する。以下の処理ステップを使用して、Hに従ってメッセージを暗号化する。
何らかの事前に指定された条件が満たされた場合にカウンタTを増加させる。例えば、カウンタは、K個のデータブロックごとに増加させることができる。
次に、値γ=C(G(x),F(y))=G(x)・F(y)が計算され、xはカウンタTの値によって与えられ、yは、暗号化されるデータブロックによって与えられる。
次に、暗号文ブロックが作成される。前回の暗号化以降カウンタが変化している場合、またはそれが最初の暗号化である場合、またはその他の理由で解読部がカウンタの値を知らない可能性がある場合は、H(x,y)=(x,γ)によって暗号文が与えられる。それ以外の場合は、γによって与えられる。
これらのステップは、暗号化される後続のデータブロックについて繰り返される。理解されるように、解読部に、暗号化部で使用されるG(x)の値と同一または機能的に同等のG(x)の値を使用させる機構が機能している限り、暗号文は通例、γの値を含み、x(または場合によってはD(x))の値の1つ、一部、またはすべてを含む場合も含まない場合もある。また、カウンタTの代わりに、値xは、乱数生成器の結果であっても、または、平文または暗号文から例えば何らかのハッシュ関数を用いて計算されてもよいことが理解されよう。
Gは、ホワイトボックス実装として実装されることが可能である。そのようにして、Hの実装は、Gをホワイトボックス実装として実装することによって、ホワイトボックス実装とすることができる。
上述の方式で暗号化されたデータを解読することが可能な解読処理は以下の通りである。
暗号文ブロックが値xを含んでいる場合は、G(x)が、暗号文ブロックの値xを使用して計算される。それ以外の場合は、以前に計算されたG(x)の値が使用される。
次にGF(2128)の(G(x))-1を求める。(G(x))-1は、(関数Gの逆数ではなく)GF(2128)のG(x)の逆数を表すことに留意されたい。
その後、F(y)=(G(x))-1・γを計算する。
次に、RSAの解読アルゴリズムを使用して、F(y)に基づいて平文ブロックyを計算する。RSAのこのような解読アルゴリズムは当技術分野で知られている。このステップでは、F(y)は、暗号文ブロックとみなされる。
この解読処理のホワイトボックス実装を作成するには、関数Gのホワイトボックス実装を提供すれば十分であることに留意されたい。それは、攻撃者が関数Gを破ることができなければ実装を破ることが難しいためである。
解読処理が、カウンタTの独自のコピーを保持し、カウンタTが増加される条件を知っている場合には、値xは、暗号文に加える必要はない。したがって、その場合は、ブロックサイズは増大しない。カウンタの代わりに、以前の暗号文ブロックから値xを導出することもできる。その場合も値xは暗号文に加える必要がない。
本明細書に記載される技術は、暗号鍵を使用するソフトウェア実装へのアクセス権を有する攻撃者から暗号鍵を隠蔽するために使用できる。
本発明は、本発明を実用化するために適合された、コンピュータプログラム、特にキャリア上またはキャリア内のコンピュータプログラムにも適用されることが理解されよう。プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形態等の中間ソースコードおよびオブジェクトコード、または本発明による方法の実装で使用するのに適した他の形態とすることができる。そのようなプログラムは種々のアーキテクチャ設計を有する可能性があることが理解されよう。例えば、本発明による方法またはシステムの機能を実施するプログラムコードは、1つまたは複数のサブルーチンに再分割されることが可能である。それらのサブルーチン間に機能を分散させる多くの異なる方式が当業者に明らかであろう。サブルーチンは、共に1つの実行ファイルに格納して、独立型のプログラムを形成することができる。そのような実行ファイルは、コンピュータ実行可能命令、例えばプロセッサ命令および/またはインタープリタ命令(例えばJava(登録商標)インタープリタ命令)を含むことができる。あるいは、サブルーチンの1つまたは複数またはすべてを少なくとも1つの外部のライブラリファイルに格納し、静的または動的(例えば実行時)にメインプログラムとリンクすることができる。メインプログラムは、サブルーチンの少なくとも1つへの少なくとも1回の呼び出しを含む。また、サブルーチンは、相互への関数呼び出しを含むことができる。コンピュータプログラム製品に関連する実施形態は、ここで述べる方法の少なくとも1つの方法の処理ステップ各々に対応するコンピュータ実行可能命令を含む。それらの命令は、サブルーチンに再分割する、かつ/または静的または動的にリンクできる1つまたは複数のファイルに格納されることが可能である。コンピュータプログラム製品に関連する別の実施形態は、ここで述べられるシステムおよび/または製品の少なくとも1つの手段各々に対応するコンピュータ実行可能命令を含む。それらの命令は、サブルーチンに再分割する、かつ/または静的または動的にリンクできる1つまたは複数のファイルに格納されることが可能である。
コンピュータプログラムのキャリアは、プログラムを搬送することが可能な任意のエンティティまたは装置である。例えば、キャリアは、例えばCD ROMや半導体ROMなどのROM、または例えばフロッピー(登録商標)ディスクやハードディスク等の磁気記録媒体等の記憶媒体を含むことができる。さらに、キャリアは、電気信号または光信号等の伝送可能キャリアであってもよく、電気信号または光信号は、電気ケーブルまたは光ケーブルを介して、または無線や他の手段を介して伝達されることが可能である。プログラムがそのような信号に実施される場合、キャリアは、そのようなケーブルまたは他の装置または手段によって構成されることが可能である。あるいは、キャリアは、プログラムが埋め込まれた集積回路であってもよく、集積回路は、この関連する方法を行うために、または行う際に使用するために適合される。
上記の実施形態は、本発明を限定するのではなく例示するものであり、当業者は、添付の特許請求の範囲から逸脱することなく多くの代替実施形態を設計することができることに留意されたい。クレームにおいて、括弧内に入れた参照符号は、クレームを限定するものとは解釈すべきでない。動詞「〜を備える」およびその活用形は、クレームに記載された以外の要素またはステップの存在を除外するものではない。要素の前の冠詞「a」または「an」は、その要素が複数存在することを除外するものではない。本発明は、数個の別個の要素からなるハードウェア、および適切にプログラムされたコンピュータを用いて実施することができる。数個の手段を列挙する装置クレームでは、それら数個の手段は、1つの同一のハードウェアによって実施することができる。相互に異なる従属クレームに特定の手段(measure)が記載されることだけでは、それら手段の組み合わせが有利に使用することができないことを意味しない。
100、200 暗号システム
102、202 関数のホワイトボックス実装
112、212 入力
104、204 暗号アルゴリズムの実装(暗号システム)
106、206 結合動作の実装
110、210 手段
114、214 出力
301 暗号化部
350 解読部

Claims (10)

  1. 入力データを暗号処理して、前記入力データに対応する暗号処理されたデータを生成するための暗号システム(100)であって、前記処理は暗号アルゴリズムに基づいており、
    データ値を取得するように構成される、第1手段と、
    前記第1手段からの前記データ値を関数によって処理し、前記関数の結果を生成するように構成される、関数のホワイトボックス実装(102)であって、識別データを取得するように、装置および/またはユーザを識別するデータにアクセスする手段と、前記識別データに依存して前記関数の結果を設定する手段とを備える関数のホワイトボックス実装(102)と、
    前記入力データを取得するように構成される、第2手段と、
    前記第2手段からの前記入力データを前記暗号アルゴリズムによって処理し、前記暗号アルゴリズムの結果を生成するように構成される、暗号アルゴリズムの実装(104)と、
    前記暗号アルゴリズムの結果と前記関数の結果を結合し、前記暗号処理されたデータを生成する、結合動作の実装(106)とを備える、暗号システム。
  2. 前記関数の前記結果の特定の値が与えられると、前記結合動作が、前記暗号アルゴリズムの前記結果と前記暗号処理されたデータとの間に1対1の対応を定義する請求項1に記載の暗号システム。
  3. 前記暗号処理されたデータの表現を含む信号を生成する信号生成器をさらに備える請求項1に記載の暗号システム。
  4. 前記信号生成器が、前記データ値の表現を前記信号中に含めるように構成される請求項3に記載の暗号システム。
  5. 前記暗号アルゴリズムが、暗号関数の複数の結果を生成するようにさらに構成され、
    前記結合動作の実装が、前記関数の結果を前記暗号アルゴリズムの複数の結果と結合するようにさらに構成される請求項4に記載の暗号システム。
  6. 前記信号生成器によって生成される前記信号が、前記データ値の表現と前記暗号アルゴリズムの複数の結果の表現を含む、請求項5に記載の暗号システム。
  7. 前記ホワイトボックス実装が、ルックアップテーブルおよびXOR演算を備える請求項1に記載の暗号システム。
  8. 暗号化部(301)と解読部(350)を備える暗号システム(300)であって、
    前記暗号化部は、
    データ値を取得するように構成される、第1手段と、
    前記第1手段からの前記データ値を第1関数によって処理し、前記第1関数の結果を生成するように構成される、第1関数の実装(102)と、
    入力データを取得するように構成される、第2手段と、
    前記第2手段からの前記入力データを第1暗号アルゴリズムによって処理し、前記第1暗号アルゴリズムの結果を生成するように構成される、第1暗号アルゴリズムの実装(104)と、
    前記第1暗号アルゴリズムの結果と前記第1関数の結果を結合し、前記入力データに対応する暗号処理されたデータを生成する、第1結合動作の実装(106)と、
    前記暗号処理されたデータを表す情報を解読部に提供する出力(114)とを備え、
    前記解読部は、
    前記暗号処理されたデータを表す前記情報を取得する入力(212)と、
    前記データ値に対応する値を第2関数によって処理し、前記第2関数の結果を生成するように構成される、第2関数の実装(202)と、
    第2結合動作の実装であって、前記第2結合動作の出力が、前記第2関数の結果に依存し、かつ前記暗号処理されたデータを表す前記情報に依存して設定される、第2結合動作の実装(206)と、
    前記第2結合動作の出力を第2暗号アルゴリズムによって処理し、前記入力データに対応する解読されたデータを設定するように構成される、第2暗号アルゴリズムの実装(204)とを備え、
    (a)前記第1関数の実装が、前記第1関数のホワイトボックス実装であり、前記第1関数のホワイトボックス実装が、識別データを取得するように、装置および/またはユーザを識別するデータにアクセスする手段と、前記識別データに依存して前記第1関数の結果を設定する手段とを備える、および/または
    (b)前記第2関数の実装が、前記第2関数のホワイトボックス実装であ前記第2関数のホワイトボックス実装が、識別データを取得するように、装置および/またはユーザを識別するデータにアクセスする手段と、前記識別データに依存して前記第2関数の結果を設定する手段とを備える、暗号システム。
  9. 入力データを暗号処理し、前記入力データに対応する暗号処理されたデータを生成する方法であって、前記処理は暗号アルゴリズムに基づいており、
    第1手段を用いて、データ値を取得するステップと、
    関数のホワイトボックス実装を用いて、前記データ値を処理し、前記関数の結果を生成するステップ(402)であって、関数のホワイトボックス実装が、識別データを取得するように、装置および/またはユーザを識別するデータにアクセスする手段と、前記識別データに依存して前記関数の結果を設定する手段とを備える、ステップと、
    第2手段を用いて、前記入力データを取得するステップと、
    前記暗号アルゴリズムの実装を用いて、前記入力データを前記暗号アルゴリズムによって処理し、前記暗号アルゴリズムの結果を生成するステップ(404)と、
    結合動作の実装を用いて、前記暗号アルゴリズムの結果を前記関数の結果と結合し、前記暗号処理されたデータを生成するステップ(406)を含む、方法。
  10. 請求項による前記方法をプロセッサに実行させる命令を備えるコンピュータプログラム。
JP2014137592A 2008-03-05 2014-07-03 暗号システム Expired - Fee Related JP6017501B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP08152276.5 2008-03-05
EP08152276 2008-03-05
EP08159061 2008-06-26
EP08159061.4 2008-06-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010549219A Division JP2011514091A (ja) 2008-03-05 2009-03-02 暗号システム

Publications (2)

Publication Number Publication Date
JP2014180061A JP2014180061A (ja) 2014-09-25
JP6017501B2 true JP6017501B2 (ja) 2016-11-02

Family

ID=40651466

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010549219A Pending JP2011514091A (ja) 2008-03-05 2009-03-02 暗号システム
JP2014137592A Expired - Fee Related JP6017501B2 (ja) 2008-03-05 2014-07-03 暗号システム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010549219A Pending JP2011514091A (ja) 2008-03-05 2009-03-02 暗号システム

Country Status (7)

Country Link
US (1) US9710623B2 (ja)
EP (1) EP2255317B1 (ja)
JP (2) JP2011514091A (ja)
KR (1) KR101639587B1 (ja)
CN (1) CN102016871B (ja)
CA (1) CA2717625C (ja)
WO (1) WO2009109884A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120072011A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 무결성 검증이 가능한 데이터 암호장치, 복호장치 및 방법
KR101906225B1 (ko) 2011-11-30 2018-12-10 삼성전자 주식회사 복호장치와, 복호장치의 암호문 복호화 방법
RU2620712C2 (ru) 2012-01-09 2017-05-29 Конинклейке Филипс Н.В. Устройство виртуальной машины, имеющее управляемую ключом обфускацию, и способ
FR2992083B1 (fr) * 2012-06-19 2014-07-04 Alstom Transport Sa Calculateur, ensemble de communication comportant un tel calculateur, systeme de gestion ferroviaire comportant un tel ensemble, et procede de fiabilisation de donnees dans un calculateur
RU2676454C2 (ru) * 2012-12-21 2018-12-28 Конинклейке Филипс Н.В. Вычислительное устройство, содержащее сеть таблиц
US9009495B2 (en) * 2013-06-28 2015-04-14 Envieta, LLC High speed cryptographic combining system, and method for programmable logic devices
US9363075B2 (en) 2013-10-18 2016-06-07 International Business Machines Corporation Polymorphic encryption key matrices
CN106464484B (zh) * 2014-03-31 2019-08-09 爱迪德技术有限公司 预定函数的混淆执行
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
US9485226B2 (en) * 2014-04-28 2016-11-01 Nxp B.V. Method for including an implicit integrity or authenticity check into a white-box implementation
US10412054B2 (en) 2014-06-24 2019-09-10 Nxp B.V. Method for introducing dependence of white-box implementation on a set of strings
KR102311340B1 (ko) * 2015-01-15 2021-10-15 한국전자통신연구원 암호화 장치 및 방법
US9665699B2 (en) * 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
IN2015DE01753A (ja) * 2015-06-11 2015-08-28 Pradeep Varma
CN105426702A (zh) * 2015-10-26 2016-03-23 李晖 基于安卓操作系统的应用程序加密解密方法和装置
US10171234B2 (en) * 2015-12-16 2019-01-01 Nxp B.V. Wide encoding of intermediate values within a white-box implementation
GB201522315D0 (en) * 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
WO2017203992A1 (ja) * 2016-05-23 2017-11-30 ソニー株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
KR101933649B1 (ko) * 2016-05-27 2018-12-28 삼성에스디에스 주식회사 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
WO2020220034A1 (en) 2019-04-26 2020-10-29 Csub Auxiliary For Sponsored Programs Administration Reconfigurable security hardware and methods for internet of things (iot) systems
JP7383985B2 (ja) 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
KR102301243B1 (ko) * 2020-06-15 2021-09-13 주식회사 스틸리언 화이트박스 암호를 이용한 데이터 암호화/복호화 방법 및 장치

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10161535A (ja) * 1996-12-05 1998-06-19 Yamaha Corp 暗号通信装置
EP1038370B1 (en) 1998-06-25 2006-09-06 Koninklijke Philips Electronics N.V. Synchronous stream cipher
US6351539B1 (en) * 1998-09-18 2002-02-26 Integrated Device Technology, Inc. Cipher mixer with random number generator
WO2001031422A2 (en) 1999-10-25 2001-05-03 Cyphermanx Consultants Limited Method for protection against analysis of unintended side-channel signals
EP1440535B1 (en) * 2001-10-03 2011-01-05 Nxp B.V. Memory encrytion system and method
JP3650611B2 (ja) * 2002-06-13 2005-05-25 一浩 宮本 暗号化及び復号化するためのプログラム
US20040083373A1 (en) 2002-10-28 2004-04-29 Perkins Gregory M. Automatically generated cryptographic functions for renewable tamper resistant security systems
GB0229894D0 (en) * 2002-12-21 2003-01-29 Ibm Methods, apparatus and computer programs for generating and/or using conditional electronic signatures and/or for reporting status changes
BRPI0513794A (pt) * 2004-07-29 2008-05-13 Vadium Technology Inc técnicas para reforçar criptografia de enchimento de vez única
EP1646174A1 (en) * 2004-10-07 2006-04-12 Axalto SA Method and apparatus for generating cryptographic sets of instructions automatically and code generation
US8213768B2 (en) * 2005-03-08 2012-07-03 Panasonic Corporation Packet transmitting apparatus
US7769165B2 (en) 2005-10-14 2010-08-03 Microsoft Corporation Semi-public white-box cipher
EP1997265B1 (en) * 2006-03-10 2020-08-05 Irdeto B.V. Integrity of a data processing system using white-box for digital content protection
WO2008010119A2 (en) * 2006-07-12 2008-01-24 Koninklijke Philips Electronics N.V. Tamper resistance of a digital data processing unit
CN101491000B (zh) 2006-07-12 2011-12-28 耶德托公司 用于混淆密码函数的方法和系统
WO2008018303A1 (fr) * 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme
US20100080395A1 (en) 2006-11-17 2010-04-01 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
WO2008084433A2 (en) * 2007-01-11 2008-07-17 Koninklijke Philips Electronics N.V. Tracing copies of an implementation
US8160247B2 (en) * 2007-09-27 2012-04-17 Adobe Systems Incorporated Providing local storage service to applications that run in an application execution environment
JP2011520150A (ja) 2008-05-07 2011-07-14 イルデト・コーポレート・ビー・ヴイ 指数難読化
US8966285B2 (en) * 2011-01-10 2015-02-24 Apple Inc. Securing implementation of a cryptographic process having fixed or dynamic keys

Also Published As

Publication number Publication date
KR20100138986A (ko) 2010-12-31
EP2255317B1 (en) 2013-05-15
JP2014180061A (ja) 2014-09-25
JP2011514091A (ja) 2011-04-28
CN102016871A (zh) 2011-04-13
WO2009109884A1 (en) 2009-09-11
CA2717625C (en) 2018-09-25
CN102016871B (zh) 2017-11-07
US20110116625A1 (en) 2011-05-19
EP2255317A1 (en) 2010-12-01
KR101639587B1 (ko) 2016-07-14
US9710623B2 (en) 2017-07-18
CA2717625A1 (en) 2009-09-11

Similar Documents

Publication Publication Date Title
JP6017501B2 (ja) 暗号システム
JP5646612B2 (ja) 中間データ変更を使用する構成可能な鍵を用いるホワイトボックス暗号システム
KR101715027B1 (ko) 입력 의존형 인코딩들을 이용한 화이트-박스 암호화 시스템
JP5346024B2 (ja) コンテンツの暗号処理
CN101536398B (zh) 用于白盒实现的加密方法
JP5355554B2 (ja) 暗号用鍵データの更新
JP5599728B2 (ja) ホワイトボックス実装
WO2008084433A2 (en) Tracing copies of an implementation
RU2666281C2 (ru) Электронное устройство блочного шифрования, подходящее для обфускации
US8600047B2 (en) Exponent obfuscation
KR20170097509A (ko) 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
JP5496880B2 (ja) データセキュリティ
KR101790948B1 (ko) Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
KR101530107B1 (ko) 보네-프랜크린 방식을 이용한 개인키 생성 방법
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP2008141368A (ja) 暗号化装置、データ配信装置及びデータ蓄積装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140801

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20141217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150717

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160318

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160719

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160803

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160928

R150 Certificate of patent or registration of utility model

Ref document number: 6017501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees