(57)【特許請求の範囲】
【請求項１】
各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて生成した各エンティティ固有の秘密鍵を用いて平文を暗号文に暗号化する暗号化装置において、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせて設定した前記個人秘密乱数と前記分割ベクトルとを用いて生成した各エンティティ固有の秘密鍵に含まれている、暗号文の送信先である相手のエンティティの分割特定情報に対応する成分を選び出す成分選出器、選び出した成分の演算により前記個人秘密乱数を消去して共通鍵を生成する共通鍵生成器、及び生成した共通鍵を用いて平文を暗号文に暗号化する暗号化器を備えることを特徴とする暗号化装置。
【請求項２】
エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて、前記エンティティ固有の秘密鍵を生成する装置において、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせて前記個人秘密乱数を設定する手段と、設定した個人秘密乱数と前記分割ベクトルとを用いて前記秘密鍵を生成する手段とを備えており、前記分割ベクトルの分割ブロック数をＪ、前記分割ベクトルの各サイズをＭj （ｊ＝１，２，・・・，Ｊ）、エンティティｅの個人秘密乱数をβej(v) （ｖ＝０，１，・・・，Ｍj −１）とした場合に、全Ｊ個の分割ブロックを１または複数個のブロックを１組としてＫ組に組分けしており、γeR1 ＋γeR2 ＋・・・＋γeRK ＝ｎλ（Ｎ）（ｎ：整数、λ（・）：カーマイケル関数、Ｎ＝ＰＱ（Ｐ，Ｑは素数））を満たすようにしたことを特徴とする秘密鍵生成装置。
但し、Ｒk ：Ｊ以下の自然数を要素とする全体集合（Ｕ）の部分集合
（任意のｐ，ｑにおいてＲp ∩Ｒq は空集合、Ｒ1 ∪Ｒ2 ∪・・・∪ＲK 
は全体集合（Ｕ））
γeRk ：Ｒk に該当する分割ベクトル内の各成分における個人秘密乱数と補正項
とを演算して得られる一定値
【請求項３】
センタ装置から複数のエンティティ装置夫々へ各エンティティ固有の秘密鍵を送付し、一方のエンティティ装置が前記センタ装置から送付された該エンティティ固有の秘密鍵から求めた共通鍵を用いて平文を暗号文に暗号化して他方のエンティティ装置へ伝送し、該他方のエンティティ装置が伝送された暗号文を、前記センタ装置から送付された該エンティティ固有の秘密鍵から求めた、前記共通鍵と同一の共通鍵を用いて元の平文に復号することにより、エンティティ装置間で情報の通信を行うこととし、前記センタ装置が複数設けられており、その複数のセンタ装置夫々は、秘密鍵生成器にて、各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、
分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて、各エンティティ固有の秘密鍵を生成し、各エンティティ装置は、共通鍵生成器にて、自身固有の秘密鍵に含まれている、相手のエンティティの分割特定情報に対応する成分を用いて前記共通鍵を生成するようにした暗号通信方法において、前記センタ装置にて、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせた前記個人秘密乱数を設定し、その設定した個人秘密乱数と前記分割ベクトルとを用いて各エンティティ固有の秘密鍵を生成し、前記エンティティ装置にて、前記センタ装置から送付された自身の秘密鍵に含まれている、通信対象のエンティティの分割特定情報に対応する成分を選び出し、選び出した成分の演算により前記個人秘密乱数を消去して前記共通鍵を生成することを特徴とする暗号通信方法。
【請求項４】
送信すべき情報である平文を暗号文に暗号化する暗号化処理、及び、
送信された暗号文を元の平文に復号する復号処理を、複数のエンティティ装置間で相互に行う暗号通信システムにおいて、各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと該分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせて設定した個人秘密乱数とを用いて、各エンティティ固有の秘密鍵を生成して各エンティティ装置へ送付する複数のセンタ装置と、該センタ装置から送付された自身の秘密鍵に含まれている、通信対象のエンティティの分割特定情報に対応する成分を選び出す成分選出器、及び選出した成分の演算により前記個人秘密乱数を消去して前記暗号化処理及び復号処理に用いる共通鍵を生成する共通鍵生成器を備えた複数のエンティティ装置とを有することを特徴とする暗号通信システム。
【請求項５】
各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて生成した各エンティティ固有の秘密鍵を用いて平文を暗号文に暗号化させるコンピュータプログラムを記録してあるコンピュータでの読み取りが可能な記録媒体において、コンピュータに、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせて設定した前記個人秘密乱数と前記分割ベクトルとを用いて生成した各エンティティ固有の秘密鍵に含まれている、暗号文の送信先である相手のエンティティの分割特定情報に対応する成分を選び出す処理を成分選出器が行うように該成分選出器を制御させる手順と、コンピュータに、選び出した成分の演算により前記個人秘密乱数を消去して共通鍵を生成する処理を共通鍵生成器が行うように該共通鍵生成器を制御させる手順と、生成した共通鍵を用いて平文を暗号文に暗号化する処理を暗号化器が行うように該暗号化器を制御させる手順とを含むコンピュータプログラムを記録してあることを特徴とする記録媒体。
【請求項６】
前記分割ベクトルを誤り訂正符号の符号語で構成するようにしたことを特徴とする請求項１記載の暗号化装置。
【請求項７】
前記秘密鍵生成器にて、前記分割ベクトルを誤り訂正符号の符号語で構成することを特徴とする請求項３記載の暗号通信方法。
【請求項８】
前記センタ装置は、前記分割ベクトルを誤り訂正符号の符号語で構成するようにしたことを特徴とする請求項４記載の暗号通信システム。
【請求項９】
前記分割ベクトルを誤り訂正符号の符号語で構成するようにしたことを特徴とする請求項５記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンティティ固有の秘密鍵を生成する秘密鍵生成装置、情報の内容が当事者以外には判らないように情報を暗号化する暗号化装置、これらの装置を利用して暗号通信を行う暗号通信方法及び暗号通信システム、並びに、エンティティ固有の秘密鍵を生成するためのコンピュータプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
高度情報化社会と呼ばれる現代社会では、コンピュータネットワークを基盤として、ビジネス上の重要な文書・画像情報が電子的な情報という形で伝送通信されて処理される。このような電子情報は、容易に複写が可能である、複写物とオリジナルとの区別が困難であるという性質があり、情報保全の問題が重要視されている。特に、「コンピュータリソースの共有」，「マルチアクセス」，「広域化」の各要素を満たすコンピュータネットワークの実現が高度情報化社会の確立に不可欠であるが、これは当事者間の情報保全の問題とは矛盾する要素を含んでいる。このような矛盾を解消するための有効な手法として、人類の過去の歴史上主として軍事，外交面で用いられてきた暗号技術が注目されている。
【０００３】
暗号とは、情報の意味が当事者以外には理解できないように情報を交換することである。暗号において、誰でも理解できる元の文（平文）を第三者には意味がわからない文（暗号文）に変換することが暗号化であり、また、暗号文を平文に戻すことが復号であり、この暗号化と復号との全過程をまとめて暗号系と呼ぶ。暗号化の過程及び復号の過程には、それぞれ暗号化鍵及び復号鍵と呼ばれる秘密の情報が用いられる。復号時には秘密の復号鍵が必要であるので、この復号鍵を知っている者のみが暗号文を復号でき、暗号化によって情報の秘密性が維持され得る。
【０００４】
暗号化鍵と復号鍵とは、等しくても良いし、異なっていても良い。両者の鍵が等しい暗号方式は、共通鍵暗号方式と呼ばれ、米国商務省標準局が採用したＤＥＳ（Data Encryption Standards)はその典型例である。このような共通鍵暗号方式の従来例は、次のような３種の方法に分類できる。
【０００５】
▲１▼  第１の方法
暗号通信を行う可能性がある相手との共通鍵をすべて秘密保管しておく方法。
▲２▼  第２の方法
暗号通信の都度、予備通信により鍵を共有し合う方法（Diffie-Hellmanによる鍵共有方式，公開鍵方式による鍵配送方式など）。
▲３▼  第３の方法
各ユーザ（エンティティ）の氏名，住所などの個人を特定する公開された特定情報（ＩＤ（Identity）情報）を利用して、予備通信を行うことなく、送信側のエンティティ，受信側のエンティティが独立に同一の共通鍵を生成する方法（ＫＰＳ（Key Predistribution System），ＩＤ−ＮＩＫＳ（ID-based Non-Interactive Key Sharing Schemes) など）。
【０００６】
このような従来の３種の方法には、以下に述べるような問題がある。第１の方法では、すべての共通鍵を保管しておくようにするので、不特定多数のユーザがエンティティとなって暗号通信を行うネットワーク社会には適さない。また、第２の方法は、鍵共有のための予備通信が必要である点が問題である。
【０００７】
第３の方法は、予備通信が不要であり、公開された相手の特定情報（ＩＤ情報）とセンタから予め配布されている固有の秘密パラメータとを用いて、任意の相手との共通鍵を生成できるので、便利な方法である。しかしながら、次のような２つの問題点がある。一つは、センタがBig Brother となる（すべてのエンティティの秘密を握っており、Key Escrow System になってしまう）点である。もう一つは、ある数のエンティティが結託するとセンタの秘密を演算できる可能性がある点である。この結託問題については、これを計算量的に回避するための工夫が多数なされているが、完全な解決は困難である。
【０００８】
この結託問題の難しさは、特定情報（ＩＤ情報）に基づく秘密パラメータがセンタ秘密と個人秘密との二重構造になっていることに起因する。第３の方法では、センタの公開パラメータと個人の公開された特定情報（ＩＤ情報）とこの２種類の秘密パラメータとにて暗号系が構成され、しかも各エンティティが各自に配布された個人秘密を見せ合ってもセンタ秘密が露呈されないようにする必要がある。よって、その暗号系の構築の実現には解決すべき課題が多い。
【０００９】
【発明が解決しようとする課題】
そこで、本発明者等は、特定情報（ＩＤ情報）をいくつかに分割し、複数の各センタからその分割した特定情報（ＩＤ情報）に基づくすべての秘密鍵をエンティティに配布することにより、数学的構造を最小限に抑えることができて、結託問題の回避を可能にし、その暗号系の構築が容易であるＩＤ−ＮＩＫＳによる秘密鍵生成方法，暗号化方法及び暗号通信方法を提案している｛特願平11−16257 号，特願平11−59049 号（以下、これらを先行例という）｝。
【００１０】
結託問題を解決することを目的として提案されてきたエンティティの特定情報（ＩＤ情報）に基づく種々の暗号系が不成功となった理由は、エンティティの結託情報からセンタ秘密を割り出せないようにするための工夫を数学的構造に求め過ぎていたためである。数学的構造が複雑過ぎると、安全性を証明するための方法も困難となる。そこで、先行例の提案方法では、エンティティの特定情報（ＩＤ情報）をいくつかに分割し、分割した各特定情報（各ＩＤ情報）についてすべての秘密鍵をエンティティに配布することにより、数学的構造を最小限に抑えるようにする。
【００１１】
この先行例の提案方法では、信頼される複数のセンタが設けられ、各センタは各エンティティの分割した１つの特定情報（ＩＤ情報）に対応する数学的構造を持たない秘密鍵を生成して、各エンティティへ送付する。各エンティティは、各センタから送られてきたこれらの秘密鍵と通信相手の公開されている特定情報（ＩＤ情報）とから共通鍵を、予備通信を行わずに生成する。よって、すべてのエンティティの秘密を１つのセンタが握るようなことはなく、各センタがBig Brother にならない。
【００１２】
そして、本発明者等は、エンティティの特定情報（ＩＤ情報）の分割を利用したこの提案方法の改良を研究し続けている。特に、複数のエンティティが結託して彼らの秘密鍵のすべてを用いて特定のエンティティを攻撃するという結託攻撃に強い改良方法を研究している。
【００１３】
本発明は斯かる事情に鑑みてなされたものであり、上記提案方法を改良して結託攻撃に対してより強くした秘密鍵生成装置、暗号化装置、暗号通信方法及び暗号通信システム、並びに、エンティティ固有の秘密鍵を生成するためのコンピュータプログラムを記録した記録媒体を提供することを目的とする。
【００１４】
【課題を解決するための手段】
請求項１に係る暗号化装置は、各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて生成した各エンティティ固有の秘密鍵を用いて平文を暗号文に暗号化する暗号化装置において、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせて設定した前記個人秘密乱数と前記分割ベクトルとを用いて生成した各エンティティ固有の秘密鍵に含まれている、暗号文の送信先である相手のエンティティの分割特定情報に対応する成分を選び出す成分選出器、選び出した成分の演算により前記個人秘密乱数を消去して共通鍵を生成する共通鍵生成器、及び生成した共通鍵を用いて平文を暗号文に暗号化する暗号化器を備えることを特徴とする。
【００１５】
請求項２に係る秘密鍵生成装置は、エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて、前記エンティティ固有の秘密鍵を生成する装置において、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせた前記個人秘密乱数を設定する手段と、設定した個人秘密乱数と前記分割ベクトルとを用いて前記秘密鍵を生成する手段とを備えており、前記分割ベクトルの分割ブロック数をＪ、前記分割ベクトルの各サイズをＭj （ｊ＝１，２，・・・，Ｊ）、エンティティｅの個人秘密乱数をβej(v) （ｖ＝０，１，・・・，Ｍj −１）とした場合に、全Ｊ個の分割ブロックを１または複数個のブロックを１組としてＫ組に組分けしており、γeR1 ＋γeR2 ＋・・・＋γeRK ＝ｎλ（Ｎ）（ｎ：整数、λ（・）：カーマイケル関数、Ｎ＝ＰＱ（Ｐ，Ｑは素数））を満たすようにしたことを特徴とする。
但し、Ｒk ：Ｊ以下の自然数を要素とする全体集合（Ｕ）の部分集合
（任意のｐ，ｑにおいてＲp ∩Ｒq は空集合、Ｒ1 ∪Ｒ2 ∪・・・∪ＲK 
は全体集合（Ｕ））
γeRk ：Ｒk に該当する分割ベクトル内の各成分における個人秘密乱数と補正項
とを演算して得られる一定値
請求項３に係る暗号通信方法は、センタ装置から複数のエンティティ装置夫々へ各エンティティ固有の秘密鍵を送付し、一方のエンティティ装置が前記センタ装置から送付された該エンティティ固有の秘密鍵から求めた共通鍵を用いて平文を暗号文に暗号化して他方のエンティティ装置へ伝送し、該他方のエンティティ装置が伝送された暗号文を、前記センタ装置から送付された該エンティティ固有の秘密鍵から求めた、前記共通鍵と同一の共通鍵を用いて元の平文に復号することにより、エンティティ装置間で情報の通信を行うこととし、前記センタ装置が複数設けられており、その複数のセンタ装置夫々は、秘密鍵生成器にて、各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて、各エンティティ固有の秘密鍵を生成し、各エンティティ装置は、共通鍵生成器にて、自身固有の秘密鍵に含まれている、相手のエンティティの分割特定情報に対応する成分を用いて前記共通鍵を生成するようにした暗号通信方法において、前記センタ装置にて、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせた前記個人秘密乱数を設定し、その設定した個人秘密乱数と前記分割ベクトルとを用いて各エンティティ固有の秘密鍵を生成し、前記エンティティ装置にて、前記センタ装置から送付された自身の秘密鍵に含まれている、通信対象のエンティティの分割特定情報に対応する成分を選び出し、選び出した成分の演算により前記個人秘密乱数を消去して前記共通鍵を生成することを特徴とする。
請求項４に係る暗号通信システムは、送信すべき情報である平文を暗号文に暗号化する暗号化処理、及び、送信された暗号文を元の平文に復号する復号処理を、複数のエンティティ装置間で相互に行う暗号通信システムにおいて、各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと該分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせて設定した個人秘密乱数とを用いて、各エンティティ固有の秘密鍵を生成して各エンティティ装置へ送付する複数のセンタ装置と、該センタ装置から送付された自身の秘密鍵に含まれている、通信対象のエンティティの分割特定情報に対応する成分を選び出す成分選出器、及び選出した成分の演算により前記個人秘密乱数を消去して前記暗号化処理及び復号処理に用いる共通鍵を生成する共通鍵生成器を備えた複数のエンティティ装置とを有することを特徴とする。
請求項５に係る記録媒体は、各エンティティの特定情報を複数のブロックに分割した分割特定情報を示す分割ベクトルと、分割された各ブロック毎に設定された各エンティティ固有の個人秘密乱数とを用いて生成した各エンティティ固有の秘密鍵を用いて平文を暗号文に暗号化させるコンピュータプログラムを記録してあるコンピュータでの読み取りが可能な記録媒体において、コンピュータに、前記分割ベクトルの各成分毎に、夫々の成分毎で値を異ならせて設定した前記個人秘密乱数と前記分割ベクトルとを用いて生成した各エンティティ固有の秘密鍵に含まれている、暗号文の送信先である相手のエンティティの分割特定情報に対応する成分を選び出す処理を成分選出器が行うように該成分選出器を制御させる手順と、コンピュータに、選び出した成分の演算により前記個人秘密乱数を消去して共通鍵を生成する処理を共通鍵生成器が行うように該共通鍵生成器を制御させる手順と、生成した共通鍵を用いて平文を暗号文に暗号化する処理を暗号化器が行うように該暗号化器を制御させる手順とを含むコンピュータプログラムを記録してあることを特徴とする。
【００１６】
請求項６に係る暗号化装置は、請求項１において、前記分割ベクトルを誤り訂正符号の符号語で構成するようにしたことを特徴とする。
請求項７に係る暗号通信方法は、請求項３において、前記秘密鍵生成器にて、前記分割ベクトルを誤り訂正符号の符号語で構成することを特徴とする。
請求項８に係る暗号通信システムは、請求項４において、前記センタ装置は、前記分割ベクトルを誤り訂正符号の符号語で構成するようにしたことを特徴とする。
請求項９に係る記録媒体は、請求項５において、前記分割ベクトルを誤り訂正符号の符号語で構成するようにしたことを特徴とする。
【００１７】
先行例の提案方法では、エンティティの特定情報（ＩＤ情報）を分割した分割特定情報（分割ＩＤ情報）を示す各分割ベクトルにおいて個人秘密乱数が一定であって、その分割ベクトル内の各成分における個人秘密乱数の値が同じであるので、結託攻撃を受ける可能性があった。そこで、本発明では、各分割ベクトルにおいて個人秘密乱数を一定とせず、その分割ベクトル内の各成分に対して相異なる個人秘密乱数を設定しており、結託攻撃に対してより強くできる。
【００１８】
また、本発明では、分割特定情報（分割ＩＤ情報）を示す各分割ベクトルを誤り訂正符号の符号語で構成する。よって、この符号語に基づく特定情報（ＩＤ情報）の分割を、上記の個人秘密乱数の多様化方式に組み合わせることにより、結託攻撃に対して更なる強化を図れる。
【００１９】
【発明の実施の形態】
図１は、各エンティティの特定情報（ＩＤ情報）を複数のブロックに分割した分割特定情報を利用するＩＤ−ＮＩＫＳ方式を採用した本発明及び先行例における暗号通信システムの構成を示す模式図である。情報の隠匿を信頼できる複数（Ｊ個）のセンタ１が設定されており、これらのセンタ１としては、例えば社会の公的機関を該当できる。
【００２０】
これらの各センタ１と、この暗号系システムを利用するユーザとしての複数の各エンティティａ，ｂ，…，ｚとは、秘密通信路２a1，…，２aJ、２b1，…，２bJ、・・・、２z1，…，２zJにより接続されており、これらの秘密通信路を介して各センタ１から秘密の鍵情報が各エンティティａ，ｂ，…，ｚへ伝送されるようになっている。また、２人のエンティティの間には通信路３ab，３az，３bz，…が設けられており、この通信路３ab，３az，３bz，…を介して通信情報を暗号化した暗号文が互いのエンティティ間で伝送されるようになっている。
【００２１】
まず、本発明による改良対象の一例となる先行例の１つ（特願平11−59049 号）に示されている暗号通信方式について説明する。
【００２２】
（センタ１での準備処理）
センタ１は以下の公開鍵及び秘密鍵を準備し、公開鍵を公開する。
0003884593.tif 000002
【００２３】
各エンティティの氏名，住所などを示す特定情報であるＩＤベクトルをＬ次元２進ベクトルとし、図２に示すようにそのＩＤベクトルをブロックサイズＭ1 ，Ｍ2 ，・・・，ＭJ 毎にＪ個のブロックに分割する。例えば、エンティティｅのＩＤベクトル（ベクトルＩe ）を式（１）のように分割する。分割特定情報である各ベクトルＩej（ｊ＝１，２，・・・，Ｊ）をＩＤ分割ベクトルと呼ぶ。
【００２４】
【数１】
0003884593.tif 000003
【００２５】
（エンティティの登録処理）
エンティティｅに登録を依頼された各センタ１は、準備した鍵とエンティティｅのＪ個のＩＤ分割ベクトルについて、それぞれに対応するＪ個の秘密鍵ベクトルｓej（ｊ＝１，２，・・・，Ｊ）を以下の式（2-1)，（2-2)，・・・，（2-j)，・・・，（2-J)に従って計算する。
【００２６】
【数２】
0003884593.tif 000004
【００２７】
但し、ベクトル１は、すべての成分が１であるＪ次元のベクトルを表す。また、Ｈj ［ベクトルＩej］は対称行列Ｈj ＝（ｋem(j) ）からベクトルＩejに対応した行を１行抜き出したものを表し、［・］の操作を参照と定義する。
【００２８】
次に、第１ブロックに関して、（Ｔ＋１）個の秘密鍵ベクトルｇet（ｔ＝０，１，２，・・・，Ｔ）を以下の式（3-0)，（3-1)，（3-2)，・・・，（3-t)，・・・，（3-T)に従って計算する。
【００２９】
【数３】
0003884593.tif 000005
【００３０】
但し、ｃをスカラー、（４），（５）に示すＡ，Ｂを行列とした場合、Ｂ＝ｃA 及びＢ＝〈Ａ〉c は、それぞれ（６）及び（７）を表す。
【００３１】
【数４】
0003884593.tif 000006
【００３２】
そして、１つのセンタ１は、第１ブロックに関する（Ｔ＋１）個の秘密鍵ベクトルｇet（ｔ＝０，１，２，・・・，Ｔ）を秘密裏にエンティティｅへ送り、残りの（Ｊ−１）の各センタ１は、第２ブロック以降に関する（Ｊ−１）個の秘密鍵ベクトルｓej（ｊ＝２，３，・・・，Ｊ）を秘密裏にエンティティｅへ送る。
【００３３】
（エンティティ間の共通鍵の生成処理）
エンティティｅは、第１ブロックに関して、自身の（Ｔ＋１）個の秘密鍵ベクトルｇetの中から、通信相手のエンティティｍのＩＤ分割ベクトルであるベクトルＩm1に対応する成分のベクトルｇet［ベクトルＩm1］を選び出す。この選び出したものを（8-0)，（8-1)，・・・，（8-t)，・・・，（8-T)に示す。
【００３４】
【数５】
0003884593.tif 000007
【００３５】
次に、エンティティｅは、ｊ＝２，３，・・・，Ｊの第２，第３，・・・，第Ｊの各ブロックに関して、自身の秘密鍵ベクトルｓejの中から、エンティティｍのＩＤ分割ベクトルであるベクトルＩmjに対応する成分のベクトルｓej［ベクトルＩmj］を各ブロック毎に選び出す。この選び出したものを（9-2)，・・・，（9-j)，・・・，（9-J)に示す。
【００３６】
【数６】
0003884593.tif 000008
【００３７】
更に、（10）のように整数環上でこれらのすべての和ｙemを求める。
【００３８】
【数７】
0003884593.tif 000009
【００３９】
そして、Ｎを法として以下の（11）のような計算を行うことにより、共通鍵Ｋemを求める。この（11）の計算において、全ブロックの計算を完了することにより、個人秘密乱数αe はその逆元との乗算にて消去され、Ｊ個の個人秘密乱数βejはそれらの加算にて消去される。このＫemはエンティティｍ側から求めた共通鍵Ｋmeと一致する。
【００４０】
【数８】
0003884593.tif 000010
【００４１】
なお、上式においてｘ1em ＝ベクトルｓe1［ベクトルＩm1］と置いたが、これは、エンティティｅ自身にもわからない。また、Ｔは比較的小さな数であるので、指数部分はべき乗を順次繰り返し行うことにより計算することができる。
【００４２】
なお、上記例において、各ブロックのサイズＭj は全ブロックにおいて一定であっても良いし、その一部または全部のブロックで異なっていても良い。しかし、第１ブロックに関して秘密鍵ベクトルｇetを求めるので、全ブロックについてそのサイズを一定にした場合、第１ブロックについての秘密が大きくなってしまう。よって、第１ブロックのサイズを他のブロックのサイズよりも小さくするようにした方が良い。特に、Ｍ1 ＝１とした場合、配布する秘密を最小限にすることができ、最も安全性が高くなる。
【００４３】
以下、上記先行例と対比しながら、本発明の特徴部分について説明する。上述した先行例では、各ＩＤ分割ベクトル（各ブロック）においてエンティティｅの個人秘密乱数βej（ｊ＝１，２，・・・，Ｊ）が一定であり、その各ＩＤ分割ベクトル内の各成分における個人秘密乱数βejの値を同じに設定している。よって、各ブロック内で隣合ったもの同士を減算することによって、この個人秘密乱数βejを消去できる攻撃が考えられる。
【００４４】
そこで、本発明では、各分割ベクトル（各ブロック）において個人秘密乱数を一定とせず、その分割ベクトル内の各成分に対して相異なる個人秘密乱数βej(v) （ｊ＝１，２，・・・，Ｊ、ｖ＝０，１，・・・，２Mj−１）を設定する。
【００４５】
本発明では、センタ１で、以下の公開鍵及び秘密鍵を準備し、公開鍵を公開する。
0003884593.tif 000011
【００４６】
なお、部分集合ＲK の作り方は、各エンティティにおいて異なっていても良いことは勿論である。また、１つの部分集合ＲK における要素の個数も任意であって良い。
【００４７】
上述した先行例と同様、前記式（１）のように、エンティティｅのＩＤベクトル（ベクトルＩe ）を分割する。そして、各センタ１は、準備した鍵とエンティティｅのＪ個のＩＤ分割ベクトルについて、それぞれに対応するＪ個の秘密鍵ベクトルｓej（ｊ＝１，２，・・・，Ｊ）を計算する。ここで、本発明では、ｊ番目のセンタからエンティティｅへ配布される秘密鍵ベクトルｓejにおいて、各成分毎に異なる乱数を用いており、２ブロック目以降のベクトルｓejは、一般化した形で以下の式（12-2），（12-3），・・・，（12-J）で与える。なお、以下の例では、各ブロックのサイズをＭj ＝１としている。本発明の式（12-2），（12-J）は、先行例の式（２-2），（２-J）にそれぞれ対応している。
【００４８】
【数９】
0003884593.tif 000012
【００４９】
このようにした場合、乱数の総和βe2＋βe3＋・・・＋βeJは２J-1 通りの値をとるので、比較的小さなＪ、例えばＪ＝21としても、その数は２20≒106 となり、実用上の大きな障害になってしまう。そこで、Ｓブロック毎に２S 通りに広がる乱数値βei＋・・・＋βe,i+S-1 を一定値に変換することを考える。
【００５０】
体Ｆ2 上のＩＤベクトルを一般的に以下（13）のように表す。
ＩＤ2 ＝（ｂ1 ，ｂ2 ，・・・，ｂJ ）      …（13）
ここで、Ｓ＝２とし、２ビットでペアを考える。なお、任意のペアを一般に（ｂi ，ｂj ）と表記する。また、すべてのペアで重複なく全体を覆うものとし、ペアの組合せ（上記Ｒk のパターン）はエンティティｅに教えることとする。
【００５１】
そして、部分和Ｓbibjに対し、乱数値を一定値γeij に変換するために補正項Ｃbibjを以下のように加算する。但し、すべてのペア（ｉ，ｊ）について、γeij を加算するとλ（Ｎ）となるようにγeij を決める。まず、Ｓbibj，Ｃbibjは（ｂi ｂj ）の値により、それぞれ以下の式（14），（15）のように４通りで与えられる。
【００５２】
【数１０】
0003884593.tif 000013
【００５３】
従って、Ｓbibj＋Ｃbibjは以下の式（16）のように与えられる。
【００５４】
【数１１】
0003884593.tif 000014
【００５５】
第１ブロックに関しては、上述した先行例と同様に、（Ｔ＋１）個の秘密鍵ベクトルｇet（ｔ＝０，１，２，・・・，Ｔ）を計算する。そして、１つのセンタ１は、第１ブロックに関する（Ｔ＋１）個の秘密鍵ベクトルｇet（ｔ＝０，１，２，・・・，Ｔ）を秘密裏にエンティティｅへ送り、残りの（Ｊ−１）の各センタ１は、第２ブロック以降に関する（Ｊ−１）個の秘密鍵ベクトルｓej（ｊ＝２，３，・・・，Ｊ）を秘密裏にエンティティｅへ送る。
【００５６】
エンティティｅは、上述した先行例と同様に、第１ブロックに関して、自身の（Ｔ＋１）個の秘密鍵ベクトルｇetの中から、通信相手のエンティティｍのＩＤ分割ベクトルであるベクトルＩm1に対応する成分のベクトルｇet［ベクトルＩm1］を選び出す。次に、エンティティｅは、第２，第３，・・・，第Ｊの各ブロックに関して、自身の秘密鍵ベクトルｓejの中から、エンティティｍのＩＤ分割ベクトルであるベクトルＩmjに対応する成分のベクトルｓej［ベクトルＩmj］を各ブロック毎に選び出し、整数環上でこれらのすべての和ｙemを求める。
【００５７】
そして、上述した先行例と同様に、Ｎを法として共通鍵Ｋemを求める。この際、個人秘密乱数αe がその逆元との乗算にて消去されることは先行例と同じであり、また、本発明ではγeR1 ＋γeR2 ＋・・・＋γeRK ＝ｎλ（Ｎ）に設定されているので、個人秘密乱数βej(v) はそれらの加算にて消去される。
【００５８】
このように秘密鍵を生成した場合に、本発明が結託攻撃に強いことを以下に説明する。上記式（16）からγeij を消去すると、ｄe1〜ｄe3を適当な定数として、以下の式（17）で示される関係が得られる。式（17）において独立な式は明らかに２個である。
【００５９】
【数１２】
0003884593.tif 000015
【００６０】
ここで、ペア（ｂi ，ｂj ）に関わる行列の要素ｋei1 (i) ，ｋei2 (i) ，ｋej1 (j) ，ｋej2 (j) を知るためにＮT 人が結託したとする。独立な式は（４ＮT ＋２）個であり、これに対する未知数は、αe を定数と考えたとしても、（４ＮT ＋４）個となって、未知数の個数が方程式の個数を上回る。この結果、各要素ｋei1 (i) ，ｋei2 (i) ，ｋej1 (j) ，ｋej2 (j) は露呈しない。
【００６１】
また、本発明の方式における安全性について説明する。安全なＩＤ−ＮＩＫＳの必要条件として、秘密鍵生成関数及び鍵共有関数が多項式時間で分離できないことが知られている。以下に、この方式がこれらの安全性の必要条件を満たすことを示す。
【００６２】
（秘密鍵生成関数）
本発明の方式は、式（18），（19）に示すＪ個の秘密鍵生成関数を有する。
【００６３】
【数１３】
0003884593.tif 000016
【００６４】
Ｈを任意の対称行列した場合、式（20），（21）に示すように、参照関数［・］は明らかに分離不可能である。
【００６５】
【数１４】
0003884593.tif 000017
【００６６】
従って、前記式（18），（19）で表されるＪ個の秘密鍵生成関数は、式（22）に示すように、分離不可能である。
【００６７】
【数１５】
0003884593.tif 000018
【００６８】
（鍵共有関数）
この方式における鍵共有関数を、式（23）に示す。
【００６９】
【数１６】
0003884593.tif 000019
【００７０】
秘密鍵生成関数の場合と同様に、式（23）で表される鍵共有関数は、式（24）に示すように、分離不可能である。
【００７１】
【数１７】
0003884593.tif 000020
【００７２】
ところで、上述した方式にあっては、αe （ｋei1 (i) −ｋei2 (i) ），αe （ｋej1 (j) −ｋej2 (j) ）の形は露呈する。そこで、αe （ｋei1 (i) −ｋei2 (i) ）などの形では露呈しないような手法について、以下に説明する。
【００７３】
この手法では、分割ＩＤベクトルを誤り訂正符号の符号語で構成している。例えば、２次元ＩＤベクトルＩＤ2 の連続する２つの成分ｂ2n-1，ｂ2n（ｎ＝１，２，・・・，Ｊ）に対し、以下の式（25）を満たす成分ｃn ′をｂ2nの後に挿入し、ｂ2n-1，ｂ2n，ｃn ′で符号語を構成するようにする。ｃn ′挿入後のベクトルを以下の（26）のようにＩＤ2 ′と表記する。
ｂ2n-1＋ｂ2n＝ｃn ′  （mod ２）    …（25）
ＩＤ2 ′＝（ｂ1 ，ｂ2 ，ｃ1 ′，ｂ3 ，ｂ4 ，ｃ2 ′，ｂ5 ，
・・・，ｂ2J-1，ｂ2J，ｃJ ′）    …（26）
【００７４】
｛（ｂ2n-1，ｂ2n，ｃn ′）｝は符号長ｎ＝３，情報記号数ｋ＝２，最小距離ｄ＝２の線形符号となる。よって、上述した方式の場合と同様の議論により、ｄe4〜ｄe6を適当な定数として、以下の式（27）が導かれる。これらの中で独立な式は２個しかない。従って、個々のαe （ｋei1 (i) −ｋei2 (i) ）などは明らかに露呈しない。
【００７５】
【数１８】
0003884593.tif 000021
【００７６】
よって、ＩＤ分割ベクトルを誤り訂正符号の符号語で構成するこのようなＩＤ分割ベクトル作成方式に、個人秘密乱数をＩＤ分割ベクトルの各成分毎に異ならせる上述したような乱数多様化方式を組み合わせることにより、より安全な暗号通信システムを構築することが可能である。
【００７７】
次に、上述した暗号システムにおけるエンティティ間の情報の通信について説明する。図３は、２人のエンティティａ，ｂ間における情報の通信状態を示す模式図である。図３の例は、エンティティａが平文（メッセージ）Ｍを暗号文Ｃに暗号化してそれをエンティティｂへ伝送し、エンティティｂがその暗号文Ｃを元の平文（メッセージ）Ｍに復号する場合を示している。
【００７８】
１番目のセンタ１には、各エンティティａ，ｂ固有の秘密鍵ベクトルｓa1，ｓb1と（Ｔ＋１）個の秘密鍵ベクトルｇat，ｇbt（ｔ＝０，１，２，・・・，Ｔ）とを計算する秘密鍵生成器１ａが備えられている。そして、各エンティティａ，ｂから登録が依頼されると、そのエンティティａ，ｂの秘密鍵ベクトルｇat，ｇbtがエンティティａ，ｂへ送付される。
【００７９】
ｊ（ｊ＝２，３，・・・，Ｊ）番目のセンタ１には、各エンティティａ，ｂ固有の秘密鍵ベクトルｓaj，ｓbjを計算する秘密鍵生成器１ａが備えられている。そして、各エンティティａ，ｂから登録が依頼されると、そのエンティティａ，ｂの秘密鍵ベクトルｓaj，ｓbjがエンティティａ，ｂへ送付される。
【００８０】
エンティティａ側には、各センタ１から送られるこれらの秘密鍵ベクトルｇat（ｔ＝０，１，２，・・・，Ｔ），ｓaj（ｊ＝２，３，・・・，Ｊ）をテーブル形式で格納しているメモリ１０と、これらの秘密鍵ベクトルの中からエンティティｂに対応する成分であるベクトルｇat［ベクトルＩb1］（ｔ＝０，１，２，・・・，Ｔ），ベクトルｓaj［ベクトルＩbj］（ｊ＝２，３，・・・，Ｊ）を選び出す成分選出器１１と、選び出されたこれらの成分を使用してエンティティａが求めるエンティティｂとの共通鍵Ｋabを生成する共通鍵生成器１２と、共通鍵Ｋabを用いて平文（メッセージ）Ｍを暗号文Ｃに暗号化して通信路３０へ出力する暗号化器１３とが備えられている。
【００８１】
また、エンティティｂ側には、各センタ１から送られるこれらの秘密鍵ベクトルｇbt（ｔ＝０，１，２，・・・，Ｔ），ｓbj（ｊ＝２，３，・・・，Ｊ）をテーブル形式で格納しているメモリ２０と、これらの秘密ベクトルの中からエンティティａに対応する成分であるベクトルｇbt［ベクトルＩa1］（ｔ＝０，１，２，・・・，Ｔ），ベクトルｓbj［ベクトルＩaj］（ｊ＝２，３，・・・，Ｊ）を選び出す成分選出器２１と、選び出されたこれらの成分を使用してエンティティｂが求めるエンティティａとの共通鍵Ｋbaを生成する共通鍵生成器２２と、共通鍵Ｋbaを用いて通信路30から入力した暗号文Ｃを平文Ｍに復号して出力する復号器２３とが備えられている。
【００８２】
エンティティａからエンティティｂへ情報を伝送しようとする場合、まず、各センタ１で求められて、予めメモリ１０に格納されている秘密鍵ベクトルｇat（ｔ＝０，１，２，・・・，Ｔ），ｓaj（ｊ＝２，３，・・・，Ｊ）が成分選出器１１へ読み出される。そして、成分選出器11にて、エンティティｂに対応する成分であるベクトルｇat［ベクトルＩb1］（ｔ＝０，１，２，・・・，Ｔ），ベクトルｓaj［ベクトルＩbj］（ｊ＝２，３，・・・，Ｊ）が選び出されて共通鍵生成器１２へ送られる。共通鍵生成器１２にて、これらの成分を使用して（11）に従って共通鍵Ｋabが求められ、暗号化器１３へ送られる。暗号化器１３において、この共通鍵Ｋabを用いて平文Ｍが暗号文Ｃに暗号化され、暗号文Ｃが通信路３０を介して伝送される。
【００８３】
通信路３０を伝送された暗号文Ｃはエンティティｂの復号器２３へ入力される。各センタ１で求められて、予めメモリ２０に格納されている秘密鍵ベクトルｓbj（ｊ＝２，３，・・・，Ｊ），ｇbt（ｔ＝０，１，２，・・・，Ｔ）が成分選出器２１へ読み出される。そして、成分選出器２１にて、エンティティａに対応する成分であるベクトルｇbt［ベクトルＩa1］（ｔ＝０，１，２，・・・，Ｔ），ベクトルｓbj［ベクトルＩaj］（ｊ＝２，３，・・・，Ｊ）が選び出されて共通鍵生成器２２へ送られる。共通鍵生成器２２にて、これらの成分を使用して（11）に従って共通鍵Ｋbaが求められ、復号器２３へ送られる。復号器２３において、この共通鍵Ｋbaを用いて暗号文Ｃが平文Ｍに復号される。
【００８４】
このような例では、複数のセンタが設けられ、各センタはエンティティの分割した１つのＩＤ情報に対応する鍵を生成するようにしたので、すべてのエンティティの秘密を１つのセンタが握るようなことはなく、各センタがBig Brother にならない。また、各エンティティ固有の秘密鍵ベクトルが予めエンティティ側のメモリに格納されているので、共通鍵生成に要する時間が短くて済む。
【００８５】
図４は、本発明の記録媒体の実施の形態の構成を示す図である。ここに例示するプログラムは、各エンティティの特定情報（ＩＤ情報）を分割してＩＤ分割ベクトルを得る分割処理と、各エンティティにおける秘密鍵ベクトルｓej，ｇetを求める秘密鍵生成処理とを含んでおり、以下に説明する記録媒体に記録されている。なお、コンピュータ４０は、各センタ側に設けられている。
【００８６】
図４において、コンピュータ４０とオンライン接続する記録媒体４１は、コンピュータ４０の設置場所から隔たって設置される例えばＷＷＷ(World Wide Web)のサーバコンピュータを用いてなり、記録媒体４１には前述の如きプログラム４１ａが記録されている。記録媒体４１から読み出されたプログラム４１ａがコンピュータ４０を制御することにより、各センタにおいて上述の分割処理と秘密鍵生成処理とを実行する。
【００８７】
コンピュータ４０の内部に設けられた記録媒体４２は、内蔵設置される例えばハードディスクドライブまたはＲＯＭなどを用いてなり、記録媒体４２には前述の如きプログラム４２ａが記録されている。記録媒体４２から読み出されたプログラム４２ａがコンピュータ４０を制御することにより、各センタにおいて上述の分割処理と秘密鍵生成処理とを実行する。
【００８８】
コンピュータ４０に設けられたディスクドライブ４０ａに装填して使用される記録媒体４３は、運搬可能な例えば光磁気ディスク，ＣＤ−ＲＯＭまたはフレキシブルディスクなどを用いてなり、記録媒体４３には前述の如きプログラム４３ａが記録されている。記録媒体４３から読み出されたプログラム４３ａがコンピュータ４０を制御することにより、各センタにおいて上述の分割処理と秘密鍵生成処理とを実行する。
【００８９】
なお、上述した例では、特願平11−59049 号に示された秘密鍵の生成方式に本発明を適用する場合について説明したが、ＩＤ分割ベクトルと個人秘密乱数βとを用いて秘密鍵を生成するようにした他のＩＤ−ＮＩＫＳ方式（例えば特願平11−16257 号で開示した方式）についても、本発明を同様に適用できることは勿論である。
【００９０】
【発明の効果】
以上のように、本発明では、各分割ベクトルにおいて個人秘密乱数を一定とせず、その分割ベクトル内の各成分に対して相異なる個人秘密乱数を設定するようにしたので、結託攻撃に対してより強くできる。
【００９１】
また、本発明では、各分割ベクトルを誤り訂正符号の符号語で構成するようにしたので、このような分割ベクトルの形成方式を上記の個人秘密乱数の多様化方式に組み合わせることにより、結託攻撃に対して更なる強化を図れる。
【図面の簡単な説明】
【図１】本発明の暗号通信システムの構成を示す模式図である。
【図２】エンティティのＩＤベクトルの分割例を示す模式図である。
【図３】２人のエンティティ間における情報の通信状態を示す模式図である。
【図４】記録媒体の実施の形態の構成を示す図である。
【符号の説明】
１  センタ
１ａ  秘密鍵生成器
１０，２０  メモリ
１１，２１  成分選出器
１２，２２  共通鍵生成器
１３  暗号化器
２３  復号器
３０  通信路
４０  コンピュータ
４１，４２，４３  記録媒体
【図１】
0003884593.tif 000022
【図２】
0003884593.tif 000023
【図３】
0003884593.tif 000024
【図４】
0003884593.tif 000025