一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于生成随机数的方法和半导体器件与流程

2023-02-19 12:26:47 来源:中国专利 TAG:

用于生成随机数的方法和半导体器件
1.有关申请的交叉引用
2.于2021年8月10日提交的日本专利申请no.2021-130994的公开内容,包括说明书、附图和摘要在内,通过引用全部并入本文。
技术领域
3.本发明涉及一种半导体器件,并且可以被应用于例如具有安全功能的半导体器件。


背景技术:

4.近年来,在作为半导体器件示例的ecu(电子控制单元)的领域中,在ecu之间的通信中,对于防止恶意第三方的威胁的安全要求的重要性不断提高。
5.下面列出了所公开的技术。
6.[专利文件1]日本未审查专利申请公开no.2018-106628
[0007]
例如,专利文件1公开了一种被配置为用于汽车ecu的配备有安全ip(知识产权)的微控制器的半导体器件。该半导体器件具有cpu(中央处理单元)和安全ip。安全ip通过响应于来自cpu的处理请求而使用由其自身管理的硬件资源来向cpu提供安全功能。硬件资源的示例包括加密引擎、随机数生成器等等。


技术实现要素:

[0008]
一般来说,安全ip每次使用随机数时,都会消耗由随机数生成器生成的预定随机数数量,并且当所生成的随机数被耗尽时,需要重新生成随机数。如果安全ip在从cpu接收到针对加密处理的请求之后请求随机数生成器生成随机数,则使用随机数来完成加密处理需要时间。
[0009]
根据本说明书的描述和附图,其它问题和新颖性特征将是显而易见的。
[0010]
下面将简要描述本公开中的典型实施例的概要。也就是说,一种半导体器件,包括第一控制单元、第二控制单元、随机数生成器、在其中存储由随机数生成器生成的随机数的第一存储器、被配置为通过使用存储在第一存储器中的随机数来执行加密和解密处理的加密引擎、以及在其中存储与随机数生成有关的信息的第二存储器。第二控制单元被配置为通过随机数生成器基于与随机数生成有关的信息来生成随机数。
附图说明
[0011]
图1是示出根据实施例的两个半导体器件之间的通信的概念的框图。
[0012]
图2是示出根据实施例的半导体器件的配置的框图。
[0013]
图3是示出图1中所示的安全ip的配置的框图。
[0014]
图4是示出图2中所示的安全ip的安全cpu的处理的功能框图。
[0015]
图5是示出在数据闪存中存储与随机数生成有关的信息的流程的时序图。
[0016]
图6是示出第一示例中的半导体器件的处理流程的时序图。
[0017]
图7是示出对比性示例中的半导体器件的处理流程的时序图。
[0018]
图8是示出第二示例中的半导体器件的处理流程的时序图。
[0019]
图9是示出第三示例中的半导体器件的处理流程的时序图。
[0020]
图10是示出第三示例中的随机数保存区域中的随机数数量(random number amount)的转变的示例的图像图。
[0021]
图11是示出在cpu的假定的操作(assumed operation of the cpu)的第一情况下的随机数数量的转变的示例的图像图。
[0022]
图12是示出在cpu的假定的操作的第二情况下的随机数数量的转变的示例的图像图。
[0023]
图13是示出在cpu的假定的操作的第三情况下的随机数数量的转变的示例的图像图。
具体实施方式
[0024]
在下文中,将参考附图描述实施例、示例和修改。然而,在以下描述中,相同的组件由相同的附图标记来标示,并且在一些情况下将省略其重复描述。
[0025]
将参考图1描述根据实施例的两个半导体器件之间的通信。
[0026]
半导体器件11和半导体器件12通过信号线13连接,并且可以相互执行数据通信。然后,半导体器件11和半导体器件12被配置为能够通过使用由它们二者预先持有的公共密钥、通过使用预定加密处理算法,来对待传送的数据进行加密和解密。此外,半导体器件11和半导体器件12被配置为具有相同的功能,并且发射侧和接收侧可以在其间相互交换。
[0027]
具体地,半导体器件11和半导体器件12可以被配置为用于汽车ecu的配备有安全ip(知识产权)的微控制器。半导体器件11和半导体器件12可以被安装在同一汽车或不同的汽车上。此外,半导体器件11和半导体器件12中的每个半导体器件也可以被称为半导体芯片。
[0028]
例如,半导体器件11通过使用公共密钥对待发送的明文和随机数进行加密来创建密文。此后,半导体器件11将密文发送到半导体器件12。半导体器件12通过使用公共密钥对所接收的密文进行解密来获取明文和随机数。如果在与公共密钥相同的定时(timing)共享明文位置,则半导体器件12可以从解密结果中仅提取半导体器件11想要发送的明文。
[0029]
将参考图2描述根据实施例的半导体器件11。
[0030]
半导体器件11包括cpu 100、安全ip 200、数据闪存300、用户ram 400和通信接口(i/f)500。在半导体器件11中,这些元件经由总线600彼此连接。半导体器件12具有与半导体器件11相同的配置。
[0031]
cpu 100根据用户程序(用户应用)执行各种处理。安全ip 200使用随机数执行诸如加密处理的安全处理。例如,cpu 100请求(指使(instruct))安全ip 200执行安全处理。然后,当安全ip 200从cpu 100接收到指令时,安全ip 200执行所指使的安全处理。
[0032]
安全ip 200具有由作为易失性存储器的sram(静态随机存取存储器)组成的安全ram 220。作为第一存储器的安全ram 220是可以从安全ip 200访问但不能从cpu 100直接访问的存储器。安全ip 200由稍后描述的随机数生成器生成的随机数存储在安全ram 220
中。安全ram 220仅需要可从安全ip 200访问,并且不必被内置在安全ip 200中。
[0033]
数据闪存(data flash)300由作为非易失性存储器的闪存存储器组成,并且具有按逻辑划分的安全区域310和用户区域320。作为第二存储器的数据闪存300的安全区域310是可以从安全ip 200访问但不能从cpu 100直接访问的区域。注意,安全区域310可以被内置在安全ip 200中。从cpu 100和安全ip 200都可以访问用户区域320。安全区域310存储与在安全ip 200等中使用的随机数生成有关的信息。用户区域320存储例如由cpu 100执行的用户程序和由用户程序使用的数据。第一控制单元由cpu 100和数据闪存300的用户区域320来配置。
[0034]
用户ram 400是易失性存储器,并且cpu 100在执行各种处理等时使用用户ram 400作为工作区。此外,用户ram 400是cpu 100和安全ip 200之间的共享存储器。例如,cpu 100将向安全ip 200请求的安全处理的目标数据存储在用户ram 400中。此外,安全ip 200将经受安全处理的数据存储在用户ram 400中。
[0035]
通信i/f 500是用于经由信号线13来与半导体器件11的外部(例如,半导体器件12)进行通信的接口。
[0036]
将参考图3描述根据实施例的安全ip 200的配置。
[0037]
安全ip 200包括例如安全cpu 210、安全ram 220、加密引擎230、随机数生成器240、cpu接口(cpu i/f)250和闪存接口(flash i/f)260。cpu接口250是用于连接安全ip 200和cpu 100的接口(见图2)。例如,cpu接口250具有向cpu 100发送中断请求的功能和从cpu 100接收中断请求的功能。此外,闪存接口260是用于连接安全ip 200和数据闪存300的接口。
[0038]
安全cpu 210控制各种安全处理的实现。加密引擎230执行与加密有关的处理。随机数生成器240生成随机数。安全cpu 210通过使用加密引擎230、随机数生成器240等来执行各种安全处理,包括加密处理、解密处理和随机数生成。安全cpu 210通过例如从数据闪存300的安全区域310读取程序并执行该程序来执行安全处理。
[0039]
安全cpu 210通过cpu接口250来与cpu 100通信。cpu 100指使(请求)安全cpu 210在数据闪存300的安全区域310中存储与随机数生成有关的信息。当cpu 100指使安全cpu 210存储与随机数生成有关的信息时,安全cpu 210通过闪存接口260访问数据闪存300,并将与随机数生成有关的指定信息存储(保存)在安全区域310中。
[0040]
此外,cpu 100指使安全cpu 210执行安全处理。当cpu 100指使安全cpu 210执行安全处理时,安全cpu 210执行所指使的安全处理。此时,安全cpu 210通过使用存储在数据闪存300的安全区域310中的、与随机数生成有关的信息来执行随机数生成。例如,在安全cpu 210使用与随机数生成有关的信息来执行随机数生成之前,给出用于将与随机数生成有关的信息存储在数据闪存300的安全区域310中的指令。
[0041]
将参考图4描述执行安全ip 200的功能的控制单元。
[0042]
控制单元211包括发射/接收单元(s/r_u)212、加密处理单元(enc_u)213、随机数管理单元(rnm_u)214、随机数生成控制单元(rgc_u)215、随机数生成设置管理单元(rsm_u)216和数据闪存控制单元(dfc_u)217。在这里,作为第二控制单元的控制单元211具有包括安全cpu 210和在其中存储由安全cpu 210执行的程序的安全区域310的配置。发射/接收单元(s/r_u)212与cpu 100通信。加密处理单元(enc_u)213使用随机数执行加密处理(以下简
称为加密处理)。随机数管理单元(rnm_u)214管理随机数的生成。随机数生成控制单元(rgc_u)215控制随机数生成器240。随机数生成设置管理单元(rsm_u)216管理与随机数生成有关的信息的设置。数据闪存控制单元(dfc_u)217控制数据闪存300的安全区域310的访问。
[0043]
将参考图5描述数据闪存中与随机数生成有关的信息的存储。
[0044]
cpu 100请求安全cpu 210将与随机数生成(rgd)有关的信息存储在数据闪存300中(步骤s121)。发射/接收单元(s/r_u)212从cpu 100接收请求,并请求随机数生成设置管理单元(rsm_u)216存储与随机数生成有关的信息(步骤s122)。
[0045]
随机数生成设置管理单元(rsm_u)216接收该请求并执行认证(步骤s123)。使用例如公共密钥来执行认证。如果需要,则加密引擎230和随机数生成器240可以被用于认证。
[0046]
如果认证失败,则随机数生成设置管理单元(rsm_u)216在该点结束处理,并且向发射/接收单元(s/r_u)212通知认证已经失败(步骤s124)。发射/接收单元(s/r_u)212从随机数生成设置管理单元(rsm_u)216接收通知,并且向cpu 100通知认证已经失败(步骤s125)。
[0047]
如果认证成功,则随机数生成设置管理单元(rsm_u)216请求数据闪存控制单元(dfc_u)217将与随机数生成(rgd)有关的信息存储在数据闪存300的安全区域310中(步骤s126)。数据闪存控制单元(dfc_u)217将与随机数生成(rgd)有关的信息存储在数据闪存300的安全区域310中(步骤s127)。
[0048]
当与随机数生成(rgd)有关的信息的存储完成时,数据闪存控制单元(dfc_u)217向随机数生成设置管理单元(rsm_u)216通知存储完成(步骤s128)。随机数生成设置管理单元(rsm_u)216从数据闪存控制单元(dfc_u)217接收通知,并向发射/接收单元(s/r_u)212通知存储完成(步骤s129)。发射/接收单元(s/r_u)212从随机数生成设置管理单元(rsm_u)216接收通知,并向cpu 100通知存储完成(步骤s130)。
[0049]
关于实施例中与随机数生成(rgd)有关的信息,下面将描述第一示例、第二示例和第三示例。
[0050]
第一示例
[0051]
将参考图6描述第一示例中的半导体器件11的处理。
[0052]
cpu 100请求安全cpu 210执行加密处理(步骤s101)。发射/接收单元(s/r_u)212从cpu 100接收请求,并请求加密处理单元(enc_u)213执行该处理(步骤s102)。
[0053]
加密处理单元(enc_u)213请求随机数管理单元(rnm_u)214获取随机数(步骤s103)。随机数管理单元(rnm_u)214从安全ram 220获取随机数(步骤s104)。随机数管理单元(rnm_u)214将随机数返回给加密处理单元(enc_u)213(步骤s105)。在这里,为了简化描述,假设随机数生成在随机数生成器240中完成,并且随机数被存储在安全ram 220中。
[0054]
加密处理单元(enc_u)213基于所获取的随机数来执行加密处理(步骤s106)。加密处理单元(enc_u)213根据需要操作加密引擎230。
[0055]
当加密处理完成时,加密处理单元(enc_u)213向发射/接收单元(s/r_u)212通知处理完成(步骤s107)。发射/接收单元(s/r_u)212从加密处理单元(enc_u)213接收通知,并向cpu 100通知处理完成(步骤s108)。
[0056]
当加密处理完成时,加密处理单元(enc_u)213向随机数管理单元(rnm_u)214通知
加密处理的完成(步骤s109)。当加密处理单元(enc_u)213已经使用存储在安全ram 220中的随机数时,随机数管理单元(rnm_u)214从安全ram 220中删除随机数。
[0057]
随机数管理单元(rnm_u)214请求随机数生成设置管理单元(rsm_u)216获取与随机数生成(rgd)有关的信息(步骤s110)。随机数生成设置管理单元(rsm_u)216从随机数管理单元(rnm_u)214接收请求,并请求数据闪存控制单元(dfc_u)217获取与随机数生成(rgd)有关的信息(步骤s111)。数据闪存控制单元(dfc_u)217从随机数生成设置管理单元(rsm_u)216接收请求,并从数据闪存300的安全区域310读取与随机数生成(rgd)有关的信息(步骤s112)。数据闪存控制单元(dfc_u)217将与随机数生成(rgd)有关的信息提供给随机数生成设置管理单元(rsm_u)216(步骤113)。随机数生成设置管理单元(rsm_u)216将与随机数生成(rgd)有关的信息返回给随机数管理单元(rnm_u)214(步骤s114)。在这里,与第一示例中的随机数生成(rgd)有关的信息是在其处随机数生成开始处的剩余随机数数量(rndth)。
[0058]
随机数管理单元(rnm_u)214确定是否需要随机数生成(步骤s115)。当加密处理单元(enc_u)213使用随机数来执行加密处理时,存储在安全ram 220中的随机数被消耗并且随机数数量减少。随机数管理单元(rnm_u)214通过将存储在安全ram 220中的随机数数量(剩余随机数数量)与rndth进行比较,来确定是否需要随机数生成。当剩余随机数数量等于或小于rndth并且确定需要随机数生成时,随机数管理单元(rnm_u)214请求随机数生成控制单元(rgc_u)215生成随机数(步骤s116)。随机数生成控制单元(rgc_u)215通过随机数生成器240生成随机数(步骤s117)。随机数生成控制单元(rgc_u)215将由随机数生成器240生成的随机数给予随机数管理单元(rnm_u)214(步骤s118)。随机数管理单元(rnm_u)214将所获取的随机数存储在安全ram 220中(步骤s119)。
[0059]
将参考图6和图7描述第一示例的优点。
[0060]
首先,将描述对比性示例以便阐明第一示例。如图7中所示,在对比性示例中,在从cpu 100接收到针对加密处理的请求之后,安全cpu 210请求随机数生成。
[0061]
即,cpu 100请求安全cpu 210执行加密处理(步骤s101)。发射/接收单元(s/r_u)212从cpu 100接收请求,并请求加密处理单元(enc_u)213执行该处理(步骤s102)。加密处理单元(enc_u)213从发射/接收单元(s/r_u)212接收请求,并请求随机数管理单元(rnm_u)214生成随机数(步骤s103)。随机数管理单元(rnm_u)214从加密处理单元(enc_u)213接收请求,并请求随机数生成控制单元(rgc_u)215生成随机数(步骤s116)。
[0062]
随机数生成控制单元(rgc_u)215通过随机数生成器240生成随机数(步骤s117)。随机数生成控制单元(rgc_u)215将由随机数生成器240生成的随机数给予随机数管理单元(rnm_u)214(步骤s118)。随机数管理单元(rnm_u)214将随机数返回给加密处理单元(enc_u)213(步骤s105)。
[0063]
另一方面,在第一示例中,如上所述,在加密处理之后,安全cpu 210确定是否生成随机数,并根据需要开始随机数生成。即,如图6中所示,在步骤s106之后,随机数管理单元(rnm_u)214确定是否需要随机数生成(步骤s115),并且当确定需要随机数生成时,随机数管理单元(rnm_u)214请求随机数生成控制单元(rgc_u)215生成随机数(步骤s116)。
[0064]
当安全cpu 210请求随机数生成器240生成随机数而不等待来自cpu 100的随机数生成请求时,当从cpu 100观察时,提前开始随机数生成。因此,可以缩短直到由cpu 100请
求的加密处理的完成的时间(从步骤s101开始到步骤s108结束的时间)。假设图6中所示的从步骤s101开始到步骤s108结束的时间为ta,并且图7中所示的从步骤s101开始到步骤s107结束的时间为tb,则ta比tb短(ta《tb)。
[0065]
第二示例
[0066]
接下来,将描述第二示例。在第二示例中,安全ip 200在数据闪存300的安全区域310中存储触发数据(trg),触发数据(trg)指使安全cpu 210或cpu 100中的哪个请求随机数生成的开始。
[0067]
将参考图8描述第二示例中的半导体器件的处理。
[0068]
在第二示例中的安全ip 200中,可以选择是安全cpu 210确定并向随机数生成器240请求随机数生成还是在等待来自cpu 100的请求之后执行随机数生成。即,安全ip 200被配置为能够选择第一示例的操作和对比性示例的操作。指示安全cpu 210或cpu 100中的哪一者请求随机数生成的开始的触发数据(trg)被存储在数据闪存300的安全区域310中。安全cpu 210从数据闪存300的安全区域310读取触发数据(trg),并根据触发数据(trg)开始随机数生成。在这里,触发数据(trg)是与随机数生成(rgd)有关的信息。触发数据(trg)按照图5中所示的顺序而被存储在数据闪存300的安全区域310中。
[0069]
关于第二示例中的半导体器件的处理,下面将主要描述与第一示例的不同之处。第二示例中的步骤s101和s102与第一示例中的步骤s101和s102相同。
[0070]
在第二示例中,在加密处理开始处,加密处理单元(enc_u)213经由随机数生成设置管理单元(rsm_u)216和数据闪存控制单元(dfc_u)217而从数据闪存300的安全区域310读取触发数据(trg)。因此,触发数据(trg)被设置。
[0071]
即,加密处理单元(enc_u)213请求随机数生成设置管理单元(rsm_u)216获取触发数据(trg)(步骤s131)。随机数生成设置管理单元(rsm_u)216从加密处理单元(enc_u)213接收请求,并请求数据闪存控制单元(dfc_u)217获取触发数据(trg)(步骤s132)。数据闪存控制单元(dfc_u)217从随机数生成设置管理单元(rsm_u)216接收请求,并从数据闪存300的安全区域310读取触发数据(trg)(步骤s133)。数据闪存控制单元(dfc_u)217将触发数据(trg)提供给随机数生成设置管理单元(rsm_u)216(步骤s134)。随机数生成设置管理单元(rsm_u)216接收触发数据(trg),并将触发数据(trg)提供给加密处理单元(enc_u)213(步骤s135)。
[0072]
当触发数据(trg)指示cpu 100请求随机数生成(trg=cpu)时,安全cpu 210根据图7中交替的点划线b所示的顺序执行该处理。当触发数据(trg)指示安全cpu 210请求随机数生成(trg=sip)时,安全cpu 210根据图6中交替的点划线a所示的顺序来执行该处理。
[0073]
第一示例的对比性示例具有完成加密处理所花费的时间的问题。另一方面,由于在加密处理中开始随机数生成,因此当从cpu 100观察时,直到加密处理完成的时间是恒定的。当功能的响应性能如上所述恒定时,可以方便使用该功能的应用的设计。
[0074]
在第一示例中,安全cpu 210确定并请求随机数生成,并且因此从cpu 100观察的加密处理的完成时间取决于随机数生成器240生成随机数的进度而改变。即,当cpu 100在随机数生成器240生成随机数期间请求加密处理时,如果所生成的随机数小于加密处理所需的随机数,则直到随机数生成器完成随机数的生成才开始加密处理。因此,处理时间取决于cpu 100请求加密处理的定时而不同。因此,当从cpu 100观察时,加密处理的完成时间可
能会无意地改变。另一方面,当安全cpu 210请求随机数生成器240生成随机数而不等待来自cpu100的针对随机数生成的请求时,当从cpu 100观察时,可以提前开始随机数生成。可以缩短完成cpu 100所请求的加密处理所需的时间。
[0075]
在cpu 100假定其中加密处理的响应时间不恒定的系统被认为是异常的情况下,用户选择cpu 100作为用于随机数生成的请求器(触发器)。此外,在cpu 100假定其中预期尽可能快的响应而不考虑加密处理的恒定响应时间的系统的情况下,用户选择安全cpu 210作为用于随机数生成的请求器。即,在第二示例中,cpu 100可以将用于开始随机数生成的触发器设置到随机数生成器240。结果,用户可以取决于情况而选择加密处理的完成时间允许上面提及的优点和缺点中的哪一个。
[0076]
第三示例
[0077]
接下来,将描述第三示例。在第三示例中,cpu 100被配置为能够设置在安全ip 200的安全ram 220中用于保存随机数而保留的区域的大小、以及当开始随机数生成的剩余随机数数量。在第一示例中,处理时间相对于直到随机数生成的时间、消耗量和处理请求的频率而无意地改变。这是因为用于确定是否单独开始随机数生成的阈值(rndth)不能应对在短时间内连续请求使用随机数的加密处理的情况。随机数生成器240的操作时间通常是加密处理的时间的10倍或更长。因此,当在短时间内连续请求加密处理时,需要在安全ram 220中保存随机数并从那里消耗它们。因此,有必要使得不仅能够设置rndth,而且能够设置在安全ram 220中用于保存随机数而保留的区域的大小。
[0078]
将参考图9和图10描述第三示例中的半导体器件的处理。
[0079]
安全cpu 210被配置为能够将触发随机数生成的频率和随机数生成器240的操作时间设置到随机数生成器240。即,cpu 100可以设置在安全ram 220中用于保存随机数而保留的区域的大小(rndmax)和随机数生成开始处的剩余随机数数量(rndth),这在第一示例中是固定的。在这里,rndmax和rndth是与随机数生成(rgd)有关的信息。用于在数据闪存300的安全区域310中存储与随机数生成(rgd)有关的信息的过程与第一示例的图5中的顺序相同。
[0080]
关于第三示例中的半导体器件的处理,下面将主要描述与第一示例的不同之处。第三示例中的步骤s101至s119与第一示例中的步骤s101至s119相同。然而,存储在数据闪存300的安全区域310中的与随机数生成(rgd)有关的信息是不同的。
[0081]
随机数管理单元(rnm_u)214确定是否需要随机数生成(步骤s115)。当随机数管理单元(rnm_u)214确定存储在安全ram 220中的随机数数量(剩余随机数数量)等于或小于rndth并且需要随机数生成时,随机数管理单元(rnm_u)214请求随机数生成控制单元(rgc_u)215生成随机数(步骤s116)。随机数生成控制单元(rgc_u)215通过随机数生成器240生成随机数(步骤s117)。随机数生成控制单元(rgc_u)215将由随机数生成器240生成的随机数给予随机数管理单元(rnm_u)214(步骤s118)。随机数管理单元(rnm_u)214将所获取的随机数存储在安全ram 220中(步骤s119)。
[0082]
如上所述,可以由cpu 100设置和改变的与随机数生成(rgd)有关的信息是rndmax和rndth。然后,cpu 100可以通过改变rndmax和rndth的设置值,来控制安全cpu 210请求随机数生成的定时和随机数生成器240的操作时间。
[0083]
此时,使用随机数的加密处理的执行次数和随机数保存区域中的随机数数量如图
10中所示。如图10中所示,状态a是随机数生成器240已经完成随机数生成的状态,并且安全ram 220的随机数保存区域中的随机数数量是rndmax。状态b是通过加密处理获取(消耗)随机数的状态,并且安全ram 220的随机数保存区域中的随机数数量小于rndmax。状态c是安全ram 220的随机数保存区域中的随机数数量等于或小于rndth的状态,并且随机数管理单元(rnm_u)214请求随机数生成器240生成随机数。
[0084]
通过与第二示例不同的方法,第三示例解决了当从cpu 100观察时使用随机数的加密处理的完成时间可能无意改变的第一示例的问题。在第三示例中,cpu 100设置随机数生成器240的操作的频率和时间,并且安全cpu 210基于该设置确定是否操作随机数生成器240。换言之,cpu 100可以通过设置来在需要时准备随机数,并且可以在不保持等待随机数生成器240的情况下执行加密处理。
[0085]
在第三示例中,cpu 100可以设置安全cpu 210操作随机数生成器的条件,使得安全cpu 210可以在cpu 100的最佳时间向cpu 100提供加密处理。
[0086]
下面将描述为cpu 100的用户选择随机数生成的设置的方法以及在cpu 100的处理中假定的用于选择rndmax和rndth的设置的标准。
[0087]
在cpu 100的处理中假定的其它参数如下。
[0088]
一次加密处理中使用的随机数数量:rnddelta
[0089]
连续请求加密处理的阶段(rqs)的时间:treq
[0090]
未请求加密处理的阶段(nqs)的时间:tnreq
[0091]
在连续请求加密处理的阶段中请求处理的周期之间的间隔:tperi
[0092]
随机数生成器240生成用于rnddelta的随机数的时间:trnddelta
[0093]
此时,用于在请求加密处理的阶段(rqs)中防止随机数耗尽的条件由下面的等式(1)表达。
[0094]
treq/tperi*rnddelta《rndmax...(1)
[0095]
用于在请求加密处理的阶段(rqs)中不操作随机数生成器240的条件由下面的等式(2)表达。
[0096]
treq/tperi*rnddelta《(rndmax-rndth)...(2)
[0097]
treq、tnreq和tperi的值由cpu 100的处理中假定的操作来确定。trnddelta的值由安全ip 200的随机数生成器240的执行来确定。以这种方式,rndmax和rndth的设置值可以根据cpu 100的处理中假定的操作来确定。
[0098]
接下来,针对cpu 100的处理,假定三种情况,并且将参考图11至图13描述每种情况的设置示例。图11至图13中所示的黑色三角形(

)指示执行使用随机数的加密处理的定时。
[0099]
(第一情况)
[0100]
如图11中所示,第一情况下的cpu 100的处理假定其中请求加密处理的阶段(rqs)和其中不请求加密处理的阶段(nqs)交替出现。
[0101]
用于在请求加密处理的阶段(rqs)中不操作随机数生成器240和防止随机数耗尽的条件由上述等式(2)表达。
[0102]
用于在不请求加密处理的阶段(nqs)中完成随机数生成的条件由下面的等式(3)表达。
[0103]
trnddelta*(treq/tperi*rnddelta)《tnreq...(3)
[0104]
通过调整rndmax和rndth以满足等式(2)和(3)的条件,cpu 100可以在不等待随机数生成时间的情况下执行加密处理。此外,由于等式(3)是随机数生成的执行和处理请求的频率之间的关系表达式,因此它被用来确定安全ip 200的执行是否能够满足cpu 100的处理假设。
[0105]
(第二情况)
[0106]
接下来,如图12中所示,在第二情况下,cpu 100的处理假定其中请求加密处理的阶段(rqs)在整个周期持续。由于加密处理的请求持续不断,因此需要在加密处理的请求之间的间隔(tperi)中生成随机数。
[0107]
用于保护加密处理中使用的随机数数量的条件需要满足下面的等式(4)。
[0108]
rndmax》rnddelta...(4)
[0109]
在执行随机数生成之前用于加密处理的请求的数量由下面的等式(5)来表达。在图12中,请求的数量被表示为1。
[0110]
(rndmax-rndth)/rnddelta...(5)
[0111]
由于需要在加密处理的请求之间的间隔(tperi)中生成随机数,所以从等式(5)导出下面的等式(6)的条件。
[0112]
trnddelta*(rndmax-rndth)/rnddelta《tperi...(6)
[0113]
通过在满足等式(4)和(6)的条件下调整rndmax和rndth,cpu 100可以在不等待随机数生成时间的情况下执行加密处理。此外,由于等式(4)和(6)包括随机数生成的执行和处理请求的频率,因此安全ip 200的执行是否能够满足cpu 100的处理假设也一起被确定。
[0114]
(第三情况)
[0115]
最后,如图13中所示,在第三情况下,cpu 100的处理假定以长间隔请求加密处理的阶段(rqls)和以短间隔请求加密处理的阶段(rqss)交替出现。
[0116]
将以长间隔请求加密处理的阶段(rqls)的时间定义为treq(长),并且将以短间隔请求加密处理的阶段(rqss)的时间定义为treq(短)。在这些阶段中,加密处理的请求之间的间隔分别被定义为tperi(长)和tperi(短)。
[0117]
此外,对于其中以长间隔请求加密处理的阶段(rqls)和其中以短间隔请求加密处理的阶段(rqss)中的每一者,设置和改变rndth。在以长间隔请求加密处理的阶段(rqls)中开始随机数生成的剩余随机数数量被定义为rndth(长)。此外,在以短间隔请求加密处理的阶段(rqss)中开始随机数生成的剩余随机数数量被定义为rndth(短)。以长间隔请求加密处理的阶段(rqls)和以短间隔请求加密处理的阶段(rqss)之间的改变时间被定义为tchange。tchange是从以长间隔请求加密处理的阶段(rqls)中的最后处理请求到以短间隔请求加密处理的阶段(rqss)中的第一处理请求的时间,以及从rqss阶段中的最后处理请求到rqls阶段中的第一处理请求的时间。
[0118]
在以长间隔请求加密处理的阶段(rqls)中,rndmax和rndth要满足的条件与上面提及的第二情况下的等式(4)和(6)的相同。
[0119]
此外,由于在以短间隔请求加密处理的阶段(rqss)中,处理请求在短时间内到来,所以有必要防止随机数数量操作随机数生成器240以及防止随机数的耗尽。此外,在以短间隔请求加密处理的阶段(rqss)中消耗的随机数需要在tchange期间生成,tchange是直到下
一个请求的时间。
[0120]
在以短间隔请求加密处理的阶段(rqss)中,rndmax和rndth要满足的条件是下面的等式(7)和(8)。
[0121]
treq(短)/tperi(短)*rnddelta《(rndmax-rndth(短))...(7)
[0122]
treq(短)/tperi(短)*trnddelta《tchange...(8)
[0123]
在以长间隔请求加密处理的阶段(rqls)中,在满足等式(4)和(6)的条件下调整rndmax和rndth。然后,在以短间隔请求加密处理的阶段(rqss)中,在满足等式(7)和(8)的条件下调整rndmax和rndth。结果,cpu 100可以在不等待随机数生成时间的情况下执行加密处理。此外,由于等式(7)和(8)包括随机数生成的执行和处理请求的频率,因此安全ip 200的执行是否能够满足cpu100的处理假设也一起被确定。
[0124]
在上文中,已经基于实施例和示例具体描述了公开者所做出的公开,但是不言而喻,本公开不限于上述实施例和示例,并且可以在不脱离其主旨的范围内进行各种修改。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献