CN113794570B - 一种基于零知识证明的私钥管理方法及系统 - Google Patents
一种基于零知识证明的私钥管理方法及系统 Download PDFInfo
- Publication number
- CN113794570B CN113794570B CN202111075340.7A CN202111075340A CN113794570B CN 113794570 B CN113794570 B CN 113794570B CN 202111075340 A CN202111075340 A CN 202111075340A CN 113794570 B CN113794570 B CN 113794570B
- Authority
- CN
- China
- Prior art keywords
- node
- private key
- elliptic curve
- hosting
- common node
- 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
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the 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/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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于零知识证明的私钥管理方法及系统,其中方法包括构造声明和证明身份;构造声明时,托管节点生成椭圆曲线参数并发送给普通节点;普通节点在依据椭圆曲线参数确定的椭圆曲线上选取初始点,进行点乘操作得到第一操作点,将声明及私钥密文发送给托管节点,声明包括初始点、第一操作点及普通节点的公钥;托管节点存储椭圆曲线参数、声明及私钥密文;证明身份时,托管节点将普通节点的公钥对应的初始点和椭圆曲线参数发送给普通节点;普通节点进行点乘操作得到第二操作点并发送给托管节点;当第二操作点与第一操作点相同时将私钥密文发送给普通节点。本发明通过椭圆曲线构造声明,用户不用提供身份信息时能从托管节点获取私钥密文。
Description
技术领域
本发明涉及区块链技术领域,尤其是涉及一种基于零知识证明的私钥管理方法及系统。
背景技术
区块链技术的兴起为可信互联网的实现提供了一种可行思路。在业界实践中,密码学及相关外延技术是确保区块链可信性的核心部件,其为节点身份及其行为的可靠性提供基础支撑。其中,基于非对称密码技术的公私钥对是节点身份的唯一标识,其在提供了极强的不可伪造性的同时,也由于其过于冗长而带来几乎无法让用户记住的问题。私钥一旦丢失,那么后续的任何基于该私钥的交易都无法进行。一种自然而然的思路是,将其存放于托管中心。但这样又带来两个问题,一是私钥会泄露给托管中心;二是丢失私钥的用户很难证明其是托管中心中的私钥的原持有者。
现有技术中,用户私钥丢失后就没有其他可信途径证明其对所托管的数据的所有权,要么人人可访问,这时增加私钥泄露的风险,要么人人都不能访问,此时就失去了托管的意义。
发明内容
本发明的目的是提供一种基于零知识证明的私钥管理方法及系统,以解决现有技术的私钥托管中因需提供用户身份信息可能泄密用户隐私的技术问题。
本发明的目的,可以通过如下技术方案实现:
一种基于零知识证明的私钥管理方法,包括构造声明和证明身份两个环节;
其中,构造声明包括以下步骤:
托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点;其中,所述托管节点为区块链中给普通节点提供托管服务的节点,所述普通节点为将其私钥密文托管给所述托管节点的节点;
所述普通节点在依据所述椭圆曲线参数确定的椭圆曲线上选取一个初始点,根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第一操作点;
所述普通节点构建声明并对私钥加密,将所述声明及其私钥密文发送给所述托管节点;其中,所述声明包括所述初始点、所述第一操作点及所述普通节点的公钥;
所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文;
证明身份包括以下步骤:
所述托管节点根据普通节点的公钥查找对应的初始点,将所述初始点和所述椭圆曲线参数发送给所述普通节点;
所述普通节点根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第二操作点,并将所述第二操作点发送给所述托管节点;
所述托管节点判断所述第二操作点与所述第一操作点是否相同,若相同,则所述托管节点将所述普通节点的私钥密文发送给所述普通节点,否则,将满足预设条件的所述普通节点加入黑名单。
可选地,所述托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点包括:
所述托管节点随机生成椭圆曲线参数,利用第一会话密钥对所述椭圆曲线参数进行加密,并将加密后的所述椭圆曲线参数发送给所述普通节点。
可选地,利用第一会话密钥对所述椭圆曲线参数进行加密之前还包括:
所述普通节点生成第一会话密钥并利用所述托管节点的公钥对所述第一会话密钥进行加密,将所述加密后的第一会话密钥发送给所述托管节点,所述托管节点利用其私钥解密后得到所述第一会话密钥。
可选地,所述普通节点将所述声明及其私钥密文发送给所述托管节点包括:
所述普通节点利用对称密钥对私钥进行加密得到私钥密文,利用所述托管节点的公钥对所述声明和所述私钥密文进行加密得到第一密文,将所述第一密文发送给所述托管节点。
可选地,所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文包括:
所述托管节点利用其私钥对所述第一密文进行解密,得到所述声明及所述普通节点的私钥密文,存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文。
可选地,所述托管节点根据普通节点的公钥查找对应的初始点之前还包括:
所述普通节点生成第二会话密钥,并利用所述托管节点的公钥对所述第二会话密钥及普通节点的公钥进行加密得到第二密文;
所述托管节点利用其私钥对所述第二密文进行解密,得到所述第二会话密钥和所述普通节点的公钥。
可选地,将所述初始点和所述椭圆曲线参数发送给所述普通节点包括:
所述托管节点利用所述第二会话密钥对所述初始点和所述椭圆曲线参数进行加密得到第三密文,将所述第三密文发送给所述普通节点。
本发明还提供了一种基于零知识证明的私钥管理系统,包括托管节点和若干个普通节点,
托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点;其中,所述托管节点为区块链中给普通节点提供托管服务的节点,所述普通节点为将其私钥密文托管给所述托管节点的节点;
所述普通节点在依据所述椭圆曲线参数确定的椭圆曲线上选取一个初始点,根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第一操作点;
所述普通节点构建声明并对私钥加密,将所述声明及其私钥密文发送给所述托管节点;其中,所述声明包括所述初始点、所述第一操作点及所述普通节点的公钥;
所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文;
所述托管节点根据普通节点的公钥查找对应的初始点,将所述初始点和所述椭圆曲线参数发送给所述普通节点;
所述普通节点根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第二操作点,并将所述第二操作点发送给所述托管节点;
所述托管节点判断所述第二操作点与所述第一操作点是否相同,若相同,则所述托管节点将所述普通节点的私钥密文发送给所述普通节点,否则,将满足预设条件的所述普通节点加入黑名单。
可选地,所述托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点包括:
所述托管节点随机生成椭圆曲线参数,利用第一会话密钥对所述椭圆曲线参数进行加密,并将加密后的所述椭圆曲线参数发送给所述普通节点。
可选地,利用第一会话密钥对所述椭圆曲线参数进行加密之前还包括:
所述普通节点生成第一会话密钥并利用所述托管节点的公钥对所述第一会话密钥进行加密,将所述加密后的第一会话密钥发送给所述托管节点,所述托管节点利用其私钥解密后得到所述第一会话密钥。
本发明提供了一种基于零知识证明的私钥管理方法及系统,其中方法包括构造声明和证明身份两个环节;其中,构造声明包括以下步骤:托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点;其中,所述托管节点为区块链中给普通节点提供托管服务的节点,所述普通节点为将其私钥密文托管给所述托管节点的节点;所述普通节点在依据所述椭圆曲线参数确定的椭圆曲线上选取一个初始点,根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第一操作点;所述普通节点将所述声明及其私钥密文发送给所述托管节点;其中,所述声明包括所述初始点、所述第一操作点及所述普通节点的公钥;所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文;证明身份包括以下步骤:所述托管节点根据普通节点的公钥查找对应的初始点,将所述初始点和所述椭圆曲线参数发送给所述普通节点;所述普通节点根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第二操作点,并将所述第二操作点发送给所述托管节点;所述托管节点判断所述第二操作点与所述第一操作点是否相同,若相同,则所述托管节点将所述普通节点的私钥密文发送给所述普通节点,否则,将满足预设条件的所述普通节点加入黑名单。
本发明提供的基于零知识证明的私钥管理方法及系统,带来的有益效果是:
在构造声明时,普通节点在托管节点确定的椭圆曲线上选择初始点,根据初始点进行点乘操作得到第一操作点,将初始点、第一操作点和公钥作为声明发送给托管节点,托管节点存储声明、普通节点的私钥密文和椭圆曲线参数,由于普通节点是将其私钥密文存储在托管节点,确保托管节点也无法非法窃取普通节点的私钥;
在证明身份时,普通节点通过点乘操作得到第二操作点,托管节点判断第二操作点和第一操作点是否相同,相同时说明该普通节点通过了身份证明,托管节点将私钥密文发送给普通节点,这样普通节点在不需要提供身份信息的情况下,能从托管节点处获取其托管的私钥。当非法节点的身份证明次数超过预设次数后,托管节点将其列入黑名单,确保即使是具备强大计算能力的非法用户也无法从托管节点处获取私钥。
附图说明
图1为本发明的私钥管理方法中构造声明流程示意图;
图2为本发明的私钥管理方法中证明身份流程示意图。
具体实施方式
本发明实施例提供了一种基于零知识证明的私钥管理方法及系统,以解决现有技术的私钥托管中因需提供用户身份信息可能泄密用户隐私的技术问题。
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
目前业界在私钥保管方面已有一些实现方法,但其无外乎是如下三类策略:
(1)将私钥明文保管在本地服务器上;
(2)将私钥密文或其等价形式保管在本地服务器或私有设备上;
(3)将私钥密文或其等价形式上传至托管中心服务器上。
但是,第一类方法的私钥容易泄露给无关第三方。第一和第二类方法的私钥明文或密文均容易丢失。第三类方法在原用户丢失私钥的情况下,用户无法向托管服务器证明其对相应私钥密文的所有权,特别是在区块链这类去中心化网络的场景下,那么此时只能向所有用户开放该密文的访问权,此时,若密钥加密强度不够,则容易被恶意用户破解,若加密强度过大,则又需要记住一个很长的加密该私钥的密钥,从而抵消了将私钥传至托管服务器的好处。
请参阅图1和图2,本发明一种基于零知识证明的私钥管理方法的实施例,包括构造声明和证明身份两个环节;
请参阅图1,其中,构造声明包括以下步骤:
S1:托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点;其中,所述托管节点为区块链中给普通节点提供托管服务的节点,所述普通节点为将其私钥密文托管给所述托管节点的节点;
S2:所述普通节点在依据所述椭圆曲线参数确定的椭圆曲线上选取一个初始点,根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第一操作点;
S3:所述普通节点构建声明并对私钥加密,将所述声明及其私钥密文发送给所述托管节点;其中,所述声明包括所述初始点、所述第一操作点及所述普通节点的公钥;
S4:所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文。
请参阅图2,证明身份包括以下步骤:
S5:所述托管节点根据普通节点的公钥查找对应的初始点,将所述初始点和所述椭圆曲线参数发送给所述普通节点;
S6:所述普通节点根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第二操作点,并将所述第二操作点发送给所述托管节点;
S7:所述托管节点判断所述第二操作点与所述第一操作点是否相同,若相同,则所述托管节点将所述普通节点的私钥密文发送给所述普通节点,否则,将满足预设条件的所述普通节点加入黑名单。
本发明实施例主要包括构造声明与证明身份两大步骤,其中,构造声明的具体过程为:
将区块链中的节点分为托管节点和普通节点,托管节点为区块链中给普通节点提供托管服务的节点(通常是区块链网络中,政府机构的服务器节点或大型云服务供应商的服务器节点),普通节点就是有让其他用户帮忙保管自己的私钥的用户,本实施例中普通节点将其私钥密文托管给托管节点进行保管。
普通节点基于任一非对称加密算法(比如RSA算法)生成一对公私钥对,私钥记作priKey,公钥记作pubKey;同时,普通节点基于任一对称加密算法(比如AES算法)生成第一会话密钥sessKey1。
普通节点使用托管节点的公钥srvPubKey对第一会话密钥sessKey1及生成第一会话密钥的对称加密算法名称进行加密得到第一密文secret1,并将第一密文secret1发给托管节点。
托管节点使用其私钥srvPriKey对第一密文secret1进行解密,得到第一会话密钥sessKey1及生成第一会话密钥的对称加密算法名称。托管节点随机生成椭圆曲线的3个核心参数:a、b和r,利用第一会话密钥sessKey1对这3个核心参数进行加密得到第二密文secret2。
普通节点使用托管节点的公钥srvPubKey对第二密文secret2进行解密,得到椭圆曲线的3个参数即a、b和r,根据椭圆曲线的参数确定对应的椭圆曲线,然后利用标准化的椭圆曲线求解程序在该椭圆曲线上随机选取一个初始点即G点,并选取一个用户能方便记忆的用户设定的循环数n1,在该椭圆曲线上进行“点乘”操作P1=n1*G,得到第一操作点P1点。
值得说明的是,本实施例中的椭圆曲线指的是“外尔斯特拉斯型”曲线的离散形式,即:
y2≡x3+ax+b(mod r)。a、b、r就是该椭圆曲线方程的参数,根据这三个参数能够确定对应的椭圆曲线。也就是说,a、b、r这三个参数确定了之后,椭圆曲线上的所有点都能确定了,初始点G就是椭圆曲线上的其中一个点。可以通过解方程的方式获得椭圆曲线上的点,实际开发过程中,使用标准化的椭圆曲线求解程序可得到该椭圆曲线上的点。
普通节点基于任一对称加密算法生成一个对称密钥k,利用对称密钥k将其私钥priKey进行加密,得到私钥密文encryptedPriKey。值得说明的是,若普通节点将其私钥直接交给托管节点保管,会将自己的私密信息完全暴露给托管节点,因此,本实施例中普通节点首先利用对称密钥k对其私钥进行加密,然后再将私钥密文交给托管节点进行保管。
普通节点将(普通节点的公钥,初始点,第一操作点)作为一个声明,即将(pubKey,G,P1)作为声明d,用托管节点的公钥srvPubKey对声明d和私钥密文encryptedPriKey进行加密生成第三密文secret3,并将第三密文secret3发给托管节点。
值得说明的是,在网络通信过程中,为了防止网络上的第三方节点获取普通节点发送的实际信息(普通节点的私钥虽然被加密过了,而普通节点的确想发送加密过的私钥给托管节点),进行的一些基本安全措施,即不让第三方知道普通节点究竟想发送什么信息给托管节点,否则,其他窃听者就知道了和托管节点一样的内容。
托管节点利用其私钥srvPriKey对第三密文secret3进行解密得到声明d和私钥密文encryptedPriKey,并将声明d、私钥密文encryptedPriKey以及椭圆曲线参a、b、r进行存储。
证明身份的过程为:
普通节点基于任一对称加密算法生成第二会话密钥sessKey2,然后使用托管节点的公钥srvPubKey对其公钥pubKey和第二会话密钥sessKey2进行加密生成第四密文secret4,并将第四密文secret4发给托管节点。
托管节点使用其私钥srvPriKey对第四密文secret4进行解密,得到公钥pubKey和第二会话密钥sessKey2,根据普通节点的公钥pubKey从声明d中查找对应的初始点G,利用第二会话密钥sessKey2加密初始点G及对应的曲线参数a、b、r得到第五密文secret5,并将第五密文secret5发给普通节点。
普通节点使用第二会话密钥sessKey2对第五密文secret5进行解密,获得参数a、b、r、G,并通过用户设定的循环数n2,在该椭圆曲线上进行点乘操作得到第二操作点P2=n2*G。
普通节点使用托管节点的公钥srvPubKey加密第二操作点P2形成第六密文secret6,并将secret6发送给托管节点。
托管节点使用其私钥srvPriKey解密secret6得到第二操作点P2,并将第二操作点P2与系统内存储的第一操作点P1进行比对,若一致,则读取普通节点的私钥密文encryptedPriKey,并使用第二会话密钥sessKey2将encryptedPriKey加密后形成第七密文secret7,将secret7发送给普通节点。
普通节点使用第二会话密钥sessKey2解密secret7得到私钥密文encryptedPriKey,并使用对称密钥k解密encryptedPriKey得到私钥priKey。
若第二操作点P2与系统内存储的第一操作点P1不同,将满足预设条件的普通节点列入托管节点的黑名单。优选的实施方式,托管节点将该普通节点进行身份证明出错的次数加1,若某普通节点进行身份证明的出错次数超过了预设的次数,托管节点将该普通节点列入其黑名单,拒绝该普通节点再次进行身份证明。
本发明实施例提供的基于零知识证明的私钥管理方法,“证明人”(普通节点)在不需要向“验证人”(托管节点)提交某个信息X的前提下,提供一个与X无直接关系的证据Y,让“验证人”确信“证明人”的确知道X,而Y就称作“声明”(statement)。
值得说明的是,本实施例中构造的声明,除了原始的证明人,其他非法证明人无法轻易猜测出来。基于椭圆曲线的“点乘”算法,具备除非知道了循环数n的具体数值,否则就根本无法猜测出最终的结果P的性质。(起始点通常是非常大的整数,循环数n也是。)
本发明实施例提供的基于零知识证明的私钥管理方法,在构造声明时,普通节点在托管节点确定的椭圆曲线上选择初始点,根据初始点进行点乘操作得到第一操作点,将初始点、第一操作点和公钥作为声明发送给托管节点,托管节点存储声明、普通节点的私钥密文和椭圆曲线参数,由于普通节点是将其私钥密文存储在托管节点,确保托管节点也无法非法窃取普通节点的私钥信息;
在证明身份时,普通节点通过点乘操作得到第二操作点,托管节点判断第二操作点和第一操作点是否相同,相同时说明该普通节点通过了身份证明,托管节点将私钥密文发送给普通节点,这样普通节点在不需要提供身份信息的情况下,能从托管节点处获取其托管的私钥。当非法节点的身份证明次数超过预设次数后,托管节点将其列入黑名单,确保即使是具备强大计算能力的非法用户也无法从托管节点处获取私钥。
本实施例中,通过椭圆曲线的运算,获得一个易验证、难逆推的声明,通过比对该声明即可在不用提供真实身份的情况下,证明对该信息的所有权,从而准确地控制私有信息的访问,防止私钥丢失的同时能够保护隐私。在不用泄露或提供用户身份的情况下,托管中心能判断该用户是否是相应私钥密文的所有者。同时,用户只需记住较短的整数,即可证明对私钥的所有权及解密该私钥密文。
本实施例通过椭圆曲线构造“声明”的策略,确保只有声明的构造者清楚其证明方法,杜绝非法用户通过“有限计算”伪造证据的可能性。这里的有限计算,指通过计算机在有限的时间内算出结果,比如1年内,非法用户除了遍历全部椭圆曲线的点之外,无其他可行方法,而所有点的数量非常巨大。
本发明还提供了一种基于零知识证明的私钥管理系统的实施例,包括托管节点和若干个普通节点,
托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点;其中,所述托管节点为区块链中给普通节点提供托管服务的节点,所述普通节点为将其私钥密文托管给所述托管节点的节点;
所述普通节点在依据所述椭圆曲线参数确定的椭圆曲线上选取一个初始点,根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第一操作点;
所述普通节点构建声明并对私钥加密,将所述声明及其私钥密文发送给所述托管节点;其中,所述声明包括所述初始点、所述第一操作点及所述普通节点的公钥;
所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文;
所述托管节点根据普通节点的公钥查找对应的初始点,将所述初始点和所述椭圆曲线参数发送给所述普通节点;
所述普通节点根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第二操作点,并将所述第二操作点发送给所述托管节点;
所述托管节点判断所述第二操作点与所述第一操作点是否相同,若相同,则所述托管节点将所述普通节点的私钥密文发送给所述普通节点,否则,将证明身份次数超过预设次数的所述普通节点加入黑名单。
优选的,所述托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点包括:所述托管节点随机生成椭圆曲线参数,利用第一会话密钥对所述椭圆曲线参数进行加密,并将加密后的所述椭圆曲线参数发送给所述普通节点。
优选的,利用第一会话密钥对所述椭圆曲线参数进行加密之前还包括:
所述普通节点生成第一会话密钥并利用所述托管节点的公钥对所述第一会话密钥进行加密,将所述加密后的第一会话密钥发送给所述托管节点,所述托管节点利用其私钥解密后得到所述第一会话密钥。
本发明实施例提供的基于零知识证明的私钥管理系统,在构造声明时,普通节点在托管节点确定的椭圆曲线上选择初始点,根据初始点进行点乘操作得到第一操作点,将初始点、第一操作点和公钥作为声明发送给托管节点,托管节点存储声明、普通节点的私钥密文和椭圆曲线参数,由于普通节点是将其私钥密文存储在托管节点,确保托管节点也无法非法窃取普通节点的私钥;在证明身份时,普通节点通过点乘操作得到第二操作点,托管节点判断第二操作点和第一操作点是否相同,相同时说明该普通节点通过了身份证明,托管节点将私钥密文发送给普通节点,这样普通节点在不需要提供身份信息的情况下,能从托管节点处获取其托管的私钥。当非法节点的身份证明次数超过预设次数后,托管节点将其列入黑名单,确保即使是具备强大计算能力的非法用户也无法从托管节点处获取私钥。
本实施例提供的基于零知识证明的私钥管理系统,通过椭圆曲线的运算,获得一个易验证、难逆推的声明,通过比对该声明即可在不用提供真实身份的情况下,证明对该信息的所有权,从而准确地控制私有信息的访问,防止私钥丢失的同时能够保护隐私。在不用泄露或提供用户身份的情况下,托管中心能判断该用户是否是相应私钥密文的所有者。同时,用户只需记住较短的整数,即可证明对私钥的所有权及解密该私钥密文。
本实施例通过椭圆曲线构造“声明”的策略,确保只有声明的构造者清楚其证明方法,杜绝非法用户通过“有限计算”伪造证据的可能性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于零知识证明的私钥管理方法,其特征在于,包括构造声明和证明身份两个环节;
其中,构造声明包括以下步骤:
托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点;其中,所述托管节点为区块链中给普通节点提供托管服务的节点,所述普通节点为将其私钥密文托管给所述托管节点的节点;
所述普通节点在依据所述椭圆曲线参数确定的椭圆曲线上选取一个初始点,根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第一操作点;
所述普通节点构建声明并对私钥加密,将所述声明及其私钥密文发送给所述托管节点;其中,所述声明包括所述初始点、所述第一操作点及所述普通节点的公钥;
所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文;
证明身份包括以下步骤:
所述托管节点根据普通节点的公钥查找对应的初始点,将所述初始点和所述椭圆曲线参数发送给所述普通节点;
所述普通节点根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第二操作点,并将所述第二操作点发送给所述托管节点;
所述托管节点判断所述第二操作点与所述第一操作点是否相同,若相同,则所述托管节点将所述普通节点的私钥密文发送给所述普通节点,否则,将满足预设条件的所述普通节点加入黑名单。
2.根据权利要求1所述的基于零知识证明的私钥管理方法,其特征在于,所述托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点包括:
所述托管节点随机生成椭圆曲线参数,利用第一会话密钥对所述椭圆曲线参数进行加密,并将加密后的所述椭圆曲线参数发送给所述普通节点。
3.根据权利要求2所述的基于零知识证明的私钥管理方法,其特征在于,利用第一会话密钥对所述椭圆曲线参数进行加密之前还包括:
所述普通节点生成第一会话密钥并利用所述托管节点的公钥对所述第一会话密钥进行加密,将所述加密后的第一会话密钥发送给所述托管节点,所述托管节点利用其私钥解密后得到所述第一会话密钥。
4.根据权利要求1所述的基于零知识证明的私钥管理方法,其特征在于,所述普通节点将所述声明及其私钥密文发送给所述托管节点包括:
所述普通节点利用对称密钥对私钥进行加密得到私钥密文,利用所述托管节点的公钥对所述声明和所述私钥密文进行加密得到第一密文,将所述第一密文发送给所述托管节点。
5.根据权利要求4所述的基于零知识证明的私钥管理方法,其特征在于,所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文包括:
所述托管节点利用其私钥对所述第一密文进行解密,得到所述声明及所述普通节点的私钥密文,存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文。
6.根据权利要求1所述的基于零知识证明的私钥管理方法,其特征在于,所述托管节点根据普通节点的公钥查找对应的初始点之前还包括:
所述普通节点生成第二会话密钥,并利用所述托管节点的公钥对所述第二会话密钥及普通节点的公钥进行加密得到第二密文;
所述托管节点利用其私钥对所述第二密文进行解密,得到所述第二会话密钥和所述普通节点的公钥。
7.根据权利要求6所述的基于零知识证明的私钥管理方法,其特征在于,将所述初始点和所述椭圆曲线参数发送给所述普通节点包括:
所述托管节点利用所述第二会话密钥对所述初始点和所述椭圆曲线参数进行加密得到第三密文,将所述第三密文发送给所述普通节点。
8.一种基于零知识证明的私钥管理系统,其特征在于,包括托管节点和若干个普通节点,
托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点;其中,所述托管节点为区块链中给普通节点提供托管服务的节点,所述普通节点为将其私钥密文托管给所述托管节点的节点;
所述普通节点在依据所述椭圆曲线参数确定的椭圆曲线上选取一个初始点,根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第一操作点;
所述普通节点构建声明并对私钥加密,将所述声明及其私钥密文发送给所述托管节点;其中,所述声明包括所述初始点、所述第一操作点及所述普通节点的公钥;
所述托管节点存储所述椭圆曲线参数、所述声明及所述普通节点的私钥密文;
所述托管节点根据普通节点的公钥查找对应的初始点,将所述初始点和所述椭圆曲线参数发送给所述普通节点;
所述普通节点根据所述初始点和用户设定的循环数在所述椭圆曲线上进行点乘操作得到第二操作点,并将所述第二操作点发送给所述托管节点;
所述托管节点判断所述第二操作点与所述第一操作点是否相同,若相同,则所述托管节点将所述普通节点的私钥密文发送给所述普通节点,否则,将满足预设条件的所述普通节点加入黑名单。
9.根据权利要求8所述的基于零知识证明的私钥管理系统,其特征在于,所述托管节点生成椭圆曲线参数并将所述椭圆曲线参数发送给普通节点包括:
所述托管节点随机生成椭圆曲线参数,利用第一会话密钥对所述椭圆曲线参数进行加密,并将加密后的所述椭圆曲线参数发送给所述普通节点。
10.根据权利要求9所述的基于零知识证明的私钥管理系统,其特征在于,利用第一会话密钥对所述椭圆曲线参数进行加密之前还包括:
所述普通节点生成第一会话密钥并利用所述托管节点的公钥对所述第一会话密钥进行加密,将所述加密后的第一会话密钥发送给所述托管节点,所述托管节点利用其私钥解密后得到所述第一会话密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111075340.7A CN113794570B (zh) | 2021-09-14 | 2021-09-14 | 一种基于零知识证明的私钥管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111075340.7A CN113794570B (zh) | 2021-09-14 | 2021-09-14 | 一种基于零知识证明的私钥管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113794570A CN113794570A (zh) | 2021-12-14 |
CN113794570B true CN113794570B (zh) | 2023-06-06 |
Family
ID=78880216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111075340.7A Active CN113794570B (zh) | 2021-09-14 | 2021-09-14 | 一种基于零知识证明的私钥管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113794570B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102186170A (zh) * | 2010-11-24 | 2011-09-14 | 北京天融信科技有限公司 | 一种无线传感器网络的密钥管理方法及装置 |
CN103490881A (zh) * | 2013-09-06 | 2014-01-01 | 广东数字证书认证中心有限公司 | 认证服务系统、用户认证方法、认证信息处理方法及系统 |
CN109691013A (zh) * | 2018-08-16 | 2019-04-26 | 区链通网络有限公司 | 区块链节点间通信方法、装置及存储介质、区块链系统 |
CN111162912A (zh) * | 2019-12-30 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11475444B2 (en) * | 2019-04-25 | 2022-10-18 | Consensys Software Inc. | Systems and methods for anonymous cryptocurrency transactions |
-
2021
- 2021-09-14 CN CN202111075340.7A patent/CN113794570B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102186170A (zh) * | 2010-11-24 | 2011-09-14 | 北京天融信科技有限公司 | 一种无线传感器网络的密钥管理方法及装置 |
CN103490881A (zh) * | 2013-09-06 | 2014-01-01 | 广东数字证书认证中心有限公司 | 认证服务系统、用户认证方法、认证信息处理方法及系统 |
CN109691013A (zh) * | 2018-08-16 | 2019-04-26 | 区链通网络有限公司 | 区块链节点间通信方法、装置及存储介质、区块链系统 |
CN111162912A (zh) * | 2019-12-30 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113794570A (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5562687B2 (ja) | 第1のユーザによって第2のユーザに送信される通信の安全化 | |
US10027654B2 (en) | Method for authenticating a client device to a server using a secret element | |
Wu et al. | Robust smart‐cards‐based user authentication scheme with user anonymity | |
WO2017097041A1 (zh) | 数据传输方法和装置 | |
CA2747891C (en) | Method for generating an encryption/decryption key | |
Odelu et al. | An efficient ECC-based privacy-preserving client authentication protocol with key agreement using smart card | |
JP2001313634A (ja) | 通信方法 | |
US8705740B2 (en) | Elliptic curve-based message authentication code system and method | |
KR20210139344A (ko) | 데이터 기반 활동을 수행하는 방법 및 장치 | |
Chen et al. | Security analysis and improvement of user authentication framework for cloud computing | |
Odelu et al. | A secure anonymity preserving authentication scheme for roaming service in global mobility networks | |
Tsai et al. | An ECC‐based blind signcryption scheme for multiple digital documents | |
Olumide et al. | A hybrid encryption model for secure cloud computing | |
Yin et al. | Two‐Round Password‐Based Authenticated Key Exchange from Lattices | |
Wong | How to backdoor diffie-hellman | |
Daddala et al. | Design and implementation of a customized encryption algorithm for authentication and secure communication between devices | |
Farash | Cryptanalysis and improvement of ‘an improved authentication with key agreement scheme on elliptic curve cryptosystem for global mobility networks’ | |
Truong et al. | Improved Chebyshev Polynomials‐Based Authentication Scheme in Client‐Server Environment | |
Farash et al. | A provably secure and efficient two‐party password‐based explicit authenticated key exchange protocol resistance to password guessing attacks | |
Li et al. | A simple and robust anonymous two‐factor authenticated key exchange protocol | |
CN113794570B (zh) | 一种基于零知识证明的私钥管理方法及系统 | |
Tan | Privacy‐Preserving Two‐Factor Key Agreement Protocol Based on Chebyshev Polynomials | |
Zhou et al. | An Efficient Chaotic Map‐Based Authentication Scheme with Mutual Anonymity | |
Ashraf et al. | Lightweight and authentic symmetric session key cryptosystem for client–server mobile communication | |
CN109218016B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |