JP2002519723A - 非公開に認証可能な暗号署名を生成し、かつ製品の複製に関連してそのような署名を用いるための技術 - Google Patents

非公開に認証可能な暗号署名を生成し、かつ製品の複製に関連してそのような署名を用いるための技術

Info

Publication number
JP2002519723A
JP2002519723A JP2000556476A JP2000556476A JP2002519723A JP 2002519723 A JP2002519723 A JP 2002519723A JP 2000556476 A JP2000556476 A JP 2000556476A JP 2000556476 A JP2000556476 A JP 2000556476A JP 2002519723 A JP2002519723 A JP 2002519723A
Authority
JP
Japan
Prior art keywords
signature
authentication data
value
key
copy
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.)
Granted
Application number
JP2000556476A
Other languages
English (en)
Other versions
JP4644368B2 (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.)
Microsoft Corp
Original Assignee
Microsoft 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
Priority claimed from US09/102,851 external-priority patent/US6163841A/en
Priority claimed from US09/102,948 external-priority patent/US6209093B1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002519723A publication Critical patent/JP2002519723A/ja
Application granted granted Critical
Publication of JP4644368B2 publication Critical patent/JP4644368B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)
  • Facsimile Transmission Control (AREA)

Abstract

(57)【要約】 所与の署名すべきメッセージに対し、メッセージの署名者から発信されたものとして、署名されたメッセージの受信者により認証される真正な暗号署名を生成し、そのような署名を適切に認証するための技術である。特に、この技術は、たとえば数字で表わされた、製品の複製の識別子(83、93)のようなメッセージを与えられると、有限体上の楕円曲線上の点から選択された生成元の値を用いて、公開鍵暗号システムに基づき真正な署名(87、97)を形成する。真正な署名は3つの鍵、すなわち公開鍵、非公開鍵、および秘密鍵と関連した生成元の値を用いて生成され、従来の2つの鍵からなる公開鍵暗号システムを介して生成された暗号署名と関連して実質的に安全性を高める。製品の複製の独自の認証データは、所与の製品の複製に対し識別子をその対応する真正な署名と連結することにより形成され得る。その後にユーザがコンピュータ(200)にその複製をインストールする間、インストールプログラムの実行により要求されると、ユーザは認証データを入力し、次に認証データに含まれた署名を非公開に認証し、インストールを継続するかまたは早期に終了させるかが判断される。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
この発明は暗号法に関し、特定的には、所与の署名すべきメッセージに対し、
メッセージの署名者から発信されたものとして、署名されたメッセージの受信者
によって非公開に認証され得る真正な暗号署名を生成し、かつそのような署名を
適切に認証するための技術に関する。
【0002】
【先行技術の説明】
何世紀にもわたり、情報が二人の個人の間で伝達される限り、情報は第三者に
よって傍受、盗聴、漏洩および/または破損されやすいものであった。そのよう
な行為から情報を確実に保護するという問題が長きにわたり存在してきたのは明
らかである。
【0003】 伝統的にはこの問題は、長年にわたり、より複雑な暗号技術を開発することに
よって対処されてきた。これらの暗号技術の1種に鍵ベースの暗号の使用が含ま
れる。特定的には、鍵ベースの暗号を介して、全体的にメッセージを形成する理
解可能なデータのシーケンスすなわち平文は、各々、暗号化アルゴリズムを介し
て一見しただけでは理解できないデータ、すなわちいわゆる暗号文に数学的に変
換される。その変換は、暗号文はそれが対応するもとの平文に戻せなければなら
ないという意味で完全に可逆、すなわち双方向でなければならないだけでなく、
1対1対応に基づいていなければならない。すなわち各々の平文の要素は暗号文
の1つかつ唯一の要素にのみ変換可能でなければならない。さらに、いずれの所
与の暗号文を生成した特定の暗号も、暗号解析からは十分に安全でなければなら
ない。秘密保持に必要なレベルを提供するためには、唯一の一意な対応する暗号
を規定する一意な鍵が選択される。すなわち可能な限り多数の異なる鍵の各々が
、同じ平文−暗号文対応関係の間の可逆変換をもたらすような状況を排除する。
どのような暗号技術の強度も、したがってそれが与える第三者の侵入からの防御
のレベルも、第三者がたとえば鍵ベースの暗号を用いて鍵の事前知識なしで暗号
文をその対応する平文に変換する暗号解析に要する時間と正比例する。暗号解析
を全く受け付けない暗号技術はないが、当時利用可能であったコンピュータ技術
を考慮すると、事前にその鍵の知識なしに暗号を解読するのには膨大な数の計算
および極めて長い時間が必要であるために、実際的な意図と目的とのすべてにつ
いては、多くの技術はそれらの幅広い採用および使用を正当化するに十分なほど
安全である。その点では、ほんの数年前は、当時利用可能な情報処理技術の状態
を鑑みれば、解読に人年(man-years)のオーダまたはそれ以上に長くかかるほ
ど暗号が複雑ならば、その基本となる暗号技術はその使用を正当化するに十分な
程度の安全性を有していると多くの人に考えられていた。
【0004】 公開鍵アルゴリズムは鍵ベースの暗号の1つの形式である。このようなアルゴ
リズムでは、各々の情報伝達当事者が1対の公開−非公開鍵を生成する。各々は
自分の公開鍵を公にアクセスが可能な掲示板、サーバまたは他の設備に公表し、
対応する非公開鍵を秘密にしておく。本質的には、平文のメッセージを暗号化し
それを相手すなわち宛先に送信したい発信当事者は、この両者は同じ公開鍵アル
ゴリズムを用いるのだが、まず宛先当事者の公開鍵にアクセスし、その公開鍵を
用いて平文のメッセージを暗号文のメッセージに暗号化し、暗号文のメッセージ
を宛先当事者に送信する。暗号文のメッセージを受取ると、宛先当事者はその非
公開鍵を用いて、メッセージを解読し元の平文を回復する。鍵は非常に明確なア
ルゴリズムを用いて正確に計算され、完全な可逆性を保証しながら必要な安全レ
ベルを提供している。
【0005】 公開鍵暗号の解読に必要であると思われる純粋な作業数を考慮すると、公開鍵
暗号システムは、その解読がはっきりと実行不可能であるという程度にまで安全
性の高い暗号を提供しているが、そのようなシステムでもその使用を制限し得る
欠点を有する。公開鍵システムの主要な欠点とは、その各々がかなり長いビット
シーケンスを有する係数と、個別の鍵に対する依存性である。たとえばある係数
は長さが容易に1024ビットとなり得るし、個別の鍵は数百ビットものシーケ
ンスから形成され得る。アプリケーションによっては、たとえばそのような鍵が
容易に記憶され、インデックス付けされ、かつ必要に応じてアクセスされ得る暗
号アプリケーションプログラムでは、鍵の長さがユーザにとって実際的な問題を
生ずることは、あるとしてもごくわずかである。しかし他のアプリケーションで
は、そのような長い鍵のシーケンスは、仮にアルファニューメリックデータに変
換されたとしても、依然としてユーザが簡単に手入力できないような長すぎる文
字列を生成してしまうことがある。実際、公開鍵システムの高い安全性の要因は
その鍵と係数の両者に非常に長いビットシーケンスを用いていることにある。係
数が認め得るほど短くなってしまうと、暗号化されたメッセージが簡単に暗号解
析されてしまうことになり、したがって、その基本となるシステムの安全性もす
ぐに危うくなる。
【0006】 コンピュータ技術は急速に進化を続けている。ほんの数年前はその高い性能お
よび速度について耳にしたこともなかったプロセッサが非常に安価な値段で商用
的に利用可能となっている。その結果、多くのいわゆる「安全な」暗号を解読す
るには十分な処理能力を有しないと以前は見られていたパーソナルコンピュータ
およびワークステーションのような情報処理システムが今や、その現在の能力と
性能を考慮すると、第三者にそれらの同じ暗号を効果的に解読するのに必要な性
能を提供している。10年前は連続して計算しても何年もかかったであろうこと
が現在ではほんの少しの時間で達成される。このように、技術が進歩するにつれ
、暗号技術は継続して取組むことで決まったやり方で進歩し、対応して進歩して
いく暗号解析に耐えるように高性能の暗号技術をますます発達させる。
【0007】 暗号とは全く離れるが、少なくとも過去10年の間、コンピュータのソフトウ
ェア製造者は無許諾の第三者によりライセンスなしにその製品をかなり使用され
、それは現在も続いている。これは、一部には、フレキシブルディスクまたはC
D−ROMのような、ソフトウェアプログラムを含む配布媒体が比較的簡単に複
製できるためである。そのような無許諾での使用を防ぐために、比較的長いアル
ファニューメリックの認証データが各々のソフトウェア製品のパッケージの合法
的な複製とともにしばしば配布され、ユーザがコンピュータにその複製をインス
トールする間に要求されれば、ユーザはその認証データを入力しなければならな
い。特に、この複製はインストールプログラムを含んでおり、ユーザはまずこれ
をロードしかつ実行してインストールのプロセスを開始し、順番にインストール
のプロセス全体を実行する。典型的には、インストールのプロセスの早い段階で
、インストールされる複製のユーザは認証データを手入力するようにプログラム
に要求される。認証データはたとえば10桁またはそれ以上の桁数を含んでもよ
い。コンパクトディスク(CD)を介して配布される場合は、認証データはCD
を含む各々のケースに添付されたラベルに印刷される。フレキシブルディスクで
配布される場合は、認証データは各々のソフトウェアパッケージの中に含まれる
証明書または他の挿入物にしばしば印刷される。いずれにせよ、一旦ユーザが認
証データを完全に入力し、典型的には画面上に現われる「OK」ボタン(または
同様のもの)をクリックすることによりプログラムに信号を送ると、インストー
ルプログラムはインストールされるその特定の複製がライセンスされたバージョ
ンか否かを判断しようとしてその認証データの確認を試みる。認証データの有効
性が確認されると、インストールのプロセスは進行する。有効でなければ、イン
ストールは早期に終了する。すなわち、合法的に有効な複製を入手した各々のユ
ーザ(すなわちライセンスを受けた者)は製造者によって提供されたパッケージ
全体を所有し、したがって有効な認証データを有するが、添付のパッケージおよ
び/または挿入物のないプログラム自体の複製しか入手していない無許諾のユー
ザは認証データを有しないことが前提である。認証データの長さを考慮すると、
ユーザが有効な認証データを当てずっぽうで選んでしまう可能性はかなり小さい
。したがって、無許諾の複製をインストールしようとするユーザは間違った認証
データを繰返し入力することが予測され、事実上入手したプログラムの複製をイ
ンストールすることができず、結果的にその複製は無用となる。
【0008】 残念ながら実際には、そのような認証データを生成するための基本となるアル
ゴリズムは比較的簡単に識別できることが判明しており、かなり広くかつ違法に
広まってしまったようである。したがって利用可能なアルゴリズムを考慮すると
、無許諾のユーザでも多少作業をすれば、インストールしようとするプログラム
の有効な認証データを入手することができる。このため、製造者はそのような無
許諾の複製の使用を防ごうとしてしばしば失敗してしまう。
【0009】 ソフトウェア製造者がその製品の無許諾の複製により収入を失っていることは
明らかである。さらにソフトウェア製造者はいろいろな形態でその製品の顧客サ
ポートをしばしば提供している。ライセンスを受けた人のみにそのようなサポー
トを限定するため、顧客サポートの担当者は、サポートを受ける条件として、ユ
ーザがサポートを求める製品の複製と関連した認証データを提供するようユーザ
にしばしば求める。無許諾のユーザが簡単に有効な認証データを入手できること
を考慮すると、ソフトウェア製造者が許諾された人にサポートを提供しながら無
許諾のユーザにはサポートを拒否しようとしても、許諾された人と無許諾の人と
の区別が非常に困難となっている。その結果、製造者は知らないうちに無許諾の
ユーザにサポートを提供し、これにより追加のかつ不必要なサポートのコストが
かかってしまう。所与のソフトウェア製品の無許諾のユーザの数が十分に多けれ
ば、その製品と関連したこれらの超過コストはかなり大きくなり得る。
【0010】 したがって、ソフトウェア製造者がそのソフトウェア製品の無許諾の複製の発
生をかなり低減する技術に対する必要性が存在する。そのような技術によりその
製品の各々の複製を独自に識別し、その特定の複製の認証が判断されなければな
らない。好ましくは、そのような技術は公開鍵システムを介して十分に安全な識
別子を暗号的に生成するステップを含まなければならない(すなわちコンピュー
タ技術の現在の状況および今後予測される進化を考慮すると、第三者が鍵の知識
なしに有効な識別子を生成することは不可能であろう)。さらに、識別子はその
安全性を確実にするために十分に長くなければならず、しかし長くなりすぎて、
必要なときたとえばインストールのプロセスまたは製品のサポートを受ける間、
識別子を手で入力しなければならないユーザを苛立たせてはならない。そのよう
な技術を用いることにより、ソフトウェア製造者はそのソフトウェア製品の許諾
なしの使用およびさもなければかかってしまう関連費用を大幅に低減することが
できるであろう。そうすることにより、次に、製造者がプロモーションのような
他のサービスをライセンスを受けた顧客に提供することが経済的に可能となり、
それにより製品と製造者両者に対する顧客の満足度を高めることができる。
【0011】
【発明の概要】
この発明は、たとえば数字で表わされた、製品の複製の識別子のようなメッセ
ージが与えられると、公開鍵暗号システムに基づき、かつ有限体上の楕円曲線上
の点から選択された生成元の値を用いて、真正な暗号署名を形成することにより
このニーズを有利に満たし、かつ先行技術の欠点を克服する。この技術は3つの
鍵、すなわち公開鍵、非公開鍵および秘密鍵と関連した生成元の値を用いて真正
な署名を形成し、従来の2つの鍵の公開鍵暗号システムを介して生成された暗号
署名と関連して実質的に安全性を高めている。
【0012】 この発明を利用すると、現時点での実行の可能性と秘密鍵の知識がないという
ことから、真正な署名を含む新たな署名されたメッセージのペアを生成するには
公開鍵および非公開鍵を知っているだけでは大いに不十分である。
【0013】 この発明の教示に従うと、特定の楕円曲線上の点を与えられると、曲線上のあ
る点の値が生成元の値として選択される。非公開鍵は無作為に選択される。公開
鍵は生成元の値と非公開鍵との予め定められた関数、特に前者の後者による冪乗
として決定される。秘密鍵が用いられて擬似乱数を生成する。真正な署名の第1
の部分が、予め定められた生成元の関数、擬似乱数およびメッセージ(無作為に
選択された識別子)を介して生成される。特定的には、生成元は擬似乱数の値で
まず冪乗され、その値が次にメッセージと連結される。その結果生じた連結した
数は予め定められたハッシュ関数を介して処理され、真正な署名の第1の部分を
与える。真正な署名の残余の部分は第1の部分、擬似乱数の値および非公開鍵の
予め規定された関数に応答して生成される。真正な署名全体は両者の署名の部分
をともに連結させることにより最終的に生成される。
【0014】 ソフトウェア製品の複製とともに用いられるようなバイナリ値の認証データは
識別子を真正な署名と連結させることにより形成される。バイナリ値の認証デー
タはアルファニューメリックの形式に変換され、次に典型的にはその複製のパッ
ケージに添付されるラベルに印刷されることにより製品の複製と関連付けられる
。公開鍵および生成元の値は、クライアントコンピュータにインストールする間
に、製品の複製自体の中の適切なファイル内に記憶され、複製のその後の認証の
間に用いられる。
【0015】 製品の複製のインストールの間、ユーザが入力した署名は、クライアントコン
ピュータで生成元の値、公開鍵、およびユーザが入力した認証データ全体、特に
その識別子および署名を用いて署名の第1の部分を計算することにより認証され
る。その後、この第1の部分の値は、ユーザが入力した認証データに含まれる署
名の同じ部分の値と比較され、これら2つの値が同一に一致するか否かを判断す
る。一致すれば、入力された署名は真正であり、この複製のインストールが進行
する。一致しなければその署名は真正ではなく、インストールは早期に終了する
【0016】 製品の複製の認証データの生成と関連して、3つの別個の段階が用いられてこ
の発明が実現する。すなわち(a)さまざまなパラメータの値を生成するために
一度、典型的にはソフトウェア製造者により行われる初期化、(b)媒体複製場
所で繰返し行なわれる、初期化の間に生成されたパラメータの値を用いて、異な
る製品の複製ごとにその複製とともに用いられる真正な署名を含む対応する認証
データを生成するための認証データの生成、および(c)ユーザ側でインストー
ルプログラムを実行する間に、ユーザにより入力されかつユーザがインストール
しようとする特定の製品の複製と関連した認証データ内で署名を認証するために
別個におよびその後に行なわれる認証である。
【0017】 この発明の教示は添付の図面と関連した以下の詳細な説明を考察することによ
り容易に理解される。
【0018】 理解を容易にするために、可能なところでは、同一の参照番号が図面に共通な
同一の要素を示すように用いられている。
【0019】
【詳細な説明】
以下の説明を考慮すると、この発明の教示が送信者側で所与のメッセージに対
し暗号署名を生成する必要が生じる幅広い適用例のいずれにも用い得ることが当
業者には明確に理解されるであろう。この発明は、共通の送信者すなわち署名者
から発信される一意な一連のメッセージに対し署名が生成されるべき事例におい
て、特に好適に用いられるが、それのみに限られるわけではない。その結果生じ
る署名の各々は高い安全性を与える、すなわち暗号解析が不可能であるだけでな
く、その共通の署名者のみから発信されるものとして認証され得る。この点にお
いて、そのような署名の各々は1組の有効な署名の一部として公開鍵の使用によ
り公に検証され、さらに秘密鍵を用いて非公開にかつ一意に認証され得る。さら
に有利なことにはこの発明を用いると、第三者(意図された署名者ではない)が
その受信者にとって有効に見えるような署名を不正に生成する方法を決定しよう
としたとしても、その第三者はその受信者に対して特定の署名を適切に認証する
という不可能な作業に直面する。以下の議論を単純にするために我々は、たとえ
ばソフトウェア製品の特定の複製をクライアントパーソナルコンピュータ(PC
)にインストールする間に、それを認証する目的で、ソフトウェア製品の所与の
複製と署名自身が一意に関連付けられた、対応する認証データ内で用いられるべ
き署名を生成するという文脈で、この発明を論じる。
【0020】 A 使用環境 CD−ROM生産システム5の単純化されてはいるがハイレベルのブロック図
である図1を考察する。このシステムは、図示されたその基本的な形態では、コ
ンピュータ10、CD書込装置50およびプリンタ60を含む。このシステムは
、ソフトウェアの製品パッケージに含まれるようなアプリケーションプログラム
の完全な複製を集合的に実現するのに必要なファイルをすべて含むCD−ROM
を生産する。この製品はたとえばワードプロセッサプログラム、表計算プログラ
ム、集合的に提供される1組のそのようなプログラム、オペレーティングシステ
ムまたはその製造者によって一体として生産されかつ配布されるいずれのソフト
ウェア製品のパッケージであってもよい。
【0021】 システム5は所与の複製を実現するのに必要なすべてのファイルを複製するだ
けでなく、このシステムは、一般的にラベルに印刷されてCD−ROMを含むケ
ースまたはCD−ROMがそこに入れられる箱のいずれかに添付されたアルファ
ニューメリックの認証データを生成する。この認証データは2つの役割を果たす
。すなわち(a)それと関連付けられる特定のCD−ROMを一意に識別する、
および(b)この発明を介して、その特定のCD−ROMに対し暗号的に認証を
与え、本質的に他には認証を与えない。後者の役割については、次に特定のCD
−ROMからPCに製品をインストールしながら(このプロセスは図2と関連し
ておよび図5に詳細に一般的に説明される)、ユーザが要求されて認証データを
入力するたびに、認証手順がインストールプログラムの一部として実行され、C
D−ROM上に記憶された特定の情報(公開鍵および秘密鍵を含む)と関連して
、ユーザが入力した認証データが製造者から与えられたものか、またこの特定の
CD−ROMに対し真正かを暗号的に判断する。
【0022】 製造者は自身で使用するために多数の組の有効な認証データを生成し、または
その組を安全にその製品の製造の間に、許諾された第三者であるディスク複製者
に配布できるが、所与の製品の複製に対してシステム5によって生成された各々
のおよびすべての認証データはその対応する製品の複製に対し一意に認証され得
る。このように、もし第三者がすべてのアプリケーションおよびインストールフ
ァイルを含むソフトウェアの違法な複製を入手したとしても、その複製が置かれ
る媒体を問わず、その特定の複製に対して適切に認証される認証データをその第
三者が生成することは、有効な認証データのリストを所有していたとしても不可
能である。
【0023】 特に図1を参照すると、コンピュータ10はアプリケーションプログラム20
および特にソフトウェア複製生成プログラム30をローカルに記憶しかつ実行す
る。関連する範囲内で、プログラム30は、ソフトウェア製品のパッケージの複
製を集合的に実現するのに必要なすべてのファイルの複製を記憶するたとえばC
D−ROMを生産するプロセスを制御する。これらのファイルは、リモートコン
ピュータたとえばクライアントPCに製品を完全にインストールし、かつ実現す
るのに必要なすべてのプログラムファイル(あれば、関連したデータファイルを
含む)およびインストールファイルを含む。コンピュータ10内では、これらの
ファイルは、例えばローカルのハードディスクのようなプログラム記憶装置15
に集合的に存在するがそれに代えて、ネットワーク接続を介してリモートファイ
ルサーバに実現されてもよい。これらのファイルは線17で示されたように、ソ
フトウェア複製生成プログラム30内で実行される従来のファイル複製プログラ
ム32を介して順にダウンロードされる。プログラム32はダウンロードすべき
ファイルを特定し、プログラム記憶装置15から順にこれらのファイルの各々に
アクセスし、次に書込装置に挿入されたCD−ROM上にそのファイルを書込む
ように命令されると、各々のそのようなファイルをCD書込装置50にダウンロ
ードする。以下に詳述されかつ特に図4と関連して述べられる認証データ生成プ
ロセス400は、典型的には長さが25桁であるアルファニューメリックの認証
データ75を生成し、それはこれらのファイルが書込まれる特定のCD−ROM
と関連付けられる。一旦認証データがプロセス400によって生成されると、図
1に示されたようにこのプロセスはこの認証データをプリンタ60に与え、プリ
ンタは認証データをラベルに印刷する。すべてのファイルがCD−ROMに複製
されると、破線55で示されたように、それは次にCD−ROMケースのような
好適なパッケージ70に挿入される。破線65で示されたように、このラベルは
このパッケージの外の面に添付される。プロセス400は、プログラムファイル
がCD−ROMに書込まれまたは時間をずらした関係で書込まれながら、実質的
に同時に認証データが生成されるように実行されてもよい。単純化するためにシ
ステム5は単一のコンピュータ、単一のCD書込装置および単一のプリンタを含
むように示されているが、実際にはシステム5は所望により、パイプライン化さ
れかつ並列にプログラムを複製する動作を実現する、通常はリモートファイルサ
ーバにネットワークで接続された多数のコンピュータ、多数の書込装置および多
数のプリンタを含んでもよい。
【0024】 表示80に示された認証データ75は、識別子(ID)と、その後に続く、そ
の識別子から生成された署名すなわちSIGN(ID)とをその後に伴う識別子
(ID)を含む領域83および87を含む。認証データの詳細な表示90に示さ
れるように、識別子はメッセージMを含み、それはソフトウェア製造者が生産し
たすべての製品の各々およびすべての複製に対し一意な値を有する。例示的には
、このメッセージは、バイナリ値に変換されると、製造者が生産したすべての製
品にわたり与えられた、1つのソフトウェア製品のただ1つの複製にのみ与えら
れる32ビットのバイナリ値の連続番号である。署名は、バイナリ値に変換され
ると、以下に詳述されかつこの発明では識別子を用いる製造者により形成される
2つの値rおよびsを連結したものである、例示的な83ビットの値を含む(連
結演算は以下に示す記号で表わされる)。
【0025】
【数9】
【0026】 図2は、図1で示されたシステム5を介して生産されたようなCD−ROMか
らプログラムをインストールする間、例示的にこの発明を利用する典型的なクラ
イアントコンピュータ200の高レベルのブロック図である。
【0027】 ここでは、線207で示されたように、CD−ROMからプログラムをインス
トールするためにユーザはクライアントコンピュータ200と関連付けられたC
D−ROMドライブにCD−ROMを挿入する。ユーザがマニュアルでコンピュ
ータ200に命令して、CD−ROM上に記憶されたインストールプログラム2
20(典型的にはたとえばsetup.exeまたはinstall.exeという名称)の実行を開
始するかまたは従来のオートラン機能を介してこのプログラムが自動的に実行さ
れるかのいずれかであり、両者ともプログラム220と関連付けられかつそのと
きそのクライアントコンピュータ上で実行中のオペレーティングシステム上で実
現される。インストールプログラム220はそのときクライアント上で実行中の
アプリケーションプログラム210の1つとして実行される。プログラム220
は、製品に対し予め定められたインストールのプロセスを実現するが、CD−R
OMからローカルの大容量記憶装置に製品のプログラムファイルを転送する前に
、認証プロセス500を実行する。図5と関連して以下に詳述されるが、このプ
ロセスはそこからプログラムがインストールされる特定のCD−ROMと関連付
けられた認証データをユーザが入力することを要求する。ユーザはこの要求に応
じて、マニュアルで、典型的にはコンピュータ200と関連したキーボードで、
この特定のCDと関連した特定の25桁のアルファニューメリック認証データを
入力する。典型的にはコンピュータ200と関連したローカルの画面に表示され
る適切なボタンをマウスでクリックすることにより認証データの入力を完了した
ことを一旦ユーザが示すと、認証データ内に含まれた情報、特にM、rおよびs
の値を含む情報ならびにCD−ROM自体に記憶された、以下に定められたよう
な特定のデータの値を用いて、認証プロセス500はユーザが入力した認証デー
タが真正か、すなわちそれが製造者から与えられたものか、およびこの特定のC
D−ROMに関して真正かを判断する。
【0028】 認証プロセス500がユーザが入力した認証データの認証に成功すると、次に
このプロセスはインストールプログラム220(図2に図示)にそのように通知
し、するとそのインストールプログラム220はインストールのプロセスを継続
し、その後CD−ROMからクライアントコンピュータ200に適切なプログラ
ムファイルを複製する。しかしながらプロセス500が認証データを認証しない
と、次にプロセス500はプログラムファイルをクライアントコンピュータ20
0に全く複製せずにインストールプロセスを早期に終了する。認証データが認証
されたか否かに基づき、認証プロセス500は線230で示されたようにユーザ
に対し好適なメッセージを生成しかつ表示する。認証データが認証されるか否か
にかかわらず、このメッセージはそれぞれ、インストールプロセスの認証後の段
階の引続いての画面の生成および表示中に暗黙のうちに示されてもよいし、また
はインストールされる複製の使用をユーザが許諾されないためインストールが終
了することを示す特定の警告のメッセージでもよい。
【0029】 図3はクライアントコンピュータ(PC)200のブロック図である。 図示されたように、クライアントコンピュータ200は入力インターフェイス
(I/F)320、プロセッサ340、通信インターフェイス350、メモリ3
30および出力インターフェイス360を含み、すべてが従来どおりバス370
によって相互接続される。メモリ330は、一般的には種々の様式を含み、たと
えば一時的なデータおよび命令の記憶のためのランダムアクセスメモリ(RAM
)332、ユーザのコマンドによりフロッピーディスケットと情報を交換するた
めのディスケットドライブ334、典型的には磁気性であるハードディスクを介
して実現される不揮発性大容量記憶装置335、およびCD−ROMドライバ3
36を含む。この発明はCD−ROMで配布されたソフトウェア製品とともに使
用するという点で論じられているが、この発明はたとえばフロッピーディスケッ
トのような他の一般向けの媒体で配布されるソフトウェア製品にも適用が可能で
あり、フロッピーディスケットの場合はその媒体がフレキシブルディスクドライ
ブ334のような適切なドライブに挿入され、そこからインストールプログラム
が読取られかつ実行される。大容量記憶装置335はまた、好適な光学記憶媒体
から情報を読取る(かつそこに情報を書込む)別の光学媒体読取装置(図示せず
)(または書込装置)を含んでもよい。さらに、大容量記憶装置335はまた、
オペレーティングシステム(O/S)337およびアプリケーションプログラム
210に対する実行可能な命令および関連したデータを記憶する。プログラム2
10はインストールプログラム220を含み、インストールプログラム220自
身は、ソフトウェアのインストールのプロセスの間に一旦ロードされると、この
発明の認証プロセス500(図5を参照)を含む。図3に示されたO/S337
は、WINDOWS NTオペレーティングシステムのようないずれの従来のオ
ペレーティングシステムにより実現されてもよい。したがって、O/S337の
構成要素はすべて関連がないため、ここでは論じない。インストールプログラム
220はアプリケーションプログラム210の1つであり、O/Sの制御下で実
行されるといえば十分であろう。
【0030】 有利には、この発明技術は、ソフトウェア製品内で用いるために埋込まれると
、インストールされる特定の製品の複製に対する認証データを入力する以外にユ
ーザの行動を要求しない。
【0031】 図3に示されたように、入来する情報は2つの例示的な外部ソースから、すな
わちネットワークにより与えられる情報、たとえばインターネットからおよび/
または他のネットワークに接続した設備からネットワーク接続355を介して通
信インターフェイス350へ、または専用入力ソースから経路310を介して入
力インターフェイス320へ発生し得る。専用入力は幅広い種類のデータソース
から発生し、そのいずれもここでは特に無関係である。我々はこの発明をCD−
ROMからのローカルでのインストールに用いるという文脈で論じているが、こ
の発明は、インターネットまたは他のネットワーク設備(たとえばイントラネッ
ト)のようなものを介した、コンピュータ200への製品のネットワークインス
トールとともに用いられてもよい。この場合は、製造者またはサイトライセンス
管理者が、製品の複製に対する電子的支払またはライセンスを受けた複製に対す
る正当に許諾された要求を受取ると、リモートネットワークファイルサーバから
その製品の複製に対する対応する認証データを含むファイルを次にダウンロード
できる。関連したインストールプログラムがファイルサーバ上でリモートで実行
できるのであれば、そのときはサーバは認証データを含むクライアントに記憶さ
れたファイルにアクセスし、さらにコンピュータ200にいずれかのプログラム
ファイルをダウンロードする前に認証データを認証するステップに進む。代替的
に、インストールプログラムがローカルで実行されるのならば、一旦すべてのプ
ログラムファイルおよびインストールファイルがサーバによりダウンロードされ
ると、サーバが(またはユーザがある後の時点で)ローカルでインストールプロ
グラムの実行を開始する。このプログラムは認証データを含むファイルにローカ
ルでアクセスし、製品の複製を認証するステップに進む。
【0032】 入力インターフェイス320は適切な回路を含み、コンピュータシステム20
0への入力情報の各々の異なる専用ソースを物理的に接続しかつインターフェイ
スするのに求められる、必要かつ対応する電気的接続を与える。オペレーティン
グシステムの制御下では、アプリケーションプログラム210はネットワーク接
続355または経路310を介して、コマンドおよびデータを外部ソースと交換
し、プログラムの実行中に典型的にはユーザによって要求された情報を伝送しか
つ受取る。
【0033】 さらに、入力インターフェイス320はまた、キーボードおよびマウスのよう
なユーザの入力装置395をコンピュータシステム200に電気的に接続かつイ
ンターフェイスする。従来のカラーモニタのようなディスプレイ380および従
来のレーザプリンタのようなプリンタ385は、導線363および367を介し
て、それぞれ出力インターフェイス360に接続される。出力インターフェイス
は必要な回路を提供し、ディスプレイおよびプリンタをコンピュータシステムに
電気的に接続かつインターフェイスする。一般的には、また認められるようにこ
の発明技術を利用すると、単に製品の複製の認証データを生成するだけではなく
、それを介してクライアントコンピュータ200がこれらのメッセージを入手し
、記憶しおよび/または伝達する様式にも関わらず、ほとんどどのタイプのメッ
セージに対しても、一意な、安全なおよび真正な署名を生成することができる。
【0034】 さらに、コンピュータシステム200の特定のハードウェア構成要素、および
メモリ335内に記憶されるあらゆるソフトウェアの局面は、この発明を実現す
るモジュールを除いて従来のものでありかつ周知であるので、詳細には論じない
。一般的に、コンピュータ10はクライアントコンピュータ200と類似のアー
キテクチャを有する。
【0035】 B 発明技術 この発明では、たとえば数字で表わされた製品の複製の識別子のようなメッセ
ージが与えられると、公開鍵暗号システムに基づきかつ有限体上の楕円曲線上の
点から選択された生成元の値を用いて、真正な署名がそのメッセージに対して生
成される。この技術は例示的な署名者Aのための3つの鍵、すなわち公開鍵(P
A)、非公開鍵(SA)および秘密鍵(KA)と関連した生成元の値を用いて真
正な署名を生成することに依存している。
【0036】 公開鍵暗号では、メッセージ(M)に対する署名はその署名者Aによってメッ
セージならびに署名者の公開鍵および非公開鍵と相関して生成される。すなわち
Sign(M,PA,SA) → SIGNATURE_A(M) このメッセージの受信者Bは、自分の受取るメッセージの署名をメッセージ、そ
の署名およびその署名者の公開鍵の関数として、すなわち、 Verify(M,SIGNATURE_A(M),BA)で検証することができる。検証の結果は、
一般的に署名が有効か否かを特定するイエス/ノーの表示で示される。署名が有
効であれば、署名者の特定の公開鍵および非公開鍵(キーペア)の使用によるも
のとされる。第三者が、メッセージおよび関連した署名の暗号を解析して、また
はたとえばこれらの鍵を盗んで不正にこのキーペアの知識を得たならば、第三者
は署名されたメッセージのペアすなわちメッセージおよびそれらのメッセージの
各々に対する有効な署名を新たに生成することができてしまう。
【0037】 この発明技術は、真正な署名が署名者の公開鍵および非公開鍵からだけでなく
、署名者の秘密鍵からも生成される必要があるために、署名と関連した安全性を
実質的に高めている。すなわち、 Authentic_Sign(M,PA,SA,KA) → Authentic_SIGNATURE_A(M) この発明を用いると、現時点での実行可能性という点でおよび秘密鍵の知識な
しに真正な署名を含む新たな署名されたメッセージのペアを生成するには公開鍵
および非公開鍵を知っているだけでは大いに不十分である。多数のメッセージお
よびその真正な署名が与えられても、署名されたメッセージのペアから、すなわ
ち正当なメッセージおよび真正な署名からは、秘密鍵を再生する作業は不可能で
あると考える。その点に関し、83ビットのバイナリ値の真正な署名に対しては
、秘密鍵の事前の知識なしにそのような真正な署名を生成する確率は約(.5) 30 のオーダであり、この数字の微小さを考えると、でたらめに推測するのと同じ
可能性しかない。
【0038】 本質的に、この発明の教示に従うと、特定の楕円曲線上の点を与えられると、
その曲線上のある点の値が生成元の値として選択される。非公開鍵は無作為に選
択される。公開鍵は生成元および非公開鍵の値の予め定められた関数として決定
され、特に前者の後者による冪乗として決定される。秘密鍵が用いられて擬似乱
数を生成する。真正な署名の第1の部分は次に生成元、擬似乱数およびメッセー
ジ(たとえば無作為に選択された製品の複製の識別子)の予め定められた関数を
介して生成される。特定的には、生成元はまず擬似乱数の値で冪乗されてある値
を与え、その値は次にメッセージと連結される。その結果生じた連結した数は予
め定められたハッシュ関数を介して処理され、真正な署名の第1の部分を与える
。真正な署名の残余の部分は第1の部分、擬似乱数の値および非公開鍵の予め定
められた関数に応答して生成される。真正な署名全体は両者の署名の部分をとも
に連結させることにより最終的に生成される。
【0039】 この発明が用いられて、製品の複製の認証データを実現すると、公開鍵および
生成元の値は、クライアントコンピュータ、たとえば図2に示されたクライアン
トコンピュータ200に複製をインストールする間にそれを認証するのに用いら
れる、製品の複製自体の中の適切なファイル内に記憶される。
【0040】 その製品の複製のインストールの間、ユーザが入力した署名は、クライアント
コンピュータで、生成元の値、公開鍵およびユーザが入力した認証データ全体、
特に識別子および署名を用いて署名の第1の部分を計算することにより認証され
る。次にこの第1の部分の値がユーザが入力した署名の同じ部分の値と一致する
かを判断する。一致すれば、入力された署名は真正であり、製品の複製のインス
トールが継続する。一致しなければ、それは真正ではなく、製品の複製のインス
トールは早期に終了する。
【0041】 製品の複製の認証データの生成と関連して、3つの別個の段階が用いられてこ
の発明を実現する。すなわち(a)さまざまなパラメータの値を生成するために
一度だけ、典型的にはソフトウェア製造者により行なわれる初期化、(b)初期
化の間に生成されたパラメータの値を用いて、異なる製品の複製ごとにその複製
とともに用いられる真正な署名を含む対応する認証データを生成するために媒体
の複製場所で繰返し行なわれる認証データ生成(図4と関連して以下に詳述され
る特にプロセス400)、および(c)ユーザ側(クライアントコンピュータ)
でインストールプログラムを実行する間に、ユーザが入力し、かつユーザがイン
ストールしようとする特定の製品の複製と関連した認証データ内で署名を認証す
るために別個にかつその後に行なわれ、その複製のインストールを継続する認証
(図5と関連して以下に詳述される特にプロセス500)である。
【0042】 この発明を介して生成された真正な署名が公開鍵を用いて従来の方法で検証さ
れる限りは、どのように検証が特定的に達成されるかに関する詳細は、簡潔にす
るために省略する。
【0043】 1 定義づけおよび初期設定の局面 この発明の技術に用いられるさまざまな変数およびこの技術の初期化に用いら
れるステップをまず定義する。
【0044】 まず、好ましくはガロア体上に有限体(K)が定義される。すなわちK=GF
(p)であり、ここでpはたとえば384ビットまたはそれ以上のように非常に
大きく、かつp=1(mod 4)である。その代わりに、この有限体はK=G
F(2m)と定義されてもよい。
【0045】 次に、楕円曲線Eがこの有限体上に定義される。この発明の教示に従うと、そ
の上に複雑な加算および複雑な乗算が存在する楕円曲線を用いるが、それはこの
発明の技術で用いられるパラメータおよびその結果生じる認証データを比較的短
くしながらある形態の暗号攻撃に対して必要な安全性を提供するためである。楕
円曲線を用いなければ、そのような短いパラメータではその安全性を確保するの
は不可能である。一般的に、楕円曲線は、a、b、cおよびdを予め定められた
係数として、y2=ax3+bx2+cx+d という曲線を満たす点(x、y)
を含む。これら4つの係数の値を変化させることにより、曲線上の点の数はそれ
に従って変化する。ここでは一般的な形の楕円曲線を用い得るが、好ましくはか
つ例示的には、有限体Kの上でy2=x3+xとなる曲線を選択し、これにより、
曲線E上の点の数|E|が次のように計算される。すなわち、α=1(mod
4)としてp=α2+β2ならば、|E|=p+1−2α=(α−1)2+β2であ
る。したがって、曲線上の点の数はαおよびβをそれに従って選択することによ
り設定できる。
【0046】 大きな素数qが、たとえば少なくとも長さが約60ビットとなるように選択さ
れ、αおよびβはqが確実に|E|に均等に分割され、かつ1(mod 4)を
満たすようにそれに従って設定される。
【0047】 一旦qの値がそれに従って選択されると、典型的には無作為の点である生成元
gの値が次数qのサブグループに対して曲線Eの上に定義される。これは、曲線
E上に無作為の点であるgを繰返し選択し、かつその特性、すなわち好適な数が
判明するまでその数が以下の式を満たすかをテストすることにより、典型的には
達成される。 G={g,2g,3g, ...,(q−1)g}かつ|G|=q 一旦適切な生成元の値が選択されると、次に乱数が非公開の指数Xとして選択
される。この数字Xは非公開鍵となる。パラメータgpowは公開鍵であり、gx
等しいとして計算される。
【0048】 最後に、秘密鍵KAは例示的に2つの予め定められた成分A1およびA2を連結
したものすなわち以下の式のように定義される。
【0049】
【数10】
【0050】 一旦上記のパラメータが定義されると、パラメータq、g、gpowおよびXは
認証データ生成プロセス400の各々の実行の間、その後に用いるために記憶さ
れ、製造者が生産するすべてのソフトウェア製品の各々のおよびすべての異なる
複製に対し、一意の識別子および関連した真正な署名を含む各々の認証データを
生成する。さらに、パラメータgおよびgpowの値ならびに以下に論じられるハ
ッシュ関数の仕様(specification)はその複製のインストール、特にその複製
のインストールの間ユーザが手入力する認証データの認証の間(すなわち以下に
詳述される認証プロセス500の実行の間)その後のアクセスおよび使用のため
に各々のそのような製品の複製の中にデータとしてすべて記憶される。
【0051】 2 認証データ生成プロセス400 図4は認証データ生成プロセス400のフローチャートの図である。上述のよ
うに、このプロセスはコンピュータ10によって別個に実行され、そのメモリ(
特に図示せず)にある適切な記憶されたプログラムの(実行可能な)命令により
実現され、各々の連続した製品の複製に対し一意な認証データを生成する。この
プロセスは秘密鍵KA、q、g、gpowおよび非公開の指数Xの値を用いる。
【0052】 プロセス400に入ると、実行のプロセスはまずブロック410に進む。この
ブロックは、実行されると、次の連続した(しかしそれまでに用いられていない
)値を、現在の製品の複製に対し(232−1)>M>0の範囲で識別子(ここで
はM)として無作為に割当てる。代替的に、この識別子は順番に割当てられても
よい。その場合、識別子は第1の製品の複製に対しては1の値を、第2の製品の
複製に対しては2の値を割当て、ソフトウェア製造者のすべての製品の複製およ
びすべての異なる製品にわたり、以下同様に識別子が割当てられる。いずれにせ
よ、いずれの製品の各々の複製も一意な識別子を有する。製品の認証データを生
成するのにこの発明技術が用いられる期間にわたり、232以上のソフトウェア製
造者の製品の複製が製造される見込みであれば、この技術はより長い識別子、し
たがってより長い鍵およびパラメータの値を用いるように修正されなければなら
ないことが当業者には明らかであろう。
【0053】 適切な値が現在の製品の複製に対する識別子としてブロック410により一旦
割当てられると、実行のプロセスはブロック420に進む。このブロックは現在
の製品の複製に割当てられた秘密鍵および識別子Mを用いて、[1、q−1]の
範囲で指数kの擬似乱数の値を生成する。一般的に、G_msを擬似乱数生成式
として、k=G_MS(M)である。好ましくは、擬似乱数生成式は、特定的に
はSHA_1である従来のかつ周知である安全なハッシュ関数を用いて実現され
る。そのようなハッシュ関数はどのような長さのデジタルの入力数も160ビッ
トの値に写像し、それによりSHA_1(x)=SHA_1(y)となるような
、同じ長さの数(x、y)の何らかのペアを探し出すことが不可能である、すな
わちここでは280回を超える演算が必要となる。特に、上述のように、秘密鍵K
Aは例示的には2つの予め定められた成分A1およびA2の連結、すなわち以下の
式のとおりであり、
【0054】
【数11】
【0055】 一旦生成されると固定され、すべての製品の複製の認証データを生成する。kを
計算するには、ブロック420は秘密鍵をその成分A1およびA2に解析し、次に
複数のハッシュ演算を用いて、次の式1および式2に示されるように指数kを計
算する。
【0056】
【数12】
【0057】 安全性をさらに高めるには、式1および2を介して生成されたkの値は、別の擬
似乱数関数を介してシードとして処理されて新たな擬似乱数の値kを与え、現在
の製品の複製のための認証データを生成するための残余のステップの間、これら
の式によって生成される値の代わりに、代替的にこの新たな値が用いられてもよ
い。
【0058】 上述のように、現在の製品の複製に対しkの値が一旦そのように決定されると
、ブロック430はgkの計算を実行する。その後、実行のプロセスはブロック
440に進み、認証する側には既知のハッシュ関数を用いて、gkおよびMの関
数としてかつ以下の式3に従ってパラメータrの値を決定する。このハッシュ関
数は例示的にはSHA_1関数である。
【0059】
【数13】
【0060】 次に、ブロック450はk、X、rおよびqの関数としてかつ以下の式4に従
ってパラメータsの計算を実行する。
【0061】
【数14】
【0062】 一旦sが完全に計算されると、実行のプロセスはブロック460に進み、そこ
ではM、rおよびsを連結したものとしての115ビットのバイナリ値の認証デ
ータを形成し、ただし真正な署名自体はrおよびsを連結したものである。バイ
ナリ値の認証データが形成された後、ブロック470はこの認証データを25桁
のアルファニューメリックの形式に変換し、次に結果として生じる現在の製品の
複製と関連して用いられるアルファニューメリックの認証データの出力値をたと
えばプリンタ60(図1参照)のようなものに与える。認証データを手入力する
際のユーザの混乱および起こり得る間違いを低減しかつ使い勝手を高めるために
、ブロック470(図4には図示せず)は、認証データが印刷されるフォントに
もよるが、たとえば、文字IおよびO(大文字または小文字を問わない)、数字
の0、小文字のL、および数字の1などユーザには同じに見える、あるアルファ
ニューメリックの文字を好ましくは使用しない。さらに、小文字のLと数字の1
のように同じに見える文字を、共通の文字たとえば数字1に写像してもよい。
【0063】 この発明を利用しかつ公開鍵−非公開鍵のペアを用いることにより、32ビッ
トの識別子の値を考慮すると、ゆうに1秒以内の処理時間で、現在利用可能なP
Cで真正な83ビットの署名が生成されると見込んでいる。
【0064】 3 認証プロセス500 図5は、図2および図3で示されたコンピュータ200のようなクライアント
コンピュータ内で実行される認証プロセス500のフローチャートの図である。
上述のように、これはクライアントコンピュータに製品の複製をインストールす
る間に、所与の製品の複製に対しユーザが手入力した認証データを認証するプロ
セスである。g、gpowの値および認証の間に用いられるハッシュ関数の仕様が
所与の製品の複製内に記憶され、それらはソフトウェア製造者からのすべての製
品の複製に共通である。単純化のために、パラメータgおよびgpowならびにハ
ッシュ関数の仕様を所与のソフトウェア製造者のすべての製品の複製に共通とし
ているが、安全性を高めるためには、これらのパラメータの値およびハッシュ関
数の仕様はその製造者の特定の製品のすべての複製または一組のその製品の特定
の複製にわたってのみ共通であってもよく、もしくはそのような複製のただ1つ
のみに特有であってもよい。
【0065】 プロセス500に入ると、実行のプロセスはまずブロック510に進む。この
ブロックは、図2および図3に示されたクライアントコンピュータ200のよう
な、ユーザのクライアントコンピュータにユーザがインストールしようとする特
定の製品の複製に対してユーザが手入力したアルファニューメリックの認証デー
タを読取る。この認証データが一旦読取られると、ブロック520はまずアルフ
ァニューメリックの認証データをバイナリ値のシーケンスに変換し、次にその認
証データ内のパラメータM、rおよびsの値を抽出するプロセスを実行する。そ
の後、実行のプロセスはブロック530に進み、そこではパラメータgおよびg pow の記憶された値ならびに認証に用いられる特定のハッシュ関数の仕様を読取
る。
【0066】 これらのパラメータの値およびハッシュ関数の仕様が一旦ブロック530によ
り読取られると、実行のプロセスはブロック540に進み、実行されると、そこ
では認証データから抽出されたばかりのrおよびsの値を用いて、gsおよびgp ow r の値を計算する。一旦この値が計算されると、ブロック550および560
はまず認証署名の一部、特にパラメータr(ここでは再計算された部分は以下の
記号で示される。
【0067】
【数15】
【0068】 「以下明細書中ではこの記号を^rと記載する」)を計算することにより認証デ
ータを集合的に認証し、次にその値を認証データから抽出された同じパラメータ
の値と比較するステップを実行する。特に、ブロック550は以下の式5に従っ
て^rを計算する。
【0069】
【数16】
【0070】 この式では、HASHは認証の間に用いられる、製品の複製に特定されたハッシ
ュ関数である。この関数は典型的にはSHA_1関数である。 値^rが計算されると、実行のプロセスは判定ブロック560に進み、ユーザが
入力した認証データから抽出されたrの値に対してこの値をテストする。これら
の2つの値が同一(一致)であれば、認証データ内の署名は認証された。したが
って、認証プロセス500からYESの経路563を介して実行のプロセスは終
了し、この製品の複製のインストールを継続する。代替的に、これら2つの値が
全く異なっていると、認証データ、特にそれが含む署名は、真正ではない。した
がって、ユーザは製品の複製をインストールする認証が与えられない。この例で
は、判定ブロック560はNOの経路567を介してブロック570に実行のプ
ロセスを経路指定する。この後者のブロックは、実行されると、ローカルのモニ
タ(たとえば図3に示されたディスプレイ380)にユーザは製品の複製をイン
ストールする認証を与えられないとする適切なメッセージを表示する。一旦この
メッセージがそのように表示されると、実行のプロセスは(図5に示されたよう
に)プロセス500から終了し、製品の複製のインストールを進めずに早期に終
了する。
【0071】 安全かつ真正な署名を生成するためのこの発明の技術を、ユーザのコンピュー
タにインストールされるソフトウェア製品の複製とともに用いる認証データの一
部としてこれまで説明してきたが、この発明を用いて、ユーザがソフトウェア製
造者により運営されるサーバとのネットワーク接続を確立するときは常に、以前
にインストールされたソフトウェアの複製を非常に安全にシリアル番号をつける
(serialize)ことができることが当業者には理解されるであろう。特に、クラ
イアントコンピュータで実行されるO/SのユーザがそのO/Sの製造者のウェ
ブサイトにインターネット接続を確立するならば、ウェブサーバはたとえば真正
な署名を含む上述の認証データのようなインストール番号を生成し、その番号を
クライアントコンピュータにダウンロードして記憶させることができる(もちろ
んクライアントコンピュータで実行されるウェブブラウザが「クッキー」を受け
入れる、すなわちそのようなダウンロードを受け入れるように設定されていると
仮定して)。このインストール番号を用いて製造者はその特定のO/Sのインス
トールを一意にかつ安全に識別できる。そのユーザがその後製造者のウェブサイ
トとインターネット接続を確立するときは常に、製造者はクライアントコンピュ
ータに記憶されたインストール番号にアクセスしかつそれを認証することにより
O/Sの特定のインストールを容易に識別することができる。記憶されたインス
トール番号をきちんと認証できることにより、製造者は許諾されたO/Sのイン
ストールと許諾なしのO/Sのインストールを区別することができる。したがっ
て製造者は前者のインストールのみにサポート、アップグレード、プロモーショ
ンおよび/または他のサービスを提供しながら、後者のインストールに対しては
それらを拒否することができる。同様に、製造者は以前にインストールされかつ
製造者がその後に識別を行ないたい、アプリケーションプログラムのような他の
タイプのソフトウェアプログラムの複製に対して一意なインストール番号を生成
しかつダウンロードすることができる。
【0072】 さらに、認証データはそれに対して真正な署名が生成されるメッセージとして
製品の複製の識別子を用いたが、このメッセージはそのように限定されるもので
はない。このメッセージは電子的に暗号化されかつ一方から他方へ伝達されるい
ずれの形態のデジタルの情報も構成することができる。したがって、この発明は
送信者と受信者の間を通過する暗号化されたメッセージの流れの中の各々のメッ
セージを認証する、高度な安全性を有するメカニズムを提供することができる。
【0073】 さらに、認証データの生成および認証のプロセス(特に図4および図5それぞ
れの中のブロック440および550)の中でパラメータrおよび^rを生成す
るための安全なハッシュ関数を用いてこの発明の技術を説明したが、同じ関数が
両者のプロセスに用いられ、またその関数の仕様が関連した製品の複製に記憶さ
れ、かつその特定の複製のインストールの間認証のプロセスによって読取られる
ならば、他の安全な関数が用いられてもよい。
【0074】 さらに、この発明は32ビットのメッセージ(ここでは、例示的に製品の複製
の識別子)および83ビットの真正な署名とともに用いられるように例示的に説
明されたが、この発明はその意図された適用例を考慮すると、より長いメッセー
ジおよび署名、もしくはより低いセキュリティが許容されるアプリケーションで
は、より短いメッセージおよび署名を受け入れるよう容易に修正が可能である。
【0075】 さまざまな修正とともに、この発明の教示を組込む実施例が詳細に示されかつ
説明されたが、当業者はこの教示を利用する多数の他の実施例を容易に考案する
ことができる。
【図面の簡単な説明】
【図1】 この発明の教示を組込んだCD−ROM生産システムの、単純化
されてはいるが高レベルのブロック図である。
【図2】 図1に示されたシステム5を介して生産されたようなCD−RO
Mからプログラムをインストールする間に、この発明を例示的に利用する典型的
なクライアントコンピュータ200の高レベルなブロック図である。
【図3】 図2に示されたクライアントコンピュータ200のブロック図で
ある。
【図4】 図1に示されたコンピュータ10内で実行される認証データ生成
プロセス400のフローチャートの図である。
【図5】 図2および図3に示されたクライアントコンピュータ200内で
実行される認証プロセス500のフローチャートの図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年10月6日(2000.10.6)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【発明の名称】 非公開に認証可能な暗号署名を生成し、かつ製品の複製に関連
してそのような署名を用いるための技術
【特許請求の範囲】
【数1】 この式ではSHA_1はSHA_1のハッシュ関数である、請求項4に記載の方
法。
【数2】 この式ではSHA_1はSHA_1のハッシュ関数である、請求項16に記載の
方法。
【数3】 この式ではfは予め定められた安全な関数である、請求項19に記載の方法。
【数4】 この式ではXは非公開鍵(SA)であり、qは予め定められた素数である、請求
項20に記載の方法。
【数5】 この式ではgpowは公開鍵であり、HASHは署名の生成に用いられる予め定め
られたハッシュ関数である、請求項26に記載の方法。
【数6】 この式ではSHA_1がSHA_1のハッシュ関数である、請求項37に記載の
装置。
【数7】 この式ではfが予め定められた安全な関数である、請求項40に記載の装置。
【数8】 この式ではXが非公開鍵(SA)であり、qが予め定められた素数である、請求
項41に記載の装置。
【数9】 この式ではgpowが公開鍵であり、HASHが署名の生成に用いられる予め定め
られたハッシュ関数である、請求項47に記載の装置。
【発明の詳細な説明】
【0001】
【発明の分野】 この発明は暗号法に関し、特定的には、所与の署名すべきメッセージに対し、
メッセージの署名者から発信されたものとして、署名されたメッセージの受信者
によって非公開に認証され得る真正な暗号署名を生成し、かつそのような署名を
適切に認証するための技術に関する。
【0002】
【先行技術の説明】 何世紀にもわたり、情報が二人の個人の間で伝達される限り、情報は第三者に
よって傍受、盗聴、漏洩および/または破損されやすいものであった。そのよう
な行為から情報を確実に保護するという問題が長きにわたり存在してきたのは明
らかである。
【0003】 伝統的にはこの問題は、長年にわたり、より複雑な暗号技術を開発することに
よって対処されてきた。これらの暗号技術の1種に鍵ベースの暗号の使用が含ま
れる。特定的には、鍵ベースの暗号を介して、全体的にメッセージを形成する理
解可能なデータのシーケンスすなわち平文は、各々、暗号化アルゴリズムを介し
て一見しただけでは理解できないデータ、すなわちいわゆる暗号文に数学的に変
換される。その変換は、暗号文はそれが対応するもとの平文に戻せなければなら
ないという意味で完全に可逆、すなわち双方向でなければならないだけでなく、
1対1対応に基づいていなければならない。すなわち各々の平文の要素は暗号文
の1つかつ唯一の要素にのみ変換可能でなければならない。さらに、いずれの所
与の暗号文を生成した特定の暗号も、暗号解析からは十分に安全でなければなら
ない。秘密保持に必要なレベルを提供するためには、唯一の一意な対応する暗号
を規定する一意な鍵が選択される。すなわち可能な限り多数の異なる鍵の各々が
、同じ平文−暗号文対応関係の間の可逆変換をもたらすような状況を排除する。
どのような暗号技術の強度も、したがってそれが与える第三者の侵入からの防御
のレベルも、第三者がたとえば鍵ベースの暗号を用いて鍵の事前知識なしで暗号
文をその対応する平文に変換する暗号解析に要する時間と正比例する。暗号解析
を全く受け付けない暗号技術はないが、当時利用可能であったコンピュータ技術
を考慮すると、事前にその鍵の知識なしに暗号を解読するのには膨大な数の計算
および極めて長い時間が必要であるために、実際的な意図と目的とのすべてにつ
いては、多くの技術はそれらの幅広い採用および使用を正当化するに十分なほど
安全である。その点では、ほんの数年前は、当時利用可能な情報処理技術の状態
を鑑みれば、解読に人年(man-years)のオーダまたはそれ以上に長くかかるほ
ど暗号が複雑ならば、その基本となる暗号技術はその使用を正当化するに十分な
程度の安全性を有していると多くの人に考えられていた。
【0004】 公開鍵アルゴリズムは鍵ベースの暗号の1つの形式である。このようなアルゴ
リズムでは、各々の情報伝達当事者が1対の公開−非公開鍵を生成する。各々は
自分の公開鍵を公にアクセスが可能な掲示板、サーバまたは他の設備に公表し、
対応する非公開鍵を秘密にしておく。本質的には、平文のメッセージを暗号化し
それを相手すなわち宛先に送信したい発信当事者は、この両者は同じ公開鍵アル
ゴリズムを用いるのだが、まず宛先当事者の公開鍵にアクセスし、その公開鍵を
用いて平文のメッセージを暗号文のメッセージに暗号化し、暗号文のメッセージ
を宛先当事者に送信する。暗号文のメッセージを受取ると、宛先当事者はその非
公開鍵を用いて、メッセージを解読し元の平文を回復する。鍵は非常に明確なア
ルゴリズムを用いて正確に計算され、完全な可逆性を保証しながら必要な安全レ
ベルを提供している。
【0005】 公開鍵暗号の解読に必要であると思われる純粋な作業数を考慮すると、公開鍵
暗号システムは、その解読がはっきりと実行不可能であるという程度にまで安全
性の高い暗号を提供しているが、そのようなシステムでもその使用を制限し得る
欠点を有する。公開鍵システムの主要な欠点とは、その各々がかなり長いビット
シーケンスを有する係数と、個別の鍵に対する依存性である。たとえばある係数
は長さが容易に1024ビットとなり得るし、個別の鍵は数百ビットものシーケ
ンスから形成され得る。アプリケーションによっては、たとえばそのような鍵が
容易に記憶され、インデックス付けされ、かつ必要に応じてアクセスされ得る暗
号アプリケーションプログラムでは、鍵の長さがユーザにとって実際的な問題を
生ずることは、あるとしてもごくわずかである。しかし他のアプリケーションで
は、そのような長い鍵のシーケンスは、仮にアルファニューメリックデータに変
換されたとしても、依然としてユーザが簡単に手入力できないような長すぎる文
字列を生成してしまうことがある。実際、公開鍵システムの高い安全性の要因は
その鍵と係数の両者に非常に長いビットシーケンスを用いていることにある。係
数が認め得るほど短くなってしまうと、暗号化されたメッセージが簡単に暗号解
析されてしまうことになり、したがって、その基本となるシステムの安全性もす
ぐに危うくなる。
【0006】 コンピュータ技術は急速に進化を続けている。ほんの数年前はその高い性能お
よび速度について耳にしたこともなかったプロセッサが非常に安価な値段で商用
的に利用可能となっている。その結果、多くのいわゆる「安全な」暗号を解読す
るには十分な処理能力を有しないと以前は見られていたパーソナルコンピュータ
およびワークステーションのような情報処理システムが今や、その現在の能力と
性能を考慮すると、第三者にそれらの同じ暗号を効果的に解読するのに必要な性
能を提供している。10年前は連続して計算しても何年もかかったであろうこと
が現在ではほんの少しの時間で達成される。このように、技術が進歩するにつれ
、暗号技術は継続して取組むことで決まったやり方で進歩し、対応して進歩して
いく暗号解析に耐えるように高性能の暗号技術をますます発達させる。
【0007】 暗号とは全く離れるが、少なくとも過去10年の間、コンピュータのソフトウ
ェア製造者は無許諾の第三者によりライセンスなしにその製品をかなり使用され
、それは現在も続いている。これは、一部には、フレキシブルディスクまたはC
D−ROMのような、ソフトウェアプログラムを含む配布媒体が比較的簡単に複
製できるためである。そのような無許諾での使用を防ぐために、比較的長いアル
ファニューメリックの認証データが各々のソフトウェア製品のパッケージの合法
的な複製とともにしばしば配布され、ユーザがコンピュータにその複製をインス
トールする間に要求されれば、ユーザはその認証データを入力しなければならな
い。特に、この複製はインストールプログラムを含んでおり、ユーザはまずこれ
をロードしかつ実行してインストールのプロセスを開始し、順番にインストール
のプロセス全体を実行する。典型的には、インストールのプロセスの早い段階で
、インストールされる複製のユーザは認証データを手入力するようにプログラム
に要求される。認証データはたとえば10桁またはそれ以上の桁数を含んでもよ
い。コンパクトディスク(CD)を介して配布される場合は、認証データはCD
を含む各々のケースに添付されたラベルに印刷される。フレキシブルディスクで
配布される場合は、認証データは各々のソフトウェアパッケージの中に含まれる
証明書または他の挿入物にしばしば印刷される。いずれにせよ、一旦ユーザが認
証データを完全に入力し、典型的には画面上に現われる「OK」ボタン(または
同様のもの)をクリックすることによりプログラムに信号を送ると、インストー
ルプログラムはインストールされるその特定の複製がライセンスされたバージョ
ンか否かを判断しようとしてその認証データの確認を試みる。認証データの有効
性が確認されると、インストールのプロセスは進行する。有効でなければ、イン
ストールは早期に終了する。すなわち、合法的に有効な複製を入手した各々のユ
ーザ(すなわちライセンスを受けた者)は製造者によって提供されたパッケージ
全体を所有し、したがって有効な認証データを有するが、添付のパッケージおよ
び/または挿入物のないプログラム自体の複製しか入手していない無許諾のユー
ザは認証データを有しないことが前提である。認証データの長さを考慮すると、
ユーザが有効な認証データを当てずっぽうで選んでしまう可能性はかなり小さい
。したがって、無許諾の複製をインストールしようとするユーザは間違った認証
データを繰返し入力することが予測され、事実上入手したプログラムの複製をイ
ンストールすることができず、結果的にその複製は無用となる。
【0008】 残念ながら実際には、そのような認証データを生成するための基本となるアル
ゴリズムは比較的簡単に識別できることが判明しており、かなり広くかつ違法に
広まってしまったようである。したがって利用可能なアルゴリズムを考慮すると
、無許諾のユーザでも多少作業をすれば、インストールしようとするプログラム
の有効な認証データを入手することができる。このため、製造者はそのような無
許諾の複製の使用を防ごうとしてしばしば失敗してしまう。
【0009】 ソフトウェア製造者がその製品の無許諾の複製により収入を失っていることは
明らかである。さらにソフトウェア製造者はいろいろな形態でその製品の顧客サ
ポートをしばしば提供している。ライセンスを受けた人のみにそのようなサポー
トを限定するため、顧客サポートの担当者は、サポートを受ける条件として、ユ
ーザがサポートを求める製品の複製と関連した認証データを提供するようユーザ
にしばしば求める。無許諾のユーザが簡単に有効な認証データを入手できること
を考慮すると、ソフトウェア製造者が許諾された人にサポートを提供しながら無
許諾のユーザにはサポートを拒否しようとしても、許諾された人と無許諾の人と
の区別が非常に困難となっている。その結果、製造者は知らないうちに無許諾の
ユーザにサポートを提供し、これにより追加のかつ不必要なサポートのコストが
かかってしまう。所与のソフトウェア製品の無許諾のユーザの数が十分に多けれ
ば、その製品と関連したこれらの超過コストはかなり大きくなり得る。
【0010】 したがって、ソフトウェア製造者がそのソフトウェア製品の無許諾の複製の発
生をかなり低減する技術に対する必要性が存在する。そのような技術によりその
製品の各々の複製を独自に識別し、その特定の複製の認証が判断されなければな
らない。好ましくは、そのような技術は公開鍵システムを介して十分に安全な識
別子を暗号的に生成するステップを含まなければならない(すなわちコンピュー
タ技術の現在の状況および今後予測される進化を考慮すると、第三者が鍵の知識
なしに有効な識別子を生成することは不可能であろう)。さらに、識別子はその
安全性を確実にするために十分に長くなければならず、しかし長くなりすぎて、
必要なときたとえばインストールのプロセスまたは製品のサポートを受ける間、
識別子を手で入力しなければならないユーザを苛立たせてはならない。そのよう
な技術を用いることにより、ソフトウェア製造者はそのソフトウェア製品の許諾
なしの使用およびさもなければかかってしまう関連費用を大幅に低減することが
できるであろう。そうすることにより、次に、製造者がプロモーションのような
他のサービスをライセンスを受けた顧客に提供することが経済的に可能となり、
それにより製品と製造者両者に対する顧客の満足度を高めることができる。
【0011】
【発明の概要】 この発明は、たとえば数字で表わされた、製品の複製の識別子のようなメッセ
ージが与えられると、公開鍵暗号システムに基づき、かつ有限体上の楕円曲線上
の点から選択された生成元の値を用いて、真正な暗号署名を形成することにより
このニーズを有利に満たし、かつ先行技術の欠点を克服する。この技術は3つの
鍵、すなわち公開鍵、非公開鍵および秘密鍵と関連した生成元の値を用いて真正
な署名を形成し、従来の2つの鍵の公開鍵暗号システムを介して生成された暗号
署名と関連して実質的に安全性を高めている。
【0012】 この発明を利用すると、現時点での実行の可能性と秘密鍵の知識がないという
ことから、真正な署名を含む新たな署名されたメッセージのペアを生成するには
公開鍵および非公開鍵を知っているだけでは大いに不十分である。
【0013】 この発明の教示に従うと、特定の楕円曲線上の点を与えられると、曲線上のあ
る点の値が生成元の値として選択される。非公開鍵は無作為に選択される。公開
鍵は生成元の値と非公開鍵との予め定められた関数、特に前者の後者による冪乗
として決定される。秘密鍵が用いられて擬似乱数を生成する。真正な署名の第1
の部分が、予め定められた生成元の関数、擬似乱数およびメッセージ(無作為に
選択された識別子)を介して生成される。特定的には、生成元は擬似乱数の値で
まず冪乗され、その値が次にメッセージと連結される。その結果生じた連結した
数は予め定められたハッシュ関数を介して処理され、真正な署名の第1の部分を
与える。真正な署名の残余の部分は第1の部分、擬似乱数の値および非公開鍵の
予め規定された関数に応答して生成される。真正な署名全体は両者の署名の部分
をともに連結させることにより最終的に生成される。
【0014】 ソフトウェア製品の複製とともに用いられるようなバイナリ値の認証データは
識別子を真正な署名と連結させることにより形成される。バイナリ値の認証デー
タはアルファニューメリックの形式に変換され、次に典型的にはその複製のパッ
ケージに添付されるラベルに印刷されることにより製品の複製と関連付けられる
。公開鍵および生成元の値は、クライアントコンピュータにインストールする間
に、製品の複製自体の中の適切なファイル内に記憶され、複製のその後の認証の
間に用いられる。
【0015】 製品の複製のインストールの間、ユーザが入力した署名は、クライアントコン
ピュータで生成元の値、公開鍵、およびユーザが入力した認証データ全体、特に
その識別子および署名を用いて署名の第1の部分を計算することにより認証され
る。その後、この第1の部分の値は、ユーザが入力した認証データに含まれる署
名の同じ部分の値と比較され、これら2つの値が同一に一致するか否かを判断す
る。一致すれば、入力された署名は真正であり、この複製のインストールが進行
する。一致しなければその署名は真正ではなく、インストールは早期に終了する
【0016】 製品の複製の認証データの生成と関連して、3つの別個の段階が用いられてこ
の発明が実現する。すなわち(a)さまざまなパラメータの値を生成するために
一度、典型的にはソフトウェア製造者により行われる初期化、(b)媒体複製場
所で繰返し行なわれる、初期化の間に生成されたパラメータの値を用いて、異な
る製品の複製ごとにその複製とともに用いられる真正な署名を含む対応する認証
データを生成するための認証データの生成、および(c)ユーザ側でインストー
ルプログラムを実行する間に、ユーザにより入力されかつユーザがインストール
しようとする特定の製品の複製と関連した認証データ内で署名を認証するために
別個におよびその後に行なわれる認証である。
【0017】 この発明の教示は添付の図面と関連した以下の詳細な説明を考察することによ
り容易に理解される。
【0018】 理解を容易にするために、可能なところでは、同一の参照番号が図面に共通な
同一の要素を示すように用いられている。
【0019】
【詳細な説明】 以下の説明を考慮すると、この発明の教示が送信者側で所与のメッセージに対
し暗号署名を生成する必要が生じる幅広い適用例のいずれにも用い得ることが当
業者には明確に理解されるであろう。この発明は、共通の送信者すなわち署名者
から発信される一意な一連のメッセージに対し署名が生成されるべき事例におい
て、特に好適に用いられるが、それのみに限られるわけではない。その結果生じ
る署名の各々は高い安全性を与える、すなわち暗号解析が不可能であるだけでな
く、その共通の署名者のみから発信されるものとして認証され得る。この点にお
いて、そのような署名の各々は1組の有効な署名の一部として公開鍵の使用によ
り公に検証され、さらに秘密鍵を用いて非公開にかつ一意に認証され得る。さら
に有利なことにはこの発明を用いると、第三者(意図された署名者ではない)が
その受信者にとって有効に見えるような署名を不正に生成する方法を決定しよう
としたとしても、その第三者はその受信者に対して特定の署名を適切に認証する
という不可能な作業に直面する。以下の議論を単純にするために我々は、たとえ
ばソフトウェア製品の特定の複製をクライアントパーソナルコンピュータ(PC
)にインストールする間に、それを認証する目的で、ソフトウェア製品の所与の
複製と署名自身が一意に関連付けられた、対応する認証データ内で用いられるべ
き署名を生成するという文脈で、この発明を論じる。
【0020】 A 使用環境 CD−ROM生産システム5の単純化されてはいるがハイレベルのブロック図
である図1を考察する。このシステムは、図示されたその基本的な形態では、コ
ンピュータ10、CD書込装置50およびプリンタ60を含む。このシステムは
、ソフトウェアの製品パッケージに含まれるようなアプリケーションプログラム
の完全な複製を集合的に実現するのに必要なファイルをすべて含むCD−ROM
を生産する。この製品はたとえばワードプロセッサプログラム、表計算プログラ
ム、集合的に提供される1組のそのようなプログラム、オペレーティングシステ
ムまたはその製造者によって一体として生産されかつ配布されるいずれのソフト
ウェア製品のパッケージであってもよい。
【0021】 システム5は所与の複製を実現するのに必要なすべてのファイルを複製するだ
けでなく、このシステムは、一般的にラベルに印刷されてCD−ROMを含むケ
ースまたはCD−ROMがそこに入れられる箱のいずれかに添付されたアルファ
ニューメリックの認証データを生成する。この認証データは2つの役割を果たす
。すなわち(a)それと関連付けられる特定のCD−ROMを一意に識別する、
および(b)この発明を介して、その特定のCD−ROMに対し暗号的に認証を
与え、本質的に他には認証を与えない。後者の役割については、次に特定のCD
−ROMからPCに製品をインストールしながら(このプロセスは図2と関連し
ておよび図5に詳細に一般的に説明される)、ユーザが要求されて認証データを
入力するたびに、認証手順がインストールプログラムの一部として実行され、C
D−ROM上に記憶された特定の情報(公開鍵および秘密鍵を含む)と関連して
、ユーザが入力した認証データが製造者から与えられたものか、またこの特定の
CD−ROMに対し真正かを暗号的に判断する。
【0022】 製造者は自身で使用するために多数の組の有効な認証データを生成し、または
その組を安全にその製品の製造の間に、許諾された第三者であるディスク複製者
に配布できるが、所与の製品の複製に対してシステム5によって生成された各々
のおよびすべての認証データはその対応する製品の複製に対し一意に認証され得
る。このように、もし第三者がすべてのアプリケーションおよびインストールフ
ァイルを含むソフトウェアの違法な複製を入手したとしても、その複製が置かれ
る媒体を問わず、その特定の複製に対して適切に認証される認証データをその第
三者が生成することは、有効な認証データのリストを所有していたとしても不可
能である。
【0023】 特に図1を参照すると、コンピュータ10はアプリケーションプログラム20
および特にソフトウェア複製生成プログラム30をローカルに記憶しかつ実行す
る。関連する範囲内で、プログラム30は、ソフトウェア製品のパッケージの複
製を集合的に実現するのに必要なすべてのファイルの複製を記憶するたとえばC
D−ROMを生産するプロセスを制御する。これらのファイルは、リモートコン
ピュータたとえばクライアントPCに製品を完全にインストールし、かつ実現す
るのに必要なすべてのプログラムファイル(あれば、関連したデータファイルを
含む)およびインストールファイルを含む。コンピュータ10内では、これらの
ファイルは、例えばローカルのハードディスクのようなプログラム記憶装置15
に集合的に存在するがそれに代えて、ネットワーク接続を介してリモートファイ
ルサーバに実現されてもよい。これらのファイルは線17で示されたように、ソ
フトウェア複製生成プログラム30内で実行される従来のファイル複製プログラ
ム32を介して順にダウンロードされる。プログラム32はダウンロードすべき
ファイルを特定し、プログラム記憶装置15から順にこれらのファイルの各々に
アクセスし、次に書込装置に挿入されたCD−ROM上にそのファイルを書込む
ように命令されると、各々のそのようなファイルをCD書込装置50にダウンロ
ードする。以下に詳述されかつ特に図4と関連して述べられる認証データ生成プ
ロセス400は、典型的には長さが25桁であるアルファニューメリックの認証
データ75を生成し、それはこれらのファイルが書込まれる特定のCD−ROM
と関連付けられる。一旦認証データがプロセス400によって生成されると、図
1に示されたようにこのプロセスはこの認証データをプリンタ60に与え、プリ
ンタは認証データをラベルに印刷する。すべてのファイルがCD−ROMに複製
されると、破線55で示されたように、それは次にCD−ROMケースのような
好適なパッケージ70に挿入される。破線65で示されたように、このラベルは
このパッケージの外の面に添付される。プロセス400は、プログラムファイル
がCD−ROMに書込まれまたは時間をずらした関係で書込まれながら、実質的
に同時に認証データが生成されるように実行されてもよい。単純化するためにシ
ステム5は単一のコンピュータ、単一のCD書込装置および単一のプリンタを含
むように示されているが、実際にはシステム5は所望により、パイプライン化さ
れかつ並列にプログラムを複製する動作を実現する、通常はリモートファイルサ
ーバにネットワークで接続された多数のコンピュータ、多数の書込装置および多
数のプリンタを含んでもよい。
【0024】 表示80に示された認証データ75は、識別子(ID)と、その後に続く、そ
の識別子から生成された署名すなわちSIGN(ID)とをその後に伴う識別子
(ID)を含む領域83および87を含む。認証データの詳細な表示90に示さ
れるように、識別子はメッセージMを含み、それはソフトウェア製造者が生産し
たすべての製品の各々およびすべての複製に対し一意な値を有する。例示的には
、このメッセージは、バイナリ値に変換されると、製造者が生産したすべての製
品にわたり与えられた、1つのソフトウェア製品のただ1つの複製にのみ与えら
れる32ビットのバイナリ値の連続番号である。署名は、バイナリ値に変換され
ると、以下に詳述されかつこの発明では識別子を用いる製造者により形成される
2つの値rおよびsを連結したものである、例示的な83ビットの値を含む(連
結演算は以下に示す記号で表わされる)。
【0025】
【数10】
【0026】 図2は、図1で示されたシステム5を介して生産されたようなCD−ROMか
らプログラムをインストールする間、例示的にこの発明を利用する典型的なクラ
イアントコンピュータ200の高レベルのブロック図である。
【0027】 ここでは、線207で示されたように、CD−ROMからプログラムをインス
トールするためにユーザはクライアントコンピュータ200と関連付けられたC
D−ROMドライブにCD−ROMを挿入する。ユーザがマニュアルでコンピュ
ータ200に命令して、CD−ROM上に記憶されたインストールプログラム2
20(典型的にはたとえばsetup.exeまたはinstall.exeという名称)の実行を開
始するかまたは従来のオートラン機能を介してこのプログラムが自動的に実行さ
れるかのいずれかであり、両者ともプログラム220と関連付けられかつそのと
きそのクライアントコンピュータ上で実行中のオペレーティングシステム上で実
現される。インストールプログラム220はそのときクライアント上で実行中の
アプリケーションプログラム210の1つとして実行される。プログラム220
は、製品に対し予め定められたインストールのプロセスを実現するが、CD−R
OMからローカルの大容量記憶装置に製品のプログラムファイルを転送する前に
、認証プロセス500を実行する。図5と関連して以下に詳述されるが、このプ
ロセスはそこからプログラムがインストールされる特定のCD−ROMと関連付
けられた認証データをユーザが入力することを要求する。ユーザはこの要求に応
じて、マニュアルで、典型的にはコンピュータ200と関連したキーボードで、
この特定のCDと関連した特定の25桁のアルファニューメリック認証データを
入力する。典型的にはコンピュータ200と関連したローカルの画面に表示され
る適切なボタンをマウスでクリックすることにより認証データの入力を完了した
ことを一旦ユーザが示すと、認証データ内に含まれた情報、特にM、rおよびs
の値を含む情報ならびにCD−ROM自体に記憶された、以下に定められたよう
な特定のデータの値を用いて、認証プロセス500はユーザが入力した認証デー
タが真正か、すなわちそれが製造者から与えられたものか、およびこの特定のC
D−ROMに関して真正かを判断する。
【0028】 認証プロセス500がユーザが入力した認証データの認証に成功すると、次に
このプロセスはインストールプログラム220(図2に図示)にそのように通知
し、するとそのインストールプログラム220はインストールのプロセスを継続
し、その後CD−ROMからクライアントコンピュータ200に適切なプログラ
ムファイルを複製する。しかしながらプロセス500が認証データを認証しない
と、次にプロセス500はプログラムファイルをクライアントコンピュータ20
0に全く複製せずにインストールプロセスを早期に終了する。認証データが認証
されたか否かに基づき、認証プロセス500は線230で示されたようにユーザ
に対し好適なメッセージを生成しかつ表示する。認証データが認証されるか否か
にかかわらず、このメッセージはそれぞれ、インストールプロセスの認証後の段
階の引続いての画面の生成および表示中に暗黙のうちに示されてもよいし、また
はインストールされる複製の使用をユーザが許諾されないためインストールが終
了することを示す特定の警告のメッセージでもよい。
【0029】 図3はクライアントコンピュータ(PC)200のブロック図である。 図示されたように、クライアントコンピュータ200は入力インターフェイス
(I/F)320、プロセッサ340、通信インターフェイス350、メモリ3
30および出力インターフェイス360を含み、すべてが従来どおりバス370
によって相互接続される。メモリ330は、一般的には種々の様式を含み、たと
えば一時的なデータおよび命令の記憶のためのランダムアクセスメモリ(RAM
)332、ユーザのコマンドによりフロッピーディスケットと情報を交換するた
めのディスケットドライブ334、典型的には磁気性であるハードディスクを介
して実現される不揮発性大容量記憶装置335、およびCD−ROMドライバ3
36を含む。この発明はCD−ROMで配布されたソフトウェア製品とともに使
用するという点で論じられているが、この発明はたとえばフロッピーディスケッ
トのような他の一般向けの媒体で配布されるソフトウェア製品にも適用が可能で
あり、フロッピーディスケットの場合はその媒体がフレキシブルディスクドライ
ブ334のような適切なドライブに挿入され、そこからインストールプログラム
が読取られかつ実行される。大容量記憶装置335はまた、好適な光学記憶媒体
から情報を読取る(かつそこに情報を書込む)別の光学媒体読取装置(図示せず
)(または書込装置)を含んでもよい。さらに、大容量記憶装置335はまた、
オペレーティングシステム(O/S)337およびアプリケーションプログラム
210に対する実行可能な命令および関連したデータを記憶する。プログラム2
10はインストールプログラム220を含み、インストールプログラム220自
身は、ソフトウェアのインストールのプロセスの間に一旦ロードされると、この
発明の認証プロセス500(図5を参照)を含む。図3に示されたO/S337
は、WINDOWS NTオペレーティングシステム(”WINDOWS NT
”はワシントン州、レッドモンドのマイクロソフト・コーポレイションの登録商
標である。)のようないずれの従来のオペレーティングシステムにより実現され
てもよい。したがって、O/S337の構成要素はすべて関連がないため、ここ
では論じない。インストールプログラム220はアプリケーションプログラム2
10の1つであり、O/Sの制御下で実行されるといえば十分であろう。
【0030】 有利には、この発明技術は、ソフトウェア製品内で用いるために埋込まれると
、インストールされる特定の製品の複製に対する認証データを入力する以外にユ
ーザの行動を要求しない。
【0031】 図3に示されたように、入来する情報は2つの例示的な外部ソースから、すな
わちネットワークにより与えられる情報、たとえばインターネットからおよび/
または他のネットワークに接続した設備からネットワーク接続355を介して通
信インターフェイス350へ、または専用入力ソースから経路310を介して入
力インターフェイス320へ発生し得る。専用入力は幅広い種類のデータソース
から発生し、そのいずれもここでは特に無関係である。我々はこの発明をCD−
ROMからのローカルでのインストールに用いるという文脈で論じているが、こ
の発明は、インターネットまたは他のネットワーク設備(たとえばイントラネッ
ト)のようなものを介した、コンピュータ200への製品のネットワークインス
トールとともに用いられてもよい。この場合は、製造者またはサイトライセンス
管理者が、製品の複製に対する電子的支払またはライセンスを受けた複製に対す
る正当に許諾された要求を受取ると、リモートネットワークファイルサーバから
その製品の複製に対する対応する認証データを含むファイルを次にダウンロード
できる。関連したインストールプログラムがファイルサーバ上でリモートで実行
できるのであれば、そのときはサーバは認証データを含むクライアントに記憶さ
れたファイルにアクセスし、さらにコンピュータ200にいずれかのプログラム
ファイルをダウンロードする前に認証データを認証するステップに進む。代替的
に、インストールプログラムがローカルで実行されるのならば、一旦すべてのプ
ログラムファイルおよびインストールファイルがサーバによりダウンロードされ
ると、サーバが(またはユーザがある後の時点で)ローカルでインストールプロ
グラムの実行を開始する。このプログラムは認証データを含むファイルにローカ
ルでアクセスし、製品の複製を認証するステップに進む。
【0032】 入力インターフェイス320は適切な回路を含み、コンピュータシステム20
0への入力情報の各々の異なる専用ソースを物理的に接続しかつインターフェイ
スするのに求められる、必要かつ対応する電気的接続を与える。オペレーティン
グシステムの制御下では、アプリケーションプログラム210はネットワーク接
続355または経路310を介して、コマンドおよびデータを外部ソースと交換
し、プログラムの実行中に典型的にはユーザによって要求された情報を伝送しか
つ受取る。
【0033】 さらに、入力インターフェイス320はまた、キーボードおよびマウスのよう
なユーザの入力装置395をコンピュータシステム200に電気的に接続かつイ
ンターフェイスする。従来のカラーモニタのようなディスプレイ380および従
来のレーザプリンタのようなプリンタ385は、導線363および367を介し
て、それぞれ出力インターフェイス360に接続される。出力インターフェイス
は必要な回路を提供し、ディスプレイおよびプリンタをコンピュータシステムに
電気的に接続かつインターフェイスする。一般的には、また認められるようにこ
の発明技術を利用すると、単に製品の複製の認証データを生成するだけではなく
、それを介してクライアントコンピュータ200がこれらのメッセージを入手し
、記憶しおよび/または伝達する様式にも関わらず、ほとんどどのタイプのメッ
セージに対しても、一意な、安全なおよび真正な署名を生成することができる。
【0034】 さらに、コンピュータシステム200の特定のハードウェア構成要素、および
メモリ335内に記憶されるあらゆるソフトウェアの局面は、この発明を実現す
るモジュールを除いて従来のものでありかつ周知であるので、詳細には論じない
。一般的に、コンピュータ10はクライアントコンピュータ200と類似のアー
キテクチャを有する。
【0035】 B 発明技術 この発明では、たとえば数字で表わされた製品の複製の識別子のようなメッセ
ージが与えられると、公開鍵暗号システムに基づきかつ有限体上の楕円曲線上の
点から選択された生成元の値を用いて、真正な署名がそのメッセージに対して生
成される。この技術は例示的な署名者Aのための3つの鍵、すなわち公開鍵(P
A)、非公開鍵(SA)および秘密鍵(KA)と関連した生成元の値を用いて真
正な署名を生成することに依存している。
【0036】 公開鍵暗号では、メッセージ(M)に対する署名はその署名者Aによってメッ
セージならびに署名者の公開鍵および非公開鍵と相関して生成される。すなわち
Sign(M,PA,SA) → SIGNATURE_A(M) このメッセージの受信者Bは、自分の受取るメッセージの署名をメッセージ、そ
の署名およびその署名者の公開鍵の関数として、すなわち、 Verify(M,SIGNATURE_A(M),BA)で検証することができる。検証の結果は、
一般的に署名が有効か否かを特定するイエス/ノーの表示で示される。署名が有
効であれば、署名者の特定の公開鍵および非公開鍵(キーペア)の使用によるも
のとされる。第三者が、メッセージおよび関連した署名の暗号を解析して、また
はたとえばこれらの鍵を盗んで不正にこのキーペアの知識を得たならば、第三者
は署名されたメッセージのペアすなわちメッセージおよびそれらのメッセージの
各々に対する有効な署名を新たに生成することができてしまう。
【0037】 この発明技術は、真正な署名が署名者の公開鍵および非公開鍵からだけでなく
、署名者の秘密鍵からも生成される必要があるために、署名と関連した安全性を
実質的に高めている。すなわち、 Authentic_Sign(M,PA,SA,KA) → Authentic_SIGNATURE_A(M) この発明を用いると、現時点での実行可能性という点でおよび秘密鍵の知識な
しに真正な署名を含む新たな署名されたメッセージのペアを生成するには公開鍵
および非公開鍵を知っているだけでは大いに不十分である。多数のメッセージお
よびその真正な署名が与えられても、署名されたメッセージのペアから、すなわ
ち正当なメッセージおよび真正な署名からは、秘密鍵を再生する作業は不可能で
あると考える。その点に関し、83ビットのバイナリ値の真正な署名に対しては
、秘密鍵の事前の知識なしにそのような真正な署名を生成する確率は約(.5) 30 のオーダであり、この数字の微小さを考えると、でたらめに推測するのと同じ
可能性しかない。
【0038】 本質的に、この発明の教示に従うと、特定の楕円曲線上の点を与えられると、
その曲線上のある点の値が生成元の値として選択される。非公開鍵は無作為に選
択される。公開鍵は生成元および非公開鍵の値の予め定められた関数として決定
され、特に前者の後者による冪乗として決定される。秘密鍵が用いられて擬似乱
数を生成する。真正な署名の第1の部分は次に生成元、擬似乱数およびメッセー
ジ(たとえば無作為に選択された製品の複製の識別子)の予め定められた関数を
介して生成される。特定的には、生成元はまず擬似乱数の値で冪乗されてある値
を与え、その値は次にメッセージと連結される。その結果生じた連結した数は予
め定められたハッシュ関数を介して処理され、真正な署名の第1の部分を与える
。真正な署名の残余の部分は第1の部分、擬似乱数の値および非公開鍵の予め定
められた関数に応答して生成される。真正な署名全体は両者の署名の部分をとも
に連結させることにより最終的に生成される。
【0039】 この発明が用いられて、製品の複製の認証データを実現すると、公開鍵および
生成元の値は、クライアントコンピュータ、たとえば図2に示されたクライアン
トコンピュータ200に複製をインストールする間にそれを認証するのに用いら
れる、製品の複製自体の中の適切なファイル内に記憶される。
【0040】 その製品の複製のインストールの間、ユーザが入力した署名は、クライアント
コンピュータで、生成元の値、公開鍵およびユーザが入力した認証データ全体、
特に識別子および署名を用いて署名の第1の部分を計算することにより認証され
る。次にこの第1の部分の値がユーザが入力した署名の同じ部分の値と一致する
かを判断する。一致すれば、入力された署名は真正であり、製品の複製のインス
トールが継続する。一致しなければ、それは真正ではなく、製品の複製のインス
トールは早期に終了する。
【0041】 製品の複製の認証データの生成と関連して、3つの別個の段階が用いられてこ
の発明を実現する。すなわち(a)さまざまなパラメータの値を生成するために
一度だけ、典型的にはソフトウェア製造者により行なわれる初期化、(b)初期
化の間に生成されたパラメータの値を用いて、異なる製品の複製ごとにその複製
とともに用いられる真正な署名を含む対応する認証データを生成するために媒体
の複製場所で繰返し行なわれる認証データ生成(図4と関連して以下に詳述され
る特にプロセス400)、および(c)ユーザ側(クライアントコンピュータ)
でインストールプログラムを実行する間に、ユーザが入力し、かつユーザがイン
ストールしようとする特定の製品の複製と関連した認証データ内で署名を認証す
るために別個にかつその後に行なわれ、その複製のインストールを継続する認証
(図5と関連して以下に詳述される特にプロセス500)である。
【0042】 この発明を介して生成された真正な署名が公開鍵を用いて従来の方法で検証さ
れる限りは、どのように検証が特定的に達成されるかに関する詳細は、簡潔にす
るために省略する。
【0043】 1 定義づけおよび初期設定の局面 この発明の技術に用いられるさまざまな変数およびこの技術の初期化に用いら
れるステップをまず定義する。
【0044】 まず、好ましくはガロア体上に有限体(K)が定義される。すなわちK=GF
(p)であり、ここでpはたとえば384ビットまたはそれ以上のように非常に
大きく、かつp=1(mod 4)である。その代わりに、この有限体はK=G
F(2m)と定義されてもよい。
【0045】 次に、楕円曲線Eがこの有限体上に定義される。この発明の教示に従うと、そ
の上に複雑な加算および複雑な乗算が存在する楕円曲線を用いるが、それはこの
発明の技術で用いられるパラメータおよびその結果生じる認証データを比較的短
くしながらある形態の暗号攻撃に対して必要な安全性を提供するためである。楕
円曲線を用いなければ、そのような短いパラメータではその安全性を確保するの
は不可能である。一般的に、楕円曲線は、a、b、cおよびdを予め定められた
係数として、y2=ax3+bx2+cx+d という曲線を満たす点(x、y)
を含む。これら4つの係数の値を変化させることにより、曲線上の点の数はそれ
に従って変化する。ここでは一般的な形の楕円曲線を用い得るが、好ましくはか
つ例示的には、有限体Kの上でy2=x3+xとなる曲線を選択し、これにより、
曲線E上の点の数|E|が次のように計算される。すなわち、α=1(mod
4)としてp=α2+β2ならば、|E|=p+1−2α=(α−1)2+β2であ
る。したがって、曲線上の点の数はαおよびβをそれに従って選択することによ
り設定できる。
【0046】 大きな素数qが、たとえば少なくとも長さが約60ビットとなるように選択さ
れ、αおよびβはqが確実に|E|に均等に分割され、かつ1(mod 4)を
満たすようにそれに従って設定される。
【0047】 一旦qの値がそれに従って選択されると、典型的には無作為の点である生成元
gの値が次数qのサブグループに対して曲線Eの上に定義される。これは、曲線
E上に無作為の点であるgを繰返し選択し、かつその特性、すなわち好適な数が
判明するまでその数が以下の式を満たすかをテストすることにより、典型的には
達成される。 G={g,2g,3g, ...,(q−1)g}かつ|G|=q 一旦適切な生成元の値が選択されると、次に乱数が非公開の指数Xとして選択
される。この数字Xは非公開鍵となる。パラメータgpowは公開鍵であり、gx
等しいとして計算される。
【0048】 最後に、秘密鍵KAは例示的に2つの予め定められた成分A1およびA2を連結
したものすなわち以下の式のように定義される。
【0049】
【数11】
【0050】 一旦上記のパラメータが定義されると、パラメータq、g、gpowおよびXは
認証データ生成プロセス400の各々の実行の間、その後に用いるために記憶さ
れ、製造者が生産するすべてのソフトウェア製品の各々のおよびすべての異なる
複製に対し、一意の識別子および関連した真正な署名を含む各々の認証データを
生成する。さらに、パラメータgおよびgpowの値ならびに以下に論じられるハ
ッシュ関数の仕様(specification)はその複製のインストール、特にその複製
のインストールの間ユーザが手入力する認証データの認証の間(すなわち以下に
詳述される認証プロセス500の実行の間)その後のアクセスおよび使用のため
に各々のそのような製品の複製の中にデータとしてすべて記憶される。
【0051】 2 認証データ生成プロセス400 図4は認証データ生成プロセス400のフローチャートの図である。上述のよ
うに、このプロセスはコンピュータ10によって別個に実行され、そのメモリ(
特に図示せず)にある適切な記憶されたプログラムの(実行可能な)命令により
実現され、各々の連続した製品の複製に対し一意な認証データを生成する。この
プロセスは秘密鍵KA、q、g、gpowおよび非公開の指数Xの値を用いる。
【0052】 プロセス400に入ると、実行のプロセスはまずブロック410に進む。この
ブロックは、実行されると、次の連続した(しかしそれまでに用いられていない
)値を、現在の製品の複製に対し(232−1)>M>0の範囲で識別子(ここで
はM)として無作為に割当てる。代替的に、この識別子は順番に割当てられても
よい。その場合、識別子は第1の製品の複製に対しては1の値を、第2の製品の
複製に対しては2の値を割当て、ソフトウェア製造者のすべての製品の複製およ
びすべての異なる製品にわたり、以下同様に識別子が割当てられる。いずれにせ
よ、いずれの製品の各々の複製も一意な識別子を有する。製品の認証データを生
成するのにこの発明技術が用いられる期間にわたり、232以上のソフトウェア製
造者の製品の複製が製造される見込みであれば、この技術はより長い識別子、し
たがってより長い鍵およびパラメータの値を用いるように修正されなければなら
ないことが当業者には明らかであろう。
【0053】 適切な値が現在の製品の複製に対する識別子としてブロック410により一旦
割当てられると、実行のプロセスはブロック420に進む。このブロックは現在
の製品の複製に割当てられた秘密鍵および識別子Mを用いて、[1、q−1]の
範囲で指数kの擬似乱数の値を生成する。一般的に、G_msを擬似乱数生成式
として、k=G_MS(M)である。好ましくは、擬似乱数生成式は、特定的に
はSHA_1である従来のかつ周知である安全なハッシュ関数を用いて実現され
る。そのようなハッシュ関数はどのような長さのデジタルの入力数も160ビッ
トの値に写像し、それによりSHA_1(x)=SHA_1(y)となるような
、同じ長さの数(x、y)の何らかのペアを探し出すことが不可能である、すな
わちここでは280回を超える演算が必要となる。特に、上述のように、秘密鍵K
Aは例示的には2つの予め定められた成分A1およびA2の連結、すなわち以下の
式のとおりであり、
【0054】
【数12】
【0055】 一旦生成されると固定され、すべての製品の複製の認証データを生成する。kを
計算するには、ブロック420は秘密鍵をその成分A1およびA2に解析し、次に
複数のハッシュ演算を用いて、次の式1および式2に示されるように指数kを計
算する。
【0056】
【数13】
【0057】 安全性をさらに高めるには、式1および2を介して生成されたkの値は、別の擬
似乱数関数を介してシードとして処理されて新たな擬似乱数の値kを与え、現在
の製品の複製のための認証データを生成するための残余のステップの間、これら
の式によって生成される値の代わりに、代替的にこの新たな値が用いられてもよ
い。
【0058】 上述のように、現在の製品の複製に対しkの値が一旦そのように決定されると
、ブロック430はgkの計算を実行する。その後、実行のプロセスはブロック
440に進み、認証する側には既知のハッシュ関数を用いて、gkおよびMの関
数としてかつ以下の式3に従ってパラメータrの値を決定する。このハッシュ関
数は例示的にはSHA_1関数である。
【0059】
【数14】
【0060】 次に、ブロック450はk、X、rおよびqの関数としてかつ以下の式4に従
ってパラメータsの計算を実行する。
【0061】
【数15】
【0062】 一旦sが完全に計算されると、実行のプロセスはブロック460に進み、そこ
ではM、rおよびsを連結したものとしての115ビットのバイナリ値の認証デ
ータを形成し、ただし真正な署名自体はrおよびsを連結したものである。バイ
ナリ値の認証データが形成された後、ブロック470はこの認証データを25桁
のアルファニューメリックの形式に変換し、次に結果として生じる現在の製品の
複製と関連して用いられるアルファニューメリックの認証データの出力値をたと
えばプリンタ60(図1参照)のようなものに与える。認証データを手入力する
際のユーザの混乱および起こり得る間違いを低減しかつ使い勝手を高めるために
、ブロック470(図4には図示せず)は、認証データが印刷されるフォントに
もよるが、たとえば、文字IおよびO(大文字または小文字を問わない)、数字
の0、小文字のL、および数字の1などユーザには同じに見える、あるアルファ
ニューメリックの文字を好ましくは使用しない。さらに、小文字のLと数字の1
のように同じに見える文字を、共通の文字たとえば数字1に写像してもよい。
【0063】 この発明を利用しかつ公開鍵−非公開鍵のペアを用いることにより、32ビッ
トの識別子の値を考慮すると、ゆうに1秒以内の処理時間で、現在利用可能なP
Cで真正な83ビットの署名が生成されると見込んでいる。
【0064】 3 認証プロセス500 図5は、図2および図3で示されたコンピュータ200のようなクライアント
コンピュータ内で実行される認証プロセス500のフローチャートの図である。
上述のように、これはクライアントコンピュータに製品の複製をインストールす
る間に、所与の製品の複製に対しユーザが手入力した認証データを認証するプロ
セスである。g、gpowの値および認証の間に用いられるハッシュ関数の仕様が
所与の製品の複製内に記憶され、それらはソフトウェア製造者からのすべての製
品の複製に共通である。単純化のために、パラメータgおよびgpowならびにハ
ッシュ関数の仕様を所与のソフトウェア製造者のすべての製品の複製に共通とし
ているが、安全性を高めるためには、これらのパラメータの値およびハッシュ関
数の仕様はその製造者の特定の製品のすべての複製または一組のその製品の特定
の複製にわたってのみ共通であってもよく、もしくはそのような複製のただ1つ
のみに特有であってもよい。
【0065】 プロセス500に入ると、実行のプロセスはまずブロック510に進む。この
ブロックは、図2および図3に示されたクライアントコンピュータ200のよう
な、ユーザのクライアントコンピュータにユーザがインストールしようとする特
定の製品の複製に対してユーザが手入力したアルファニューメリックの認証デー
タを読取る。この認証データが一旦読取られると、ブロック520はまずアルフ
ァニューメリックの認証データをバイナリ値のシーケンスに変換し、次にその認
証データ内のパラメータM、rおよびsの値を抽出するプロセスを実行する。そ
の後、実行のプロセスはブロック530に進み、そこではパラメータgおよびg pow の記憶された値ならびに認証に用いられる特定のハッシュ関数の仕様を読取
る。
【0066】 これらのパラメータの値およびハッシュ関数の仕様が一旦ブロック530によ
り読取られると、実行のプロセスはブロック540に進み、実行されると、そこ
では認証データから抽出されたばかりのrおよびsの値を用いて、gsおよびgp ow r の値を計算する。一旦この値が計算されると、ブロック550および560
はまず認証署名の一部、特にパラメータr(ここでは再計算された部分は以下の
記号で示される。
【0067】
【数16】
【0068】 「以下明細書中ではこの記号を^rと記載する」)を計算することにより認証デ
ータを集合的に認証し、次にその値を認証データから抽出された同じパラメータ
の値と比較するステップを実行する。特に、ブロック550は以下の式5に従っ
て^rを計算する。
【0069】
【数17】
【0070】 この式では、HASHは認証の間に用いられる、製品の複製に特定されたハッシ
ュ関数である。この関数は典型的にはSHA_1関数である。 値^rが計算されると、実行のプロセスは判定ブロック560に進み、ユーザが
入力した認証データから抽出されたrの値に対してこの値をテストする。これら
の2つの値が同一(一致)であれば、認証データ内の署名は認証された。したが
って、認証プロセス500からYESの経路563を介して実行のプロセスは終
了し、この製品の複製のインストールを継続する。代替的に、これら2つの値が
全く異なっていると、認証データ、特にそれが含む署名は、真正ではない。した
がって、ユーザは製品の複製をインストールする認証が与えられない。この例で
は、判定ブロック560はNOの経路567を介してブロック570に実行のプ
ロセスを経路指定する。この後者のブロックは、実行されると、ローカルのモニ
タ(たとえば図3に示されたディスプレイ380)にユーザは製品の複製をイン
ストールする認証を与えられないとする適切なメッセージを表示する。一旦この
メッセージがそのように表示されると、実行のプロセスは(図5に示されたよう
に)プロセス500から終了し、製品の複製のインストールを進めずに早期に終
了する。
【0071】 安全かつ真正な署名を生成するためのこの発明の技術を、ユーザのコンピュー
タにインストールされるソフトウェア製品の複製とともに用いる認証データの一
部としてこれまで説明してきたが、この発明を用いて、ユーザがソフトウェア製
造者により運営されるサーバとのネットワーク接続を確立するときは常に、以前
にインストールされたソフトウェアの複製を非常に安全にシリアル番号をつける
(serialize)ことができることが当業者には理解されるであろう。特に、クラ
イアントコンピュータで実行されるO/SのユーザがそのO/Sの製造者のウェ
ブサイトにインターネット接続を確立するならば、ウェブサーバはたとえば真正
な署名を含む上述の認証データのようなインストール番号を生成し、その番号を
クライアントコンピュータにダウンロードして記憶させることができる(もちろ
んクライアントコンピュータで実行されるウェブブラウザが「クッキー」を受け
入れる、すなわちそのようなダウンロードを受け入れるように設定されていると
仮定して)。このインストール番号を用いて製造者はその特定のO/Sのインス
トールを一意にかつ安全に識別できる。そのユーザがその後製造者のウェブサイ
トとインターネット接続を確立するときは常に、製造者はクライアントコンピュ
ータに記憶されたインストール番号にアクセスしかつそれを認証することにより
O/Sの特定のインストールを容易に識別することができる。記憶されたインス
トール番号をきちんと認証できることにより、製造者は許諾されたO/Sのイン
ストールと許諾なしのO/Sのインストールを区別することができる。したがっ
て製造者は前者のインストールのみにサポート、アップグレード、プロモーショ
ンおよび/または他のサービスを提供しながら、後者のインストールに対しては
それらを拒否することができる。同様に、製造者は以前にインストールされかつ
製造者がその後に識別を行ないたい、アプリケーションプログラムのような他の
タイプのソフトウェアプログラムの複製に対して一意なインストール番号を生成
しかつダウンロードすることができる。
【0072】 さらに、認証データはそれに対して真正な署名が生成されるメッセージとして
製品の複製の識別子を用いたが、このメッセージはそのように限定されるもので
はない。このメッセージは電子的に暗号化されかつ一方から他方へ伝達されるい
ずれの形態のデジタルの情報も構成することができる。したがって、この発明は
送信者と受信者の間を通過する暗号化されたメッセージの流れの中の各々のメッ
セージを認証する、高度な安全性を有するメカニズムを提供することができる。
【0073】 さらに、認証データの生成および認証のプロセス(特に図4および図5それぞ
れの中のブロック440および550)の中でパラメータrおよび^rを生成す
るための安全なハッシュ関数を用いてこの発明の技術を説明したが、同じ関数が
両者のプロセスに用いられ、またその関数の仕様が関連した製品の複製に記憶さ
れ、かつその特定の複製のインストールの間認証のプロセスによって読取られる
ならば、他の安全な関数が用いられてもよい。
【0074】 さらに、この発明は32ビットのメッセージ(ここでは、例示的に製品の複製
の識別子)および83ビットの真正な署名とともに用いられるように例示的に説
明されたが、この発明はその意図された適用例を考慮すると、より長いメッセー
ジおよび署名、もしくはより低いセキュリティが許容されるアプリケーションで
は、より短いメッセージおよび署名を受け入れるよう容易に修正が可能である。
【0075】 さまざまな修正とともに、この発明の教示を組込む実施例が詳細に示されかつ
説明されたが、当業者はこの教示を利用する多数の他の実施例を容易に考案する
ことができる。
【図面の簡単な説明】
【図1】 この発明の教示を組込んだCD−ROM生産システムの、単純化
されてはいるが高レベルのブロック図である。
【図2】 図1に示されたシステム5を介して生産されたようなCD−RO
Mからプログラムをインストールする間に、この発明を例示的に利用する典型的
なクライアントコンピュータ200の高レベルなブロック図である。
【図3】 図2に示されたクライアントコンピュータ200のブロック図で
ある。
【図4】 図1に示されたコンピュータ10内で実行される認証データ生成
プロセス400のフローチャートの図である。
【図5】 図2および図3に示されたクライアントコンピュータ200内で
実行される認証プロセス500のフローチャートの図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,UZ,VN,YU,ZA,Z W (72)発明者 モンゴメリー,ピーター・エル アメリカ合衆国、94903−2346 カリフォ ルニア州、サン・ラファエル、ラス・コリ ンダス・ロード、780 Fターム(参考) 5J104 AA09 AA25 JA25 NA02 NA12 NA16 【要約の続き】 続するかまたは早期に終了させるかが判断される。

Claims (45)

    【特許請求の範囲】
  1. 【請求項1】 公開鍵(PA)および非公開鍵(SA)を有する公開鍵暗号
    システムを用いて真正な署名を生成するための方法であって、メッセージ、有限
    体上の楕円曲線上の複数の点から選択された予め定められた生成元の値(g)な
    らびに公開鍵および非公開鍵とは異なる第3の鍵(KA)に応答して、入来する
    メッセージ(M)に対して真正な署名を形成するステップを含む、方法。
  2. 【請求項2】 前記形成のステップは、 秘密鍵(KA)の予め定められた擬似乱数の関数として第1のパラメータの値
    (k)を生成するステップと、 第1のパラメータの値、生成元の値およびメッセージの第1の予め定められた
    関数として真正な署名の第1の部分(r)を決定するステップとをさらに含む、
    請求項1に記載の方法。
  3. 【請求項3】 予め定められた擬似乱数の関数が第1の予め定められたハッ
    シュ関数を含む、請求項2に記載の方法。
  4. 【請求項4】 メッセージ(M)に対して、公開鍵(PA)、非公開鍵(S
    A)および第3の鍵(KA)を有する公開鍵暗号システムを介して生成された署
    名を認証するための方法であって、第3の鍵は第1の鍵および第2の鍵とは異な
    り、この方法は、 署名から第1および第2の部分を抽出し、署名の抽出された第1および第2の
    部分を与えるステップと、 有限体上の楕円曲線上の複数の点から選択された予め定められた生成元の値(
    g)、メッセージならびに署名の抽出された第1および第2の部分に応答して、
    署名の第1の部分の新たな値を決定するステップと、 第1の部分の新たな値が第1の抽出された部分と一致するか否かを確認し、そ
    の署名が真正か否かを示すステップとをさらに含む、方法。
  5. 【請求項5】 入来するメッセージ(93)に応答して、メッセージに対し
    て真正な署名(97)を生成し、かつ公開鍵(PA)および非公開鍵(SA)を
    有する公開鍵暗号システムとともに用いられる装置であって、この装置は、 プロセッサ(340)と コンピュータで実行可能な命令を記憶するメモリ(330)とを含み、 前記プロセッサは、記憶された命令に応答して、メッセージ(M)、有限体上
    の楕円曲線上の複数の点から選択された予め定められた生成元の値(g)ならび
    に公開鍵および非公開鍵とは異なる第3の鍵(KA)に応答して、入来するメッ
    セージ(M)に対して真正な署名を形成する、装置。
  6. 【請求項6】 メッセージ(M)に対して、公開鍵(PA)、非公開鍵(S
    A)および第3の鍵(KA)を有する公開鍵暗号システムを介して生成された署
    名(97)を認証するための装置であって、第3の鍵は第1の鍵および第2の鍵
    とは異なり、この装置は、 プロセッサ(340)と コンピュータで実行可能な命令を記憶するメモリ(330)とを含み、 前記プロセッサは、記憶された命令に応答して、 署名から第1および第2の部分を抽出し、署名の抽出された第1および第2の
    部分を与え、 有限体上の楕円曲線上の複数の点から選択された予め定められた生成元の値(
    g)、メッセージならびに署名の抽出された第1および第2の部分に応答して、
    署名の第1の部分の新たな値を決定し、 第1の部分の新たな値が第1の抽出された部分と一致するか否かを確認し、そ
    の署名が真正か否かを示す、装置。
  7. 【請求項7】 対応する製品の複製と関連した、真正な署名を含む、認証デ
    ータを生成するための方法であって、真正な署名は公開鍵(PA)および非公開
    鍵(SA)を有する公開鍵暗号システムと関連して用いられ、この方法は、 製品の複製に対してメッセージ(M)として一意な識別子を割当てるステップ
    と、 メッセージ、有限体上の楕円曲線上の複数の点から選択された予め定められた
    生成元の値(g)ならびに公開鍵および非公開鍵とは異なる第3の鍵(KA)に
    応答して真正な署名を生成するステップと、 識別子および真正な署名に応答して認証データを形成するステップと、 製品の複製と認証データを関連づけるステップとを含む、方法。
  8. 【請求項8】 前記認証データ形成のステップは、識別子を真正な署名と連
    結して認証データを与えるステップを含む、請求項7に記載の方法。
  9. 【請求項9】 前記割当てのステップは、所与の範囲内の乱数の値またはそ
    の範囲内の予め定められたシーケンス内の次に利用可能な数のいずれかとして一
    意な識別子を選択するステップを含む、請求項8に記載の方法。
  10. 【請求項10】 前記生成のステップは、 秘密鍵(KA)の予め定められた擬似乱数の関数として第1のパラメータの値
    (k)を生成するステップと、 第1のパラメータの値、生成元の値およびメッセージの第1の予め定められた
    関数として、真正な署名の第1の部分(r)を決定するステップとをさらに含む
    、請求項7に記載の方法。
  11. 【請求項11】 予め定められた擬似乱数の関数が第1の予め定められたハ
    ッシュ関数を含む、請求項10に記載の方法。
  12. 【請求項12】 第3の鍵が秘密鍵であり、かつ第1の鍵の部分(A1)お
    よび第2の鍵の部分(A2)を連結したもので形成され、第1のパラメータの値
    (k)は以下の式を介して決定され、 【数1】 この式ではSHA_1はSHA_1のハッシュ関数である、請求項3または11
    に記載の方法。
  13. 【請求項13】 第1のパラメータの値を入力として予め定められた擬似乱
    数の関数に適用し、第1のパラメータの値に対し新たな値を与えるステップをさ
    らに含む、請求項12に記載の方法。
  14. 【請求項14】 第1のパラメータの値、非公開鍵および真正な署名の第1
    の部分の第2の予め定められた関数に応答して真正な署名の第2の部分(s)を
    生成するステップと、 真正な署名の第1および第2の部分を連結し、真正な署名を与えるステップと
    をさらに含む、請求項2または10に記載の方法。
  15. 【請求項15】 真正な署名の第1の部分が以下の式に従って計算され、 【数2】 この式ではfは予め定められた安全な関数である、請求項14に記載の方法。
  16. 【請求項16】 関数fは予め定められたハッシュ関数である、請求項15
    に記載の方法。
  17. 【請求項17】 真正な署名の第2の部分(s)が以下の式に従って計算さ
    れ、 【数3】 この式ではXは非公開鍵(SA)であり、qは予め定められた素数である、請求
    項15に記載の方法。
  18. 【請求項18】 認証データをアルファニューメリックの形式に変換し、ア
    ルファニューメリックの認証データを与えるステップと、 製品の複製またはその構成要素にアルファニューメリックの認証データを添付
    するステップとをさらに含む、請求項13に記載の方法。
  19. 【請求項19】 コンピュータにインストールされる対応する製品の複製と
    関連した認証データを認証するための方法であって、認証データは公開鍵暗号シ
    ステムを介して生成された製品の複製の識別子および関連づけられた署名を有し
    、公開鍵暗号システムは公開鍵(PA)、非公開鍵(SA)および第3の鍵(K
    A)を有し、第3の鍵は第1および第2の鍵とは異なり、この方法はコンピュー
    タに製品の複製をインストールする間に、 コンピュータに製品の複製をインストールする間に製品の複製に対する認証デ
    ータを入手するステップと、 認証データに含まれる署名を認証するステップとを含み、前記認証のステップ
    は、 認証データから署名の第1および第2の部分を抽出し、署名の抽出された第1
    および第2の部分ならびに識別子を与えるステップと、 有限体上の楕円曲線上の複数の点から選択された予め定められた生成元の値(
    g)、識別子ならびに署名の抽出された第1および第2の部分に応答して、署名
    の第1の部分の新たな値を決定するステップと、 第1の部分の新たな値が第1の抽出された部分と一致するか否か確認し、認証
    データに含まれる署名が真正か否かを示すステップとを含み、 署名が真正か否かにより、それぞれコンピュータに製品のインストールを継続
    するかまたはインストールを終了する、方法。
  20. 【請求項20】 前記決定のステップは、製品の複製から生成元の値の記憶
    された値および公開鍵を入手するステップを含む、請求項19に記載の方法。
  21. 【請求項21】 前記新たな値を決定するステップは、生成元の値、公開鍵
    、メッセージ、ならびに署名の抽出された第1および第2の部分(それぞれrお
    よびs)の予め定められた関数として新たな値を生成するステップを含む、請求
    項4または請求項20に記載の方法。
  22. 【請求項22】 新たな値(^r)が以下の式に従って計算され、 【数4】 この式ではgpowは公開鍵であり、HASHは署名の生成に用いられる予め定め
    られたハッシュ関数である、請求項21に記載の方法。
  23. 【請求項23】 予め定められたハッシュ関数がSHA_1ハッシュ関数で
    ある、請求項16または請求項22に記載の方法。
  24. 【請求項24】 有限体がガロア体上に定義される、請求項13、17また
    は22に記載の方法。
  25. 【請求項25】 楕円曲線がy2=x3+xの形式である、請求項13、17
    または22に記載の方法。
  26. 【請求項26】 請求項1、4、7または19に記載のステップを実行する
    ための、コンピュータで実行可能な命令を記憶する、コンピュータで読取可能な
    媒体。
  27. 【請求項27】 対応する製品の複製(70)と関連した、真正な署名(8
    7、97)を含む、認証データ(75、90)を生成するための装置であって、
    真正な署名は公開鍵(PA)および非公開鍵(SA)を有する公開鍵暗号システ
    ムと関連して用いられ、この装置は、 プロセッサ(340)と コンピュータで実行可能な命令を記憶するメモリ(330)とを含み、 前記プロセッサは、記憶された命令に応答して、 製品の複製に対して、メッセージ(M)として一意な識別子を割当て、 メッセージ、有限体上の楕円曲線上の複数の点から選択された予め定められた
    生成元の値(g)ならびに公開鍵および非公開鍵とは異なる第3の鍵(KA)に
    応答して真正な署名を生成し、 識別子および真正な署名に応答して認証データを形成し、 製品の複製と認証データを関連づける、方法。
  28. 【請求項28】 プロセッサは、記憶された命令に応答して、識別子を真正
    な署名と連結して認証データを与える、請求項27に記載の装置。
  29. 【請求項29】 プロセッサは、記憶された命令に応答して、所与の範囲内
    の乱数の値またはその範囲の予め定められたシーケンス内の次に利用可能な数の
    いずれかとして一意な識別子を選択する、請求項28に記載の装置。
  30. 【請求項30】 プロセッサは、記憶された命令に応答して、秘密鍵(KA
    )の予め定められた擬似乱数の関数として第1のパラメータの値(k)を生成し
    、 真正な署名の第1の部分(r)を第1のパラメータの値、生成元の値およびメ
    ッセージの第1の予め定められた関数として決定する、請求項5または請求項2
    9に記載の装置。
  31. 【請求項31】 予め定められた擬似乱数の関数が第1の予め定められたハ
    ッシュ関数を含む、請求項30に記載の装置。
  32. 【請求項32】 第3の鍵が秘密鍵であり、かつ第1の鍵の部分(A1)お
    よび第2の鍵の部分(A2)を連結したもので形成され、第1のパラメータの値
    (k)は以下の式を介して決定され、 【数5】 この式ではSHA_1がSHA_1のハッシュ関数である、請求項31に記載の
    装置。
  33. 【請求項33】 プロセッサは、記憶された命令に応答して、入力として第
    1のパラメータの値を予め定められた擬似乱数の関数に適用し、第1のパラメー
    タの値に対して新たな値を与える、請求項32に記載の装置。
  34. 【請求項34】 プロセッサは、記憶された命令に応答して、 第1のパラメータの値、非公開鍵および真正な署名の第1の部分の第2の予め
    定められた関数に応答して、真正な署名の第2の部分(s)を生成し、 真正な署名の第1および第2の部分を連結して真正な署名を与える、請求項5
    または請求項30に記載の装置。
  35. 【請求項35】 真正な署名の第1の部分が以下の式に従って計算され、 【数6】 この式ではfが予め定められた安全な関数である、請求項34に記載の装置。
  36. 【請求項36】 関数fが予め定められたハッシュ関数である、請求項35
    に記載の装置。
  37. 【請求項37】 真正な署名の第2の部分(s)が以下の式に従って計算さ
    れ、 【数7】 この式ではXが非公開鍵(SA)であり、qが予め定められた素数である、請求
    項35に記載の装置。
  38. 【請求項38】 プロセッサは、記憶された命令に応答して、 認証データをアルファニューメリックの形式に変換してアルファニューメリッ
    クの認証データを与え、 製品の複製またはその構成要素にアルファニューメリックの認証データを添付
    する、請求項33に記載の装置。
  39. 【請求項39】 コンピュータにインストールされる対応する製品の複製と
    関連した認証データを認証するための装置であって、認証データは公開鍵暗号シ
    ステムを介して生成された製品の複製の識別子および関連した署名を有し、公開
    鍵暗号システムは公開鍵(PA)、非公開鍵(SA)および第3の鍵(KA)を
    有し、第3の鍵は第1および第2の鍵とは異なり、この装置は、 プロセッサと コンピュータで実行可能な命令を記憶するメモリとを含み、 前記プロセッサは、記憶された命令に応答して、コンピュータに製品の複製を
    インストールする間に、 コンピュータに製品の複製をインストールする間に製品の複製に対する認証デ
    ータを入手し、 認証データから署名の第1および第2の部分を抽出し、署名の抽出された第1
    および第2の部分ならびに識別子を与え、 有限体上の楕円曲線上の複数の点から選択された予め定められた生成元の値(
    g)、識別子ならびに署名の抽出された第1および第2の部分に応答して、署名
    の第1の部分の新たな値を決定し、 第1の部分の新たな値が第1の抽出された部分と一致するか否か確認し、認証
    データに含まれる署名が真正か否かを示し、 署名が真正か否かにより、それぞれコンピュータに製品のインストールを継続
    するかまたはインストールを終了する、方法。
  40. 【請求項40】 プロセッサは、記憶された命令に応答して、製品の複製か
    ら生成元の値の記憶された値および公開鍵を入手する、請求項39に記載の装置
  41. 【請求項41】 プロセッサは、記憶された命令に応答して、生成元の値、
    公開鍵、メッセージならびに署名の抽出された第1および第2の部分(それぞれ
    rおよびs)の予め定められた関数として新たな値を生成する、請求項6または
    請求項40に記載の装置。
  42. 【請求項42】 新たな値(^r)が以下の式に従って計算され、 【数8】 この式ではgpowが公開鍵であり、HASHが署名の生成に用いられる予め定め
    られたハッシュ関数である、請求項41に記載の装置。
  43. 【請求項43】 予め定められたハッシュ関数がSHA_1のハッシュ関数
    である、請求項36または請求項42に記載の装置。
  44. 【請求項44】 有限体がガロア体上で定義される、請求項33、37また
    は42に記載の装置。
  45. 【請求項45】 楕円曲線がy2=x3+xの形式である、請求項6、33、
    37または42に記載の装置。
JP2000556476A 1998-06-23 1999-06-23 非公開に認証可能な暗号署名を生成し、かつ製品の複製に関連してそのような署名を用いるための技術 Expired - Fee Related JP4644368B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/102,851 US6163841A (en) 1998-06-23 1998-06-23 Technique for producing privately authenticatable cryptographic signatures and for authenticating such signatures
US09/102,948 1998-06-23
US09/102,948 US6209093B1 (en) 1998-06-23 1998-06-23 Technique for producing a privately authenticatable product copy indicia and for authenticating such an indicia
US09/102,851 1998-06-23
PCT/US1999/014215 WO1999067920A1 (en) 1998-06-23 1999-06-23 A technique for producing privately authenticatable cryptographic signatures and for using such a signature in conjunction with a product copy

Publications (2)

Publication Number Publication Date
JP2002519723A true JP2002519723A (ja) 2002-07-02
JP4644368B2 JP4644368B2 (ja) 2011-03-02

Family

ID=26799803

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000556476A Expired - Fee Related JP4644368B2 (ja) 1998-06-23 1999-06-23 非公開に認証可能な暗号署名を生成し、かつ製品の複製に関連してそのような署名を用いるための技術

Country Status (7)

Country Link
EP (1) EP1088420B1 (ja)
JP (1) JP4644368B2 (ja)
CN (2) CN1264305C (ja)
AT (1) ATE361605T1 (ja)
AU (1) AU5457699A (ja)
DE (1) DE69935980T2 (ja)
WO (1) WO1999067920A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712850B1 (ko) * 2010-03-31 2017-03-07 이르데토 비.브이. 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법
EP4022430A4 (en) * 2019-08-28 2023-05-24 Hewlett-Packard Development Company, L.P. ARRAY SIGNATURES ENCRYPTION

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0643809A (ja) * 1992-07-27 1994-02-18 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線に基づくデイジタル署名方式とその署名者装置及び検証者装置
JPH09160492A (ja) * 1995-12-13 1997-06-20 Matsushita Electric Ind Co Ltd 署名方式
US5737424A (en) * 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
JP2001523067A (ja) * 1997-11-10 2001-11-20 サーティコム コーポレーション マスクディジタル署名

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5299262A (en) * 1992-08-13 1994-03-29 The United States Of America As Represented By The United States Department Of Energy Method for exponentiating in cryptographic systems
US5638447A (en) * 1996-05-15 1997-06-10 Micali; Silvio Compact digital signatures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0643809A (ja) * 1992-07-27 1994-02-18 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線に基づくデイジタル署名方式とその署名者装置及び検証者装置
JPH09160492A (ja) * 1995-12-13 1997-06-20 Matsushita Electric Ind Co Ltd 署名方式
US5737424A (en) * 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
JP2001523067A (ja) * 1997-11-10 2001-11-20 サーティコム コーポレーション マスクディジタル署名

Also Published As

Publication number Publication date
EP1088420B1 (en) 2007-05-02
CN1534922A (zh) 2004-10-06
WO1999067920A1 (en) 1999-12-29
DE69935980D1 (de) 2007-06-14
AU5457699A (en) 2000-01-10
ATE361605T1 (de) 2007-05-15
EP1088420A1 (en) 2001-04-04
CN1306714A (zh) 2001-08-01
JP4644368B2 (ja) 2011-03-02
DE69935980T2 (de) 2008-01-10
CN1264305C (zh) 2006-07-12
CN100334831C (zh) 2007-08-29

Similar Documents

Publication Publication Date Title
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
US9077537B2 (en) Generating secure private keys for use in a public key communications environment
US6209093B1 (en) Technique for producing a privately authenticatable product copy indicia and for authenticating such an indicia
US6163841A (en) Technique for producing privately authenticatable cryptographic signatures and for authenticating such signatures
JP4638912B2 (ja) ディストリビューションcdを使用した、署名されたグループにおけるダイレクトプルーフの秘密鍵を装置に伝達する方法
US6389535B1 (en) Cryptographic protection of core data secrets
CN100432889C (zh) 提供断开鉴别的系统和方法
US8369521B2 (en) Smart card based encryption key and password generation and management
JP4673890B2 (ja) オンラインサービスを用いてデバイスに直接証明秘密鍵を転送する方法
JP2001514834A (ja) 安全決定性暗号鍵発生システムおよび方法
KR20070085257A (ko) 하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템
JP4528442B2 (ja) 鍵対を形成し秘密鍵を復元する方法、鍵対を形成し秘密鍵を復元する装置、鍵対を形成する方法、ならびに、鍵対を形成する装置
WO2006025952A2 (en) Method of delivering direct proof private keys to devices using a distribution cd
US8341417B1 (en) Data storage using encoded hash message authentication code
CN100401309C (zh) 税控设备软件版本智能升级加密验证方法
EP1907969A1 (en) Generating a secret key from an asymmetric private key
JPH1198134A (ja) クッキーの改ざん・コピー検出処理方法およびプログラム記憶媒体
JP2004072290A (ja) 証明書管理環境の管理方法、プログラム及び装置
CN117313165A (zh) 一种软件机器码的生成方法
JP2009200990A (ja) ディスク暗号鍵の生成及びリカバリ方法並びに機密情報管理システム
JP4644368B2 (ja) 非公開に認証可能な暗号署名を生成し、かつ製品の複製に関連してそのような署名を用いるための技術
JP3984570B2 (ja) 署名/検証システムにおける鍵管理サーバおよび検証装置を制御するプログラム
JPH11215121A (ja) 認証装置および方法
CN109981264A (zh) 一种应用密钥生成方法及密码机设备组件

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060821

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060829

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060829

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20100917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100917

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: 20101105

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101206

R150 Certificate of patent or registration of utility model

Ref document number: 4644368

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees