JP6963277B2 - 変換装置、判定装置、および計算装置 - Google Patents

変換装置、判定装置、および計算装置 Download PDF

Info

Publication number
JP6963277B2
JP6963277B2 JP2017205011A JP2017205011A JP6963277B2 JP 6963277 B2 JP6963277 B2 JP 6963277B2 JP 2017205011 A JP2017205011 A JP 2017205011A JP 2017205011 A JP2017205011 A JP 2017205011A JP 6963277 B2 JP6963277 B2 JP 6963277B2
Authority
JP
Japan
Prior art keywords
vector
unit
dimensional
quantum
basis
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.)
Active
Application number
JP2017205011A
Other languages
English (en)
Other versions
JP2019079226A (ja
Inventor
泰人 河野
浩 関川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokyo University of Science
Nippon Telegraph and Telephone Corp
Original Assignee
Tokyo University of Science
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tokyo University of Science, Nippon Telegraph and Telephone Corp filed Critical Tokyo University of Science
Priority to JP2017205011A priority Critical patent/JP6963277B2/ja
Priority to US16/168,014 priority patent/US11521102B2/en
Publication of JP2019079226A publication Critical patent/JP2019079226A/ja
Application granted granted Critical
Publication of JP6963277B2 publication Critical patent/JP6963277B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Complex Calculations (AREA)

Description

本発明は量子計算技術に関する。
1994年、Shorは因数分解と離散対数問題を効率的に解く量子アルゴリズムを発見し、RSA暗号やElGamal暗号など、因数分解や離散対数問題の難しさを安全性の根拠とする公開鍵暗号にとって、量子コンピュータが深刻な脅威となることを明らかにした。この発見がきっかけとなり、現在、耐量子暗号(ポスト量子暗号とも呼ばれる)の研究が盛んに行われている。これらの公開鍵暗号は、格子問題、多変数多項式問題、符号問題など、量子コンピュータにとって困難と思われている問題をベースに設計されている。中でも、最短ベクトル問題(SVP)、最近ベクトル問題(CVP)、Learning with Errors(LWE)、Short Integer Solution(SIS)など、格子問題の難しさを安全性の根拠とする公開鍵暗号は、格子暗号と呼ばれ、耐量子暗号研究において最も有望視されている暗号群である。その理由は、格子暗号の一部について量子コンピュータに対する条件付き安全性証明が知られていることに加えて、完全準同型暗号が構成できることによる。ここで、完全準同型暗号とは、暗号化したまま無制限に情報処理を行うことができる暗号のことである。完全準同型暗号は、クラウドからの情報漏えいに対抗する有力手段と考えられており、クラウドの一般化に伴い、近年、その重要性が急速に高まっている。
一方、量子アルゴリズムの研究分野では、Shorのアルゴリズムを拡張する研究が行われてきた。Shorのアルゴリズムの自然な拡張は、隠れ部分群問題に応用できる。隠れ部分群問題は、群を替えるとさまざまな問題と関係することが知られている。例えば、対称群に対する隠れ部分群問題が解ければ、グラフ同型性判定問題も解ける。また、二面体群に対する隠れ部分群問題は格子問題と密接に関係している。こうしたことから、Shorのアルゴリズムを拡張し、新しい量子アルゴリズムを開発する努力が続けられてきた。この背景には、近年の人工知能ブームも関係している。Shorのアルゴリズムは周期発見問題に応用できるが、人工知能で問題となっている組み合わせ最適化問題には適用できない。一方、Shorのアルゴリズム発見以降に提案されたGroverのアルゴリズムや量子ウォークアルゴリズムなどは、組み合わせ最適化問題に適用できるが、問題を効率的に解くことができない。そこで、組み合わせ最適化問題を効率的に解く量子アルゴリズムの開発が待ち望まれてきた。
組み合わせ最適化問題のうち最短ベクトル問題などに代表される格子問題は、人工知能の他、次世代暗号に利用されるため、その解法が詳しく研究されている。以下、古典、量子についてそれぞれ記す。
格子問題を解くために用いられる最も一般的な古典アルゴリズムは格子簡約化アルゴリズムである。格子簡約化アルゴリズムとは、与えられたベクトル空間の基底から、全ての基底が互いに直行に近くなるような新しい基底を計算する。そのために、全ての基底ベクトルの組み合わせに対して、グラム−シュミットの直交化法に近い操作を繰り返し施す。格子簡約化アルゴリズムの結果得られる最も短いベクトルの長さは、最悪の場合、求めたい最短ベクトルの長さに対して指数的に大きくなる。
格子問題を解く量子アルゴリズムとして、例えば、非特許文献1,2の方法が提案されている。非特許文献1では、最近ベクトル問題をもとに、Dihedral Coset Stateと呼ばれる量子状態を作り、量子フーリエ変換を利用して解を得る。非特許文献2では、確率振幅増幅を用いて解を探索する。しかし、格子問題を効率的に解く量子アルゴリズムは見つかっていない。
Oded Regev, Quantum Computation and Lattice Problems, SIAM Journal on Computing, Vol 33, No. 3, pp. 738-760, (2004). T. Laarhoven and M. Mosca and J. van de Pol, Finding shortest lattice vectors faster using quantum search, Designs, Codes and Cryptography, Vol 7. No 2, pp. 375-400(2015).
本発明は格子問題を効率的に解くことを目的とする。
基底Bおよび目標ベクトルtの入力、または、
Figure 0006963277
を満たすn次元ベクトルa=(a1j,…,anj,t=g=(g,…,gおよび整数N’の入力に対し、
Figure 0006963277
を満たす{rji (c),rji (d),rj0}およびm,M,Nを得て出力する。まず、古典計算によって基底Bについての双対基底Bを得る。次に、複数の整数について格子L(B)をtの整数倍分平行移動させて得られる集合の和集合に含まれる点列の周期性を利用した量子計算を行い、j=1,…,mについて、n次元ベクトルr=(rj1,…,rjn)およびrj0を得る。その後、古典計算によってn次元ベクトルrに最も近い最近ベクトルr (c)=(rj1 (c),…,rjn (c))∈L(B)およびr (c)に対応する差分ベクトルr (d)=r−r (c)=(rj1 (d),…,rjn (d))を得る。
このように、基底Bおよび目標ベクトルtについての最近ベクトル問題(CVP)や式(1)のLearning with Errors(LWE)を式(2)の問題に効率的に変形できる。式(2)の問題の解(差分ベクトルt(d))は古典計算によって得ることができる。そのため、本発明では格子問題を効率的に解くことができる。
図1は実施形態の原理を説明するための概念図である。 図2は各実施形態の対応関係を表す概念図である。 図3は各実施形態の対応関係を表す概念図である。 図4は実施形態の変換装置の機能構成を例示したブロック図である。 図5は図4の量子計算部の機能構成を例示したブロック図である。 図6は図5の量子計算部の量子回路を例示した図である。 図7は量子計算を説明するための概念図である。 図8は実施形態の判定装置の機能構成を例示したブロック図である。 図9は図8の超平面距離推定部33の機能構成を例示したブロック図である。 図10は解と超平面との関係を例示した概念図である。 図11Aおよび図11Bは解と超平面との関係を例示した概念図である。 図12はEvalと解との関係を例示した実験結果である。 図13は実施形態の計算装置の機能構成を例示したブロック図である。 図14Aおよび図14Bは子ノード生成を説明するための概念図である。 図15は実施形態の計算方法を説明するための概念図である。 図16は実施形態の計算装置の機能構成を例示したブロック図である。
以下、図面を参照して本発明の実施形態を説明する。
[定義]
実施形態で用いる用語を定義する。
n,m,m’,M,N,N’は正の整数である。i=1,…,nであり、j=1,…,mであり、u=1,…,nである。sは整数要素からなるn次元ベクトルである。rji (c),rji (d),rj0,X,d,g,eは整数である。L,γが正の実数である。aはn個の整数要素a1j,…,anjからなるn次元ベクトルa=(a1j,…,anjである。gはn個の要素g,…,gからなるn次元ベクトルg=(g,…,gである。εはu番目の要素が1で他の要素が0のn次元単位ベクトルε=(0,…,1,0,…,0)である。
ηはηの転置を表す。ηはベクトルまたは行列である。|Λ|は集合Λの要素数を表す。ABS(μ)はμの絶対値を表す。||η||はηのユークリッドノルムを表す。すなわち、||η||はηの長さを表す。round(μ)はμに最も近い整数である。すなわち、roundは丸め関数を表す。floor(μ)はμ以下の最大の整数である。すなわち、floorは床関数を表す。ceil(μ)はμ以上の最小の整数である。すなわち、ceilは天井関数を表す。λ∈Λはλが集合Λの要素であることを意味する。<τ,χ>はベクトルτとベクトルχとの内積を表す。det(η)はηの行列式を表す。|δ〉はδに対応する量子状態を示す縦ベクトルを表す。|δ1>|δ2>は|δ1>と|δ2>とのテンソル積を表す。
B={b,…,b}は一次独立なn個のn次元ベクトルbからなる基底である。n次元ベクトルb=(bi1,…,bin)∈Zのそれぞれはn個の整数要素bi1,…,bin∈Zからなる。Zは整数を表す。βは基底Bのn次元ベクトルb,…,bを要素とするn行n列の基底行列である。例えば、βはn次元ベクトルbをi行目の成分とする以下の行列である。
Figure 0006963277
t=(t,…,tはn個の整数要素t∈Zからなる目標ベクトルである。
L(B)は格子{Σi=1,…,n |x∈Z,b∈B}である。ただし、xは整数である。すなわち、
Figure 0006963277
である。
n次元ベクトルtおよび格子L(B)についてτ+L(B)は、格子L(B)のすべての格子点をn次元ベクトルτ分平行移動させて得られる集合を表す。すなわち、τ+L(B)={τ+χ|χ∈L(B)}である。またτ+L(B)=L(B)+τである。
基底Bの部分集合B’が作る超平面をH(B’)と表記する。超平面H(B’)は、部分集合B’の要素であるベクトルb’∈B’によって張られるベクトル空間{Σi=1,…,n ζi’|ζ∈Re,b’∈B’}を意味する。ただし、ζは実数である。すなわち、
Figure 0006963277
である。Reは実数を表す。
tはn個の整数要素t,…,tからなるn次元ベクトルt=(t,…,tである。原点から格子点(格子L(B)上の点)へ向かうベクトルを格子点ベクトルと呼ぶことにする。
<格子問題>
実施形態で扱う格子問題を簡単に説明する。より詳しい内容については参考文献1,2参照。
[参考文献1]Daniele Micciancio and Shafi Goldwasser, Complexity of Lattice Problems: a cryptographic perspective, Kluwer Academic Publishers, The Kluwer International Series in Engineering and Computer Science, vol. 671 (2002).
[参考文献2]Cohen, Henri, A Course in Computational Algebraic Number Theory, Springer-Verlag New York, Inc., ISBN 0-387-55640-0 (1993).
≪最短ベクトル問題(SVP)≫
最短ベクトル問題とは、基底Bが与えられたとき、格子L(B)の中で最も原点に近い格子点(原点から最も当該原点に近い格子点へ向かうベクトル、すなわち最短ベクトル)を求める問題である。最短ベクトルの長さと、格子L(B)の中で二番目に原点に近いベクトルの長さとの比がγ以上のとき、最短ベクトル問題はγ−unique SVPと呼ばれる。最短ベクトル問題はNP困難であり、γを変えることにより、問題の難しさを調整することができる。最短ベクトル問題は、次に示す最近ベクトル問題に帰着できることが知られている。したがって、最近ベクトル問題は、最短ベクトル問題以上に難しい。
≪最近ベクトル問題(CVP)≫
最近ベクトル問題とは、基底Bと目標ベクトルtとの組(B,t)が与えられたとき、目標ベクトルtとの差分ベクトルが最短となるような格子L(B)の最近ベクトルt(c)∈L(B)を求める問題である。組(B,t)についての最近ベクトル問題をCVP(B,t)と表記する。最近ベクトルt(c)∈L(B)は目標ベクトルtに最も近い格子点ベクトルである。t(d)は目標ベクトルtと最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)を表す。このような差分ベクトルt(d)を最短差分ベクトルと呼ぶ。最短差分ベクトルt(d)=t−t(c)と、目標ベクトルtと目標ベクトルtに2番目に近い格子点ベクトルとの差分ベクトルと、の長さの比がγ以上のとき、最近ベクトル問題をγ−gap CVPと呼ぶ。最近ベクトル問題を近似的に解く古典アルゴリズムとして,Babaiが提案したRounding-Off アルゴリズムやNearest Planeアルゴリズムが知られている。
[参考文献3]L. Babai, On Lovasz Lattice Reduction and the Nearest Lattice Point Problem, Combinatorica, Vol. 6, No. 1, pp.1-13, (1986).
しかし、これらのアルゴリズムによって得られる解の近似率は、それぞれ1+2n(9/2)n/2,2n/2であり、両者とも次元の指数的な近似率しか保証しない。
最近ベクトル問題よりも基本的な問題として、次のGapCVPγが知られている。最近ベクトル問題が探索問題なのに対して、GapCVPγは決定問題(Yes/Noを答える問題)である。
≪GapCVPγ
GapCVPγとは、基底Bと目標ベクトルtとの組(B,t)と長さLが与えられたとき、dist(B,t)≦Lかdist(B,t)>γLのどちらかが必ず正しいという約束の下、dist(B,t)≦L(Yes instance)か、dist(B,t)>γL(No instance)かを判定する決定問題である。ここで、dist(B,t)とは、最短差分ベクトルt(d)の長さ(すなわち||t(d)||)のことである。γが小さくなるほどGapCVPγは難しくなる。
Figure 0006963277
以下なら、GapCVPγはNP困難であることが知られている。
[参考文献4]Dinur, I. and Kindler, G. and Safra, S., Approximating-CVP to Within Almost-Polynomial Factors is NP-Hard, Proceedings of the 39th Annual Symposium on Foundations of Computer Science, FOCS '98, IEEE Computer Society, Washington, DC, USA, pp.99-111 (1998).
逆にγ≧√nの場合、GapCVPγはNP困難でないと予想されている。
[参考文献5]岡本龍明,“応用数理の散歩道(79) これからの暗号”, 応用数理, Vol. 24, No. 3, pp. 36-39, December, (2014).
SVP,CVP,GapCVPγは古くから研究されている格子問題であるのに対して、次のLWEは比較的最近提案された問題である。LWEは、有望な次世代暗号で用いられるため、上記の問題と並んで詳しく研究されている。
[参考文献6]Oded Regev, On Lattices, Learning with Errors, Random Linear Codes, and Cryptography, J. ACM,, Vol 56, No. 6, 34:1‐34:40 (2009).
≪LWE(Learning with Errors)≫
LWEとは、正の整数m,n,N、整数要素のn×mランダム行列A=(aij)(i=1,…,n、j=1,…,m)、m次元ランダムベクトルX=(X,…,X、および各要素がガウス分布に従う短いベクトルd=(d,…,dから
Figure 0006963277
によりg=(g,…,gを定めたとき、(A,g,N)からXを求める問題である。ただし、Xは整数である。dが分かれば(3)からXも計算できるため、dを求めてもよい。
一般に、{x∈Z|<x,b>∈Z for all b∈L(B)}は、格子L(B)の「双対格子」と呼ばれる。
[参考文献7]Daniele Micciancio and Shafi Goldwasser, Complexity of Lattice Problems: a cryptographic perspective, Kluwer Academic Publishers, The Kluwer International Series in Engineering and Computer Science, vol. 671 (2002).
各実施形態で導入する「Nに関する双対格子」は、この一般的な「双対格子」とは異なる。Nに関する双対格子を導入するのは、格子の重ね合せ状態の全座標軸に対してN次元の量子フーリエ変換を実行した結果が、Nに関する双対格子の重ね合わせになることによる。Nに関する双対格子のLLL既約基底を「Nに関する双対基底」と呼ぶことにする。ここで、LLL既約基底の定義については、参考文献1の33−35ページを参照のこと。任意の基底にLLLアルゴリズムを適用すると、LLL規約基底の定義を満たす基底が得られることが知られている(参考文献1、2.2章)。従って、Nに関する双対格子の基底に、LLLアルゴリズムを適用することにより、Nに関する既約基底が得られる。Nに関する双対基底はエルミート標準形を用いて効率的に計算できる。
≪Nに関する双対格子≫
基底Bと整数Nに対して{τ∈Z|<τ,χ>=0 mod N for all χ∈L(B)}で定義される格子を「Nに関する双対格子」と呼ぶ。Nに関する格子L(B)の双対格子のLLL既約基底をBと書き、双対基底と呼ぶ。なお、「B」の右上添え字の「−」は本来「B」の真上に記載すべきであるが記載表記の制約上「B」の右上に表記する場合がある。
各実施形態では、Nに関する双対基底の概念を用いて「変形LWE」の概念を導入する。後述のように、量子コンピュータを用いて、CVPやLWEから変形LWEを効率的に求めることができ、古典コンピュータを用いて、変形LWEの解の長さがL以下かγLよりも大きいかを効率的に判定することができる。
≪変形LWE≫
変形LWEとは、正の整数m,n,N、m×n行列
Figure 0006963277
(ただし、すべてのj=1,…,mに対して(aj1 (c),…ajn (c))∈L(B)、かつ、(aj1 (d),…ajn (d))は短いベクトル)を満たす整数要素のm×n行列A=(aji)(j=1,…,m、i=1,…,n)、n次元ベクトルX=(X,…,X、および各要素がガウス分布に従う短いベクトルd=(d,…,dから
Figure 0006963277
によりg=(g,…,gを定めたとき、(A,g,N)からXを求める問題である。dが分かれば(4)からXも計算できるため、dを求めてもよい。
拡張ユークリッド互除法やスミス標準形やエルミート標準形の詳細は例えば以下の文献に記載されている。
[参考文献8]Cohen, Henri, A Course in Computational Algebraic Number Theory, Springer-Verlag New York, Inc., ISBN 0-387-55640-0 (1993).
[参考文献9]Ravindran Kannan and Achim Bachem, Polynomial Algorithms for Computing the Smith and Hermite Normal Forms of an Integer Matrix, SIAM Journal on Computing, vol. 8, No. 4, pp. 499-507, (1979).
[参考文献10]Storjohann, Arne, Near Optimal Algorithms for Computing Smith Normal Forms of Integer Matrices, Proceedings of the 1996 International Symposium on Symbolic and Algebraic Computation, ISSAC '96, pp. 267-274 (1996).
[第1実施形態]
第1実施形態では、量子計算と古典計算とによってCVPを変形LWEに変換する(図2)。
基本となるアイデアについて説明する。一般に、格子問題が量子コンピュータにとって困難な問題であると考えられているのは、格子問題には解に関する周期性がないとされているからである。しかし、格子は各格子点に関して対称な構造をしており、解に関する周期性を作ることは可能である。本実施形態では、この解の周期性を利用した量子計算を行う。
具体的には、以下のような方法をとる。基本となるのはCVPに対する解法である。組(B,t)についてのCVPの解を差分ベクトルt(d)とする。図1に例示するように、L(B),t+L(B),2t+L(B),3t+L(B),…の和集合L(B)∪(t+L(B))∪(2t+L(B))∪(3t+L(B))∪…は、点列がt(d)の間隔で並んだ集合となる。図1では、図の見やすさを考慮し、1個の格子点に基づく点列のみを例示しているが、実際にはすべての格子点に基づく点列がt(d)の間隔で並ぶ。本形態の量子計算では、この等間隔に並んだ点列の情報を量子フーリエ変換を利用して取り出す。その後、取り出した情報に関するCVPを古典計算によって解き、変形LWEを得る。
<構成>
図4に例示するように、本形態の変換装置1は、古典計算部11,13(第1,2古典計算部)、量子計算部12、および制御部14を有する。変換装置1は、制御部14の制御のもとで各処理を実行する。古典計算部11,13は複数の演算部を有する(図示せず)。図5および図6に例示するように、量子計算部12は、インデックスレジスタ121a、データレジスタ121b、ワークレジスタ121c、量子状態生成部122、量子フーリエ変換部123a,123b(第1,2量子フーリエ変換部)、操作部124、観測部125a〜125c、および逆量子フーリエ変換部126を有する。
<処理>
本形態の処理を説明する。本形態の変換装置1は、CVP(B,t)についての基底Bおよび目標ベクトルtを入力とし、変形LWEを表す
Figure 0006963277
を満たす{rji (c),rji (d),rj0}およびm,M,Nを出力する。本形態の処理は古典計算部11による古典計算(前処理)、量子計算部12による量子計算、および古典計算部13による古典計算(後処理)からなる。
≪古典計算部11による古典計算(前処理)≫
古典計算部11(図4)は、組(B,t)を入力とし、以下の処理を実行する。
1.古典計算部11の演算部は、基底Bに対応する基底行列βの逆行列β−1の要素の分母の最小公倍数N’を計算して出力する(ステップS111)。
2.古典計算部11の演算部は、基底BのN’に関する双対基底B’={b ’,…,b ’}を計算して出力する(ステップS112)。
3.古典計算部11の演算部は、N’の倍数Nを選択して出力する(ステップS113)。
4.古典計算部11の演算部は、双対基底B’についてNに関する双対基底B=(N/N’)B’={(N/N’)b ’,…,(N/N’)b ’}を得て出力する。双対基底Bは基底Bの「Nに関する双対基底」となる(ステップS114)。
5.古典計算部11の演算部は、正の整数Mを選択して出力する。M<Nであり、MはNに対して十分に小さい(ステップS115)。
6.古典計算部11の演算部は、2R≦N<4Rを満たす実数Rを選択して出力する(ステップS116)。
7.古典計算部11の演算部は、正の実数Lを選択して出力する。Lは最短差分ベクトルt(d)の長さ||t(d)||の推定値である。例えば、L×M<Nを満たす(ステップS117)。
8.古典計算部11の演算部は、正の整数mを選択して出力する(ステップS118)。
9.古典計算部11は、(L,n,M,N,R,B,t)を出力する(ステップS119)。
≪量子計算部12による量子計算≫
量子計算部12(図4から図6)は、(L,n,M,N,R,B,t)を入力とし、ceil(logM)個の量子ビットからなるインデックスレジスタ121aと、n×ceil(logN)個の量子ビットからなるデータレジスタ121bと、n×ceil(logdet(β))個の量子ビットからなるワークレジスタ121cとからなるレジスタ列を設定し、これらに対して以下の量子計算をm回実行する。量子計算部12は、j回目の量子計算でn次元ベクトルr=(rj1,…,rjn)∈[0,N)およびrj0∈[0,M)を得て出力する。ただし、i=1,…,n,j=1,…,mである。以下にj回目の量子計算を説明する。
1.量子状態生成部122は、インデックスレジスタ121aとデータレジスタ121bとワークレジスタ121cとからなるレジスタ列の量子状態を
Figure 0006963277
に初期化する。ただし、Bは[0,N)に含まれる点x∈Zの集合を表す。例えば、Bは[0,N)の一部の領域である。Bは例えば実数Rによって定められる。なお、[0,N)は0以上N未満の半開区間を表す。例えば、Bは所定のn次元の基準点N/2=(N/2,…,N/2)からの距離がR以下の点x∈Zの集合を表す。言い換えると、例えば、Bは原点から当該点x∈Zへ向かうベクトルの集合を表す。すなわち、B={x∈Z|||x−N/2||≦R}である。図7Aにn=2の場合のBを概念的に示す。n=2の場合、Bは(N/2,N/2)を中心とした半径Rの円で囲まれた領域に属する点の集合である。なお、式(6)の3つの縦ベクトルのうち左側の|0>はインデックスレジスタ121aの量子状態を表し、真ん中の|x>はデータレジスタ121bの量子状態を表し、右側の|0>はワークレジスタ121cの量子状態を表す(ステップS122)。
2.量子フーリエ変換部123aは、インデックスレジスタ121aに対するM次元量子フーリエ変換を実行し、レジスタ列の量子状態を
Figure 0006963277
にする。なお、式(7)の3つの縦ベクトルのうち左側の|w>はインデックスレジスタ121aの量子状態を表し、真ん中の|x>はデータレジスタ121bの量子状態を表し、右側の|0>はワークレジスタ121cの量子状態を表す(ステップS123a)。
3.w∈Zおよびx∈Z に対して、(yw,x,1,…,yw,x,n)をx−wt=yw,x,1+…+yw,x,nを満たす有理数yw,x,1,…,yw,x,nを要素とするn次元ベクトルとする。操作部124は、量子フーリエ変換部123aで得られた式(7)の量子状態のレジスタ列に対して量子状態|w>|x>|0>を量子状態
|w>|x>|det(β)(yw,x,1−floor(yw,x,1)),…,det(β)(yw,x,n−floor(yw,x,n))> (8)
にする量子操作を実行する(ステップS124)。観測部125cは、操作部124で得られた式(8)の量子状態のワークレジスタ121cを観測し、インデックスレジスタ121aおよびデータレジスタ121bの量子状態を
Figure 0006963277
にする。ただし、sは不定なn次元ベクトルである。式(9)の2つの縦ベクトルのうち左側の|w>はインデックスレジスタ121aの量子状態を表し、右側の|x>はデータレジスタ121bの量子状態を表す。このデータレジスタ121bの量子状態は、Bにおける前述の和集合L(B)∪(t+L(B))∪(2t+L(B))∪(3t+L(B))∪…をn次元ベクトルsだけ平行移動したものを表している(図1)。sは不定であるものの、この量子状態はBの中で点列がt(d)の間隔で並んだものを示している。図7Bにn=2の場合の当該量子状態を概念的に示す(ステップS125c)。
4.量子フーリエ変換部123bは、観測部125cでの観測後の式(9)の量子状態のデータレジスタ121bに対するN次元量子フーリエ変換を実行する。前述のようにデータレジスタ121bはn×ceil(logN)個の量子ビットからなる。このn×ceil(logN)個の量子ビットをceil(logN)個ごとの量子ビットに区分し、各ceil(logN)個の量子ビットからなるデータレジスタ121bの部分集合をデータサブレジスタ121b−iと呼ぶ。データレジスタ121bはn個のデータサブレジスタ121b−1,…,121b−nからなる。量子フーリエ変換部123bは、式(9)の量子状態のデータレジスタ121bに対し、データレジスタ121bの各データサブレジスタ121b−iごとに当該N次元量子フーリエ変換を実行する。これにより、双対格子L(B)={Σi=1,…,n |x∈Z,b ∈B}の格子点ベクトルt(c)と、差分ベクトルt(d)のベクトル和t(c)+t(d)の重ね合わせ状態が得られる。図7Cにn=2の場合の当該量子状態を概念的に示す(ステップS123b)。観測部125bは、量子フーリエ変換部123bで得られた量子状態のデータレジスタ121bを観測して観測結果(rj1,…,rjn)を得る。rjiはデータサブレジスタ121b−iの観測結果である(ステップS125b)。
5.逆量子フーリエ変換部126は、観測部125bでの観測後の量子状態のインデックスレジスタ121aに対するM次元逆量子フーリエ変換を実行する(ステップS126)。観測部125aは、逆量子フーリエ変換部126で得られた量子状態のインデックスレジスタ121aを観測して観測結果rj0を得る。量子計算部12は、j回目の量子計算で得られたr=(rj1,…,rjn)∈[0,N)およびrj0∈[0,M)を出力する(ステップS126)。
上記の量子計算がj=1,…,mについて実行されることでj=1,…,mについてのr=(rj1,…,rjn)およびrj0が得られる。量子計算は以上の観測結果であるr,rj0を出力する。
≪古典計算部13による古典計算(後処理)≫
古典計算部13は、rおよびNに関する双対基底Bを入力とし、双対格子L(B)={Σi=1,…,n |x∈Z,b ∈B}およびn次元ベクトルr=(rj1,…,rjn)について、当該n次元ベクトルrに最も近い最近ベクトルr (c)=(rj1 (c),…,rjn (c))∈L(B)および差分ベクトルr (d)=r−r (c)=(rj1 (d),…,rjn (d))を得て出力する(r (c)およびr (d)はいずれもn次元ベクトルである)。すなわち、古典計算部13は、Nに関する双対基底Bとn次元ベクトルr=(rj1,…,rjn)との組(B,r)についてのCVP(B,r)を解く。Nの値が次元数nに対して大きいとき(例えば、Nの値が次元数nに対して指数的に大きいとき)、Nに関する双対基底Bについて上述のように得られたn次元ベクトルrのCVP(B,r)を、古典アルゴリズムを用いて厳密に解くことは可能である(ここでは証明を省略する)。古典計算部13は、例えば、Nearest Planeアルゴリズムなどを用いてこのCVP(B,r)を厳密に解き、最近ベクトルr (c)および差分ベクトルr (d)を得て出力する。Nをnに対して大きくすると高い確率で||r (d)||<nとなることが証明できる。よってNearest Planeアルゴリズムによって最近ベクトルr (c)および差分ベクトルr (d)を求めることができる(ステップS13)。
以上のように得られた整数N,M,m、観測結果rj0、最近ベクトルr (c)=(rj1 (c),…,rjn (c))、差分ベクトルr (d)=(rj1 (d),…,rjn (d))が、CVP(B,t)の解である差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)およびエラーに対応する小さな整数要素のベクトルe=(e,…,eについて式(5)を満たすことを証明できる(ここでは証明を省略する)。変換装置1は、整数N,M,m、観測結果rj0、最近ベクトルr (c)=(rj1 (c),…,rjn (c))、差分ベクトルr (d)=(rj1 (d),…,rjn (d))を変形LWEを表す情報として出力する。
[第2実施形態]
第2実施形態では、量子計算と古典計算とによってLWEを変形LWEに変換する(図3)。以下では第1実施形態との相違点を中心に説明し、既に説明した事項については同じ参照番号を用いて説明を省略する。
図4に例示するように、本形態の変換装置2は、古典計算部21,13(第1,2古典計算部)、量子計算部12、および制御部14を有する。
<処理>
本形態の処理を説明する。本形態の変換装置2は、LWEを表す
Figure 0006963277
を満たすn次元ベクトルa=(a1j,…,anj,g=(g,…,gおよび整数N’の入力に対し、t=gとして前述の式(5)を満たす{rji (c),rji (d),rj0}およびm,M,Nを出力する。本形態の処理は古典計算部21による古典計算(前処理)、量子計算部12による量子計算、および古典計算部13による古典計算(後処理)からなる。第1実施形態との相違点は、古典計算部21による古典計算(前処理)のみである。以下、この前処理のみを説明する。
≪古典計算部21による古典計算(前処理)≫
古典計算部21(図4)は、LWEを特定する(a,…,am’,g,N’)を入力とし、以下の処理を実行する。
1.古典計算部21の演算部は、{a,…,am’,N’ε,…,N’ε}から計算したLLL既約基底を基底Bとし、t=(t,…,t=g=(g,…,gとして出力する。ただし、εはu番目の要素が1で他の要素が0のn次元単位ベクトルε=(0,…,1,0,…,0)である(u=1,…,n)(ステップS211)。
2.古典計算部21の演算部は、基底BのN’に関する双対基底B’={b ’,…,b ’}を計算して出力する(ステップS112)。
3.古典計算部21の演算部は、N’の倍数Nを選択して出力する(ステップS113)。
4.古典計算部21の演算部は、双対基底B’についてNに関する双対基底B=(N/N’)B’={(N/N’)b ’,…,(N/N’)b ’}を得て出力する(ステップS114)。
5.古典計算部21の演算部は、正の整数Mを選択して出力する。M<Nであり、MはNに対して十分に小さい(ステップS115)。
6.古典計算部21の演算部は、2R≦N<4Rを満たす実数Rを選択して出力する(ステップS116)。
7.古典計算部21の演算部は、正の実数Lを選択して出力する。例えば、L×M<Nを満たす(ステップS117)。
8.古典計算部21の演算部は、正の整数mを選択(設定)して出力する(ステップS118)。
9.古典計算部21は、(L,n,M,N,R,B,t)を出力する(ステップS119)。
その後、第1実施形態で説明した量子計算部12による量子計算、および古典計算部13による古典計算(後処理)が行われる。
[第3実施形態]
第3実施形態では、古典計算により、第1実施形態または第2実施形態で変換された変形LWEについてのGapCVPγを解く(図2および図3)。すなわち、第1実施形態または第2実施形態で得られた{rji (c),rji (d),rj0}およびm,M,Nで特定される式(5)を満たす差分ベクトルt(d)が||t(d)||≦Lを満たすか||t(d)||>γLを満たすかを判定する。
<構成>
図8に例示するように、本形態の判定装置3は、ベクトル生成部31、確率選択部32、超平面距離推定部33、判定部34、および制御部35を有する。判定装置3は、制御部35の制御のもとで各処理を実行する。図9に例示するように、本形態の超平面距離推定部33は、基底生成部331、ベクトル生成部332、超平面距離候補設定部333、および超平面距離選択部334を有する。
<処理>
本形態の処理を説明する。本形態の判定装置3は、{rji (c),rji (d),rj0}およびm,M,Nを入力とし、これらによって特定される式(5)を満たす差分ベクトルt(d)が||t(d)||≦Lを満たすか||t(d)||>γLを満たすかを判定する。{rji (c),rji (d),rj0}およびm,M,Nは、第1実施形態または第2実施形態で説明した処理によって得られたものである。
1.ベクトル生成部31は、r (c)=(rj1 (c),…,rjn (c))およびr (d)=(rj1 (d),…,rjn (d))を入力とし、r=r (c)+r (d)=s (c)+s (d)およびs (c)∈L(B)を満たすn次元ベクトルs (c)=(sj1 (c),…,sjn (c)),s (d)=(sj1 (d),…,sjn (d))を選び、s=s (c)+s (d)と設定する。本形態では||r (d)||≦||s (d)||≦2LNを満たすようにs (d)が選択される。また、sj0=rj0と定義する(ステップS31)。
2.確率選択部32は、正の実数αおよび確率qを選択して出力する。本形態では、確率選択部32は、
Figure 0006963277
を満たす確率qを選択して出力する(ステップS32)。
3.n次元ベクトルs (d)を法線ベクトルとする有限個(複数個)の超平面Hに含まれる何れかの超平面Hが差分ベクトルt(d)に対応することを証明できる(ここでは証明を省略する)。なお、s (d)を法線ベクトルとする超平面Hの集合は、格子L(B)の部分集合の要素であるベクトルによって張られるベクトル空間の平行移動であり、各jに対して有限個の超平面からなる。図10に例示するように(n=2の例)、このような有限個の超平面Hの集合は互いに1/||s (d)||の間隔で並び、全体として2αN/M||s (d)||の範囲に配置されている。同じように互いに1/||s (d)||の間隔で並び、全体として2αN/M||s (d)||の範囲に配置される他の超平面も存在し、それらはN/||s (d)||の間隔で繰り返し配置されている。ただし、αは正の実数である。超平面距離推定部33は、n次元ベクトルs (d)を法線ベクトルとする有限個の超平面Hに含まれる超平面Hのうち最も原点Oに近い超平面Hと原点Oとの距離distに基づく評価値Evalを得る(この処理の詳細は後述する)。図11Aおよび図11Bに例示するように(n=2の例)、n次元ベクトルs (d)を法線ベクトルとする有限個の超平面Hに含まれる何れかの超平面Hに差分ベクトルt(d)の先端が位置している。これらの図から分かるように、最も原点に近い超平面Hと原点との距離distは差分ベクトルt(d)の長さと相関を持つ。そのため、たとえ差分ベクトルt(d)が分からなくても、距離distに基づいて差分ベクトルt(d)の長さを評価することができる。この評価を行うため、超平面距離推定部33は、j=1,…,mの距離distに基づく評価値Evalを得る。本形態の評価値Evalは距離dist,…,distの何れかである。本形態では、距離distがあまりにも大きなものをエラーとして排除し、残りの距離distのうち最も大きなものを評価値Evalに設定する。前述の確率qはこのエラーとして排除する距離distを選択するための基準となる。図12に評価値Evalと||t(d)||/Lとの関係を例示する。図12の縦軸は評価値Evalを表し、横軸は||t(d)||/Lを表す。この図から分かるように、評価値Evalの大きさを評価することで||t(d)||≦Lを満たすか||t(d)||>γLを満たすかを判定できる(ステップS33)。
4.判定部34は、評価値Evalを入力とし、Eval≦Lを満たすと判定した場合に||t(d)||≦Lを満たす旨の情報を出力し、Eval>Lを満たすと判定した場合に||t(d)||>γLを満たす旨の情報を出力する(ステップS34)。
≪超平面距離推定部33の処理の詳細≫
超平面距離推定部33の処理の詳細を例示する。
まず、超平面距離推定部33は、各j=1,…,mについて以下の(a)〜(c)の計算を行い、各距離distを決める。
(a)基底生成部331(超平面基底生成部)は、n次元ベクトルsについて格子{ν∈Z|<s,ν>=0 mod N}の基底Bsjを得て出力する。基底Bsjの計算にはエルミート標準形が用いられる(ステップS331)。
(b)ベクトル生成部332は、<s (d),bsj(d),N>=Nを満たすn次元ベクトルbsj(d),Nを得て出力する。この計算には拡張ユークリッド互除法が用いられる(ステップS332)。
(c)超平面距離候補設定部333は、y0=floor((sj0−α)N/M)+1およびy1=ceil((sj0+α)N/M)−1について、以下の(i)〜(iv)の処理を行う(ステップS333)。
(i)超平面距離候補設定部333は、<s,tsj,y0>=ymod Nおよび<s,tsj,y1>=y mod Nを満たすn次元ベクトルtsj,y0およびtsj,y1を得て出力する。この計算には拡張ユークリッド互除法が用いられる。
(ii)超平面距離候補設定部333は、t’sj,y0∈(s+L(B))∩(tsj,y0+L(Bsj))およびt’sj,y1∈(s+L(B))∩(tsj,y1+L(Bsj))を満たすn次元ベクトルt’sj,y0およびt’sj,y1を得て出力する。この計算にはスミス標準形が用いられる。
(iii)超平面距離候補設定部333は、ABS(<s (d),t’sj,y0+kbsj(d),N>)を最小にするkをky0とし、ABS(<s (d),t’sj,y1+kbsj(d),N>)を最小にするkをky1とし、t”sj,y0=t’sj,y0+ky0sj(d),Nおよびt”sj,y1=t’sj,y1+ky1sj(d),Nを得て出力する。
(iv)超平面距離候補設定部333は、<s (d),t”sj,y0>≦0≦<s (d),t”sj,y1>または<s (d),t”sj,y1>≦0≦<s (d),t”sj,y0>ならば超平面距離候補dist=0として出力する。それ以外の場合、すなわち<s (d),t”sj,y0>および<s (d),t”sj,y1>が共に正(<s (d),t”sj,y0>および<s (d),t”sj,y1>が0よりも大きい)または共に負(<s (d),t”sj,y0>および<s (d),t”sj,y1>が0よりも小さい)ならば、超平面距離候補設定部333は、ABS(<s (d),t”sj,y0>)およびABS(<s (d),t”sj,y1>)のうち小さい方を距離dist=min(ABS(<s (d),t”sj,y0>),ABS(<s (d),t”sj,y1>))として得て出力する。
ステップS32で設定された確率qおよびステップS331〜S333で得られた距離dist,…distは、超平面距離選択部334に入力される。超平面距離選択部334は、確率qについて、距離dist,…,distを小さい順に並べた場合にfloor(qm)番目の値を評価値Eval∈{dist,…,dist}として得て出力する。すなわち、平面距離選択部334は、
Eval=max({dist|j=1,…,m},q)
を計算する(ステップS334)。
[第4実施形態]
第4実施形態では、量子計算および古典計算により、第1実施形態で変換された変形LWEについてのGapCVPγを解く処理(第3実施形態)をサブルーチンとして利用してCVP(B,t)を解く(図2)。
<構成>
図13に例示するように、本形態の計算装置4は、初期設定部41,421、子ノード生成部422、判定処理部423、ノード選択部424、差分ベクトル生成部43、出力部44、および制御部45を有する。計算装置4は、制御部45の制御のもとで各処理を実行する。
<処理>
本形態の処理を説明する。本形態の計算装置4は、CVP(B,t)についての基底Bおよび目標ベクトルtとの組(B,t)を入力とし、目標ベクトルtと目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)を得て出力する。この差分ベクトルは式(5)に示した変形LWEの解である。
初期設定部41は、実数Lを初期値L1=1,√2,√3,√4,√5,…,(L1max1/2に設定し(ステップS41)、制御部45はそれぞれのL=L1について、以下のステップS421〜S424、S43の処理を実行させる。なお、L1maxは予め定められた正の整数である。
1.初期設定部421は、組(B,t)を入力とし、基底Bと目標ベクトルtとの組からなるノード(B,t)=(B,t)を得て出力する。また初期設定部421は、v=0に設定する(ステップS421)。
2.制御部45はvについて以下の処理を実行させる。
(a)子ノード生成部422は、ノード(B,t)を用い、ι=1,…,ρ(v)について、基底Bv+1と、目標ベクトルtv,ιと、の組であるノード(Bv+1,tv,1),…,(Bv+1,tv,ρ(v))(子ノード)を生成する。ただし、ρ(v)は正の整数である。基底Bv+1に対応する格子L(Bv+1)={Σi=1,…,n |x∈Z,b∈Bv+1}は、基底Bに対応する格子L(B)={Σi=1,…,n |x∈Z,b∈B}の部分格子である。いずれかのι’∈{1,…,ρ(v)}について目標ベクトルtv,ι’と当該目標ベクトルtv,ι’に最も近い最近ベクトルtv,ι’ (c)∈L(Bv+1)との差分ベクトルtv,ι’ (d)=tv,ι’−tv,ι’ (c)(図14B)は、目標ベクトルtと当該目標ベクトルtに最も近い最近ベクトルt (c)∈L(B)との差分ベクトルt (d)=t−t (c)(図14A)に等しい。この処理の詳細は後述する(ステップS422)。
(b)判定処理部423は、実数L、ノード(Bv+1,tv,1),…,(Bv+1,tv,ρ(v))を入力とし、第1実施形態で説明した変換装置1および第3実施形態で説明した判定装置3を用い、ι=1,…,ρ(v)についてB=Bv+1かつt=tv,ιとして判定装置3の処理を実行する。これにより、判定処理部423は、ι=1,…,ρ(v)の各ノード(Bv+1,tv,ι)について、||tv,ι (d)||≦L(すなわち、Eval≦L)を満たすか||tv,ι (d)||>γL(すなわち、Eval>L)を満たすかの判定結果を得ることができる(ステップS423)。
ここで、すべてのι=1,…,ρ(v)についてEval>Lを満たすと判定された場合(すなわち、すべてのι=1,…,ρ(v)について||tv,ι (d)||>γLと判定された場合)には設定した実数Lが小さ過ぎたとして、ノード選択部424は、実数Lを増加させて初期設定部421、子ノード生成部422、および判定処理部423の処理を再び実行させる。例えば、すべてのι=1,…,ρ(v)についてEval>Lを満たすと判定された場合、ノード選択部424は、Lを(L+1)1/2に置き換えて(すなわち、(L+1)1/2を新たなLとして)、処理をステップS421に戻す。一方、いずれかのι=1,…,ρ(v)についてEval≦Lを満たすと判定された場合(すなわち、||tv,ι (d)||≦Lと判定された場合)、ノード選択部424は、最小のEvalに対応するノード(Bv+1,tv,ι’)(ただし、ι’∈{1,…,ρ(v)})をノード(Bv+1,tv+1)に設定して出力する。このように選択されたノード(Bv+1,tv,ι’)の目標ベクトルtv,ι’に対応する差分ベクトルtv,ι’ (d)は、差分ベクトルt (d)=t−t (c)に等しい(図14Aおよび図14B)。従って、このように選択されたノード(Bv+1,tv,ι’)の目標ベクトルtv,ι’に対応する差分ベクトルtv,ι’ (d)は、最初の格子L(B)=L(B)における差分ベクトルt(d)に等しい(図15:ステップS424)。
制御部45はv=n−1であるかを判定する。v=n−1でなければ、制御部45はv+1を新たなvとして処理をステップS422に戻す。一方、v=n−1であれば、差分ベクトル生成部43は、ノード(Bv+1,tv+1)=(B,t)の目標ベクトルtを差分ベクトルtL1 (d)として得て出力する。すなわち、差分ベクトル生成部43は、v=0からv=n−1まで各v=0,…,n−1について子ノード生成部422と判定処理部423とノード選択部424の処理(ステップS422〜424)を実行して得られたノード(B,t)の目標ベクトルtを差分ベクトルtL1 (d)として得て出力する(ステップS43)。
それぞれのL=L1=1,√2,√3,√4,√5,…,(L1max1/2について、上述のステップS421〜S424、S43の処理が行われることにより、各L1に対応する差分ベクトルの集合
Figure 0006963277
が得られる。出力部44は、これらの集合に属する差分ベクトルのうち、何れかの初期値L1に対応する差分ベクトルtL1 (d)を差分ベクトルt(d)として出力する。例えば、出力部44は、これらの集合に属する差分ベクトルのうち、最も短い差分ベクトルを差分ベクトルt(d)として出力する(ステップS44)。
≪子ノード生成部422の処理(ステップS422)の詳細≫
子ノード生成部422の処理(ステップS422)の詳細を例示する。
子ノード生成部422は、ノード(B,t)を用いて、例えば、以下のようにノード(Bv+1,tv,1),…,(Bv+1,tv,ρ(v))を生成する。
まず、子ノード生成部422は、B=B、t=t、m=1、かつL=L1として、第1実施形態で説明した変換装置1の古典計算部11に処理を依頼する。これにより、古典計算部11は以下の処理を実行する。
1.古典計算部11の演算部は、基底Bに対応する基底行列βの逆行列β −1の要素の分母の最小公倍数N’を計算して出力する。ただし、βは基底B={bv1,…,bvn}のn次元ベクトルbv1,…,bvnを要素とするn行n列の基底行列である。例えば、βはn次元ベクトルbviをvi行目の成分とする行列である(ステップS111)。
2.古典計算部11の演算部は、基底BのN’に関する双対基底B ’を計算して出力する(ステップS112)。
3.古典計算部11の演算部は、N’の倍数Nを選択して出力する(ステップS113)。
4.古典計算部11の演算部は、双対基底B ’についてNに関する双対基底B =(N/N’)B ’を得て出力する(ステップS114)。
5.古典計算部11の演算部は、正の整数Mを選択して出力する(ステップS115)。
6.古典計算部11の演算部は、2R≦N<4Rを満たす実数Rを選択して出力する(ステップS116)。
古典計算部11は、(L,n,M,N,R,B,t)を出力する(ステップS119)。
なお、m=1かつL=L1と定められているため、ステップS117およびS118は実行されない。
7.子ノード生成部422は、B=B、t=t、m=1、L=L1、かつ(L,n,M,N,R,B,t)=(L,n,M,N,R,B,t)とし、第1実施形態で説明した変換装置1の量子計算部12に処理を依頼する。これにより、量子計算部12は、B=B、t=t、m=1、L=L1、かつ(L,n,M,N,R,B,t)=(L,n,M,N,R,B,t)として第1実施形態で説明した量子計算を1回実行する。これにより、量子計算部12は、j=m=1について、n次元ベクトルr=(r11,…,r1n)∈[0,N)およびr10∈[0,M)を得て出力する。以降、本形態では、このベクトルr=(r11,…,r1n)をr(v)=(rv,1,…,rv,n)と表記し、r10をrv,0と表記する。
8.子ノード生成部422は、r=r(v)、N=N、B=B とし、第1実施形態で説明した変換装置1の古典計算部13に処理を依頼する。古典計算部13は、Nearest Planeアルゴリズムなどを用いて、CVP(B ,r(v))を解く。これにより、古典計算部13は、r(v)に最も近い最近ベクトルr(v)(c)∈L(B )および差分ベクトルr(v)(d)=r(v)−r(v)(c)を得て出力する。
9.子ノード生成部422の演算部は、n次元ベクトルr(v)について格子{ν∈Z|<r(v),ν>=0 mod N}の基底Br(v)を得て出力する。基底Br(v)の計算にはエルミート標準形が用いられる。
10.子ノード生成部422の演算部は、L(B)∩L(Br(v))(={x∈L(B)|<r(v)(d),ν>=0 mod N})の基底B’r(v)を得て出力する。
11.子ノード生成部422の演算部は、<r(v)(d),br(v)(d),Nv>=Nを満たすn次元ベクトルbr(v)(d),Nvを得て出力する。この計算には拡張ユークリッド互除法が用いられる。
12.子ノード生成部422の演算部は、z(v)=round(rv,0/M)に対して、<r(v),tr(v),z(v)>=z(v) mod Nを満たすn次元ベクトルtr(v),z(v)を得て出力する。この計算には拡張ユークリッド互除法が用いられる。
13.子ノード生成部422の演算部は、t’r(v),z(v)∈(t+L(B))∩(tr(v),z(v)+L(Br(v)))を満たすn次元ベクトルt’r(v),z(v)を得て出力する。この計算にはスミス標準形が用いられる。
14.子ノード生成部422の演算部は、ABS(<r(v)(d),t’r(v),z(v)+kbr(v)(d),Nv>)を最小にするkをkz(v)とし、t”r(v),z(v)=t’r(v),z(v)+kz(v)r(v)(d),Nvを得て出力する。
15.子ノード生成部422の演算部は、集合Cを以下のように設定する。
Figure 0006963277
16.子ノード生成部422の演算部は、すべてのy∈Cに対して、以下のステップS422aからS422dの操作を実行する。
(a)子ノード生成部422の演算部は、<r(v),tr(v),y>=y mod Nを満たすベクトルtr(v),yを得て出力する。この計算には拡張ユークリッド互除法が用いられる(ステップS422a)。
(b)子ノード生成部422の演算部は、t’r(v),y∈(t+L(B))∩(tr(v),y+L(Br(v)))を満たすベクトルt’r(v),yを得て出力する。この計算にはスミス標準形が用いられる(ステップS422b)。
(c)v+1次元超平面H(v)をspan(r(0)(d),…,r(v)(d))⊆Reで定義する。すなわち、r(0)(d),…,r(v)(d)で張られる実数係数のn次元ベクトル空間がH(v)である。PH(v)(B’r(v)),PH(v)(t’r(v),y)をそれぞれ、B’r(v),t’r(v),yのH(v)への射影とする。子ノード生成部422の演算部は、Nearest Planeアルゴリズムなどを用いて、CVP(PH(v)(B’r(v)),PH(v)(t’r(v),y))を解く。これにより、子ノード生成部422の演算部は、PH(v)(t’r(v),y)に最も近い最近ベクトルPH(v)(t’r(v),y(c)∈L(PH(v)(B’r(v)))を得て出力する(ステップS422c)。
(d)PH(v)(t’r(v),y(c)は、PH(v)(B’r(v))の線形結合として表現できる。子ノード生成部422の演算部は、
Figure 0006963277
を満たすcv,y,xを計算し、
Figure 0006963277
を得て出力する(ステップS422d)。
17.子ノード生成部422の演算部は、集合C’を以下のように設定する。
Figure 0006963277
子ノード生成部422の演算部は、
Figure 0006963277
を{(Bv+1,tv,1),…,(Bv+1,tv,ρ(v))}
として出力する。
[第5実施形態]
第5実施形態では、量子計算および古典計算により、第2実施形態で変換された変形LWEについてのGapCVPγを解く処理(第3実施形態)をサブルーチンとして利用してLWEを解く(図3)。
<構成>
図13に例示するように、本形態の計算装置5は、初期設定部41,421、基底設定部51、子ノード生成部422、判定処理部423、ノード選択部424、差分ベクトル生成部43、出力部44、および制御部45を有する。計算装置4は、制御部45の制御のもとで各処理を実行する。
<処理>
本形態の処理を説明する。本形態の計算装置5は、n次元ベクトルa=(a1j,…,anj,g=(g,…,gおよび整数N’を入力とし、LWEを表す前述の式(10)を満たす(d,…,dを差分ベクトルt(d)として得て出力する。この差分ベクトルt(d)は式(5)に示した変形LWEの解である。
初期設定部41は、実数Lを初期値L1=1,√2,√3,√4,√5,…,(L1max1/2に設定し(ステップS41)、制御部45はそれぞれのL=L1について、以下のステップS51、S421〜S424、S43の処理を実行させる。なお、L1maxは予め定められた正の整数である。
0.基底設定部51は、{a,…,a,N’ε,…,N’ε}から計算したLLL既約基底を基底Bとし、さらにt=g=(g,…,gとして出力する(ステップS51)。以降は第4実施形態と同じである。以下概要を示す。
初期設定部421は、基底Bおよびt=gを入力とし、基底Bと目標ベクトルtとの組からなるノード(B,t)=(B,t)を得て出力する。また初期設定部421は、v=0に設定する(ステップS421)。
(a)子ノード生成部422は、ノード(B,t)を用い、ι=1,…,ρ(v)について、基底Bv+1と、目標ベクトルtv,ιと、の組であるノード(Bv+1,tv,1),…,(Bv+1,tv,ρ(v))(子ノード)を生成する。ただし、ρ(v)は正の整数である。基底Bv+1に対応する格子L(Bv+1)={Σi=1,…,n |x∈Z,b∈Bv+1}は、基底Bに対応する格子L(B)={Σi=1,…,n |x∈Z,b∈B}の部分格子である。いずれかのι’∈{1,…,ρ(v)}について目標ベクトルtv,ι’と当該目標ベクトルtv,ι’に最も近い最近ベクトルtv,ι’ (c)∈L(Bv+1)との差分ベクトルtv,ι’ (d)=tv,ι’−tv,ι’ (c)は、目標ベクトルtと当該目標ベクトルtに最も近い最近ベクトルt (c)∈L(B)との差分ベクトルt (d)=t−t (c)に等しい(ステップS422)。
(b)判定処理部423は、ι=1,…,ρ(v)の各ノード(Bv+1,tv,ι)について、||tv,ι (d)||≦L(すなわち、Eval≦L)を満たすか||tv,ι (d)||>γL(すなわち、Eval>L)を満たすかの判定結果を得る(ステップS423)。
ここで、すべてのι=1,…,ρ(v)についてEval>Lを満たすと判定された場合、ノード選択部424は、実数Lを増加させてステップS421からS423の処理を再び実行させる。一方、いずれかのι=1,…,ρ(v)についてEval≦Lを満たすと判定された場合、ノード選択部424は、最小のEvalに対応するノード(Bv+1,tv,ι’)をノード(Bv+1,tv+1)に設定して出力する(ステップS424)。
制御部45はv=n−1であるかを判定する。v=n−1でなければ、制御部45はv+1を新たなvとして処理をステップS422に戻す。一方、v=n−1であれば、差分ベクトル生成部43は、ノード(Bv+1,tv+1)=(B,t)の目標ベクトルtを差分ベクトルtL1 (d)として得て出力する(ステップS43)。
出力部44は、各L1に対応する差分ベクトルの集合に属する差分ベクトルのうち、何れかの初期値L1に対応する差分ベクトルtL1 (d)を差分ベクトルt(d)として出力する。例えば、出力部44は、これらの集合に属する差分ベクトルのうち、最も短い差分ベクトルを差分ベクトルt(d)として出力する(ステップS44)。
[第6実施形態]
本形態は、第4実施形態の処理をサブルーチンとして利用してSVPを解く。
<構成>
図16に例示するように、本形態の計算装置6は、基底生成部61、設定部62、選択部63、および制御部65を有する。
<処理>
本形態の計算装置6は、基底Bを入力として、格子L(B)の中で最も原点に近い格子点への最短ベクトルt(c)を出力する。
まず、基底生成部61が、すべてのi=1,…,nについて、B={b,…,bi−1,2b,bi+1,…,b}に設定する(ステップS61)。
次に、設定部62が、i=1,…,nについて、B=Bかつt=bとし、第4実施形態で説明した計算装置4に処理を依頼する。計算装置4は、B=Bかつt=bとして第4実施形態で説明した処理を行って差分ベクトルt(d)を得て出力する。設定部62は、B=Bおよびt=b対して得られた当該差分ベクトルt(d)をt (d)に設定する。これにより、設定部62はt (d),…,t (d)を得る(ステップS62)。
選択部63は、設定部62で得られたt (d),…,t (d)を入力とし、t (d),…,t (d)の中で最短もの(長さが最も短いベクトル)を最短ベクトルt(c)として出力する(ステップS63)。
[その他の変形例等]
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
古典計算部11,21,13、制御部14、判定装置3、および計算装置4〜6は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての演算部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。量子計算部12は、公知の量子コンピュータによって構成される。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
本発明を用いることにより、組み合わせ最適化問題の一種である格子問題の部分問題を効率的に解くことができる。これにより、例えば2つの産業分野に影響を及ぼす。人工知能分野と耐量子暗号分野である。
本発明を適用することで、人工知能分野での組み合わせ最適化問題の部分問題を効率的に解くことができる。Shorのアルゴリズムは周期発見問題に応用できるが,人工知能で問題となっている組み合わせ最適化問題には適用できない。一方、Shor のアルゴリズム発見以降に提案されたGroverのアルゴリズムや量子ウォークアルゴリズムなどは、組み合わせ最適化問題に適用できるが、問題を効率的に解くことができない。本発明は、両者の欠点を補い、量子コンピュータの人工知能への応用に新たな可能性をもたらす。例えば、本発明をゲート型量子コンピュータ上および古典コンピュータで実装することにより、人工知能を用いて工業・材料・医療・医薬・エネルギー・物理・化学・経済・実社会等の様々な事象を高速にシミュレーションすることが可能となり、各分野の急激な進歩発展に貢献する。
また、耐量子暗号分野においては、本発明によって従来の格子暗号の安全性が損なわれる可能性がある。脆弱性を補うために鍵長を長くする等の対策が必要になるが、鍵長の変更は暗号効率の悪化を招きかねない。本発明を格子暗号の安全性評価と暗号効率との評価に利用すれば、これらの問題を共に解決する暗号方式の開発に貢献することも期待される。
1,2 変換装置
3 判定装置
4〜6 計算装置

Claims (7)

  1. n,m,M,Nが正の整数であり、M<Nであり、i=1,…,nであり、j=1,…,mであり、ηがηの転置であり、|Λ|がΛの要素数であり、round(μ)がμに最も近い整数であり、floor(μ)がμ以下の最大の整数であり、ceil(μ)がμ以上の最小の整数であり、det(η)がηの行列式であり、B={b,…,b}が一次独立なn個のn次元ベクトルbからなる基底であり、前記n次元ベクトルbのそれぞれがn個の整数要素からなり、βが前記基底Bの前記n次元ベクトルb,…,bを要素とするn行n列の基底行列であり、t=(t,…,tがn個の整数要素tからなる目標ベクトルであり、xが整数であり、L(B)が格子{Σi=1,…,n |x∈Z,b∈B}であり、τがn次元ベクトルであり、τ+L(B)=L(B)+τ={τ+χ|χ∈L(B)}であり、rji (c),rji (d),rj0,eが整数であり、t(d)が前記目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)であり、sが整数要素からなるn次元ベクトルであり、
    前記基底Bおよび前記目標ベクトルtの入力に対し、
    Figure 0006963277
    を満たす{rji (c),rji (d),rj0}およびm,M,Nを出力する変換装置であって、
    前記基底行列βの逆行列β−1の要素の分母の最小公倍数N’の倍数Nを選択し、前記基底BのN’に関する双対基底B’={b ’,…,b ’}についてNに関する双対基底B={(N/N’)b ’,…,(N/N’)b ’}を得る第1古典計算部と、
    が[0,N)に含まれる点の集合であり、ceil(logM)個の量子ビットからなるインデックスレジスタと、n×ceil(logN)個の量子ビットからなるデータレジスタと、n×ceil(logdet(β))個の量子ビットからなるワークレジスタとからなるレジスタ列の量子状態を
    Figure 0006963277
    にする量子状態生成部と、
    前記インデックスレジスタに対するM次元量子フーリエ変換を実行し、前記レジスタ列の量子状態を
    Figure 0006963277
    にする第1量子フーリエ変換部と、
    x−wt=yw,x,1+…+yw,x,nを満たし、前記第1量子フーリエ変換部で得られた量子状態の前記レジスタ列に対して量子状態|w>|x>|0>を量子状態|w>|x>|det(β)(yw,x,1−floor(yw,x,1)),…,det(β)(yw,x,n−floor(yw,x,n))>にする量子操作を実行する操作部と、
    前記操作部で得られた量子状態の前記ワークレジスタを観測し、前記インデックスレジスタおよび前記データレジスタの量子状態を
    Figure 0006963277
    にする第1観測部と、
    前記第1観測部での観測後の量子状態の前記データレジスタに対するN次元量子フーリエ変換を実行する第2量子フーリエ変換部と、
    前記第2量子フーリエ変換部で得られた量子状態の前記データレジスタを観測して観測結果(rj1,…,rjn)を得る第2観測部と、
    前記第2観測部での観測後の量子状態の前記インデックスレジスタに対するM次元逆量子フーリエ変換を実行する逆量子フーリエ変換部と、
    前記逆量子フーリエ変換部で得られた量子状態の前記インデックスレジスタを観測して観測結果rj0を得る第3観測部と、
    前記第1古典計算部で得られた前記双対基底B、および、前記量子状態生成部と前記第1量子フーリエ変換部と前記操作部と前記第1観測部と前記第2量子フーリエ変換部と前記第2観測部と前記第3観測部の処理をj=1,…,mについて行って得られた前記観測結果(rj1,…,rjn)およびrj0を入力とし、双対格子L(B)={Σi=1,…,n |x∈Z,b ∈B}およびn次元ベクトルr=(rj1,…,rjn)について、前記n次元ベクトルrに最も近い最近ベクトルr (c)=(rj1 (c),…,rjn (c))∈L(B)および差分ベクトルr (d)=r−r (c)=(rj1 (d),…,rjn (d))を得る第2古典計算部と、
    を有する変換装置。
  2. n,m,m’,M,N,N’が正の整数であり、M<Nであり、i=1,…,nであり、j=1,…,mであり、u=1,…,nであり、ηがηの転置であり、|Λ|がΛの要素数であり、round(μ)がμに最も近い整数であり、floor(μ)がμ以下の最大の整数であり、ceil(μ)がμ以上の最小の整数であり、det(η)がηの行列式であり、B={b,…,b}が一次独立なn個のn次元ベクトルbからなる基底であり、前記n次元ベクトルbのそれぞれがn個の整数要素からなり、βが前記基底Bの前記n次元ベクトルb,…,bを要素とするn行n列の基底行列であり、t=(t,…,tがn個の整数要素tからなる目標ベクトルであり、xが整数であり、L(B)が格子{Σi=1,…,n |x∈Z,b∈B}であり、τがn次元ベクトルであり、τ+L(B)=L(B)+τ={τ+χ|χ∈L(B)}であり、rji (c),rji (d),rj0,e,X,dが整数であり、t(d)が前記目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)であり、sが整数要素からなるn次元ベクトルであり、aがn個の整数要素a1j,…,anjからなるn次元ベクトルa=(a1j,…,anjであり、gがn個の要素g,…,gからなるn次元ベクトルg=(g,…,gであり、εがu番目の要素が1で他の要素が0のn次元単位ベクトルε=(0,…,1,0,…,0)であり、
    Figure 0006963277
    を満たす前記n次元ベクトルa,gおよび前記整数N’の入力に対し、
    Figure 0006963277
    を満たす{rji (c),rji (d),rj0}およびm,M,Nを出力する変換装置であって、
    {a,…,am’,N’ε,…,N’ε}から計算したLLL既約基底を前記基底Bとし、前記基底BのN’に関する双対基底B’={b ’,…,b ’}についてNに関する双対基底B={(N/N’)b ’,…,(N/N’)b ’}を得、t=gとする第1古典計算部と、
    が[0,N)に含まれる点の集合であり、ceil(logM)個の量子ビットからなるインデックスレジスタと、n×ceil(logN)個の量子ビットからなるデータレジスタと、n×ceil(logdet(β))個の量子ビットからなるワークレジスタとからなるレジスタ列の量子状態を
    Figure 0006963277
    にする量子状態生成部と、
    前記インデックスレジスタに対するM次元量子フーリエ変換を実行し、前記レジスタ列の量子状態を
    Figure 0006963277
    にする第1量子フーリエ変換部と、
    x−wt=yw,x,1+…+yw,x,nを満たし、前記第1量子フーリエ変換部で得られた量子状態の前記レジスタ列に対して量子状態|w>|x>|0>を量子状態|w>|x>|det(β)(yw,x,1−floor(yw,x,1)),…,det(β)(yw,x,n−floor(yw,x,n))>にする量子操作を実行する操作部と、
    前記操作部で得られた量子状態の前記ワークレジスタを観測し、前記インデックスレジスタおよび前記データレジスタの量子状態を
    Figure 0006963277
    にする第1観測部と、
    前記第1観測部での観測後の量子状態の前記データレジスタに対するN次元量子フーリエ変換を実行する第2量子フーリエ変換部と、
    前記第2量子フーリエ変換部で得られた量子状態の前記データレジスタを観測して観測結果(rj1,…,rjn)を得る第2観測部と、
    前記第2観測部での観測後の量子状態の前記インデックスレジスタに対するM次元逆量子フーリエ変換を実行する逆量子フーリエ変換部と、
    前記逆量子フーリエ変換部で得られた量子状態の前記インデックスレジスタを観測して観測結果rj0を得る第3観測部と、
    前記第1古典計算部で得られた前記双対基底B、および、前記量子状態生成部と前記第1量子フーリエ変換部と前記操作部と前記第1観測部と前記第2量子フーリエ変換部と前記第2観測部と前記第3観測部の処理をj=1,…,mについて行って得られた前記観測結果(rj1,…,rjn)およびrj0を入力とし、格子L(B)={Σi=1,…,n |x∈Z,b ∈B}およびn次元ベクトルr=(rj1,…,rjn)について、前記n次元ベクトルrに最も近い最近ベクトルr (c)=(rj1 (c),…,rjn (c))∈L(B)および差分ベクトルr (d)=r−r (c)=(rj1 (d),…,rjn (d))を得る第2古典計算部と、
    を有する変換装置。
  3. n,m,N,Mが正の整数であり、M<Nであり、i=1,…,nであり、j=1,…,mであり、ηがηの転置であり、round(μ)がμに最も近い整数であり、floor(μ)がμ以下の最大の整数であり、ceil(μ)がμ以上の最小の整数であり、ABS(μ)がμの絶対値であり、||η||がηのユークリッドノルムであり、B={b,…,b}が一次独立なn個のn次元ベクトルbからなる基底であり、前記n次元ベクトルbのそれぞれがn個の整数要素からなり、t=(t,…,tがn個の整数要素tからなる目標ベクトルであり、xが整数であり、L(B)が格子{Σi=1,…,n |x∈Z,b∈B}であり、τがn次元ベクトルであり、τ+L(B)=L(B)+τ={τ+χ|χ∈L(B)}であり、Bが{τ|<τ,χ>=0 mod N for all χ∈L(B)}のLLL既約基底であるNに関する双対基底であり、<τ,χ>がτとχとの内積であり、L(B)が双対格子L(B)={Σi=1,…,n |x∈Z,b ∈B}であり、rji (c),rji (d),rj0,eが整数であり、r (c)がn次元ベクトルr (c)=(rj1 (c),…,rjn (c))∈L(B)であり、r (d)がn次元ベクトルr (d)=(rj1 (d),…,rjn (d))であり、t(d)が前記目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)であり、L,γが正の実数であり、γ>1であり、
    Figure 0006963277

    を満たす前記差分ベクトルt(d)が||t(d)||≦Lを満たすか||t(d)||>γLを満たすかを表す情報を出力する判定装置であって、
    =r (c)+r (d)=s=s (c)+s (d)およびs (c)∈L(B)を満たすn次元ベクトルs (d)を法線ベクトルとする有限個の超平面に含まれる何れかの超平面が前記差分ベクトルt(d)に対応しており、前記有限個の超平面に含まれる超平面のうち最も原点に近い超平面と前記原点との距離に基づく評価値Evalを得る超平面距離推定部と、
    Eval≦Lを満たすと判定した場合に||t(d)||≦Lを満たす旨の情報を出力し、Eval>Lを満たすと判定した場合に||t(d)||>γLを満たす旨の情報を出力する判定部と、
    を有する判定装置。
  4. 請求項3の判定装置であって、
    αが正の実数であり、νが整数要素からなるn次元ベクトルであり、sj0=rj0であり、
    前記超平面距離推定部は、
    前記n次元ベクトルsについて格子{ν∈Z|<s,ν>=0 mod N}の基底Bsjを得る超平面基底生成部と、
    <s (d),bsj(d),N>=Nを満たすn次元ベクトルbsj(d),Nを得るベクトル生成部と、
    y0=floor((sj0−α)N/M)+1およびy1=ceil((sj0+α)N/M)−1について、
    (i)<s,tsj,y0>=y mod Nおよび<s,tsj,y1>=ymod Nを満たすn次元ベクトルtsj,y0およびtsj,y1を得、
    (ii)t’sj,y0∈(s+L(B))∩(tsj,y0+L(Bsj))およびt’sj,y1∈(s+L(B))∩(tsj,y1+L(Bsj))を満たすn次元ベクトルt’sj,y0およびt’sj,y1を得、
    (iii)ABS(<s (d),t’sj,y0+kbsj(d),N>)を最小にするkをky0とし、ABS(<s (d),t’sj,y1+kbsj(d),N>)を最小にするkをky1とし、t”sj,y0=t’sj,y0+ky0sj(d),Nおよびt”sj,y1=t’sj,y1+ky1sj(d),Nを得、
    (iv)<s (d),t”sj,y0>≦0≦<s (d),t”sj,y1>または<s (d),t”sj,y1>≦0≦<s (d),t”sj,y0>ならば距離dist=0とし、<s (d),t”sj,y0>および<s (d),t”sj,y1>が共に正または共に負ならばABS(<s (d),t”sj,y0>)およびABS(<s (d),t”sj,y1>)のうち小さい方を距離dist=min(ABS(<s (d),t”sj,y0>),ABS(<s (d),t”sj,y1>))として得る超平面距離候補設定部と、
    設定された確率qについて、前記距離dist,…,distを小さい順に並べた場合にfloor(qm)番目の値を前記評価値Eval∈{dist,…,dist}として得る超平面距離選択部と、を含む判定装置。
  5. n,m,M,N,ρ(v)が正の整数であり、M<Nであり、i=1,…,nであり、j=1,…,mであり、v=0,…,n−1であり、ηがηの転置であり、round(μ)がμに最も近い整数であり、B={b,…,b}が一次独立なn個のn次元ベクトルbからなる基底であり、前記n次元ベクトルbのそれぞれがn個の整数要素からなり、t=(t,…,tがn個の整数要素tからなる目標ベクトルであり、xが整数であり、L(B)が格子{Σi=1,…,n |x∈Z,b∈B}であり、rji (c),rji (d),rj0,eが整数であり、t(d)が前記目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)であり、Bが{τ|<τ,χ>=0 mod N for all χ∈L(B)}のLLL既約基底であるNに関する双対基底であり、<τ,χ>がτとχとの内積であり、L(B)が双対格子L(B)={Σi=1,…,n |x∈Z,b ∈B}であり、r (c)がn次元ベクトルr (c)=(rj1 (c),…,rjn (c))∈L(B)であり、r (d)がn次元ベクトルr (d)=(rj1 (d),…,rjn (d))であり、t(d)が前記目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)であり、前記差分ベクトルt(d)
    Figure 0006963277
    を満たし、L,γが正の実数であり、
    前記基底Bおよび前記目標ベクトルtとの組(B,t)に対して前記差分ベクトルt(d)を出力する計算装置であって、
    前記実数Lを初期値L1に設定する初期設定部と、
    基底Bと目標ベクトルtとの組からなるノード(B,t)=(B,t)を得る第2初期設定部と、
    基底Bv+1に対応する格子L(Bv+1)が基底Bに対応する格子L(B)の部分格子であり、いずれかのι’∈{1,…,ρ(v)}について目標ベクトルtv,ι’と前記目標ベクトルtv,ι’に最も近い最近ベクトルtv,ι’ (c)∈L(Bv+1)との差分ベクトルtv,ι’−tv,ι’ (c)が、目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt (c)∈L(B)との差分ベクトルt−t (c)に等しく、ノード(B,t)を用い、ι=1,…,ρ(v)について、前記基底Bv+1と、目標ベクトルtv,ιと、の組であるノード(Bv+1,tv,1),…,(Bv+1,tv,ρ(v))を生成する子ノード生成部と、
    ι=1,…,ρ(v)について、請求項3または4に記載の前記判定装置の処理をB=Bv+1かつt=tv,ιとして実行する判定処理部と、
    前記判定処理部がすべてのι=1,…,ρ(v)についてEval>Lを満たすと判定した場合に、前記実数Lを増加させて、前記初期設定部、前記子ノード生成部、および前記判定処理部の処理を再び実行させ、前記判定処理部がいずれかのι=1,…,ρ(v)についてEval≦Lを満たすと判定した場合に、最小のEvalに対応するノード(Bv+1,tv,ι’)(ただし、ι’∈{1,…,ρ(v)})をノード(Bv+1,tv+1)に設定するノード選択部と、
    v=0からv=n−1まで各v=0,…,n−1について前記子ノード生成部と前記判定処理部と前記ノード選択部の処理を実行して得られたノード(B,t)の目標ベクトルtを差分ベクトルtL1 (d)として得る差分ベクトル生成部と、
    何れかの前記初期値L1に対応する前記差分ベクトルtL1 (d)を前記差分ベクトルt(d)として出力する出力部と、
    を有する計算装置。
  6. n,m,m’,M,N,N’が正の整数であり、M<Nであり、i=1,…,nであり、j=1,…,mであり、v=0,…,n−1であり、ηがηの転置であり、round(μ)がμに最も近い整数であり、B={b,…,b}が一次独立なn個のn次元ベクトルbからなる基底であり、前記n次元ベクトルbのそれぞれがn個の整数要素からなり、t=(t,…,tがn個の整数要素tからなる目標ベクトルであり、xが整数であり、L(B)が格子{Σi=1,…,n |x∈Z,b∈B}であり、rji (c),rji (d),rj0,X,d,gが整数であり、t(d)が前記目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)であり、Bが{τ|<τ,χ>=0 mod N for all χ∈L(B)}のLLL既約基底であるNに関する双対基底であり、<τ,χ>がτとχとの内積であり、L(B)が双対格子L(B)={Σi=1,…,n |x∈Z,b ∈B}であり、r (c)がn次元ベクトルr (c)=(rj1 (c),…,rjn (c))∈L(B)であり、r (d)がn次元ベクトルr (d)=(rj1 (d),…,rjn (d))であり、t(d)が前記目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt(c)∈L(B)との差分ベクトルt(d)=t−t(c)=(t (d),…,t (d)であり、aがn個の整数要素a1j,…,anjからなるn次元ベクトルa=(a1j,…,anjであり、gがn個の要素g,…,gからなるn次元ベクトルg=(g,…,gであり、εがu番目の要素が1で他の要素が0のn次元単位ベクトルε=(0,…,1,0,…,0)であり、L,γが正の実数であり、前記n次元ベクトルa,gおよび前記整数N’の入力に対して
    Figure 0006963277
    を満たす(d,…,dを前記差分ベクトルt(d)として出力する計算装置であって、
    前記実数Lを初期値L1に設定する初期設定部と、
    {a,…,am’,N’ε,…,N’ε}から計算したLLL既約基底を前記基底Bとし、t=gとし、基底Bと目標ベクトルtとの組からなるノード(B,t)=(B,t)を得る第2初期設定部と、
    基底Bv+1に対応する格子L(Bv+1)が基底Bに対応する格子L(B)の部分格子であり、いずれかのι’∈{1,…,ρ(v)}について目標ベクトルtv,ι’と前記目標ベクトルtv,ι’に最も近い最近ベクトルtv,ι’ (c)∈L(Bv+1)との差分ベクトルtv,ι’−tv,ι’ (c)が、目標ベクトルtと前記目標ベクトルtに最も近い最近ベクトルt (c)∈L(B)との差分ベクトルt−t (c)に等しく、ノード(B,t)を用い、ι=1,…,ρ(v)について、前記基底Bv+1と、目標ベクトルtv,ιと、の組であるノード(Bv+1,tv,1),…,(Bv+1,tv,ρ(v))を生成する子ノード生成部と、
    ι=1,…,ρ(v)について、請求項3または4に記載の前記判定装置の処理をB=Bv+1かつt=tv,ιとして実行する判定処理部と、
    前記判定処理部がすべてのι=1,…,ρ(v)についてEval>Lを満たすと判定した場合に、前記実数Lを増加させて、前記初期設定部、前記子ノード生成部、および前記判定処理部の処理を再び実行させ、前記判定処理部がいずれかのι=1,…,ρ(v)についてEval≦Lを満たすと判定した場合に、最小のEvalに対応するノード(Bv+1,tv,ι’)(ただし、ι’∈{1,…,ρ(v)})をノード(Bv+1,tv+1)に設定するノード選択部と、
    v=0からv=n−1まで各v=0,…,n−1について前記子ノード生成部と前記判定処理部と前記ノード選択部の処理を実行して得られたノード(B,t)の目標ベクトルtを差分ベクトルtL1 (d)として得る差分ベクトル生成部と、
    何れかの前記初期値L1に対応する前記差分ベクトルtL1 (d)を前記差分ベクトルt(d)として出力する出力部と、
    を有する計算装置。
  7. nが正の整数であり、B={b,…,b}が一次独立なn個のn次元ベクトルbからなる基底であり、前記n次元ベクトルbのそれぞれがn個の整数要素からなり、L(B)が格子{Σi=1,…,n |x∈Z,b∈B}であり、
    前記基底Bを入力として、前記格子L(B)の中で最も原点に近い格子点への最短ベクトルを出力する計算装置であって、
    すべてのi=1,…,nについて、B={b,…,bi−1,2b,bi+1,…,b}に設定する基底生成部と、
    請求項5に記載の前記計算装置の処理をB=Bかつt=bとして実行して得られた前記差分ベクトルt(d)をt (d)に設定する設定部と、
    前記設定部で得られたt (d),…,t (d)の中で最短ものを前記最短ベクトルとして出力する選択部と、
    を有する計算装置。
JP2017205011A 2017-10-24 2017-10-24 変換装置、判定装置、および計算装置 Active JP6963277B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017205011A JP6963277B2 (ja) 2017-10-24 2017-10-24 変換装置、判定装置、および計算装置
US16/168,014 US11521102B2 (en) 2017-10-24 2018-10-23 Transformation apparatus, decision apparatus, quantum computation apparatus, and quantum machine learning system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017205011A JP6963277B2 (ja) 2017-10-24 2017-10-24 変換装置、判定装置、および計算装置

Publications (2)

Publication Number Publication Date
JP2019079226A JP2019079226A (ja) 2019-05-23
JP6963277B2 true JP6963277B2 (ja) 2021-11-05

Family

ID=66627806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017205011A Active JP6963277B2 (ja) 2017-10-24 2017-10-24 変換装置、判定装置、および計算装置

Country Status (2)

Country Link
US (1) US11521102B2 (ja)
JP (1) JP6963277B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3041780C (en) * 2016-12-05 2022-05-31 1Qb Information Technologies Inc. Method for estimating the thermodynamic properties of a quantum ising model with transverse field
EP3624391A1 (en) * 2018-09-12 2020-03-18 Koninklijke Philips N.V. Public/private key system with decreased encrypted message size
US11080365B2 (en) * 2018-10-31 2021-08-03 Fujitsu Limited Solving lattice problems using annealing
US20200133996A1 (en) * 2018-10-31 2020-04-30 Fujitsu Limited Solving random modular subset sum problems
US11640549B2 (en) * 2019-04-30 2023-05-02 Microsoft Technology Licensing, Llc Variational quantum Gibbs state preparation
CN113222158B (zh) * 2020-01-21 2023-09-05 本源量子计算科技(合肥)股份有限公司 一种量子态的获得方法及装置
CA3174231A1 (en) * 2020-03-30 2021-10-07 Psiquantum, Corp. Encoded fusion measurements with local adaptivity
US11861456B2 (en) * 2020-05-28 2024-01-02 Quantinuum Llc Apparatuses, computer-implemented methods, and computer program products for instruction compilation for at least one time slice in a one-dimensional quantum computing environment
CN111796797B (zh) * 2020-06-04 2023-09-26 中国科学院信息工程研究所 一种利用ai加速器实现环上多项式乘法计算加速的方法和装置
DE102020207980B3 (de) * 2020-06-26 2021-09-30 Siemens Healthcare Gmbh Anonymisierte Erzeugung und Prüfung verarbeiteter Daten
CN111930294B (zh) * 2020-07-22 2023-06-16 山东浪潮科学研究院有限公司 量子云平台系统量子拖拽方法
CN114091363B (zh) * 2020-08-04 2023-08-08 合肥本源量子计算科技有限责任公司 基于量子算法的计算流体动力学模拟方法、装置及设备
CN113159303B (zh) * 2021-03-02 2023-07-21 重庆邮电大学 一种基于量子线路的人工神经元构造方法
CN113138756B (zh) * 2021-04-21 2023-06-23 广东工业大学 一种量子计算机实现条件语句的方法和系统
EP4330867A1 (en) * 2021-04-30 2024-03-06 Rigetti & Co, LLC Parallel data processing using hybrid computing system for machine learning applications
WO2023025248A1 (zh) 2021-08-26 2023-03-02 映恩生物制药(苏州)有限公司 一种甾体化合物及其缀合物
CN116896441B (zh) * 2023-09-11 2024-01-05 国开启科量子技术(北京)有限公司 基于量子全同态加密实现隐私计算处理的方法、装置、介质和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1451967A1 (en) * 2001-12-07 2004-09-01 NTRU Cryptosystems, Inc. Digital signature and authentication method and apparatus
JP2015001555A (ja) * 2013-06-13 2015-01-05 Kddi株式会社 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置および求解方法

Also Published As

Publication number Publication date
JP2019079226A (ja) 2019-05-23
US20190197426A1 (en) 2019-06-27
US11521102B2 (en) 2022-12-06

Similar Documents

Publication Publication Date Title
JP6963277B2 (ja) 変換装置、判定装置、および計算装置
US11250341B2 (en) System, method and computer readable medium for quassical computing
Kais Introduction to quantum information and computation for chemistry
US9477796B2 (en) Methods for general stabilizer-based quantum computing simulation
Vedral The elusive source of quantum speedup
Wong et al. Quantum speedup for protein structure prediction
Funcke et al. Review on quantum computing for lattice field theory
Neumann et al. Quantum computing for military applications
CN115699033A (zh) 量子数据加载器
Duong et al. Quantum neural architecture search with quantum circuits metric and bayesian optimization
US20210263753A1 (en) Compact, symmetry-adapted mapping between fermionic systems and quantum computers
Wu et al. Multi-population based univariate marginal distribution algorithm for dynamic optimization problems
Chappell et al. Analysis of two-player quantum games in an EPR setting using clifford's geometric algebra
Braccia et al. Computing exact moments of local random quantum circuits via tensor networks
Patro et al. An overview of quantum algorithms: From quantum supremacy to shor factorization
AU2018274948B2 (en) System, method and computer readable medium for quassical computing
Ganguly et al. Quantum Computing with Silq Programming: Get up and running with quantum computing with the simplicity of this new high-level programming language
JP7101355B2 (ja) 判定装置、計算装置、および学習システム
Uvarov Variational quantum algorithms for local Hamiltonian problems
Incudini et al. Higher-order topological kernels via quantum computation
Ghose Beyond the binary: Building a quantum future
Cho et al. Machine learning on quantum experimental data toward solving quantum many-body problems
Sreedevi et al. Introduction to Quantum Computing & Machine Learning Technologies
Fernandez Characterization and implementation of robust quantum information processing
Kokkelmans Quantum Error Correction using the Toric Code

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20171024

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20171027

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211007

R150 Certificate of patent or registration of utility model

Ref document number: 6963277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150