CN114448610A - 数据保护方法、终端及系统 - Google Patents
数据保护方法、终端及系统 Download PDFInfo
- Publication number
- CN114448610A CN114448610A CN202011187205.7A CN202011187205A CN114448610A CN 114448610 A CN114448610 A CN 114448610A CN 202011187205 A CN202011187205 A CN 202011187205A CN 114448610 A CN114448610 A CN 114448610A
- Authority
- CN
- China
- Prior art keywords
- terminal
- commitment
- server
- key
- private key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 101
- 239000012634 fragment Substances 0.000 claims abstract description 188
- 238000013507 mapping Methods 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 44
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 239000000654 additive Substances 0.000 description 3
- 230000000996 additive effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 101150053844 APP1 gene Proteins 0.000 description 2
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 2
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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
-
- 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/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种数据保护方法、终端及系统,涉及密码技术领域。能够提升终端中数据的安全性。该方法应用在终端,终端中存储有终端的第一私钥分片;终端中的第一数据被加密得到加密结果;加密结果包括第一数据对应的第一密文;方法包括:终端检测到对第一数据的访问请求;若确定响应访问请求,则终端获取终端的第一承诺,以及从服务器获取服务器的第一承诺;其中,终端的第一承诺由终端的第一私钥分片确定;服务器的第一承诺由服务器的第一私钥分片确定;终端的第一承诺和服务器的第一承诺用于确定解密密钥,解密密钥用于解密第一密文;终端根据终端的第一承诺以及服务器的第一承诺,确定解密密钥,并根据解密密钥解密第一密文,得到第一数据。
Description
技术领域
本申请涉及密码技术领域,尤其涉及数据保护方法、终端及系统。
背景技术
随着互联网的飞速发展,手机、电脑等电子设备上完成数字签名或加解密已经成为趋势。通常,电子设备的系统无法保证足够的安全性,存在被非法操控、数据泄露和数据篡改的安全风险。为了提升数据安全性,可以将数据进行加密。但是,一旦攻击者攻破加密使用的密钥,仍可凭借密钥解密得到数据。可见,密钥的安全性至关重要。
目前存在一种提升密钥安全性的方案,具体的,密钥被多个参与设备分享,少于预设数量的参与设备无法恢复密钥,达到预设数量的参与设备可以一同恢复密钥,共同执行签名或解密。但该技术有一定局限性,即在使用密钥做签名或解密时,必须把密钥恢复出来,存在密钥被窃取的风险。此外,一旦密钥被恢复出来,那么持有密钥的参与设备就可以脱离群体,该参与设备自己就可以代表此群体执行签名或解密计算,使得该方案要求的一定数量的参与设备参与共同签名或解密称为空谈。
可见,目前数据的安全性仍然得不到足够保证。
发明内容
本申请实施例提供一种通信方法及装置,能够测量交叉链路干扰程度。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种数据保护方法,方法应用在终端,终端中存储有终端的第一私钥分片;终端中的第一数据被加密得到加密结果;加密结果包括第一数据对应的第一密文;方法包括:
终端检测到对第一数据的访问请求,若确定响应访问请求,则终端获取终端的第一承诺,以及从服务器获取服务器的第一承诺,并根据终端的第一承诺以及服务器的第一承诺,确定解密密钥,根据解密密钥解密第一密文,得到第一数据。
其中,终端的第一承诺由终端的第一私钥分片确定;服务器的第一承诺由服务器的第一私钥分片确定;终端的第一承诺和服务器的第一承诺用于确定解密密钥,解密密钥用于解密第一密文。
可以看出,终端可以和服务器协作,由终端和服务器分别保管各自的第一私钥分片。在需要解密终端中的数据时,终端通过与服务器协作完成数据解密,具体的,终端在检测到对第一数据的访问请求后,需要从服务器获取服务器的一些信息,比如服务器的第一承诺,如此,才能完成解密得到第一数据。也就是说,终端本地无法单独完成数据解密。如此,能够避免终端本地密钥被窃取后,无法保证本地数据安全性的问题。
在一些可能的设计中,服务器的第一承诺是服务器的第一私钥分片和第一映射点的乘积;终端的第一承诺是终端的第一私钥分片和第一映射点的乘积;第一映射点包括在加密结果中;第一映射点是终端在加密过程中所选随机数在椭圆曲线上的映射。
在一些可能的设计中,终端根据终端的第一承诺以及服务器的第一承诺,确定解密密钥,包括:
终端根据终端的第一承诺以及服务器的第一承诺,确定共享密钥;共享密钥是第二映射点对应的横坐标,第二映射点是终端的第一承诺与服务器的第一承诺的和;
终端根据共享密钥以及密钥生成函数确定解密密钥。
在一些可能的设计中,方法还包括:
终端获取总公钥;总公钥与终端的第一私钥分片以及服务器的第一私钥分片有关;
终端根据总公钥对第一数据进行椭圆曲线加密,得到加密结果。
本申请中,用于加密第一数据的总公钥需要终端和服务器联合生成,相应的,需要解密得到第一数据的总私钥也被拆分为由终端和服务器分别保管的第一私钥分片。因此,终端无法独立完成解密,比如,即便终端中的第一私钥分片被窃取,也无法完成解密,进而极大提升了终端中数据的安全性。
在一些可能的设计中,方法还包括:
终端获取服务器的离散对数零知识证明以及服务器的DH Tuple零知识证明;离散对数零知识证明和DH Tuple零知识证明用于验证服务器的第一承诺的正确性;在离散对数零知识证明和DH Tuple零知识证明验证均通过的情况下,服务器的第一承诺正确;
终端对离散对数零知识证明和DH Tuple零知识证明进行验证;
终端根据终端的第一承诺以及服务器的第一承诺,确定解密密钥,包括:
在确定离散对数零知识证明和DH Tuple零知识证明验证均通过的情况下,终端根据终端的第一承诺以及服务器的第一承诺,确定解密密钥。
可见,只有在确定服务器的第一承诺正确的情况下,终端才计算解密密钥进行解密。能够避免第三方提供错误第一承诺导致的数据泄露问题。比如,在一些场景下,第三方设备伪造服务器向终端发送报文,提供错误的第一承诺,以便指示终端确定解密密钥完成解密,窃取第一数据。采用本申请的技术方案,能够检测出第一承诺是否正确,进而确保终端在适当的时机(比如接收的第一承诺正确)完成解密。
在一些可能的设计中,总公钥是终端的第二承诺和服务器的第二承诺之和;终端的第二承诺是终端的第一私钥分片和椭圆曲线基点的乘积;服务器的第二承诺是服务器的第一私钥分片和椭圆曲线基点的乘积。
第二方面,本申请提供一种数据保护方法,该方法应用在服务器,服务器中存储有服务器的第一私钥分片;方法包括:
服务器确定服务器的第一承诺;服务器的第一承诺由服务器的第一私钥分片确定;服务器的第一承诺用于与终端的第一承诺联合确定解密密钥,解密密钥用于解密终端中的第一密文;
服务器向终端发送服务器的第一承诺。
在一种可能的设计中,服务器的第一承诺是服务器的第一私钥分片和第一映射点的乘积;终端的第一承诺是终端的第一私钥分片和第一映射点的乘积;第一映射点包括在加密结果中;第一映射点是终端在加密过程中所选随机数在椭圆曲线上的映射。
在一种可能的设计中,方法还包括:
服务器获取总公钥;总公钥与终端的第一私钥分片以及服务器的第一私钥分片有关。
在一种可能的设计中,总公钥是终端的第二承诺和服务器的第二承诺之和;终端的第二承诺是终端的第一私钥分片和椭圆曲线基点的乘积;服务器的第二承诺是服务器的第一私钥分片和椭圆曲线基点的乘积。
第三方面,本申请提供一种终端,终端中的第一数据被加密得到加密结果;加密结果包括第一数据对应的第一密文;终端包括:
存储单元,用于存储有终端的第一私钥分片;
处理单元,用于检测到对第一数据的访问请求;若确定响应访问请求,则获取终端的第一承诺,以及控制通信单元从服务器获取服务器的第一承诺;其中,终端的第一承诺由终端的第一私钥分片确定;服务器的第一承诺由服务器的第一私钥分片确定;终端的第一承诺和服务器的第一承诺用于确定解密密钥,解密密钥用于解密第一密文;
处理单元,还用于根据终端的第一承诺以及服务器的第一承诺,确定解密密钥,并根据解密密钥解密第一密文,得到第一数据。
在一种可能的设计中,服务器的第一承诺是服务器的第一私钥分片和第一映射点的乘积;终端的第一承诺是终端的第一私钥分片和第一映射点的乘积;第一映射点包括在加密结果中;第一映射点是终端在加密过程中所选随机数在椭圆曲线上的映射。
在一种可能的设计中,处理单元,用于根据终端的第一承诺以及服务器的第一承诺,确定解密密钥,包括:
用于根据终端的第一承诺以及服务器的第一承诺,确定共享密钥;终端根据共享密钥以及密钥生成函数确定解密密钥;
共享密钥是第二映射点对应的横坐标,第二映射点是终端的第一承诺与服务器的第一承诺的和。
在一种可能的设计中,处理单元,还用于获取总公钥;总公钥与终端的第一私钥分片以及服务器的第一私钥分片有关;根据总公钥对第一数据进行椭圆曲线加密,得到加密结果。
在一种可能的设计中,通信单元,还用于从服务器接收服务器的离散对数零知识证明以及服务器的DH Tuple零知识证明;离散对数零知识证明和DH Tuple零知识证明用于验证服务器的第一承诺的正确性;在离散对数零知识证明和DH Tuple零知识证明验证均通过的情况下,服务器的第一承诺正确;
处理单元,还用于对离散对数零知识证明和DH Tuple零知识证明进行验证;
处理单元,用于根据终端的第一承诺以及服务器的第一承诺,确定解密密钥,包括:
用于在确定离散对数零知识证明和DH Tuple零知识证明验证均通过的情况下,根据终端的第一承诺以及服务器的第一承诺,确定解密密钥。
在一种可能的设计中,总公钥是终端的第二承诺和服务器的第二承诺之和;终端的第二承诺是终端的第一私钥分片和椭圆曲线基点的乘积;服务器的第二承诺是服务器的第一私钥分片和椭圆曲线基点的乘积。
第四方面,本申请提供一种服务器,包括:
存储单元,用于存储有服务器的第一私钥分片;
处理单元,用于确定服务器的第一承诺;服务器的第一承诺由服务器的第一私钥分片确定;服务器的第一承诺用于与终端的第一承诺联合确定解密密钥,解密密钥用于解密终端中的第一密文;
通信单元,用于向终端发送服务器的第一承诺。
在一种可能的设计中,服务器的第一承诺是服务器的第一私钥分片和第一映射点的乘积;终端的第一承诺是终端的第一私钥分片和第一映射点的乘积;第一映射点包括在加密结果中;第一映射点是终端在加密过程中所选随机数在椭圆曲线上的映射。
在一种可能的设计中,处理单元,还用于获取总公钥;总公钥与终端的第一私钥分片以及服务器的第一私钥分片有关。
在一种可能的设计中,总公钥是终端的第二承诺和服务器的第二承诺之和;终端的第二承诺是终端的第一私钥分片和椭圆曲线基点的乘积;服务器的第二承诺是服务器的第一私钥分片和椭圆曲线基点的乘积。
第五方面,本申请提供一种数据保护系统,系统包括n个第一计算装置,每一第一计算装置存储一个第一私钥分片;系统还包括第二计算装置和第三计算装置;
任一第一计算装置,用于获取总公钥,并对总公钥进行验证;总公钥由n个第一计算装置的n个第一私钥分片确定;
第一计算装置,还用于计算第一计算装置的第一承诺,以及计算第一零知识证明;第一零知识证明用于验证第一计算装置的第一承诺的正确性;第一承诺用于计算解密密钥,解密密钥用于解密第一密文;
第二计算装置,用于从任一第一计算装置获取验证后的总公钥,并根据总公钥和椭圆曲线算法对第一数据进行加密,得到加密结果;加密结果包括第一数据对应的第一密文;
第三计算装置,用于从n个第一计算装置中任t个第一计算装置接收t个第一承诺以及接收t个第一零知识证明,并根据t个第一承诺和t个第一零知识证明,验证t个第一承诺的正确性;若t个第一承诺均通过验证,则根据t个第一承诺计算解密密钥,并根据解密密钥对第一密文进行解密;
其中,n、t均为正整数;n大于或等于t。
在一种可能的设计中,第一计算装置,用于获取总公钥,包括:
第一计算装置,根据如下公式计算总公钥:
其中,PK是总公钥;SKi是第i个第一计算装置的第一私钥分片;G是椭圆曲线基点;i是正整数。
在一种可能的设计中,第一计算装置,用于对总公钥进行验证,包括:
第一计算装置,用于从其他n-1个第一计算装置中每一第一计算装置接收一个第二零知识证明;根据n-1个第二零知识证明对总公钥进行验证;若n-1个第二零知识证明均验证通过的情况下,确定总公钥正确;
其中,第一计算装置的第二零知识证明用于证明第一计算装置的第一私钥分片的正确性。
在一种可能的设计中,第一计算装置的第一承诺是第一计算装置的第一私钥分片和第一映射点的乘积;第一映射点包括在加密结果中;第一映射点是第二计算装置在加密过程中所选随机数在椭圆曲线上的映射。
在一种可能的设计中,第一计算装置,用于获取总公钥,包括:
第一计算装置,用于获取n个第二承诺,n个第二承诺包括自身的第二承诺以及其他n-1个第一计算装置的n-1个第二承诺;
针对n个第二承诺中每t个第二承诺,执行如下操作:
根据t个第二承诺和拉格朗日系数,计算总公钥;
其中,第一计算装置的第二承诺是第一计算装置的第一私钥分片和椭圆曲线基点的乘积。
在一种可能的设计中,第一计算装置,用于对总公钥进行验证,包括:
若任t个第二承诺计算得到的总公钥均相同,则第一计算装置确定总公钥正确。
在一种可能的设计中,第一计算装置的第一承诺是第一计算装置的第二私钥分片和第一映射点的乘积;第一映射点包括在加密结果中;第一映射点是第二计算装置在加密过程中所选随机数在椭圆曲线上的映射;第一计算装置的第二私钥分片是第一计算装置的拉格朗日系数和第一计算装置的第一私钥分片的乘积。
在一种可能的设计中,第三计算装置,用于根据t个第一承诺计算解密密钥,包括:
用于根据t个第一承诺计算共享密钥;共享密钥是第二映射点的横坐标;第二映射点是t个第一承诺的和;
根据共享密钥以及密钥生成函数计算解密密钥。
第六方面,本申请提供一种数据保护装置,用于实现上述任一方面中终端的功能,或用于实现上述任一方面中服务器的功能。
第七方面,本申请提供一种数据保护装置,该装置具有实现上述任一方面中任一项的通信方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第八方面,提供一种数据保护装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行如上述任一方面中任一项的数据保护方法。
第九方面,提供一种数据保护装置,包括:处理器;处理器用于与存储器耦合,并读取存储器中的指令之后,根据指令执行如上述任一方面中任一项的数据保护方法。
第十方面,本申请实施例提供了一种数据保护装置,该装置可以为芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述任一方面所描述方法的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第十一方面,提供一种数据保护装置,该装置可以为电路系统,电路系统包括处理电路,处理电路被配置为执行如上述任一方面中任一项的数据保护方法。
第十二方面,本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任一方面的方法。
第十三方面,本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行上述任一方面的方法。
附图说明
图1为本申请实施例提供的数据保护系统的架构图;
图2为本申请实施例提供的数据保护装置的结构图一;
图3为本申请实施例提供的加解密方法的流程图;
图4为本申请实施例提供的数据保护方法的流程图;
图5为本申请实施例提供的数据保护装置的结构图二;
图6为本申请实施例提供的数据保护装置的结构图三。
具体实施方式
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
首先,介绍本申请实施例涉及的一些术语:
1、加密算法:密码学中,加密算法可以是对称加密算法或者非对称加密算法。对称加密算法,指的是加密解密均使用同一密钥。非对称加密,指的是加密、解密使用不同密钥。具体的,非对称加密中,通常使用密钥对进行加解密。即使用一对密钥对中的公钥加密数据,使用该密钥对中的私钥解密数据。或者,使用私钥加密数据,使用公钥解密数据。使用私钥加密,公钥解密进行加解密,也可称为数字签名。
2、椭圆曲线加密算法:
椭圆曲线综合加密方案(elliptic curve integrated encryption scheme,ECIES)是非对称密码与对称密码结合的加密体制。具体来说,ECIES利用对称密码提供高效加密。加密者利用对称加密密钥加密数据得到密文。当拥有私钥的用户获得对称解密密钥之后,其可以利用对称解密密钥对密文进行解密。并且,利用非对称密码手段,使得加密者可以是任何用户,解密者只能是拥有私钥的用户,因为只有持有私钥的用户能够获得对称解密密钥。ECIES广泛地被应用于密文传输场景,例如区块链中的敏感数据传输等。
其中,椭圆曲线的基点记为G,G是椭圆曲线循环群的生成元。G的阶记为q。若存在最小正整数n,使得G点乘q的结果为无穷远点O(G*q=O),那么称q为点G的阶。
对于无穷远点O,满足O+P=P+O=P,其中,P是椭圆曲线循环群中任意点。
对于0<=k<q,k*P表示椭圆曲线点乘运算;对于椭圆曲线循环群中的任意点P和Q,P+Q表示点加运算。
目前,为了保证数据的安全性,终端(比如手机)通常会采用加密算法加密某些敏感数据。
其中,加密算法使用的密钥通常由本设备持有。当该密钥被其他设备窃取时,该其他设备可能会使用该密钥解密得到用户的敏感数据,降低数据的安全性。可见,为了降低数据被泄露的概率,应尽量保证加密数据所使用密钥的安全性。目前,使用密钥做签名或解密时,必须把密钥恢复出来,存在密钥被窃取的风险。因此,数据的安全性仍然得不到足够保证。
本申请实施中,用于解密的总私钥被拆分为多个第一私钥分片,包括服务器的第一私钥分片和终端的第一私钥分片,其中,由终端和服务器分别保管各自的第一私钥分片。在需要解密终端中的数据时,终端不仅需要自己存储的第一私钥分片,还需通过与服务器协作,从服务器获取一些信息(比如服务器的第一承诺),以便根据自己存储的第一私钥分片和从服务器获取的信息完成数据解密。也就是说,终端本地无法单独完成数据解密。如此,即便终端本地的第一私钥分片被窃取,也不会造成数据泄露。能够有效提升终端中数据的安全性。
如图1所示,为本申请实施例提供的一种通信系统的架构示意图。该系统包括参与设备(记为Pn),加密设备以及解密设备。可选的,该系统还包括中心设备。
其中,参与设备的数目通常是两个或两个以上,比如n个,n为大于或等于2的整数。本申请实施例中,解密所需的总私钥被拆分成多个第一私钥分片(记为skn),每一参与设备,用于保管一个第一私钥分片。作为一种可能的实现方式,由各参与设备联合生成各自的第一私钥分片。或者,在系统包括中心设备的情况下,中心设备负责生成多个第一私钥分片,并向每一参与设备分发一个第一私钥分片。这两种生成第一私钥分片的方式将在下述实施例中详细给予介绍。
在本申请实施例中,参与设备还可以称为第一计算装置。
此外,n个参与设备,可联合生成加密所需的总公钥。生成总公钥的具体方法可参见下述实施例。
加密设备,用于从上述n个参与设备中任一参与设备获取总公钥,并根据总公钥将第一数据(也可称为第一明文)M加密为第一密文C。
在本申请实施例中,加密设备还可以称为第二计算装置。
解密设备,用于在t(t为正整数)个及以上参与设备的协助下,对第一密文C进行解密,得到第一数据M。
在本申请实施例中,解密设备还可以称为第三计算装置。
t个以及以上参与设备协助解密设备解密的具体实现可参见下述实施例。
需要注意的是,加密设备可以是参与设备中的某个设备,也可以是参与设备外的其他设备。类似的,解密设备可以是参与设备中的某个设备,也可以是参与设备外的其他设备。中心设备可以是参与设备中的某个设备,也可以是参与设备外的其他设备。
参与设备可以为手机、平板电脑、个人计算机(personal computer,PC)、服务器、物联网(internet of things,IoT)设备等具有计算功能的计算装置,本申请对参与设备的具体形式不做特殊限制。加密设备可以是手机、平板电脑、IoT设备、PC、服务器等具有加密功能的计算装置。解密设备可以是手机、平板电脑、PC、IoT设备、服务器等具有解密功能的计算装置。
图2示出了一种计算装置的结构示意图。该计算装置可以是上述参与设备(或具有参与设备功能的装置,比如参与设备中的芯片系统),或加密设备或解密设备。
该计算装置400包括至少一个处理器401,存储器403以及至少一个通信接口404。
处理器401可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
各个组件之间可包括一通路,在上述组件之间传送信息。
通信接口404,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器403可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器403用于存储执行本申请方案的计算机执行指令,并由处理器401来控制执行。处理器401用于执行存储器403中存储的计算机执行指令,从而实现本申请下述实施例提供的数据保护方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器401可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算装置400可以包括多个处理器,例如图2中的处理器401和处理器408。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
上述的计算装置400可以是一个通用设备或者是一个专用设备。在具体实现中,计算装置400可以是有图2中类似结构的任何设备。比如,可以有更多或更少部件,或组合某些组件,或拆分某些部件,或不同部件布局方式。本申请实施例不限定计算装置400的类型。
下面结合附图对本申请实施例提供的技术方案进行详细说明。
首先,介绍基于门限算法和ECIES算法的加解密流程,可称为门限ECIES加解密流程。该门限ECIES流程是本申请实施例的数据保护方法的基础。
如下分别结合具体场景介绍门限ECIES加解密方法。
场景1:去中心化场景。具体的,系统包括n个参与设备,n个参与设备中的t个或t个以上参与设备可以完成解密,少于t个参与设备无法解密,可称为t-n门限方案,即需要n个参与设备中的t个参与设备参与解密过程。
本申请实施例的门限ECIES加解密方法包括启动阶段的流程、加密阶段的流程以及解密阶段的流程。
其中,在启动阶段,总私钥被拆分成n个第一私钥分片,n个参与设备分别获取各自的第一私钥分片。每一参与设备均可获取总公钥,并验证总公钥的正确性。
在加密阶段,加密设备使用总公钥加密第一数据M得到第一密文C。其中,加密设备可以是该n个参与设备中的某一设备,也可以是该n个参与设备外的其他设备。
在解密阶段,解密设备解密第一密文C得到第一数据M。其中,解密设备可以是该t个参与设备中的某一设备,也可以是该t个参与设备外的其他设备。当解密设备是t个参与设备中的某一设备,解密设备在其他t-1个参与设备的协助下完成解密,比如,t-1个设备将各自已知的信息发给解密设备,解密设备利用这些已知信息和自身已知的信息完成解密。当解密设备是t个参与设备外的其他设备,解密设备在t个参与设备的协助下完成解密。
如下,以解密设备是P0,即解密设备是t个参与设备外的其他设备,由t个参与设备协助P0完成解密为例,详细阐述门限ECIES加解密方法。其中,这t个参与设备分别是P1,P2,…,Pt,该t个参与设备的标识(ID)分别是ID1,ID2,…,IDt。
如图3所示,该门限ECIES加解密方法包括:
1、启动阶段
n(n为正整数)个参与设备中每一参与设备,以第i个参与设备Pi为例,执行如下步骤a)-c):
a)Pi计算第一私钥分片SKi。
Pi随机选取一个t-1次多项式fi(x)。Pi将IDj(j小于或等于n),即ID1,ID2,…,IDn分别代入fi(x),计算出fi(IDj),即fi(ID1),fi(ID2),…,fi(IDn),并将fi(IDj)发送给自身外的第j个参与设备Pj。
Pi获取fj(IDi),并根据如下公式计算Pi的第一私钥分片SKi:
其中,SKi,即Pi的第一私钥分片;fj(IDi),包括参与设备P1为参与设备Pi计算的f1(IDi),P2为Pi计算的f2(IDi),…,Pn为Pi计算的fn(IDi)。其中,fj(IDi)还包括Pi为自己计算的fi(IDi)。
本申请实施例中,Pi的第一私钥分片,即Pi独自持有的私钥分片。
在场景1中,总私钥SK=f1(0)+f2(0)+…+fn(0);即等于各多项式的常数项的和。
需要注意的是,本申请实施例中,在整个加解密过程中,并不需要重建总私钥SK,也无需存储SK。从而在不暴露SK的情况下完成加解密,提升数据的安全性。
b)Pi计算该Pi的第二承诺(即Pi的公钥,也可称为第一公钥),并将Pi的第二承诺广播给其他参与设备。
作为一种可能的实现方式,Pi根据如下公式计算Pi的第二承诺(即Pi的公钥)PKi:
PKi=SKi*G;其中,PKi是Pi的第二承诺,SKi是Pi的第一私钥分片,G是循环群的生成元,被称为椭圆曲线的基点。
c)Pi计算总公钥,并验证总公钥是否正确。
首先,Pi利用ID1,ID2,…,IDt,计算一组拉格朗日系数lambda11,lambda12,…,lambda1t。其中,lambda11是参与设备P1对应的拉格朗日系数,lambda12是P2对应的拉格朗日系数…lambda1t是Pt对应的拉格朗日系数。其中, 示例性的,
Pi根据拉格朗日插值原理计算第一个验证公钥PK1:
即PK1=lambda_11*PK1+lambda_12*PK2+…,+lambda_1t*PKt。其中,PK1是P1对应的第二承诺(即P1的公钥),PK2是P2对应的第二承诺,PKt是Pt对应的第二承诺。
计算第二个验证公钥PK2=lambda_21*PK2+lambda_22*PK3+…,+lambda_2t+1*PKt+1。
以此类推,利用IDn-t+1,IDn-t+2,…,IDn计算得到PKn-t+1。
如果PK=PK1=PK2=…=PKn-t+1,说明各参与设备提供的第二承诺均正确,相应的,各参与设备的第一私钥分片均正确,且总公钥是正确的,则继续该加解密方法。否则,终止该加解密方法。
通常,对于第一私钥分片,第一私钥分片仅由Pi持有,不被分享给其他设备;对于总公钥或Pi的第二承诺,Pi公开总公钥以及自己的第二承诺,即允许其他设备从Pi查询获取总公钥以及Pi的第二承诺。
需要注意的是,PK1与PK1不是相同概念。PK1是根据参与设备P1-参与设备Pt的t个标识和t个第二承诺计算的总公钥,PK1是参与设备P1的第二承诺。
2、加密阶段
加密设备利用总公钥PK对第一数据M进行加密,其中,可以采取ECIES算法加密,具体如下:
a)选择随机数r,计算R=r*G。
其中,G是椭圆曲线基点,1<r<q,q是椭圆曲线基点G的阶。
步骤a)的目的是将r映射到椭圆曲线的点R上。
需要说明的是,本申请实施例不限于特定椭圆曲线和特定对称加密算法,可以使用任何安全的椭圆曲线(例如secp256k1、edwards25519和edwards448等)和安全的对称加密算法(例如AES、chacha20等)。
b)计算共享密钥S。
加密设备从任一参与设备获取总公钥PK。
其中,S=H_x;H=r*PK=(H_x,H_y)。其中,r是步骤a)选择的随机数,PK是从任一参与设备查询的总公钥。
共享密钥S为用于生成对称加密密钥以及消息认证码(message authenticationcode,MAC)密钥的参数。对称加密密钥用于将第一数据M加密成第一密文C。MAC密钥用于计算第一密文C的第一标签d1。第一标签d1用于校验第一数据M的完整性,即用于校验第一数据M是否被篡改过。
c)利用密钥生成函数(key derivation function,KDF)计算对称加密密钥以及MAC密钥。
作为一种可能的实现方式,k_E||k_M=KDF(S||S_1)。
其中,KDF()的输入是步骤c)计算的共享密钥S,以及公开参数S_1。KDF()的输出是对称加密密钥k_E以及MAC密钥k_M。符号||为字符串连接(concatenation)符号。即KDF()的输入是共享密钥S和公开参数S_1拼接成的一个字符串,KDF()的输出是对称加密密钥k_E以及MAC密钥k_M拼接成的一个字符串。
容易理解,可以设置k_E以及k_M在输出比特中各占几比特,比如,KDF()的输出共512比特,其中前256比特是k_E,后256比特是k_M。
通过上述加密流程可以看出,总公钥PK用于加密设备计算对称加密密钥。具体的,先计算共享密钥S,再根据共享密钥S计算对称加密密钥。
与加密流程对应,后续解密流程中,总私钥SK用于解密设备派生出与加密设备相同的对称解密密钥。具体的,先计算共享密钥S,再根据共享密钥S计算对称解密密钥。
d)利用对称加密函数E()和对称加密密钥k_E加密第一数据M,得到第一密文C:
C=E(k_E,M)。
e)利用MAC函数MAC()、MAC密钥k_M以及公开参数S_2计算第一密文C的第一标签d1。
d1=MAC(k_M||C||S_2)。
f)输出加密结果{R||C||d1}。
可以看出,加密结果包括三部分,即随机数r映射后的椭圆曲线点R,R还可以成为第一映射点,第一数据M加密后的第一密文C,以及上述第一标签d1。
3、解密阶段
t个参与设备协助解密设备P0完成对上述加密结果{R||C||d}的解密,首先,t个参与设备中每一参与设备(以参与设备Pi为例)执行如下步骤a)-步骤c):
a)Pi计算第三承诺。
其中,第三承诺用于验证下述第一承诺Ri的正确性。第一承诺Ri用于计算共享密钥S。
具体的,首先,Pi计算自己的拉格朗日系数lambda_i。示例性的,Pi按照如下公式计算自己的拉格朗日系数lambda_i:
Pi将Pi的Lambda_i和Pi的第一私钥分片SKi代入如下公式计算第二私钥分片decrypt_SKi:
decrypt_SKi=lambda_i*SKi;
Pi根据Pi的第二私钥分片decrypt_SKi计算第三承诺Qi:
其中,Qi=decrypt_SKi*G。第三承诺用于验证下述第一承诺Ri的正确性。
需要说明的是,步骤a)为可选步骤。上文已指出,启动阶段的步骤b)已计算出Pi对应的第二承诺PKi(即Pi的公钥),若启动阶段的c)步骤已计算出Pi对应的lambda_i,比如lambda_1i,则这里可以复用上述计算结果。具体的,第三承诺Qi即lambda_1i与PKi的乘积。比如,当i=1,则第三承诺即启动阶段步骤c)中计算的lambda_11*PK1,无需在解密阶段重新计算第三承诺。
b)Pi按照如下公式计算第一承诺Ri:
Ri=decrypt_SKi*R。
其中,第一承诺Ri用于解密设备计算共享密钥S,共享密钥S用于解密设备重新派生,或称恢复对称加密密钥以及MAC密钥;decrypt_SKi是步骤a)计算的第二私钥分片;R是加密结果{R||C||d1}中的第一部分。
由第一承诺Ri=decrypt_SKi*R=lambda_i*SKi*R。可以看出,第一承诺Ri中隐藏第一私钥分片SKi。通常,持有总私钥的用户能够完成解密。本申请实施例中,考虑解密设备收集来自一定数量参与设备的第一承诺。由于第一承诺中隐藏有第私钥分片,当解密设备收集到了一定数量的第一承诺,相当于解密设备收集到了一定数量的第一私钥分片,如此,可以恢复出对称解密密钥,以便使用对称解密密钥完成解密。
c)Pi计算第一零知识证明。
第一零知识证明包括G,Qi,R,Ri之间的DH Tuple零知识证明proof1_i,和/或Ri的离散对数零知识证明proof2_i。
Pi将proof1_i和proof2_i广播给其他参与设备。
Pi将第三承诺Qi,第一承诺Ri,DH Tuple零知识证明proof1_i以及离散对数零知识证明proof2_i发送给P0。
其中,在密码学中,G,Qi,R,Ri之间的DH Tuple零知识证明,使得证明者,即Pi能够在不暴露第二私钥分片decrypt_SKi的情况下,向验证者证明{G,Qi,R,Ri}满足Qi=decrypt_SKi*G,Ri=decrypt_SKi*R。即Qi,Ri的分解因子均包括decrypt_SKi。
Ri的离散对数零知识证明,使得证明者Pi在不暴露第二私钥分片decrypt_SKi的情况下,能够向验证者证明Pi知道Ri=decrypt_SKi*R,即证明Pi知道Ri的离散对数是decrypt_SKi。
本申请实施例中,可以根据实际需求,调整零知识证明和承诺使用的数量,在安全性和性能之间寻求平衡。
接下来,解密设备P0完成如下步骤d)-步骤h):
d)P0验证R1,R2,…,Rt的正确性。
具体的,当P0收集到R1,R2,…,Rt,Q1,Q2,…,Qt,DH Tuple零知识证明proof1_1,proof1_2,…,proof1_t,离散对数零知识证明proof2_1,proof2_2,…,proof2_t之后,验证每个零知识证明的有效性,且验证PK=Q1+Q2+…+Qt是否成立。如果验证都通过,则继续该方法。如果任何存在无法通过验证的项,则并终止协议。
需要说明的是,PK=Q1+Q2+…+Qt成立,说明t个参与设备中每一参与设备提供的第三承诺均正确,即Q1,Q2,…,Qt均为正确数据。
对于t个DH Tuple零知识证明中的第i个DH Tuple零知识证明来说,该零知识证明验证通过,说明Qi,Ri的分解因子均包括decrypt_SKi。
对于t个离散对数零知识证明中的第i个离散对数零知识证明来说,该零知识证明验证通过,说明参与设备Pi提供的第一承诺Ri正确,且Pi知道第一承诺Ri的真实离散对数decrypt_SKi。
如果Pi提供的数据没有通过上述验证,则说明Pi提供了错误的数据,比如错误的第一承诺Ri。
e)计算共享密钥S。
作为一种可能的设计,S=H_x,H=R1+R2+,…,+Rt=(H_x,H_y)。
其中,Ri是从参与设备Pi获取的由Pi计算的第一承诺(i小于或等于t)。该共享密钥S用于解密设备P0恢复用于解密的对称加密密钥以及用于验证第一数据M的完整性的MAC密钥。
f)利用KDF重新派生对称解密密钥k_E以及MAC密钥k_M。
作为一种可能的设计,k_E||k_M=KDF(S||S_1)。
其中,S为步骤e)中计算的共享密钥;S_1为与加密设备共享的公开参数。
g)验证第一数据M的完整性。
具体的,计算第二标签d2,d2=MAC(k_M||C||S_2)。MAC()为MAC函数;k_M为步骤f)中生成的MAC密钥;C为待解密的第一密文;S_2与加密设备共享的公开参数。
容易理解,加密设备加密时,使用MAC密钥k_M和S_2计算第一密文C的第一标签d1。解密设备在解密时,也使用与加密阶段相同的MAC密钥k_M和S_2计算第一密文C的第二标签d2,并将得到的第二标签d2与第一标签d1进行比对,若第二标签d2与加密结果中的第一标签d1相同,说明第一密文C未经过篡改。
h)利用对称解密函数D()和对称解密密钥k_E解密第一密文C得到第一数据M,即M=D(k_E||C)。
场景1中,总私钥被拆分为多个第一私钥分片的方法可称为Shamir秘密分享。Shamir秘密分享的具体实现可参见现有技术,这里不再赘述。
场景1中要求t个以及以上参与设备参与即可完成解密,如此,即使个别或少量参与设备断网或无法工作,只要参与解密的参与设备的数量达到t个,仍然能够完成解密。
场景2:去中心化场景。具体的,系统包括n个参与设备,并设定n个参与设备才能够完成解密,少于n个参与设备无法解密。可称为n-n门限方案,即需要n个设备均参与解密过程才能成功解密。
需要说明的是,场景2和场景1的区别主要是启动阶段和解密阶段。具体的,在启动阶段,场景1中,总私钥被拆分成多个第一私钥分片的方法是Shamir秘密分享,场景2中,总私钥被拆分成多个第一私钥分片的方法是加法秘密分享,即总私钥等于各第一私钥分片的和。在解密阶段,场景1需t个及以上参与设备协助解密设备完成解密,场景2需n个参与设备协助解密设备完成解密。相较于场景1,场景2中启动阶段的计算量和设备间通信量更少。
场景2下,门限ECIES加解密方法包括:
1、启动阶段
n(n为正整数)个参与设备中每一参与设备,以第i个参与设备Pi为例,执行如下步骤a)-步骤d):
a)Pi计算Pi的第一私钥分片SKi,以及Pi的第二承诺PKi(即Pi的公钥,也可称为Pi的第一公钥),并向其他参与设备广播PKi。
作为一种可能的实现方式,Pi选取一个随机数作为第一私钥分片SKi。第二承诺PKi=SKi*G。
b)Pi计算第二承诺PKi的离散对数零知识证明proof3_i(即第二零知识证明),并广播proof3_i给其他参与设备。
其中,PKi的离散对数零知识证明能够证明Pi知道PKi的离散对数是SKi,即知道第二承诺PKi对应的正确第一私钥分片SKi。
c)Pi收到其他n-1个参与设备的离散对数零知识证明之后,验证所有离散对数零知识证明的有效性。如果所有离散对数零知识证明都有效,说明每一参与设备的第一私钥分片均正确,则继续后续流程。否则,某些参与设备提供了错误的第一私钥分片,该流程终止。
d)Pi计算总公钥。
作为一种可能的实现方式,Pi获取所有第二承诺,即PK1,PK2,…,PKn,总公钥是全部第二承诺的和,即总公钥PK=PK1+PK2+,…,+PKn。
由于步骤c)中,Pi已对各参与设备的第二承诺进行验证,因此,能够保证得到的各第二承诺的和,即总公钥的正确性。
2、加密阶段
加密设备利用总公钥PK对第一数据M进行加密,具体流程可参考场景1的加密流程。
3、解密阶段
n个参与设备,及P1,P2,…,Pn协助解密设备完成对上述加密结果{R||C||d1}的解密,首先,n个参与设备中每一参与设备(以参与设备Pi为例)执行如下步骤a)-步骤b):
a)Pi计算第一承诺。
作为一种可能的设计,Pi按照如下公式计算第一承诺Ri:Ri=SKi*R。其中,SKi是Pi的第一私钥分片;R是加密结果{R||C||d1}的第一部分。
其中,场景1中的Ri=decrypt_SKi*R=(lambda_i*SKi)*R。可以看出,场景1的第一承诺Ri与场景2的Ri之间是lambda_i倍数的关系。
b)Pi计算G,PKi,R,Ri之间的DH Tuple零知识证明proof1_i’,以及计算Ri的离散对数零知识证明proof2_i’。
将proof1_i’和proof2_i’广播给其他参与设备。
当接收到其他n-1个参与设备广播的DH Tuple零知识证明和离散对数零知识证明之后,Pi将第一承诺Ri、proof1_i’,以及proof2_i’发送给P0。
接下来,解密设备执行如下步骤c)-步骤g):
c)当P0收集到所有第一承诺,即R1,R2,…,Rn、全部DH Tuple零知识证明,即proof1_1’,proof1_2’,…,proof1_n’,以及全部离散对数零知识证明,即proof2_1’,proof2_2’,…,proof2_n’之后,验证每一零知识证明的正确性。
其中,如果验证都通过,则继续后续流程。如果任何零知识证明无法通过验证,说明某一参与设备提供了错误数据,终止该流流程。
d)计算共享密钥S。
其中,S=H_x,H=R1+R2+…+Rn=(H_x,H_y)。Ri是从参与设备Pi获取的Pi对应的第一承诺(i小于或等于n,i、n均为正整数)。
e)利用KDF计算对称解密密钥k_E以及MAC密钥k_M。
其中,k_E||k_M=KDF(S||S_1)。S为步骤d)中计算的共享密钥;S_1为与加密设备共享的公开参数。
f)使用MAC函数,即MAC()验证第一数据M的完整性。
作为一种可能的设计,计算第二标签d2,d2=MAC(k_M||C||S_2)。其中,k_M为步骤e)计算的MAC密钥,C为第一密文,S_2为与加密设备共享的公开参数。
若第二标签d2与加密结果中的第一标签d1一致,说明第一数据M未经篡改,则继续后续流程,否则终止该流程。
g)利用对称解密函数D()和对称解密密钥k_E解密第一密文C,得到第一数据M,即M=D(k_E||C)。
相较于场景1的Shamir秘密分享,场景2中加法秘密分享的计算复杂度和通信复杂度显著降低,比如,加法秘密分享无需计算拉格朗日系数等。
上述场景1、场景2均为去中心化场景,即由每一参与设备生成自身的第一私钥分片。下述场景3、场景4为中心化场景,即由中心设备生成各参与设备的第一私钥分片,并向每一参与设备发送该参与设备对应的第一私钥分片。
场景3:中心化场景,系统包括n个参与设备,n个参与设备中的t个或t个以上参与设备可以完成解密,少于t个参与设备无法解密(t-n门限)。记D为中心设备。该中心设备为可信设备。D负责生成总公钥和总私钥,并负责将总私钥拆分成多个第一私钥分片,将各第一私钥分片发送给每个参与设备。中心设备D可以是n个参与设备中的某一设备,也可以是n个参与设备外的某一设备。如下主要以D是n个参与设备外的某一可信设备为例来介绍该门限ECIES加解密方法。
需要说明的是,场景3与场景1的主要区别在于启动阶段。具体的,场景1中,由各参与设备中每一参与设备生成自身的第一私钥分片以及总公钥。场景3中,由中心设备生成每一参与设备的第一私钥分片以及总公钥,并向每一参与设备发送该参与设备对应的第一私钥分片。由于场景3与场景1的加密阶段和解密阶段均相同,所以这里只介绍场景3的启动阶段,场景3的加密、解密阶段流程可以参见场景1的加密、解密阶段流程。
场景3的启动阶段包括如下步骤:
a)中心设备D计算每一参与设备方的第一私钥分片,并将第一私钥分片发送给相应参与设备。
作为一种可能的设计,D随机选取t-1次多项式p(x),对于第i个参与设备Pi,将IDi代入上述p(x),得到p(IDi),该p(IDi)作为Pi的第一私钥分片SKi。示例性的,参与设备P1的第一私钥分片为p(ID1),P2的第一私钥分片为p(ID2),…,Pn的第一私钥分片为p(IDn)。
b)中心设备D计算总公钥。
作为一种可能的设计,其中,PK为总公钥;G为椭圆曲线的基点;SKi为参与设备Pi的第一私钥分片,其值等于p(IDi);为总私钥,即各第一私钥分片的和。可以看出,总公钥PK是椭圆曲线基点G与总私钥的点乘。
场景4:中心化场景,系统包括n个参与设备,并设定n个参与设备才能够完成解密,少于n个参与设备无法解密(n-n门限)。D为中心设备,D负责生成总公钥以及各参与设备的第一私钥分片,并负责将每一第一私钥分片发送给相应参与设备。这里只介绍场景4的启动阶段,场景4的加密阶段和解密阶段可分别参见场景2的加密、解密阶段流程。
具体的,场景4的启动阶段包括如下步骤:
a)中心设备D随机选取n个随机数SK1,SK2,…,SKn分别作为各参与设备的第一私钥分片。即SK1作为参与设备P1的第一私钥分片,SK2作为P2的第一私钥分片,…,SKn作为Pn的第一私钥分片。
b)D计算总公钥PK,并公开PK。
基于上述门限ECIES加解密流程,本申请提供一种数据保护方法。该方法应用在数据保护系统,该系统包括至少两个参与设备,所述至少两个参与设备包括第一参与设备和第二参与设备;所述第一参与设备是服务器,所述第二参与设备是终端。其中,用于解密的总私钥被拆分为多个第一私钥分片;所述多个第一私钥分片包括服务器的第一私钥分片和终端的第一私钥分片。
如图4所示,该数据保护方法包括启动阶段流程,启动阶段流程包括如下步骤:
S101、服务器获取该服务器的第一私钥分片SK1以及该服务器的第二承诺PK1。
其中,服务器的第二承诺,即该服务器的公钥。
可选的,在去中心化场景中,服务器获取该服务器的第一私钥分片,可以实现为:服务器生成自身所需的第一私钥分片。可选的,若设定为t-n门限方案,则服务器可以按照上述场景1中启动阶段的步骤a)计算该服务器的第一私钥分片以及第二承诺。可选的,若设定为n-n门限方案,则服务器可按照上述场景2中启动阶段的步骤a)计算该服务器的第一私钥分片以及第二承诺。
可选的,在中心化场景中,服务器获取该服务器的第一私钥分片,可以实现为:服务器从中心设备接收该服务器的第一私钥分片。可选的,若设定为t-n门限方案,则中心设备可按照上述场景3的方法计算各参与设备(包括服务器)的第一私钥分片。可选的,若设定为n-n门限方案,则中心设备可按照上述场景4中的方法计算各第一私钥分片。服务器获取该服务器的第二承诺,可以实现为:根据该服务器的第一私钥分片计算该服务器的第二承诺。比如,可按照公式PK1=SK1*G。其中,PK1是服务器的第二承诺,SK1是服务器的第一私钥分片,G是椭圆曲线基点。
S102、服务器向终端发送该服务器的第二承诺。
S103、终端获取该终端的第一私钥分片SK2以及该终端的第二承诺PK2。
其中,终端的第二承诺,即该终端的公钥。
与服务器获取服务器的第一私钥分片以及第二承诺的实现方法类似,终端可以自己生成该终端的第一私钥分片以及第二承诺。比如,按照场景1中启动阶段的步骤a)或场景2中启动阶段的步骤a)生成自身的第一私钥分片以及第二承诺。终端也可以从中心设备接收自身对应的第一私钥分片,并根据终端的第一私钥分片计算终端的第二承诺。
S104、终端向服务器发送该终端的第二承诺。
S105、服务器基于该服务器的第二承诺PK1和终端的第二承诺PK2,确定总公钥PK。
可选的,在去中心化场景中,服务器可自己计算总公钥。比如,在t-n门限方案中,服务器按照上述场景1中启动阶段的步骤c)计算总公钥。可选的,服务器按照该步骤c)验证总公钥的正确性。
或者,在去中心化场景的n-n门限方案中,服务器按照上述场景2中启动阶段的步骤d)计算总公钥。可选的,服务器按照诸如场景2中启动阶段的步骤c)保证总公钥的正确性。
可选的,在中心化场景中,服务器可从中心设备接收总公钥。在t-n门限方案中,中心设备可按照上述场景3中启动阶段的步骤b)计算总公钥。或者,在n-n门限方案中,中心设备按照上述场景4中启动阶段的步骤b)计算总公钥。
S106、终端基于服务器的第二承诺PK1和终端的第二承诺PK2,确定总公钥PK。
与服务器计算总公钥的实现方法类似,可选的,在去中心化场景中,终端可自己计算总公钥。比如,在t-n门限方案中,终端按照上述场景1中启动阶段的步骤c)计算总公钥。或者,在n-n门限方案中,终端按照上述场景2中启动阶段的步骤d)计算总公钥。
可选的,在中心化场景中,终端可从中心设备接收总公钥。在t-n门限方案中,中心设备可按照上述场景3中启动阶段的步骤b)计算总公钥。或者,在n-n门限方案中,中心设备按照上述场景4中启动阶段的步骤b)计算总公钥。
可选的,终端可验证总公钥的正确性。比如,按照场景1中启动阶段的步骤c)验证总公钥的正确性。再比如,按照场景2中启动阶段的步骤c)保证总公钥的正确性。
该数据保护方法还包括加密阶段,加密阶段包括如下步骤S105:
S107、终端使用总公钥加密第一数据M,得到加密结果{R||C||d1}。
第一数据M为终端的一些敏感数据,比如用户名、密码等。为了保证第一数据的安全性,终端可以加密第一数据,得到加密结果{R||C||d1}。其中,R是终端选取的随机数映射得到的椭圆曲线点;C是第一数据加密得到的第一密文;d1是将MAC密钥、第一密文C、某公开参数S_2作为MAC函数输入得到的输出标签,该标签用于验证第一数据M的完整性。
示例性的,终端按照上述场景1或场景2或场景3或场景4的加密阶段流程加密第一数据。比如,终端执行上述场景1的步骤a)-步骤f),加密第一数据M,得到第一密文C。
该数据保护方法还包括解密阶段,解密阶段包括如下步骤S108-步骤S111:
S108、终端检测到对第一数据M的访问请求。
其中,若确定无需响应该访问请求,则终端不执行如下步骤S109-步骤S111。
反之,若终端确定需响应该访问请求,则终端执行如下步骤S109-步骤S111:
S109、响应于所述访问请求,终端获取本地存储的该终端的第一承诺R2,以及从服务器获取服务器的第一承诺R1、服务器的第三承诺Q1以及第一零知识证明。其中,终端的第一承诺和服务器的第一承诺用于确定共享密钥;共享密钥用于确定对称解密密钥和MAC密钥;对称解密密钥用于解密第一密文C;MAC密钥用于对第一数据M进行完整性校验。
通常,持有总私钥的用户能够获得解密第一密文C的对称解密密钥。在本申请实施例中,由服务器的第一私钥分片计算得出服务器的第一承诺,由终端的第一私钥分片计算得到终端的第一承诺。服务器的第一私钥分片和终端的第一私钥分片联合使用才能实现解密。但为了实现各第一私钥分片仅被一个参与设备持有,终端并不直接从服务器获取服务器的第一私钥分片,而是从服务器获取服务器的第一承诺,并通过服务器的第一承诺和终端的第一承诺获得解密第一密文C的对称解密密钥。
终端的第一承诺和服务器的第一承诺用于联合确定对称解密密钥。
作为一种可能的设计,在t-n门限方案中,终端可以按照诸如场景1中解密阶段的步骤b)计算该终端的第一承诺,并存储该终端的第一承诺。类似的,服务器也可按照诸如场景1中解密阶段的步骤b)计算该服务器的第一承诺,并存储该服务器的第一承诺。后续,终端可从服务器接收服务器的第一承诺,以便于与终端的第一承诺联合确定共享密钥。
示例性的,在t-n门限方案中,服务器的第一承诺R1=decrypt_SK1*R。其中,R是加密阶段得到的加密结果的第一部分,即在加密阶段,终端所选取随机数映射得到的椭圆曲线点。decrypt_SK1是服务器的第二私钥分片。作为一种可能的设计,decrypt_SK1=lambda_1*SK1。其中,lambda_1为服务器的拉格朗日系数,SK1是服务器的第一私钥分片。
作为另一种可能的设计,在n-n门限方案中,终端可按照诸如场景2中解密阶段的步骤a)计算该终端的第一承诺,并存储该终端的第一承诺。类似的,服务器也可按照诸如场景2中解密阶段的步骤a)计算该服务器的第一承诺,并存储该服务器的第一承诺。后续,终端可从服务器接收服务器的第一承诺,以便于与终端的第一承诺联合确定共享密钥。
可选的,服务器可按照上述场景1中解密阶段的步骤a)计算该服务器的第三承诺。
可选的,在t-n门限方案中,服务器计算的第一零知识证明包括G,Q1,R,R1之间的DH Tuple零知识证明。其中,G是椭圆曲线基点。Q1=decrypt_SK1*G。R是加密结果的第一部分。R1是服务器的第一承诺。该DH Tuple零知识证明,使得服务器能够在不暴露其第二私钥分片decrypt_SK1的情况下,向终端证明服务器知道{G,Q1,R,R1}之间满足Q1=decrypt_SK1*G,R1=decrypt_SK1*R。
服务器计算的第一零知识证明还包括R1的离散对数零知识证明。该零知识证明使得服务器在不暴露其第二私钥分片decrypt_SK1的情况下,能够向终端证明服务器知道R1=decrypt_SK1*R,即向终端证明服务器知道R1的离散对数是decrypt_SK1。
可选的,在n-n门限方案中,服务器计算的第一零知识证明即PK1的离散对数零知识证明。其中,PK1是服务器的第二承诺。PK1的离散对数零知识证明,能够证明服务器知道PK1的离散对数是SK1,即知道第二承诺PK1对应的正确第一私钥分片SK1。
S110、终端根据服务器的第三承诺Q1以及第一零知识证明,验证服务器的第一承诺是否正确。
通过该步骤,终端能够识别服务器是否提供了错误的第一承诺。具体的,终端根据服务器的第三承诺以及其他信息,对第一零知识证明进行验证,若第一零知识证明验证通过,说明服务器的第一承诺正确,继续执行后续步骤S111,反之,服务器提供了错误的第一承诺,终止该流程。
S111、终端根据服务器的第一承诺R1以及该终端的第一承诺R2解密第一密文C得到第一数据M。
示例性的,终端先根据R1和R2计算共享密钥S:S=H_x,H=R1+R2=(H_x,R_y)。之后,终端利用共享密钥生成对称解密密钥和MAC密钥。并利用MAC密钥验证第一数据M的完整性,利用对称解密密钥解密第一密文C得到第一数据M。终端的具体解密实现可参见上述场景1-场景4的解密流程。
需要说明的是,本申请实施例并不限制方法流程中各步骤间的执行顺序,比如,不限制图4所示S101、S103之间的执行先后顺序。
本申请实施例提供的数据保护方法,终端可以和服务器协作,由终端和服务器分别保管各自的第一私钥分片。在需要解密终端中的数据时,终端通过与服务器协作完成数据解密,具体的,终端在检测到对第一数据的访问请求后,需要从服务器获取服务器的一些信息,比如服务器的第一承诺,如此,才能完成解密得到第一数据。也就是说,终端本地无法单独完成数据解密。如此,能够避免终端本地密钥被窃取后,无法保证本地数据安全性的问题。
此外,由于第一数据仍保存在终端本地,并未上传至服务器,因此,可进一步避免泄露用户隐私。
需要注意的是,本申请实施例中,作为参与设备的服务器的数量可以是大于或等于1的任何正整数。当服务器的数量为多个时,可以设定多个服务器中的某些服务器协助才能完成解密。比如,作为参与设备的服务器为3个(服务器1-服务器3),用于协助完成解密的服务器为2个(假设为服务器1、服务器2)。其中,服务器1-服务器3、终端,用于在启动阶段联合生成各参与设备的第一私钥分片、各参与设备的第二承诺,以及总公钥。终端,用于在加密阶段加密第一数据M得到第一密文C。服务器1和服务器2,用于在解密阶段,分别向终端发送各自的第一承诺。终端根据服务器1的第一承诺、服务器2的第一承诺以及自身的第一承诺,计算对称解密密钥,以便使用对称解密密钥完成解密。
本申请实施例提供的数据保护方法可以应用于分布式密钥加密密钥(Keyencryption key,KEK)、协同解密、应用级数据共享或敏感数据备份与恢复等场景。以下将举例对部分场景进行说明。
在应用程序间数据共享的场景中,比如在不支持应用级隔离的终端中,应用程序之间的数据往往可以共享。比如,在登录微信时,新浪微博可能会共享一些微信的数据,以便于快速登录新浪微博,或完成其他功能。通常,在应用程序之间共享一些非重要数据,无关安全问题。但是,某些应用程序包括一些敏感数据,这些数据一旦被非法应用程序,比如伪造的应用程序、钓鱼应用程序获取,可能会被同步到互联网,泄露用户的隐私,或用于其他非法用途。敏感数据包括但不限于用户名、登录密码等。可见,目前应用程序之间数据共享的方案并不足够安全。可以考虑使用本申请实施例提供的数据保护方法,提供应用级隔离,具体的,对于需要进行数据保护的第一应用程序,其敏感数据,即第一数据被加密成第一密文。用于解密该第一密文的总私钥被拆分成多个第一私钥分片,其中,终端存储一个第一私钥分片,服务器存储一个第一私钥分片。
在一些实施例中,其他应用程序若想读取第一应用程序的已加密的第一数据,即便破解终端本地存储的第一私钥分片,也无法获取服务器的第一私钥分片,如此,该其他应用程序不能读取到第一应用程序的敏感数据。
作为一种可能的设计,终端的第一应用程序为系统默认的一个或多个应用程序。其中,每一应用程序中的特定类型数据被默认设置为敏感数据。比如,APP1是支付类APP是终端默认的第一应用程序,终端默认支付类APP的敏感数据包括登录密码。
作为另一种可能的设计,第一应用程序还可以是用户设置的应用程序。第一应用程序的敏感数据,可以是用户设置的某些类型数据。比如,用户通过设置界面设置APP1为第一应用程序,在APP1的设置界面设置某些类型数据为敏感数据。
在另一些实施例中,可以设置应用程序白名单。对于应用程序白名单中的应用程序,若其想读取第一应用程序的第一数据,则终端临时与服务器协作,从服务器获取一些信息,比如服务器的第一私钥分片关联的第一承诺。如此,终端根据从服务器获取的信息以及本地存储的信息,联合解密第一密文,即能得到第一数据。对于应用程序白名单外的应用程序,终端拒绝读取第一数据的请求。
当终端系统默认某一应用程序为第一应用程序,或用户设置某一应用程序为第一应用程序之后,终端可以与服务器协作生成该第一应用程序对应的第一私钥分片以及第二承诺(即该第一应用程序对应的第一公钥),并将该第一私钥分片和第二承诺存储在该第一应用程序对应的存储空间中。后续,当合法用户申请访问该第一应用程序的第一数据,即敏感数据时,终端与服务器协作完成解密。当其他应用程序申请访问第一应用程序的第一数据,终端可以拒绝该访问请求,不与服务器协作完成解密。
在另一些实施例中,当合法用户使用第一应用程序,比如用户在该第一应用程序运行界面中操作该第一应用程序,并想获取第一数据时,终端临时与服务器协作,解密第一密文得到第一数据,以便用户能够查询该第一数据。
在分布式KEK场景中,KEK可以用于加密数据加密密钥(Data encryption key,DEK)。具体的,DEK是一种密钥,用于加密数据。每个数据可以由不同的DEK加密。KEK是另一种密钥,所有DEK可以由相同的KEK加密。这样,只要保证KEK的安全性,就能保证所有DEK的安全,进而保证所有加密密文的安全性,并且可以简化密钥管理和维护的成本。在本申请实施例中,可以将总私钥作为KEK,KEK被拆分为多个第一私钥分片,被多个参与设备分别保存。当需要解密某个数据密文时,多个参与设备可以联合计算出与这个数据密文相关的DEK,之后可以用这个DEK解密得到数据明文。该过程中,KEK始终不在内存中恢复出来,并且各个参与设备不会暴露各自的与KEK相关的第一私钥分片,提升了密钥的安全性,也提升了数据的安全性。
上述以服务器和终端之间协作完成数据保护为例对本申请实施例的技术方案进行说明,在另一些实施例中,还可以是多个终端之间协作完成数据保护。示例性的,在数据备份和恢复场景中,以终端是手机为例,n个家庭成员的n个手机可以作为n个参与设备。n个手机各自保存一个第一私钥分片。n个手机中的手机A的用户A在备份手机A的第一数据(比如支付类软件的相关数据)时,手机A作为加密设备加密该第一数据,得到第一密文。后续,若用户A想解密第一密文,恢复备份的第一数据,则需要n个手机的t个手机协作完成解密。可见,即便是家庭成员的手机,一个手机也不可能独立获取到手机A备份的第一数据,还需多个手机之间协作才能完成解密。如此,极大提高了第一数据的安全性。
可以理解的是,本申请实施例中的终端、服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。
本申请实施例可以根据上述方法示例对终端、服务器进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图5示出了本申请实施例中提供的数据保护装置的一种示意性框图,该数据保护装置可以为上述的终端,或者,支持终端功能的装置(比如芯片系统)。该数据保护装置700可以以软件的形式存在,还可以为可用于设备的芯片。数据保护装置700包括:处理单元702和通信单元703。可选的,通信单元703还可以划分为发送单元(并未在图5中示出)和接收单元(并未在图5中示出)。其中,发送单元,用于支持数据保护装置700向其他网元发送信息。接收单元,用于支持数据保护装置700从其他网元接收信息。
可选的,数据保护装置700还可以包括存储单元701,用于存储数据保护装置700的程序代码和数据,数据可以包括不限于原始数据或者中间数据等。比如,用于存储有所述终端的第一私钥分片。
处理单元702,用于检测到对所述第一数据的访问请求;若确定响应所述访问请求,则获取所述终端的第一承诺,以及控制通信单元703从服务器获取所述服务器的第一承诺;其中,所述终端的第一承诺由所述终端的第一私钥分片确定;所述服务器的第一承诺由所述服务器的第一私钥分片确定;所述终端的第一承诺和所述服务器的第一承诺用于确定解密密钥,所述解密密钥用于解密所述第一密文;
所述处理单元702,还用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,并根据所述解密密钥解密所述第一密文,得到所述第一数据。
在一种可能的设计中,所述服务器的第一承诺是所述服务器的第一私钥分片和第一映射点的乘积;所述终端的第一承诺是所述终端的第一私钥分片和所述第一映射点的乘积;所述第一映射点包括在所述加密结果中;所述第一映射点是所述终端在加密过程中所选随机数在椭圆曲线上的映射。
在一种可能的设计中,所述处理单元702,用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,包括:
用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定共享密钥;所述终端根据所述共享密钥以及密钥生成函数确定所述解密密钥;
所述共享密钥是第二映射点对应的横坐标,所述第二映射点是所述终端的第一承诺与所述服务器的第一承诺的和。
在一种可能的设计中,所述处理单元702,还用于获取总公钥;所述总公钥与所述终端的第一私钥分片以及所述服务器的第一私钥分片有关;根据所述总公钥对所述第一数据进行椭圆曲线加密,得到所述加密结果。
在一种可能的设计中,所述通信单元703,还用于从所述服务器接收服务器的离散对数零知识证明以及服务器的DH Tuple零知识证明;所述离散对数零知识证明和所述DHTuple零知识证明用于验证所述服务器的第一承诺的正确性;在所述离散对数零知识证明和所述DH Tuple零知识证明验证均通过的情况下,所述服务器的第一承诺正确;
所述处理单元702,还用于对所述离散对数零知识证明和所述DH Tuple零知识证明进行验证;
所述处理单元702,用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,包括:
用于在确定所述离散对数零知识证明和所述DH Tuple零知识证明验证均通过的情况下,根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥。
在一种可能的设计中,所述总公钥是所述终端的第二承诺和所述服务器的第二承诺之和;所述终端的第二承诺是所述终端的第一私钥分片和椭圆曲线基点的乘积;所述服务器的第二承诺是所述服务器的第一私钥分片和所述椭圆曲线基点的乘积。
图6为本申请实施例提供的另一种数据保护装置的结构示意图,该数据保护装置可以为上述的服务器,或者,支持服务器功能的装置(比如芯片系统)。该数据保护装置800可以以软件的形式存在,还可以为可用于设备的芯片。数据保护装置800包括:处理单元802和通信单元803。可选的,通信单元803还可以划分为发送单元(并未在图6中示出)和接收单元(并未在图6中示出)。其中,发送单元,用于支持数据保护装置800向其他网元发送信息。接收单元,用于支持数据保护装置800从其他网元接收信息。
可选的,数据保护装置800还可以包括存储单元801,用于存储数据保护装置800的程序代码和数据,数据可以包括不限于原始数据或者中间数据等。比如,用于存储有所述服务器的第一私钥分片。
处理单元802,用于确定所述服务器的第一承诺;所述服务器的第一承诺由所述服务器的第一私钥分片确定;所述服务器的第一承诺用于与终端的第一承诺联合确定解密密钥,所述解密密钥用于解密所述终端中的第一密文;
通信单元803,用于向所述终端发送所述服务器的第一承诺。
在一种可能的设计中,所述服务器的第一承诺是所述服务器的第一私钥分片和第一映射点的乘积;所述终端的第一承诺是所述终端的第一私钥分片和所述第一映射点的乘积;所述第一映射点包括在所述加密结果中;所述第一映射点是所述终端在加密过程中所选随机数在椭圆曲线上的映射。
在一种可能的设计中,所述处理单元802,还用于获取总公钥;所述总公钥与所述终端的第一私钥分片以及所述服务器的第一私钥分片有关。
在一种可能的设计中,所述总公钥是所述终端的第二承诺和所述服务器的第二承诺之和;所述终端的第二承诺是所述终端的第一私钥分片和椭圆曲线基点的乘积;所述服务器的第二承诺是所述服务器的第一私钥分片和所述椭圆曲线基点的乘积。
一种可能的方式中,处理单元802或处理单元702可以是控制器或图2所示的处理器401或处理器408,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理(Digital Signal Processing,DSP),应用专用集成电路(ApplicationSpecific Integrated Circuit,ASIC),现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元803或通信单元703可以是图2所示的通信接口404、还可以是收发电路等。存储单元801或存储单元701可以是图2所示的存储器403。
本领域普通技术人员可以理解:在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络设备(例如终端设备)上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个功能单元独立存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种数据保护方法,其特征在于,所述方法应用在终端,所述终端中存储有所述终端的第一私钥分片;所述终端中的第一数据被加密得到加密结果;所述加密结果包括所述第一数据对应的第一密文;所述方法包括:
所述终端检测到对所述第一数据的访问请求;
若确定响应所述访问请求,则所述终端获取所述终端的第一承诺,以及从服务器获取所述服务器的第一承诺;其中,所述终端的第一承诺由所述终端的第一私钥分片确定;所述服务器的第一承诺由所述服务器的第一私钥分片确定;所述终端的第一承诺和所述服务器的第一承诺用于确定解密密钥,所述解密密钥用于解密所述第一密文;
所述终端根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,并根据所述解密密钥解密所述第一密文,得到所述第一数据。
2.根据权利要求1所述的数据保护方法,其特征在于,所述服务器的第一承诺是所述服务器的第一私钥分片和第一映射点的乘积;所述终端的第一承诺是所述终端的第一私钥分片和所述第一映射点的乘积;所述第一映射点包括在所述加密结果中;所述第一映射点是所述终端在加密过程中所选随机数在椭圆曲线上的映射。
3.根据权利要求1或2所述的数据保护方法,其特征在于,所述终端根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,包括:
所述终端根据所述终端的第一承诺以及所述服务器的第一承诺,确定共享密钥;所述共享密钥是第二映射点对应的横坐标,所述第二映射点是所述终端的第一承诺与所述服务器的第一承诺的和;
所述终端根据所述共享密钥以及密钥生成函数确定所述解密密钥。
4.根据权利要求1-3中任一项所述的数据保护方法,其特征在于,所述方法还包括:
所述终端获取总公钥;所述总公钥与所述终端的第一私钥分片以及所述服务器的第一私钥分片有关;
所述终端根据所述总公钥对所述第一数据进行椭圆曲线加密,得到所述加密结果。
5.根据权利要求1-4中任一项所述的数据保护方法,其特征在于,所述方法还包括:
所述终端获取服务器的离散对数零知识证明以及服务器的DH Tuple零知识证明;所述离散对数零知识证明和所述DH Tuple零知识证明用于验证所述服务器的第一承诺的正确性;在所述离散对数零知识证明和所述DH Tuple零知识证明验证均通过的情况下,所述服务器的第一承诺正确;
所述终端对所述离散对数零知识证明和所述DH Tuple零知识证明进行验证;
所述终端根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,包括:
在确定所述离散对数零知识证明和所述DH Tuple零知识证明验证均通过的情况下,所述终端根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥。
6.根据权利要求4所述的数据保护方法,其特征在于,所述总公钥是所述终端的第二承诺和所述服务器的第二承诺之和;所述终端的第二承诺是所述终端的第一私钥分片和椭圆曲线基点的乘积;所述服务器的第二承诺是所述服务器的第一私钥分片和所述椭圆曲线基点的乘积。
7.一种终端,其特征在于,所述终端中的第一数据被加密得到加密结果;所述加密结果包括所述第一数据对应的第一密文;所述终端包括:
存储单元,用于存储有所述终端的第一私钥分片;
处理单元,用于检测到对所述第一数据的访问请求;若确定响应所述访问请求,则获取所述终端的第一承诺,以及控制通信单元从服务器获取所述服务器的第一承诺;其中,所述终端的第一承诺由所述终端的第一私钥分片确定;所述服务器的第一承诺由所述服务器的第一私钥分片确定;所述终端的第一承诺和所述服务器的第一承诺用于确定解密密钥,所述解密密钥用于解密所述第一密文;
所述处理单元,还用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,并根据所述解密密钥解密所述第一密文,得到所述第一数据。
8.根据权利要求7所述的终端,其特征在于,所述服务器的第一承诺是所述服务器的第一私钥分片和第一映射点的乘积;所述终端的第一承诺是所述终端的第一私钥分片和所述第一映射点的乘积;所述第一映射点包括在所述加密结果中;所述第一映射点是所述终端在加密过程中所选随机数在椭圆曲线上的映射。
9.根据权利要求7或8所述的终端,其特征在于,所述处理单元,用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,包括:
用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定共享密钥;所述终端根据所述共享密钥以及密钥生成函数确定所述解密密钥;
所述共享密钥是第二映射点对应的横坐标,所述第二映射点是所述终端的第一承诺与所述服务器的第一承诺的和。
10.根据权利要求7-9中任一项所述的终端,其特征在于,
所述处理单元,还用于获取总公钥;所述总公钥与所述终端的第一私钥分片以及所述服务器的第一私钥分片有关;根据所述总公钥对所述第一数据进行椭圆曲线加密,得到所述加密结果。
11.根据权利要求7-10中任一项所述的终端,其特征在于,
所述通信单元,还用于从所述服务器接收服务器的离散对数零知识证明以及服务器的DH Tuple零知识证明;所述离散对数零知识证明和所述DH Tuple零知识证明用于验证所述服务器的第一承诺的正确性;在所述离散对数零知识证明和所述DH Tuple零知识证明验证均通过的情况下,所述服务器的第一承诺正确;
所述处理单元,还用于对所述离散对数零知识证明和所述DH Tuple零知识证明进行验证;
所述处理单元,用于根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥,包括:
用于在确定所述离散对数零知识证明和所述DH Tuple零知识证明验证均通过的情况下,根据所述终端的第一承诺以及所述服务器的第一承诺,确定所述解密密钥。
12.根据权利要求10所述的终端,其特征在于,所述总公钥是所述终端的第二承诺和所述服务器的第二承诺之和;所述终端的第二承诺是所述终端的第一私钥分片和椭圆曲线基点的乘积;所述服务器的第二承诺是所述服务器的第一私钥分片和所述椭圆曲线基点的乘积。
13.一种数据保护系统,其特征在于,所述系统包括n个第一计算装置,每一第一计算装置存储一个第一私钥分片;所述系统还包括第二计算装置和第三计算装置;
任一第一计算装置,用于获取总公钥,并对所述总公钥进行验证;所述总公钥由所述n个第一计算装置的n个第一私钥分片确定;
所述第一计算装置,还用于计算所述第一计算装置的第一承诺,以及计算第一零知识证明;所述第一零知识证明用于验证所述第一计算装置的第一承诺的正确性;所述第一承诺用于计算解密密钥,所述解密密钥用于解密第一密文;
第二计算装置,用于从任一第一计算装置获取验证后的所述总公钥,并根据所述总公钥和椭圆曲线算法对第一数据进行加密,得到加密结果;所述加密结果包括所述第一数据对应的所述第一密文;
第三计算装置,用于从所述n个第一计算装置中任t个第一计算装置接收t个第一承诺以及接收t个第一零知识证明,并根据所述t个第一承诺和所述t个第一零知识证明,验证所述t个第一承诺的正确性;若所述t个第一承诺均通过验证,则根据所述t个第一承诺计算解密密钥,并根据所述解密密钥对所述第一密文进行解密;
其中,n、t均为正整数;n大于或等于t。
15.根据权利要求14所述的数据保护系统,其特征在于,所述第一计算装置,用于对所述总公钥进行验证,包括:
所述第一计算装置,用于从其他n-1个第一计算装置中每一第一计算装置接收一个第二零知识证明;根据n-1个第二零知识证明对所述总公钥进行验证;若所述n-1个第二零知识证明均验证通过的情况下,确定所述总公钥正确;
其中,第一计算装置的第二零知识证明用于证明所述第一计算装置的第一私钥分片的正确性。
16.根据权利要求13-15中任一项所述的数据保护系统,其特征在于,第一计算装置的第一承诺是所述第一计算装置的第一私钥分片和第一映射点的乘积;所述第一映射点包括在所述加密结果中;所述第一映射点是所述第二计算装置在加密过程中所选随机数在椭圆曲线上的映射。
17.根据权利要求13所述的数据保护系统,其特征在于,所述第一计算装置,用于获取总公钥,包括:
所述第一计算装置,用于获取n个第二承诺,所述n个第二承诺包括自身的第二承诺以及其他n-1个第一计算装置的n-1个第二承诺;
针对所述n个第二承诺中每t个第二承诺,执行如下操作:
根据所述t个第二承诺和拉格朗日系数,计算总公钥;
其中,第一计算装置的第二承诺是所述第一计算装置的第一私钥分片和椭圆曲线基点的乘积。
18.根据权利要求17所述的数据保护系统,其特征在于,所述第一计算装置,用于对所述总公钥进行验证,包括:
若任t个第二承诺计算得到的总公钥均相同,则所述第一计算装置确定所述总公钥正确。
19.根据权利要求17或18所述的数据保护系统,其特征在于,第一计算装置的第一承诺是所述第一计算装置的第二私钥分片和第一映射点的乘积;所述第一映射点包括在所述加密结果中;所述第一映射点是所述第二计算装置在加密过程中所选随机数在椭圆曲线上的映射;所述第一计算装置的第二私钥分片是所述第一计算装置的拉格朗日系数和所述第一计算装置的第一私钥分片的乘积。
20.根据权利要求13-19中任一项所述的数据保护系统,其特征在于,所述第三计算装置,用于根据所述t个第一承诺计算解密密钥,包括:
用于根据所述t个第一承诺计算共享密钥;所述共享密钥是第二映射点的横坐标;所述第二映射点是所述t个第一承诺的和;
根据所述共享密钥以及密钥生成函数计算所述解密密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011187205.7A CN114448610A (zh) | 2020-10-30 | 2020-10-30 | 数据保护方法、终端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011187205.7A CN114448610A (zh) | 2020-10-30 | 2020-10-30 | 数据保护方法、终端及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114448610A true CN114448610A (zh) | 2022-05-06 |
Family
ID=81358319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011187205.7A Pending CN114448610A (zh) | 2020-10-30 | 2020-10-30 | 数据保护方法、终端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114448610A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100191975A1 (en) * | 2009-01-29 | 2010-07-29 | Microsoft Corporation | Privacy-preserving communication |
CN108650080A (zh) * | 2018-03-27 | 2018-10-12 | 北京迪曼森科技有限公司 | 一种密钥管理方法和系统 |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
CN110535641A (zh) * | 2019-08-27 | 2019-12-03 | 中国神华能源股份有限公司神朔铁路分公司 | 密钥管理方法和装置、计算机设备和存储介质 |
CN110830242A (zh) * | 2019-10-16 | 2020-02-21 | 聚好看科技股份有限公司 | 一种密钥生成、管理方法和服务器 |
CN111600703A (zh) * | 2020-05-12 | 2020-08-28 | 北京海益同展信息科技有限公司 | 基于sm2的签名方法、系统、电子设备及存储介质 |
CN111723387A (zh) * | 2020-06-22 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的数据解密的方法及装置 |
CN111756722A (zh) * | 2020-06-18 | 2020-10-09 | 福建师范大学 | 一种无密钥托管的多授权属性基加密方法和系统 |
-
2020
- 2020-10-30 CN CN202011187205.7A patent/CN114448610A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100191975A1 (en) * | 2009-01-29 | 2010-07-29 | Microsoft Corporation | Privacy-preserving communication |
CN108650080A (zh) * | 2018-03-27 | 2018-10-12 | 北京迪曼森科技有限公司 | 一种密钥管理方法和系统 |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
CN110535641A (zh) * | 2019-08-27 | 2019-12-03 | 中国神华能源股份有限公司神朔铁路分公司 | 密钥管理方法和装置、计算机设备和存储介质 |
CN110830242A (zh) * | 2019-10-16 | 2020-02-21 | 聚好看科技股份有限公司 | 一种密钥生成、管理方法和服务器 |
CN111600703A (zh) * | 2020-05-12 | 2020-08-28 | 北京海益同展信息科技有限公司 | 基于sm2的签名方法、系统、电子设备及存储介质 |
CN111756722A (zh) * | 2020-06-18 | 2020-10-09 | 福建师范大学 | 一种无密钥托管的多授权属性基加密方法和系统 |
CN111723387A (zh) * | 2020-06-22 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的数据解密的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107948189B (zh) | 非对称密码身份鉴别方法、装置、计算机设备及存储介质 | |
US11108565B2 (en) | Secure communications providing forward secrecy | |
US20230155821A1 (en) | Secure shared key establishment for peer to peer communications | |
CN109714168B (zh) | 可信远程证明方法、装置和系统 | |
US9065637B2 (en) | System and method for securing private keys issued from distributed private key generator (D-PKG) nodes | |
CN112751665A (zh) | 一种安全多方计算方法、设备、系统及存储介质 | |
EP2106090A1 (en) | A method, system and network device for mutual authentication | |
CN113987554B (zh) | 获取数据授权的方法、装置及系统 | |
US20120294445A1 (en) | Credential storage structure with encrypted password | |
CN106941404B (zh) | 密钥保护方法及装置 | |
WO2019110018A1 (zh) | 通信网络系统的消息验证方法、通信方法和通信网络系统 | |
US20200344075A1 (en) | Secure provisioning of keys | |
WO2019093478A1 (ja) | 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム | |
CN111654481B (zh) | 一种身份认证方法、装置和存储介质 | |
Shakiba | Security analysis for chaotic maps-based mutual authentication and key agreement using smart cards for wireless networks | |
Ashraf et al. | Lightweight and authentic symmetric session key cryptosystem for client–server mobile communication | |
WO2022141014A1 (zh) | 一种基于多用户数据的安全求均值方法 | |
CN114978542A (zh) | 面向全生命周期的物联网设备身份认证方法、系统及存储介质 | |
CN114448610A (zh) | 数据保护方法、终端及系统 | |
CN111865568B (zh) | 面向数据传输的存证方法、传输方法及系统 | |
WO2023077280A1 (en) | Certificate-less authentication and secure communication | |
CN111865596B (zh) | 面向数据传输的验证方法及系统 | |
CN117714074B (zh) | 基于tlcp的身份认证系统、方法、存储介质及电子设备 | |
US20240340186A1 (en) | Authentication using group signatures of user devices | |
CN114900292B (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 |