JP2015001555A - 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法 - Google Patents
公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法 Download PDFInfo
- Publication number
- JP2015001555A JP2015001555A JP2013124714A JP2013124714A JP2015001555A JP 2015001555 A JP2015001555 A JP 2015001555A JP 2013124714 A JP2013124714 A JP 2013124714A JP 2013124714 A JP2013124714 A JP 2013124714A JP 2015001555 A JP2015001555 A JP 2015001555A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- vector
- vectors
- sample
- reduced
- 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
【課題】並列度を上げても効率劣化のない、最短ベクトル問題の求解装置を提供する。
【解決手段】第2ベクトル格納部にベクトルを割り振り、第1サンプルベクトル生成部が、ノルムが平均的に短いサンプルベクトルを生成し、第1のreduce部が、すべてのベクトルとサンプルベクトルの組み合わせにreduceを行い、第1の移動部が、reduce済みのベクトルをスタック部に移動する。第2のreduce部が、未reduceのサンプルベクトル間でreduceを行い、第2の移動部が、reduce済みのベクトルをスタック部に移動する。第3のreduce部が、第1、第2の未reduce処理のサンプルベクトル、ベクトルとの組み合わせについてreduceを行い、マージ部がスタック部内と第2のベクトル格納部内のベクトルとをマージし、検出部が、得られたベクトル数が所定値以下の場合、全体の最短ベクトルを出力する。
【選択図】図2
【解決手段】第2ベクトル格納部にベクトルを割り振り、第1サンプルベクトル生成部が、ノルムが平均的に短いサンプルベクトルを生成し、第1のreduce部が、すべてのベクトルとサンプルベクトルの組み合わせにreduceを行い、第1の移動部が、reduce済みのベクトルをスタック部に移動する。第2のreduce部が、未reduceのサンプルベクトル間でreduceを行い、第2の移動部が、reduce済みのベクトルをスタック部に移動する。第3のreduce部が、第1、第2の未reduce処理のサンプルベクトル、ベクトルとの組み合わせについてreduceを行い、マージ部がスタック部内と第2のベクトル格納部内のベクトルとをマージし、検出部が、得られたベクトル数が所定値以下の場合、全体の最短ベクトルを出力する。
【選択図】図2
Description
本発明は、公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題に関し、処理の並列度を上げても効率の劣化が生じず、かつ計算量を削減可能な公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法に関する。
近年、次世代公開鍵暗号方式として格子暗号が注目されている。格子暗号を利用することにより、データを暗号化した後で加算や乗算など自由に演算できる完全準同型暗号など、高機能かつ安全なサービスを構築できるため、その実用化が望まれている。
D.Micciancio and P.Voulgaris,"Faster exponential time algorithms for the shortest vector problem," Proceedings of the Twenty−First Annual ACM−SIAM Symposium on Discrete Algorithms SODA ‘10,vol.65,pp.1468-1480, Society for Industrial and Applied Mathematics, 2010.
ところで、格子暗号の安全性の解析の一つとして、最短ベクトル問題と呼ばれる数学的な問題がある。この問題を実際の計算機上で高速に解くアルゴリズムの発明は、格子暗号の実現に向けて重要な課題である。さらに、現在普及しているRSA暗号の解析にも最短ベクトル問題が重要な課題となっている。一方で、現在高速なアルゴリズムの一つとしてGauss Sieveアルゴリズムが知られている。しかし、このアルゴリズムは並列性能がよくないという課題があった。
そこで、本発明は、上述の課題に鑑みてなされたものであり、Gauss Sieveアルゴリズムを用いた最短ベクトル問題に関し、処理の並列度を上げても効率の劣化が生じず、かつ計算量を削減可能な公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法を提供することを目的とする。
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
(1)本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置であって、前記計算機が、reduceされたベクトルを格納するスタック部(例えば、図1のスタック部111に相当)と、サンプルベクトルを格納する第1のベクトル格納部(例えば、図1の第1のベクトル格納部112に相当)と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部(例えば、図1の第2のベクトル格納部113に相当)と、を有し、ベクトルのノルムが平均的に短いサンプルベクトルを生成する第1のサンプルベクトル生成部(例えば、図1のサンプルベクトル生成部120に相当)と、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第1のreduce部(例えば、図1の第1のreduce部130に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第1の移動部(例えば、図1の第1の移動部140に相当)と、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第2のreduce部(例えば、図1の第2のreduce部150に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第2の移動部(例えば、図1の第2の移動部160に相当)と、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第3のreduce部(例えば、図1の第3のreduce部170に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第3の移動部(例えば、図1の第3の移動部171に相当)と、前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージするマージ部(例えば、図1のマージ部180に相当)と、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部(例えば、図1の検出部190に相当)と、を備え、前記第2のベクトル格納部にベクトルを割り振る割振部(例えば、図1の割振部210に相当)と、前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部(例えば、図1の出力部220に相当)と、を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
(2)本発明は、(1)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、前記第1のサンプルベクトル生成部は、SampleDアルゴリズムを用いて、前記ベクトルのノルムが平均的に短いサンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
(3)本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置であって、前記計算機が、reduceされたベクトルを格納するスタック部(例えば、図11のスタック部111に相当)と、サンプルベクトルを格納する第1のベクトル格納部(例えば、図11の第1のベクトル格納部112に相当)と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部(例えば、図11の第2のベクトル格納部113に相当)と、を有し、格子としてイデアル格子が用いられる場合に、任意のベクトルについて、これを逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第2のサンプルベクトル生成部(例えば、図11のサンプルベクトル生成部121に相当)と、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第1のreduce部(例えば、図11の第1のreduce部130に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第1の移動部(例えば、図11の第1の移動部140に相当)と、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第2のreduce部(例えば、図11の第2のreduce部150に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第2の移動部(例えば、図11の第2の移動部160に相当)と、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第3のreduce部(例えば、図11の第3のreduce部170に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第3の移動部(例えば、図11の第3の移動部171に相当)と、前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージするマージ部(例えば、図11のマージ部180に相当)と、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部(例えば、図11の検出部190に相当)と、を備え、前記第2のベクトル格納部にベクトルを割り振る割振部(例えば、図11の割振部210に相当)と、前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部(例えば、図11の出力部220に相当)と、を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
(4)本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置であって、前記計算機が、reduceされたベクトルを格納するスタック部(例えば、図13のスタック部111に相当)と、サンプルベクトルを格納する第1のベクトル格納部(例えば、図13の第1のベクトル格納部112に相当)と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部(例えば、図13の第2のベクトル格納部113に相当)と、を有し、格子としてイデアル格子が用いられる場合に、問題で与えられる多項式がn次3項式であって、各係数がすべて1であるとき、任意のベクトルについて、正方向あるいは逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第3のサンプルベクトル生成部(例えば、図13のサンプルベクトル生成部122に相当)と、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第1のreduce部(例えば、図13の第1のreduce部130に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第1の移動部(例えば、図13の第1の移動部140に相当)と、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第2のreduce部(例えば、図13の第2のreduce部150に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第2の移動部(例えば、図13の第2の移動部160に相当)と、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第3のreduce部(例えば、図13の第3のreduce部170に相当)と、該reduceされたすべてのベクトルを前記スタック部に移動する第3の移動部(例えば、図13の第3の移動部171に相当)と、前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージするマージ部(例えば、図13のマージ部180に相当)と、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部(例えば、図13の検出部190に相当)と、を備え、前記第2のベクトル格納部にベクトルを割り振る割振部(例えば、図13の割振部210に相当)と、前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部(例えば、図13の出力部220に相当)と、を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
(5)本発明は、(1)から(4)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、ユーザが並列度を任意に設定することができる並列度設定手段(例えば、図1の並列度設定部125に相当)を備え、前記並列度設定手段により、並列度が設定されたときに、前記第1のサンプルベクトル生成部、第2のサンプルベクトル生成部、第3のサンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
(6)本発明は、(1)から(5)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、前記公開鍵暗号が格子暗号であることを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
(7)本発明は、(1)から(5)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、前記公開鍵暗号がRSA暗号であることを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
(8)本発明は、複数の計算機を備え、公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法をコンピュータに実行させるためのプログラムであって、前記計算機が、reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、第1のサンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部とマージ部と、検出部と、を有し、前記第2のベクトル格納部にベクトルを割り振る第1のステップ(例えば、図2のステップS110に相当)と、前記第1のサンプルベクトル生成部が、ベクトルのノルムが平均的に短いサンプルベクトルを生成する第2のステップ(例えば、図2のステップS120に相当)と、前記第1のreduce部が、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第3のステップ(例えば、図2のステップS130に相当)と、前記第1の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第4のステップ(例えば、図2のステップS140に相当)と、前記第2のreduce部が、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第5のステップ(例えば、図2のステップS150に相当)と、前記第2の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第6のステップ(例えば、図2のステップS160に相当)と、前記第3のreduce部が、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第7のステップ(例えば、図2のステップS170に相当)と、前記第3の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第8のステップ(例えば、図2のステップS180に相当)と、前記マージ部が前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージする第9のステップ(例えば、図2のステップS190に相当)と、前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第10のステップ(例えば、図2のステップS200に相当)と、前記第10のステップで検出した検出結果の中から全体の最短ベクトルを出力する第11のステップ(例えば、図2のステップS210に相当)と、をコンピュータに実行させるためのプログラムを提案している。
(9)本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、前記計算機が、reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、第2のサンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部とマージ部と、検出部と、を有し、前記第2のベクトル格納部にベクトルを割り振る第1のステップ(例えば、図12のステップS111に相当)と、前記第2のサンプルベクトル生成部が、格子としてイデアル格子が用いられる場合に、任意のベクトルについて、これを逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第2のステップ(例えば、図12のステップS121に相当)と、前記第1のreduce部が、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第3のステップ(例えば、図12のステップS131に相当)と、前記第1の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第4のステップ(例えば、図12のステップS141に相当)と、前記第2のreduce部が、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第5のステップ(例えば、図12のステップS151に相当)と、前記第2の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第6のステップ(例えば、図12のステップS161に相当)と、前記第3のreduce部が、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第7のステップ(例えば、図12のステップS171に相当)と、前記第3の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第8のステップ(例えば、図12のステップS181に相当)と、前記マージ部が前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージする第9のステップ(例えば、図12のステップS191に相当)と、前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第10のステップ(例えば、図12のステップS201に相当)と、前記第10のステップで検出した検出結果の中から全体の最短ベクトルを出力する第11のステップ(例えば、図12のステップS211に相当)と、を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法を提案している。
(10)本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、前記計算機が、reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、第3のサンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部とマージ部と、検出部と、を有し、前記第2のベクトル格納部にベクトルを割り振る第1のステップ(例えば、図14のステップS112に相当)と、前記第3のサンプルベクトル生成部が、格子としてイデアル格子が用いられる場合に、問題で与えられる多項式がn次3項式であって、各係数がすべて1であるとき、任意のベクトルについて、正方向あるいは逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第2のステップ(例えば、図14のステップS122に相当)と、前記第1のreduce部が、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第3のステップ(例えば、図14のステップS132に相当)と、前記第1の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第4のステップ(例えば、図14のステップS142に相当)と、前記第2のreduce部が、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第5のステップ(例えば、図14のステップS152に相当)と、前記第2の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第6のステップ(例えば、図14のステップS162に相当)と、前記第3のreduce部が、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第7のステップ(例えば、図14のステップS172に相当)と、前記第3の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第8のステップ(例えば、図14のステップS182に相当)と、前記マージ部が前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージする第9のステップ(例えば、図14のステップS192に相当)と、前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第10のステップ(例えば、図14のステップS202に相当)と、前記第10のステップで検出した検出結果の中から全体の最短ベクトルを出力する第11のステップ(例えば、図14のステップS212に相当)と、を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法を提案している。
本発明によれば、並列度をユーザが自由に設定することができ、効率的に最短ベクトル問題を解くことが可能となるという効果がある。また、これまでは、大きな次元の最短ベクトル問題を求解するためには計算時間をかける必要があったが、本発明を用いると計算機の台数を増やすことによって計算時間をかけずに求解することが可能となるという効果がある。また、ベクトルサンプリングやベクトルの効率的な更新により、計算量を削減できるという効果がある。
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
以下、図1から図10を用いて、本発明の第1の実施形態について説明する。
<公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の構成>
図1に示すように、本実施形態の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置(以下、求解装置とする)は、複数の計算機と、割振部210と、出力部220とから構成されている。なお、ここでは、理解を容易にするために、1つの計算機100を例示して説明する。
図1に示すように、本実施形態の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置(以下、求解装置とする)は、複数の計算機と、割振部210と、出力部220とから構成されている。なお、ここでは、理解を容易にするために、1つの計算機100を例示して説明する。
割振部210は、後述する第2のベクトル格納部113にベクトルを割り振る。出力部220は、後述する検出部190が検出した検出結果の中から全体の最短ベクトルを出力する。
計算機100は、スタック部111と、第1のベクトル格納部112と、第2のベクトル格納部113と、第1のサンプルベクトル生成部120と、第1のreduce部130と、第1の移動部140と、第2のreduce部150と、第2の移動部160と、第3のreduce部170と、第3の移動部171と、マージ部180と、検出部190とから構成されている。
スタック部111は、reduceされたベクトルを格納する。第1のベクトル格納部112は、サンプルベクトルを格納する。第2のベクトル格納部113は、割振部210によって割り振られたPairwise−reducedであるリスト内のベクトルを格納する。
第1のサンプルベクトル生成部120は、ベクトルのノルムが平均的に短いサンプルベクトルを生成する。第1のreduce部130は、第2のベクトル格納部113に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う。第1の移動部140は、reduceされたすべてのベクトルをスタック部111に移動する。
第2のreduce部150は、第1のreduce部130の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う。第2の移動部160は、reduceされたすべてのベクトルをスタック部111に移動する。
第3のreduce部170は、第1のreduce部130の処理および第2のreduce部150の処理によりreduceされなかったすべてのサンプルベクトルと第2のベクトル格納部113に格納されたすべてのベクトルとの組み合わせについてreduceを行う。
マージ部180は、スタック部111内のベクトルと第2のベクトル格納部113内のベクトルとをマージする。検出部190は、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。
<公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理>
図2から図10を用いて、本実施形態に係る公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。なお、本実施形態の処理は、例えば、図3、図5、図7、図9に示されるアルゴリズムにしたがって実行される4つの処理工程から構成されている。
図2から図10を用いて、本実施形態に係る公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。なお、本実施形態の処理は、例えば、図3、図5、図7、図9に示されるアルゴリズムにしたがって実行される4つの処理工程から構成されている。
まず、処理の内容を説明する前に、以下の7つの事項を定義する。なお、本実施形態においては、格子暗号を例示して説明を行うが、これに限らず、例えば、RSA暗号にも用いることができる。
<定義1>
bi=(b1、・・・・、bn)∈Rnをn個の一次独立なベクトルとする(1≦i≦n)。また、biを列ベクトルとする行列をB=(b1、・・・・、bn)∈Rn×nとする。このとき、数1を格子とし、Bを格子基底と呼ぶ。
bi=(b1、・・・・、bn)∈Rnをn個の一次独立なベクトルとする(1≦i≦n)。また、biを列ベクトルとする行列をB=(b1、・・・・、bn)∈Rn×nとする。このとき、数1を格子とし、Bを格子基底と呼ぶ。
<定義2>
格子L(B)、モニックな多項式g(x)∈Z〔x〕があって、数2の条件を満たすとき、格子L(B)は、イデアル格子であるという。
格子L(B)、モニックな多項式g(x)∈Z〔x〕があって、数2の条件を満たすとき、格子L(B)は、イデアル格子であるという。
<定義3>
ベクトルv=(v1、・・・・vn)のユークリッドノルムを数3とする。
ベクトルv=(v1、・・・・vn)のユークリッドノルムを数3とする。
<定義4>
ベクトルv=(v1、・・・・vn)、u=(u1、・・・・un)の内積を数4とする。
ベクトルv=(v1、・・・・vn)、u=(u1、・・・・un)の内積を数4とする。
<定義5>
格子L(B)が与えられて、格子に含まれるベクトルのうちで、ユークリッドノルムが最小のベクトルを求める問題を最短ベクトル問題と呼ぶ。
格子L(B)が与えられて、格子に含まれるベクトルのうちで、ユークリッドノルムが最小のベクトルを求める問題を最短ベクトル問題と呼ぶ。
<定義6>
あるベクトルa、b∈L(B)が数5を満たすとき、a、bは、Gauss−reducedであるという。
あるベクトルa、b∈L(B)が数5を満たすとき、a、bは、Gauss−reducedであるという。
<定義7>
あるm(∈N)個の格子ベクトルの集合A={a1、・・・・、am}⊂L(B)がすべての組み合わせ(ai、aj)について、Gauss−reducedであるとき、集合Aは、Pairwise−reducedであるという。
あるm(∈N)個の格子ベクトルの集合A={a1、・・・・、am}⊂L(B)がすべての組み合わせ(ai、aj)について、Gauss−reducedであるとき、集合Aは、Pairwise−reducedであるという。
図2を用いて、本実施形態に係る公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。
まず、第2のベクトル格納部113にリスト内のベクトルを割り振り(ステップS110)、第1のサンプルベクトル生成部120が、r個のサンプルベクトルを生成する(ステップS120)。なお、サンプルベクトルの生成は、スタック部111にベクトルがある場合には、これを用い、スタック部111にベクトルがあるが数が十分でない場合あるいは、スタック部111にベクトルがない場合には、新たに生成を行う。また、本実施形態においては、新しいベクトルをランダムにサンプリングする手法を用いている。このサンプリングにおいてより短いベクトルを生成した方がアルゴリズム全体を高速化できる。このサンプリング手法においてSampleDアルゴリズムという関数が使われる。SampleDアルゴリズムは、ある定められた範囲の整数から一様な確率で1つの整数を返す関数である。具体的には入力を(s、c)として〔c−s・t、c+s・t〕の範囲から整数xを返す。この時、通常t=lognと設定される。このtの値を変更することによって整数の範囲を変更することができ、生成されるベクトルのノルムを平均的に短くすることができる。また、tは、格子の次元や実装手法によって最適な値は異なり、例えば、次元が100付近の場合はt=logn=50程度が適している。
次に、第1の処理工程として、第1のreduce部130が、第2のベクトル格納部113に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う(ステップS130)。すなわち、LとVの全ての組み合わせ(li、vi)に対して図3に示すようなreduceアルゴリズムを適用する。ここで、reduceされたベクトル(例えば、図4のvi)は全て、第1の移動部140が、スタックS(スタック部111)に移動する(ステップS140)。
第2の処理工程として、第2のreduce部150が、第1のreduce部130の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行い(ステップS150)、第2の移動部160が、reduceされたすべてのベクトル(例えば、図6のvi)をスタック部に移動する(ステップS160)。すなわち、図3に示すようなreduceアルゴリズムにおいて、reduceされなかったサンプルベクトルv内の全ての組み合わせ(vi、vj)に対して図5に示すようなreduceアルゴリズムを適用する。
第3の処理工程として、第3のreduce部170が、第1のreduce部130の処理および第2のreduce部150の処理によりreduceされなかったすべてのサンプルベクトルと第2のベクトル格納部113に格納されたすべてのベクトルとの組み合わせについてreduceを行い(ステップS170)、第3の移動部171が、reduceされたすべてのベクトル(例えば、図8のli)をスタック部111に移動する(ステップS180)。すなわち、図5に示すようなreduceアルゴリズムにおいて、reduceされなかったサンプルベクトルv内を用いて、全ての組み合わせ(vi、lj)に対して図7に示すようなreduceアルゴリズムを適用する。
そして、第4の工程として、マージ部180が図9に示すようなreduceアルゴリズムにおいて、第1のベクトル格納部112内のベクトルと第2のベクトル格納部内のベクトルとを図10に示すようにマージする(ステップS190)。そして、検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出し(ステップS200)、出力部220がステップS200で検出した検出結果の中から全体の最短ベクトルを出力する(ステップS210)。
以上、説明したように、本実施形態によれば、第1のreduce部の処理および第2のreduce部の処理により、サンプルベクトルは、Pairwise−reducedとなる。一方、リスト内のベクトルは、元々、Pairwise−reducedであるため、第3のreduce部の処理においてもPairwise−reducedを保つ。更に、第1のreduce部の処理および第3のreduce部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てGauss−reducedであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもPairwise−reducedとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずPairwise−reducedとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをreducedによって更新する際に、他のベクトルの更新を並列実行できるため、n並列化処理が可能となる。さらに、ベクトルサンプリングやベクトルの効率的な更新により、計算量を削減できる。
<第2の実施形態>
図11および図12を用いて、第2の実施形態について説明する。
図11および図12を用いて、第2の実施形態について説明する。
<公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置内の計算機の構成>
図11に示すように、本実施形態に係る計算機は、スタック部111と、第1のベクトル格納部112と、第2のベクトル格納部113と、第2のサンプルベクトル生成部121と、第1のreduce部130と、第1の移動部140と、第2のreduce部150と、第2の移動部160と、第3のreduce部170と、第3の移動部171と、マージ部180と、検出部190とから構成されている。なお、第1の実施形態と同一の記号を付す構成要素については、同様の機能を有するため、その詳細な説明は、省略する。
図11に示すように、本実施形態に係る計算機は、スタック部111と、第1のベクトル格納部112と、第2のベクトル格納部113と、第2のサンプルベクトル生成部121と、第1のreduce部130と、第1の移動部140と、第2のreduce部150と、第2の移動部160と、第3のreduce部170と、第3の移動部171と、マージ部180と、検出部190とから構成されている。なお、第1の実施形態と同一の記号を付す構成要素については、同様の機能を有するため、その詳細な説明は、省略する。
第2のサンプルベクトル生成部121は、格子としてイデアル格子が用いられる場合に、任意のベクトルについて、これを逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする。
<公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理>
図12を用いて、本実施形態に係る公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。
図12を用いて、本実施形態に係る公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。
まず、第2のベクトル格納部113にリスト内のベクトルを割り振り(ステップS111)、第2のサンプルベクトル生成部121が、r個のサンプルベクトルを生成する(ステップS121)。なお、サンプルベクトルの生成は、スタック部111にベクトルがある場合には、これを用い、スタック部111にベクトルがあるが数が十分でない場合あるいは、スタック部111にベクトルがない場合には、新たに生成を行う。また、本実施形態においては、格子としてイデアル格子を用いた場合には、ベクトルvの要素を回転させるローテーションrot(v)という操作を行う。このローテーションによっても新たなベクトルが生成でき、格子によっては短いベクトルを簡単な操作で大量に生成することが可能となる。例えば、g(x)=xn+1となる場合、ベクトルv=(v1、・・・・vn-1)のローテーションは、rot(v)=(−vn−1、v0、・・・・vn-2)となることが知られている。この時、ローテーションをする前と後でノルムは変化しないため、ある程度短いベクトルがあれば、それと同じノルムのベクトルを大量に生成できる。この方法では、逆方向へのローテーションを定義し、同様の効果を得る。g(x)=xn+1の時、逆ローテーションはrot-1(v)=(v1、・・・・vn-1、-v0)となり、同様にノルムは変化しない。したがって、イデアル格子の場合、ローテーションに加えて逆ローテーションも用いることによって更に多くのベクトルを簡単な処理で生成することによって高速化を行うことができる。
次に、第1の処理工程として、第1のreduce部130が、第2のベクトル格納部113に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う(ステップS131)。すなわち、LとVの全ての組み合わせ(li、vi)に対して図3に示すようなreduceアルゴリズムを適用する。ここで、reduceされたベクトル(例えば、図4のvi)は全て、第1の移動部140が、スタックS(スタック部111)に移動する(ステップS141)。
第2の処理工程として、第2のreduce部150が、第1のreduce部130の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行い(ステップS151)、第2の移動部160が、reduceされたすべてのベクトル(例えば、図6のvi)をスタック部に移動する(ステップS161)。すなわち、図3に示すようなreduceアルゴリズムにおいて、reduceされなかったサンプルベクトルv内の全ての組み合わせ(vi、vj)に対して図5に示すようなreduceアルゴリズムを適用する。
第3の処理工程として、第3のreduce部170が、第1のreduce部130の処理および第2のreduce部150の処理によりreduceされなかったすべてのサンプルベクトルと第2のベクトル格納部113に格納されたすべてのベクトルとの組み合わせについてreduceを行い(ステップS171)、第3の移動部171が、reduceされたすべてのベクトル(例えば、図8のli)をスタック部111に移動する(ステップS181)。すなわち、図5に示すようなreduceアルゴリズムにおいて、reduceされなかったサンプルベクトルv内を用いて、全ての組み合わせ(vi、lj)に対して図7に示すようなreduceアルゴリズムを適用する。
そして、第4の工程として、マージ部180が図9に示すようなreduceアルゴリズムにおいて、第1のベクトル格納部112内のベクトルと第2のベクトル格納部内のベクトルとを図10に示すようにマージする(ステップS191)。そして、検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出し(ステップS201)、出力部220がステップS201で検出した検出結果の中から全体の最短ベクトルを出力する(ステップS211)。
以上、説明したように、本実施形態によれば、第1のreduce部の処理および第2のreduce部の処理により、サンプルベクトルは、Pairwise−reducedとなる。一方、リスト内のベクトルは、元々、Pairwise−reducedであるため、第3のreduce部の処理においてもPairwise−reducedを保つ。更に、第1のreduce部の処理および第3のreduce部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てGauss−reducedであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもPairwise−reducedとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずPairwise−reducedとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをreducedによって更新する際に、他のベクトルの更新を並列実行できるため、n並列化処理が可能となる。さらに、ベクトルサンプリングやベクトルの効率的な更新により、計算量を削減できる。
<第3の実施形態>
図13および図14を用いて、第3の実施形態について説明する。
図13および図14を用いて、第3の実施形態について説明する。
<公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置内の計算機の構成>
図13に示すように、本実施形態に係る計算機は、スタック部111と、第1のベクトル格納部112と、第2のベクトル格納部113と、第3のサンプルベクトル生成部122と、第1のreduce部130と、第1の移動部140と、第2のreduce部150と、第2の移動部160と、第3のreduce部170と、第3の移動部171と、マージ部180と、検出部190とから構成されている。なお、第1の実施形態と同一の記号を付す構成要素については、同様の機能を有するため、その詳細な説明は、省略する。
図13に示すように、本実施形態に係る計算機は、スタック部111と、第1のベクトル格納部112と、第2のベクトル格納部113と、第3のサンプルベクトル生成部122と、第1のreduce部130と、第1の移動部140と、第2のreduce部150と、第2の移動部160と、第3のreduce部170と、第3の移動部171と、マージ部180と、検出部190とから構成されている。なお、第1の実施形態と同一の記号を付す構成要素については、同様の機能を有するため、その詳細な説明は、省略する。
第3のサンプルベクトル生成部122は、格子としてイデアル格子が用いられる場合に、問題で与えられる多項式がn次3項式であって、各係数がすべて1であるとき、任意のベクトルについて、正方向あるいは逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする。
<公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理>
図14を用いて、本実施形態に係る公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。
図14を用いて、本実施形態に係る公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理について説明する。
まず、第2のベクトル格納部113にリスト内のベクトルを割り振り(ステップS112)、第3のサンプルベクトル生成部が、格子としてイデアル格子が用いられる場合に、問題で与えられる多項式がn次3項式であって、各係数がすべて1であるとき、任意のベクトルについて、正方向あるいは逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする(ステップS122)。つまり、格子としてイデアル格子を用いた場合、ベクトルのローテーション、逆ローテーションが定義できる。この操作を行うことによって、格子によってはノルムが下がる場合がある。例えば、g(x)=xn+xn/2+1とした場合、ベクトルvのローテーションrot(v)は、以下のように定義できる。
v=(v0、v1、・・・・vn-2、vn-1)
v´=rot(v)
=(−vn-1、v0、・・・・vn/2-2、vn/2-1+vd-1、vn/2、・・・・、vn-2)
この時、ローテーション前のノルムと、ローテーション後のノルムは、数6のようになる。
v=(v0、v1、・・・・vn-2、vn-1)
v´=rot(v)
=(−vn-1、v0、・・・・vn/2-2、vn/2-1+vd-1、vn/2、・・・・、vn-2)
この時、ローテーション前のノルムと、ローテーション後のノルムは、数6のようになる。
すなわち、ノルムの変化は、(vn-1)2+2vn/2-1vn-1となり、vn/2-1とvn-1の大小関係、符号関係によってノルムが小さくなる。具体的には、vn-1 2+2vn/2-1vn-1<0であればノルムが小さくなる。この確率が0では無いことを以下のように示す。
vn/2-1vn-1>0、つまり同符号であれば、vn-1 2+2vn/2-1vn-1>0となる。この確率は1/2である。
一方、vn/2-1vn-1<0、つまり異符号の場合には、
vn-1 2+2vn/2-1vn-1=|vn-1|2−2|vn/2-1||vn-1|と表せるので、|vn-1|−2|vn/2-1|<0となる場合、つまり、|vn-1|<2|vn/2-1|となる確率を考える。ここで、vn-1、vn/2-1が同じ確率分布から独立してランダムに選ばれる場合、|vn-1|<k|vn/2-1|とすると、k=1となる確率は1/2となる。従ってk>1の場合、この確率は1/2より大きくなる。つまり、vn/2-1vd-1<0かつ|vn-1|<2|vn/2-1|となる確率は、1/4以上、1/2以下である。従って、数7となる確率、つまりローテーションによってノルムが小さくなる確率は、1/4以上、1/2以下である。
vn/2-1vn-1>0、つまり同符号であれば、vn-1 2+2vn/2-1vn-1>0となる。この確率は1/2である。
一方、vn/2-1vn-1<0、つまり異符号の場合には、
vn-1 2+2vn/2-1vn-1=|vn-1|2−2|vn/2-1||vn-1|と表せるので、|vn-1|−2|vn/2-1|<0となる場合、つまり、|vn-1|<2|vn/2-1|となる確率を考える。ここで、vn-1、vn/2-1が同じ確率分布から独立してランダムに選ばれる場合、|vn-1|<k|vn/2-1|とすると、k=1となる確率は1/2となる。従ってk>1の場合、この確率は1/2より大きくなる。つまり、vn/2-1vd-1<0かつ|vn-1|<2|vn/2-1|となる確率は、1/4以上、1/2以下である。従って、数7となる確率、つまりローテーションによってノルムが小さくなる確率は、1/4以上、1/2以下である。
また、2vn/2-1vn-1の期待値は、0である。しかし、vn-1 2は、必ず正となるため、ローテーションを繰り返すと漸近的には、ノルムは大きくなる。そのため、この方法では、最初の数回ローテーションでベクトルを生成し、ノルムが小さいベクトルが見つかったら、そのベクトルで元のベクトルを更新することで、アルゴリズム全体の処理を高速化できる。これは逆ローテーションの場合も同様である。
次に、第1の処理工程として、第1のreduce部130が、第2のベクトル格納部113に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う(ステップS132)。すなわち、LとVの全ての組み合わせ(li、vi)に対して図3に示すようなreduceアルゴリズムを適用する。ここで、reduceされたベクトル(例えば、図4のvi)は全て、第1の移動部140が、スタックS(スタック部111)に移動する(ステップS142)。
第2の処理工程として、第2のreduce部150が、第1のreduce部130の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行い(ステップS152)、第2の移動部160が、reduceされたすべてのベクトル(例えば、図6のvi)をスタック部に移動する(ステップS162)。すなわち、図3に示すようなreduceアルゴリズムにおいて、reduceされなかったサンプルベクトルv内の全ての組み合わせ(vi、vj)に対して図5に示すようなreduceアルゴリズムを適用する。
第3の処理工程として、第3のreduce部170が、第1のreduce部130の処理および第2のreduce部150の処理によりreduceされなかったすべてのサンプルベクトルと第2のベクトル格納部113に格納されたすべてのベクトルとの組み合わせについてreduceを行い(ステップS172)、第3の移動部171が、reduceされたすべてのベクトル(例えば、図8のli)をスタック部111に移動する(ステップS182)。すなわち、図5に示すようなreduceアルゴリズムにおいて、reduceされなかったサンプルベクトルv内を用いて、全ての組み合わせ(vi、lj)に対して図7に示すようなreduceアルゴリズムを適用する。
そして、第4の工程として、マージ部180が図9に示すようなreduceアルゴリズムにおいて、第1のベクトル格納部112内のベクトルと第2のベクトル格納部内のベクトルとを図10に示すようにマージする(ステップS192)。そして、検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出し(ステップS202)、出力部220がステップS201で検出した検出結果の中から全体の最短ベクトルを出力する(ステップS212)。
以上、説明したように、本実施形態によれば、第1のreduce部の処理および第2のreduce部の処理により、サンプルベクトルは、Pairwise−reducedとなる。一方、リスト内のベクトルは、元々、Pairwise−reducedであるため、第3のreduce部の処理においてもPairwise−reducedを保つ。更に、第1のreduce部の処理および第3のreduce部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てGauss−reducedであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもPairwise−reducedとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずPairwise−reducedとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをreducedによって更新する際に、他のベクトルの更新を並列実行できるため、n並列化処理が可能となる。さらに、ベクトルサンプリングやベクトルの効率的な更新により、計算量を削減できる。
なお、公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置に読み込ませ、実行することによって本発明の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
100;計算機
111;スタック部
112;第1のベクトル格納部
113;第2のベクトル格納部
120;第1のサンプルベクトル生成部
121;第2のサンプルベクトル生成部
122;第3のサンプルベクトル生成部
125;並列度設定部
130;第1のreduce部
140;第1の移動部
150;第2のreduce部
160;第2の移動部
170;第3のreduce部
171;第3の移動部
180;マージ部
190;検出部
200;求解装置
210;割振部
220;出力部
111;スタック部
112;第1のベクトル格納部
113;第2のベクトル格納部
120;第1のサンプルベクトル生成部
121;第2のサンプルベクトル生成部
122;第3のサンプルベクトル生成部
125;並列度設定部
130;第1のreduce部
140;第1の移動部
150;第2のreduce部
160;第2の移動部
170;第3のreduce部
171;第3の移動部
180;マージ部
190;検出部
200;求解装置
210;割振部
220;出力部
Claims (10)
- 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置であって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、を有し、
ベクトルのノルムが平均的に短いサンプルベクトルを生成する第1のサンプルベクトル生成部と、
前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第1のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第1の移動部と、
前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第2のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第2の移動部と、
前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第3のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第3の移動部と、
前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージするマージ部と、
該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部と、
を備え、
前記第2のベクトル格納部にベクトルを割り振る割振部と、
前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部と、
を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。 - 前記第1のサンプルベクトル生成部は、SampleDアルゴリズムを用いて、前記ベクトルのノルムが平均的に短いサンプルベクトルを生成することを特徴とする請求項1に記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置であって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、を有し、
格子としてイデアル格子が用いられる場合に、任意のベクトルについて、これを逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第2のサンプルベクトル生成部と、
前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第1のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第1の移動部と、
前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第2のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第2の移動部と、
前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第3のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第3の移動部と、
前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージするマージ部と、
該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部と、
を備え、
前記第2のベクトル格納部にベクトルを割り振る割振部と、
前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部と、
を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。 - 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置であって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、を有し、
格子としてイデアル格子が用いられる場合に、問題で与えられる多項式がn次3項式であって、各係数がすべて1であるとき、任意のベクトルについて、正方向あるいは逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第3のサンプルベクトル生成部と、
前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第1のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第1の移動部と、
前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第2のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第2の移動部と、
前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第3のreduce部と、
該reduceされたすべてのベクトルを前記スタック部に移動する第3の移動部と、
前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージするマージ部と、
該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する検出部と、
を備え、
前記第2のベクトル格納部にベクトルを割り振る割振部と、
前記検出部が検出した検出結果の中から全体の最短ベクトルを出力する出力部と、
を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。 - ユーザが並列度を任意に設定することができる並列度設定手段を備え、
前記並列度設定手段により、並列度が設定されたときに、前記第1のサンプルベクトル生成部、第2のサンプルベクトル生成部、第3のサンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする請求項1から4のいずれかに記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。 - 前記公開鍵暗号が格子暗号であることを特徴とする請求項1から5のいずれかに記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- 前記公開鍵暗号がRSA暗号であることを特徴とする請求項1から5のいずれかに記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、第1のサンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部と、第3の移動部と、マージ部と、検出部と、を有し、
前記第2のベクトル格納部にベクトルを割り振る第1のステップと、
前記第1のサンプルベクトル生成部が、ベクトルのノルムが平均的に短いサンプルベクトルを生成する第2のステップと、
前記第1のreduce部が、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第3のステップと、
前記第1の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第4のステップと、
前記第2のreduce部が、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第5のステップと、
前記第2の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第6のステップと、
前記第3のreduce部が、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第7のステップと、
前記第3の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第8のステップと、
前記マージ部が前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージする第9のステップと、
前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第10のステップと、
前記第10のステップで検出した検出結果の中から全体の最短ベクトルを出力する第11のステップと、
を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法。 - 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、第2のサンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部と、第3の移動部と、マージ部と、検出部と、を有し、
前記第2のベクトル格納部にベクトルを割り振る第1のステップと、
前記第2のサンプルベクトル生成部が、格子としてイデアル格子が用いられる場合に、任意のベクトルについて、これを逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第2のステップと、
前記第1のreduce部が、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第3のステップと、
前記第1の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第4のステップと、
前記第2のreduce部が、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第5のステップと、
前記第2の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第6のステップと、
前記第3のreduce部が、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第7のステップと、
前記第3の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第8のステップと、
前記マージ部が前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージする第9のステップと、
前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第10のステップと、
前記第10のステップで検出した検出結果の中から全体の最短ベクトルを出力する第11のステップと、
を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法。 - 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、第3のサンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部と、第3の移動部と、マージ部と、検出部と、を有し、
前記第2のベクトル格納部にベクトルを割り振る第1のステップと、
前記第3のサンプルベクトル生成部が、格子としてイデアル格子が用いられる場合に、問題で与えられる多項式がn次3項式であって、各係数がすべて1であるとき、任意のベクトルについて、正方向あるいは逆方向にローテーションし、長さの短いベクトルを選択して、これをサンプルベクトルとする第2のステップと、
前記第1のreduce部が、前記第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う第3のステップと、
前記第1の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第4のステップと、
前記第2のreduce部が、前記第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う第5のステップと、
前記第2の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第6のステップと、
前記第3のreduce部が、前記第1のreduce部の処理および前記第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと前記第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う第7のステップと、
前記第3の移動部が、該reduceされたすべてのベクトルを前記スタック部に移動する第8のステップと、
前記マージ部が前記第1のベクトル格納部内のベクトルと前記第2のベクトル格納部内のベクトルとをマージする第9のステップと、
前記検出部が、該マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する第10のステップと、
前記第10のステップで検出した検出結果の中から全体の最短ベクトルを出力する第11のステップと、
を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013124714A JP2015001555A (ja) | 2013-06-13 | 2013-06-13 | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013124714A JP2015001555A (ja) | 2013-06-13 | 2013-06-13 | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015001555A true JP2015001555A (ja) | 2015-01-05 |
Family
ID=52296126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013124714A Pending JP2015001555A (ja) | 2013-06-13 | 2013-06-13 | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015001555A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019079226A (ja) * | 2017-10-24 | 2019-05-23 | 日本電信電話株式会社 | 変換装置、判定装置、および計算装置 |
JP2021081591A (ja) * | 2019-11-19 | 2021-05-27 | Kddi株式会社 | 安全性評価装置、安全性評価方法及び安全性評価プログラム |
JP2021081592A (ja) * | 2019-11-19 | 2021-05-27 | Kddi株式会社 | 安全性評価装置、安全性評価方法及び安全性評価プログラム |
-
2013
- 2013-06-13 JP JP2013124714A patent/JP2015001555A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019079226A (ja) * | 2017-10-24 | 2019-05-23 | 日本電信電話株式会社 | 変換装置、判定装置、および計算装置 |
JP2021081591A (ja) * | 2019-11-19 | 2021-05-27 | Kddi株式会社 | 安全性評価装置、安全性評価方法及び安全性評価プログラム |
JP2021081592A (ja) * | 2019-11-19 | 2021-05-27 | Kddi株式会社 | 安全性評価装置、安全性評価方法及び安全性評価プログラム |
JP7146722B2 (ja) | 2019-11-19 | 2022-10-04 | Kddi株式会社 | 安全性評価装置、安全性評価方法及び安全性評価プログラム |
JP7191804B2 (ja) | 2019-11-19 | 2022-12-19 | Kddi株式会社 | 安全性評価装置、安全性評価方法及び安全性評価プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pulido-Gaytan et al. | Privacy-preserving neural networks with homomorphic encryption: C hallenges and opportunities | |
Bourse et al. | Fast homomorphic evaluation of deep discretized neural networks | |
Almazrooie et al. | Quantum reversible circuit of AES-128 | |
Song et al. | Quantum image encryption based on restricted geometric and color transformations | |
Imran et al. | Throughput/area optimised pipelined architecture for elliptic curve crypto processor | |
Schwabe et al. | Solving Binary with Grover’s Algorithm | |
JP5966877B2 (ja) | 復号方法、復号プログラム、復号装置、および鍵生成方法 | |
Musanna et al. | Image encryption using quantum 3-D Baker map and generalized gray code coupled with fractional Chen’s chaotic system | |
US11509454B2 (en) | Apparatus for processing modular multiply operation and methods thereof | |
JP2017515195A (ja) | 断熱量子計算を介してデジタル論理制約問題を解く | |
US11537770B2 (en) | Quantum circuit embedding by simulated annealing | |
Cao et al. | High-speed fully homomorphic encryption over the integers | |
Kepley et al. | Quantum circuits for F _ 2^ n F 2 n-multiplication with subquadratic gate count | |
Çavuşoğlu et al. | A novel parallel image encryption algorithm based on chaos | |
US10476661B2 (en) | Polynomial-based homomorphic encryption | |
Song et al. | A Bitwise Design and Implementation for Privacy‐Preserving Data Mining: From Atomic Operations to Advanced Algorithms | |
JP2023063430A (ja) | 暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム | |
Cheon et al. | Faster Bootstrapping of FHE over the Integers | |
JP2015001555A (ja) | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法 | |
Jang et al. | Optimized implementation of quantum binary field multiplication with toffoli depth one | |
Al Badawi et al. | Fast homomorphic SVM inference on encrypted data | |
Nita et al. | Homomorphic encryption | |
Cortés-Mendoza et al. | Privacy-preserving logistic regression as a cloud service based on residue number system | |
JP2014186097A (ja) | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム | |
Moody et al. | Improved attacks for characteristic-2 parameters of the cubic ABC simple matrix encryption scheme |