(57)【特許請求の範囲】
【請求項１】
ＩＤ−Ｂａｓｅｄ暗号系における複数アルゴリズムを利用する際に用いる秘密鍵を配送する鍵配送方法において、
クライアント装置の送信部が、自身が用いるアルゴリズムを識別するためのアルゴリズム識別情報、および自身を識別するためのクライアント装置識別情報を鍵サーバ装置に送信する過程と、
前記鍵サーバ装置の受信部が、前記アルゴリズム識別情報、および前記クライアント装置識別情報、を受信する過程と、
鍵サーバ装置の鍵生成部が、前記アルゴリズム識別情報および前記クライアント装置識別情報とを統合したものを楕円曲線上の点へ埋め込み、これをマスターシークレット倍することで、秘密鍵を生成する過程と、
鍵サーバ装置の送信部が、前記秘密鍵を前記クライアント装置に配送する過程と、
クライアント装置の受信部が、前記秘密鍵を受信する過程と、
を有することを特徴とする鍵配送方法。
【請求項２】
ＩＤ−Ｂａｓｅｄ暗号系における電子署名アルゴリズムおよび公開鍵暗号方式アルゴリズムを用いた、第１クライアント装置、第２クライアント装置間で行われる通信方法において、
前記第１クライアント装置の送信部が、電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを識別するためのアルゴリズム識別情報（以下、それぞれ、「第１アルゴリズム識別情報」、「第２アルゴリズム識別情報」という。）、および自身を識別するためのクライアント装置識別情報を鍵サーバ装置に送信する過程と、
前記鍵サーバ装置の受信部が、前記第１アルゴリズム識別情報、第２アルゴリズム識別情報、および前記クライアント装置識別情報、を受信する過程と、
前記鍵サーバ装置の鍵生成部が、前記第１アルゴリズム識別情報および前記クライアント装置識別情報を統合したものを楕円曲線上の点へ埋め込み、これをマスターシークレット倍することで第１秘密鍵を生成し、前記第２アルゴリズム識別情報および前記クライアント装置識別情報を統合したものを前記楕円曲線上の点へ埋め込み、これを前記マスターシークレット倍することで、第２秘密鍵を生成する過程と、
鍵サーバ装置の送信部が、前記第１秘密鍵、前記第２秘密鍵を前記第１クライアント装置に配送する過程と、
前記第１クライアント装置の署名生成部が、前記第１秘密鍵を用いて、第１メッセージの電子署名を生成する過程と、
前記第１クライアント装置の送信部が、前記第１メッセージおよび前記電子署名を前記第２クライアント装置に送信する過程と、
前記第２クライアント装置の受信部が、前記第１メッセージおよび前記電子署名を受信する過程と、
前記第２クライアント装置の検証部が、公開情報および前記クライアント装置識別情報を用いて、前記電子署名を検証する過程と、
前記第２クライアント装置の暗号化部が、前記公開情報および前記クライアント装置識別情報を用いて、第２メッセージを暗号化することで、暗号文を生成する過程と、
前記第２クライアント装置の送信部が、前記暗号文を送信する過程と、
前記第１クライアント装置の受信部が、前記暗号文を受信する過程と、
前記第１クライアント装置の復号化部が、前記第２秘密鍵を用いて前記暗号文を復号する過程と、を有することを特徴とする通信方法。
【請求項３】
ＩＤ−Ｂａｓｅｄ暗号系における複数アルゴリズムを利用する際に用いる秘密鍵を配送する鍵配送システムにおいて、
自身が用いるアルゴリズムを識別するためのアルゴリズム識別情報、および自身を識別するためのクライアント装置識別情報を記憶している記憶部と、
前記アルゴリズム識別情報、および前記クライアント装置識別情報を鍵サーバ装置に送信する送信部と、を具備するクライアント装置と、
楕円曲線についての情報、およびマスターシークレットについての情報を記憶している記憶部と、
前記アルゴリズム識別情報および前記クライアント装置識別情報とを統合したものを前記楕円曲線上の点へ埋め込み、これを前記マスターシークレット倍することで、秘密鍵を生成する鍵生成部と、
前記秘密鍵を前記クライアント装置に配送する送信部と、を具備する鍵サーバ装置と、からなる鍵配送システム。
【請求項４】
ＩＤ−Ｂａｓｅｄ暗号系における電子署名アルゴリズムおよび公開鍵暗号方式アルゴリズムを用いた、第１クライアント装置、第２クライアント装置間で行われる通信システムにおいて、
電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを識別するためのアルゴリズム識別情報（以下、それぞれ、「第１アルゴリズム識別情報」、「第２アルゴリズム識別情報」という。）、および自身を識別するためのクライアント装置識別情報を記憶している記憶部と、
第１秘密鍵を用いて、第１メッセージの電子署名を生成する署名生成部と、
第２秘密鍵を用いて暗号文を復号する復号化部と、を具備する第１クライアント装置と、
楕円曲線についての情報、およびマスターシークレットについての情報を記憶している記憶部と、
鍵サーバ装置の鍵生成部が、前記第１アルゴリズム識別情報および前記クライアント装置識別情報を統合したものを楕円曲線上の点へ埋め込み、これをマスターシークレット倍することで第１秘密鍵を生成し、前記第２アルゴリズム識別情報および前記クライアント装置識別情報とを統合したものを楕円曲線上の点へ埋め込み、これをマスターシークレット倍することで、第２秘密鍵を生成する鍵生成部と、
前記第１秘密鍵および前記第２秘密鍵を前記第１クライアント装置に配送する送信部と、を具備する鍵サーバ装置と、
公開情報および前記クライアント装置識別情報を用いて、前記電子署名を検証する検証部と、
前記公開情報および前記クライアント装置識別情報を用いて、第２メッセージを暗号化することで、暗号文を生成する暗号化部と、を具備する第２クライアント装置と、からなる通信システム。
【請求項５】
ＩＤ−Ｂａｓｅｄ暗号系における複数アルゴリズムを利用する際に用いる秘密鍵をクライアント装置に配送する鍵サーバ装置において、
楕円曲線についての情報、およびマスターシークレットについての情報を記憶している記憶部と、
前記クライアント装置が用いるアルゴリズムを識別するためのアルゴリズム識別情報、および前記クライアント装置を識別するためのクライアント装置識別情報を統合したものを前記楕円曲線上の点へ埋め込み、これを前記マスターシークレット倍することで、秘密鍵を生成する鍵生成部と、
前記秘密鍵を前記クライアント装置に配送する送信部と、を具備する鍵サーバ装置。
【請求項６】
電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを識別するためのアルゴリズム識別情報、および自身を識別するためのクライアント装置識別情報を記憶している記憶部と、
鍵サーバ装置が、前記電子署名アルゴリズムを識別するための第１アルゴリズム識別情報と前記クライアント装置識別情報を統合したものを楕円曲線上の点へ埋め込み、これをマスターシークレット倍することで生成した第１秘密鍵を用いて、第１メッセージの電子署名を生成する署名生成部と、
前記鍵サーバ装置が、前記公開鍵暗号方式アルゴリズムを識別するための第２アルゴリズム識別情報と前記クライアント装置識別情報を統合したものを前記楕円曲線上の点へ埋め込み、これを前記マスターシークレット倍することで生成した第２秘密鍵を用いて暗号文を復号する復号化部と、を具備するクライアント装置。
【請求項７】
電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを用いて、請求項６記載のクライアント装置と通信を行うクライアント装置であって、
前記公開情報と前記クライアント装置識別情報を記憶する記憶部と、
前記公開情報および前記クライアント装置識別情報を用いて、受信した電子署名を検証する検証部と、
前記公開情報および前記クライアント装置識別情報を用いて、メッセージを暗号化することで、暗号文を生成する暗号化部と、を具備するクライアント装置。
【請求項８】
請求項５に記載の鍵サーバ装置、または請求項６または７に記載のクライアント装置としてコンピュータを動作させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＩＤ−Ｂａｓｅｄ暗号系システムにおいて、鍵サーバ装置が秘密鍵を生成し、クライアント装置に配送する鍵配送方法、鍵配送システム、また配送された秘密鍵を用いてクライアント装置間で通信を行う通信方法、通信システム、鍵サーバ装置、クライアント装置に関する。
【背景技術】
【０００２】
従来、ＩＤ−Ｂａｓｅｄ暗号系における通信方法がある（非特許文献１参照）。ＩＤ−Ｂａｓｅｄ暗号系における通信方法で用いられる公開鍵は、クライアント装置を識別するためのクライアント装置識別情報Ｂ（例えば、クライアント装置のＩＤ番号）から生成されるので、クライアント装置は公開鍵を取得・登録する必要がない。以下の説明では、当該通信方法が、第１クライアント装置１１００、第２クライアント装置１２００、により行われるとする。そして、当該通信方法に用いられる秘密鍵を鍵サーバ装置１３００が生成する。また、第１クライアント装置１１００を識別するためのクライアント装置識別情報Ｂを用いるものとする。
【０００３】
ところで、当該通信方法において、複数アルゴリズムを同時運用する場合がある。例えば、電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを同時運用する場合である。図１にこれら２つのアルゴリズムを用いた通信システムの機能構成例を示す。第１クライアント装置１１００、第２クライアント装置１２００、鍵サーバ装置１３００、はそれぞれネットワーク等で接続されているが、図１、以下で説明する図２では、ネットワーク等の記載を省略する。以下では、第１クライアント装置１１００、第２クライアント装置１２００、鍵サーバ装置１３００をまとめて「三者」という。なお、三者の処理の詳細は、［発明を実施するための最良の形態］で述べるとして、ここでは、簡略化して説明する。三者が保有している情報を以下に示す。
＜鍵サーバ装置１３００＞
第１マスターシークレットｓ１についての情報
第２マスターシークレットｓ２についての情報
第１公開情報Ｐ１、ｓ１・Ｐ１
第２公開情報Ｐ２、ｓ２・Ｐ２
楕円曲線Ｄについての情報
第１クライアント装置１１００自身を識別するクライアント装置識別情報Ｂ
ここで、ｓ１、ｓ２については他に漏れないように、秘密で管理しているものであり、Ｐ１、ｓ１・Ｐ１、Ｐ２、ｓ２・Ｐ２は第１クライアント装置１１００、第２クライアント装置１２００に公開されているものである。クライアント装置識別情報Ｂは第１クライアント装置１１００により公開されているので、鍵サーバ装置１３００はクライアント装置識別情報Ｂを取得できる。
＜第１クライアント装置１１００＞
クライアント装置識別情報Ｂ
楕円曲線Ｄについての情報
ここで、クライアント装置識別情報Ｂは第１クライアント装置１１００により公開されているので、第１クライアント装置１１００は取得できる。
＜第２クライアント装置１２００＞
クライアント装置識別情報Ｂ
楕円曲線Ｄについての情報
第１公開情報Ｐ１、ｓ１・Ｐ１
第２公開情報Ｐ２、ｓ２・Ｐ２
三者がそれぞれ保有している楕円曲線Ｄについての情報とは、楕円曲線の式を示す情報であり、非特許文献１では当該楕円曲線Ｄの式の例として「ｙ２＝ｘ３＋１」が挙げられている。また、ｓ１・Ｐ１中の演算子「・」は楕円曲線における乗算を示している。つまり、Ｐ１についてｓ１回分、楕円曲線の加算処理を行うことを示す。以下、「ｓ・Ｐ」を「Ｐをマスターシークレットｓ倍する」という。三者は、演算子「・」を行う際には、楕円曲線Ｄを用いて行う。
【０００４】
鍵サーバ装置１３００は第１秘密鍵Ａ１、第２秘密鍵Ａ２を生成し、安全な通信路を通じて、第１クライアント装置１１００に配送する。また、電子署名アルゴリズムに用いる秘密鍵を第１秘密鍵Ａ１とし、公開鍵暗号方式アルゴリズムに用いる秘密鍵を第２秘密鍵Ａ２とする。そして、第１クライアント装置１１００が第１秘密鍵Ａ１、第２秘密鍵Ａ２の両方を用いる場合を考える。つまり、図１に示すように、第１クライアント装置１１００が秘密鍵Ａ１を用いて、送信対象の第１メッセージＭ１から電子署名を生成して、第１メッセージＭ１と電子署名を第２クライアント装置１２００に送信する（電子署名アルゴリズム）。また、第２クライアント装置１２００から送信された暗号文Ｍ２’を第１クライアント装置１１００が第２秘密鍵Ａ２を用いて復号する（公開鍵暗号方式アルゴリズム）。ここで、暗号文Ｍ２’は、第２クライアント装置が第２メッセージＭ２を公開鍵（クライアント装置識別情報Ｂから生成されるもの）を用いて暗号化したものである。
【０００５】
また、署名検証アルゴリズムでは第２クライアント装置１２００は、第１公開情報Ｐ１および公開鍵を用いて、署名を検証することで、第１クライアント装置が正当であるか否かを検証する。公開鍵暗号方式アルゴリズムでは、第２公開情報Ｐ２や公開鍵を用いて、第２メッセージＭ２を暗号化することで暗号文Ｍ２’を生成して、第１クライアント装置１１００に暗号文Ｍ２’を送信する。
【０００６】
次に、鍵サーバ装置１３００の鍵生成処理について簡単に説明する。第１公開情報Ｐ１、第２公開情報Ｐ２はそれぞれ、上記楕円曲線Ｄを満たす（ｘ１、ｙ１）（ｘ２、ｙ２）である。そして、第１クライアント装置のクライアント装置識別情報Ｂ、第１マスターシークレットｓ１を用いて第１秘密鍵Ａ１を生成する。また、第１クライアント装置のクライアント装置識別情報Ｂ、第２マスターシークレットｓ２を用いて第２秘密鍵Ａ２を生成する。マスターシークレット情報を用いた秘密鍵の生成手法の詳細は、［発明を実施するための最良の形態］で説明する。
【０００７】
そして、鍵サーバ装置１３００は安全な通信路を用いて、第１秘密鍵Ａ１、第２秘密鍵Ａ２を第１クライアント装置１１００に配送する。また第１秘密鍵Ａ１、第２秘密鍵Ａ２を生成する際に用いるクライアント装置識別情報Ｂには、安全性を高めるためにそのときの時間や、クライアント装置のメールアドレス、等を統合させて用いても良い。
【０００８】
秘密鍵を用いる複数のアルゴリズム（この例では電子署名アルゴリズム、公開鍵暗号方式アルゴリズム）を用いる場合に、理論上、秘密鍵Ａ１、秘密鍵Ａ２を共用して用いることも考えられる。しかし、複数のアルゴリズムを用いるために、秘密鍵を共用することは安全でないことが知られている（Cipher-Related-Attack）。つまり、アルゴリズムごとに独立した公開情報Ｐ１、Ｐ２から相互に関連を持たない秘密鍵Ａ１、Ａ２を生成する必要がある。
【非特許文献１】Dan Boneh and Matt Franklin著、「Identity-Based Encryption from the Weil Pairing」CRYPTO 2001,LNCS 2139,pp.213-229,2001
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述のように、運用されるアルゴリズムが２つの場合（つまり、上記例では電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを適用する場合）において、相互に関連を持たない秘密鍵Ａ１、Ａ２を生成するためには、ＩＤ−Ｂａｓｅｄ暗号系においては、鍵サーバ装置１３００は、アルゴリズムごとに独立した公開情報Ｐ１、Ｐ２、マスターシークレットｓ１、ｓ２を保有しておかなければならず、公開情報、マスターシークレットの管理コストが問題になっていた。更に、運用するアルゴリズム数がｕの場合は、通信システムにおいて、ｕ×公開情報＋ｕ×マスターシークレット情報が用いられ（鍵サーバ装置３００は保有しておかなければならず）、第２クライアント装置は、ｕ×公開情報を保有しなければならず、同時運用するアルゴリズムの数の増大につれて、管理するマスターシークレット情報、公開情報の数も増大してしまう。また、保有するマスターシークレット情報の数が増大するにつて、安全性の面でも問題となる。
【課題を解決するための手段】
【００１０】
この発明の鍵配送方法は、ＩＤ−Ｂａｓｅｄ暗号系における複数アルゴリズムを利用する際に用いる秘密鍵を配送するための方法である。クライアント装置の送信部が、自身が用いるアルゴリズムを識別するためのアルゴリズム識別情報、および自身を識別するためのクライアント装置識別情報を鍵サーバ装置に送信する。鍵サーバ装置の鍵生成部が、前記アルゴリズム識別情報および前記クライアント装置識別情報とを統合したものを楕円曲線上の点へ埋め込み、これをマスターシークレット倍することで、秘密鍵を生成する。鍵サーバ装置の送信部が、前記秘密鍵を前記クライアント装置に送信する。
【発明の効果】
【００１１】
鍵サーバ装置が、アルゴリズムごとに独立しており、相互に関連を持たない複数の秘密鍵を生成する際に、クライアント装置識別情報のみではなく、アルゴリズムを識別するためのアルゴリズム識別情報を用いる。従って、アルゴリズム毎に相互に関連を持たない秘密鍵を生成する際に、保有する公開情報、マスターシークレット情報を１つにすることができ、結果として、公開情報の管理コストを減少することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、発明を実施するための最良の形態を示す。なお、同じ機能を持つ構成部や同じ処理を行う過程には同じ番号を付し、重複説明を省略する。
【実施例１】
【００１３】
図２に、実施例１の通信システム５００の機能構成例を示す。図２に示すように、通信システム５００は、第１クライアント装置１００、第２クライアント装置２００、鍵サーバ装置３００により構成されている。また、図３に第１クライアント装置１００、第２クライアント装置２００、鍵サーバ装置３００の機能構成例を示し、図４、図５にこの実施例１の処理フローを示す。本発明の通信方法、通信システムは、複数アルゴリズムを同時適用する場合に用いることが好ましい。本実施例１では［背景技術］と同様に、第１クライアント装置、第２クライアント装置間において、電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを用いた通信を行う場合を説明する。無論、本発明はこれらのアルゴリズムに限られるものではない。
【００１４】
本実施例１では、具体的には、図２に示すように、第１クライアント装置１００が第１メッセージＭ１について第１秘密鍵Ａ１を用いて電子署名を生成し、第１メッセージＭ１および当該電子署名を第２クライアント装置２００に対して送信するアルゴリズム（電子署名アルゴリズム）を用いる。そして、第２クライアント装置から送信された暗号化された第２メッセージＭ２’を第１クライアント装置１００が復号することで第２メッセージＭ２を取得するアルゴリズム（公開鍵暗号方式アルゴリズム）も用いる。以下に三者が保有している情報を記す。
＜鍵サーバ装置３００＞
マスターシークレットｓについての情報
公開情報Ｐ、ｓ・Ｐ
楕円曲線Ｄについての情報
第１クライアント装置１１００自身を識別するクライアント装置識別情報Ｂ
ここで、ｓについては他に漏れないように、秘密で管理しているものであり、Ｐ、ｓ・Ｐは第１クライアント装置１１００、第２クライアント装置１２００に公開しているものである。クライアント装置識別情報Ｂは第１クライアント装置１１００により公開されているので、鍵サーバ装置１３００は取得できる（図４で説明するステップＳ１０６、Ｓ１０８により取得できる）。また、上述した従来の鍵サーバ装置１３００であれば、用いるアルゴリズム毎にマスターシークレット情報、公開情報を保有しておかなければならなかったが、本実施例の鍵サーバ装置３００は、用いるアルゴリズムが２以上であっても、マスターシークレット情報、公開情報、共に１つ保有しておけばよい。このことが、本発明の大きな特徴である。
＜第１クライアント装置１００＞
クライアント装置識別情報Ｂ
楕円曲線Ｄについての情報
ペアリング関数ｅ（）についての情報
ここで、クライアント装置識別情報Ｂは公開されているものであり、鍵サーバ装置３００および第２クライアント装置２００が取得できる。
＜第２クライアント装置２００＞
クライアント装置識別情報Ｂ
楕円曲線Ｄについての情報
ペアリング関数ｅ（）についての情報
公開情報Ｐ、ｓ・Ｐ（図４記載のステップＳ１０４により取得）
ここで、公開情報Ｐ、ｓ・Ｐは、鍵サーバ装置３００により公開されているものであるので第２クライアント装置２００は取得できる（図４で説明するステップＳ１０２、Ｓ１０４で鍵サーバ装置３００から取得する）。
【００１５】
三者が保有している楕円曲線Ｄは、上記非特許文献の例では、ｙ２＝ｘ３＋１である。以下の説明では、楕円曲線Ｄをｙ２＝ｘ３＋１として説明する。上述のように、演算「・」は楕円曲線における乗算を示し、三者が、演算子「・」による演算を行う際には、楕円曲線Ｄの式を用いて行う。また、第１クライアント装置１００、第２クライアント装置２００間ではペアリング関数ｅ（）を保有している。ペアリング関数ｅ（）については後述する。秘密鍵を使用する処理（以下、「秘密鍵使用処理」という。）に対応する処理を秘密鍵使用対応処理という。本実施例では、第１クライアント装置１００が第１メッセージＭ１について署名を生成する処理を秘密鍵使用処理であり、秘密鍵使用対応処理は、第２クライアント装置２００が署名を検証する処理である。また、第１クライアント装置１００が、暗号化された第２メッセージＭ２’を復号する処理を秘密鍵使用処理であり、秘密鍵使用対応処理は第２クライアント装置２００が第２メッセージＭ２を暗号化する処理である。
［鍵配送過程］
まず鍵配送過程について説明する（図４のステップＳ１０６〜Ｓ１１４）。準備処理として、鍵サーバ装置３００の送信部３０２が、公開情報Ｐ、ｓ・Ｐを第２クライアント装置２００に送信する。ここで公開情報Ｐ、ｓ・Ｐについて説明する。公開情報Ｐは、記憶部３０６に記憶されている。公開情報Ｐは、楕円曲線情報Ｄの楕円曲線を満たす値であり、例えば、（ｘ０、（ｘ０３＋１）１／２）である。そして、第２クライアント装置の受信部２０４が、公開情報Ｐ、Ｐ・ｓを受信し、一旦、公開情報Ｐ、Ｐ・ｓは記憶部２０６に記憶される。
【００１６】
第１クライアント装置１００の送信部１０２が、自身が用いるアルゴリズムを識別するためのアルゴリズム識別情報Ｃ、および自身を識別するためのクライアント装置識別情報Ｂを鍵サーバ装置に送信する（ステップＳ１０６）。ここで、クライアント装置識別情報Ｂは、第１クライアント装置１００を識別するためのものであればよく、第１クライアント装置１００のＩＤ番号、メールアドレス等、もしくは、これらの情報を統合したものを用いれば良い。また、アルゴリズム識別情報Ｃは、第１クライアント装置１００が用いるアルゴリズムを識別するための情報である。ｎ個のアルゴリズムを用いるのであれば、ｎ個のクライアント装置識別情報Ｂが存在することになる。本実施例１で用いるアルゴリズムは、電子署名アルゴリズム、公開鍵暗号方式アルゴリズムの２つであるので、用いるアルゴリズム識別情報は２つである。電子署名アルゴリズム、公開鍵暗号方式アルゴリズムを識別するためのアルゴリズム識別情報をそれぞれ、第１アルゴリズム識別情報Ｃ１、第２アルゴリズム識別情報Ｃ２とする。
【００１７】
以下に、アルゴリズム識別情報とアルゴリズム名称との対の具体例を記載する。
ＢＦ０１：ＩＤ−Ｂａｓｅｄ暗号アルゴリズム（Identity based encryption from the weil pairing(D.Boneh,M.Francklin)）
ＧＳ０２：階層型IＤ−Ｂａｓｅｄ暗号アルゴリズム(Hierachical id-based cryptography (C.Gentry,A.Silverberg))
鍵サーバ装置３００の受信部３０４が、第１アルゴリズム識別情報Ｃ１、第２アルゴリズム識別情報Ｃ２、クライアント装置識別情報Ｂを受信すると（ステップＳ１０８）、Ｃ１、Ｃ２、Ｂは、一旦、記憶部３０６に記憶される。そして、鍵サーバ装置３００の鍵生成部３０８が、アルゴリズム識別情報Ｃおよびクライアント装置識別情報Ｂとを統合したものを楕円曲線上の点へ埋め込み、これをマスターシークレット倍することで、秘密鍵を生成する（ステップＳ１１０）。
【００１８】
まず、アルゴリズム識別情報Ｃとクライアント装置識別情報Ｂの統合処理について説明する。当該統合処理は、複数のアルゴリズム識別情報毎に行われ、本実施例１では、第１アルゴリズム識別情報Ｃ１とクライアント装置識別情報Ｂとの統合、第２アルゴリズム識別情報Ｃ２とクライアント装置識別情報Ｂとの統合がそれぞれ行われる。また、統合処理については、統合後の情報からアルゴリズム識別情報Ｃとクライアント装置識別情報Ｂとがそれぞれ判別できるように統合することが好ましい。例えば、ＣとＢの統合処理として、ＣとＢの連結を行えばよい。Ｃ１、Ｃ２について連結された後の情報（以下、「連結後情報」という。）をＪ１、Ｊ２とすると、以下の式で表すことができる。ただし「Ｖ│Ｗ」をＶとＷの連結を示すものとする。
【００１９】
Ｊ１＝Ｃ１│Ｂ
Ｊ２＝Ｃ２│Ｂ
連結の順番は逆でも良い。次に、連結後情報Ｊ１、Ｊ２は、それぞれ楕円曲線上の点へ埋め込まれる。この「楕円曲線上の点への埋め込み処理」の手法の一例について説明する。またこの手法は、体の標数ｐがｐ≡２（ｍｏｄ３）を満たし、楕円曲線ｙ２＝ｘ３＋１で定義される偶数位数曲線の場合に用いられる。当該埋め込み処理の詳細や他の手法については、「情報セキュリティの理論と技術：神永正博・渡邊高志  共著  森北出版株式会社  ｐ１５２−ｐ１５４」などに記載されている。連結後情報Ｊ１についての楕円曲線上の点への埋め込み処理について説明する。また、連結後情報Ｊ１、Ｊ２についての埋め込み後の情報をＧ１、Ｇ２とし、ハッシュ関数をＨ（）とする。ｙ０＝Ｈ（Ｊ１）とし、ｘ０＝（ｙ０２−１）１／３を求める。
【００２０】
また、ｘ０＝（ｙ０２−１）（２ｐ−１）／３ｍｏｄｐとしてもｘ０を求めることが出来る。Ｇ１’＝（ｘ０、ｙ０）とすると、Ｇ１＝（（ｐ＋１）／ｑ）Ｇ１’を演算することで、ｑ−ｔｏｒｓｉｏｎ  ｐｏｉｎｔであるＧ１を求める。ここで、ｑはトーションナンバーを示す。同様に、Ｊ２についても埋め込み処理が行われる。《以上、楕円曲線上の点への埋め込み処理の説明終わり》
第１秘密鍵Ａ１、第２秘密鍵Ａ２はそれぞれＧ１、Ｇ２に、マスターシークレットｓ倍することで生成される。
Ａ１＝ｓ・Ｇ１
Ａ２＝ｓ・Ｇ２
生成された第１秘密鍵Ａ１、第２秘密鍵Ａ２はそれぞれ、安全な通信路を通じて、第１クライアント装置１００に配送される（ステップＳ１１２）。配送された第１秘密鍵Ａ１、第２秘密鍵Ａ２は第１クライアント装置１００の受信部１０４により受信される（ステップＳ１１４）。
【００２１】
以上が、本実施例１の鍵配送方法である。このように、本実施例１の鍵配送方法であれば、秘密鍵を生成する際に、クライアント装置識別情報Ｂのみではなく、アルゴリズム識別情報Ｃも用いる。従って、鍵サーバ装置は、用いられるアルゴリズム毎に、異なる秘密鍵を生成できる。よって、適用されるアルゴリズム毎にマスターシークレット情報を保有する必要は無く、結果として、鍵サーバ装置３００が保有するマスターシークレット情報が１つでよくなり、安全性が向上し、管理コストを下げることが出来る。
【００２２】
次に、第１秘密鍵Ａ１を用いた電子署名アルゴリズム、第２秘密鍵Ａ２を用いた公開鍵暗号方式アルゴリズムを運用する処理の流れを説明する。これらのアルゴリズムを用いた処理はそれぞれ独立したものであり、どちらの処理を先に行ってもよく、また、一方の処理の途中にもう一方の処理を行っても良い。まず、電子署名アルゴリズムについて説明する。また、上述したように、第１クライアント装置１００、第２クライアント装置２００は、同一のペアリング関数ｅ（）を保有している。ペアリング関数ｅ（）は以下の式（１）を満たす関数であり、当該式を満たせば、どのような関数でもよい。
ｅ（ａ・Ｘ、ｂ・Ｙ）＝ｅ（ｂ・Ｘ、ａ・Ｙ）    （１）
［電子署名アルゴリズム］
まず、電子署名アルゴリズムを用いた通信方法について説明する（図５記載のステップＳ１１６〜Ｓ１２２）。まず、第１クライアント装置１００の乱数生成部１１２が乱数ｒ１を生成する。そして、署名生成部１０８が第１秘密鍵Ａ１、ハッシュ関数ｈａｓｈ（）を用いて、以下の処理により、送信を所望する第１メッセージＭ１から署名Ｓｉｇ１、Ｓｉｇ２を生成する（ステップＳ１１６）。ただしｈはハッシュ値とする。
Ｓｉｇ１＝ｒ１・Ｇ１
ｈ＝ｈａｓｈ（Ｍ１、Ｓｉｇ１）
Ｓｉｇ２＝［ｒ１＋ｈ］・Ａ１
上記の式では、Ｇ１（クライアント識別情報Ｂとアルゴリズム識別情報Ｃ１とを統合したものを、楕円曲線上の点へ埋め込んだもの）が公開鍵としての役割を果たす。そして、第１クライアント装置１００の送信部１０２が、第１メッセージＭ１、電子署名Ｓｉｇ１、Ｓｉｇ２を第２クライアント装置２００に送信する（ステップＳ１１８）。第２クライアント装置２００の受信部２０４が、第１メッセージＭ１、電子署名Ｓｉｇ１、Ｓｉｇ２を受信する（ステップＳ１２０）。そして、第２クライアント装置２００の検証部２０８が以下の式に基づいて電子署名Ｓｉｇ１、Ｓｉｇ２を検証することで第１クライアント装置１００が正当であるか否かを検証する（ステップＳ１２２）。具体的には、
ｅ（ｓ・Ｐ、Ｓｉｇ１＋ｈａｓｈ（Ｍ１、Ｓｉｇ１）・Ｇ１）と、
ｅ（Ｐ、Ｓｉｇ２）と、が等しいか否かを検証し、等しいと検証されれば、第１クライアント装置１００は正当であることを検証できる。以下に検証過程の演算の流れを示す。
【００２３】
ｅ（ｓ・Ｐ、Ｓｉｇ１＋ｈａｓｈ（Ｍ１、Ｓｉｇ１）・Ｇ１）
＝ｅ（ｓ・Ｐ、ｒ１・Ｇ１＋ｈ・Ｇ１）
＝ｅ（ｓ・Ｐ、［ｒ１＋ｈ］・Ｇ１）
ここで式（１）より、
＝ｅ（Ｐ、ｓ・［ｒ１＋ｈ］・Ｇ１）
＝ｅ（Ｐ、Ｓｉｇ２）
このような演算により、電子署名Ｓｉｇ１、Ｓｉｇ２を検証できる。
［公開鍵暗号方式アルゴリズム］
次に、公開鍵暗号方式アルゴリズムを用いた通信方法について説明する（ステップＳ１２４〜Ｓ１３０）。乱数生成部２１２は、乱数ｒ２を生成する。そして、送信を所望する第２メッセージＭ２が入力されると、当該第２メッセージＭ２は、暗号化部２１６により、乱数ｒ２を用いて、以下のように、暗号化され、暗号文Ｍ２’（＝ｃ１、ｃ２）が生成される（ステップＳ１２４）。
ｃ１＝ｒ・Ｐ
ｃ２＝ｅ（ｒ・Ｇ２、ｓ・Ｐ）  ｘｏｒ  Ｍ２
ここで、ｘｏｒは排他的論理和を示し、ｃ２の式のＧ２（クライアント識別情報Ｂとアルゴリズム識別情報Ｃ２とを統合したもの）を、楕円曲線上の点へ埋め込んだもの）が公開鍵としての役目を果たす。
【００２４】
そして、第２クライアント装置２００の送信部２０２は、暗号文Ｍ２’（＝ｃ１およびｃ２）を送信する（ステップＳ１２６）。そして、第１クライアント装置１００の受信部１０４が暗号文Ｍ２’を受信する（ステップＳ１２８）。次に、第１クライアント装置の復号化部１１０が、第２秘密鍵Ａ２を用いて暗号文を復号する。復号の処理の流れを以下に示す。
【００２５】
ｅ（Ａ２、ｃ１）  ｘｏｒ  ｃ２
＝ｅ（ｓ・Ｇ２、ｒ・Ｐ）  ｘｏｒ  ｃ２
ここで、式（１）より、
＝ｅ（ｒ・Ｇ２、ｓ・Ｐ）  ｘｏｒ  ｃ２
＝Ｍ２
になり、第２メッセージＭ２を取得できる。
【００２６】
このように、本実施例１の通信方法では、第２クライアント装置２００が用いる公開情報Ｐ、Ｐ・ｓは１つでよい。従って、鍵サーバ装置３００が保有する公開情報Ｐ、Ｐ・ｓも１つでよいので、管理コストの削減を図れる。
【００２７】
このように１つのクライアント端末が複数のアルゴリズムを用いることで、複数の秘密鍵を用いるアルゴリズムを同時運用する場合であっても、鍵サーバ装置、第２クライアント装置が保有する公開情報、マスターシークレット情報は１つでもよい。
【００２８】
また、上記の説明では、秘密鍵を使用するクライアント装置が１つの場合に限って説明したが、秘密鍵を使用するクライアント装置が複数であっても同様に、上記鍵配送方法を適用できる。図６にＮ個存在する第１クライアント装置１００ｎ（ｎ＝１，．．．，Ｎ  Ｎは２以上の整数）が鍵サーバ装置３００から秘密鍵を配送される場合を示す。第１クライアント装置１００ｎは１つのクライアント装置識別情報Ｂｎを保有し、ｍｎ個のアルゴリズムを同時運用するとする。この場合には、第１クライアント装置１００ｎは１つのクライアント装置識別情報Ｂｎおよびｍｎ個のアルゴリズム識別情報を鍵サーバ装置３００に送信する。そして、鍵サーバ装置３００は、上記手法により１つのマスターシークレットｓ等からｍｎ個の秘密鍵を生成して、第１クライアント装置１００ｎに配送する。このように、用いるアルゴリズムが複数、秘密鍵を用いるクライアント装置が３以上である場合であっても、鍵サーバ装置３００が保有するマスターシークレット情報、公開情報は１つでよい。また、前準備の処理（ステップＳ１０２、Ｓ１０４）は、第２クライアント装置２００が公開情報Ｐ、Ｐ・ｓを使用する前であればいつ行っても良い。
［変形例］
次に、変形例について説明する。この変形例では、例えば電子署名アルゴリズムを用いる場合に、システムが移行し旧方式と新方式が同時利用される状況を前提とする。用いるアルゴリズムは、電子署名アルゴリズムに限られない。そしてこの前提の場合に、秘密鍵使用処理を行うクライアント装置（実施例１の説明では、第１クライアント装置）は旧方式のシステムで用いる秘密鍵（以下、「旧秘密鍵」という。）、新方式のシステムで用いる秘密鍵（以下、「新秘密鍵」という。）の２つの秘密鍵を保有することになる。この場合であっても、１つのマスターシークレット情報から旧秘密鍵、新秘密鍵を生成でき、秘密鍵使用対応処理を行うクライアント装置（上記の説明では、第２クライアント装置２００）も１つの公開情報を保有しておけば良い。
【００２９】
このように、本発明の鍵配送システム、鍵配送方法を用いれば、異なる秘密鍵を用いる状況であっても、サーバ装置が保有する公開情報、マスターシークレット情報は１つでよい。
＜ハードウェア構成＞
本発明は上述の実施の形態に限定されるものではない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００３０】
また、上述の構成をコンピュータによって実現する場合、鍵サーバ装置３００、第１クライアント装置１００、第２クライアント装置２００が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、処理機能がコンピュータ上で実現される。
【００３１】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００３２】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００３３】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【００３４】
また、本実施例で説明した鍵サーバ装置３００、第１クライアント装置１００、第２クライアント装置２００は、ＣＰＵ（Central Processing Unit）、入力部、出力部、補助記憶装置、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）及びバスを有している（何れも図示せず）。
【００３５】
ＣＰＵは、読み込まれた各種プログラムに従って様々な演算処理を実行する。補助記憶装置は、例えば、ハードディスク、ＭＯ（Magneto-Optical disc）、半導体メモリ等であり、ＲＡＭは、ＳＲＡＭ(Static Random Access Memory)、ＤＲＡＭ (Dynamic Random Access Memory)等である。また、バスは、ＣＰＵ、入力部、出力部、補助記憶装置、ＲＡＭ及びＲＯＭを通信可能に接続している。
＜ハードウェアとソフトウェアとの協働＞
本実施例の単語追加装置は、上述のようなハードウェアに所定のプログラムが読み込まれ、ＣＰＵがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
【００３６】
鍵サーバ装置３００、第１クライアント装置１００、第２クライアント装置２００の送信部、受信部は、所定のプログラムが読み込まれたＣＰＵの制御のもと駆動するＬＡＮカード、モデム等の通信装置である。鍵サーバ装置３００、第１クライアント装置１００、第２クライアント装置２００の鍵生成部３０８、検証部２０８、乱数生成部２１２、暗号化部２１０、復号化部１１０、署名生成部１０８、乱数生成部１１２は、所定のプログラムがＣＰＵに読み込まれ、実行されることによって構築される演算部である。鍵サーバ装置３００、第１クライアント装置１００、第２クライアント装置２００の記憶部は上記補助記憶装置として機能する。
【図面の簡単な説明】
【００３７】
【図１】従来の通信システムの機能構成例を示した図。
【図２】本実施例の通信システムの機能構成例を示した図。
【図３】第１端末装置、第２端末装置、鍵サーバ装置の機能構成例を示した図。
【図４】本実施例の処理フローの前半を示した図。
【図５】本実施例の処理フローの後半を示した図。
【図６】第１クライアント装置が複数存在する場合の秘密鍵などのやり取りを示した図。
【図１】
0005118556.tif 000002
【図２】
0005118556.tif 000003
【図３】
0005118556.tif 000004
【図４】
0005118556.tif 000005
【図５】
0005118556.tif 000006
【図６】
0005118556.tif 000007