CN116566660A - 基于医疗区块链的身份认证方法 - Google Patents
基于医疗区块链的身份认证方法 Download PDFInfo
- Publication number
- CN116566660A CN116566660A CN202310436442.XA CN202310436442A CN116566660A CN 116566660 A CN116566660 A CN 116566660A CN 202310436442 A CN202310436442 A CN 202310436442A CN 116566660 A CN116566660 A CN 116566660A
- Authority
- CN
- China
- Prior art keywords
- certificate
- node
- signature
- user
- identity
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012795 verification Methods 0.000 claims description 32
- 230000006854 communication Effects 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 14
- 239000004744 fabric Substances 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 229910052698 phosphorus Inorganic materials 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 230000002457 bidirectional effect Effects 0.000 description 7
- 238000013475 authorization Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000003745 diagnosis Methods 0.000 description 4
- 230000001105 regulatory effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012797 qualification Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/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/3247—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 involving digital signatures
- H04L9/3252—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 involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr 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/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/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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
Abstract
本发明公开了一种基于医疗区块链的身份认证方法,涉及医疗区块链技术领域。所述方法包括如下步骤:系统初始化,用于生成输入参数和用户信息;生成证书,根据输入的参数和用户信息,输出秘钥对以及证书文件;分发证书,区块链智能合约对证书进行解析,将证书生成信息上链,合约生成上链交易,并为其签名产生,同时将证书分发给用户;区块链智能合约将证书分发给用户;身份验证,用户使用自己的私钥对身份信息进行签名,使用私钥对消息进行签名并使用公钥对签名进行验证。所述方法具有安全性高、效率高等优点。
Description
技术领域
本发明涉及医疗区块链技术领域,尤其涉及一种基于医疗区块链的身份认证方法。
背景技术
随着医疗信息化的快速发展,医疗数据已经成为了医疗机构的核心资源之一,但同时也带来了诸多安全风险。传统的身份认证方式存在着许多安全风险。例如,使用用户名和密码进行身份认证的方式,用户的密码可能会被破解或泄露;而使用双因素认证的方式,则需要用户携带物理令牌,操作繁琐且容易丢失。同时,这些方式都存在着中心化的问题,一旦中心化服务器被攻击或遭受破坏,所有的用户信息都将受到影响。
相较于其他领域来说,医疗领域的身份认证协议因其需要保护的数据的特殊性具有特殊的要求。
精度要求高:医疗数据的泄露和篡改可能会对患者的健康和安全产生重大影响,因此需要更加严格的身份认证。
隐私要求高:在医疗领域,个人身份和医疗记录都属于敏感信息,因此隐私保护是一个重要的考虑因素。
多方参与:在医疗领域,多个参与者角色需要进行相互的身份认证,包括医生、患者、医疗机构,数据访问者等。因此,本身份认证协议需要实现双向交互认证。
基于以上特点,医疗领域的身份认证技术需要更高的安全性、隐私保护和灵活性。因此设计身份认证技术协议时需要考虑这些特殊的需求和限制。
通过分析关于医疗领域的身份认证技术相关文献可以发现,若身份认证技术一直依赖某个可信第三方,处于中心化的体系中,则无法避免当可信第三方或服务器遭受攻击后带来的隐私泄露风险和数据安全威胁。为了避免由中心化的第三方掌控认证过程安全性的风险,以及最大程度上保护用户的隐私安全以及摆脱单点故障风险,在保证用户密钥安全和密钥分发信道安全的情况下,如何去中心化的实现医疗系统的身份认证是值得研究的。因此,基于医疗区块链的身份认证协议需要解决以下问题:如何保证身份认证信息的安全性和不可篡改性;如何防止身份认证信息被窃取或泄露;如何防止身份认证信息被冒用或盗用;如何确保身份认证协议的高效性和实时性以及如何保护患者和医生的隐私信息。
发明内容
本发明所要解决的技术问题是如何提供一种安全性高的基于医疗区块链的身份认证方法。
为解决上述技术问题,本发明所采取的技术方案是:一种基于医疗区块链的身份认证方法,包括如下步骤:
系统初始化:用于生成输入参数和用户信息;
生成证书:根据输入的参数和用户密钥对,输出证书文件;
分发证书:区块链智能合约对证书进行解析,从中获得证书的内容,检查证书格式、有效期和签名信息合法后,将证书生成信息上链,合约生成上链交易,并为其签名产生,同时将证书分发给用户,区块链智能合约将证书分发给用户;
身份验证:用户使用自己的私钥对身份信息进行签名,身份验证方使用私钥对消息进行签名并使用公钥对签名进行验证。
进一步的技术方案在于,所述系统初始化包括如下步骤:
系统初始化阶段用于生成公私钥对、生成系统参数params、启动区块链、引入权威节点以及设置联盟链准入规则。
其中,生成的公私钥对在后续的证书生成和验证阶段中使用,启动区块链搭建一个可信的分布式账本,设置联盟链准入规则约束医疗机构节点的上链行为;
(1)联盟链初始化
联盟链的初始化主要由权威监管机构实现;
定义参与方集合为P={p1,p2,...,pn},其中全节点集合为F={p1,p2,...,pm},轻节点集合为L=P-F;
系统管理员为每个参与方pi∈P颁发身份证书并将其公钥/>分发给全节点F;
全节点f∈F将收到的身份证书集合保存到本地,并将这些证书通过区块链网络广播给其他全节点;全节点f∈F对于每个轻节点,生成包含其身份证书certl和f的数字签名sigf(certl),并将其发送给轻节点l;
轻节点l∈L收到全节点f∈F发送的数字签名sigf(certl)后,验证该数字签名的有效性,即验证f是否为权威监管者,并且验证(certl)是否与全节点集合中的证书相匹配;如果验证通过,则认为轻节点l被授权加入联盟链;
联盟链的初始化完成后,所有参与方可以开始在链上进行交易;
其中,身份证书表示为:
表达式中p为参与方身份信息,pkp为参与方公钥,certA为证书颁发机构的身份信息,为系统管理员对p||pkp的数字签名;
(2)节点设置
医院节点:作为普通节点,需要先安装相应的Fabric软件和CA证书,然后加入到联盟链通道中;
医疗中心节点:作为CA节点,需要先创建证书机构并发布CA证书,然后安装FabricCA软件并启动CA服务;
权威监管者:只负责监管联盟链和链下用户,可以在加入通道之前创建相应的Fabric账户并配置权限;
医院节点可以分为两类:全节点和轻节点,全节点存储所有的账本信息和智能合约,并参与共识过程;轻节点只存储账本头信息和智能合约的哈希值,并不参与共识过程;轻节点作为一种特殊类型的节点,不需要存储完整的账本数据,只需要安装轻节点软件并加入到通道中即可;全节点需要存储完整的账本数据,需要安装相应的Fabric软件并加入到通道中;
部署智能合约:
定义智能合约:编写智能合约代码,实现业务逻辑;打包智能合约:使用Fabric提供的工具打包智能合约,并上传到联盟链网络;安装智能合约:在每个节点上安装智能合约。
启动联盟链网络:配置节点证书和密钥;启动排序服务节点,在每个节点上启动Fabric Peer节点和智能合约。
(3)系统初始化
选择参数λ,确定一个双线性对e:G*G一GF;
选择两个哈希函数H1:{0,1}*→G1,H2:G2→{0,1}z,z为一个整数;
选择抗碰撞哈希函数H3:{0,1}*→{0,1}z,H4:{0,1}*→{0,1}z;
随机选取作为系统私钥的S=s∈[1,p-1],计算系统公钥P=gs∈G;
发布系统公共参数params={p,G,GF,e,H1,H2,H3,H4,Pca};
用户生成自己的公私钥对;
选择SM2标准椭圆曲线和基点,使用一个安全的伪随机数生成器生成随机数d,通过椭圆曲线点乘算法计算公钥P=d*G,其中G是选定的基点;将公钥和私钥存储起来,确保私钥的安全性。
进一步的技术方案在于,生成证书的方法包括如下步骤:
1)用户使用在本地生成的公私钥对,其中公钥pki是SM2椭圆曲线上的点,私钥ski是一个整数;
2)用户使用自己的私钥ski对身份信息进行签名,得到签名值Si,即Si=SM2Sign(ski,ID);
3)用户将公钥pki和签名值Si一起打包,形成证书请求CRi={pki,Si},将证书请求CRi发送给医疗中心节点;
4)医疗中心节点将证书请求CRi发送给多个CA节点。每个CA节点使用自己的私钥skca对证书请求CRi进行数字签名,得到签名值Ci,即Ci=SM2Sign(skca,CRi);
5)CA节点将签名值Ci广播;每个CA节点收集到所有其他CA节点的签名值Ci后,使用多重签名算法对这些签名值进行合并生成最终的证书签名值M,即M=MultiSign(C1,C2,...,Cn),其中(C1,C2,...,Cn)是所有CA节点的签名值;
6)医疗中心节点收集到所有CA节点的签名值Ci和最终证书签名值M后,使用这些值和证书请求CRi生成数字证书cert={pki,CRi,M},其中pki是公钥,CRi是证书请求,S是最终证书签名值,医疗中心节点将数字证书C返回给用户。
进一步的技术方案在于,分发证书的方法包括如下步骤:
区块链智能合约对证书cert进行解析,从中获得证书的内容,检查证书格式、有效期和签名信息合法后,将证书生成信息上链,合约生成上链交易T=genTransaction(info),并为其签名产生S=sign(T),同时将证书分发给用户;区块链智能合约将证书cert分发给用户U,用户收到数字证书cert={pki,CRi,S},其中S是最终证书签名值。
进一步的技术方案在于,所述身份验证的方法包括如下步骤:
1)用户使用自己的私钥sku对身份信息进行签名,生成签名值Su,即Su=SM2Sign(sku,IDu),其中IDu代表用户的身份信息;
2)用户将自己的公钥pku和签名值Su一起打包,然后将其发送给身份认证验证方;
3)身份认证验证方使用证书中的公钥pki对签名值Su进行验证,以确认医疗信息系统身份认证使用者的身份信息的真实性和完整性,即Verify(pki,IDu,Su)=true;其中,Sign(sk,M)和Verify(pk,M,S)分别代表使用私钥sk对消息M进行签名和使用公钥pk对签名S进行验证的操作。
进一步的技术方案在于,签名方法包括如下步骤:
1)参数生成(generate_params(E,G,n,H)):选择一个椭圆曲线E,以及基点G;选择一个大质数n,使得nG是无限远点;选择一个哈希函数H=SM3;
2)密钥生成(generate_keypairs(numparticipants)):每个参与者生成自己的公私钥对(Pi,ki),使用SM2算法生成密钥对;
3)多重签名(multi_sign(m,P,k,R,S)):对于待签名的消息m,每个参与者计算H(m)得到哈希值h,使用SM3算法进行哈希计算;
每个参与者使用自己的私钥ki计算出ri=ki*G,并将ri发送给其他参与者;参与者之间的通信可以使用SM2进行加密保护;
参与者收到其他参与者发送的rj后,计算R=Σrj,并将R发送给其他参与者,参与者之间的通信可以使用SM2进行加密保护;
参与者计算其中Rx是R的x坐标,并将si发送给其他参与者,参与者之间的通信可以使用SM2进行加密保护;
参与者收到其他参与者发送的sj后,计算S=Σsj;
最终多重签名为(R,S)。
4)验证签名(verify_sign(m,P,R,S)):验证R和S是否符合椭圆曲线上的验证条件,即1<=R,S<=n-1;计算e=H(m),并验证是否满足S*G+R=P1+e*P2+e2*P3+...+en*Pn。其中,P1,P2,...,Pn是所有参与者的公钥,使用SM3算法进行哈希计算。
采用上述技术方案所产生的有益效果在于:所述认证方法使用PKI体系作为基础框架,结合联盟链的特性实现医疗数据可监管的目标;采用多重签名和国密算法相结合的签名方案来保证签名的安全性,同时提高签名和验签的效率;采用链下身份认证形式,即通过fabric中的身份认证机构为医生和患者颁发数字证书,避免链上压力过大,同时降低对用户设备的要求;集成双向认证功能,即医生和患者在进行数据交换之前都要进行身份认证确保数据的真实性和完整性,避免医患之间的信任问题,以及保证患者对自身数据的所有权和访问控制权限。该方法解决医疗领域的安全共享难题和数据隐私风险问题。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明实施例中认证模块的系统框架图;
图2是本发明实施例所述方法的认证流程图;
图3是本发明实施例中认证开销总量对比图;
图4是本发明实施例中认证开销与节点数量的关系图;
图5是本发明实施例中时延变化曲线图;
图6是本发明实施例中时延与用户数量关系图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
针对目前医疗数据共享中存在的无法避免当可信第三方或服务器遭受攻击后带来的隐私泄露风险和数据安全威胁,单点故障风险以及最大程度上保护用户的隐私安全,解决医疗领域的身份认证协议中存在的问题,本申请提出了一种基于医疗区块链的身份认证方法,下面将从认证模型、方法流程以及方法详细设计三个方面来对所提出协议进行介绍。
认证模型
本认证方法包括的主体可分为:节点(医院或医疗机构),用户(医生,患者,访问者),医疗中心,证书分发者和权威监管机构。
系统架构如图1所示。主体的功能和具体描述如下:
1)用户:用户包括患者和医生、访问者。
用户并不作为区块链的节点,而是作为链下用户参与其中。用户可以通过CA进行身份注册和认证,并获得相应的身份证书。用户向证书分发者提供自身参数,申请授权证书。用户通过出示证书给医疗系统,经验证后获得相应权限和服务。
其中,患者使用身份证书向医疗系统发起身份认证,验证成功后,患者可开始进入诊断。医生作为医疗服务提供方的角色,在最初需要提供自己的医生资质证明和个人信息申请身份证书,同样需要通过证书验证才能进入系统。患者向医生描述病情等信息,医生通过医疗系统向用户发送诊断结果,相应的生成病历,上传至链下存储服务器,并将记录上传区块链。
医生和患者之间,医生患者和服务器之前都可以进行双向认证设计,双向认证提高了系统的可用性和用户体验。
2)医院和医疗机构(背书节点:负责对交易进行背书,即负责认可交易的合法性和有效性,同时验证参与交易的节点的身份):医院和医疗机构作为节点,具有上传数据和向链上发布记录的功能。用户可通过应用层系统访问和操作节点。节点验证用户的身份证书,判断其是否为合法用户,并为其提供用户相应权限下的服务。
3)权威监管机构(监管节点:负责监控和审核链上的交易,确保其符合监管规定和合法要求):指负责管理医疗区块链的组织,包括维护区块链网络和智能合约的部署和升级,管理节点的入链和出链。权威监管节点参与到区块链网络中,医疗机构进入联盟链时由医疗中心对其进行资质审核。
4)医疗中心(排序节点:负责签发和管理数字证书,确保证书的真实性和有效性。):处理链下用户的注册和身份认证等事宜。为避免单CA带来的信任问题和单点故障风险,医疗中心承担联盟链中fabric CA的角色,多个医疗中心协同进行身份证书发颁发与验证。认证的计算开销与CA数量直接相关,CA数量增加,认证机构之间的协调和通信可能变得更加复杂和困难,认证请求需要被发送到更多的机构进行处理,降低认证的效率。本申请以医疗中心节点担任CA角色,在实现协同认证,避免单点故障的同时也规定了CA的数量,无需考虑增加CA带来的效率问题。
在联盟链初始化完成后公开系统参数,此时权威节点和医疗中心节点已加载完成。之后各医院和医疗机构开始申请入链,由监管节点和医疗中心节点对申请入链的节点进行审核,依据已通过的准入策略,结合医院节点提供的资质证明获得在本链中的身份证明。节点在注册成功后可使用身份证明登录。链下用户也是如此,通过医疗信息系统注册身份,用户提供自己的个人信息,CA根据基于医疗区块链的身份认证协议,验证其身份并为其颁发身份证明,此后登录只需提供身份证明,待联盟链中的CA判断并核实证书的准确性,反馈认证结果,即可实现登录。
医生用户进入系统后,可以为患者进行诊断,诊断完成后产生电子病历,医生负责将电子病历保存到链下数据库服务器中,同时需要通过医疗信息系统发起智能合约的调用申请,用户需提供调用合约的名称,标识以及关键参数,生成病历记录。医生需对病历信息进行签名,由背书节点(医院)为其背书。
当背书节点收到医生签名的记录申请时,需要对医生的签名进行验证,确认用户权限,然后对病历信息进行审核后,确认是否为合法记录,若都通过验证,则反馈申请结果,读取申请中的智能合约相关信息,执行合约。当用户收到反馈结果,首先验证反馈结果的真实性,若与公布的背书节点签名一致,则认为结果可信,并将上述过程打包成交易发送给排序节点(医疗中心),生成新区块。此后,监管节点(权威监管机构)对广播的区块进行验证,检查其中使用的策略是否合法,过程信息是否一致,验证通过后标志此区块有效,然后经过共识后区块即可上链。
本发明所述基于医疗区块链的身份认证方法,整体流程包括初始化阶段、证书生成阶段、证书分发阶段和证书验证阶段,其处理流程如图2所示。
初始化阶段:
(Setup(1λ)->(params))输入安全参数λ,输出系统参数params。
系统初始化阶段进行一些重要设置,如生成公私钥对、生成系统参数params、启动区块链、引入权威节点、设置联盟链准入规则等。
其中,生成的公私钥对在后续的证书生成和验证阶段中使用,启动区块链搭建一个可信的分布式账本,引入权威节点则保障联盟链的稳定性和安全性,设置联盟链准入规则约束医疗机构节点的上链行为。
定义各参数及其含义如表1便于理解。
表1参数及其含义
(1)联盟链初始化
联盟链的初始化主要由权威监管机构实现。
定义参与方集合为P={p1,p2,...,pn},其中全节点集合为F={p1,p2,...,pm},轻节点集合为L=P-F。
系统管理员为每个参与方pi∈P颁发身份证书并将其公钥/>分发给全节点F。
全节点f∈F将收到的身份证书集合保存到本地,并将这些证书通过区块链网络广播给其他全节点。全节点f∈F对于每个轻节点,生成包含其身份证书certl和f的数字签名sigf(certl),并将其发送给轻节点l。
轻节点l∈L收到全节点f∈F发送的数字签名sigf(certl)后,验证该数字签名的有效性,即验证f是否为权威监管者,并且验证(certl)是否与全节点集合中的证书相匹配。如果验证通过,则认为轻节点l被授权加入联盟链。
联盟链的初始化完成后,所有参与方可以开始在链上进行交易。
其中,身份证书表示为:
表达式中p为参与方身份信息,pkp为参与方公钥,certA为证书颁发机构的身份信息,为系统管理员对p||pkp的数字签名。
(2)节点设置
医院节点:作为普通节点,需要先安装相应的Fabric软件和CA证书,然后加入到联盟链通道中。
医疗中心节点:作为CA节点,需要先创建证书机构并发布CA证书,然后安装FabricCA软件并启动CA服务。其他节点需要通过CA服务获取证书进行身份认证和授权。
权威监管者:只负责监管联盟链和链下用户,可以在加入通道之前创建相应的Fabric账户并配置权限。
医院节点可以分为两类:全节点和轻节点,全节点存储所有的账本信息和智能合约,并参与共识过程;轻节点只存储账本头信息和智能合约的哈希值,并不参与共识过程。轻节点作为一种特殊类型的节点,不需要存储完整的账本数据,只需要安装轻节点软件并加入到通道中即可。全节点需要存储完整的账本数据,需要安装相应的Fabric软件并加入到通道中。
部署智能合约:定义智能合约:编写智能合约代码,实现业务逻辑;打包智能合约:使用Fabric提供的工具打包智能合约,并上传到联盟链网络;安装智能合约:在每个节点上安装智能合约。
启动联盟链网络:配置节点证书和密钥;启动排序服务节点,在每个节点上启动Fabric Peer节点和智能合约。
(3)系统初始化
选择参数λ,确定一个双线性对e:G*G一GF。
选择两个哈希函数H1:{0,1}*→G1,H2:G2→{0,1}z,z为一个整数。
选择抗碰撞哈希函数H3:{0,1}*→{0,1}z,H4:{0,1}*→{0,1}z。
随机选取作为系统私钥的S=s∈[1,p-1],计算系统公钥P=gs∈G。
发布系统公共参数params={p,G,GF,e,H1,H2,H3,H4,Pca}。
用户生成自己的公私钥对。
选择SM2标准椭圆曲线和基点,使用一个安全的伪随机数生成器生成随机数d,通过椭圆曲线点乘算法计算公钥P=d*G,其中G是选定的基点。将公钥和私钥存储起来,确保私钥的安全性。
证书生成阶段:
(CertGen(params,uinfo)->(sk,pk,cert))输入参数params和用户信息uinfo,输出密钥对(sk,pk)以及证书文件cert。
(1)用户在本地存储自己的公私钥对,并将公钥发送给通信对象,用于身份验证和加密通信。
(2)医疗中心节点生成用户证书签名请求,包括证书公钥、用户ID和证书有效期,时间戳等信息,并将请求发送给所有其他CA节点。
(3)每个CA节点使用私钥pki对签名请求进行签名,生成签名结果,并将其发送给其他CA节点。
(4)每个CA节点收集到所有其他CA节点的签名结果后,使用多重签名算法对这些签名结果进行合并生成最终的证书签名。
(5)医疗中心节点收到所有CA节点的签名结果后,使用这些签名结果和证书签名请求生成数字证书。
以下是具体的操作步骤:
(1)用户(申请者)使用在本地生成的公私钥对,其中公钥pki是SM2椭圆曲线上的点,私钥ski是一个整数。
(2)用户使用自己的私钥ski对身份信息(如姓名、身份证号、职业等)进行签名,得到签名值Si,即Si=SM2Sign(ski,ID)。
(3)用户将公钥pki和签名值Si一起打包,形成证书请求CRi={pki,Si},将证书请求CRi发送给医疗中心节点。
(4)医疗中心节点将证书请求CRi发送给多个CA节点。每个CA节点使用自己的私钥skca对证书请求CRi进行数字签名,得到签名值Ci,即Ci=SM2Sign(skca,CRi)。
(5)CA节点将签名值Ci广播。每个CA节点收集到所有其他CA节点的签名值Ci后,使用多重签名算法对这些签名值进行合并生成最终的证书签名值M,即M=MultiSign(C1,C2,...,Cn),其中(C1,C2,...,Cn)是所有CA节点的签名值。
(6)医疗中心节点收集到所有CA节点的签名值Ci和最终证书签名值M后,使用这些值和证书请求CRi生成数字证书cert={pki,CRi,M},其中pki是公钥,CRi是证书请求,S是最终证书签名值。医疗中心节点将数字证书C返回给用户。
证书一旦生成无法卸载,丢弃,但用户可通过智能合约多证书内容进行修改和追加,从而达成证书的更新。证书的更新流程与证书生成相似。
证书分发阶段:
(CertSend(params,cert,sk)->(T,S))区块链智能合约对证书cert进行解析,从中获得证书的内容,检查证书格式、有效期和签名信息合法后,将证书生成信息上链,合约生成上链交易T=genTransaction(info),并为其签名产生S=sign(T),同时将证书分发给用户。区块链智能合约将证书cert分发给用户U。用户收到数字证书cert={pki,CRi,S},其中S是最终证书签名值。
验证阶段:
(CertShow(S,sk,cert)->request);(CertVerify(request)->message)
当用户想要使用系统提供的功能时,需要完成登录过程。登录包括以下步骤:
(1)用户向认证服务器发送登录请求,请求中包含用户的数字证书。
(2)认证服务器验证证书的合法性,如果证书合法,则从证书中提取出用户的公钥。
(3)认证服务器生成一个随机数r,并使用用户的公钥对其进行加密,生成密文Encr,并将其发送给用户。
(4)用户使用私钥对密文进行解密,得到随机数r。
(5)用户计算哈希值hu=H(r),其中H(x)代表对x进行哈希运算得到的结果。
(6)用户将哈希值h发送给认证服务器。
(7)认证服务器也计算哈希值hs=H(r),并将其与用户发送过来的哈希值进行比对,若匹配,则认证通过,否则认证失败。
以下是具体的操作步骤:
1、用户使用自己的私钥sku对身份信息进行签名,生成签名值Su,即Su=SM2Sign(sku,IDu),其中IDu代表用户的身份信息。
2、用户将自己的公钥pku和签名值Su一起打包,然后将其发送给身份认证验证方。
3、身份认证验证方使用证书中的pki对Su进行验证,以确认医疗信息系统身份认证使用者的身份信息的真实性和完整性,即Verify(pki,IDu,Su)=true。其中,Sign(sk,M)和Verify(pk,M,S)分别代表使用私钥sk对消息M进行签名和使用公钥pk对签名S进行验证的操作。
双向认证
在身份认证流程中,双方都需要进行身份验证,以确保通信双方的身份都是合法的。这样可以防止中间人攻击和其他安全威胁,并提高通信的安全性和可靠性。
(1)客户端与服务端:客户端在请求中加入个人身份证明,并请求服务端身份验证。服务端在响应中反馈其证书和公钥,并要求客户端身份验证。客户端使用信任根证书来验证服务端证书的真实性和可信性,以确保连接的安全性。客户端使用服务端公钥加密请求数据,并将自己的证书和加密数据发送给服务端。服务端使用自己的信任根证书来验证客户端证书的有效性和合法性,以确保连接的安全性。服务端使用客户端的公钥加密反馈数据,并将其发送给客户端。客户端使用个人私钥解密数据,验证成功则继续后续的通信。
(2)医生与患者:当医生与患者之间进行数据交互时,需要进行双向身份认证。医生需要向患者展示自己的证书,确保自己的身份真实。患者也需要提供自己的证书,并要求医生进行身份验证。双方都需要使用CA根证书验证对方的证书的有效性和合法性,以确保通信的安全性。
通过上述步骤,身份认证中的双方都需要进行身份验证,从而确保双方身份的合法性和通信的安全性。这样可以实现双向认证的目标,提高通信的安全性和可靠性。
签名算法
相较于现有的身份认证协议,本协议引入协同身份认证,在安全性提升的同时也提高了时间消耗,本申请将身份认证协议中涉及到的生成证书过程中的签名算法与国密算法相结合,使用国密算法SM2和SM3代替传统多重签名算法中的加密算法和散列算法,一定程度上提高效率。
算法流程
本申请提出使用国密算法SM2和SM3代替广播多重签名算法中的加密算法和散列算法的多重签名算法,流程如下:
(1)参数生成(generate_params(E,G,n,H)):选择一个椭圆曲线E,以及基点G;选择一个大质数n,使得nG是无限远点;选择一个哈希函数H=SM3。
(2)密钥生成(generate_keypairs(numparticipants)):每个参与者生成自己的公私钥对(Pi,ki)。使用SM2算法生成密钥对。
(3)多重签名(multi_sign(m,P,k,R,S)):对于待签名的消息m,每个参与者计算H(m)得到哈希值h。使用SM3算法进行哈希计算。
每个参与者使用自己的私钥ki计算出ri=ki*G,并将ri发送给其他参与者。参与者之间的通信可以使用SM2进行加密保护。
参与者收到其他参与者发送的rj后,计算R=Σrj,并将R发送给其他参与者。参与者之间的通信可以使用SM2进行加密保护。
参与者计算其中Rx是R的x坐标,并将si发送给其他参与者。参与者之间的通信可以使用SM2进行加密保护。
参与者收到其他参与者发送的sj后,计算S=Σsj。
最终多重签名为(R,S)。
(4)验证签名:verify_sign(m,P,R,S)验证R和S是否符合椭圆曲线上的验证条件,即1<=R,S<=n-1;计算e=H(m),并验证是否满足S*G+R=P1+e*P2+e2*P3+...+en*Pn。其中,P1,P2,...,Pn是所有参与者的公钥。使用SM3算法进行哈希计算。
本申请的签名方案中,采用2of 3模式,要求至少需要两个参与者的签名才能完成交易确认,相比单个签名的方案,可以大大提高交易的安全性和可靠性。实现比较简单的同时还可以适应不同的场景和需求。
算法安全性:
基于国密的多重签名方案的安全性立足于离散对数问题和椭圆曲线上的计算难题。本申请在离散对数问题困难的情况下是安全的。
假设:假设存在一个攻击者E,它能够在不知道签名者私钥的情况下伪造一个有效签名。
证明:假设签名者集合为S=S1,S2,…,Sn,其中Si表示签名者i的公钥。定义哈希函数h。设H为一个哈希函数,满足在不知道h(m)的情况下不能找到m使得h(m)=h(m')。
假设E能够伪造一个有效签名(m,σ),其中m是要签名的消息,σ是签名值。则通过E能构造一个新的攻击者D,可以在多项式时间内计算出签名者的私钥,即攻击者E的伪造签名行为与攻击者D的私钥计算行为等价。
攻击者D使用公钥集合S和哈希函数H来计算出m的哈希值H(m)。然后,攻击者D在集合S中枚举所有可能的签名者组合其中1≤i1<i2<…<ik≤n,k是签名者的数量。对于每个组合/>攻击者D使用公钥/>和哈希值H(m)来计算出第一个签名者的私钥/>然后,攻击者D使用/>和公钥/>来计算出第二个签名者的私钥/>以此类推,最终计算出所有签名者的私钥/>如果攻击者D能够成功计算出这些私钥,则可以使用它们来生成真实的签名,并与伪造的签名(m,σ)相同。
在多项式时间内计算多重签名需要的签名者的私钥通过使用拉格朗日插值来实现。假设有k个签名者,每个签名者i都有一个私钥/>和一个公钥Pi。设f(x)是一个k次多项式,满足f(i)=xi,其中i=1,2,...,k。我们可以通过拉格朗日插值计算多项式f(x):
f(x)的时间复杂度为O(k2),因此可以在多项式时间内计算签名者的私钥即可以在多项式时间内找到两个不同的消息m1,m2,满足在给定的k个签名者的签名下,都具有有效的多重签名。即可以在多项式时间内找到k个签名者中至少两个签名者的私钥x1,x2,但这违反了基于离散对数的安全假设,因此反证原假设不成立。
方法分析
对协议进行分析,本方法为医疗领域提供了一种安全可靠的身份认证和数据保护方案,可以有效地提高医疗数据的安全性和可信度。方法实现了以下几点功能:
(1)可监管的医疗数据:通过联盟链的结构,医疗数据的访问和管理可以得到监管,从而避免医疗数据泄漏和篡改的风险。
(2)高效且安全的签名方案:采用多重签名和国密算法相结合的方案,可以保证签名的安全性和效率,防止签名被伪造或篡改。
(3)链下身份认证:通过fabric中的身份认证机构为医生和患者颁发数字证书,可以避免链上压力过大,同时降低对用户设备的要求。
(4)双向认证功能:医生和患者在进行数据交换之前都要进行身份认证,以确保数据的真实性和完整性,并且保证患者对自身数据的所有权和访问控制权限,避免医患之间的信任问题。
安全性分析:
从协议的安全性角度出发,本申请从以下几个方面来进行分析论证:
(1)可验证性:即可以通过公共可验证的方式进行验证,以确定身份认证请求的有效性和真实性。通过可验证性,可以确保只有经过授权的用户才能访问敏感信息或进行敏感操作,从而保护用户的个人信息安全。
(2)不可传递性:身份认证协议的授权只针对于一个确定的主体,并且不能被其他主体复用或继承。能够有效地防止身份被冒用或盗用,避免信息泄露和所属权纠纷。
(3)双向认证:传统的单向身份认证只有服务端对客户端进行认证,而客户端对服务端的认证并不强制执行,存在中间人攻击风险。而双向身份认证中发送方与接收方都会互相认证身份,可以防止这种攻击,确保通信的安全性。而且,由于双向身份认证中每次通信都会有新的会话密钥,这样的通信机制能够抵抗重放攻击。
(4)协同认证:该协议通过多方数字签名和多重验证机制,可以实现医生和患者之间的协同认证。在数据交换之前,双方都需要进行身份认证和数字签名验证,确保对方的身份和数据的完整性、真实性。
(5)灵活性和可扩展性:协议采用链下身份认证形式,可以在保证安全的前提下,灵活适应不同场景下的身份认证需求。该协议基于联盟链技术实现医疗数据可监管的目标,避免了传统区块链中的性能瓶颈问题,具有良好的可扩展性。
(6)部分匿名性:基于医疗区块链的身份认证协议可以提供一定程度的匿名性,但在医疗领域,匿名性并不总是可取的,有时医生需要识别患者的身份才能提供适当的医疗服务。因此,本协议提供了一定的匿名性和可识别性的平衡。协议中的数字证书中仅包含医生或患者的公钥以及身份信息的哈希值,并不包含真实的身份信息,能够保护用户的身份信息和隐私,并且在必要的时候允许进行身份验证和身份公开。
(7)抗攻击性:考虑常见的攻击类型,如中间人攻击,内部攻击,重放攻击,篡改攻击,拒绝服务攻击,冒充攻击等,本协议具备一定的抗攻击能力。
中间人攻击:通过双向身份认证,确保通信双方互相认证身份,避免通信过程中被中间人窃听、篡改和伪造数据。
内部攻击:联盟链的结构使得链中的每个节点都是经过准入规则验证的,很难存在恶意节点。即使存在恶意节点,想要获取证书信息仍然需要破解椭圆曲线上的离散对数问题,目前看来这是行不通的。信息被哈希函数、时间戳、随机数等机制保护,恶意节点很难从内部获得有效信息。因此本协议能够抵抗内部攻击。
重放攻击:每次通信都使用新的会话密钥,且证书中包含时间戳,重放的消息很难通过合法性检验,因此本协议能够抵抗重放攻击。
篡改攻击:协议过程中使用了哈希算法和数字签名技术,能够确保身份认证信息的完整性和真实性,避免身份信息被篡改。
拒绝服务攻击:通过保证身份认证系统的可用性和可靠性,非法用户和非授权用户无法执行相应的操作,能够有效确保身份认证系统始终处于可用状态,避免遭受拒绝服务攻击。
冒充攻击:协议中设计了不可传递性的授权机制,确保身份认证授权只针对于一个确定的主体,不能被其他主体复用或继承,避免身份被冒用或盗用。
如表2所示,将本申请提出的认证协议(方法)与参考文献[29](魏松杰,李莎莎,王佳贺.基于身份密码系统和区块链的跨域认证协议[J].计算机学报,2021,44(05):908-920)、文献[61](马晓婷,马文平,刘小雪.基于区块链技术的跨域认证方案[J].电子学报,2018,46(11):2571-2579)和文献[62](WANG W,HU N,LIU X.BlockCAM:A blockchain-based cross-domain authentication mode/Proceedings ofthe IEEE ThirdInternational Conference on Data Science in Cyberspace(DSC).Guangzhou,China,2018:896-901)提出的认证协议相对比,以×表示不具备,√表示具备,—表示未考虑。
表2协议的安全性对比
基于表2中安全性能的比较结果,文献[29]基于联盟链和区块链中密码学技术和去中心化架构,能够抵抗内部攻击、假冒攻击和拒绝服务攻击,且在协议交互中加入时间戳,抵抗重放攻击;域间可双向发布授权交易,因此满足域间实体的双向认证。该方案基于IBC身份认证,其快速认证方案适用于跨信任域场景,但在扩展性上有所局限,而本申请提出的协议使用区块链技术结合PKI体系,证书使用X509的标准格式,避免了传统PKI体系证书管理的难题,增加了认证协议的灵活性和扩展性。
文献[61]基于IBC域和PKI体系设计跨域认证方案,该方案具备的安全属性包括:抵抗内部攻击、仿冒攻击、重放攻击、中间人攻击,具有双向认证属性和理性安全性。但是该方案并未考虑身份标识与证书的可验证性,且因其使用BCCA为验证节点,所以并未实现协同认证。文献[62]提出了BlockCAM方案,采用多重签名和哈希锁定、零知识证明等技术,防止恶意攻击和篡改的同时保护用户的隐私信息。BlockCAM采用了分层设计和链上智能合约等技术,实现了系统的可扩展性和灵活性。但该方案使用公链结构,且其中IVA对身份认证的可信度无法保障,仍然存在安全风险。本申请的联盟链结构和协同认证机制能够一定程度上解决此风险。综上,本申请提出的身份认证协议可以满足医疗系统身份认证的需求。
性能分析
1)认证开销
认证开销E定义为每次认证过程中计算开销与处理开销之和。计算认证开销所需参数及含义如表3所示。
表3参数及含义
本申请提出的身份认证协议在证书生成过程中的计算开销包括:用户加密身份信息并签名;医院节点验证用户签名,在生成证书请求时生成时间戳,其中,请求时间戳的时间可忽略不计;医院节点对证书请求签名;CA节点执行多重签名,生成证书。证书验证过程中的计算开销包括:计算证书哈希值,验证签名值并解密信息,比较身份信息,验证公钥正确性。
本协议的总认证开销为:
E1=Er+Edp+Epp+2*Es+3*Ev+Em+Eh+2*Eec
文献[29]的认证开销为:
E2=TIBS+2*TIBE+2*TIBD+TIBV+2*Ee+4*Edp+4*Epp+4*Eec
文献[61]的认证开销为:
E3=TIBV+10*Eec+2*Eh+3*Es+3*Ev
文献[62]的认证开销为:
E4=2*Es+2*Ev
其中,当原方案未指定具体参数时,使用与本申请相同的参数进行计算,已指定参数则按原方案计算。各协议运算开销总结如表4。
表4协议运算开销
相较于文献[29],本申请使用了改进的多重签名算法,实现协同认证目标的基础上,未增加签名验证的次数;同时引入了国密算法,进一步增加了协议中签名阶段的安全性。相较于文献[61],本方案基于医疗区块链进行数据共享,使用PKI体系进行认证。此外,本方案在初始化阶段生成用户密钥对,无需在后续证书生成和验证过程中再次生成,直接使用即可。文献[62]中的协议虽然计算时间较短,但是其在用户认证的全过程中消息都以明文形式转发,容易导致信息被窃取,安全性存在缺陷。如图3所示的协议认证开销总量对比柱形图,本协议的认证开销小于文献[29]、文献[61]提出的认证协议。因此,在保证安全性的前提下,本协议降低了认证开销,提高了认证效率。
认证的计算开销与节点数量直接相关,因为认证请求需要被发送到节点进行处理。如果节点数量增加,则认证请求需要被发送到更多的节点进行处理,从而导致认证的计算开销增加。认证开销与节点数量的关系见图4。
认证时延
本协议整个流程的总时延为(不包括计算开销部分):
3γ+2βL+2βW+3LC/BW。
其中LC:控制信令的长度,即证书的长度,单位为字节(bytes)。BL:有线链路带宽,即证书传输过程中有线网络的带宽,单位为兆比特每秒(Mbps)。βL:有线链路传输时延,即证书在有线网络中传输所需的时间,单位为毫秒(ms)。γ:处理时延,即证书验证过程中需要进行的处理所需的时间,单位为毫秒(ms)。p:消息在各节点的等待服务时间,即证书验证过程中需要等待节点处理消息的时间,单位为毫秒(ms)。
以相同的符号定义表示其余方案的时延。
文献[29]的时延为:
2γ+LC/BW+LC/BL+βL+βW+4p
文献[61]的时延为:
6γ+2LC/BW+4LC/BL+10βL+4βW+7p
文献[62]的时延为:
6γ+βW+2βL+LC/BL+2LC/BW
文献[29]的时延分布较为平均,但因其计算过程较为复杂,请求等待时间较长,总时延较高。文献[61]则由于数据传输过程较为耗时,导致时延过高。文献[62]的计算开销较低,但由于多次加解密操作,处理时延较高。本申请提出的协议引入了多重签名,减少计算次数,从而降低了处理时延。
认证请求到达速率λ是指单位时间内到达身份认证服务器的认证请求数量,时延随λ线性增长,斜率高表示效率较低。斜率越高,表示对于λ的响应越弱,系统的性能提升幅度越小,则效率较低。本申请和各协议加入计算开销后的认证时延变化对比如图5所示。综合来看随着认证请求速率增加,各方案的时延呈线性增长趋势。本协议的时延消耗略优于其他方案。
用户数量的增加可能会增加认证请求的数量,认证请求的并发度增加,产生的认证证书数量增加,消息的等待时间以及证书验证处理的时间也会随之增加,从而导致认证的计算开销增加。
为了更好地分析认证系统的性能,假设当前链中参与认证的节点数量为50,每个节点可以同时处理10个认证请求,研究用户数量对认证时延的影响。图6来展示了用户数量与方案时延之间的关系,可以看到,当同一时间发起请求的用户数量超过500后,请求处理的时延波动变大,到达800以后又有所回落。这是因为系统性能有限,当用户数量增加时,程序处理请求的等待时间逐渐增加,部分请求需要等待其他请求处理完成后才能得到处理。但是由于本方案请求处理时间较短,因此等待时间有限,对用户来说感受不到明显的阻塞。
Claims (6)
1.一种基于医疗区块链的身份认证方法,其特征在于包括如下步骤:
系统初始化:用于生成输入参数和用户信息;
生成证书:根据输入的参数和用户密钥对,输出证书文件;
分发证书:区块链智能合约对证书进行解析,从中获得证书的内容,检查证书格式、有效期和签名信息合法后,将证书生成信息上链,合约生成上链交易,并为其签名产生,同时将证书分发给用户,区块链智能合约将证书分发给用户;
身份验证:用户使用自己的私钥对身份信息进行签名,身份验证方使用私钥对消息进行签名并使用公钥对签名进行验证。
2.如权利要求1所述的基于医疗区块链的身份认证方法,其特征在于所述系统初始化包括如下步骤:
系统初始化阶段用于生成公私钥对、生成系统参数params、启动区块链、引入权威节点以及设置联盟链准入规则;
其中,生成的公私钥对在后续的证书生成和验证阶段中使用,启动区块链搭建一个可信的分布式账本,设置联盟链准入规则约束医疗机构节点的上链行为;
(1)联盟链初始化
联盟链的初始化主要由权威监管机构实现;
定义参与方集合为P={p1,p2,...,pn},其中全节点集合为F={p1,p2,...,pm},轻节点集合为L=P-F;
系统管理员为每个参与方pi∈P颁发身份证书并将其公钥/>分发给全节点F;
全节点f∈F将收到的身份证书集合保存到本地,并将这些证书通过区块链网络广播给其他全节点;全节点f∈F对于每个轻节点,生成包含其身份证书certl和f的数字签名sigf(certl),并将其发送给轻节点l;
轻节点l∈L收到全节点f∈F发送的数字签名sigf(certl)后,验证该数字签名的有效性,即验证f是否为权威监管者,并且验证(certl)是否与全节点集合中的证书相匹配;如果验证通过,则认为轻节点l被授权加入联盟链;
联盟链的初始化完成后,所有参与方可以开始在链上进行交易;
其中,身份证书表示为:
表达式中p为参与方身份信息,pkp为参与方公钥,certA为证书颁发机构的身份信息,为系统管理员对p||pkp的数字签名;
(2)节点设置
医院节点:作为普通节点,需要先安装相应的Fabric软件和CA证书,然后加入到联盟链通道中;
医疗中心节点:作为CA节点,需要先创建证书机构并发布CA证书,然后安装Fabric CA软件并启动CA服务;
权威监管者:只负责监管联盟链和链下用户,可以在加入通道之前创建相应的Fabric账户并配置权限;
医院节点可以分为两类:全节点和轻节点,全节点存储所有的账本信息和智能合约,并参与共识过程;轻节点只存储账本头信息和智能合约的哈希值,并不参与共识过程;轻节点作为一种特殊类型的节点,不需要存储完整的账本数据,只需要安装轻节点软件并加入到通道中即可;全节点需要存储完整的账本数据,需要安装相应的Fabric软件并加入到通道中;
部署智能合约:
定义智能合约:编写智能合约代码,实现业务逻辑;打包智能合约:使用Fabric提供的工具打包智能合约,并上传到联盟链网络;安装智能合约:在每个节点上安装智能合约;
启动联盟链网络:配置节点证书和密钥;启动排序服务节点,在每个节点上启动FabricPeer节点和智能合约;
(3)系统初始化
选择参数λ,确定一个双线性对e:G*G一GF;
选择两个哈希函数H1:{0,1}*→G1,H2:G2→{0,1}z,z为一个整数;
选择抗碰撞哈希函数H3:{0,1}*→{0,1}z,H4:{0,1}*→{0,1}z;
随机选取作为系统私钥的S=s∈[1,p-1],计算系统公钥P=gs∈G;
发布系统公共参数params={p,G,GF,e,H1,H2,H3,H4,Pca};
用户生成自己的公私钥对;
选择SM2标准椭圆曲线和基点,使用一个安全的伪随机数生成器生成随机数d,通过椭圆曲线点乘算法计算公钥P=d*G,其中G是选定的基点;将公钥和私钥存储起来,确保私钥的安全性。
3.如权利要求1所述的基于医疗区块链的身份认证方法,其特征在于生成证书的方法包括如下步骤:
1)用户使用在本地生成的公私钥对,其中公钥pki是SM2椭圆曲线上的点,私钥ski是一个整数;
2)用户使用自己的私钥ski对身份信息进行签名,得到签名值Si,即Si=SM2Sign(ski,ID);
3)用户将公钥pki和签名值Si一起打包,形成证书请求CRi={pki,Si},将证书请求CRi发送给医疗中心节点;
4)医疗中心节点将证书请求CRi发送给多个CA节点。每个CA节点使用自己的私钥skca对证书请求CRi进行数字签名,得到签名值Ci,即Ci=SM2Sign(skca,CRi);
5)CA节点将签名值Ci广播;每个CA节点收集到所有其他CA节点的签名值Ci后,使用多重签名算法对这些签名值进行合并生成最终的证书签名值M,即M=MultiSign(C1,C2,...,Cn),其中(C1,C2,...,Cn)是所有CA节点的签名值;
6)医疗中心节点收集到所有CA节点的签名值Ci和最终证书签名值M后,使用这些值和证书请求CRi生成数字证书cert={pki,CRi,M},其中pki是公钥,CRi是证书请求,S是最终证书签名值,医疗中心节点将数字证书C返回给用户。
4.如权利要求1所述的基于医疗区块链的身份认证方法,其特征在于分发证书的方法包括如下步骤:
区块链智能合约对证书cert进行解析,从中获得证书的内容,检查证书格式、有效期和签名信息合法后,将证书生成信息上链,合约生成上链交易T=genTransaction(info),并为其签名产生S=sign(T),同时将证书分发给用户;区块链智能合约将证书cert分发给用户U,用户收到数字证书cert={pki,CRi,S},其中S是最终证书签名值。
5.如权利要求1所述的基于医疗区块链的身份认证方法,其特征在于所述身份验证的方法包括如下步骤:
1)用户使用自己的私钥sku对身份信息进行签名,生成签名值Su,即Su=SM2Sign(sku,IDu),其中IDu代表用户的身份信息;
2)用户将自己的公钥pku和签名值Su一起打包,然后将其发送给身份认证验证方;
3)身份认证验证方使用证书中的公钥pki对签名值Su进行验证,以确认医疗信息系统身份认证使用者的身份信息的真实性和完整性,即Verify(pki,IDu,Su)=true;其中,Sign(sk,M)和Verify(pk,M,S)分别代表使用私钥sk对消息M进行签名和使用公钥pk对签名S进行验证的操作。
6.如权利要求5所述的基于医疗区块链的身份认证方法,其特征在于,签名方法包括如下步骤:
1)参数生成(generate_params(E,G,n,H)):选择一个椭圆曲线E,以及基点G;选择一个大质数n,使得nG是无限远点;选择一个哈希函数H=SM3;
2)密钥生成(generate_keypairs(numparticipants)):每个参与者生成自己的公私钥对(Pi,ki),使用SM2算法生成密钥对;
3)多重签名(multi_sign(m,P,k,R,S)):对于待签名的消息m,每个参与者计算H(m)得到哈希值h,使用SM3算法进行哈希计算;
每个参与者使用自己的私钥ki计算出ri=ki*G,并将ri发送给其他参与者;参与者之间的通信可以使用SM2进行加密保护;
参与者收到其他参与者发送的rj后,计算R=Σrj,并将R发送给其他参与者,参与者之间的通信可以使用SM2进行加密保护;
参与者计算其中Rx是R的x坐标,并将si发送给其他参与者,参与者之间的通信可以使用SM2进行加密保护;
参与者收到其他参与者发送的sj后,计算S=Σsj;
最终多重签名为(R,S);
4)验证签名(verify_sign(m,P,R,S)):验证R和S是否符合椭圆曲线上的验证条件,即1<=R,S<=n-1;计算e=H(m),并验证是否满足S*G+R=P1+e*P2+e2*P3+...+en*Pn。其中,P1,P2,...,Pn是所有参与者的公钥,使用SM3算法进行哈希计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310436442.XA CN116566660B (zh) | 2023-04-21 | 2023-04-21 | 基于医疗区块链的身份认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310436442.XA CN116566660B (zh) | 2023-04-21 | 2023-04-21 | 基于医疗区块链的身份认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116566660A true CN116566660A (zh) | 2023-08-08 |
CN116566660B CN116566660B (zh) | 2024-02-13 |
Family
ID=87490800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310436442.XA Active CN116566660B (zh) | 2023-04-21 | 2023-04-21 | 基于医疗区块链的身份认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116566660B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881981A (zh) * | 2023-09-06 | 2023-10-13 | 深圳奥联信息安全技术有限公司 | 一种基于证书的数字签名系统及方法 |
CN116881873A (zh) * | 2023-09-06 | 2023-10-13 | 国网数字科技控股有限公司 | 业务主体的身份认证方法、装置、电子设备和存储介质 |
CN117097570A (zh) * | 2023-10-19 | 2023-11-21 | 中国民航大学 | 一种基于云链融合的机载软件安全分发身份认证方法 |
CN117156440A (zh) * | 2023-10-27 | 2023-12-01 | 中电科网络安全科技股份有限公司 | 一种证书认证方法、系统、存储介质和电子设备 |
CN117251889A (zh) * | 2023-11-13 | 2023-12-19 | 腾讯科技(深圳)有限公司 | 区块链共识方法、相关装置和介质 |
CN117376352A (zh) * | 2023-10-07 | 2024-01-09 | 山东山科智能科技有限公司 | 基于区块链的物联网系统 |
CN117499039A (zh) * | 2023-10-09 | 2024-02-02 | 贵州大学 | 基于椭圆曲线公钥密码算法的区块链签名方法 |
CN117574440A (zh) * | 2024-01-17 | 2024-02-20 | 浙江大学 | 基于多种签名技术的联盟链医疗数据确权溯源方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107769925A (zh) * | 2017-09-15 | 2018-03-06 | 山东大学 | 基于区块链的公钥基础设施系统及其证书管理方法 |
US20220116227A1 (en) * | 2020-10-09 | 2022-04-14 | Unho Choi | Chain of authentication using public key infrastructure |
CN114360673A (zh) * | 2021-10-18 | 2022-04-15 | 上海旺链信息科技有限公司 | 基于区块链的医疗信息共享方法、装置、设备和存储介质 |
CN114465817A (zh) * | 2022-03-22 | 2022-05-10 | 暨南大学 | 一种基于tee预言机集群和区块链的数字证书系统及方法 |
CN114531243A (zh) * | 2022-01-04 | 2022-05-24 | 北京理工大学 | 基于标签加密与零知识证明的联盟链交易隐私保护方法 |
-
2023
- 2023-04-21 CN CN202310436442.XA patent/CN116566660B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107769925A (zh) * | 2017-09-15 | 2018-03-06 | 山东大学 | 基于区块链的公钥基础设施系统及其证书管理方法 |
US20220116227A1 (en) * | 2020-10-09 | 2022-04-14 | Unho Choi | Chain of authentication using public key infrastructure |
CN114360673A (zh) * | 2021-10-18 | 2022-04-15 | 上海旺链信息科技有限公司 | 基于区块链的医疗信息共享方法、装置、设备和存储介质 |
CN114531243A (zh) * | 2022-01-04 | 2022-05-24 | 北京理工大学 | 基于标签加密与零知识证明的联盟链交易隐私保护方法 |
CN114465817A (zh) * | 2022-03-22 | 2022-05-10 | 暨南大学 | 一种基于tee预言机集群和区块链的数字证书系统及方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881873B (zh) * | 2023-09-06 | 2023-12-08 | 国网数字科技控股有限公司 | 业务主体的身份认证方法、装置、电子设备和存储介质 |
CN116881873A (zh) * | 2023-09-06 | 2023-10-13 | 国网数字科技控股有限公司 | 业务主体的身份认证方法、装置、电子设备和存储介质 |
CN116881981A (zh) * | 2023-09-06 | 2023-10-13 | 深圳奥联信息安全技术有限公司 | 一种基于证书的数字签名系统及方法 |
CN116881981B (zh) * | 2023-09-06 | 2024-01-02 | 深圳奥联信息安全技术有限公司 | 一种基于证书的数字签名系统及方法 |
CN117376352A (zh) * | 2023-10-07 | 2024-01-09 | 山东山科智能科技有限公司 | 基于区块链的物联网系统 |
CN117376352B (zh) * | 2023-10-07 | 2024-03-12 | 山东山科智能科技有限公司 | 基于区块链的物联网系统 |
CN117499039A (zh) * | 2023-10-09 | 2024-02-02 | 贵州大学 | 基于椭圆曲线公钥密码算法的区块链签名方法 |
CN117499039B (zh) * | 2023-10-09 | 2024-03-26 | 贵州大学 | 基于椭圆曲线公钥密码算法的区块链签名方法 |
CN117097570B (zh) * | 2023-10-19 | 2023-12-29 | 中国民航大学 | 一种基于云链融合的机载软件安全分发身份认证方法 |
CN117097570A (zh) * | 2023-10-19 | 2023-11-21 | 中国民航大学 | 一种基于云链融合的机载软件安全分发身份认证方法 |
CN117156440A (zh) * | 2023-10-27 | 2023-12-01 | 中电科网络安全科技股份有限公司 | 一种证书认证方法、系统、存储介质和电子设备 |
CN117156440B (zh) * | 2023-10-27 | 2024-01-30 | 中电科网络安全科技股份有限公司 | 一种证书认证方法、系统、存储介质和电子设备 |
CN117251889A (zh) * | 2023-11-13 | 2023-12-19 | 腾讯科技(深圳)有限公司 | 区块链共识方法、相关装置和介质 |
CN117251889B (zh) * | 2023-11-13 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 区块链共识方法、相关装置和介质 |
CN117574440A (zh) * | 2024-01-17 | 2024-02-20 | 浙江大学 | 基于多种签名技术的联盟链医疗数据确权溯源方法及系统 |
CN117574440B (zh) * | 2024-01-17 | 2024-04-30 | 浙江大学 | 基于多种签名技术的联盟链医疗数据确权溯源方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116566660B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116566660B (zh) | 基于医疗区块链的身份认证方法 | |
Xue et al. | Combining data owner-side and cloud-side access control for encrypted cloud storage | |
Wang et al. | Identity-based data outsourcing with comprehensive auditing in clouds | |
JP4639084B2 (ja) | セキュア認証の暗号方法および暗号装置 | |
Di Raimondo et al. | New approaches for deniable authentication | |
CN111372243A (zh) | 基于雾联盟链的安全分布式聚合与访问系统及方法 | |
CN107947913A (zh) | 一种基于身份的匿名认证方法与系统 | |
CN103684798B (zh) | 一种用于分布式用户服务间认证方法 | |
Yu et al. | Provably secure single sign-on scheme in distributed systems and networks | |
Kwon | Privacy preservation with X. 509 standard certificates | |
CN116668167A (zh) | 基于区块链的数据通信的智能合约方法 | |
Song et al. | Secure authentication in motion: A novel online payment framework for drive-thru Internet | |
Ansper et al. | Efficient long-term validation of digital signatures | |
EP4183105A1 (en) | Identifying denial-of-service attacks | |
Zhang et al. | Secure and privacy-preserving attribute-based sharing framework in vehicles ad hoc networks | |
CN115883102B (zh) | 基于身份可信度的跨域身份认证方法、系统及电子设备 | |
Deng et al. | Designated-verifier anonymous credential for identity management in decentralized systems | |
Han et al. | A PKI without TTP based on conditional trust in blockchain | |
Li et al. | Blockchain-Based Portable Authenticated Data Transmission for Mobile Edge Computing: A Universally Composable Secure Solution | |
Prabhu et al. | Security in computer networks and distributed systems | |
Chatterjee et al. | A novel multi-server authentication scheme for e-commerce applications using smart card | |
An et al. | Secret handshakes: Full dynamicity, deniability and lattice-based design | |
Parnerkar et al. | Secret key distribution protocol using public key cryptography | |
Song et al. | Traceable revocable anonymous registration scheme with zero-knowledge proof on blockchain | |
Xu et al. | HERMS: A hierarchical electronic records management system based on blockchain with distributed key generation |
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 |