JP3700333B2 - 証明情報生成装置 - Google Patents
証明情報生成装置 Download PDFInfo
- Publication number
- JP3700333B2 JP3700333B2 JP18128997A JP18128997A JP3700333B2 JP 3700333 B2 JP3700333 B2 JP 3700333B2 JP 18128997 A JP18128997 A JP 18128997A JP 18128997 A JP18128997 A JP 18128997A JP 3700333 B2 JP3700333 B2 JP 3700333B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- authentication
- secret
- input
- storage means
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、外部から与えられた情報に対し、装置内部に保持された秘密情報を用いた演算を行い、その演算結果によって、特定の秘密情報を保持していることを証明する証明情報生成装置に関する。
【0002】
【従来技術】
コンピュータや電子機器の発達により、多くのサービスや情報が電子的に提供されるようになってきた。電子的な情報やサービスを提供するコンピュータプログラムは複製が容易であるため、不正利用や不正複製が問題になってきている。
そのため、サービスや情報の正当な利用者であることを証明するための手段が必要とされてきている。正当なユーザであることを証明するためには、検証者から与えられた情報に対するユーザの秘密鍵による電子署名や暗号が用いられる。電子署名を行うためのものとして、特開平7−287514号公報のようなものがある。これは、装置内部に秘密指数および公開法数を封入し、それらを用いてRSA(Rivest−Shamir−Adelman)タイプの暗復号、および、電子署名を行うものである。
【0003】
【発明が解決しようとする課題】
しかしながら、従来の署名や暗号を持ちいた装置では、秘密指数および公開法数は共に装置内に装置作成時に封入されており、ユーザの手元に届けられた後、これらを変更することはできない。このため、検証者に応じて証明情報を変えるなど、多様な証明情報を生成することができないという問題があった。
【0004】
本発明は、証明情報生成装置をユーザが手元に届けられた後にも、検証者に応じて証明情報を変えることができる柔軟な証明情報生成装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
本発明によれば、上述の目的を達成するために、証明情報生成装置に、証明情報生成装置の各々に固有の秘密情報を保持する秘密情報保持手段と、外部から認証情報および認証補助情報を入力する入力手段と、上記秘密情報保持手段に保持された上記秘密情報と上記入力手段から入力された上記認証情報および上記認証補助情報情報とに対し所定の演算を実行する演算手段と、演算手段によって演算された演算結果を証明情報として出力する出力手段とを設けるようにしている。
【0006】
この構成においては、証明情報の生成に必要な認証情報、秘密情報および認証用補助情報のうち秘密情報を証明情報生成装置に保持させ、認証用補助情報は認証情報とともに証明時に入力されるようにしている。したがって、単一の秘密情報すなわち単一の証明情報生成装置を用いても、認証補助情報を変更することにより検証者に応じた多様な証明情報を生成することができる。
【0007】
また、この構成において、さらに上記認証補助情報に付加された電子署名を検証するための署名検証情報を保持する署名検証情報保持手段と、入力された上記認証補助情報と、上記認証補助情報に付加された上記電子署名と、上記署名検証情報保持手段に保持された上記署名検証情報とから署名の真偽を判定する署名検証手段とを設け、上記演算手段は上記認証補助情報に付加された上記電子署名が真の場合のみ演算を行うようにしてもよい。これにより、認証補助情報を操作することによる不正が防止できる。
【0008】
また、この構成において、さらに、正しい認証補助情報を記憶する認証補助情報保持手段と、上記入力手段から入力された上記認証補助情報が上記認証補助情報保持手段に登録されているかどうかを判定する認証補助情報判定手段とを設け、上記演算手段は上記認証補助情報判定手段が上記認証補助情報の登録を判定した場合のみ演算を行うようにしてもよい。この場合も、認証補助情報を操作することによる不正が防止できる。
【0009】
また、上記演算手段において行われる演算に、上記入力手段より入力された上記認証補助情報を入力とする一方向性関数の演算結果を用いるようにしてもよい。この場合も、認証補助情報を操作することによる不正が防止できる。
【0010】
また、上記演算手段において行われる演算に、上記入力手段より入力された上記認証補助情報と上記秘密情報保持手段に記憶された上記秘密情報とを入力とする一方向性関数の演算結果を用いるようにしてもよい。この場合も、認証補助情報を操作することによる不正が防止できる。
【0011】
また、演算の履歴を記録する履歴記憶手段を設けるようにしてもよい。この場合、上記履歴記憶手段に記憶される履歴には少なくとも上記入力手段から入力された上記認証補助情報が含まれるようにしてもよい。また、上記履歴記憶手段に記憶される履歴には少なくとも上記入力手段から入力された上記認証補助情報の識別子が含まれるようにしてもよい。このようにすることにより、監査、認証回数による利用量課金等を行うことができる。
【0012】
また、上記演算手段は公開鍵暗号を用いた演算とし、上記認証補助情報を上記公開鍵暗号の法数とすることができる。
【0013】
また、本発明によれば、証明情報生成装置の各々に固有の秘密情報を保持する秘密情報保持手段と、外部から認証情報および認証補助情報を入力する入力手段と、上記秘密情報保持手段に保持された秘密情報を指数とし、上記入力手段から入力された上記認証補助情報を法数として、上記入力手段から入力された上記認証情報に対して、べき乗剰余演算を実行する演算手段と、上記演算手段によって演算された演算結果を証明情報として出力する出力手段とを具備する証明情報生成装置とともに用いられ、上記秘密情報を回復する秘密情報回復装置に、上記認証情報を記憶する認証情報記憶手段と、互いに素である数列を記憶する数列記憶手段と、上記数列記憶手段から順次に読み出した数と、上記認証情報記憶手段から読み出した上記認証情報とから回復用の認証補助情報を生成する認証補助情報生成手段と、上記認証補助情報生成手段により生成した上記回復用の認証補助情報を上記入力手段へ入力する認証補助情報入力手段と、上記回復用の認証補助情報および上記認証情報に基づいて上記出力手段から出力される回復用の証明情報を記憶する証明情報記憶手段と、上記認証情報記憶手段に記憶された上記認証情報と上記数列記憶手段に記憶された上記数列と上記証明情報記憶手段に記憶された上記回復用の証明情報とに対して所定の演算を行い、秘密情報を再構成する秘密情報回復手段とを設けるようにしている。
【0014】
この構成においては、証明情報生成装置を変更すること無く、秘密情報を回復することができる。
【0015】
【発明の実施の態様】
以下、本発明の実施例を用いて本発明を詳細に説明する。
【0016】
[実施例1]
図1は、本発明による証明情報生成装置の実施例1の構成を示したものである。図1において、この実施例の証明情報生成装置は、秘密情報保持手段1、入力手段2、演算手段3および出力手段4を含んで構成されている。秘密情報保持手段1は、証明情報生成装置本体に固有の秘密情報を保持するものである。入力手段2は、外部から情報を取得するものである。演算手段3は、秘密情報保持手段1に保持された秘密情報と入力手段2から入力された情報とに基づいて所定の演算を実行するものである。出力手段4は、演算手段3によって演算された演算結果を証明情報として出力するものである。
【0017】
なお、秘密情報保持手段1および演算手段3は安全性を向上させるため、ICカード等の耐タンパー性を備える容器に封入され、この結果、読み出し、書き換え等が不正に行えないよう保護されている。
【0018】
ここで、入力手段2および出力手段4は、どのようなものでもよく、例えば、入力手段2としてキーボード、シリアル通信、パラレル通信、赤外線など無線通信、イーサネット等のLAN(ローカルエリアネットワーク)、磁気ディスクやメモリカードといった記憶メディアなどが考えられ、出力手段4として、CRT(陰極線管)ディスプレイ、シリアル通信、パラレル通信、赤外線など無線通信、イーサネット等のLAN、磁気ディスクやメモリカードといった記憶メディアなどが考えられる。
【0019】
図2は、本実施例の証明情報生成装置に入力される情報の構成を示したものである。入力手段2から入力される情報は、認証情報Cと認証補助情報nとから構成されている。入力手段2から認証情報Cと認証補助情報nを入力する方法、データ構造は、演算手段3に渡す前に認証情報Cと認証補助情報nを区別できるようになっていれば、どのようなものであっても良い。例えば、認証情報Cと認証補助情報nを別々のデータとして入力してもよい。また、認証情報Cと認証補助情報nの少なくとも一方を固定長としてもよい。また、認証情報Cと認証補助情報nを区切り記号で区切った1つのデータとして入力してもよい(図2(a))。また、先頭に認証情報Cの長さを格納し、認証情報Cと認証補助情報nを1つのデータとして入力してもよい(図2(b))。また、一定の長さ毎に交互に混ざったデータとして入力してもよい(図2(c))。
【0020】
本実施例における処理の流れを図3に示す。図3において、まず、入力手段2から入力された認証情報Cと認証補助情報nとは、演算手段3へ渡される(ステップ3−1、ステップ3−2)。演算手段3は、秘密情報保持手段1から秘密情報dを読み出し(ステップ3−3)、認証情報Cと認証補助情報nと秘密情報dを使い所定の演算を行う(ステップ3−4)。そして、演算手段3により計算された証明情報Rは、出力手段4より出力される(ステップ3−5)。
【0021】
演算手段3で行う演算は認証情報C、認証補助情報nおよび秘密情報dを用いて、それぞれの情報に応じて値が変化し、偽造不可能で、検証者が証明情報Rが正しいことが検証できるものであればどのようなものでもよい。
【0022】
例えば、演算手段3で行う演算として、RSA署名を使うのであれば、法数を認証補助情報nとして入力し、秘密情報dを指数として、認証情報Cに対し、Cd mod nという、べき乗剰余演算を行えば良い。なお、この時、認証補助情報nと証明情報Rを検証するための検証情報eは、次の関係を満たすように生成される。
【0023】
【数1】
n=pq
1≦d≦(p−1)(q−1)
1≦e≦(p−1)(q−1)
de≡1 mod (p−1)(q−1)
ただし、p、qは異なる素数である。
【0024】
検証者(検証計算を実行する検証装置)は、Re mod nと認証情報Cとが等しいかどうかを確認すればよい。
【0025】
あるいは、演算手段3で行う演算として、ElGamal暗号を用いる場合、法数を認証補助情報nとして入力し、認証情報としてつぎのC、C‘を入力し、
【0026】
【数2】
演算手段3では、C’/Cd mod nなる演算を行い、証明情報Rとして出力する。ここで、認証補助情報nは素数、αは乱数、gは乗法群の原始根、mは適当な数、yはy=gd mod nである公開鍵である。検証は、証明情報Rと、C’の生成に使ったmとが等しいかどうかを確認すれば良い。
【0027】
また、法数を認証補助情報nとして入力し、認証情報としてつぎのCを入力し、
【0028】
【数3】
Cd mod nという、べき乗剰余演算を行い、証明情報Rとして出力してもよい。この場合、検証は
【0029】
【数4】
が1になるかどうかを確認すれば良い。
【0030】
[実施例2]
図4は、本発明の実施例2を全体として示している。この実施例2は、認証補助情報に電子署名を付与して正規の認証補助情報のみ受け付けるようにしたものである。図4において、この実施例の証明情報生成装置は、秘密情報保持手段1、入力手段2、演算手段3、出力手段4、署名検証情報保持手段5および署名検証手段6を含んで構成されている。秘密情報保持手段1、入力手段2、演算手段3および出力手段4は先の実施例1と同様である。署名検証情報保持手段5は、認証補助情報nに付加された電子署名を検証するための署名検証情報を保持するものである。署名検証手段6は、入力された認証補助情報nと、認証補助情報nに付加された電子署名と、署名検証情報保持手段5に保持された署名検証情報とから認証補助情報nに付加された電子署名の真偽を判定するものである。
【0031】
なお、秘密情報保持手段1と演算手段3署名検証情報保持手段5と署名検証手段6は安全性を向上させるため、ICカード等の耐タンパー性を備える容器に封入され、この結果、読み出し、書き換え等が不正に行えないよう保護されている。
【0032】
図5は、本実施例において入力手段2から入力される入力データの構造を示している。入力手段2から入力された入力データは、認証情報Cと認証補助情報nと認証補助情報nに付加された電子署名sとから構成されている。これらの入力データの入力方法や入力データ構造は、演算手段3に渡す前に認証情報Cと認証補助情報nとを区別でき、さらに署名検証手段6へ渡す前に認証補助情報nと電子署名sとを区別できれば、どのようなるものであっても良い。例えば、認証情報Cと認証補助情報nと電子署名sとを別々のデータとして入力してもよい。また、認証情報Cと認証補助情報nと電子署名sとを区切り記号で区切った1つのデータとして入力してもよい(図5(a))。また、先頭に認証情報Cの長さを、認証情報Cの次に電子署名sの長さをそれぞれ格納し、認証情報Cと認証補助情報nと電子署名sとを1つのデータとして入力してもよい(図5(b))。
【0033】
認証補助情報nに付加する電子署名の方法は既存の各種電子署名でよく、例えば、RSA署名を用いた場合、署名検証情報保持手段5に記憶される署名検証情報は、法数n’と検証鍵e’であり、認証補助情報生成者の署名鍵d’および法数n’とから作られた電子署名sが認証補助情報nに付加されている。
【0034】
この時の処理の流れを図6に示す。図6において、まず、入力手段2から入力された認証補助情報nと認証補助情報nに付加された電子署名sとを署名検証手段6に渡す(ステップ6−1、ステップ6−2)。署名検証手段6は、署名検証情報保持手段5から署名検証情報n’とe’とを読み出し(ステップ6−3)、se' mod n’を計算する(ステップ6−4)。そして前ステップでの計算結果と認証補助情報nとを比較し(ステップ6−5)、一致しなければエラーを出力手段4に出力し(ステップ6−6)、終了する。
【0035】
ステップ6−5において両者が一致していれば、入力手段2から認証情報Cを取得し(ステップ6−7)、ステップ6−1で取得した認証補助情報nとともに演算手段3へ渡す。演算手段3は、秘密情報保持手段1から秘密情報dを読み出し(ステップ6−8)、認証情報Cと認証補助情報nと秘密情報dとを使い所定の演算を行う(ステップ6−9)。そして演算手段3により計算された証明情報Rを出力手段4より出力する(ステップ6−10)。
【0036】
本実施例では、認証補助情報nとステップ6−5で計算したse' mod n’の計算結果を比較していたが、署名が認証補助情報nをハッシュ関数に適応した計算結果の場合、認証補助情報nをハッシュ関数にかけ、その結果とse' mod n’の計算結果を比較するようにしても良い。
【0037】
また、本実施例での署名はRSA署名としたが、ElGamal署名など他の署名アルゴリズムを用いてもよい。
【0038】
[実施例3]
図7は、本発明の実施例3を全体として示している。この実施例3においては、予め複数の認証補助情報を証明情報生成装置に登録しておき、登録されている認証補助情報のみ受け付けるようにしたものである。図7において、この実施例の証明情報生成装置は、秘密情報保持手段1、入力手段2、演算手段3、出力手段4、認証補助情報保持手段7および認証補助情報判定手段8を含んで構成されている。秘密情報保持手段1、入力手段2、演算手段3および出力手段4は先の実施例1と同様である。認証補助情報保持手段7は、正しい認証補助情報を記憶するものである。認証補助情報判定手段8は、入力手段2から入力された認証補助情報nが認証補助情報保持手段7に登録されているかどうかを判定するものである。
【0039】
なお、秘密情報保持手段1と演算手段3認証補助情報保持手段7と認証補助情報判定手段8とは安全性を向上させるため、ICカード等の耐タンパー性を備える容器に封入され、この結果、読み出し、書き換え等が不正に行えないように保護されている。
【0040】
本実施例における処理の流れは図8に示したようになる。図8において、まず、入力手段2から入力された認証補助情報nを認証補助情報判定手段8へ送る(ステップ8−1)。認証補助情報判定手段8は、認証補助情報保持手段7から正しい認証補助情報n’を読み出し(ステップ8−2)、入力された認証補助情報nと認証補助情報保持手段7から読み出した正しい認証補助情報n’と比較する(ステップ8−3)。一致しなければ、認証補助情報保持手段7に比較していない認証補助情報が残っているか確認し(ステップ8−4)、残っていればステップ8−2に戻り、認証補助情報保持手段7から次の認証補助情報を読み出す。認証補助情報保持手段7内に比較する認証補助情報が残っていなければ、認証補助情報保持手段7内に入力された認証補助情報nと同じものが無いのでエラーを出力手段4に出力し(ステップ8−5)、終了する。
【0041】
ステップ8−3において、入力された認証補助情報nと認証補助情報保持手段7から読み出した正しい認証補助情報n’とが一致していると判断された場合には、入力手段2から認証情報Cを取得し(ステップ8−6)、ステップ8−1で取得した認証補助情報nとともに演算手段3へ渡す。演算手段3は、秘密情報保持手段1から秘密情報dを読み出し(ステップ8−7)、認証情報Cと認証補助情報nと秘密情報dとを使い所定の演算を行う(ステップ8−8)。そして演算手段3により計算された証明情報Rを出力手段4より出力する(ステップ8−9)。
【0042】
認証補助情報保持手段7に保持される正しい認証補助情報は、証明情報生成装置をユーザに発行する際に、秘密情報とともに、登録しておいても良いし、証明情報生成装置をユーザに発行した後に、安全に登録できるようにしてもよい。例えば、正しい認証補助情報に信用できる発行者の電子署名を付加しておき、その検証を行い、正しいことを確認した後、認証補助情報保持手段7に保持するようにすればよい。
【0043】
ここで、上記実施例では、認証補助情報保持手段7に正しい認証補助情報そのものを登録していたが、認証補助情報保持手段7には、正しい認証補助情報のハッシュ値のみを登録しておき、入力された認証補助情報nのハッシュ値と比較するようにしてもよい。あるいは、認証補助情報に識別子を付与し、認証補助情報保持手段7には、正しい認証補助情報の識別子を登録しておき、入力された認証補助情報nの識別子と比較しても良い。
【0044】
[実施例4]
つぎに本発明の実施例4について説明する。本実施例は、実施例1(図1)の構成において、演算手段3で行われる演算が、認証補助情報nと秘密情報保持手段1に保持された秘密情報dを入力とする一方向性関数の演算結果を指数とした、べき乗剰余演算を含んでだものである。
【0045】
図9は、一方向性関数としてxn|d mod yを用いた場合の本実施例での処理の流れを示したものである。ここで、x,yは検証者と共有している適当な定数とする。
【0046】
図9において、入力手段2から入力された認証情報Cと認証補助情報nは、演算手段3へ渡される(ステップ9−1、ステップ9−2)。演算手段3は、秘密情報保持手段1から秘密情報dを読み出す(ステップ9−3)。
演算手段3は、定数x,yを用いて、xn|d mod yを計算し、zとする(ステップ9−4)。ここで、n|dは認証補助情報nと秘密情報dのビット連結を表す。演算手段3は、秘密情報dとステップ9−4で計算したzとを用いて、Cz mod nを計算する(ステップ9−5)。そして出力手段4へ演算結果を証明情報Rとして出力する(ステップ9−6)。
【0047】
検証者は、RSA署名を用いるのであれば、(n|d)・e≡1 mod φ(n)(ただし、φ(n)=(p−1)(q−1)、n=pq、pとqは異なる素数)を満たすeを使って、Re mod nがCと等しいかを検証することで証明情報の正しさを検証できる。
【0048】
なお、ここではステップ9−4で用いる一方向性関数をxn|d mod yとしたが、SHAやMD5等公開されているハッシュアルゴリズムを用いてもよい。
【0049】
また、一方向性関数としてxn|d mod yを用いる場合でも、ステップ9−4および検証鍵eの生成に必要なビット連結の順序は逆でも良いし、指数部に他の演算を用いても良い。
【0050】
また、ステップ9−4で用いる一方向性関数を、正当な検証鍵発行者と本発明による証明情報生成装置のみがアクセス可能な秘密の一方向性関数であるなら、認証補助情報nのみを一方向性関数の入力としてもよい。例えば、ステップ9−4での演算をxn mod y、ステップ9−5での演算をCd+z mod nとして図9と同様に処理を行う。
【0051】
この場合、検証者は、RSA署名を用いるのであれば、R’=C-z mod n、R’’=R・R’ mod n、R’’’=R’’e mod nを計算し、R’’’とCとが等しいことを確かめればよい。ここで、eはed mod φ(n)=1(ただし、φ(n)=(p−1)(q−1)、n=pq、pとqは異なる素数)となる検証鍵である。
【0052】
[実施例5]
図10は、本発明の実施例5を全体として示している。この実施例においては、秘密情報を回復することができるようになっている。図10において、この実施例の証明情報生成装置は、秘密情報保持手段1、入力手段2、演算手段3、出力手段4、認証情報記憶手段9、数列記憶手段10、認証補助情報記憶手段11、証明情報記憶手段12、秘密情報回復手段13および秘密情報出力手段14を含んで構成されている。秘密情報保持手段1、入力手段2、演算手段3および出力手段4は先の実施例1と同様である。すなわち、秘密情報保持手段1は、各証明情報生成装置固有の秘密情報dを保持している。入力手段2は、外部から認証情報Cと認証補助情報niとを与える。演算手段3は、秘密情報保持手段1に保持された秘密情報dと入力手段2から入力された認証情報Cと認証補助情報niとから所定のべき乗剰余演算を施す。出力手段4は、演算手段3によって演算された証明情報Riを出力する。
【0053】
また、認証情報記憶手段9は、認証情報Cを記憶するものである。数列記憶手段10は、互いに素である数列を記憶するものである。認証補助情報生成手段11は、数列記憶手段10から数値piを順次読み出し、この数値piと認証情報記憶手段9から読み出した認証情報Cとから認証補助情報niを生成し、入力手段2に入力するものである。証明情報記憶手段12は、出力手段4から出力された証明情報Riを記憶するものである。秘密情報回復手段13は、認証情報記憶手段9に記憶された認証情報Cと、数列記憶手段10に記憶された数列と、証明情報記憶手段12に記憶された証明情報Riとを使い、所定の演算を行うものである。秘密情報出力手段14は、秘密情報回復手段13によって計算された秘密情報を出力するものである。
【0054】
ここで、piは数列記憶手段10に記憶されているi番目の数値、ni、Riはそれぞれpiに対応するi番目の認証補助情報、証明情報である。
【0055】
以下では、演算手段3で行うべき乗剰余演算がCd mod niである場合について述べる。
【0056】
この構成における処理の流れは図11および図12のようになる。図11および図12において、まず、変数M、iを1で初期化する(ステップ11−1)。認証補助情報生成手段11は、認証情報記憶手段9から認証情報Cと、数列記憶手段10から数値piとを読み出す(ステップ11−2、ステップ11−3)。認証補助情報生成手段11は、所定の演算(ni←Cpi−1)を行い、認証補助情報niを生成する(ステップ11−4)。認証補助情報生成手段11は、ステップ11−4で生成した認証補助情報niと、認証情報記憶手段9から読み出した認証情報Cを、入力手段2に送り、これが演算手段3に渡される(ステップ11−5)。演算手段3は、秘密情報保持手段1から秘密情報dを読み出し(ステップ11−6)、認証情報Cと認証補助情報ni及び秘密情報dを使い、所定の演算(Ri←Cd mod ni)を行う(ステップ11−7)。演算手段3により計算された証明情報Riは出力手段4から出力され、証明情報記憶手段12に記憶される(ステップ11−8、ステップ11−9)。
【0057】
つぎに変数Mにpiを乗じ、その結果を変数Mに格納する(ステップ11−10)。Mの値がdの桁よりも十分に大きいかどうか確認し(ステップ11−11)、小さければ変数iに1を加え(ステップ11−12)、ステップ11−2に戻り繰り返す。Mの値が大きければ、変数iを1で、変数Sを0で初期化する(ステップ11−13)。
【0058】
こののち数列記憶手段10からi番目の数値piを読み出す(ステップ11−14)。変数Mの値をpiで割り、変数M’に格納する(ステップ11−15)。M-1 mod piを計算し、変数yに格納する(ステップ11−16)。
【0059】
つぎに、証明情報記憶手段12からi番目の証明情報Riを読み出す(ステップ11−17)。認証情報記憶手段9から認証情報Cを読み出す(ステップ11−18)。S+(logCRi)M’y mod Mを計算し、変数Sに格納する(ステップ11−19)。証明情報記憶手段12に処理すべきRiが残っていないか確認し(ステップ11−20)、残っていれば、変数iに1を加え(ステップ11−21)、ステップ11−14へ戻る。残っていなければ、変数Sの値を秘密情報として秘密情報出力手段14より出力する(ステップ11−22)。
【0060】
[実施例6]
図13は本発明の実施例6を全体として示している。実施例6は履歴を記録して、監査や課金の利用できるようにしたものである。図13において、この実施例の証明情報生成装置は、秘密情報保持手段1、入力手段2、演算手段3、出力手段4および履歴記憶手段15を含んで構成されている。秘密情報保持手段1、入力手段2、演算手段3および出力手段4は先の実施例1と同様である。履歴記憶手段15は、証明情報生成の履歴を記憶するものである。
【0061】
なお、秘密情報保持手段1と演算手段3は安全性を向上させるため、ICカード等の耐タンパー性を備える容器に封入され、この結果、読み出し、書き換え等が不正に行えないよう保護されるようになっている。監査などのために、履歴情報を改竄できないようにする必要がある場合には、履歴記憶手段15も、秘密情報保持手段1と演算手段3と共に耐タンパー性を備える容器に封入する。
【0062】
履歴記憶手段15に保持される履歴としては、入力手段2から入力された認証情報、認証補助情報、生成した証明情報、生成した時刻、エラーの有無、認証情報の識別子、認証補助情報の識別子、認証補助情報に付けられた署名、など、また、これらの組み合わせが考えられる。
【0063】
図14は、履歴として入力手段2から入力された認証補助情報を保持する場合の処理の流れを示している。この図において、まず、入力手段2から入力された認証情報Cと認証補助情報nは、演算手段3へ渡される(ステップ13−1、ステップ13−2)。演算手段3は、秘密情報保持手段1から秘密情報dを読み出し(ステップ13−3)、認証情報Cと認証補助情報nと秘密情報dとを使い所定の演算を行う(ステップ13−4)。演算手段3は、演算に持ちいた認証補助情報nを履歴記憶手段15へ送り、記憶させる(ステップ13−5)。また演算手段3により計算された証明情報Rを出力手段4より出力する(ステップ13−6)。
【0064】
ここでは、ステップ13−5で演算手段3から履歴記憶手段15へ認証補助情報nが送られたが、他のステップで行ってもよい。例えば、入力手段2から入力された直後(ステップ13−2の後)に履歴記憶手段15へ送り、記憶してもよいし、証明情報Rの生成が終了した後(ステップ13−6の後)でもよい。また、演算手段3より送られるのではなく、入力手段2から(証明情報を履歴に残すなら出力手段4から)直接送られてもよい。
【0065】
[実施例7]
図15は、本発明の実施例7を示している。この実施例は、履歴として認証補助情報に付加された識別子を保存するものである。図15において、実施例7の証明情報生成装置は、秘密情報保持手段1、入力手段2、演算手段3、出力手段および履歴記憶手段15を含んで構成されている。構成要素自体は実施例6と同様である。この実施例においては、入力手段2から入力した認証補助情報nに付加されている識別子を履歴記憶手段15に送り、記憶するようになっている。
【0066】
なお、この実施例においても、秘密情報保持手段1と演算手段3は安全性を向上させるため、ICカード等の耐タンパー性を備える容器に封入され、この結果、読み出し、書き換え等が不正に行えないよう保護さらるようになっている。また、監査などのために履歴情報を改竄できないようにする必要がある場合には、履歴保持手段15も、秘密情報保持手段1と演算手段3と共に耐タンパー性を備える容器に封入するようになっている。
【0067】
図16は、本実施例における認証補助情報のデータの構成例を示している。認証補助情報のデータ構成としては、固定長の識別子が付いているもの(図16(a))、認証補助情報の先頭に識別子のサイズを示すフィールド(固定長)が付いているもの(図16(b))、識別子と認証補助情報の間に分離記号が入っているもの(図16(c))などがある。これらのデータ構造に限らず、識別子と認証補助情報が分離できる形式であればどのようなものでもよい。
【0068】
図17は、本実施例における処理の流れを示したものである。図17において、入力手段2から入力された認証情報C、認証補助情報nは演算手段3へ送られる(ステップ16−1、ステップ16−2)。認証補助情報nに付加されていた識別子は入力手段2で分離され、履歴記憶手段15へ送られる(ステップ16−3)。
【0069】
演算手段3は、秘密情報保持手段1から秘密情報dを読み出し(ステップ16−4)、認証情報Cと認証補助情報nと秘密情報dとを使い所定の演算を行う(ステップ16−5)。そして演算手段3により計算された証明情報Rを出力手段4より出力する(ステップ16−6)。
【0070】
ここで、認証補助情報に付加された識別子は入力手段2で分離されるとしたが、演算手段3で行うようにしてもよいし、入力手段2に入力する時点で別々に入力されるようにしてもよい。
【0071】
以上説明したように、本発明の実施例によれば、異なる認証補助情報も用いることにより検証者に応じた多様な証明情報を生成することが可能となる。また、認証補助情報を順次生成して証明情報を取り出すことにより、秘密情報を回復することができる。また、証明情報生成の履歴を残すことが可能となり、この履歴を、監査、認証回数による利用量課金等に用いることができる。
【0072】
【発明の効果】
以上説明したように、本発明によれば、異なる認証補助情報も用いることにより検証者に応じた多様な証明情報を生成することが可能となる。また、認証補助情報を順次生成して証明情報を取り出すことにより、秘密情報を回復することができる。
【図面の簡単な説明】
【図1】 本発明の実施例1の構成を示すブロック図である。
【図2】 上述実施例1の入力データの構成を示す図である。
【図3】 上述実施例1の処理の流れを示すフローチャートである。
【図4】 本発明の実施例2の構成を示すブロック図である。
【図5】 上述実施例2の入力データの構成を示す図である。
【図6】 上述実施例2の処理の流れを示すフローチャートである。
【図7】 本発明の実施例3の構成を示すブロック図である。
【図8】 上述実施例3の処理の流れを示すフローチャートである。
【図9】 本発明の実施例4の処理の流れを示すフローチャートである。
【図10】 本発明の実施例5の構成を示すブロック図である。
【図11】 上述実施例5の処理の流れを示すフローチャートである。
【図12】 上述実施例5の処理の流れを示すフローチャートである。
【図13】 本発明の実施例6の構成を示すブロック図である。
【図14】 上述実施例6の処理の流れを示すフローチャートである。
【図15】 本発明の実施例の構成を示すブロック図である。
【図16】 上述実施例7の入力データの構成を示す図である。
【図17】 上述実施例7の処理の流れを示すフローチャートである。
【符号の説明】
1 秘密情報保持手段
2 入力手段
3 演算手段
4 出力手段
5 署名検証情報保持手段
6 署名検証手段
7 認証補助情報保持手段
8 認証補助情報判定手段
9 認証情報記憶手段
10 数列記憶手段
11 認証補助情報記憶手段
12 証明情報記憶手段
13 秘密情報回復手段
14 秘密情報出力手段
15 履歴記憶手段
Claims (2)
- 証明情報生成装置の各々に固有の秘密情報を保持する秘密情報保持手段と、外部から認証情報および認証補助情報を入力する入力手段と、上記秘密情報保持手段に保持された秘密情報を指数とし、上記入力手段から入力された上記認証補助情報を法数として、上記入力手段から入力された上記認証情報に対して、べき乗剰余演算を実行する演算手段と、上記演算手段によって演算された演算結果を証明情報として出力する出力手段とを具備する証明情報生成装置とともに用いられ、上記秘密情報を回復する秘密情報回復装置において、
上記認証情報を記憶する認証情報記憶手段と、
互いに素である数列を記憶する数列記憶手段と、
上記数列記憶手段から順次に読み出した数と、上記認証情報記憶手段から読み出した上記認証情報とから回復用の認証補助情報を生成する認証補助情報生成手段と、
上記認証補助情報生成手段により生成した上記回復用の認証補助情報を上記入力手段へ入力する認証補助情報入力手段と、
上記回復用の認証補助情報および上記認証情報に基づいて上記出力手段から出力される回復用の証明情報を記憶する証明情報記憶手段と、
上記認証情報記憶手段に記憶された上記認証情報と上記数列記憶手段に記憶された上記数列と上記証明情報記憶手段に記憶された上記回復用の証明情報とに対して下記の所定の演算を行い、秘密情報を再構成する秘密情報回復手段とを有し、
上記所定の演算は、
(a)上記数列記憶手段から数列中の数値piを取り出し、
(b)取りだした数列の数値を用いて所定の大きな数値Mに対し、M÷piを計算し計算結果を第一補助数M’とし、
(c)M−1 mod piを計算し計算結果を第二補助数yとし、
(d)上記証明情報記憶手段から証明情報Riを読み出し、上記認証情報から認証情報Cを読み出し、秘密情報候補値S(初期値は0)をS=S+(logcRi)・M’・y mod M で計算し、
上記証明情報記憶手段中のすべての証明情報Riについて上記(a)〜(d)の処理を繰り返したのち、当該秘密情報候補値Sを秘密情報として出力するものであることを特徴とする秘密情報回復装置。 - 証明情報生成装置の各々に固有の秘密情報を保持する秘密情報保持手段と、外部から認証情報および認証補助情報を入力する入力手段と、上記秘密情報保持手段に保持された秘密情報を指数とし、上記入力手段から入力された上記認証補助情報を法数として、上記入力手段から入力された上記認証情報に対して、べき乗剰余演算を実行する演算手段と、上記演算手段によって演算された演算結果を証明情報として出力する出力手段とを具備する証明情報生成装置とともに用いられ、上記秘密情報を回復する秘密情報回復方法において、
認証情報記憶手段が、上記認証情報を記憶する認証情報記憶ステップと、
数列記憶手段が、互いに素である数列を記憶する数列記憶ステップと、
認証補助情報生成手段が、上記数列記憶手段から順次に読み出した数と、上記認証情報記憶手段から読み出した上記認証情報とから回復用の認証補助情報を生成する認証補助情報生成ステップと、
認証補助情報入力手段が、上記認証補助情報生成手段により生成した上記回復用の認証補助情報を上記入力手段へ入力する認証補助情報入力ステップと、
証明情報記憶手段が、上記回復用の認証補助情報および上記認証情報に基づいて上記出力手段から出力される回復用の証明情報を記憶する証明情報記憶ステップと、
秘密情報回復手段が、上記認証情報記憶手段に記憶された上記認証情報と上記数列記憶手段に記憶された上記数列と上記証明情報記憶手段に記憶された上記回復用の証明情報とに対して下記の所定の演算を行い、秘密情報を再構成する秘密情報回復ステップとを有し、
上記所定の演算は、
(a)上記数列記憶手段から数列中の数値piを取り出し、
(b)取りだした数列の数値を用いて所定の大きな数値Mに対し、M÷piを計算し計算結果を第一補助数M’とし、
(c)M−1 mod piを計算し計算結果を第二補助数yとし、
(d)上記証明情報記憶手段から証明情報Riを読み出し、上記認証情報から認証情報Cを読み出し、秘密情報候補値S(初期値は0)をS=S+(logcRi)・M’・y mod M で計算し、
上記証明情報記憶手段中のすべての証明情報Riについて上記(a)〜(d)の処理を繰り返したのち、当該秘密情報候補値Sを秘密情報として出力するものであることを特徴とする秘密情報回復方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18128997A JP3700333B2 (ja) | 1997-07-07 | 1997-07-07 | 証明情報生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18128997A JP3700333B2 (ja) | 1997-07-07 | 1997-07-07 | 証明情報生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1124561A JPH1124561A (ja) | 1999-01-29 |
JP3700333B2 true JP3700333B2 (ja) | 2005-09-28 |
Family
ID=16098090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18128997A Expired - Fee Related JP3700333B2 (ja) | 1997-07-07 | 1997-07-07 | 証明情報生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3700333B2 (ja) |
-
1997
- 1997-07-07 JP JP18128997A patent/JP3700333B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1124561A (ja) | 1999-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5497677B2 (ja) | 公開鍵を検証可能に生成する方法及び装置 | |
US4935962A (en) | Method and system for authentication | |
US7472276B2 (en) | Data card verification system | |
US7000110B1 (en) | One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device | |
JP4659149B2 (ja) | 電子チップの不正行為に対する保護の非対称暗号通信法 | |
US7912216B2 (en) | Elliptic curve cryptosystem optimization using two phase key generation | |
US20010002486A1 (en) | Leak-resistant cryptographic method and apparatus | |
JPH10133576A (ja) | 公開鍵暗号方法および装置 | |
JP4137385B2 (ja) | 公開鍵および秘密鍵による暗号化方法 | |
US7020776B2 (en) | Cryptosystem based on a Jacobian of a curve | |
US8121290B2 (en) | Pseudo-random function calculating device and method and number-limited anonymous authentication system and method | |
JP3812123B2 (ja) | 認証方法および装置 | |
US20040086113A1 (en) | Methods for point compression for jacobians of hyperelliptic curves | |
JP2003098962A (ja) | 楕円曲線スカラー倍計算方法及び装置並びに記録媒体 | |
JPH10240128A (ja) | 暗号装置、暗号鍵生成方法及び暗号鍵管理方法、並びに素数生成装置及び素数生成方法 | |
EP0374225B1 (en) | Method and device for authentication | |
JPH118616A (ja) | 故障利用攻撃対応icカード | |
JP2022527358A (ja) | ブロックチェーントランザクションにおける知識証明のためのコンピュータにより実施される方法及びシステム | |
JP3700333B2 (ja) | 証明情報生成装置 | |
JPH11234263A (ja) | 相互認証方法および装置 | |
JP2003255831A (ja) | 楕円曲線スカラー倍計算方法及び装置 | |
JP4598269B2 (ja) | 楕円曲線上の高速有限体演算 | |
JP4629889B2 (ja) | 検証可暗号方法、その装置、そのプログラム及びその記録媒体 | |
JPH09171349A (ja) | デジタル署名方法 | |
SOLDATI | An advanced signature scheme: Schnorr algorithm and its benefits to the bitcoin ecosystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040928 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041129 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050301 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050307 |
|
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: 20050621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050704 |
|
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: 20080722 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090722 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100722 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110722 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |