(57)【要約】【課題】処理の並列度を上げても効率の劣化が生じない公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラムを提供する。【解決手段】第１のｒｅｄｕｃｅ部が、ベクトルとサンプルベクトルとの組み合わせについてｒｅｄｕｃｅし、ｒｅｄｕｃｅされたベクトルをスタック部に移動する。第２のｒｅｄｕｃｅ部が、第１のｒｅｄｕｃｅ部でｒｅｄｕｃｅされなかったサンプルベクトル間でｒｅｄｕｃｅし、ｒｅｄｕｃｅされたベクトルをスタック部に移動する。第３のｒｅｄｕｃｅ部が、第１のｒｅｄｕｃｅ部でも第２のｒｅｄｕｃｅ部でもｒｅｄｕｃｅされなかったサンプルベクトルとベクトルとの組み合わせについてｒｅｄｕｃｅし、スタック部内のベクトルと第２のベクトル格納部内のベクトルとをマージし、その中から最短ベクトルを検出し、検出結果の中から全体の最短ベクトルを出力する。【選択図】図２
2014186097.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機を備えた公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置であって、
前記計算機が、
ｒｅｄｕｃｅされたベクトルを格納するスタック部と、サンプルベクトルを格納する第１のベクトル格納部と、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるリスト内のベクトルを格納する第２のベクトル格納部と、を有し、
前記サンプルベクトルを生成するサンプルベクトル生成部と、
前記第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う第１のｒｅｄｕｃｅ部と、
該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第１の移動部と、
前記第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う第２のｒｅｄｕｃｅ部と、
該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第２の移動部と、
前記第１のｒｅｄｕｃｅ部の処理および前記第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと前記第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う第３のｒｅｄｕｃｅ部と、
該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第３の移動部と、
前記第１のベクトル格納部内のベクトルと前記第２のベクトル格納部内のベクトルとをマージするマージ部と、
該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部と、
を備え、
前記第２のベクトル格納部にベクトルを割り振る割振部と、
前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部と、
を備えたことを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置。
【請求項２】
前記サンプルベクトル生成部は、前記スタック部にベクトルが格納されている場合には、これを含めて、前記サンプルベクトルの数が、必要数になるように、新たなサンプルベクトルを生成することを特徴とする請求項１に記載の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置。
【請求項３】
ユーザが並列度を任意に設定することができる並列度設定手段を備えたことを特徴とする請求項１または請求項２に記載の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置。
【請求項４】
前記並列度設定手段により、並列度が設定されたときに、前記サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする請求項３に記載の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置。
【請求項５】
前記公開鍵暗号が格子暗号であることを特徴とする請求項１から請求項３のいずれかに記載の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置。
【請求項６】
前記公開鍵暗号がＲＳＡ暗号であることを特徴とする請求項１から請求項３のいずれかに記載の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置。
【請求項７】
複数の計算機を備えた公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、
前記計算機が、
ｒｅｄｕｃｅされたベクトルを格納するスタック部と、サンプルベクトルを格納する第１のベクトル格納部と、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるリスト内のベクトルを格納する第２のベクトル格納部と、サンプルベクトル生成部と、第１のｒｅｄｕｃｅ部と、第１の移動部と、第２のｒｅｄｕｃｅ部と、第２の移動部と、第３のｒｅｄｕｃｅ部と、第３の移動部と、マージ部と、検出部と、を有し、
前記第２のベクトル格納部にベクトルを割り振る第１のステップと、
前記計算機の前記サンプルベクトル生成部が、前記サンプルベクトルを生成する第２のステップと、
前記計算機の前記第１のｒｅｄｕｃｅ部が、前記第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う第３のステップと、
前記計算機の前記第１の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第４のステップと、
前記計算機の前記第２のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う第５のステップと、
前記計算機の前記第２の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第６のステップと、
前記計算機の前記第３のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理および前記第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと前記第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う第７のステップと、
前記計算機の前記第３の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第８のステップと、
前記マージ部が前記第１のベクトル格納部内のベクトルと前記第２のベクトル格納部内のベクトルとをマージする第９のステップと、
前記計算機の前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第１０のステップと、
前記第１０のステップで検出した検出結果の中から全体の最短ベクトルを出力する第１１のステップと、
を備えたことを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解方法。
【請求項８】
ユーザにより、並列度が設定されたときに、前記第２のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする請求項７に記載の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解方法。
【請求項９】
複数の計算機を備えた公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法をコンピュータに実行させるためのプログラムであって、
前記計算機が、
ｒｅｄｕｃｅされたベクトルを格納するスタック部と、サンプルベクトルを格納する第１のベクトル格納部と、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるリスト内のベクトルを格納する第２のベクトル格納部と、サンプルベクトル生成部と、第１のｒｅｄｕｃｅ部と、第１の移動部と、第２のｒｅｄｕｃｅ部と、第２の移動部と、第３のｒｅｄｕｃｅ部と、第３の移動部と、マージ部と、検出部と、を有し、
前記第２のベクトル格納部にベクトルを割り振る第１のステップと、
前記計算機の前記サンプルベクトル生成部が、前記サンプルベクトルを生成する第２のステップと、
前記計算機の前記第１のｒｅｄｕｃｅ部が、前記第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う第３のステップと、
前記計算機の前記第１の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第４のステップと、
前記計算機の前記第２のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う第５のステップと、
前記計算機の前記第２の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第６のステップと、
前記計算機の前記第３のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理および前記第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと前記第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う第７のステップと、
前記計算機の前記第３の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第８のステップと、
前記マージ部が前記第１のベクトル格納部内のベクトルと前記第２のベクトル格納部内のベクトルとをマージする第９のステップと、
前記計算機の前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第１０のステップと、
前記第１０のステップで検出した検出結果の中から全体の最短ベクトルを出力する第１１のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１０】
ユーザにより、並列度が設定されたときに、前記第２のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題に関し、処理の並列度を上げても効率の劣化が生じない公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラムに関する。
【背景技術】
【０００２】
近年、次世代公開鍵暗号方式として格子暗号が注目されている。格子暗号を利用することにより、データを暗号化した後で加算や乗算など自由に演算できる完全準同型暗号など、高機能かつ安全なサービスを構築できるため、その実用化が望まれている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｄ．Ｍｉｃｃｉａｎｃｉｏ  ａｎｄ  Ｐ．Ｖｏｕｌｇａｒｉｓ，“Ｆａｓｔｅｒ  ｅｘｐｏｎｅｎｔｉａｌ  ｔｉｍｅ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｔｈｅ  ｓｈｏｒｔｅｓｔ  ｖｅｃｔｏｒ  ｐｒｏｂｌｅｍ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｔｗｅｎｔｙ−Ｆｉｒｓｔ  Ａｎｎｕａｌ  ＡＣＭ−ＳＩＡＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｄｉｓｃｒｅｔｅ  Ａｌｇｏｒｉｔｈｍｓ  ＳＯＤＡ  ‘１０，ｖｏｌ．６５，ｐｐ．１４６８-１４８０，  Ｓｏｃｉｅｔｙ  ｆｏｒ  Ｉｎｄｕｓｔｒｉａｌ  ａｎｄ  Ａｐｐｌｉｅｄ  Ｍａｔｈｅｍａｔｉｃｓ，  ２０１０．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、格子暗号の安全性の解析の一つとして、最短ベクトル問題と呼ばれる数学的な問題がある。この問題を実際の計算機上で高速に解くアルゴリズムの発明は、格子暗号の実現に向けて重要な課題である。さらに、現在普及しているＲＳＡ暗号の解析にも最短ベクトル問題が重要な課題となっている。一方で、現在高速なアルゴリズム
の一つとしてＧａｕｓｓ  Ｓｉｅｖｅアルゴリズムが知られている。しかし、このアルゴリズムは並列性能がよくないという課題があった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題に関し、処理の並列度を上げても効率の劣化が生じない公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００７】
（１）本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置であって、前記計算機が、ｒｅｄｕｃｅされたベクトルを格納するスタック部（例えば、図１のスタック部１１１に相当）と、サンプルベクトルを格納する第１のベクトル格納部（例えば、図１の第１のベクトル格納部１１２に相当）と、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるリスト内のベクトルを格納する第２のベクトル格納部（例えば、図１の第２のベクトル格納部１１３に相当）と、を有し、前記サンプルベクトルを生成するサンプルベクトル生成部（例えば、図１のサンプルベクトル生成部１２０に相当）と、前記第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う第１のｒｅｄｕｃｅ部（例えば、図１の第１のｒｅｄｕｃｅ部１３０に相当）と、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第１の移動部（例えば、図１の第１の移動部１４０に相当）と、前記第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う第２のｒｅｄｕｃｅ部（例えば、図１の第２のｒｅｄｕｃｅ部１５０に相当）と、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第２の移動部（例えば、図１の第２の移動部１６０に相当）と、前記第１のｒｅｄｕｃｅ部の処理および前記第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと前記第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う第３のｒｅｄｕｃｅ部（例えば、図１の第３のｒｅｄｕｃｅ部１７０に相当）と、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第３の移動部（例えば、図１の第３の移動部１７１に相当）と、前記第１のベクトル格納部内のベクトルと前記第２のベクトル格納部内のベクトルとをマージするマージ部（例えば、図１のマージ部１８０に相当）と、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部（例えば、図１の検出部１９０に相当）と、を備え、前記第２のベクトル格納部にベクトルを割り振る割振部（例えば、図１の割振部２１０に相当）と、前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部（例えば、図１の出力部２２０に相当）と、を備えたことを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
【０００８】
この発明によれば、計算機のサンプルベクトル生成部は、サンプルベクトルを生成する。計算機の第１のｒｅｄｕｃｅ部は、第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う。計算機の第１の移動部は、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動する。計算機の第２のｒｅｄｕｃｅ部は、第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う。計算機の第２の移動部は、該ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動する。計算機の第３のｒｅｄｕｃｅ部は、第１のｒｅｄｕｃｅ部の処理および第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う。計算機の第３の移動部は、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動する。計算機のマージ部は、第１のベクトル格納部内のベクトルと第２のベクトル格納部内のベクトルとをマージする。計算機の検出部は、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。割振部は、第２のベクトル格納部にベクトルを割り振る。出力部は、検出部が検出した検出結果の中から全体の最短ベクトルを出力する。つまり、第１のｒｅｄｕｃｅ部の処理および第２のｒｅｄｕｃｅ部の処理により、サンプルベクトルは、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。一方、リスト内のベクトルは、元々、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるため、第３のｒｅｄｕｃｅ部の処理においてもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄを保つ。更に、第１のｒｅｄｕｃｅ部の処理および第３のｒｅｄｕｃｅ部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てＧａｕｓｓ−ｒｅｄｕｃｅｄであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをｒｅｄｕｃｅｄによって更新する際に、他のベクトルの更新を並列実行できるため、ｎ並列化処理が可能となる。
【０００９】
（２）本発明は、（１）の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置について、前記サンプルベクトル生成部は、前記スタック部にベクトルが格納されている場合には、これを含めて、前記サンプルベクトルの数が、必要数になるように、新たなサンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
【００１０】
この発明によれば、サンプルベクトル生成部は、スタック部にベクトルが格納されている場合には、これを含めて、サンプルベクトルの数が、必要数になるように、新たなサンプルベクトルを生成する。これにより、サンプルベクトルの生成処理を効率化することができる。
【００１１】
（３）本発明は、（１）または（２）の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置について、ユーザが並列度を任意に設定することができる並列度設定手段を備えたことを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
【００１２】
この発明によれば、ユーザが並列度を任意に設定することができる。したがって、全体の処理の希望所要時間等に応じて、並列度を任意に設定することができる。
【００１３】
（４）本発明は、（３）の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置について、前記並列度設定手段により、並列度が設定されたときに、前記サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
【００１４】
この発明によれば、並列度設定手段により、並列度が設定されたときに、サンプルベクトル生成部が、設定された並列度に応じて、サンプルベクトルを生成する。これにより、複数のサンプルベクトルに対して同時に演算を行い、Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムと同様の結果を従来よりも短時間で出力することができる。
【００１５】
（５）本発明は、（１）から（３）の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置について、前記公開鍵暗号が格子暗号であることを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
【００１６】
この発明によれば、公開鍵暗号が格子暗号である。これにより、格子暗号を用いた場合であっても、Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムと同様の結果を従来よりも短時間で出力することができる。
【００１７】
（６）本発明は、（１）から（３）の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置について、前記公開鍵暗号がＲＳＡ暗号であることを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
【００１８】
この発明によれば、公開鍵暗号がＲＳＡ暗号である。これにより、ＲＳＡ暗号を用いた場合であっても、Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムと同様の結果を従来よりも短時間で出力することができる。
【００１９】
（７）本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、前記計算機が、ｒｅｄｕｃｅされたベクトルを格納するスタック部と、サンプルベクトルを格納する第１のベクトル格納部と、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるリスト内のベクトルを格納する第２のベクトル格納部と、サンプルベクトル生成部と、第１のｒｅｄｕｃｅ部と、第１の移動部と、第２のｒｅｄｕｃｅ部と、第２の移動部と、第３のｒｅｄｕｃｅ部とマージ部と、検出部と、を有し、前記第２のベクトル格納部にベクトルを割り振る第１のステップ（例えば、図２のステップＳ１１０に相当）と、前記計算機の前記サンプルベクトル生成部が、前記サンプルベクトルを生成する第２のステップ（例えば、図２のステップＳ１２０に相当）と、前記計算機の前記第１のｒｅｄｕｃｅ部が、前記第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う第３のステップ（例えば、図２のステップＳ１３０に相当）と、前記計算機の前記第１の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第４のステップ（例えば、図２のステップＳ１４０に相当）と、前記計算機の前記第２のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う第５のステップ（例えば、図２のステップＳ１５０に相当）と、前記計算機の前記第２の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第６のステップ（例えば、図２のステップＳ１６０に相当）と、前記計算機の前記第３のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理および前記第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと前記第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う第７のステップ（例えば、図２のステップＳ１７０に相当）と、前記計算機の前記第３の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第８のステップ（例えば、図２のステップＳ１８０に相当）と、前記マージ部が前記第１のベクトル格納部内のベクトルと前記第２のベクトル格納部内のベクトルとをマージする第９のステップ（例えば、図２のステップＳ１９０に相当）と、前記計算機の前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第１０のステップ（例えば、図２のステップＳ２００に相当）と、前記第１０のステップで検出した検出結果の中から全体の最短ベクトルを出力する第１１のステップ（例えば、図２のステップＳ２１０に相当）と、を備えたことを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解方法を提案している。
【００２０】
この発明によれば、第２のベクトル格納部にベクトルを割り振り、計算機のサンプルベクトル生成部が、サンプルベクトルを生成し、計算機の第１のｒｅｄｕｃｅ部が、第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行って、計算機の第１の移動部が、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動する。次に、計算機の第２のｒｅｄｕｃｅ部が、第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行い、計算機の第２の移動部が、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動する。さらに、計算機の第３のｒｅｄｕｃｅ部が、第１のｒｅｄｕｃｅ部の処理および第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行い、計算機の第３の移動部が、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動し、計算機のマージ部が第１のベクトル格納部内のベクトルと第２のベクトル格納部内のベクトルとをマージし、計算機の検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。そして、検出した検出結果の中から全体の最短ベクトルを出力する。つまり、第１のｒｅｄｕｃｅ部の処理および第２のｒｅｄｕｃｅ部の処理により、サンプルベクトルは、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。一方、リスト内のベクトルは、元々、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるため、第３のｒｅｄｕｃｅ部の処理においてもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄを保つ。更に、第１のｒｅｄｕｃｅ部の処理および第３のｒｅｄｕｃｅ部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てＧａｕｓｓ−ｒｅｄｕｃｅｄであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをｒｅｄｕｃｅｄによって更新する際に、他のベクトルの更新を並列実行できるため、ｎ並列化処理が可能となる。
【００２１】
（８）本発明は、（７）の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解方法について、ユーザにより、並列度が設定されたときに、前記第２のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解方法を提案している。
【００２２】
この発明によれば、ユーザにより、並列度が設定されたときに、第１のステップにおいて、サンプルベクトル生成部が、設定された並列度に応じて、サンプルベクトルを生成する。これにより、サンプルベクトルの生成処理を効率化することができる。
【００２３】
（９）本発明は、複数の計算機を備え、公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法をコンピュータに実行させるためのプログラムであって、前記計算機が、ｒｅｄｕｃｅされたベクトルを格納するスタック部と、サンプルベクトルを格納する第１のベクトル格納部と、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるリスト内のベクトルを格納する第２のベクトル格納部と、サンプルベクトル生成部と、第１のｒｅｄｕｃｅ部と、第１の移動部と、第２のｒｅｄｕｃｅ部と、第２の移動部と、第３のｒｅｄｕｃｅ部とマージ部と、検出部と、を有し、前記第２のベクトル格納部にベクトルを割り振る第１のステップ（例えば、図２のステップＳ１１０に相当）と、前記計算機の前記サンプルベクトル生成部が、前記サンプルベクトルを生成する第２のステップ（例えば、図２のステップＳ１２０に相当）と、前記計算機の前記第１のｒｅｄｕｃｅ部が、前記第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う第３のステップ（例えば、図２のステップＳ１３０に相当）と、前記計算機の前記第１の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第４のステップ（例えば、図２のステップＳ１４０に相当）と、前記計算機の前記第２のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う第５のステップ（例えば、図２のステップＳ１５０に相当）と、前記計算機の前記第２の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第６のステップ（例えば、図２のステップＳ１６０に相当）と、前記計算機の前記第３のｒｅｄｕｃｅ部が、前記第１のｒｅｄｕｃｅ部の処理および前記第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと前記第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う第７のステップ（例えば、図２のステップＳ１７０に相当）と、前記計算機の前記第３の移動部が、該ｒｅｄｕｃｅされたすべてのベクトルを前記スタック部に移動する第８のステップ（例えば、図２のステップＳ１８０に相当）と、前記マージ部が前記第１のベクトル格納部内のベクトルと前記第２のベクトル格納部内のベクトルとをマージする第９のステップ（例えば、図２のステップＳ１９０に相当）と、前記計算機の前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第１０のステップ（例えば、図２のステップＳ２００に相当）と、前記第１０のステップで検出した検出結果の中から全体の最短ベクトルを出力する第１１のステップ（例えば、図２のステップＳ２１０に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２４】
この発明によれば、第２のベクトル格納部にベクトルを割り振り、計算機のサンプルベクトル生成部が、サンプルベクトルを生成し、計算機の第１のｒｅｄｕｃｅ部が、第２のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行って、計算機の第１の移動部が、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動する。次に、計算機の第２のｒｅｄｕｃｅ部が、第１のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行い、計算機の第２の移動部が、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動する。さらに、計算機の第３のｒｅｄｕｃｅ部が、第１のｒｅｄｕｃｅ部の処理および第２のｒｅｄｕｃｅ部の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと第２のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行い、計算機の第３の移動部が、ｒｅｄｕｃｅされたすべてのベクトルをスタック部に移動し、計算機のマージ部が第１のベクトル格納部内のベクトルと第２のベクトル格納部内のベクトルとをマージし、計算機の検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。そして、検出した検出結果の中から全体の最短ベクトルを出力する。つまり、第１のｒｅｄｕｃｅ部の処理および第２のｒｅｄｕｃｅ部の処理により、サンプルベクトルは、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。一方、リスト内のベクトルは、元々、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるため、第３のｒｅｄｕｃｅ部の処理においてもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄを保つ。更に、第１のｒｅｄｕｃｅ部の処理および第３のｒｅｄｕｃｅ部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てＧａｕｓｓ−ｒｅｄｕｃｅｄであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをｒｅｄｕｃｅｄによって更新する際に、他のベクトルの更新を並列実行できるため、ｎ並列化処理が可能となる。
【００２５】
（１０）本発明は、（９）のプログラムについて、ユーザにより、並列度が設定されたときに、前記第２のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とするプログラムを提案している。
【００２６】
この発明によれば、ユーザにより、並列度が設定されたときに、第１のステップにおいて、サンプルベクトル生成部が、設定された並列度に応じて、サンプルベクトルを生成する。これにより、サンプルベクトルの生成処理を効率化することができる。
【発明の効果】
【００２７】
本発明によれば、並列度をユーザが自由に設定することができ、効率的に最短ベクトル問題を解くことが可能となるという効果がある。また、これまでは、大きな次元の最短ベクトル問題を求解するためには計算時間をかける必要があったが、本発明を用いると計算機の台数を増やすことによって計算時間をかけずに求解することが可能となるという効果がある。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置の構成を示す図である。
【図２】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置の構成を示す図である。
【図３】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第１の処理工程を示す図である。
【図４】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第１の処理工程を示す図である。
【図５】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第２の処理工程を示す図である。
【図６】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第２の処理工程を示す図である。
【図７】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第３の処理工程を示す図である。
【図８】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第３の処理工程を示す図である。
【図９】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第４の処理工程を示す図である。
【図１０】本発明の実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置における第４の処理工程を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３０】
以下、図１から図１０を用いて、本発明の実施形態について説明する。
【００３１】
＜公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置の構成＞
図１に示すように、本発明の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置（以下、求解装置とする）は、複数の計算機と、割振部２１０と、出力部２２０とから構成されている。なお、ここでは、理解を容易にするために、１つの計算機１００を例示して説明する。
【００３２】
割振部２１０は、後述する第２のベクトル格納部１１３にベクトルを割り振る。出力部２２０は、後述する検出部１９０が検出した検出結果の中から全体の最短ベクトルを出力する。
【００３３】
計算機１００は、スタック部１１１と、第１のベクトル格納部１１２と、第２のベクトル格納部１１３と、サンプルベクトル生成部１２０と、第１のｒｅｄｕｃｅ部１３０と、第１の移動部１４０と、第２のｒｅｄｕｃｅ部１５０と、第２の移動部１６０と、第３のｒｅｄｕｃｅ部１７０と、第３の移動部１７１と、マージ部１８０と、検出部１９０とから構成されている。
【００３４】
スタック部１１１は、ｒｅｄｕｃｅされたベクトルを格納する。第１のベクトル格納部１１２は、サンプルベクトルを格納する。第２のベクトル格納部１１３は、割振部２１０によって割り振られたＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるリスト内のベクトルを格納する。
【００３５】
サンプルベクトル生成部１２０は、サンプルベクトルを生成する。第１のｒｅｄｕｃｅ部１３０は、第２のベクトル格納部１１３に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う。第１の移動部１４０は、ｒｅｄｕｃｅされたすべてのベクトルをスタック部１１１に移動する。
【００３６】
第２のｒｅｄｕｃｅ部１５０は、第１のｒｅｄｕｃｅ部１３０の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行う。第２の移動部１６０は、ｒｅｄｕｃｅされたすべてのベクトルをスタック部１１１に移動する。
【００３７】
第３のｒｅｄｕｃｅ部１７０は、第１のｒｅｄｕｃｅ部１３０の処理および第２のｒｅｄｕｃｅ部１５０の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと第２のベクトル格納部１１３に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行う。
【００３８】
マージ部１８０は、スタック部１１１内のベクトルと第２のベクトル格納部１１３内のベクトルとをマージする。検出部１９０は、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。
【００３９】
＜公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置の処理＞
図２から図１０を用いて、本実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。なお、本実施形態の処理は、例えば、図３、図５、図７、図９に示されるアルゴリズムにしたがって実行される４つの処理工程から構成されている。
【００４０】
まず、処理の内容を説明する前に、以下の６つの事項を定義する。なお、本実施形態においては、格子暗号を例示して説明を行うが、これに限らず、例えば、ＲＳＡ暗号にも用いることができる。
【００４１】
＜定義１＞
ｂｉ＝（ｂ1、・・・・、ｂｎ）∈Ｒｎをｎ個の一次独立なベクトルとする（１≦ｉ≦ｎ）。また、ｂｉを列ベクトルとする行列をＢ＝（ｂ1、・・・・、ｂｎ）∈Ｒｎ×ｎとする。このとき、数１を格子とし、Ｂを格子基底と呼ぶ。
【００４２】
【数１】
2014186097.tif 000003
【００４３】
＜定義２＞
ベクトルｖ＝（ｖ1、・・・・ｖｎ）のユークリッドノルムを数２とする。
【００４４】
【数２】
2014186097.tif 000004
【００４５】
＜定義３＞
ベクトルｖ＝（ｖ1、・・・・ｖｎ）、ｕ＝（ｕ1、・・・・ｕｎ）の内積を数３とする。
【００４６】
【数３】
2014186097.tif 000005
【００４７】
＜定義４＞
格子Ｌ（Ｂ）が与えられて、格子に含まれるベクトルのうちで、ユークリッドノルムが最小のベクトルを求める問題を最短ベクトル問題と呼ぶ。
【００４８】
＜定義５＞
あるベクトルａ、ｂ∈Ｌ（Ｂ）が数４を満たすとき、ａ、ｂは、Ｇａｕｓｓ−ｒｅｄｕｃｅｄであるという。
【００４９】
【数４】
2014186097.tif 000006
【００５０】
＜定義６＞
あるｍ（∈Ｎ）個の格子ベクトルの集合Ａ＝｛ａ1、・・・・、ａｍ｝⊂Ｌ（Ｂ）がすべての組み合わせ（ａｉ、ａｊ）について、Ｇａｕｓｓ−ｒｅｄｕｃｅｄであるとき、集合Ａは、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるという。
【００５１】
図２を用いて、本実施形態に係る公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。
【００５２】
まず、第２のベクトル格納部１１３にリスト内のベクトルを割り振り（ステップＳ１１０）、計算機のサンプルベクトル生成部１２０が、ｒ個のサンプルベクトルを生成する（ステップＳ１２０）。なお、サンプルベクトルの生成は、スタック部１１１にベクトルがある場合には、これを用い、スタック部１１１にベクトルがあるが数が十分でない場合あるいは、スタック部１１１にベクトルがない場合には、新たに生成を行う。
【００５３】
次に、第１の処理工程として、計算機の第１のｒｅｄｕｃｅ部１３０が、第２のベクトル格納部１１３に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてｒｅｄｕｃｅを行う（ステップＳ１３０）。すなわち、ＬとＶの全ての組み合わせ（ｌｉ、ｖｉ）に対して図３に示すようなｒｅｄｕｃｅアルゴリズムを適用する。ここでｒｅｄｕｃｅされたベクトル（例えば、図４のｖｉ）は全て、計算機の第１の移動部１４０が、スタックＳ（スタック部１１１）に移動する（ステップＳ１４０）。
【００５４】
第２の処理工程として、計算機の第２のｒｅｄｕｃｅ部１５０が、第１のｒｅｄｕｃｅ部１３０の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトル間でｒｅｄｕｃｅを行い（ステップＳ１５０）、計算機の第２の移動部１６０が、ｒｅｄｕｃｅされたすべてのベクトル（例えば、図６のｖｉ）をスタック部に移動する（ステップＳ１６０）。すなわち、図３に示すようなｒｅｄｕｃｅアルゴリズムにおいて、ｒｅｄｕｃｅされなかったサンプルベクトルｖ内の全ての組み合わせ（ｖｉ、ｖｊ）に対して図５に示すようなｒｅｄｕｃｅアルゴリズムを適用する。
【００５５】
第３の処理工程として、計算機の第３のｒｅｄｕｃｅ部１７０が、第１のｒｅｄｕｃｅ部１３０の処理および第２のｒｅｄｕｃｅ部１５０の処理によりｒｅｄｕｃｅされなかったすべてのサンプルベクトルと第２のベクトル格納部１１３に格納されたすべてのベクトルとの組み合わせについてｒｅｄｕｃｅを行い（ステップＳ１７０）、第３の移動部１７１が、ｒｅｄｕｃｅされたすべてのベクトル（例えば、図８のｌｉ）をスタック部１１１に移動する（ステップＳ１８０）。すなわち、図５に示すようなｒｅｄｕｃｅアルゴリズムにおいて、ｒｅｄｕｃｅされなかったサンプルベクトルｖ内を用いて、全ての組み合わせ（ｖｉ、ｌｊ）に対して図７に示すようなｒｅｄｕｃｅアルゴリズムを適用する。
【００５６】
そして、第４の工程として、マージ部１８０が図９に示すようなｒｅｄｕｃｅアルゴリズムにおいて、第１のベクトル格納部１１２内のベクトルと前記第２のベクトル格納部内のベクトルとを図１０に示すようにマージする（ステップＳ１９０）。そして、計算機の検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出し（ステップＳ２００）、出力部２２０がステップＳ２００で検出した検出結果の中から全体の最短ベクトルを出力する（ステップＳ２１０）。
【００５７】
以上、説明したように、本実施形態によれば、第１のｒｅｄｕｃｅ部の処理および第２のｒｅｄｕｃｅ部の処理により、サンプルベクトルは、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。一方、リスト内のベクトルは、元々、Ｐａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄであるため、第３のｒｅｄｕｃｅ部の処理においてもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄを保つ。更に、第１のｒｅｄｕｃｅ部の処理および第３のｒｅｄｕｃｅ部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てＧａｕｓｓ−ｒｅｄｕｃｅｄであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずＰａｉｒｗｉｓｅ−ｒｅｄｕｃｅｄとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをｒｅｄｕｃｅｄによって更新する際に、他のベクトルの更新を並列実行できるため、ｎ並列化処理が可能となる。
【００５８】
なお、公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置に読み込ませ、実行することによって本発明の公開鍵暗号化方式における並列Ｇａｕｓｓ  Ｓｉｅｖｅアルゴリズムを用いた最短ベクトル問題の求解装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００５９】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００６０】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００６１】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００６２】
１００；計算機
１１１；スタック部
１１２；第１のベクトル格納部
１１３；第２のベクトル格納部
１２０；サンプルベクトル生成部
１３０；第１のｒｅｄｕｃｅ部
１４０；第１の移動部
１５０；第２のｒｅｄｕｃｅ部
１６０；第２の移動部
１７０；第３のｒｅｄｕｃｅ部
１７１；第３の移動部
１８０；マージ部
１９０；検出部
２００；求解装置
２１０；割振部
２２０；出力部
【図１】
2014186097.tif 000007
【図２】
2014186097.tif 000008
【図３】
2014186097.tif 000009
【図４】
2014186097.tif 000010
【図５】
2014186097.tif 000011
【図６】
2014186097.tif 000012
【図７】
2014186097.tif 000013
【図８】
2014186097.tif 000014
【図９】
2014186097.tif 000015
【図１０】
2014186097.tif 000016