提供了一种机器指令,该机器指令包括提供操作代码的操作代码字段,所述操作代码用于标识执行伪随机数操作,以及用来标识寄存器的寄存器字段,所述寄存器用来指明被使用的第二操作数的存储器中的位置。所述机器指令被执行,并且执行包括:对于所述第一操作数的一个或多个存储器的块中的每一个存储器的块,使用512比特安全哈希技术以及所述机器指令的参数块中的至少一个种子值产生哈希值;以及将所述产生的哈希值的至少一部分存储在所述第一操作数的对应的存储器的块中,所述产生的哈希值是伪随机数的至少一部分。
【技术实现步骤摘要】
【国外来华专利技术】【专利说明】执行伪随机数产生操作的指令
技术介绍
-个或多个方面一般地涉及在计算环境中的处理,更具体地涉及与在计算机程序 或其他类型的程序中使用的产生伪随机数相关的处理。 伪随机数是表现为随机但并不真实随机的数。它们是由提供统计上随机数的确定 性计算过程产生的数。由于这些数被确定性过程产生后,如果起始点是已知的,给定的数据 序列可以在之后被产生。也就是说,给定具体的函数和种子值,同样的数据序列由该函数产 生。 伪随机数被用于许多计算机应用程序中,例如,仿真、密码学、以及过程产生等。存 在多种方式来产生可用于这些应用程序中的伪随机数。这些方式包括,例如,程序库子例 程,以及具有在一些处理器(例如能用于IBM? Z/架构的处理器)上可用的链式指令的密 码消息的受限函数。
技术实现思路
通过提供一种用于执行机器指令的方法、系统和计算机程序,如所要求的,现有技 术的不足被克服,并且优势被提供。 通过一个或多个方面的技术手段,附加的特征和优势可以被实现。其他的实施例 和方面在本文中被详细描述并且被认为是权利要求的一部分。【附图说明】 作为说明书结尾的权利要求中的示例,一个或多个方面被具体地指出并且清楚地 被要求。从以下与附图相结合的详细说明,上述的以及其他对象、特征和优势是明显的,其 中: 图IA描述了用来结合和使用一个或多个方面的计算环境的一个示例; 图IB描述了图IA的处理器的进一步的细节; 图2A描述了用来结合和使用一个或多个方面的计算环境的另一个示例; 图2B描述了图2A的存储器的进一步的细节; 图3A描述了执行伪随机数操作指令的格式的一个实施例; 图3B描述了被图3A的执行伪随机数操作指令使用的通用寄存器O(GRO)的内容 的一个示例; 图3C描述了被图3A的执行伪随机数操作指令使用的通用寄存器I(GRl)的内容 的一个示例; 图3D描述了一个方面中被图3A的执行伪随机数操作指令使用的寄存器Rl的内 容的一个实施例; 图3E描述了一个方面中被图3A的执行伪随机数操作指令使用的寄存器R1+1的 内容的一个实施例; 图3F描述了一个方面中被图3A的执行伪随机数操作指令使用的寄存器R2的内 容的一个实施例; 图3G描述了一个方面中被图3A的执行伪随机数操作指令使用的寄存器R2+1的 内容的一个实施例; 图3H描述了与被图3A的执行伪随机数操作指令指定的函数代码相关的处理的一 个示例; 图31描述了与检查被图3A的执行伪随机数操作指令指定的修饰指示符相关的处 理的一个示例; 图4A描述了被具有为0的函数代码的执行伪随机数操作指令使用的参数块的格 式的一个不例; 图4B描述了被具有为3的函数代码的执行伪随机数操作指令使用的参数块的格 式的一个实施例; 图5A描述了用于实例化操作的种子材料的构建的一个实施例; 图5B描述了用于重设种子操作的种子材料的构建的一个实施例; 图6描述了产生Vnew的逻辑的一个实施例; 图7描述了产生Cnew的逻辑的一个实施例; 图8A描述了产生伪随机数的逻辑的一个实施例; 图8B描述了创建在产生伪随机数中使用的哈希值的一个示例; 图9描述了基于伪随机数产生操作的普通完成的更新参数块的逻辑的一个实施 例; 图10描述了结合一个或多个方面的计算机程序产品的一个实施例; 图11描述了托管计算机系统的一个实施例; 图12描述了计算机系统的进一步示例; 图13描述了包括计算机网络的计算机系统的另一个示例; 图14描述了计算机系统的多个元件的实施例; 图15A描述了图14的计算机系统的执行单元的一个实施例; 图15B描述了图14的计算机系统的分支单元的一个实施例; 图15C描述了图14的计算机系统的加载/存储单元的一个实施例;以及 图16描述了被仿真的托管计算机系统的一个实施例。【具体实施方式】 在一个方面,机器指令被提供用于产生伪随机数。所述指令,被称为执行伪随机数 操作指令,具有能力来实例化用来产生伪随机数的一个或多个种子值;重设种子一个或多 个种子值,和/或产生伪随机数。例如,使用美国国家标准技术研究所(National Institute of Standards and Technology,NIST)定义的 512-比特安全哈希算法(SHA-512)。其符合 用于伪随机数产生的最新的NIST建议。然而,出于性能原因,所述指令运行在右-到-左 模式,而不是如NIST定义的左-到-右模式。在进一步的实施例中,所述指令可扩展到使 用替代的编码算法(也被称为技术手段)。 参考图1A,结合和使用一个或多个方面的计算环境的实施例被描述。计算环境 100包括,例如,处理器102 (例如中央处理单元),存储器104 (例如主存储器),以及通过例 如一个或多个总线108和/或其他连接而互相连接的一个或多个输入/输出(I/O)设备和 /或接口 106。 在一个示例中,处理器102是基于国际商业机器公司提供的Z/架构的,并且是 服务器(例如系统z服务器)的一部分,系统z服务器也是国际商业机器公司提供的 并且实施z/架构。z/架构的一个实施例被描述在一 IBM?出版物中,标题为"z/Archi tecture Pr inciples of <^6抑^〇11",131^出版号为3厶22-7832-09,第10版,2012年9 月。在一个示例中,处理器执行操作系统,例如z/OS,z/OS也是国际商业机器公司提供的。 『BMP·、Z/ARCHTTECTURE,以及Z/0S:l<是美国纽约阿蒙克的国际商业机器公司的注册商 标。本文中使用的其他名字可能是国际商业机器公司或其他公司的注册商标、商标、或产品 名。 在进一步的实施例中,处理器102是基于国际商业机器公司提供的Power架构的。 Power架构的一个实施例被描述在"Power ISA? Version 2. 06Revision B",国际商业机器 公司,2010年7月23日。power archttecturex是国际商业机器公司的注册商标。 在进一步的实施例中,处理器102是基于英特尔公司提供的英特尔架构的。英 特尔架构的实施例被描述在"Intel? 64 and IA-32 Architectures Developer's Manual:Vol.2B, Ins truct ions Set Reference, A_L",顺序号 253666_045US,2013 年 I 月, 以及"Illtel/? 64 and IA-32 Archi tectures Developer's Manual:Vol.2B,Instructions Set Reference, M-Z",顺序号 253667-045US,2013 年 I 月。Intel?是加利福尼亚圣克拉 拉的英特尔公司的注册商标。 处理器102包括用于执行指令的多个功能组件。如图IB中描述的,这些功能组 件包括,例如,用于提取将被执行的指令的指令提取组件120 ;用于解码获取到的指令以及 获取被解码的指令的操作数的指令解码单元122 ;用于执行被解码的指令的指令执行组件 124 ;如果需要的话,用于为指令执行访问存储器的存储器访问组件126 ;以及用于提供被 执行的指令本文档来自技高网...
【技术保护点】
一种执行机器指令的方法,所述方法包括步骤:由处理器获取用于执行的机器指令,所述机器指令被根据一种计算机架构定义用于计算机执行,所述机器指令包括:提供操作代码的操作代码字段,所述操作代码用于标识执行伪随机数操作;以及用来标识寄存器的寄存器字段,所述寄存器用来指明被机器指令使用的第一操作数的存储器中的位置;执行所述机器指令,所述执行包括:获取与所述机器指令相关联的寄存器的修饰(M)字段;基于具有第一值的M字段,执行确定性伪随机数产生操作,所述确定性伪随机数产生操作包括:对于所述第一操作数的一个或多个存储器的块中的每一个存储器的块,使用512比特安全哈希技术以及所述机器指令的参数块中的至少一个种子值产生哈希值;以及将所述产生的哈希值的至少一部分存储在所述第一操作数的对应的存储器的块中,所述产生的哈希值是伪随机数的至少一部分。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:D·格瑞纳,B·内尔兹,T·维塞格拉迪,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。