CN110058843A - 伪随机数的生成方法、装置和服务器 - Google Patents

伪随机数的生成方法、装置和服务器 Download PDF

Info

Publication number
CN110058843A
CN110058843A CN201910236478.7A CN201910236478A CN110058843A CN 110058843 A CN110058843 A CN 110058843A CN 201910236478 A CN201910236478 A CN 201910236478A CN 110058843 A CN110058843 A CN 110058843A
Authority
CN
China
Prior art keywords
random number
preset
data
instruction set
processing
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.)
Granted
Application number
CN201910236478.7A
Other languages
English (en)
Other versions
CN110058843B (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.)
Ant Chain Technology Co ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910236478.7A priority Critical patent/CN110058843B/zh
Publication of CN110058843A publication Critical patent/CN110058843A/zh
Application granted granted Critical
Publication of CN110058843B publication Critical patent/CN110058843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F7/582Pseudo-random number generators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书提供一种伪随机数的生成方法、装置和服务器。其中,方法包括:获取预设的种子数据,其中,预设的种子数据包含有多个随机数种子,随机数种子分别携带有一个预设密钥;调用并根据预设指令集对预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,预设指令集为预设在处理器中的指令集,所述预设处理为针对与所述多个随机数种子所对应的多个随机数流的并行处理。在本说明书实施例中,通过将多个随机数种子进行拼接得到一个种子数据,再通过调用保存于处理器中的预设指令集以包含有多个随机数种子的种子数据整体为处理单位对多个随机数种子所对应的随机数流进行并行的预设处理,得到多个伪随机数,从而能高效、安全地生成多个伪随机数。

Description

伪随机数的生成方法、装置和服务器
技术领域
本说明书属于互联网技术领域,尤其涉及一种伪随机数的生成方法、装置和服务器。
背景技术
在许多数据处理场景中,常常需要使用到大量的伪随机数。例如,在交易数据处理中,为了保证交易数据处理过程中的数据安全,避免交易数据遭到窃取或被篡改,常常会使用大量的伪随机数数进行掩码处理。
但是,现有的伪随机数的生成方法往往是通过串行处理的方式生成伪随机数的,即每轮只能针对一个伪随机数流执行指令,进行对应处理。因此,基于现有方法,具体实施时往往存在伪随机数生成效率低,不能很好地满足用户的使用需求的技术问题。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书目的在于提供一种伪随机数的生成方法、装置和服务器以解决了现有方法中存在的伪随机数的生成效率低的技术问题。
本说明书提供的一种伪随机数的生成方法、装置和服务器是这样实现的:
一种伪随机数的生成方法,包括:获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
一种伪随机数的生成装置,包括:获取模块,用于获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;处理模块,用于调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
本说明书提供的伪随机数的生成方法、装置和服务器,由于通过将多个互不相关的随机数种子拼接到一个种子数据中,再通过调用保存于处理器中的预设指令集以上述同时包含有多个随机数种子的种子数据整体作为处理单位,对多个随机数种子所对应的多个随机数流进行多轮的并行的预设处理,以通过一次的随机数生成处理得到多个伪随机数,从而解决了现有的伪随机数的生成方法中存在的伪随机数的生成效率低的技术问题,达到能高效、安全地并行生成多个伪随机数。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用现有方法生成伪随机数的场景示意图;
图2是在一个场景示例中,应用本说明书实施例提供的伪随机数的生成方法的一种实施例的示意图;
图3是在一个场景示例中,应用本说明书实施例提供的伪随机数的生成方法的一种实施例的示意图;
图4是本说明书实施例提供的伪随机数的生成方法的流程的一种实施例的示意图;
图5是本说明书实施例提供的服务器的结构的一种实施例的示意图;
图6是本说明书实施例提供的伪随机数的生成装置的结构的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到现有伪随机数的生成方法往往是通过对各个伪随机数流分别单独进行串行处理,得到对应的伪随机数的。现有方法具体实施时是在对一个伪随机数流串行执行完指令集所包含的多个指令,得到该随机数流所对应的伪随机数后,再对下一个伪随机数流执行相应的指令集中所包含的多个指令,得到下一个伪随机数。例如,可以参阅图1所示,在根据预设指令集中的第i个指令完成对第1个随机数流第i轮处理得到第一个随机数流对应的伪随机数后,才能开始针对第2个随机数流的处理。
本说明书在仔细分析了处理器执行指令集中指令过程时发现:一些处理器(例如Intel的CPU和AMD的CPU等)而言,对某些预设指令集(例如集成于Intel的CPU和AMD的CPU的AES-NI等)所包含的多个指令由于相互之间往往存在关联性,导致需要按顺序依次执行多个指令。例如,需要先执行完第一指令,才能再执行第二个指令。此外,处理器在具体执行各个指令进行对应的处理时又是符合流水特性的,即每个指令需要依次进入处理器的指令流水线,当指令进入流水线后才能被执行。并且每个指令本身的执行还需要耗费一定的执行时间,当经历对应的执行时间后,该指令才能执行完成,继而下一个相关的指令才能进入流水线被处理器执行。例如,可以参阅图1所示,第1个指令的执行时间为4个时钟周期,4个时钟周期结束后,第1个指令才能执行完成,完成对该随机数流的第一轮处理。继而第2个指令才会进入流水线被处理器指向,开始针对该随机数流的第二轮处理。现有方法由于受限于上述同一指令集中不同指令之间的在被执行时所存在的关联性,但没有注意到处理器在执行指令时的流水特性,所以选择例如图1所示的采用串行的方式来生成伪随机数,导致具体实施时,尤其在需要生成大量伪随机数时,容易出现伪随机数生成效率低、不能满足用户需求的问题。
进一步,本说明书又考虑到通常用户所需要获取的大量伪随机数中的不同的伪随机数之间往往是不存在关联性的,即对应不同伪随机数的随机数流在根据相同指令在被执行处理的过程是相对独立、不受其他随机数流影响的。并且进一步又考虑到处理器执行指令集中的单个指令时的特性,以及处理器的处理性能,通常当处理器仅对一个随机数流执行一个指令时,处理器往往还处于未饱和的状态,即虽然只能有一个指令进入指令流水性,但上述指令流水线此时是实际上未充满的。在这种情况下,处理器实际上是还有能力对其他不同的随机数流同时根据该指令执行相同的处理的。
正是注意到现有的伪随机数的生成方法所存在的上述问题,以及处理器在具体根据指令集对随机数流执行指令时的上述特性,本说明书考虑可以先将互不相关的用于生成不同伪随机数的随机数种子连同各自对应的预设密钥拼接成一个总的种子数据,再调用并根据存储于处理器的预设指令集,以上述种子数据作为一个整体处理单位,进行多轮的预设处理。其中,在每一轮的预设处理中又都根据对应该轮的一个指令(即该轮中进入流水线处理器可执行的指令)是对种子数据所包含的多个随机数种子所对应的多个随机数流同时进行并行的基于该同一指令的数据处理,即每一轮的预设处理都是针对多个随机流同时进行的并行处理。这样处理器在每轮执行完一个指令时,可以同时对多个随机数流执行完对应的处理。通过执行一次预设指令集所包含的所有指令,完成多轮并行的预设处理,即只完成一次伪随机数生成处理,就能同时得到用户所需要的多个伪随机数。从而可以有效地解决现有的伪随机数的生成方法中存在的伪随机数的生成效率低的技术问题,达到能高效、安全地并行生成多个伪随机数的技术效果。
基于上述考虑本说明书实施例提供一种伪随机数的生成方法,所述伪随机数的生成方法可以应用于包含服务器和客户端的系统架构中。其中,服务器和客户端可以通过有线或无线的方式进行耦合,以便相互间可以进行数据交互。
具体的,客户端可以接收并根据用户需求,生成并向服务器发送获取多个伪随机数的请求。服务器在接收到上述请求,可以响应请求,将用于生成多个伪随机数的携带有预设密钥的随机数种子拼接得到一个总的预设的种子数据;再调用并根据预设于处理器的预设指令集所包含的多个指令,对所述预设的种子数据整体进行多轮并行的预设处理,得到多个伪随机数。其中,每一轮的预设处理都是针对与种子数据所包含的多个随机数种子对应的多个随机数流的并行处理。
在本实施例中,所述客户端具体可以是一种应用于用户一侧,能够实现数据采集、数据传输等功能的前端设备。具体地,所述客户端例如可以为台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、导购终端、具有网络访问功能的电视机等。或者,所述客户端也可以为能够运行于上述电子设备中的软件应用。例如,可以是在手机上运行的某APP等。
在本实施例中,所述服务器具体可以是一种应用于业务系统一侧,能够实现数据传输、数据处理等功能的后台数据处理服务器。具体的,所述服务器可以为一个具有数据运算、存储功能以及网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在一个场景示例中,可以参阅图2所示,可以应用本说明书实施例提供的伪随机数的生成方法为用户高效、安全地生成多个互不相关的伪随机数。
具体的,例如,用户想要进行针对基于区块链的交易数据处理场景,建立对应的安全处理模型以保护交易数据过程中交易双方的数据安全。在具体建模时需要使用大量的伪随机数对双方的交易数据进行掩码处理。这时,用户可以以自己使用的台式电脑作为客户端向服务器发送获取多个伪随机数的请求数据。
服务器在接收到客户端发送的获取多个伪随机数的请求数据后,可以响应该请求数据,先自动生成对应数量的多个随机数种子,以及对应每一个随机数种子的预设密钥,并将上述多个携带有预设密钥的随机数种子交错拼接在一起,得到一个总的预设的种子数据。这样得到的一个种子数据会包含有多个拼接在一起的随机数种子,其中,每个随机数种子又分别携带有对应该随机数种子的一个预设密钥。
其中,上述预设密钥可以根据后续所采用伪随机数生成方式所涉及到的具体加密算法,选择合适类型的密钥作为上述预设密钥。例如,后续的伪随机数生成处理是通过涉及到AES(Advanced Encryption Standard,高级加密标准,一种安全对称的对称加密算法)加密的伪随机数生成器(可以理解为一种伪随机数生成算法,记为CTR_DRBG)来生成伪随机数,则可以选择AES密钥作为上述预设密钥。当然,需要说明的是,上述所列举的预设密钥只是一种示意性说明。具体实施时,根据具体情况,以及后续所采集用的伪随机数生成方式所涉及到的加密算法的具体类型确定将预设密钥。对此,本说明书不作限定。
当然,具体实施时,还可以是客户端在接收到用户送获取多个伪随机数的请求数据后,先向用户展示随机数种子的设置界面,用户可以通过上述设置界面自行设置多个随机数种子;客户端再将用户设置的多个岁数种子进行拼接得到预设的种子数据后,将预设的种子数据,连同获取多个伪随机数的请求数据一起发送给服务器。这样服务器在接收到上述获取多个伪随机数的请求数据的同时,也获取了由客户端设备根据用户的设置操作生成的预设的种子数据。可以参阅图3所示。
在本实施例中,上述服务器具体可以是用于为用户提供伪随机数生成服务器的业务平台的服务器。具体的,上述服务器可以是拥有Intel(Integrated ElectronicsCorporation,英特尔集成电子公司)生产的CPU(Central Processing Unit,中央处理器),或者AMD(Advanced Micro Devices,Inc.,超微半导体公司)生产的CPU的服务器。进一步,上述处理器中还预设有预设指令集。所述预设指令集可以用于后续的伪随机数的生成。例如,在Intel的CUP和AMD的CPU中预先集成有用于AES加密处理的指令集:AES-NI指令集等。当然,需要说明的是,上述所列举的服务器只是为了更好地说明本说明书实施例。具体实施时,根据具体情况以及后续所采用的伪随机数生成方式所涉及到具体的加密算法,还可以选择其他合适类型的服务器作为上述服务器使用。对此,本说明书不作限定。
在本实施例中,服务器在获取了上述预设的种子数据后,可以从上述预设的种子数据中读取出多个随机数种子,以及对应的预设密钥的相关信息。但是服务器不会将预设的种子数拆分成多个分立的随机数种子分别进行单独处理,而是会将包含有多个随机数种子的预设的种子数据作为一个总的处理单位进行并行处理。
进一步,服务器可以调用预设在服务器的处理器中的预设指令集作为执行指令,并根据上述预设指令集中所包含的多个指令,对预设的种子数据开展多轮并行的预设处理,通过多轮并行的指令执行,同时生成多个不同的伪随机数。
具体的,服务器可以先将所调用的预设指令集按指令执行顺序进行排队,以便预设指令集中的指令可以按照执行顺序排队进入处理器的指令流水线执行,进而可以根据预设指令集中进入指令流水线的可执行指令进行具体的预设处理。
在本实施例中,上述预设指令集具体可以理解为一种包含有多个用于后续预设处理的执行指令的指令集合。其中,上述预设指令集可以包括多个指令,在后续每一轮预设处理中,处理器都会调用并执行上述预设指令集中的一个或多个指令,当完成所有轮的预设处理中的指令执行时,完成了一次的伪随机数生成处理,生成得到对应伪随机数。
需要说明的是,在本实施例中通过直接使用处理器预设的指令集,相对现有方法中通过调用专门的程序软件(例如现有的单独基于AES的算法软件)来实现位随机数的生成,可以有效地减少所要执行的指令数量,提高单个伪随机数的生成效率。同时,由于所通过调用并根据处理器所保存的预设指令集中的指令来实现伪随机数生成的,整个处理过程可以在处理器中通过ASIC来实现,相比现有方法,不容易遭受计时等侧信道攻击,安全性更高。
具体的,上述预设指令集可以是AES-NI指令集。其中,AES-NI指令集是一种用于实现后续伪随机数生成过程中所涉及的AES加密算法的指令集合,该指令集中包含有多个基于AES的执行指令。具体的,上述AES-NI指令集中可以包含有11条用于实现基于AES的128位的加密的执行指令(例如AESENC指令、AESENCLAST指令等)和解密的执行指令(例如AESDEC指令、AESDECLAST指令等),以及几十条用于实现AES密钥扩展的执行指令。当然,上述所列举的预设指令集只是一种示意性说明。具体实施时,根据具体情况也可以采用其他类型的指令集作为上述预设指令集。对此,本说明书不作限定。
在本实施例中,服务器可以先根据预设的种子数据中所包含的多个随机数种子,生成对应多个随机数种子的多个随机数流。其中,上述随机数流可以理解为一种基于随机数种子所建立的用于生成对应的伪随机数的数据处理流,后续具体处理时,可以根据预设指令集中的指令对不同随机数流中的数据进行同步处理,以得到不同的伪随机数。需要补充的是,由于在预设的随机数种子,多个不同的随机数种子是按照顺序(例如随机数种子A-随机数种子B-随机数种子C-随机数种子D)拼接在一起的,因此,所得到的多个随机数流也是按照同样的顺序拼接在一起的(例如随机数流A-随机数流B-随机数流C-随机数流D),这样后续处理时,可以根据同一指令同时对上述多个随机数流同时进行对应处理,从而可以达到并行处理,提高处理效率的效果。
服务器在按照上述方式生成了上述多个伪随机数流后,可以将上述拼接在一起的多个随机数流作为一个总的处理单位,根据预设指令集中进入指令流水线可执行的具体指令,对上述多个伪随机数流同时进行同样的预设处理,完成一轮并行的预设处理。按照上述方式,可以对多个随机数流进行多轮的并行的预设处理后,得到对应多个随机数流的多个伪随机数。其中,上述多轮预设处理具体可以是4轮预设处理,也可以是9轮预设处理等。对于多轮预设处理所包含的具体轮数,本说明书不作限定。
在根据多个随机数种子生成多个随机流时,服务器还可以根据各个随机数种子所携带的预设密钥,结合预设指令集中所包含的用于密钥扩展的执行指令,通过密钥扩展,得到多个密钥组。其中,上述多个密钥组中的各个密钥组分别对应于一个预设密钥,即每一个密钥组分别对应一个随机数种子,一个随机数流。上述多个密钥组中具体可以包含有多个处理密钥,上述多个处理密钥可以用于后续针对所对应的随机数流的多轮预设处理。
具体的,在每一轮的预设处理中,服务器都是根据预设指令集中进入指令流水线的当前可以执行的具体指令,对上述多个随机数流中所包含的数据同时进行并行的预设处理。可以参阅图3所示。每一轮都是根据同一个该轮进入指令流水线可执行指令,同时对多个随机数流(例如n个随机数流)同时进行对应的预设处理。
在本实施例中,上述预设处理具体可以包括以下所列举的至少之一:利用预设指令集中的指令对所述随机数流中的上下文数据进行加密处理;利用预设指令集中的指令对所述随机数流中的上下文数据进行解密处理等等。当然,上述所列举的预设处理只是一种示意性说明。具体实施时,根据具体的应用场景和预设指令集中所包含的指令,还可以引入其他类型的数据处理作为上述预设处理,例如,还可以引入利用预设质量集中的指令,根据上下文数据生成对应的伪随机数等作为另一种预设处理。对此,本说明书不作限定。
对于上述多轮预设处理中的任意一轮的预设处理,例如当前轮的预设处理,具体实施,可以按照以下方式进行:服务器获取当前轮之前一轮,即上一轮各个随机数流得到的上下文数据(例如加密后的数组,或者解密后的数字)作为当前轮各个随机数流的输入数据;再从多个密钥组分别找到与当前轮对应的处理密钥,并将上述多个当前轮的处理密钥按照与预设的种子数据中多个随机数种子的拼接顺序进行拼接处理,得到交错后的密钥。又由于不同的伪随机数之间互不相关,即不同的随机数流之间的数据处理也互不相关,因此可以根据预设指令集中的进入指令流水线的当前可以执行的指令,利用上述交错后的密钥对上述多个随机数流输入的上下文数据同时进行加密处理,或者解密处理,得到多个处理后的上下文数据,作为当前轮处理后多个随机数流分别得到的上下文数据。上述当前轮处理后多个随机数流所分别得到的上下文数据又可以作为当前轮之后一轮,即下一轮各个随机数流的输入数据,即下一轮要进行预设处理的上下文数据。
按照上述方式,可以完成对当前轮的针对多个随机数流的并行的预设处理。进而可以根据当前轮得到的多个上下文数据按照相同的方式进行下一轮的并行的预设处理,直到执行完最后一轮的预设处理,完成了一次伪随机数的生成处理。这时多个随机数流分别得到一个处理好的上下文数据,可以将上述处理好的上下文数据分别确定为多个随机数流所对应的伪随机数。参阅图3所示,这样通过一次的伪随机数的生成处理(即对多个随机数流进行多轮并行的预设处理),可以同时得到多个互不相同的伪随机数。从而可以有效地提高伪随机数的生成效率。
具体的,可以按照上述方式进行多次的伪随机数的生成处理,生成大量的伪随机数。并反馈给客户端。用户在通过客户端可以快速地得到上述大量的伪随机数,进而可以利用上述伪随机数进行安全多方计算,得到多个计算结果。再根据上述多个计算结果,进行关于交易数据处理的模型的学习、训练,得到符合要求的安全处理模型,例如MORSE模型。后续,可以利用上述训练好的交易数据安全处理模型对交易数据处理进行风险监控评估,保护交易数据处理过程中交易双方的数据安全。
其中,上述MORSE模型具体可以理解为一种基于密码学的风险评估模型,通过该模型可以更加安全、有效地对交易数据处理进行风险监控。当然,上述所列举的安全处理模型只是一种示意性说明。具体实施时,根据具体情况也可以采用其他类型的模型作为上述安全处理模型。对此,本说明书不作限定。
在另一个场景示例中,进一步又考虑到不同的处理器性能不同,因此在一轮中根据同一指令所能同时处理的随机数流的数量也会存在差异。同时,随机数流中涉及到的数据量也会影响处理器在一轮中所能同时处理的随机数流的数量。例如,随机数流的处理涉及的数据量较多,处理器在一轮中同时能处理的随机数流的数量会越小。基于上述特性分析,为了充分地发挥处理器的性能,进一步提高为随机数的生成效率,同时避免由于一轮中要同时处理的随机数流数量过多,影响该轮的处理的稳定性,具体实施时,在生成获取预设的种子数据之前,可以先确定随机数种子所包含的数据的字节数量,以及处理器在执行预设指令集的指令是的流水吞吐量(例如在根据一个指令所能同时处理的数据量的上限值)。继而可以根据所述随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集中的处理指令的流水吞吐量,确定处理器根据同一指令,同时能够处理的随机数流的数量的上限值;再根据上述上限值,确定出所述预设种子数据所包含的多个随机数种子的数量的上限值。
这样在生成获取预设的种子数据时,可以根据用户所请求的待生成的伪随机数的具体数量,以及预设的种子数据所包含的多个随机数种子的数量的上限值,选择合适的数量(例如小于等于预设的种子数据所包含的多个随机数种子的数量的上限值)作为预设的种子数据所包含的多个随机数种子的数量;进而可以按照所确定的预设的种子数据所包含的多个随机数种子的数量,将多个随机数种子进行拼接,得到所述预设的种子数据。
通过上述方式得到的预设的种子数据由于考虑了处理器实际性能,所确定的预设的种子数据中所包含的随机数种子的数量更加合理,从而能够更充分地发挥处理器的性能,进一步提高了数据处理的效率,同时也可以兼顾数据处理的稳定性,避免处理误差的产生。
由上可知,本说明书提供的伪随机数的生成方法,由于通过将多个互不相关的随机数种子拼接到一个种子数据中,再通过调用保存于处理器中的预设指令集以包含有多个随机数种子的种子数据整体作为处理单位,对多个随机数种子所对应的随机数流进行多轮的并行的预设处理,得到多个伪随机数,从而解决了现有的伪随机数的生成方法中存在的伪随机数的生成效率低的技术问题,达到能高效、安全地并行生成多个伪随机数。
参阅图4所示,本说明书实施例提供了一种伪随机数的生成方法,其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容。
S41:获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥。
在本实施例中,上述预设的种子数据具体可以理解为一种拼接了多个随机数种子的数据。其中,上述多个随机数种子中的各个随机数种子分别对应后续生成的一个伪随机数。后续伪随机数生成处理,可以基于多个随机数种子作为初始数据,分别建立多个随机数流,进而通过对多个随机数流进行处理,得到多个伪随机数。其中,上述随机数流具体可以理解为一种基于随机数种子所建立的用于生成对应的伪随机数的数据处理流。
需要说明的是,上述预设的种子数据中所包含的多个随机数种子是互不相关的,对应的多个随机数流具体处理时是互不相关的,所生成的多个伪随机数也是互不相关的。
在本实施例中,上述预设密钥具体可以理解为一种后续进行伪随机数生成处理时需要使用到的加密数据。具体实施时,可以根据后续进行伪随机数生成处理时所要涉及到的具体的加密算法,选择对应类型的密钥作为上述预设密钥。例如,后续的伪随机数生成处理会涉及到基于AES(Advanced Encryption Standard,高级加密标准,一种安全对称的对称加密算法)的加密算法,则可以选择AES密钥作为上述预设密钥。当然,需要说明的是,上述所列举的加密算法,以及对应的预设密钥只是一种示意性说明。具体实施时,根据具体所使用的加密算法,还可以选择其他类型的密钥作为上述预设密钥。对此,本说明书不作限定。
在本实施例中,上述多个随机数种子中的各个随机数种子分别携带有对应的预设密钥。后续伪随机数生成处理中可以利用各个随机数种子所携带的预设密钥对该随机数种子所建立的随机数流进行具体的数据处理。
在本实施例中,具体的,例如,上述预设的种子数据可以是一个包含有n个分组长度的数据,其中,每一个分组长度的数据对应一个随机数种子,以及与该随机数种子对应的预设密钥。具体实施时,可以根据所要生成的伪随机数的类型和大小,设置上述分组长度具体所包含的字节数量。
在本实施例中,具体实施时,为了能够充分利用服务器的处理器的处理能力,提高伪随机数的生成效率,在获取预设的种子数据之前,所述方法还可以包括以下内容:确定待生成的伪随机数的数量,以及服务器的处理器的性能;根据待生成的伪随机数的数量,以及处理器的性能,确定预设的种子数据所包含的随机数种子的数量;进而可以根据预设的种子数据所包含的随机数中的数量,选择相应个数的携带有预设密钥的随机数种子按照一定的排序进行拼接处理,得到上述包含有多个随机数种子的预设的种子数据。这样可以在兼顾处理器的性能同时兼顾用户的需求,高效、稳定地生成多个伪随机数。
在本实施例中,上述获取预设的种子数据,具体可以是服务器根据用户通过客户端发送的获取多个伪随机数的请求数据,自行生成得到上述预设的种子数据。也可以是,用户通过客户端设置好的了包含有多个随机数种子的预设的种子数据,再发送给服务器,服务器直接获取上述预设的种子数据。当然,需要说明的是,上述所列举的获取预设的种子数据的方式只是一种示意性说明。对此,本说明书不作限定。
S43:调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
在本实施例中,上述预设指令集具体可以理解为一种包含有多个用于后续预设处理的执行指令的指令集合。其中,上述预设指令集可以包括多个执行指令(或称处理指令),在后续每一轮预设处理中,处理器都会调用并执行上述预设指令集中的一个或多个指令,当完成所有轮的预设处理中的指令执行时,完成了一次的伪随机数生成处理,生成得到对应伪随机数。
在本实施例中,上述预设指令集具体还可以是预设于处理器中的指令集,例如集成于Intel的CPU中的指令集。这样后续在根据预设指令集进行预设处理时,可以通过CPU中的ASIC实现,相对于现有方法所采用的利用单独的基于AES的算法软件来实现上述预设处理,具有更高的处理效率,同时,也不容易遭受侧信道攻击,具有更高的安全性。
在本实施例中,具体实施时,可以根据后续的伪随机数生成处理中所涉及到的具体的加密算法,选择预设于处理器的合适的指令集作为上述预设指令集。例如,可以选择集成于Intel的CPU或者AMD中的CPU的AES-NI指令集作为上述预设指令集。其中,该指令集中包含有多个基于AES的执行指令。具体的,上述AES-NI指令集中可以包含有11条用于实现基于AES的128位的加密的执行指令(例如AESENC指令、AESENCLAST指令等)和解密的执行指令(例如AESDEC指令、AESDECLAST指令等),以及几十条用于实现AES密钥扩展的执行指令。当然,上述所列举的预设指令集只是一种示意性说明。具体实施时,根据具体情况也可以采用其他类型的指令集作为上述预设指令集。对此,本说明书不作限定。
在本实施例中,上述预设处理具体可以理解为一种针对与所述多个随机数种子对应的多个随机数流同时进行的并行处理。即,在每一轮的预设处理中处理器都会根据预设指令中与该轮对应的执行指令,对多个随机数流同时进行同样处理。例如,在第二轮预设处理中,处理器可以根据与第二轮对应的第二执行指令,对多个不同的随机数流中的上下文数据同时进行加密处理等。当然,上述所列举的预设处理只是一种示意性说明。具体实施时,根据具体情况,上述预设处理还可以包括其他内容的数据处理。例如解密处理等等。对此,本说明书不作限定。
在本实施例中,每一次伪随机数的生成处理可以包括多轮的预设处理,其中,每一轮的预设处理都是针对多个随机数流并行执行的。这样在完成了一次的伪随机数的生成处理,就同时完成了针对多个随机数流的多轮的预设处理,进而可以一次得到多个伪随机数。上述预设处理具体可以包括以下所列举的至少之一:利用预设指令集中的指令对所述随机数流中的上下文数据进行加密处理;利用预设指令集中的指令对所述随机数流中的上下文数据进行解密处理等等。当然,上述所列举的预设处理只是一种示意性说明。具体实施时,根据具体的应用场景和预设指令集中所包含的指令,还可以引入其他类型的数据处理作为上述预设处理。对此,本说明书不作限定。
在本实施例中,上述调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,具体实施时,可以包括:服务器先对预设的种子数据进行解析,得到多个按照一定顺序拼接在一起的随机数种子;再根据上述多个随机数种子建立对应的多个随机数流,并将上述多个随机数流按照与预设的种子数据中随机数种子的拼接顺序拼接在一起,得到一个总的随机数流;进而可以根据预设指令集中每一轮进入指令流水线的可执行的指令同时对上述多个拼接在一起的随机数流同时进行并行的预设处理。按照上述方式进行多轮的预设处理后,完成了一次的伪随机数的生成处理,得到了多个随机数流对应的伪随机数。其中,上述多个伪随机数分别与预设的种子数据中所包含的多个随机数种子对应。
在本实施例中,在建立得到上述多个随机数流的同时,还可以根据所述种子数据中所包含的多个预设密钥,通过密钥扩展,得到多个密钥组。其中,所述多个密钥组中的各个密钥组分别与一个预设密钥对应,也对应一个随机数流,所述各个密钥组中又分别包含有多个处理密钥。上述处理密钥可以应用于后续多轮的预设处理中。例如,在某一轮的预设处理中,利用密钥组中对应轮的处理密钥对所对应的随机数流中上下文数据进行解密处理等。
在本实施例中,以当前轮的预设处理为例,具体实施时,可以先获取当前轮之前一轮(即上一轮)的预设处理所得到多个上下文数据。其中,上述上下文数据具体可以是随机数流在进行预设处理时所生成的数据,具体可以是一组随机字符组,也可以是一组中间随机数等等。其中,所述多个上下文数据分别与一个随机数流对应。也可以理解为上一轮预设处理中多个随机数流分别得到一个上下文数据。从与多个随机数流分别对应的多个密钥组中获取与当前轮对应的密钥作为当前轮的处理密钥,并将多个当前轮的处理密钥按照随机数流的拼接顺序(或者预设的种子数据中多个随机数种子的拼接顺序)进行交错处理(即交错拼接),得到交错后的密钥数据。由于多个随机数流和交错后的密钥数据中的多个当前轮的处理密钥都是按照相同的拼接顺序(即预设的种子数据中多个随机数种子的拼接顺序)进行拼接的,上述多个随机数流中的上下文数据与上述交错后的密钥数据本身就已经具备了对应关系。因此,在当前轮的预设处理中,具体实施时,可以根据预设指令集中当前轮可执行的指令,利用上述交错后的密钥数据对上述多个随机数流的上下文数据同时进行加密或解密处理,即同步进行并行的预设处理,从而可以得到多个随机数流中新的上下文数据,即多个处理后的上下文数据。从而完成了当前轮的预设处理。当前轮的预设处理所得到的多个处理后的上下文数据又可以作为下一轮预设处理中多个随机数流所要处理的上下文数据,进而可以按照上述方式进行下一轮的预设处理。通过上述方式执行完多轮的预设处理后,在最后一轮的预设处理中可以得到最后一轮的处理后的上下文数据,即所需要的多个伪随机数。从而完成了一次伪随机数的生成处理。
如果所生成的伪随机数的数量还没有达到用户要求,还可以按照上述方式,重复上述多轮预设处理,进行多次的伪随机数生成处理,以便快速地得到大量的伪随机数,满足用户的需求。
在本实施例中,服务器在得到上述多个伪随机数后,可以将上述多个伪随机数通过有线或无线的方式反馈给客户端,以便用户可以通过客户端获取大量所需要的伪随机数,进而可以利用上述伪随机数进行安全多方计算,得到多个计算结;再根据上述多个计算结果,进行关于交易数据处理的模型训练,得到符合要求的针对交易数据处理的安全处理模型,例如应用交易数据处理平台上的MORSE模型。进而可以利用上述训练好的交易数据处理的安全处理模型对平台上的交易数据处理进行风险监控,从而保护交易数据处理过程中交易双方的数据安全。
由上可见,本说明书实施例提供的伪随机数的生成方法,由于通过将多个互不相关的随机数种子拼接到一个种子数据中,再通过调用保存于处理器中的预设指令集以包含有多个随机数种子的种子数据整体作为处理单位,对多个随机数种子所对应的随机数流进行多轮的并行的预设处理,得到多个伪随机数,从而解决了现有的伪随机数的生成方法中存在的伪随机数的生成效率低的技术问题,达到能高效、安全地并行生成多个伪随机数。
在一个实施例中,所述预设指令集至少可以包括AES-NI指令集等。当然,上述所列举的预设指令集只是一种示意性说明。具体实施时,根据具体情况也可以选择使用其他合适的指令集作为上述预设指令集。对此,本说明书不作限定。
在一个实施例中,在所述预设指令集包括AES-NI指令集的情况下,所述预设密钥具体可以包括AES密钥。当然,如果根据具体情况,所使用的预设指令集是除AES-NI指令集以外的其他类型的指令集,相应的,可以选择除AES密钥外其他与所使用的预设指令集对应的密钥作为上述预设密钥。对此,本说明书不作限定。
在一个实施例中,上述调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,具体实施时,可以包括以下内容:根据所述种子数据中所包含的多个预设密钥,进行密钥扩展,得到多个密钥组,其中,所述多个密钥组中的各个密钥组分别包含有多个处理密钥;根据所述预设的种子数据中所包含的多个随机数种子,生成多个随机数流;利用所述多个密钥组,以及预设指令集,对所述多个随机数流进行多轮并行的预设处理,得到所述多个伪随机数。
在本实施例中,具体实施时,可以根据预设指令集中所包含的用于实现密钥扩展的执行指令对预设的种子数据中所包含的多个预设密钥分别进行密钥扩展,得到多个密钥组。其中,上述多个密钥组中的各个密钥组分别包含有多个用于后续预设处理所要使用的处理密钥。
在本实施例中,在通过密钥扩展获得多个密钥组的同时,还根据预设的种子数据中所包含的多个随机数种子,初始化生成对应的多个随机数流。其中,上述随机数流与生成该随机数流的随机数种子,具体可以理解为一种基于随机数种子所建立的用于生成对应的伪随机数的数据处理流,后续可以通过对随机数流进行具体处理得到对应的伪随机数。
在本实施例中,由于预设的种子数据中所包含的多个随机数种子是按照一定的拼接顺序拼接在一起的,因此根据预设的种子数据中所包含的多个随机数种子所生成的多个随机数流也可以按照上述拼接顺序拼接在一起。这样后续在对上述多个随机数流进行多轮预设处理时,可以将上述拼接在一起的多个随机数流作为一个整体进行处理,使得在每一轮预设处理中,可以根据预设指令集中同一个在该轮进入指令流水线可执行的处理指令,利用多个随机数流所对应的多个密钥组,同时对多个随机数流进行并行处理,即在一轮的指令执行中可以同时对多个随机数流进行相同的数据处理。
在本实施例中,在根据预设指令集中所包含的指令对多个随机数流执行完上述多轮的预设处理后,完成了一次伪随机数的生成处理,将最后一轮预设处理后各个随机数流得到的数据作为各个随机数流的伪随机数,得到多个伪随机数。从而实现通过一次的伪随机数生成处理,得到了多个不同的互不相关的伪随机数。
在一个实施例中,上述利用所述多个密钥组,以及预设指令集,对所述多个随机数流进行多轮并行的预设处理,具体实施时,可以以在当前轮中进行并行的预设处理为例说明如果进行各轮的预设处理的。
具体的,可以按照以下方式进行当前轮的并行预设处理:获取当前轮之前一轮的预设处理得到的多个上下文数据,其中,所述多个上下文数据分别与一个随机数流对应;将所述多个密钥组中与当前轮对应的密钥交错处理,得到交错后的密钥数据;根据预设指令集中与当前轮对应的处理指令,利用所述交错后的密钥数据对所述多个上下文数据同步进行加密或解密处理,得到多个处理后的上下文数据。
在本实施例中,由于多个随机数流是按照与预设的种子数据中所包含的多个随机数种子的拼接顺序进行拼接的,而每一轮的预设处理又是将多个随机数流作为一个整体进行并行处理,因此所得到多个随机数流的上下文数据也是按照相同的拼接顺序拼接在一起的。为了在当前轮中可以根据预设指令集中同一个可执行的指令(即进入指令流水线的指令)对多个互不关联的随机数流中的上下文数据进行并行处理,因此,可以先从各个密钥组中确定出与当前轮对应的处理密钥,即当前轮的处理密钥;再将上述多个当前轮的处理密钥按照预设的种子数据中所包含的多个随机数种子的拼接顺序进行交错拼接处理,得到多个按照相同的拼接顺序拼接在一起的包含有对应多个随机数流的当前轮的处理密钥的交错后的密钥数据。又由于上述交错后的密钥数据中所包含的当前轮的处理密钥的拼接顺序与多个随机数流的上下文数据的拼接顺序相同。因此,可以根据预设指令集中的当前轮可执行指令,将上述交错后的密钥数据作为一个整体,对上述拼接在一起的多个随机数流的多个上下文数据同时进行相应的处理(例如加密处理,或者解密处理等),在执行完当前轮的指令后(例如在经历了执行当前轮的指令的执行周期5个时钟周期后),可以得到多个处理后的上下文数据。
在本实施例中,上述得到的多个处理后的上文数据进一步又可以作为下一轮预设处理中所要处理的上下文数据,再按照当前轮的处理方式进行下一轮的并行预设处理,依次类推,通过多轮处理,最终得到所需要的多个伪随机数。
在一个实施例中,在获取预设的种子数据前,所述方法具体实施时,还可以包括以下内容:确定随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集时的流水吞吐量;根据所述随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集中的处理指令的流水吞吐量,确定所述预设的种子数据所包含的多个随机数种子的数量的上限值。
在本实施例中,上述处理器在执行预设指令集时的流水吞吐量具体可以理解为基于该处理器的处理性能在根据一个指令执行时所能同时处理的数据量的上限值。
在本实施例中,具体实施时,处理器在一轮预设处理中根据一个指令所能同时处理的随机数流的最大值,除与处理器的性能有关外,还与所要处理的随机数流所涉及到的具体数据量相关。
在本实施例中,具体实施时,可以通过所确定的随机数种子所包含的数据的字节数量来衡量所要处理的随机数流所涉及到的数据量。如果随机数种子所包含的数据的字节数量相对较多,则可以预判所要处理的随机数流的所涉及到的数据量也会相对较大。
在本实施例中,可以综合上述用于反映随机数流所涉及到的数据量大小的随机数种子所包含的数据的字节数量,以及用于反映处理器的处理性能的处理器的在执行预设指令集中的处理指令的流水吞吐量,来综合确定一个数量值作为预设的种子数据所包含的多个随机数种子的数量的上限值。这样可以在充分利用处理器的处理性能的同时,高效、稳定地完成每一次伪随机数生成处理。
在一个实施例中,为了高效、稳定地完成伪随机数生成处理,得到多个伪随机数,在确定所述预设的种子数据所包含的多个随机数种子的数量的上限值后,所述方法具体实施时,还可以包括以下内容:确定待生成的伪随机数的数量;根据所述待生成的伪随机数的数量,和所述预设的种子数据所包含的多个随机数种子的数量的上限值,确定所述预设的种子数据所包含的多个随机数种子的数量;按照所确定的所述预设的种子数据所包含的多个随机数种子的数量,将多个随机数种子进行拼接,得到所述预设的种子数据。
在本实施例中,如果待生成的伪随机数的数量小于等于上述上限值,可以将待生成的伪随机数的数量作为所述预设的种子数据所包含的多个随机数种子的数量,再获取上述数量个随机数种子进行拼接,得到预设的种子数据。如果待生成的伪随机数的数量大于上述上限值,可以分多次,通过多次伪随机数生成处理来生成足够数量的伪随机数。其中,在每一次的伪随机数生成处理中,可以选择一个小于等于上述上限值的数量作为所述预设的种子数据所包含的多个随机数种子的数量,再拼接上述数量个随机数种子,得到预设的种子数据。
在一个实施例中,在调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数后,所述方法具体实施时,还可以包括以下内容:根据所述多个伪随机数,进行安全多方计算,得到多个计算结果;根据所述多个计算结果,训练交易数据安全处理模型,其中,所述安全处理模型至少包括MORSE模型。
在本实施例中,上述MORSE模型具体可以理解为一种基于密码学的风险评估模型,通过该模型可以更加安全、有效地对交易数据处理进行风险监控。当然,上述所列举的安全处理模型只是一种示意性说明。具体实施时,根据具体情况也可以采用其他类型的模型作为上述安全处理模型。对此,本说明书不作限定。
由上可知,本说明书提供的伪随机数的生成方法,由于通过将多个互不相关的随机数种子拼接到一个种子数据中,再通过调用保存于处理器中的预设指令集以包含有多个随机数种子的种子数据整体作为处理单位,对多个随机数种子所对应的随机数流进行多轮的并行的预设处理,得到多个伪随机数,从而解决了现有的伪随机数的生成方法中存在的伪随机数的生成效率低的技术问题,达到能高效、安全地并行生成多个伪随机数;还通过充分利用处理器执行预设指令集中的处理指令时的执行特性,根据随机数种子所包含的数据的字节数量,和处理器的在执行处理指令的流水吞吐量,确定每个种子数据所包含的随机数种子的数量,再拼接合适的种子数据进行并行的预设处理,从而进一步提高了数据处理的效率。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
为了能够更加准确地完成上述指令,参阅图5所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口501、处理器502以及存储器403,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口501,具体可以用于获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥。
所述处理器502,具体可以用于调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
所述存储器503,具体可以用于存储处理器502所基于相应的指令程序。
在本实施例中,所述网络通信端口501可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器502可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器503可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述伪随机数的生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图6所示,在软件层面上,本说明书实施例还提供了一种伪随机数的生成装置,该装置具体可以包括以下的结构模块:
获取模块601,具体可以用于获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;
处理模块602,具体可以用于调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
在一个实施例中,所述预设指令集具体至少可以包括AES-NI指令集等。
在一个实施例中,在所述预设指令集包括AES-NI指令集的情况下,所述预设密钥具体可以包括AES密钥等。
在一个实施例中,所述处理模块602具体可以包括以下结构单元:
扩展单元,具体可以用于根据所述种子数据中所包含的多个预设密钥,进行密钥扩展,得到多个密钥组,其中,所述多个密钥组中的各个密钥组分别包含有多个处理密钥;
生成单元,具体可以用于根据所述预设的种子数据中所包含的多个随机数种子,生成多个随机数流;
处理单元,具体可以用于利用所述多个密钥组,以及预设指令集,对所述多个随机数流进行多轮并行的预设处理,得到所述多个伪随机数。
在一个实施例中,所述处理单元具体可以包括以下结构子单元:
获取子单元,具体可以用于获取当前轮之前一轮的预设处理得到的多个上下文数据,其中,所述多个上下文数据分别与一个随机数流对应;
交错子单元,具体可以用于将所述多个密钥组中与当前轮对应的密钥交错处理,得到交错后的密钥数据;
处理子单元,具体可以用于根据预设指令集中与当前轮对应的处理指令,利用所述交错后的密钥数据对所述多个上下文数据同步进行加密或解密处理,得到多个处理后的上下文数据。
在一个实施例中,所述装置具体还可以包括确定模块,具体可以用于确定随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集时的流水吞吐量;根据所述随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集中的处理指令的流水吞吐量,确定所述预设的种子数据所包含的多个随机数种子的数量的上限值。
在一个实施例中,所述获取模块601具体可以包括以下结构单元:
第一确定单元,具体可以用于确定待生成的伪随机数的数量;
第二确定单元,具体可以用于根据所述待生成的伪随机数的数量,和所述预设的种子数据所包含的多个随机数种子的数量的上限值,确定所述预设的种子数据所包含的多个随机数种子的数量;
拼接单元,具体可以用于按照所确定的所述预设的种子数据所包含的多个随机数种子的数量,将多个随机数种子进行拼接,得到所述预设的种子数据。
在一个实施例中,所述装置具体还可以包括应用模块,具体可以用于根据所述多个伪随机数,进行安全多方计算,得到多个计算结果;根据所述多个计算结果,训练交易数据安全处理模型,其中,所述安全处理模型至少包括MORSE模型。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的伪随机数的生成装置,由于通过获取模块将多个互不相关的随机数种子拼接到一个种子数据中,再通过处理模块调用保存于处理器中的预设指令集以包含有多个随机数种子的种子数据整体作为处理单位,对多个随机数种子所对应的随机数流进行多轮的并行的预设处理,得到多个伪随机数,从而解决了现有的伪随机数的生成方法中存在的伪随机数的生成效率低的技术问题,达到能高效、安全地并行生成多个伪随机数。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

Claims (18)

1.一种伪随机数的生成方法,包括:
获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;
调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
2.根据权利要求1所述的方法,所述预设指令集至少包括AES-NI指令集。
3.根据权利要求2所述的方法,在所述预设指令集包括AES-NI指令集的情况下,所述预设密钥包括AES密钥。
4.根据权利要求1所述的方法,调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,包括:
根据所述种子数据中所包含的多个预设密钥,进行密钥扩展,得到多个密钥组,其中,所述多个密钥组中的各个密钥组分别包含有多个处理密钥;
根据所述预设的种子数据中所包含的多个随机数种子,生成多个随机数流;
利用所述多个密钥组,以及预设指令集,对所述多个随机数流进行多轮并行的预设处理,得到所述多个伪随机数。
5.根据权利要求4所述的方法,利用所述多个密钥组,以及预设指令集,对所述多个随机数流进行多轮并行的预设处理,包括:按照以下方式进行当前轮的并行的预设处理:
获取当前轮之前一轮的预设处理得到的多个上下文数据,其中,所述多个上下文数据分别与一个随机数流对应;
将所述多个密钥组中与当前轮对应的密钥交错处理,得到交错后的密钥数据;
根据预设指令集中与当前轮对应的处理指令,利用所述交错后的密钥数据对所述多个上下文数据同步进行加密或解密处理,得到多个处理后的上下文数据。
6.根据权利要求1所述的方法,在获取预设的种子数据前,所述方法还包括:
确定随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集时的流水吞吐量;
根据所述随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集中的处理指令的流水吞吐量,确定所述预设的种子数据所包含的多个随机数种子的数量的上限值。
7.根据权利要求6所述的方法,在确定所述预设的种子数据所包含的多个随机数种子的数量的上限值后,所述方法还包括:
确定待生成的伪随机数的数量;
根据所述待生成的伪随机数的数量,和所述预设的种子数据所包含的多个随机数种子的数量的上限值,确定所述预设的种子数据所包含的多个随机数种子的数量;
按照所确定的所述预设的种子数据所包含的多个随机数种子的数量,将多个随机数种子进行拼接,得到所述预设的种子数据。
8.根据权利要求1所述的方法,在调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数后,所述方法还包括:
根据所述多个伪随机数,进行安全多方计算,得到多个计算结果;
根据所述多个计算结果,训练交易数据安全处理模型,其中,所述安全处理模型至少包括MORSE模型。
9.一种伪随机数的生成装置,包括:
获取模块,用于获取预设的种子数据,其中,所述预设的种子数据包含有多个随机数种子,所述随机数种子分别携带有一个预设密钥;
处理模块,用于调用并根据预设指令集对所述预设的种子数据进行多轮预设处理,得到多个伪随机数,其中,所述预设指令集为预设在处理器中的指令集,所述预设指令集包含有多个与预设处理相关的处理指令,所述预设处理为针对与所述多个随机数种子对应的多个随机数流的并行处理。
10.根据权利要求9所述的装置,所述预设指令集至少包括AES-NI指令集。
11.根据权利要求10所述的装置,在所述预设指令集包括AES-NI指令集的情况下,所述预设密钥包括AES密钥。
12.根据权利要求9所述的装置,所述处理模块包括:
扩展单元,用于根据所述种子数据中所包含的多个预设密钥,进行密钥扩展,得到多个密钥组,其中,所述多个密钥组中的各个密钥组分别包含有多个处理密钥;
生成单元,用于根据所述预设的种子数据中所包含的多个随机数种子,生成多个随机数流;
处理单元,用于利用所述多个密钥组,以及预设指令集,对所述多个随机数流进行多轮并行的预设处理,得到所述多个伪随机数。
13.根据权利要求12所述的装置,所述处理单元包括:
获取子单元,用于获取当前轮之前一轮的预设处理得到的多个上下文数据,其中,所述多个上下文数据分别与一个随机数流对应;
交错子单元,用于将所述多个密钥组中与当前轮对应的密钥交错处理,得到交错后的密钥数据;
处理子单元,用于根据预设指令集中与当前轮对应的处理指令,利用所述交错后的密钥数据对所述多个上下文数据同步进行加密或解密处理,得到多个处理后的上下文数据。
14.根据权利要求9所述的装置,所述装置还包括确定模块,用于确定随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集时的流水吞吐量;根据所述随机数种子所包含的数据的字节数量,以及处理器的在执行预设指令集中的处理指令的流水吞吐量,确定所述预设的种子数据所包含的多个随机数种子的数量的上限值。
15.根据权利要求14所述的装置,所述获取模块包括:
第一确定单元,用于确定待生成的伪随机数的数量;
第二确定单元,用于根据所述待生成的伪随机数的数量,和所述预设的种子数据所包含的多个随机数种子的数量的上限值,确定所述预设的种子数据所包含的多个随机数种子的数量;
拼接单元,用于按照所确定的所述预设的种子数据所包含的多个随机数种子的数量,将多个随机数种子进行拼接,得到所述预设的种子数据。
16.根据权利要求9所述的装置,所述装置还包括应用模块,用于根据所述多个伪随机数,进行安全多方计算,得到多个计算结果;根据所述多个计算结果,训练交易数据安全处理模型,其中,所述安全处理模型至少包括MORSE模型。
17.一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至8中任一项所述方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至8中任一项所述方法的步骤。
CN201910236478.7A 2019-03-27 2019-03-27 伪随机数的生成方法、装置和服务器 Active CN110058843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910236478.7A CN110058843B (zh) 2019-03-27 2019-03-27 伪随机数的生成方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910236478.7A CN110058843B (zh) 2019-03-27 2019-03-27 伪随机数的生成方法、装置和服务器

Publications (2)

Publication Number Publication Date
CN110058843A true CN110058843A (zh) 2019-07-26
CN110058843B CN110058843B (zh) 2023-03-03

Family

ID=67316361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910236478.7A Active CN110058843B (zh) 2019-03-27 2019-03-27 伪随机数的生成方法、装置和服务器

Country Status (1)

Country Link
CN (1) CN110058843B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111539041A (zh) * 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种安全选择方法和系统
CN111596889A (zh) * 2020-04-14 2020-08-28 厦门极致互动网络技术股份有限公司 伪随机方法、系统、移动终端及存储介质
CN112671532A (zh) * 2020-12-07 2021-04-16 华帝股份有限公司 一种通信密钥的生成方法及相关设备
CN113296737A (zh) * 2020-07-30 2021-08-24 阿里巴巴集团控股有限公司 随机数的生成系统、方法、装置和云端服务器
WO2022198652A1 (zh) * 2021-03-26 2022-09-29 华为技术有限公司 随机数生成装置及生成方法、随机数生成系统、芯片
CN115437603A (zh) * 2021-06-04 2022-12-06 中科寒武纪科技股份有限公司 用于生成随机数的方法及其相关产品
CN116055039A (zh) * 2022-12-29 2023-05-02 北京海泰方圆科技股份有限公司 一种基于分组密码算法的随机数生成方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1285987A (zh) * 1997-11-10 2001-02-28 艾利森电话股份有限公司 用于生成一个伪随机数的设备及与之相关的方法
CN101292464A (zh) * 2005-08-24 2008-10-22 高通股份有限公司 密码学上安全的伪随机数字发生器
CN101663642A (zh) * 2007-04-23 2010-03-03 高通股份有限公司 伪随机数发生器的初始种子管理
CN106469042A (zh) * 2015-08-19 2017-03-01 阿里巴巴集团控股有限公司 伪随机数的生成方法和装置
US20180101360A1 (en) * 2016-10-10 2018-04-12 International Business Machines Corporation Secured pseudo-random number generator

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1285987A (zh) * 1997-11-10 2001-02-28 艾利森电话股份有限公司 用于生成一个伪随机数的设备及与之相关的方法
CN101292464A (zh) * 2005-08-24 2008-10-22 高通股份有限公司 密码学上安全的伪随机数字发生器
CN101663642A (zh) * 2007-04-23 2010-03-03 高通股份有限公司 伪随机数发生器的初始种子管理
CN106469042A (zh) * 2015-08-19 2017-03-01 阿里巴巴集团控股有限公司 伪随机数的生成方法和装置
US20180101360A1 (en) * 2016-10-10 2018-04-12 International Business Machines Corporation Secured pseudo-random number generator

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111596889B (zh) * 2020-04-14 2023-05-02 厦门极致互动网络技术股份有限公司 伪随机方法、系统、移动终端及存储介质
CN111596889A (zh) * 2020-04-14 2020-08-28 厦门极致互动网络技术股份有限公司 伪随机方法、系统、移动终端及存储介质
CN111539041B (zh) * 2020-07-08 2020-11-13 支付宝(杭州)信息技术有限公司 一种安全选择方法和系统
CN111539041A (zh) * 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种安全选择方法和系统
CN113296737A (zh) * 2020-07-30 2021-08-24 阿里巴巴集团控股有限公司 随机数的生成系统、方法、装置和云端服务器
CN112671532A (zh) * 2020-12-07 2021-04-16 华帝股份有限公司 一种通信密钥的生成方法及相关设备
CN112671532B (zh) * 2020-12-07 2023-03-28 华帝股份有限公司 一种通信密钥的生成方法及相关设备
WO2022198652A1 (zh) * 2021-03-26 2022-09-29 华为技术有限公司 随机数生成装置及生成方法、随机数生成系统、芯片
CN115437603A (zh) * 2021-06-04 2022-12-06 中科寒武纪科技股份有限公司 用于生成随机数的方法及其相关产品
WO2022253287A1 (zh) * 2021-06-04 2022-12-08 寒武纪(西安)集成电路有限公司 用于生成随机数的方法及其相关产品
CN115437603B (zh) * 2021-06-04 2023-12-19 中科寒武纪科技股份有限公司 用于生成随机数的方法及其相关产品
CN116055039A (zh) * 2022-12-29 2023-05-02 北京海泰方圆科技股份有限公司 一种基于分组密码算法的随机数生成方法及装置
CN116055039B (zh) * 2022-12-29 2023-11-14 北京海泰方圆科技股份有限公司 一种基于分组密码算法的随机数生成方法及装置

Also Published As

Publication number Publication date
CN110058843B (zh) 2023-03-03

Similar Documents

Publication Publication Date Title
CN110058843A (zh) 伪随机数的生成方法、装置和服务器
CN111783124B (zh) 基于隐私保护的数据处理方法、装置和服务器
US10467057B2 (en) Selecting a logic operation unit that matches a type of logic operation unit required by a selected operation engine
CN107196900A (zh) 一种共识校验的方法及装置
CN108551443A (zh) 一种应用登录方法、装置、终端设备及存储介质
CN103246730B (zh) 文件存储方法和设备、文件发送方法和设备
CN110335043A (zh) 一种基于区块链系统的交易隐私保护方法、设备以及系统
CN109687952A (zh) 数据处理方法及其装置、电子装置及存储介质
CN107707347A (zh) 用户密钥的备份方法及装置、用户密钥的导入方法及装置
CN110458559A (zh) 交易数据处理方法、装置、服务器和存储介质
CN110224808A (zh) 基于区块链的银行数据共享方法及相关设备
CN105631013B (zh) 生成哈希值的装置和方法
Fang et al. Secure function evaluation using an fpga overlay architecture
WO2024078347A1 (zh) 加速设备、计算系统及加速方法
CN104756069B (zh) 元素选择单元及其中的方法
Pavlenko et al. Evolutionary computation techniques for constructing SAT-based attacks in algebraic cryptanalysis
Panagiotou et al. Design and implementation of a privacy framework for the internet of things (IoT)
CN106445936A (zh) 一种数据处理方法及设备
WO2024078428A1 (zh) 加速设备、计算系统及加速方法
CN104407838B (zh) 一种生成随机数及随机数组的方法和设备
CN108076149A (zh) 会话保持方法和装置
CN109640135A (zh) 发布视频以及获取视频的方法、装置以及存储介质
CN115952526B (zh) 密文排序方法、设备及存储介质
CN108156273A (zh) 一种匿名用户id生成方法、装置及电子设备
CN104767622B (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
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Georgetown Hospital Road, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240925

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Ant Chain Technology Co.,Ltd.

Country or region after: Singapore

Address before: Cayman Enterprise Centre, 27 Georgetown Hospital Road, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands