JP2014186097A - 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム - Google Patents
公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム Download PDFInfo
- Publication number
- JP2014186097A JP2014186097A JP2013059707A JP2013059707A JP2014186097A JP 2014186097 A JP2014186097 A JP 2014186097A JP 2013059707 A JP2013059707 A JP 2013059707A JP 2013059707 A JP2013059707 A JP 2013059707A JP 2014186097 A JP2014186097 A JP 2014186097A
- 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
【課題】処理の並列度を上げても効率の劣化が生じない公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラムを提供する。
【解決手段】第1のreduce部が、ベクトルとサンプルベクトルとの組み合わせについてreduceし、reduceされたベクトルをスタック部に移動する。第2のreduce部が、第1のreduce部でreduceされなかったサンプルベクトル間でreduceし、reduceされたベクトルをスタック部に移動する。第3のreduce部が、第1のreduce部でも第2のreduce部でもreduceされなかったサンプルベクトルとベクトルとの組み合わせについてreduceし、スタック部内のベクトルと第2のベクトル格納部内のベクトルとをマージし、その中から最短ベクトルを検出し、検出結果の中から全体の最短ベクトルを出力する。
【選択図】図2
【解決手段】第1のreduce部が、ベクトルとサンプルベクトルとの組み合わせについてreduceし、reduceされたベクトルをスタック部に移動する。第2のreduce部が、第1のreduce部でreduceされなかったサンプルベクトル間でreduceし、reduceされたベクトルをスタック部に移動する。第3のreduce部が、第1のreduce部でも第2のreduce部でも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アルゴリズムを用いた最短ベクトル問題に関し、処理の並列度を上げても効率の劣化が生じない公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラムを提供することを目的とする。
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
(1)本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置であって、前記計算機が、reduceされたベクトルを格納するスタック部(例えば、図1のスタック部111に相当)と、サンプルベクトルを格納する第1のベクトル格納部(例えば、図1の第1のベクトル格納部112に相当)と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部(例えば、図1の第2のベクトル格納部113に相当)と、を有し、前記サンプルベクトルを生成するサンプルベクトル生成部(例えば、図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アルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
この発明によれば、計算機のサンプルベクトル生成部は、サンプルベクトルを生成する。計算機の第1のreduce部は、第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行う。計算機の第1の移動部は、reduceされたすべてのベクトルをスタック部に移動する。計算機の第2のreduce部は、第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行う。計算機の第2の移動部は、該reduceされたすべてのベクトルをスタック部に移動する。計算機の第3のreduce部は、第1のreduce部の処理および第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行う。計算機の第3の移動部は、reduceされたすべてのベクトルをスタック部に移動する。計算機のマージ部は、第1のベクトル格納部内のベクトルと第2のベクトル格納部内のベクトルとをマージする。計算機の検出部は、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。割振部は、第2のベクトル格納部にベクトルを割り振る。出力部は、検出部が検出した検出結果の中から全体の最短ベクトルを出力する。つまり、第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)本発明は、(1)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、前記サンプルベクトル生成部は、前記スタック部にベクトルが格納されている場合には、これを含めて、前記サンプルベクトルの数が、必要数になるように、新たなサンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
この発明によれば、サンプルベクトル生成部は、スタック部にベクトルが格納されている場合には、これを含めて、サンプルベクトルの数が、必要数になるように、新たなサンプルベクトルを生成する。これにより、サンプルベクトルの生成処理を効率化することができる。
(3)本発明は、(1)または(2)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、ユーザが並列度を任意に設定することができる並列度設定手段を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
この発明によれば、ユーザが並列度を任意に設定することができる。したがって、全体の処理の希望所要時間等に応じて、並列度を任意に設定することができる。
(4)本発明は、(3)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、前記並列度設定手段により、並列度が設定されたときに、前記サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
この発明によれば、並列度設定手段により、並列度が設定されたときに、サンプルベクトル生成部が、設定された並列度に応じて、サンプルベクトルを生成する。これにより、複数のサンプルベクトルに対して同時に演算を行い、Gauss Sieveアルゴリズムと同様の結果を従来よりも短時間で出力することができる。
(5)本発明は、(1)から(3)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、前記公開鍵暗号が格子暗号であることを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
この発明によれば、公開鍵暗号が格子暗号である。これにより、格子暗号を用いた場合であっても、Gauss Sieveアルゴリズムと同様の結果を従来よりも短時間で出力することができる。
(6)本発明は、(1)から(3)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置について、前記公開鍵暗号がRSA暗号であることを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を提案している。
この発明によれば、公開鍵暗号がRSA暗号である。これにより、RSA暗号を用いた場合であっても、Gauss Sieveアルゴリズムと同様の結果を従来よりも短時間で出力することができる。
(7)本発明は、複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、前記計算機が、reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、サンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部とマージ部と、検出部と、を有し、前記第2のベクトル格納部にベクトルを割り振る第1のステップ(例えば、図2のステップS110に相当)と、前記計算機の前記サンプルベクトル生成部が、前記サンプルベクトルを生成する第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に相当)と、を備えたことを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法を提案している。
この発明によれば、第2のベクトル格納部にベクトルを割り振り、計算機のサンプルベクトル生成部が、サンプルベクトルを生成し、計算機の第1のreduce部が、第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行って、計算機の第1の移動部が、reduceされたすべてのベクトルをスタック部に移動する。次に、計算機の第2のreduce部が、第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行い、計算機の第2の移動部が、reduceされたすべてのベクトルをスタック部に移動する。さらに、計算機の第3のreduce部が、第1のreduce部の処理および第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行い、計算機の第3の移動部が、reduceされたすべてのベクトルをスタック部に移動し、計算機のマージ部が第1のベクトル格納部内のベクトルと第2のベクトル格納部内のベクトルとをマージし、計算機の検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。そして、検出した検出結果の中から全体の最短ベクトルを出力する。つまり、第1のreduce部の処理および第2のreduce部の処理により、サンプルベクトルは、Pairwise−reducedとなる。一方、リスト内のベクトルは、元々、Pairwise−reducedであるため、第3のreduce部の処理においてもPairwise−reducedを保つ。更に、第1のreduce部の処理および第3のreduce部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てGauss−reducedであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもPairwise−reducedとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずPairwise−reducedとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをreducedによって更新する際に、他のベクトルの更新を並列実行できるため、n並列化処理が可能となる。
(8)本発明は、(7)の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法について、ユーザにより、並列度が設定されたときに、前記第2のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法を提案している。
この発明によれば、ユーザにより、並列度が設定されたときに、第1のステップにおいて、サンプルベクトル生成部が、設定された並列度に応じて、サンプルベクトルを生成する。これにより、サンプルベクトルの生成処理を効率化することができる。
(9)本発明は、複数の計算機を備え、公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法をコンピュータに実行させるためのプログラムであって、前記計算機が、reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、サンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部とマージ部と、検出部と、を有し、前記第2のベクトル格納部にベクトルを割り振る第1のステップ(例えば、図2のステップS110に相当)と、前記計算機の前記サンプルベクトル生成部が、前記サンプルベクトルを生成する第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に相当)と、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、第2のベクトル格納部にベクトルを割り振り、計算機のサンプルベクトル生成部が、サンプルベクトルを生成し、計算機の第1のreduce部が、第2のベクトル格納部に格納されたすべてのベクトルとすべてのサンプルベクトルとの組み合わせについてreduceを行って、計算機の第1の移動部が、reduceされたすべてのベクトルをスタック部に移動する。次に、計算機の第2のreduce部が、第1のreduce部の処理によりreduceされなかったすべてのサンプルベクトル間でreduceを行い、計算機の第2の移動部が、reduceされたすべてのベクトルをスタック部に移動する。さらに、計算機の第3のreduce部が、第1のreduce部の処理および第2のreduce部の処理によりreduceされなかったすべてのサンプルベクトルと第2のベクトル格納部に格納されたすべてのベクトルとの組み合わせについてreduceを行い、計算機の第3の移動部が、reduceされたすべてのベクトルをスタック部に移動し、計算機のマージ部が第1のベクトル格納部内のベクトルと第2のベクトル格納部内のベクトルとをマージし、計算機の検出部が、マージして得られたベクトルの数が所定値以下の場合に、その中から最短ベクトルを検出する。そして、検出した検出結果の中から全体の最短ベクトルを出力する。つまり、第1のreduce部の処理および第2のreduce部の処理により、サンプルベクトルは、Pairwise−reducedとなる。一方、リスト内のベクトルは、元々、Pairwise−reducedであるため、第3のreduce部の処理においてもPairwise−reducedを保つ。更に、第1のreduce部の処理および第3のreduce部の処理でリスト内のすべてのベクトルとサンプルベクトルの要素全ての組み合わせが、全てGauss−reducedであることが保証される。そのため、リスト内のベクトルとサンプルベクトルを連結してもPairwise−reducedとなる。そして、上記の処理を衝突がある一定以上発生するまで繰り返す。このアルゴリズムでは、リスト内のベクトルは必ずPairwise−reducedとなり、並列度を上げても肥大化することはない。そのため、あるベクトルをreducedによって更新する際に、他のベクトルの更新を並列実行できるため、n並列化処理が可能となる。
(10)本発明は、(9)のプログラムについて、ユーザにより、並列度が設定されたときに、前記第2のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とするプログラムを提案している。
この発明によれば、ユーザにより、並列度が設定されたときに、第1のステップにおいて、サンプルベクトル生成部が、設定された並列度に応じて、サンプルベクトルを生成する。これにより、サンプルベクトルの生成処理を効率化することができる。
本発明によれば、並列度をユーザが自由に設定することができ、効率的に最短ベクトル問題を解くことが可能となるという効果がある。また、これまでは、大きな次元の最短ベクトル問題を求解するためには計算時間をかける必要があったが、本発明を用いると計算機の台数を増やすことによって計算時間をかけずに求解することが可能となるという効果がある。
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
以下、図1から図10を用いて、本発明の実施形態について説明する。
<公開鍵暗号化方式における並列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と、サンプルベクトル生成部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であるリスト内のベクトルを格納する。
サンプルベクトル生成部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つの処理工程から構成されている。
まず、処理の内容を説明する前に、以下の6つの事項を定義する。なお、本実施形態においては、格子暗号を例示して説明を行うが、これに限らず、例えば、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>
ベクトルv=(v1、・・・・vn)のユークリッドノルムを数2とする。
ベクトルv=(v1、・・・・vn)のユークリッドノルムを数2とする。
<定義3>
ベクトルv=(v1、・・・・vn)、u=(u1、・・・・un)の内積を数3とする。
ベクトルv=(v1、・・・・vn)、u=(u1、・・・・un)の内積を数3とする。
<定義4>
格子L(B)が与えられて、格子に含まれるベクトルのうちで、ユークリッドノルムが最小のベクトルを求める問題を最短ベクトル問題と呼ぶ。
格子L(B)が与えられて、格子に含まれるベクトルのうちで、ユークリッドノルムが最小のベクトルを求める問題を最短ベクトル問題と呼ぶ。
<定義5>
あるベクトルa、b∈L(B)が数4を満たすとき、a、bは、Gauss−reducedであるという。
あるベクトルa、b∈L(B)が数4を満たすとき、a、bは、Gauss−reducedであるという。
<定義6>
ある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)、計算機のサンプルベクトル生成部120が、r個のサンプルベクトルを生成する(ステップS120)。なお、サンプルベクトルの生成は、スタック部111にベクトルがある場合には、これを用い、スタック部111にベクトルがあるが数が十分でない場合あるいは、スタック部111にベクトルがない場合には、新たに生成を行う。
次に、第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並列化処理が可能となる。
なお、公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置に読み込ませ、実行することによって本発明の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
100;計算機
111;スタック部
112;第1のベクトル格納部
113;第2のベクトル格納部
120;サンプルベクトル生成部
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;サンプルベクトル生成部
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のベクトル格納部と、を有し、
前記サンプルベクトルを生成するサンプルベクトル生成部と、
前記第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に記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- ユーザが並列度を任意に設定することができる並列度設定手段を備えたことを特徴とする請求項1または請求項2に記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- 前記並列度設定手段により、並列度が設定されたときに、前記サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする請求項3に記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- 前記公開鍵暗号が格子暗号であることを特徴とする請求項1から請求項3のいずれかに記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- 前記公開鍵暗号がRSA暗号であることを特徴とする請求項1から請求項3のいずれかに記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置。
- 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法であって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、サンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部と、第3の移動部と、マージ部と、検出部と、を有し、
前記第2のベクトル格納部にベクトルを割り振る第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アルゴリズムを用いた最短ベクトル問題の求解方法。 - ユーザにより、並列度が設定されたときに、前記第2のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする請求項7に記載の公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解方法。
- 複数の計算機を備えた公開鍵暗号化方式における並列Gauss Sieveアルゴリズムを用いた最短ベクトル問題の求解装置における求解方法をコンピュータに実行させるためのプログラムであって、
前記計算機が、
reduceされたベクトルを格納するスタック部と、サンプルベクトルを格納する第1のベクトル格納部と、Pairwise−reducedであるリスト内のベクトルを格納する第2のベクトル格納部と、サンプルベクトル生成部と、第1のreduce部と、第1の移動部と、第2のreduce部と、第2の移動部と、第3のreduce部と、第3の移動部と、マージ部と、検出部と、を有し、
前記第2のベクトル格納部にベクトルを割り振る第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のステップと、
をコンピュータに実行させるためのプログラム。 - ユーザにより、並列度が設定されたときに、前記第2のステップにおいて、サンプルベクトル生成部が、該設定された並列度に応じて、サンプルベクトルを生成することを特徴とする請求項9に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013059707A JP2014186097A (ja) | 2013-03-22 | 2013-03-22 | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013059707A JP2014186097A (ja) | 2013-03-22 | 2013-03-22 | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014186097A true JP2014186097A (ja) | 2014-10-02 |
Family
ID=51833762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013059707A Pending JP2014186097A (ja) | 2013-03-22 | 2013-03-22 | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014186097A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2016162941A1 (ja) * | 2015-04-07 | 2017-06-01 | 三菱電機株式会社 | 暗号システム及び鍵生成装置 |
WO2019180787A1 (ja) * | 2018-03-19 | 2019-09-26 | 日本電気株式会社 | 復号装置、復号方法及びプログラム記録媒体 |
JP2020071877A (ja) * | 2018-10-31 | 2020-05-07 | 富士通株式会社 | アニーリングを用いて格子問題を解く方法及びシステム |
CN116757698A (zh) * | 2023-04-20 | 2023-09-15 | 广东盛迪嘉电子商务股份有限公司 | 一种用于完善支付安全性能的加密方法及系统 |
-
2013
- 2013-03-22 JP JP2013059707A patent/JP2014186097A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2016162941A1 (ja) * | 2015-04-07 | 2017-06-01 | 三菱電機株式会社 | 暗号システム及び鍵生成装置 |
WO2019180787A1 (ja) * | 2018-03-19 | 2019-09-26 | 日本電気株式会社 | 復号装置、復号方法及びプログラム記録媒体 |
JP2020071877A (ja) * | 2018-10-31 | 2020-05-07 | 富士通株式会社 | アニーリングを用いて格子問題を解く方法及びシステム |
CN116757698A (zh) * | 2023-04-20 | 2023-09-15 | 广东盛迪嘉电子商务股份有限公司 | 一种用于完善支付安全性能的加密方法及系统 |
CN116757698B (zh) * | 2023-04-20 | 2024-05-14 | 广东盛迪嘉电子商务股份有限公司 | 一种用于完善支付安全性能的加密方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Cryptanalyzing image encryption using chaotic logistic map | |
JP2018054765A (ja) | データ処理装置、データ処理方法、およびプログラム | |
Çavuşoğlu et al. | A novel parallel image encryption algorithm based on chaos | |
KR102550812B1 (ko) | 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치 | |
JP2018142013A (ja) | 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法 | |
EP3202079B1 (en) | Exponent splitting for cryptographic operations | |
Podschwadt et al. | A survey of deep learning architectures for privacy-preserving machine learning with fully homomorphic encryption | |
JP6915375B2 (ja) | 多項式ベースの準同型暗号 | |
Mahajan et al. | Analysis of RSA algorithm using GPU programming | |
JP2014186097A (ja) | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム | |
Yang et al. | Accelerating RSA with fine-grained parallelism using GPU | |
US11902432B2 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
Luo et al. | Power analysis attack of an AES GPU implementation | |
CN113722755A (zh) | 实现隐私保护的数据处理系统、方法、装置和设备 | |
US11101981B2 (en) | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation | |
Jang et al. | Optimized implementation of quantum binary field multiplication with toffoli depth one | |
Kumar et al. | Quantum computing for health care: a review on implementation trends and recent advances | |
Mahé et al. | Fast GPGPU-based elliptic curve scalar multiplication | |
JP2015001555A (ja) | 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法 | |
Muhammed et al. | Improved cloud-based N-primes model for symmetric-based fully homomorphic encryption using residue number system | |
Mahajan et al. | Performance analysis of efficient rsa text encryption using nvidia cuda-c and opencl | |
Alabdulatif et al. | Privacy preserving cloud computation using Domingo-Ferrer scheme | |
Yudheksha et al. | A study of AES and RSA algorithms based on GPUs | |
JP6067596B2 (ja) | ペアリング演算装置、マルチペアリング演算装置、プログラム | |
Stephen Dass et al. | Comparative analysis of a systematic coherent encryption scheme for large-scale data management using cryptographic encryption technique |