环形振荡器、随机数生成器以及随机数生成器的操作方法与流程
环形振荡器、随机数生成器以及随机数生成器的操作方法
1.相关申请的交叉引用
2.该美国专利申请要求于2021年7月13日在韩国知识产权局提交的韩国专利申请第10-2021-0091690号的优先权,其公开内容通过引用全部并入本文。
技术领域
3.本发明构思涉及一种用于生成随机数的环形振荡器、包括该环形振荡器的随机数生成器以及该随机数生成器的操作方法。
背景技术:
4.随机数生成器(rng)广泛应用于诸如物联网(iot)、人工智能、数据库和信息保护的各种领域。随机数生成器应稳定,并能快速生成随机数。可以使用随机数生成器对数据进行加密。然而,当随机数生成器中出现缺陷时,数据的安全性可能会受到影响。真随机数生成器(trng)是一种通过使用物理现象生成随机数的设备。真随机数生成技术的示例包括锁相环(pll)方法、自定时环方法、亚稳态方法和环形振荡器方法。
5.环形振荡器方法可以包括使用过渡效应生成随机数的过渡效应环形振荡器(tero)型trng。然而,由于随机比特生成率(比特率)的特性随着其温度或功率在随机比特生成期间的变化而显著地取决于环形振荡器的振荡器核心的频率和过程/电压/温度(pvt)来变化,因此随机比特生成率的离散度增加。
技术实现要素:
6.本发明构思的至少一个实施例提供了一种用于监测和校准环形振荡器以优化随机数生成器的随机性能和随机数生成率的随机数生成器,以及随机数生成器的操作方法。
7.本发明构思的至少一个实施例提供了一种通过使用较少资源来监测环形振荡器的频率的方法。
8.根据本发明构思的一个实施例,提供了一种随机数生成器,包括环形振荡器、反相选择电路和控制器。环形振荡器包括具有至少一个反相器并生成输出信号的反相器链。反相选择电路用于控制相位反相器以反相反相器链的信号。控制器被配置为在用于测量环形振荡器的频率的第一操作模式期间操作反相选择电路以向反相器链提供第一相位反相器的输出,并且在用于生成随机数的第二操作模式期间操作反相选择电路以不提供第一相位反相器的输出。
9.根据本发明构思的一个实施例,提供了一种由随机数生成器执行的随机数生成方法。随机数生成方法包括确定当前模式被设置为第一操作模式还是第二操作模式,当确定当前模式被设置为第一操作模式时,反相环形振荡器的第一信号的相位以测量和校准环形振荡器的频率,以及当确定当前模式被设置为第二操作模式时,在不反相相位的情况下使用环形振荡器生成随机数。环形振荡器包括至少一个反相器,并生成输出信号作为随机数的基础。
10.根据本发明构思的一个实施例,提供了一种环形振荡器,包括反相器链、反相选择电路和控制器。反相器链包括多个反相器。反相选择电路用于控制相位反相器,以反相反相器链的信号。控制器模块在用于测量环形振荡器的频率的第一操作模式期间操作反相选择电路,以向反相器链提供第一相位反相器的输出,并在用于生成随机数的第二操作模式期间操作反相选择电路,以不提供相位反相器的输出。
附图说明
11.结合附图进行的以下详细描述将更清楚地理解本发明构思的实施例,其中:
12.图1是示意性地示出根据本发明构思的实施例的随机数生成系统的框图;
13.图2a是示意性地示出根据本发明构思的实施例的装置的框图;
14.图2b是示出根据本发明构思的实施例的随机数生成器的框图;
15.图3a是示出根据本发明构思的实施例的环形振荡器的结构的图,图3b是描绘由环形振荡器生成的信号的图;
16.图4是用于描绘根据本发明构思的实施例的随机数生成器的图;
17.图5是用于描绘根据本发明构思的实施例的随机数生成器的图;
18.图6是用于描绘根据本发明构思的实施例的由随机数生成器生成的折叠计数的图;
19.图7是用于描绘根据本发明构思的实施例的由随机数生成器生成的折叠计数的合适范围的图;
20.图8是用于描绘根据本发明构思的实施例的随机数生成器的操作的流程图;
21.图9是用于描绘根据本发明构思的实施例的随机数生成器的操作的流程图;
22.图10是用于描绘根据本发明构思的实施例的由随机数生成器生成的信号的图;
23.图11是用于描绘根据本发明构思的实施例的由随机数生成器生成的信号的图;
24.图12是用于描绘根据本发明构思的实施例的由随机数生成器生成的信号的图;
25.图13是示出根据本发明构思的实施例的电子签名服务系统的图;以及
26.图14示出了通过根据本发明构思的实施例生成的电子签名执行安全验证的通信设备的示例。
具体实施方式
27.以下,将参考附图详细描述本发明构思的实施例。
28.图1是示意性地示出根据本发明构思的实施例的随机数生成器的框图。
29.随机数生成器可以包括环形振荡器2和折叠计数器3(例如,计数器电路)。环形振荡器2可以包括相位反相电路1。
30.环形振荡器2可以包括多个反相器或缓冲器。环形振荡器2可以包括以链式形式连接的多个反相器,并且可以生成延迟等于连接的反相器的数量的脉冲,输出时输入通过多个反相器反相,并且具有特定时段。环形振荡器2可以包括相位反相电路1。相位反相电路1可以包括复用器和反相器。环形振荡器2可以在通过包括在相位反相电路1中的复用器生成脉冲时确定是否使用相位反相器。例如,相位反相电路1可以选择性地将其内部反相器(即,相位反相器)的输出提供给多个反相器或缓冲器。在实施例中,环形振荡器2通过在第一模
式期间使用以链式形式连接的多个反相器来生成脉冲,并且在第二模式期间通过使用将反相器添加到链中的配置来生成脉冲。在实施例中,相位反相电路1可以包括至少一个反相器。
31.折叠计数器3可对环形振荡器2生成的脉冲数进行计数。例如,折叠计数器3可以计算在特定时段内发生的脉冲数。折叠计数器3可以包括多个触发器,折叠计数器3中的触发器数量可以根据折叠计数器3要计数的脉冲数的范围而变化。折叠计数可以是由环形振荡器2生成的脉冲数。折叠计数器3可以在接收到重置信号时将折叠计数重置为0或某个其他预定义值。
32.图2a是示意性地示出根据本发明构思的实施例的装置10的框图。
33.参考图2a,装置10可以包括处理器11、存储设备12、输入/输出设备13、存储器14、通信子系统15、总线16和随机数生成器17。装置10可以包括硬件元件,其可通过总线16电耦合(或相互通信)。也就是说,处理器11可以包括硬件元件,并且硬件元件可以包括一个或多个通用处理器和/或一个或多个专用处理器(例如,数字信号处理芯片或图形加速处理器)。输入/输出设备13可以输入/输出要被处理器11处理的数据。
34.存储设备12可以包括但不限于本地和/或网络可访问存储器。例如,存储设备12可以包括磁盘驱动器、驱动器阵列、光存储设备和/或固态存储设备。存储设备12可以是可编程的或可闪存更新的,并且可以被实现为适用于各种文件系统、数据库结构等。
35.通信子系统15可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备和/或无线通信设备和/或芯片组(例如,蓝牙设备、802.11设备、wifi设备、wimax设备和/或蜂窝通信设备)。通信子系统15可以允许与网络、其他计算机系统/设备和/或任何其他设备交换(或传输)根据本发明构思的实施例生成的数字签名相关的数据。
36.存储器14可以包括操作系统14a(例如,操作系统),并可以包括包含设备驱动器、可执行库和/或程序代码的应用程序14b。操作系统14a和应用程序14b可以通过计算机(或计算机中的处理器)执行代码和/或指令来实现为软件元素。
37.根据本发明构思的实施例的随机数生成器17可以是执行各种算术运算以在电子数据(或签名目标数据(即,待签名的数据))上生成电子签名以确保安全的设备,并且可以基于特定电子签名算法方法在电子数据上生成电子签名。随机数生成器17可以包括环形振荡器18以生成随机数。
38.环形振荡器18可以包括以链式形式连接的多个反相器。例如,在该链中,第一反相器的输出被提供给第二反相器的输入,第二反相器的输出被提供给第三反相器的输入,等等。以链式形式连接的多个反相器可以被称为反相器链。在实施例中,环形振荡器18生成脉冲,该脉冲的延迟等于所连接的反相器的数量,输出时通过多个反相器反相输入,并且具有特定时段。包括在环形振荡器18中的反相器可以是在p沟道金属氧化物半导体(pmos)和n沟道金属氧化物半导体(nmos)的尺寸比上不同配置的倾斜反相器。在实施例中,反相器可以包括pmos晶体管和nmos晶体管。在实施例中,pmos和nmos晶体管的尺寸可以在反相器之间,以实现倾斜反相器。基于环形振荡器18的真随机数生成可以通过使用环形振荡器18作为随机源,通过输入环形振荡器18的输出作为d触发器的时钟信号或输入的方法进行采样来生成随机数。然而,环形振荡器18的输出可能受到噪声的影响,因此时钟信号的时钟值的变化快于或慢于时段。因此,输出可能变得不规则,并且随机数的质量可能根据抖动发生率和频
率而变化。
39.在实施例中,随机数生成器17通过使用折叠计数生成随机数。当脉冲信号的上升沿和下降沿的定时由于包括在环形振荡器18中的倾斜反相器的失配而逐渐变化时,由环形振荡器18生成的脉冲信号的振荡可能停止。折叠计数可以是直到环形振荡器18的振荡停止为止的脉冲数。随机数生成器17可以根据折叠计数是奇数还是偶数来生成随机比特。
40.在实施例中,随机数生成器17可以通过硬件逻辑实现,或者可以包括通过逻辑合成设计的逻辑块。此外,随机数生成器17可以包括当存储在诸如存储设备12的非暂时性计算机可读存储介质上的一组代码和/或命令被随机数生成器17执行时实现的软件块。在其他实施例中,存储介质可以作为安装包或与计算机设备分离的设备(例如,可移动介质,诸如光盘或通用串行总线(usb)设备)提供,以便使用存储在其中的一组代码和/或命令来编程或适配通用计算机。该组代码和/或命令可以是可由随机数生成器17执行的可执行代码的形式,并且可以是可安装代码的形式和/或在编译和/或安装随机数生成器17期间以可执行代码的形式的源。
41.图2b是示出根据本发明构思的实施例的随机数生成器的框图。
42.随机数生成器100可以包括环形振荡器110、计数器120、比较器130、随机数据生成器140、校准器150(例如,校准电路)和控制器160(例如,控制电路)。
43.环形振荡器110可以包括多个反相器。环形振荡器110可以包括以链式形式连接的多个反相器,并且可以生成脉冲pls,该脉冲pls的延迟等于连接的反相器的数量的,输出时通过多个反相器反相输入,并且具有特定时段。环形振荡器110可以包括反相电路112。反相电路112可以包括复用器(未示出)和相位反相器(未示出)。环形振荡器110可以在通过包括在反相电路112中的复用器生成脉冲pls时确定是否使用相位反相器。例如,环形振荡器110可以确定是否向多个反相器提供相位反相器的输出。在实施例中,环形振荡器110通过在第一模式期间使用以链式形式连接的多个反相器来生成脉冲pls,并且可以在第二模式期间通过使用将反相器添加到链中的配置来生成脉冲pls。在实施例中,相位反相器可以包括至少一个反相器。
44.计数器120可以计算由环形振荡器110生成的脉冲pls的数量cnt。计数器120可以包括多个触发器,并且计数器120中的触发器的数量可以根据计数器120要计数的脉冲pls的数量cnt的范围而变化。折叠计数可以是由环形振荡器110生成的脉冲pls的数量cnt。
45.比较器130可确定计数器120生成的折叠计数是否在适当范围内。比较器130可以基于上限值和下限值确定输入值是否在有效范围内,并且可以输出有效标志vfg。例如,当折叠计数在预设上限值和预设下限值之间时,比较器130可以输出有效标志vfg逻辑高,否则可以输出有效标志vfg作为逻辑低。
46.随机数据生成器140可以基于计数器120生成的折叠计数生成随机比特。随机数据生成器140可以生成并输出多个随机比特。由随机数据生成器140提供的随机数据输出rout可以包括折叠计数或随机比特。
47.校准器150可通过将生成的脉冲pls的频率与参考频率rfq进行比较,重新调整由环形振荡器110生成的脉冲pls的频率。例如,校准器150可以将在预设时段期间由环形振荡器110生成的脉冲pls的数量cnt与具有参考频率rfq的参考时钟信号的脉冲数进行比较。校准器150可以生成用于重新调整由环形振荡器110生成的脉冲pls的频率的校准信号cal。校
准信号cal可通过将在时段内计数的脉冲数cnt与在同一时段内发生的参考时钟信号的脉冲数进行比较来生成。
48.控制器160可以生成控制信号ctrl和时钟信号来控制随机数生成器100。控制器160可以向环形振荡器110提供控制信号ctrl和时钟信号。环形振荡器110可以基于接收到的控制信号ctrl和时钟信号生成具有特定时段的脉冲pls。控制器160可以接收由校准器150生成的校准信号cal,以生成要提供给环形振荡器110的控制信号ctrl。控制器160可以设置上限值或下限值,用于确定折叠计数是否在比较器130中的适当范围内。
49.图3a是示出根据本发明构思的实施例的环形振荡器的结构的图,图3b是描述由环形振荡器生成的信号的图。
50.参考图3a,环形振荡器200可以包括第一nand门210、第二nand门211、第一反相器220、第二反相器221、第三反相器222、第四反相器223、第五反相器224和第六反相器225。环形振荡器200还可以包括第一反相器220和第三反相器222之间的多个反相器,还可以包括第二反相器221和第四反相器223之间的多个反相器。从环形振荡器200的第一反相器220到第三反相器222配置的反相器链可以包括偶数个反相器,并且第一反相器220的输入信号可以在通过多个反相器延迟后由第三反相器222反相和输出。包括在环形振荡器200中的反相器可以是倾斜反相器,并且输入到第一反相器220的时钟信号可以在第三反相器222的上升沿和下降沿被顺序且不同地延迟之后被反相并由第三反相器222输出。可以将从第三反相器222输出的信号s3作为输入信号提供给第二nand门211。
51.从环形振荡器200的第二反相器221到第四反相器223配置的反相器链可以包括偶数个反相器,并且第二反相器221的输入信号可以在通过多个反相器延迟后由第四反相器223反相和输出。包括在环形振荡器200中的反相器可以是倾斜反相器,并且在第四反相器223的上升沿和下降沿被顺序且不同地延迟之后,输入到第二反相器221的信号可以被反相并由第四反相器223输出。可以将从第四反相器223输出的信号s4作为输入信号提供给第一nand门210。
52.例如,从环形振荡器200的第三反相器222输出的信号s3可由第五反相器224反相,然后作为脉冲信号s5提供给外部。从环形振荡器200的第六反相器225输出的信号可以连接到另一计数器或另一设备。
53.由环形振荡器200生成的脉冲信号s5可被提供给计数器250。计数器250可以对环形振荡器200生成的脉冲数进行计数。例如,计数器250可以计算在特定时段期间发生的脉冲数。计数器250可以包括多个触发器252,并且计数器250中的触发器252的数量可以根据计数器250使用的单元脉冲数的范围而变化。折叠计数可以是计数器250生成的脉冲数。
54.例如,参考图3a和3b,环形振荡器200可以接收时钟信号clk作为输入信号start。在环形振荡器200中,输入时钟信号clk的第一时段d2可用作输入信号。例如,时钟信号clk可以在第一时间a01从逻辑高下降到逻辑低,并在第二时间a02从逻辑低上升到逻辑高,并且环形振荡器200可以在第二时间a02开始操作。
55.当环形振荡器200的操作开始时,第一nand门210的第一输入s1可以在环形振荡器200的操作开始之前从逻辑低变为逻辑高。第一nand门210的第二输入s4可以在环形振荡器200的操作开始之前保持在逻辑高,并且可以在环形振荡器200的操作开始之后振荡到逻辑低和逻辑高。例如,在环形振荡器200的操作开始之后,第一nand门210的第一输入s1可以保
持在逻辑高,当环形振荡器200的操作开始时,第一nand门210的第二输入s4可以在第二时间a02从逻辑高变为逻辑低,并且当从第二nand门211输出的信号通过第四反相器223时,可以在第三时间a03从逻辑低变为逻辑高。
56.当环形振荡器200的操作开始时,第二nand门211的第一输入s2可以在环形振荡器200的操作开始之前从逻辑低变为逻辑高,并且第二nand门211的第二输入s3可以在环形振荡器200的操作开始之前保持在逻辑高,并且可以在环形振荡器200的操作开始之后振荡到逻辑低和逻辑高。例如,在环形振荡器200的操作开始之后,第二nand门211的第一输入s2可以保持在逻辑高,当环形振荡器200的操作开始时,第二nand门211的第二输入s3可以在第二时间a02从逻辑高变为逻辑低,并且当从第二nand门211输出的信号通过第四反相器223时,可以在第三时间a03从逻辑低变为逻辑高。
57.第一nand门210的第二输入s4和第二nand门211的第二输入s3可以在环形振荡器200的初始操作中以类似的时段振荡,但是其占空比可能由于环形振荡器200中包括的倾斜反相器的失配而变化。例如,对于第二nand门211的第二输入s3,逻辑高和逻辑低可以在初始阶段保持在1:1的比率,但是与逻辑低比率相比,振荡期间的逻辑高比率可以逐渐降低。至于第二nand门211的第二输入s3,从第23时间a23到第24时间a24的逻辑高时段可以短于从第21时间a21到第22时间a22的逻辑高时段。当环形振荡器200继续振荡时,第二nand门211的第二输入s3可最终固定在逻辑低,且振荡可结束。
58.例如,对于第一nand门210的第二输入s4,在初始阶段,逻辑高和逻辑低可以保持在1:1的比率,但是与逻辑高比率相比,振荡期间的逻辑低比率可以逐渐降低。至于第一nand门210的第二输入s4,从第13时间a13到第14时间a14的逻辑低时段可以短于从第11时间a11到第12时间a12的逻辑低时段。当环形振荡器200继续振荡时,第一nand门210的第二输入s4可最终固定在逻辑高,且振荡可结束。
59.例如,计数器250可在第二nand门211的第二输入s3振荡时测量脉冲数。计数器250测量的脉冲可以是通过反相第二nand门211的第二输入s3获得的输出信号s5。随机数生成器可以根据计数器250测量的脉冲数是奇数还是偶数来生成随机比特。
60.图4是用于描绘根据本发明构思的实施例的随机数生成器的图。
61.环形振荡器300可以包括包含多个反相器的反相器链,还可以包括反相选择电路310。
62.反相选择电路310可以包括相位反相器312、缓冲器314和第一复用器316。相位反相器312可以是反相器或倾斜反相器。反相选择电路310可以在用于测量环形振荡器300的频率的第一操作模式下通过第一复用器316选择相位反相器312,并且可以在用于生成随机数的第二操作模式下通过第一复用器316选择缓冲器314。在第一操作模式中,反相选择电路310可以反相第一信号p1,并将其结果提供为第二信号p2。反相选择电路310可以在第二操作模式中提供第一信号p1作为第二信号p2。例如,第二信号p2可以与第二操作模式中的第一信号p1相同,但被延迟了。在第一操作模式的实施例中,输出信号pls继续振荡,并且使用振荡输出信号pls测量环形振荡器300的频率。
63.环形振荡器300可以包括反相器或反相器选择模块320。反相器选择模块320可以包括多个倾斜反相器和第二复用器326。例如,第一倾斜反相器322和第二倾斜反相器324可以是倾斜反相器,其在p沟道金属氧化物半导体(pmos)和n沟道金属氧化物半导体(nmos)的
尺寸比上配置不同,并且在上升沿的延迟时间和下降沿的延迟时间上配置不同。第二复用器326可以选择多个倾斜反相器中的一个来调整折叠计数或折叠计数的离散。环形振荡器300可以包括反相器选择模块320形式的所有反相器,以调整折叠计数或折叠计数的离散。例如,当折叠计数或折叠计数的离散度在预设范围之外时,环形振荡器300可以通过使用第二复用器326选择第二倾斜反相器324而不是第一倾斜反相器322。
64.环形振荡器300可以包括第三复用器330,以调整输出信号pls的频率。第三复用器330可以选择包括在环形振荡器300中的第一反相器选择模块输出p3、第二反相器选择模块输出p4和第n反相器选择模块输出pn中的一个,并将所选择的一个输出为输出信号pls。环形振荡器300可以将输出信号pls与单独的参考时钟信号进行比较,以调整输出信号pls的频率。环形振荡器300可由包括在随机数生成器中的控制器或控制模块控制。
65.图5是用于描绘根据本发明构思的实施例的随机数生成器的图。
66.随机数生成器可以包括计数器410、比较器420、随机数据生成器430和校准器440,以处理环形振荡器的输出信号。
67.计数器410可以计算由环形振荡器生成的脉冲pls的数量cnt。计数器410可以包括多个触发器,并且计数器410中的触发器的数量可以根据计数器410要计数的单元脉冲pls的数量cnt的范围而变化。折叠计数可以是振荡器410生成的脉冲pls的数量cnt。
68.比较器420可确定计数器410生成的折叠计数是否在适当范围内。比较器420可以基于上限值ul和下限值ll来确定输入值是否在有效范围内,并且可以输出有效标志vfg。例如,当折叠计数在预设上限值ul和预设下限值ll之间时,比较器420可以输出有效标志vfg逻辑高,否则可以输出有效标志vfg逻辑低。
69.随机数据生成器430可以基于计数器410生成的折叠计数生成随机比特。随机数据生成器430可以生成并输出多个随机比特。由随机数据生成器430提供的随机数据输出rout可以包括折叠计数或随机比特。
70.校准器440可通过与环形振荡器生成的脉冲pls的频率进行比较,以参考频率参考clk作为输入,重新调整环形振荡器生成的脉冲pls的频率。校准器440可以生成用于重新调整由环形振荡器生成的脉冲pls的频率的校准信号cal。可通过比较脉冲pls的频率与参考clk的频率来生成校准信号cal。
71.图6是用于描绘根据本发明构思的一个实施例的由随机数生成器生成的折叠计数的图。
72.随着随机数生成器生成的折叠计数的增加,随机性能可能会增加。参考图6,奇数和偶数中的哪一个将出现的熵可能会增加,因为折叠计数的离散度随着折叠计数的增加而增加。在图6的图表中,x轴代表折叠计数,y轴代表出现频率。例如,对于由随机数生成器生成的第一折叠计数离散xa,平均折叠计数可以是100,并且折叠计数离散可以是小的。至于由随机数生成器生成的第二折叠计数离散xb,平均折叠计数可以是200,并且折叠计数离散可以大于第一折叠计数离散xa。至于由随机数生成器生成的第三折叠计数离散xc,平均折叠计数可以是400,并且折叠计数离散可以大于第二折叠计数离散xb。
73.然而,当折叠计数增加时,由于随机数生成器生成一个随机比特所需的时间增加,随机性能可能会增加,但比特率性能(即生成随机比特的速率)可能会降低。因此,可能需要适当地校准环形振荡器的折叠计数和输出信号频率,以优化随机数生成器的随机性能和比
特率性能。
74.图7是用于描绘根据本发明构思的实施例的由随机数生成器生成的折叠计数的合适范围的图。
75.对于用于优化随机数生成器的随机性能和比特率性能的折叠计数范围,与初始操作相对应的第一折叠计数范围mode1 range和与环形振荡器的随机数生成操作相对应的第二折叠计数范围mode2 range可以被分别管理。例如,当随机数生成器在初始阶段微调(trim)环形振荡器时,可以基于严格范围的第一折叠计数范围mode1 range来执行微调。只要在随机数生成期间确保了随机性能和比特率性能,就可以基于宽范围的第二折叠计数范围mode2 range来执行微调,从而减少操作期间不必要的重试次数。第一折叠计数范围mode1 range的上限值ul1可以小于第二折叠计数范围mode2 range的上限值ul2,并且第一折叠计数范围mode1 range的下限值ll1可以大于第二折叠计数范围mode2 range的下限值ll2。
76.图8是用于描绘根据本发明构思的实施例的随机数生成器的操作的流程图。
77.随机数生成器在第一操作模式(即环形振荡器的频率测量模式)下操作,以在适当的频率下操作以生成随机数(s110)。随机数生成器可以通过包括相位反相器的反相选择电路反相并输出信号,以在第一操作模式下操作。随机数生成器可通过复用器选择相位反相器以反相信号。当随机数生成器选择相位反相器时,包括在环形振荡器的反相器链中的反相器的数量可以从偶数变为奇数,并且可能发生连续振荡。可在第一操作模式期间测量环形振荡器的频率。
78.随机数生成器确定所测量的环形振荡器的频率是否在参考范围内(s120)。随机数生成器可以通过将连续振荡的环形振荡器的脉冲信号与参考时钟信号进行比较来调整由环形振荡器生成的脉冲信号的频率。
79.当所测量的环形振荡器的频率超出参考范围时,随机数生成器执行环形振荡器的频率微调(s122)。
80.当所测量的环形振荡器的频率在参考范围内时,随机数生成器在用于生成随机数的第二操作模式下操作环形振荡器(s130)。随机数生成器可以选择缓冲器,而不是通过复用器在第一操作模式下选择的相位反相器。包括在环形振荡器的反相器链中的反相器的数量可以从奇数变为偶数,并且可以生成用于生成随机数的脉冲信号。
81.随机数生成器确定生成的折叠计数是否在与环形振荡器的初始操作相对应的第一折叠计数范围内(s140)。至于用于优化随机数生成器的随机性能和比特率性能的折叠计数范围,与初始操作相对应的第一折叠计数范围和与随机数生成操作相对应的第二折叠计数范围可以被分别管理。例如,当随机数生成器在初始阶段微调环形振荡器时,可以基于严格范围的第一折叠计数范围来执行微调。只要在随机数生成期间确保了随机性能和比特率性能,就可以基于宽范围的第二折叠计数范围来执行微调,从而减少操作期间不必要的重试次数。
82.当生成的折叠计数超出第一折叠计数范围时,随机数生成器执行折叠计数微调(s142)。随机数生成器可以通过复用器选择随机数生成器中包括的多个倾斜反相器中的至少一个,以执行折叠计数微调。
83.当生成的折叠计数在第一折叠计数范围内时,随机数生成器确定微调(s150)。例
如,当生成的折叠计数在第一折叠计数范围内时,不执行折叠计数微调。
84.随机数生成器生成随机数据(s160)。随机数生成器可以基于折叠计数生成随机比特。
85.随机数生成器可确定是否需要额外生成随机数据(s170)。当根据随机数大小需要多个随机比特时,随机数生成器可以基于环形振荡器生成的折叠计数生成随机比特,并且可以确定需要额外生成随机数据。
86.当需要额外生成随机数据时,随机数生成器可再次确定环形振荡器的频率是否在参考范围内(s172)。
87.当环形振荡器的频率在参考范围之外时,随机数生成器可再次执行环形振荡器的频率测量模式(s110)操作的操作。
88.当环形振荡器的频率在参考范围内时,随机数生成器确定生成的折叠计数是否在与环形振荡器的随机数生成操作相对应的第二折叠计数范围内(s174)。
89.当折叠计数在第二折叠计数范围内时,随机数生成器可立即生成随机数据(s160)。当折叠计数在第二折叠计数范围之外时,随机数生成器可以返回操作(s140)以再次执行折叠计数微调。
90.图9是用于描绘根据本发明构思的实施例的随机数生成器的操作的流程图。
91.随机数生成器在第一操作模式(即环形振荡器的频率测量模式)下运行,以在适当频率下运行以生成随机数(s210)。随机数生成器可以通过包括相位反相器的反相选择电路反相并输出信号,以在第一操作模式下操作。随机数生成器可通过复用器选择相位反相器以反相信号。当随机数生成器选择相位反相器时,包括在环形振荡器的反相器链中的反相器的数量可以从偶数变为奇数,并且可能发生连续振荡。可在第一操作模式期间确定环形振荡器的频率。
92.随机数生成器确定所测量的环形振荡器的频率是否在参考范围内(s220)。随机数生成器可以通过将连续振荡的环形振荡器的脉冲信号与参考时钟信号进行比较来调整由环形振荡器生成的脉冲信号的频率。
93.当所测量的环形振荡器的频率超出参考范围时,随机数生成器执行环形振荡器的频率微调(s222)。
94.当所测量的环形振荡器的频率在参考范围内时,随机数生成器在用于生成随机数的第二操作模式操作环形振荡器(s230)。随机数生成器可以选择缓冲器,而不是通过复用器在第一操作模式下选择的相位反相器。包括在环形振荡器的反相器链中的反相器的数量可以从奇数变为偶数,并且可以生成用于生成随机数的脉冲信号。
95.随机数生成器确定生成的折叠计数是否在与环形振荡器的初始操作相对应的第一折叠计数范围内(s240)。至于用于优化随机数生成器的随机性能和比特率性能的折叠计数范围,与初始操作相对应的第一折叠计数范围和与随机数生成操作相对应的第二折叠计数范围可以被分别管理。例如,当随机数生成器在初始阶段微调环形振荡器时,可以基于严格范围的第一折叠计数范围来执行微调。只要在随机数生成期间确保了随机性能和比特率性能,就可以基于宽范围的第二折叠计数范围来执行微调,从而减少操作期间不必要的重试次数。
96.当生成的折叠计数超出第一折叠计数范围时,随机数生成器执行折叠计数微调
(s242)。随机数生成器可以通过复用器选择随机数生成器中包括的多个倾斜反相器中的至少一个,以执行折叠计数微调。
97.当生成的折叠计数在第一折叠计数范围内时,随机数生成器确定微调(s250)。例如,当生成的折叠计数在第一折叠计数范围内时,不执行折叠计数微调。
98.随机数生成器生成随机数据(s260)。随机数生成器可以基于折叠计数生成随机比特。
99.随机数生成器确定是否需要额外生成随机数据(s270)。当根据随机数大小需要多个随机比特时,随机数生成器可以基于环形振荡器生成的折叠计数生成随机比特,并且可以确定需要额外生成随机数据。
100.当需要额外生成随机数据时,随机数生成器确定生成的折叠计数是否在与环形振荡器的随机数生成操作相对应的第二折叠计数范围内(s272)。
101.当折叠计数在第二折叠计数范围内时,随机数生成器可立即生成随机数据(s260)。当折叠计数在第二折叠计数范围之外时,随机数生成器可返回操作(s240)以再次执行折叠计数微调。
102.图10是用于描绘根据本发明构思的实施例的由随机数生成器生成的信号的图。
103.参考图10,在操作的初始阶段,随机数生成器可在第一操作模式(即环形振荡器的频率测量模式)下操作。在第一操作模式中,随机数生成器可将频率微调模式(ft模式)信号保持在逻辑高,并将振荡器频率微调比特(oftb)保持在逻辑高。
104.当开始信号start在第11时间t11从逻辑低变为逻辑高时,随机数生成器可开始环形振荡器的振荡。随机数生成器可以接收参考时钟信号参考clk,以测量环形振荡器的脉冲信号osc_out的频率。
105.随机数生成器可以测量从第11时间t11到第12时间t12的环形振荡器的脉冲信号osc_out的频率。随机数生成器可通过使用计数器生成环形振荡器的脉冲信号osc_out的计数值of_cnt,并可同时生成参考时钟信号参考clk的计数值参考时钟计数器。随机数生成器可以基于生成的环形振荡器的脉冲信号osc_out的计数值of_cnt和参考时钟信号参考clk的计数值参考时钟计数器,确定是否执行环形振荡器的脉冲信号osc_out的频率微调。当确定需要执行频率微调时,随机数生成器可以从第12时间t12到第13时间t13以逻辑高输出频率微调标志。
106.基于频率微调标志的值,随机数生成器可再次重复环形振荡器的频率测量,并从第14时间t14开始进行微调,同时保持第一操作模式。
107.图11是用于描绘根据本发明构思的实施例的由随机数生成器生成的信号的图。
108.参考图11,随机数生成器在用于生成随机数的第二操作模式下操作环形振荡器。在第21时间t21,当开始信号start从逻辑低变为逻辑高时,随机数生成器可以开始环形振荡器的振荡。在第二操作模式下,环形振荡器的脉冲信号osc_out在振荡特定时间之后可能会停止。
109.随机数生成器可测量环形振荡器输出的脉冲信号osc_out的脉冲数或折叠计数(折叠计数器)。随机数生成器可以基于在振荡结束时的第22时间t22处测量的折叠计数(折叠计数器)来确定折叠计数范围是否满足。例如,当折叠计数有效时,折叠计数范围有效标志(折叠计数范围有效标志)可以在第23时间t23以逻辑高输出,该时间是第22时间t22之后
的两个时钟信号。
110.随机数生成器可在第25时间t25再次执行随机数生成操作。
111.图12是用于描绘根据本发明构思的实施例的由随机数生成器生成的信号的图。
112.参考图12,随机数生成器在用于生成随机数的第二操作模式下操作环形振荡器。在第31时间t31,当开始信号start从逻辑低变为逻辑高时,随机数生成器可以开始环形振荡器的振荡。在第二操作模式下,环形振荡器的脉冲信号osc_out在振荡特定时间之后可能会停止。
113.随机数生成器可以测量环形振荡器的脉冲信号osc_out的脉冲数或折叠计数(折叠计数器)。随机数生成器可以基于在振荡结束时的第32时间t32处测量的折叠计数(折叠计数器)来确定折叠计数范围是否满足。例如,当折叠计数在预设的折叠计数范围之外时,折叠计数范围确定结果可以在第33时间t33处作为折叠计数范围有效标志(折叠计数范围有效标志)信号输出,第33时间t33是第32时间t32之后的2个时钟。随机数生成器可能会更改折叠微调比特,并执行折叠计数微调操作。
114.图13是示出根据本发明构思的实施例的电子签名服务系统600的图。
115.参考图13,根据实施例的电子签名服务系统600可以包括用户终端620、电子签名服务服务器610(其存储用于生成用户的电子签名的数据并向用户提供电子签名服务)、使用电子签名的电子签名使用服务器630以及用于认证电子签名的认证服务器640。
116.电子签名使用服务器630可指由使用电子签名的机构操作的服务器。电子签名使用服务器630可以包括但不限于银行服务器、由公共机构操作的服务器和/或提供电子商务服务的服务器。电子签名使用服务器630可以发布需要用户认证的电子文档,即签名目标文档(即,要签名的文档)。电子签名使用服务器630可以将从签名目标文档导出的签名目标数据发送到用户终端620。签名目标数据可以包括签名目标文档的原始数据,或者可以包括通过处理签名目标文档的原始数据以适合加密而获得的数据。电子签名使用服务器630可以请求用户终端620对签名目标数据进行电子签名。
117.认证服务器640可指由授权认证机构操作的服务器,该认证机构发布并管理认证证书以验证电子签名。授权认证机构的示例可能包括韩国金融电信与清算研究所、韩国信息证书管理局、韩国证券计算公司、韩国电子证书管理局、国家电脑化局和韩国贸易网络。
118.用户终端620可指有权输入电子签名的用户使用的设备。用户终端可以包括但不限于智能手机、平板电脑和/或笔记本电脑。用户终端620可以包括能够与电子签名使用服务器630和电子签名服务服务器610通信的通信单元。用户终端620可以从电子签名使用服务器630接收签名目标数据和签名目标数据的电子签名请求。
119.用户终端620可以通过随机数生成器生成满足用户终端620的电子签名算法方法中的随机数条件的随机数,该随机数生成器的随机性能和比特率性能针对根据图1等中描述的实施例生成电子签名时所需的随机数进行了优化。
120.用户终端620可以请求电子签名服务服务器610生成电子签名,而不是直接生成电子签名。必要时,用户终端620可以将签名目标数据处理成可以容易地进行电子签名的格式,然后将对处理后的签名目标数据的电子签名请求发送到电子签名服务服务器610。在这种情况下,电子签名服务服务器610还可以执行根据图1等中描述的实施例的随机数生成操作。
121.当从电子签名服务服务器610接收到电子签名时,用户终端620可以通过使用电子签名生成电子签名文本。电子签名使用服务器630或认证服务器640以电子签名验证的格式写入电子签名。用户终端620可以将生成的电子签名文本发送到电子签名使用服务器630。
122.图14示出了通过根据本发明构思的实施例生成的电子签名执行安全验证的通信设备的示例。图14示出了在使用wlan的无线通信系统中各种无线通信设备彼此通信的示例。
123.参考图14,家用小工具721、家用电器722、娱乐设备723和接入点(ap)710可以构成物联网(iot)网络系统。家用小工具721、家用电器722、娱乐设备723和ap 710中的每一个都可以执行根据本发明构思的实施例的随机数生成操作,并通过使用随机数生成电子签名。构成物联网网络系统的设备710、721、722和723之间的安全性可以通过每个生成的电子签名来增强。家用小工具721、家用电器722和娱乐设备723可以与ap 710无线通信,家用小工具721、家用电器722和娱乐设备723可以彼此无线通信。
124.虽然已经参考本发明的实施例详细地展示和描述了本发明的概念,但是可以理解,在不脱离以下权利要求的精神和范围的情况下,可以对其进行形式和细节上的各种更改。
技术特征:
1.一种随机数生成器,包括:环形振荡器,包括包含至少一个反相器的反相器链,并生成输出信号;反相选择电路,控制被配置为反相所述反相器链的信号的第一相位反相器;以及控制器,被配置为在用于测量所述环形振荡器的频率的第一操作模式期间操作所述反相选择电路,以向所述反相器链提供所述第一相位反相器的输出,并在用于生成随机数的第二操作模式期间操作所述反相选择电路,以不提供所述第一相位反相器的输出。2.根据权利要求1所述的随机数生成器,其中,所述反相选择电路包括第一相位反相器、缓冲器和第一复用器,以及所述第一复用器在所述第一操作模式期间输出所述第一相位反相器的信号,并在所述第二操作模式期间输出所述缓冲器的信号。3.根据权利要求1所述的随机数生成器,其中,所述至少一个反相器是在p沟道金属氧化物半导体(pmos)和n沟道金属氧化物半导体(nmos)的尺寸比上不同配置的倾斜反相器。4.根据权利要求1所述的随机数生成器,其中,在所述环形振荡器的输出信号由于所述至少一个反相器之间的失配而在振荡特定时段后停止时,所述控制器通过对脉冲数进行计数来生成折叠计数。5.根据权利要求4所述的随机数生成器,其中,所述环形振荡器还包括用于调整所述折叠计数范围的第二复用器,以及所述第二复用器在上升延迟时间和下降延迟时间不同的多个反相器中选择构成所述反相器链的反相器。6.根据权利要求4所述的随机数生成器,其中,所述控制器基于与所述环形振荡器的初始操作相对应的第一折叠计数范围和与所述环形振荡器的随机数生成操作相对应的第二折叠计数范围来校准所述折叠计数范围。7.根据权利要求4所述的随机数生成器,还包括比较器,所述比较器将所述折叠计数与预设折叠计数范围上限值和预设折叠计数范围下限值进行比较,以校准所述折叠计数。8.根据权利要求4所述的随机数生成器,其中,当所述折叠计数超出预设范围时,所述控制器校准所述折叠计数。9.根据权利要求6所述的随机数生成器,其中,所述第二折叠计数范围的下限值小于所述第一折叠计数范围的下限值,所述第二折叠计数范围的上限值大于所述第一折叠计数范围的上限值。10.根据权利要求1所述的随机数生成器,其中,所述环形振荡器的输出信号在所述第一操作模式下保持振荡,以及所述控制器通过比较所述输出信号和参考时钟信号来调整所述输出信号的频率。11.根据权利要求1所述的随机数生成器,其中,所述环形振荡器还包括用于调整所述输出信号的频率的第三复用器,以及所述第三复用器被配置为通过接收构成所述反相器链的反相器的输出来选择构成所述反相器链的多个反相器。12.一种由随机数生成器执行的随机数生成方法,所述随机数生成方法包括:确定当前模式被设置为第一操作模式还是第二操作模式;当确定所述当前模式被设置为所述第一操作模式时,反相环形振荡器的第一信号的相
位以测量和校准所述环形振荡器的频率;以及当确定所述当前模式被设置为所述第二操作模式时,使用所述环形振荡器生成随机数而不反相所述相位,其中,所述环形振荡器包括至少一个反相器,并生成输出信号作为所述随机数的基础。13.根据权利要求12所述的随机数生成方法,其中,反相所述第一信号的所述相位包括通过第一复用器提供第一相位反相器的输出,以及生成所述随机数包括通过所述第一复用器提供缓冲器的输出。14.根据权利要求12所述的随机数生成方法,其中,生成所述随机数包括在所述环形振荡器的输出信号由于所述至少一个反相器之间的失配而振荡特定时段后停止时,通过测量脉冲数来生成折叠计数。15.根据权利要求14所述的随机数生成方法,还包括:在所述随机数生成器的初始操作中,基于第一折叠计数范围校准所述折叠计数范围;以及在所述随机数生成器的初始后操作中,基于第二折叠计数范围校准所述折叠计数范围。16.根据权利要求15所述的随机数生成方法,其中,所述第二折叠计数范围的下限值小于所述第一折叠计数范围的下限值,所述第二折叠计数范围的上限值大于所述第一折叠计数范围的上限值。17.根据权利要求12所述的随机数生成方法,还包括在频率校准期间保持所述输出信号的振荡,并通过将所述输出信号与参考时钟信号进行比较来调整所述输出信号的频率。18.一种环形振荡器,包括:反相器链,包括多个反相器;反相选择电路,控制第一相位反相器,用于反相所述反相器链的信号;以及其中,控制器在用于测量所述环形振荡器的频率的第一操作模式期间操作所述反相选择电路,以向所述反相器链提供所述第一相位反相器的输出,并在用于生成随机数的第二操作模式期间操作所述反相选择电路,以不提供所述相位反相器的输出。19.根据权利要求18所述的环形振荡器,还包括选择在上升延迟时间和下降延迟时间不同的多个反相器中的一个以调整用于生成所述随机数的折叠计数范围的第二复用器。20.根据权利要求18所述的环形振荡器,其中,所述输出信号在所述第一操作模式下保持振荡,以及所述控制器通过比较所述输出信号和参考时钟信号来调整所述输出信号的频率。
技术总结
一种随机数生成器,包括环形振荡器、反相选择电路和控制器。环形振荡器包括具有至少一个反相器的反相器链,并生成输出信号。反相选择电路,控制被配置为反相反相器链的信号的相位反相器。控制器被配置为在用于测量环形振荡器的频率的第一操作模式期间操作反相选择电路以向反相器链提供第一相位反相器的输出,并且在用于生成随机数的第二操作模式期间操作反相选择电路以不提供相位反相器的输出。反相选择电路以不提供相位反相器的输出。反相选择电路以不提供相位反相器的输出。