CN110636050B - 基于联盟链且抗量子计算的匿名身份识别方法及系统 - Google Patents
基于联盟链且抗量子计算的匿名身份识别方法及系统 Download PDFInfo
- Publication number
- CN110636050B CN110636050B CN201910798812.8A CN201910798812A CN110636050B CN 110636050 B CN110636050 B CN 110636050B CN 201910798812 A CN201910798812 A CN 201910798812A CN 110636050 B CN110636050 B CN 110636050B
- Authority
- CN
- China
- Prior art keywords
- public key
- user
- key
- transaction
- random number
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- 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
- H04L63/067—Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
-
- 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/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)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及一种基于联盟链且抗量子计算的匿名身份识别方法及系统。所述方法包括:实施在相互通信的联盟链成员之间,所述联盟链成员包括User,其特征在于,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥以及公钥随机数;所述联盟链成员的密钥卡中存储有公钥池,所述公钥池中包括各公钥管理单元,各所述公钥管理单元中存储有各User身份标识,以及与各所述User身份标识相关的公钥随机数。通过User发送的消息中不公开己方的身份识别,公开己方公钥随时数的方式,进一步提高了各方交互时的安全性。
Description
技术领域
本申请涉及联盟链领域,特别是涉及一种基于联盟链且抗量子计算的匿名身份识别方法及系统。
背景技术
区块链是一种全新的分布式基础架构与计算范式,利用有序的链式数据结构存储数据,利用共识算法更新数据,利用密码学技术保障数据安全。在基于区块链的交易中,确保交易的数据安全和客户的隐私是区块链能够进一步发展的必要条件。为此,密码学技术尤其是公钥密钥学在区块链中得到了广泛的应用。而联盟链是区块链的一个分支,所以它本身也是一个分布式的,去中心化的公共数据库,跟其他链的区别就是它是针对特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,其共识过程受到预选节点控制的区块链。
正如大多数人所了解的,量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如RSA加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。
现有技术存在的问题:
1.密钥卡ID可读。若丢失可能造成ID信息泄露。如果ID在多个身份识别装置处被记录,则可以实现ID追踪,某些场景下属于严重的信息泄露。
2.基于ID密码学的私钥生成服务器的私钥被窃取的风险很高,而且由于私钥生成服务器掌握整个私钥,可以对其他用户的数字签名进行伪造,因此对身份识别系统是一个风险。
3.身份识别需要身份识别服务器来认可,身份识别服务器受DOS攻击风险较高。
发明内容
基于此,有必要针对上述技术问题,提供一种基于联盟链且抗量子计算的匿名身份识别方法及系统。
一种基于联盟链且抗量子计算的匿名身份识别方法,所述方法包括:实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥;所述服务端成员的密钥卡中存储有公钥池,所述公钥池中包括各公钥管理单元,各所述公钥管理单元中存储有各联盟链成员的身份标识,以及与各所述联盟链成员的身份标识相关的公钥随机数,所述客户端成员的密钥卡中存储有己方公钥;
所述匿名身份识别方法包括:
其中一客户端成员为User,所述User向联盟链成员提出交易,所述交易用于对所述User的身份进行识别;所述服务端成员响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给用户的过程中,User提出交易为匿名交易,所述匿名交易中携带有公开的己方公钥随机数;
所述服务端成员根据所述公钥随机数获取User的身份标识,以获知User的身份,完成对User的身份识别;
所述联盟链成员根据所述公钥随机数生成新的公钥随机数对世界状态进行更新。
优选的,所述服务端成员包括多个提供相应服务的Endorser,Orderer和Committer,所述匿名身份识别方法具体包括:
User向Endorser提出匿名交易,所述匿名交易的信息中携带有公开的己方公钥随机数;
Endorser收到User提出的匿名交易后,根据所述公钥随机数从公钥池中获取相应的User身份标识,以获知User的身份,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,相应的生成交易通知发送给User,还根据从背书中获取的User公钥随机数生成新的User公钥随机数对世界状态进行更新;
User接收交易通知后相应验证,更新公钥随机数。
优选的,所述User向服务端成员提出交易,服务端成员响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给用户的过程中,各所述服务端成员发送的消息中包括公开的己方身份识别。
优选的,所述User和服务端成员的密钥卡中均储存有系统管理公钥;
各所述Endorser的密钥卡中还存储了管理私钥以及管理公钥;所述管理私钥为:私钥生成服务器的私钥基于ID密码学得到多个与所述私钥相关的分量;
所述User的密钥卡中还存储有管理公钥池,所述管理公钥池中包括各管理公钥单元,各所述管理公钥单元中存储有各Endorser身份标识,以及与Endorser身份标识相关的管理公钥以及私钥参数;
所述User的密钥卡中还存储有服务公钥池,所述服务公钥池中包括各联盟公钥单元,各所述联盟公钥单元用于存储服务端成员的身份标识以及公钥随机数;
所述匿名身份识别方法还包括:
所述User向多个Endorser提出匿名交易;
多个所述Endorser接收到匿名交易后,根据所述公钥随机数生成新的公钥随机数,并根据所述新的公钥随机数以及所述管理私钥计算得到私钥分量,并将所述私钥分量写入交易应答发送至User;
User从交易应答中获取私钥分量,还利用有效的交易应答制作背书并经由Orderer发送给Committer;
Committer收到背书后,相应生成交易通知发送给User,还根据从背书中获取的公钥生成数对世界状态进行更新,完成公钥颁发;
User接收交易通知后根据所述公钥生成数、多个所述私钥分量以及与各私钥分量相关的私钥参数,采用相关公式计算得到私钥,完成私钥颁发。
优选的,各服务端成员根据User公开的公钥随机数从公钥池中获取相应的User身份标识;
根据所述User身份标识以及公钥随机数,采用不同的哈希函数进行哈希运算分别得到新的公钥随机数以及User公钥。
优选的,User向Endorser提出交易,Endorser响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给User的过程中,交互的消息中携带有供验证时使用的签名;
所述签名的生成方式为:
根据交易内容以及哈希函数计算得到的值作为密钥指针随机数;
根据所述密钥指针随机数在公钥池中获取相应的公钥单元,并从所述公钥单元中获取签名公钥随机数;
根据密钥卡中生成的随机数参数、所述签名公钥随机数计算得到签名参数,再根据所述随机参数以及己方私钥生成签名。
优选的,所述Endorser生成的交易应答中,或所述User制作的背书中,或Orderer发送的背书集合中的密文生成方式为:
根据消息接收方的公钥以及所述系统管理公钥计算得到第一加密参数;
根据密钥卡生成的随机数以及生成元计算得到第二加密参数;
根据待加密消息,所述第一加密参数,第二加密参数以及随机数计算得到加密密文。
本发明还提供了一种基于联盟链且抗量子计算的匿名身份识别系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥;所述服务端成员的密钥卡中存储有公钥池,所述公钥池中包括各公钥管理单元,各所述公钥管理单元中存储有各联盟链成员身份标识,以及与各所述联盟链成员身份标识相关的公钥随机数;
所述联盟链成员的客户端成员以及服务端成员均包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于联盟链且抗量子计算的匿名身份识别方法。
上述基于联盟链且抗量子计算的匿名身份识别方法及系统,将基于ID密码学中的身份标识改为了身份标识加上公钥随机数的形式,让身份标识变成了对外不可见的形式,而是让公钥随机数对外公开,而且公钥随机数在每次身份识别成功后都会改变,这样就可以对外传输公钥随机数从而让对方实现拿不到身份标识却可以识别己方用户的目地,隐藏身份标识的方法大大提高了安全性。
附图说明
图1为一个实施例中提供的匿名身份识别系统结构图;
图2为一个实施例中Endorser密钥卡的内部结构图;
图3为一个实施例中Client密钥卡的内部结构图;
图4为一个实施例中其他区块链服务密钥卡的内部结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种基于联盟链且抗量子计算的匿名身份识别方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥;所述服务端成员的密钥卡中存储有公钥池,所述公钥池中包括各公钥管理单元,各所述公钥管理单元中存储有各联盟链成员的身份标识,以及与各所述联盟链成员的身份标识相关的公钥随机数,所述客户端成员的密钥卡中存储有己方公钥。
在本实施例中,其中一客户端成员为User,User向服务端成员提出交易,所述交易用于对所述User的身份进行识别。服务端成员响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给用户的过程中,User提出交易为匿名交易,所述匿名交易中携带有公开的己方公钥随机数。服务端成员根据所述公钥随机数获取User的身份标识,以获知User的身份,完成对User的身份识别。服务端成员根据所述公钥随机数生成新的公钥随机数对世界状态进行更新。
在本实施例中,系统结构如图1所示,所述服务端成员包括多个提供相应服务的Endorser,Orderer和Committer,所述匿名身份识别方法具体包括:
User向Endorser提出匿名交易,所述匿名交易的信息中携带有公开的己方公钥随机数;
Endorser收到User提出的匿名交易后,根据所述公钥随机数从公钥池中获取相应的User身份标识,以获知User的身份,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,相应的生成交易通知发送给User,还根据从背书中获取的User公钥随机数生成新的User公钥随机数对世界状态进行更新;
User接收交易通知后相应验证,更新公钥随机数。
在本实施例中,User向联盟链成员提出交易,联盟链成员响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给用户的过程中,各所述联盟链成员发送的消息中包括公开的己方身份识别。
在本实施例中,如图2-4所示,所述User和服务端成员的密钥卡中均储存有系统管理公钥,各所述Endorser的密钥卡中还存储了管理私钥以及管理公钥;所述管理私钥为:私钥生成服务器的私钥基于ID密码学得到多个与所述私钥相关的分量,所述User的密钥卡中还存储有管理公钥池,所述管理公钥池中包括各管理公钥单元,各所述管理公钥单元中存储有各Endorser身份标识,以及与Endorser身份标识相关的管理公钥以及私钥参数。所述User的密钥卡中还存储有服务公钥池,所述服务公钥池中包括各联盟公钥单元,各所述联盟公钥单元用服务端成员的身份标识以及公钥随机数;
所述匿名身份识别方法还包括:
所述User向多个Endorser提出匿名交易;
多个所述Endorser接收到匿名交易后,根据所述公钥随机数生成新的公钥随机数,并根据所述新的公钥随机数以及所述管理私钥计算得到私钥分量,并将所述私钥分量写入交易应答发送至User;
User从交易应答中获取私钥分量,还利用有效的交易应答制作背书并经由Orderer发送给Committer;
Committer收到背书后,相应生成交易通知发送给User,还根据从背书中获取的公钥生成数对世界状态进行更新,完成公钥颁发;
User接收交易通知后根据所述公钥生成数、多个所述私钥分量以及与各私钥分量相关的私钥参数,采用相关公式计算得到私钥,完成私钥颁发。
在上述方法中,通过利用ID密码学的方式将私钥生成服务器的私钥分成多个私钥分量,并且各私钥分量存储在各Endorser的密钥卡中,当User需要更新公钥和私钥时,通过向联盟链成员中的服务区块成员提出交易,并通过联盟链的方式接受到多个私钥分量,再利用多个私钥分量计算的带新的私钥。
在本实施例中,各服务端成员根据User公开的公钥随机数从公钥池中获取相应的User身份标识,根据所述User身份标识以及公钥随机数,采用不同的哈希函数进行哈希运算分别得到新的公钥随机数以及User公钥。这样,在User向其他联盟链成员提出交易时,交易内容中公开己方公钥随机数而不公开己方的身份标识,使得User在与联盟链其他成员进行交互的过程中,不被他人跟踪,提高安全性。
在本实施例中,基于ID密码学的相关知识:假设G是一个群,从G中取生成元P,再选一个随机数作为私钥生成服务器的私钥s,有私钥生成服务器的系统管理公钥Ppub=sP。
本发明中,私钥生成服务器的私钥是通过秘密共享进行分布式存储的,由其中的n个Endorser组成基于ID密码学的分布式私钥生成服务。下面简单介绍秘密共享的原理和流程。
从素数阶q的有限域GF(q)中随机选取n个不同的非零元素x1,x2,…,xn,分配给参与者Pi(i=1,2,…,n)。把服务器的私钥s作为共享的秘密信息,从GF(q)中选取t-1个元素a1,a2,…,a(t-1),构造多项式则有si=f(xi)(1≤i≤n)。(xi,si)作为参与者Pi的影子秘密。
联盟链成员还包括相应的区块链服务,每个服务有1个或多个ID(身份标识)。区块链服务包括Peer服务,Order服务等。其中Peer服务分为Committer和Endorser;Order服务由多个Orderer组成。区块链服务均带有Committer功能,保存有区块链数据,Endorser还存有智能合约,智能合约运行于密钥卡内,并且密钥卡内的密钥池即世界状态WorldState。
下文设User Client,Endorser,Orderer,Committer的标记如下:
1)ID分别为IDU,IDE,IDO,IDC。可以根据ID找到对应的公钥池单元
2)公钥分别为PKU,PKE,PKO,PKC
3)私钥分别为SKU,SKE,SKO,SKC
如图2和图4所示,本实施例中联盟链服务端的密钥卡中包含各自的私钥和公钥随机数池(也称为公钥池),公钥池中有所有用户对应的公钥单元,每个公钥单元存有ID和一个公钥随机数R。如图3所示,客户端的密钥卡中没有公钥随机数池,只是存有己方的公钥,其实质是一个公钥单元,存有自己的ID和R,同样客户端密钥卡内也存有己方的私钥。客户端密钥卡中还有一个服务公钥池,其中存有所有区块链服务对应的公钥单元,每个公钥单元存有某个区块链服务对应的ID和R。区块链客户端(身份识别装置除外)的公钥随机数R是对外公开的,而ID是不公开的,用户可以根据R在公钥池中找到对应的公钥单元从而得到ID。区块链客户端中的身份识别装置的公钥随机数R是不公开的,而ID是对外公开的,用户可以根据ID在公钥池中找到对应的公钥单元从而得到R。区块链服务的公钥随机数R是不公开的,而ID是对外公开的,用户可以根据ID在公钥池中找到对应的公钥单元从而得到R。公钥随机数R和ID与该用户公钥PK的对应关系如下:PK=H(ID||R),此处H为哈希函数。新的公钥随机数Rnew与现存公钥随机数R的关系如下:Rnew=HR(ID||R),此处HR为不同于H的哈希函数。所有密钥卡均为某组织颁发,各个用户的密钥卡保留各自的私钥并且永不公开,密钥系统采用基于ID密码学的理论。本实施例中,Endorser拥有图2所示的Endorser密钥卡,Client拥有图3所示的Client密钥卡,Orderer和Committer拥有图4所示的其他区块链服务密钥卡。区块链服务端可能同时存在Endorser和Committer,两者的密钥卡可以合并为同一个密钥卡,也可以分开。
对于每个Endorser来说,公钥PKE=H(IDE||RE),私钥SKE=s*PKE。Endorser密钥卡中还存储有系统管理公钥Ppub、管理公钥Ppubi=si*P和管理私钥si,如图2所示。Ppub还被安全发送给其他服务端的成员,那些成员将得到的Ppub存储在己端的其他区块链服务密钥卡内,如图4所示。
区块链客户端密钥卡私钥由t个Endorser颁发,每个Endorser密钥卡计算有:PKU=H(IDU||RU),SKUi=si*PKU,Endorser密钥卡将SKUi安全发送给客户端密钥卡。安全发送的方式可以是直接拷贝或者通过QKD等安全通信方式颁发的密钥加密发送。客户端密钥卡内初始化后还被安全颁发有管理公钥池,其内存储有n个Endorser的xi及颁发的管理公钥,每个实际存储为(IDEi,Ppubi,xi),如图3所示。客户端收到t个SKUi后,可以计算拉格朗日参数然后由SKU=s*PKU=(∑λi*si)*PKU=∑λi*(si*PKU)=∑λi*SKUi可以得到SKU=∑λi*SKUi。同理,客户端可以根据公式Ppub=sP=(∑λi*si)*P=∑λi*(si*P)=∑λi*Ppubi可以得到Ppub=∑λi*Ppubi从而求出Ppub,并将Ppub存在己端的Client密钥卡中,如图3所示。
在本实施例中,User向Endorser提出交易,Endorser响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给User的过程中,交互的消息中携带有供验证时使用的签名;
所述签名的生成方式为:
根据交易内容以及哈希函数计算得到的值作为密钥指针随机数;
根据所述密钥指针随机数在公钥池中获取相应的公钥单元,并从所述公钥单元中获取签名公钥随机数;
根据密钥卡中生成的随机数参数、所述签名公钥随机数计算得到签名参数,再根据所述随机参数以及己方私钥生成签名。
在本实施例中,所述Endorser生成的交易应答中,或所述User制作的背书中,或Orderer发送的背书集合中的密文生成方式为:
根据消息接收方的公钥以及所述系统管理公钥计算得到第一加密参数;
根据密钥卡生成的随机数以及生成元计算得到第二加密参数;
根据待加密消息,所述第一加密参数,第二加密参数以及随机数计算得到加密密文。
就各步骤细节进一步描述匿名身份识别的具体流程如下所示:
步骤1:Client提出交易。
Client在密钥卡中生成公钥随机数RUnew=HR(IDU||RU),根据公式PKUnew=H(IDU||RUnew)生成非对称公钥PKUnew。交易tx由proposal和clientSig组成,即tx={proposal,clientSig},其中proposal包括RU、链码chaincodeID(即使用智能合约函数的编号)、txPayload(即函数的参数)和时间戳timestamp,即proposal={RU,chaincodeID,txPayload,timestamp}。其中txPayload包含身份识别装置的信息,即指定该装置给出身份识别反馈。将RU作为用户一次一变的ID,防止被追踪。
计算proposal的基于ID密码学的签名,得到签名SIGN(proposal,SKU),即clientSig,过程如下。Client用哈希函数作用于proposal得到Hm,用Hm作为密钥指针随机数,在密钥卡中找到一个公钥单元并从该单元取出公钥随机数Rm。求得Rm和proposal的MAC值MAC(proposal,Rm),又取随机数参数r,求得r和Client公钥PKU的乘积r*PKU,再用函数H1作用于MAC(proposal,Rm)和r*PKU,可得到签名参数h=H1(MAC(proposal,Rm),r*PKU)。则可以得到proposal的签名clientSig=SIGN(proposal,SKU)=(r*PKU,(r+h)*SKU),其中SKU为Client的私钥。
由于本专利的用户ID或R不公开,敌方无法得到PKU;因此敌方无法通过r*PKU和PKU得到随机数r。由于签名的对象为消息认证码,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKU得到SKU。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
Client将tx即{{RU,chaincodeID,txPayload,timestamp},(r*PKU,(r+h)*SKU)}发送给Endorser。
步骤2:Endorser执行交易。
Endorser收到交易后,取出{{RU,chaincodeID,txPayload,timestamp},(r*PKU,(r+h)*SKU)}中各个部分。Endorser根据RU在密钥卡中找到公钥单元并从中取出IDU,根据公式PKU=H(IDU||RU)可以计算得到公钥PKU,然后用PKU来验证得到的签名。
要验证该签名,只需要验证(P,Ppub,r*PKU+h*PKU,(r+h)*SKU))是一个有效的Diffie-Hellman元组。又有(P,Ppub,r*PKU+h*PKU,(r+h)*SKU))=(P,Ppub,(r+h)*PKU,(r+h)*SKU))=(P,sP,(r+h)*PKU,s(r+h)*PKU)),即只需要证明(P,sP,(r+h)*PKU,s(r+h)*PKU))是一个有效的Diffie-Hellman元组。
验证签名成功之后,Endorser判断User是否具有身份识别的权限,判断timestamp与本地时间的差异是否位于合理范围内。如果所有判断都通过,则Endorser认可该交易tx,否则Endorser不认可该交易。
步骤3:Endorser发送交易应答。
Endorser根据公式RUnew=HR(IDU||RU)计算得到RUnew,根据PKUnew=H(IDU||RUnew)计算得到PKUnew,从密钥卡中取出管理私钥si,根据SKUi=si*PKU得到SKUi,根据SKUnewi=si*PKUnew得到SKUnewi。对proposal作哈希运算得到tid,又有tran-proposal包含{IDEi,tid,chaincodeID,txPayload,readset,writeset}。如果Endorser认可该交易tx的话,对tid||IDU作哈希运算的结果赋值给readset,writeset的值为NULL;如果Endorser不认可该交易tx的话,则readset和writeset的值为无效值。
Endorser对SKUnewi进行加密。根据公式gU=e(PKU,Ppub)可以计算得到gU。取随机数r,计算EU=rP,EV=SKUnewi⊕H2((gU)r),进而可以得到加密密文C=<EU,EV>。从密钥卡中取出IDEi,将组合{EU-H(tid||IDU||IDEi)}||EV又称作为rtxdata。将tran-proposal||rtxdata作为原文,用步骤1中的签名方法用私钥SKE对其进行签名得到epSig,Endorser得到交易应答rtx={tran-propasal,rtxdata,epSig},并将rtx发送给Client。
步骤4:Client发送背书(Endorsement)etx到Orderer。
User收到交易应答后,取出rtx即{tran-propasal,rtxdata,epSig}中各个部分。
首先按照步骤2中的方法对签名epSig进行验证,如果验证成功了则进行后面的步骤,如果验证失败了该rtx就会被丢弃。取出readset和writeset的值。Client根据RU在本地密钥卡内读取IDU,如果readset与在本地密钥卡内计算所得的HASH(tid||IDU)相等,且writeset不是无效值的话,则说明该交易是被Endorser认可的交易。
User判断收到的被认可的交易不少于t个,则达到了秘密共享的要求。然后对验证签名后的rtxdata即{EU-H(tid||IDU||IDEi)}||EV进行解析,得到{EU-H(tid||IDU||IDEi)}和EV两部分。取出密钥卡中的IDEi,从得到的tran-proposal中取出tid,在本地密钥卡内读取IDU,从而得到tid||IDU||IDEi,用哈希函数作用于tid||IDU||IDEi得到H(tid||IDU||IDEi),对{EU-H(tid||IDU||IDEi)}加上H(tid||IDU||IDEi),从而可以求出EU,得到恢复后的密文<EU,EV>。接下来对密文进行解密。根据公式SKUnewi=EV⊕H2(e(SKU,EU))计算得到解密后的原文SKUnewi。
User对解密后的SKUnewi进行检验:根据公式e(SKUnewi,P)=e(si*PKUnew,P)=e(PKUnew,si*P)=e(PKUnew,Ppubi)可以推出e(SKUnewi,P)=e(PKUnew,Ppubi),从密钥卡中取出Ppubi,再取出己方已有的PKUnew和参数P,计算,如果等式确实成立,则SKUnewi是正确的,否则则说明SKUnewi是错误的。
User将认可的交易的rtx组成背书,即背书etx=∑rtx。用Orderer的ID值IDO在密钥卡中读取公钥随机数RO,再根据公式PKO=H(IDO||RO)计算得到公钥PKO。按照步骤3中的方法使用PKO对背书etx进行加密得到密文UC=<UU-H(tid||RO||IDU),UV>,并将密文UC发送给Orderer。如etx长度太大,则使用一个随机数密钥对称加密etx,并对该随机数密钥非对称加密得到UC;后续解密时,可先非对称解密UC得到随机数密钥,然后使用随机数密钥对称解密etx。本文其他涉及长消息的加密均可按照此方法。
步骤5:Orderer发送排序后的etx集合到Committer。
Orderer收到各个Client发送的UC后,得到UC中的各个部分,并用前文所述恢复偏移量的方法得到<UU,UV>。取出自己的私钥SKO,根据公式etx=UV⊕H2(e(SKO,UU))计算得到解密后的背书etx。在积累到一定数量的etx后,Orderer对etx进行排序。在达到block的最大大小或者达到超时时间后,Orderer将序列号seqno、上个联盟链区块的哈希值prevhash、∑etx组合起来,可以得到etx集合={seqno,prevhash,∑etx}。
接着Orderer用Committer的ID值IDC在密钥卡中读取公钥随机数RC,再根据公式PKC=H(IDC||RC)计算得到公钥PKC。按照步骤3中的方法使用PKC对etx集合进行加密得到密文OC=<OU-H(tid||RC||IDO),OV>,并将密文OC发送给该Committer。按照这种方法将etx集合用所有Committer的公钥分别加密并分别发送给所有的Committer。
步骤6:每个Committer验证交易,并更新世界状态。
每个Committer收到OC后,取出OC中的各个部分,并用前文所述恢复偏移量的方法得到<OU,OV>。取出自己的私钥SKC,根据公式etx集合=OV⊕H2(e(SKC,OU))计算得到解密后的etx集合。取出{seqno,prevhash,∑etx}中各个部分。分别取出每个etx,查看其中的rtx,即{tran-propasal,rtxdata,epSig}。首先按照步骤2中的方法对签名epSig进行验证,如果验证成功了则进行后面的步骤,如果验证失败了该rtx就会被丢弃。根据RU从密钥卡中取得IDU,再从tran-proposal中取出tid,计算HASH(tid||IDU)的值并和readset进行比较,如果相等则说明rtx是被认可的。
Committer查看通过验证的rtx是否达到秘密共享的要求,例如是否达到了t个有效的背书。如果认可该etx为有效交易就做出标记以示有效;否则Committer将不认可etx为有效交易,并做出标记以示无效。接下来,Committer将区块写入区块链,并且根据区块链中的有效交易,更新本地的世界状态,即本地密钥池。
根据公式RUnew=HR(IDU||RU),可以得到RUnew,将密钥卡中的RU替换为RUnew。按照此步骤,更换所有需要更新的RU。至此表明区块链对客户端身份识别成功,并且是在客户端没有发送己方ID给区块链的前提下实现这一目标的。
步骤7:Committer发送交易通知。
7.1.客户端收到通知
Committer发送交易通知给Client。如果tx有效,将success作为result的值;如果tx无效则将failure作为result的值。将IDC、result、tid、committerSig组合来起到得到ntx={IDC,tid,result,committerSig}。其中committerSig是Committer按照步骤1中的方法对result的签名,即可以得到committerSig=SIGN(result,SKC)。
Committer将组合ntx发送给Client。
Client收到ntx后,得到{IDC,tid,result,committerSig}中的各个部分。按照步骤2中的方法来验证签名committerSig。验证签名成功之后,取出result查看其值,如果result的值是success,则说明身份识别成功,则取出步骤4中检验成功的所有SKUnewi,根据公式SKUnew=s*PKUnew=(∑λi*si)*PKUnew=∑λi*(si*PKUnew)=∑λi*SKUnewi和可以计算得到SKUnew,将SKUnew存入密钥卡替代原来的用户私钥SKU,将RUnew存入密钥卡代替原来的公钥随机数RU,公私钥更新成功;如果result的值是failure,则身份识别失败。
在其他实施例中,联盟链成员中还包括身份识别装置,所述身份识别装置也属于区块链客户端。收到通知后采用与7.1类似的方法验证签名。验证签名成功之后,取出result查看其值,如果result的值是success,则说明身份识别成功;如果result的值是failure,则身份识别失败。
对于一些身份识别装置,比如门禁,可以用以上的流程来实现自己的身份识别策略。比如某门禁系统拥有10个Committer,则身份识别策略可设置为收到至少6个以上成功的Committer通知,就打开门禁。上述基于联盟链且抗量子计算的匿名身份识别方法中,使用密钥卡存储公钥和私钥,其中公钥存储在密钥卡的公钥池中。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。由于量子计算机无法得到用户公钥,于是也无法得到对应的私钥。另外,本发明中,基于公私钥的抗量子计算签名和加密也保证了所传输消息的安全性,即使在量子计算机存在的情况下,也难以被推导出私钥。因此该方案不容易被量子计算机破解。
本专利中将基于ID密码学中的ID改为了ID加上公钥随机数的形式,让ID变成了对外不可见的形式,而是让公钥随机数对外公开,而且公钥随机数在每次身份识别成功后都会改变,这样就可以对外传输公钥随机数从而让对方实现拿不到ID却可以识别己方用户的目地,隐藏ID的方法大大提高了安全性。并对签名参数h也做了相应的改进使得签名参数h无法被敌方计算得到,使得数字签名具有很高的抗量子安全性。并且私钥服务器的私钥通过秘密共享的方式进行分布式存储,而相关的公私钥又分别存储在密钥卡中,使得私钥被窃取的风险很大程度的降低。没有一个私钥服务器掌握整个私钥也使得整体的安全得到了提高。
同时,本专利在流程中的不同场合用到了偏移量,这些偏移量都需要密钥卡中的公钥池的参与才能计算得到,没有密钥卡的其他方将无法破解这些被偏移量保护的数据。偏移量的使用对数据进行了加密,使得传输过程更加安全,具有抗量子的特性;并且该加密方式比普通加密方式的计算量更小,因此避免了使用普通加密方式来抵抗量子计算机的攻击,降低了各方的设备负担。
本发明实现了身份识别系统在对方用户ID没有暴露的情况下识别对方的功能,从而对各个用户的身份信息得到了更高的安全保障。
在一个实施例中,提供了一种计算机设备,即一种基于联盟链且抗量子计算的匿名身份识别系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述抗量子计算联盟链交易方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
其中一个实施例中,提供了一种基于联盟链且抗量子计算的匿名身份识别系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥;所述服务端成员的密钥卡中存储有公钥池,所述公钥池中包括各公钥管理单元,各所述公钥管理单元中存储有各联盟链成员的身份标识,以及与各所述联盟链成员的身份标识相关的公钥随机数;
所述联盟链成员的客户端成员以及服务端成员均包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于联盟链且抗量子计算的匿名身份识别方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (7)
1.基于联盟链且抗量子计算的匿名身份识别方法,实施在相互通信的联盟链成员之间,所述联盟链成员包括客户端成员以及服务端成员,其特征在于,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥;所述服务端成员的密钥卡中存储有公钥池,所述公钥池中包括各公钥管理单元,各所述公钥管理单元中存储有各联盟链成员的身份标识,以及与各所述联盟链成员的身份标识相关的公钥随机数,所述客户端成员的密钥卡中存储有己方公钥;
所述匿名身份识别方法包括:
其中一客户端成员为User,所述User向联盟链成员提出交易,所述交易用于对所述User的身份进行识别;所述服务端成员响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给用户的过程中,User提出交易为匿名交易,所述匿名交易中携带有公开的己方公钥随机数;
所述服务端成员根据所述公钥随机数获取User的身份标识,以获知User的身份,完成对User的身份识别;
所述服务端成员包括多个提供相应服务的Endorser,Orderer和Committer,所述匿名身份识别方法具体包括:
User向Endorser提出匿名交易,所述匿名交易的信息中携带有公开的己方公钥随机数;
Endorser收到User提出的匿名交易后,根据所述公钥随机数从公钥池中获取相应的User身份标识,以获知User的身份,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,相应的生成交易通知发送给User,还根据从背书中获取的User公钥随机数生成新的User公钥随机数对世界状态进行更新;
User接收交易通知后相应验证,更新公钥随机数;
所述服务端成员根据所述公钥随机数生成新的公钥随机数对世界状态进行更新。
2.根据权利要求1所述的匿名身份识别方法,其特征在于,所述User向服务端成员提出交易,服务端成员响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给用户的过程中,各所述服务端成员发送的消息中包括公开的己方身份识别。
3.根据权利要求1所述的匿名身份识别方法,其特征在于,所述User和服务端成员的密钥卡中均储存有系统管理公钥;
各所述Endorser的密钥卡中还存储了管理私钥以及管理公钥;所述管理私钥为:私钥生成服务器的私钥基于ID密码学得到多个与所述私钥相关的分量;
所述User的密钥卡中还存储有管理公钥池,所述管理公钥池中包括各管理公钥单元,各所述管理公钥单元中存储有各Endorser身份标识,以及与Endorser身份标识相关的管理公钥以及私钥参数;
所述User的密钥卡中还存储有服务公钥池,所述服务公钥池中包括各联盟公钥单元,各所述联盟公钥单元用于存储服务端成员的身份标识以及公钥随机数;
所述匿名身份识别方法还包括:
所述User向多个Endorser提出匿名交易;
多个所述Endorser接收到匿名交易后,根据所述公钥随机数生成新的公钥随机数,并根据所述新的公钥随机数以及所述管理私钥计算得到私钥分量,并将所述私钥分量写入交易应答发送至User;
User从交易应答中获取私钥分量,还利用有效的交易应答制作背书并经由Orderer发送给Committer;
Committer收到背书后,相应生成交易通知发送给User,还根据从背书中获取的公钥生成数对世界状态进行更新,完成公钥颁发;
User接收交易通知后根据所述公钥生成数、多个所述私钥分量以及与各私钥分量相关的私钥参数,采用相关公式计算得到私钥,完成私钥颁发。
4.根据权利要求1所述的匿名身份识别方法,其特征在于,
各服务端成员根据User公开的公钥随机数从公钥池中获取相应的User身份标识;
根据所述User身份标识以及公钥随机数,采用不同的哈希函数进行哈希运算分别得到新的公钥随机数以及User公钥。
5.根据权利要求1所述的匿名身份识别方法,其特征在于,
User向Endorser提出交易,Endorser响应于该交易并进行相应操作,再将与交易结果相应的交易通知发送给User的过程中,交互的消息中携带有供验证时使用的签名;
所述签名的生成方式为:
根据交易内容以及哈希函数计算得到的值作为密钥指针随机数;
根据所述密钥指针随机数在公钥池中获取相应的公钥单元,并从所述公钥单元中获取签名公钥随机数;
根据密钥卡中生成的随机数参数、所述签名公钥随机数计算得到签名参数,再根据所述随机数参数以及己方私钥生成签名。
6.根据权利要求3所述的匿名身份识别方法,其特征在于,所述Endorser生成的交易应答中,或所述User制作的背书中,或Orderer发送的背书集合中的密文生成方式为:
根据消息接收方的公钥以及所述系统管理公钥计算得到第一加密参数;
根据密钥卡生成的随机数以及生成元计算得到第二加密参数;
根据待加密消息,所述第一加密参数,第二加密参数以及随机数计算得到加密密文。
7.基于联盟链且抗量子计算的匿名身份识别系统,包括相互通信的联盟链成员,所述联盟链成员包括客户端成员以及服务端成员,其特征在于,各方均配置有密钥卡,所有密钥卡均存储有各自的私钥;所述服务端成员的密钥卡中存储有公钥池,所述公钥池中包括各公钥管理单元,各所述公钥管理单元中存储有各联盟链成员的身份标识,以及与各所述联盟链成员的身份标识相关的公钥随机数;
所述联盟链的客户端成员以及服务端成员均包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~6任一项所述的基于联盟链且抗量子计算的匿名身份识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910798812.8A CN110636050B (zh) | 2019-08-28 | 2019-08-28 | 基于联盟链且抗量子计算的匿名身份识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910798812.8A CN110636050B (zh) | 2019-08-28 | 2019-08-28 | 基于联盟链且抗量子计算的匿名身份识别方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110636050A CN110636050A (zh) | 2019-12-31 |
CN110636050B true CN110636050B (zh) | 2021-10-22 |
Family
ID=68970791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910798812.8A Active CN110636050B (zh) | 2019-08-28 | 2019-08-28 | 基于联盟链且抗量子计算的匿名身份识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110636050B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112087306B (zh) * | 2020-07-14 | 2021-10-22 | 武汉大学 | 量子计算安全的身份识别协议建立方法 |
CN111951006A (zh) * | 2020-08-10 | 2020-11-17 | 链博(成都)科技有限公司 | 一种联盟链共识方法、系统及终端 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170346639A1 (en) * | 2016-05-24 | 2017-11-30 | Business Information Exchange System Corp. | Public Key Infrastructure based on the Public Certificates Ledger |
CN108764874B (zh) * | 2018-05-17 | 2021-09-07 | 深圳前海微众银行股份有限公司 | 基于区块链的匿名转账方法、系统及存储介质 |
CN109919609A (zh) * | 2019-01-14 | 2019-06-21 | 如般量子科技有限公司 | 基于公钥池的抗量子计算区块链保密交易方法和系统 |
CN109687963B (zh) * | 2019-01-15 | 2021-06-22 | 如般量子科技有限公司 | 基于公钥池的抗量子计算联盟链交易方法和系统 |
-
2019
- 2019-08-28 CN CN201910798812.8A patent/CN110636050B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110636050A (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639361B (zh) | 一种区块链密钥管理方法、多人共同签名方法及电子装置 | |
CN109687963B (zh) | 基于公钥池的抗量子计算联盟链交易方法和系统 | |
CN110768781B (zh) | 基于联盟链且抗量子计算的公私钥颁发方法及系统 | |
CN110519046B (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
CN110661613B (zh) | 基于联盟链的抗量子计算隐式证书颁发方法及系统 | |
CN110830244B (zh) | 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统 | |
CN110690957B (zh) | 抗量子计算私钥备份、挂失及恢复方法及系统 | |
CN109919611B (zh) | 基于对称密钥池服务器的抗量子计算区块链交易方法和系统 | |
CN110737915B (zh) | 基于隐式证书的抗量子计算匿名身份识别方法及系统 | |
CN109918888B (zh) | 基于公钥池的抗量子证书颁发方法及颁发系统 | |
CN110868295B (zh) | 基于秘密共享的抗量子计算联盟链系统及通信方法 | |
CN110930251B (zh) | 基于联盟链和隐式证书的抗量子计算云存储方法及系统 | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
CN110380859B (zh) | 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统 | |
CN110737907B (zh) | 基于联盟链的抗量子计算云存储方法及系统 | |
CN110493005B (zh) | 基于联盟链的抗量子计算公钥池更新方法和系统 | |
CN110636050B (zh) | 基于联盟链且抗量子计算的匿名身份识别方法及系统 | |
CN110740034B (zh) | 基于联盟链的qkd网络认证密钥生成方法及系统 | |
CN110971403A (zh) | 一种基于秘密共享公钥池的抗量子计算区块链系统和交易方法 | |
CN110557247A (zh) | 基于身份的抗量子计算区块链方法和系统 | |
CN110880969B (zh) | 基于联盟链和隐式证书的qkd网络认证密钥生成方法及系统 | |
CN110635897B (zh) | 基于联盟链且抗量子计算的密钥更新或下载方法及系统 | |
CN110768782B (zh) | 基于非对称密钥池和ibs的抗量子计算rfid认证方法及系统 | |
CN110519045B (zh) | 基于群组非对称密钥池的抗量子计算联盟链交易方法、系统 | |
CN110266483B (zh) | 基于非对称密钥池对和qkd的量子通信服务站密钥协商方法、系统、设备 |
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 |