CN107209660B - 随机数生成装置、随机数生成方法 - Google Patents

随机数生成装置、随机数生成方法 Download PDF

Info

Publication number
CN107209660B
CN107209660B CN201680005553.3A CN201680005553A CN107209660B CN 107209660 B CN107209660 B CN 107209660B CN 201680005553 A CN201680005553 A CN 201680005553A CN 107209660 B CN107209660 B CN 107209660B
Authority
CN
China
Prior art keywords
column
random number
subcolumns
bit
bits
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
CN201680005553.3A
Other languages
English (en)
Other versions
CN107209660A (zh
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN107209660A publication Critical patent/CN107209660A/zh
Application granted granted Critical
Publication of CN107209660B publication Critical patent/CN107209660B/zh
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
    • 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
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

随机数获取单元(15)得到将以二进制数表示的随机数的各位的值包含于要素的第一列。逻辑与运算单元(16)得到该第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的第二列之间的要素单位的逻辑与运算结果、即第三列。

Description

随机数生成装置、随机数生成方法
技术领域
本发明涉及随机数生成技术,特别涉及生成属于规定的集合的随机数的技术。
背景技术
存在生成n个随机比特,对与将该n个随机比特设为各位的值的二进制数表示值对应的十进制数表示值a和p-1进行大小判定,若a>p-1则重新进行处理,否则采用a作为随机数的随机数生成方法(例如参照非专利文献 1)。若将p设为素数,则可以生成素域上的随机数。
[现有技术文献]
[非专利文献]
[非专利文献1]:ヨハネスブーフマン、「暗号理論入門―暗号アルゴリズム、署名と認証、その数学的基礎」、シュプリンガー·フェアラーク東京、 2001年7月、P114.
发明内容
发明要解决的课题
在上述的方法中,在对于n以二进制数表示p时的要素数小时,随机数的生成概率极度下降,导致随机数的生成速度下降。
本发明的课题在于,高速地生成属于规定的集合的随机数。
用于解决课题的方案
得到将以二进制数表示的随机数的各位的值包含于要素的第一列,得到该第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的第二列之间的要素单位的逻辑与运算结果、即第三列。
发明效果
由此,能够高速地生成属于规定的集合的随机数。
附图说明
图1是例示了实施方式的随机数生成装置的功能结构的框图。
图2A是例示了实施方式的随机数生成方法的流程图。图2B是例示了等号判定处理的流程图。
图3A~图3C是例示了实施方式的第一~三列的图。
具体实施方式
以下,说明本发明的实施方式。
[概要]
在实施方式中,如以下那样生成属于规定的集合的随机数。首先,得到将以二进制数表示的随机数(二进制随机数)的各位的值包含于要素的“第一列”(随机数获取步骤)。该随机数可以是均匀随机数,也可以不是均匀随机数。再者,“随机数”的概念包含真随机数及伪随机数。随机数可以预先生成,也可以在得到“第一列”时生成。“第一列”可以仅将以二进制数表示的随机数的各位的值作为要素,也可以进一步包含除此以外的要素。接着,得到“第一列”和“第二列”的要素单位的逻辑与运算结果(各要素的与(AND) 运算结果,例如比特与运算结果)、即“第三列”(逻辑与运算步骤)。其中,“第二列”是将以二进制数表示的单个或者多个梅森数pi(其中,i=0、…、 N-1,N是1以上的整数)的各位的值以及零值包含于要素的列。“第二列”的要素数例如与“第一列”的要素数相同。“第二列”可以仅将梅森数pi的各位的值以及零值作为要素,也可以进一步包含除此以外的要素(例如固定值、属性信息等)。梅森数pi是满足2n(i)-1的整数,以二进制数表示的梅森数pi是由n(i)个1构成的列1…1。其中,n(i)是特定的正整数。pi的一个例子是梅森素数,例如在n(i)=2、3、5、7、13、17、19、31、61等时pi成为梅森素数。“第三列”是用“第二列”对“第一列”进行掩盖后的列,是包含以二进制数表示的位数为n(i)的随机数ti的列。这样的随机数ti能够处理为以梅森数pi为模的剩余环(剩余类)上的随机数。特别地,若pi是梅森素数,则随机数ti能够处理为以梅森素数pi为模的剩余域(素域)上的随机数。在以pi为模的剩余环上,pi=2n(i)-1和0是相同的值(2n(i)-1mod(2n(i)-1)=0),“第三列”所包含的N个随机数ti(其中,i=0、…、N-1)“必定”可以处理为以pi为模的剩余环上的随机数。因此,与随机数的生成概率因环境而下降的现有技术相比,能够高速地生成剩余环上的随机数。
但是,在以pi为模的剩余环中pi和0被处理为相同的值(0是pi的等价类),所以随机数ti不限于成为均匀随机数。即,在“第一列”所表示的随机数是均匀随机数的情况下,ti成为0、1、…、pi的概率分别为1/2n(i),ti成为 pi或者0的概率为1/2n(i)-1。因此,在上述剩余环上,0的生成概率(换言之, pi的生成概率)为1/2n(i)-1,其他随机数的生成概率为1/2n(i)。为了得到剩余环上的均匀随机数,在成为了ti=pi的情况下,废弃所生成的随机数,并重新进行随机数获取步骤及逻辑与运算步骤即可。换言之,“第一列”包含“第一子列”,“第二列”所包含的“第二子列”表示任意的梅森数pi,“第三列”包含“第一子列”和“第二子列”的要素单位的逻辑与运算结果、即“第三子列”,在“第二子列”和“第三子列”一致的情况下再次执行随机数获取步骤及逻辑与运算步骤的处理即可。在上述结构中,成为ti=pi的概率(“第二子列”和“第三子列”一致的概率)也是1/2n(i)-1左右,能够高速地生成剩余环上的均匀随机数。
或者,也可以在成为ti=0的情况下重新进行随机数获取步骤及逻辑与运算步骤。换言之,也可以在“第三子列”的要素由零构成的情况(“第三子列”为零向量的情况)下再次执行随机数获取步骤及逻辑与运算步骤的处理。由此,也能够高速地生成剩余环上的均匀随机数。
此外,在将N设为2以上的整数、将“第二列”设为将以二进制数表示的多个梅森数pi的各位的值以及零值包含于要素的列的情况下,能够通过并行处理来生成多个剩余环上的随机数,能够更高速地生成随机数。以二进制数表示的梅森数pi的位数(比特长度)n(i)可以彼此相同,也可以不相同。
在通过这样的并行处理来生成剩余环上的均匀随机数的情况下,也可以是,(1)通过集中等号判定,对i=0、…、N-1集中地进行是否成为ti=pi的判定,(2)通过这些等号判定结果xi(其中,i=0、…、N-1)的或运算或者与运算,对任意的i得到表示是否成为ti=pi的聚合判定结果x,(3)在聚合判定结果x对任意的i表示成为ti=pi的情况下重新进行随机数获取步骤及逻辑与运算步骤。换言之,也可以是,(1)通过集中等号判定来得到表示多个“第二子列”中的每个和多个“第三子列”中的每个是否一致的多个等号判定结果xi(其中,i=0、…、N-1)的每一个,(2)通过多个等号判定结果xi的或运算或者与运算来得到表示任意的“第二子列”和“第三子列”是否一致的聚合判定结果x,(3)在聚合判定结果x表示任意的“第二子列”和“第三子列”一致的情况下,再次执行随机数获取步骤及逻辑与运算步骤的处理。其中,“第一列”包含多个“第一子列”,“第二列”所包含的多个“第二子列”的每一个表示多个梅森数pi的各位的值,“第三列”包含多个“第三子列”,多个“第三子列”的每个是多个“第一子列”中的每个和多个“第二子列”中的每个的要素单位的逻辑与运算结果ti。这里,集中等号判定、或运算、与运算的运算量较小。此外,如上述,成为ti=pi的概率是1/2n (i)-1左右,对任意的i,成为ti=pi的可能性小。因此,能够更高速地生成剩余环上的均匀随机数。
或者,也可以是,(4)通过集中等号判定,对i=0、…、N-1集中地进行是否成为ti=0的判定,(5)通过这些等号判定结果xi(其中,i=0、…、N -1)的或运算或者与运算,对任意的i得到表示是否成为ti=0的聚合判定结果x,(6)在聚合判定结果x对任意的i表示成为ti=0的情况下重新进行随机数获取步骤及逻辑与运算步骤。换言之,也可以是,(4)通过集中等号判定来得到表示多个“第三子列”的每个的要素是否由零构成的多个等号判定结果xi(其中,i=0、…、N-1)的每一个,(5)通过多个等号判定结果xi的或运算或者与运算来得到表示任意的“第三子列”的要素是否由零构成的聚合判定结果x,(6)在聚合判定结果x表示任意的“第三子列”的要素由零构成的情况下,再次执行随机数获取步骤及逻辑与运算步骤的处理。在该情况下,也能够高速地生成剩余环上的均匀随机数。
[第一实施方式]
接着,说明第一实施方式。在本方式中,说明pi为梅森素数的情况。
<结构>
如图1所例示的,本方式的随机数生成装置1具有二进制随机数生成单元11、存储单元12、输入单元13、掩码生成单元14、随机数获取单元15、逻辑与运算单元16、以及输出单元18。随机数生成装置1例如是通过由包括 CPU(central processing unit,中央处理单元)等的处理器(硬件/处理器)、 RAM(random-access memory,随机存取存储器)/ROM(read-only memory,只读存储器)等的存储器等的通用或者专用的计算机执行规定的程序而构成的装置。该计算机可以包括1个处理器、存储器,也可以包括多个处理器、存储器。该程序可以安装于计算机,也可以预先记录于ROM等。此外,也可以不利用如CPU那样通过读入程序而实现功能结构的电路(circuitry),而利用不用程序就实现处理功能的电路来构成一部分或者全部的处理单元。此外,构成1个装置的电路也可以包含多个CPU。
<处理>
在本方式中,将“第一列”、“第二列”、“第三列”处理为分别由L个要素构成的向量,假设随机数生成装置1是以L比特精度进行运算的随机数生成装置。此外,L是比以二进制数表示的梅森素数p0、…、pN-1的合计要素数n(0)+…+n(N-1)更大的正整数。L可以是常数,也可以根据被输入的梅森素数p0、…、pN-1来确定。在所假定的梅森素数p0、…、pN-1的大小被预先确定的情况下,能够将L设为常数。
如图2A所例示的,首先,对梅森素数p0、…、pN-1进行确定的信息被输入到输入单元13。该信息的例子是梅森素数p0、…、pN-1本身或n(0)、…、 n(N-1)等。对梅森素数p0、…、pN-1进行确定的信息被发送到掩码生成单元 14(步骤S13)。
掩码生成单元14得到由L个要素构成的向量M∈{0,1}L(第二列),并输出,其中,该L个要素将以二进制数表示的梅森素数p0、…、pN-1的各位的值以及零值包含于要素。在图3A~3C中示出向量M的具体例。图3A的例子是n(0)=…=n(N-1)=7的例子。就该例的向量M而言,起始的z个(其中,z=L-(n(0)+…+n(N-1)))的要素为零,其余的要素全部为1。换言之,在由起始的z个0构成的子列zero之后,配置有以二进制数表示的梅森素数 pN-1、…、p0。图3B的例子也是n(0)=…=n(N-1)=7的例子。但是,在该例中,在1个0的要素zero之后配置有以二进制数表示的1个梅森素数pi(其中,i=N-1、…、0),交替地配置有0和以二进制数表示的梅森素数pi。在图3C中,在由起始的z个0构成的子列zero之后,配置有由二进制数表示的梅森素数pN-1、…、p0。但是,梅森素数pN-1、…、p0并不全都相同。此外,在图3B的例子中,梅森素数pN-1、…、p0也可以不全都相同。所生成的向量M被发送到逻辑与运算单元16(步骤S14)。
随机数获取单元15判定存储单元12中是否残留有由L个要素构成的L 比特的二进制随机数向量r∈{0,1}L(第一列)(步骤S12)。在残留有二进制随机数向量r的情况下,随机数获取单元15从存储单元12读出二进制随机数向量r,并输出(步骤S15)。被读出的二进制随机数向量r被从存储单元 12中删除。另一方面,在未残留二进制随机数向量r的情况下,二进制随机数生成单元11生成L比特的二进制随机数向量r∈{0,1}L,存储到存储单元 12中,随机数获取单元15从存储单元12读出二进制随机数向量r,并输出 (步骤S15)。再者,为了处理的高速化,期望二进制随机数生成单元11通过并行处理来生成多个二进制随机数向量r,存储到存储单元12中。所输出的二进制随机数向量r被发送到逻辑与运算单元16。
逻辑与运算单元16进行二进制随机数向量r和向量M的要素单位的逻辑与运算(比特与运算),得到其运算结果、即向量t∈{0,1}L(第三列),并输出。在向量M的第j要素(其中,j=0、…、L-1)为零的情况下,向量 t的第j要素成为零,在向量M的第j要素为1的情况下,向量t的第j要素成为二进制随机数向量r的第j要素。即,向量t是用向量M对二进制随机数向量r进行掩盖得到的向量。将与向量M所包含的以二进制数表示的梅森素数pi的要素列(子列)对应的向量t的要素列表示为子列ti。例如,在以二进制数表示的梅森素数pi是向量M的从第j1要素起至第j2要素为止的要素列的情况下,子列ti是向量t的从第j1要素起至第j2要素为止的要素列。例如,在图3A的例子的情况下,二进制随机数向量r的起始的z个要素是由(rN,z-1,···,rN,0)∈{0,1}z构成的子列rN。其中,向量M的起始的z个要素全部为零,所以向量t的起始的z个要素也全部为零。之后的向量M的要素全部为1,所以向量t的之后的子列tN-1、…、t0(其中,ti是由ti,6、···、 ti,0∈{0,1}7构成的子列)是二进制随机数向量r的子列rN-1、…、r0(其中, ri是由ri,6、···、ri,0∈{0,1}7构成的子列)。例如,在图3B的例子的情况下,二进制随机数向量r由子列rN-1、…、r0(其中,ri是由ri,7、···、ri,0∈{0,1}7构成的子列)构成。向量M具有N个由0和1111111构成的子列 01111111,所以向量t的子列tN-1、…、t0(其中,ti是由ti,6、···、ti,0∈{0, 1}7构成的子列)是二进制随机数向量r的子列rN-1、…、r0(其中,ri是由ri,6、···、 ri,0∈{0,1}7构成的子列)。例如,在图3C的例子的情况下,向量M的起始的z个要素全部为零,其余的要素全部为1。因此,向量t的起始的z个要素全部为零,之后的子列tN-1、…、t0是二进制随机数向量r的子列rN-1、…、 r0。所得到的向量t被发送到输出单元18(步骤S16)。
输出单元18可以将向量t直接输出,也可以仅输出向量t所包含的子列 tN-1、…、t0。子列ti(其中,i=0、…、N-1)分别被处理为以梅森素数pi为模的剩余域(素域)上的随机数(步骤S18)。在进一步需要素域上的随机数的情况下,反复进行从步骤S13至S18的处理或者S11~S18的处理即可。
<本方式的特征>
在像以往那样通过二进制随机数向量r所表示的值和素数p的大小判定来生成素域上的随机数的情况下,若相对于二进制随机数向量r的要素数L,以二进制数表示p时的要素数小,则该素域上的随机数的生成概率极度下降,导致随机数的生成速度下降。例如,在二进制随机数向量r表示均匀随机数,以二进制数表示p时的要素数为L-1的情况下,若p是梅森素数,则该素域上的随机数的生成概率成为50%,若p是除梅森素数以外的素数,则生成概率小于50%。在进行并行处理的情况下,该生成概率进一步下降。例如,在成功概率为50%左右时,若试图并行地进行1000个素数生成,则失败概率成为99.9%左右,几乎不会成功,性能极度下降。
与此相对,在本方式中,能够可靠地生成素域上的随机数,所以能够高速地生成素数域上的随机数。进一步,即使并行地集中进行每个要素的逻辑与运算(N≥2)来进行随机数生成,成功概率也不会下降,所以能够通过这样的并行处理来更高速地生成素域上的随机数。此外,许多计算机能够并行地高速地处理比特与运算(每个要素的逻辑与运算),能够高效地实现本方式的方法。进一步,能够由L比特的寄存器来执行本方式的比特与运算,与以往那样进行大小比较的情况相比能够削减存储容量。
[第二实施方式]
本方式中生成素域上的均匀随机数。以下,以与到此为止说明过的事项的不同点为中心进行说明,对已经说明过的事项,引用与之相同的参照编号而省略说明。
<结构>
如图1所例示的,本方式的随机数生成装置2具有二进制随机数生成单元11、存储单元12、输入单元13、掩码生成单元14、随机数获取单元15、逻辑与运算单元16、判定单元27、以及输出单元18。随机数生成装置2例如可以通过将规定的程序读入上述的计算机来构成,也可以仅由硬件来构成至少一部分的要素。
<处理>
步骤S11~S16的处理与第一实施方式相同。但是,在第二实施方式中,输入到输入单元13的梅森素数pi以及在步骤S16中得到的向量t被输入到判定单元27。判定单元27判定向量t所包含的任意的子列ti和梅森素数pi(其中,i=0、…、N-1)是否一致(等号判定)(步骤S27)。在对任意的i=0、…、 N-1,ti=pi的情况下,判定单元27废弃向量t(t不合格),将处理返回到步骤S12。另一方面,在对全部的i=0、…、N-1,ti≠pi的情况下,向量t被发送到输出单元18(t合格)。以后与第一实施方式相同。
再者,步骤S27的等号判定也可以对每个i独立地进行,但是也可以如图2B所例示的那样集中处理。在图2B的例子中,判定单元27的集中等号判定单元对全部的i=0、…、N-1集中地进行是否ti=pi的等号判定(集中等号判定),得到等号判定结果xi的列。其中,在ti=pi的情况下xi=2k-1,在ti≠pi的情况下xi=0。再者,k为正整数,满足0<k×N≤L(步骤S271)。接着,判定单元27的聚合运算单元进行等号判定结果xi(其中,i=0、…、N- 1)的聚合或运算(OR运算),得到其运算结果、即聚合判定结果x。其中,在任意的等号判定结果xi(其中,i=0、…、N-1)为2k-1的情况(非0的情况)下x=2k’-1,在全部的等号判定结果xi(其中,i=0、…、N-1)为0 的情况下x=0。再者,k’为正整数,满足0<k’≤L。可以是k=k’,也可以是 k≠k’(步骤S272)。然后,判定单元27的聚合判定单元判定是否x=0(步骤S273)。这里,若x=2k-1则聚合判定单元废弃向量t(t不合格)(步骤 S274),将处理返回到步骤S12。另一方面,若x=0则聚合判定单元将向量t 发送到输出单元18(t合格)(步骤S275)。
另外,也可以是,集中等号判定单元在ti=pi的情况下设为xi=0,在ti≠ pi的情况下设为xi=2k-1,聚合运算单元进行xi(其中,i=0、…、N-1)的聚合与运算(AND运算),得到其运算结果、即聚合判定结果x。其中,在任意的等号判定结果xi(其中,i=0、…、N-1)为0的情况下x=0,在全部的等号判定结果xi(其中,i=0、…、N-1)为2k-1的情况下x=2k’-1。在该情况下,若x=0则聚合判定单元废弃向量t(t不合格),将处理返回到步骤 S12。另一方面,若x=2k-1则聚合判定单元将向量t发送到输出单元18(t 合格)。
<本方式的特征>
如前述,若二进制随机数向量r表示均匀随机数,则子列ti分别成为以梅森素数pi为模的剩余域(素域)上的均匀随机数。成为ti=pi的概率是1/2n(i)-1左右,不论L的大小如何,成功概率均高。本方式也大致可靠地成功地生成随机数,所以即使并行地集中进行子列ti(其中,i=0、…、N-1)的等号判定,成功概率也几乎不会下降,在步骤S27中成为不合格的概率低。例如,在p=261-1(即n(i)=61)时,1000个并行的集中生成失败的概率为1/251,充分低,重新进行的开销(overhead)极小。因此,若如上述那样集中处理步骤S27的等号判定,则能够更高速地得到素域上的均匀随机数。即,上述的集中等号判定、聚合或运算(或者聚合与运算)的运算成本低。例如在L=256 的情况下,许多计算机能够用1个时钟来处理这些处理。此外,当前的许多计算机具有分支预测功能,在进行分支计算前,实绩多的计算机的分支先开始处理,所以若重新进行的概率低,则条件分支实际上成为0时钟。此外,掩码即向量M∈{0,1}L所包含的梅森素数p0、…、pN-1与等号判定基准一致,所以可以将为了掩码处理而预先存储了向量M的寄存器还用于等号判定处理,能够用少的寄存器来实现这些处理。此外,等号判定与现有方式所使用的大小比较相比还具有效率高的优点(对比特数n,大小比较为电路规模O(n) /深度O(n)或者电路规模O(nlogn)/深度O(logn),与此相对,等号判定为电路规模O(n)/深度O(logn))。
[第三实施方式]
本方式也生成素域上的均匀随机数。以下,以与到此为止说明过的事项的不同点为中心进行说明,对已经说明过的事项,引用与之相同的参照编号而省略说明。
<结构>
如图1所例示的,本方式的随机数生成装置3具有二进制随机数生成单元11、存储单元12、输入单元13、掩码生成单元14、随机数获取单元15、逻辑与运算单元16、判定单元37、以及输出单元18。随机数生成装置3例如可以通过将规定的程序读入上述的计算机来构成,也可以仅由硬件来构成至少一部分的要素。
<处理>
步骤S11~S16的处理与第一实施方式相同。但是,在第三实施方式中,在步骤S16中得到的向量t被输入到判定单元37。判定单元37判定向量t所包含的任意的子列ti是否为零向量(ti=0)(步骤S37)。在对任意的i=0、…、 N-1,ti=0的情况下,判定单元37废弃向量t(t不合格),将处理返回到步骤S12。另一方面,在对全部的i=0、…、N-1,ti≠0的情况下,向量t被发送到输出单元18(t合格)。以后与实施方式1相同。
再者,与第二实施方式同样地,步骤S37的等号判定也可以对每个i独立地进行,但是也可以如图2B所例示的那样集中处理。在图2B的例子中,判定单元37的集中等号判定单元对全部的i=0、…、N-1集中地进行是否ti=0 的等号判定(集中等号判定),得到等号判定结果xi的列。其中,在ti=0的情况下xi=2k-1,在ti≠0的情况下xi=0(步骤S371)。之后的步骤S272~S275 与第二实施方式相同。
另外,也可以是,集中等号判定单元在ti=0的情况下设为xi=0,在ti≠0 的情况下设为xi=2k-1,聚合运算单元进行xi(其中,i=0、…、N-1)的聚合与运算(AND运算),得到其运算结果、即聚合判定结果x。其中,在任意的等号判定结果xi(其中,i=0、…、N-1)为0的情况下x=0,在全部的等号判定结果xi(其中,i=0、…、N-1)为2k-1的情况下x=2k’-1。在该情况下,若x=0则聚合判定单元废弃向量t(t不合格),将处理返回到步骤S12。另一方面,若x=2k-1则聚合判定单元将向量t发送到输出单元18(t合格)。
<本方式的特征>
本方式也与第二实施方式同样地能够高速地生成素域上的均匀随机数。
[其他变形例等]
再者,本发明不限定于上述的实施方式。例如,也可以预先将梅森素数 pi设定于随机数生成装置。在该情况下,能够省略步骤S13及输入单元13。进而,也可以预先将向量M设定于随机数生成装置。在该情况下,能够进一步省略步骤S14及掩码生成单元14。此外,也可以预先将二进制随机数向量 r存储到存储单元12中。此外,也可以使用作为合数的梅森数来取代梅森素数。例如,梅森数p0、…、pN-1可以全部是合数,梅森数p0、…、pN-1也可以包含素数和合数。
上述的各种处理不仅可以按照记载以时序予以执行,也可以与执行处理的装置的处理能力或者需要相应地并行地或者单独地予以执行。另外,不言而喻,在不脱离本发明的宗旨的范围可以适当地变更。
在由计算机来实现上述的结构的情况下,由程序来记述各装置所应该具有的功能的处理内容。通过由计算机来执行该程序,在计算机上实现上述处理功能。记述了该处理内容的程序能够预先记录于计算机可读取的记录介质。计算机可读取的记录介质的例子是非临时性(non-transitory)的记录介质。这样的记录介质的例子是磁记录装置、光盘、光磁记录介质、半导体存储器等。
该程序的流通例如是通过对记录了该程序的DVD、CD-ROM等的移动式记录介质进行销售、转让、租赁等而进行。进一步,也可以设为通过将该程序预先存储到服务器计算机的存储装置,经由网络从服务器计算机将该程序传送到其他计算机,从而使该程序流通的结构。
执行这样的程序的计算机例如首先将被记录在移动式记录介质中的程序或者从服务器计算机传送来的程序暂时存储到自身的存储装置中。在执行处理时,该计算机读取被存储在自身的记录装置中的程序,执行依据读取出的程序的处理。作为该程序的其他执行方式,也可以由计算机直接从移动式记录介质读取程序,执行依据该程序的处理,进一步,也可以是,每当程序被从服务器计算机传送到该计算机时,逐次执行依据所接收到的程序的处理。也可以设为通过所谓ASP(Application Service Provider)型的服务来执行上述的处理的结构,该ASP型的服务是指,不进行从服务器计算机向该计算机的程序的传送,仅通过其执行指示和结果获取来实现处理功能。
在上述实施方式中,在计算机上执行规定的程序来实现了本装置的处理功能,但是也可以由硬件来实现这些处理功能的至少一部分。
工业实用性
本发明例如可以利用于秘密分散、秘密计算、公钥加密、对称密钥加密、电子署名等的各种加密技术。
标号说明
1~3随机数生成装置。

Claims (15)

1.一种用于电子加密系统的随机数生成装置,具有:
随机数获取单元,得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算单元,得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第一列包含第一子列,所述第二列所包含的第二子列表示任意的所述梅森数,所述第三列包含所述第一子列和所述第二子列的要素单位的比特与(AND)运算结果、即第三子列,在所述第二子列和所述第三子列一致的情况下再次执行所述随机数获取单元及所述逻辑与运算单元的处理,其中,L为正整数。
2.如权利要求1所述的随机数生成装置,
所述梅森数的至少一部分是梅森素数。
3.一种用于电子加密系统的随机数生成装置,
随机数获取单元,得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算单元,得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第一列包含第一子列,所述第二列所包含的第二子列表示任意的所述梅森数,所述第三列包含所述第一子列和所述第二子列的要素单位的比特与(AND)运算结果、即第三子列,在所述第三子列的要素由零构成的情况下再次执行所述随机数获取单元及所述逻辑与运算单元的处理,
其中,L为正整数。
4.如权利要求3所述的随机数生成装置,
所述梅森数的至少一部分是梅森素数。
5.一种用于电子加密系统的随机数生成装置,
随机数获取单元,得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算单元,得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第二列包含所述多个梅森数的各位的值,
所述多个梅森数均为梅森素数,
其中,L为正整数。
6.一种用于电子加密系统的随机数生成装置,
随机数获取单元,得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算单元,得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第二列包含所述多个梅森数的各位的值,
所述第一列包含多个第一子列,所述第二列所包含的多个第二子列的每一个表示所述多个梅森数的各位的值,所述第三列包含多个第三子列,所述多个第三子列分别是所述多个第一子列的每一个和所述多个第二子列的每一个之间的要素单位的比特与(AND)运算结果,
所述随机数生成装置具有判定单元,该判定单元通过集中等号判定来得到表示所述多个第二子列的每一个和所述多个第三子列的每一个是否一致的多个等号判定结果的每一个,通过所述多个等号判定结果的或运算或者与运算来得到表示任意的所述第二子列和所述第三子列是否一致的聚合判定结果,在所述聚合判定结果表示任意的所述第二子列和所述第三子列一致的情况下,使所述随机数获取单元及所述逻辑与运算单元的处理再次执行,
其中,L为正整数。
7.如权利要求6所述的随机数生成装置,
所述梅森数的至少一部分是梅森素数。
8.一种用于电子加密系统的随机数生成装置,
随机数获取单元,得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算单元,得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第二列包含所述多个梅森数的各位的值,
所述第一列包含多个第一子列,所述第二列所包含的多个第二子列的每一个表示所述多个梅森数的各位的值,所述第三列包含多个第三子列,所述多个第三子列分别是所述多个第一子列的每一个和所述多个第二子列的每一个之间的要素单位的比特与(AND)运算结果,
所述随机数生成装置具有判定单元,该判定单元通过集中等号判定来得到表示所述多个第三子列的每一个的要素是否由零构成的多个等号判定结果的每一个,通过所述多个等号判定结果的或运算或者与运算来得到表示任意的所述第三子列的要素是否由零构成的聚合判定结果,在所述聚合判定结果表示任意的所述第三子列的要素由零构成的情况下,使所述随机数获取单元及所述逻辑与运算单元的处理再次执行,
其中,L为正整数。
9.如权利要求8所述的随机数生成装置,
所述梅森数的至少一部分是梅森素数。
10.一种用于电子加密系统的随机数生成方法,具有:
随机数获取步骤,随机数获取单元得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算步骤,逻辑与运算单元得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第一列包含第一子列,所述第二列所包含的第二子列表示任意的所述梅森数,所述第三列包含所述第一子列和所述第二子列的要素单位的比特与(AND)运算结果、即第三子列,在所述第二子列和所述第三子列一致的情况下再次执行所述随机数获取步骤及所述逻辑与运算步骤的处理,
其中,L为正整数。
11.一种用于电子加密系统的随机数生成方法,
随机数获取步骤,随机数获取单元得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算步骤,逻辑与运算单元得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第一列包含第一子列,所述第二列所包含的第二子列表示任意的所述梅森数,所述第三列包含所述第一子列和所述第二子列的要素单位的比特与(AND)运算结果、即第三子列,在所述第三子列的要素由零构成的情况下再次执行所述随机数获取步骤及所述逻辑与运算步骤的处理,
其中,L为正整数。
12.一种用于电子加密系统的随机数生成方法,
随机数获取步骤,随机数获取单元得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算步骤,逻辑与运算单元得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第二列包含所述多个梅森数的各位的值,
所述多个梅森数均为梅森素数,
其中,L为正整数。
13.一种用于电子加密系统的随机数生成方法,
随机数获取步骤,随机数获取单元得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算步骤,逻辑与运算单元得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第二列包含所述多个梅森数的各位的值,
所述第一列包含多个第一子列,所述第二列所包含的多个第二子列的每一个表示所述多个梅森数的各位的值,所述第三列包含多个第三子列,所述多个第三子列分别是所述多个第一子列的每一个和所述多个第二子列的每一个之间的要素单位的比特与(AND)运算结果,
所述随机数生成方法具有判定步骤,通过集中等号判定来得到表示所述多个第二子列的每一个和所述多个第三子列的每一个是否一致的多个等号判定结果的每一个,通过所述多个等号判定结果的或运算或者与运算来得到表示任意的所述第二子列和所述第三子列是否一致的聚合判定结果,在所述聚合判定结果表示任意的所述第二子列和所述第三子列一致的情况下,使所述随机数获取步骤及所述逻辑与运算步骤的处理再次执行,
其中,L为正整数。
14.一种用于电子加密系统的随机数生成方法,
随机数获取步骤,随机数获取单元得到将以二进制数表示的随机数的各位的值包含于要素的L比特的第一列;以及
逻辑与运算步骤,逻辑与运算单元得到所述第一列和将以二进制数表示的单个或者多个梅森数的各位的值以及零值包含于要素的L比特的第二列之间的要素单位的比特与(AND)运算结果、即第三列,
所述第二列包含所述多个梅森数的各位的值,
所述第一列包含多个第一子列,所述第二列所包含的多个第二子列的每一个表示所述多个梅森数的各位的值,所述第三列包含多个第三子列,所述多个第三子列分别是所述多个第一子列的每一个和所述多个第二子列的每一个之间的要素单位的比特与(AND)运算结果,
所述随机数生成方法具有判定步骤,通过集中等号判定来得到表示所述多个第三子列的每一个的要素是否由零构成的多个等号判定结果的每一个,通过所述多个等号判定结果的或运算或者与运算来得到表示任意的所述第三子列的要素是否由零构成的聚合判定结果,在所述聚合判定结果表示任意的所述第三子列的要素由零构成的情况下,使所述随机数获取步骤及所述逻辑与运算步骤的处理再次执行,
其中,L为正整数。
15.一种存储了程序的计算机可读取的记录介质,所述程序用于使计算机作为权利要求1至9的任意一项所述的随机数生成装置发挥作用。
CN201680005553.3A 2015-01-14 2016-01-13 随机数生成装置、随机数生成方法 Active CN107209660B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015-004886 2015-01-14
JP2015004886A JP5875717B1 (ja) 2015-01-14 2015-01-14 乱数生成装置、乱数生成方法、およびプログラム
PCT/JP2016/050803 WO2016114292A1 (ja) 2015-01-14 2016-01-13 乱数生成装置、乱数生成方法、およびプログラム

Publications (2)

Publication Number Publication Date
CN107209660A CN107209660A (zh) 2017-09-26
CN107209660B true CN107209660B (zh) 2021-09-03

Family

ID=55434697

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680005553.3A Active CN107209660B (zh) 2015-01-14 2016-01-13 随机数生成装置、随机数生成方法

Country Status (5)

Country Link
US (1) US10509630B2 (zh)
EP (1) EP3232319B1 (zh)
JP (1) JP5875717B1 (zh)
CN (1) CN107209660B (zh)
WO (1) WO2016114292A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193530B (zh) * 2017-04-28 2020-04-24 广州酷狗计算机科技有限公司 一种生成随机数的方法和装置
CN117519646B (zh) * 2024-01-08 2024-03-26 深圳市纽创信安科技开发有限公司 随机数据生成方法及装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54107640A (en) * 1978-02-08 1979-08-23 Ibm Random number generating digital data processor
JPS61281334A (ja) * 1985-06-07 1986-12-11 Nec Corp 素数判定器
JP2000122851A (ja) * 1998-10-12 2000-04-28 Mitsubishi Electric Corp 情報ランダム化方法とそのプログラムを記録した記憶媒体
JP2007178966A (ja) * 2005-12-27 2007-07-12 Shuichi Kamizono 擬似乱数を生成するアルゴリズム
CN103490885A (zh) * 2013-10-14 2014-01-01 北京华大信安科技有限公司 采用中国剩余定理的rsa的计算方法及计算装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0085130A1 (en) * 1982-02-02 1983-08-10 Omnet Associates Method and apparatus for maintaining the privacy of digital messages conveyed by public transmission
US6298360B1 (en) * 1995-05-26 2001-10-02 Sun Microsystems, Inc. Method and apparatus for generating a highly random number while using existing circuitry
JP4629300B2 (ja) * 2002-07-05 2011-02-09 富士通株式会社 暗号学的擬似乱数発生装置及びプログラム
WO2004031941A1 (ja) * 2002-09-30 2004-04-15 Fdk Corporation 物理乱数の一様化手法と物理乱数発生装置
US9207911B2 (en) * 2009-07-31 2015-12-08 Cassy Holdings Llc Modular uncertainty random value generator and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54107640A (en) * 1978-02-08 1979-08-23 Ibm Random number generating digital data processor
JPS61281334A (ja) * 1985-06-07 1986-12-11 Nec Corp 素数判定器
JP2000122851A (ja) * 1998-10-12 2000-04-28 Mitsubishi Electric Corp 情報ランダム化方法とそのプログラムを記録した記憶媒体
JP2007178966A (ja) * 2005-12-27 2007-07-12 Shuichi Kamizono 擬似乱数を生成するアルゴリズム
CN103490885A (zh) * 2013-10-14 2014-01-01 北京华大信安科技有限公司 采用中国剩余定理的rsa的计算方法及计算装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mersenne Twister Random Number Generation on FPGA, CPU and GPU;Xiang Tian等;《2009 NASA/ESA Conference on Adaptive Hardware and Systems》;IEEE;20091110;第460-463页 *
基于最大梅森素数的随机数;曹卫东;《江苏教育学院学报(自然科学版)》;20090930;第26卷(第3期);第1-4页 *

Also Published As

Publication number Publication date
EP3232319B1 (en) 2020-10-07
CN107209660A (zh) 2017-09-26
JP5875717B1 (ja) 2016-03-02
WO2016114292A1 (ja) 2016-07-21
EP3232319A1 (en) 2017-10-18
JP2016130939A (ja) 2016-07-21
EP3232319A4 (en) 2018-08-15
US10509630B2 (en) 2019-12-17
US20180011691A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
US11176084B2 (en) SIMD instruction sorting pre-sorted source register's data elements into a first ascending order destination register and a second descending destination register
EP3903247B1 (en) Method, apparatus and system for secure vertical federated learning
US8694979B2 (en) Efficient egonet computation in a weighted directed graph
US11595194B2 (en) Secure aggregate sum system, secure computation apparatus, secure aggregate sum method, and program
US11593362B2 (en) Secure aggregate function computation system, secure computation apparatus, secure aggregate function computation method, and program
CN111144576A (zh) 模型训练方法、装置和电子设备
WO2019208485A1 (ja) 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
CN115795000A (zh) 基于联合相似度算法对比的围标识别方法和装置
CN107209660B (zh) 随机数生成装置、随机数生成方法
Fang et al. SIFO: secure computational infrastructure using FPGA overlays
US20210377005A1 (en) Secure aggregate median system, secure computation apparatus, secure aggregate median method, and program
CN113536222A (zh) 系统局部字段矩阵更新的方法、系统和存储介质
CN106796765B (zh) 非减序列判定装置、非减序列判定方法以及记录介质
US10050775B2 (en) Element replication device, element replication method, and program
JP6713585B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体
CN111868805A (zh) 参数设定装置、运算装置、方法、程序、以及记录介质
US11521409B2 (en) Hybrid clustering and pairwise comparison document matching
JP6885467B2 (ja) シェア生成装置、シェア変換装置、秘密計算システム、シェア生成方法、シェア変換方法、プログラム、および記録媒体
CN110197383B (zh) 获取客户群的用户集的方法和装置
JP5875719B1 (ja) 乱数生成装置、乱数生成方法、およびプログラム
WO2020178736A1 (en) Quantum-resistant cryptoprocessing
US20240273219A1 (en) Secure computation apparatus, secure computation system, secure computation method, and program
US20230367905A1 (en) Obfuscated storage and transmission of personal identifiable information
JP5457940B2 (ja) 秘密計算システム、秘密計算方法
CN111712868A (zh) 检索装置、检索方法、程序以及记录介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant