JP2005072648A - 公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体 - Google Patents
公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体 Download PDFInfo
- Publication number
- JP2005072648A JP2005072648A JP2003208460A JP2003208460A JP2005072648A JP 2005072648 A JP2005072648 A JP 2005072648A JP 2003208460 A JP2003208460 A JP 2003208460A JP 2003208460 A JP2003208460 A JP 2003208460A JP 2005072648 A JP2005072648 A JP 2005072648A
- Authority
- JP
- Japan
- Prior art keywords
- public key
- user
- certificate
- key certificate
- new
- 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.)
- Pending
Links
Images
Abstract
【課題】公開鍵と公開鍵証明書を更新する際のユーザ(利用端末)の負担を減らすこと、及び、更新を確実に行うことができるようにする。
【解決手段】認証局caの発行装置Dcaは、ユーザiが登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成部101と、これら補助情報と新しい公開鍵と公開鍵証明書とを利用端末Tiに発行する発行部102とを備えている。利用端末Tiは、自分の秘密情報と発行された補助情報とから新しい公開鍵に対応する秘密鍵を計算する計算部103を備えている。発行装置Dcaでは、利用端末Tiから情報を受け取る必要が無く、必要なときに単独で新しい公開鍵と公開鍵証明書を生成し、利用端末Tiに発行できるので、利用端末Tiでは新しい秘密鍵と公開鍵の生成を行う必要は無く、発行装置Dcaに情報を送る必要も無い。
【選択図】 図2
【解決手段】認証局caの発行装置Dcaは、ユーザiが登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成部101と、これら補助情報と新しい公開鍵と公開鍵証明書とを利用端末Tiに発行する発行部102とを備えている。利用端末Tiは、自分の秘密情報と発行された補助情報とから新しい公開鍵に対応する秘密鍵を計算する計算部103を備えている。発行装置Dcaでは、利用端末Tiから情報を受け取る必要が無く、必要なときに単独で新しい公開鍵と公開鍵証明書を生成し、利用端末Tiに発行できるので、利用端末Tiでは新しい秘密鍵と公開鍵の生成を行う必要は無く、発行装置Dcaに情報を送る必要も無い。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体に係り、公開鍵と公開鍵証明書を更新するのに好適なものに関する。
【0002】
【従来の技術】
インターネットの普及に伴って、暗号が使われる機会が増えている。後述するように、暗号には共通鍵暗号と公開鍵暗号があり、共通鍵暗号を用いると高速な暗号化が実現でき、公開鍵暗号を用いると暗号化の機能に加えて認証機能(ディジタル署名)をも実現できる。インターネット上での安全な通信や電子商取引に、暗号は欠かせないものとなっている。
【0003】
公開鍵暗号を利用する場合、公開鍵とユーザの対応を保証するための公開鍵証明書が用いられることが多い。ところで、安全のため公開鍵を適宜更新(変更)することが望ましいが、公開鍵を更新する際には、公開鍵証明書も一緒に更新しなければならない。以下では、最初に暗号について説明し、次に公開鍵証明書について、そしてその更新について説明する。
【0004】
[暗号]
暗号とは、情報の意味が当事者以外にはわからないように情報を変換することをいう。暗号において、元の文を平文といい、それを第三者に意味の分からない暗号文に変えることを暗号化、その変換手順を暗号アルゴリズムという。平文、暗号文といっても、テキストに限るわけではなく、データ、音声、画像等あらゆる情報を想定している。暗号化は、暗号化鍵というパラメータに依存する変換である。当事者が暗号文を元の平文に戻すことを復号といい、暗号化鍵に対応するパラメータ、復号鍵と呼ぶ、を用いて行う。当事者以外の第三者が暗号文を元の平文に戻すこと、或いは復号鍵を見出すことを、解読という。
【0005】
現代の暗号では、暗号の安全性を暗号化或いは復号に用いる鍵に帰着させており、鍵を知らなければ、たとえ暗号アルゴリズムを知っていても平文は得られないようになっている。従って、暗号装置の製作者でも解読できない暗号を実現することができる。
【0006】
暗号には多くのアルゴリズムがあるが、以下では、暗号化鍵を公開できるか否かの観点から、非対称暗号(公開鍵暗号)と対称暗号(共通鍵暗号)の二つに分類する。
【0007】
[非対称暗号(公開鍵暗号)]
非対称暗号は公開鍵暗号とも呼ばれ、暗号化鍵と復号鍵とが異なり、暗号化鍵から復号鍵が容易に計算できないようになっており、暗号化鍵を公開、復号鍵を秘密に保持して使われる暗号のことをいう。
【0008】
非対称暗号は、以下の特徴を持つ。すなわち、1.暗号化鍵と復号鍵とが異なり、暗号化鍵を公開できるため、暗号化鍵を秘密に配送する必要がなく、鍵配送が容易である。2.各利用者の暗号化鍵は公開されるので、利用者は各自の復号鍵のみ秘密に記憶しておけばよい。3.送られてきた通信文の送信者が偽者でないこと及びその通信文が改ざんされていないことを受信者が確認するための認証機能(ディジタル署名)を実現できる。
【0009】
暗号機能と認証機能を実現できる非対称暗号として、RSA暗号(非特許文献1)や、ElGamal暗号(非特許文献2)が有名である。
【0010】
認証機能(ディジタル署名)を実現できる非対称暗号として、Fiat−Shamir暗号(非特許文献3)や、Schnorr暗号(非特許文献4)が有名である。
【0011】
一例として、ElGamal暗号による暗号機能と、ElGamal暗号を修正した暗号によるディジタル署名方式について詳しく述べる。この修正ElGamal暗号によるディジタル署名方式は、非特許文献5で安全性が証明されている。
【0012】
まず、記号の準備をする。Zは整数全体の集合、Zpは0以上p未満の整数の集合、Zp\{0}はZpから0を除いた集合、Zp *はZpの要素でありかつpと互いに素である整数の集合を表す。整数A,B,Cに対しA=BmodCが成り立つとき、BをCで割ったときの余りがAである(ある整数kが存在し、B=k・C+Aが成り立つ)ことを意味し、A≡B(modC)が成り立つとき、AをCで割ったときの余りとBをCで割ったときの余りとが等しいことを意味する。
【0013】
次のような、素数p、整数g、及び一方向性ハッシュ関数を用いる。素数pは、p−1が少なくとも一つの大きな素因数を持つ。整数gは、Zp *の要素でありかつ位数がp−1である。gが位数p−1であるとは、下記の数1に示す関係が成り立つことである。
【0014】
【数1】
【0015】
一方向性ハッシュ関数とは、衝突を起こしにくい圧縮関数のことであり、ある長さのビット列を出力する関数で、同じ出力となる入力を見つけることが困難であるという特徴を持つ。具体的には、一方向性ハッシュ関数は、下記の数2に示す式で表される。
【0016】
【数2】
【0017】
すなわち、2つの入力を1つの出力に変換する関数であり、最初の入力はZpの要素、2つめの入力はZの要素であり、出力は{0,1,…,2t−1}のいずれかの要素となるものである。なお、tはセキュリティ・パラメータである。
【0018】
あるユーザiの秘密鍵をsi∈Zp−1、公開鍵をvi=gsimodpとする。pとgは複数のユーザが共通に使うことができる。以下では、共通に使われるものとして説明する。
【0019】
(ElGamal暗号の)暗号化
ユーザjが、メッセージm(∈Zp)を暗号化してユーザiに送る場合、次のようにして行う。メッセージがZpの要素でない場合(p以上の数値の場合)は、Zpの要素になるよう適当に分割し、分割したそれぞれに対して暗号化する。
【0020】
1.ユーザjは乱数kを生成する。
2.ユーザjはC1=gkmodpを計算する。
3.ユーザjはC2=m・vi kmodpを計算する。
4.ユーザjは、C1とC2をユーザiに送る。
【0021】
(ElGamal暗号の)復号
1.ユーザiはm=C2/C1 simodpにより、mを求める。
【0022】
(修正ElGamal暗号の)ディジタル署名の生成
ユーザiがメッセージm∈Zに対してディジタル署名を生成する場合、次のように行う。暗号化のようにメッセージを複数ブロックに分割する方法もあるが、以下では一方向性ハッシュ関数を用いる方法を説明する。
1.ユーザiは乱数k∈Zp−1 *を生成する。
2.ユーザiはr=gkmodpを計算する。
3.ユーザiは下記の数3に示す式を満たすs(mod(p−1))計算する。
【0023】
【数3】
【0024】
4.ユーザiはmと署名r,sを検証者に送る。
【0025】
(修正ElGamal暗号の)ディジタル署名の検証
1.ユーザjは下記の数4に示す式を確認する。
【0026】
【数4】
【0027】
[対称暗号(公開鍵暗号)]
対称暗号は、暗号化鍵と復号鍵が同一の暗号であり、共通鍵暗号とも呼ばれる。1970年代後半に公開鍵暗号が現れて、従来から存在する対称暗号は慣用暗号とも呼ばれるようになった。対称暗号は、適当な長さの文字列(ブロック)ごとに同じ鍵で暗号化するブロック暗号と文字列又はビットごとに鍵を変えていくストリーム暗号に分けることができる。
【0028】
ブロック暗号には、文字の順序を置き換えて暗号化する転置式暗号や、文字を他の文字に換える換字式暗号等があり、アルゴリズムが公開さ札でいるDES(Data Encryption Standard)やIDEA(International Data Encryption Algorithm)が有名である。
【0029】
ストリーム暗号は、メッセージに乱数をXORして内容を撹乱する方式であり、無限周期の乱数列を1回限りの使い捨て鍵として用いるバーナム暗号が有名である。
【0030】
暗号に関しては、非特許文献6〜8に更に詳しい説明がある。
【0031】
[公開鍵証明書(Public Key Certificates)]
公開鍵証明書とは、公開鍵とそれに対応するユーザの識別情報(ID)の組が正しいことを、信頼できる第三者が保証した証明書である。この信頼できる第三者は認証局(Certification Authority)と呼ばれ、公開鍵証明書は具体的には認証局によるディジタル署名であり、そのディジタル署名の正当性を確認するための認証局の公開鍵は何らかの手段で広く知られている。
【0032】
公開鍵証明書の発行は、以下のような手順で行われる(図3を参照)。以下では、認証局をCA、ユーザをiと表す。整数論に関する記号の定義は、前述の説明と同じとする。認証局CAの秘密鍵をsca∈Zp−1 *、公開鍵をvca=gscamodp、ユーザiの秘密鍵をsi∈Zp−1 *、公開鍵をvi=gsimodpとする。認証局CA及びユーザiが行う計算や通信等の処理は、実際には計算機や通信ネットワークによって実現される。認証局CAとユーザiの計算や通信を行う実際の機械を、それぞれ発行装置Dcaと利用端末Tiとし、それらは認証局CA及びユーザiによって適切に管理されているものとする。
【0033】
1.ユーザiは、利用端末Tiを用いて、秘密鍵si∈Zp−1 *と公開鍵vi=gsimodpを生成し、公開鍵viを認証局CAに提出し、公開鍵証明書の発行を申請する。
【0034】
2.認証局CAは、何らかの手段、例えば、パスポートでユーザiの身元を確認し、提出された公開鍵viをデータベースに登録する。
【0035】
3.発行装置Dcaは、ユーザiの識別情報IDiと公開鍵viと証明書の管理や運用に用いる情報Xに対するディジタル署名を生成する。Xは、その証明書のシリアル番号、有効期限、認証局の公開鍵等の情報を含む。メッセージMに対する発行装置Dcaのディジタル署名をSigca(M)と表すと、(vi,IDi,X,Sigca(vi,IDi,X))がユーザiの証明書PKCiになる。一具体例として、発行装置が修正ElGamal暗号のディジタル署名方式を用いる場合を以下に述べる。発行装置Dcaは乱数k∈Zp−1 *を生成し、r=gkmodpを計算する。下記の数5に示す式を満たすs(mod(p−1))を計算する。
【0036】
【数5】
【0037】
ここで、‖は連接を表し、Sigca(vi,IDi,X)をSigca(vi‖IDi‖X)=(r,s)とした。ただし、必ずしも‖を使わなければならないというわけではなく、複数の値を一つの値にまとめることが可能で、まとめられた値から複数の元の値を取り出せる演算子であればよい。
【0038】
4.発行装置Dcaは、証明書PKCi=(vi,IDi,X,Sigca(vi,IDi,X))=(vi,IDi,X,r,s)をユーザiに発行する。証明書PKCiは、利用端末Tiに格納される。
【0039】
5.利用端末Tiは、PKCi=(vi,IDi,X,Sigca(vi,IDi,X))=(vi,IDi,X,r,s)を受け取ったら、公開鍵viとIDi及びXに対する発行装置Dcaの署名Sigca(vi,IDi,X)の正当性を確認する。つまり、下記の数6に示す式を確認する(公開鍵証明書の発行手順終了)。
【0040】
【数6】
【0041】
ユーザiと通信するユーザj、すなわち利用端末iと通信する利用端末jは、PKCi=(vi,IDi,X,r,s)を入手し、上記の数6に示した式を確認する。
【0042】
この確認を行なった利用端末jは、viを公開鍵として用いて、離散対数問題に基づく暗号方式を利用して通信文を暗号化し、暗号文を利用端末iに送信できる。或いは、利用端末iから受け取った、離散対数問題に基づくディジタル署名の正当性をviを用いて確認できる。
【0043】
公開鍵証明書には有効期限があるが、何らかの原因で変更されて無効になったが有効期隈を過ぎていない証明書は、発行装置Dcaによって証明書無効化リスト(Certificate Revocation Lists)に載せられる。ところで、安全のため公開鍵を適宜更新(変更)することが望ましいが、公開鍵を更新する際には公開鍵証明書も一緒に更新しなければならない。
【0044】
[従来の公開鍵と公開鍵証明書の更新手続き]
公開鍵と公開鍵証明書の更新手続きは、通常は以下のように行われる(図4を参照)。
1.ユーザiは、利用端末Tiを用いて、秘密鍵si´∈Zp−1 *と公開鍵vi´=gsi´modpを生成し、公開鍵vi´を認証局CAに提出する。
【0045】
2.認証局CAは初期登録のときと同様に、何らかの手段でユーザiの身元を確認し、提出された公開鍵vi´を登録する。発行装置Dcaは、新しい公開鍵証明書PKCi´=(vi´,IDi,X´,Sigca(vi´,IDi,X´))を生成,発行する。X´は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。PKCiの有効期限が残っている場合は、PKCiを証明書無効化リストに載せる。
【0046】
3.利用端末iは、公開鍵vi´とIDi及びX´に対する発行装置の署名Sigca(vi´,IDi,X´)の正当性を確認する。
【0047】
以上により、公開鍵と公開鍵証明書の更新手続きは終了する。この更新手続きは、更新の都度繰り返される。
【0048】
【非特許文献1】
R. L. Rivest, A. Shamir and L. Adleman,“A method of obtaining digital signatures and public key cryptosystems,”Communications of ACM, vol.21, No.2, pp. 120−126, 1978
【非特許文献2】
T. E. ElGamal,“A public key cryptosystem and a signature scheme based on discrete logarithms,”IEEE Transaction on Information Theory, Vol. IT−31, No.4, pp.469−472, 1985
【非特許文献3】
A. Fiat, A. Shamir,“How to prove yourself: practical solutions of identification and signature problems,”Advances in Cryptology −
CRYPT `86, pp. 186−194,1987
【非特許文献4】
C. P. Schnorr,“Efficient signature generation by smart cards,”Journal of Cryptology, vol.4, pp.161−174, 1991
【非特許文献5】
D. Pointcheval, J. Stern,“Security proofs for signature schemes,”Advances in Cryptology − EUROCRYPT `96, pp.387−398, Springer − Verlag,1996
【非特許文献6】
岡本栄司著、暗号理論入門、共立出版株式会社
【非特許文献7】
岡本龍明、山本博資著、現代暗号、産業図書
【非特許文献8】
Bruce Schneier著、Applied cryptography second editon:protocols, algorithms, and source code in C, John Wiley & Sons, Inc.
【0049】
【発明が解決しようとする課題】
上述の更新手続から明らかなように、公開鍵の更新と公開鍵証明書の更新を行うためには、新しい秘密鍵と公開鍵を生成するための計算と、認証局CAへの公開鍵の登録(物理的に出向いて行う提出或いは通信による提出)が必要となる。
そのため、ユーザ(利用端末Ti)は更新回数に比例する計算量と登録のコスト(ユーザが発行装置Dcaのところに出頭する物理的な移動コスト或いは発行装置Dcaへ送信するコスト)がかかってしまう。特に、秘密鍵と公開鍵の生成は計算量が大きいため、負担となってしまうという問題があった。また、ユーザが更新を怠けたり、忘れたりしてしまうことも問題であった。
【0050】
本発明は、上記のような点に鑑みてなされたものであり、公開鍵と公開鍵証明書を更新する際のユーザ(利用端末)の負担を減らすこと、及び、更新を確実に行うことができるようにすることを目的とする。
【0051】
【課題を解決するための手段】
本発明の公開鍵証明書システムは、発行装置と利用端末とを備えた公開鍵証明書システムであって、上記発行装置は、上記利用端末が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成手段と、上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用端末に発行する発行手段とを有し、上記利用端末は、自分の秘密情報と上記発行された補助情報とから上記新しい公開鍵に対応する秘密鍵を計算する計算手段を有し、上記発行装置が適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用端末に対して発行する点に特徴を有する。
【0052】
また、本発明の公開鍵及び公開鍵証明書の更新方法は、利用者と発行者との間で行われる公開鍵及び公開鍵証明書の更新方法であって、上記発行者側では、上記利用者が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成処理と、上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用者に発行する発行処理とを行い、上記利用者側では、自分の秘密情報と上記発行された補助情報とから上記新しい公開鍵に対応する秘密鍵を計算する計算処理を行い、上記発行者が適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用者に対して発行する点に特徴を有する。
【0053】
【発明の実施の形態】
以下、図面を参照して、本発明の公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体の実施の形態について説明する。
【0054】
図1に示すように、本実施の形態のシステムは、認証局CAの発行装置Dcaと、ユーザiの利用端末Tiとにより構成されている。
【0055】
発行装置Dcaは、利用端末Tiが登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成部101と、補助情報と新しい公開鍵と公開鍵証明書とを利用端末Tiに発行する発行部102とを備えている。
【0056】
利用端末Tiは、自分の秘密情報と発行された補助情報とから新しい公開鍵に対応する秘密鍵を計算する計算部103を有する。
【0057】
上記発行装置Dcaは、適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用端末Tiに対して発行する。
【0058】
(第1の実施の形態における公開鍵と公開鍵証明書の更新手続き)
第1の実施の形態におけるプロトコルを図2に示す。なお、図2には、ステップ0として、下記手順が書かれている。
【0059】
01.ユーザiが、利用端末Tiを用いて、秘密鍵si∈Zp−1 *と公開鍵vi=gsimodpを生成し、公開鍵viを認証局CAに提出し、公開鍵証明書の発行を申請する。
02.認証局CAが何らかの手段でユーザiの身元を確認し、提出された公開鍵viをデータベースに登録する。
03.発行装置Dcaが最初の公開鍵証明書PKCiを生成する。
04.発行装置Dcaが最初の公開鍵証明書PKCiを発行する。
05.利用端末Tiは、公開鍵証明書PKCiの正当性を確認する。
【0060】
この手順は、ユーザiがシステムに加入する際に一度だけ行われ、更新手続きには含まれない。なお、ステップ03からステップ05までの、公開鍵証明書PKCiを生成・発行し確認する手続きを省き、いきなりPKCi´を発行しても構わない。
【0061】
更新手続きのプロトコルは以下の通りである。
1.発行装置Dcaは、乱数r´∈Zp−1 *を生成し、vi´=vi r´modpを求める。
【0062】
2.発行装置Dcaは、更新された公開鍵vi´をデータベースに登録し、ユーザiの識別情報IDiと公開鍵vi´と証明書の管理に必要な情報X´に対するディジタル署名を生成する。X´は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。ユーザiの証明書PKCi´は(vi´,IDi,X´,Sigca(vi´,IDi,X´))である。
【0063】
3.発行装置Dcaは、乱数r´と更新された証明書PKCi´=(vi´,IDi,X´,Sigca(vi´,IDi,X´))をユーザiに発行する。乱数r´は、viを用いる公開鍵暗号により暗号化され、ユーザiに送られる。
【0064】
4.利用端末Tiは、PKCi´=(vi´,IDi,X´,Sigca(vi´,IDi,X´))と乱数r´の暗号文を受け取ったら、公開鍵vi´とIDi及びX´に対する発行装置の署名の正当性を確認し、r´を復号し、vi´≡vi r´≡gSi・r´(modp)を確認する。
【0065】
以上により、更新手続きが終了する。この更新手続きは、更新の都度繰り返される。
【0066】
上記の証明書PKCi´を発行されたユーザiは、vi´を公開鍵、si´=si・r´mod(p−1)を秘密鍵として、公開鍵暗号を利用できる。なお、上記実施の形態ではr´をviを用いる公開鍵暗号で暗号化する例を述べたが、r´がユーザiに送られるときに、安全な通信路を用いてユーザi(利用端末Ti)のみにr´を確実に渡すことができるのであれば、viを用いる公開鍵暗号に限る必要はなく、他の手段を用いても問題はない。
【0067】
(第2の実施の形態)
上記第1の実施の形態においては、新しい公開鍵としてviのみが変更され、底gと法pは変更されなかった。本実施の形態では、公開鍵及び底が変更される例を説明する。
【0068】
1.発行装置Dcaは、乱数r^∈Zp−1 *を生成し、g^=vi r^modpを計算するととも、下記の数7に示す式を計算し、下記の数8に示す式を満たすsi^を求める。X^は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。
【0069】
【数7】
【0070】
【数8】
【0071】
2.次に、発行装置Dcaは、Sigca(g^,vi^,IDi,X^)を求める。
【0072】
3.発行装置Dcaは、PKCi^=(g^,vi^,IDi,X^,Sigca(g^,vi^,IDi,X^))とsi^をユーザiに発行する。si^は、viを用いる公開鍵暗号により暗号化されて送られる。
【0073】
4.PKCi^より前に発行した公開鍵証明書の有効期限が残っている場合は、発行装置Dcaはそれらを証明書無効化リストに載せる。
【0074】
利用端末Tiは、以下のような処理を行う。
1.PKCi^=(g^,vi^,IDi,X^,Sigca(g^,vi^,IDi,X^))とsi^の暗号文を受け取った利用端末Tiは、g^,vi^,IDi,X^に対する発行装置のディジタル署名Sigca(g^,vi^,IDi,X^)の正当性を確認する。
【0075】
2.次に、si^を復号し、si´´・si≡si^(mod(p−1))を満たすsi´´を計算し、下記の数9に示す式を確認する。
【0076】
【数9】
【0077】
以上により、更新手続きが終了する。この更新手続きは、更新の都度繰り返される。
【0078】
なお、上記実施の形態では、si^をviを用いる公開鍵暗号で暗号化する例を述べたが、si^がユーザiに送られるときに、安全な通信路を用いてユーザi(利用端末Ti)のみに確実に渡すことができるのであれば、viを用いる公開鍵暗号に限る必要はなく、他の手段を用いても問題はない。
【0079】
ディジタル署名を利用する場合、ユーザi(利用端末Ti)は、viの代わりにvi^を、gの代わりにg^を、siの代わりにsi´´を用いて、離散対数問題に基づくディジタル署名方式を利用する。暗号通信を行う場合、ユーザj(利用端末Tj)は、viの代わりにvi^を、gの代わりにg^を用いて、離散対数問題に基づく暗号方式を利用して通信文をユーザi(利用端末Ti)に送る。
【0080】
一具体例として、ユーザi(利用端末Ti)がディジタル署名方式として修正ElGamal暗号のディジタル署名方式を用いる場合を述べる。
【0081】
1.利用端末Tiは、メッセージm∈Zに対して、乱数ki∈Zp−1 *を生成し、sig1=g^kimodpを計算し、下記の数10に示す式を満たすsig2を求める。
【0082】
【数10】
【0083】
2.利用端末Tiは、PKCi^とmと署名(sig1,sig2)を検証者(他の端末)に送る。
【0084】
3.検証者(他の端末)は、PKCi^=(g^,vi^,IDi,X^,Sigca(g^,vi^,IDi,X^))の正当性を、認証局CAの公開鍵で確認し、g^,vi^,IDi,X^が認証局CAによって保証されていることを確かめる。
【0085】
4.検証者(他の端末)は、下記の数11に示す式を確認する。
【0086】
【数11】
【0087】
(第3の実施の形態)
上記第2の実施の形態では、認証局CAがg^,vi^,IDi,X^に対するディジタル署名Sigca(g^,vi^,IDi,X^)を生成し、ユーザに発行していた。ところで、下記の数12に示す式を満たすg^とsi´´を求めることは、認証局CAとユーザiの両者が前述の手続きに従うときのみに限って可能である。
【0088】
【数12】
【0089】
認証局CAは、g^とsi´を求めることはできるが、ユーザiの秘密情報siを知らないので、si´´≡(si^/si)・(mod(p−1))を単独で求めることはできない。一方、認証局CAの秘密情報scaを知らないユーザiは、g^とsi´を単独で求めることはできない。また、認証局CAでも、ユーザiでもない複数のユーザが協力したとしてもsiもscaも知らないので、g^とsi´´を求めることはできない。
【0090】
よって、下記の数13に示す式を満たすsi´´を有するユーザは、認証局CAからsi^を発行されたユーザのみである。
【0091】
【数13】
【0092】
ところで、下記の数14に示す式は、g^とX^を除けばすべて公開の情報であるので、g^とX^が与えられれば誰でも計算して求めることができる。よって、g^,vi^,IDi,X^に対する認証局CAのディジタル署名Sigca(g^,vi^,IDi,X^)を省くことができる。
【0093】
【数14】
【0094】
この場合、(g^,IDi,X^)が公開鍵でありかつ公開鍵証明書をも兼ねているとみなすことができる。g^,IDi,X^の正当性は、その正規の所有者(利用端末)が生成したディジタル署名の正当性を検証するときに同時に確認可能である。
【0095】
一具体例として、前述の具体例と同じ修正ElGamal暗号のディジタル署名をユーザi(利用端末Ti)が用いる場合を説明する。
【0096】
1.発行装置Dcaは、乱数r〜∈Zp−1 *を生成し、g〜=vi r〜modpを計算する。
【0097】
2.次に、発行装置Dcaは、下記の数15に示す式を満たすsi〜を求める。X〜は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。
【0098】
【数15】
【0099】
3.発行装置Dcaは、PKCi〜=(g〜,IDi,X〜)とsi〜を利用端末Tiに発行する。si〜は、viを用いる公開鍵暗号によって暗号化されて送られる。
【0100】
4.PKCi〜より前に発行した公開鍵証明書の有効期限が残っている場合は、発行装置Dcaは、それらを証明書無効化リストに載せる。
【0101】
5.PKCi〜を受け取った利用端末Tiは、si〜を復号し、si´´´・si≡si〜(mod(p−1))を満たすsi´´´(mod(p−1)を計算し、下記の数16に示す式を確認する。
【0102】
【数16】
【0103】
6.次に、利用端末Tiは、メッセージm∈Zに対して、乱数ki∈Zp−1 *を生成し、sig1=gki〜modpを計算し、下記の数17に示す式を満たすsig2を求める。
【0104】
【数17】
【0105】
7.利用端末Tiは、PKCi〜=(g〜,IDi,X〜)とmと署名(sig1,sig2)を検証者(他の端末)に送る。
【0106】
8.検証者(他の端末)は、下記の数18に示す式を確認する。
【0107】
【数18】
【0108】
この簡略化された公開鍵証明書は、通常の公開鍵証明書には必要な、公開鍵に対する発行装置のディジタル署名を省くことができるため、証明書全体のサイズが小さいという特徴がありメモリのコストを下げる効果がある。
【0109】
なお、上記実施の形態では、si〜をviを用いる公開鍵暗号で暗号化する例を述べたが、si〜がユーザiに送られるときに、安全な通信路を用いてユーザi(利用端末Ti)のみに確実に渡すことができるのであれば、viを用いる公開鍵暗号に限る必要はなく、他の手段を用いても問題はない。
【0110】
(その他の実施の形態)
上述した実施の形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置或いはシステム内のコンピュータに対し、上記実施の形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステム或いは装置のコンピュータ(CPU或いはMPU)に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【0111】
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード自体は本発明の範疇に含まれる。そのプログラムコードの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク(LAN、インターネット等のWAN、無線通信ネットワーク等)システムにおける通信媒体(光ファイバ等の有線回線や無線回線等)を用いることができる。
【0112】
また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0113】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施の形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)或いは他のアプリケーションソフト等と共同して上述の実施の形態の機能が実現される場合にもかかるプログラムコードは本発明の実施の形態に含まれることはいうまでもない。
【0114】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合にも本発明に含まれることはいうまでもない。
【0115】
なお、上記実施の形態において示した各部の形状及び構造は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0116】
【発明の効果】
以上説明したように、本発明によれば、発行処理の際に認証局(発行装置)はユーザが最初に登録した情報と乱数とから新しい公開鍵を生成するので、ユーザ(利用端末)から情報を受け取る必要が無い。従って、必要なときに認証局(発行装置)単独で新しい公開鍵とそれに対応する公開鍵証明書を生成し、ユーザ(利用端末)に発行できる。ユーザ(利用端末)は新しい秘密鍵と公開鍵の生成を行う必要は無く、認証局(発行装置)に情報を送る必要も無い。
【0117】
つまり、認証局(発行装置)はユーザの新しい公開鍵とそれに対応する公開鍵証明書を一方的に発行することができる。従って、たとえユーザ(利用端末)が鍵の変更を忘れてしまったとしても、認証局(発行装置)が新しい公開鍵とそれに対応する公開鍵証明書を生成することができ、古い公開鍵証明書は証明書無効化リストに載せることができる。これにより、公開鍵の変更に関してユーザ(利用端末)の負担を減らすことができ、変更を確実に行うことが可能となる。
【図面の簡単な説明】
【図1】システムの構成を示す図である。
【図2】第1の実施の形態における公開鍵証明書更新プロトコルを示す図である。
【図3】公開鍵証明書発行プロトコルを示す図である。
【図4】従来の公開鍵証明書更新プロトコルを示す図である。
【符号の説明】
Dca 発行装置
Ti 利用端末
101 生成部
102 発行部
103 計算部
【発明の属する技術分野】
本発明は、公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体に係り、公開鍵と公開鍵証明書を更新するのに好適なものに関する。
【0002】
【従来の技術】
インターネットの普及に伴って、暗号が使われる機会が増えている。後述するように、暗号には共通鍵暗号と公開鍵暗号があり、共通鍵暗号を用いると高速な暗号化が実現でき、公開鍵暗号を用いると暗号化の機能に加えて認証機能(ディジタル署名)をも実現できる。インターネット上での安全な通信や電子商取引に、暗号は欠かせないものとなっている。
【0003】
公開鍵暗号を利用する場合、公開鍵とユーザの対応を保証するための公開鍵証明書が用いられることが多い。ところで、安全のため公開鍵を適宜更新(変更)することが望ましいが、公開鍵を更新する際には、公開鍵証明書も一緒に更新しなければならない。以下では、最初に暗号について説明し、次に公開鍵証明書について、そしてその更新について説明する。
【0004】
[暗号]
暗号とは、情報の意味が当事者以外にはわからないように情報を変換することをいう。暗号において、元の文を平文といい、それを第三者に意味の分からない暗号文に変えることを暗号化、その変換手順を暗号アルゴリズムという。平文、暗号文といっても、テキストに限るわけではなく、データ、音声、画像等あらゆる情報を想定している。暗号化は、暗号化鍵というパラメータに依存する変換である。当事者が暗号文を元の平文に戻すことを復号といい、暗号化鍵に対応するパラメータ、復号鍵と呼ぶ、を用いて行う。当事者以外の第三者が暗号文を元の平文に戻すこと、或いは復号鍵を見出すことを、解読という。
【0005】
現代の暗号では、暗号の安全性を暗号化或いは復号に用いる鍵に帰着させており、鍵を知らなければ、たとえ暗号アルゴリズムを知っていても平文は得られないようになっている。従って、暗号装置の製作者でも解読できない暗号を実現することができる。
【0006】
暗号には多くのアルゴリズムがあるが、以下では、暗号化鍵を公開できるか否かの観点から、非対称暗号(公開鍵暗号)と対称暗号(共通鍵暗号)の二つに分類する。
【0007】
[非対称暗号(公開鍵暗号)]
非対称暗号は公開鍵暗号とも呼ばれ、暗号化鍵と復号鍵とが異なり、暗号化鍵から復号鍵が容易に計算できないようになっており、暗号化鍵を公開、復号鍵を秘密に保持して使われる暗号のことをいう。
【0008】
非対称暗号は、以下の特徴を持つ。すなわち、1.暗号化鍵と復号鍵とが異なり、暗号化鍵を公開できるため、暗号化鍵を秘密に配送する必要がなく、鍵配送が容易である。2.各利用者の暗号化鍵は公開されるので、利用者は各自の復号鍵のみ秘密に記憶しておけばよい。3.送られてきた通信文の送信者が偽者でないこと及びその通信文が改ざんされていないことを受信者が確認するための認証機能(ディジタル署名)を実現できる。
【0009】
暗号機能と認証機能を実現できる非対称暗号として、RSA暗号(非特許文献1)や、ElGamal暗号(非特許文献2)が有名である。
【0010】
認証機能(ディジタル署名)を実現できる非対称暗号として、Fiat−Shamir暗号(非特許文献3)や、Schnorr暗号(非特許文献4)が有名である。
【0011】
一例として、ElGamal暗号による暗号機能と、ElGamal暗号を修正した暗号によるディジタル署名方式について詳しく述べる。この修正ElGamal暗号によるディジタル署名方式は、非特許文献5で安全性が証明されている。
【0012】
まず、記号の準備をする。Zは整数全体の集合、Zpは0以上p未満の整数の集合、Zp\{0}はZpから0を除いた集合、Zp *はZpの要素でありかつpと互いに素である整数の集合を表す。整数A,B,Cに対しA=BmodCが成り立つとき、BをCで割ったときの余りがAである(ある整数kが存在し、B=k・C+Aが成り立つ)ことを意味し、A≡B(modC)が成り立つとき、AをCで割ったときの余りとBをCで割ったときの余りとが等しいことを意味する。
【0013】
次のような、素数p、整数g、及び一方向性ハッシュ関数を用いる。素数pは、p−1が少なくとも一つの大きな素因数を持つ。整数gは、Zp *の要素でありかつ位数がp−1である。gが位数p−1であるとは、下記の数1に示す関係が成り立つことである。
【0014】
【数1】
【0015】
一方向性ハッシュ関数とは、衝突を起こしにくい圧縮関数のことであり、ある長さのビット列を出力する関数で、同じ出力となる入力を見つけることが困難であるという特徴を持つ。具体的には、一方向性ハッシュ関数は、下記の数2に示す式で表される。
【0016】
【数2】
【0017】
すなわち、2つの入力を1つの出力に変換する関数であり、最初の入力はZpの要素、2つめの入力はZの要素であり、出力は{0,1,…,2t−1}のいずれかの要素となるものである。なお、tはセキュリティ・パラメータである。
【0018】
あるユーザiの秘密鍵をsi∈Zp−1、公開鍵をvi=gsimodpとする。pとgは複数のユーザが共通に使うことができる。以下では、共通に使われるものとして説明する。
【0019】
(ElGamal暗号の)暗号化
ユーザjが、メッセージm(∈Zp)を暗号化してユーザiに送る場合、次のようにして行う。メッセージがZpの要素でない場合(p以上の数値の場合)は、Zpの要素になるよう適当に分割し、分割したそれぞれに対して暗号化する。
【0020】
1.ユーザjは乱数kを生成する。
2.ユーザjはC1=gkmodpを計算する。
3.ユーザjはC2=m・vi kmodpを計算する。
4.ユーザjは、C1とC2をユーザiに送る。
【0021】
(ElGamal暗号の)復号
1.ユーザiはm=C2/C1 simodpにより、mを求める。
【0022】
(修正ElGamal暗号の)ディジタル署名の生成
ユーザiがメッセージm∈Zに対してディジタル署名を生成する場合、次のように行う。暗号化のようにメッセージを複数ブロックに分割する方法もあるが、以下では一方向性ハッシュ関数を用いる方法を説明する。
1.ユーザiは乱数k∈Zp−1 *を生成する。
2.ユーザiはr=gkmodpを計算する。
3.ユーザiは下記の数3に示す式を満たすs(mod(p−1))計算する。
【0023】
【数3】
【0024】
4.ユーザiはmと署名r,sを検証者に送る。
【0025】
(修正ElGamal暗号の)ディジタル署名の検証
1.ユーザjは下記の数4に示す式を確認する。
【0026】
【数4】
【0027】
[対称暗号(公開鍵暗号)]
対称暗号は、暗号化鍵と復号鍵が同一の暗号であり、共通鍵暗号とも呼ばれる。1970年代後半に公開鍵暗号が現れて、従来から存在する対称暗号は慣用暗号とも呼ばれるようになった。対称暗号は、適当な長さの文字列(ブロック)ごとに同じ鍵で暗号化するブロック暗号と文字列又はビットごとに鍵を変えていくストリーム暗号に分けることができる。
【0028】
ブロック暗号には、文字の順序を置き換えて暗号化する転置式暗号や、文字を他の文字に換える換字式暗号等があり、アルゴリズムが公開さ札でいるDES(Data Encryption Standard)やIDEA(International Data Encryption Algorithm)が有名である。
【0029】
ストリーム暗号は、メッセージに乱数をXORして内容を撹乱する方式であり、無限周期の乱数列を1回限りの使い捨て鍵として用いるバーナム暗号が有名である。
【0030】
暗号に関しては、非特許文献6〜8に更に詳しい説明がある。
【0031】
[公開鍵証明書(Public Key Certificates)]
公開鍵証明書とは、公開鍵とそれに対応するユーザの識別情報(ID)の組が正しいことを、信頼できる第三者が保証した証明書である。この信頼できる第三者は認証局(Certification Authority)と呼ばれ、公開鍵証明書は具体的には認証局によるディジタル署名であり、そのディジタル署名の正当性を確認するための認証局の公開鍵は何らかの手段で広く知られている。
【0032】
公開鍵証明書の発行は、以下のような手順で行われる(図3を参照)。以下では、認証局をCA、ユーザをiと表す。整数論に関する記号の定義は、前述の説明と同じとする。認証局CAの秘密鍵をsca∈Zp−1 *、公開鍵をvca=gscamodp、ユーザiの秘密鍵をsi∈Zp−1 *、公開鍵をvi=gsimodpとする。認証局CA及びユーザiが行う計算や通信等の処理は、実際には計算機や通信ネットワークによって実現される。認証局CAとユーザiの計算や通信を行う実際の機械を、それぞれ発行装置Dcaと利用端末Tiとし、それらは認証局CA及びユーザiによって適切に管理されているものとする。
【0033】
1.ユーザiは、利用端末Tiを用いて、秘密鍵si∈Zp−1 *と公開鍵vi=gsimodpを生成し、公開鍵viを認証局CAに提出し、公開鍵証明書の発行を申請する。
【0034】
2.認証局CAは、何らかの手段、例えば、パスポートでユーザiの身元を確認し、提出された公開鍵viをデータベースに登録する。
【0035】
3.発行装置Dcaは、ユーザiの識別情報IDiと公開鍵viと証明書の管理や運用に用いる情報Xに対するディジタル署名を生成する。Xは、その証明書のシリアル番号、有効期限、認証局の公開鍵等の情報を含む。メッセージMに対する発行装置Dcaのディジタル署名をSigca(M)と表すと、(vi,IDi,X,Sigca(vi,IDi,X))がユーザiの証明書PKCiになる。一具体例として、発行装置が修正ElGamal暗号のディジタル署名方式を用いる場合を以下に述べる。発行装置Dcaは乱数k∈Zp−1 *を生成し、r=gkmodpを計算する。下記の数5に示す式を満たすs(mod(p−1))を計算する。
【0036】
【数5】
【0037】
ここで、‖は連接を表し、Sigca(vi,IDi,X)をSigca(vi‖IDi‖X)=(r,s)とした。ただし、必ずしも‖を使わなければならないというわけではなく、複数の値を一つの値にまとめることが可能で、まとめられた値から複数の元の値を取り出せる演算子であればよい。
【0038】
4.発行装置Dcaは、証明書PKCi=(vi,IDi,X,Sigca(vi,IDi,X))=(vi,IDi,X,r,s)をユーザiに発行する。証明書PKCiは、利用端末Tiに格納される。
【0039】
5.利用端末Tiは、PKCi=(vi,IDi,X,Sigca(vi,IDi,X))=(vi,IDi,X,r,s)を受け取ったら、公開鍵viとIDi及びXに対する発行装置Dcaの署名Sigca(vi,IDi,X)の正当性を確認する。つまり、下記の数6に示す式を確認する(公開鍵証明書の発行手順終了)。
【0040】
【数6】
【0041】
ユーザiと通信するユーザj、すなわち利用端末iと通信する利用端末jは、PKCi=(vi,IDi,X,r,s)を入手し、上記の数6に示した式を確認する。
【0042】
この確認を行なった利用端末jは、viを公開鍵として用いて、離散対数問題に基づく暗号方式を利用して通信文を暗号化し、暗号文を利用端末iに送信できる。或いは、利用端末iから受け取った、離散対数問題に基づくディジタル署名の正当性をviを用いて確認できる。
【0043】
公開鍵証明書には有効期限があるが、何らかの原因で変更されて無効になったが有効期隈を過ぎていない証明書は、発行装置Dcaによって証明書無効化リスト(Certificate Revocation Lists)に載せられる。ところで、安全のため公開鍵を適宜更新(変更)することが望ましいが、公開鍵を更新する際には公開鍵証明書も一緒に更新しなければならない。
【0044】
[従来の公開鍵と公開鍵証明書の更新手続き]
公開鍵と公開鍵証明書の更新手続きは、通常は以下のように行われる(図4を参照)。
1.ユーザiは、利用端末Tiを用いて、秘密鍵si´∈Zp−1 *と公開鍵vi´=gsi´modpを生成し、公開鍵vi´を認証局CAに提出する。
【0045】
2.認証局CAは初期登録のときと同様に、何らかの手段でユーザiの身元を確認し、提出された公開鍵vi´を登録する。発行装置Dcaは、新しい公開鍵証明書PKCi´=(vi´,IDi,X´,Sigca(vi´,IDi,X´))を生成,発行する。X´は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。PKCiの有効期限が残っている場合は、PKCiを証明書無効化リストに載せる。
【0046】
3.利用端末iは、公開鍵vi´とIDi及びX´に対する発行装置の署名Sigca(vi´,IDi,X´)の正当性を確認する。
【0047】
以上により、公開鍵と公開鍵証明書の更新手続きは終了する。この更新手続きは、更新の都度繰り返される。
【0048】
【非特許文献1】
R. L. Rivest, A. Shamir and L. Adleman,“A method of obtaining digital signatures and public key cryptosystems,”Communications of ACM, vol.21, No.2, pp. 120−126, 1978
【非特許文献2】
T. E. ElGamal,“A public key cryptosystem and a signature scheme based on discrete logarithms,”IEEE Transaction on Information Theory, Vol. IT−31, No.4, pp.469−472, 1985
【非特許文献3】
A. Fiat, A. Shamir,“How to prove yourself: practical solutions of identification and signature problems,”Advances in Cryptology −
CRYPT `86, pp. 186−194,1987
【非特許文献4】
C. P. Schnorr,“Efficient signature generation by smart cards,”Journal of Cryptology, vol.4, pp.161−174, 1991
【非特許文献5】
D. Pointcheval, J. Stern,“Security proofs for signature schemes,”Advances in Cryptology − EUROCRYPT `96, pp.387−398, Springer − Verlag,1996
【非特許文献6】
岡本栄司著、暗号理論入門、共立出版株式会社
【非特許文献7】
岡本龍明、山本博資著、現代暗号、産業図書
【非特許文献8】
Bruce Schneier著、Applied cryptography second editon:protocols, algorithms, and source code in C, John Wiley & Sons, Inc.
【0049】
【発明が解決しようとする課題】
上述の更新手続から明らかなように、公開鍵の更新と公開鍵証明書の更新を行うためには、新しい秘密鍵と公開鍵を生成するための計算と、認証局CAへの公開鍵の登録(物理的に出向いて行う提出或いは通信による提出)が必要となる。
そのため、ユーザ(利用端末Ti)は更新回数に比例する計算量と登録のコスト(ユーザが発行装置Dcaのところに出頭する物理的な移動コスト或いは発行装置Dcaへ送信するコスト)がかかってしまう。特に、秘密鍵と公開鍵の生成は計算量が大きいため、負担となってしまうという問題があった。また、ユーザが更新を怠けたり、忘れたりしてしまうことも問題であった。
【0050】
本発明は、上記のような点に鑑みてなされたものであり、公開鍵と公開鍵証明書を更新する際のユーザ(利用端末)の負担を減らすこと、及び、更新を確実に行うことができるようにすることを目的とする。
【0051】
【課題を解決するための手段】
本発明の公開鍵証明書システムは、発行装置と利用端末とを備えた公開鍵証明書システムであって、上記発行装置は、上記利用端末が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成手段と、上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用端末に発行する発行手段とを有し、上記利用端末は、自分の秘密情報と上記発行された補助情報とから上記新しい公開鍵に対応する秘密鍵を計算する計算手段を有し、上記発行装置が適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用端末に対して発行する点に特徴を有する。
【0052】
また、本発明の公開鍵及び公開鍵証明書の更新方法は、利用者と発行者との間で行われる公開鍵及び公開鍵証明書の更新方法であって、上記発行者側では、上記利用者が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成処理と、上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用者に発行する発行処理とを行い、上記利用者側では、自分の秘密情報と上記発行された補助情報とから上記新しい公開鍵に対応する秘密鍵を計算する計算処理を行い、上記発行者が適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用者に対して発行する点に特徴を有する。
【0053】
【発明の実施の形態】
以下、図面を参照して、本発明の公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体の実施の形態について説明する。
【0054】
図1に示すように、本実施の形態のシステムは、認証局CAの発行装置Dcaと、ユーザiの利用端末Tiとにより構成されている。
【0055】
発行装置Dcaは、利用端末Tiが登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成部101と、補助情報と新しい公開鍵と公開鍵証明書とを利用端末Tiに発行する発行部102とを備えている。
【0056】
利用端末Tiは、自分の秘密情報と発行された補助情報とから新しい公開鍵に対応する秘密鍵を計算する計算部103を有する。
【0057】
上記発行装置Dcaは、適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用端末Tiに対して発行する。
【0058】
(第1の実施の形態における公開鍵と公開鍵証明書の更新手続き)
第1の実施の形態におけるプロトコルを図2に示す。なお、図2には、ステップ0として、下記手順が書かれている。
【0059】
01.ユーザiが、利用端末Tiを用いて、秘密鍵si∈Zp−1 *と公開鍵vi=gsimodpを生成し、公開鍵viを認証局CAに提出し、公開鍵証明書の発行を申請する。
02.認証局CAが何らかの手段でユーザiの身元を確認し、提出された公開鍵viをデータベースに登録する。
03.発行装置Dcaが最初の公開鍵証明書PKCiを生成する。
04.発行装置Dcaが最初の公開鍵証明書PKCiを発行する。
05.利用端末Tiは、公開鍵証明書PKCiの正当性を確認する。
【0060】
この手順は、ユーザiがシステムに加入する際に一度だけ行われ、更新手続きには含まれない。なお、ステップ03からステップ05までの、公開鍵証明書PKCiを生成・発行し確認する手続きを省き、いきなりPKCi´を発行しても構わない。
【0061】
更新手続きのプロトコルは以下の通りである。
1.発行装置Dcaは、乱数r´∈Zp−1 *を生成し、vi´=vi r´modpを求める。
【0062】
2.発行装置Dcaは、更新された公開鍵vi´をデータベースに登録し、ユーザiの識別情報IDiと公開鍵vi´と証明書の管理に必要な情報X´に対するディジタル署名を生成する。X´は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。ユーザiの証明書PKCi´は(vi´,IDi,X´,Sigca(vi´,IDi,X´))である。
【0063】
3.発行装置Dcaは、乱数r´と更新された証明書PKCi´=(vi´,IDi,X´,Sigca(vi´,IDi,X´))をユーザiに発行する。乱数r´は、viを用いる公開鍵暗号により暗号化され、ユーザiに送られる。
【0064】
4.利用端末Tiは、PKCi´=(vi´,IDi,X´,Sigca(vi´,IDi,X´))と乱数r´の暗号文を受け取ったら、公開鍵vi´とIDi及びX´に対する発行装置の署名の正当性を確認し、r´を復号し、vi´≡vi r´≡gSi・r´(modp)を確認する。
【0065】
以上により、更新手続きが終了する。この更新手続きは、更新の都度繰り返される。
【0066】
上記の証明書PKCi´を発行されたユーザiは、vi´を公開鍵、si´=si・r´mod(p−1)を秘密鍵として、公開鍵暗号を利用できる。なお、上記実施の形態ではr´をviを用いる公開鍵暗号で暗号化する例を述べたが、r´がユーザiに送られるときに、安全な通信路を用いてユーザi(利用端末Ti)のみにr´を確実に渡すことができるのであれば、viを用いる公開鍵暗号に限る必要はなく、他の手段を用いても問題はない。
【0067】
(第2の実施の形態)
上記第1の実施の形態においては、新しい公開鍵としてviのみが変更され、底gと法pは変更されなかった。本実施の形態では、公開鍵及び底が変更される例を説明する。
【0068】
1.発行装置Dcaは、乱数r^∈Zp−1 *を生成し、g^=vi r^modpを計算するととも、下記の数7に示す式を計算し、下記の数8に示す式を満たすsi^を求める。X^は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。
【0069】
【数7】
【0070】
【数8】
【0071】
2.次に、発行装置Dcaは、Sigca(g^,vi^,IDi,X^)を求める。
【0072】
3.発行装置Dcaは、PKCi^=(g^,vi^,IDi,X^,Sigca(g^,vi^,IDi,X^))とsi^をユーザiに発行する。si^は、viを用いる公開鍵暗号により暗号化されて送られる。
【0073】
4.PKCi^より前に発行した公開鍵証明書の有効期限が残っている場合は、発行装置Dcaはそれらを証明書無効化リストに載せる。
【0074】
利用端末Tiは、以下のような処理を行う。
1.PKCi^=(g^,vi^,IDi,X^,Sigca(g^,vi^,IDi,X^))とsi^の暗号文を受け取った利用端末Tiは、g^,vi^,IDi,X^に対する発行装置のディジタル署名Sigca(g^,vi^,IDi,X^)の正当性を確認する。
【0075】
2.次に、si^を復号し、si´´・si≡si^(mod(p−1))を満たすsi´´を計算し、下記の数9に示す式を確認する。
【0076】
【数9】
【0077】
以上により、更新手続きが終了する。この更新手続きは、更新の都度繰り返される。
【0078】
なお、上記実施の形態では、si^をviを用いる公開鍵暗号で暗号化する例を述べたが、si^がユーザiに送られるときに、安全な通信路を用いてユーザi(利用端末Ti)のみに確実に渡すことができるのであれば、viを用いる公開鍵暗号に限る必要はなく、他の手段を用いても問題はない。
【0079】
ディジタル署名を利用する場合、ユーザi(利用端末Ti)は、viの代わりにvi^を、gの代わりにg^を、siの代わりにsi´´を用いて、離散対数問題に基づくディジタル署名方式を利用する。暗号通信を行う場合、ユーザj(利用端末Tj)は、viの代わりにvi^を、gの代わりにg^を用いて、離散対数問題に基づく暗号方式を利用して通信文をユーザi(利用端末Ti)に送る。
【0080】
一具体例として、ユーザi(利用端末Ti)がディジタル署名方式として修正ElGamal暗号のディジタル署名方式を用いる場合を述べる。
【0081】
1.利用端末Tiは、メッセージm∈Zに対して、乱数ki∈Zp−1 *を生成し、sig1=g^kimodpを計算し、下記の数10に示す式を満たすsig2を求める。
【0082】
【数10】
【0083】
2.利用端末Tiは、PKCi^とmと署名(sig1,sig2)を検証者(他の端末)に送る。
【0084】
3.検証者(他の端末)は、PKCi^=(g^,vi^,IDi,X^,Sigca(g^,vi^,IDi,X^))の正当性を、認証局CAの公開鍵で確認し、g^,vi^,IDi,X^が認証局CAによって保証されていることを確かめる。
【0085】
4.検証者(他の端末)は、下記の数11に示す式を確認する。
【0086】
【数11】
【0087】
(第3の実施の形態)
上記第2の実施の形態では、認証局CAがg^,vi^,IDi,X^に対するディジタル署名Sigca(g^,vi^,IDi,X^)を生成し、ユーザに発行していた。ところで、下記の数12に示す式を満たすg^とsi´´を求めることは、認証局CAとユーザiの両者が前述の手続きに従うときのみに限って可能である。
【0088】
【数12】
【0089】
認証局CAは、g^とsi´を求めることはできるが、ユーザiの秘密情報siを知らないので、si´´≡(si^/si)・(mod(p−1))を単独で求めることはできない。一方、認証局CAの秘密情報scaを知らないユーザiは、g^とsi´を単独で求めることはできない。また、認証局CAでも、ユーザiでもない複数のユーザが協力したとしてもsiもscaも知らないので、g^とsi´´を求めることはできない。
【0090】
よって、下記の数13に示す式を満たすsi´´を有するユーザは、認証局CAからsi^を発行されたユーザのみである。
【0091】
【数13】
【0092】
ところで、下記の数14に示す式は、g^とX^を除けばすべて公開の情報であるので、g^とX^が与えられれば誰でも計算して求めることができる。よって、g^,vi^,IDi,X^に対する認証局CAのディジタル署名Sigca(g^,vi^,IDi,X^)を省くことができる。
【0093】
【数14】
【0094】
この場合、(g^,IDi,X^)が公開鍵でありかつ公開鍵証明書をも兼ねているとみなすことができる。g^,IDi,X^の正当性は、その正規の所有者(利用端末)が生成したディジタル署名の正当性を検証するときに同時に確認可能である。
【0095】
一具体例として、前述の具体例と同じ修正ElGamal暗号のディジタル署名をユーザi(利用端末Ti)が用いる場合を説明する。
【0096】
1.発行装置Dcaは、乱数r〜∈Zp−1 *を生成し、g〜=vi r〜modpを計算する。
【0097】
2.次に、発行装置Dcaは、下記の数15に示す式を満たすsi〜を求める。X〜は、その証明書のシリアル番号、有効期限、認証局の公開鍵等の(更新された)情報を含む。
【0098】
【数15】
【0099】
3.発行装置Dcaは、PKCi〜=(g〜,IDi,X〜)とsi〜を利用端末Tiに発行する。si〜は、viを用いる公開鍵暗号によって暗号化されて送られる。
【0100】
4.PKCi〜より前に発行した公開鍵証明書の有効期限が残っている場合は、発行装置Dcaは、それらを証明書無効化リストに載せる。
【0101】
5.PKCi〜を受け取った利用端末Tiは、si〜を復号し、si´´´・si≡si〜(mod(p−1))を満たすsi´´´(mod(p−1)を計算し、下記の数16に示す式を確認する。
【0102】
【数16】
【0103】
6.次に、利用端末Tiは、メッセージm∈Zに対して、乱数ki∈Zp−1 *を生成し、sig1=gki〜modpを計算し、下記の数17に示す式を満たすsig2を求める。
【0104】
【数17】
【0105】
7.利用端末Tiは、PKCi〜=(g〜,IDi,X〜)とmと署名(sig1,sig2)を検証者(他の端末)に送る。
【0106】
8.検証者(他の端末)は、下記の数18に示す式を確認する。
【0107】
【数18】
【0108】
この簡略化された公開鍵証明書は、通常の公開鍵証明書には必要な、公開鍵に対する発行装置のディジタル署名を省くことができるため、証明書全体のサイズが小さいという特徴がありメモリのコストを下げる効果がある。
【0109】
なお、上記実施の形態では、si〜をviを用いる公開鍵暗号で暗号化する例を述べたが、si〜がユーザiに送られるときに、安全な通信路を用いてユーザi(利用端末Ti)のみに確実に渡すことができるのであれば、viを用いる公開鍵暗号に限る必要はなく、他の手段を用いても問題はない。
【0110】
(その他の実施の形態)
上述した実施の形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置或いはシステム内のコンピュータに対し、上記実施の形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステム或いは装置のコンピュータ(CPU或いはMPU)に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【0111】
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード自体は本発明の範疇に含まれる。そのプログラムコードの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク(LAN、インターネット等のWAN、無線通信ネットワーク等)システムにおける通信媒体(光ファイバ等の有線回線や無線回線等)を用いることができる。
【0112】
また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0113】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施の形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)或いは他のアプリケーションソフト等と共同して上述の実施の形態の機能が実現される場合にもかかるプログラムコードは本発明の実施の形態に含まれることはいうまでもない。
【0114】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合にも本発明に含まれることはいうまでもない。
【0115】
なお、上記実施の形態において示した各部の形状及び構造は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0116】
【発明の効果】
以上説明したように、本発明によれば、発行処理の際に認証局(発行装置)はユーザが最初に登録した情報と乱数とから新しい公開鍵を生成するので、ユーザ(利用端末)から情報を受け取る必要が無い。従って、必要なときに認証局(発行装置)単独で新しい公開鍵とそれに対応する公開鍵証明書を生成し、ユーザ(利用端末)に発行できる。ユーザ(利用端末)は新しい秘密鍵と公開鍵の生成を行う必要は無く、認証局(発行装置)に情報を送る必要も無い。
【0117】
つまり、認証局(発行装置)はユーザの新しい公開鍵とそれに対応する公開鍵証明書を一方的に発行することができる。従って、たとえユーザ(利用端末)が鍵の変更を忘れてしまったとしても、認証局(発行装置)が新しい公開鍵とそれに対応する公開鍵証明書を生成することができ、古い公開鍵証明書は証明書無効化リストに載せることができる。これにより、公開鍵の変更に関してユーザ(利用端末)の負担を減らすことができ、変更を確実に行うことが可能となる。
【図面の簡単な説明】
【図1】システムの構成を示す図である。
【図2】第1の実施の形態における公開鍵証明書更新プロトコルを示す図である。
【図3】公開鍵証明書発行プロトコルを示す図である。
【図4】従来の公開鍵証明書更新プロトコルを示す図である。
【符号の説明】
Dca 発行装置
Ti 利用端末
101 生成部
102 発行部
103 計算部
Claims (9)
- 発行装置と利用端末とを備えた公開鍵証明書システムであって、
上記発行装置は、上記利用端末が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成手段と、上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用端末に発行する発行手段とを有し、
上記利用端末は、自分の秘密情報と上記発行された補助情報とから上記新しい公開鍵に対応する秘密鍵を計算する計算手段を有し、
上記発行装置が適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用端末に対して発行することを特徴とする公開鍵証明書システム。 - 利用端末が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成手段と、
上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用端末に発行する発行手段とを備えたことを特徴とする発行装置。 - 自分の秘密情報と発行装置から発行された補助情報とから、上記発行装置で生成された新しい公開鍵に対応する秘密鍵を計算する計算手段を備えたことを特徴とする利用端末。
- 利用者と発行者との間で行われる公開鍵及び公開鍵証明書の更新方法であって、
上記発行者側では、上記利用者が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成処理と、上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用者に発行する発行処理とを行い、
上記利用者側では、自分の秘密情報と上記発行された補助情報とから上記新しい公開鍵に対応する秘密鍵を計算する計算処理を行い、
上記発行者が適宜新しい公開鍵とそれに対応する公開鍵証明書とを上記利用者に対して発行することを特徴とする公開鍵及び公開鍵証明書の更新方法。 - 利用者が登録した情報と乱数を基にして、補助情報と新しい公開鍵と新しい公開鍵に対する公開鍵証明書とを生成する生成処理と、
上記補助情報と上記新しい公開鍵と上記公開鍵証明書とを上記利用者に発行する発行処理とを行うことを特徴とする公開鍵及び公開鍵証明書の更新方法。 - 自分の秘密情報と発行者から発行された補助情報とから、上記発行者により生成された新しい公開鍵に対応する秘密鍵を計算する計算処理を行うことを特徴とする公開鍵及び公開鍵証明書の更新方法。
- 請求項2に記載の発行装置の各手段又は請求項3に記載の利用端末の各手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
- 請求項5又は6に記載の公開鍵及び公開鍵証明書の更新方法の各処理をコンピュータに実行させることを特徴とするコンピュータプログラム。
- 請求項7又は8に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003208460A JP2005072648A (ja) | 2003-08-22 | 2003-08-22 | 公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003208460A JP2005072648A (ja) | 2003-08-22 | 2003-08-22 | 公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005072648A true JP2005072648A (ja) | 2005-03-17 |
Family
ID=34401736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003208460A Pending JP2005072648A (ja) | 2003-08-22 | 2003-08-22 | 公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005072648A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020241817A1 (ja) * | 2019-05-29 | 2020-12-03 | 株式会社bitFlyer Blockchain | 公開鍵の信頼性を証明するための装置、方法及びそのためのプログラム |
CN112385181A (zh) * | 2018-05-11 | 2021-02-19 | 比特飞翔区块链株式会社 | 用于证明公钥的可靠性的装置、方法及程序 |
CN112385181B (zh) * | 2018-05-11 | 2024-05-31 | 比特飞翔区块链株式会社 | 用于证明公钥的可靠性的装置、方法及程序 |
-
2003
- 2003-08-22 JP JP2003208460A patent/JP2005072648A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112385181A (zh) * | 2018-05-11 | 2021-02-19 | 比特飞翔区块链株式会社 | 用于证明公钥的可靠性的装置、方法及程序 |
CN112385181B (zh) * | 2018-05-11 | 2024-05-31 | 比特飞翔区块链株式会社 | 用于证明公钥的可靠性的装置、方法及程序 |
WO2020241817A1 (ja) * | 2019-05-29 | 2020-12-03 | 株式会社bitFlyer Blockchain | 公開鍵の信頼性を証明するための装置、方法及びそのためのプログラム |
CN114128213A (zh) * | 2019-05-29 | 2022-03-01 | 比特飞翔区块链株式会社 | 用于验证公钥的可靠性的装置、方法以及其程序 |
CN114128213B (zh) * | 2019-05-29 | 2024-05-28 | 比特飞翔区块链株式会社 | 用于验证公钥的可靠性的装置、方法以及其程序 |
US12010230B2 (en) | 2019-05-29 | 2024-06-11 | Bitflyer Blockchain, Inc. | Device and method for certifying reliability of public key, and program for same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108989053B (zh) | 一种基于椭圆曲线的无证书公钥密码体制实现方法 | |
CN108173639B (zh) | 一种基于sm9签名算法的两方合作签名方法 | |
CN113014392B (zh) | 基于区块链的数字证书管理方法及系统、设备、存储介质 | |
CN104539423B (zh) | 一种无双线性对运算的无证书公钥密码体制的实现方法 | |
JP4546231B2 (ja) | Idベース署名及び暗号化システムおよび方法 | |
US20060083370A1 (en) | RSA with personalized secret | |
JP4776906B2 (ja) | 署名生成方法及び情報処理装置 | |
US20080063193A1 (en) | Crypto-communication method, recipient-side device, key management center-side device and program | |
EP2792098B1 (en) | Group encryption methods and devices | |
CN106936584B (zh) | 一种无证书公钥密码系统的构造方法 | |
CN112104453B (zh) | 一种基于数字证书的抗量子计算数字签名系统及签名方法 | |
GB2421408A (en) | Generating an Identifier-Based Public / Private Key Pair from a Multi-Component Signature | |
CN111030821B (zh) | 一种基于双线性映射技术的联盟链的加密方法 | |
US20050240762A1 (en) | Cryptographic method and apparatus | |
Kumar et al. | An efficient implementation of digital signature algorithm with SRNN public key cryptography | |
JP4791828B2 (ja) | グループ署名システム、装置、プログラム及び方法 | |
JP2023505629A (ja) | 証明書なし認証の暗号化(clae)を用いる検証可能idベース暗号化(vibe)の方法及びシステム | |
Andreevich et al. | On Using Mersenne Primes in Designing Cryptoschemes | |
JP2006319485A (ja) | 署名装置、署名暗号化装置、検証装置、復号装置、復元装置、情報提供装置、通信システム、署名方法、署名暗号化方法及び検証方法 | |
JPH11174957A (ja) | 認証プロトコル | |
JP4533636B2 (ja) | デジタル署名システム、デジタル署名管理装置、デジタル署名管理方法及びプログラム | |
JP2005072648A (ja) | 公開鍵証明書システム、発行装置、利用端末、公開鍵及び公開鍵証明書の更新方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体 | |
JP2002023626A (ja) | 公開鍵暗号方法および公開鍵暗号を用いた通信システム | |
Imtiyaj et al. | Digital Signature Certificate: A blessing for e-Governance Application in Human Development | |
JP3862397B2 (ja) | 情報通信システム |