JP6870738B2 - 乱数生成システム、乱数生成方法および乱数生成プログラム - Google Patents

乱数生成システム、乱数生成方法および乱数生成プログラム Download PDF

Info

Publication number
JP6870738B2
JP6870738B2 JP2019535457A JP2019535457A JP6870738B2 JP 6870738 B2 JP6870738 B2 JP 6870738B2 JP 2019535457 A JP2019535457 A JP 2019535457A JP 2019535457 A JP2019535457 A JP 2019535457A JP 6870738 B2 JP6870738 B2 JP 6870738B2
Authority
JP
Japan
Prior art keywords
random number
probability
discrete
number generation
gaussian distribution
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
JP2019535457A
Other languages
English (en)
Other versions
JPWO2019030799A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2019030799A1 publication Critical patent/JPWO2019030799A1/ja
Application granted granted Critical
Publication of JP6870738B2 publication Critical patent/JP6870738B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

本発明は、乱数生成システム、乱数生成方法および乱数生成プログラムに関し、特に格子暗号および署名に用いられ中心が原点でない離散ガウス分布に従う乱数を生成する乱数生成システム、乱数生成方法および乱数生成プログラムに関する。
最初に、離散ガウス分布を定義する。実数s ∈R (R は実数全体の集合を表す記号)で定まる函数を、以下のように定義する。
Figure 0006870738
整数値u ∈Z (Z は整数全体の集合を表す記号)が確率φs(u)/ Σ j=−∞ φs(j)で出力された分布を、分散値がs である離散ガウス分布と呼ぶ。上記の離散ガウス分布に従って生成された乱数は、非特許文献1に記載されているように、格子が用いられた暗号(以下、格子暗号という。)に使用される。格子暗号は、耐量子暗号として使用されることが期待されている。さらに、格子暗号は、計算効率が良く、機能性の高い暗号スキームとして研究されている暗号システムである。
離散ガウス分布は、全ての整数値を出力し得る確率分布である。しかし、離散ガウス分布に従って生成された乱数が格子暗号に用いられる場合、離散ガウス分布が出力する整数値の範囲が制限されることによって、確率変数の生成が効率化される場合が多い。
例えば、以下のように離散ガウス分布が出力する整数値の範囲がセキュリティパラメータn ∈N (N は自然数全体の集合を表す記号)に依存する形で制限されることによって、確率変数の生成が効率化される。
すなわち、t = ω(logn)1/2として、{k∈Z|− t・s ≦k ≦ t・s}が離散ガウス分布の出力範囲とされることによって、確率変数の生成が効率化される。なお、ωは、ランダウの記号である。離散ガウス分布が出力する整数の範囲が上記のように制限されても、格子暗号の安全性に影響が及ばないことが一般的に知られている。
正規化定数W をW = Σ t・s i= − t・s φs(i)のように定義するとき、出力する整数の範囲が上記のように制限された離散ガウス分布をΨs(x) = φs(x)/Wとおく。Ψs(x)が用いられる場合、整数値u ∈Z が確率Ψs(u)で出力される。
以下、本明細書における「離散ガウス分布」は、出力する整数の範囲が{k∈Z|− t・s ≦k ≦ t・s}であり、整数値u ∈Z を確率Ψs(u)で出力する確率分布を指す。また、函数Ψs(x) = φs(x)/Wを、離散ガウス分布を定める函数と呼ぶ。
次に、離散ガウス分布の中心を説明する。中心がc 、分散値がs である離散ガウス分布は、整数値u を確率Ψs(u−c)で出力する確率分布である。
上記の内容は、1次元格子上の離散ガウス分布に対する定義である。次に、n次元格子上の離散ガウス分布に対する定義を与える。
ベクトル{b1 , ・・・,bn } ∈Rnが横に並べられた行列をB と記載する。行列B が用いられたn次元の格子Λ(B) を、以下のように定める。
Figure 0006870738
また、中心がcであるRn上のガウス函数を、パラメータs を用いて以下のように定義する。
Figure 0006870738
上記の式(3)で表現されるガウス函数を用いて、n次元格子Λ上の離散ガウス分布を以下のように定義する。
Figure 0006870738
すなわち、n次元格子上の離散ガウス分布は、確率変数が式(4)に従う確率分布である。以下、1次元格子上の離散ガウス分布、n次元格子上の離散ガウス分布を、簡単のためそれぞれ1次元離散ガウス分布、n次元離散ガウス分布とも呼ぶ。
以上の内容が、1次元離散ガウス分布の定義、および多次元(n次元)離散ガウス分布の定義である。次に、それぞれの離散ガウス分布に従う乱数を生成するためのサンプリング法を説明する。
一般的に、1次元離散ガウス分布に従う乱数の生成方法であるサンプリング法には、累積法と棄却サンプリング法の2つの方法がある。なお、1次元離散ガウス分布を定める函数をφ(x) 、1次元離散ガウス分布の出力範囲を{k∈Z|− t・s ≦k ≦ t・s}とする。
上記の2つのサンプリング法をそれぞれ、1次元離散ガウス分布の中心が原点である場合と1次元離散ガウス分布の中心が原点でない場合とに分けて説明する。
最初に、中心が原点である1次元離散ガウス分布に従う乱数を累積法で生成する処理を、非特許文献2に記載されている内容に基づいて説明する。図9は、1次元離散ガウス分布に従う乱数を生成する一般的な乱数生成システムの構成例を示すブロック図である。
図9に示すように、中心が原点である1次元離散ガウス分布に従う乱数を生成する乱数生成システム910は、記憶装置911と、探索器912と、一様乱数生成器913とで構成されている。
図9に示すような構成要素を有する中心が原点である1次元離散ガウス分布に従う乱数を生成する一般的な乱数生成システム910は、以下のように動作する。最初に、φ(0)/2,φ(1),φ(2),・・・ ,φ(t・s)の各値が事前に計算され、記憶装置911に記憶される。図9に示す記憶装置911内の各縦線が、φ(0)/2,φ(1) 等の記憶された各値を表す。
次いで、一様乱数生成器913が、実数値x ∈[0,1] を出力する。出力されたx ∈R は、探索器912に入力される。x が入力された探索器912は、記憶装置911に記憶されている各値の中からφ(z−1)≦x <φ(z) を満たすz ∈Z を二分探索する。
次いで、探索器912は、符号sign= ±を一様に選ぶ。次いで、探索器912は、sign・z ∈Z を1次元離散ガウス分布に従う乱数として出力する。以上の内容が、累積法による中心が原点である1次元離散ガウス分布に従う乱数の生成方法である。
なお、中心が原点でない、例えば中心がa である1次元離散ガウス分布に従う乱数の累積法による生成方法は、上記の中心が原点である1次元離散ガウス分布に従う乱数の生成方法においてφ(x) をφ(x−a)に置き換えればよい。
累積法の場合、記憶装置に記憶されるデータの数が t・s に比例する。なお、記憶装置に記憶されるデータは、中心が原点である1次元離散ガウス分布が用いられる場合はφ(0)/2,φ(1),φ(2),・・・ ,φ(t・s)である。また、中心が原点でなくa である1次元離散ガウス分布が用いられる場合はφ(0−a)/2, φ(1−a), φ(2−a), ・・・ ,φ(t・s −a)である。
すなわち、累積法には、分散値s が大きい離散ガウス分布が使用される場合、函数の値の記憶に要するメモリ量が多くなるという問題がある。既存の格子暗号において分散値s は、比較的大きな値をとる。
函数の値の記憶に要する具体的なメモリ量として、例えば、図10に示す値が非特許文献4に記載されている。図10は、累積法が使用される時に消費されるメモリ量の例を示す説明図である。図10に示すように、分散値が大きくなるほど消費されるメモリ量も多くなる。
なお、図10に示す中心の「q-種類/1署名」は、1回の署名生成につき、q=2Kの中心が用意されることを意味する。同様に、「2-種類/1署名」は、1回の署名生成につき、2種類の中心しか用意されないことを意味する。
また、図10に示すUseageは、各方式でガウス分布が使用される用途を表す。例えば、方式「LWE-plane 」では、「鍵生成」の用途でガウス分布が使用される。また、方式「GPV 」等では、「署名生成」の用途でガウス分布が使用される。「署名生成」の用途でガウス分布が使用される場合、ガウス分布は何度も使用される。
RSA 等の格子暗号では、一般的に求められる計算量が少ない。よって、格子暗号は、センサ機器や携帯電話のような計算資源や記憶容量が小さいデバイスでの利用が期待されている。
しかし、格子暗号のサブルーチンである離散ガウス分布に従う乱数の生成に累積法が用いられると、累積法で使用されるデータの保存のために多くの記憶容量が使用される。すなわち、記憶容量の小さいデバイスでの格子暗号の利用が困難になるという問題がある。
次に、棄却サンプリング法を説明する。棄却サンプリング法は、離散ガウス分布に限られず、任意の離散型確率分布に従う乱数が生成される際に使用される方法である。
最初に、一般の確率変数X に対する離散型確率分布に従う乱数を生成する棄却サンプリング法を、非特許文献5に記載されている内容に基づいて説明する。その後に、1次元離散ガウス分布に従う乱数を生成する棄却サンプリング法を説明する。
離散型確率分布p(X=xi) に従う乱数を棄却サンプリング法を利用して生成するために、最初に全てのxiに対してt(xi) ≧p(xi) を満足する函数t(x)のうち、効率的に計算可能なt(x)を準備する。
次いで、t(x)が正規化された函数r(x)を、r(x)=t(x)/Σt(xi) とする。次いで、以下の手順を実行することによって、確率変数X に対する離散型確率分布p(X=xi) (確率分布函数)に従う乱数を、棄却サンプリング法を利用して生成する。
(Step 1) 確率分布函数r(x)に従う乱数Y を生成する。
(Step 2) Y と独立に区間[0,1] 内の一様乱数U を発生させる。
(Step 3) U ≦p(Y)/t(Y) が満たされる場合、乱数X をX=Y とする。U ≦p(Y)/t(Y) が満たされない場合、再度(Step 1)の処理を行う。
なお、非特許文献5に記載されているAlgorithm A1における1/ε、g 、f がそれぞれ上記の手順では1 、t 、p に変換されている。
次に、1次元離散ガウス分布に従う乱数を生成する棄却サンプリング法を、非特許文献3に記載されている内容に基づいて説明する。なお、非特許文献3に記載されている方法は、上述した棄却サンプリング法が、函数t(x)が恒等的に1である場合に対して適応された方法である。
非特許文献3に記載されている方法を実現するための装置の構成例を図11に示す。図11は、1次元離散ガウス分布に従う乱数を生成する一般的な乱数生成システムの他の構成例を示すブロック図である。
図11に示すように、中心が原点である1次元離散ガウス分布に従う乱数を生成する乱数生成システム920は、棄却判定器921と、一様乱数生成器922と、出力装置923とで構成されている。
図11に示すような構成要素を有する中心が原点である1次元離散ガウス分布に従う乱数を生成する一般的な乱数生成システム920は、以下のように動作する。最初に、一様乱数生成器922は、{k∈Z|− t・s ≦k ≦ t・s}の範囲で一様乱数u1∈Z を生成する。
次いで、一様乱数生成器922は、[0, φ(0)]の範囲で実数値の乱数u2∈R を生成する。一様乱数生成器922は、生成されたu1∈Z とu2∈R を棄却判定器921に入力する。
次いで、棄却判定器921は、φ(u1)とu2∈R を比較する。比較した結果u2≦φ(u1)であれば、棄却判定器921は、u1∈Z を出力装置923に入力する。出力装置923は、中心が原点である1次元離散ガウス分布に従う乱数としてu1∈Z を出力する。
比較した結果u2>φ(u1)であれば、乱数生成システム920は、最初のステップに戻り、同じ操作を再度実行する。以上の内容が、棄却サンプリング法による中心が原点である1次元離散ガウス分布に従う乱数の生成方法である。
なお、中心が原点でない、例えば中心がa である1次元離散ガウス分布に従う乱数の棄却サンプリング法による生成方法は、上記の中心が原点である1次元離散ガウス分布に従う乱数の生成方法においてφ(x) をφ(x−a)に置き換えればよい。
棄却サンプリング法では、上記の(Step 3)に相当する処理における条件が満たされない場合、再度同様の処理が繰り返し実行される。すなわち、棄却サンプリング法には、生成された一様乱数が棄却される度に離散ガウス分布を定める函数を再度計算することが求められるため、計算効率が低下するという問題がある。
以上の内容をまとめると、累積法の長所は、計算コストが小さいことである。一方、累積法の短所は、メモリコストが大きいことである。また、棄却サンプリング法の長所は、メモリコストが小さいことである。一方、棄却サンプリング法の短所は、計算コストが大きいことである。
次に、多次元格子上の離散ガウス分布に従う乱数の生成方法を、非特許文献3に記載されている内容に基づいて説明する。説明の前に、いくつかの事項を用意する。
ベクトルa1 ,・・・,an に対する各Gram-Schmidt直交化ベクトルa1 ~→, ・・・ ,an ~→を、以下のように計算されるベクトルとする。
Figure 0006870738
なお、本明細書においてテキスト中で使用する記号である「−」「→」「〜」等は、本来直前の文字の真上に記載されるべきであるが、テキスト記法の制限により上記のように当該文字の直後に記載する。式中および図面においてはこれらの記号は本来の位置に記載される。
図12は、多次元格子上の離散ガウス分布に従う乱数の生成アルゴリズムの例を示す説明図である。図12に示すアルゴリズムの4行目〜9行目のループでは、1回の処理で乱数ziが生成され、生成されたziを基にci−1 が更新される。また、次の処理では更新されたci−1 を基に離散ガウス分布が更新された上で乱数zi−1 が生成される。すなわち、乱数zn, ・・・ ,z1が、それぞれ逐次的に生成される。
図12に示すアルゴリズムの7行目の処理におけるDZ,c’i,σi は、中心がc’i 、分散値がσi である1次元離散ガウス分布を表す。ループを構成する各処理でci−1 が更新されるため、中心が異なる1次元離散ガウス分布に従う乱数の生成も毎回求められる。
Regev, "On lattices, learning with errors, random linear codes, and cryptography," STOC 2005, ACM, 2005, pages 84-93. Chris Peikert, "An efficient and parallel Gaussian Sampler for lattices," CRYPTO, 2010, pages 80-97. Craig Gentry, Chris Peikert, and Vinod Vaikuntanathan, "How to Use a Short Basis: Trapdoors for Hard Lattices and New Cryptographic Constructions," STOC, 2008, pages 197-206. DWARAKANATH, N. C, GALBRAITH, S. D, "Sampling From Discrete Gaussians for Lattice-Based Cryptography on a Constrained Device," Appl. Algebra Engrg. Comm. Comput. 25, 2014, pages 159-180. George Casella, Christian P. Robert, and Martin T. Wells, "Generalized Accept-Reject sampling schemes," A Festschrift for Herman Rubin Institute of Mathematical Statistics Lecture Notes - Monograph Series Vol. 45, 2004, pages 342-347.
多次元(n次元)格子上の離散ガウス分布に従う乱数を生成する場合、中心が原点であるとは限られない1次元格子上の離散ガウス分布に従う乱数をn回生成することが求められる。中心が原点であるとは限られない1次元格子上の離散ガウス分布に従う乱数の生成方法に、上記の累積法および棄却サンプリング法が使用される。
累積法を用いて多次元格子上の離散ガウス分布に従う乱数を生成する時の課題と、棄却サンプリング法を用いて多次元格子上の離散ガウス分布に従う乱数を生成する時の課題をそれぞれ順に述べる。
累積法が用いられて多次元格子上の離散ガウス分布に従う乱数が生成される場合、出力対象の格子の次元の数だけ1次元離散ガウス分布に従う乱数が生成される。また、累積法では、乱数の生成に用いられる1次元離散ガウス分布の中心が異なる度に新しい数値を記憶装置に保存することが求められる。
よって、乱数の生成に用いられる複数の1次元離散ガウス分布の中心が殆ど異なるような場合、多くのメモリ量が消費される。すなわち、多次元格子上の離散ガウス分布に従う乱数の生成に使用される累積法は、メモリ量の観点において効率的なサンプリング法ではない。
棄却サンプリング法を用いて多次元格子上の離散ガウス分布に従う乱数を生成する時の課題は、1次元離散ガウス分布に従う乱数の生成速度が遅い点である。その理由は、生成された一様乱数が棄却される度に離散ガウス分布を定める函数の計算が求められるので、全体的な計算効率が低下するためである。
[発明の目的]
そこで、本発明は、上述した課題を解決する、多次元格子上の離散ガウス分布に従う乱数の生成に掛かるメモリコストと計算コストをより低減できる乱数生成システム、乱数生成方法および乱数生成プログラムを提供することを目的とする。
本発明による乱数生成システムは、中心が正の値である1次元格子上の離散ガウス分布である第1離散分布に従う乱数を生成する乱数生成システムであって、第1離散分布において確率変数が正の範囲における所定の区間内の値になる確率である第1確率と0の間の一様乱数を生成する生成手段と、中心が原点である1次元格子上の離散ガウス分布である第2離散分布において確率変数が所定の区間内の値になる確率である第2確率以下の一様乱数が生成されると乱数の生成方法に第2離散分布を定める函数の値が用いられる累積法を選択し、第2確率よりも大きい一様乱数が生成されると乱数の生成方法に棄却サンプリング法を選択する選択手段とを含むことを特徴とする。
本発明による乱数生成方法は、中心が正の値である1次元格子上の離散ガウス分布である第1離散分布に従う乱数を生成する乱数生成システムで実行される乱数生成方法であって、第1離散分布において確率変数が正の範囲における所定の区間内の値になる確率である第1確率と0の間の一様乱数を生成し、中心が原点である1次元格子上の離散ガウス分布である第2離散分布において確率変数が所定の区間内の値になる確率である第2確率以下の一様乱数が生成されると乱数の生成方法に第2離散分布を定める函数の値が用いられる累積法を選択し、第2確率よりも大きい一様乱数が生成されると乱数の生成方法に棄却サンプリング法を選択することを特徴とする。
本発明による乱数生成プログラムは、中心が正の値である1次元格子上の離散ガウス分布である第1離散分布に従う乱数を生成するコンピュータで実行される乱数生成プログラムであって、コンピュータに、第1離散分布において確率変数が正の範囲における所定の区間内の値になる確率である第1確率と0の間の一様乱数を生成する生成処理、中心が原点である1次元格子上の離散ガウス分布である第2離散分布において確率変数が所定の区間内の値になる確率である第2確率以下の一様乱数が生成されると乱数の生成方法に第2離散分布を定める函数の値が用いられる累積法を選択する第1選択処理、および第2確率よりも大きい一様乱数が生成されると乱数の生成方法に棄却サンプリング法を選択する第2選択処理を実行させることを特徴とする。
本発明によれば、多次元格子上の離散ガウス分布に従う乱数の生成に掛かるメモリコストと計算コストをより低減できる。
中心が原点である1次元離散ガウス分布と中心が原点でない1次元離散ガウス分布とを示す説明図である。 累積法が適用される領域と棄却サンプリング法が適用される領域とを示す説明図である。 本発明による乱数生成システムの第1の実施形態の構成例を示すブロック図である。 第1の実施形態の生成方法選択装置110の構成例を示すブロック図である。 第1の実施形態の棄却サンプリング装置120の構成例を示すブロック図である。 第1の実施形態の累積法サンプリング装置130の構成例を示すブロック図である。 第1の実施形態の乱数生成システム100による乱数生成処理の動作を示すフローチャートである。 本発明による乱数生成システムの概要を示すブロック図である。 1次元離散ガウス分布に従う乱数を生成する一般的な乱数生成システムの構成例を示すブロック図である。 累積法が使用される時に消費されるメモリ量の例を示す説明図である。 1次元離散ガウス分布に従う乱数を生成する一般的な乱数生成システムの他の構成例を示すブロック図である。 多次元格子上の離散ガウス分布に従う乱数の生成アルゴリズムの例を示す説明図である。
[第1の実施形態]
以下、本発明の実施形態を、図面を参照して説明する。本実施形態では、中心が原点である1次元離散ガウス分布を、以下に示す方法で中心が原点でない1次元離散ガウス分布に仮想的に変換することを考える。
図1は、中心が原点である1次元離散ガウス分布と中心が原点でない1次元離散ガウス分布とを示す説明図である。なお、説明の簡略化のために、図1には1次元離散ガウス分布の出力範囲のうち正の範囲のみが示されている。図1に示すように、1次元離散ガウス分布は線対称な分布であるため、出力範囲のうち正の範囲のみが考慮されればよい。
図1を参照すると、中心が原点でなくa である1次元離散ガウス分布の大部分は、中心が原点である1次元離散ガウス分布に含まれていることが分かる。例えば、図1に示す第1区間(便宜上、横軸の長さを1とする。)における確率φ(1) は、確率φ(1−a)の大部分を占めている。
同様に、図1に示す第2区間(便宜上、横軸の長さを1とする。)における確率φ(2) は、確率φ(2−a)の大部分を占めている。以下、全ての区間において同様の特徴が見受けられる。
すなわち、中心が原点でない1次元離散ガウス分布に従う第1区間における乱数は、φ(1)/φ(1−a)の確率で中心が原点である1次元離散ガウス分布に従う乱数であると考えられる。本実施形態では、上記の特徴が用いられている。
図2は、累積法が適用される領域と棄却サンプリング法が適用される領域とを示す説明図である。図2に示す確率P は、確率φ(1−a)、・・・、確率φ(t・s −a)の総和である。すなわち、確率P は、中心が原点でない1次元離散ガウス分布に従って乱数が出力される確率である。
また、図2に示すように、確率p{1-dim}は、確率φ(1) 、・・・、確率φ(t・s)の総和である。すなわち、確率p{1-dim}は、中心が原点である1次元離散ガウス分布に従って乱数が出力される確率である。
本実施形態の乱数生成システムは、区間[0, P]で取られた一様乱数r がp{1-dim}以下である場合、中心が原点である1次元離散ガウス分布を定める函数φ(x) の値が用いられる累積法で、中心が原点でない1次元離散ガウス分布に従う乱数を生成する。
また、図2に示すように、確率p{rjc}は、確率 {φ(1−a)−φ(1)}、・・・、確率 {φ(t・s −a)−φ(t・s)} の総和である。すなわち、確率p{rjc}は、中心が原点でない1次元離散ガウス分布に従って乱数が出力される確率P と中心が原点である1次元離散ガウス分布に従って乱数が出力される確率p{1-dim}との差である。
本実施形態の乱数生成システムは、区間[0, P]で取られた一様乱数r がp{1-dim}より大きい場合、棄却サンプリング法で中心が原点でない1次元離散ガウス分布に従う乱数を生成する。
確率p{1-dim}の方が確率p{rjc}よりも十分に大きいため、棄却サンプリング法で乱数が生成される確率は低い。すなわち、棄却サンプリング法で乱数が生成される機会が減るため、乱数の生成に掛かる全体の計算コストが低減される。
また、累積法では常に中心が原点である1次元離散ガウス分布を定める函数φ(x) の値が用いられるので、記憶装置には函数φ(x) の値さえ記憶されていればよい。すなわち、乱数の生成に掛かる全体のメモリコストも低減される。
なお、上記では中心が原点から右にずれている1次元離散ガウス分布に従う乱数の生成方法を説明したが、中心が原点から左にずれている1次元離散ガウス分布に従う乱数も同様の方法で生成される。本実施形態の乱数生成システムは、1次元格子上の離散ガウス分布の中心を仮想的に変換することによって、多次元格子上の離散ガウス分布に従う乱数を効率的に生成する。
[構成の説明]
図3は、本発明による乱数生成システムの第1の実施形態の構成例を示すブロック図である。図3に示すように、本実施形態の乱数生成システム100は、生成方法選択装置110と、棄却サンプリング装置120と、累積法サンプリング装置130とを含む。
図4は、第1の実施形態の生成方法選択装置110の構成例を示すブロック図である。図4に示すように、本実施形態の生成方法選択装置110は、区間一様乱数生成手段111と、生成方法選択手段112とを有する。
区間一様乱数生成手段111は、区間[0, P]の一様乱数r を生成する機能を有する。また、生成方法選択手段112は、生成された一様乱数r と確率p{1-dim}とを比較した上で乱数の生成方法を選択する機能を有する。
生成方法選択手段112は、一様乱数r が確率p{1-dim}以下である場合、乱数の生成方法として累積法を選択する。選択した後、生成方法選択手段112は、累積法サンプリング装置130に乱数を生成するように指示する。
また、生成方法選択手段112は、一様乱数r が確率p{1-dim}より大きい場合、乱数の生成方法として棄却サンプリング法を選択する。選択した後、生成方法選択手段112は、棄却サンプリング装置120に乱数を生成するように指示する。
図5は、第1の実施形態の棄却サンプリング装置120の構成例を示すブロック図である。図5に示すように、本実施形態の棄却サンプリング装置120は、一様乱数生成手段121と、棄却判定手段122とを有する。
一様乱数生成手段121が有する機能は、一様乱数生成器922が有する機能と同様である。すなわち、一様乱数生成手段121は、{k∈Z|−(t・s −a)≦k ≦(t・s −a)} の範囲で一様乱数u1∈Z を生成する。
次いで、一様乱数生成手段121は、[0, φ (−a)] の範囲で実数値の乱数u2∈R を生成する。一様乱数生成手段121は、生成されたu1∈Z とu2∈R を棄却判定手段122に入力する。
また、棄却判定手段122が有する機能は、棄却判定器921が有する機能、および出力装置923が有する機能と同様である。すなわち、棄却判定手段122は、φ (u1−a)とu2∈R を比較する。比較した結果u2≦φ (u1−a)であれば、棄却判定手段122は、中心が原点でない1次元離散ガウス分布に従う乱数としてu1∈Z を出力する。
また、比較した結果u2>φ (u1−a)であれば、棄却判定手段122は、最初のステップに戻り、同じ操作を再度実行する。
図6は、第1の実施形態の累積法サンプリング装置130の構成例を示すブロック図である。図6に示すように、本実施形態の累積法サンプリング装置130は、一様乱数生成手段131と、探索手段132と、記憶手段133と、出力手段134とを有する。
一様乱数生成手段131が有する機能は、一様乱数生成器913が有する機能と同様である。すなわち、一様乱数生成手段131は、実数値x ∈[0,1] を出力する。
また、探索手段132が有する機能は、探索器912が有する機能と同様である。すなわち、探索手段132は、記憶手段133に記憶されている各値の中からφ(z−a −1)≦x <φ(z−a)を満たすz ∈Z を二分探索する。
また、記憶手段133が有する機能は、記憶装置911が有する機能と同様である。すなわち、記憶手段133は、φ(0−a)/2, φ(1−a), φ(2−a), ・・・ ,φ(t・s −a)の各値を記憶する。
出力手段134は、探索手段132が探索した乱数を中心が原点でない1次元離散ガウス分布に従う乱数として出力する機能を有する。
本実施形態の乱数生成システム100は、累積法による1次元離散ガウス分布に従う乱数の生成に掛かるメモリコストで、また毎回のサンプリング処理が累積法で実行されたときの計算コストに近い計算コストで、多次元格子上の離散ガウス分布に従う乱数を生成できる。
[動作の説明]
以下、本実施形態の乱数生成システム100が中心が原点でない1次元離散ガウス分布に従う乱数を生成する動作を図7を参照して説明する。図7は、第1の実施形態の乱数生成システム100による乱数生成処理の動作を示すフローチャートである。
最初に、区間一様乱数生成手段111は、区間[0, P]の一様乱数r を生成する(ステップS101)。区間一様乱数生成手段111は、生成された一様乱数r を生成方法選択手段112に入力する。
次いで、生成方法選択手段112は、入力された一様乱数r が確率p{1-dim}より大きいか否かを判定する(ステップS102)。
一様乱数r が確率p{1-dim}より大きい場合(ステップS102におけるTrue)、生成方法選択手段112は、乱数のサンプリング処理の方法として棄却サンプリング法を選択する(ステップS103)。次いで、生成方法選択手段112は、棄却サンプリング装置120に乱数の生成を指示する。
乱数の生成を指示された棄却サンプリング装置120は、棄却サンプリング法で中心が原点でない1次元離散ガウス分布に従う乱数を生成する(ステップS104)。生成した後、棄却サンプリング装置120は、生成された乱数を出力する(ステップS105)。出力した後、乱数生成システム100は、乱数生成処理を終了する。
一様乱数r が確率p{1-dim}以下である場合(ステップS102におけるFalse )、生成方法選択手段112は、乱数のサンプリング処理の方法として累積法を選択する(ステップS106)。次いで、生成方法選択手段112は、累積法サンプリング装置130に乱数の生成を指示する。
乱数の生成を指示された累積法サンプリング装置130は、累積法で中心が原点でない1次元離散ガウス分布に従う乱数を生成する(ステップS107)。累積法サンプリング装置130は、中心が原点である1次元離散ガウス分布を定める函数の値が用いられる累積法で乱数を生成する。
生成した後、累積法サンプリング装置130は、生成された乱数を出力する(ステップS108)。出力した後、乱数生成システム100は、乱数生成処理を終了する。n次元格子上の離散ガウス分布に従う乱数が生成される場合、乱数生成システム100は、図7に示す乱数生成処理をn回実行する。
[効果の説明]
確率p{rjc}の値に比べて確率p{1-dim}の値が十分大きいため、生成方法選択手段112は、殆どの場合中心が原点である1次元離散ガウス分布を定める函数の値が用いられる累積法を乱数の生成方法として選択する。すなわち、本実施形態の乱数生成システム100が使用されると、多次元格子上の離散ガウス分布に従う乱数が生成される際に毎回実行されるサンプリング処理が、殆どの確率で累積法によるサンプリング処理になる。
よって、乱数生成システム100による乱数生成処理全体に要するメモリコストは、中心が原点である1次元離散ガウス分布に従う乱数が累積法で生成される際に要するメモリコストと同程度の値まで削減される。
また、乱数生成システム100による乱数生成処理全体に要する計算コストは、毎回実行されるサンプリング処理が累積法によるサンプリング処理である場合に要する計算コストに近い値まで削減される。
なお、本実施形態の乱数生成システム100は、例えば、非一時的な記憶媒体に格納されているプログラムに従って処理を実行する中央処理装置(CPU(Central Processing Unit))等のプロセッサ、またはデータ処理装置によって実現されてもよい。すなわち、区間一様乱数生成手段111、生成方法選択手段112、一様乱数生成手段121、棄却判定手段122、一様乱数生成手段131、探索手段132、および出力手段134は、例えば、プログラム制御に従って処理を実行するCPU によって実現されてもよい。
また、記憶手段133は、例えばRAM(Random Access Memory) で実現されてもよい。
また、本実施形態の乱数生成システム100における各部は、ハードウェア回路によって実現されてもよい。一例として、区間一様乱数生成手段111、生成方法選択手段112、一様乱数生成手段121、棄却判定手段122、一様乱数生成手段131、探索手段132、記憶手段133、および出力手段134が、それぞれLSI(Large Scale Integration)で実現される。また、それらが1つのLSI で実現されていてもよい。
次に、本発明の概要を説明する。図8は、本発明による乱数生成システムの概要を示すブロック図である。本発明による乱数生成システム10は、中心が正の値である1次元格子上の離散ガウス分布である第1離散分布に従う乱数を生成する乱数生成システムであって、第1離散分布において確率変数が正の範囲における所定の区間内の値になる確率である第1確率と0の間の一様乱数を生成する生成手段11(例えば、区間一様乱数生成手段111)と、中心が原点である1次元格子上の離散ガウス分布である第2離散分布において確率変数が所定の区間内の値になる確率である第2確率以下の一様乱数が生成されると乱数の生成方法に第2離散分布を定める函数の値が用いられる累積法を選択し、第2確率よりも大きい一様乱数が生成されると乱数の生成方法に棄却サンプリング法を選択する選択手段12(例えば、生成方法選択手段112)とを含む。
そのような構成により、乱数生成システムは、多次元格子上の離散ガウス分布に従う乱数の生成に掛かるメモリコストと計算コストをより低減できる。
また、乱数生成システム10は、第2離散分布を定める函数の値が用いられる累積法で1次元格子上の離散ガウス分布に従う乱数を生成する累積法生成手段(例えば、累積法サンプリング装置130)を含み、選択手段12は、累積法が選択された後に累積法生成手段に乱数の生成を指示し、累積法生成手段は、指示を受けて乱数を生成してもよい。また、累積法生成手段は、第2離散分布を定める函数の値が記憶されている記憶手段(例えば、記憶手段133)を有してもよい。
そのような構成により、乱数生成システムは、累積法で中心が原点でない1次元格子上の離散ガウス分布に従う乱数を生成できる。
また、乱数生成システム10は、棄却サンプリング法で1次元格子上の離散ガウス分布に従う乱数を生成する棄却サンプリング法生成手段(例えば、棄却サンプリング装置120)を含み、選択手段12は、棄却サンプリング法が選択された後に棄却サンプリング法生成手段に乱数の生成を指示し、棄却サンプリング法生成手段は、指示を受けて乱数を生成してもよい。
そのような構成により、乱数生成システムは、棄却サンプリング法で中心が原点でない1次元格子上の離散ガウス分布に従う乱数を生成できる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
(付記1)中心が負の値である1次元格子上の離散ガウス分布である第3離散分布に従う乱数を生成する乱数生成システムであって、前記第3離散分布において確率変数が負の範囲における所定の区間内の値になる確率である第3確率と0の間の一様乱数を生成する生成手段と、中心が原点である前記1次元格子上の離散ガウス分布である第4離散分布において確率変数が前記所定の区間内の値になる確率である第4確率以下の一様乱数が生成されると前記乱数の生成方法に前記第4離散分布を定める函数の値が用いられる累積法を選択し、前記第4確率よりも大きい一様乱数が生成されると前記乱数の生成方法に棄却サンプリング法を選択する選択手段とを含むことを特徴とする乱数生成システム。
(付記2)第4離散分布を定める函数の値が用いられる累積法で1次元格子上の離散ガウス分布に従う乱数を生成する累積法生成手段を含み、選択手段は、累積法が選択された後に前記累積法生成手段に乱数の生成を指示し、前記累積法生成手段は、指示を受けて乱数を生成する付記1記載の乱数生成システム。
(付記3)累積法生成手段は、第4離散分布を定める函数の値が記憶されている記憶手段を有する付記2記載の乱数生成システム。
(付記4)棄却サンプリング法で1次元格子上の離散ガウス分布に従う乱数を生成する棄却サンプリング法生成手段を含み、選択手段は、棄却サンプリング法が選択された後に前記棄却サンプリング法生成手段に乱数の生成を指示し、前記棄却サンプリング法生成手段は、指示を受けて乱数を生成する付記1から付記3のうちのいずれか1項に記載の乱数生成システム。
(付記5)中心が負の値である1次元格子上の離散ガウス分布である第3離散分布に従う乱数を生成する乱数生成システムで実行される乱数生成方法であって、前記第3離散分布において確率変数が負の範囲における所定の区間内の値になる確率である第3確率と0の間の一様乱数を生成し、中心が原点である前記1次元格子上の離散ガウス分布である第4離散分布において確率変数が前記所定の区間内の値になる確率である第4確率以下の一様乱数が生成されると前記乱数の生成方法に前記第4離散分布を定める函数の値が用いられる累積法を選択し、前記第4確率よりも大きい一様乱数が生成されると前記乱数の生成方法に棄却サンプリング法を選択することを特徴とする乱数生成方法。
(付記6)中心が負の値である1次元格子上の離散ガウス分布である第3離散分布に従う乱数を生成するコンピュータで実行される乱数生成プログラムであって、前記コンピュータに、前記第3離散分布において確率変数が負の範囲における所定の区間内の値になる確率である第3確率と0の間の一様乱数を生成する生成処理、中心が原点である前記1次元格子上の離散ガウス分布である第4離散分布において確率変数が前記所定の区間内の値になる確率である第4確率以下の一様乱数が生成されると前記乱数の生成方法に前記第4離散分布を定める函数の値が用いられる累積法を選択する第3選択処理、および前記第4確率よりも大きい一様乱数が生成されると前記乱数の生成方法に棄却サンプリング法を選択する第4選択処理を実行させるための乱数生成プログラム。
10、100、910、920 乱数生成システム
11 生成手段
12 選択手段
110 生成方法選択装置
111 区間一様乱数生成手段
112 生成方法選択手段
120 棄却サンプリング装置
121、131 一様乱数生成手段
122 棄却判定手段
130 累積法サンプリング装置
132 探索手段
133 記憶手段
134 出力手段
911 記憶装置
912 探索器
913、922 一様乱数生成器
921 棄却判定器
923 出力装置

Claims (6)

  1. 中心が正の値である1次元格子上の離散ガウス分布である第1離散分布に従う乱数を生成する乱数生成システムであって、
    前記第1離散分布において確率変数が正の範囲における所定の区間内の値になる確率である第1確率と0の間の一様乱数を生成する生成手段と、
    中心が原点である前記1次元格子上の離散ガウス分布である第2離散分布において確率変数が前記所定の区間内の値になる確率である第2確率以下の一様乱数が生成されると前記乱数の生成方法に前記第2離散分布を定める函数の値が用いられる累積法を選択し、前記第2確率よりも大きい一様乱数が生成されると前記乱数の生成方法に棄却サンプリング法を選択する選択手段とを含む
    ことを特徴とする乱数生成システム。
  2. 第2離散分布を定める函数の値が用いられる累積法で1次元格子上の離散ガウス分布に従う乱数を生成する累積法生成手段を含み、
    選択手段は、累積法が選択された後に前記累積法生成手段に乱数の生成を指示し、
    前記累積法生成手段は、指示を受けて乱数を生成する
    請求項1記載の乱数生成システム。
  3. 累積法生成手段は、第2離散分布を定める函数の値が記憶されている記憶手段を有する
    請求項2記載の乱数生成システム。
  4. 棄却サンプリング法で1次元格子上の離散ガウス分布に従う乱数を生成する棄却サンプリング法生成手段を含み、
    選択手段は、棄却サンプリング法が選択された後に前記棄却サンプリング法生成手段に乱数の生成を指示し、
    前記棄却サンプリング法生成手段は、指示を受けて乱数を生成する
    請求項1から請求項3のうちのいずれか1項に記載の乱数生成システム。
  5. 中心が正の値である1次元格子上の離散ガウス分布である第1離散分布に従う乱数を生成する乱数生成システムで実行される乱数生成方法であって、
    前記第1離散分布において確率変数が正の範囲における所定の区間内の値になる確率である第1確率と0の間の一様乱数を生成し、
    中心が原点である前記1次元格子上の離散ガウス分布である第2離散分布において確率変数が前記所定の区間内の値になる確率である第2確率以下の一様乱数が生成されると前記乱数の生成方法に前記第2離散分布を定める函数の値が用いられる累積法を選択し、
    前記第2確率よりも大きい一様乱数が生成されると前記乱数の生成方法に棄却サンプリング法を選択する
    ことを特徴とする乱数生成方法。
  6. 中心が正の値である1次元格子上の離散ガウス分布である第1離散分布に従う乱数を生成するコンピュータで実行される乱数生成プログラムであって、
    前記コンピュータに、
    前記第1離散分布において確率変数が正の範囲における所定の区間内の値になる確率である第1確率と0の間の一様乱数を生成する生成処理、
    中心が原点である前記1次元格子上の離散ガウス分布である第2離散分布において確率変数が前記所定の区間内の値になる確率である第2確率以下の一様乱数が生成されると前記乱数の生成方法に前記第2離散分布を定める函数の値が用いられる累積法を選択する第1選択処理、および
    前記第2確率よりも大きい一様乱数が生成されると前記乱数の生成方法に棄却サンプリング法を選択する第2選択処理
    を実行させるための乱数生成プログラム。
JP2019535457A 2017-08-07 2017-08-07 乱数生成システム、乱数生成方法および乱数生成プログラム Active JP6870738B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/028584 WO2019030799A1 (ja) 2017-08-07 2017-08-07 乱数生成システム、乱数生成方法および乱数生成プログラム

Publications (2)

Publication Number Publication Date
JPWO2019030799A1 JPWO2019030799A1 (ja) 2020-07-02
JP6870738B2 true JP6870738B2 (ja) 2021-05-12

Family

ID=65271211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019535457A Active JP6870738B2 (ja) 2017-08-07 2017-08-07 乱数生成システム、乱数生成方法および乱数生成プログラム

Country Status (3)

Country Link
US (1) US11327719B2 (ja)
JP (1) JP6870738B2 (ja)
WO (1) WO2019030799A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019157503A1 (en) 2018-02-12 2019-08-15 Massachusetts Institute Of Technology Systems and methods for providing secure communications using a protocol engine
WO2020172234A1 (en) * 2019-02-19 2020-08-27 Massachusetts Institute Of Technology Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques
US11591494B2 (en) 2019-03-18 2023-02-28 Hewlett-Packard Development Company, L.P. Three-dimensional printing with epoxy and amine compounds

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324558B1 (en) * 1995-02-14 2001-11-27 Scott A. Wilber Random number generator and generation method
US6539410B1 (en) * 1999-03-17 2003-03-25 Michael Jay Klass Random number generator
JP2000276459A (ja) 1999-03-26 2000-10-06 Fujitsu Ltd 学習による変換関数を用いた乱数発生装置,乱数発生方法および乱数発生システム
EP2260421A2 (en) * 2008-03-04 2010-12-15 Massachusetts Institute of Technology Combinational stochastic logic
KR101443575B1 (ko) 2013-04-29 2014-09-23 한국전자통신연구원 이진 난수열을 정수 난수로 변환하는 장치 및 방법
US20170220322A1 (en) 2016-01-28 2017-08-03 International Business Machines Corporation Generating gaussian random numbers using inverse sampling and recurrence relationship

Also Published As

Publication number Publication date
JPWO2019030799A1 (ja) 2020-07-02
WO2019030799A1 (ja) 2019-02-14
US20200371751A1 (en) 2020-11-26
US11327719B2 (en) 2022-05-10

Similar Documents

Publication Publication Date Title
Micciancio et al. A deterministic single exponential time algorithm for most lattice problems based on Voronoi cell computations
Wu et al. Sparse logistic regression learns all discrete pairwise graphical models
Teh et al. Parallel chaotic hash function based on the shuffle-exchange network
JP6870738B2 (ja) 乱数生成システム、乱数生成方法および乱数生成プログラム
KR20160132943A (ko) 단열 양자 계산을 통한 디지털 로직 제한 문제 해결
Csiba et al. Global Convergence of Arbitrary-Block Gradient Methods for Generalized Polyak-{\L} ojasiewicz Functions
Liu et al. Improved particle swarm optimization algorithm using design of experiment and data mining techniques
Patvardhan et al. Quantum-inspired evolutionary algorithm for difficult knapsack problems
Lim et al. Particle swarm optimization and hill climbing for the bandwidth minimization problem
Potii et al. Post quantum hash based digital signatures comparative analysis. Features of their implementation and using in public key infrastructure
US11216533B2 (en) Inverse-image sampling device, inverse-image sampling method, and inverse-image sampling program
Wu et al. Finding tree symmetries using continuous-time quantum walk
WO2019092804A1 (ja) 乱数生成システム、乱数生成方法および乱数生成プログラム
CN111194448A (zh) 伪数据生成装置及其方法和程序
US20240039693A1 (en) Encryption processing device, encryption processing method, and encryption processing program
Toulias et al. Generalizations of entropy and information measures
Greiner et al. The efficiency of mapreduce in parallel external memory
Khajavi et al. The goodness of covariance selection problem from AUC bounds
Teytaud et al. On the ultimate convergence rates for isotropic algorithms and the best choices among various forms of isotropy
JP5736336B2 (ja) 行列ベクトル積演算装置、行列ベクトル積演算方法、及び行列ベクトル積演算プログラム
JP6967422B2 (ja) 計算機及び計算方法
Ćirić et al. Fuzziness in automata theory: why? How?
Xiao et al. Efficient Implementation of discrete Gaussian sampling for Lattice-based Cryptography using JavaScript
Ablayev et al. Computing quantum hashing in the model of quantum branching programs
JP5276526B2 (ja) ビット列生成装置、ビット列生成方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200109

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: 20210316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210329

R150 Certificate of patent or registration of utility model

Ref document number: 6870738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150