CN118101241A - 基于密钥封装机制的电子医疗数据隐私保护方法及系统 - Google Patents
基于密钥封装机制的电子医疗数据隐私保护方法及系统 Download PDFInfo
- Publication number
- CN118101241A CN118101241A CN202410071483.8A CN202410071483A CN118101241A CN 118101241 A CN118101241 A CN 118101241A CN 202410071483 A CN202410071483 A CN 202410071483A CN 118101241 A CN118101241 A CN 118101241A
- Authority
- CN
- China
- Prior art keywords
- key
- medical data
- encryption
- data
- patient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000005538 encapsulation Methods 0.000 title claims abstract description 32
- 230000007246 mechanism Effects 0.000 title claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 55
- 230000009466 transformation Effects 0.000 claims description 39
- 230000006835 compression Effects 0.000 claims description 27
- 238000007906 compression Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000009795 derivation Methods 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims description 3
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 3
- 101000878595 Arabidopsis thaliana Squalene synthase 1 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
Landscapes
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明公开了基于密钥封装机制的电子医疗数据隐私保护方法及系统,通过国密算法SM4对电子医疗数据进行对称加密,同时将传输的密钥进行国密算法SM2椭圆曲线公钥密码算法的非对称加密,接收医师端获得加密的电子医疗数据后先使用自己的国密算法SM2私钥对国密算法SM4对称加密密钥进行解密,再使用获得的密钥对电子医疗数据进行国密算法SM4解密获得患者电子医疗数据的明文;此外,对电子医疗系统用户信息使用国密算法SM3杂凑算法进行加密存储在数据库中;本发明能够显著提升医疗数据传输过程的安全性,提升用户信息的安全性和隐私性。
Description
技术领域
本发明涉及电子医疗数据隐私保护,具体涉及基于密钥封装机制的电子医疗数据隐私保护方法及系统。
背景技术
电子医疗服务在带给人们便利的同时,频发的电子医疗数据泄露事件,例如电子医疗数据被随意拍照泄露、电子病历的非法传播、患者医疗病历被随意调取以及网站入侵导致的电子医疗数据泄露等,也暴露出电子医疗数据存储的安全问题。为解决电子医疗数据隐私传输的安全问题,2023年吴龙等人提出了采用SM4-GCM(Galois/Counter Mode)算法对以明文形式存储在数据库中的电子病历信息、患者个人信息等敏感数据进行存储完整性和机密性保护的方案,从而降低敏感数据被窃取和非授权篡改风险。然而,使用单一的国密SM4算法难以满足医疗数据传输过程的安全性,保证用户信息的安全性和隐私性。
发明内容
发明目的:本发明的第一目的是针对当前电子医疗数据传输中存在的安全性和真实性问题,提供一种基于密钥封装机制的电子医疗数据隐私保护方法,以显著提升医疗数据传输过程的安全性,提升用户信息的安全性和隐私性;本发明的第二目的是提供一种基于密钥封装机制的电子医疗数据隐私保护系统。
技术方案:本发明所述的基于密钥封装机制的电子医疗数据隐私保护方法,包括:
(1)加密时,对电子医疗数据进行国密SM4对称加密,并使用国密SM2非对称加密公钥对国密SM4进行密钥封装;解密时,使用国密SM2非对称加密私钥解密获得国密SM4密钥,再使用国密SM4密钥解密获得患者医疗数据;
(2)使用国密SM3杂凑算法对系统用户的密码进行加密存储。
进一步地,步骤(1)包括:
(1-1)配置椭圆曲线系统参数G、授权接收医师的部门代码a与其标识码b,输出SM2非对称加密公钥SM2非对称加密私钥/>以及SM4对称加密密钥/>其中idA∈{0,1}*为授权接收医师的身份,pdA为患者医疗数据标识;
(1-2)根据SM2非对称加密公钥和SM4对称加密密钥/>输出SM4对称加密密钥/>经SM2非对称加密公钥/>加密后的密文/>
(1-3)配置国密SM4的系统参数FK与固定参数CK,使用SM4对称加密密钥加密患者医疗数据明文/>得到患者数据初始密文/>
(1-4)接收密钥封装后的密文患者数据初始密文/>根据授权接收医师的身份idA以及联合标识码a,b进行数据传输;
(1-5)使用SM2非对称加密私钥对密文/>进行解密,获得SM4对称加密密钥/>使用SM4对称加密密钥/>对患者数据初始密文/>进行解密,获得患者医疗数据明文/>
进一步地,步骤(1-1)包括:
计算椭圆曲线点C1=[k]G=(a,b),G≠O,计算得到字节串S=PC||a||b,使用随机数发生器,产生整数作为接收医师的国密算法SM2私钥并产生长度为128比特的国密算法SM4密钥/>计算接收医师非对称加密的公钥/>
进一步地,步骤(1-2)包括:
计算椭圆曲线点h是余因子,[h]表示计算h倍的/>的值;判断s是否为无穷远点,若是,则报错退出;否则继续计算;
计算椭圆曲线点K是正整数;将联合标识码a,b的数据类型转换为比特串/>使用密钥派生函数KDF计算参数/>klen为密钥长度,若t全为0比特串,则返回步骤(1-1);
计算且使用哈希函数Hash计算/>密文/> 表示32位异或运算;
可通过验证私钥值判断密文正确性,公式为:
进一步地,步骤(1-3)包括:
(1-3-1)SM4对称加密密钥SK=(SK0,SK1,SK2,SK3),其中SKi(i=0,1,2,3)为字,生成32比特字的轮密钥(rk0,rk1,…,rk31),使用系统参数FK=(FK0,FK1,FK2,FK3)和固定参数CK=(CK0,CK1,…,CK31)进行密钥扩展;
(1-3-2)计算生成轮密钥,患者医疗数据明文分解为PM0,PM1,PM2,PM3都表示32位的字,轮密钥为/>轮函数F如下式所示:
T(.)=L(τ(.)),为合成置换T的过程,是将有非线性变换的τ和线性变换的L复合;
(1-3-3)非线性变换τ由4个并行的S盒构成,输入经过S盒变换公式,输出Output=(PM'0,PM'1,PM'2,PM'3),且输出的值同时等于如下公式所得结果:τ(InPut)=(Sbox(PM0),Sbox(PM1),Sbox(PM2),Sbox(PM3));
(1-3-4)线性变换L,由步骤(1-3-3)算得非线性变换τ(Input)的输出是线性变换L的输入,设置线性变换的输入IpL与输出OpL,且即输入与输出之间变换的公式为:OpL=L(IpL),具体变换的公式如下:
(1-3-5)32次S盒迭代运算与1次反序变换R运算,其中32次迭代运算式为:以及反序变换R运算后输出患者数据初始密文,公式为
进一步地,步骤(1-5)包括:
(1-5-1)设klen为密文C2的比特长度,获得密文取出比特串C1,将数据类转换为椭圆曲线上的点,验证C1的正确性,不满足,则数据报错运算中断;
计算椭圆曲线点S=[h]C1,验证S是否为无穷远点,若是,则报错退出;否则继续计算;
(1-5-2)使用SM2非对称加密私钥计算/>将坐标转换为比特串;计算t=KDF(a0||b0,klen),验证t是否为全0比特串,若是,则报错退出;否则继续计算;
(1-5-3)从中取出比特串C2,计算/>计算验证因子数/>从/>取出C3,若μ≠C3,则报错退出;若μ=C3,则输出SM4对称加密密钥/>
(1-5-4)通过SM4对称加密密钥进行对称加密的解密操作以得到患者医疗数据明文/>其变换结构与加密的变换结构相同,使用轮密钥序(rk31,rk30,…,rk0)即可。
进一步地,步骤(2)包括:
(2-1)用户密码的填充,设置用户A的登录密码明文IVA,输出密码消息填充后的密码消息IV′A;
(2-2)用户密码的扩展,输入填充后的密码IV′A,按512比特进行分组,输出迭代压缩的结果V(n) A;
(2-3)用户密码的压缩,设定密码数据存放的8个寄存器,分别是R1,R2,R3,R4,R5,R6,R7,R8,同时设置中间变量SS1,SS2,TT1,TT2,用于压缩函数的计算,输出杂凑值V(n) A。
进一步地,步骤(2-1)包括:
设置的用户A密码初始明文为IVA,长度为l比特,首先将比特“1”添加到密码初始明文的末尾,再添加k个“0”,且k满足l+1+k≡448(mod512)的最小非负整数,再添加长度l的二进制比特串,填充后的密码IV′A比特长度即512的倍数。
进一步地,步骤(2-2)包括:
填充后的密码IV′A按512比特进行密码消息分组,IV′A=B(0)B(1)…B(n-1),其中n=(l+k+65)/512;
对IV′A使用压缩函数CF进行密码消息IV′A的迭代:V(i+1)=CF(V(i),B(i)),i=0,1…n-1,IVA为256比特初始值V(0),B(i)是填充后的密码消息分组,扩展生成132个消息字,即W0,W1,…,W67,W′0,W′1,…,W′63,用于压缩函数CF生成迭代压缩结果V(n) A;其中,压缩函数CF分为三步,先将密码消息分组B(i)划分为W0,W1,…,W15共16个字,再进行32比特异或运算并进行左向赋值运算,公式为:
最后,计算其中j随着数值的变化使用不同的运算方式取不同的值;
步骤(2-3)包括:
密码存放的8个寄存器分别命名为R1,R2,R3,R4,R5,R6,R7,R8,设置SS1,SS2,TT1,TT2为中间变量,使用压缩函数Vi+1=CF(V(i),B(i)),0≤i≤n-1进行计算,在j=0,1,…63范围内,计算过程如下,左向赋值中间变量SS1:SS1←((R1<<<12)+R5+(Ti<<<(jmod32)))<<<7,中间变量SS1与寄存器R1进行32比特循环左移12比特后左向赋值SS2:对R1,R2,R3寄存器数据进行布尔函数FFi计算并与寄存器R4,中间变量SS2与字Wi′相连并左向赋值到中间变量TT1,即TT1←FFi(R1,R2,R3)+R4+SS2+Wi′,字Wi′是将消息分组进行扩展生成的132个消息字,用于压缩函数的运算;对R5,R6,R7寄存器数据进行布尔函数GGi计算并与寄存器R8,中间变量SS1与字W'i相连并左向赋值到中间变量TT2,即TT2←GGi(R5,R6,R7)+R8+SS1+Wi′,再进行寄存器之间的左向赋值,即R4←R3,R3←R2<<<9,R2←R1,R1←TT1,R8←R7,R7←R6<<<19,R6←R5,最后对TT2使用压缩函数中置换函数P0进行左向赋值R5←P0(TT2);获得/>根据计算机特性,数据存储使用的是大端序,即左边为高有效位,右边为低有效位;最后输出的杂凑值是R1R2R3R4R5R6R7R8←V(n),V(n) A=R1R2R3R4R5R6R7R8;其中,当j∈[0,15]时,函数FFj与函数GGj进行32位比特异或运算,使用公式分别如下:函数/>函数当j∈[16,63]时,函数FFj与函数GGj进行32位比特与运算和32或运算,使用公式分别如下:函数FFj(R1,R2,R3)=(R1∧R2)∨(R1∧R3)∨(R2∧R3),函数GGj(R5,R6,R7)=(R5∧R6)∨(R5∧R7)∨(R6∧R7)。
本发明所述的基于密钥封装机制的电子医疗数据隐私保护系统,包括:
系统参数设置模块,用于配置椭圆曲线系统参数G、授权接收医师的部门代码a与其标识码b,输出SM2非对称加密公钥SM2非对称加密私钥/>以及SM4对称加密密钥/>其中idA∈{0,1}*为授权接收医师的身份,pdA为患者医疗数据标识;将SM4对称加密密钥/>发送给国密算法SM4对称加密模块、国密算法SM2非对称加密密钥封装模块、密钥解密模块和患者数据解密模块;将SM2非对称加密私钥/>发送给授权的接收医师端;
国密算法SM4对称加密模块,用于配置国密SM4的系统参数FK与固定参数CK,使用SM4对称加密密钥加密患者医疗数据明文/>得到患者数据初始密文/>
国密算法SM2非对称加密密钥封装模块,用于根据SM2非对称加密公钥和SM4对称加密密钥/>输出SM4对称加密密钥/>经SM2非对称加密公钥/>加密后的密文/>
密钥解密模块,用于根据SM2非对称加密私钥对密文/>进行解密,获得SM4对称加密密钥/>
以及,患者数据解密模块,用于根据SM4对称加密密钥对患者数据初始密文进行解密,获得患者医疗数据明文/>
有益效果:本发明与现有技术相比,具有如下显著优点:
本发明提供了国密算法SM2、SM3和SM4相结合,对患者电子医疗数据进行隐私保护的方案。采用国密算法SM4与SM2结合直接对患者电子医疗数据的密钥封装机制加密操作,具体来说,是将电子医疗数据进行国密算法SM4对称加密,同时将传输的密钥进行国密算法SM2椭圆曲线公钥密码算法的非对称加密,接收医师端获得加密的电子医疗数据后先使用自己的国密算法SM2私钥对国密算法SM4对称加密密钥进行解密,再使用获得的密钥对电子医疗数据进行国密算法SM4解密获得患者电子医疗数据的明文。这样不仅能有效规避电子医疗数据传输过程中被网站入侵者非法拦截后暴露数据明文,而且能防范非授权人对患者电子医疗数据的随意调取与拍照。同时,对电子医疗系统用户信息(即系统用户的密码)使用国密算法SM3杂凑算法进行加密存储在数据库中,能够保护用户信息不被恶意篡改和暴力破解,防止网站入侵后用户信息的明文泄露。
本发明能够显著提升医疗数据传输过程的安全性,提升用户信息的安全性和隐私性,提供了一种电子医疗数据隐私保护领域更全面、可靠的解决方案。
附图说明
图1是本申请实施例提供的基于密钥封装机制的电子医疗数据隐私保护方法流程框图;
图2是本申请实施例提供的基于密钥封装机制的电子医疗数据隐私保护方法数据交互示意图;
图3是本申请实施例中基于密钥封装机制的电子医疗数据隐私保护系统用户使用状态示意图;
图4是本申请实施例中基于密钥封装机制的电子医疗数据隐私保护系统用户使用流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
结合图1和图2,本申请实施例提供一种基于密钥封装机制的电子医疗数据隐私保护方法,整体分为两个步骤,包括使用国密算法SM4对称加密与国密算法SM2非对称加密,对患者医疗数据进行密钥封装的信息加密;使用国密算法SM3杂凑算法对系统用户的密码进行加密。
以下对这两个步骤做具体介绍。
(1)加密时,对电子医疗数据进行国密SM4对称加密,并使用国密SM2非对称加密公钥对国密SM4进行密钥封装;解密时,使用国密SM2非对称加密私钥解密获得国密SM4密钥,再使用国密SM4密钥解密获得患者医疗数据;
步骤(1)包括:
(1-1)密钥生成中心(Key Generator Centre,KGC)输入椭圆曲线系统参数G、授权接收医师的部门代码a与其标识码b(即以a,b作为联合标识码),输出SM2非对称加密公钥SM2非对称加密私钥/>以及SM4对称加密密钥/>其中idA∈{0,1}*为授权接收医师的身份,pdA为患者医疗数据标识;
使用患者输入椭圆曲线系统参数有限域Fq,接收医生的联合标识码a,b,根据国家标准GB/T32918.1-2016中3域和椭圆曲线的方法,确定密钥计算的椭圆曲线方程。KGC计算椭圆曲线点C1=[k]G=(a,b),G≠O,计算得到字节串S=PC||a||b。使用随机数发生器,产生整数作为接收医师的国密算法SM2私钥并产生长度为128比特的国密算法SM4密钥/>计算接收医师国密算法SM2加密使用的公钥/>
上述的是授权接收医师个人身份idA的国密算法SM2公钥和私钥,是患者医疗数据标识码为pdA的国密算法SM4加密密钥。国密算法SM2私钥与国密算法SM4密钥是由随机数发生器产生,国密算法SM2公钥由私钥计算得到。
(1-2)根据SM2非对称加密公钥和SM4对称加密密钥/>KGC输出SM4对称加密密钥/>经SM2非对称加密公钥/>加密后的密文/>
计算椭圆曲线点h是余因子,[h]表示计算h倍的PrKidA的值;判断s是否为无穷远点,若是,则报错退出;否则继续计算;
计算椭圆曲线点K是正整数;按照国家标准GB/T32918.1-2016中4.2数据类型转换方法将联合标识码a,b的数据类型转换为比特串/>使用密钥派生函数KDF计算参数/>klen为密钥长度,若t全为0比特串,则返回步骤(1-1);
计算且使用哈希函数Hash计算/>输出密文/> 表示32位异或运算;
接收医师端可通过验证私钥值判断密文正确性,公式为:
(1-3)配置国密SM4的系统参数FK与固定参数CK,使用SM4对称加密密钥加密患者医疗数据明文/>得到患者数据初始密文/>
(1-3-1)SM4对称加密密钥SK=(SK0,SK1,SK2,SK3),其中SKi(i=0,1,2,3)为字,生成32比特字的轮密钥(rk0,rk1,…,rk31),使用系统参数FK=(FK0,FK1,FK2,FK3)和固定参数CK=(CK0,CK1,…,CK31)进行密钥扩展;
(1-3-2)计算生成轮密钥,患者医疗数据明文分解为PM0,PM1,PM2,PM3都表示32位的字,即范围是在比特长度为32的二进制序列集合内,轮密钥为/>轮函数F如下式所示:
T(.)=L(τ(.)),为合成置换T的过程,是将有非线性变换的τ和线性变换的L复合;
(1-3-3)非线性变换τ由4个并行的S盒构成,输入经过S盒变换公式,输出Output=(PM'0,PM'1,PM'2,PM'3),且输出的值同时等于如下公式所得结果:τ(InPut)=(Sbox(PM0),Sbox(PM1),Sbox(PM2),Sbox(PM3));
(1-3-4)线性变换L,由步骤(1-3-3)算得非线性变换τ(Input)的输出是线性变换L的输入,设置线性变换的输入IpL与输出OpL,且IpL,即输入与输出之间变换的公式为:OpL=L(IpL),具体变换的公式如下:
(1-3-5)32次S盒迭代运算与1次反序变换R运算,其中32次迭代运算式为:以及反序变换R运算后输出患者数据初始密文,公式为
(1-4)服务器接收密钥封装后的密文患者数据初始密文/>根据授权接收医师的身份idA以及联合标识码a,b进行数据传输;
(1-5)服务器将患者数据的初始密文和密钥封装后的密文/>发送给接收医师端。接收医师端根据SM2非对称加密私钥/>对密文/>进行解密,获得SM4对称加密密钥/>使用SM4对称加密密钥/>对患者数据初始密文/>进行解密,获得患者医疗数据明文/>
(1-5-1)设klen为密文C2的比特长度,获得密文取出比特串C1,将数据类转换为椭圆曲线上的点,验证C1的正确性,不满足,则数据报错运算中断;
计算椭圆曲线点S=[h]C1,验证S是否为无穷远点,若是,则报错退出;否则继续计算;
(1-5-2)使用接收医师的SM2非对称加密私钥计算/>将坐标转换为比特串;计算t=KDF(a0||b0,klen),验证t是否为全0比特串,若是,则报错退出;否则继续计算;
(1-5-3)从中取出比特串C2,计算/>计算验证因子数/>从/>取出C3,若μ≠C3,则报错退出;若μ=C3,则输出SM4对称加密密钥/>
(1-5-4)接收医师通过SM4对称加密密钥进行对称加密的解密操作以得到患者医疗数据明文/>其变换结构与加密的变换结构相同,使用轮密钥序(rk31,rk30,…,rk0)即可。
(2)使用国密SM3杂凑算法对系统用户信息进行加密存储,即系统用户的密码进行加密存储。
步骤(2)包括:
(2-1)用户密码的填充,输入用户的登录密码明文,即设置用户A的登录密码明文IVA,输出密码消息填充后的密码消息IV′A;
设置的用户A密码初始明文为IVA,长度为l比特,首先将比特“1”添加到密码初始明文的末尾,再添加k个“0”,且k满足l+1+k≡448(mod512)的最小非负整数,再添加长度l的二进制比特串,填充后的密码IV′A比特长度即512的倍数。
(2-2)用户密码的扩展,输入填充后的密码IV′A,按512比特进行分组,输出迭代压缩的结果V(n) A;
填充后的密码IV′A按512比特进行密码消息分组,IV′A=B(0)B(1)…B(n-1),其中n=(l+k+65)/512;
对IV′A使用压缩函数CF进行密码消息IV′A的迭代:V(i+1)=CF(V(i),B(i)),i=0,1…n-1,IVA为256比特初始值V(0),B(i)是填充后的密码消息分组,扩展生成132个消息字,即W0,W1,…,W67,W′0,W′1,…,W′63,用于压缩函数CF生成迭代压缩结果V(n) A;其中,压缩函数CF分为三步,先将密码消息分组B(i)划分为W0,W1,…,W15共16个字,再进行32比特异或运算并进行左向赋值运算,公式为:
最后,计算其中在国家标准GB/T32905-2016中j随着数值的变化使用不同的运算方式取不同的值;
(2-3)用户密码的压缩,设定密码数据存放的8个寄存器,分别是R1,R2,R3,R4,R5,R6,R7,R8,同时设置中间变量SS1,SS2,TT1,TT2,用于压缩函数的计算,输出杂凑值V(n) A。
密码存放的8个寄存器分别命名为R1,R2,R3,R4,R5,R6,R7,R8,设置SS1,SS2,TT1,TT2为中间变量,使用压缩函数Vi+1=CF(V(i),B(i)),0≤i≤n-1进行计算,在j=0,1,…63范围内,计算过程如下,左向赋值中间变量SS1:SS1←((R1<<<12)+R5+(Ti<<<(jmod32)))<<<7,<<<k是32比特循环左移k比特运算;中间变量SS1与寄存器R1进行32比特循环左移12比特后左向赋值SS2:对R1,R2,R3寄存器数据进行布尔函数FFi计算并与寄存器R4,中间变量SS2与字Wi′相连并左向赋值到中间变量TT1,即TT1←FFi(R1,R2,R3)+R4+SS2+Wi′,字Wi′是按国家标准GB/T32905-20165.3.2方法,将消息分组进行扩展生成的132个消息字,用于压缩函数的运算;对R5,R6,R7寄存器数据进行布尔函数GGi计算并与寄存器R8,中间变量SS1与字W'i相连并左向赋值到中间变量TT2,即TT2←GGi(R5,R6,R7)+R8+SS1+Wi′,再进行寄存器之间的左向赋值,即R4←R3,R3←R2<<<9,R2←R1,R1←TT1,R8←R7,R7←R6<<<19,R6←R5,最后对TT2使用压缩函数中置换函数P0进行左向赋值R5←P0(TT2);获得根据计算机特性,数据存储使用的是大端序,即左边为高有效位,右边为低有效位;最后输出的杂凑值是R1R2R3R4R5R6R7R8←V(n),V(n) A=R1R2R3R4R5R6R7R8。其中,当j∈[0,15]时,函数FFj与函数GGj进行32位比特异或运算,使用公式分别如下:函数/>函数/>当j∈[16,63]时,函数FFj与函数GGj进行32位比特与运算和32或运算,使用公式分别如下:函数FFj(R1,R2,R3)=(R1∧R2)∨(R1∧R3)∨(R2∧R3),函数GGj(R5,R6,R7)=(R5∧R6)∨(R5^R7)∨(R6∧R7)。
本申请实施例还提供一种基于密钥封装机制的电子医疗数据隐私保护系统,包括:
系统参数设置模块,用于配置椭圆曲线系统参数G、授权接收医师的部门代码a与其标识码b,输出SM2非对称加密公钥SM2非对称加密私钥/>以及SM4对称加密密钥/>其中idA∈{0,1}*为授权接收医师的身份,pdA为患者医疗数据标识;将SM4对称加密密钥/>发送给国密算法SM4对称加密模块、国密算法SM2非对称加密密钥封装模块、密钥解密模块和患者数据解密模块;将SM2非对称加密私钥/>发送给授权的接收医师端;
国密算法SM4对称加密模块,用于配置国密SM4的系统参数FK与固定参数CK,使用SM4对称加密密钥加密患者医疗数据明文/>得到患者数据初始密文/>
国密算法SM2非对称加密密钥封装模块,用于根据SM2非对称加密公钥和SM4对称加密密钥/>输出SM4对称加密密钥/>经SM2非对称加密公钥/>加密后的密文/>
密钥解密模块,用于根据SM2非对称加密私钥对密文/>进行解密,获得SM4对称加密密钥/>
以及,患者数据解密模块,用于根据SM4对称加密密钥对患者数据初始密文进行解密,获得患者医疗数据明文/>
如图3和图4所示,为本申请实施例基于密钥封装机制的电子医疗数据隐私保护系统用户使用状态示意图,包括如下四个实体:
密钥生成中心(KGC):负责为患者医疗数据加密端生成密钥,为每个接收电子医疗数据的医师生成私钥,授予电子医疗数据使用者的消息解密能力。
服务器:传输数据,存储加密消息,执行密钥封装的过程。
患者信息上传端:对患者的医疗数据消息进行加密,将相关的密文和密钥上传到服务器。
接收医师端:授权的接收医师可以使用密钥生成中心分发的私钥对传输的对称加密密钥进行解密获得对称加密的密钥,使用该密钥下载相关电子医疗数据消息。
本申请实施例中,国密算法SM4遵循的标准号为GB/T32907-2016,国密算法SM2遵循的标准号为:GB/T32918.1-2016、GB/T32918.2-2016、GB/T32918.3-2016、GB/T32918.4-2016、GB/T32918.5-2017、GB/T35276-2017,国密算法SM3遵循的标准号为GB/T32905-2016。
下面将对申请实施例中所述的基于密钥封装机制的电子医疗数据隐私保护方法应用于某医院的场景进行示例说明。
假设某医院以使用了该项目,有患者在长期情况下在该院就医,该医院首先要将患者电子医疗数据进行上传,涉及到患者的隐私敏感数据(比如,患者的个人身份信息、患者的身体指标数据、患者患病情况)进行对称加密后,再利用患者信息上传端的公钥对对称加密密钥进行非对称加密。保障了加密密钥的安全传输,只允许具备相应私钥的接收医师才能解密该加密密钥,从而解锁患者的医疗数据。这种双重加密机制确保了在整个数据传输过程中,即使数据被截获,也无法轻易解读其中的敏感信息。接着对每个患者设置键值描述性标签以方便患者数据的流向追踪。比如,某一天该医院接诊的第一位患者,其描述为{“患者1”,“医疗数据1”}。这种标签系统不仅有助于医院内部的数据管理,还能够提供数据溯源的能力,让医疗人员能够追踪和访问特定患者的医疗数据。由于患者的医疗数据处于加密状态,这样,接收医师可以在不泄露患者个人信息的前提下,安全地查看和分析患者的医疗数据。
Claims (10)
1.基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,包括:
(1)加密时,对电子医疗数据进行国密SM4对称加密,并使用国密SM2非对称加密公钥对国密SM4进行密钥封装;解密时,使用国密SM2非对称加密私钥解密获得国密SM4密钥,再使用国密SM4密钥解密获得患者医疗数据;
(2)使用国密SM3杂凑算法对系统用户的密码进行加密存储。
2.根据权利要求1所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(1)包括:
(1-1)配置椭圆曲线系统参数G、授权接收医师的部门代码a与其标识码b,输出SM2非对称加密公钥SM2非对称加密私钥/>以及SM4对称加密密钥/>其中idA∈{0,1}*为授权接收医师的身份,pdA为患者医疗数据标识;
(1-2)根据SM2非对称加密公钥和SM4对称加密密钥/>输出SM4对称加密密钥经SM2非对称加密公钥/>加密后的密文/>
(1-3)配置国密SM4的系统参数FK与固定参数CK,使用SM4对称加密密钥加密患者医疗数据明文/>得到患者数据初始密文/>
(1-4)接收密钥封装后的密文患者数据初始密文/>根据授权接收医师的身份idA以及联合标识码a,b进行数据传输;
(1-5)使用SM2非对称加密私钥对密文/>进行解密,获得SM4对称加密密钥使用SM4对称加密密钥/>对患者数据初始密文/>进行解密,获得患者医疗数据明文/>
3.根据权利要求2所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(1-1)包括:
计算椭圆曲线点C1=[k]G=(a,b),G≠O,计算得到字节串S=PC||a||b,使用随机数发生器,产生整数作为接收医师的国密算法SM2私钥并产生长度为128比特的国密算法SM4密钥/>计算接收医师非对称加密的公钥/>
4.根据权利要求3所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(1-2)包括:
计算椭圆曲线点h是余因子,[h]表示计算h倍的/>的值;判断s是否为无穷远点,若是,则报错退出;否则继续计算;
计算椭圆曲线点K是正整数;将联合标识码a,b的数据类型转换为比特串/>使用密钥派生函数KDF计算参数/>klen为密钥长度,若t全为0比特串,则返回步骤(1-1);
计算且使用哈希函数Hash计算/>密文 表示32位异或运算;
可通过验证私钥值判断密文正确性,公式为:
5.根据权利要求4所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(1-3)包括:
(1-3-1)SM4对称加密密钥SK=(SK0,SK1,SK2,SK3),其中SKi(i=0,1,2,3)为字,生成32比特字的轮密钥(rk0,rk1,…,rk31),使用系统参数FK=(FK0,FK1,FK2,FK3)和固定参数CK=(CK0,CK1,…,CK31)进行密钥扩展;
(1-3-2)计算生成轮密钥,患者医疗数据明文分解为PM0,PM1,PM2,PM3都表示32位的字,轮密钥为/>轮函数F如下式所示:
T(.)=L(τ(.)),为合成置换T的过程,是将有非线性变换的τ和线性变换的L复合;
(1-3-3)非线性变换τ由4个并行的S盒构成,输入经过S盒变换公式,输出Output=(PM'0,PM'1,PM'2,PM'3),且输出的值同时等于如下公式所得结果:τ(InPut)=(Sbox(PM0),Sbox(PM1),Sbox(PM2),Sbox(PM3));
(1-3-4)线性变换L,由步骤(1-3-3)算得非线性变换τ(Input)的输出是线性变换L的输入,设置线性变换的输入IpL与输出OpL,且即输入与输出之间变换的公式为:OpL=L(IpL),具体变换的公式如下:
(1-3-5)32次S盒迭代运算与1次反序变换R运算,其中32次迭代运算式为:以及反序变换R运算后输出患者数据初始密文,公式为
6.根据权利要求5所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(1-5)包括:
(1-5-1)设klen为密文C2的比特长度,获得密文取出比特串C1,将数据类转换为椭圆曲线上的点,验证C1的正确性,不满足,则数据报错运算中断;
计算椭圆曲线点S=[h]C1,验证S是否为无穷远点,若是,则报错退出;否则继续计算;
(1-5-2)使用SM2非对称加密私钥计算/>将坐标转换为比特串;计算t=KDF(a0||b0,klen),验证t是否为全0比特串,若是,则报错退出;否则继续计算;
(1-5-3)从中取出比特串C2,计算/>计算验证因子数从/>取出C3,若μ≠C3,则报错退出;若μ=C3,则输出SM4对称加密密钥/>
(1-5-4)通过SM4对称加密密钥进行对称加密的解密操作以得到患者医疗数据明文/>其变换结构与加密的变换结构相同,使用轮密钥序(rk31,rk30,…,rk0)即可。
7.根据权利要求1至6中任一项所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(2)包括:
(2-1)用户密码的填充,设置用户A的登录密码明文IVA,输出密码消息填充后的密码消息IVA′;
(2-2)用户密码的扩展,输入填充后的密码IVA′,按512比特进行分组,输出迭代压缩的结果V(n) A;
(2-3)用户密码的压缩,设定密码数据存放的8个寄存器,分别是R1,R2,R3,R4,R5,R6,R7,R8,同时设置中间变量SS1,SS2,TT1,TT2,用于压缩函数的计算,输出杂凑值V(n) A。
8.根据权利要求7所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(2-1)包括:
设置的用户A密码初始明文为IVA,长度为l比特,首先将比特“1”添加到密码初始明文的末尾,再添加k个“0”,且k满足l+1+k≡448(mod512)的最小非负整数,再添加长度l的二进制比特串,填充后的密码IV′A比特长度即512的倍数。
9.根据权利要求8所述的基于密钥封装机制的电子医疗数据隐私保护方法,其特征在于,步骤(2-2)包括:
填充后的密码IV′A按512比特进行密码消息分组,IV′A=B(0)B(1)…B(n-1),其中n=(l+k+65)/512;
对IV′A使用压缩函数CF进行密码消息IVA′的迭代:V(i+1)=CF(V(i),B(i)),i=0,1…n-1,IVA为256比特初始值V(0),B(i)是填充后的密码消息分组,扩展生成132个消息字,即W0,W1,…,W67,W′0,W′1,…,W′63,用于压缩函数CF生成迭代压缩结果V(n) A;其中,压缩函数CF分为三步,先将密码消息分组B(i)划分为W0,W1,…,W15共16个字,再进行32比特异或运算并进行左向赋值运算,公式为:
最后,计算其中j随着数值的变化使用不同的运算方式取不同的值;
步骤(2-3)包括:
密码存放的8个寄存器分别命名为R1,R2,R3,R4,R5,R6,R7,R8,设置SS1,SS2,TT1,TT2为中间变量,使用压缩函数Vi+1=CF(V(i),B(i)),0≤i≤n-1进行计算,在j=0,1,…63范围内,计算过程如下,左向赋值中间变量SS1:SS1←((R1<<<12)+R5+(Ti<<<(jmod32)))<<<7,中间变量SS1与寄存器R1进行32比特循环左移12比特后左向赋值SS2:对R1,R2,R3寄存器数据进行布尔函数FFi计算并与寄存器R4,中间变量SS2与字Wi′相连并左向赋值到中间变量TT1,即TT1←FFi(R1,R2,R3)+R4+SS2+Wi′,字Wi′是将消息分组进行扩展生成的132个消息字,用于压缩函数的运算;对R5,R6,R7寄存器数据进行布尔函数GGi计算并与寄存器R8,中间变量SS1与字W'i相连并左向赋值到中间变量TT2,即TT2←GGi(R5,R6,R7)+R8+SS1+Wi′,再进行寄存器之间的左向赋值,即R4←R3,R3←R2<<<9,R2←R1,R1←TT1,R8←R7,R7←R6<<<19,R6←R5,最后对TT2使用压缩函数中置换函数P0进行左向赋值R5←P0(TT2);获得根据计算机特性,数据存储使用的是大端序,即左边为高有效位,右边为低有效位;最后输出的杂凑值是R1R2R3R4R5R6R7R8←V(n),V(n) A=R1R2R3R4R5R6R7R8;其中,当j∈[0,15]时,函数FFj与函数GGj进行32位比特异或运算,使用公式分别如下:函数/>函数/>当j∈[16,63]时,函数FFj与函数GGj进行32位比特与运算和32或运算,使用公式分别如下:函数FFj(R1,R2,R3)=(R1∧R2)∨(R1^R3)∨(R2∧R3),函数GGj(R5,R6,R7)=(R5∧R6)∨(R5∧R7)∨(R6∧R7)。
10.基于密钥封装机制的电子医疗数据隐私保护系统,其特征在于,包括:
系统参数设置模块,用于配置椭圆曲线系统参数G、授权接收医师的部门代码a与其标识码b,输出SM2非对称加密公钥SM2非对称加密私钥/>以及SM4对称加密密钥其中idA∈{0,1}*为授权接收医师的身份,pdA为患者医疗数据标识;将SM4对称加密密钥/>发送给国密算法SM4对称加密模块、国密算法SM2非对称加密密钥封装模块、密钥解密模块和患者数据解密模块;将SM2非对称加密私钥/>发送给授权的接收医师端;
国密算法SM4对称加密模块,用于配置国密SM4的系统参数FK与固定参数CK,使用SM4对称加密密钥加密患者医疗数据明文/>得到患者数据初始密文/>
国密算法SM2非对称加密密钥封装模块,用于根据SM2非对称加密公钥和SM4对称加密密钥/>输出SM4对称加密密钥/>经SM2非对称加密公钥/>加密后的密文
密钥解密模块,用于根据SM2非对称加密私钥对密文/>进行解密,获得SM4对称加密密钥/>
以及,患者数据解密模块,用于根据SM4对称加密密钥对患者数据初始密文/>进行解密,获得患者医疗数据明文/>
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410071483.8A CN118101241A (zh) | 2024-01-17 | 2024-01-17 | 基于密钥封装机制的电子医疗数据隐私保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410071483.8A CN118101241A (zh) | 2024-01-17 | 2024-01-17 | 基于密钥封装机制的电子医疗数据隐私保护方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118101241A true CN118101241A (zh) | 2024-05-28 |
Family
ID=91160959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410071483.8A Pending CN118101241A (zh) | 2024-01-17 | 2024-01-17 | 基于密钥封装机制的电子医疗数据隐私保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118101241A (zh) |
-
2024
- 2024-01-17 CN CN202410071483.8A patent/CN118101241A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3421950B2 (ja) | 非決定論的ミクスチャー発生器ストリーム暗号化システム | |
Nyang et al. | Improvement of Das's two-factor authentication protocol in wireless sensor networks | |
Chinnasamy et al. | Design of secure storage for health-care cloud using hybrid cryptography | |
Schäfer et al. | Security in fixed and wireless networks | |
CA2747891C (en) | Method for generating an encryption/decryption key | |
Ali et al. | An efficient cryptographic technique using modified Diffie–Hellman in wireless sensor networks | |
CN113783683B (zh) | 基于传感器网络的云平台隐私保护可验证数据聚合方法 | |
Reyad et al. | Key-based enhancement of data encryption standard for text security | |
Stallings | NIST block cipher modes of operation for authentication and combined confidentiality and authentication | |
Pandian et al. | Dynamic Hash key‐based stream cipher for secure transmission of real time ECG signal | |
CN116996327B (zh) | 一种基于分组密码的加密方法、解密方法以及产品 | |
Hwang et al. | Robust stream‐cipher mode of authenticated encryption for secure communication in wireless sensor network | |
Mohamed | New Frontiers in Cryptography: Quantum, Blockchain, Lightweight, Chaotic and DNA | |
Ding et al. | A lightweight and secure communication protocol for the IoT environment | |
Jammu et al. | Improved AES for Data Security in E-Health. | |
Olteanu et al. | A lightweight block cipher based on a multiple recursive generator for wireless sensor networks and RFID | |
JP5489115B2 (ja) | 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体 | |
CN118101241A (zh) | 基于密钥封装机制的电子医疗数据隐私保护方法及系统 | |
Murugan | An efficient algorithm on quantum computing with quantum key distribution for secure communication | |
Kumari et al. | Lightweight encryption with data and device integrity using NLFSR and PUF for the Internet of Medical Things | |
Radhakrishnan et al. | Development of a novel security scheme using DNA biocryptography for smart meter data communication | |
Thwe et al. | Prevention of Man-In-The-Middle Attack in Diffie-Hellman Key Exchange Algorithm using Proposed Hash Function | |
CN113923029B (zh) | 基于ecc混合算法的物联网信息加密方法 | |
Mantoro et al. | Preventing Cyber Crime in Electronic Medical Records Using Encryption Data | |
Rajesh | Double Encryption using TEA and DNA |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Jiang Furong Inventor after: Chen Liqing Inventor after: Wang Xiaofan Inventor after: Dong Fengrui Inventor after: Du Rui Inventor before: Jiang Furong Inventor before: Wang Xiaofan Inventor before: Dong Fengrui Inventor before: Du Rui Inventor before: Chen Liqing |