随机数生成装置和随机数生成方法与流程

文档序号:15163768发布日期:2018-08-14 17:10阅读:257来源:国知局

本申请基于2017年2月7日提交的日本专利申请no.2017-020442并要求其优先权,其公开内容通过引用整体并入本文。

本发明涉及随机数生成装置和随机数生成方法,例如涉及用于使用物理现象的测量值生成随机数的随机数生成装置和随机数生成方法。



背景技术:

根据物理现象的测量值生成随机数的技术的示例包括在日本未审专利申请公开(pct申请的翻译)no.2005-526299中公开的技术。该文献中公开的随机数生成装置通过压缩装置压缩传感器的测量值,由此降低可预测性。该随机数生成装置将哈希函数应用于压缩数字值,从而产生随机数。



技术实现要素:

然而,在日本未审专利申请公开(pct申请的翻译)no.2005-526299中公开的技术压缩测量值并且计算压缩值的哈希值,因此所生成的随机数的位数小。因此,难以产生几乎不可预测并且具有足够位数的随机数。

从说明书和附图的描述,本发明的其它问题和新颖特征将变得显而易见。

根据一个实施例,一种随机数生成装置,包括:种子值生成器,其使用表示物理现象测量值的n(n是大于等于1的整数)位数字值中的n位(n是从1到n的整数)来产生用于随机数生成的种子值;和随机数生成器,其使用预定的伪随机数生成算法,通过使用种子值来生成m位(m是大于n的整数)随机数。

根据上述实施例,可以降低随机数的可预测性并增加所产生的随机数的位数。

附图说明

从以下结合附图对特定实施例的描述中,上述和其他方面、优点和特征将更加明显,其中:

图1是示出根据实施例的概述的随机数生成装置的配置的示例的框图。

图2是示出根据第一实施例的随机数生成装置的配置示例的框图。

图3是示出根据第一实施例的随机数生成装置中的随机数生成操作的流程的流程图。

图4是示出根据第二实施例的包括随机数生成装置的半导体装置的示意图。

具体实施方式

下面的描述和附图被适当地缩短和简化以阐明说明。在附图中,相同的附图标记表示相同的结构元件,并且省略其多余的说明。

<实施例的概述>

在描述实施例的细节之前,在下文中描述实施例的概述。图1是示出根据实施例的概述的随机数生成装置1的配置的一个示例的框图。如图1所示,随机数生成装置1包括传感器2、种子值生成器3以及随机数生成器4。

传感器2是用于测量物理现象的传感器。具体而言,传感器2是测量随机变化的物理量的传感器。

种子值生成器3通过使用表示传感器2的测量值的n位数字值中的n位来生成用于随机数生成的种子值。n是大于等于1的整数,n是从1到n的整数。因此,种子值生成器3可以通过使用测量值的所有位或使用测量值的一些位来生成用于随机数生成的种子值。

随机数生成器4使用预定的伪随机数生成算法、通过使用由种子值生成器3生成的种子值来生成m位随机数。m是大于n的整数。注意,预定的伪随机数生成算法可以是能够生成具有比所生成的种子值的位数更多的位数的伪随机数的任何算法。

如上所述,在随机数生成装置1中,种子值生成器3根据随机变化的物理量的测量值生成种子值。由此可以生成几乎不可预测的种子值。使用该种子值,随机数生成器4产生具有比用于种子值生成的位数多的位数的随机数。因此,根据随机数生成装置1,能够降低随机数的可预测性,并且增加所生成的随机数的位数。

<第一实施例>

以下描述实施例的细节。图2是示出根据第一实施例的随机数生成装置10的配置示例的框图。如图2所示,随机数生成装置10包括加速度传感器100a、地磁传感器100b、陀螺仪传感器100c、a/d转换器110a至110c、传感器融合装置120、种子值生成器130以及随机数生成器140。

如上所述,在本实施例中,随机数生成装置10包括多个传感器,并且加速度传感器100a、地磁传感器100b和陀螺仪传感器100c对应于图1中的传感器2。加速度传感器100a是用于检测加速度的传感器,并且它将检测到的加速度的模拟数据输出到a/d转换器110a。地磁传感器100b是用于检测地磁的传感器,并且将检测到的地磁的模拟数据输出到a/d转换器110b。陀螺仪传感器100c是检测角速度的传感器,并且它将检测到的角速度的模拟数据输出到a/d转换器110c。加速度传感器100a、地磁传感器100b和陀螺仪传感器100c中的每一个将三个轴(即,x方向、y方向和z方向)上的检测值输出作为模拟数据。

a/d转换器110a是将从加速度传感器100a输出的加速度的模拟值转换为数字值的模数转换器。在本实施例中,a/d转换器110a将各轴的模拟值转换成16位的数字值并输出。来自a/d转换器110a的所有输出被输入到传感器融合装置120。另外,a/d转换器110a的输出被输入到种子值生成器130。在本实施例中,作为一个例子,x方向、y方向和z方向的检测值的数字值被输入到种子值生成器130。特别是,在本实施例中,将从a/d转换器110a输出的作为x方向的检测值的16位数字值的低8位、作为y方向的检测值的16位数字值的低8位、和作为z方向上的检测值的16位数字值的低8位输入到种子值生成器130。

a/d转换器110b是将从地磁传感器100b输出的地磁的模拟值转换成数字值的模数转换器。在该实施例中,a/d转换器110b将每个轴上的模拟值转换成16位数字值并输出。来自a/d转换器110b的所有输出被输入到传感器融合装置120。此外,a/d转换器110b的输出被输入到种子值生成器130。在本实施例中,作为一个例子,将在x方向、y方向和z方向的检测值的数字值输入到种子值生成器130。特别是,在本实施例中,将从a/d转换器110b输出的作为x方向的检测值的16位数字值的低8位、作为y方向的检测值的16位数字值的低8位和作为z方向的检测值的16位数字值的低8位输入到种子值生成器130。

a/d转换器110c是将从陀螺仪传感器100c输出的角速度的模拟值转换为数字值的模数转换器。在该实施例中,a/d转换器110c将每个轴上的模拟值转换成16位数字值并输出。来自a/d转换器110c的所有输出被输入到传感器融合装置120。此外,a/d转换器110c的输出被输入到种子值生成器130。在本实施例中,作为一个例子,将在x方向、y方向和z方向的检测值的数字值输入到种子值生成器130。特别是,在本实施例中,将从a/d转换器110c输出的作为x方向的检测值的16位数字值的低8位、作为y方向的检测值的16位数字值的低8位和作为z方向上的检测值的16位数字值的低8位输入到种子值生成器130。

传感器融合装置120是由cpu(中央处理器)、dsp(数字信号处理器)、硬件运算单元等构成的算术装置,并且它对测量值进行预定的操作并输出到未示出的后续阶段中的设备。在该实施例中,由a/d转换器110a转换成数字值的三个轴中的每一个轴中的加速度、由a/d转换器110b转换成数字值的三个轴中的每一个轴中的地磁以及由a/d转换器110c转换成数字值的三个轴中的每一个轴中的角速度被输入到传感器融合装置120。传感器融合装置120通过使用输入电流测量数据、过去的测量数据等执行预定的操作,并且输出诸如位置、速度、海拔和倾斜度之类的各种类型的数据。

下面描述种子值生成器130和随机数生成器140。随机数生成装置10基于从加速度传感器100a、地磁传感器100b和陀螺仪传感器100c获取的物理现象的测量值来产生随机数。因此,测量值的数字值不仅被输入到传感器融合装置120,而且被输入到如上所述的种子值生成器130。

注意,在将来自传感器融合装置120的输出数据发送到外部设备时,例如有时使用诸如询问和应答的安全技术来保护输出数据。当通过询问和应答进行通信时,需要一个随机数。随机数生成装置10例如可以生成将用于这样的通信的随机数。另外,由随机数生成装置10生成的随机数也可以应用于其他用途。

种子值生成器130是通过使用加速度传感器100a、地磁传感器100b和陀螺仪传感器100c的测量值的数字值来生成用于随机数生成的种子值的硬件电路。种子值生成器130通过使用作为n(其中n是整数)位数字值的测量值中的低n位(其中n是大于等于1且小于n的整数)来生成种子值。具体而言,在该实施例中,种子值生成器130通过使用加速度传感器100a在x方向、y方向和z方向中每一个方向的16位测量值的低8位、地磁传感器100b在x方向、y方向和z方向中每一个方向的16位测量值的低8位以及陀螺仪传感器100c在x方向、y方向和z方向中每一个方向的16位测量值的低8位来生成种子值。

种子值生成器130生成具有输入数字值的位序列。具体而言,例如,种子值生成器130生成输入数字值连接在一起的位序列作为种子值。具体地,种子值生成器130将加速度测量值的低8位、地磁测量值的低8位和角速度测量值的低8位连接在一起以生成72位序列,并将其作为种子值输出到随机数生成器140。因此,在本实施例中,通过使用多个传感器中的每一个传感器的测量值的低位n位,种子值生成器130生成m位种子值,其中m大于n。由于种子值的位数与伪随机数再次出现的频率成反比,因此种子值的位数越大,要生成的伪随机数的可预测性越小。

注意,种子值生成器130可以通过另一种方法生成种子值。例如,种子值生成器130可以生成具有输入数字值的位序列,还对所生成的位序列执行压缩等,并将其用作种子值。此外,具有输入数字值的位序列可以具有在时间序列中的不同时间点输入的多个数字值。

加速度传感器100a、地磁传感器100b和陀螺仪传感器100c的输出由于附近的人、物体或地球等的影响而连续变化。相应地,从这些传感器获得不规律的测量值。这使得难以预测从种子值生成器130输出的种子值。

随机数生成器140利用预定的伪随机数生成算法、通过使用种子值生成器130生成的种子值来生成m位随机数(其中m是大于上述低n位中的n的整数)。在这个实施例中,随机数生成器140产生128位的随机数。预定伪随机数生成算法可以是生成具有比种子值的位数更多的位数的伪随机数的算法。具体而言,例如,随机数生成器140可以连接m位种子值和预定的位序列以生成m位序列,将m位序列输入到作为伪随机数生成电路的线性反馈移位寄存器,并将在完成k次(k为大于等于1的整数)移位后得到的m位序列输出作为伪随机数。在该实施例中,具体而言,随机数生成器140连接作为预定位序列的56(=128-72)位序列(例如,其中所有位都为1的位序列)和输入的72位种子值来生成128位序列,将所生成的128位序列输入到线性反馈移位寄存器,在移位操作后输出线性反馈移位寄存器的每一位,由此输出128位的伪随机数。然而,在这种情况下,由于最初产生的随机数的位大部分是1,所以可预测性变高。因此,期望直到移位次数达到预定次数时才使用线性反馈移位寄存器的值作为随机数。该值不被用作随机数的次数可以是固定值(例如,大约10次)或是通过使用测量值或种子值得到的值。注意,上述算法是一个示例,并且可以通过另一算法来生成随机数,而不限于上述示例。

下面描述随机数生成装置10中的随机数生成操作。图3是表示随机数生成装置10中的随机数生成操作的流程的流程图。随机数输出装置10通过以下的流程生成随机数。

首先,在步骤10(s10)中,由加速度传感器100a、地磁传感器100b和陀螺仪传感器100c测量物理现象。测量结果由a/d转换器110a、110b和110c转换成数字值并输入到种子值生成器130。

接着,在步骤20(s20)中,种子值生成器130使用输入的测量值生成种子值。

之后,在步骤30(s30)中,随机数生成器140使用所生成的种子值来生成随机数。

上面描述了第一实施例。在该实施例中,使用几乎不可预测的种子值,生成具有比用于种子值生成的位数更多的位数的随机数。因此,根据随机数生成装置10,可以降低随机数的可预测性,并且增加所生成的随机数的位数。

此外,具体而言,种子值生成器130通过使用测量值的低n位来生成种子值。在加速度传感器100a、地磁传感器100b和陀螺仪传感器100c的测量值的高位的值作为感测数据是有效的同时,一般而言,低位的值经常被视为误差,因为其上反映了每个物理量的微妙变化的感测结果。但是,本实施例着眼于由于这种微妙变化引起的不规则性,并将其用于种子值的生成。因此,尽管将用于种子值生成的位数小于测量值的总位数,但是可以产生几乎不可预测的种子值。换句话说,由此可以产生几乎不可预测的随机数。注意,因为所生成的种子值被输入到随机数生成器140,并且生成具有指定位数的随机数,所以种子值的较少的位数不会引起问题。生成种子值所需的位数的减少导致信号线数量的减少,这允许减小种子值生成器130的电路尺寸等。因此,在本实施例中,通过仅使用用于种子值生成的测量值的预定的低位而不是全部位,可以减小电路尺寸并且生成几乎不可预测的随机数。

另外,在本实施例中,传感器测量值也被输入到种子值生成器130和传感器融合装置120。具体而言,传感器测量值不仅用于种子值的生成,而且用于除了随机数的生成以外的预定处理。因此,根据本实施例,仅通过将种子值生成器130和随机数生成器140添加到通过使用传感器测量值执行预定处理的装置就能够生成随机数。由此可以降低将随机数生成功能添加到现有装置时所需的成本。

尽管种子值生成器130和随机数生成器140在本实施例的上述描述中由硬件电路实现,但是它们中的一个或两个可以通过软件来实现。具体而言,它们可以通过由处理器执行加载到存储器的程序来实现。

此外,可以使用任何类型的非瞬态计算机可读介质来将上述程序存储并提供给计算机。非瞬态计算机可读介质包括任何类型的有形存储介质。非瞬态计算机可读介质的示例包括磁存储介质(诸如软盘、磁带、硬盘驱动器等)、光磁存储介质(例如,磁光盘)、光盘只读存储器(cd-rom)、cd-r、cd-r/w和半导体存储器(例如掩模rom、可编程rom(prom)、可擦除prom(eprom)、闪存rom、随机存取存储器(ram)等)。可以使用任何类型的瞬态计算机可读介质将程序提供给计算机。瞬态计算机可读介质的示例包括电信号、光信号和电磁波。瞬态计算机可读介质可以经由有线通信线路(例如,电线和光纤)或无线通信线路将程序提供给计算机。

<第二实施例>

下面描述第二实施例。在这个实施例中,随机数生成装置10的元件被安装在一个半导体芯片上。图4是示出根据第二实施例的包括随机数生成装置10的半导体装置11的示意图。

半导体装置11具有包括半导体芯片12的封装体13。在封装体13中,半导体芯片12由密封剂密封。半导体芯片12包括根据第一实施例的随机数生成装置10。具体地,加速度传感器100a、地磁传感器100b、陀螺仪传感器100c、a/d转换器110a、110b和110c、种子值生成器130、随机数生成器140和传感器融合装置120被安装在同一半导体芯片12上。注意,传感器融合装置120不一定被安装在同一半导体芯片上。

在用于产生随机数的装置中,存在如下可能性:种子值或随机数值可能会被信号线电压的检测等所破坏。随着近来半导体工艺中更精细的设计规则的趋势,半导体装置中的信号线宽变小。因此,在半导体芯片12中,随机数生成装置10的信号线例如为40nm左右。在本实施例中,因为随机数生成装置10的元件被集成在一个半导体芯片12中,所以可以实现随机数生成装置10的信号线宽度的减小。由此,在本实施例中难以检测到来自信号线的电压等。

而且,在该实施例中,半导体芯片12由密封剂密封。因此,读取信号线实际上是困难的。

半导体芯片12优选为多层互连结构中的半导体芯片。在线存在于多层中的情况下,需要切掉表面布线层以检测不是表面层的布线层中的信号线。然而,如果布线层被切掉,则随机数生成装置10无法操作,并且操作中不可能检测到随机数生成装置10的信号线的电压等。因此,当半导体芯片12具有多层互连结构时,可以进一步降低破坏的风险。

尽管通过以上几个实施例具体描述了本发明人完成的本发明,但是本发明不限于上述实施例,在不脱离本发明的范围的情况下可以进行各种改变和修改。例如,传感器不限于加速度传感器、地磁传感器和陀螺仪传感器,并且可以使用测量另一物理现象的传感器。此外,要使用的传感器的数量不限于三个,并且可以是一个或多个。在从一个传感器的测量值生成种子值的情况下,种子值生成器130可以输出输入数字值作为种子值。

此外,尽管在上述实施例中使用x方向、y方向和z方向上的测量值来生成种子值,但是可以使用仅在一个方向上的测量值。而且,这些测量值中的任何一个都可以被组合使用。

注意,在上面的实施例中描述的特定位数仅仅是一个示例,并且位数不限于此。

本领域技术人员可以根据需要组合第一实施例和第二实施例。

尽管已经根据若干实施例描述了本发明,但是本领域技术人员将认识到,可以在所附权利要求的精神和范围内以各种修改来实践本发明,并且本发明不限于上述示例。

此外,权利要求的范围不受上述实施例的限制。

此外,注意到,申请人的意图是涵盖所有权利要求要素的等同物,即使在后面申请期间进行了修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1