JP2013175179A - 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法 - Google Patents

少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法 Download PDF

Info

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
Application number
JP2013026948A
Other languages
English (en)
Other versions
JP2013175179A5 (ja
Inventor
Karroumi Mohamed
カローミ モハメド
Alain Durand
デュラン アライン
Alessio Davide
アレッシオ ダビデ
Marc Joye
ジョイ マルク
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2013175179A publication Critical patent/JP2013175179A/ja
Publication of JP2013175179A5 publication Critical patent/JP2013175179A5/ja
Withdrawn legal-status Critical Current

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File 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)、キーkを使用し、J及びランダムkを暗号化してLを取得し(S11)、これを回路120に転送する(S12)。回路120は、kを使用し、Lを復号してJおよびkを取得し(S13)、Jを復号してIを取得する(S14)。そしてM=kでIを暗号化し、これをホスト110に転送する(S16)。ホスト110はkを使用し、Mを復号し、Iを取得し(S17)、Iを実行する(S18)。
【選択図】図1

Description

本発明は、概して暗号化に関し、特に、協調処理のための安全なプロトコルに関する。
本セクションは、以下に記載されるおよび/または請求される本発明の様々な態様に関連し得る当技術分野の様々な態様を読者に紹介するものである。本論は、本発明の様々な態様のより深い理解を促進するための背景情報を読者に提供するために役立つと考えられる。したがって、これらの記述は、この観点から読まれ、先行技術の承認として読まれるものではないことを理解されたい。
知られているセキュリティの問題は、ソフトウェアアプリケーションが、そのソフトウェアアプリケーションを記憶するオリジナルのサポートの保有なしには適切に実行できないことをいかにして確保するかである。
通常の先行技術の保護は、その配布に使用されるサポートにソフトウェアアプリケーションを結び付けることからなる。結び付けのメカニズムは、一般に、そのサポート(サポートID、サポートキーなど)に特有の何らかの情報に基づく。しかし、これは、特にそのアプリケーションが信頼されていないプラットフォーム上で実行されることを意図するときは十分でない。
したがって、何らかの共有データの協調処理中に第2のデバイスの存在を第1のデバイスがチェックできるようにするプロトコル、すなわち、たとえばアプリケーションを走らせるコンピュータが、そのアプリケーションの適切な実行に必要とされる一種のドングルの存在下にあることを確保するプロトコル、が必要であることが理解されよう。
国際公開第2009/095493号パンフレットは、小さなデバイスの存在をチェックするための以下のプロトコルを説明する:
1.ソフトウェア製造会社は、アルゴリズム、および、そのソフトウェア製造会社のみに知られているキー、すなわちJ=Epre{kpre}(I)、を使用し、ソフトウェアアプリケーションの少なくともいくつかの命令を事前に暗号化する。次いで、その暗号化されたソフトウェアアプリケーションが、その配布サポートにコピーされる。
2.対応する復号モジュールEpre −1およびキーkpreは、その配布サポートに結合された回路に知られているが、そのソフトウェアアプリケーションには知られていない。したがって、命令J=Epre{kpre}(I)は、ホスト上で実行されるアプリケーションによって復号することはできず、そのままで実行されると、誤った不適切な動作をもたらす。これは、たとえば、コピーの場合である。
3.アプリケーションは、そのサポートにデータを送信し、それが保護された命令Jを実行する必要があるときには都度その回路を使用する。
このプロトコルは、興味深いが、辞書攻撃に依然として弱い。攻撃者が、ホストと配布サポートの間の通信バスをスパイすることができる場合、これは特に言えることである。
可能な代替は、標準公開キー暗号化メカニズムの使用である。たとえば、安全な認証されたチャネルが、ゲーム機と回路の間に構成可能であり、通信スパイを防ぐことになる。しかし、それは、公開キー暗号化アルゴリズムを安全且つ効率的に実装することを必要とするので、回路のコストを劇的に増やすことになる。具体的には、公開キー暗号化の使用は、ハードウェアのみを使用する実装を妨げる。
記載された2つの間にある解決法は、国際公開第2005/064433号パンフレットにあり、そこでは、コンピュータは、ドングルの公開キーを使用して暗号化された静的データを検索し、その公開キーを使用して暗号化された乱数値を生成し、その暗号化された静的データおよび乱数値をドングルに送信する。ドングルは、そのプライベートキーを使用してこれらの項目を復号し、暗号化キーとしてその乱数値を使用して静的データを暗号化し、その再暗号化された静的データを、その静的データを復号および使用するコンピュータに返す。本解決法は、上手く機能するが、非対称暗号化を使用するだけではなく、各ドングル専用に静的データの暗号化も行うので、それは非常にリソースを消費することが理解されよう。
したがって、先行技術の欠点を克服することができる解決法が必要とされ得る。本発明は、そのような解決法を提供する。
国際公開第2009/095493号パンフレット 国際公開第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のバス暗号化モジュールEおよび(好ましくは対称)キーkと、第2のバス復号モジュールDとを備える。本ソフトウェアアプリケーションはまた、それが実行され得る前に復号される必要がある少なくとも1つの暗号化された命令J(事前暗号化されたものも)を備える。ソフトウェアアプリケーションを記憶する配布サポートは、第1のバス復号モジュールD、および、第1のバス暗号化モジュールのキー(すなわち、対称暗号化の場合には同一であり、非対称暗号化の場合にはキーのペアの「他方の」キー)に対応するキーkと、第2のバス暗号化モジュールEとを有する回路を備える。本回路は、第3の復号モジュールDpreおよび固定の第3のキーkpreを備え、これらは、事前暗号化の復号を可能にする。少なくとも1つの暗号化された命令Jは、第3のキーkpreに対応する暗号化キーを使用してソフトウェアプロバイダによってそのソフトウェアアプリケーションの配布の前に暗号化されており、そのソフトウェアプロバイダは暗号化および復号の両方の能力を有し、一方、その回路は復号する能力のみをもつことが望ましいことが理解されよう。
キーkは、好ましくは、その回路およびホストによって予め定められ、共用される。それは、好ましくは、ホストCPUによって実行されることになるソフトウェアアプリケーション内で不明瞭化される。そのホストおよび回路は暗号化アルゴリズム−すなわち暗号化または復号−を1つの「方向」でのみ実行することができ、その「方向」はホストおよび回路によって異なることもまた好ましい。
図1は、本発明によるソフトウェアアプリケーションを実行するための包括的方法を示す。ソフトウェアアプリケーションが暗号化された命令Jを実行しようとするとき、ホストCPU110(そのソフトウェアアプリケーションを実行する)は:
a.暗号化された命令Jを読み取るS10、
b.第1のバス暗号化モジュールEおよびそのキーkを使用してランダムkおよびその暗号化された命令Jの組合せを暗号化して、第1の転送値L、すなわちL=E{k}(J||k)、を取得するS11、
c.第1の転送値Lを回路120に送信するS12、
第1の転送値Lを受信したときに、回路120は:
d.第1のバス復号モジュールDおよびそのキーkを使用し、Lを復号して、ランダムkおよびその暗号化された命令Jを取得するS13、
e.第3の復号モジュールDpreおよび第3のキーkpreを使用し、Jを復号して、命令Iを取得するS14、
f.第2のバス暗号化モジュールEおよびそのランダムk(キーとして機能する)を使用し、命令Iを暗号化して、第2の転送値M、すなわちM=E{k}(I)、を取得するS15、そして、
g.第2の転送値Mをホスト110に送信するS16。
最後に、ソフトウェアアプリケーションは、kを知っており、バス復号モジュールDをさらに備えるので、それは、I=D{k}(M)を計算することによって、プレーンテキストで命令Iを取得することS17ができ、その後にホストは命令Iを実行するS18ことができる。
以上のように、ランダムkは、その暗号化された形態およびその再暗号化された形態の両方で、その命令のセッションキーとして機能すると言うことができる。本包括的方法は、その場合にはプレーンテキストで(好ましくは、暗号化されたランダムkとともに)送信され、暗号化された命令Jのスーパー暗号化なしで実行することができ、同様にステップdでの復号はランダムkのみを提供することを意味することが、理解されよう。
本暗号化は、各反復で生成される新しいランダムに基づき、これはリプレイ攻撃が阻止されることを意味するので、本発明のプロトコルはセキュリティを有意に改善することができる。
ホストアプリケーション環境が信頼されないとき、ソフトウェアアプリケーションの第1の暗号化動作はホワイトボックスで実装されて、そのコードからのキーkの抽出に対抗することが好ましい。また、kは、好ましくは、敵が妥当なコストでそれを検索することを防ぐ方法で保護される。例示的手段は、オンチップハードウェア乱数ジェネレータを使用して、CPUのために新しいキー値を生成し(電源投入時に)、それを不正使用防止(tamper−proof)キーレジスタで記憶することになろう。
ソフトウェアアプリケーションは、そのプロトコルが、たとえば複数の保護された命令を有することによって、そのソフトウェアアプリケーションの実行中に定期的に使用されるという方法で保護されることが好ましい。
ホストが外部回路を使用していないときには必ず、バス観測分析を困難にするために、ランダムなダミーアクセスを生成することもまた好ましい。
第1の好ましい実施形態
図2は、本発明によるソフトウェアアプリケーションを実行するための例示的方法を示す。本ソフトウェアアプリケーションは、たとえば、指定されたアドレスにまたはソフトウェアコードのデータセクション内に置かれた、少なくとも1つの暗号化されたソフトウェア命令を備える。ソフトウェアアプリケーションが暗号化された命令Jを実行しようとするとき、そのソフトウェアアプリケーションを実行するホストCPU110が、
a.ランダムkを生成しS20、
b.kとJの排他的論理和をとって、第1の転送値
Figure 2013175179
を取得し、ステップS21、
c.第1のバス暗号化モジュールEおよびキーkを使用し、そのランダムkを暗号化して、第2の転送値、すなわちL=E{k}(k)、を取得しS22、
d.第1の転送値、第2の転送値の対(L、L)を回路120に送信するS23。
その対(L、L)を受信したとき、回路120は:
e.第1のバス復号モジュールDおよびkを使用してLを復号して、ランダムkを取得しS24、
f.
Figure 2013175179
を計算しS25、
g.第3の復号モジュールDpreおよび第3のキーkpreを使用してJを復号して、命令Iを取得しS26、
h.命令Iとkの間の排他的論理和を計算して、第3の転送値M
Figure 2013175179
を取得しS27、そして、
i.第3の転送値Mをホストに送信するS28。
最後に、アプリケーションはkを知っているので、それは、
Figure 2013175179
を計算することによって、プレーンテキストで命令Iを取得することができS29、その後に、ホストはその命令Iを実行することができるS30。
一変形実施形態では、その暗号化された命令Jは、ホストから回路にプレーンテキストで送信され、これは、L=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つのキーkおよびkpreへのアクセスを有するプロセッサ(「ブロック暗号回路」)222と、不揮発性メモリ223とを備える。補助デバイス220は、2つの異なるブロック暗号を、各キーに1つ、実装することもできることに留意されたい。ブロック暗号回路222は、インターフェース221および不揮発性メモリ223に機能的に接続される。
実行中、ソフトウェアアプリケーション215は、不揮発性メモリ223から、データを記憶、またはデータを検索することができる。
図4に示すように、ホストCPU213は、ソフトウェアを実行するためのコアCPU2131を備える。そのデータバス保護機能は、ランダムkを生成するCPUキャッシュ2132にロードされ、Eを使用してkおよびJを暗号化し、その暗号をインターフェース214に送信する。本データバス復号機能は、CPUレジスタ2133にロードされ、CPUキャッシュ2132からのkおよびインターフェース214からの暗号化された命令
Figure 2013175179
を受信し、次いで、それは、
Figure 2013175179
を計算することによって、プレーンテキストで命令Iを取得し、その後、コアCPU2131が、命令Iを実行することができる。
ソフトウェアアプリケーションの配布の前に、少なくとも1つの命令が暗号化される。これは、好ましくは、同一キーの下で同一入力のための2つの異なる暗号化を有するために、確率的暗号化を使用することによって、達成される。
本ソフトウェアアプリケーションは、任意の適切な配布メカニズム(たとえば、インターネット、光媒体、または補助デバイス220内部)を使用して、ホスト210に配信され得る。ソフトウェアアプリケーションが、たとえばインターネットを介して、配布される場合、補助デバイス220は、そのソフトウェアアプリケーションが適切に動作するために、ユーザに何らかの形で引き渡されなければならない。
本ソフトウェアアプリケーションは、好ましくは、秘密キーkを有するAES復号モジュールのホワイトボックス実装を備える。本アプリケーションは、暗号化された命令のセットも含む。
第2の好ましい実施形態
本明細書において、命令は、暗号化された乱数値E(R)と各命令Iの排他的論理和をとる、すなわち、
Figure 2013175179
によって、暗号化される。その暗号化された命令は、対応する乱数値とともに記憶され、暗号化された命令のセットを与える:
Figure 2013175179
ホストプロトコルは、命令Iが64ビット長であり、その乱数値R、kおよびkもまた64ビット長であると仮定し、以下のように実装することができる。アルゴリズムEおよびEpreは、ECBモードで実装された128ビットのAES暗号化である。キーkの下でのEは、ホワイトボックス実装され、暗号化アルゴリズムE(ならびに、復号アルゴリズムD)は、2つの乱数値kおよびkを使用する排他的論理和演算として実装される。
Figure 2013175179
対応する補助デバイスプロトコルは、以下のように実装される:
Figure 2013175179
その変数は異なる名をもつが、プロトコル部は一致し、これは、たとえば、プロトコルがそれがすべきように機能するとき、kおよびk’が同一であることを反映するものであるが、これが当てはまるかどうかを知る方法が補助デバイスにはないことが理解されよう。(以下、図5についても同じことが言える。)
補助デバイスに関して、不揮発性メモリ223は、ホストによって容易に読み取ることができるが、ブロック暗号回路223は不正使用が防止されると仮定される。
図5は、本発明の第2の好ましい実施形態によるブロック暗号回路のブロック図である。
Menezes、van OorschotおよびVanstoneによって説明されたAES実装は、3595ゲートを有するチップである。128ビットの暗号化は、約1000クロックサイクルを必要とする。2つの暗号化ステップが本プロトコルでは必要とされるので、与えられるラウンドは、そのデータを処理するために、約2000クロックサイクルを必要とする。
したがって、本発明は、補助デバイスの存在を認証およびチェックするための軽量プロトコルを提供することが、理解されよう。
性能の観点からは、その利点は、以下を備える。
− 交換されるメッセージの数およびそれらの内容が最小限である。64ビットの命令およびAESブロック暗号で、交換されるバイト数は32バイト(L+L+M)である。
− そのプロトコル内には2つのみのパスがある。そして、
− 計算の複雑性は、両側で低い:ホストについて1ブロック暗号化、および、補助デバイスについて2ブロック暗号化。
セキュリティの観点からは、
− 本プロトコルは、そのプロトコルキーおよびそのホワイトボックス実装がソフトウェアアプリケーション間で異なり得るという意味で、更新可能であり得る。
− さらに重要なことには、本プロトコルは、データ転送中にバスをスパイする敵とともにリプレイおよび辞書攻撃に対抗することができるので、安全である。本プロトコルは、そうして、バス観測分析に対して免疫がある。
− 本プロトコルは、優れた価格/セキュリティのトレードオフを提供し、したがって、現在のアプリケーションを保護するために使用され得る。
本明細書に記載の暗号化された命令は、有利には、DVDまたはCD−ROMなどの配布サポートから読み取られるが、それはまた、インターネット上のサーバなどの外部ソースから受信される信号から読み取ることもできる。さらに、本明細書で、暗号化される命令は、たとえば、「普通の暗号化(セッションキーkを保護するために使用されるものなど)および不明瞭化(たとえば、オペコードの順列による)を含む、広い意味の表現式での暗号化を使用して暗号化され、そのキーは、どのようにしてその不明瞭化を取り消すかについての「命令」に相当する。
本明細書と(適当な場合には)本特許請求の範囲および図面で開示される各機能は、独立して、または任意の適切な組合せで、提供することができる。ハードウェアに実装されるものとして記載された機能は、ソフトウェアに実装することもでき、その逆もまた同様である。本特許請求に現れる参照符号は、単に例としてであり、本特許請求の範囲に限定的な効果を有さない。

Claims (8)

  1. ソフトウェアアプリケーションの協調実行に関与する第1の方法であって、前記ソフトウェアアプリケーションは、暗号化されていない命令の暗号化である少なくとも1つの暗号化された命令を備え、第1のデバイスで、
    第1の暗号化された命令を取得するステップと、
    セッションキーを生成するステップと、
    対称暗号化アルゴリズムおよび第1のキーを使用し、前記セッションキーを暗号化するステップと、
    前記第1の暗号化された命令および前記暗号化されたセッションキーを第2のデバイスに転送するステップと、
    前記第2のデバイスから第2の暗号化された命令を受信するステップであって、前記第2の暗号化された命令は、前記セッションキーを使用する前記暗号化されていない命令の暗号化である、ステップと、
    前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記第2の暗号化された命令を復号して、前記暗号化されていない命令を取得するステップと、
    前記暗号化されていない命令を実行するステップと、
    を備える、前記方法。
  2. 前記第1の暗号化された命令をスーパー暗号化するステップをさらに備え、前記第1の暗号化された命令は、スーパー暗号化されて前記第2のデバイスに転送される、請求項1に記載のソフトウェアアプリケーションの協調実行に関与する第1の方法。
  3. ソフトウェアアプリケーションの協調実行に関与する第2の方法であって、前記ソフトウェアアプリケーションは、少なくとも1つの暗号化された命令を備え、第2のデバイスで、
    第1の暗号化された命令および暗号化されたセッションキーを第1のデバイスから受信するステップであって、前記セッションキーは、対称暗号化アルゴリズムおよび第1のキーを使用して暗号化される、ステップと、
    前記第1のキーを使用して前記暗号化されたセッションキーを復号するステップと、
    前記対称暗号化アルゴリズムおよび第3のキーを使用し、前記第1の暗号化された命令を復号して、命令を取得するステップと、
    前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記命令を暗号化して、第2の暗号化された命令を取得するステップと、
    前記第2の暗号化された命令を前記第1のデバイスに転送するステップと、
    を備える、前記方法。
  4. 前記第1の暗号化された命令は、スーパー暗号化されて受信され、前記第2のデバイスは、前記暗号化された第1の暗号化された命令の前記スーパー暗号化をさらに復号する、請求項3に記載のソフトウェアアプリケーションの協調実行に関与する第2の方法。
  5. 暗号化されていない命令の暗号化である少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与する第1のデバイスであって、
    第1の暗号化された命令を取得する手段と、
    セッションキーを生成する手段と、
    対称暗号化アルゴリズムおよび第1のキーを使用して前記セッションキーを暗号化する手段と、
    前記第1の暗号化された命令および前記暗号化されたセッションキーを第2のデバイスに転送する手段と、
    前記第2のデバイスから第2の暗号化された命令を受信する手段であって、前記第2の暗号化された命令は、前記セッションキーを使用する前記暗号化されていない命令の暗号化である、手段と、
    前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記第2の暗号化された命令を復号して、前記命令を取得する手段と、
    前記命令を実行する手段と、
    を備える、前記第1のデバイス。
  6. 前記第1の暗号化された命令をスーパー暗号化する手段をさらに備え、前記第1の暗号化された命令は、前記第2のデバイスにスーパー暗号化されて転送される、請求項5に記載の第1のデバイス。
  7. 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行に関与する第2のデバイスであって、
    第1の暗号化された命令および暗号化されたセッションキーを第1のデバイスから受信する手段であって、前記セッションキーは、対称暗号化アルゴリズムおよび第1のキーを使用して暗号化される、手段と、
    前記第1のキーを使用して前記暗号化されたセッションキーを復号する手段と、
    前記対称暗号化アルゴリズムおよび第3のキーを使用し、前記第1の暗号化された命令を復号して、命令を取得する手段と、
    前記対称暗号化アルゴリズムおよび前記セッションキーを使用し、前記命令を暗号化して、第2の暗号化された命令を取得する手段と、
    前記第2の暗号化された命令を前記第1のデバイスに転送する手段と、
    を備える、前記第2のデバイス。
  8. スーパー暗号化された前記第1の暗号化された命令を受信する手段と、前記暗号化された第1の暗号化された命令のスーパー暗号化を復号して前記第1の暗号化された命令を取得する手段と、をさらに備える、請求項7に記載の第2のデバイス。
JP2013026948A 2012-02-14 2013-02-14 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法 Withdrawn JP2013175179A (ja)

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 (7)

* Cited by examiner, † Cited by third party
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 中国建设银行股份有限公司 一种系统间密钥同步的方法及系统
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
WO2017096599A1 (zh) * 2015-12-10 2017-06-15 深圳市大疆创新科技有限公司 安全通信系统、方法及装置
CN111865565B (zh) * 2019-04-24 2022-05-06 云丁智能科技(北京)有限公司 秘钥管理方法、智能设备、服务器和移动终端
CN112434322B (zh) * 2020-12-03 2024-05-07 深圳市欢太科技有限公司 数据加密方法、装置、计算机设备及计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2149944A (en) * 1983-11-14 1985-06-19 Softnet Inc Software distribution
EP1700181A1 (en) * 2003-12-22 2006-09-13 Koninklijke Philips Electronics N.V. Software execution protection using an active entity
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
KR101514798B1 (ko) 2008-02-01 2015-04-23 톰슨 라이센싱 복사-방지 소프트웨어 카트리지

Also Published As

Publication number Publication date
KR20130093557A (ko) 2013-08-22
EP2629225A1 (en) 2013-08-21
CN103258152A (zh) 2013-08-21
US20140140504A1 (en) 2014-05-22
EP2629223A1 (en) 2013-08-21

Similar Documents

Publication Publication Date Title
CN110214440B (zh) 计算系统,传送受保护数据的方法和可读存储介质
EP3574434B1 (en) Addressing a trusted execution environment using encryption key
US7835521B1 (en) Secure keyboard
EP3174238B1 (en) Protecting white-box feistel network implementation against fault attack
CN109075976A (zh) 取决于密钥认证的证书发布
JP2013175179A (ja) 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法
US20150235011A1 (en) Drm protected video streaming on game console with secret-less application
TWI420339B (zh) 軟體授權系統及方法
US20160261592A1 (en) Method and device for the secure authentication and execution of programs
US7636441B2 (en) Method for secure key exchange
BR102018015221A2 (pt) Método para compartilhamento seguro de informações e sistema relacionado
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