(57)【要約】  第１のコンピューター装置が、ソフトウェアプログラムの正しいバージョンを有するか否かを判定するためにコンピューターに実装される技術は、クライアントコンピューター装置が、著作権があるメディアコンテンツをダウンロードするために、安全かつ承認されたバージョンのコンテンツ再生ソフトウェアが実装されていることが検証されることを保障する手法を提供する。この技術により、著作権があるメディアのコンテンツプロバイダが、コンテンツにアクセスするために、安全で承認されたメディアプレーヤーのみが実装されていることを保証することができる。
2014522171.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピューター装置がソフトウェアプログラムの正しいバージョンを有するか否かを決定するためのコンピューター実装方法であり、該方法は、
少なくとも１つの初期設定値に基づいて、プライベート秘密値を計算するステップと、
前記プライベート秘密値および少なくとも１つの初期設定値に基づいて、公開値を計算するステップと、
第２のコンピューター装置へ前記公開値を送信するステップと、
前記第２のコンピューター装置から第２の公開値を受信するステップと、
前記第２のコンピューター装置から受信した前記第２の公開値とプライベート秘密値に基づいて、共有秘密鍵を計算するステップと、
前記第２のコンピューター装置から暗号化メッセージを受信するステップと、
前記共有秘密鍵を使用して暗号化されたメッセージを復号化するステップと、
前記メッセージが正しく復号されたか否かを決定するステップと、
を備え、
前記メッセージが正しく復号された場合には、前記第１のコンピューター装置および前記第２のコンピューター装置が、前記バージョンが同じソフトウェアプログラムを持っているので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を継続する、又は、
前記メッセージが正しく復号されなかった場合には、前記第１のコンピューター装置および前記第２のコンピューター装置は、前記バージョンが同じソフトウェアプログラムを持っていないので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を終了させる、ことを特徴とする方法。
【請求項２】
前記メッセージの暗号化と復号化に使用される前記暗号化アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム、ＥｌＧａｍａｌ暗号アルゴリズムまたはデジタル署名アルゴリズムであることを特徴とする請求項１に記載の方法。
【請求項３】
前記少なくとも１つの初期設定値は、元となる生成値または素数要素値を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記元となる生成値はバイナリ表現において、第１の閾値よりも多いビット数で構成され、１のビットが第２の閾値よりも少ないことを特徴とする請求項３に記載の方法。
【請求項５】
前記素数要素値はバイナリ表現において、第３の閾値以上のビットで構成されていることを特徴とする請求項３に記載の方法。
【請求項６】
前記暗号化されたメッセージは、前記第２のコンピューター装置によって計算され共有秘密鍵に基づいて、暗号化された元のメッセージで構成されることを特徴とする請求項１に記載の方法。
【請求項７】
前記メッセージが正しく復号された場合、前記復号化されたメッセージは前記元のメッセージと一致し、前記第２のコンピューター装置から受信した前記第２の公開値に基づいて計算された前記共有秘密鍵は、前記第２のコンピューター装置によって計算された共有秘密鍵に等しいことを特徴とする請求項６に記載の方法。
【請求項８】
前記第２のコンピューター装置は、前記メッセージが正しく復号化されたか否かを決定し、前記第１のコンピューター装置と前記第２のコンピューター装置の間の通信を継続、または、終了することを特徴とする請求項１に記載の方法。
【請求項９】
前記第１のコンピューター装置による前記プライベート秘密値、前記公開値および前記共有秘密鍵の前記計算が、難読化されていることを特徴とする請求項１記載の方法。
【請求項１０】
前記ソフトウェアプログラにムは、ビデオデータを受信して表示するためのコンテンツ再生プリケーションを含むことを特徴とする請求項１記載の方法。
【請求項１１】
処理ユニットにより実行されると、第１のコンピューター装置がソフトウェアプログラムの正しいバージョンを有するか否かを決定するように機能させるための命令を記憶する非一時的なコンピューター読み取り可能な記録媒体であって、
前記処理ユニットが、
少なくとも１つの初期設定値に基づいて、プライベート秘密値を計算するステップと、
前記プライベート秘密値および少なくとも１つの初期設定値に基づいて、公開値を計算するステップと、
第２のコンピューター装置へ前記公開値を送信するステップと、
前記第２のコンピューター装置から第２の公開値を受信するステップと、
前記第２のコンピューター装置から受信した前記第２の公開値とプライベート秘密値に基づいて、共有秘密鍵を計算するステップと、
前記第２のコンピューター装置から暗号化メッセージを受信するステップと、
前記共有秘密鍵を使用して暗号化されたメッセージを復号化するステップと、
前記メッセージが正しく復号されたか否かを決定するステップと、
を実行するものであり、
前記メッセージが正しく復号された場合には、前記第１のコンピューター装置および前記第２のコンピューター装置が、前記バージョンが同じソフトウェアプログラムを持っているので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を継続する命令、又は、
前記メッセージが正しく復号されなかった場合には、前記第１のコンピューター装置および前記第２のコンピューター装置は、前記バージョンが同じソフトウェアプログラムを持っていないので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を終了させる命令を記憶することを特徴とする記憶媒体。
【請求項１２】
前記メッセージの暗号化と復号化に使用される前記暗号化アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム、ＥｌＧａｍａｌ暗号アルゴリズムまたはデジタル署名アルゴリズムであることを特徴とする請求項１１に記載のコンピューター読み取り可能な記録媒体。
【請求項１３】
前記少なくとも１つの初期設定値は、元となる生成値または素数要素値を含むことを特徴とする請求項１１に記載のコンピューター読み取り可能な記録媒体。
【請求項１４】
前記元となる生成値はバイナリ表現において、第１の閾値よりも多いビットで構成され、１が設定されるビットが第２の閾値よりも少ないことを特徴とする請求項１３に記載のコンピューター読み取り可能な記録媒体。
【請求項１５】
前記素数要素値はバイナリ表現において、第３の閾値以上のビットで構成されていることを特徴とする請求項１３に記載のコンピューター読み取り可能な記録媒体。
【請求項１６】
前記暗号化されたメッセージは、前記第２のコンピューター装置によって計算され共有秘密鍵に基づいて、暗号化された元のメッセージで構成されることを特徴とする請求項１１に記載のコンピューター読み取り可能な記録媒体。
【請求項１７】
前記メッセージが正しく復号された場合、前記復号化されたメッセージは前記元のメッセージと一致し、前記第２のコンピューター装置から受信した前記第２の公開値に基づいて計算された前記共有秘密鍵は、前記第２のコンピューター装置によって計算された共有秘密鍵に等しいことを特徴とする請求項１６に記載のコンピューター読み取り可能な記録媒体。
【請求項１８】
前記第２のコンピューター装置は、前記メッセージが正しく復号化されたか否かを決定し、前記第１のコンピューター装置と前記第２のコンピューター装置の間の通信を継続、または、終了することを特徴とする請求項１１に記載のコンピューター読み取り可能な記録媒体。
【請求項１９】
前記第１のコンピューター装置による前記プライベート秘密値、前記公開値および前記共有秘密鍵の前記計算が、難読化されていることを特徴とする請求項１１記載のコンピューター読み取り可能な記録媒体。
【請求項２０】
第１のコンピューター装置が、
処理ユニットであって、
少なくとも１つの初期設定値に基づいて、プライベート秘密値を計算する手段、
前記プライベート秘密値および少なくとも１つの初期設定値に基づいて、公開値を計算する手段、
第２のコンピューター装置へ前記公開値を送信する手段、
前記第２のコンピューター装置から第２の公開値を受信する手段、
前記第２のコンピューター装置から受信した前記第２の公開値とプライベート秘密値に基づいて、共有秘密鍵を計算する手段、
前記第２のコンピューター装置から暗号化メッセージを受信する手段、
前記共有秘密鍵を使用して暗号化されたメッセージを復号化する手段、および
前記メッセージが正しく復号されたか否かを決定する手段、
として機能する処理ユニットを備え、
前記メッセージが正しく復号された場合には、前記第１のコンピューター装置および前記第２のコンピューター装置が、前記バージョンが同じソフトウェアプログラムを持っているので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を継続する、又は、
前記メッセージが正しく復号されなかった場合には、前記第１のコンピューター装置および前記第２のコンピューター装置は、前記バージョンが同じソフトウェアプログラムを持っていないので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を終了する、ことを特徴とする第１のコンピューター装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的なコンピューターネットワークにおける暗号化に関するものであり、より具体的には、暗号化プロトコルの難読化された初期値に基づいて、コンピューター装置がソフトウェアプログラムの正当なバージョンを実行しているかをチェックするシステムおよび方法に関する。
【背景技術】
【０００２】
クライアントコンピューター装置上で実行するように構成されたコンテンツ再生ソフトウェアは、通常かなり複雑である。ソフトウェアがリリースされ、多くのクライアントコンピューター装置によってダウンロードされた後に、多くの場合、コンテンツ再生ソフトウェアのセキュリティ上の欠陥が発見されている。このようなセキュリティ上の欠陥は、著作権のあるコンテンツが、正当な権限がないエンドユーザや他の人によって表示されたりコピーされたりした結果である。このようなセキュリティ上の欠陥を解決するために、クライアントコンテンツ再生ソフトウェアをセキュリティ上の欠陥に対処するように設計された新しいバージョンに更新し、クライアントコンピューター装置はコンテンツ再生ソフトウェアの新しいバージョンが装置に適切にロードされていることを確認するまで、クライアントコンピューター装置は著作権のあるコンテンツをダウンロードすることができないようにしている。
【０００３】
一般的に、コンテンツ再生ソフトウェアの各バージョンは、様々なバージョン番号で表される。現在、クライアントコンピューター装置上に存在するコンテンツ再生ソフトウェアのバージョンの番号は、コンテンツ再生ソフトウェアに関連付けられているクライアントコンピューター装置のメモリに記憶される。この手法の欠点の一つは、クライアントコンピューターのエンドユーザが簡単にコンテンツ再生ソフトウェアに「不正侵入（ハッキング）」して、変更されたバージョン番号に対応する、コンテンツ再生ソフトの古いバージョンのセキュリティの１つ以上の欠陥に対処するために開発されたコンテンツ再生ソフトウェアの新しいバージョンをダウンロードしないで、バージョンの番号を変更できることである。その結果、クライアントコンピューター装置のエンドユーザは、コンテンツプロバイダによって実装されたＤＲＭや他のコピー保護を、コンテンツ再生ソフトウェアの１つ以上のセキュリティの欠陥を通して回避することが可能になるかもしれない。
【０００４】
上記で説明したように、この技術分野で必要とされているのは、現在、クライアント装置にインストールされたアプリケーションが安全であることを確認するためのより安全な手法である。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の一実施形態は、第１のコンピューター装置が、ソフトウェアプログラムの正しいバージョンを有するか否かを決定するために、コンピューターに実装される方法を示すものである。システムには、同じ一つ以上の初期値で初期化された２つのコンピューター装置が設けられる。この方法は、少なくとも１つの初期設定値に基づいてプライベート秘密値を計算し、プライベート秘密値と少なくとも１つの初期設定値に基づいて公開値を計算し、第２のコンピューター装置に計算された公開値を送信し、第２のコンピューター装置から別の公開値を受信し、第２のコンピューター装置から受信した公開値とプライベート秘密値に基づいて共有秘密鍵を計算する。また、この方法は、第２のコンピューター装置から暗号化されたメッセージを受信し、共有秘密鍵を用いて暗号化されたメッセージを復号化し、メッセージが正しく復号化されたかどうかを決定することが含まれる。メッセージが正しく復号化された場合は、第１のコンピューター装置はソフトウェアプログラムの正しいバージョンが入っているので、第１のコンピューター装置および第２のコンピューター装置間の通信は継続する。しかし、メッセージが正しく復号化されなかった場合は、第１のコンピューター装置は、ソフトウェアプログラムの正しいバージョンが入っていないので、第１のコンピューター装置および第２のコンピューター装置間の通信は終了する。
【０００６】
開示された方法の利点の一つは、クライアントコンピューター装置に、ダウンロードされた著作権があるメディアコンテンツを購入するために組み込まれた安全かつ承認されたバージョンのコンテンツ再生ソフトウェアが入っていることを検証するための保証された手法を提供することである。その結果、著作権のあるメディアコンテンツのプロバイダは、安全かつ承認されたコンテンツ再生部だけがコンテンツにアクセスするために実装されていることを確認することができる。
【図面の簡単な説明】
【０００７】
ここで、本発明の上記特徴が詳細に理解できるように、添付の図面に示された実施形態を参照しながら、上記で簡単に要約した本発明をより具体的に説明する。しかしながら、添付の図面は、本発明の典型的な実施形態のみを示し、その範囲を限定するものではなく、本発明は、他の同等の効果のある実施形態を含めることができることに留意すべきである。
【図１】本発明の１つ以上の態様を実施するように構成されたコンピューターネットワークを示す図である。
【図２】本発明の一実施形態に係る図１の第１のコンピューター装置のより詳細な図である。
【図３】本発明の一実施形態に係る図２の第１のコンピューター装置のセキュア通信モジュールのより詳細な図である。
【図４】本発明の一実施形態に係る図１の第２のコンピューター装置のより詳細な図である。
【図５】本発明の一実施形態に係る図４の第２のコンピューター装置のセキュア通信モジュールのより詳細な図である。
【図６】本発明の一実施形態に係る難読化形式で共有秘密鍵を計算する方法のステップのフローチャートである。
【図７】本発明の一実施形態に係る図１の第１のコンピューター装置にコンテンツ再生アプリケーションの正しいバージョンが入っていることを検証する方法のステップのフローチャートである。
【図８】本発明の一実施形態に係る図１の第１のコンピューター装置のコンテンツ再生部とセキュア通信モジュールを更新するための方法のステップのフローチャートである。
【発明を実施するための形態】
【０００８】
図１に、本発明の１つ以上の態様を構成するコンピューターネットワーク１００を示す。図に示すように、コンピューターネットワーク１００は、第１のコンピューター装置１０２、通信ネットワーク１０４、および、第２のコンピューター装置１０６を備える。
【０００９】
第１のコンピューター装置１０２および第２のコンピューター装置１０６は、データ通信を行う任意の２つのコンピューター装置である。一実施形態では、第１のコンピューター装置１０２は、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）のようなエンドユーザコンピューター装置、または、通信ネットワーク１０４を介してデータを通信するように構成された任意の他の装置である。一実施形態では、第２のコンピューター装置１０６は、オーディオデータまたはビデオデータなどのメディアコンテンツを格納するサーバである。一実施形態では、第２のコンピューター装置１０６は、コンテンツ配信ネットワーク（ＣＤＮ）内のサーバである。しかし、第１のコンピューター装置１０２と第２のコンピューター装置１０６は、互いに通信する任意の二つのコンピューター装置であってもよいことを、当業者であれば理解することができるであろう。一実施形態によれば、通信ネットワーク１０４はインターネットである。
【００１０】
図２は、本発明の一実施形態による図１の第１のコンピューター装置１０２のより詳細な図である。図に示めすように、第１のコンピューター装置１０２は、中央処理装置（ＣＰＵ）２０５、ネットワークインターフェース２１５、配線（相互接続部）２２０、および、メモリ２２５を備える。また、第１のコンピューター装置１０２は、入力／出力（Ｉ／Ｏ）デバイスインターフェース２１０、第１のコンピューター装置１０２に接続するＩ／Ｏデバイス２１２（例えば、キーボード、ディスプレイ、マウスデバイス）を備えるようにしてもよい。
【００１１】
ＣＰＵ２０５は、メモリ２２５に格納されたプログラミング命令を取得して実行する。同様に、ＣＰＵ２０５はメモリ２２５に存在するアプリケーションデータを格納し取得する。配線２２０は、ＣＰＵ２０５、Ｉ／Ｏデバイスインターフェース２１０、ストレージ２３０、ネットワークインターフェース２１５、および、メモリ２２５の間で、プログラミング命令およびアプリケーションデータを送信するために使用される。ＣＰＵ２０５には、単一のＣＰＵ、複数のＣＰＵ、複数の処理コアを有する単一のＣＰＵなどに代表されるものが含まれる。メモリ２２５には、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブおよび／またはフラッシュメモリストレージドライブが含まれる。
【００１２】
図に示めすように、メモリ２２５には、コンテンツ再生部２３０、セキュア通信モジュール２４０、および、更新インストールモジュール２５０が設けられる。一実施形態では、コンテンツ再生部２３０は、第１のコンピューター装置１０２のエンドユーザにオーディオデータまたはビデオデータを提供するように構成されたメディアプレーヤーである。セキュア通信モジュール２４０には、実行されると、第１のコンピューター装置１０２が通信ネットワーク１０４を介して第２のコンピューター装置１０６などの他のコンピューター装置と暗号化通信を行うソフトウェアが設けられる。更新インストールモジュール２５０には、実行されると、コンテンツ再生部２３０とセキュア通信モジュール２４０を更新するソフトウェアが設けられる。
【００１３】
図に示すように、コンテンツ再生部２３０には、バージョン情報２３５が含まれている。バージョン情報２３５には、コンテンツ再生部２３０のソフトウェアの現在のバージョンを表す情報が格納されている。一実施形態では、バージョン情報２３５は、バージョンの番号を含み、別の実施形態では、バージョン情報２３５は、最後に変更されたコンテンツ再生部２３０のソフトウェアの日時を含む。
【００１４】
図に示すように、セキュア通信モジュール２４０は、セキュアモジュール２４５を備える。一実施形態では、セキュアモジュール２４５は、第１のコンピューター装置１０２のエンドユーザによって読み取りまたは改変できないデータが含まれている難読化モジュールである。一実施形態に従うセキュアモジュール２４５の動作のより詳細な説明を、下記の図３の説明に関連して提供する。一実施形態では、また、更新インストールモジュール２５０は、バージョン情報２３５に対応するセキュアモジュール２４５を保証するために、コンテンツ再生部２３０のバージョン情報２３５とセキュア通信モジュール２４０のセキュアモジュール２４５を更新する。
【００１５】
一実施形態では、コンテンツ再生部２３０とセキュア通信モジュール２４０は、常に一緒に更新される。したがって、コンテンツ再生部２３０のバージョン情報２３５が更新されると、常にセキュア通信モジュール２４０のセキュアモジュール２４５も更新される。
【００１６】
図３は、本発明の一実施形態に係る、図２の第１のコンピューター装置１０２におけるセキュア通信モジュール２４０のより詳細な図である。図に示すように、セキュア通信モジュール２４０は、セキュアモジュール２４５、第１のコンピューター装置のプライベート秘密値３３０、第１のコンピューター装置の公開値３４０、第２のコンピューター装置の公開値３５０、共有秘密鍵３６０、および、メッセージ暗号化／復号化モジュール３７０が設けられる。
【００１７】
セキュアモジュール２４５は、生成要素値３１０、素数要素値３２０を含む。当業者であれば、そのような値は、例えばＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムのような鍵交換アルゴリズム、あるいは、例えばＥｌＧａｍａｌ暗号化アルゴリズムのような暗号化アルゴリズム、あるいは、デジタル署名アルゴリズム（ＤＳＡ）等の暗号アルゴリズムを実装するために必要であることが理解できるであろう。一実施形態では、セキュアモジュール２４５、生成要素値３１０、および素数要素値３２０が、コンテンツ再生部２３０の特定のバージョン情報２３５に対応する。言い換えると、コンテンツ再生部２３０のバージョン情報２３５が更新されると、常に生成要素値３１０および素数要素値３２０も更新される。このような技術が、セキュアモジュール２４５がバージョン情報２３５に対応することを保証する。一実施形態では、生成要素値３１０は素数要素値３２０から１を引いた値と互いに素である。一実施形態では、試行錯誤しても生成要素値３１０を得ることが難しくなるように、生成要素値３１０は、第１の閾値よりも多いビットを含み、生成要素値３１０を用いた高速のバイナリ計算を容易にするために、１が設定されるビットが第２の閾値よりも少ない。一実施形態では、試行錯誤しても、以下の値、素数要素値３２０、公開値３４０、公開値３５０および共有秘密鍵３６０を得ることが難しくなるように、素数要素値３２０は、第３の閾値よりも大きい。しかし、当業者であれば、暗号化アルゴリズム、鍵交換アルゴリズム、または署名アルゴリズムに応じて有効な任意の生成要素値３１０および素数要素値３２０を、本明細書に記載の技術と組み合わせて実装できることが理解できるであろう。
【００１８】
一実施形態によれば、実装されている暗号アルゴリズムは、鍵交換アルゴリズムであり、より具体的には、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、第１のコンピューター装置のプライベート秘密値３３０は、セキュア通信モジュール２４０によって選択される。第１のコンピューター装置のプライベート秘密値３３０は、１（one）と素数要素値３２０より１小さい数（one less than）の間の数である。図に示すように、第１のコンピューター装置の公開値３４０は、生成要素値３１０、素数要素値３２０、および第１のコンピューター装置のプライベート秘密値３３０から決定される。第１のコンピューター装置の公開値３４０は、通信ネットワーク１０４を通して第２のコンピューター装置１０６へ送信される。実装されている鍵交換アルゴリズムがＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであれば、第１のコンピューター装置の公開値３４０は、式（１）に従って計算される。
【００１９】
【数１】
2014522171.tif 000003
【００２０】
ここで、Ａは、第１のコンピューター装置の公開値３４０であり、ａは第１のコンピューター装置のプライベート秘密値３３０であり、ｇは生成要素値３１０であり、ｐは素数要素値３２０である。
【００２１】
一実施形態では、セキュア通信モジュール２４０は、第２のコンピューター装置の公開値３５０をさらに記憶する。一実施形態では、第２のコンピューター装置の公開値３５０は、通信ネットワーク１０４を通じて第２のコンピューター装置１０６から受信される。さらに、一実施形態では、セキュア通信モジュール２４０は、共有秘密鍵３６０をさらに記憶する。図に示すように、共有秘密鍵３６０は、素数要素値３２０、第１のコンピューター装置のプライベート秘密値３３０、および第２のコンピューター装置の公開値３５０に基づいて計算される。一実施形態によれば、実装されている鍵交換アルゴリズムがＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、共有秘密鍵３６０は式（２）に従って計算される。
【００２２】
【数２】
2014522171.tif 000004
【００２３】
ここで、ｓは共有秘密鍵３６０であり、Ｂは第２のコンピューター装置の公開値３５０であり、ａは第１のコンピューター装置のプライベート秘密値３３０であり、ｐは素数要素値３２０である。
【００２４】
しかしながら、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム以外の暗号化アルゴリズムを、本明細書に記載の技術と組み合わせて使用できることは、当業者であれば理解できるであろう。Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム以外の暗号化アルゴリズムが使用される場合、第１のコンピューター装置の公開値３４０および共有秘密鍵３６０の算出式は、上記の式（１）、（２）とは異なるであろう。
【００２５】
メッセージ暗号化／復号化モジュール３７０は、暗号化／復号化アルゴリズムと共有秘密鍵３６０を使用して、メッセージを暗号化および復号化するように構成される。
【００２６】
図４は、本発明の一実施形態による図１の第２のコンピューター装置１０６のより詳細な図である。図に示すように、第２のコンピューター装置１０６は、中央処理装置（ＣＰＵ）４０５、ネットワークインターフェース４１５、配線４２０、およびメモリ４２５を備える。また、第２のコンピューター装置１０６は、第２のコンピューター装置１０６のＩ／Ｏデバイス４１２（例えば、キーボード、ディスプレイ、およびマウスデバイス）に接続する入力／出力（Ｉ／Ｏ）デバイスインターフェース４１０を備えるようにしてもよい。
【００２７】
図に示すように、メモリ４２５には、コンテンツストア４３０、セキュア通信モジュール４４０、および更新送信モジュール４５０が設けられる。一実施形態では、コンテンツストア４３０は、第１のコンピューター装置１０２に設けられたコンテンツ再生部２３０にオーディオデータまたはビデオデータを提供するように構成されているメディアストアである。セキュア通信モジュール４４０には、実行されると、第２のコンピューター装置１０６が、例えば、第１のコンピューター装置１０２などの別のコンピューター装置と、通信ネットワーク１０４を介して暗号化された通信を行うソフトウェアが含まれている。更新送信モジュール４５０には、実行されると、コンテンツストア４３０とセキュア通信モジュール４４０を更新し、また、第１のコンピューター装置１０２上のコンテンツ再生部２３０とセキュア通信モジュール２４０を更新するソフトウェアが含まれている。
【００２８】
図に示すように、コンテンツストア４３０は、バージョン情報４３５が含まれている。バージョン情報４３５は、コンテンツ再生部４３０のソフトウェアの現在のバージョンを表す情報が格納されている。一実施形態では、コンテンツストア４３０は、コンテンツストア４３０のバージョン情報４３５がコンテンツ再生部２３０のバージョン情報２３５に対応する場合にのみ、第１のコンピューター装置１０２上のコンテンツ再生部２３０にコンテンツをダウンロードすることができるように構成される。一実施形態では、バージョン情報４３５に、バージョン番号が含まれている。別の実施形態では、バージョン情報４３５に、コンテンツストア４３０に関連付けられた再生部のソフトウェアが最後に変更されたときの日付と時刻が含まれている。
【００２９】
一実施形態では、更新送信モジュール４５０が、セキュア通信モジュール４４０およびコンテンツストア４３０のコンテンツを更新するときは、更新送信モジュール４５０は、コンテンツ再生部２３０とセキュア通信モジュール２４０の両方も更新するために、第１のコンピューター装置１０２にソフトウェアを提供する。このような更新は、コンテンツストア４３０のバージョン情報４３５が、第１のコンピューター装置１０２のコンテンツ再生部のバージョン情報２３５に対応することを保証する。さらに、このような更新は、第１のコンピューター装置１０２のセキュア通信モジュール２４０のセキュアモジュール２４５内の値が第２のコンピューター装置１０６のセキュア通信モジュール４４０内の値に対応することを保証する。
【００３０】
図５は、本発明の一実施形態による図４の第２のコンピューター装置のセキュア通信モジュール４４０のより詳細な図である。図に示すように、セキュア通信モジュール４４０には、生成要素値５１０、素数要素値５２０、第２のコンピューター装置のプライベート秘密値５３０、第２のコンピューター装置の公開値３５０、第１のコンピューター装置の公開値３４０、共有秘密情報５４０、メッセージの暗号化／復号化モジュール５５０が含まれる。当業者にとって明らかであるように、一実施形態では、第２のコンピューター装置１０６のセキュア通信モジュール４４０は、第２のコンピューター装置１０６にセキュアモジュール２４５がない点で、第１のコンピューター装置１０２のセキュア通信モジュールとは異なる。代わりに、生成要素値５１０および素数要素値５２０は、セキュリティが保障されていないモジュール（図に現れていない）に記憶されている。セキュア通信モジュールが第１のコンピューター装置１０２上では要求され、第２のコンピューター装置１０６上では要求されない理由の一つは、エンドユーザが第１のコンピューター装置１０２へのアクセス権を持っているが、第２のコンピューター装置１０６へのアクセス権は持っていないからである。一実施形態では、このような実際のパターンでは、第１のコンピューター装置１０２が、ラップトップ、または、デスクトップコンピュータ、または、エンドユーザによって操作される携帯電話などのクライアントコンピューター装置であり、第２のコンピューター装置１０６は、メディアコンテンツプロバイダに属するコンテンツ配信ネットワーク（ＣＤＮ）のサーバマシンが割り当てられる。
【００３１】
一実施形態では、第２のコンピューター装置１０６上に格納された生成要素値５１０および素数要素値５２０は、第１のコンピューター装置１０２上に記憶された生成要素値３１０および素数要素値３２０にそれぞれ等しい。当業者であれば、生成要素値５１０および素数要素値５２０は、例えばＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム、ＥｌＧａｍａｌ暗号化アルゴリズム、又はデジタル署名アルゴリズム（ＤＳＡ）などの暗号化アルゴリズムを実装するために必要であることが理解できるであろう。一実施形態では、生成要素値５１０および素数要素値５２０は、コンテンツストア４３０の特定のバージョン情報４３５に対応する。言い換えると、コンテンツストア４３０のバージョン情報４３５が更新されれば、常に生成要素値５１０および素数要素値５２０も更新される。このような技術は、生成要素値５１０および素数要素値５２０がバージョン情報４３５に対応することを保証する。一実施形態では、生成要素値５１０は、素数要素値５２０と互いに素である。一実施形態では、生成要素値５１０は、第１の閾値よりも多いビットで構成され、生成要素値５１０を用いたバイナリ値の計算を容易にするために、１に設定されたビットは第２の閾値より少ない。一実施形態では、試行錯誤して、以下の値、素数要素値３２０、公開値３５０と共有秘密鍵５４０を推測することが難しくなるように、素数要素値５２０は第３の閾値数よりも大きい。しかしながら、当業者であれば、暗号化アルゴリズムに対して有効な任意の生成要素値５１０および素数要素値５２０を、本明細書に記載の技術と組み合わせて実装できることが理解できるであろう。
【００３２】
一実施形態によれば、実装されている鍵交換アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、第２のコンピューター装置のプライベート秘密値５３０は、セキュア通信モジュール４４０によって、１と素数要素値５２０より１少ない数の間の数になるように選択される。図に示すように、第２のコンピューター装置の公開値３５０が、第２のコンピューター装置の生成要素値５１０、素数要素値５２０、およびプライベート秘密値５３０から決定される。一実施形態によれば、実装されている暗号化アルゴリズムがＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、第２のコンピューター装置の公開値３５０は、式（３）に従って計算される。
【００３３】
【数３】
2014522171.tif 000005
【００３４】
Ｂは、第２のコンピューター装置の公開値３５０であり、ｂは第２のコンピューター装置のプライベート秘密値５３０であり、ｇは生成要素値５１０であり、ｐは素数要素値５２０である。
【００３５】
一実施形態では、セキュア通信モジュール４４０は、第１のコンピューター装置の公開値３４０をさらに記憶する。一実施形態では、第１のコンピューター装置の公開値３４０は、通信ネットワーク１０４を通じて第１のコンピューター装置１０２から受信される。また、一実施形態では、セキュア通信モジュール４４０がさらに共有秘密鍵５４０を記憶する。図に示すように、共有秘密鍵５４０は、素数要素値５２０、第２のコンピューター装置のプライベート秘密値５３０、および第１のコンピューター装置の公開値３４０に基づいて計算される。一実施形態によれば、実装されている鍵交換アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、共有秘密鍵５４０は式（４）に従って計算される。
【００３６】
【数４】
2014522171.tif 000006
【００３７】
ｓは共有秘密鍵５４０であり、Ａは第１のコンピューター装置の公開値３４０であり、ｂは第２のコンピューター装置のプライベート秘密値５３０であり、ｐは素数要素値５２０である。
【００３８】
しかし、当業者であれば、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム以外の暗号化アルゴリズムが、本明細書に記載の技術と組み合わせて使用できることが理解できるであろう。Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム以外の暗号化アルゴリズムが使用される場合、第２のコンピューター装置の公開値算３５０および共有秘密鍵５４０を計算する上記の式（３）、（４）は異なるであろう。
【００３９】
メッセージの暗号化／復号化モジュール５５０は、暗号化／復号化アルゴリズムおよび共有秘密鍵５４０を使用して、メッセージを暗号化および復号化するように構成される。
【００４０】
図６は、本発明の一実施形態による、難読化する手法で共有秘密鍵を計算する方法のステップのフローチャートである。方法のステップは、図１〜５に関連して記載されているが、当業者であれば、方法のステップを任意の順序で実行するように構成されたあらゆるシステムが、本発明の範囲内であることが理解できるであろう。
【００４１】
方法６００は、ステップ６１０から開始し、セキュア通信モジュール４４０は、セキュア通信モジュール４４０に記憶された少なくとも１つの初期設定値と、プライベート秘密値５３０と、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムやＥｌＧａｍａｌ暗号化アルゴリズムやデジタル署名アルゴリズム（ＤＳＡ）などのアルゴリズムとに基づいて、第２のコンピューター装置の公開値３５０を計算する。一実施形態では、鍵交換アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、第２のコンピューター装置の公開値３５０が、上記の式（３）に従って計算される。ステップ６２０で、セキュア通信モジュール４４０は、第２のコンピューター装置の公開値３５０を第１のコンピューター装置１０２のセキュア通信モジュール２４０へ送信する。一実施形態では、第２のコンピューター装置の公開値３５０が第２のコンピューター装置１０６から通信ネットワーク１０４を通じて送信される。
【００４２】
方法６００は、そこで続いてステップ６３０で、セキュア通信モジュール２４０は、第２のコンピューター装置の公開値３５０を受信する。ステップ６４０で、セキュア通信モジュール２４０は、第１のコンピューター装置のプライベート秘密値３３０を計算する。一実施形態では、第１のコンピューター装置のプライベート秘密値３３０は、１と素数要素値３２０より１小さい数の間の値である。一実施形態では、第１のコンピューター装置のプライベート秘密値３３０の算出および記憶部が難読化されている。
【００４３】
次に、方法６００は、続いてステップ６５０で、セキュア通信モジュール２４０は、プライベート秘密値３３０と第２のコンピューター装置の公開値３５０と素数要素値３２０とに基づいて、共有秘密鍵３６０を決定する。一実施形態では、鍵交換アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、共有秘密鍵３６０は、上記の式（２）に従って計算される。一実施形態では、第１のコンピューター装置の共有秘密値３６０の計算は難読化されている。
【００４４】
ステップ６６０で、セキュア通信モジュール２４０は、プライベート秘密値３３０、生成要素値３１０、および素数要素値３２０に基づいて、第１のコンピューター装置の公開値３４０を計算する。一実施形態では、第１のコンピューター装置の公開値３４０の計算は難読化されている。ステップ６７０で、セキュア通信モジュール２４０は、第１のコンピューター装置の公開値３４０を、通信ネットワーク１０４を介して第２のコンピューター装置１０６へ送信する。
【００４５】
第２のコンピューター装置１０６のセキュア通信モジュール４４０は、図６に関する上記の処理と同様の処理に従って、共有秘密鍵５４０を決定する。しかし、重要な違いは、一実施形態では、第２のコンピューター装置１０６のセキュア通信モジュール４４０には、セキュアモジュール２４５が存在しないということである。第１のコンピューター装置１０２のセキュアモジュール２４５に格納された値に対応する値は、第２のコンピューター装置１０６ではセキュア通信モジュール４４０によって記憶される。
【００４６】
図７に、本発明の一実施形態による、図１の第１のコンピューター装置が、コンテンツ再生アプリケーションの正しいバージョンを備えていることを検証する方法のステップのフローチャートである。しかし、方法のステップは、図１〜５に関連して記載されているが、当業者であれば、方法ステップを任意の順序で実行するように構成されたあらゆるシステムが、本発明の範囲内であることが理解できるであろう。
【００４７】
方法７００は、ステップ７１０から始まり、第２のコンピューター装置１０６のセキュア通信モジュール４４０に含まれるメッセージの暗号化／復号化モジュール５５０は、既に計算されている共有秘密鍵５４０に基づいてメッセージを暗号化する。ステップ７２０で、メッセージ暗号化／復号化モジュール５５０は、第１のコンピューター装置１０２に暗号化されたメッセージを送信する。ステップ７３０で、第１のコンピューター装置１０２のセキュア通信モジュール２４０に含まれるメッセージ暗号化／復号化モジュール３７０は、復号化アルゴリズムと図６に記載された技術を用いて計算された共有秘密鍵３６０とに基づいて、第２のコンピューター装置１０６から受信した暗号化メッセージを復号化する。
【００４８】
ステップ７４０で、メッセージ暗号化／復号化モジュール５５０は、第１のコンピューター装置１０２が、ステップ７２０で第２のコンピューター装置１０６によって送信されたメッセージを正しく復号化したか否かを判定する。第１のコンピューター装置１０２がメッセージを正しく復号化した場合、本方法はステップ７５０に進み、第１のコンピューター装置１０２と第２のコンピューター装置１０６の間の通信を継続する。重要なのは、第１のコンピューター装置１０２によって計算された共有秘密鍵３６０が正しい場合、第１のコンピューター装置１０２は、正確に第２のコンピューター装置１０６によって送信されたメッセージを正確に復号化できることである。しかし、第１のコンピューター装置１０２がメッセージを正しく復号化されなかった場合には、本方法はステップ７６０に進み、第１のコンピューター装置１０２と第２のコンピューター装置１０６の間の通信を終了する。
【００４９】
一実施形態では、第１のコンピューター装置１０２は、セッション鍵を生成するために、セッション鍵生成アルゴリズムへの入力として復号化されたメッセージを使用する。セッション鍵は、そこで、ステップ７４０で、第１のコンピューター装置１０２がメッセージを正しく復号化したか否かを決定するために、第２のコンピューター装置１０６によって確認される。
【００５０】
別の実施形態では、第１のコンピューター装置１０２および第２のコンピューター装置１０６は、セッション鍵を生成するためにセッション鍵生成アルゴリズムへの入力として共有秘密鍵を使用する。セッション鍵は、１０２および１０６間で通信されるメッセージの暗号化に使用される。セッション鍵は、そこで、ステップ７４０で、第１のコンピューター装置１０２がメッセージを正しく復号化したかどうかを決定するために、第２のコンピューター装置１０６によって確認される。
【００５１】
他の実施形態では、第１のコンピューター装置１０２および第２のコンピューター装置１０６の両方が、メッセージの値に同意し、第１のコンピューター装置１０２で生成された復号化されたメッセージが同意済みの値と一致しない場合は、第１のコンピューター装置１０２は、メッセージを正しく復号化できなかった。このような実施形態では、第１のコンピューター装置１０２は、復号化されたメッセージが同意済みの値と一致しないことを示すエラーメッセージを、第２のコンピューター装置１０２に送信する。
【００５２】
当業者であれば、本明細書に記載の本発明の態様は、異なるバージョンを有するソフトウェアプログラムに適用できることが理解できるであろう。言い換えれば、任意のソフトウェアプログラムを、本明細書に記載のコンテンツ再生アプリケーション２３０に置き換えることができる。
【００５３】
図８に、本発明の一実施形態による、図１の第１のコンピューター装置１０２のコンテンツ再生部２３０とセキュア通信モジュール２４０を更新する方法のステップのフローチャートである。方法のステップは、図１〜５に関連して記載されているが、当業者であれば、方法のステップを任意の順序で実行するように構成されたあらゆるシステムが本発明の範囲内であることが理解できるであろう。
【００５４】
方法８００は、ステップ８１０から始まり、第２のコンピューター装置１０６の更新送信モジュール４５０は、更新コマンドを受信する。一実施形態では、管理部が、第１のコンピューター装置１０２上のコンテンツ再生部２３０のソフトウェアにセキュリティ上の欠陥を検出し、このソフトウェアを更新することが望まれるときに、更新コマンドは第２のコンピューター装置１０６の管理部によって提供される。方法８００は、そこでステップ８２０に進み、更新送信モジュール４５０は、コンテンツストアのバージョン情報４３５を更新したときに、必要に応じて、コンテンツストア４３０を更新する。次に、方法８００は、ステップ８３０に進み、更新送信モジュール４５０は、第２のコンピューター装置のセキュア通信モジュール４４０の初期設定値を更新する。一実施形態では、更新送信モジュール４５０は、生成要素値５１０または素数要素値５２０の少なくとも一つを更新する。
【００５５】
方法８００は、そこで続いてステップ８４０で、更新送信モジュール４５０は、第１のコンピューター装置１０２でコンテンツ再生部２３０を更新する。一実施形態では、更新送信モジュール４５０は、通信ネットワーク１０４を介して第１のコンピューター装置１０２と通信する。
【００５６】
方法８００は、そこで続いてステップ８５０で、更新送信モジュール４５０は、第１のコンピューター装置１０２で、セキュア通信モジュール２４０のセキュアモジュール２４５における、初期設定値、生成要素３１０、および素数要素値３２０を更新する。最後に、この方法８００では、続くステップ８６０で、更新送信モジュール４５０は第１のコンピューター装置１０２で、更新を反映するためにコンテンツ再生部のバージョン情報２３５を更新する。ステップ８６０の後、方法８００は終了する。
【００５７】
要約して言えば、開示された技術は、難読化された初期設定値を用いた暗号化アルゴリズムをより広範に提供し、通信ソフトウェアの唯一の承認されたバージョンが正常にメッセージを暗号化および復号化することを保証する。より具体的には、この技術の一実施形態によると、暗号アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズムであり、初期設定値は、生成要素値および素数要素値である。特にこの実装によれば、クライアントコンピューター装置は、通信ソフトウェアの現在のバージョンをダウンロードし、それに暗号化アルゴリズムのための生成要素値と素数要素値が含まれる。生成要素値および素数要素値の両方が、クライアントコンピューター装置内の、クライアントコンピューター装置のユーザによって読み取りまたはアクセスすることができない秘密のあるいは難読化されたモジュールの中に格納される。
【００５８】
Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換プロトコルに従って、サーバマシンと通信するために、クライアントコンピューター装置は、プライベート秘密値と公開値を生成する。公開値は、プライベート秘密値、生成要素値、および、秘密のあるいは難読化されたモジュールに格納されている素数要素値に基づいて計算される。クライアントコンピューター装置は、サーバマシンへ公開値を送信する。サーバコンピューター装置から公開値を受信すると、クライアントコンピューター装置は、クライアントコンピューター装置のプライベート秘密値、サーバマシンの公開値、および、秘密にあるいは難読化されて格納された素数要素値モジュールに基づいて共有秘密鍵を計算する。その後クライアントコンピューター装置とサーバマシン間の通信は、計算された共有秘密鍵に基づいて暗号化または復号化が行われる。いくつかの実装では、また、クライアントコンピューター装置とサーバマシンは、クライアントとサーバの間で設定されたメッセージを復号化できれば、両方が暗黙のうちに同じ共有秘密鍵を持っていることが検証される。
【００５９】
開示された手法の１つの利点は、クライアントコンピューター装置にある著作権があるメディアをダウンロードおよび表示するソフトウェアが安全かつ承認されたバージョンである場合のみ、クライアントコンピューター装置は、著作権があるメディアコンテンツをダウンロードできることである。その結果、著作権があるメディアのコンテンツプロバイダは、より容易に、提供されたコンテンツを表示するために承認された安全なメディアプレーヤーのみが実装されていることが保証される。
【００６０】
本発明の実施形態に従うことなく、基本的な範囲から逸脱することなく、発明を他のさらなる実施形態で実施することが可能である。例えば、本発明は、ハードウェアまたはソフトウェア、またはハードウェアとソフトウェアの組み合わせで実装することが可能である。本発明の一実施形態のコンピューターシステムで使用するためのプログラム製品として実装するようにしてもよい。プログラム製品のプログラム（複数であってもよい）は実施形態（ここに記載された方法を含む）の機能を規定し、各種コンピューターの読み取り可能な記憶媒体に記憶することが可能である。例示したコンピューターが読み取り可能な記録媒体に限定されるものではないが：（ｉ）書き込み不可能な記録媒体（例えば、ＣＤ−ＲＯＭドライブによって読み取り可能なＣＤ−ＲＯＭディスクのようなコンピューター内の読み取り専用メモリ、フラッシュメモリ、ＲＯＭチップ、またはあらゆる種類の半導体の不揮発性半導体メモリ）に情報が永久的に格納され：（ｉｉ）書き込み可能な記録媒体（例えば、ディスクドライブ内のフロッピー（登録商標）ディスク、またはハードディスクドライブ、またはあらゆる種類のランダムアクセス可能な半導体メモリ）に変更可能な情報が格納される。本発明の機能を指示するコンピューターが読み取り可能な命令を運ぶものであればコンピューター読み取り可能記録媒体は、本発明の実施形態に含まれる。
上記の観点から、クレームに従って本発明の範囲が決定される。
【図２】
2014522171.tif 000007
【図３】
2014522171.tif 000008
【図４】
2014522171.tif 000009
【図５】
2014522171.tif 000010
【図６】
2014522171.tif 000011
【図８】
2014522171.tif 000012
【図１】
2014522171.tif 000013
【図７】
2014522171.tif 000014
【手続補正書】
【提出日】平成26年3月24日(2014.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のコンピューター装置がソフトウェアプログラムの正しいバージョンを有するか否かを決定するためのコンピューター実装方法であり、該方法は、
少なくとも１つの初期設定値に基づいて、プライベート秘密値を計算するステップと、
前記プライベート秘密値および少なくとも１つの初期設定値に基づいて、公開値を計算するステップと、
第２のコンピューター装置へ前記公開値を送信するステップと、
前記第２のコンピューター装置から第２の公開値を受信するステップと、
前記第２のコンピューター装置から受信した前記第２の公開値とプライベート秘密値に基づいて、共有秘密鍵を計算するステップと、
前記第２のコンピューター装置から暗号化メッセージを受信するステップと、
前記共有秘密鍵を使用して暗号化されたメッセージを復号化するステップと、
前記メッセージが正しく復号されたか否かを決定するステップと、
を備え、
前記メッセージが正しく復号された場合には、前記第１のコンピューター装置および前記第２のコンピューター装置が、前記バージョンが同じソフトウェアプログラムを持っているので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を継続する、
又は、
前記メッセージが正しく復号されなかった場合には、前記第１のコンピューター装置および前記第２のコンピューター装置は、前記バージョンが同じソフトウェアプログラムを持っていないので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を終了させる、ことを特徴とする方法。
【請求項２】
前記メッセージの暗号化と復号化に使用される前記暗号化アルゴリズムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換アルゴリズム、ＥｌＧａｍａｌ暗号アルゴリズムまたはデジタル署名アルゴリズムであることを特徴とする請求項１に記載の方法。
【請求項３】
前記少なくとも１つの初期設定値は、元となる生成値または素数要素値を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記元となる生成値はバイナリ表現において、第１の閾値よりも多いビット数で構成され、１のビットが第２の閾値よりも少ないことを特徴とする請求項３に記載の方法。
【請求項５】
前記素数要素値はバイナリ表現において、第３の閾値以上のビットで構成されていることを特徴とする請求項３に記載の方法。
【請求項６】
前記暗号化されたメッセージは、前記第２のコンピューター装置によって計算され共有秘密鍵に基づいて、暗号化された元のメッセージで構成されることを特徴とする請求項１に記載の方法。
【請求項７】
前記メッセージが正しく復号された場合、前記復号化されたメッセージは前記元のメッセージと一致し、前記第２のコンピューター装置から受信した前記第２の公開値に基づいて計算された前記共有秘密鍵は、前記第２のコンピューター装置によって計算された共有秘密鍵に等しいことを特徴とする請求項６に記載の方法。
【請求項８】
前記第２のコンピューター装置は、前記メッセージが正しく復号化されたか否かを決定し、前記第１のコンピューター装置と前記第２のコンピューター装置の間の通信を継続、または、終了することを特徴とする請求項１に記載の方法。
【請求項９】
前記第１のコンピューター装置による前記プライベート秘密値、前記公開値および前記共有秘密鍵の前記計算が、難読化されていることを特徴とする請求項１記載の方法。
【請求項１０】
処理ユニットにより実行されると、第１のコンピューター装置がソフトウェアプログラムの正しいバージョンを有するか否かを決定するように機能させるための命令を記憶する非一時的なコンピューター読み取り可能な記録媒体であって、
前記処理ユニットが、
少なくとも１つの初期設定値に基づいて、プライベート秘密値を計算するステップと、
前記プライベート秘密値および少なくとも１つの初期設定値に基づいて、公開値を計算するステップと、
第２のコンピューター装置へ前記公開値を送信するステップと、
前記第２のコンピューター装置から第２の公開値を受信するステップと、
前記第２のコンピューター装置から受信した前記第２の公開値とプライベート秘密値に基づいて、共有秘密鍵を計算するステップと、
前記第２のコンピューター装置から暗号化メッセージを受信するステップと、
前記共有秘密鍵を使用して暗号化されたメッセージを復号化するステップと、
前記メッセージが正しく復号されたか否かを決定するステップと、を実行するものであり、
前記メッセージが正しく復号された場合には、前記第１のコンピューター装置および前記第２のコンピューター装置が、前記バージョンが同じソフトウェアプログラムを持っているので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を継続する命令、又は、
前記メッセージが正しく復号されなかった場合には、前記第１のコンピューター装置および前記第２のコンピューター装置は、前記バージョンが同じソフトウェアプログラムを持っていないので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を終了させる命令を記憶することを特徴とする記憶媒体。
【請求項１１】
第１のコンピューター装置が、
処理ユニットであって、
少なくとも１つの初期設定値に基づいて、プライベート秘密値を計算する手段、
前記プライベート秘密値および少なくとも１つの初期設定値に基づいて、公開値を計算する手段、
第２のコンピューター装置へ前記公開値を送信する手段、
前記第２のコンピューター装置から第２の公開値を受信する手段、
前記第２のコンピューター装置から受信した前記第２の公開値とプライベート秘密値に基づいて、共有秘密鍵を計算する手段、
前記第２のコンピューター装置から暗号化メッセージを受信する手段、
前記共有秘密鍵を使用して暗号化されたメッセージを復号化する手段、および
前記メッセージが正しく復号されたか否かを決定する手段、
として機能する処理ユニットを備え、
前記メッセージが正しく復号された場合には、前記第１のコンピューター装置および前記第２のコンピューター装置が、前記バージョンが同じソフトウェアプログラムを持っているので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を継続する、又は、
前記メッセージが正しく復号されなかった場合には、前記第１のコンピューター装置および前記第２のコンピューター装置は、前記バージョンが同じソフトウェアプログラムを持っていないので、前記第１のコンピューター装置および前記第２のコンピューター装置の間の通信を終了する、ことを特徴とする第１のコンピューター装置。
【国際調査報告】
2014522171.tif 000015