CN114697034A - 一种分布式素性测试的方法、装置及系统 - Google Patents
一种分布式素性测试的方法、装置及系统 Download PDFInfo
- Publication number
- CN114697034A CN114697034A CN202011618939.6A CN202011618939A CN114697034A CN 114697034 A CN114697034 A CN 114697034A CN 202011618939 A CN202011618939 A CN 202011618939A CN 114697034 A CN114697034 A CN 114697034A
- Authority
- CN
- China
- Prior art keywords
- parameter
- ciphertext
- participating node
- test
- test domain
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
Abstract
本发明实施例提供了一种分布式素性测试的方法、装置及系统。方法包括:第二参与节点接收第一参与节点发送的加密密钥以及测试域密文参数;第二参与节点利用加密密钥,将测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;第一待测参数与第二待测参数之和为目标整数;第二参与节点将测试域密文向第一参与节点发送,以使第一参与节点利用加密密钥对应的解密密钥对测试域密文解密,得到测试域明文;第二参与节点接收第一参与节点发送的测试参数以及测试域明文,测试参数为根据随机整数、第一素数数据、第一待测参数以及测试域明文确定的;第二参与节点判断随机整数是否为测试域明文的生成元。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种分布式素性测试的方法、装置及系统。
背景技术
素数是现代公钥密码技术的基础,如何判断一个随机整数是否为素数在工业界有着广泛的应用,例如RSA加密过程中的密钥参数p、q就要求必须是素数。素性测试就是判断一个整数是否为素数的方法。要做到百分之百判定一个整数是否为素数是一个计算量非常高的计算任务,需要进行测试的次数是超多项式的,尤其当被测试的整数比较大的时候,这种完全准确的判定方法变得不再可用。因此,目前常用的素性测试方法都是概率性方法,即以一个非常高的成功概率来判定一个整数是否为素数。
现有技术中需要多次测试才能以非常高的概率来判定某个整数是否为素数。例如Rabin-Miller算法,需要数百次测试,如果单一用户来进行素性测试,数百次的测试是可以容忍的;但是由在分布式系统中由多个用户合作进行素性测试时,需要进行多达数百次的协议通信,这就成了一个严重的性能问题。因此,如何降低素性测试次数是分布式密码技术必须解决的首要问题。
发明内容
本发明实施例提供了一种分布式素性测试的方法、装置及系统,用以降低分布式系统中素性测试的次数。
本发明实施例提供了一种分布式素性测试的方法,应用于参与分布式素性测试系统中的参与节点,所述分布式素性测试系统包括至少两个参与节点,其中第二参与节点为所述分布式素性测试系统中的任一参与节点,第一参与节点为所述分布式素性测试系统中除所述第二参与节点之外的节点,所述分布式素性测试方法包括:
所述第二参与节点接收所述第一参与节点发送的加密密钥以及测试域密文参数,所述测试域密文参数为所述第一参与节点利用所述加密密钥、第一素数数据、以及第一待测参数确定的;
所述第二参与节点利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;所述第一待测参数与所述第二待测参数之和为目标整数;
所述第二参与节点将所述测试域密文向所述第一参与节点发送,以使所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
所述第二参与节点接收所述第一参与节点发送的测试参数以及所述测试域明文,所述测试参数为所述第一参与节点根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定的;
所述第二参与节点根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;
若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
一种可选的实施例中,所述测试域密文参数包括利用所述加密密钥对第一素数数据加密得到的第一素数密文,以及根据所述第一素数数据、第一待测参数得到第一计算结果并利用所述加密密钥对所述第一计算结果加密得到的第一计算结果密文。
一种可选的实施例中,所述第二参与节点利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文,包括:
所述第二参与节点根据所述第一素数密文、第二素数数据和第二待测参数进行计算得到第二计算结果,并利用所述加密密钥对所述第二计算结果加密得到第二计算结果密文;
所述第二参与节点根据所述第一计算结果密文以及所述第二素数数据计算得到第三计算结果,并利用所述加密密钥对所述第三计算结果加密得到第三计算结果密文;
所述第二参与节点利用所述第二计算结果密文与所述第三计算结果密文进行同态运算,得到所述测试域密文。
一种可选的实施例中,所述第二参与节点根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元,包括:
所述第二参与节点利用费马定理,根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元。
一种可选的实施例中,所述第一素数数据与所述第二素数数据均为强素数。
本发明实施例还提供一种分布式素性测试的装置,所述装置包括:
接收单元,用于接收第一参与节点发送的加密密钥以及测试域密文参数,所述测试域密文参数为所述第一参与节点利用所述加密密钥、第一素数数据、以及第一待测参数确定的;
计算单元,用于利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;所述第一待测参数与所述第二待测参数之和为目标整数;
发送单元,用于将所述测试域密文向所述第一参与节点发送,以使所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
所述接收单元,还用于接收所述第一参与节点发送的测试参数以及所述测试域明文,所述测试参数为所述第一参与节点根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定的;
所述计算单元,还用于根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
一种可选的实施例中,所述测试域密文参数包括利用所述加密密钥对第一素数数据加密得到的第一素数密文,以及根据所述第一素数数据、第一待测参数得到第一计算结果并利用所述加密密钥对所述第一计算结果加密得到的第一计算结果密文。
一种可选的实施例中,所述计算单元,具体用于:
根据所述第一素数密文、第二素数数据和第二待测参数进行计算得到第二计算结果,并利用所述加密密钥对所述第二计算结果加密得到第二计算结果密文;
根据所述第一计算结果密文以及所述第二素数数据计算得到第三计算结果,并利用所述加密密钥对所述第三计算结果加密得到第三计算结果密文;
利用所述第二计算结果密文与所述第三计算结果密文进行同态运算,得到所述测试域密文。
一种可选的实施例中,所述计算单元,具体用于:
利用费马定理,根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元。
一种可选的实施例中,所述第一素数数据与所述第二素数数据均为强素数。
本发明实施例中还提供一种分布式素性测试的系统,所述分布式素性测试系统包括至少两个参与节点,其中,第二参与节点为所述分布式素性测试系统中的任一参与节点,第一参与节点为所述分布式素性测试系统中除所述第二参与节点之外的节点,所述分布式素性测试系统包括:
所述第一参与节点用于利用加密密钥、第一素数数据、以及第一待测参数确定测试域密文参数;
所述第二参与节点用于接收第一参与节点发送的所述加密密钥以及所述测试域密文参数;
所述第二参与节点用于利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文,并将所述测试域密文向所述第一参与节点发送;所述第一待测参数与所述第二待测参数之和为目标整数;
所述第一参与节点用于利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
所述第一参与节点还用于根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定测试参数;
所述第二参与节点用于接收所述第一参与节点发送的所述测试参数以及所述测试域明文,;
所述第二参与节点还用于根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
本发明实施例中的分布式素性测试系统包括至少两个参与节点,其中第二参与节点为分布式素性测试系统中的任一参与节点,第一参与节点为分布式素性测试系统中除第二参与节点之外的节点。第一参与节点持有第一素数数据、和第一待测参数,第二参与节点持有第二素数数据和第二待测参数,其中,第一待测参数与第二待测参数之和为目标整数。
第一参与节点确定加密密钥和解密密钥,并将加密密钥发送至第二参与节点。在第一参与节点与第二参与节点共同对目标整数进行素性测试的过程中,第一参与节点将第一素数数据和第一待测参数运算并加密得到测试域密文参数发送至第二参与节点,第二参与节点将第二素数数据、第二待测参数与测试域密文参数进行同态运算,得到测试域密文。这个过程中,由于第二参与节点没有解密密钥,因此第二参与节点无法获知第一素数数据和第一待测参数。
第二参与节点将测试域密文发送至第一参与节点,第一参与节点可以利用解密密钥对测试域密文进行解密,得到测试域明文。该测试域明文等于第一素数数据、第二素数数据与目标整数之积,又因为目标整数是第一待测参数与所述第二待测参数之和,因此,第一参与节点也无法利用测试域明文推测出第二素数数据和第二待测参数。第一参与节点随机选取随机整数,根据随机整数、第一素数数据、第一待测参数以及测试域明文确定测试参数,并将测试参数以及测试域明文发送至第二参与节点。第二参与节点根据第二素数数据、第二待测参数、测试参数以及测试域明文进行计算,判断随机整数是否为测试域明文的生成元,若是,则确定目标整数为素数;若否,则确定目标整数不是素数。
在上述过程中,将测试域由目标整数扩展至测试域明文,即第一素数数据、第二素数数据与目标整数之积,仅需一次测试就能判断该目标整数是否为素数,判错的概率低于10-16。同时,由于第一参与节点持有第一素数数据和第一待测参数,第二参与节点持有第二素数数据和第二待测参数,测试过程中第一参与节点与第二参与节点之间无法获知对方的素数数据以及待测参数,因此保证了分布式系统中数据的安全性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式素性测试系统的结构示意图;
图2为本发明实施例提供的一种分布式素性测试方法的流程示意图;
图3为本发明具体实施例提供的一种分布式素性测试方法的流程示意图;
图4为本发明实施例提供的一种分布式素性测试装置的结构示意图;
图5为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
现有的方法和技术主要集中在对Rabin-Miller算法的进行优化:用小素数试除被测试整数,只有通过小素数试除的整数才进行Rabin-Millier测试。这种方法可以把Rabin-Miller测试次数降低一个数量级,但仍需要数十次的测试。对于分布式网络应用来说,数十次的协议通信仍然是一个明显的性能瓶颈。其次,进行小素数试除也需要各个参与方的协同计算才能够实现,因此在分布式应用环境中,这种优化方法没有从根本上来解决分布式素性测试的通信复杂度问题。
鉴于此,本发明实施例提出了一种两方合作进行素性测试的方法和系统。在本发明实施例中,把目标整数p的素性测试域由扩展到其中n1和n2为两个强素数,n1被其中一个参与方持有,n2被另一个参与方持有。然后,在域中利用费马定理进行素性测试,仅需一次测试就能判定一个整数是否为素数,判错的概率低于10-16。同时,测试过程中没有泄露目标整数p给任意一个参与方。
进一步地,本发明实施例的素性测试还可以应用于三方合作甚至多方合作。例如,在三方合作中,目标整数p的素性测试域由扩展到其中n1、n2、n3分别为三个强素数,n1、n2、n3分别一个参与方持有。然后,在域中利用费马定理进行素性测试。多方合作以此类推。
参考图1,其为本申请实施例提供的分布式素性测试系统架构的示意图。该应用场景至少两个参与节点101,每个参与节点101存有各自的素数数据和待测参数,不同参与节点101均需要保护各自的数据隐私。
参与节点101之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
参与节点101可以是终端设备,也可以是服务器,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,应用于云电子地图产品中,应对电子地图大数据量的处理需求。
在基于云技术实现时,参与节点101可以通过云计算和云存储的方式对数据进行处理。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
下面结合图1所示的应用场景,对本申请实施例提供的分布式素性测试方法进行说明。本申请实施例中的分布式素性测试方法应用于参与分布式素性测试系统中的参与节点,分布式素性测试系统包括至少两个参与节点,其中第二参与节点为分布式素性测试系统中的任一参与节点,第一参与节点为分布式素性测试系统中除第二参与节点之外的节点。需要说明的是,第一参与节点的数量可以为一个,也可以为多个,本发明实施例以第一参与节点的数量为一个进行举例,多个第一参与节点的执行过程与本发明实施例中介绍的方法可以同理推出。
请参考图2,本申请实施例提供了一种分布式素性测试方法,如图2所示,方法包括:
步骤S301:第一参与节点利用加密密钥、第一素数数据、以及第一待测参数确定测试域密文参数;
步骤S302:所述第二参与节点接收第一参与节点发送的所述加密密钥以及所述测试域密文参数;
步骤S303:所述第二参与节点利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文,并将所述测试域密文向所述第一参与节点发送;所述第一待测参数与所述第二待测参数之和为目标整数;
步骤S304:所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
步骤S305:所述第一参与节点还根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定测试参数;
步骤S306:所述第二参与节点接收所述第一参与节点发送的所述测试参数以及所述测试域明文;
步骤S307:所述第二参与节点还根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;
若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
本发明实施例中,第一参与节点确定加密密钥和解密密钥,并将加密密钥发送至第二参与节点。在第一参与节点与第二参与节点共同对目标整数进行素性测试的过程中,第一参与节点将第一素数数据和第一待测参数运算并加密得到测试域密文参数发送至第二参与节点,第二参与节点将第二素数数据、第二待测参数与测试域密文参数进行同态运算,得到测试域密文。这个过程中,由于第二参与节点没有解密密钥,因此第二参与节点无法获知第一素数数据和第一待测参数。
第二参与节点将测试域密文发送至第一参与节点,第一参与节点可以利用解密密钥对测试域密文进行解密,得到测试域明文。该测试域明文等于第一素数数据、第二素数数据与目标整数之积,又因为目标整数是第一待测参数与所述第二待测参数之和,因此,第一参与节点也无法利用测试域明文推测出第二素数数据和第二待测参数。第一参与节点随机选取随机整数,根据随机整数、第一素数数据、第一待测参数以及测试域明文确定测试参数,并将测试参数以及测试域明文发送至第二参与节点。第二参与节点根据第二素数数据、第二待测参数、测试参数以及测试域明文进行计算,判断随机整数是否为测试域明文的生成元,若是,则确定目标整数为素数;若否,则确定目标整数不是素数。
在上述过程中,将测试域由目标整数扩展至测试域明文,即第一素数数据、第二素数数据与目标整数之积,仅需一次测试就能判断该目标整数是否为素数,判错的概率低于10-16。同时,由于第一参与节点持有第一素数数据和第一待测参数,第二参与节点持有第二素数数据和第二待测参数,测试过程中第一参与节点与第二参与节点之间无法获知对方的素数数据以及待测参数,因此保证了分布式系统中数据的安全性。
较佳地,上述过程中,第一素数数据与第二素数数据均为强素数。在密码学中,一个素数p在满足下列条件时被称为强素数:p是很大的数,p-1有很大的质因数。由于强素数之积很难分解,因此本发明实施例利用强素数作为素数数据提高了计算过程中数据的安全性。
进一步地,上述测试域密文参数包括利用加密密钥对第一素数数据加密得到的第一素数密文,以及根据第一素数数据、第一待测参数得到第一计算结果并利用加密密钥对第一计算结果加密得到的第一计算结果密文。
则,第二参与节点利用加密密钥,将测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文,包括:
第二参与节点根据第一素数密文、第二素数数据和第二待测参数进行计算得到第二计算结果,并利用加密密钥对第二计算结果加密得到第二计算结果密文;
第二参与节点根据第一计算结果密文以及第二素数数据计算得到第三计算结果,并利用加密密钥对第三计算结果加密得到第三计算结果密文;
第二参与节点利用第二计算结果密文与第三计算结果密文进行同态运算,得到测试域密文。
具体实施过程中,第一参与节点与第二参与节点利用同态加密的原理,根据第一素数数据、第一待测参数、第二素数数据和第二待测参数确定出测试域密文,再将测试域密文进行解密即可得到测试域明文。
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。也就是说,其他人可以对加密数据进行处理,但是处理过程不会泄露任何原始内容。同时,拥有密钥的用户对处理过的数据进行解密后,得到的正好是处理后的结果。
上述过程中,由于第一参与节点无法得知第二参与节点持有的第二素数数据和第二待测参数,且第二参与节点也无法得知第一参与节点持有的第一素数数据和第一待测参数,因此,保证了分布式系统中数据安全。
进一步地,第二参与节点根据第二素数数据、第二待测参数、测试参数以及测试域明文,判断随机整数是否为测试域明文的生成元,包括:
第二参与节点利用费马定理,根据第二素数数据、第二待测参数、测试参数以及测试域明文,判断随机整数是否为测试域明文的生成元。
需要说明的是,本发明实施例中费马定理是费马小定理(Fermat′s littletheorem)。定理内容为如果p是一个质数,而整数a不是p的倍数而整数a不是p的倍数(即a是的生成元),则有ap-1≡1(mod p)。因此,本发明实施例中通过随机数发生器随机确定一个整数r,通过测试r是否为测试域明文的生成元来确定测试域明文中的目标整数是否为素数。
下面以一个具体的实施例来介绍上述分布式素性测试的方法。设整数n是一个上界,所有被测试的整数不会超过n。本发明具体实施例里有两个参与方,分别表示为A和S,分别持有目标整数p的一个待测参数pA和pS,即p=pA+pS。设HE=(HKG,HE,HD)为一个加法同态加密方案,其中HKG是密钥生成算法,HE和HD分别是加密和解密算法,若m1和m2对应的密文分别为c1和c2,则为m1+m2的密文,为a×m1的密文。(a,b)表示位于a和b之间的所有自然数,不包括a和b。本发明实施例里A和S合作对目标整数p进行素性测试,并确保目标整数p的安全性。图3示出了具体实施例中分布式素性测试的方法的流程图。
本发明具体实施例中的两个参与方,分别表示为A和S,他们分别持有目标整数p的一个待测参数pA和pS,即p=pA+pS。
参与方S执行HKG算法得到加密密钥pkHE和解密密钥skHE。
参与方S利用随机数发生器选择强素数tS=(2φS+1)∈(1,n),并计算:
ctS=HE(pkHE,tS)……公式1
ctpS=HE(pkHE,pS×tS)……公式2
参与方S发送pkHE、CtS和ctpS给参与方A。
参与方A利用随机数发生器选择强素数tA=(2φA+1)∈(1,n),计算得到测试域密文ctp:
参与方A发送ctp至参与方S。
参与方S进行解密计算,得到测试域明文tp:
tp=HD(skHE,ctp)……公式4
参与方S利用随机数发生器选择r∈(1,n),并计算:
参与方S发送tp、eφS和eφpS给参与方A。
参与方A计算:
则若v=1,则输出1,表示p=pA+pS是素数;否则,即v≠1,则输出0,表示p=pA+pS不是素数。
本发明实施例还提供了一种分布式素性测试的装置,图4为本发明实施例提供的一种分布式素性测试的装置的结构示意图,该装置包括:
接收单元401,用于接收第一参与节点发送的加密密钥以及测试域密文参数,所述测试域密文参数为所述第一参与节点利用所述加密密钥、第一素数数据、以及第一待测参数确定的;
计算单元402,用于利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;所述第一待测参数与所述第二待测参数之和为目标整数;
发送单元403,用于将所述测试域密文向所述第一参与节点发送,以使所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
所述接收单元401,还用于接收所述第一参与节点发送的测试参数以及所述测试域明文,所述测试参数为所述第一参与节点根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定的;
所述计算单元402,还用于根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
可选的,所述测试域密文参数包括利用所述加密密钥对第一素数数据加密得到的第一素数密文,以及根据所述第一素数数据、第一待测参数得到第一计算结果并利用所述加密密钥对所述第一计算结果加密得到的第一计算结果密文。
可选的,所述计算单元402,具体用于:
根据所述第一素数密文、第二素数数据和第二待测参数进行计算得到第二计算结果,并利用所述加密密钥对所述第二计算结果加密得到第二计算结果密文;
根据所述第一计算结果密文以及所述第二素数数据计算得到第三计算结果,并利用所述加密密钥对所述第三计算结果加密得到第三计算结果密文;
利用所述第二计算结果密文与所述第三计算结果密文进行同态运算,得到所述测试域密文。
可选的,所述计算单元402,具体用于:
利用费马定理,根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元。
可选的,所述第一素数数据与所述第二素数数据均为强素数。
图5为本发明实施例提供的一种电子设备结构示意图,该电子设备,包括:处理器61、通信接口62、存储器63和通信总线64,其中,处理器61,通信接口62,存储器63通过通信总线64完成相互间的通信;
所述存储器63中存储有计算机程序,当所述程序被所述处理器61执行时,使得所述处理器61执行如下步骤:
接收所述第一参与节点发送的加密密钥以及测试域密文参数,所述测试域密文参数为所述第一参与节点利用所述加密密钥、第一素数数据、以及第一待测参数确定的;
利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;所述第一待测参数与所述第二待测参数之和为目标整数;
将所述测试域密文向所述第一参与节点发送,以使所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
接收所述第一参与节点发送的测试参数以及所述测试域明文,所述测试参数为所述第一参与节点根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定的;
根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;
若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
由于上述电子设备解决问题的原理与基于分布式素性测试的方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口62用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
接收所述第一参与节点发送的加密密钥以及测试域密文参数,所述测试域密文参数为所述第一参与节点利用所述加密密钥、第一素数数据、以及第一待测参数确定的;
利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;所述第一待测参数与所述第二待测参数之和为目标整数;
将所述测试域密文向所述第一参与节点发送,以使所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
接收所述第一参与节点发送的测试参数以及所述测试域明文,所述测试参数为所述第一参与节点根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定的;
根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;
若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种分布式素性测试的方法,应用于参与分布式素性测试系统中的参与节点,所述分布式素性测试系统包括至少两个参与节点,其中第二参与节点为所述分布式素性测试系统中的任一参与节点,第一参与节点为所述分布式素性测试系统中除所述第二参与节点之外的节点,其特征在于,所述分布式素性测试方法包括:
所述第二参与节点接收所述第一参与节点发送的加密密钥以及测试域密文参数,所述测试域密文参数为所述第一参与节点利用所述加密密钥、第一素数数据、以及第一待测参数确定的;
所述第二参与节点利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;所述第一待测参数与所述第二待测参数之和为目标整数;
所述第二参与节点将所述测试域密文向所述第一参与节点发送,以使所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
所述第二参与节点接收所述第一参与节点发送的测试参数以及所述测试域明文,所述测试参数为所述第一参与节点根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定的;
所述第二参与节点根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;
若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
2.根据权利要求1所述的方法,其特征在于,所述测试域密文参数包括利用所述加密密钥对第一素数数据加密得到的第一素数密文,以及根据所述第一素数数据、第一待测参数得到第一计算结果并利用所述加密密钥对所述第一计算结果加密得到的第一计算结果密文。
3.根据权利要求2所述的方法,其特征在于,所述第二参与节点利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文,包括:
所述第二参与节点根据所述第一素数密文、第二素数数据和第二待测参数进行计算得到第二计算结果,并利用所述加密密钥对所述第二计算结果加密得到第二计算结果密文;
所述第二参与节点根据所述第一计算结果密文以及所述第二素数数据计算得到第三计算结果,并利用所述加密密钥对所述第三计算结果加密得到第三计算结果密文;
所述第二参与节点利用所述第二计算结果密文与所述第三计算结果密文进行同态运算,得到所述测试域密文。
4.根据权利要求1所述的方法,其特征在于,所述第二参与节点根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元,包括:
所述第二参与节点利用费马定理,根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一素数数据与所述第二素数数据均为强素数。
6.一种分布式素性测试的装置,其特征在于,所述装置包括:
接收单元,用于接收第一参与节点发送的加密密钥以及测试域密文参数,所述测试域密文参数为所述第一参与节点利用所述加密密钥、第一素数数据、以及第一待测参数确定的;
计算单元,用于利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文;所述第一待测参数与所述第二待测参数之和为目标整数;
发送单元,用于将所述测试域密文向所述第一参与节点发送,以使所述第一参与节点利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
所述接收单元,还用于接收所述第一参与节点发送的测试参数以及所述测试域明文,所述测试参数为所述第一参与节点根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定的;
所述计算单元,还用于根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
7.根据权利要求6所述的装置,其特征在于,所述测试域密文参数包括利用所述加密密钥对第一素数数据加密得到的第一素数密文,以及根据所述第一素数数据、第一待测参数得到第一计算结果并利用所述加密密钥对所述第一计算结果加密得到的第一计算结果密文。
8.根据权利要求7所述的装置,其特征在于,所述计算单元,具体用于:
根据所述第一素数密文、第二素数数据和第二待测参数进行计算得到第二计算结果,并利用所述加密密钥对所述第二计算结果加密得到第二计算结果密文;
根据所述第一计算结果密文以及所述第二素数数据计算得到第三计算结果,并利用所述加密密钥对所述第三计算结果加密得到第三计算结果密文;
利用所述第二计算结果密文与所述第三计算结果密文进行同态运算,得到所述测试域密文。
9.根据权利要求6所述的装置,其特征在于,所述计算单元,具体用于:
利用费马定理,根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述第一素数数据与所述第二素数数据均为强素数。
11.一种分布式素性测试的系统,所述分布式素性测试系统包括至少两个参与节点,其中,第二参与节点为所述分布式素性测试系统中的任一参与节点,第一参与节点为所述分布式素性测试系统中除所述第二参与节点之外的节点,其特征在于,所述分布式素性测试系统包括:
所述第一参与节点用于利用加密密钥、第一素数数据、以及第一待测参数确定测试域密文参数;
所述第二参与节点用于接收第一参与节点发送的所述加密密钥以及所述测试域密文参数;
所述第二参与节点用于利用所述加密密钥,将所述测试域密文参数、第二素数数据和第二待测参数进行同态运算得到测试域密文,并将所述测试域密文向所述第一参与节点发送;所述第一待测参数与所述第二待测参数之和为目标整数;
所述第一参与节点用于利用所述加密密钥对应的解密密钥对所述测试域密文解密,得到测试域明文,所述测试域明文等于所述第一素数数据、所述第二素数数据与所述目标整数之积;
所述第一参与节点还用于根据随机整数、所述第一素数数据、所述第一待测参数以及所述测试域明文确定测试参数;
所述第二参与节点用于接收所述第一参与节点发送的所述测试参数以及所述测试域明文,;
所述第二参与节点还用于根据所述第二素数数据、所述第二待测参数、所述测试参数以及所述测试域明文,判断所述随机整数是否为所述测试域明文的生成元;若是,则确定所述目标整数为素数;若否,则确定所述目标整数不是素数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618939.6A CN114697034A (zh) | 2020-12-31 | 2020-12-31 | 一种分布式素性测试的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618939.6A CN114697034A (zh) | 2020-12-31 | 2020-12-31 | 一种分布式素性测试的方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114697034A true CN114697034A (zh) | 2022-07-01 |
Family
ID=82134300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011618939.6A Pending CN114697034A (zh) | 2020-12-31 | 2020-12-31 | 一种分布式素性测试的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114697034A (zh) |
-
2020
- 2020-12-31 CN CN202011618939.6A patent/CN114697034A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768607B (zh) | 一种基于区块链的投票方法、装置、设备及介质 | |
Wang et al. | Oruta: Privacy-preserving public auditing for shared data in the cloud | |
CN110999209B (zh) | 一种用于通信的装置、方法和非瞬态计算机可读介质 | |
US8331568B2 (en) | Efficient distribution of computation in key agreement | |
US11374975B2 (en) | TLS integration of post quantum cryptographic algorithms | |
Bordel et al. | An intra-slice security solution for emerging 5G networks based on pseudo-random number generators | |
CN111989891A (zh) | 数据处理方法、相关装置及区块链系统 | |
CN104468476A (zh) | 无证书多重代理签名的方法和装置 | |
US10630476B1 (en) | Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems | |
Singh et al. | Secured user's authentication and private data storage-access scheme in cloud computing using Elliptic curve cryptography | |
CN115694777A (zh) | 基于同态加密的隐私集合求交方法、装置、设备及介质 | |
CN108055128A (zh) | Rsa密钥的生成方法、装置、存储介质及计算机设备 | |
CN110635912A (zh) | 数据处理方法及装置 | |
CN109547413A (zh) | 具有数据源认证的可转换的数据云存储的访问控制方法 | |
US20150023498A1 (en) | Byzantine fault tolerance and threshold coin tossing | |
CN115664629A (zh) | 一种基于同态加密的智慧物联平台数据隐私保护方法 | |
CN116681141A (zh) | 隐私保护的联邦学习方法、终端及存储介质 | |
CN113645294B (zh) | 消息获取方法、装置、计算机设备和消息传输系统 | |
CN112995215B (zh) | 解密系统、方法、装置、电子设备及存储介质 | |
Kulkarni et al. | A comparative analysis of hybrid encryption technique for images in the cloud environment | |
EP4173222B1 (en) | Distributed networks having a plurality of subnets | |
US10880278B1 (en) | Broadcasting in supersingular isogeny-based cryptosystems | |
CN115022012B (zh) | 一种数据传输方法、装置、系统、设备及存储介质 | |
CN111245594A (zh) | 一种基于同态运算的协同签名方法及系统 | |
Liu et al. | Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators |
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 |