(57)【特許請求の範囲】
【請求項１】
コンテンツ保護方式で使用される値である完全性値を計算するためのメッセージを配布する配布センターから前記メッセージを受信するユーザ装置であって当該ユーザ装置を一義的に識別する値と元の完全性値Ｋとを記憶する記憶手段を有するユーザ装置が実行する方法であって、
前記配布センターから、新たな完全性値Ｋ´を計算するための新たなメッセージと共に、元のメッセージのハッシュ値ｈ０が秘密鍵によって暗号化された値ｓであって、前記秘密鍵に対応する公開鍵である前記新たなメッセージのハッシュ値ｈ１および素数の積ｐｑによって復号した場合に前記元のメッセージのハッシュ値ｈ０になるように暗号化された値ｓと、前記素数の積ｐｑとを受信するステップと、
受信した前記新たなメッセージのハッシュ値ｈ１を計算するステップと、
受信した前記暗号化された値ｓを、計算した前記新たなメッセージのハッシュ値ｈ１および受信した素数の積ｐｑによって復号し、前記復号した値ｈ０と、前記一義的に識別する値とに基づいて前記新たな完全性値Ｋ´を計算するステップと、
前記記憶手段によって記憶されている前記元の完全性値Ｋを、計算した前記新たな完全性値Ｋ´に更新するステップと、
計算した前記新たな完全性値Ｋ´をコンテンツにアクセスするために使用するステップと、
を含み、前記新たな完全性値Ｋ´は前記元の完全性値Ｋと一致することを特徴とするソフトウェアの完全性を保証する方法。
【請求項２】
前記完全性値Ｋの計算は、前記一義的に識別する値ｇ１とｇ２、デジタル・シグネットａ、および法Ｍを用いて計算するデジタル・シグネット計算（Ｋ＝ｇ１ｈ０ｇ２ａ  ｍｏｄ  Ｍ）である、請求項１に記載の方法。
【請求項３】
前記デジタル・シグネット計算の結果が、前記コンテンツ保護方式で使用される値である、請求項２に記載の方法。
【請求項４】
前記メッセージがソフトウェア・プログラムを含む、請求項１に記載の方法。
【請求項５】
コンテンツ保護方式で使用される値である完全性値を計算するためのメッセージを配布する配布センターと、前記メッセージを受信するユーザ装置であって当該ユーザ装置を一義的に識別する値と元の完全性値Ｋとを記憶する記憶手段を有するユーザ装置とを備えるシステムであって、
前記配布センターは、
新たな完全性値Ｋ´を計算するための新たなメッセージと共に、元のメッセージのハッシュ値ｈ０を秘密鍵によって暗号化した値ｓであって、前記秘密鍵に対応する公開鍵である前記新たなメッセージのハッシュ値ｈ１および素数の積ｐｑによって復号された場合に前記元のメッセージのハッシュ値ｈ０になるように暗号化した値ｓと、前記素数の積ｐｑとを送信する送信手段、を備え、
前記ユーザ装置は、
前記配布センターから、前記新たなメッセージと共に、前記秘密鍵によって暗号化された値ｓと、前記素数の積ｐｑとを受信する受信手段と、
前記受信手段によって受信された前記新たなメッセージのハッシュ値ｈ１を計算する計算手段と、
前記受信手段によって受信された前記暗号化された値ｓを、前記計算手段によって計算された前記新たなメッセージのハッシュ値ｈ１および受信した素数の積ｐｑによって復号し、前記復号した値ｈ０と、前記一義的に識別する値とに基づいて前記新たな完全性値Ｋ´を計算する完全性値計算手段と、
前記記憶手段によって記憶されている前記元の完全性値Ｋを、計算した前記新たな完全性値Ｋ´に更新する更新手段と、
前記完全性値計算手段によって計算された前記新たな完全性値Ｋ´をコンテンツにアクセスするために使用する認証手段と、を備え、
前記新たな完全性値Ｋ´は前記元の完全性値Ｋと一致することを特徴とする、システム。
【請求項６】
コンテンツ保護方式で使用される値である完全性値を計算するためのメッセージを配布する配布センターから前記メッセージを受信するユーザ装置であって当該ユーザ装置を一義的に識別する値と元の完全性値Ｋとを記憶する記憶手段を有するユーザ装置に、
前記配布センターから、新たな完全性値Ｋ´を計算するための新たなメッセージと共に、元のメッセージのハッシュ値ｈ０が秘密鍵によって暗号化された値ｓであって、前記秘密鍵に対応する公開鍵である前記新たなメッセージのハッシュ値ｈ１および素数の積ｐｑによって復号した場合に前記元のメッセージのハッシュ値ｈ０になるように暗号化された値ｓと、前記素数の積ｐｑとを受信するステップと、
受信した前記新たなメッセージのハッシュ値ｈ１を計算するステップと、
受信した前記暗号化された値ｓを、計算した前記新たなメッセージのハッシュ値ｈ１および受信した素数の積ｐｑによって復号し、前記復号した値ｈ０と、前記一義的に識別する値とに基づいて前記新たな完全性値Ｋ´を計算するステップと、
前記記憶手段によって記憶されている前記元の完全性値Ｋを、計算した前記新たな完全性値Ｋ´に更新するステップと、
計算した前記新たな完全性値Ｋ´をコンテンツにアクセスするために使用するステップと、
を実行させるためのコンピュータ・プログラムであって、前記新たな完全性値Ｋ´は前記元の完全性値Ｋと一致することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの耐改ざん性（tamper resistance）に関し、より詳細には、当分野におけるソフトウェアの更新を含めたデジタル・メッセージの認証および妥当性検査に関する。
【背景技術】
【０００２】
デジタル・ストレージ技術およびコンピュータ・ネットワークが進歩しているため、許可された受信者だけにデジタル・コンテンツを使用できるようにする取組みもまた進んでいる。デジタル・コンテンツ情報に対してセキュリティを提供するための一手法は、その情報を暗号化された形式で配布し、次いで必要な復号情報を鍵形式で正当なユーザだけに配布することである。残念ながら、配布された復号鍵を、良心的ではない正当なユーザが未許可の受信者と共用することができるので、特定のユーザに属するものであることを安全なデジタル情報の配布者に明らかにするよう受信側ハードウェアに要求することにより、匿名の共用を防止する傾向が増えてきている。配布者は、安全なデジタル情報の元のベンダ（vendor）であるか、またはそのベンダのために（コンピューティングおよび通信などの）様々なセキュリティ・タスクを処理する他の当事者であることができる。
【０００３】
例えば、ヘルマン（Hellman）の米国特許第４，６５８，０９３号は、「ベース・ユニット」（計算を実施するユ−ザ装置の特有のハードウェア・インスタンス）の製造者が、各特定のベース・ユニットで保管すべきランダム鍵を割り当てるというシステムを開示している。ユーザがソフトウェア・パッケージを使用したいとき、ユーザのベース・ユニットが乱数を生成し、それをソフトウェアの製造者に送る。その製造者は、特定のベース・ユニットの鍵と、要求されたソフトウェアと、ソフトウェアを使用することのできた許可回数と、ベース・ユニットによって生成された乱数との暗号関数である認証者応答を生成する。次いで、製造者は、その認証者応答を電子的にユーザのベース・ユニットに送達し、ベース・ユニットは、同じ暗号関数を使用して検査値を生成する。（ＲＳＡ暗号関数がヘルマンによって使用されている。それは、リベスト（Rivest）他の米国特許第４，４０５，８２９号に述べられており、それを参照のため本明細書に組み込むものとする。）その検査値が認証者応答にマッチした場合、ベース・ユニットはその認証応答を有効なものとして受け入れ、それによって、送達されたソフトウェアの使用できた回数を増分する。ベース・ユニットは、デジタル署名、および製造者メッセージのハッシュを用いて製造者からのメッセージを検証する。
【０００４】
デジタル署名は、当技術分野で周知であり、「このメッセージは本人のものか」という質問に対して単一ビットのイエス／ノーの回答を生成する。一般に、ハッシュは、大きな領域からより小さな範囲へと値をマップする数学的な関数の出力であり、任意の事前指定された出力に対応するどんな入力も見つけることが計算上不可能な一方向性のものであり、また同じ出力に対応する２つの別個の入力を見つけることも計算上不可能な衝突のないものである。このようなハッシュ関数は当技術分野で周知である。残念ながら、ヘルマンのシステムが必要とする双方向通信は、使用される配布方法によってはいつも適用可能ではなく、あるいはその分野におけるベース・ユニットの実際の数量によってはいつも実際的であるとはいえない。ヘルマンのシステムはさらに、ベース・ユニットの公開シリアル番号の知識からベース・ユニットの秘密鍵を決定するために用いられるシリアル番号と秘密鍵のメモリを維持するための認証および請求ユニットを必要とする。
【０００５】
グラウンケ（Graunke）他の米国特許第６，１０５，１３７号は、ソフトウェア・モジュールの完全性（integrity）を認証し、検証するための類似のシステムを述べている。ミロフ（Mirov）他の米国特許第６，１３８，２３６号は、この全般的なアプローチを拡張してブートＰＲＯＭ（boot
PROM）中でプログラムされたファームウェアを認証し、次いでその信用できるプログラム・コードを用いてその後の１組のプログラム・コードを認証するものである。ミロフ他のシステムは、自己解凍型の実行可能配布ファイルにデジタル署名を添付し、その配布されたソフトウェアは公開される公開ＲＳＡ復号鍵を用いて復号される。復号されたハッシュ値の比較により、比較が成功した場合、自己解凍型実行可能配布ファイルは安全であり、かつ偶発的もしくは意図的な破壊を受けていないと見なされ、比較が失敗した場合、ファイルは拒絶もしくは削除される。
【０００６】
ショー（Shaw）の米国特許第６，３４１，３７３号は、プログラム・コードの選択された部分だけを置換え可能にする他の安全なデータ更新方法を述べている。ショーはまた、クライアント装置がサーバから更新を受け取る前にそれ自体に関する識別情報を遠隔サーバに送信するよう要求する。
【０００７】
ムーア（Moore）の米国特許第５，３４３，５２７号は、再使用ライブラリのソフトウェア・コンポーネントの再利用者に、そのソフトウェア・コンポーネントが認証され有効であるかどうか、または何らかの未許可のエンティティによって改ざんされているかどうかの指示を提供する方法を教示する。
【０００８】
映画、音楽、テキスト、アプリケーション、およびデータベースは、コピー保護機能を有するデジタル形式で現在配布されているので、耐改ざん性ソフトウェアは、ますます重要になってきている。ソフトウェアの権利侵害者（pirates）は、再生装置のハードウェア中で使用されるソフトウェアを単にパッチするだけでこのコピー保護機能を破ろうとする可能性がある。すなわち、再生装置に偽のソフトウェア更新を提示し、次いで、正しく許可された装置によるアクセスとは別に、再生装置をすべてのコンテンツにアクセスできるようにする。当業界の大部分の会社は１つのソフトウェアの認証性を検査するのにデジタル署名を利用している。しかし、再生装置のソフトウェアにおける単一の命令をパッチすることによりその検査を使用不可にできるため、それは絶対安全な手法ではない。
【０００９】
デジタル・シグネット（signet）は、デジタル署名よりこの問題に対してよりよい解決策を提示する。デジタル・シグネットは、デジタル署名と同じように偽造することが困難であるが、デジタル署名のように単一のイエス／ノーの出力を与えるのではなく、受け取ったメッセージのハッシュがそのシグネットに適切に関係している場合にのみ正しいという任意のＫビットのシーケンスが作成される。
【００１０】
ディウォーク（Dwork）他の米国特許第５，９７８，４８２号および第６，０３８，３１６号は、デジタル情報を保護するためのデジタル・シグネット・ベースのシステムについて述べている。保護された情報にアクセスするために復号鍵の取り出しを行うロジックは公に知られており、そのロジックはユーザ番号に応答して生成された許可番号に対して働く。ユーザ番号とは、ユーザを一義的に識別し、ユーザにとって貴重なものであり、したがってユーザは、公開される場所（public
view）にそれを開示することは好まないはずである。ユーザ番号は、クレジット・カード番号、電話番号、中央処理装置のＩＤ番号、またはユーザの個人機密を有する他の番号を含むことができる。したがって、ユーザは、ユーザ番号が漏洩し、また不適切な挙動を行ったユーザが容易に識別されてしまうという心配から、鍵または復号されたコンテンツを他のユーザと共用することにあまり乗り気ではない。
【００１１】
ソフトウェア・プログラムのハッシュ値は、特に優れた「ユーザ番号」であることが証明されている。コンテンツの保護方式を破ろうとするハッカーなどによってソフトウェア・プログラムの修正が行われると、その計算されたハッシュ値が変更されてしまう。したがって、あるコンテンツ保護方式中で使用された復号鍵を取り出すことに成功し、ソフトウェア・プログラムが無傷であり修正されていないことが立証された場合にだけその復号鍵を使用するとき、コンテンツ保護を向上することができる。
【００１２】
これは、典型的な従来技術のシグネット計算である。すなわち、Ｋ＝ｇ１ｈｇ２ａ  ｍｏｄ  Ｍ、ただし、Ｋは、出力ビット・シーケンスであり、ｇ１およびｇ２は送信されたデジタル・メッセージそれ自体と共に保管される公開数であり、ｈはメッセージのハッシュ、およびａはデジタル・シグネットである。Ｍは、この計算がその下で行われる公開の法である。言い換えると、Ｋは、積ｇ１ｈｇ２ａをＭで割った後の余りである。Ｍは通常素数であるが、素数である必要はない。出力Ｋは、ソフトウェアの更新を含んでいる可能性があるメッセージの認証性および完全性を保証するために用いられる比較の基礎となるものである。
【００１３】
文書「メッセージ認証のための鍵付きハッシュ関数（Keying Hash
Functions for Message Authentication）」（ベラーレ・エム（Bellare M）他、国際暗号学会（International
Association For Cryptologic Research）、暗号学の進歩−クリプト９６（Advances In
Cryptology-Crypto 96）。第１６回年次暗号会議（16th Annual Cryptology Conference）、サンタ・バーバラ（Santa
Barbara）、１９９６年８月１８日〜２２日、ＸＰ０００６２６５８４、ＩＳＢＮ３−５４０−６１５１２−１）は、２つの当事者間の安全ではないチャネルを介して通信された情報の完全性および認証性を検証する方法を開示している。そこで述べられている方法は、当事者間で共用するＭＡＣ（Message
Authentication Code、メッセージ認証コード）として知られている秘密鍵の使用を必要としている。
【特許文献１】米国特許第４，６５８，０９３号
【特許文献２】米国特許第４，４０５，８２９号
【特許文献３】米国特許第６，１０５，１３７号
【特許文献４】米国特許第６，１３８，２３６号
【特許文献５】米国特許第６，３４１，３７３号
【特許文献６】米国特許第５，３４３，５２７号
【特許文献７】米国特許第５，９７８，４８２号
【特許文献８】米国特許第６，０３８，３１６号
【非特許文献１】「メッセージ認証のための鍵付きハッシュ関数（KeyingHash Functions for Message Authentication）」ベラーレ・エム（Bellare M）他、国際暗号学会（InternationalAssociation For Cryptologic Research）、暗号学の進歩−クリプト９６（Advances InCryptology-Crypto 96）。第１６回年次暗号会議（16th Annual Cryptology Conference）、サンタ・バーバラ（SantaBarbara）、１９９６年８月１８日〜２２日、ＸＰ０００６２６５８４、ＩＳＢＮ３−５４０−６１５１２−１
【発明の開示】
【発明が解決しようとする課題】
【００１４】
この分野における従来技術は、立派な諸成果を述べているが、解決されていないニーズに取り組むさらなる改善が必要である。例えば、保護されている情報へのアクセスを許可すべきかどうか決定するＫの値を、Ｋの値およびそれが保護する情報の権利を侵害しようとしている者の攻撃からどのように保護できるか。個々の受信者から検証の送信ができない場合、受信者によって実行されているソフトウェアが、その分野で正当に更新され得るだろうか。ユーザ装置上で走るソフトウェアに対する修正は、一般にそのハッシュ値を変更することになり、その後計算されたＫ値はもはや正しくなくなる。ユーザ・ハードウェアを交換することは一般に不可能であり、数百万の数になる可能性のあるユーザに新しい装置の鍵を送信することもまた、問題であることがすぐに分る。
【課題を解決するための手段】
【００１５】
したがって第１の態様では、本発明は、メッセージの完全性（integrity）を保証する方法であって、メッセージを、前記メッセージのハッシュに基づく鍵で暗号化された完全性値（integrity
value）ｈ０と共に送信することと、前記暗号化された完全性値ｈ０を復号することと、保管された完全性値と共に前記完全性値ｈ０を用いて完全性計算を実施することと、さらなる処理のために、前記完全性計算の結果を使用することとを含む方法を提供する。
【００１６】
したがって第２の態様では、本発明は、メッセージの完全性を保証するシステムであって、メッセージを前記メッセージのハッシュに基づく鍵で暗号化された完全性値ｈ０と共に送信する手段と、前記暗号化された完全性値ｈ０を復号する手段と、前記完全性値ｈ０を、保管された完全性値と共に用いて完全性計算を実施する手段と、さらに処理するために前記完全性計算の結果を使用する手段とを含むシステムを提供する。
【００１７】
したがって第３の態様では、本発明は、デジタル・コンピュータの内部メモリに直接ロード可能なコンピュータ・プログラム製品であって、前記製品がコンピュータ上で走るとき、メッセージを、前記メッセージのハッシュに基づく鍵で暗号化された完全性値ｈ０と共に送信することと、前記暗号化された完全性値ｈ０を復号することと、保管された完全性値と共に前記完全性値ｈ０を用いて完全性計算を実施することと、さらなる処理のために前記完全性計算の結果を使用することとを含む、メッセージの完全性を保証するための方法を実施するソフトウェア・コード部分を含むコンピュータ・プログラム製品を提供する。
【００１８】
したがって、個々のユーザ装置は、個々のユーザ装置から配布センターへの送信なしに配布センターによって送られるデジタル・メッセージの認証性および完全性を保証することができるようになる。それは、１組の許可された受信者だけが使用するように意図された暗号化メッセージのブロード・キャスト配布のように、コンテンツ保護およびデジタル権利の管理目的には特に有益である。
【００１９】
次に、本発明の好ましい実施形態を、単なる例として添付の図面を参照して説明する。
【発明を実施するための最良の形態】
【００２０】
好ましい実施形態は、計算を実施する個々のユーザ装置が、ハードウェアとソフトウェアの組合せを用いて、配布センターによって送られるデジタル・メッセージの認証性および完全性（integrity）を保証できるようにする。この好ましい実施形態では、個々のユーザ装置から配布センターへのデータ送信、特に一義的な装置識別情報または暗号鍵を含めた送信を必要としない。それは、ソフトウェアが損なわれずに送達された場合にのみ完全性値（integrity
value）Ｋ’が正しく取り出せるコンテンツ保護ソフトウェアの送達のような、コンテンツ保護およびデジタル権利の管理目的に特に有益である。
【００２１】
ソフトウェアは、保護されているコンテンツに受信者のアクセスが許可されているかどうかを判定するために、好ましくは一義的かつ静的なハードウェア・ベースの値を利用するが、暗号的に認証され妥当性が検証された場合にのみ実行される。メッセージには、ソフトウェアの更新と、暗号的に決定された完全性値をそれと組み合わせたとき完全になるソフトウェア・プログラムの部分とを含めることができる。あるいは、完全性値Ｋ’それ自体に、ソフトウェア・プログラムの部分または暗号鍵を含むこともできる。
【００２２】
個々のユーザ装置は、耐改ざん性ハードウェア中に少なくとも２つの、好ましくは一義的な秘密の数ｇ１とｇ２を保管する。耐改ざん性ハードウェアは、例えば、パーソナル・コンピュータで広く使用されているマルチメディア・カード中に含むことができる。マルチメディア・カードは特に、Creative Labs（Ｒ）（クリエイティブ・ラボ社）（例えば、www.creative.comでSoundBlaster（Ｒ）シリーズのカードを参照のこと）で製造されており、当技術分野では周知である。あるいは、個々のユーザ装置は、完全に安全なコンピューティング・システムを含むこともできる。問題に対してハードウェア／ソフトウェアによる混成手法を有することが望ましく、したがってｇ１とｇ２の一義的な組合せは、ＰＣオーディオ・カードと同様の個々のユーザ装置に保管されるが、共通のオーディオ・カード・ドライバ・プログラムなどと同様なソフトウェアであれば、多くの様々なカードで実行することができる。ｇ１とｇ２の秘密の値は、所与のユーザ装置のハードウェア・インスタンスを好ましくは一義的に識別する装置鍵として有効に働く。
【００２３】
配布センターは、デジタル・シグネットａおよび公開の法Ｍを作成し、次いでそれらは、ユーザ装置によって装置鍵ｇ１、ｇ２、および元のメッセージ・ハッシュｈ０と組み合わされて完全性値Ｋが計算される。様々な難読化関数の実施を含めた任意のハッシュ・アルゴリズムを用いることができる。ａ、ｇ１、およびｇ２は一義的であるため、完全性値Ｋも個々のユーザ装置に一義的であることが好ましく、またユーザ装置によりＫ＝ｇ１ｈ０ｇ２ａ  ｍｏｄ  Ｍで計算される。
【００２４】
個々のユーザ装置は、以下のように後続のメッセージを受け取って処理する。すなわち、ユーザ装置は、メッセージ・ハッシュ値ｈを計算し、メッセージと共に送られた値ｓおよびｐｑ（以下で説明する）を識別する。ユーザ装置は、新しい値ｈ、ｓ、およびｐｑと、既存の値ｇ１、ｇ２、ａ、およびＭを用いて新しい完全性値Ｋ’を以下のように計算する。すなわち、Ｋ’＝ｇ１ｘｇ２ａ  ｍｏｄ  Ｍ、ただし、ｘ＝ｓｈｍｏｄ  ｐｑ。素数ｐとｑは、下記のように選択する。ｐもｑも別々には送信しない。メッセージのハッシュ値ｈが正しい場合、ｘ＝ｈ０であり、計算された完全性値Ｋ’は、所定の完全性値Ｋに等しい。したがって、ｓは、事実上、元のメッセージ値ｈ０を暗号化したものであり、それは、新しいメッセージのハッシュ値ｈおよびｐｑに基づいて暗号化されている。ユーザ装置には、さらに正しいオペレーションを行うためにＫが必要であり（例えば、Ｋは装置鍵を含むこともできる）、そのソースおよびコンテンツが正しい場合にのみ、メッセージが適切に処理されることになる。
【００２５】
新しいメッセージの正しいハッシュ値ｈ１は、配布センターの公開ＲＳＡ鍵であるように設計され、それはｈ１ｚ＝１  ｍｏｄ  Ｆ（ｐｑ）であるｚが存在する場合に保証され得る。ただし、Ｆはオイラー関数であり、この場合、Ｆ（ｐｑ）＝（ｐ−１）（ｑ−１）である。次いで、ｚは、新しいメッセージに対する配布センターの秘密ＲＳＡ鍵になる。この式を満足するために、ｈ１とＦ（ｐｑ）の最大公約数（ｇｃｄ）は１でなければならない。すなわち、それらは公約数を持ってはならない。（ｐ−１）と（ｑ−１）が共に偶数であり、したがってｈ１が偶数である場合、その関係を満足することができず、ｚは存在しない。したがって、ｈ１を確実に奇数とするための諸ステップを行う必要がある。例えば、新しいメッセージのハッシュ値が奇数になるまで、新しいメッセージにわずかな変更を行うことができ、あるいはハッシュ値が偶数である場合、その値に対して常に１を追加または削除する規定（convention）を採用することもできる。代替の実施形態では、ハッシュの下位ビットの論理和をとることができる。さらに、他の実施形態では、ｈ１＝２ｈ１+１を割り当て、強制的に奇数にすることもできる。ｈ１を確実に奇数であるようにするための他の技法は、当業者にはよく知られている。ｈ１が奇数である場合、最大公約数は１である可能性が高いが、この条件を保証するためのテストが必要である。最大公約数が１ではない場合、配布センターは、単に素数ｐ、ｑの別の組を取り上げ、法ｐｑの別の値を試みる。以下のように、素数を取り上げることはＲＳＡ暗号化ではよく行われている。すなわち、ランダムに素数ｐ’を取り上げ、２ｐ’+１がまた素数であるかどうかテストする。素数の場合、ｐ＝２ｐ’+１に設定する。次いで、好ましい実施形態では、ｑに対しても同様に行う。この操作に従った場合、奇数のｈ１が１より大きい最大公約数を生ずる機会は、無視できるほど小さい。
【００２６】
次に、図１を参照すると、好ましい実施形態による新しいメッセージ生成方法の図が示されている。配布センター（ＤＣ）は、少なくとも１つのユーザ装置（ＵＤ）に配布するためのメッセージを作成する。例えば、配布の手段は、インターネットや衛星、ケーブル・テレビ伝送などのコンピュータ・ネットワークを介したダウンロード、およびディスケットやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどのコンピュータ可読媒体の物理的な配布を含むことができる。他の配布手段は当業者にはよく知られている。ステップ１０２で、配布センターは、新しいメッセージのハッシュｈ１を計算し、上記の従来の諸ステップのうちの任意の１つを実施することにより、そのハッシュを強制的に奇数にする。次に、配布センターは、ステップ１０４で、２つの素数ｐとｑを選択し、Ｆ（ｐｑ）および積ｐｑを計算する。ステップ１０６で、配布センターは、ハッシュｈ１とＦ（ｐｑ）が最大公約数１を有するかどうか、すなわち公約数を共用しないかどうか判定する。この条件は、ｈ１ｚ＝１  ｍｏｄ  Ｆ（ｐｑ）の関係に従っているかどうか判定し、したがって新しいメッセージのハッシュ値ｈ１が配布センターの公開ＲＳＡ鍵となることができる。この条件が満たされない場合、ステップ１０８で、配布センターは、ｐとｑに対して新しい値を選択し、次いでステップ１０４に戻りＦ（ｐｑ）および法ｐｑを計算する。その条件が満たされた場合、配布センターは次に進み、ステップ１１０で、ｚｈ１＝１  ｍｏｄ  Ｆ（ｐｑ）であるようにｚを計算する。これは、一般化されたユークリッドの互除法とよばれる周知の数学手順で行うことができる。配布センターはステップ１１２に進み、ｓ＝ｈ０ｚ  ｍｏｄ  ｐｑを計算する。ただし、ｈ０は元のメッセージのハッシュ値であり、ｚは秘密ＲＳＡ鍵として働く。配布センターだけがＦ（ｐｑ）を知っているので、配布センターだけがｚを計算することができる。元の完全性値Ｋにマッチする新しい完全性値Ｋ’を決定するために用いられるデータを配布センターだけが作成できるので、元のハッシュ値ｈ０と秘密鍵ｚの組合せは、新しいメッセージの妥当性検査（完全性の検証）のための基準として働く。次に、ステップ１１４で、配布センターは、ｓおよびｐｑの値を新しいメッセージに添付する。ステップ１１６で、最終的に、配布センターは新しいメッセージを送信する。
【００２７】
図２を参照すると、好ましい実施形態による新しいメッセージの認証および妥当性検査の図が示されている。各ユーザ装置（ＵＤ）は、配布センターからの新しいメッセージの完全性の保証を実施する計算方法の諸ステップを実施できる特有のハードウェア・インスタンスである。各ユーザ装置は、耐改ざん性または完全に安全なハードウェア中に、好ましくは一義的な値であるｇ１、ｇ２、およびａを保管している。ステップ２０２で、ユーザ装置は、配布センターから新しいメッセージを受け取る。次に、ステップ２０４で、ユーザは、配布センターで用いられたものと同じハッシュ・アルゴリズムを用いて新しいメッセージのテスト・ハッシュ値ｈを計算する。ステップ２０６で、ユーザ装置は次に進み、上記のように、受け取った値であるｓとｐｑ、それ自体の装置値ｇ１とｇ２、新しいメッセージのハッシュ値ｈ、デジタル・シグネットａ、および法Ｍを用いて新しい完全性値Ｋ’を計算する。ステップ２０８で、新しい完全性値Ｋ’は、それがあたかもＫであるかのようにさらなる処理で使用される。もちろん、Ｋ’がＫに等しくない場合、その後の処理は失敗することになる。したがって、メッセージを修正することにより何らかの利益を得ようと試みる攻撃者は、所望する限定された挙動の修正ではなく全体の障害を引き起こすことになる。
【００２８】
この好ましい実施形態では、汎用コンピュータが上記の諸ステップに従ってプログラムされている。代替の実施形態では、上記の本ロジックを実行するために、製品、すなわちマシン・コンポーネントがデジタル処理装置によって使用される。
【図面の簡単な説明】
【００２９】
【図１】本発明の好ましい実施形態による新しいメッセージを生成する方法の図である。
【図２】本発明の好ましい実施形態による新しいメッセージの認証および妥当性検査の図である。
【図１】
0004793843.tif 000002
【図２】
0004793843.tif 000003