CN112635009A - 基于区块链的医疗数据加密方法 - Google Patents
基于区块链的医疗数据加密方法 Download PDFInfo
- Publication number
- CN112635009A CN112635009A CN202011570320.2A CN202011570320A CN112635009A CN 112635009 A CN112635009 A CN 112635009A CN 202011570320 A CN202011570320 A CN 202011570320A CN 112635009 A CN112635009 A CN 112635009A
- Authority
- CN
- China
- Prior art keywords
- patient
- medical record
- electronic medical
- requester
- doctor
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K17/00—Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H15/00—ICT specially adapted for medical reports, e.g. generation or transmission thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Public Health (AREA)
- Mathematical Analysis (AREA)
- Bioethics (AREA)
- Primary Health Care (AREA)
- Medical Informatics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Epidemiology (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于区块链的医疗数据加密方法,包括:患者、医生及请求者分别构造各自基于有限域的GRS码;患者、医生和请求者分别根据GRS码对应生成各自的公钥和私钥,并将各自的公钥上传至区块链;患者、医生分别使用各自的私钥共同对电子病历进行数字签名,得到包含双方数字签名的电子病历;患者使用自己的公钥对包含双方数字签名的电子病历进行加密,生成共同签名病历密文,并上传至区块链;请求者基于区块链发起电子病历查看授权请求,患者验证请求者身份后授权请求者查看电子病历。本发明基于区块链技术和数字签名加密技术,能够有效保证医疗信息在不同医疗机构、不同医生之间的安全共享,且能够验证医疗信息是否被篡改或被泄露。
Description
技术领域
本发明属于涉及区块链技术领域,具体涉及一种基于区块链的医疗数据加密方法。
背景技术
随着医疗卫生信息化建设进程的不断加快,医疗数据的类型和规模也在以前所未有的速度迅猛增长。病人就医过程中从挂号开始便将个人姓名、年龄、住址、电话等信息输入;面诊过程中病患的身体状况、医疗影像等信息也会被录入数据库;看病结束以后,费用信息、报销信息、医保使用情况等信息被添加到医院的大数据库里面;所有这些信息构成了病人就医过程中产生的医疗数据。
病人就医过程中产生的医疗数据涉及患者隐私,长期以来沉淀在医院等医疗机构的中心化数据库中,但由于各医疗机构之间数据孤立,信息难以共享,现诊治医生或医疗机构难以全面了解病人情况;且随着随着医疗机构信息化程度的提高,沉淀的大量医疗数据在共享时可能会面临被篡改、被泄露的风险。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于区块链的医疗数据加密方法。本发明要解决的技术问题通过以下技术方案实现:
一种基于区块链的医疗数据加密方法,包括:
患者、医生及请求者分别构造各自基于有限域的GRS码;
所述患者、所述医生和所述请求者分别根据所述GRS码对应生成各自的公钥和私钥,并将所述各自的公钥上传至区块链;
所述患者、所述医生分别使用各自的私钥共同对电子病历进行数字签名,得到包含双方数字签名的电子病历;
所述患者使用自己的公钥对所述包含双方数字签名的电子病历进行加密,生成共同签名病历密文,并上传至所述区块链;
所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历。
在本发明的一个实施例中,所述患者、医生及请求者分别构造各自基于有限域的GRS码,包括:
在本发明的一个实施例中,所述患者、所述医生和所述请求者分别根据所述GRS码对应生成各自的公钥和私钥,并将所述各自的公钥上传至区块链,包括:
所述患者、所述医生和所述请求者分别在各自的有限域内选取(n-k)×(n-k)的非奇异矩阵、n×n的稠密矩阵以及n×n的稀疏矩阵,且所述稠密矩阵的秩为z,所述稀疏矩阵的平均行重和列重为x,其中,z为自然数,且z小于n,x小于n;
所述患者、所述医生和所述请求者分别将各自的稠密矩阵以及所述稀疏矩阵进行矩阵的加法运算,得到各自的变换矩阵;
所述患者、所述医生和所述请求者分别将各自的非奇异矩阵的逆矩阵、校验矩阵以及所述变换矩阵的转置矩阵进行矩阵的乘法运算得到各自的公钥;其中,所述校验矩阵为所述GRS码(n-k)×n的矩阵;
所述患者、所述医生和所述请求者分别将各自的非奇异矩阵、所述校验矩阵、变换矩阵与译码算法作为各自的私钥;
所述患者、所述医生和所述请求者分别将所述各自的公钥上传至区块链。
在本发明的一个实施例中,所述患者、所述医生分别使用各自的私钥共同对电子病历进行数字签名,得到包含双方数字签名的电子病历,包括:
所述患者或所述医生对所述电子病历进行哈希运算生成电子病历摘要值;
所述患者和所述医生分别使用自己的私钥对所述电子病历摘要值进行加密,得到患者数字签名和医生数字签名;
所述患者或所述医生将所述患者数字签名和所述医生数字签名附加在所述电子病历上,得到包含双方数字签名的电子病历。
在本发明的一个实施例中,所述患者或所述医生对所述电子病历进行哈希运算生成电子病历摘要值,包括:
所述患者或所述医生对所述电子病历进行初次哈希运算;
对初次哈希运算得到的结果再次进行哈希运算,得到所述电子病历摘要值。
在本发明的一个实施例中,所述患者和所述医生分别使用自己的私钥对所述电子病历摘要值进行加密,得到患者数字签名和医生数字签名,包括:
所述患者和所述医生分别将所述各自的非奇异矩阵与所述摘要值进行乘法运算,得到各自的待译校正子;
所述患者和所述医生分别分别结合各自私钥的校验矩阵使用各自的译码算法对各自的待译校正子进行译码,得到各自的第一错误向量;
所述患者和所述医生分别将所述各自的第一错误向量与各自私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到各自的第二错误向量,所述第二错误向量的权重小于等于所述GRS码的纠错能力;
所述患者和所述医生分别将所述各自的第二错误向量分别作为各自的数字签名。
在本发明的一个实施例中,所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历,包括:
所述患者使用自己的私钥对所述共同签名病历密文进行解密,得到所述包含双方数字签名的电子病历;
所述患者使用所述请求者的公钥对所述包含双方数字签名的电子病历进行加密,得到所述请求者加密电子病历;
所述患者触发含所述请求者加密电子病历的授权交易;
所述请求者接收所述请求者加密电子病历,并使用自己的私钥对所述请求者加密电子病历进行解密,得到所述包含双方数字签名的电子病历。
在本发明的一个实施例中,在所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历之后,还包括:
所述请求者验证所述包含双方数字签名的电子病历是否为真实授权数据。
在本发明的一个实施例中,所述请求者验证所述包含双方数字签名的电子病历是否为真实授权数据,包括:
所述请求者从所述区块链获取所述患者的公钥和所述医生的公钥;
所述请求者分别使用所述患者的公钥和所述医生的公钥对所述包含双方数字签名的电子病历进行解密,得到待验证的两份电子病历摘要值;
所述请求者对所述电子病历进行哈希运算,得到所述电子病历摘要值;
所述请求者将所述待验证的两份电子病历摘要值与所述电子病历摘要值进行比较,若所述两份电子病历摘要值与所述电子病历摘要值相等,则验证成功,说明所述包含双方数字签名的电子病历为真实授权数据。
在本发明的一个实施例中,在所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历之后,还包括:
所述患者将授权记录上传区块链存证。
和现有技术相比,本发明的有益效果是:
本发明实施例提供的基于区块链的医疗信息加密方法,基于区块链技术和数字签名加密技术,能够有效保证医疗信息在不同医疗机构、不同医生之间的安全共享,且能够验证医疗信息是否被篡改或被泄露;此外,本发明的方案中加密所采用的数字签名方法,由于基于有限域的GRS码构建,使得该数字签名方案具有较高的可行性,能够减小公钥量,提高签名效率,并能够进一步提高安全性。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于区块链的医疗信息加密方法流程图;
图2是本发明实施例提供的另一种基于区块链的医疗信息加密方法流程图;
图3是本发明实施例提供的方法的可行性仿真结果图;
图4是本发明实施例提供的方法在不同纠错能力下的可行性仿真结果图;
图5是本发明实施例提供的方法在ISD译码攻击下的仿真结果图;
图6是本发明实施例提供的方法在不同纠错能力下的公钥量仿真结果图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
为了解决现有医疗数据一方面存在的难以共享,另一方面存在的共享时又面临的被篡改和被泄露的问题,本发明实施例提供了一种基于区块链的医疗数据加密方法。
请参见图1,图1是本发明实施例提供的一种基于区块链的医疗数据加密方法流程图;本发明实施例提供的基于区块链的医疗数据加密方法,包括S11~S15:
S11、患者、医生及请求者分别构造各自基于有限域的GRS码。
由于本发明的方案涉及的用户包括患者、医生和请求者三方,其中患者和医生需要对医疗数据进行加密,而请求者需要对加密的医疗数据解密,因此,需要三方分别构建基于有限域的GRS码,以分别生成各自的公钥和私钥。
其中,有限域可以选择包括q个元素的有限域Fq,且选取一正整数m,使q满足q=2m。
需要说明的是,本发明实施例之所以选择基于有限域Fq而不是选择基于通常的二进制,是因为在面对ISD译码攻击时,对于安全级别相同的码(比如:Goppa码),基于有限域Fq的Goppa码相比基于二进制Goppa码具有更小的公钥量。举例来说,具有128的安全级别的基于有限域的Goppa码,公钥量为725740bits;而具有128的安全级别的基于二进制Goppa码,公钥量为1537536bits。相比来说,基于有限域Fq的Goppa码的公钥量要比基于二进制Goppa码的公钥量小近一个数量级。
此外,本发明之所以选择GRS码而不是别的码(比如Goppa码),是因为GRS码是极大距离可分(MDS)码,码的性能好;且GRS码现有编译码器在各领域应用多,实用性好;此外,GRS码比Goppa码更灵活;以及GRS码具有可发展性更强的优势。
S12、患者、医生和请求者分别根据GRS码对应生成各自的公钥和私钥,并将各自的公钥上传至区块链。
示例的,该步骤可以包括S121~S125:
S121、患者、医生和请求者分别在各自的有限域内选取(n-k)×(n-k)的非奇异矩阵、n×n的稠密矩阵以及n×n的稀疏矩阵,且稠密矩阵的秩为z,稀疏矩阵的平均行重和列重为x,其中,z为自然数,且z小于n,x小于n。
作为本发明的一种实施方式,可以采用稠密矩阵的秩z远小于n,且稀疏矩阵的平均行重和列重x远小于n。
可选的,本发明的方案,对参数m、n、k、t以及x的选取有以下几种选择可供参考,参见表1,有且不限于这几种,但考虑到方案的正确性、可行性与安全性,以及公钥量和签名长度,本发明的方案优选采用表1列出的三组参数值。
表1参数选取
m | n | k | t | x |
12 | 4094 | 4074 | 10 | 1~1.1 |
16 | 65534 | 65516 | 9 | 1~1.1 |
10 | 1022 | 1002 | 10 | 1~1.1 |
需要说明的是,针对本发明的方案,患者、医生和请求者在构建GRS码过程中选择的参数可以相同,也可以不同,但都优选从表1中选择每组参数。
122、患者、医生和请求者分别将各自的稠密矩阵以及稀疏矩阵进行矩阵的加法运算,得到各自的变换矩阵。
具体的,加法运算采用公式(1):
S123、患者、医生和请求者分别将各自的非奇异矩阵的逆矩阵、校验矩阵以及变换矩阵的转置矩阵进行矩阵的乘法运算得到各自的公钥;其中,校验矩阵为GRS码(n-k)×n的矩阵。
具体的,乘法运算采用公式(2):
S124、患者、医生和请求者分别将各自的非奇异矩阵、校验矩阵、变换矩阵与译码算法作为各自的私钥。
可以理解的是,公钥用于对外公开,私钥用于存储。公钥和私钥是一个算法中不同的两个参数集合,但内在又相关联的参数集合,公钥和私钥是同时生成,但可以独立使用的。
S125、患者、医生和请求者分别将各自的公钥上传至区块链。
将患者、医生和请求者的公钥分别上传区域链,目的是为了实现在电子病历的传递和共享过程中,发送方能够对电子病历进行加密操作,接收方或请求放能够对电子病历进行解密或验证操作。
S13、患者、医生分别使用各自的私钥共同对电子病历进行数字签名,得到包含双方数字签名的电子病历。
需要说明的是,本发明的方案中,医疗数据主要是指电子病历信息,对医疗数据进行加密的过程即可对患者的电子病历加密的过程。
该步骤中,患者使用患者的私钥对电子病历进行数字签名,得到患者数字签名的电子病历;医生使用医生的私钥对电子病历进行数字签名,得到医生数字签名的电子病历;患者数字签名的电子病历和医生数字签名的电子病历构成包含双方数字签名的电子病历。
示例的,该步骤可以包括S131~S132:
S131、患者或医生对电子病历进行哈希运算生成电子病历摘要值。
哈希运算指的是可将任意长度的消息映射成固定长度消息的算法,本发明实施的哈希运算可以采用MD4、MD5或者SHA256中的任意一种。其中,病历摘要作为未经过加密的明文,明文即人可直观地理解其意思的字符,通过哈希算法进行第一加密将任意长度的明文映射成一串固定长度的密文,密文即经过加密后的字符串,人无法直观地理解其意思,这串密文即为数字摘要。本步骤通过哈希运算,由电子病历明文生成病历摘要值,该病历摘要值用于电子病历的下一步加密。
需要说明的是,对电子病历进行哈希运算生成电子病历摘要值可以由医生来操作,也可以由患者来操作。
本步骤中对电子病历进行哈希运算生成电子病历摘要值,可以包括S1311~S1312:
S1311、对需要进行数字签名的电子病历进行初次哈希运算。
若用M表示电子病历明文,对电子病历进行初次哈希运算得到h(M)。
S1312、对初次哈希运算得到的结果再次进行哈希运算,得到电子病历摘要值。
本步骤中,对初次哈希运算得到的结果h(M)再次进行哈希运算,得到电子病历摘要Sx,即计算Sx=h(h(M)|i),其中,i=0,1,2……。本发明实施例中取i=0,使电子病历摘要Sx为一个长度为n-k的向量。
在其他实施例中,也可以使用一次或多次哈希运算得到电子病历摘要值,满足固定长度的输出即可。
S132、患者和医生分别使用自己的私钥对电子病历摘要值进行加密,得到患者数字签名和医生数字签名。
患者和医生分别使用自己的私钥对电子病历摘要值进行加密的具体方法是相同的,可以包括S1321~S1322:
S1321、患者和医生分别将各自的非奇异矩阵与摘要值进行乘法运算,得到各自的待译校正子。
具体的,乘法运算采用公式(3):
S1322、患者和医生分别分别结合各自私钥的校验矩阵使用各自的译码算法对各自的待译校正子进行译码,得到各自的第一错误向量。
译码算法可以选用现有的任一译码算法,本实施例中,译码算法优选为时域上的迭代译码算法,即:BM迭代译码算法(Berlekamp-Massey)、钱式搜索算法(Chien)以及Forney算法的组合。该译码算法速度快,实现简单,易于用计算机实现,因此是一种快速译码算法。
可选的,译码算法可以包括以下几个步骤:
步骤一:计算校正子;
步骤二:确定错误位置多项式;
步骤三:确定错误估值函数;
步骤四:求解错误位置数和错误数值,并进行纠错。
完成上述四步即可完成一次译码,若译码成功,则直接译出错误向量;否则,将视为译码失败。
结合本发明实施例的方案,若译码失败,则使i'=i+1,从S131重新开始哈希运算重新译码,直到译码成功,得到第一错误向量。
S1323、患者和医生分别将各自的第一错误向量与各自私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到各自的第二错误向量,第二错误向量的权重小于等于GRS码的纠错能力。
具体的,本步骤的乘法运算采用公式(4):
S1324、患者和医生分别将各自的第二错误向量分别作为各自的数字签名。
至此,已经得到基于错误向量纠错码的数字签名,但该错误向量中由于存在多个0元素,占用较多的比特位。为减小比特位数,本发明提供的方案在上述实施例的基础上,可以进一步优化。
优选的,在得到第二错误向量之后,还包括以下步骤:
对第二错误向量构建索引对,得到第二错误向量的索引对。
具体的,第二错误向量的索引对可以根据公式(5)得到。
其中,Ie表示索引对。
即提取第二错误向量中的非零元素标记为错误值,用错误位置α以及错误位置c构建第二错误向量的索引对Ie。
相应的,将索引对作为数字签名。
在优选的方案里,通过进一步对生成的第二错误向量建立索引对,并将索引作为数字签名,可以减少比特位数,从而减小签名长度。
S133、患者或医生将患者数字签名和医生数字签名附加在电子病历上,得到包含双方数字签名的电子病历。
本步骤中,得到包含双方数字签名的电子病历的具体操作可以由患者或医生任一方进行相应的操作即可。
S14、患者使用自己的公钥对包含双方数字签名的电子病历进行加密,生成共同签名病历密文,并上传至区块链。
通过进一步采用公钥对包含双方数字签名的电子病历进行加密,使得在区块链上用于共享的电子病历转换为不可读的格式,以进一步提高安全性。
S15、请求者基于区块链发起电子病历查看授权请求,患者验证请求者身份后授权请求者查看电子病历。
请求者可以为医生、医疗机构等任意合规的个人或机构,也可以是同一个医疗机构的不同医生,或者是不同医疗机构的医生,甚至是不同的医疗机构。
可选的,该步骤可以包括S151~S154:
S151、患者使用自己的私钥对共同签名病历密文进行解密,得到包含双方数字签名的电子病历。
对应于上述S14中生成共同签名病历密文的步骤,患者在接到请求者提出的查看请求并验证请求者身份后,从区块链上获取共同签名病历密文,并使用自己的私钥对共同签名病历密文进行解密,将包含双方数字签名的电子病历恢复出来。
S152、患者使用请求者的公钥对包含双方数字签名的电子病历进行加密,得到请求者加密电子病历。
在恢复出包含双方数字签名的电子病历后,为了保证在向请求者发送过程中的数据安全,需要使用请求者的公钥对包含双方数字签名的电子病历进行加密。
S153、患者触发含请求者加密电子病历的授权交易。
在使用请求者的公钥对包含双方数字签名的电子病历进行加密后,患者需要触发对请求者查看电子病历请求的授权交易,触发的手段可以是直接授权。
S154、请求者接收请求者加密电子病历,并使用自己的私钥对请求者加密电子病历进行解密,得到包含双方数字签名的电子病历。
由于请求者接收的请求者加密电子病历是基于请求者的公钥进行加密的,因此请求者在接收到之后,可以采用该公钥所对应的私钥对该请求者加密电子病历进行解密,解密之后得到包含双方数字签名的电子病历,该包含双方数字签名的电子病历具体包括患者的电子病历明文信息,患者数字签名和医生数字签名。此时,请求者既可以看到所需的患者的电子病历信息,又可以通过患者的公钥对患者数字签名进行验证,通过医生的公钥对医生的数字签名进行验证,以确保电子病历在传递过程中没有被篡改或泄露。
请参见图2,图2是本发明实施例提供的另一种基于区块链的医疗信息加密方法;在上述步骤的基础上,本发明的实施例还可以包括:
S16、请求者验证包含双方数字签名的电子病历是否为真实授权数据。
示例的,该步骤又可以包括S161~S164:
S161、请求者从区块链获取患者的公钥和医生的公钥。
由于患者和医生的公钥在生成后就已经上传至区块链,因此请求者在需要对数字签名进行验证时,只需要从区块链获取相应的公钥即可。
S162、请求者分别使用患者的公钥和医生的公钥对包含双方数字签名的电子病历进行解密,得到待验证的两份电子病历摘要值。
请求者使用患者的公钥对包含患者数字签名的电子病历进行解密,得到患者待验证的电子病历摘要值;同样的,请求者使用医生的公钥对包含医生数字签名的电子病历进行解密,得到医生待验证的电子病历摘要值;利用公钥对电子病历进行解密得到待验证的电子病历摘要值的方法是相同的,具体可以是:
对应于上述签名方法中将得到的第二错误向量作为数字签名的方案,本步骤是利用公钥直接对第二错误向量进行解密,得到待验证摘要值。
对应于上述签名方法中将得到的索引对作为数字签名的方案,本步骤需要先根据索引对恢复出第二错误向量,然后再利用公钥对第二错误向量进行解密,得到待验证摘要值。
利用公钥对第二错误向量进行解密,即根据公式(6)得到待验证摘要值:
其中,y表示待验证摘要值。
S163、请求者对电子病历进行哈希运算,得到电子病历摘要值。
需要说明的是,此处的电子病历是不包含患者和医生电子签名的电子病历明文,和前述哈希运算同样的方法,需要进行两次哈希运算,得到摘要值y'=h(h(M)|i)。
S164、请求者将待验证的两份电子病历摘要值与电子病历摘要值进行比较,若两份电子病历摘要值与电子病历摘要值相等,则验证成功,说明包含双方数字签名的电子病历为真实授权数据。
比较待验证摘要值y与摘要值y',若y=y',即待验证摘要值与摘要值相等,验证签名成功,说明包含双方数字签名的电子病历为真实授权数据;否则,验证签名失败,说明电子病历信息被篡改或被泄露。
此外,在S15请求者基于区块链发起电子病历查看授权请求,患者验证请求者身份后授权请求者查看电子病历之后,还可以包括:
S17、患者将授权记录上传区块链存证。
需要说明的是,S17和S16均在S15之后,但两者之间不并存在先后顺序。
本发明实施例提供的基于区块链的医疗信息加密方法,基于区块链技术和数字签名加密技术,能够有效保证医疗信息在不同医疗机构、不同医生之间的安全共享,且能够验证医疗信息是否被篡改或被泄露;此外,本发明的方案中加密所采用的数字签名方法,由于基于有限域的GRS码构建,使得该数字签名方案具有较高的可行性,能够减小公钥量,提高签名效率,并能够进一步提高安全性。
本发明实施例提供的基于区块链的医疗信息加密方法,其核心技术是利用数字签名方法进行加密,
因此以下,分别从签名的正确性、可行性、安全性、公钥量以及签名长度这五个方面对本发明实施例提供的方案进行验证。
(1)正确性:
正确性的验证也是对数字签名是否验签成功的验证,需要证明利用公钥对第二错误向量进行解密得到的待验证摘要值与加密过程中得到的摘要值相等,即可证明正确性。具体过程如下:
利用公钥对第二错误向量进行解密得到待验证摘要值,其中,公钥是基于非奇异矩阵的逆矩阵、校验矩阵以及变化矩阵的转置矩阵进行矩阵的乘法运算得到的,即上述公式(2);第二错误向量是基于第一错误向量与私钥的变化矩阵的逆矩阵进行矩阵的乘法运算得到的,即上述公式(4);待验证摘要值是基于公钥中的每一列根据αj索引的对应行的值与cj的乘积得到的,即上述公式(6)。
因此,将公式(2)以及公式(4)代入公式(6)可以得到,
对上述公式(7)进行简化公式,可以得到:
待译校正子是基于非奇异矩阵与摘要值进行乘法运算得到的,即上述公式(3)。
因此,根据公式(3),得到y=Sx,即能够得到y=y',验证成功,说明签名正确。
(2)可行性:
基于有限域Fq的GRS码签名的参数对(m,t)在选取上不仅要保证平均查找次数在千万数量级以下,还要保证参数对的选取不能过小。
参见图2,图2是本发明实施例提供的方法的可行性仿真结果图。图中表示了纠错能力t与平均查找次数的对数log2Z之间的关系。由图2可以看出,纠错能力t与平均查找次数的对数log2Z成正比,也就是平均查找次数Z与纠错能力t呈指数关系。
图2中的横线表示千万数量级的运算,图中数据x表示m,y表示log2Z。
当纠错能力t的值大于10后,平均查找次数将会过大,因此,纠错能力t选取小于等于10更为合适。
参考图3,图3是本发明实施例提供的方法在不同纠错能力下的可行性仿真结果图。图3表示的是纠错能力t取9和10时,m与平均查找次数的对数的关系。图中数据x表示m,y表示log2Z。由图3可以看出,当m≥12时,随着m的增大,log2Z趋于平稳,几乎没有什么变化;当m<12时,会增加平均查找次数。因此,m取大于等于12较为合适。
另外,根据图3可以得到表2的两组数据:
表2(a)
m(t=10) | 6 | 8 | 10 | 12 | 14 | 16 | 18 |
log<sub>2</sub> Z | 23.33 | 22.16 | 21.88 | 21.81 | 21.80 | 21.79 | 21.79 |
表2(b)
m(t=9) | 6 | 8 | 10 | 12 | 14 | 16 | 18 |
log<sub>2</sub> Z | 19.74 | 18.78 | 18.55 | 18.49 | 18.47 | 18.4703 | 18.47 |
已知CFS签名使用的参数对(m,t)为(15,10)以及(16,9)。当参数对为(15,10)时,CFS签名的平均查找次数的对数值为27.7911,基于有限域Fq的GRS码签名的平均查找次数的对数值为21.7933;当参数对为(16,9)时,CFS签名的平均查找次数的对数值为18.4691,基于有限域Fq的GRS码签名的平均查找次数的对数值为18.4703。
相比较来说,在两种参数对下,CFS签名与基于有限域Fq的GRS码签名的平均查找次数的数据差别不大,因此本发明实施例提供的一种基于GRS码的在线投标方法具有可行性。
(3)安全性:
参考图4,图4是本发明实施例提供的方法在ISD译码攻击下的仿真结果图。图4表示的是在在ISD译码攻击的情况下,m与安全级别SL的关系。
ISD译码攻击下的安全级别系数与m和t的乘积呈指数关系,基于上述条件,t选取小于等于10。即当t确定下,m越大,安全级别系数越高。
图中数据x表示m,y表示SL。从图4可以看出,基于有限域Fq的GRS码数字签名在参数对选取为(10,10)时,安全级别SL可以达到80,已经达到了一般安全级别,而在选取的参数对为(16,9)时,安全级别SL超过了128。
在ISD译码攻击下,当参数对为(15,10)时,CFS签名的安全级别系数SL为76.89,基于有限域Fq的GRS码签名的安全级别系数SL为135.42;当参数对为(16,9)时,CFS签名的安全级别系数SL为76.92,基于有限域Fq的GRS码签名的安全级别系数SL为135.56。
相比较来看,本发明实施例提供的基于有限域Fq的GRS码签名在ISD译码攻击下,具有较高的安全级别系数。
另外,本发明实施例提供的基于有限域Fq的GRS码签名还能有效抵抗区分攻击,而CFS签名在区分攻击下的参数选取存在缺陷。
(4)公钥量:
参考图5,图5是本发明实施例提供的方法在不同纠错能力下的公钥量仿真结果图。图5表示的是纠错能力t取9和10时,m与公钥量的关系。图中数据x表示m,y表示k·(n-k)·log2q。由图5可以看出,公钥量与m呈指数关系,而不同纠错能力t下,对公钥量的影响不是很明显。虽然当m越大,基于有限域Fq的GRS码签名越安全,但也会导致公钥量越大。因此,选取较为合适的m,使得安全系数较高且公钥量较小,例如m取10、12等。
(5)签名长度:
本发明实施例提供的基于有限域Fq的GRS码签名,签名长度为2m·tp+log2 Z。
表3为基于有限域Fq的GRS码签名与CFS签名在两组不同参数对下,平均查找次数、安全级别、公钥量以及签名长度的对比。
表3不同参数对下基于有限域Fq的GRS码签名与CFS签名的参数对比
从表3可以看出,在不同的参数对下,本发明实施例提供的基于有限域Fq的GRS码签名的安全级别系数比CFS签名的安全级别系数要高,但是公钥量以及数字签名长度也要大一些。
因此,选取几组不同的参数对对基于有限域Fq的GRS码签名的参数进行仿真,结果如表4所示。
表4不同参数对下基于有限域Fq的GRS码签名的参数
参数对 | 平均查找次数 | 安全级别(SL) | 公钥量 | 签名长度(bits) |
(11,9) | 18.5072 | 85.5239 | 401544 | 195 |
(10,10) | 21.8829 | 80.3254 | 200400 | 202 |
(12,10) | 21.8140 | 102.3972 | 977760 | 238 |
本发明实施例提供的基于有限域Fq的GRS码签名,在提升安全级别系数的前提下,能够降低参数对的选择,减少公钥量以及签名长度。
通过以上验证说明本发明的数字签名方案具有正确性、可行性、安全性,以及公钥量降低、签名长度减小等效果。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于区块链的医疗数据加密方法,其特征在于,包括:
患者、医生及请求者分别构造各自基于有限域的GRS码;
所述患者、所述医生和所述请求者分别根据所述GRS码对应生成各自的公钥和私钥,并将所述各自的公钥上传至区块链;
所述患者、所述医生分别使用各自的私钥共同对电子病历进行数字签名,得到包含双方数字签名的电子病历;
所述患者使用自己的公钥对所述包含双方数字签名的电子病历进行加密,生成共同签名病历密文,并上传至所述区块链;
所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历。
3.根据权利要求2所述的基于区块链的医疗数据加密方法,其特征在于,所述患者、所述医生和所述请求者分别根据所述GRS码对应生成各自的公钥和私钥,并将所述各自的公钥上传至区块链,包括:
所述患者、所述医生和所述请求者分别在各自的有限域内选取(n-k)×(n-k)的非奇异矩阵、n×n的稠密矩阵以及n×n的稀疏矩阵,且所述稠密矩阵的秩为z,所述稀疏矩阵的平均行重和列重为x,其中,z为自然数,且z小于n,x小于n;
所述患者、所述医生和所述请求者分别将各自的稠密矩阵以及所述稀疏矩阵进行矩阵的加法运算,得到各自的变换矩阵;
所述患者、所述医生和所述请求者分别将各自的非奇异矩阵的逆矩阵、校验矩阵以及所述变换矩阵的转置矩阵进行矩阵的乘法运算得到各自的公钥;其中,所述校验矩阵为所述GRS码(n-k)×n的矩阵;
所述患者、所述医生和所述请求者分别将各自的非奇异矩阵、所述校验矩阵、变换矩阵与译码算法作为各自的私钥;
所述患者、所述医生和所述请求者分别将所述各自的公钥上传至区块链。
4.根据权利要求3所述的基于区块链的医疗数据加密方法,其特征在于,所述患者、所述医生分别使用各自的私钥共同对电子病历进行数字签名,得到包含双方数字签名的电子病历,包括:
所述患者或所述医生对所述电子病历进行哈希运算生成电子病历摘要值;
所述患者和所述医生分别使用自己的私钥对所述电子病历摘要值进行加密,得到患者数字签名和医生数字签名;
所述患者或所述医生将所述患者数字签名和所述医生数字签名附加在所述电子病历上,得到包含双方数字签名的电子病历。
5.根据权利要求4所述的基于区块链的医疗数据加密方法,其特征在于,所述患者或所述医生对所述电子病历进行哈希运算生成电子病历摘要值,包括:
所述患者或所述医生对所述电子病历进行初次哈希运算;
对初次哈希运算得到的结果再次进行哈希运算,得到所述电子病历摘要值。
6.根据权利要求5所述的基于区块链的医疗数据加密方法,其特征在于,所述患者和所述医生分别使用自己的私钥对所述电子病历摘要值进行加密,得到患者数字签名和医生数字签名,包括:
所述患者和所述医生分别将所述各自的非奇异矩阵与所述摘要值进行乘法运算,得到各自的待译校正子;
所述患者和所述医生分别分别结合各自私钥的校验矩阵使用各自的译码算法对各自的待译校正子进行译码,得到各自的第一错误向量;
所述患者和所述医生分别将所述各自的第一错误向量与各自私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到各自的第二错误向量,所述第二错误向量的权重小于等于所述GRS码的纠错能力;
所述患者和所述医生分别将所述各自的第二错误向量分别作为各自的数字签名。
7.根据权利要求6所述的基于区块链的医疗数据加密方法,其特征在于,所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历,包括:
所述患者使用自己的私钥对所述共同签名病历密文进行解密,得到所述包含双方数字签名的电子病历;
所述患者使用所述请求者的公钥对所述包含双方数字签名的电子病历进行加密,得到所述请求者加密电子病历;
所述患者触发含所述请求者加密电子病历的授权交易;
所述请求者接收所述请求者加密电子病历,并使用自己的私钥对所述请求者加密电子病历进行解密,得到所述包含双方数字签名的电子病历。
8.根据权利要求7所述的基于区块链的医疗数据加密方法,其特征在于,在所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历之后,还包括:
所述请求者验证所述包含双方数字签名的电子病历是否为真实授权数据。
9.根据权利要求8所述的基于区块链的医疗数据加密方法,其特征在于,所述请求者验证所述包含双方数字签名的电子病历是否为真实授权数据,包括:
所述请求者从所述区块链获取所述患者的公钥和所述医生的公钥;
所述请求者分别使用所述患者的公钥和所述医生的公钥对所述包含双方数字签名的电子病历进行解密,得到待验证的两份电子病历摘要值;
所述请求者对所述电子病历进行哈希运算,得到所述电子病历摘要值;
所述请求者将所述待验证的两份电子病历摘要值与所述电子病历摘要值进行比较,若所述两份电子病历摘要值与所述电子病历摘要值相等,则验证成功,说明所述包含双方数字签名的电子病历为真实授权数据。
10.根据权利要求1所述的基于区块链的医疗数据加密方法,其特征在于,在所述请求者基于所述区块链发起电子病历查看授权请求,所述患者验证所述请求者身份后授权所述请求者查看电子病历之后,还包括:
所述患者将授权记录上传区块链存证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011570320.2A CN112635009A (zh) | 2020-12-26 | 2020-12-26 | 基于区块链的医疗数据加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011570320.2A CN112635009A (zh) | 2020-12-26 | 2020-12-26 | 基于区块链的医疗数据加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112635009A true CN112635009A (zh) | 2021-04-09 |
Family
ID=75325569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011570320.2A Withdrawn CN112635009A (zh) | 2020-12-26 | 2020-12-26 | 基于区块链的医疗数据加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112635009A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113707256A (zh) * | 2021-08-31 | 2021-11-26 | 平安国际智慧城市科技股份有限公司 | 医疗数据的加密方法、系统及存储介质 |
CN113726772A (zh) * | 2021-08-30 | 2021-11-30 | 平安国际智慧城市科技股份有限公司 | 实现在线问诊会话的方法、装置、设备及存储介质 |
CN113963767A (zh) * | 2021-10-28 | 2022-01-21 | 广东粤信智能科技有限公司 | 个人诊疗数据共享保护方法、存储介质及电子病历系统 |
-
2020
- 2020-12-26 CN CN202011570320.2A patent/CN112635009A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726772A (zh) * | 2021-08-30 | 2021-11-30 | 平安国际智慧城市科技股份有限公司 | 实现在线问诊会话的方法、装置、设备及存储介质 |
CN113707256A (zh) * | 2021-08-31 | 2021-11-26 | 平安国际智慧城市科技股份有限公司 | 医疗数据的加密方法、系统及存储介质 |
CN113963767A (zh) * | 2021-10-28 | 2022-01-21 | 广东粤信智能科技有限公司 | 个人诊疗数据共享保护方法、存储介质及电子病历系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112635009A (zh) | 基于区块链的医疗数据加密方法 | |
US9893880B2 (en) | Method for secure symbol comparison | |
JP7065888B6 (ja) | 暗号装置及び方法 | |
JP6738062B2 (ja) | 暗号文照合システム、方法、および記録媒体 | |
Dumas et al. | Foundations of coding: compression, encryption, error correction | |
JP6738061B2 (ja) | 暗号文照合システム、方法、および記録媒体 | |
WO2022134119A1 (zh) | 基于区块链的电子病历共享方法和电子设备 | |
CN112635008A (zh) | 基于数字签名的医疗检验报告生成方法 | |
CN112398646B (zh) | 理想格上具有短公共参数的身份基加密方法及系统 | |
CN112613760A (zh) | 基于区块链技术的产品质量评定方法及系统 | |
CN111159724B (zh) | 一种细粒度策略的条件代理可重构加密方法 | |
CN112613008A (zh) | 一种学生身份在线认证方法及系统 | |
CN112614557A (zh) | 电子病历加密存档方法 | |
CN112769573B (zh) | 一种基于grs码的数字签名方法、验签方法及其装置 | |
Dzwonkowski et al. | Reversible data hiding in encrypted DICOM Images using cyclic binary golay (23, 12) code | |
CN112614558A (zh) | 基于区块链的电子病历共享方法和电子设备 | |
CN112613078A (zh) | 一种文档电子签名方法、验签方法及其装置 | |
CN112631992A (zh) | 一种电子文件归档方法及系统 | |
CN112613844A (zh) | 一种人事合同电子签名方法 | |
CN112613054A (zh) | 一种基于grs码的电子档案验证方法、装置、电子设备 | |
WO2022137447A1 (ja) | 秘匿情報処理システムおよび秘匿情報処理方法 | |
CN112634092A (zh) | 一种基于区块链的合同认证方法、装置、电子设备 | |
CN112613879A (zh) | 一种基于grs码的金融交易数据处理方法 | |
CN112633712A (zh) | 一种基于grs码的在线投标方法及系统 | |
CN112614001A (zh) | 基于区块链的农产品追溯方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210409 |
|
WW01 | Invention patent application withdrawn after publication |