JP2013175179A - 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法 - Google Patents
少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法 Download PDFInfo
- Publication number
- JP2013175179A JP2013175179A JP2013026948A JP2013026948A JP2013175179A JP 2013175179 A JP2013175179 A JP 2013175179A JP 2013026948 A JP2013026948 A JP 2013026948A JP 2013026948 A JP2013026948 A JP 2013026948A JP 2013175179 A JP2013175179 A JP 2013175179A
- Authority
- JP
- Japan
- Prior art keywords
- encrypted
- instruction
- key
- software application
- session key
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 18
- 230000007246 mechanism Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008275 binding mechanism Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
【課題】信頼されていないプラットフォーム上においても、アプリケーションが不正に実行されることがないようにする。
【解決手段】ホスト110は、予め暗号化された命令Jを読み取り(S10)、キーk1を使用し、J及びランダムk2を暗号化してLを取得し(S11)、これを回路120に転送する(S12)。回路120は、k1を使用し、Lを復号してJおよびk2を取得し(S13)、Jを復号してIを取得する(S14)。そしてM=k2でIを暗号化し、これをホスト110に転送する(S16)。ホスト110はk2を使用し、Mを復号し、Iを取得し(S17)、Iを実行する(S18)。
【選択図】図1
【解決手段】ホスト110は、予め暗号化された命令Jを読み取り(S10)、キーk1を使用し、J及びランダムk2を暗号化してLを取得し(S11)、これを回路120に転送する(S12)。回路120は、k1を使用し、Lを復号してJおよびk2を取得し(S13)、Jを復号してIを取得する(S14)。そしてM=k2でIを暗号化し、これをホスト110に転送する(S16)。ホスト110はk2を使用し、Mを復号し、Iを取得し(S17)、Iを実行する(S18)。
【選択図】図1
Description
本発明は、概して暗号化に関し、特に、協調処理のための安全なプロトコルに関する。
本セクションは、以下に記載されるおよび/または請求される本発明の様々な態様に関連し得る当技術分野の様々な態様を読者に紹介するものである。本論は、本発明の様々な態様のより深い理解を促進するための背景情報を読者に提供するために役立つと考えられる。したがって、これらの記述は、この観点から読まれ、先行技術の承認として読まれるものではないことを理解されたい。
知られているセキュリティの問題は、ソフトウェアアプリケーションが、そのソフトウェアアプリケーションを記憶するオリジナルのサポートの保有なしには適切に実行できないことをいかにして確保するかである。
通常の先行技術の保護は、その配布に使用されるサポートにソフトウェアアプリケーションを結び付けることからなる。結び付けのメカニズムは、一般に、そのサポート(サポートID、サポートキーなど)に特有の何らかの情報に基づく。しかし、これは、特にそのアプリケーションが信頼されていないプラットフォーム上で実行されることを意図するときは十分でない。
したがって、何らかの共有データの協調処理中に第2のデバイスの存在を第1のデバイスがチェックできるようにするプロトコル、すなわち、たとえばアプリケーションを走らせるコンピュータが、そのアプリケーションの適切な実行に必要とされる一種のドングルの存在下にあることを確保するプロトコル、が必要であることが理解されよう。
国際公開第2009/095493号パンフレットは、小さなデバイスの存在をチェックするための以下のプロトコルを説明する:
1.ソフトウェア製造会社は、アルゴリズム、および、そのソフトウェア製造会社のみに知られているキー、すなわちJ=Epre{kpre}(I)、を使用し、ソフトウェアアプリケーションの少なくともいくつかの命令を事前に暗号化する。次いで、その暗号化されたソフトウェアアプリケーションが、その配布サポートにコピーされる。
1.ソフトウェア製造会社は、アルゴリズム、および、そのソフトウェア製造会社のみに知られているキー、すなわちJ=Epre{kpre}(I)、を使用し、ソフトウェアアプリケーションの少なくともいくつかの命令を事前に暗号化する。次いで、その暗号化されたソフトウェアアプリケーションが、その配布サポートにコピーされる。
2.対応する復号モジュールEpre −1およびキーkpreは、その配布サポートに結合された回路に知られているが、そのソフトウェアアプリケーションには知られていない。したがって、命令J=Epre{kpre}(I)は、ホスト上で実行されるアプリケーションによって復号することはできず、そのままで実行されると、誤った不適切な動作をもたらす。これは、たとえば、コピーの場合である。
3.アプリケーションは、そのサポートにデータを送信し、それが保護された命令Jを実行する必要があるときには都度その回路を使用する。
このプロトコルは、興味深いが、辞書攻撃に依然として弱い。攻撃者が、ホストと配布サポートの間の通信バスをスパイすることができる場合、これは特に言えることである。
可能な代替は、標準公開キー暗号化メカニズムの使用である。たとえば、安全な認証されたチャネルが、ゲーム機と回路の間に構成可能であり、通信スパイを防ぐことになる。しかし、それは、公開キー暗号化アルゴリズムを安全且つ効率的に実装することを必要とするので、回路のコストを劇的に増やすことになる。具体的には、公開キー暗号化の使用は、ハードウェアのみを使用する実装を妨げる。
記載された2つの間にある解決法は、国際公開第2005/064433号パンフレットにあり、そこでは、コンピュータは、ドングルの公開キーを使用して暗号化された静的データを検索し、その公開キーを使用して暗号化された乱数値を生成し、その暗号化された静的データおよび乱数値をドングルに送信する。ドングルは、そのプライベートキーを使用してこれらの項目を復号し、暗号化キーとしてその乱数値を使用して静的データを暗号化し、その再暗号化された静的データを、その静的データを復号および使用するコンピュータに返す。本解決法は、上手く機能するが、非対称暗号化を使用するだけではなく、各ドングル専用に静的データの暗号化も行うので、それは非常にリソースを消費することが理解されよう。
したがって、先行技術の欠点を克服することができる解決法が必要とされ得る。本発明は、そのような解決法を提供する。
第1の態様において、本発明は、暗号化されていない命令の暗号化である少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与する第1の方法を対象とする。第1のデバイスは、第1の暗号化された命令を取得し、セッションキーを生成し、対称暗号化アルゴリズムおよび第1のキーを使用してそのセッションキーを暗号化し、第1の暗号化された命令およびその暗号化されたセッションキーを第2のデバイスに転送し、セッションキーを使用する暗号化されていない命令の暗号化である第2の暗号化された命令を第2のデバイスから受信し、その対称暗号化アルゴリズムおよびセッションキーを使用して第2の暗号化された命令を復号して、暗号化されていない命令を取得し、その暗号化されていない命令を実行する。
第1の好ましい実施形態では、第1のデバイスは、第2のデバイスへの転送の前に、第1の暗号化された命令をスーパー暗号化する。
第2の態様において、本発明は、少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与する第2の方法を対象とする。第2のデバイスは、第1の暗号化された命令と、対称暗号化アルゴリズムおよび第1のキーを使用して暗号化されている暗号化されたセッションキーとを第1のデバイスから受信し、第1のキーを使用してその暗号化されたセッションキーを復号し、その対称暗号化アルゴリズムおよび第3のキーを使用して第1の暗号化された命令を復号して命令を取得し、その対称暗号化アルゴリズムおよびそのセッションキーを使用してその命令を暗号化して第2の暗号化された命令を取得し、第2の暗号化された命令を第1のデバイスに転送する。
第1の好ましい実施形態では、第1の暗号化された命令は、スーパー暗号化されて受信され、そして、第2のデバイスは、その暗号化された第1の暗号化された命令のスーパー暗号化をさらに復号する。
第3の態様において、本発明は、暗号化されていない命令の暗号化である少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与するように構成された第1のデバイスを対象とする。第1のデバイスは、第1の暗号化された命令を取得するための手段と、セッションキーを生成するための手段と、対称暗号化アルゴリズムおよび第1のキーを使用してセッションキーを暗号化するための手段と、第1の暗号化された命令およびその暗号化されたセッションキーを第2のデバイスに転送するための手段と、セッションキーを使用する暗号化されていない命令の暗号化である第2の暗号化された命令を第2のデバイスから受信するための手段と、その対称暗号化アルゴリズムおよびそのセッションキーを使用して第2の暗号化された命令を復号して命令を取得するための手段と、その命令を実行するための手段とを備える。
第1の好ましい実施形態では、第1のデバイスは、第2のデバイスへの転送の前に第1の暗号化された命令をスーパー暗号化するための手段をさらに備える。
第4の態様において、本発明は、少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与するように構成された第2のデバイスを対象とする。本第2のデバイスは、セッションキーが対称暗号化アルゴリズムおよび第1のキーを使用して暗号化され、第1の暗号化された命令およびその暗号化されたセッションキーを第1のデバイスから受信するための手段と、第1のキーを使用し、暗号化されたセッションキーを復号するための手段と、対称暗号化アルゴリズムおよび第3のキーを使用し、第1の暗号化された命令を復号して、命令を取得するための手段と、その対称暗号化アルゴリズムおよびそのセッションキーを使用し、その命令を暗号化して、第2の暗号化された命令を取得するための手段と、その第2の暗号化された命令を第1のデバイスに転送するための手段とを備える。
第1の好ましい実施形態では、第2のデバイスは、スーパー暗号化された第1の暗号化された命令を受信するための手段と、その暗号化された第1の暗号化された命令のスーパー暗号化を復号して第1の暗号化された命令を取得するための手段とをさらに備える。
本発明の好ましい特徴は、添付の図面を参照し、非限定的な例を用いて説明される。
本発明によるソフトウェアアプリケーションを実行するための包括的方法を示す図である。
本発明の好ましい実施形態にしたがってソフトウェアアプリケーションを実行するための方法を示す図である。
本発明の好ましい実施形態によるソフトウェアアプリケーションの協調実行のためのシステムを示す図である。
本発明の好ましい実施形態によるプロセッサのブロック図である。
本発明の好ましい実施形態によるブロック暗号回路のブロック図である。
本発明の主要な考え方は、事前暗号化メカニズムに適合するライブ保護メカニズムを使用することである。
言い換えれば、保護メカニズムが、データ転送中にバスを保護するために使用される。ホストによって実行されるこのデータバス保護メカニズムは、非保護動作(やはりホストによって部分的に実行される)が、配布サポートに好ましくは結合された、回路の存在下でのみ機能するという方法で設計される。そのために、保護メカニズムの一部がホストと回路によって実装されたハードウェアモジュールとの間で共用される、すなわち、その回路はソフトウェアアプリケーションに知られていない復号方法を備える。提案される保護は、性能およびハードウェア/ソフトウェア実装に関して、実際に効率的である。
ホストCPUによって実行されることを意図されたソフトウェアアプリケーションは、第1のバス暗号化モジュールE1および(好ましくは対称)キーk1と、第2のバス復号モジュールD2とを備える。本ソフトウェアアプリケーションはまた、それが実行され得る前に復号される必要がある少なくとも1つの暗号化された命令J(事前暗号化されたものも)を備える。ソフトウェアアプリケーションを記憶する配布サポートは、第1のバス復号モジュールD1、および、第1のバス暗号化モジュールのキー(すなわち、対称暗号化の場合には同一であり、非対称暗号化の場合にはキーのペアの「他方の」キー)に対応するキーk1と、第2のバス暗号化モジュールE2とを有する回路を備える。本回路は、第3の復号モジュールDpreおよび固定の第3のキーkpreを備え、これらは、事前暗号化の復号を可能にする。少なくとも1つの暗号化された命令Jは、第3のキーkpreに対応する暗号化キーを使用してソフトウェアプロバイダによってそのソフトウェアアプリケーションの配布の前に暗号化されており、そのソフトウェアプロバイダは暗号化および復号の両方の能力を有し、一方、その回路は復号する能力のみをもつことが望ましいことが理解されよう。
キーk1は、好ましくは、その回路およびホストによって予め定められ、共用される。それは、好ましくは、ホストCPUによって実行されることになるソフトウェアアプリケーション内で不明瞭化される。そのホストおよび回路は暗号化アルゴリズム−すなわち暗号化または復号−を1つの「方向」でのみ実行することができ、その「方向」はホストおよび回路によって異なることもまた好ましい。
図1は、本発明によるソフトウェアアプリケーションを実行するための包括的方法を示す。ソフトウェアアプリケーションが暗号化された命令Jを実行しようとするとき、ホストCPU110(そのソフトウェアアプリケーションを実行する)は:
a.暗号化された命令Jを読み取るS10、
b.第1のバス暗号化モジュールE1およびそのキーk1を使用してランダムk2およびその暗号化された命令Jの組合せを暗号化して、第1の転送値L、すなわちL=E1{k1}(J||k2)、を取得するS11、
c.第1の転送値Lを回路120に送信するS12、
第1の転送値Lを受信したときに、回路120は:
d.第1のバス復号モジュールD1およびそのキーk1を使用し、Lを復号して、ランダムk2およびその暗号化された命令Jを取得するS13、
e.第3の復号モジュールDpreおよび第3のキーkpreを使用し、Jを復号して、命令Iを取得するS14、
f.第2のバス暗号化モジュールE2およびそのランダムk2(キーとして機能する)を使用し、命令Iを暗号化して、第2の転送値M、すなわちM=E2{k2}(I)、を取得するS15、そして、
g.第2の転送値Mをホスト110に送信するS16。
a.暗号化された命令Jを読み取るS10、
b.第1のバス暗号化モジュールE1およびそのキーk1を使用してランダムk2およびその暗号化された命令Jの組合せを暗号化して、第1の転送値L、すなわちL=E1{k1}(J||k2)、を取得するS11、
c.第1の転送値Lを回路120に送信するS12、
第1の転送値Lを受信したときに、回路120は:
d.第1のバス復号モジュールD1およびそのキーk1を使用し、Lを復号して、ランダムk2およびその暗号化された命令Jを取得するS13、
e.第3の復号モジュールDpreおよび第3のキーkpreを使用し、Jを復号して、命令Iを取得するS14、
f.第2のバス暗号化モジュールE2およびそのランダムk2(キーとして機能する)を使用し、命令Iを暗号化して、第2の転送値M、すなわちM=E2{k2}(I)、を取得するS15、そして、
g.第2の転送値Mをホスト110に送信するS16。
最後に、ソフトウェアアプリケーションは、k2を知っており、バス復号モジュールD2をさらに備えるので、それは、I=D2{k2}(M)を計算することによって、プレーンテキストで命令Iを取得することS17ができ、その後にホストは命令Iを実行するS18ことができる。
以上のように、ランダムk2は、その暗号化された形態およびその再暗号化された形態の両方で、その命令のセッションキーとして機能すると言うことができる。本包括的方法は、その場合にはプレーンテキストで(好ましくは、暗号化されたランダムk2とともに)送信され、暗号化された命令Jのスーパー暗号化なしで実行することができ、同様にステップdでの復号はランダムk2のみを提供することを意味することが、理解されよう。
本暗号化は、各反復で生成される新しいランダムに基づき、これはリプレイ攻撃が阻止されることを意味するので、本発明のプロトコルはセキュリティを有意に改善することができる。
ホストアプリケーション環境が信頼されないとき、ソフトウェアアプリケーションの第1の暗号化動作はホワイトボックスで実装されて、そのコードからのキーk1の抽出に対抗することが好ましい。また、k2は、好ましくは、敵が妥当なコストでそれを検索することを防ぐ方法で保護される。例示的手段は、オンチップハードウェア乱数ジェネレータを使用して、CPUのために新しいキー値を生成し(電源投入時に)、それを不正使用防止(tamper−proof)キーレジスタで記憶することになろう。
ソフトウェアアプリケーションは、そのプロトコルが、たとえば複数の保護された命令を有することによって、そのソフトウェアアプリケーションの実行中に定期的に使用されるという方法で保護されることが好ましい。
ホストが外部回路を使用していないときには必ず、バス観測分析を困難にするために、ランダムなダミーアクセスを生成することもまた好ましい。
第1の好ましい実施形態
図2は、本発明によるソフトウェアアプリケーションを実行するための例示的方法を示す。本ソフトウェアアプリケーションは、たとえば、指定されたアドレスにまたはソフトウェアコードのデータセクション内に置かれた、少なくとも1つの暗号化されたソフトウェア命令を備える。ソフトウェアアプリケーションが暗号化された命令Jを実行しようとするとき、そのソフトウェアアプリケーションを実行するホストCPU110が、
a.ランダムk2を生成しS20、
b.k2とJの排他的論理和をとって、第1の転送値
図2は、本発明によるソフトウェアアプリケーションを実行するための例示的方法を示す。本ソフトウェアアプリケーションは、たとえば、指定されたアドレスにまたはソフトウェアコードのデータセクション内に置かれた、少なくとも1つの暗号化されたソフトウェア命令を備える。ソフトウェアアプリケーションが暗号化された命令Jを実行しようとするとき、そのソフトウェアアプリケーションを実行するホストCPU110が、
a.ランダムk2を生成しS20、
b.k2とJの排他的論理和をとって、第1の転送値
を取得し、ステップS21、
c.第1のバス暗号化モジュールE1およびキーk1を使用し、そのランダムk2を暗号化して、第2の転送値、すなわちL2=E1{k1}(k2)、を取得しS22、
d.第1の転送値、第2の転送値の対(L1、L2)を回路120に送信するS23。
c.第1のバス暗号化モジュールE1およびキーk1を使用し、そのランダムk2を暗号化して、第2の転送値、すなわちL2=E1{k1}(k2)、を取得しS22、
d.第1の転送値、第2の転送値の対(L1、L2)を回路120に送信するS23。
その対(L1、L2)を受信したとき、回路120は:
e.第1のバス復号モジュールD1およびk1を使用してL2を復号して、ランダムk2を取得しS24、
f.
e.第1のバス復号モジュールD1およびk1を使用してL2を復号して、ランダムk2を取得しS24、
f.
を計算しS25、
g.第3の復号モジュールDpreおよび第3のキーkpreを使用してJを復号して、命令Iを取得しS26、
h.命令Iとk2の間の排他的論理和を計算して、第3の転送値M
g.第3の復号モジュールDpreおよび第3のキーkpreを使用してJを復号して、命令Iを取得しS26、
h.命令Iとk2の間の排他的論理和を計算して、第3の転送値M
を取得しS27、そして、
i.第3の転送値Mをホストに送信するS28。
i.第3の転送値Mをホストに送信するS28。
最後に、アプリケーションはk2を知っているので、それは、
を計算することによって、プレーンテキストで命令Iを取得することができS29、その後に、ホストはその命令Iを実行することができるS30。
一変形実施形態では、その暗号化された命令Jは、ホストから回路にプレーンテキストで送信され、これは、L1=Jであり、ステップbおよびfは実行されないことを意味する。
図3は、本発明の好ましい実施形態によるソフトウェアアプリケーションの協調実行のためのシステムを示す。本システム200は、ホスト210および補助デバイス220を備える。
ホスト210は、実際には、任意のタイプの処理デバイス、好ましくは、パーソナルコンピュータまたはゲームコンソールでもよい。ホスト210は、好ましくは、ROM211、RAM212、少なくとも1つのプロセッサ213、および、補助デバイス220とのインタラクションに適合されたインターフェース214を備える。ROM211はネイティブソフトウェア2111を記憶し、一方、RAM212は、AESなどのブロック暗号2151およびいくつかの暗号化された命令2152のホワイトボックス実装を備えるソフトウェアアプリケーション215(有利には補助デバイス220からダウンロードされる)を記憶する。プロセッサ213は、ネイティブソフトウェア2111およびソフトウェアアプリケーション215を実行するように適合される。
補助デバイス220、有利にはRFID、は、ホスト210との通信のためのインターフェース221と、少なくとも前述の2つのキーk1およびkpreへのアクセスを有するプロセッサ(「ブロック暗号回路」)222と、不揮発性メモリ223とを備える。補助デバイス220は、2つの異なるブロック暗号を、各キーに1つ、実装することもできることに留意されたい。ブロック暗号回路222は、インターフェース221および不揮発性メモリ223に機能的に接続される。
実行中、ソフトウェアアプリケーション215は、不揮発性メモリ223から、データを記憶、またはデータを検索することができる。
図4に示すように、ホストCPU213は、ソフトウェアを実行するためのコアCPU2131を備える。そのデータバス保護機能は、ランダムk2を生成するCPUキャッシュ2132にロードされ、E1を使用してk2およびJを暗号化し、その暗号をインターフェース214に送信する。本データバス復号機能は、CPUレジスタ2133にロードされ、CPUキャッシュ2132からのk2およびインターフェース214からの暗号化された命令
を受信し、次いで、それは、
を計算することによって、プレーンテキストで命令Iを取得し、その後、コアCPU2131が、命令Iを実行することができる。
ソフトウェアアプリケーションの配布の前に、少なくとも1つの命令が暗号化される。これは、好ましくは、同一キーの下で同一入力のための2つの異なる暗号化を有するために、確率的暗号化を使用することによって、達成される。
本ソフトウェアアプリケーションは、任意の適切な配布メカニズム(たとえば、インターネット、光媒体、または補助デバイス220内部)を使用して、ホスト210に配信され得る。ソフトウェアアプリケーションが、たとえばインターネットを介して、配布される場合、補助デバイス220は、そのソフトウェアアプリケーションが適切に動作するために、ユーザに何らかの形で引き渡されなければならない。
本ソフトウェアアプリケーションは、好ましくは、秘密キーk1を有するAES復号モジュールのホワイトボックス実装を備える。本アプリケーションは、暗号化された命令のセットも含む。
第2の好ましい実施形態
本明細書において、命令は、暗号化された乱数値E(Ri)と各命令Iiの排他的論理和をとる、すなわち、
本明細書において、命令は、暗号化された乱数値E(Ri)と各命令Iiの排他的論理和をとる、すなわち、
によって、暗号化される。その暗号化された命令は、対応する乱数値とともに記憶され、暗号化された命令のセットを与える:
ホストプロトコルは、命令Iが64ビット長であり、その乱数値Ri、k2およびk3もまた64ビット長であると仮定し、以下のように実装することができる。アルゴリズムE1およびEpreは、ECBモードで実装された128ビットのAES暗号化である。キーk1の下でのE1は、ホワイトボックス実装され、暗号化アルゴリズムE2(ならびに、復号アルゴリズムD2)は、2つの乱数値k2およびk3を使用する排他的論理和演算として実装される。
対応する補助デバイスプロトコルは、以下のように実装される:
その変数は異なる名をもつが、プロトコル部は一致し、これは、たとえば、プロトコルがそれがすべきように機能するとき、k2およびk’2が同一であることを反映するものであるが、これが当てはまるかどうかを知る方法が補助デバイスにはないことが理解されよう。(以下、図5についても同じことが言える。)
補助デバイスに関して、不揮発性メモリ223は、ホストによって容易に読み取ることができるが、ブロック暗号回路223は不正使用が防止されると仮定される。
補助デバイスに関して、不揮発性メモリ223は、ホストによって容易に読み取ることができるが、ブロック暗号回路223は不正使用が防止されると仮定される。
図5は、本発明の第2の好ましい実施形態によるブロック暗号回路のブロック図である。
Menezes、van OorschotおよびVanstoneによって説明されたAES実装は、3595ゲートを有するチップである。128ビットの暗号化は、約1000クロックサイクルを必要とする。2つの暗号化ステップが本プロトコルでは必要とされるので、与えられるラウンドは、そのデータを処理するために、約2000クロックサイクルを必要とする。
したがって、本発明は、補助デバイスの存在を認証およびチェックするための軽量プロトコルを提供することが、理解されよう。
性能の観点からは、その利点は、以下を備える。
− 交換されるメッセージの数およびそれらの内容が最小限である。64ビットの命令およびAESブロック暗号で、交換されるバイト数は32バイト(L1+L2+M)である。
− そのプロトコル内には2つのみのパスがある。そして、
− 計算の複雑性は、両側で低い:ホストについて1ブロック暗号化、および、補助デバイスについて2ブロック暗号化。
− 計算の複雑性は、両側で低い:ホストについて1ブロック暗号化、および、補助デバイスについて2ブロック暗号化。
セキュリティの観点からは、
− 本プロトコルは、そのプロトコルキーおよびそのホワイトボックス実装がソフトウェアアプリケーション間で異なり得るという意味で、更新可能であり得る。
− 本プロトコルは、そのプロトコルキーおよびそのホワイトボックス実装がソフトウェアアプリケーション間で異なり得るという意味で、更新可能であり得る。
− さらに重要なことには、本プロトコルは、データ転送中にバスをスパイする敵とともにリプレイおよび辞書攻撃に対抗することができるので、安全である。本プロトコルは、そうして、バス観測分析に対して免疫がある。
− 本プロトコルは、優れた価格/セキュリティのトレードオフを提供し、したがって、現在のアプリケーションを保護するために使用され得る。
本明細書に記載の暗号化された命令は、有利には、DVDまたはCD−ROMなどの配布サポートから読み取られるが、それはまた、インターネット上のサーバなどの外部ソースから受信される信号から読み取ることもできる。さらに、本明細書で、暗号化される命令は、たとえば、「普通の暗号化(セッションキーk2を保護するために使用されるものなど)および不明瞭化(たとえば、オペコードの順列による)を含む、広い意味の表現式での暗号化を使用して暗号化され、そのキーは、どのようにしてその不明瞭化を取り消すかについての「命令」に相当する。
本明細書と(適当な場合には)本特許請求の範囲および図面で開示される各機能は、独立して、または任意の適切な組合せで、提供することができる。ハードウェアに実装されるものとして記載された機能は、ソフトウェアに実装することもでき、その逆もまた同様である。本特許請求に現れる参照符号は、単に例としてであり、本特許請求の範囲に限定的な効果を有さない。
Claims (8)
- ソフトウェアアプリケーションの協調実行に関与する第1の方法であって、前記ソフトウェアアプリケーションは、暗号化されていない命令の暗号化である少なくとも1つの暗号化された命令を備え、第1のデバイスで、
第1の暗号化された命令を取得するステップと、
セッションキーを生成するステップと、
対称暗号化アルゴリズムおよび第1のキーを使用し、前記セッションキーを暗号化するステップと、
前記第1の暗号化された命令および前記暗号化されたセッションキーを第2のデバイスに転送するステップと、
前記第2のデバイスから第2の暗号化された命令を受信するステップであって、前記第2の暗号化された命令は、前記セッションキーを使用する前記暗号化されていない命令の暗号化である、ステップと、
前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記第2の暗号化された命令を復号して、前記暗号化されていない命令を取得するステップと、
前記暗号化されていない命令を実行するステップと、
を備える、前記方法。 - 前記第1の暗号化された命令をスーパー暗号化するステップをさらに備え、前記第1の暗号化された命令は、スーパー暗号化されて前記第2のデバイスに転送される、請求項1に記載のソフトウェアアプリケーションの協調実行に関与する第1の方法。
- ソフトウェアアプリケーションの協調実行に関与する第2の方法であって、前記ソフトウェアアプリケーションは、少なくとも1つの暗号化された命令を備え、第2のデバイスで、
第1の暗号化された命令および暗号化されたセッションキーを第1のデバイスから受信するステップであって、前記セッションキーは、対称暗号化アルゴリズムおよび第1のキーを使用して暗号化される、ステップと、
前記第1のキーを使用して前記暗号化されたセッションキーを復号するステップと、
前記対称暗号化アルゴリズムおよび第3のキーを使用し、前記第1の暗号化された命令を復号して、命令を取得するステップと、
前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記命令を暗号化して、第2の暗号化された命令を取得するステップと、
前記第2の暗号化された命令を前記第1のデバイスに転送するステップと、
を備える、前記方法。 - 前記第1の暗号化された命令は、スーパー暗号化されて受信され、前記第2のデバイスは、前記暗号化された第1の暗号化された命令の前記スーパー暗号化をさらに復号する、請求項3に記載のソフトウェアアプリケーションの協調実行に関与する第2の方法。
- 暗号化されていない命令の暗号化である少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与する第1のデバイスであって、
第1の暗号化された命令を取得する手段と、
セッションキーを生成する手段と、
対称暗号化アルゴリズムおよび第1のキーを使用して前記セッションキーを暗号化する手段と、
前記第1の暗号化された命令および前記暗号化されたセッションキーを第2のデバイスに転送する手段と、
前記第2のデバイスから第2の暗号化された命令を受信する手段であって、前記第2の暗号化された命令は、前記セッションキーを使用する前記暗号化されていない命令の暗号化である、手段と、
前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記第2の暗号化された命令を復号して、前記命令を取得する手段と、
前記命令を実行する手段と、
を備える、前記第1のデバイス。 - 前記第1の暗号化された命令をスーパー暗号化する手段をさらに備え、前記第1の暗号化された命令は、前記第2のデバイスにスーパー暗号化されて転送される、請求項5に記載の第1のデバイス。
- 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与する第2のデバイスであって、
第1の暗号化された命令および暗号化されたセッションキーを第1のデバイスから受信する手段であって、前記セッションキーは、対称暗号化アルゴリズムおよび第1のキーを使用して暗号化される、手段と、
前記第1のキーを使用して前記暗号化されたセッションキーを復号する手段と、
前記対称暗号化アルゴリズムおよび第3のキーを使用し、前記第1の暗号化された命令を復号して、命令を取得する手段と、
前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記命令を暗号化して、第2の暗号化された命令を取得する手段と、
前記第2の暗号化された命令を前記第1のデバイスに転送する手段と、
を備える、前記第2のデバイス。 - スーパー暗号化された前記第1の暗号化された命令を受信する手段と、前記暗号化された第1の暗号化された命令のスーパー暗号化を復号して前記第1の暗号化された命令を取得する手段と、をさらに備える、請求項7に記載の第2のデバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12305163.3A EP2629223A1 (en) | 2012-02-14 | 2012-02-14 | System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction |
EP12305163.3 | 2012-02-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013175179A true JP2013175179A (ja) | 2013-09-05 |
JP2013175179A5 JP2013175179A5 (ja) | 2016-03-31 |
Family
ID=47666062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013026948A Withdrawn JP2013175179A (ja) | 2012-02-14 | 2013-02-14 | 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140140504A1 (ja) |
EP (2) | EP2629223A1 (ja) |
JP (1) | JP2013175179A (ja) |
KR (1) | KR20130093557A (ja) |
CN (1) | CN103258152A (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101527329B1 (ko) * | 2014-09-12 | 2015-06-09 | 삼성에스디에스 주식회사 | 데이터 암호화 장치 및 방법 |
GB201418815D0 (en) * | 2014-10-22 | 2014-12-03 | Irdeto Bv | Providing access to content |
CN104320248A (zh) * | 2014-11-14 | 2015-01-28 | 中国建设银行股份有限公司 | 一种***间密钥同步的方法及*** |
WO2016112338A1 (en) * | 2015-01-08 | 2016-07-14 | Intertrust Technologies Corporation | Cryptographic systems and methods |
CN107113171B (zh) | 2015-12-10 | 2019-03-29 | 深圳市大疆创新科技有限公司 | 安全通信***、方法及装置 |
US11362824B2 (en) * | 2018-05-25 | 2022-06-14 | Intertrust Technologies Corporation | Content management systems and methods using proxy reencryption |
CN111865565B (zh) * | 2019-04-24 | 2022-05-06 | 云丁智能科技(北京)有限公司 | 秘钥管理方法、智能设备、服务器和移动终端 |
CN112434322B (zh) * | 2020-12-03 | 2024-05-07 | 深圳市欢太科技有限公司 | 数据加密方法、装置、计算机设备及计算机可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2149944A (en) * | 1983-11-14 | 1985-06-19 | Softnet Inc | Software distribution |
JP2007515723A (ja) * | 2003-12-22 | 2007-06-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | アクティブなエンティティを使用するソフトウェア実行保護 |
US7697691B2 (en) * | 2004-07-14 | 2010-04-13 | Intel Corporation | Method of delivering Direct Proof private keys to devices using an on-line service |
US7668313B2 (en) * | 2005-10-31 | 2010-02-23 | Texas Instruments Incorporated | Recipient-encrypted session key cryptography |
US8532293B2 (en) * | 2007-09-27 | 2013-09-10 | The Directv Group, Inc. | Method and system for securely providing and storing content in a multiple dwelling unit system |
US8380996B2 (en) | 2008-02-01 | 2013-02-19 | Thomson Licensing | Copy-protected software cartridge |
-
2012
- 2012-02-14 EP EP12305163.3A patent/EP2629223A1/en not_active Withdrawn
-
2013
- 2013-02-06 CN CN2013100483572A patent/CN103258152A/zh active Pending
- 2013-02-11 US US13/763,763 patent/US20140140504A1/en not_active Abandoned
- 2013-02-13 EP EP13155015.4A patent/EP2629225A1/en not_active Withdrawn
- 2013-02-13 KR KR1020130015544A patent/KR20130093557A/ko not_active Application Discontinuation
- 2013-02-14 JP JP2013026948A patent/JP2013175179A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2629223A1 (en) | 2013-08-21 |
CN103258152A (zh) | 2013-08-21 |
EP2629225A1 (en) | 2013-08-21 |
KR20130093557A (ko) | 2013-08-22 |
US20140140504A1 (en) | 2014-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110214440B (zh) | 计算***,传送受保护数据的方法和可读存储介质 | |
EP3574434B1 (en) | Addressing a trusted execution environment using encryption key | |
JP2013175179A (ja) | 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法 | |
US7835521B1 (en) | Secure keyboard | |
KR101194477B1 (ko) | 전자 콘텐츠의 디지털 저작권 관리 시스템 및 방법 | |
EP3174238B1 (en) | Protecting white-box feistel network implementation against fault attack | |
CN109075976A (zh) | 取决于密钥认证的证书发布 | |
US20150235011A1 (en) | Drm protected video streaming on game console with secret-less application | |
BR102018015221A2 (pt) | Método para compartilhamento seguro de informações e sistema relacionado | |
US20160261592A1 (en) | Method and device for the secure authentication and execution of programs | |
US7636441B2 (en) | Method for secure key exchange | |
JP2020506611A (ja) | 署名鍵を使用した信頼実行環境へのアドレシング | |
CN107453880B (zh) | 一种云数据安全存储方法和*** | |
US10700849B2 (en) | Balanced encoding of intermediate values within a white-box implementation | |
CN110235134B (zh) | 使用洁净室供应来寻址可信执行环境 | |
US8774407B2 (en) | System and method for executing encrypted binaries in a cryptographic processor | |
JP2021525030A (ja) | ユーザ保護ライセンス | |
EP3292654A1 (en) | A security approach for storing credentials for offline use and copy-protected vault content in devices | |
JP2007515723A (ja) | アクティブなエンティティを使用するソフトウェア実行保護 | |
CN107278357B (zh) | 密码***和方法 | |
Carelli et al. | Securing bitstream integrity, confidentiality and authenticity in reconfigurable mobile heterogeneous systems | |
Magdum et al. | A secure data transfer algorithm for USB mass storage devices to protect documents | |
JP7385025B2 (ja) | 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行 | |
CN115081000B (zh) | 保护远程目标程序源码的方法、***、设备和存储介质 | |
JP2018026651A (ja) | プログラムを保護する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160215 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160215 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20160404 |