JP3617259B2 - 利用資格検証装置 - Google Patents

利用資格検証装置 Download PDF

Info

Publication number
JP3617259B2
JP3617259B2 JP18827497A JP18827497A JP3617259B2 JP 3617259 B2 JP3617259 B2 JP 3617259B2 JP 18827497 A JP18827497 A JP 18827497A JP 18827497 A JP18827497 A JP 18827497A JP 3617259 B2 JP3617259 B2 JP 3617259B2
Authority
JP
Japan
Prior art keywords
information
proof
key
public key
secret
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
JP18827497A
Other languages
English (en)
Other versions
JPH1132036A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP18827497A priority Critical patent/JP3617259B2/ja
Publication of JPH1132036A publication Critical patent/JPH1132036A/ja
Application granted granted Critical
Publication of JP3617259B2 publication Critical patent/JP3617259B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
本発明は、利用資格を検証する利用資格検証技術に関する。
【0002】
【従来の技術】
ネットワークの進展につれ、ソフトウェアやマルチメディアデータなどのデジタル情報で表現された知的財産が飛躍的に増大している。デジタル情報は簡単に複製することができ、また不正にコピーしたとしても一切痕跡が残らない。このため、デジタル情報に関する著作権の保護が問題となっている。利用の権利を表すものとして日常的に用いているものにチケットがあり、チケットのデジタル化も試みられている。しかしながら、前述の著作権保護と同様に不正な複製の問題がある。
【0003】
ソフトウェアの利用資格を検証する従来の技術として、米国特許第5,586,186号明細書で開示されている技術がある(以下、関連米国特許と呼ぶ)。この技術はソフトウェアのアクセス制御を実現するものであるが、暗号化されたソフトウェアを復号する代わりに、暗号化された所与の情報が正しく復号されることで利用資格を確認することにより、チケットのデジタル化にも用いることができる。
【0004】
上述関連特許では、ソフトウェアを暗号化した状態で配布しておき、利用者がこのソフトウェアの利用を希望するときには、復号するための情報(利用者鍵)をソフトウェアベンダから購入する方法を採っている。暗号化にはRSA(Rivest−Shamir−Adelman)公開鍵暗号を用いており、利用者鍵としてRSA公開鍵対の秘密鍵と利用者識別情報に所定の演算を行なって得られる値を使用する。
【0005】
以下、上述関連米国特許の内容について詳細に説明する。上述関連米国特許では、2つの方式を開示している。
【0006】
はじめに、第1の方式について説明する。
ソフトウェアの暗号化手順は、以下の通りである。
1.素数p,qを選び、RSA公開鍵暗号の法数n=pqを求める。
2.公開鍵eを、法数nのオイラー数φ(n)と互いに素になるよう選ぶ。
3.秘密鍵dをed≡1 mod φ(n)となるよう定める。
4.ソフトウエアを公開鍵eで暗号化する。
5.ソフトウエアを配布する。
【0007】
利用者鍵の計算手順は、以下の通りである。
1.利用者の識別情報を数値化する。この値をxとする。
2.秘密鍵と数値化された識別情報から、利用者鍵y≡dx−1 mod φ(n)を求める。
【0008】
ソフトウェアを利用する手順は以下の通りである。
1.利用者は識別情報と利用者鍵を復号器に入力する。
2.復号器は、識別情報を数値化して得られた値xと、利用者鍵yの積xyを用いて、ソフトウェアを復号する。
3.復号されたソフトウェアを実行する。
【0009】
次に、第2の方式について説明する。この方式では、2つの公開鍵を使ってソフトウェアを暗号化する。
【0010】
ソフトウェアの暗号化手順は、以下の通りである。
1.素数p,qを選び、RSA公開鍵暗号の法数n=pqを求める。
2.公開鍵e,e’を、法数nのオイラー数φ(n)と互いに素になるよう選ぶ。
3.秘密鍵d,d’をed≡1 mod φ(n)およびe’d’≡ 1 mod φ(n)となるよう定める。
4.ソフトウエアを配布する。(eで暗号化した結果とe’で暗号化した結果と組にして配布する。)
利用者鍵の計算手順は、以下の通りである。
1.利用者の識別情報を数値化する。この値をxとする。識別情報を加工し、数値化した値x’を求める。
2.秘密鍵と上記x,x’から、2つの利用者鍵y≡rdx−1 mod φ(n),y’≡(1−r)d’x’−1 mod φ(n)を求める。ここで、rは0≦r<φ(n)なる乱数。
【0011】
ソフトウェアを利用する手順は以下の通りである。
1.利用者は識別情報と利用者鍵を復号器に入力する。
2.復号器は、識別情報を数値化して得られた値xと一方の利用者鍵yの積xy、識別情報を加工して数値化して得られた値x’ともう一方の利用者鍵y’の積x’y’を用いて暗号文をを復号する。これら2つの暗号文を復号して得られた結果の積を計算し、もとのソフトウェアを得る。
3.復号されたソフトウェアを実行する。
【0012】
つぎに、上述の関連米国特許に関連する課題について説明する。上述の関連米国特許の手法では、識別情報を数値化した値を復号器から読み取ることができると、2人の利用者が結託することにより、秘密鍵そのものあるいは秘密鍵に相当する情報を求められるという問題がある。
【0013】
まず、第1の方式の問題について説明する。
【0014】
ある利用者の、数値化された識別情報と利用者鍵をx,yとする。もう1人の利用者の、数値化された識別情報と利用者鍵をそれぞれx,yとする。
【0015】
【数1】
≡ d mod φ(n)
≡ d mod φ(n)
より、
【0016】
【数2】
φ(n)|x−x
となる。(x−xがφ(n)で割り切れる。)
任意の自然数kについて、
【0017】
【数3】
D=x+k(x−x
は復号鍵dの代わりに用いることができる。
【0018】
Dが秘密鍵として機能する理由について説明する。あるqが存在して
【0019】
【数4】
−x=qφ(n)
となる。次式で示すオイラーの定理と、
【0020】
【数5】
Figure 0003617259
(ただし、aとnは互いに素)
RSA公開鍵暗号系で
【0021】
【数6】
ed≡a mod n
であることに注意すると、
【0022】
【数7】
Figure 0003617259
Figure 0003617259
Figure 0003617259
Figure 0003617259
となる。なお、このことはaとnが互いに素でない場合についても成立する。
【0023】
上記ではφ(n)そのものは求めなかったが、p−1とq−1の倍数が与えられると、nの桁数に関する多項式時間でnの素因数分解を求めることができる確率的アルゴリズムが知られているので、nを素因数分解して、φ(n)を求めることも可能である。φ(n)が分かれば、dを直接計算できる。
【0024】
また、数値化された識別情報と利用者鍵の積を十分多く集め、それらの差を計算した値の最大公約数を求めれば、φ(n)を求めることができる。
【0025】
次に、従来技術の第2の方式の問題について説明する。ある利用者(利用者1)の、識別情報を数値化した値、識別情報を加工したものを数値化した値、および2つの利用者鍵を、それぞれx,x’,y,y’とする。ここで利用者鍵の生成に用いた乱数をrとする。もう1人の利用者(利用者2)の、識別情報を数値化した値、識別情報を加工したものを数値化した値、および2つの利用者鍵を、それぞれx,x’,y,y’とする。ここで利用者鍵の生成に用いた乱数をrとする。
【0026】
利用者鍵の定義式から、
【0027】
【数8】
≡rd mod φ(n)
x’y’≡(1−r)d’ mod φ(n)
となる。ここで、i=1,2である。
利用者1および利用者2の利用者鍵について、上式を辺々引き
【0028】
【数9】
−x≡(r−r)d mod φ(n)
x’y’−x’y’≡(r−r)d’ mod φ(n)
が得られる。ρ=r−rとおけば、上の式は、
【0029】
【数10】
−x≡ρd mod φ(n)
x’y’−x’y’≡−ρd’ mod φ(n)
となる。
利用者1の利用者鍵の式に上式をk倍して辺々加えると、
【0030】
【数11】
(k+1)x−kx≡(r+kρ)d mod φ(n)
(k+1)x’y’−kx’y’≡(1−(r+kρ))d’ mod φ(n)
が得られる。ここでr=r+kρとおくと、これらは利用者鍵の定義式と同じ形になっている。したがって、次式の値を利用者鍵(の積)として用いることができる。
【0031】
【数12】
Figure 0003617259
Figure 0003617259
【0032】
【発明が解決しようとする課題】
本発明は、上記の問題に鑑みてなされたもので、利用者が結託しても権利を詐称することのできない、安全な利用資格検証装置を実現することを課題とする。
【0033】
【課題を解決するための手段】
上記課題を解決するため、本発明の利用資格検証装置は、公開鍵暗号系の鍵を管理する鍵管理手段と、対話証明に用いる秘密情報を管理する第1の秘密情報管理手段と、前記第1の秘密情報管理手段で管理する秘密情報および前記鍵管理手段が管理する鍵の情報の少なくとも一方に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する、第1の一方向性関数計算手段と、前記鍵管理手段が管理する鍵と、前記一方向性関数計算手段の計算結果をもとに証明補助情報を計算する証明補助情報計算手段と、証明補助情報の生成過程で情報を送受信する第1の通信手段と、前記公開鍵暗号系の公開鍵を記憶する公開鍵記憶手段と、対話証明の試験情報を生成し、生成した試験情報を記憶する試験情報生成手段と、対話証明の過程で情報を送受信する第2の通信手段と、対話証明に用いる秘密情報を保持する第2の秘密情報保持手段と、前記第2の秘密情報保持手段に保持されている秘密情報と前記公開鍵暗号系の鍵の情報の少なくとも一方に対し、前記一方向性関数と同一の計算を施す、第2の一方向性関数計算手段と、対話証明に用いる証明補助情報を管理する証明補助情報管理手段と、前記証明補助情報管理手段で管理されている証明補助情報と、前記一方向性関数計算手段で計算した値から、証明特徴情報を用いてのみ計算可能な応答情報を計算する応答情報計算手段と、対話証明の過程で情報を送受信する第3の通信手段とを有する。
【0034】
この構成においては、まず、公開鍵発行時に、第1の通信手段を用いて公開鍵の生成を指示すると、鍵管理手段は公開鍵と秘密鍵を生成し、秘密鍵を記憶した後、前記通信手段により公開鍵を伝達する。
【0035】
証明補助情報発行時には、第1の通信手段を用い、公開鍵と、秘密情報管理手段が秘密情報を検索するための情報を指定することで、証明補助情報の発行を指示する。鍵管理手段が前記公開鍵に対応する秘密鍵を検索し、秘密情報管理手段が秘密情報を検索し、第1の一方性関数計算手段は前記公開鍵と前記秘密情報の少なくとも一方を入力として値を計算する。証明補助情報計算手段は、前記秘密鍵と一方向性関数で計算した前記の値から証明補助情報を計算する。前記証明補助情報は、第1の通信手段により伝達される。
【0036】
対話証明時には、試験情報生成手段は、対話証明で用いる試験情報を生成し、生成した試験情報を記憶する。第2の通信手段は、前記試験情報と公開鍵を第3の通信手段へ伝達する。第2の一方向性関数計算手段は、第3の通信手段で受信された公開鍵と秘密情報保持手段が保持する秘密情報の少なくとも一方を入力として一方向性関数の値を計算する。証明補助情報管理手段は、前記公開鍵に対応する証明補助情報を検索する。応答情報計算手段は、前記試験情報と一方向性関数計算手段で計算した前記の値から、応答情報を計算する。第3の通信手段は、前記応答情報を第2の通信手段に伝達する。
【0037】
応答情報検証手段は、試験情報生成手段が保持する試験情報と、第2の通信手段で受信した前記応答情報と、公開鍵記憶手段が保持する公開鍵を入力とし、前記応答情報が所定の条件を満たしているかを検査する。所定の条件を満たしていれば、利用資格があるものと判定し、そうでなければ資格がないものと判定する。
【0038】
情報に対するアクセス制御を行う場合には、公開鍵の発行後、情報を鍵Kで暗号化し、暗号化された情報と、暗号化に用いた鍵を公開鍵暗号の暗号鍵を用いて暗号化して得られたE(K)を組み合わせておき、利用資格を検証し、正当な資格を有すると判断した場合に情報を復号して利用する。
【0039】
【発明の実施の態様】
以下、本発明の実施例について説明する。
【0040】
図1は、本発明の利用資格検証装置の1実施例を示す。図1において、本実施例の利用資格検証装置は、検証装置10、証明装置20および証明補助情報発行装置30からなる。検証装置10は、公開鍵記憶部101、試験情報生成部102、応答検証部103および通信部104を含んで構成されている。証明装置20は、秘密情報保持部201、一方向関数計算部202、応答情報計算部203、証明補助情報管理部204および通信部205を含んで構成されている。また、証明補助情報発行装置30は、秘密情報管理部301、一方向性関数計算部302、証明補助情報計算部303、鍵管理部304および通信部305を含んで構成されている。
【0041】
ここでは、公開鍵暗号系としてRSAを用いる。RSA公開鍵暗号の法数をn、公開鍵(暗号鍵)をe、秘密鍵(署名鍵)をdとする。ここで、平文x、暗号文yは、0≦ex<n,0≦y<nである。
【0042】
証明補助情報発行装置30および証明装置20の一方向性計算部302および202の一方向性関数を、h(・,・)とする。この一方向性関数の像は、nのオイラー数φ(n)=(p−1)(q−1)と互いに素である。通常の暗号ハッシュ関数の像はφ(n)と互いに素であるとは限らないが、像がφ(n)と互いに素でない場合には、入力にマジックナンバーをパッドするように決め、互いに素となるまでマジックナンバーをパッドするように決めることで、所望の一方向性関数を構成できる。
【0043】
証明特徴情報は秘密鍵dで、証明装置20の秘密鍵保持部201に保持されている秘密情報をdとする。証明補助情報発行装置30の発行する証明補助情報tをt=dh(d,n)−1と定める。
【0044】
図2は、図1の実施例におけるデータの処理および流れを模式的に示している。各処理を行うブロックを図1の符号を用いて表す。
【0045】
図3は、図1の実施例の検証装置10に証明素データ保持部105、乱数生成部106および乱数効果除去部107を付加したものである。図3の例では、検証装置10から証明装置20に送られる試験情報に乱数効果を付し、その結果、証明装置20から検証装置10へ返される証明情報にも乱数効果が付加される。したがって、認証プロセスの都度、試験情報および証明情報が変わり、リプレイアタックに対処することができる。なお、図3において、図1と対応する箇所には対応する符号を付した。
【0046】
また、図4は、図1の実施例の証明装置20を分離して構成したものである。すなわち、証明装置20を証明装置20Aおよび20Bに分離し、それぞれを異なるリソースで実現できる。例えば、証明装置20Aをパーソナルコンピュータ上のアプリケーションとして実現し、証明装置20Bをパーソナルコンピュータと通信する耐タンパー装置としてのICカードとして実現する。このようにすれば、保護が必要な情報をICカードで保持管理したうえで、パーソナルコンピュータの計算リソースを有効利用できる。
【0047】
以下、本実施例の各部の動作および公開鍵発行処理について説明する。各部の動作説明に際して適宜、図2を参照されたい。
【0048】
まず、公開鍵の発行について説明する。発行された公開鍵は、検証装置10で検証時に用いられるとともに、証明補助情報発行装置30において証明補助情報生成に用いられる。ここでは、公開鍵の発行を証明情報発行装置30が行うものとする。もちろん、他の独立した機関が公開鍵を発行管理してもよい。
【0049】
図5は、公開鍵を発行するフローを示す。図5において、はじめに、法数n=pq(p,qは素数)を生成する(S11)。公開鍵eは法数のオイラー数φ(n)と互いに素となるように定め、秘密鍵dはed≡1 mod φ(n)となるように決める(S12、S13)。暗号化関数EはE(x)=x mod n、復号化関数DはD(y)=y mod nである。法数nと秘密鍵dを記憶し(S14)、法数nと公開鍵eを発行する(S15)。この実施例では、公開鍵の発行を証明情報発行装置30が行い、鍵管理部304が法数nおよび秘密鍵dを所定のデータベースに記憶する。また、検証装置10(それを含むプログラム)の提供者の要求に応じて法数nおよび公開鍵eを発行し、その提供者は検証装置10の公開鍵記憶部101にその法数nおよび公開鍵eを保持する態様で検証装置10を実装する。
【0050】
つぎに証明補助情報の発行処理について説明する。図6は、証明補助情報を発行するフローを示す。図6において、はじめに、証明装置20を識別するための情報を入力する(S21)。識別のための情報は、たとえばカードに印刷した番号でもよいし、所有者の社員番号や保険証番号などを用いてもよい。そして入力された識別情報に対応する、証明装置20に固有な情報dを検索する(S22)。つぎに利用したい対象に応じて(すなわち個々の検証装置10に応じて)公開鍵の法数nを入力する(S23)。法数nに対応する秘密鍵dを検索し、証明補助情報t=dh(d,n)を生成し、要求もとの証明装置20側へ発行する(S24〜S26)。
【0051】
つぎに検証装置10の動作について説明する。図7は、検証装置10のフローを示す。なお、ここでは、図3の検証装置10を用いて説明する。すなわち、試験情報に乱数効果を付している。図7において、はじめに0<r<nなる乱数rを生成し、公開鍵でべき乗して試験情報C≡r mod nを計算する(S31)。Cと鍵の法数nを証明装置20に送信する(S32)。証明装置20から受信した応答情報Rについて、R≡r mod nが成立しているかどうか判定する(S33、S34)。前記検証式が成立していれば利用資格があるものとし、そうでなければ利用資格がないと判定する(S35)。
【0052】
つぎに証明装置20の動作について説明する。まず、図8を参照して、計算を分離しない構成の証明装置20(図1)の動作を説明する。図8において、はじめに、試験情報Cおよび公開鍵の法数nを入力する(S41)。入力した公開鍵に対応する証明補助情報tを検索する(S42)。公開鍵法数nと証明装置20が保持する秘密情報dとに対して一方向性関数h(・,・)を適用して、h(d,n)を計算する(S43)。この値に、前記証明補助情報tを乗じ、th(d,n)を求める。試験情報Cをこの結果でべき乗し、応答情報R≡Cth(dU,n)を求め(S44)、この応答情報Rを検証装置10に送信する(S45)。
【0053】
つぎに計算を2つの過程に分離する構成の証明装置(図4)の動作を図9および図10を参照して説明する。図9および図10において、証明装置1(20A)では、まず、検証装置10から受信した試験情報を証明装置2(20B)に送信する(S51、S52)。つぎに証明装置2(20B)から応答情報1(R’)を受信する(S53)。受信した法数nに対応する証明補助情報tを検索し(S54)、これによって応答情報をべき乗した値R≡R’ mod nを応答情報として、検証装置10に送信する(S55、S56)。
【0054】
証明装置2(20B)では、まず試験情報Cと公開鍵法数nとを証明装置1(20A)から受信する(S61)。公開鍵法数nと証明装置2(20B)が保持する秘密情報dとに対して一方向性関数h(・,・)を適用して、h(d,n)を計算する(S62)。この値で試験情報をべき乗し、R’≡Ch(dU,n) mod nを応答情報1として証明装置1に送信する(S63、S64)。
【0055】
次に、ソフトウエアのアクセス制御に用いる場合について説明する。
【0056】
図11は、ソフトウェアのアクセス制御をネットワーク上で行う例を示している。なお、図11において図1と対応する箇所には対応する符号を付した。図11において、利用者計算機1000とチケット発行計算機2000とがネットワーク3000で接続されている。ネットワーク3000はWANでもLANでもよい。利用者計算機1000はハードウェア1001に所定のオペレーティングシステム1002がインストールされ、このオペレーティングシステム1002上でアプリケーションプログラム1003および証明プログラム20が動作する。アプリケーションプログラム1003には検証プログラム10が埋め込まれている。アプリケーションプログラム1003は記録媒体の形態で提供されてもよいし、オンラインで提供されていもよい。証明プログラム20の一部は利用者計算機1000に実装された耐タンパー装置上で実行されることが好ましい。
【0057】
チケット発行計算機2000もハードウェア2001およびオペレーティングシステム2002を有し、チケット発行サーバ30が動作するようになっている。
【0058】
ユーザは、アプリケーション1003を利用したい場合には、証明用補助情報(チケット)の発行をチケット発行サーバに要求する。この要求は、ユーザの識別番号とアプリケーションの識別番号とを伴う。チケット発行サーバ30は、ユーザの識別番号およびアプリケーションの識別番号に基づいてそれぞれユーザの秘密情報dおよび公開鍵の法数nおよび秘密鍵dを取り出す。そして証明補助情報t=dF(d,n)を計算して利用計算機1000の証明プログラム20に渡す。
【0059】
以降、証明プログラム20と検証プログラム10とが試験情報C,nおよび応答情報Rをやり取りして認証を行い、認証が成功したならばアプリケーションプログラムが利用可能になる。
【0060】
ソフトウェア(アプリケーション1003)の保護の手法としてはソフトウェアの少なくとも一部を暗号鍵で暗号しておくことが考えられる。ソフトウェアの暗号鍵をKとし、乱数をrとする。安全のためには、鍵Kそのものがソフトウェアに含まれないことが望ましい。鍵Kそのものはソフトウェアに含まれない場合、暗号化されたソフトウェアの一部を復号し、所定の条件を満たすかどうか検査すればよい。ここではソフトウェアにKをRSAで暗号化した鍵K’≡K mod nを用いることとする。
【0061】
はじめに、法数nと互いに素な乱数r(0<r<n)を生成する。RSAでは、E(xy)=E(x)E(y)となっていることと、K’=E(K)から、rK’≡ E(r)E(K)≡E(rK) mod nである。
【0062】
ここではC=rK’として、試験情報をC,nとする。この試験情報に基づいて応答情報R≡(Cf(n,dU)を計算する。証明装置10と証明補助情報の組み合わせが正しい場合に限り、この計算は暗号文Cの復号となって、R≡C≡D(C)≡D(E(rk))≡rK mod nとなる。すなわち、証明特徴情報であるdを復元したのと同じ計算を行うことになる。検証装置10は、法nの下でのrの乗法逆元r−1を応答情報Rに乗じてr−1R≡K mod nかどうかを確認することで、利用資格の検証を行う。利用資格があると判断された場合には、暗号化された部分を復号し、プログラムの実行が行われる。
【0063】
つぎに本実施例を改札装置の制御に用いる例を説明する。図12は本実施例が適用された改札システムを示しており、この図において、ICカード4000には証明装置20を実現するプログラムがインストールされている。チケット発行端末5000はICカードが着脱可能なものであり、チケット発行サーバ30と通信してICカード4000に証明補助情報(チケット)を書き込む。ユーザは入場するときにICカード4000を入場ゲート6000に提示し(例えばスロットに挿入して)、この間、入場ゲート6000の検証装置10とICカード4000の証明装置20とが相互に通信して認証を行う。認証が成功すればユーザは入場ゲート6000を通過することが可能になる。
【0064】
次に、ElGamal暗号を用いる場合について説明する。
【0065】
公開鍵の発行にあたって、離散対数問題が困難な素数pを選択し、巡回群Z の生成元の1つgを選択する。0<α<p−1なる乱数αを秘密鍵として定め、
【0066】
【数13】
Figure 0003617259
を公開鍵として発行する。
【0067】
暗号化は、以下のように行う。0<k<p−1なる乱数kを定め、u≡g mod pとする。y≡βx mod pを求め、(u,y)を平文xに対応する暗号文とする。
【0068】
復号化について説明する。
【0069】
【数14】
Figure 0003617259
したがって、秘密鍵αを有するものは、βを計算でき、その逆元β−kを求めることができる。よって、β−ky≡β−kβx≡x mod pとして復号を行える。
【0070】
また、一方向性関数をh(・,・)とする。この一方向性関数の像は、p−2と互いに素である。証明補助情報tは、t≡αh(dU,p)−1 mod p−1である。
【0071】
以下、認証について詳細に説明する。まず、証明装置での計算を分離しない場合について説明する。
【0072】
検証装置のフローは、以下のようになる。検証装置では2つの乱数M,kを生成する。u≡g mod pおよびC≡βM mod pを求め、これらを試験情報とする。u,C,pを送信する。証明装置から受信した応答情報Rについて、R≡M mod pが成立しているかどうか検査する。前記検証式が成立していれば利用資格があるものとし、そうでなければ利用資格がないと判定する。
【0073】
証明装置のフローは、以下のようになる。証明装置では、受信した法数pに対応する証明補助情報tを検索する。一方向性関数の計算を行い、これにtを乗じる。ここで得た値(th(d,p))で、受信したuをべき乗し、β’≡uth(dU,p)を求める。法p−1でのβ’の逆元β’−1を計算し、これを受信した試験情報Cに乗じて、応答情報R≡β’C mod pを計算し、検証装置に送信する。
【0074】
つぎに証明装置での計算を2個所に分離する構成について説明する。この構成においても、RSAを用いた場合と同様に、証明装置1でべき乗計算を行った結果を証明装置2でべき乗する。
【0075】
証明装置1では、まず、検証装置から受信した試験情報の1つであるuを証明装置2に送信する。証明装置2から応答情報1(R’)を受信する。受信した法数pに対応する証明補助情報tを検索し、これによって応答情報をべき乗した値β’≡R’ mod pを計算する。法p−1でのβ’の逆元β’−1を計算し、これを受信したCに乗じて、応答情報R≡β’C mod pを計算し、証明装置に送信する。
【0076】
証明装置2では、まず試験情報の1つであるuと公開鍵法数を受信する。公開鍵法数pと証明装置が保持する秘密情報d一方向性関数h(・,・)を適用して、h(d,n)を計算する。この値でuをべき乗し、R’≡Ch(dU,n) mod pを応答情報1として証明装置1に送信する。
【0077】
つぎに、乱数効果を与える場合について説明する。例えば、ソフトウェアのアクセス制御を行い、ソフトウェアの暗号に用いた鍵をElGamal暗号で暗号化する場合には、kを0<k≦p−2なる乱数として、(u,K’)をソフトウェアと組み合わせておく。ここで、u≡g mod p,K’≡βK mod
pである。
【0078】
いま、暗号文を計算するための乱数kを1つに固定すると、暗号文の一方は定数となり、暗号文のもう一方を得るための関数Eは、E(x)≡βx mod pとなる。cを定数とすると、E(cx)=cE(x)である。ここでは、C≡cK’ mod pとして、u,C,pを試験情報とする。応答情報Rに、法pの下でのCの逆元C−1を乗じC−1R≡K mod pが成立しているかどうかを確認することで利用資格の検証を行う。利用資格がある場合には、暗号化された部分を復号し、プログラムを実行する。
【0079】
以上で実施例の説明を終了する。なお、本発明は上述の実施例に限定されるものではなく種々変更が可能である。例えば、本実施例では、一方向性を有する関数として(暗号)ハッシュを用いたが、代わりに、逆関数を求めることが少なくとも計算量的に困難である任意の関数を用いてよい。たとえば、チケットによって秘密鍵を復元する慣用鍵(対称鍵)暗号系、チケットによって署名鍵を復元するデジタル署名を用いることができる。
【0080】
また、計算を複数の箇所で行わせる必要がない場合には、証明装置が保持する秘密情報そのものあるいは秘密情報から計算できる値を鍵として証明特徴情報を暗号化し、得られた暗号文をチケットとしてもよい。
【0081】
本実施例では、公開鍵暗号系としてRSAとElGamal暗号を用いた。前述のように、これらの暗号化関数には、それぞれE(xy)=E(x)E(y)(準同型性)およびE(cx)=cE(x)(線形性)という性質がある。前述の乱数効果の与え方は、RSAやElGamal暗号に特有のものではなく、暗号関数に準同型性や線形性といったある種の可換図式が成立する暗号系全般に適用可能である。
【0082】
【発明の効果】
本発明の利用資格検証装置は、公開鍵暗号系に基づく対話証明と、逆関数を計算することが少なくとも計算量的に不可能な一方向性関数とを用いたことにより、利用者が結託しても権利を詐称することのできない、安全な利用資格検証装置を実現できる。
【図面の簡単な説明】
【図1】本発明の利用資格検証装置の実施例を示すブロック図である。
【図2】上述実施例の動作を模式的に示す図である。
【図3】上述実施例の変形例(乱数効果)を示すブロック図である。
【図4】上述実施例の他の変形例(分離型証明装置)を示すブロック図である。
【図5】公開鍵発行動作を示すフローチャートである。
【図6】証明補助情報発行動作を示すフローチャートである。
【図7】検証装置の対話証明時の処理を示すフローチャートである。
【図8】証明装置の対話証明時の処理を示すフローチャートである。
【図9】分離型証明装置の動作を示すフローチャートである。
【図10】公開鍵発行動作を示すフローチャートである。
【図11】本発明の利用資格検証装置を用いた、ソフトウェアのアクセス制御装置を示す図である。
【図12】本発明の利用資格検証装置を用いた改札装置を示す図である。
【符号の説明】
10 検証装置
20 証明装置
30 証明補助情報発行装置
101 公開鍵記憶部
102 試験情報計算部
103 応答検証部
104 通信部
105 証明素データ保持部
106 乱数生成部
107 乱数効果除去部
201 秘密情報保持部
202 一方向性関数計算部
203 応答情報計算部
204 証明補助情報管理部
205 通信部
301 秘密情報管理部
302 一方向性関数計算部
303 証明補助情報計算部
304 鍵管理部
305 通信部

Claims (8)

  1. 証明装置と検証装置との間で公開鍵暗号系に基づく対話証明によって利用資格を検証し、かつ、前記公開鍵暗号の秘密鍵を証明特徴情報として用い、前記証明特徴情報を用いてのみ求めることが可能な応答情報を、試験情報に対して所定の計算を施すことで生成して前記利用資格を有することの証明を行う利用資格検証装置において、
    前記証明装置と前記検証装置とは別の第3装置が、
    前記公開鍵暗号系の鍵を管理する鍵管理手段と、
    対話証明に用いる秘密情報を管理する第1の秘密情報管理手段と、
    前記第1の秘密情報管理手段で管理する秘密情報および前記鍵管理手段が管理する鍵の情報の少なくとも一方に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する、第1の一方向性関数計算手段と、
    前記鍵管理手段が管理する鍵と、前記第1の一方向性関数計算手段の計算結果をもとに証明補助情報を計算する証明補助情報計算手段とを有し、
    前記検証装置が、
    前記公開鍵暗号系の公開鍵を記憶する公開鍵記憶手段と、
    対話証明の試験情報を生成し、生成した試験情報を記憶する試験情報生成手段と、
    対話証明の過程で前記証明装置との間で情報を送受信する第の通信手段とを有し、
    前記証明装置が、
    対話証明に用いる秘密情報を保持する第2の秘密情報保持手段と、
    前記第2の秘密情報保持手段に保持されている秘密情報と前記公開鍵暗号系の鍵の情報の少なくとも一方に対し、第1の一方向性関数計算手段の一方向性関数と同一の計算を施す、第2の一方向性関数計算手段と、
    対話証明に用いる、前記第3装置で生成された前記証明補助情報を保持管理する証明補助情報管理手段と、
    前記試験情報と、前記証明補助情報管理手段で管理されている証明補助情報と、前記第2の一方向性関数計算手段で計算した値から、証明特徴情報を用いてのみ計算可能な応答情報を計算する応答情報計算手段と、
    対話証明の過程で前記検証装置との間で情報を送受信する第の通信手段とを有し、
    前記証明特徴情報が前記公開鍵暗号系の復号鍵であり、
    前記証明補助情報が、前記復号鍵に対して、前記秘密情報に前記一方向性関数を作用させて得られた値の乗法逆元を乗じて生成されていることを特徴とする利用資格検証装置。
  2. 証明装置と検証装置との間で公開鍵暗号系に基づく対話証明によって利用資格を検証し、かつ、前記公開鍵暗号の秘密鍵を証明特徴情報として用い、前記証明特徴情報を用いてのみ求めることが可能な応答情報を、試験情報に対して所定の計算を施すことで生成して前記利用資格を有することの証明を行う利用資格検証装置において、
    前記証明装置と前記検証装置とは別の第3装置が、
    前記公開鍵暗号系の鍵を管理する鍵管理手段と、
    対話証明に用いる秘密情報を管理する第1の秘密情報管理手段と、
    前記第1の秘密情報管理手段で管理する秘密情報および前記鍵管理手段が管理する鍵の情報の少なくとも一方に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する、第1の一方向性関数計算手段と、
    前記鍵管理手段が管理する鍵と、前記一方向性関数計算手段の計算結果をもとに証明補助情報を計算する証明補助情報計算手段とを有し、
    前記検証装置が、
    前記公開鍵暗号系の公開鍵を記憶する公開鍵記憶手段と、
    対話証明の試験情報を生成し、生成した試験情報を記憶する試験情報生成手段と、
    対話証明の過程で前記証明装置との間で情報を送受信する第の通信手段とを有し、
    前記証明装置が第1証明装置部分と第2証明装置部分とからなり、
    前記第1証明装置部分が、
    対話証明に用いる、前記第3装置により生成された前記証明補助情報を保持管理する証明補助情報管理手段と、
    前記証明補助情報管理手段で管理されている証明補助情報を用いた計算を行う第1の応答情報計算手段と、
    対話証明の過程で前記第2証明装置部分との間で情報を送受信する第の通信手段とを有し、
    前記第2証明装置部分が、
    対話証明に用いる秘密情報を保持する第2の秘密情報保持手段と、
    前記第2の秘密情報保持手段に保持されている秘密情報と前記公開鍵暗号系の鍵の情報の少なくとも一方に対し、前記第1の一方向性関数計算手段の一方向性関数と同一の計算を施す、第2の一方向性関数計算手段と、
    前記第2の一方向性関数計算手段で求めた値を用いて、計算を行う第2の応答情報計算手段と、
    対話証明の過程で、前記検証装置および前記第1証明装置部分との間で情報を送受信する第の通信手段とを有し、
    前記証明特徴情報が前記公開鍵暗号系の復号鍵であり、
    前記証明補助情報が、前記復号鍵に対して、前記秘密情報に前記一方向性関数を作用させて得られた値の乗法逆元を乗じて生成されていることを特徴とする利用資格検証装置。
  3. 暗号化によって情報に対するアクセス制御を実現し、
    前記試験情報が、前記アクセス制御対象の情報を暗号化した鍵を前記公開鍵暗号系の公開鍵で暗号化したものであり、
    前記応答情報が前記試験情報を復号したものであることを特徴とする請求項1または2記載の利用資格検証装置。
  4. 前記試験情報が、アクセス制御対象の情報を暗号化した鍵を公開鍵暗号系を用いて暗号化し、かつ乱数効果を付与したものであり、前記乱数効果の与え方が、前記公開鍵暗号系の暗号化関数が構成された算法による演算によっていることを特徴とする請求項1、2または3記載の利用資格検証装置。
  5. 所定の算法上に構成された暗号関数を持つ公開鍵暗号系に基づく対話証明によって証明装置と検証装置との間で利用資格を検証し、かつ、前記公開鍵暗号の秘密鍵を証明特徴情報として用い、前記証明特徴情報を用いてのみ求めることが可能な応答情報を、試験情報に対して所定の計算を施すことで生成して前記利用資格を有することの証明を行う利用資格検証装置において、
    前記証明装置と前記検証装置とは別の第3装置が、
    前記公開鍵暗号系の鍵を管理する鍵管理手段と、
    対話証明に用いる秘密情報を管理する第1の秘密情報管理手段と、
    前記第1の秘密情報管理手段で管理する秘密情報および前記鍵管理手段が管理する鍵の情報の少なくとも一方に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する、第1の一方向性関数計算手段と、
    前記鍵管理手段が管理する鍵と、前記一方向性関数計算手段の計算結果をもとに証明補助情報を計算する証明補助情報計算手段とを有し、
    前記検証装置が、
    前記公開鍵暗号系の公開鍵を記憶する公開鍵記憶手段と、
    対話証明の試験情報を生成し、生成した試験情報を記憶する試験情報生成手段と、
    対話証明の過程で前記証明装置との間で情報を送受信する第の通信手段とを有し、
    前記証明装置が第1証明装置部分と第2証明装置部分とからなり、
    前記第1証明装置部分が、
    対話証明に用いる、前記第3装置で生成された前記証明補助情報を保持管理する証明補助情報管理手段と、
    前記証明補助情報管理手段で管理されている証明補助情報を用いた計算を行う第1の応答情報計算手段と、
    対話証明の過程で前記第2証明装置部分との間で情報を送受信する第の通信手段と 有し、
    前記第2証明装置部分が、
    対話証明に用いる秘密情報を保持する第2の秘密情報保持手段と、
    前記第2の秘密情報保持手段に保持されている秘密情報と前記公開鍵暗号系の鍵の情報の少なくとも一方に対し、第1の一方向性関数計算手段の一方向性関数と同一の計算を施す、第2の一方向性関数計算手段と、
    前記第2の一方向性関数計算手段で求めた値を用いて、計算を行う第2の応答情報計算手段と、
    対話証明の過程で、前記検証装置および前記第1証明装置部分との間で情報を送受信する第の通信手段とを有し、
    前記証明特徴情報が前記公開鍵暗号系の復号鍵であり、
    前記証明補助情報が、前記復号鍵と、前記秘密情報に前記一方向性関数を作用させて得られた値に対し、前記暗号化関数が構成された算法による演算を施して生成されていることを特徴とする利用資格検証装置。
  6. 暗号化によって情報に対するアクセス制御を実現し、
    前記試験情報がアクセス制御対象の情報を暗号化した鍵を前記公開鍵暗号系の公開鍵で暗号化したものであり、
    前記応答情報が試験情報を復号したものであることを特徴とする請求項5記載の利用資格検証装置。
  7. 前記試験情報が、アクセス制御対象の情報を暗号化した鍵を公開鍵暗号系を用いて暗号化し、かつ乱数効果を付与したものであり、
    前記乱数効果の与え方が、前記公開鍵暗号系の暗号化関数が構成された算法によっていることを特徴とする請求項5または6記載の利用資格検証装置。
  8. 公開鍵暗号系に基づく対話証明によって利用資格を検証し、かつ、前記公開鍵暗号の秘密鍵を証明特徴情報として用い、前記証明特徴情報を用いてのみ求めることが可能な応答情報を、試験情報に対して所定の計算を施すことで生成して前記利用資格を有することの証明を行う利用資格検証装置において、
    前記公開鍵暗号系の公開鍵を記憶する公開鍵記憶手段と、
    対話証明の試験情報を生成し、生成した試験情報を記憶する試験情報生成手段と、
    対話証明に用いる秘密情報を保持する秘密情報保持手段と、
    前記秘密情報および前記公開鍵の情報の少なくとも一方に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用して得た計算結果と前記公開鍵とから生成された証明用補助情報を管理する証明用補助情報管理手段と、
    前記秘密情報保持手段に保持されている秘密情報と前記公開鍵暗号系の鍵の情報の少なくとも一方に対し、前記一方向性関数を適用する一方向性関数計算手段と、
    前記試験情報と、前記証明補助情報管理手段で管理されている証明補助情報と、前記一方向性関数計算手段で計算した値から、証明特徴情報を用いてのみ計算可能な応答情報を計算する応答情報計算手段とを有し、
    前記証明特徴情報が前記公開鍵暗号系の復号鍵であり、
    前記証明補助情報が、前記復号鍵に対して、前記秘密情報に前記一方向性関数を作用させて得られた値の乗法逆元を乗じて生成されていることを特徴とする利用資格検証装置。
JP18827497A 1997-07-14 1997-07-14 利用資格検証装置 Expired - Fee Related JP3617259B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18827497A JP3617259B2 (ja) 1997-07-14 1997-07-14 利用資格検証装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18827497A JP3617259B2 (ja) 1997-07-14 1997-07-14 利用資格検証装置

Publications (2)

Publication Number Publication Date
JPH1132036A JPH1132036A (ja) 1999-02-02
JP3617259B2 true JP3617259B2 (ja) 2005-02-02

Family

ID=16220804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18827497A Expired - Fee Related JP3617259B2 (ja) 1997-07-14 1997-07-14 利用資格検証装置

Country Status (1)

Country Link
JP (1) JP3617259B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5531521B2 (ja) * 2009-09-11 2014-06-25 富士ゼロックス株式会社 文書管理システム、文書操作装置及びプログラム

Also Published As

Publication number Publication date
JPH1132036A (ja) 1999-02-02

Similar Documents

Publication Publication Date Title
JP4463979B2 (ja) 暗号方式でカムフラージュされた暗号方式キーをストアし証明し使用する装置および方法
EP1253744B1 (en) Method for generation and management of a secret key in a public key cryptosystem
US5696827A (en) Secure cryptographic methods for electronic transfer of information
US7469048B2 (en) Methods for point compression for jacobians of hyperelliptic curves
CN110545279A (zh) 兼具隐私和监管功能的区块链交易方法、装置及***
US20040165728A1 (en) Limiting service provision to group members
US20160269397A1 (en) Reissue of cryptographic credentials
JP2006094241A (ja) 暗号化装置、暗号化処理方法及びプログラム、並びに該暗号化装置を用いた情報保護システム
Win et al. Privacy enabled digital rights management without trusted third party assumption
US20040153652A1 (en) Method, apparatus, system, and program for creating ring signature
US7388957B2 (en) Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JP3815022B2 (ja) 利用資格検証装置および方法、ならびに、利用資格検証システム
JPH10240128A (ja) 暗号装置、暗号鍵生成方法及び暗号鍵管理方法、並びに素数生成装置及び素数生成方法
US20030023862A1 (en) Content distribution system
US20050102523A1 (en) Smartcard with cryptographic functionality and method and system for using such cards
JP3513324B2 (ja) ディジタル署名処理方法
JP3791169B2 (ja) 認証装置および方法
JP3617259B2 (ja) 利用資格検証装置
JPH096236A (ja) 公開鍵暗号の鍵生成・証明書発行方法及びそのシステム
JPH11234263A (ja) 相互認証方法および装置
Fan et al. Anonymous fair transaction protocols based on electronic cash
JP4634046B2 (ja) 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
JP4270589B2 (ja) 電子度数による支払方法および装置
JPH1013402A (ja) 公開鍵暗号の秘密鍵管理方法および装置
JP2004222332A (ja) ユーザが電子商取引/情報サービス提供者の正当性をチェックできるようにする方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041101

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111119

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111119

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121119

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121119

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees