量子随机数服务的高可用系统、方法、装置及电子设备与流程

文档序号:34709017发布日期:2023-07-07 13:27阅读:52来源:国知局
量子随机数服务的高可用系统、方法、装置及电子设备与流程

本发明涉及计算机,具体而言,涉及一种量子随机数服务的高可用系统、方法、装置及电子设备。


背景技术:

1、随机数在计算机系统中是非常重要和基础的软件功能,很多软件都需要使用随机数,例如,将随机数用于产生加强安全保护的盐值、验证码、加密秘钥等。

2、目前,很多应用服务使用的随机数主要是由操作系统或开源代码库提供的伪随机数,以及通过量子随机数发生器利用量子力学过程产生的随机数。伪随机数是通过纯软件算法,按照一定的规律生成的一个随机值,该类随机数的特点是只具备一定的随机性,并不能做到不可预测性,即并不是一个真正的随机数,在安全上存在较大的弱点。而量子随机数发生器并不依赖于复杂的数学问题,这意味着掌握无限计算能力的攻击者都无法预测产生的随机数,相比于传统的伪随机数安全性更高。

3、相关技术中在使用量子随机数发生服务系统产生的随机数替代原来分布在各个系统的随机数产生方式的过程中,在节点故障的情况下,量子随机数系统无法继续提供可靠的随机数服务,存在处理多个随机数产生服务时无法有效应对单点故障的问题,无法满足随机数服务的高可用需求。

4、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本发明实施例提供了一种量子随机数服务的高可用系统、方法、装置及电子设备,以至少解决现有技术中量子随机数服务平台处理多个随机数产生服务时无法有效应对单点故障的技术问题。

2、根据本发明实施例的一个方面,提供了一种量子随机数服务的高可用系统,包括:客户端系统,包括多个sdk组件,sdk组件用于向服务端系统的目标子服务节点发起第一随机数请求,并在接收目标子服务节点发送的随机数文件的时长大于预设时长的情况下,基于服务节点状态顺序表确定新的目标子服务节点,向新的目标子服务节点发送第一随机数请求,其中,随机数文件是预先对量子随机数发生器产生的随机数进行封装处理后的文件;服务端系统,包括多个服务节点,多个服务节点由一个主服务节点和n个子服务节点组成,主服务节点用于将服务节点顺序表发送给每个子服务节点,每个子服务节点用于确定其他每个子服务节点的节点状态,并将节点状态写入服务节点顺序表,得到服务节点状态顺序表,其中,多个服务节点为量子随机数服务节点,服务节点顺序表用于表征每个子服务节点对应的节点序号,服务节点状态顺序表用于在主服务节点故障的情况下,从n个子服务节点中确定新的主服务节点,以根据新的主服务节点将第一服务节点状态顺序表发送至所有sdk组件,新的主服务节点的节点状态为可用状态,第一服务节点状态顺序表是对服务节点状态顺序表进行更新得到的。

3、进一步地,sdk组件还用于在接收到随机数文件之后,对随机数文件进行缓存,生成存储空间。

4、进一步地,客户端系统还包括多个应用程序,应用程序用于向sdk组件发送第二随机数请求,sdk组件在接收到第二随机数请求之后,在存储空间中选择第一随机数文件,并将第一随机数文件发送至应用程序。

5、进一步地,sdk组件与主服务节点进行首次注册通信时,主服务节点为sdk组件分配客户端id,并将服务节点状态顺序表发送至sdk组件。

6、进一步地,在向目标子服务节点发起第一随机数请求之前,sdk组件基于服务节点状态顺序表中的节点个数,对客户端id所对应的数值进行求余计算,得到余数值,并确定服务节点状态顺序表中与余数值相等的序号的子服务节点为目标子服务节点。

7、进一步地,多个服务节点的每个服务节点包括一个量子随机数发生器和一个服务程序,量子随机数发生器用于持续的产生随机数二进制码流,服务程序用于接收随机数二进制码流,并对随机数二进制码流进行格式转换,生成随机数文件。

8、根据本发明实施例的一个方面,提供了一种量子随机数服务的高可用方法,应用于上述的量子随机数服务的高可用系统,包括:在主服务节点故障的情况下,依据服务节点状态顺序表,确定n个子服务节点中节点状态为可用状态的目标子服务节点为新的主服务节点,其中,服务节点状态顺序表包括n个子服务节点的节点状态,节点状态包括以下至少之一:可用状态、不可用状态;对服务节点状态顺序表进行更新,得到第一服务节点状态顺序表;通过新的主服务节点将第一服务节点状态顺序表发送至所有sdk组件,以使所有sdk组件基于第一服务节点状态顺序表发起第一随机数请求。

9、进一步地,量子随机数服务的高可用方法还包括:在主服务节点故障的情况下,依据服务节点状态顺序表,确定n个子服务节点中节点状态为可用状态的目标子服务节点为新的主服务节点之前,从多个服务节点中确定主服务节点;通过主服务节点为每个服务节点分配节点序号,生成服务节点顺序表,并将服务节点顺序表发送给每个服务节点;每个服务节点基于服务节点顺序表,与其他每个服务节点进行健康监测通信,得到通信结果,其中,通信结果表征每个服务节点与其他每个服务节点是否通信成功;在通信结果为通信成功的情况下,确定其他每个服务节点的节点状态为可用状态,并通过每个服务节点将可用状态写入服务节点顺序表,生成服务节点状态顺序表。

10、根据本发明实施例的另一方面,还提供了一种量子随机数服务的高可用装置,包括:确定模块,用于在主服务节点故障的情况下,依据服务节点状态顺序表,确定n个子服务节点中节点状态为可用状态的目标子服务节点为新的主服务节点,其中,服务节点状态顺序表包括n个子服务节点的节点状态,节点状态包括以下至少之一:可用状态、不可用状态;更新模块,用于对服务节点状态顺序表进行更新,得到第一服务节点状态顺序表;发送模块,用于通过新的主服务节点将第一服务节点状态顺序表发送至所有sdk组件,以使所有sdk组件基于第一服务节点状态顺序表发起第一随机数请求。

11、根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的量子随机数服务的高可用方法。

12、根据本发明实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的量子随机数服务的高可用方法。

13、在本发明实施例中,量子随机数服务的高可用系统包括客户端系统和服务端系统,服务端系统由多个量子随机数服务节点构成,其中一个为主节点,其他的n个节点为服务节点,不同的节点可以位于不同数据中心或不同网络区域,通过1+n个节点的部署,可以实现跨机房、跨网络区域的冗余可用服务,只要有服务节点是可用状态,客户端sdk组件就可以根据服务节点状态顺序表确定出新的服务节点,并通过请求随机数的服务获取到随机数结果。并且,在主节点故障的情况下,可以按照预定的规则由可用的节点升级为新的主节点,保障服务端系统的正常运行,从而实现跨机房、跨网络区域的高可用,实现对单点故障的有效应对,既通过量子随机数提高了安全性,又解决了随机数服务的高可用需求,从而提升了系统的可靠性。

14、由此可见,通过本发明的技术方案,达到了解决量子随机数服务的高可用需求的目的,从而实现了对单点故障的有效应对的技术效果,进而解决了现有技术中量子随机数服务平台处理多个随机数产生服务时无法有效应对单点故障的技术问题。

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