JP4793843B2 - ソフトウェアの完全性を保証するためのシステムおよび方法 - Google Patents

ソフトウェアの完全性を保証するためのシステムおよび方法 Download PDF

Info

Publication number
JP4793843B2
JP4793843B2 JP2004539185A JP2004539185A JP4793843B2 JP 4793843 B2 JP4793843 B2 JP 4793843B2 JP 2004539185 A JP2004539185 A JP 2004539185A JP 2004539185 A JP2004539185 A JP 2004539185A JP 4793843 B2 JP4793843 B2 JP 4793843B2
Authority
JP
Japan
Prior art keywords
value
integrity
message
new
original
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.)
Expired - Fee Related
Application number
JP2004539185A
Other languages
English (en)
Other versions
JP2006500843A (ja
Inventor
ロッツピーチ、ジェフリー、ブルース
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006500843A publication Critical patent/JP2006500843A/ja
Application granted granted Critical
Publication of JP4793843B2 publication Critical patent/JP4793843B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、ソフトウェアの耐改ざん性(tamper resistance)に関し、より詳細には、当分野におけるソフトウェアの更新を含めたデジタル・メッセージの認証および妥当性検査に関する。
デジタル・ストレージ技術およびコンピュータ・ネットワークが進歩しているため、許可された受信者だけにデジタル・コンテンツを使用できるようにする取組みもまた進んでいる。デジタル・コンテンツ情報に対してセキュリティを提供するための一手法は、その情報を暗号化された形式で配布し、次いで必要な復号情報を鍵形式で正当なユーザだけに配布することである。残念ながら、配布された復号鍵を、良心的ではない正当なユーザが未許可の受信者と共用することができるので、特定のユーザに属するものであることを安全なデジタル情報の配布者に明らかにするよう受信側ハードウェアに要求することにより、匿名の共用を防止する傾向が増えてきている。配布者は、安全なデジタル情報の元のベンダ(vendor)であるか、またはそのベンダのために(コンピューティングおよび通信などの)様々なセキュリティ・タスクを処理する他の当事者であることができる。
例えば、ヘルマン(Hellman)の米国特許第4,658,093号は、「ベース・ユニット」(計算を実施するユ−ザ装置の特有のハードウェア・インスタンス)の製造者が、各特定のベース・ユニットで保管すべきランダム鍵を割り当てるというシステムを開示している。ユーザがソフトウェア・パッケージを使用したいとき、ユーザのベース・ユニットが乱数を生成し、それをソフトウェアの製造者に送る。その製造者は、特定のベース・ユニットの鍵と、要求されたソフトウェアと、ソフトウェアを使用することのできた許可回数と、ベース・ユニットによって生成された乱数との暗号関数である認証者応答を生成する。次いで、製造者は、その認証者応答を電子的にユーザのベース・ユニットに送達し、ベース・ユニットは、同じ暗号関数を使用して検査値を生成する。(RSA暗号関数がヘルマンによって使用されている。それは、リベスト(Rivest)他の米国特許第4,405,829号に述べられており、それを参照のため本明細書に組み込むものとする。)その検査値が認証者応答にマッチした場合、ベース・ユニットはその認証応答を有効なものとして受け入れ、それによって、送達されたソフトウェアの使用できた回数を増分する。ベース・ユニットは、デジタル署名、および製造者メッセージのハッシュを用いて製造者からのメッセージを検証する。
デジタル署名は、当技術分野で周知であり、「このメッセージは本人のものか」という質問に対して単一ビットのイエス/ノーの回答を生成する。一般に、ハッシュは、大きな領域からより小さな範囲へと値をマップする数学的な関数の出力であり、任意の事前指定された出力に対応するどんな入力も見つけることが計算上不可能な一方向性のものであり、また同じ出力に対応する2つの別個の入力を見つけることも計算上不可能な衝突のないものである。このようなハッシュ関数は当技術分野で周知である。残念ながら、ヘルマンのシステムが必要とする双方向通信は、使用される配布方法によってはいつも適用可能ではなく、あるいはその分野におけるベース・ユニットの実際の数量によってはいつも実際的であるとはいえない。ヘルマンのシステムはさらに、ベース・ユニットの公開シリアル番号の知識からベース・ユニットの秘密鍵を決定するために用いられるシリアル番号と秘密鍵のメモリを維持するための認証および請求ユニットを必要とする。
グラウンケ(Graunke)他の米国特許第6,105,137号は、ソフトウェア・モジュールの完全性(integrity)を認証し、検証するための類似のシステムを述べている。ミロフ(Mirov)他の米国特許第6,138,236号は、この全般的なアプローチを拡張してブートPROM(boot
PROM)中でプログラムされたファームウェアを認証し、次いでその信用できるプログラム・コードを用いてその後の1組のプログラム・コードを認証するものである。ミロフ他のシステムは、自己解凍型の実行可能配布ファイルにデジタル署名を添付し、その配布されたソフトウェアは公開される公開RSA復号鍵を用いて復号される。復号されたハッシュ値の比較により、比較が成功した場合、自己解凍型実行可能配布ファイルは安全であり、かつ偶発的もしくは意図的な破壊を受けていないと見なされ、比較が失敗した場合、ファイルは拒絶もしくは削除される。
ショー(Shaw)の米国特許第6,341,373号は、プログラム・コードの選択された部分だけを置換え可能にする他の安全なデータ更新方法を述べている。ショーはまた、クライアント装置がサーバから更新を受け取る前にそれ自体に関する識別情報を遠隔サーバに送信するよう要求する。
ムーア(Moore)の米国特許第5,343,527号は、再使用ライブラリのソフトウェア・コンポーネントの再利用者に、そのソフトウェア・コンポーネントが認証され有効であるかどうか、または何らかの未許可のエンティティによって改ざんされているかどうかの指示を提供する方法を教示する。
映画、音楽、テキスト、アプリケーション、およびデータベースは、コピー保護機能を有するデジタル形式で現在配布されているので、耐改ざん性ソフトウェアは、ますます重要になってきている。ソフトウェアの権利侵害者(pirates)は、再生装置のハードウェア中で使用されるソフトウェアを単にパッチするだけでこのコピー保護機能を破ろうとする可能性がある。すなわち、再生装置に偽のソフトウェア更新を提示し、次いで、正しく許可された装置によるアクセスとは別に、再生装置をすべてのコンテンツにアクセスできるようにする。当業界の大部分の会社は1つのソフトウェアの認証性を検査するのにデジタル署名を利用している。しかし、再生装置のソフトウェアにおける単一の命令をパッチすることによりその検査を使用不可にできるため、それは絶対安全な手法ではない。
デジタル・シグネット(signet)は、デジタル署名よりこの問題に対してよりよい解決策を提示する。デジタル・シグネットは、デジタル署名と同じように偽造することが困難であるが、デジタル署名のように単一のイエス/ノーの出力を与えるのではなく、受け取ったメッセージのハッシュがそのシグネットに適切に関係している場合にのみ正しいという任意のKビットのシーケンスが作成される。
ディウォーク(Dwork)他の米国特許第5,978,482号および第6,038,316号は、デジタル情報を保護するためのデジタル・シグネット・ベースのシステムについて述べている。保護された情報にアクセスするために復号鍵の取り出しを行うロジックは公に知られており、そのロジックはユーザ番号に応答して生成された許可番号に対して働く。ユーザ番号とは、ユーザを一義的に識別し、ユーザにとって貴重なものであり、したがってユーザは、公開される場所(public
view)にそれを開示することは好まないはずである。ユーザ番号は、クレジット・カード番号、電話番号、中央処理装置のID番号、またはユーザの個人機密を有する他の番号を含むことができる。したがって、ユーザは、ユーザ番号が漏洩し、また不適切な挙動を行ったユーザが容易に識別されてしまうという心配から、鍵または復号されたコンテンツを他のユーザと共用することにあまり乗り気ではない。
ソフトウェア・プログラムのハッシュ値は、特に優れた「ユーザ番号」であることが証明されている。コンテンツの保護方式を破ろうとするハッカーなどによってソフトウェア・プログラムの修正が行われると、その計算されたハッシュ値が変更されてしまう。したがって、あるコンテンツ保護方式中で使用された復号鍵を取り出すことに成功し、ソフトウェア・プログラムが無傷であり修正されていないことが立証された場合にだけその復号鍵を使用するとき、コンテンツ保護を向上することができる。
これは、典型的な従来技術のシグネット計算である。すなわち、K=g mod M、ただし、Kは、出力ビット・シーケンスであり、gおよびgは送信されたデジタル・メッセージそれ自体と共に保管される公開数であり、hはメッセージのハッシュ、およびaはデジタル・シグネットである。Mは、この計算がその下で行われる公開の法である。言い換えると、Kは、積g をMで割った後の余りである。Mは通常素数であるが、素数である必要はない。出力Kは、ソフトウェアの更新を含んでいる可能性があるメッセージの認証性および完全性を保証するために用いられる比較の基礎となるものである。
文書「メッセージ認証のための鍵付きハッシュ関数(Keying Hash
Functions for Message Authentication)」(ベラーレ・エム(Bellare M)他、国際暗号学会(International
Association For Cryptologic Research)、暗号学の進歩−クリプト96(Advances In
Cryptology-Crypto 96)。第16回年次暗号会議(16th Annual Cryptology Conference)、サンタ・バーバラ(Santa
Barbara)、1996年8月18日〜22日、XP000626584、ISBN3−540−61512−1)は、2つの当事者間の安全ではないチャネルを介して通信された情報の完全性および認証性を検証する方法を開示している。そこで述べられている方法は、当事者間で共用するMAC(Message
Authentication Code、メッセージ認証コード)として知られている秘密鍵の使用を必要としている。
米国特許第4,658,093号 米国特許第4,405,829号 米国特許第6,105,137号 米国特許第6,138,236号 米国特許第6,341,373号 米国特許第5,343,527号 米国特許第5,978,482号 米国特許第6,038,316号 「メッセージ認証のための鍵付きハッシュ関数(KeyingHash Functions for Message Authentication)」ベラーレ・エム(Bellare M)他、国際暗号学会(InternationalAssociation For Cryptologic Research)、暗号学の進歩−クリプト96(Advances InCryptology-Crypto 96)。第16回年次暗号会議(16th Annual Cryptology Conference)、サンタ・バーバラ(SantaBarbara)、1996年8月18日〜22日、XP000626584、ISBN3−540−61512−1
この分野における従来技術は、立派な諸成果を述べているが、解決されていないニーズに取り組むさらなる改善が必要である。例えば、保護されている情報へのアクセスを許可すべきかどうか決定するKの値を、Kの値およびそれが保護する情報の権利を侵害しようとしている者の攻撃からどのように保護できるか。個々の受信者から検証の送信ができない場合、受信者によって実行されているソフトウェアが、その分野で正当に更新され得るだろうか。ユーザ装置上で走るソフトウェアに対する修正は、一般にそのハッシュ値を変更することになり、その後計算されたK値はもはや正しくなくなる。ユーザ・ハードウェアを交換することは一般に不可能であり、数百万の数になる可能性のあるユーザに新しい装置の鍵を送信することもまた、問題であることがすぐに分る。
したがって第の態様では、本発明は、メッセージの完全性(integrity)を保証する方法であって、メッセージを、前記メッセージのハッシュに基づく鍵で暗号化された完全性値(integrity
value)hと共に送信することと、前記暗号化された完全性値hを復号することと、保管された完全性値と共に前記完全性値hを用いて完全性計算を実施することと、さらなる処理のために、前記完全性計算の結果を使用することとを含む方法を提供する。
したがって第の態様では、本発明は、メッセージの完全性を保証するシステムであって、メッセージを前記メッセージのハッシュに基づく鍵で暗号化された完全性値h と共に送信する手段と、前記暗号化された完全性値h を復号する手段と、前記完全性値h を、保管された完全性値と共に用いて完全性計算を実施する手段と、さらに処理するために前記完全性計算の結果を使用する手段とを含むシステムを提供する。
したがって第3の態様では、本発明は、デジタル・コンピュータの内部メモリに直接ロード可能なコンピュータ・プログラム製品であって、前記製品がコンピュータ上で走るとき、メッセージを、前記メッセージのハッシュに基づく鍵で暗号化された完全性値hと共に送信することと、前記暗号化された完全性値hを復号することと、保管された完全性値と共に前記完全性値hを用いて完全性計算を実施することと、さらなる処理のために前記完全性計算の結果を使用することとを含む、メッセージの完全性を保証するための方法を実施するソフトウェア・コード部分を含むコンピュータ・プログラム製品を提供する。
したがって、個々のユーザ装置は、個々のユーザ装置から配布センターへの送信なしに配布センターによって送られるデジタル・メッセージの認証性および完全性を保証することができるようになる。それは、1組の許可された受信者だけが使用するように意図された暗号化メッセージのブロード・キャスト配布のように、コンテンツ保護およびデジタル権利の管理目的には特に有益である。
次に、本発明の好ましい実施形態を、単なる例として添付の図面を参照して説明する。
好ましい実施形態は、計算を実施する個々のユーザ装置が、ハードウェアとソフトウェアの組合せを用いて、配布センターによって送られるデジタル・メッセージの認証性および完全性(integrity)を保証できるようにする。この好ましい実施形態では、個々のユーザ装置から配布センターへのデータ送信、特に一義的な装置識別情報または暗号鍵を含めた送信を必要としない。それは、ソフトウェアが損なわれずに送達された場合にのみ完全性値(integrity
value)K’が正しく取り出せるコンテンツ保護ソフトウェアの送達のような、コンテンツ保護およびデジタル権利の管理目的に特に有益である。
ソフトウェアは、保護されているコンテンツに受信者のアクセスが許可されているかどうかを判定するために、好ましくは一義的かつ静的なハードウェア・ベースの値を利用するが、暗号的に認証され妥当性が検証された場合にのみ実行される。メッセージには、ソフトウェアの更新と、暗号的に決定された完全性値をそれと組み合わせたとき完全になるソフトウェア・プログラムの部分とを含めることができる。あるいは、完全性値K’それ自体に、ソフトウェア・プログラムの部分または暗号鍵を含むこともできる。
個々のユーザ装置は、耐改ざん性ハードウェア中に少なくとも2つの、好ましくは一義的な秘密の数gとgを保管する。耐改ざん性ハードウェアは、例えば、パーソナル・コンピュータで広く使用されているマルチメディア・カード中に含むことができる。マルチメディア・カードは特に、Creative Labs(R)(クリエイティブ・ラボ社)(例えば、www.creative.comでSoundBlaster(R)シリーズのカードを参照のこと)で製造されており、当技術分野では周知である。あるいは、個々のユーザ装置は、完全に安全なコンピューティング・システムを含むこともできる。問題に対してハードウェア/ソフトウェアによる混成手法を有することが望ましく、したがってgとgの一義的な組合せは、PCオーディオ・カードと同様の個々のユーザ装置に保管されるが、共通のオーディオ・カード・ドライバ・プログラムなどと同様なソフトウェアであれば、多くの様々なカードで実行することができる。gとgの秘密の値は、所与のユーザ装置のハードウェア・インスタンスを好ましくは一義的に識別する装置鍵として有効に働く。
配布センターは、デジタル・シグネットaおよび公開の法Mを作成し、次いでそれらは、ユーザ装置によって装置鍵g、g、および元のメッセージ・ハッシュhと組み合わされて完全性値Kが計算される。様々な難読化関数の実施を含めた任意のハッシュ・アルゴリズムを用いることができる。a、g、およびgは一義的であるため、完全性値Kも個々のユーザ装置に一義的であることが好ましく、またユーザ装置によりK=g h0 mod Mで計算される。
個々のユーザ装置は、以下のように後続のメッセージを受け取って処理する。すなわち、ユーザ装置は、メッセージ・ハッシュ値hを計算し、メッセージと共に送られた値sおよびpq(以下で説明する)を識別する。ユーザ装置は、新しい値h、s、およびpqと、既存の値g、g、a、およびMを用いて新しい完全性値K’を以下のように計算する。すなわち、K’=g mod M、ただし、x=smod pq。素数pとqは、下記のように選択する。pもqも別々には送信しない。メッセージのハッシュ値hが正しい場合、x=hであり、計算された完全性値K’は、所定の完全性値Kに等しい。したがって、sは、事実上、元のメッセージ値hを暗号化したものであり、それは、新しいメッセージのハッシュ値hおよびpqに基づいて暗号化されている。ユーザ装置には、さらに正しいオペレーションを行うためにKが必要であり(例えば、Kは装置鍵を含むこともできる)、そのソースおよびコンテンツが正しい場合にのみ、メッセージが適切に処理されることになる。
新しいメッセージの正しいハッシュ値hは、配布センターの公開RSA鍵であるように設計され、それはhz=1 mod F(pq)であるzが存在する場合に保証され得る。ただし、Fはオイラー関数であり、この場合、F(pq)=(p−1)(q−1)である。次いで、zは、新しいメッセージに対する配布センターの秘密RSA鍵になる。この式を満足するために、hとF(pq)の最大公約数(gcd)は1でなければならない。すなわち、それらは公約数を持ってはならない。(p−1)と(q−1)が共に偶数であり、したがってhが偶数である場合、その関係を満足することができず、zは存在しない。したがって、hを確実に奇数とするための諸ステップを行う必要がある。例えば、新しいメッセージのハッシュ値が奇数になるまで、新しいメッセージにわずかな変更を行うことができ、あるいはハッシュ値が偶数である場合、その値に対して常に1を追加または削除する規定(convention)を採用することもできる。代替の実施形態では、ハッシュの下位ビットの論理和をとることができる。さらに、他の実施形態では、h=2h+1を割り当て、強制的に奇数にすることもできる。hを確実に奇数であるようにするための他の技法は、当業者にはよく知られている。hが奇数である場合、最大公約数は1である可能性が高いが、この条件を保証するためのテストが必要である。最大公約数が1ではない場合、配布センターは、単に素数p、qの別の組を取り上げ、法pqの別の値を試みる。以下のように、素数を取り上げることはRSA暗号化ではよく行われている。すなわち、ランダムに素数p’を取り上げ、2p’+1がまた素数であるかどうかテストする。素数の場合、p=2p’+1に設定する。次いで、好ましい実施形態では、qに対しても同様に行う。この操作に従った場合、奇数のhが1より大きい最大公約数を生ずる機会は、無視できるほど小さい。
次に、図1を参照すると、好ましい実施形態による新しいメッセージ生成方法の図が示されている。配布センター(DC)は、少なくとも1つのユーザ装置(UD)に配布するためのメッセージを作成する。例えば、配布の手段は、インターネットや衛星、ケーブル・テレビ伝送などのコンピュータ・ネットワークを介したダウンロード、およびディスケットやCD−ROM、DVD−ROMなどのコンピュータ可読媒体の物理的な配布を含むことができる。他の配布手段は当業者にはよく知られている。ステップ102で、配布センターは、新しいメッセージのハッシュhを計算し、上記の従来の諸ステップのうちの任意の1つを実施することにより、そのハッシュを強制的に奇数にする。次に、配布センターは、ステップ104で、2つの素数pとqを選択し、F(pq)および積pqを計算する。ステップ106で、配布センターは、ハッシュhとF(pq)が最大公約数1を有するかどうか、すなわち公約数を共用しないかどうか判定する。この条件は、hz=1 mod F(pq)の関係に従っているかどうか判定し、したがって新しいメッセージのハッシュ値hが配布センターの公開RSA鍵となることができる。この条件が満たされない場合、ステップ108で、配布センターは、pとqに対して新しい値を選択し、次いでステップ104に戻りF(pq)および法pqを計算する。その条件が満たされた場合、配布センターは次に進み、ステップ110で、zh=1 mod F(pq)であるようにzを計算する。これは、一般化されたユークリッドの互除法とよばれる周知の数学手順で行うことができる。配布センターはステップ112に進み、s=h mod pqを計算する。ただし、hは元のメッセージのハッシュ値であり、zは秘密RSA鍵として働く。配布センターだけがF(pq)を知っているので、配布センターだけがzを計算することができる。元の完全性値Kにマッチする新しい完全性値K’を決定するために用いられるデータを配布センターだけが作成できるので、元のハッシュ値hと秘密鍵zの組合せは、新しいメッセージの妥当性検査(完全性の検証)のための基準として働く。次に、ステップ114で、配布センターは、sおよびpqの値を新しいメッセージに添付する。ステップ116で、最終的に、配布センターは新しいメッセージを送信する。
図2を参照すると、好ましい実施形態による新しいメッセージの認証および妥当性検査の図が示されている。各ユーザ装置(UD)は、配布センターからの新しいメッセージの完全性の保証を実施する計算方法の諸ステップを実施できる特有のハードウェア・インスタンスである。各ユーザ装置は、耐改ざん性または完全に安全なハードウェア中に、好ましくは一義的な値であるg、g、およびaを保管している。ステップ202で、ユーザ装置は、配布センターから新しいメッセージを受け取る。次に、ステップ204で、ユーザは、配布センターで用いられたものと同じハッシュ・アルゴリズムを用いて新しいメッセージのテスト・ハッシュ値hを計算する。ステップ206で、ユーザ装置は次に進み、上記のように、受け取った値であるsとpq、それ自体の装置値gとg、新しいメッセージのハッシュ値h、デジタル・シグネットa、および法Mを用いて新しい完全性値K’を計算する。ステップ208で、新しい完全性値K’は、それがあたかもKであるかのようにさらなる処理で使用される。もちろん、K’がKに等しくない場合、その後の処理は失敗することになる。したがって、メッセージを修正することにより何らかの利益を得ようと試みる攻撃者は、所望する限定された挙動の修正ではなく全体の障害を引き起こすことになる。
この好ましい実施形態では、汎用コンピュータが上記の諸ステップに従ってプログラムされている。代替の実施形態では、上記の本ロジックを実行するために、製品、すなわちマシン・コンポーネントがデジタル処理装置によって使用される。
本発明の好ましい実施形態による新しいメッセージを生成する方法の図である。 本発明の好ましい実施形態による新しいメッセージの認証および妥当性検査の図である。

Claims (6)

  1. コンテンツ保護方式で使用される値である完全性値を計算するためのメッセージを配布する配布センターから前記メッセージを受信するユーザ装置であって当該ユーザ装置を一義的に識別する値と元の完全性値Kとを記憶する記憶手段を有するユーザ装置が実行する方法であって、
    前記配布センターから、新たな完全性値K´を計算するための新たなメッセージと共に、元のメッセージのハッシュ値h0が秘密鍵によって暗号化された値sであって、前記秘密鍵に対応する公開鍵である前記新たなメッセージのハッシュ値h1および素数の積pqによって復号した場合に前記元のメッセージのハッシュ値h0になるように暗号化された値sと、前記素数の積pqとを受信するステップと、
    受信した前記新たなメッセージのハッシュ値h1を計算するステップと、
    受信した前記暗号化された値sを、計算した前記新たなメッセージのハッシュ値h1および受信した素数の積pqによって復号し、前記復号した値h0と、前記一義的に識別する値とに基づいて前記新たな完全性値K´を計算するステップと、
    前記記憶手段によって記憶されている前記元の完全性値Kを、計算した前記新たな完全性値K´に更新するステップと、
    計算した前記新たな完全性値K´をコンテンツにアクセスするために使用するステップと、
    を含み、前記新たな完全性値K´は前記元の完全性値Kと一致することを特徴とするソフトウェアの完全性を保証する方法。
  2. 前記完全性値Kの計算は、前記一義的に識別する値g1とg2、デジタル・シグネットa、および法Mを用いて計算するデジタル・シグネット計算(K=g1h0g2 mod M)である、請求項1に記載の方法。
  3. 前記デジタル・シグネット計算の結果が、前記コンテンツ保護方式で使用される値である、請求項2に記載の方法。
  4. 前記メッセージがソフトウェア・プログラムを含む、請求項1に記載の方法。
  5. コンテンツ保護方式で使用される値である完全性値を計算するためのメッセージを配布する配布センターと、前記メッセージを受信するユーザ装置であって当該ユーザ装置を一義的に識別する値と元の完全性値Kとを記憶する記憶手段を有するユーザ装置とを備えるシステムであって、
    前記配布センターは、
    新たな完全性値K´を計算するための新たなメッセージと共に、元のメッセージのハッシュ値h0を秘密鍵によって暗号化した値sであって、前記秘密鍵に対応する公開鍵である前記新たなメッセージのハッシュ値h1および素数の積pqによって復号された場合に前記元のメッセージのハッシュ値h0になるように暗号化した値sと、前記素数の積pqとを送信する送信手段、を備え、
    前記ユーザ装置は、
    記配布センターから、前記新たなメッセージと共に、前記秘密鍵によって暗号化された値sと、前記素数の積pqとを受信する受信手段と、
    前記受信手段によって受信された前記新たなメッセージのハッシュ値h1を計算する計算手段と、
    前記受信手段によって受信された前記暗号化された値sを、前記計算手段によって計算された前記新たなメッセージのハッシュ値h1および受信した素数の積pqによって復号し、前記復号した値h0と、前記一義的に識別する値とに基づいて前記新たな完全性値K´を計算する完全性値計算手段と、
    前記記憶手段によって記憶されている前記元の完全性値Kを、計算した前記新たな完全性値K´に更新する更新手段と、
    前記完全性値計算手段によって計算された前記新たな完全性値K´をコンテンツにアクセスするために使用する認証手段と、を備え、
    前記新たな完全性値K´は前記元の完全性値Kと一致することを特徴とする、システム。
  6. コンテンツ保護方式で使用される値である完全性値を計算するためのメッセージを配布する配布センターから前記メッセージを受信するユーザ装置であって当該ユーザ装置を一義的に識別する値と元の完全性値Kとを記憶する記憶手段を有するユーザ装置に、
    前記配布センターから、新たな完全性値K´を計算するための新たなメッセージと共に、元のメッセージのハッシュ値h0が秘密鍵によって暗号化された値sであって、前記秘密鍵に対応する公開鍵である前記新たなメッセージのハッシュ値h1および素数の積pqによって復号した場合に前記元のメッセージのハッシュ値h0になるように暗号化された値sと、前記素数の積pqとを受信するステップと、
    受信した前記新たなメッセージのハッシュ値h1を計算するステップと、
    受信した前記暗号化された値sを、計算した前記新たなメッセージのハッシュ値h1および受信した素数の積pqによって復号し、前記復号した値h0と、前記一義的に識別する値とに基づいて前記新たな完全性値K´を計算するステップと、
    前記記憶手段によって記憶されている前記元の完全性値Kを、計算した前記新たな完全性値K´に更新するステップと、
    計算した前記新たな完全性値K´をコンテンツにアクセスするために使用するステップと、
    を実行させるためのコンピュータ・プログラムであって、前記新たな完全性値K´は前記元の完全性値Kと一致することを特徴とするコンピュータ・プログラム。
JP2004539185A 2002-09-26 2003-09-22 ソフトウェアの完全性を保証するためのシステムおよび方法 Expired - Fee Related JP4793843B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/259,542 2002-09-26
US10/259,542 US7240200B2 (en) 2002-09-26 2002-09-26 System and method for guaranteeing software integrity via combined hardware and software authentication
PCT/GB2003/004064 WO2004030269A2 (en) 2002-09-26 2003-09-22 System and method for guaranteeing software integrity

Publications (2)

Publication Number Publication Date
JP2006500843A JP2006500843A (ja) 2006-01-05
JP4793843B2 true JP4793843B2 (ja) 2011-10-12

Family

ID=32029514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004539185A Expired - Fee Related JP4793843B2 (ja) 2002-09-26 2003-09-22 ソフトウェアの完全性を保証するためのシステムおよび方法

Country Status (10)

Country Link
US (3) US7240200B2 (ja)
EP (1) EP1547305B1 (ja)
JP (1) JP4793843B2 (ja)
KR (1) KR100702499B1 (ja)
CN (1) CN1689269B (ja)
AT (1) ATE455409T1 (ja)
AU (1) AU2003264906A1 (ja)
DE (1) DE60330976D1 (ja)
TW (1) TWI225195B (ja)
WO (1) WO2004030269A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293109A (ja) * 2004-03-31 2005-10-20 Canon Inc ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
US8312431B1 (en) * 2004-09-17 2012-11-13 Oracle America, Inc. System and computer readable medium for verifying access to signed ELF objects
KR100711722B1 (ko) * 2005-10-04 2007-04-25 엘지전자 주식회사 이동통신 단말기의 소프트웨어 인증 장치 및 그 방법
US7389426B2 (en) * 2005-11-29 2008-06-17 Research In Motion Limited Mobile software terminal identifier
US7571377B2 (en) * 2005-12-22 2009-08-04 International Business Machines Corporation Method and apparatus for transmitting data in an integrated circuit
WO2008010128A2 (en) * 2006-07-13 2008-01-24 Nxp B.V. Secure upgrade of a mobile device with an individual upgrade software over the air
DE102007056662A1 (de) * 2007-11-24 2009-05-28 Bayerische Motoren Werke Aktiengesellschaft System zur Freischaltung der Funktionalität einer Ablaufsteuerung, die in einem Steuergerät eines Kraftfahrzeugs gespeichert ist
JP4998314B2 (ja) * 2008-02-19 2012-08-15 コニカミノルタホールディングス株式会社 通信制御方法および通信制御プログラム
JP4932034B2 (ja) 2008-03-28 2012-05-16 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム
WO2009118800A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
US8108928B2 (en) 2008-06-20 2012-01-31 International Business Machines Corporation Adaptive traitor tracing
US8949797B2 (en) 2010-04-16 2015-02-03 International Business Machines Corporation Optimizing performance of integrity monitoring
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8904189B1 (en) 2010-07-15 2014-12-02 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US8683579B2 (en) * 2010-12-14 2014-03-25 Microsoft Corporation Software activation using digital licenses
TWI480735B (zh) * 2012-02-14 2015-04-11 Nuvoton Technology Corp 具有防複製功能的微處理器晶片及其晶片燒錄系統與電子裝置
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
CN104217141B (zh) * 2014-09-04 2017-02-15 东莞理工学院 一种增强的虚拟仪器测量软件计量支持方法及装置
JP6139804B2 (ja) * 2014-10-03 2017-05-31 株式会社東芝 再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラム
CA2874277C (en) * 2014-10-04 2015-08-18 2381371 Ontario Inc. Tamper-evident network messaging method and system, and device configured therefor
CN107249002B (zh) * 2017-07-20 2021-02-23 云南电网有限责任公司电力科学研究院 一种提高智能电能表安全性的方法、系统及装置
CN108173653A (zh) * 2018-03-13 2018-06-15 江苏信源久安信息科技有限公司 通过标识密码算法生成具有生命周期密钥的方法
US11640475B1 (en) * 2019-11-26 2023-05-02 Gobeep, Inc. Systems and processes for providing secure client controlled and managed exchange of data between parties
CN111404952B (zh) * 2020-03-24 2022-06-14 中国南方电网有限责任公司 变电站数据加密传输方法、装置、计算机设备和存储介质
CN114666055A (zh) * 2022-03-31 2022-06-24 中国工商银行股份有限公司 软件数字水印的处理方法及相关装置
CN116522300B (zh) * 2023-07-04 2023-09-08 北京点聚信息技术有限公司 一种电子印章智能管理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121107A (ja) * 1993-10-28 1995-05-12 Nec Corp 鍵生成方法および装置
JPH09233068A (ja) * 1996-02-23 1997-09-05 Digital Vision Lab:Kk 電子認証システム
US5978482A (en) * 1995-08-21 1999-11-02 International Business Machines Corporation Method and system for protection of digital information
JP2002156903A (ja) * 2000-11-22 2002-05-31 Hitachi Ltd 電子データの内容証明方法及びそのシステム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4658093A (en) * 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US5266771A (en) * 1991-12-05 1993-11-30 Amf Irrevocable Trust Ornament having patterned ornamental indicia thereon, and method and apparatus for fabricating same
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US6049671A (en) 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US6138236A (en) * 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
CN1197248A (zh) * 1996-09-25 1998-10-28 中国工商银行福建省分行 一种数字签名方法
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6266771B1 (en) 1997-02-10 2001-07-24 The Regents Of The University Of California Probabilistic signature scheme
US6334189B1 (en) * 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6266429B1 (en) * 1998-09-23 2001-07-24 Philips Electronics North America Corporation Method for confirming the integrity of an image transmitted with a loss
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
DE10008973B4 (de) 2000-02-25 2004-10-07 Bayerische Motoren Werke Ag Autorisierungsverfahren mit Zertifikat
KR100455566B1 (ko) 2000-06-30 2004-11-09 인터내셔널 비지네스 머신즈 코포레이션 코드 갱신을 위한 장치 및 방법
US20020083318A1 (en) * 2000-12-26 2002-06-27 Larose Gordon Edward Method and system for software integrity control using secure hardware assist

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121107A (ja) * 1993-10-28 1995-05-12 Nec Corp 鍵生成方法および装置
US5978482A (en) * 1995-08-21 1999-11-02 International Business Machines Corporation Method and system for protection of digital information
US6038316A (en) * 1995-08-21 2000-03-14 International Business Machines Corporation Method and system for protection of digital information
JPH09233068A (ja) * 1996-02-23 1997-09-05 Digital Vision Lab:Kk 電子認証システム
JP2002156903A (ja) * 2000-11-22 2002-05-31 Hitachi Ltd 電子データの内容証明方法及びそのシステム

Also Published As

Publication number Publication date
US7721098B2 (en) 2010-05-18
US20040064695A1 (en) 2004-04-01
TW200406667A (en) 2004-05-01
KR100702499B1 (ko) 2007-04-02
EP1547305A2 (en) 2005-06-29
ATE455409T1 (de) 2010-01-15
DE60330976D1 (de) 2010-03-04
CN1689269B (zh) 2010-04-28
TWI225195B (en) 2004-12-11
AU2003264906A8 (en) 2004-04-19
KR20050056204A (ko) 2005-06-14
AU2003264906A1 (en) 2004-04-19
US7734921B2 (en) 2010-06-08
EP1547305B1 (en) 2010-01-13
JP2006500843A (ja) 2006-01-05
US20080215885A1 (en) 2008-09-04
US20080313460A1 (en) 2008-12-18
WO2004030269A2 (en) 2004-04-08
WO2004030269A3 (en) 2004-08-12
CN1689269A (zh) 2005-10-26
US7240200B2 (en) 2007-07-03

Similar Documents

Publication Publication Date Title
JP4793843B2 (ja) ソフトウェアの完全性を保証するためのシステムおよび方法
US6871276B1 (en) Controlled-content recoverable blinded certificates
CN101443774B (zh) 优化完整性验证过程的方法和系统
US8935528B2 (en) Techniques for ensuring authentication and integrity of communications
EP0881559B1 (en) Computer system for protecting software and a method for protecting software
US7516321B2 (en) Method, system and device for enabling delegation of authority and access control methods based on delegated authority
EP1622301B1 (en) Methods and system for providing a public key fingerprint list in a PK system
US6950523B1 (en) Secure storage of private keys
US20060195402A1 (en) Secure data transmission using undiscoverable or black data
US9531540B2 (en) Secure token-based signature schemes using look-up tables
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
US20100098246A1 (en) Smart card based encryption key and password generation and management
US20100161992A1 (en) Device and method for protecting data, computer program, computer program product
US20030167407A1 (en) Authenticated file loader
US20030093674A1 (en) Method and apparatus for encrypting data
KR100897075B1 (ko) 배포 cd를 사용하는 장치에 서명 그룹의 다이렉트 증명개인 키들을 전달하는 방법
CN116881865A (zh) 一种许可证生成方法以及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060320

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091112

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20091112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110705

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110721

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees