(57)【要約】システム（１００）は、システムと関連付けられ、暗号ユニット（１２２）と１つ以上の鍵とを備えた改竄防止回路（１２０）を備える。システムは、システム（２０２）がコードを受け取る前に予めデジタル署名されている１つ以上のコードの一部分を含むソフトウェア（１０８）を受け取る。暗号ユニットと改竄防止回路に含まれる鍵のうちの１つとは、コードの一部分の署名ファイルを復号化するために使用される。復号化された署名ファイルを用いてコード部分が正規のものであるかどうかが判定される。通信プロトコルなど、システムが受け取ったコードの一部分が、システムがコードを受け取る前に暗号化されている場合は、システムは、安全な通信チャネルを介してリモートサーバ（１３４）から鍵を取得して、この鍵と、改竄防止回路に含まれる暗号ユニットとを使用して通信プロトコルを復号化する。次に、システムは、この通信プロトコルを使用して、ネットワーク（１３０）を介してオンラインゲームをプレイするなど、他のクライアントと通信を行う。
2005522802.tif 000002
【特許請求の範囲】
【請求項１】
システムを動作させる方法であって、
前記システムに入力される前に第１の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記システムの記憶装置から読み出すステップと、
前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記ソフトウェアコードの前記部分を送るステップと、
前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第２の鍵を使用して前記暗号ユニットにより復号化して、復号化された署名ファイルを生成するステップと、
前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定する前記ステップと、
前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、を有する方法。
【請求項２】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項１に記載の方法。
【請求項３】
前記改竄防止回路は外付けの改竄防止回路を有する請求項１に記載の方法。
【請求項４】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項１に記載の方法。
【請求項５】
前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定する前記ステップは、
前記ソフトウェアコードの前記部分からハッシュによって第１のメッセージダイジェストを生成するステップと、
前記復号化された署名ファイルにより第２のメッセージダイジェストを生成するステップと、
前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとを比較するステップと、
前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとが一致しない場合、前記ソフトウェアコードの前記部分が正規のものではないことを示すステップと、
を有する請求項１に記載の方法。
【請求項６】
前記記憶装置は、前記ソフトウェアコードが記憶されている取り外し可能な計算機可読媒体を有する請求項１に記載の方法。
【請求項７】
前記記憶装置は、前記ソフトウェアコードが記憶されているハードディスクドライブを有する請求項１に記載の方法。
【請求項８】
前記ソフトウェアコードが前記システムによって受け取られる前に前記ソフトウェアコードの少なくとも前記一部を前記第１の鍵によってデジタル署名するステップをさらに有する請求項１に記載の方法。
【請求項９】
前記システムに入力される前に前記第１の鍵によって予め各々デジタル署名されている１つ以上の追加のソフトウェアコード部分を前記記憶装置から読み出すステップと、
前記１つ以上の追加のソフトウェアコード部分に対応する署名ファイルを前記第２の鍵を使用して前記暗号ユニットにより復号化するステップと、
前記１つ以上の追加のソフトウェアコード部分が正規のものでない場合、前記システムの動作を阻止するステップと、
をさらに有する請求項１に記載の方法。
【請求項１０】
ネットワークを介してリモートサーバから第３の鍵を受信するステップと、
暗号化されているコードの一部分を前記記憶装置から読み出すステップと、
前記暗号化されているコードの前記部分を前記暗号ユニットに送るステップと、
前記暗号化されているコードの前記部分を、前記第３の鍵を使用して前記暗号ユニットにより復号化するステップと、をさらに有する請求項１に記載の方法。
【請求項１１】
前記暗号化されているコードの前記部分は、前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項１０に記載の方法。
【請求項１２】
前記通信プロトコルを使用して前記ネットワークを介した通信を行うステップ
をさらに有する請求項１１に記載の方法。
【請求項１３】
前記第３の鍵を受信する前記ステップの前に、前記ネットワークを介して前記リモートサーバと安全な通信チャネルを確立するステップと、
前記安全な通信チャネルを介して前記リモートサーバから前記第３の鍵を受信するステップと、
をさらに有する請求項１０に記載の方法。
【請求項１４】
プロセッサベースのシステムであって、
記憶装置と、
改竄防止回路と、
前記改竄防止回路に含まれる暗号ユニットと、
前記システムに入力される前に第１の鍵によって予めデジタル署名されているソフトウェアコードの一部分を記憶装置から読み出し、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るように構成された処理回路と、を備え、
前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第２の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するように構成されており、
前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されているプロセッサベースのシステム。
【請求項１５】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項１４に記載のプロセッサベースのシステム。
【請求項１６】
前記改竄防止回路は外付けの改竄防止回路を有する請求項１４に記載のプロセッサベースのシステム。
【請求項１７】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項１４に記載のプロセッサベースのシステム。
【請求項１８】
前記暗号ユニットは、前記ソフトウェアコードの前記部分からハッシュによって第１のメッセージダイジェストを生成して、前記復号化された署名ファイルにより第２のメッセージダイジェストを生成し、前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとを比較して、前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとが一致しない場合、前記ソフトウェアコードの前記部分が正規のものではないことを示すことによって、前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するように構成されている請求項１４に記載のプロセッサベースのシステム。
【請求項１９】
前記記憶装置は、前記ソフトウェアコードが記憶されている取り外し可能な計算機可読媒体を有する請求項１４に記載のプロセッサベースのシステム。
【請求項２０】
前記記憶装置は、前記ソフトウェアコードが記憶されているハードディスクドライブを有する請求項１４に記載のプロセッサベースのシステム。
【請求項２１】
前記処理回路は、前記システムに入力される前に前記第１の鍵によって予め各々デジタル署名されている１つ以上の追加のソフトウェアコード部分を前記記憶装置から読み出し、前記１つ以上の追加のソフトウェアコード部分に対応する署名ファイルを前記第２の鍵を使用して前記暗号ユニットにより復号化し、前記１つ以上の追加のソフトウェアコード部分が正規のものでない場合に、前記システムの動作を阻止するようにさらに構成されている請求項１４に記載のプロセッサベースのシステム。
【請求項２２】
前記処理回路は、ネットワークを介してリモートサーバから第３の鍵を受信し、暗号化されているコードの一部分を前記記憶装置から読み出し、前記暗号化されているコードの前記部分を前記暗号ユニットに送るようにさらに構成されており、前記暗号ユニットは、前記第３の鍵を使用して前記暗号化されているコードの前記部分を復号化するように構成されている請求項１４に記載のプロセッサベースのシステム。
【請求項２３】
前記暗号化されているコードの前記部分は前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項２２に記載のプロセッサベースのシステム。
【請求項２４】
前記処理回路は、前記通信プロトコルを使用して前記ネットワークを介した通信を行うようにさらに構成されている請求項２３に記載のプロセッサベースのシステム。
【請求項２５】
システムを動作させる方法であって、
ネットワークを介してリモートサーバから第１の鍵を前記システムに受信するステップと、
暗号化されているコードの一部分を前記システムの記憶装置から読み出すステップと、
前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記暗号化されているコードの前記部分を送るステップと、
前記暗号化されているコードの前記部分を前記第１の鍵を使用して前記暗号ユニットにより復号化して、復号化されたコードを生成するステップと、
前記復号化されたコードを使用してネットワークを介して通信を行うステップと、を有する方法。
【請求項２６】
前記復号化されたコードは前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項２５に記載の方法。
【請求項２７】
前記第１の鍵を受信する前記ステップの前に、前記ネットワークを介して前記リモートサーバと安全な通信チャネルを確立するステップと、
前記安全な通信チャネルを介して前記リモートサーバから前記第１の鍵を受信するステップと、
をさらに有する請求項２５に記載の方法。
【請求項２８】
前記ネットワークを介して前記リモートサーバと安全な通信チャネルを確立する前記ステップは、
前記改竄防止回路に記憶されている秘密鍵／公開鍵の対を使用して前記安全な通信チャネルを確立するステップを有する請求項２７に記載の方法。
【請求項２９】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項２５に記載の方法。
【請求項３０】
前記改竄防止回路は外付けの改竄防止回路を有する請求項２５に記載の方法。
【請求項３１】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項２５に記載の方法。
【請求項３２】
前記システムに入力される前に第２の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記記憶装置から読み出すステップと、
前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第３の鍵を使用して前記暗号ユニットにより復号化するステップと、
をさらに有する請求項２５に記載の方法。
【請求項３３】
前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するステップと、
前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、
をさらに有する請求項３２に記載の方法。
【請求項３４】
プロセッサベースのシステムであって、
記憶装置と、
改竄防止回路と、
前記改竄防止回路に含まれる暗号ユニットと、
ネットワークを介してリモートサーバから第１の鍵を受信し、暗号化されているコードの一部分を前記記憶装置から読み出し、前記暗号化されているコードの前記部分を前記暗号ユニットに送るように構成された処理回路と、を備え、
前記暗号ユニットは、前記暗号化されているコードの前記部分を前記第１の鍵を使用して復号化して、復号化されたコードを生成するように構成されており、
前記処理回路は、前記復号化されたコードを使用して前記ネットワークを介した通信を行うようにさらに構成されているプロセッサベースのシステム。
【請求項３５】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項３４に記載のプロセッサベースのシステム。
【請求項３６】
前記改竄防止回路は外付けの改竄防止回路を有する請求項３４に記載のプロセッサベースのシステム。
【請求項３７】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項３４に記載のプロセッサベースのシステム。
【請求項３８】
前記復号化されたコードは前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項３４に記載のプロセッサベースのシステム。
【請求項３９】
前記処理回路は、前記ネットワークを介して前記リモートサーバと安全な通信チャネルを確立し、前記安全な通信チャネルを介して前記リモートサーバから第１の鍵を受信するようにさらに構成されている請求項３４に記載のプロセッサベースのシステム。
【請求項４０】
前記処理回路は、前記改竄防止回路に記憶されている秘密鍵／公開鍵の対を使用して前記安全な通信チャネルを確立するようにさらに構成されている請求項３９に記載のプロセッサベースのシステム。
【請求項４１】
前記処理回路は、前記システムに入力される前に予め第２の鍵によってデジタル署名されたソフトウェアコードの一部分を前記記憶装置から読み込んで、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るようにさらに構成されており、前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第３の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであることを判定するようにさらに構成されている請求項３４に記載のプロセッサベースのシステム。
【請求項４２】
前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されている請求項４１に記載のプロセッサベースのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、ソフトウェアのコピー保護および通信プロトコルをセキュリティで保護するための方式に関し、より詳細には、改竄防止ハードウェア暗号回路を使用して、コピー保護が完全になされることを保証し、オンラインゲームなどのオンライン通信において使用される通信プロトコルのメッセージおよび構造をセキュリティで保護することに関する。
【背景技術】
【０００２】
ソニー（Ｓｏｎｙ）ＰｌａｙＳｔａｔｉｏｎ（登録商標）およびＰｌａｙＳｔａｔｉｏｎ（登録商標）２などのコンピュータエンターテイメントゲームシステムは、近年登場した家庭用電化製品のなかで最も成功した製品の１つとなっている。しかし、この成功に伴って、ゲームシステムや関連のソフトウェアを不当に改造しようとする人々によって不正使用される可能性も生じている。このような不正使用は、ある種のゲームを特定の方法によって改造して、通常ではありえない結果または異常な結果を達成するか、あるいは、改造したソフトウェアの販売や配布で不当に利益を得るという歪んだ欲求が動機となっている。ゲーム制作会社にとって大きな懸念事項の１つとなっているのがソフトウェアの著作権侵害であることは明らかであり、この理由は、このような改造によって、ソフトウェアの一貫性のないバージョンが出回って混乱が生じる可能性があり、これがひいてはゲーム制作会社の評判と信用を傷つきかねないからである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
オンラインゲームシステムすなわちネットワーク対応ゲームシステムについても、不正使用の可能性がある。例えば、悪ふざけをたくらむハッカーが、いわゆる「仲介者（man in the middle）」攻撃を仕掛ける可能性がある。「仲介者」攻撃とは、ネットワーク（例えばインターネット）を介して２つのゲームシステム間でやり取りされているメッセージを傍受しようとすることである。ハッカーの動機は、詐欺を働くか、あるいは２人の正当なユーザがプレイしているゲームを妨害しようとすることにある。この場合も、このような不正使用によって不利な混乱を招き、罪のないユーザを大混乱に陥れ、これがひいてはこのシステムやゲーム自体に対して根拠のない不信感を大衆に抱かせる可能性がある。
【課題を解決するための手段】
【０００４】
本発明は、上記の事情ならびに他の事情を鑑みてなされたものである。
【０００５】
本発明は、システムを動作させる方法を提供することによって、上記のニーズならびに他のニーズに有利に応える。この方法は、前記システムに入力される前に第１の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記システムの記憶装置から読み出すステップと、前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記ソフトウェアコードの前記部分を送るステップと、前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第２の鍵を使用して前記暗号ユニットにより復号化して、復号化された署名ファイルを生成するステップと、前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するステップと、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、を有する。
【０００６】
本発明は、別の実施形態においては、記憶装置、改竄防止回路、前記改竄防止回路に含まれる暗号ユニット、および処理回路を備えたプロセッサベースのシステムを特徴とする。前記処理回路は、前記システムに入力される前に第１の鍵によって予めデジタル署名されているソフトウェアコードの一部分を記憶装置から読み出し、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るように構成されている。前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第２の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するように構成されている。前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されている。
【０００７】
別の実施形態においては、システムを動作させる方法は、ネットワークを介してサーバから第１の鍵を前記システムに受信するステップと、暗号化されているコードの一部分を前記システムの記憶装置から読み出すステップと、前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記暗号化されているコードの前記部分を送るステップと、前記暗号化されているコードの前記部分を前記第１の鍵を使用して前記暗号ユニットにより復号化して、復号化されたコードを生成するステップと、前記復号化されたコードを使用してネットワークを介して通信を行うステップと、を有する。
【０００８】
別の実施形態においては、プロセッサベースのシステムは、記憶装置、改竄防止回路、前記改竄防止回路に含まれる暗号ユニット、および処理回路を備える。前記処理回路は、ネットワークを介してサーバから第１の鍵を受信し、暗号化されているコードの一部分を前記記憶装置から読み出し、前記暗号化されているコードの前記部分を前記暗号ユニットに送るように構成されている。前記暗号ユニットは、前記暗号化されているコードの前記部分を前記第１の鍵を使用して復号化して、復号化されたコードを生成するように構成されており、前記処理回路は、前記復号化されたコードを使用して前記ネットワークを介した通信を行うようにさらに構成されている。
【０００９】
本発明の特徴および利点は、下記の本発明の詳細な説明および添付の図面を参照すればより明確となる。本発明の詳細な説明および添付の図面には、本発明の原理を使用した例示のための実施形態を記載する。
【発明を実施するための最良の形態】
【００１０】
本発明の上記の態様、機能および利点や、他の態様、機能および利点は、添付の図面を参照しつつ、下記に記載する本発明のより具体的な説明を読めばより明確となる。
【００１１】
各図面において、同一の参照符号は対応する要素を参照している。
【００１２】
図１に、本発明の一実施形態に係るシステム１００を示す。システム１００は、ゲームシステムまたはゲームコンソールを備え得、これには、広く普及しているソニーＰｌａｙＳｔａｔｉｏｎ（登録商標）の過去のモデルや現在のモデル、将来登場するモデルのほか、本明細書に記載する機能の１つ以上を備える任意のコンピュータシステム、処理システム、ゲームシステムなどがある。システム１００は現在利用可能な市販の暗号アルゴリズムを使用することができ、著作権侵害およびリバースエンジニアリングの脅威を低減させる。デジタル署名を使用することにより、ソフトウェアが改竄されていないことを検証するように最新のコピー保護技術が使用される。
【００１３】
システム１００は、典型的には記憶装置１０２と処理回路１０４とを備え、両者はメインシステムバス１０６によって相互接続されている。記憶装置１０２は、取り外し可能な計算機可読媒体１０８を有する任意の種類の記憶装置を有し得、デジタル多用途ディスク（ＤＶＤ）ドライブや、コンパクトディスク（ＣＤ）ドライブ、その他の任意の種類の光学ドライブ、アイオメガ・コーポレーション（Ｉｏｍｅｇａ  Ｃｏｒｐｏｒａｔｉｏｎ）が販売しているＺｉｐ（登録商標）ドライブなどの任意の種類の大容量ディスクドライブなどである。あるいは、記憶装置１０２は、ソニーのＭａｇｉｃＧａｔｅ（商標）またはＭｅｍｏｒｙＳｔｉｃｋ（登録商標）のメディアスロットを有していてもよく、この場合、取り外し可能な計算機可読媒体１０８は、ＭａｇｉｃＧａｔｅ（商標）媒体またはＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体を有する。あるいは、後述するように、記憶装置１０２はハードディスクドライブを有していてもよい。処理回路１０４は、中央演算処理装置（ＣＰＵ）１１０とランダムアクセスメモリ（ＲＡＭ）１１２とを備え得る。
【００１４】
本発明によれば、システム１００は改竄防止回路１２０をも備える。改竄防止回路は、その回路を変更または改竄しようとすると破壊されるというタイプの回路である。改竄防止回路１２０は、通常はシステムバス１０６に結合されており、デジタルキャッシュトランザクション用のスマートカード技術に用いられている現在利用可能な改竄防止回路など、任意の種類の改竄防止回路を有し得る。システム１００のこの実施形態では、改竄防止回路１２０は、システム１００のコンソールに固定配線された内蔵の改竄防止回路を有する。あるいは、後述するように、改竄防止回路１２０は、メモリカードまたはＰＣＭＣＩＡカードなどの、外付けすなわち「アドオン」の部品として実装されていてもよく、さらには付加的な機能を備えていてもよい。
【００１５】
改竄防止回路１２０は、好ましくは暗号ユニット１２２を備える。暗号ユニット（または「クリプトユニット」）１２２は、暗号化および復号化専用のプロセッサまたはその他の回路を備え得る。暗号ユニット１２２を改竄防止ケース１２０に収容すれば、実際に復号化を行うアルゴリズムをかなり安全に保護することができる。
【００１６】
システム１００は、改竄防止回路１２０内の暗号ユニット１２２を用いて、公開鍵／秘密鍵暗号化技術を用いたデジタル署名によって、コピー保護が完全になされ、システムソフトウェアのマシンコードが改竄されていないことを保証する。公開鍵／秘密鍵暗号化技術は、公知の非対称暗号化方式であり、一対の鍵（数字列）を暗号化に使用する。つまり、公開鍵によってデータを暗号化し、これと対応する秘密鍵（または「シークレットキー」）によってデータを復号化する。デジタル署名では、この処理が逆転する。つまり、送信者が秘密鍵を使用して一意的な電子数字を作成すると、対応する公開鍵を所有している人はこの電子数字を読むことができ、これにより、メッセージが本当にその送信者から送られたことが検証される。このように、あるユーザが公開鍵を公開すると、この公開鍵を使用して、そのユーザに暗号化したメッセージを送ったり、そのユーザのデジタル署名を復号化することができる。ユーザは、秘密鍵を秘密にしておき、秘密鍵を使用して、デジタル署名を暗号化したり、受信したメッセージを復号化する。デジタル署名は、好ましくは本発明のこの第１態様において用いられる技術である。
【００１７】
このため、本発明の一実施形態によれば、改竄防止回路１２０には、公開鍵ＰＵＢＬＩＣ  ＫＥＹ１と、公開鍵／秘密鍵の対ＰＵＢＬＩＣ  ＫＥＹ２／ＰＲＩＶＡＴＥ  ＫＥＹ２も格納または記憶される。鍵ＰＵＢＬＩＣ  ＫＥＹ１は、任意の製造業者が販売し、鍵ＰＲＩＶＡＴＥ  ＫＥＹ１を使用してマスタリングした媒体（これについては後述する）を使用する予定のある全てのシステムユニットについて同じ鍵である必要がある。鍵の対ＰＵＢＬＩＣ  ＫＥＹ２／ＰＲＩＶＡＴＥ  ＫＥＹ２は、好ましくはシステム毎に一意的な鍵の対であるが、これは必須ではない。これらの鍵は、改竄防止ケース１２０内に隔離されて収容されるため、誰もこれらの鍵にアクセスすることはできず、ユーザやゲーム開発者も例外ではない。このため、ゲーム開発会社の社内の人間がこれらの鍵をほかの関係者に公開してしまう可能性が低くなる。さらに、改竄防止回路１２０は、鍵のうちの１つのセキュリティが破られた場合に備えて、追加の鍵または鍵の対を備えていてもよい。
【００１８】
図２Ａは、本発明の一実施形態によるシステム１００を動作させるための方法２００を示す。方法２００は、システム１００で使用するソフトウェアのコピー保護の検証に有効である。システム１００に媒体（例えばディスク）１０８が挿入される前に、ＰＲＩＶＡＴＥ  ＫＥＹ１（図１）などの鍵を使用してゲームのソフトウェアコードの少なくとも一部分がデジタル署名される。例えば、製造業者がゲームをマスタリングする場合、この製造業者のみが知っている鍵ＰＲＩＶＡＴＥ  ＫＥＹ１を使用して、ソフトウェアコードの重要な部分をデジタル署名し得る。署名され得るコードの例として、ディスクのテーブルオブコンテンツ（Table of Contents）、アプリケーション本体、実行可能ファイル、ブートＢＩＯＳのほか、第三者によって変更されてはならない機密性の高いその他のデータがある。
【００１９】
一意的な鍵を使用してディスク１０８の内容を暗号化することも可能であるが、アプリケーションを署名することの威力は、署名されたデータが改竄されていないことを検証することにある。ディスク１０８の内容自体がハッカーによって変更されたとしても、変更したコードの有効な署名を正しく生成するには製造業者の秘密鍵が必要となるため、ハッカーは変更したコードの署名を正しく生成することができない。
【００２０】
ステップ２０２において、システム１００では、コードの一部分がデジタル署名されているソフトウェアコードを受ける。例えば、ユーザがディスク１０８を記憶装置１０２に挿入するか、またはネットワークからコードをダウンロードして記憶装置にこのコードを保存する（これについては後述する）ことによって、ソフトウェアコードがシステム１００に受け入れられ得る。コードがシステム１００によって受け入れられると、制御はステップ２０４に進み、処理回路１０４が記憶装置１０２からソフトウェアコードの一部分を読み出す。ソフトウェアコードのこのように読み出された箇所は、好ましくは、システム１００にコードが入力される前にＰＲＩＶＡＴＥ  ＫＥＹ１によって予めデジタル署名されていたコード部分のうちの１つの部分である。ステップ２０６において、処理回路１０４は、ソフトウェアコードの当該部分を改竄防止回路１２０に含まれる暗号ユニット１２２に送る。例えば、ソフトウェアコードの当該部分がテーブルオブコンテンツである場合、システム１００はディスク１０８からテーブルオブコンテンツを読み込んで、暗号ユニット１２２に送る。
【００２１】
ステップ２０８において、暗号ユニット１２２は、改竄防止回路１２０に記憶されている鍵ＰＵＢＬＩＣ  ＫＥＹ１を使用してソフトウェアコードの上記部分に対応する署名ファイルを復号化する。鍵ＰＵＢＬＩＣ  ＫＥＹ１は、通常は製造業者の公開鍵であり、前述のように、相当数のシステムユニットについて同じ鍵であり得る。ステップ２１０において、暗号ユニット１２２は、復号化した署名ファイルを使用して、ソフトウェアコードの当該部分が正規のものであるかどうかを判定する。ステップ２１２に示すようにソフトウェアコードの当該部分が正規のものである場合、ステップ２１４に示すように、システム１００は通常の動作を続行する。これに対して、ソフトウェアコードの当該部分が正規のものでない場合、ステップ２１６に示すようにシステム１００の動作が阻止される。例えば、システム１００のブート処理を停止することによってシステム１００の動作が阻止され得る。このため、コードが正規のものでない場合、システム１００のコンソールは、改造されたディスク１０８をロードしようとして、署名が無効であることを検知し、ディスク１０８をブートしない。このように、ディスク１０８のソフトウェアを変更しても、そのソフトウェアがシステム１００で実行されることはなくなる。
【００２２】
図２Ｂは、本発明の一実施形態による、ステップ２１０（図２Ａ）、すなわちソフトウェアコードの一部分が正規のものであるかどうかを判定するステップを実行するための例示的な方法を示す。具体的に説明すると、ステップ２２０において、暗号ユニット１２２は、ソフトウェアコードの一部分から、ハッシュによって第１のメッセージダイジェストを生成する。すなわち、ソフトウェアコードの上記部分がテーブルオブコンテンツを含む場合、暗号ユニット１２２はテーブルオブコンテンツから、ハッシュによって第１のメッセージダイジェストを生成する。ステップ２２２において、暗号ユニット１２２は、ソフトウェアコードの上記部分から復号化した署名ファイルを使用して第２のメッセージダイジェストを生成する。ステップ２２４において、暗号ユニット１２２は、第１のメッセージダイジェストと第２のメッセージダイジェストとを比較する。ステップ２２６に示すように第１のメッセージダイジェストと第２のメッセージダイジェストとが一致する場合、ステップ２２８において、暗号ユニット１２２はコードの上記部分が正規のものであることを示す。これに対し、２つのダイジェストが一致しない場合、ステップ２３０において、暗号ユニット１２２はコードの上記部分が正規のものではないことを示す。換言すれば、２つのダイジェストが一致する場合には、テーブルオブコンテンツなどのコードの上記部分は、製造業者によってデジタル署名されてから変更されていないことが検証でき、ブート処理の続行が許可される。
【００２３】
ソフトウェアコードの部分の１つ以上について上記の処理が繰り返され得る。すなわち、記憶装置１０２に入力される前に鍵ＰＲＩＶＡＴＥ  ＫＥＹ１によって予めデジタル署名されている１つ以上の追加のソフトウェアコード部分を、記憶装置１０２から読み出す。１つ以上の追加のソフトウェアコード部分に対応する署名ファイルを、鍵ＰＵＢＬＩＣ  ＫＥＹ１を使用して暗号ユニット１２２により復号化する。１つ以上の追加のソフトウェアコード部分のいずれかが正規のものでない場合、システム１００の動作が阻止される。
【００２４】
例えば、ディスク１０８から実行可能ファイルをロードする度に、処理回路１０４のローダーが実行可能ファイルを暗号ユニット１２２に送り、暗号ユニット１２２は、ファイルが正規のものであるかを検証する。暗号ユニット１２２は、実行可能ファイルからハッシュによってメッセージダイジェストを生成すると共に、ＰＵＢＬＩＣ  ＫＥＹ１などの製造業者の公開鍵を使用して、対応する署名ファイルを復号化する。暗号ユニット１２２は、作成したメッセージダイジェストと復号化したダイジェストとを比較する。２つのダイジェストが一致する場合、実行可能ファイルが製造業者によって署名されてから変更されていないことが検証でき、ブート処理の続行が許可される。ダイジェストが一致しない場合、実行可能ファイルは製造業者によって署名されてから変更されており、ブート処理の続行を阻止するなどによって、システム１００の動作が阻止される。コードの実行可能な部分をロードする度に署名ファイルと比較することにより、「スワップトリック」型のコピー保護の無効化手法から保護できる。これは、デジタル署名されている実行可能コードの全ビットについて、正規のものであることを検査する必要があるからである。
【００２５】
このように、上記の処理は、従来のソフトウェアベースの暗号システムと比べて大きな利点を有する。つまり、暗号化したデータの復号化に用いる鍵をディスクに記憶しておくと、この鍵が発見されて、ディスクにあるソースコードが逆アセンブルされる可能性がある。しかし、改竄防止ハードウェア１２０内に鍵を安全に格納しておけば、鍵が盗み出される危険性が大きく減少する。
【００２６】
図１に戻ると、記憶装置１０２が別法としてハードディスクドライブを備えてもよいことは前述した。この場合、ゲームやその他のアプリケーション用のソフトウェアコードが、インターネットまたはアメリカンオンライン（Ａｍｅｒｉｃａ  Ｏｎｌｉｎｅ）（登録商標）ネットワークなどのネットワーク１３０から、システム１００にダウンロードされ得る。ダウンロードされたソフトウェアは、ハードディスクドライブ１０２に記憶され得る。ダウンロードは、システムバス１０６に結合されたモデム１３２をシステム１００に内蔵させることにより可能となる。モデム１３２と、モデムによって確立されるネットワーク１３０への接続とは、本発明のこの実施形態では任意選択の機能であるため、図中で破線で示されている。
【００２７】
ソフトウェアをシステム１００にダウンロードする場合は、鍵ＰＲＩＶＡＴＥ  ＫＥＹ１によって予めデジタル署名されているソフトウェアコードの１つ以上の部分がリモートサーバ１３４にロードされ得る。あるいは、リモートサーバ１３４が、実際にコードをデジタル署名する処理を実行してもよい。ソフトウェアは、ディスク１０８について前述した方法と同じ方法でデジタル署名され得る。ソフトウェアは、その後、ネットワーク１３０を介してリモートサーバ１３４からモデム１３２によってシステム１００に転送され、ハードディスクドライブ１０２に記憶される。必要に応じて、ソフトウェアのダウンロードを行う前に、システム１００とリモートサーバ１３４との間で安全な（セキュアな）通信チャネルを確立してもよい。安全な通信チャネルは、従来技術において公知のように、システム１００のＰＵＢＬＩＣ  ＫＥＹ２と、リモートサーバ１３４のＰＵＢＬＩＣ  ＫＥＹ３とを交換することにより確立され得る。さらに、デジタル証明書を使用することによってこの種の安全な通信チャネルのセキュリティをさらに強化することができる。このデジタル証明書は、インターネットからダウンロードしたソフトウェアが、信頼できる供給源からのものであることを保証するものである。デジタル証明書は、ソフトウェアの作成者の身元、ソフトウェアが認証機関（ＣＡ）によって登録された日付など、ソフトウェアに関する情報を提供するほか、改竄防止機能も提供する。しかし、デジタル証明書の使用は必須ではない。
【００２８】
図３に、本発明の別の実施形態に係るシステム１００の動作を示す。システム１００は、モデム１３２、および記憶装置１０２のハードディスクを用いてブロードバンド接続を持続することができ、インターネット接続が可能となり、これによりシステム１００が、電子商取引アプリケーションおよびネットワークゲーム機能のためのネットワークプラットホームとして機能できるようになる。これにより、システム１００のユーザは、例えばクライアントシステム１４０，１４２，１４４などの他のクライアントシステムのユーザと、ネットワーク１３０を介してゲームをプレイできるようになる。
【００２９】
しかし、前述のように、オンラインゲームシステムすなわちネットワーク対応ゲームシステムでは、いわゆる「仲介者」攻撃などの不正使用が行われる可能性がある。例えば、オンラインゲームに使用される通信プロトコルのフォーマットがゲームディスク１０８に格納されている場合には、ハッカーが、マシンコードからこのフォーマットをリバースエンジニアリングできてしまう。ハッカーは、通信プロトコルを入手すると、ゲームをプレイ中の２台のシステム間のメッセージを傍受して、これにより詐欺を働いたり、ゲームを妨害する可能性がある。
【００３０】
本発明の図３に示す実施形態はリモートサーバ１３４を利用する。つまり、複数のクライアント間で行われるネットワークゲームを調整するために、リモートサーバ１３４などのサーバを使用して、通常はクライアントのログイン／調停を処理する。本発明によれば、ゲームソフトウェアのうち、通信プロトコルを規定しているマシンコードなどの機密性の高い部分が暗号化される。リモートサーバ１３４との接続時に、好ましくは暗号化されたチャンネルを介して、リモートサーバ１３４からシステム１００に鍵が送信される。次に、システム１００はこの鍵を使用して使用されて、通信プロトコルフォーマットを復号化する。このため、通信プロトコルが暗号化されていない形式でエンドユーザに提示されることはなく、このためハッカーが通信プロトコルを入手できなくなる。このように、この実施形態は、暗号化を用いることによって、システム１００が、クライアント／サーバ型のオンラインゲームにおいて使用される通信プロトコルのメッセージおよび構造など、機密性の高いコード部分をセキュリティで保護できるようにする。
【００３１】
図４Ａは、図３に示す本発明の一実施形態による、システム１００を動作させる方法４００を示す。システム１００に媒体（例えばディスク）１０８が挿入される前に、ディスク１０８に保存されるコードの少なくとも一部が暗号化される。暗号化されるコード部分は、好ましくは、オンラインゲーム中に行われる通信に使用される通信プロトコルを含む。使用する暗号化の種類は、例えば、公開鍵／秘密鍵暗号化技術などの非対称暗号化方式や、対称暗号化方など、どのようなものであってもよい。
【００３２】
ステップ４０２において、システム１００は、暗号化された部分を含むコードを受ける。このコードは、記憶装置にディスク１０８を受け入れるか、あるいはモデム１３２を介してコードを受信してこのコードをハードディスクに記憶することによって受け入れられ得る。ステップ４０４において、システム１００はネットワーク１３０を介してリモートサーバ１３４との通信を確立する。リモートサーバ１３４は、通常は、ネットワークゲームのためにクライアントのログイン／調停を処理するサーバを備える。ステップ４０６において、システム１００は、ネットワーク１３０を介してリモートサーバ１３４から鍵（例えばＫＥＹ４）を受信する。図３に、この鍵の受信を矢印１３６によって示す。鍵ＫＥＹ４は、どのような種類の鍵を有していてもよい。例えば、通信プロトコルの暗号化に非対称暗号化方式を使用する場合、ＫＥＹ４は公開鍵を有し得、あるいは通信プロトコルの暗号化に対称暗号化方式を使用する場合、ＫＥＹ４は単純な対称鍵を有し得る。
【００３３】
ステップ４０８において、処理回路１０４は暗号化されているコードの一部分を記憶装置１０２から読み出し、ステップ４１０において、処理回路１０４は、暗号化されているコードの上記部分を、改竄防止回路１２０に含まれる暗号ユニット１２２に送る。ステップ４１２において、暗号ユニット１２２は、リモートサーバ１３４から受信した鍵（本例ではＫＥＹ４）を使用して、暗号化されているコードの上記部分を復号化する。復号化された通信プロトコルメッセージフォーマットは、ＲＡＭ  １１２などのメモリに記憶される。最後に、ステップ４１４において、システム１００は、復号化した通信プロトコルを使用して安全な通信を開始する。つまり、図３に矢印１３８に示すように、システム１００は、復号化した通信プロトコルを使用して、システム１４０などの他のシステムとネットワーク１３０を介して通信を行い、ゲームをプレイする。
【００３４】
図４Ｂは、本発明の一実施形態による、ステップ４０４、すなわちリモートサーバ１３４との通信を確立するステップを実行するための例示的な方法を示す。この方法では、システム１００の改竄防止回路１２０に記憶されている公開鍵／秘密鍵の対ＰＵＢＬＩＣ  ＫＥＹ２／ＰＲＩＶＡＴＥ  ＫＥＹ２と、リモートサーバ１３４に記憶されている公開鍵／秘密鍵の対ＰＵＢＬＩＣ  ＫＥＹ３／ＰＲＩＶＡＴＥ  ＫＥＹ３とを使用して、システム１００とリモートサーバ１３４の間に安全な通信チャネルを確立する。具体的に説明すると、ステップ４２０において、システム１００はリモートサーバ１３４に自身のＰＵＢＬＩＣ  ＫＥＹ２を送信し、ステップ４２２において、システム１００はリモートサーバ１３４からＰＵＢＬＩＣ  ＫＥＹ３を受信する。システム１００およびサーバ１３４と、従来技術において公知のように、これらの鍵を使用して安全なチャンネルをネゴシエートする。ステップ４２４において、システム１００およびリモートサーバ１３４は安全な通信を行い、ステップ４０６について前述したように、システム１００は、この安全な通信チャネルを介してリモートサーバ１３４から鍵ＫＥＹ４を受信する。
【００３５】
本発明の任意選択の機能として、リモートサーバ１３４またはその他サーバが、認証機関（ＣＡ）として機能してもよい。認証機関は、システム１００，１４０，１４２，１４４など、製造業者が過去に製造した全システムのシリアル番号の一覧を有し得る。また、認証機関は、全てのシステムの一意的な公開鍵を記憶し得る。システムのうちの１台が認証機関に接続すると、認証機関はこのシステムのシリアル番号を要求し得、そのシリアル番号によってシステムの識別を行い、このシステムが正規のシステムであることを検証する。
【００３６】
認証機関は、システムが正規のシステムであると識別すると、適宜このシステムに正しい公開鍵を送信し得る。システムは、この公開鍵を受信すると、他のシステムとオンラインゲームをプレイできるようになる。つまり、２台のシステムは、オンラインゲームをプレイする前に、互いの公開鍵を交換することを要求され得る。このタイプのハードウェア識別（「ハードウェアＩＤ」）は任意選択であり、これによりハッカーは、オンラインゲームなどのオンライン通信に一層干渉できないようになる。
【００３７】
このように、方法４００（図４Ａ）を使用することによって、通信プロトコルのメッセージフォーマットなどの機密性の高いコード部分が、暗号化されていない形式でエンドユーザに提示されることがなくなる。換言すれば、ハッカーが２台のシステム間でやり取りされているメッセージを傍受しても、このメッセージを復号化して、このメッセージを別のメッセージと置き換えることができない。理論上は、ハッカーが上記のデジタル署名を正しく偽造できるか、あるいは実行中のシステム１００のＲＡＭ  １１２に直接アクセスできる手段を有していれば、ＲＡＭ  １１２から鍵ＫＥＹ４を取得することが可能である。しかし、これは、パーソナルコンピュータ上で読み取り可能なディスクからソースコードを逆アセンブルするよりもかなり困難である。
【００３８】
改竄防止回路１２０が、別法として、メモリカードまたはＰＣＭＣＩＡカードなどの外付け、すなわち「アドオン」の部品として実装されてもよいことは前述した。図５Ａに、本発明の別の実施形態によるシステム１００の例を示す。この実施形態では、改竄防止回路１２０を、ＰＣカードまたはＰＣＭＣＩＡカードなどの取り外し可能なカード型のデバイスとして実装している。この実施形態においては、改竄防止回路１２０は、システム１００のインタフェーススロット１６０から容易に脱着することができる。インタフェーススロット１６０は、通常はシステムバス１０６に結合されている。
【００３９】
図５Ｂに、本発明の別の実施形態によるシステム１００の例を示す。この実施形態では、改竄防止回路１２０が外付け部品として実装されている。改竄防止回路１２０は、ケーブル１６４およびインタフェース１６６によってシステム１００に結合されている。インタフェース１６６はシステムバス１０６に結合されており、インタフェース１６６は、ユニバーサルシリアルバス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ＵＳＢ）やｉ．ＬＩＮＫ（登録商標）（ＩＥＥＥ  １３９４）などの、各種のインタフェースを有し得る。
【００４０】
図５Ｃに、本発明の別の実施形態によるシステム１００の例を示す。この実施形態では、改竄防止回路１２０が、ソニーのＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）技術を利用するものなど、小型のカード型の媒体に実装されている。
【００４１】
ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体は、革新的な音楽著作権保護技術であるＭａｇｉｃＧａｔｅ（商標）技術を採用している。ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体は、オンボードのフラッシュメモリ１７０と、暗号化回路１７４を備えたＭａｇｉｃＧａｔｅ（商標）回路１７２とを備える。ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体は、通常はシステムバス１０６に結合されているメディアスロット１７６によって、システム１００とインタフェースする。また、システム１００は、任意選択の機能としてＭａｇｉｃＧａｔｅ（商標）回路１７８を内蔵していてもよく、この場合、システム１００は、ＭａｇｉｃＧａｔｅ（商標）技術に従うＭＧ機器として機能し得る。
【００４２】
本発明の一実施形態によれば、ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体にある暗号化回路１７４は、前述した暗号ユニット１２２の機能を提供してもよい。さらに、ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体のオンボードのフラッシュメモリ１７０は、前述の鍵（すなわち、ＰＵＢＬＩＣ  ＫＥＹ１、ＰＵＢＬＩＣ  ＫＥＹ２／ＰＲＩＶＡＴＥ  ＫＥＹ２）を記憶するために使用されてもよい。このように、ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体は、前述の改竄防止回路１２０と実質的に同じ機能を提供することができる。
【００４３】
ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体は、ある程度のレベルの改竄防止保護を備えていると考えられており、必要に応じてこの改竄防止保護のレベルを上げて、保護を強化してもよい。さらに、システム１００にＭａｇｉｃＧａｔｅ（商標）回路１７８が内蔵されている場合、ＭａｇｉｃＧａｔｅ（商標）回路１７８は、ＭａｇｉｃＧａｔｅ（商標）技術に従って、正規のＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体がメディアスロット１７６に挿入されていることを認証してもよい。このように、媒体が改竄された場合には、ＭａｇｉｃＧａｔｅ（商標）回路１７８によって検出されて、システム１００がその媒体によって動作することが阻止され得る。
【００４４】
ＭａｇｉｃＧａｔｅ（商標）ＭｅｍｏｒｙＳｔｉｃｋ（登録商標）媒体は、本明細書に記載した改竄防止回路１２０を実装可能な外付けの取り外し可能なカード型のデバイスの一例に過ぎないことが理解されるべきである。別例として、改竄防止回路１２０が、ソニーＰｌａｙＳｔａｔｉｏｎ（登録商標）２用のメモリカードに実装されてもよい。
【００４５】
図６に、本発明の一実施形態によるマスタリング処理６００を示す。このマスタリング処理６００は、ＤＶＤまたはＣＤなどの上記の方法を利用した計算機可読媒体の作成に使用することができる。具体的に説明すると、ステップ６０２において、ゲーム開発会社は、署名をしていないコードを生成して、このコードをＤＶＤまたはＣＤなどのディスクに記録する。ステップ６０４において、このディスクが製造業者に送られる。ステップ６０６において、製造業者は、通信プロトコルなどの機密性の高いコード部分を暗号化する。この機密性の高いコード部分は、ゲーム開発会社が指定してもよい。ステップ６０８において、製造業者は、秘密鍵を使用して、コードの特定の部分に対するデジタル署名を生成する。デジタル署名され得るコード部分には、テーブルオブコンテンツ、１つ以上の実行可能ファイルなどがある。最後に、ステップ６１０において、製造業者は変更したデータを含む新しいマスタディスクを作成する。
【００４６】
前述したように、システム１００は、システム１００と関連付けられ、暗号ユニットと１つ以上の鍵とを有する改竄防止回路を使用することによって、著作権侵害およびリバースエンジニアリングの脅威を低減させることができる。改竄防止回路に含まれる暗号ユニットと鍵のうちの１つとを使用して、受け取ったソフトウェアコードの一部分の署名ファイルが復号化され、コードが不当に変更されたか改造されている場合、システム１００の動作が阻止される。改竄防止回路により、ハッカーが、実際の復号化に用いる鍵またはアルゴリズムを入手できる可能性が極めて低くなる。
【００４７】
さらに、改竄防止回路によって、オンラインゲームなどのオンライン通信にハッカーが干渉できないようにすることができる。すなわち、システム１００にコードが受け入れられる前に、通信プロトコルなど、システム１００が受け取るコードの一部分の１つ以上が暗号化され得る。システム１００は、オンラインゲームの調整に使用されるリモートサーバに接続して、鍵を取得し、改竄防止回路に含まれる暗号ユニットがこの鍵を使用して、通信プロトコルを復号化し得る。次に、システムは、この通信プロトコルを使用して、ネットワークを介してオンラインゲームをプレイするなど、他のクライアントと通信を行う。ハッカーは暗号化されていない通信プロトコルにアクセスできないため、ハッカーがオンラインゲームに干渉できる可能性が極めて低くなる。
【００４８】
本明細書において、本発明を特定の実施形態およびその用途によって記載したが、当業者は、特許請求の範囲に記載されている本発明の範囲から逸脱することなく、本発明をさまざまな変更および変形することができる。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施形態に係るシステムのブロック図である。
【図２Ａ】本発明の一実施形態による、図１のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図２Ｂ】本発明の一実施形態による、図１のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図３】本発明の別の実施形態に係るシステムのブロック図である。
【図４Ａ】本発明の一実施形態による、図３のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図４Ｂ】本発明の一実施形態による、図３のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図５Ａ】図１，３のシステムの別法による構成を示すブロック図である。
【図５Ｂ】図１，３のシステムの別法による構成を示すブロック図である。
【図５Ｃ】図１，３のシステムの別法による構成を示すブロック図である。
【図６】本発明の一実施形態によるマスタリング処理を示すフローチャートである。
【図１】
2005522802.tif 000003
【図２Ａ】
2005522802.tif 000004
【図２Ｂ】
2005522802.tif 000005
【図３】
2005522802.tif 000006
【図４Ａ】
2005522802.tif 000007
【図４Ｂ】
2005522802.tif 000008
【図５Ａ】
2005522802.tif 000009
【図５Ｂ】
2005522802.tif 000010
【図５Ｃ】
2005522802.tif 000011
【図６】
2005522802.tif 000012
【手続補正書】
【提出日】平成16年10月15日(2004.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムを動作させる方法であって、
前記システムに入力される前に第１の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記システムの記憶装置から読み出すステップと、
前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記ソフトウェアコードの前記部分を送るステップと、
前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第２の鍵を使用して前記暗号ユニットにより復号化して、復号化された署名ファイルを生成するステップと、
前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定する前記ステップと、
前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、を有する方法。
【請求項２】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項１に記載の方法。
【請求項３】
前記改竄防止回路は外付けの改竄防止回路を有する請求項１に記載の方法。
【請求項４】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項１に記載の方法。
【請求項５】
前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定する前記ステップは、
前記ソフトウェアコードの前記部分からハッシュによって第１のメッセージダイジェストを生成するステップと、
前記復号化された署名ファイルにより第２のメッセージダイジェストを生成するステップと、
前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとを比較するステップと、
前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとが一致しない場合、前記ソフトウェアコードの前記部分が正規のものではないことを示すステップと、
を有する請求項１に記載の方法。
【請求項６】
前記記憶装置は、前記ソフトウェアコードが記憶されている取り外し可能な計算機可読媒体を有する請求項１に記載の方法。
【請求項７】
前記記憶装置は、前記ソフトウェアコードが記憶されているハードディスクドライブを有する請求項１に記載の方法。
【請求項８】
前記ソフトウェアコードが前記システムによって受け取られる前に前記ソフトウェアコードの少なくとも前記一部を前記第１の鍵によってデジタル署名するステップをさらに有する請求項１に記載の方法。
【請求項９】
前記システムに入力される前に前記第１の鍵によって予め各々デジタル署名されている１つ以上の追加のソフトウェアコード部分を前記記憶装置から読み出すステップと、
前記１つ以上の追加のソフトウェアコード部分に対応する署名ファイルを前記第２の鍵を使用して前記暗号ユニットにより復号化するステップと、
前記１つ以上の追加のソフトウェアコード部分が正規のものでない場合、前記システムの動作を阻止するステップと、
をさらに有する請求項１に記載の方法。
【請求項１０】
ネットワークを介してサーバから第３の鍵を受信するステップと、
暗号化されているコードの一部分を前記記憶装置から読み出すステップと、
前記暗号化されているコードの前記部分を前記暗号ユニットに送るステップと、
前記暗号化されているコードの前記部分を、前記第３の鍵を使用して前記暗号ユニットにより復号化するステップと、をさらに有する請求項１に記載の方法。
【請求項１１】
前記暗号化されているコードの前記部分は、前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項１０に記載の方法。
【請求項１２】
前記通信プロトコルを使用して前記ネットワークを介した通信を行うステップ
をさらに有する請求項１１に記載の方法。
【請求項１３】
前記第３の鍵を受信する前記ステップの前に、前記ネットワークを介して前記サーバと安全な通信チャネルを確立するステップと、
前記安全な通信チャネルを介して前記サーバから前記第３の鍵を受信するステップと、
をさらに有する請求項１０に記載の方法。
【請求項１４】
プロセッサベースのシステムであって、
記憶装置と、
改竄防止回路と、
前記改竄防止回路に含まれる暗号ユニットと、
前記システムに入力される前に第１の鍵によって予めデジタル署名されているソフトウェアコードの一部分を記憶装置から読み出し、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るように構成された処理回路と、を備え、
前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第２の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するように構成されており、
前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されているプロセッサベースのシステム。
【請求項１５】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項１４に記載のプロセッサベースのシステム。
【請求項１６】
前記改竄防止回路は外付けの改竄防止回路を有する請求項１４に記載のプロセッサベースのシステム。
【請求項１７】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項１４に記載のプロセッサベースのシステム。
【請求項１８】
前記暗号ユニットは、前記ソフトウェアコードの前記部分からハッシュによって第１のメッセージダイジェストを生成して、前記復号化された署名ファイルにより第２のメッセージダイジェストを生成し、前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとを比較して、前記第１のメッセージダイジェストと前記第２のメッセージダイジェストとが一致しない場合、前記ソフトウェアコードの前記部分が正規のものではないことを示すことによって、前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するように構成されている請求項１４に記載のプロセッサベースのシステム。
【請求項１９】
前記記憶装置は、前記ソフトウェアコードが記憶されている取り外し可能な計算機可読媒体を有する請求項１４に記載のプロセッサベースのシステム。
【請求項２０】
前記記憶装置は、前記ソフトウェアコードが記憶されているハードディスクドライブを有する請求項１４に記載のプロセッサベースのシステム。
【請求項２１】
前記処理回路は、前記システムに入力される前に前記第１の鍵によって予め各々デジタル署名されている１つ以上の追加のソフトウェアコード部分を前記記憶装置から読み出し、前記１つ以上の追加のソフトウェアコード部分に対応する署名ファイルを前記第２の鍵を使用して前記暗号ユニットにより復号化し、前記１つ以上の追加のソフトウェアコード部分が正規のものでない場合に、前記システムの動作を阻止するようにさらに構成されている請求項１４に記載のプロセッサベースのシステム。
【請求項２２】
前記処理回路は、ネットワークを介してサーバから第３の鍵を受信し、暗号化されているコードの一部分を前記記憶装置から読み出し、前記暗号化されているコードの前記部分を前記暗号ユニットに送るようにさらに構成されており、前記暗号ユニットは、前記第３の鍵を使用して前記暗号化されているコードの前記部分を復号化するように構成されている請求項１４に記載のプロセッサベースのシステム。
【請求項２３】
前記暗号化されているコードの前記部分は前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項２２に記載のプロセッサベースのシステム。
【請求項２４】
前記処理回路は、前記通信プロトコルを使用して前記ネットワークを介した通信を行うようにさらに構成されている請求項２３に記載のプロセッサベースのシステム。
【請求項２５】
システムを動作させる方法であって、
ネットワークを介してサーバから第１の鍵を前記システムに受信するステップと、
暗号化されているコードの一部分を前記システムの記憶装置から読み出すステップと、
前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記暗号化されているコードの前記部分を送るステップと、
前記暗号化されているコードの前記部分を前記第１の鍵を使用して前記暗号ユニットにより復号化して、復号化されたコードを生成するステップと、
前記復号化されたコードを使用してネットワークを介して通信を行うステップと、を有する方法。
【請求項２６】
前記復号化されたコードは前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項２５に記載の方法。
【請求項２７】
前記第１の鍵を受信する前記ステップの前に、前記ネットワークを介して前記サーバと安全な通信チャネルを確立するステップと、
前記安全な通信チャネルを介して前記サーバから前記第１の鍵を受信するステップと、
をさらに有する請求項２５に記載の方法。
【請求項２８】
前記ネットワークを介して前記サーバと安全な通信チャネルを確立する前記ステップは、
前記改竄防止回路に記憶されている秘密鍵／公開鍵の対を使用して前記安全な通信チャネルを確立するステップを有する請求項２７に記載の方法。
【請求項２９】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項２５に記載の方法。
【請求項３０】
前記改竄防止回路は外付けの改竄防止回路を有する請求項２５に記載の方法。
【請求項３１】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項２５に記載の方法。
【請求項３２】
前記システムに入力される前に第２の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記記憶装置から読み出すステップと、
前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第３の鍵を使用して前記暗号ユニットにより復号化するステップと、
をさらに有する請求項２５に記載の方法。
【請求項３３】
前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するステップと、
前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、
をさらに有する請求項３２に記載の方法。
【請求項３４】
プロセッサベースのシステムであって、
記憶装置と、
改竄防止回路と、
前記改竄防止回路に含まれる暗号ユニットと、
ネットワークを介してサーバから第１の鍵を受信し、暗号化されているコードの一部分を前記記憶装置から読み出し、前記暗号化されているコードの前記部分を前記暗号ユニットに送るように構成された処理回路と、を備え、
前記暗号ユニットは、前記暗号化されているコードの前記部分を前記第１の鍵を使用して復号化して、復号化されたコードを生成するように構成されており、
前記処理回路は、前記復号化されたコードを使用して前記ネットワークを介した通信を行うようにさらに構成されているプロセッサベースのシステム。
【請求項３５】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項３４に記載のプロセッサベースのシステム。
【請求項３６】
前記改竄防止回路は外付けの改竄防止回路を有する請求項３４に記載のプロセッサベースのシステム。
【請求項３７】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項３４に記載のプロセッサベースのシステム。
【請求項３８】
前記復号化されたコードは前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項３４に記載のプロセッサベースのシステム。
【請求項３９】
前記処理回路は、前記ネットワークを介して前記サーバと安全な通信チャネルを確立し、前記安全な通信チャネルを介して前記サーバから第１の鍵を受信するようにさらに構成されている請求項３４に記載のプロセッサベースのシステム。
【請求項４０】
前記処理回路は、前記改竄防止回路に記憶されている秘密鍵／公開鍵の対を使用して前記安全な通信チャネルを確立するようにさらに構成されている請求項３９に記載のプロセッサベースのシステム。
【請求項４１】
前記処理回路は、前記システムに入力される前に予め第２の鍵によってデジタル署名されたソフトウェアコードの一部分を前記記憶装置から読み込んで、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るようにさらに構成されており、前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第３の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであることを判定するようにさらに構成されている請求項３４に記載のプロセッサベースのシステム。
【請求項４２】
前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されている請求項４１に記載のプロセッサベースのシステム。
【国際調査報告】
2005522802.tif 000013