CN112003690B - 密码服务系统、方法及装置 - Google Patents
密码服务系统、方法及装置 Download PDFInfo
- Publication number
- CN112003690B CN112003690B CN201910759555.7A CN201910759555A CN112003690B CN 112003690 B CN112003690 B CN 112003690B CN 201910759555 A CN201910759555 A CN 201910759555A CN 112003690 B CN112003690 B CN 112003690B
- Authority
- CN
- China
- Prior art keywords
- service
- password
- cryptographic
- cryptographic service
- nodes
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 239000012634 fragment Substances 0.000 claims description 111
- 238000012545 processing Methods 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 24
- 230000026676 system process Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 179
- 238000004364 calculation method Methods 0.000 description 113
- 230000005540 biological transmission Effects 0.000 description 45
- 230000003993 interaction Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 15
- 239000006185 dispersion Substances 0.000 description 10
- 238000007792 addition Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000000605 extraction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000010130 dispersion processing Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种密码服务系统、方法及装置,其中,所述密码服务系统包括:被配置于互不信任且网络通信的系统架构中的多个密码服务节点;其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令;所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。本申请的密码服务系统用于解决硬件加密机使用单一服务器提供密码服务造成的安全性不高的问题。
Description
技术领域
本申请涉及数据安全技术领域,特别是涉及一种密码服务系统、方法及装置。
背景技术
为了保护企业和用户的隐私数据,例如银行等金融系统均采用硬件加密机对隐私数据进行加密传输与存储。然而,目前的硬件加密机一般都是由单一服务器进行密码服务,利用单一密码服务器进行密码服务时避免不了在单一服务器中会恢复用户或企业用于加密隐私数据的私钥、隐私数据的明文以及加密机的主密钥等数据,攻击者如果攻破硬件加密机的服务器就可能得到上述数据,使得目前的硬件加密机存在安全性不高的问题。针对现有硬件加密机中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种密码服务系统、方法及装置,用于解决现有技术中加密机使用单一服务器提供密码服务导致安全性不高的问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种密码服务系统,包括:被配置于互不信任且网络通信的系统架构中的多个密码服务节点;其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令;所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。
在第一方面的某些实施方式中,所述密码服务系统还包括密码服务管理系统,所述密码服务管理系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务管理节点;其中,每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令。
在第一方面的某些实施方式中,所述每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令的步骤包括:所述多个密码服务管理节点基于所述多个密码服务节点所提供的密码服务请求执行相应密码管理服务的运算指令以得到多个密码管理服务结果;将所得到的多个密码管理服务结果分配给各密码服务节点,以供各所述密码服务节点恢复相应密钥数据。
在第一方面的某些实施方式中,所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量的步骤包括:所述多个密码服务节点基于所述密码服务请求获取待处理数据;所述多个密码服务节点基于各自所恢复的密钥数据对所获取的待处理数据协同执行相应密码服务的运算指令。
在第一方面的某些实施方式中,所述密码服务请求包括以下任一种:生成随机数服务请求、包含一密码类型的生成密码的服务请求;所述多个密码服务节点在执行各自的对应密码服务的运算指令时执行:至少两个密码服务节点生成随机初始值;所述多个密码服务节点基于所生成的随机初始值协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。
在第一方面的某些实施方式中,所述运算指令是基于所述密码服务节点在秘密分享技术中的计算角色而设置的。
在第一方面的某些实施方式中,所述密码服务管理系统还基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量,并提供给各密码服务节点。
本申请第二方面提供一种密码服务方法,其中,应用于被配置于互不信任且网络通信的系统架构中的多个密码服务节点;其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令;所述密码服务方法包括:所述密码服务节点基于一密码服务请求与其他密码服务节点协同执行相应密码服务的运算指令,以得到密码服务结果分量的步骤。
本申请第三方面提供一种密码服务装置,其中包括:多个计算装置,各所述计算装置被配置于互不信任且电性连接的计算系统架构中;所述密码服务装置中的多个计算装置执行如第二方面所述的密码服务方法。
本申请第四方面提供一种计算机可读存储介质,其特征在于,存储有至少一个程序,所述程序被多个处理器协同执行时执行如第二方面所述密码服务方法。
如上所述,本申请的密码服务系统、方法及装置,通过多个密码服务节点协同执行一密码服务的运算指令,以得到对应于一密码服务的多个密码服务结果分量,使得单一密码服务节点的密码服务结果分量不能恢复出所述密码服务对应的服务结果,多个密码服务结果分量可以恢复成对应密码服务的服务结果,提升了密码服务的安全性。
附图说明
图1显示为本申请的密码服务系统在一实施方式中的结构示意图。
图2显示为本申请的密码服务系统在另一实施方式中的结构示意图。
图3显示为本申请的密码服务系统与客户端进行数据交互在一实施方式中的示意图。
图4显示为利用树状结构描述循环处理操作的计算任务的示意图。
图5显示为利用树状结构描述提取公因子操作的计算任务的示意图。
图6显示为利用树状结构描述常用表达提取操作的计算任务的示意图。
图7显示为本申请的密码服务方法的流程示意框图。
图8显示为本申请的密码服务装置在一实施方式中的示意图。
图9显示为本申请的密码服务装置在另一实施方式中的示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一密码服务节点可以被称作第二密码服务节点,并且类似地,第二密码服务节点可以被称作第一密码服务节点,而不脱离各种所描述的实施例的范围。第一密码服务节点和第二密码服务节点均是在描述一个密码服务节点,但是除非上下文以其他方式明确指出,否则它们不是同一个密码服务节点。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示.应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加.此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合.因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”.仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
随着信息技术的发展,网络信息安全问题也日益凸出,所以各企业尤其是商业银行、金融IC卡系统、信用卡系统、银行转账系统、网上证券交易系统等金融系统会采取加密方式对数据进行传输与存储,会使用硬件加密机保护用户和企业的隐私数据(如个人银行理财信息、个人银行卡支付口令、投资者的股票交易信息、银行的等)、企业的应用程序等。
然而,目前的硬件加密机一般都是由单一服务器进行密码服务,这种提供密码服务的方式势必会增加服务器的负担,并且利用单一密码服务器进行密码服务时避免不了在单一服务器中会恢复用户或企业用于加密的私钥、隐私数据的明文以及加密机的主密钥等数据,攻击者如果攻破硬件加密机的服务器就可能得到上述数据,使得目前的硬件加密机存在安全性不高的问题。
为此,本申请提供一种密码服务系统,如图1所示,所述密码服务系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务节点,其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令。
其中,所述多个密码服务节点之间具有互不信任的属性,即在无可信第三方的情况下,参与执行任一密码服务运算的多个密码服务节点均不会主动将各自所保存的数据泄漏给第三方,以及各参与计算的各密码服务节点之间除了计算结果外得不到其他额外输入信息。在此,利用基于多方安全计算而设置的运算指令解决互不信任的各密码服务节点之间协同计算任一密码服务。
所述密码服务节点可以为单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备等。其中,所述单台计算机设备可以是自主配置的可基于运算指令执行多方安全计算的计算机设备,其可位于私有机房或位于公共机房中的某个被租用的机位中。其中,所述密码服务节点也可以为虚拟设备,其中,密码服务节点所配置的运算指令为可由虚拟设备执行的软件程序,所述密码服务节点的实体或虚拟设备被配置于分布式系统中。所述云架构的服务系统包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括SaaS、PaaS及IaaS等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等等。
所述密码服务节点可包含存储装置、处理装置、网络接口装置等。为此所述网络接口装置与处理装置数据连接,其可以通过网络通信进行数据传递。为此,所述接口装置包括但不限于网卡、移动网络接入模块等。
其中,所述存储装置用于存储供所属密码服务节点执行密码服务方法的至少一个程序。所述存储装置可包括动态随机存取存储器、静态随机存取存储器,并且还可包括非易失性存储器,例如一个或多个硬盘存储设备、闪存设备、可编程只读存储器、可擦除可编程只读存储器、带电可擦除可编程只读存储器或其他非易失性固态存储设备等。所述存储装置还包括存储器控制器,其可控制设备的诸如CPU和外设接口之类的其他组件对存储装置的访问。其中,存储在存储装置中的软件组件包括操作系统、通信模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。
所述处理装置与所述存储装置相连,用于调用所述至少一个程序并协调所述存储装置和网络接口装置执行所述密码服务方法。所述处理装置可操作地与存储装置耦接。更具体地,处理装置可执行在存储装置中存储的程序以在处理装置中执行操作。如此,处理装置可包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个现场可编程逻辑阵列(FPGA)、或它们的任何组合。
事实上,根据密码服务节点实际运行的运算指令的硬件装置,上述各装置可位于单台服务器上,或位于多台服务器中并通过各服务器之间的数据通信完成该密码服务节点所执行的运算指令。
在一实施方式中,所述密码服务节点还可以包括发送所述密码服务请求的计算机设备,所述计算机设备可以是客户端或服务端。
在此,多方安全计算系统架构是所述密码服务系统中参与指定密码服务进行多方安全计算的多个密码服务节点构成的,所述参与密码服务的密码服务节点的数量可以是固定的也可以根据用户的密码服务请求而确定。每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令,所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。
其中,所述密码服务系统用于提供多种密码服务。所述密码服务包括但不限于密钥生成、密钥存储、密钥导入、密钥导出、密钥更新、密钥销毁、密钥备份和密钥恢复、签名、验证签名、工作密钥协商、消息摘要、数据加密、数据解密、生成随机数等。所述密码服务系统用于保证客户端的数据在产生、传输、接收到管理整个过程的安全性、有效性、完整性、不可抵赖性等安全问题。在某些实施方式中,所述密码服务系统为分布式的密码服务系统,所述各密码服务节点通过网络通信来协同执行多种密码服务的运算指令。
其中,所述密码服务请求可来自客户端或服务端。以支付应用为例,用户在刷卡支付时藉由执行刷卡操作的终端设备基于支付业务流程发出至少一个密码服务请求。以安全网络通信应用为例,根据建立服务端与浏览器之间安全通信通道的通信流程,相应的服务端发出至少一个密码服务请求。其中,根据所述密码服务系统与发送方预设的请求配置,发出密码服务请求的发送方就一次密码服务发出至少一个密码服务请求。例如,多个密码服务节点参与执行一个密码服务,发送方根据预先向每个密码服务节点单独发送密码服务请求。又如,发送方向其中一个密码服务节点发送密码服务请求,由接收密码服务请求的密码服务节点将所述密码服务请求转发给参与相应密码服务的其他密码服务节点。
在一些示例中,所述密码服务系统还包括密码服务管理系统,所述密码服务管理系统用于基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量,并提供给各密码服务节点。其中,所述密码服务管理系统将于后续详述。
所述运算指令用于指示各密码服务节点中的各硬件模块协同执行以完成对应密码服务的多方安全计算。所述密码服务系统中的密码服务节点数量不同则对应预置在各密码服务节点中的用于与至少另一密码服务节点协同执行多种密码服务的运算指令不同。其中,所述运算指令是基于所述密码服务节点在秘密分享技术中的计算角色而设置的。
以密码服务系统包含四个密码服务节点为例,所述运算指令是基于四个密码服务节点执行秘密分享运算的计算协议中各密码服务节点的计算角色而生成的。其中,所述基于四个密码服务节点执行秘密分享运算的计算协议包括:利用至少两个密码服务节点执行秘密分享技术中加法计算的计算协议,利用四个密码服务节点执行秘密分享技术中乘法计算的计算协议,利用四个密码服务节点执行秘密分享技术中位提取计算的计算协议,利用四个密码服务节点执行秘密分享技术中不经意传输的计算协议等。
在一实施方式中,所述计算协议为利用四个密码服务节点执行秘密分享技术中两个输入数据乘法计算的计算协议。其中,所述输入数据为用于执行相应密码服务的数据,例如,密钥数据、待处理数据,或者基于密钥数据和/或待处理数据进行预处理后得到的数据等。将所述输入数据进行分散处理后得到相应的数据分片。按照相应计算协议,各密码服务节点分别对各自的数据分片组进行本地计算,以及将本地计算所产生的中间数据进行交互,得到经由各密码服务节点分别持有的计算结果。客户端(或服务端)基于四个密码服务节点所得到的处理结果的数量为两个,若两个处理结果相同,则客户端(或服务端)可认定密码服务系统所执行密码服务的计算结果正确,反之,则不正确。由此可见,采用四选二的方式来提取计算结果还具有验证各密码服务节点计算结果的正确性的作用。
各密码服务节点分别对各自所获取的数据分片组进行本地计算,以及将本地计算所产生的中间数据进行交互,得到经由各密码服务节点分别持有的计算结果的步骤包括:所述密码服务系统中的第一密码服务节点、第二密码服务节点、第三密码服务节点和第四密码服务节点依次获取数据分片组{x1,x'1,y1,y'1},数据分片组{x2,x'2,y2,y'2},数据分片组{xa,x'a,ya,y'a},以及数据分片组{xb,x'b,yb,y'b};其中,{x1,x'1,x2,x'2,xa,x'a,xb,x'b}是输入数据X经随机分散处理得到的,{y1,y'1,y2,y'2,ya,y'a,yb,y'b}是输入数据Y经随机分散处理得到的。
按照利用四个密码服务节点执行输入数据X和Y的乘法计算任务而生成的多方计算指令,所述密码服务系统执行以下步骤:令所述第一密码服务节点和第二密码服务节点共享随机数r12和r1'2,以及令所述第三密码服务节点和第四密码服务节点共享随机数rab和ra'b;令所述第一密码服务节点和第二密码服务节点分别对各自所持有的数据分片组进行乘法计算和用于抵消随机数r12和r1'2的数学计算,以便第一密码服务节点得到中间数据t1和t'1,以及第二密码服务节点得到中间数据t2和t'2;令所述第三密码服务节点和第四密码服务节点分别对各自所持有的数据分片组进行乘法计算和用于抵消随机数rab和ra'b的数学计算,以便第三密码服务节点得到中间数据ta和t'a,以及第四密码服务节点得到中间数据tb和t'b;令第一密码服务节点和第三密码服务节点置换各自的一个中间数据,以及第一密码服务节点和第四密码服务节点置换各自的一个中间数据;令第二密码服务节点和第三密码服务节点置换各自的一个中间数据,以及第二密码服务节点和第四密码服务节点置换各自的一个中间数据;令各密码服务节点分别利用基于置换操作而配对的中间数据执行包含加法的本地计算,以便每个密码服务节点得到两个包含可抵消随机数的计算结果。
在一实施方式中,所述计算协议为利用四个密码服务节点执行秘密分享技术中位提取计算的计算协议,所述计算任务包括提取输入数据X中二进制位的计算任务。所述按照计算指令,各密码服务节点分别对各自所获取的数据分片组进行本地计算,以及将本地计算所产生的中间数据进行交互,得到经由各密码服务节点分别持有的计算结果的步骤包括:四个所述密码服务节点利用k轮次1比特置换数据的数据交互得到各自持有的计算结果,其中,所述计算结果用于提取输入数据X中二进制位,k为对应所述计算任务中输入数据X的待提取的二进制位数。
所述计算任务包括提取输入数据X中二进制位的计算任务。所述按照计算指令,各密码服务节点分别对各自所获取的数据分片组进行本地计算,以及将本地计算所产生的中间数据进行交互,得到经由各密码服务节点分别持有的计算结果的步骤包括:所述密码服务系统中的第一密码服务节点、第二密码服务节点、第三密码服务节点和第四密码服务节点依次获取数据分片组{x1},数据分片组{x2},数据分片组{xa},以及数据分片组{xb};其中,{x1,x2,xa,xb}是输入数据X经随机分散处理得到的二进制表示的数据分片,其中,各数据分片与输入数据X具有相同的二进制位数。按照计算指令,所述密码服务系统执行以下步骤:各密码服务节点分别初始化用于输出的比特位值{c1,c'1},{c2,c'2},{ca,c'a},{cb,c'b};以及令所述第一密码服务节点和第二密码服务节点共享随机数r12和b12;以及令所述第三密码服务节点和第四密码服务节点共享随机数bab;其中,所述随机数r12、b12和bab是基于提取位数k而生成的二进制随机数;令第一密码服务节点和第二密码服务节点利用随机数r12对各自持有的数据分片x1和x2对第k位进行逻辑处理,以得到具有第k位统一的二进制中间数据u1和u2;令第一密码服务节点将中间数据u1发送给第三密码服务节点,并由第三密码服务节点进行基于公式u1∧xa的逻辑计算并得到中间数据ua;基于k值而设置以下循环计算:各密码服务节点对数据分片x1的第i位和输出比特位置进行带有基于所共享的随机数b12或bab的逻辑计算,并得到第i轮次的中间数据;以及将每轮次得到的中间数据进行置换处理,并赋值相应的输出比特位;其中,第一密码服务节点与第三密码服务节点进行中间数据的置换处理,以及第二密码服务节点与第四密码服务节点进行中间数据的置换处理;各密码服务节点利用被赋值的输出比特位、随机数对各自持有的数据分片的第k位比特值进行逻辑计算得到计算结果;第一密码服务节点将计算结果c'1提供给第三密码服务节点;第二密码服务节点将计算结果c'2提供给第四密码服务节点;第三密码服务节点将计算结果ca提供给第二密码服务节点;第四密码服务节点将计算结果cb提供给第一密码服务节点,以便每个密码服务节点持有两个计算结果。客户端(或服务端)基于四个密码服务节点所得到的处理结果的数量为两个,若两个处理结果相同,则客户端(或服务端)可认定密码服务系统所执行密码服务的计算结果正确,反之,则不正确。由此可见,采用四选二的方式来提取计算结果还具有验证各密码服务节点计算结果的正确性的作用。
在一实施方式中,所述计算协议为利用四个密码服务节点执行秘密分享技术中不经意传输的计算协议,所述利用四个密码服务节点执行基于不经意传输协议而设置的多方计算指令并得到各自持有的计算结果的步骤包括:令四个所述密码服务节点基于用于表示传输/不传输相应数据分片的可分享随机比特值进行本地计算和数据交互,并得到各自持有的计算结果。其中,所述计算结果包含用于表示传输相应数据分片的结果,或用于表示不传输相应数据分片的结果。
所述计算任务包括不经意传输输入数据X的计算任务;所述按照计算指令,各密码服务节点分别对各自所获取的数据分片组进行本地计算,以及将本地计算所产生的中间数据进行交互,得到经由各密码服务节点分别持有的计算结果的步骤包括:所述密码服务系统中的各密码服务节点所获取的数据分片依次为{x1,x'1},{x2,x'2},{xa,x'a},{xb,x'b};其中,数据分片{x1,x'1,x2,x'2,xa,x'a,xb,x'b}为输入数据X经随机分散处理得到的,各密码服务节点获取分别基于待分享的数据分片而设置的可分享随机比特值{c1,c'1},{c2,c'2},{ca,c'a},{cb,c'b}。按照利用四个密码服务节点执行不经意传输输入数据X的计算任务而生成的多方计算指令,所述密码服务系统执行以下步骤:令所述第一密码服务节点和第二密码服务节点共享第一类随机数r12和r1'2;所述第一密码服务节点和第三密码服务节点共享第二类随机数r1'a;所述第一密码服务节点和第四密码服务节点共享第二类随机数r1b;令所述第二密码服务节点和第三密码服务节点共享第二类随机数r2a;所述第二密码服务节点和第四密码服务节点共享第二类随机数r2'b;令所述第三密码服务节点和第四密码服务节点共享第一类随机数rab和ra'b;令各密码服务节点利用各自配置的比特值对是否传输数据分片进行带有第一类随机数的数学计算,以及利用各自配置的比特值对是否传输第一类随机数进行带有第二类随机数的数学计算以得到中间数据和中间随机数;令第一密码服务节点和第二密码服务节点分别与第三密码服务节点和第四密码服务节点进行中间数据和中间随机数的置换操作;令各密码服务节点执行包含抵消第二类随机数的数学计算,并得到各自持有的计算结果。客户端(或服务端)基于四个密码服务节点所得到的处理结果的数量为两个,若两个处理结果相同,则客户端(或服务端)可认定密码服务系统所执行密码服务的计算结果正确,反之,则不正确。由此可见,采用四选二的方式来提取计算结果还具有验证各密码服务节点计算结果的正确性的作用。
在一实施方式中,所述计算协议为利用至少两个密码服务节点执行秘密分享技术中加法计算的计算协议,计算任务包括Z=X+Y时,各密码服务节点所获取的数据分片组依次为{X1,Y1}、{X2,Y2},只需要密码服务节点S1、S2在本地分别计算Z1=X1+Y1和Z2=X2+Y2,将Z1加上随机数r12,将Z2减去随机数r12得到各自持有的计算结果。
需要说明的是所述密码服务节点的数量并不限于四个,也可以是两个、三个、五个等,所述密码服务节点的数量不同对应的计算协议也不同。
藉由上述示例的多方参与的基本运算,多个密码服务节点的运算指令描述了由多个密码服务节点协同执行一密码服务的多方计算过程。为此,所述运算指令包含本地计算指令和数据交互指令,其中,所述本地计算指令和数据交互指令用于按照秘密分享技术中相应密码服务节点的计算角色而设置的用以指示相应密码服务节点执行的指令。所述运算指令可以由计算机程序语言来描述,或者由机器语言来描述。
由上述实施例可知,实现一密码服务的完整业务逻辑可由基于秘密分享技术而设计的包括加法计算、乘法计算、位提取计算、不经意传输等计算协议而设计的多方执行的运算指令来执行,每个密码服务节点只持有对应计算角色的运算指令并得到对应计算角色的密码服务结果分量。
单一密码服务节点的密码服务结果分量不能恢复出所述密码服务对应的服务结果;然而多个密码服务结果分量可以恢复成对应密码服务的服务结果。以四个密码服务节点协同执行密码服务的运算指令并得到多个密码服务结果分量为例,其中,所述密码服务举例为生成密钥对,多个密码服务节点协同执行生成密钥对的运算指令并得到各自持有的两个密码服务结果分量,密钥对的接收方接收其中两个密钥服务节点的所有密码服务结果分量,并进行恢复操作得到两组密钥对,并根据所得到的两组密钥对是否一致来确定密码服务系统所生成的密钥对是否可信。
需要说明的是,上述多个密码服务节点所得到的密码服务结果分量可恢复服务结果的方式与所述运算指令相关,而非限于上述四个密码服务节点的计算示例,在此不再一一举例。
在一实施方式中,所得到的多个密码服务结果分量可由所述多个密码服务节点推送给相应客户端(或服务端)。在再一实施方式中,所述多个密码服务节点可待相应客户端(或服务端)发起获取请求时将多个密码服务结果分量予以反馈。
为了保证各密码服务节点进行数据交互时的安全性,所述多个密码服务节点还基于多层密钥协同执行所述运算指令。所述多层密钥采取上级密钥保护下级密钥的方式确保各级密钥不以明文出现,其中,最上级密钥采取分散方式存储确保最上级密钥的安全。在各密码服务节点协同执行所述运算指令进行中间数据交互时、各密码服务节点与客户端(或服务端)进行数据交互时均基于多层密钥进行数据交互。
在一实施方式中,所述多层密钥为三层密钥,所述三层密钥包括:根密钥、传输主密钥和工作密钥。所述根密钥包括主密钥、用户私钥。在其他实施方式中,所述多层密钥也可以为四层密钥等。以三层密钥为例,所述主密钥用于加密所述传输主密钥以保证传输密钥不以明文存储在各密码服务节点或相应存储节点中。所述传输主密钥用于加密所述工作密钥以保证所述工作密钥不以明文方式存储在各密码服务节点或相应存储节点中,其中,所述传输主密钥由密码服务管理系统派发,所述密码服务管理系统将在后续详述。所述工作密钥用于加密所述中间数据和加密客户端(或服务端)与各密码服务节点之间进行数据交互的交互数据以保证所述中间数据和交互数据不以明文方式出现在通信链路中。其中,所述交互数据包括但不限于待处理数据、密钥数据、密码服务结果分量等。所述工作密钥可以是各密码服务节点之间或密码服务节点与客户端(或服务端)之间通过密钥协商得到的,其中,所述密钥协商的方式包括基于Diffie-Hellman密钥交换的方式等。在其他实施方式中,所述工作密钥也可以由所述密码服务管理系统派发。
请参阅图2,图2显示为本申请的密码服务系统在另一实施方式中的结构示意图,如图所述,所述密码服务系统还包括密码服务管理系统,所述密码服务管理系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务管理节点。
所述密码服务管理系统可以为各密码服务节点提供密码管理服务。所述密码管理服务包括但不限于:生成各密码服务节点的传输主密钥、生成各密码服务节点的工作密钥、加密各密码服务节点的传输主密钥、加密各密码服务节点的工作密钥、解密各密码服务节点的传输主密钥、解密各密码服务节点的工作密钥、更新各密码服务节点的传输主密钥、更新各密码服务节点的工作密钥等。在某些实施方式中,所述密码服务管理系统为分布式的密码服务管理系统,所述各密码服务管理节点通过网络通信来协同执行多种密码管理服务的运算指令。
其中,所述多个密码服务管理节点之间具有互不信任的属性,即在无可信第三方的情况下,参与执行密码管理服务的多个密码服务管理节点均不会主动将各自所保存或生成的数据泄漏给第三方,以及执行密码管理服务的各密码服务管理节点之间除了计算结果外得不到其他额外输入信息。在此,利用基于多方安全计算而设置的运算指令解决互不信任的各密码服务管理节点之间协同执行所述密码管理服务。
所述密码服务管理节点可以为单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备等。所述单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备与前述密码服务节点中提及的相同或相似,在此不再详述。
所述密码服务管理节点可包含存储装置、处理装置、网络接口装置等。所述存储装置用于存储供所述密码服务管理节点执行所述密码管理服务的至少一个程序。所述处理装置与所述存储装置相连,用于调用所述至少一个程序并协调所述存储装置和网络接口装置执行所述密码管理服务。所述存储装置、处理装置、网络接口装置分别与前述提及的各密码服务节点的存储装置、处理装置、网络接口装置相同或相似,在此不再详述。
其中,每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令。所述多个密码服务管理节点基于所述多个密码服务节点所提供的密码服务请求执行相应密码管理服务的运算指令以得到多个密码管理服务结果。将所得到的多个密码管理服务结果分配给各密码服务节点,以供各所述密码服务节点恢复相应密钥数据。
以密码服务管理系统包含四个密码服务管理节点为例,所述执行密码管理服务的运算指令是基于四个密码服务管理节点执行秘密分享运算的计算协议中各密码服务管理节点的计算角色而生成的。其中,所述基于四个密码服务管理节点执行秘密分享运算的计算协议与前述四个密码服务节点执行秘密分享运算的计算协议相同或相似,在此不再赘述。
其中,所述密钥数据包括但不限于各密码服务节点的传输主密钥、工作密钥等。
在一实施方式中,所述密码服务请求由参与执行密码服务的各密码服务节点发送给各密码服务管理节点,以所述密码服务系统中包括四个密码服务节点S1、S2、Sa、Sb为例,密码服务节点Sa将生成传输主密钥的密码服务请求发送给各密码服务管理节点,所述密码服务请求包含有与密码服务节点Sa进行数据交互的密码服务节点S1、S2的信息,各密码服务管理节点基于所述密码服务请求协同执行密码管理服务的运算指令以得到多个密码管理服务结果,并将所得到的多个密码管理服务结果分配给密码服务节点Sa、S1、S2,以供密码服务节点Sa可以恢复密码服务节点Sa与密码服务节点S1进行中间数据交互时使用的传输主密钥A1_TMK以及密码服务节点Sa与密码服务节点S2进行中间数据交互时使用的传输主密钥A2_TMK,以供密码服务节点S1恢复所述传输主密钥A1_TMK,以供密码服务节点S2恢复所述传输主密钥A2_TMK。在此,参与执行一密码服务运算指令的各密码服务节点均需要将对应于一密码管理服务的密码服务请求发送给所述各密码服务管理节点以得到各密码服务节点的传输主密钥或工作密钥等。
在另一实施方式中,所述密码服务请求可以直接由客户端(或服务端)发送给各密码服务管理节点,各密码服务管理节点基于所述密码服务请求协同执行密码管理服务的运算指令以得到多个密码管理服务结果,并基于所述多个密码服务节点所构成的多方安全计算系统架构将所述多个密码管理服务结果提供给对应密码服务节点以供各所述密码服务节点恢复相应密钥数据。
在一实施方式中,各密码服务管理节点基于所述密码服务请求协同执行密码管理服务的运算指令以得到多个密码管理服务结果包括:其中的K个所述密码服务管理节点基于所接收的密码服务请求中的用户信息,从N个分散的存储节点中获取K个分散的根密钥分片,其中,N大于K,所述多个密码服务管理节点根据所分散获取的K个根密钥分片执行相应密码管理服务的运算指令,以得到多个密码管理服务结果。各密码服务管理节点基于所接收的密码服务请求中的用户信息从相应存储节点获取对应用户的根密钥分片,所述根密钥分片包括主密钥分片、用户私钥分片。在一实施方式中,所述N个存储节点全部为所述密码服务节点,但并不以此为限,在其他实施方式中,所述N个存储节点也可例如全部为发出所述密码服务请求的计算机设备、所述密码服务管理节点、或外部的存储服务节点中的任意一种。在另一实施方式中,所述N个存储节点也可以包括发出所述密码服务请求的计算机设备、所述密码服务节点、所述密码服务管理节点、外部的存储服务节点中的至少两种。
例如,N个存储节点存储有根密钥经Shamir秘密共享算法的分散方式分散后得到的N个根密钥分片。其中,基于Shamir秘密共享算法而设置的分散方式包含将主密钥基于构造的多项式分散成数量N的分散方式,所述数量N大于等于可恢复主密钥所需分散密文的最小数量Kmin,N>K≥Kmin。其中,所分散的数量N大于所述最小数量Kmin可有效防止部分存储节点出现异常时,不影响恢复主密钥,进而不影响整个密码服务系统进行密码服务。以所述主密钥明文为常数项构建一阶多项式为例,将一阶多项式上的点作为主密钥分片分散存储在多个密码服务节点中,则获取所述多个密码服务节点中的两个密码服务节点中的密钥分片可恢复所述主密钥。
为了保证根密钥不以明文的方式存储在各存储节点中,在一实施方式中,将所述根密钥均经分散处理得到的多个根密钥分片分散存储在各存储节点中,受各存储节点的严格保护。以主密钥为例,在一实施方式中,所述预配置的分散方式为基于加法而设置的分散方式,所述主密钥X经分散后得到的主密钥分片为{x1},{x2},{x3},……{xn},其中,n为所述存储节点的个数,其中x1+x2+x3+……+xn=X。以所述密码服务请求为加密传输主密钥的密码服务请求为例,密码服务管理节点获取存储节点中小于n个所述主密钥分片执行加密传输主密钥的密码服务请求得到多个密码管理服务结果以供密码服务节点恢复加密的传输主密钥。
在一具体实施方式中,所述密码服务系统包括四个密码服务节点,所述主密钥X经分散后得到的主密钥分片为{x1},{x2},{x3},{x4},{x5},其中,{x1},{x2},{x3},{x4}分别存储在各密码服务节点中,{x5}存储在所述客户端(或服务端),其中x1+x2+x3+x4+x5=X。以所述密码服务请求为加密所述传输主密钥的密码服务请求为例,密码服务管理节点获取所述主密钥分片中的任意3个主密钥分片执行加密所述传输主密钥的密码服务请求得到多个密码管理服务结果以供密码服务节点恢复加密的传输主密钥。
在另一具体实施方式中,所述密码服务系统包括四个密码服务节点,所述主密钥X经分散后得到的主密钥分片为{x1},{x2},{x3},{x4},其中,{x1},{x2},{x3},{x4}分别存储在各密码服务节点中,其中x1+x2+x3+x4=X。以所述密码服务请求为加密所述传输主密钥的密码服务请求为例,密码服务管理节点获取所述主密钥分片中的3个主密钥分片执行加密所述传输主密钥的密码服务请求得到多个密码管理服务结果以供密码服务节点恢复加密的传输主密钥。
其中,所述根密钥的分散方式并不限于此。需要说明的是,除了上述加密传输主密钥以外,解密传输主密钥、加密工作密钥、解密工作密钥的过程中均不获取全部主密钥分片,不获取全部主密钥分片是为了保证主密钥的安全性。
请参阅图3,图3显示为本申请密码服务系统与客户端进行数据交互在一实施方式中的示意图,如图所示,所述密码服务系统包括四个密码服务节点S1、S2、Sa、Sb。所述客户端与所述密码服务节点S1、S2进行数据交互,进行所述数据交互时的交互数据可以是所述密码服务请求、执行密码服务请求所需要待加密数据、待解密数据、待签名数据、待验证签名的数据等。在进行数据交互时,密码服务节点S1向所述多个密码服务管理节点发送解密密码服务节点S1与用户端之间的传输主密钥TA_TMK的密码服务请求,各密码服务管理节点基于获取的加密后的传输主密钥和获取的K个分散的主密钥分片得到多个密码管理服务结果,密码服务节点S1基于所述多个密码管理服务结果恢复TA_TMK,基于TA_TMK解密出工作密钥TA_TAK、TA_TPK。密码服务节点S2向所述多个密码服务管理节点发送解密密码服务节点S2与用户端之间的传输主密钥TD_TMK的密码服务请求,各密码服务管理节点基于获取的加密后的传输主密钥和获取的K个分散的主密钥分片得到多个密码管理服务结果,密码服务节点S2基于多个密码服务管理节点的多个密码管理服务结果恢复TD_TMK,基于TD_TMK解密出工作密钥TD_TAK、TD_TPK。客户端向所述密码服务系统发送解密密码服务节点S1派发给客户端的传输主密钥TA_TMK和解密密码服务节点S2派发给客户端的传输主密钥TD_TMK的密码服务请求,客户端基于获取的多个密码服务结果分量恢复所述传输主密钥TA_TMK和TD_TMK。用TA_TMK在本地解密与密码服务节点S1进行数据交互时的工作密钥TA_TAK、TA_TPK,用TD_TMK在本地解密与密码服务节点S2进行数据交互时的工作密钥TD_TAK、TD_TPK,其中所述TA_TAK、TD_TAK用于生成或验证交互数据的MAC值,所述TA_TPK、TD_TPK用于加密或解密所述交互数据。
以所述客户端发送待加密数据为例,如图3所示,客户端基于四个密码服务节点执行秘密分享运算的计算协议将待加密数据拆分为两部分x1和x2。终端用TA_TAK加密x1,用TA_TPK生成x1的MAC值,并将x1的密文和x1的MAC值上传至密码服务节点S1,用T D_TAK加密x2,用T D_TPK生成x2的MAC值,并将x2的密文和x2的MAC值上传至密码服务节点S2。密码服务节点S1在本地用TA_TAK解密x1,用TA_TPK验证x1的MAC值确保x1是客户端发送的,密码服务节点S2在本地用TD_TAK解密x2,用TD_TPK验证x2的MAC值确保x2是客户端发送的。在密码服务节点S1和密码服务节点S2与其他密码服务节点进行数据交互的过程与上述数据交互的过程相同或相似,在此不再详述。
在多个密码服务节点根据密码服务请求执行相应密码服务期间,根据密码服务请求所指示的密码服务,多个密码服务节点可仅依据各自运算指令来提供密码服务,并得到用于恢复相应服务结果的多个密码服务结果分量。
以所述密码服务请求包括以下任一种:生成随机数的服务请求、包含一密码类型的密钥生成的服务请求为例,多个密码服务节点对应执行生成随机数或密钥生成的密码服务。
其中,生成随机数的密码服务包括但不限于以下至少一种:基于单向散列函数伪随机数发生器生成随机数、基于ANSI X9.17伪随机数发生器生成随机数、基于ANSI X9.31伪随机数发生器生成随机数、或者基于利用物理噪音源的硬件生成随机数等。
其中,包含一密码类型的密钥生成服务中的密码类型举例为以下任一种:公钥密码、对称密码。其中,包含公钥密码类型的密钥生成服务包括以下至少一种:基于RSA公钥算法生成密码对、基于ElGamal公钥算法生成密码对、基于Rabin公钥算法生成密码对、基于椭圆曲线密码生成密码对等。包含对称密码类型的密钥生成服务包括以下至少一种:基于DES算法生成对称密码、利用EBC模式生成对称密码、利用CFB模式生成对称密码、利用单项散列函数生成对称密码等。
在一些具体示例中,上述任一密码服务可利用至少两个随机初始值并通过多方安全计算得到相应密码服务的密码服务结果分量。为此,参与计算的各密码服务节点均接收到可根据前述提及的任一方式获得密码服务请求,以启动相应密码服务的执行。参与计算的各密码服务节点的执行过程如下:其中至少两个密码服务节点生成随机初始值;参与计算的各密码服务节点基于所生成的随机初始值协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。
在此,根据密码服务的执行逻辑,至少两个密码服务节点各自所生成的随机初始值可以相同或不同。例如,至少两个密码服务节点利用共享的(或非共享的)随机数种子生成各自持有的随机初始值,以及将各自所生成的随机初始值进行加密得到又一随机数分配给参与计算的其他密码服务节点,所有参与计算的各密码服务节点协同执行对应密码服务的运算指令,得到相应的密码服务结果分量。又如,所有参与计算的各密码服务节点利用共享的(或非共享的)随机数种子生成各自持有的随机初始值,并以各自生成的随机初始值为协同执行对应密码服务的运算指令的初始输入数据进行多方安全计算,以得到相应的密码服务结果分量。
以四个密码服务节点根据客户端发送的生成随机数的服务请求调用相应生成随机数密码服务的运算指令为例,四个密码服务节点S1、S2、Sa、Sb基于生成随机数的运算指令各自生成随机初始值r1、r2、ra、rb,四个密码服务节点S1、S2、Sa、Sb基于随机初始值r1、r2、ra、rb协同执行多方计算,以得到多个密码服务结果分量r11、r22、raa、rbb,所述多个密码服务结果分量用于恢复所述随机数,其中,获取r11和raa即可恢复成一随机数,同时获取四个密码服务结果分量可以恢复成两个随机数,如果两个随机数相等则所述各密码服务节点的密码服务结果分量是正确的,这两个随机数可用来验证各密码服务结果分量的正确性。在某些实施方式中,所述随机初始值也可以直接作为密码服务结果分量。
以四个密码服务节点根据客户端发送的生成密码的服务请求调用相应生成公钥密码的密码服务为例,四个密码服务节点S1、S2、Sa、Sb利用两两共享的随机数种子分别生成随机初始值,所述四个密码服务节点基于所生成的随机初始值协同执行多方计算,得到可用于恢复私钥的且各自持有的四个私钥分片m1、m2、ma、mb;以及基于四个私钥分片生成四个公钥分片n1、n2、na、nb。所述四个私钥分片m1、m2、ma、mb可恢复公钥密码中的私钥,所述四个公钥分片n1、n2、na、nb可恢复公钥密码中的公钥。基于四个私钥分片和四个公钥分片可得到两组公私钥对,如果两组公私钥对相等,则所述各密码服务节点的密码服务结果分量的计算均是正确的。
在另一些具体示例中,参与执行密码服务的多个密码服务节点还可以基于所述密码服务请求获取密钥数据。基于获取的密钥数据多个密码服务节点所执行的密码服务包括但不限于以下任一种:密钥派生、密钥导入、密钥导出、密钥备份、密钥更新、密钥销毁、密钥恢复、等。
在一实施方式中,除主密钥分片、用户私钥分片以外所述获取的密钥数据可以是未经分散处理的密钥数据,各密码服务节点基于获取的未经分散处理的密钥数据执行针对完整密钥数据进行多方安全计算而设计的运算指令,使各密码服务节点得到对应密码服务的密码服务结果分量。例如,一密码服务请求为备份公钥SK的密码服务请求,密码服务系统包括四个密码服务节点,四个密码服务节点基于获取的用户的未经分散处理的公钥SK执行存储在各密码服务节点的对应备份公钥的运算指令完成对应备份公钥的多方安全计算分别得到四个密码服务结果分量SK1、SK2、SKa、SKb,所述四个密码服务结果分量可恢复出正确完整的公钥SK。在另一实施方式中,所述获取的密钥数据包含密钥经分散处理得到的多个密钥分片。以所述密码服务请求为密钥更新为例,一私钥a,经随机分散后得到四个私钥分片a1、a2、a3、a4,其中a1+a2=a3+a4=a,在进行密钥更新前,四个私钥分片a1、a2、a3、a4分别存储在密码服务节点S1、S2、Sa、Sb。四个密码服务节点基于两两之间共享的随机数协同执行所述私钥更新的运算指令,各密码服务节点得到更新后的私钥a1+r12、a2-r12、a3+rab、a4-rab。需要说明的是所述随机分散的方式与密钥更新的方式并不限于此,所述分散方式与多个密码服务节点的协议和运算指令相关。
以所述密钥数据包含密钥经分散处理得到的多个密钥分片为例,当密码服务请求为表示执行上述提及的一种密码服务时,参与执行相应密码服务的多个密码服务节点读取本地密钥分片。其中,为执行密码服务的密码数据被预先分散成密钥分片,并保存在参与执行相应密码服务的多个密码服务节点中的至少两个密码服务节点中,当接收到密码服务请求,相应的密码服务节点读取本地存储的密钥分片,并基于相应的运算指令协同其他密码服务节点以密钥分片为输入执行多方安全计算,并得到密码服务结果分量。
或者,当密码服务请求为表示执行上述提及的一种密码服务时,参与执行相应密码服务的密码服务节点基于所述密码服务请求从相应的存储节点读取所述多个密钥分片。
其中,所述存储节点与密码服务节点执行点对点通信连接,用于存储经预先分散处理后得到的多个密钥分片,所述多个密钥分片通过建立索引的方式存储在不同存储节点中。其中,多个存储节点通过维护各自存储的密钥分片来维护相应的密码数据。为保证各密码服务节点的安全,所述密码服务节点与存储节点在进行网络通信过程期间执行基于密码学操作的安全数据通信过程。
所述存储节点可以是一个或者多个存储装置,所述存储节点包括数据库存储引擎,所述数据库存储引擎用于向所述存储节点写入所述对应一密钥的密钥分片,以及从存储节点读取对应一密钥的密钥分片。所述存储装置与前述提及的各密码服务节点的存储装置相同或相似,在此不再详述。
所述存储节点可位于单台计算机设备、或位于基于云架构的服务系统中被使用的实体设备或虚拟设备等。所述单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备与前述密码服务节点中提及的相同或相似,在此不再详述。
当密码服务请求表示请求密码服务系统执行上述提及的一种密码服务时,所述各密码服务节点基于密码服务请求获得读取相应密钥分片的读取信息,各密码服务节点利用所述读取信息向相应存储节点发出密钥分片的读取请求,由此获得密钥分片。其中,所述读取信息包括但不限于:存储节点的地址信息、密钥分片的数据表信息和字段信息等。所述读取信息可解析自所述密码服务请求,或者根据所述密码服务请求从预设的配置文件中取得。
在一实施方式中,所述多个存储节点中的至少两个存储节点通过通信接口与输出装置连接,所述多个存储节点按一存储配置将密钥分散成多个密钥分片并存储在对应的多个存储节点中,当输出装置获取包括输出配置的读取请求时,基于所述输出配置与存储配置的适配关系,从其中的至少两个存储节点中读取对应同一密钥的密钥分片,以及将所读取的多个密钥分片进行适配处理以得到符合密码服务系统读取请求的输出数据,使进行适配处理后的对应于同一密钥的密钥分片为可供密码服务系统中多个密码服务节点协同执行相应密码服务的密钥分片。
其中,所述存储配置至少用于描述密钥的分散方式,对应地,存储配置也表示各存储节点所存储的密钥分片与密钥之间的分散关系。在一些示例中,所述存储配置可以预先设置在配置文件(或日志文件等)中,并保存在存储节点或输出装置中;其中,所述配置文件至少包括密钥的分散方式。在另一示例中,所述存储配置内置于程序中,藉由运行所述程序,密钥被分散处理成密钥分片,并分别保存在不同存储节点中。所述输出配置包括所述输出数据的分散方式、输出数据的数量以及输出数据的加密方式等。
在一实施方式中,所述存储节点可位于提供所述密码服务请求的客户端,其中所述密钥数据可由所述客户端提供。
在又一些具体示例中,所述密码服务请求还包括以下任一种:加密数据、解密数据、签名、验证签名等。对应的,所述多个密码服务节点在获取密钥数据的基础上,还基于所述密码服务请求获取待处理数据。其中,所述待处理数据为对应执行密码服务的以下任一种:待加密数据、待解密数据、待签名数据、待验证签名数据。其中,根据预先设计的多方安全计算协议,所述待处理数据可以是未经分散处理的数据,也可以是经客户端(或其他设备,如一密码服务管理系统)分散处理得到的多个待处理数据分片。所述多个密码服务节点基于各自所恢复的密钥数据对所获取的待处理数据协同执行相应密码服务的运算指令。其中,各密码服务节点基于恢复的传输主密钥进行本地解密工作密钥,基于所述工作密钥在执行相应密码服务的运算指令过程中保证所述中间数据的安全性。
在一实施方式中,所述待处理数据为未经分片处理的数据,每个密码服务节点均持有所述待处理数据,以及所获取的密码数据为经分散处理的密钥分片。以签名密码服务为例,在一具体实施方式中,客户端发送签名请求并提供待签名数据,四个密码服务节点从N个分散存储节点中获取四个用户私钥分片,其中,N大于四。各密码服务节点基于各自所获得的用户私钥分片执行对应签名服务的运算指令以得到四个签名的密码服务结果分量,所述四个签名的密码服务结果分量可恢复所述签名。在另一具体实施方式中,所述四个密码服务节点基于本地存储的私钥分片对待签名数据进行对应签名服务的多方安全计算以得到四个签名的密码服务结果分量。因为上述执行签名服务的整个过程是利用多方安全计算执行的,因此,不论是计算过程中还是使用过程中用户私钥实际上并没有真正生成过,即保障了用户私钥的安全又实施了密码服务,并且获取单一密码服务节点的密码服务结果分量不能得到服务结果,保障了用户服务结果的安全性。
在另一实施方式中,所述待处理数据包含待与密钥数据执行运算的、经分散处理得到的多个待处理数据分片。例如,一待解密数据a,经随机分散后得到四个待处理数据分片a1、a2、a3、a4,其中a1+a2=a3+a4=a,密码服务节点S1、S2、Sa、Sb分别获取待处理数据分片a1、a2、a3、a4,并基于存储在各密码服务节点中的公钥分片和所述待处理数据分片进行加密的密码服务得到四个密码服务结果分量,所述四个密码服务结果分量用于恢复解密数据。需要说明的是所述随机分散的方式并不限于此,所述分散方式与多个密码服务节点的协议和运算指令相关。
其中,所述多个密码服务节点读取提供所述密码服务请求的客户端所提供的多个待处理数据分片,或者基于所述密码服务请求从相应的存储节点读取所述多个待处理数据分片。
以多个密码服务节点执行验证签名密码服务的多方安全计算,并由客户端发送验证签名请求并提供分散的多个待处理数据分片为例,所述多个待处理数据分片是由待验证签名数据经分散处理得到的,所述多个待处理数据分片的个数与用于验证签名的运算指令相关。所述密码服务节点基于运算指令,利用存储在各密码服务节点中与客户公钥SK对应的多个公钥分片,各密码服务节点执行运算指令以协同基于多个公钥SK分片对多个待处理数据分片进行对应验证签名服务的多方安全计算,得到多个密码服务结果分量。其中,各待处理数据分片还可以由所述多个密码服务节点基于用户的验证签名请求从相应的存储节点读取,所述多个密码服务节点基于多个待处理数据分片和多个公钥分片进行对应验证签名服务的多方安全计算,得到多个密码服务结果分量。
在一实施方式中,如图2所示,所述密码服务系统还包括密码服务管理系统,用于基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量,并提供给各密码服务节点。其中,密码服务管理系统的每一密码服务管理节点中预置有用于与至少另一密码服务管理节点协同执行所述处理方法的运算指令。以密码服务管理系统包含四个密码服务管理节点为例,所述运算指令是基于四个密码服务管理节点执行秘密分享运算的计算协议中各密码服务管理节点的计算角色而生成的。其中,所述基于四个密码服务管理节点执行秘密分享运算的计算协议与前述四个密码服务节点执行秘密分享运算的计算协议相同。
所述密码服务管理系统基于多个密码服务节点所构成多方安全计算系统架构将密码服务请求分量分别发送给各密码服务节点,所述各密码服务节点基于得到的密码服务请求分量执行相应的运算指令完成对应密码服务请求的多方安全计算。在某些实施方式中,所述密码服务管理系统存储有各密码服务节点的IP地址、计算协议以及密码服务节点的当前负载等以供密码服务管理系统在接收到密码服务请求时对执行相应密码服务的密码服务节点进行选择。所述密码服务管理系统与所述多个密码服务节点通过数据通信连接。
在一具体实施例中,所述密码服务管理系统将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量的步骤包括:基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,复制所述密码服务请求以得到对应各密码服务节点的密码服务请求分量。
以所述密码服务请求包括:密钥生成、生成随机数等密码服务请求为例,密码服务管理系统基于多方安全计算系统架构而确定的接收密码服务请求分量的密码服务节点数量,复制所述密码服务请求以得到对应各密码服务节点的密码服务请求分量。例如,密码服务请求为生成对称密钥的请求,密码服务系统中有四个密码服务节点,密码服务系统中参与生成对称密钥的多方安全计算的密码服务节点的数量为四个,则密码服务管理系统复制所述对称密钥的请求得到四个生成对称密钥的请求发送给各密码服务节点。需要说明的是,复制密码服务请求的数量与所述与密码服务系统的系统架构中参与生成对称密钥的密码服务节点的个数有关。
需要说明的是,根据预先设计的执行密码服务的多个密码服务节点的多方计算协议,其使用未经分散处理的待处理数据执行相应密码服务,对应的,密码服务管理系统也通过复制方式将包含待处理数据的密码服务请求分配给各密码服务节点。
在另一具体实施例中,所述密码服务管理系统将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量的步骤包括:基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,将所述密码服务请求中所指示的输入数据进行分散处理以得到多个分散密文,并组成包含各分散密文的密码服务请求分量。
以所述密码服务请求包括均未经分散的待处理数据和/或密钥数据为例。所述多个密码服务管理节点还基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,将所述密码服务请求中所指示的输入数据进行分散处理以得到多个分散密文,其中所述输入数据包括以下任一种:密钥数据和/或待处理数据。例如,密码服务请求为包含待加密数据的加密数据服务的请求,密码服务系统中的四个密码服务节点参与执行该加密数据服务的多方安全计算,密码服务管理系统对待加密数据进行分散处理以得到四个分散密文,其中,所述四个分散密文可恢复所述待加密数据,单一分散密文不能恢复待加密数据。密码服务管理系统将所述密码服务请求处理成四个分别包含分散密文的密码服务请求分量,并将各密码服务分量发送给对应的密码服务节点。需要说明的是,密码服务请求分量的数量与所述与密码服务系统的系统架构中参与加密数据服务的密码服务节点的个数有关。
在另一实施方式中,所述密码服务管理系统还可以将利用计算机程序语言描述的密码服务的程序模块可转换成利用计算算式而描述的程序模块。在此,为实现一密码服务对应的完整的业务逻辑可能由计算机程序语言描述成包含条件处理、循环处理、布尔处理、计算处理等处理操作的程序。为进行多方安全计算,所述程序被分解成多个可由计算算式执行的程序模块。例如,一个包含循环和计算处理的处理操作可分解为一个或多个可由计算算式执行的程序模块。
在经分解的各程序模块中,所述程序模块可由计算机程序语言描述,或者利用源码语法结构来描述。其中,所述源码语法结构举例为抽象语法树(Abstract Syntax Tree,AST)。
例如,请参阅图4,其显示为利用树状结构描述循环处理操作的计算任务的示意图;其中,将循环处理操作的计算任务描述成通过包含乘法计算得到处理结果的树状结构。又如,请参阅图5,其显示为利用树状结构描述提取公因子操作的计算任务的示意图;其中,将提取公因子操作的计算任务描述成通过加法计算和乘法计算级联的方式得到处理结果的树状结构。再如,请参阅图6,其显示为利用树状结构描述常用表达提取操作的计算任务的示意图;其中,将常用表达提取操作的计算任务描述成通过加法计算和乘法计算级联的方式得到处理结果的树状结构。
由上述实施例可知,所述密码服务管理系统可以将实现一密码服务对应的完整的业务逻辑基于基本的计算协议转换成包括加法计算、乘法计算、位提取计算、不经意传输等可供多个密码服务节点协同执行的基本的运算指令,每个密码服务节点只持有相应密码服务的密码服务结果分量,单一密码服务节点的密码服务结果分量不能恢复出所述密码服务对应的服务结果。所述密码服务管理系统将各运算指令提供给各密码服务节点,以供其基于密码服务请求执行相应密码服务的过程与前述图1及所对应的描述相同或相似,在此不再详述。
请参阅图7,图7显示为本申请的密码服务方法的流程示意框图。所述密码服务方法可以由前文所述的所述密码服务系统执行,或者可执行所述密码服务方法相关步骤的其他计算机设备。其中,所述密码服务方法配置于包含多个密码服务节点的互不信任的系统架构执行,其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令。其中,所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。其中一密码服务节点执行如图7所示的密码服务方法。
在步骤S110中,所述密码服务节点获取密码服务请求。
其中,所述密码服务节点获取密码服务请求的过程以及密码服务节点的硬件配置与前文图1和图2所对应的描述相同或相似,在此不再详述。例如,所获取的密码服务请求来自于客户端或者其他密码服务节点。
在步骤S120中,基于所述密码服务请求,所述密码服务节点与其他密码服务节点协同执行相应密码服务的运算指令,以得到密码服务结果分量。所述密码服务节点与其他密码服务节点基于多方安全计算协同执行相应密码服务的运算指令得到密码服务结果分量。
所述运算指令是基于所述密码服务节点在秘密分享技术中的计算角色而设置的,用于指示各密码服务节点中的各硬件模块协同执行以完成对应密码服务的多方安全计算。所述运算指令与前文所述的运算指令相同或相似在此不再详述。
当所述密码服务请求包括以下任一种:生成随机数服务请求、包含一密码类型的生成密码的服务请求时,其中,至少两个密码服务节点中的任一执行步骤S121′(未图示)和步骤S122′(未图示)。
在步骤S121′中,所述密码服务节点生成随机初始值;在步骤S122′中,所述密码服务节点基于所生成的随机初始值与其他密码服务节点协同执行相应密码服务的运算指令,以得到密码服务结果分量。
为了保证各密码服务节点进行数据交互时的安全性,各密码服务节点还基于多层密钥协同执行所述运算指令。在一实施方式中,所述多层密钥为三层密钥,所述三层密钥包括:根密钥、传输主密钥和工作密钥。所述根密钥包括主密钥、用户私钥。在其他实施方式中,所述多层密钥也可以为四层密钥等。以三层密钥为例,所述主密钥用于加密所述传输主密钥以保证传输密钥不以明文存储在各密码服务节点或相应存储节点中。所述传输主密钥用于加密所述工作密钥以保证所述工作密钥不以明文方式存储在各密码服务节点或相应存储节点中,其中,所述传输主密钥由密码服务管理系统派发。所述工作密钥用于加密所述中间数据和加密客户端(或服务端)与各密码服务节点之间进行数据交互的交互数据以保证所述中间数据和交互数据不以明文方式出现在通信链路中。其中,所述交互数据包括但不限于待处理数据、密钥数据、密码服务结果分量等。所述工作密钥可以是各密码服务节点之间或密码服务节点与客户端(或服务端)之间通过密钥协商得到的,其中,所述密钥协商的方式包括基于Diffie-Hellman密钥交换的方式等。在其他实施方式中,所述工作密钥也可以由所述密码服务管理系统派发。所述存储节点包括:发出所述密码服务请求的计算机设备、所述密码服务节点、所述密码服务管理节点、和外部的存储服务节点中的至少一种。
所述密码服务管理系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务管理节点;其中,每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令。其中,所述密码服务管理节点基于其中的密码服务节点所提供的密码服务请求与其他密码服务管理节点执行相应密码管理服务的运算指令以得到密码管理服务结果;以及将所得到的密码管理服务结果分配给相应密码服务节点,以供对应密码服务节点恢复相应密钥数据。
在此,所述密码服务管理系统中各密码服务管理节点的硬件配置及各密码服务管理节点协同执行的密码管理服务的运算指令与前文所述的相同或相似,在此不再详述。
以所述密码服务管理系统中的K个密码服务管理节点基于所接收的密码服务请求中的用户信息,从N个分散的存储节点中获取K个根密钥分片为例,其中,N大于K;获取到根密钥分片的密码服务管理节点根据所获取的根密钥分片与其他密码服务管理节点协同执行相应密码管理服务的运算指令,以得到密码管理服务结果。
例如,N个存储节点存储有根密钥经Shamir秘密共享算法的分散方式分散后得到的N个根密钥分片。其中,基于Shamir秘密共享算法而设置的分散方式包含将主密钥基于构造的多项式分散成数量N的分散方式,所述数量N大于等于可恢复主密钥所需分散密文的最小数量Kmin,N>K≥Kmin。其中,所分散的数量N大于所述最小数量Kmin可有效防止部分存储节点出现异常时,不影响恢复主密钥,进而不影响整个密码服务系统进行密码服务。所述密码服务管理系统中的任一密码服务节点还基于所述多方安全计算系统架构,将所述密码服务请求处理成至少一个密码服务节点的密码服务请求分量,并提供给其他密码服务节点。所述密码服务节点将密码服务请求处理成对应各密码服务节点的密码服务请求分量的步骤包括:基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,复制所述密码服务请求以得到对应各密码服务节点的密码服务请求分量;或者基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,将所述密码服务请求中所指示的输入数据进行分散处理以得到多个分散密文,并组成包含各分散密文的密码服务请求分量。
对应地,密码服务节点接收多个密码管理服务结果,根据各所述密码管理服务结果恢复相应密钥数据。例如,密码服务节点利用加和方式将各密码管理服务结果进行数据处理,以恢复密钥数据。
所述密码服务管理系统还基于所述多方安全计算系统架构执行以下步骤:基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量。对应的,所述密码服务节点基于所述密码服务请求分量协同其他密码服务节点执行相应密码服务的运算指令,以得到多个密码服务结果分量。
其中,所述密码服务管理系统将密码服务请求处理成对应各密码服务节点的密码服务请求分量的步骤包括:基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,复制所述密码服务请求以得到对应各密码服务节点的密码服务请求分量。或者所述密码服务管理系统基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,将所述密码服务请求中所指示的输入数据进行分散处理以得到多个分散密文,并组成包含各分散密文的密码服务请求分量。
当所述密码服务请求包括以下任一种:数据加密、数据解密、签名、验证签名时,步骤S120还包括步骤S121(未图示)和步骤S122(未图示),在步骤S121中,所述密码服务节点基于所述密码服务请求获取待处理数据。在步骤S122中,所述密码服务节点基于所恢复的密钥数据并协同其他密码服务节点对所获取的待处理数据协同执行相应密码服务的运算指令。所述待处理数据的种类与前述所述相同或相似,单个密码服务节点所接收的待处理数据可以是前述提及的一部分待处理数据分片。所述密码服务节点基于所述密码服务请求获取待处理数据的方式,以及协同其他密码服务节点执行相应密码服务的运算指令的方式与前文所述的相同或相似,在此不再详述。
请参阅图8,图8显示为本申请的密码服务装置在一实施方式中的示意图,如图所示,所述密码服务装置包括多个计算装置,各所述计算装置被配置于互不信任且电性连接的计算系统架构中。所述密码服务装置中的多个计算装置可执行前文所述的密码服务方法。
所述密码服务装置可以是用于执行所述密码服务方法的一体化计算机设备,可位于私有机房或位于公共机房中的某个被租用的机位中。其中,所述多个计算装置之间具有互不信任的属性,即在无可信第三方的情况下,参与执行任一密码服务运算的多个计算装置均不会主动将各自所保存的数据泄漏给第三方,以及各参与计算的各计算装置之间除了计算结果外得不到其他额外输入信息。其中,每一计算装置对应于前述密码服务节点。在此,利用基于多方安全计算而设置的运算指令解决互不信任的各计算装置之间协同计算任一密码服务的方式可参考前述密码服务方法中各示例,在此不再详述。
各所述计算装置至少包含存储器和处理器等。其中,所述存储器用于存储供所属计算装置执行所述密码服务方法的至少一个程序。所述存储器可包括动态随机存取存储器、静态随机存取存储器,并且还可包括非易失性存储器,例如一个或多个硬盘存储设备、闪存设备、可编程只读存储器、可擦除可编程只读存储器、带电可擦除可编程只读存储器或其他非易失性固态存储设备等。所述存储器还包括存储器控制器,其可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。其中,存储在存储装置中的软件组件包括操作系统、通信模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。
所述处理器与存储器相连,用于调用所述至少一个程序并协调所述存储器和接口执行所述密码服务方法。所述处理器可操作地与存储器耦接。具体地,处理器可执行存储器中存储的程序以在处理器中执行操作。如此,处理器可包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个现场可编程逻辑阵列(FPGA)、或它们的任何组合。
由于各计算装置在执行密码服务期间涉及对数据的存储和通信,为了确保互不信任的计算系统架构中的多个计算装置在执行多方安全计算过程中所述多个计算装置的数据安全性,在一些实施方式中,所述多个计算装置在物理硬件上单独通信,所述多个计算装置中的每一计算装置包括有I/O接口,利用所述I/O接口与密码服务装置中的其他计算装置单独相连。所述密码服务装置还包括可编程的集成电路,各所述I/O接口均连接所述集成电路,所述集成电路基于计算协议选择其中两个I/O接口通信,确保所述密码服务装置在执行密码服务时各计算装置之间通信的安全性。其中,基于密码服务装置中所配置的各计算装置的多方安全计算协议,所述可编程的集成电路被配置成基于两计算装置之间数据通信时所发出的源、目的地址而提供相应连接。
为此,所述I/O接口用于为所属计算装置提供数据输入和输出。所述I/O接口的数量与计算装置、用于执行密码服务的另一计算装置的通信数量等相关,各I/O接口的类型与计算装置、用于密码服务的另一计算装置之间的数据传输方式相关。
请参阅图9,图9显示为本申请的密码服务装置在另一实施方式中的示意图,如图所示,所述密码服务装置还包括与所述多个计算装置电性连接的密码服务管理装置,所述密码服务管理装置用于基于所述多个计算装置所构成的多方安全计算系统架构,将所述密码服务请求处理成对应各计算装置的密码服务请求分量,并提供给各计算装置。其中,所述密码服务管理装置可为单独硬件装置或为计算装置中的一个。
所述多方安全计算系统架构是所述密码服务装置中参与指定密码服务进行多方安全计算的多个计算装置构成的,所述参与密码服务的计算装置的数量可以是固定的也可以根据用户的密码服务请求而确定。
所述密码服务管理装置基于多个计算装置所构成多方安全计算系统架构将密码服务请求分量分别发送给各计算装置,所述各计算装置基于得到的密码服务请求分量执行相应的运算指令完成对应密码服务请求的多方安全计算。所述密码服务管理装置可以是一个也可以是多个。在某些实施方式中,所述密码服务管理装置存储有各计算装置的地址、计算协议以及计算装置的当前负载等以供密码服务管理装置在接收到密码服务请求时对执行相应密码服务的计算装置进行选择。
本申请还公开一种计算机可读存储介质,所述计算机可读的存储介质存储有至少一种计算机程序,所述计算机程序在被多个处理器调协同执行所述密码服务方法。所述密码服务方法与前述提及的所述密码服务方法相同或类似,在此不再赘述。另外需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请的部分或全部可借助软件并结合必需的通用硬件平台来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来。
于本申请提供的实施例中,所述计算机可读存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
本申请所述密码服务方法可以用硬件、软件、固件或者其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
基于上述多方安全计算的系统、方法及装置所描述的各示例所反映的技术框架下,本申请公开以下技术方案:
1.一种密码服务系统,其中,包括:被配置于互不信任且网络通信的系统架构中的多个密码服务节点;其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令;
所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。
2.根据实施方式1所述的密码服务系统,其中,所述密码服务系统还包括密码服务管理系统,所述密码服务管理系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务管理节点;其中,每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令。
3.根据实施方式2所述的密码服务系统,其中,所述每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令的步骤包括:
所述多个密码服务管理节点基于所述多个密码服务节点所提供的密码服务请求执行相应密码管理服务的运算指令以得到多个密码管理服务结果;
将所得到的多个密码管理服务结果分配给各密码服务节点,以供各所述密码服务节点恢复相应密钥数据。
4.根据实施方式3所述的密码服务系统,其中,所述多个密码服务管理节点基于所述多个密码服务节点所提供的密码服务请求执行相应密码管理服务的运算指令以得到多个密码管理服务结果的步骤包括:
其中的K个所述密码服务管理节点基于所接收的密码服务请求中的用户信息,从N个分散的存储节点中获取K个分散的根密钥分片;其中,N大于K;
所述多个密码服务管理节点根据所分散获取的K个根密钥分片执行相应密码管理服务的运算指令,以得到多个密码管理服务结果。
5.根据实施方式4所述的密码服务系统,其中,N个所述存储节点包括以下至少一种:发出所述密码服务请求的计算机设备、所述密码服务节点、所述密码服务管理节点、和外部的存储服务节点。
6.根据实施方式3所述的密码服务系统,其中,所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量的步骤包括:
所述多个密码服务节点基于所述密码服务请求获取待处理数据;
所述多个密码服务节点基于各自所恢复的密钥数据对所获取的待处理数据协同执行相应密码服务的运算指令。
7.根据实施方式6所述的密码服务系统,其中,所述待处理数据包含待与密钥数据执行运算的、经分散处理得到的多个待处理数据分片。
8.根据实施方式7所述的密码服务系统,其中,所述多个密码服务节点读取提供所述密码服务请求的客户端所提供的多个待处理数据分片,或者基于所述密码服务请求从相应的存储节点读取所述多个待处理数据分片。
9.根据实施方式6所述的密码服务系统,其中,所述待处理数据包括以下任一种:待加密数据、待解密数据、待签名数据、待验证签名数据。
10.根据实施方式1所述的密码服务系统,其中,所述密码服务请求包括以下任一种:生成随机数服务请求、包含一密码类型的生成密码的服务请求;
所述多个密码服务节点在执行各自的对应密码服务的运算指令时执行:
至少两个密码服务节点生成随机初始值;
所述多个密码服务节点基于所生成的随机初始值协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。
11.根据实施方式1所述的密码服务系统,其中,所述运算指令是基于所述密码服务节点在秘密分享技术中的计算角色而设置的。
12.根据实施方式1-11中任一所述的密码服务系统,其中,所述密码服务管理系统还基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量,并提供给各密码服务节点。
13.根据实施方式12所述的密码服务系统,其中,所述密码服务管理系统将密码服务请求处理成对应各密码服务节点的密码服务请求分量的步骤包括:
基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,复制所述密码服务请求以得到对应各密码服务节点的密码服务请求分量;或者
基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,将所述密码服务请求中所指示的输入数据进行分散处理以得到多个分散密文,并组成包含各分散密文的密码服务请求分量。
14.根据实施方式1所述的密码服务系统,其中,所述密码服务节点包括:发送所述密码服务请求的计算机设备。
15.一种密码服务方法,其中,应用于被配置于互不信任且网络通信的系统架构中的多个密码服务节点;其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令;所述密码服务方法包括:
所述密码服务节点基于一密码服务请求与其他密码服务节点协同执行相应密码服务的运算指令,以得到密码服务结果分量的步骤。
16.根据实施方式15所述的密码服务方法,其中,所述密码服务系统还包括密码服务管理系统,所述密码服务管理系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务管理节点;其中,每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令;
所述密码服务方法还包括以下步骤:
接收密码管理服务结果,根据所述密码管理服务结果恢复相应密钥数据,其中,所述密码管理服务结果是由所述密码服务管理节点基于密码服务请求与其他密码服务管理节点协同执行相应密码管理服务的运算指令得到。
17.根据实施方式16所述的密码服务方法,其中,其中的K个密码服务管理节点基于所接收的密码服务请求中的用户信息,从N个分散的存储节点中获取K个根密钥分片;其中,N大于K;
其中,获取到根密钥分片的密码服务管理节点根据所获取的根密钥分片与其他密码服务管理节点协同执行相应密码管理服务的运算指令,以得到密码管理服务结果。
18.根据实施方式16所述的密码服务方法,其中,所述密码服务节点基于一密码服务请求与其他密码服务节点协同执行相应密码服务的运算指令,以得到密码服务结果分量的步骤包括:
所述密码服务节点基于所述密码服务请求获取待处理数据;
所述密码服务节点基于所恢复的密钥数据并协同其他密码服务节点对所获取的待处理数据协同执行相应密码服务的运算指令。
19.根据实施方式18所述的密码服务方法,其中,所述待处理数据包含待与密钥数据执行运算的、经分散处理得到的待处理数据分片。
20.根据实施方式19所述的密码服务方法,其中,所述待处理数据分片包括:
所述密码服务节点从提供所述密码服务请求的客户端读取的;或者
所述密码服务节点基于所述密码服务请求从相应的存储节点读取的。
21.根据实施方式20所述的密码服务方法,其中,所述待处理数据包括以下任一种:待加密数据、待解密数据、待签名数据、待验证签名数据。
22.根据实施方式15所述的密码服务方法,其中,所述密码服务请求包括以下任一种:生成随机数服务请求、包含一密码类型的生成密码的服务请求;
所述密码服务节点基于一密码服务请求与其他密码服务节点协同执行相应密码服务的运算指令的步骤包括:
所述密码服务节点生成随机初始值;
所述密码服务节点基于所生成的随机初始值协同执行相应密码服务的运算指令,以得到密码服务结果分量。
23.根据实施方式15所述的密码服务方法,其中,所述运算指令是基于所述密码服务节点在秘密分享技术中的计算角色而设置的。
24.根据实施方式15-23中任一所述的密码服务方法,其中,所述密码服务管理系统还用于基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量;
所述密码服务节点基于所述密码服务请求分量协同其他密码服务节点执行相应密码服务的运算指令,以得到多个密码服务结果分量。
25.一种密码服务装置,其中,包括:多个计算装置,各所述计算装置被配置于互不信任且电性连接的计算系统架构中;所述密码服务装置中的多个计算装置执行如实施方式15-24中任一所述的密码服务方法。
26.一种计算机可读存储介质,其中,存储有至少一个程序,所述程序被多个处理器协同执行时执行如实施方式15-24中任一所述密码服务方法。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (22)
1.一种密码服务系统,其特征在于,包括:被配置于互不信任且网络通信的系统架构中的多个密码服务节点;其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令;
所述多个密码服务节点基于一密码服务请求协同执行相应密码服务的运算指令,以得到多个密码服务结果分量,基于多个密码服务结果分量恢复成对应密码服务的服务结果;其中,得到多个密码服务结果分量的步骤包括:
所述多个密码服务节点基于所述密码服务请求获取待处理数据;
所述多个密码服务节点基于各自所恢复的密钥数据对所获取的待处理数据协同执行相应密码服务的运算指令;所述待处理数据包含待与密钥数据执行运算的、经分散处理得到的多个待处理数据分片。
2.据权利要求1所述的密码服务系统,其特征在于,所述密码服务系统还包括密码服务管理系统,所述密码服务管理系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务管理节点;其中,每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令。
3.根据权利要求2所述的密码服务系统,其特征在于,所述每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令的步骤包括:
所述多个密码服务管理节点基于所述多个密码服务节点所提供的密码服务请求执行相应密码管理服务的运算指令以得到多个密码管理服务结果;
将所得到的多个密码管理服务结果分配给各密码服务节点,以供各所述密码服务节点恢复相应密钥数据。
4.根据权利要求3所述的密码服务系统,其中,所述多个密码服务管理节点基于所述多个密码服务节点所提供的密码服务请求执行相应密码管理服务的运算指令以得到多个密码管理服务结果的步骤包括:
其中的K个所述密码服务管理节点基于所接收的密码服务请求中的用户信息,从N个分散的存储节点中获取K个分散的根密钥分片;其中,N大于K;
所述多个密码服务管理节点根据所分散获取的K个根密钥分片执行相应密码管理服务的运算指令,以得到多个密码管理服务结果。
5.根据权利要求4所述的密码服务系统,其中,N个所述存储节点包括以下至少一种:发出所述密码服务请求的计算机设备、所述密码服务节点、所述密码服务管理节点、和外部的存储服务节点。
6.根据权利要求1所述的密码服务系统,其中,所述多个密码服务节点读取提供所述密码服务请求的客户端所提供的多个待处理数据分片,或者基于所述密码服务请求从相应的存储节点读取所述多个待处理数据分片。
7.根据权利要求1所述的密码服务系统,其中,所述待处理数据包括以下任一种:待加密数据、待解密数据、待签名数据、待验证签名数据。
8.根据权利要求1所述的密码服务系统,其特征在于,所述密码服务请求包括以下任一种:生成随机数服务请求、包含一密码类型的生成密码的服务请求;
所述多个密码服务节点在执行各自的对应密码服务的运算指令时执行:
至少两个密码服务节点生成随机初始值;
所述多个密码服务节点基于所生成的随机初始值协同执行相应密码服务的运算指令,以得到多个密码服务结果分量。
9.根据权利要求1所述的密码服务系统,其特征在于,所述运算指令是基于所述密码服务节点在秘密分享技术中的计算角色而设置的。
10.根据权利要求2中任一所述的密码服务系统,其特征在于,所述密码服务管理系统还基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量,并提供给各密码服务节点。
11.根据权利要求10所述的密码服务系统,其中,所述密码服务管理系统将密码服务请求处理成对应各密码服务节点的密码服务请求分量的步骤包括:
基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,复制所述密码服务请求以得到对应各密码服务节点的密码服务请求分量;或者
基于多方安全计算系统架构而确定的接收密码服务请求分量的节点数量,将所述密码服务请求中所指示的输入数据进行分散处理以得到多个分散密文,并组成包含各分散密文的密码服务请求分量。
12.根据权利要求1所述的密码服务系统,其中,所述密码服务节点包括:发送所述密码服务请求的计算机设备。
13.一种密码服务方法,其特征在于,应用于被配置于互不信任且网络通信的系统架构中的多个密码服务节点;其中,每一所述密码服务节点中预置有用于与至少另一密码服务节点协同执行多种密码服务的运算指令; 所述密码服务方法包括:
所述密码服务节点基于一密码服务请求与其他密码服务节点协同执行相应密码服务的运算指令,以得到多个密码服务结果分量;基于多个密码服务结果分量恢复成对应密码服务的服务结果;其中,得到密码服务结果分量的步骤包括:
所述密码服务节点基于所述密码服务请求获取待处理数据;
所述密码服务节点基于所恢复的密钥数据并协同其他密码服务节点对所获取的待处理数据协同执行相应密码服务的运算指令;所述待处理数据包含待与密钥数据执行运算的、经分散处理得到的待处理数据分片。
14.根据权利要求13所述的密码服务方法,其中,所述系统架构还包括密码服务管理系统,所述密码服务管理系统包括被配置于互不信任且网络通信的系统架构中的多个密码服务管理节点;其中,每一密码服务管理节点中预置有用于基于所述密码服务节点所提供的密码服务请求与至少另一密码服务管理节点协同执行密码管理服务的运算指令;
所述密码服务方法还包括以下步骤:
接收密码管理服务结果,根据所述密码管理服务结果恢复相应密钥数据,其中,所述密码管理服务结果是由所述密码服务管理节点基于密码服务请求与其他密码服务管理节点协同执行相应密码管理服务的运算指令得到。
15.根据权利要求14所述的密码服务方法,其中,其中的K个密码服务管理节点基于所接收的密码服务请求中的用户信息,从N个分散的存储节点中获取K个根密钥分片;其中,N大于K;
其中,获取到根密钥分片的密码服务管理节点根据所获取的根密钥分片与其他密码服务管理节点协同执行相应密码管理服务的运算指令,以得到密码管理服务结果。
16.根据权利要求13所述的密码服务方法,其中,所述待处理数据分片包括:
所述密码服务节点从提供所述密码服务请求的客户端读取的;或者
所述密码服务节点基于所述密码服务请求从相应的存储节点读取的。
17.根据权利要求16所述的密码服务方法,其中,所述待处理数据包括以下任一种:待加密数据、待解密数据、待签名数据、待验证签名数据。
18.根据权利要求13所述的密码服务方法,其中,所述密码服务请求包括以下任一种:生成随机数服务请求、包含一密码类型的生成密码的服务请求;
所述密码服务节点基于一密码服务请求与其他密码服务节点协同执行相应密码服务的运算指令的步骤包括:
所述密码服务节点生成随机初始值;
所述密码服务节点基于所生成的随机初始值协同执行相应密码服务的运算指令,以得到密码服务结果分量。
19.根据权利要求13所述的密码服务方法,其中,所述运算指令是基于所述密码服务节点在秘密分享技术中的计算角色而设置的。
20.根据权利要求14中任一所述的密码服务方法,其中,所述密码服务管理系统还用于基于所述多个密码服务节点所构成多方安全计算系统架构,将所述密码服务请求处理成对应各密码服务节点的密码服务请求分量;
所述密码服务节点基于所述密码服务请求分量协同其他密码服务节点执行相应密码服务的运算指令,以得到多个密码服务结果分量。
21.一种密码服务装置,其特征在于,包括:多个计算装置,各所述计算装置被配置于互不信任且电性连接的计算系统架构中;所述密码服务装置中的多个计算装置执行如权利要求13-20中任一所述的密码服务方法。
22.一种计算机可读存储介质,其特征在于,存储有至少一个程序,所述程序被多个处理器协同执行时执行如权利要求13-20中任一所述密码服务方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910759555.7A CN112003690B (zh) | 2019-08-16 | 2019-08-16 | 密码服务系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910759555.7A CN112003690B (zh) | 2019-08-16 | 2019-08-16 | 密码服务系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112003690A CN112003690A (zh) | 2020-11-27 |
CN112003690B true CN112003690B (zh) | 2024-01-12 |
Family
ID=73461844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910759555.7A Active CN112003690B (zh) | 2019-08-16 | 2019-08-16 | 密码服务系统、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112003690B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966022B (zh) * | 2021-03-10 | 2024-04-05 | 安徽航天信息科技有限公司 | 一种数据交易平台的信息查询方法、装置及系统 |
CN114826702B (zh) * | 2022-04-11 | 2024-08-13 | 中国南方电网有限责任公司 | 数据库访问密码加密方法、装置和计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020085734A (ko) * | 2001-05-10 | 2002-11-16 | (주) 비씨큐어 | 복구 가능한 패스워드 기반의 상호인증과 키 교환 방법 |
CN101401341A (zh) * | 2005-11-18 | 2009-04-01 | 安全第一公司 | 安全数据解析方法和系统 |
CN103001957A (zh) * | 2012-11-26 | 2013-03-27 | 广州大学 | 一种密钥生成方法、设备及服务器 |
CN105187379A (zh) * | 2015-07-17 | 2015-12-23 | 上海交通大学 | 基于多方互不信任的密码拆分管理方法 |
CN108063813A (zh) * | 2017-12-15 | 2018-05-22 | 华中农业大学 | 一种集群环境下密码服务网络并行化的方法与系统 |
CN108600174A (zh) * | 2018-03-26 | 2018-09-28 | 西安交通大学 | 一种大型合作网络的访问控制机制及其实现方法 |
CN109086624A (zh) * | 2018-08-03 | 2018-12-25 | 北京海泰方圆科技股份有限公司 | 登录方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9590959B2 (en) * | 2013-02-12 | 2017-03-07 | Amazon Technologies, Inc. | Data security service |
-
2019
- 2019-08-16 CN CN201910759555.7A patent/CN112003690B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020085734A (ko) * | 2001-05-10 | 2002-11-16 | (주) 비씨큐어 | 복구 가능한 패스워드 기반의 상호인증과 키 교환 방법 |
CN101401341A (zh) * | 2005-11-18 | 2009-04-01 | 安全第一公司 | 安全数据解析方法和系统 |
CN103001957A (zh) * | 2012-11-26 | 2013-03-27 | 广州大学 | 一种密钥生成方法、设备及服务器 |
CN105187379A (zh) * | 2015-07-17 | 2015-12-23 | 上海交通大学 | 基于多方互不信任的密码拆分管理方法 |
CN108063813A (zh) * | 2017-12-15 | 2018-05-22 | 华中农业大学 | 一种集群环境下密码服务网络并行化的方法与系统 |
CN108600174A (zh) * | 2018-03-26 | 2018-09-28 | 西安交通大学 | 一种大型合作网络的访问控制机制及其实现方法 |
CN109086624A (zh) * | 2018-08-03 | 2018-12-25 | 北京海泰方圆科技股份有限公司 | 登录方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于云计算服务的安全多方计算;蒋瀚;徐秋亮;;计算机研究与发展(10);第2152-2162页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112003690A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7164580B2 (ja) | ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送 | |
US11601407B2 (en) | Fast oblivious transfers | |
US11552792B2 (en) | Systems and methods for generating signatures | |
US10785019B2 (en) | Data transmission method and apparatus | |
CN110289968B (zh) | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 | |
CN108292402A (zh) | 用于信息的安全交换的公共秘密的确定和层级确定性密钥 | |
US20220166605A1 (en) | Cryptographic Key Storage System and Method | |
US11930110B2 (en) | System and method for key recovery and verification in blockchain based networks | |
CN110635912A (zh) | 数据处理方法及装置 | |
KR20220142254A (ko) | 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템 | |
CN112003690B (zh) | 密码服务系统、方法及装置 | |
CN110784318B (zh) | 群密钥更新方法、装置、电子设备、存储介质及通信系统 | |
KR20210127063A (ko) | 분산 서비스 환경에서의 사용자 개인키 백업 및 복원 프레임워크 | |
CN115297125B (zh) | 业务数据处理方法、装置、计算机设备及可读存储介质 | |
JP2025502962A (ja) | 暗号通貨ウォレット(crypto currency wallet)からの資金の緊急回復取引(emergency recovery transaction) | |
KR20170031482A (ko) | 삼자 간 다중 인증 방법 및 시스템 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |