(57)【要約】【課題】基づく問題が安全であることが示され（つまりＮＰ完全であることが示され）、かつ、安全性の証明がつく公開鍵暗号系を構成できるように思われる鍵生成プログラムを提供することとする。【解決手段】コンピュータに、乱数生成部により作成される乱数を用いてｍ行ｎ列（ｍ、ｎは０より大きい整数）の格子基底Ｖを生成する格子基底生成部と、乱数生成部により作成される乱数を用いてｎ列の係数ベクトルｘを生成する係数ベクトル生成部と、係数ベクトル生成部が生成した係数ベクトルｘを秘密鍵として記録媒体に格納させる秘密鍵生成部と、格子基底生成部が生成した格子基底Ｖ、及び、格子基底Ｖと前記係数ベクトル生成部が生成した係数ベクトルｘとに基づいて得られるｌｐノルムＫの組を公開鍵として記録媒体に格納させる公開鍵生成部として機能させるための鍵生成プログラムとする。【選択図】図１
2007124612.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
乱数生成部により作成される乱数を用いてｍ行ｎ列（ｍ、ｎは０より大きい整数）の格子基底Ｖを生成する格子基底生成部と、
前記乱数生成部により作成される乱数を用いてｎ列の係数ベクトルｘを生成する係数ベクトル生成部と、
前記係数ベクトル生成部が生成した係数ベクトルｘを秘密鍵として記録媒体に格納させる秘密鍵生成部と、
前記格子基底生成部が生成した前記格子基底Ｖ、及び、前記格子基底Ｖと前記係数ベクトル生成部が生成した係数ベクトルｘとに基づいて得られるｌｐノルムＫの組を公開鍵として記録媒体に格納させる公開鍵生成部として機能させるための鍵生成プログラム。
【請求項２】
前記係数ベクトルｘは、０又は１を成分とするバイナリベクトルであることを特徴とする請求項１記載の鍵生成プログラム。
【請求項３】
前記格子基底Ｖにより得られる基底ベクトルは、互いに線形独立であることを特徴とする請求項１記載の鍵生成プログラム。
【請求項４】
前記ｌｐノルムのｐは１であることを特徴とする請求項１記載の鍵生成プログラム。
【請求項５】
前記格子基底Vの成分は全て非負整数であることを特徴とする請求項１記載の鍵生成プログラム。
【請求項６】
請求項１記載の鍵生成プログラムを含んでなる電子署名方式プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵生成プログラムに関する。
【背景技術】
【０００２】
近年、社会の情報化が進むにつれて、様々な機能を電子化する試みが行われている。特に、電子投票、電子契約や電子現金などの実現が試みられているが、これらのために公開鍵暗号方式、公開鍵認証方式、電子署名方式など（これらを公開鍵暗号系と総称する）が基盤技術として非常に重要な役割を果たしている。
【０００３】
公開鍵暗号系では公開鍵と秘密鍵という２つの異なる、しかし互いに数学的な関係を有する鍵の組を用いる。ここで、公開鍵はネットワーク上で公開されるので、公開鍵から秘密鍵を計算することが困難となるような数学的関係を利用しなければならない。通常は、数学的な関係として片方向の計算は容易であるが、逆方向の計算は困難であるという計算問題を用いる。システムで用いる鍵の安全性はシステム全体の安全性に多大な影響を与えるので、安全な鍵を生成する鍵生成方式を構成することは非常に重要な課題である。
【０００４】
逆方向の計算が困難な問題として、現在は素因数分解問題や離散対数問題などが用いられている。しかし、これらの問題については、難しいという予測はされているが、そのような証明は与えられていない。さらに、これらの問題を計算するアルゴリズムが長年研究されており、アルゴリズムを有効に機能させないためには鍵長を長くする必要があり、そのため公開鍵暗号系の効率が非常に悪くなってしまっている。また、量子計算機が実用化されるとこれらの問題は効率的に解くことができることが知られている。そのため、量子計算機を用いても効率的に解くことができないような問題を用いる必要がある。このような問題の候補として、ＮＰ完全と呼ばれるクラスに属する問題がある。
【０００５】
ＮＰ完全問題の中でも近年盛んに研究がなされている問題として、格子を利用した問題がある。ここで、格子とはｖ１，ｖ２，…，ｖｎをｍ次元整数ベクトル空間に属するｎ本の線形独立なベクトルとしたときに、これらの整数一次結合によって構成される空間である。ベクトルｖ１，ｖ２，…，ｖｎを格子基底と呼び行列形式でＶと略記する。また、格子ベクトルｖをｖ＝ａ１ｖ１＋ａ２ｖ２＋…＋ａｎｖｎのようにｖ１，ｖ２，…，ｖｎの一次結合として表わしたとき、それぞれの係数ａｉをベクトル形式（ａ１，ａ２，…，ａｎ）で表わし、それを係数ベクトルと呼ぶことにする。格子問題の中でも特に重要な問題として最短ベクトル問題や最近接ベクトル問題が挙げられる。また、それらの問題の近似版として近似最短ベクトル問題や近似最近接ベクトル問題がある。しかし、これらの問題は鍵生成方式が基づく問題としては扱いづらい、また、構成された公開鍵暗号系の安全性が証明できないなどの課題がある。
【０００６】
そして従来の鍵生成方式に関する技術として、例えば下記非特許文献１には、ＲＳＡ鍵生成方式が記載されており、また、例えば下記非特許文献２にはＧＧＨ鍵生成方式が記載されている。
【０００７】
ここで、ＲＳＡ鍵生成方式の例について説明する。この鍵生成方式は素因数分解問題の難しさに基づいて構成される。鍵生成者は２つの素数ｐ，ｑ（ｐとｑは同じビット長）を選び、ｎをｎ＝ｐ×ｑとして計算する。整数ｅを区間［１，φ（ｎ）］上にて、φ（ｎ）との最大公約数が１となるようにランダムに選ぶ。ここで、φ（ｎ）＝（ｐ−１）（ｑ−１）である。そして、整数ｄを区間［１，φ（ｎ）］に属する方程式ｄ×ｅ≡１（ｍｏｄ  φ（ｎ））の解として計算する。公開鍵は組（ｎ，ｅ）、秘密鍵はｄとなる。この方式においては、ｎから素因数ｐ，ｑを計算することが困難であるならば、同じく公開鍵から秘密鍵を計算することも困難である。
【０００８】
ここで、ＧＧＨ鍵生成方式の例についても説明する。この鍵生成方式は縮小格子基底を計算することの難しさに基づいて構成される。この方式での秘密鍵は格子基底Ｒであり、公開鍵はＲと同じ格子を生成する格子基底Ｂと正の実数σである。Ｒは双対直交性欠陥率（ｄｕａｌ  ｏｒｔｈｏｇｏｎａｌｉｔｙ  ｄｅｆｅｃｔ）と呼ばれる値が小さくなるように構成し、Ｂは双対直交性欠陥率が大きくなるように構成する。このような基底を生成する方法の１つとして、有限の範囲から格子基底Ｒをランダムに選び（つまり、それぞれの基底成分を有限の区間からランダムに選び）、その基底ベクトルを混ぜ合わせる（つまり、基底行列に基本変形を加える）ことで格子基底Ｂを生成することができる。双対直交性欠陥率が大きい格子基底Ｂから小さい格子基底Ｒを計算することが困難であるならば、同じく公開鍵から秘密鍵を計算することも困難となる。
【０００９】
【非特許文献１】Ｒ．Ｒｉｖｅｓｔら，“Ａ  ｍｅｔｈｏｄ  ｆｏｒ  ｏｂｔａｉｎｉｎｇ  ｄｉｇｉｔａｌ  ｓｉｇｎａｔｕｒｅｓ  ａｎｄ  ｐｕｂｌｉｃ−ｋｅｙ  ｃｒｙｐｔｏｓｙｓｔｅｍｓ”，Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，ｖｏｌ．２１，ｎｏ．２，ｐｐ．１２０−１２６，１９７８．
【非特許文献２】Ｏ．Ｇｏｌｄｒｅｉｃｈら，“Ｐｕｂｌｉｃ−Ｋｅｙ  Ｃｒｙｐｔｏｓｙｓｔｅｍｓ  ｆｒｏｍ  Ｌａｔｔｉｃｅ  Ｒｅｄｕｃｔｉｏｎ  Ｐｒｏｂｌｅｍｓ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｃｒｙｐｔｏ  ‘９７，ＬＮＣＳ  １２９４，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，１９９７．
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記非特許文献１に記載の技術では素因数分解問題の難しさが数学的に証明されていない（ＮＰ完全性の証明がされない）。また、素因数分解問題に基づく公開鍵暗号系では、鍵の長さを大きくしなければならないので、計算効率が悪いという点においても課題を有している。
【００１１】
また、上記非特許文献２に記載の技術においても、縮小格子基底を計算することの困難性（ＮＰ完全性）が証明されていない。また、公開鍵暗号系を構成した際に安全性の証明が与えられていないという点において課題を有している。
【００１２】
そこで、本発明は、上記課題を解決し、基づく問題が安全であることが示され（つまりＮＰ完全であることが示され）、かつ、安全性の証明がつく公開鍵暗号系を構成できるように思われる鍵生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明者らは、上記課題について鋭意検討を行ったところ、格子を利用した新たな問題であるＢｉｎａｒｙ  Ｅｘａｃｔ  Ｌｅｎｇｔｈ  Ｖｅｃｔｏｒ  Ｐｒｏｂｌｅｍ（ＢＥＬＶＰ）を定義し、そのＮＰ完全性を証明することによって、ＢＥＬＶＰの困難性に基づく鍵生成方式を構成できることに想到し、本発明を完成させるに至った。ＢＥＬＶＰとは入力として格子基底Ｖと格子ベクトルのノルムＫが与えられたときに、格子基底Ｖが張る格子においてノルムＫをもち、かつ、係数ベクトルがバイナリベクトルであるような格子ベクトルを計算する問題である。そして、ＢＥＬＶＰはＮＰ完全であることが証明される。また、係数ベクトルをバイナリベクトルに制限せず、整数ベクトルとして計算問題を構成することも可能である。この場合はＮＰ完全であることは証明されていないが、ＢＥＬＶＰと同様に難しい計算問題であることが予想される。ＢＥＬＶＰにおいて、格子基底Ｖの各成分を非負整数、用いるノルムをｌ１ノルムに制限した場合は安全性証明可能な公開鍵暗号系を構成する際に有用であるように思われる。ｌ１ノルムに関しては、２つの正成分を持つベクトルｘ，ｙとスカラーα≧０に対して、｜ｘ＋ｙ｜＝｜ｘ｜＋｜ｙ｜，｜αｘ｜＝α｜ｘ｜が成立する。このような算術演算が可能であることにより、安全性証明可能な公開鍵暗号系を構成できる。また、ｌ１ノルムの計算では高々ｍ回の加算のみが行われるので、ｌ１ノルムの計算は非常に効率的に行われる。従って、ｌ１ノルムを用いた公開鍵暗号系も効率的な計算が可能になると思われる。
【００１４】
即ち、本発明に係る鍵生成プログラムは、基づく問題が安全であることが示され、かつ、安全性の証明が付く効率的な公開鍵暗号系を構成できる。
【００１５】
より具体的に、本鍵生成プログラムは、コンピュータに、乱数生成部により作成される乱数を用いてｍ行ｎ列（ｍ、ｎは０より大きい整数）の格子基底Ｖを生成する格子基底生成部と、乱数生成部により作成される乱数を用いてｎ列の係数ベクトルｘを生成する係数ベクトル生成部と、係数ベクトル生成部が生成した係数ベクトルｘを秘密鍵として記録媒体に格納させる秘密鍵生成部と、格子基底生成部が生成した格子基底Ｖ、及び、格子基底Ｖと係数ベクトル生成部が生成した係数ベクトルｘとに基づいて得られるｌｐノルムＫの組を公開鍵として記録媒体に格納させる公開鍵生成部と、して機能させる。
【００１６】
また、本鍵生成プログラムにおいて、係数ベクトルｘは、０又は１を成分とするバイナリベクトルであることも望ましく、格子基底Ｖにより得られる基底ベクトルは、互いに線形独立であり、成分は非負整数とすることも望ましく、ｌｐノルムのｐは１であることも望ましい。また、本鍵生成プログラムは、電子署名方式プログラム、公開鍵暗号方式プログラム、公開鍵認証方式プログラムなどに代表される全ての公開鍵暗号系に用いることができる。
【００１７】
ここで、ｌｐノルムとはｘをｍ次元整数ベクトルとするときに、ｍ個の成分の絶対値それぞれをｐ乗し、その総和をとり、さらにその総和に対してｐ乗根をとった値である。問題ＹがＮＰ完全問題であるとは、ＹがＮＰに属し、かつ、ＮＰに属する任意の問題がＹに多項式時間多対一帰着するときにいう。多項式時間多対一帰着するとは、ある２つの問題ＸとＹに対して、ｘがＸに属するときのみｆ（ｘ）がＹに属するような多項式時間計算可能関数ｆが存在するときにいう。問題ＸがＮＰに属するとは、ｘがＸに属するかどうかを判定する非決定性多項式時間チューリング機械が存在するときにいう。
【発明の効果】
【００１８】
以上により、鍵生成方式が基づく問題の困難性の証明が与えられ、かつ、格子上での算術演算が定義されたため、基づく問題が安全であることが示され、安全性の証明が付く効率的な公開鍵暗号系を構成できるように思われる鍵生成プログラムを提供することができる。
【００１９】
更には、基づく問題を破る効率的なアルゴリズムが存在しないため、鍵長を短くすることが可能となり、また、公開鍵暗号系を構成する際に用いる計算も効率的であるため、本鍵生成方式を利用した公開鍵暗号系は効率的な計算が可能になると予測される。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態について図面を参照しつつ詳細に説明する。ただし、本発明は多くの異なる態様による実施が可能であり、本実施形態に限定されるものではない。
【００２１】
（実施形態１）
図１は、本実施形態に係る鍵生成プログラムを電子署名方式に用いる場合の処理を表す図である。本鍵生成プログラム１１は、電子署名方式プログラム１に組み込まれて機能する。本電子署名方式プログラム１は、作成された文書データに対し、文書データ及び鍵生成プログラム１１により生成される秘密鍵に基づき、署名された文書データを作成する。この署名された文書データは他者に送付が可能であり、その送付された他者は公開鍵を参照することでこの署名された文書データが改変等されていないこと等の検証作業を行うことができる。
【００２２】
図２は、本電子署名方式プログラムの機能ブロックを示す図である。本電子署名方式プログラムは、鍵生成プログラム１１と、署名作成プログラム１２とを少なくとも有して構成されている。また鍵生成プログラム１１は更に、乱数生成部１１１と、格子基底生成部１１２、公開鍵生成部１１３、係数ベクトル生成部１１４、秘密鍵生成部１１５と、を有して構成されている。なお署名作成プログラム１２は、上記鍵生成プログラムが生成する秘密鍵と、文書データとに基づき署名された文書データを作成する。なお、本電子署名方式プログラムは、例えばパーソナルコンピュータにおけるハードディスク等の記憶媒体に格納され、ユーザーのニーズに応じて実行される。
【００２３】
ここで鍵生成プログラム１１における処理について具体的に説明する。まず、鍵生成プログラム１１は、格子基底生成部１１２においてｍ行ｎ列の格子基底Ｖを作成する（ｍ、ｎは０より大きい整数であり、ｍは格子の次元、ｎは格子のランク（セキュリティパラメータ）である。）。なおここで格子基底Ｖのそれぞれの成分はある程度のビット長を有する乱数として乱数生成部１１１により選ばれる。なおこの格子基底生成部１１２により作成される格子基底Ｖは、公開鍵生成部１１３が生成する公開鍵の一部となり、データとして記憶媒体に格納される。また、格子基底生成部１１２は、この作成された格子基底Ｖから得られる基底ベクトルが互いに線形独立であるか否かを判定する。なお基底ベクトルとは、格子基底Ｖをｍ行１列の列ベクトルに分解した場合における各列ベクトルをいう。基底ベクトルが互いに線形独立であるか否かの判断は周知な手法により計算することができ、特段に限定されるわけではないが、格子基底Ｖの行列式を計算することにより確認できる。なお、本実施形態においては、計算の簡略化のため基底行列の成分はいずれも非負整数であることが極めて望ましいが、計算の困難さを伴う場合を許容するのであれば、整数でない場合も可能ではある。
【００２４】
一方、係数ベクトル作成部１１４は、ｎ次元バイナリベクトルの係数ベクトルｘを作成する。この成分は、乱数生成部１１１によりランダムに選択され、各成分は０又は１である。なお、この係数ベクトル作成部１１４により作成された係数ベクトルは、秘密鍵となり、秘密鍵生成部１１５においてデータとして記憶媒体に格納される。なおここで、係数ベクトルｘの成分は０又は１のバイナリデータであることが鍵の長さの観点から極めて望ましいが、これを許容できるのであれば整数も任意に選択できる。
【００２５】
次に、公開鍵生成部１１３は、上記作成された格子基底Ｖと係数ベクトルｘに基づいて格子ベクトルＶｘを求め、この格子ベクトルＶｘのｌｐノルムＫを計算し、データとして記憶媒体に格納する。ここでｌｐノルムＫとは、以下の式で与えられる。なおｐは、１以上の整数であれば特段に限定されるものではないが、本実施形態では計算の容易性の観点から１の場合を採用する。
【化１】
2007124612.tif 000003
【００２６】
この結果、公開鍵生成部１１３は、格子基底Ｖ及び求めたｌｐノルムＫの組を鍵（Ｖ，Ｋ）として記憶媒体に格納する。これにより、本鍵生成プログラムは秘密鍵及び公開鍵を生成することができる。
【００２７】
格子基底の成分が非負整数であり、係数ベクトルがバイナリベクトルであり、ｌｐノルムのｐが１である場合の署名生成は以下のようにして行われる。まず、署名生成者はランダムな係数ベクトルｒを選択する。これは署名者の乱数生成部により空間［０，Ｎ］ｎからランダムに選択される。ここで、Ｎはある程度の大きさを持つ正の定数である。そして上記で作成された係数ベクトルｒと署名者の公開鍵記憶部に記憶されている格子基底Ｖに基づいて格子ベクトルＶｒを生成し、この格子ベクトルのｌ１ノルムｃを計算する。そして署名者は署名を付したい文書ｍと、ｌ１ノルムｃのハッシュ値ｅ＝ｈ（ｍ，ｃ）を計算する。ここで、用いるハッシュ関数ｈは暗号学的に安全であることが示されているものであれば、任意のハッシュ関数を用いることができる。そして、最後に署名成分ｙをｙ＝ｒ＋ｅｘとして計算する。ここで、ｘは署名者の秘密鍵記憶部に保存されている署名者の秘密鍵である。最後に署名者は（ｅ，ｙ）を文書ｍに対する署名として出力する。
【００２８】
署名検証に関しては、検証者は入力として受け取った文書ｍと文書ｍに関する署名（ｅ，ｙ）に対して、署名者の公開鍵（Ｖ，Ｋ）を用いて以下のような計算を行う。ここで、署名者の公開鍵は公開されて配布されており、検証者はその公開鍵を得て自身のコンピュータの公開鍵記憶部に記憶してあるとする。まず、ベクトルｙを係数ベクトルとする格子ベクトルＶｙを計算し、そのｌ１ノルムｄを計算する。そして、ｄからｅＫを減算し、その値と文書ｍとに基づいて計算されるハッシュ値ｈ（ｍ，ｄ−ｅＫ）とｅが等しくなるかを検証する。等しいならば署名（ｅ，ｙ）は署名者によって正しく作成された署名である。等しくないならば、検証者は署名が偽造されている、又は、文書が改変されているとして、署名を拒否する。なおこの署名検証はプログラムとして、電子署名方式プログラムの一部として組み込むことが可能であるし、単独のプログラムとして実行させることも可能である。
【００２９】
ここで、上記の署名方式の安全性について説明する。上記の署名方式の安全性は、Ｆｏｒｋｉｎｇ補題やＩＤ  Ｒｅｄｕｃｔｉｏｎ補題を用いて証明することが可能である。
【００３０】
以上、本実施形態に係る鍵生成プログラムにより、基づく問題が安全であることが示され、かつ、安全性の証明が付く効率的な公開鍵暗号系を構成できるように思われる鍵生成プログラムを提供することができる。
【００３１】
（実施形態２、３）
実施形態１では、電子署名方式プログラムに鍵生成プログラムを用いる例を示したが、本鍵生成プログラムは、公開鍵暗号方式、公開鍵認証方式にも応用が可能である。図３に本鍵生成プログラムを公開鍵暗号方式プログラムに組み込んだ例を、図４に公開鍵認証方式プログラムに組み込んだ例を示す。
【００３２】
図３に記載の公開鍵暗号方式プログラムは、作成された文書データを公開暗号化方式プログラムにより暗号文データとする。なおこの場合において、公開鍵暗号化方式プログラム２は、鍵生成プログラム２１、暗号化プログラム２２、とを有して構成され、鍵生成プログラム２１は実施形態１とほぼ同様の構成を採用することができる。なおこの場合において、作成された秘密鍵は、暗号文データの復号に用いられ、作成された公開鍵は、文書データの暗号化に利用され、公開鍵暗号方式を実現できる。なお暗号化プログラム２２は、鍵生成プログラム２１により作成された公開鍵を利用し、暗号化された文書データを作成することができる。
【００３３】
図４に記載の公開鍵認証方式プログラムは、ユーザ（証明者）の自己正当性を証明する。なおこの場合において、公開鍵認証方式プログラム３は、鍵生成プログラム３１と、証明者プログラム３２、検証者プログラム３３を用いて構成され、鍵生成プログラム３１は実施形態１とほぼ同様の構成を採用することができる。なおこの場合において作成された秘密鍵は証明者の自己正当性の証明に用いられ、公開鍵は、検証者が証明者の正当性を検証する際に用いられ、証明者プログラムと検証者プログラムが互いに通信することにより、認証作業を行うことができる。
【００３４】
格子基底の成分が非負整数であり、係数ベクトルがバイナリベクトルであり、ｌｐノルムのｐが１である場合の公開鍵認証方式は以下のようにして行われる。まず、証明者はランダムな係数ベクトルｒを選択する。これは証明者の乱数生成部により空間［０，Ｎ］ｎからランダムに選択される。ここで、Ｎはある程度の大きさを持つ正の定数である。そして上記で作成された係数ベクトルｒと証明者の公開鍵記憶部に記憶されている格子基底Ｖに基づいて格子ベクトルＶｒを生成し、この格子ベクトルのｌ１ノルムｃを計算する。そして証明者はｌ１ノルムｃを検証者に送信する。検証者はｃを受け取った後に、整数ｅをランダムに選ぶ。ここで、ｅは検証者の乱数生成部により区間［０，Ｌ］からランダムに選ばれる。検証者は証明者にｅを送信する。証明者はｅを受け取った後、係数ベクトルｙをｙ＝ｒ＋ｅｘとして計算する。ここで、ｘは証明者の秘密鍵記憶部に保存されている証明者の秘密鍵である。証明者は係数ベクトルｙを検証者に送信する。
【００３５】
検証者はｙを受信した後、証明者の公開鍵（Ｖ，Ｋ）を用いて以下のような計算を行う。ここで、証明者の公開鍵は公開されて配布されており、検証者はその公開鍵を得て自身のコンピュータの公開鍵記憶部に記憶してあるとする。まず、ベクトルｙを係数ベクトルとする格子ベクトルＶｙを計算し、そのｌ１ノルムｄを計算する。そして、ｄからｅＫを減算し、その値が証明者によって送信されたｃと等しくなるかを検証する。等しいならば検証者は証明者を正当なユーザーであると認識することができる。
【００３６】
以上述べたとおり、本鍵生成プログラムは様々な方式に応用でき、基づく問題が安全であることが示され、かつ、安全性の証明が付く効率的な公開鍵暗号系を構成できる。
【図面の簡単な説明】
【００３７】
【図１】実施形態に係る電子署名方式プログラムにおける処理を示す図。
【図２】実施形態に係る鍵生成プログラムの機能ブロックを示す図。
【図３】他の実施形態に係る公開鍵暗号方式プログラムにおける処理を示す図。
【図４】他の実施形態に係る公開鍵認証方式プログラムにおける処理を示す図。
【符号の説明】
【００３８】
１…電子署名方式プログラム、１１…鍵生成プログラム、１２…署名作成プログラム、２１…鍵生成プログラム、、１１１…乱数生成部、１１２…格子基底生成部、１１３…公開鍵生成部、１１４…係数ベクトル生成部、１１５…秘密鍵生成部、
【図１】
2007124612.tif 000004
【図２】
2007124612.tif 000005
【図３】
2007124612.tif 000006
【図４】
2007124612.tif 000007