[发明专利]一种基于SM2和SM4的电子病历混合加密方法有效

专利信息
申请号: 202010084908.0 申请日: 2020-02-10
公开(公告)号: CN111310203B 公开(公告)日: 2023-02-03
发明(设计)人: 杨祖元;陈怡雯;张宇轩;陈禧琛;黄昊楠;李珍妮;孙为军 申请(专利权)人: 广东工业大学
主分类号: G06F21/60 分类号: G06F21/60;G16H10/60
代理公司: 广东广信君达律师事务所 44329 代理人: 李庆伟
地址: 510062 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 sm2 sm4 电子 病历 混合 加密 方法
【权利要求书】:

1.一种基于SM2和SM4的电子病历混合加密方法,其特征在于,包括下述步骤:

步骤一,采用HL7 CDA R2标准框架建立电子病历临床文档;电子病历通常需要在不同系统之间交换信息,因此电子病历信息的表示必须满足结构化和标准化;HL7 CDA R2(Health Level 7 ClinicalDocument Architecture)标准框架可从句法层、语义层、语用层三个层面建立具有结构化和标准化的电子病历;其中,句法层基于XML技术提供了句法的规范;语义层基于HL7 RIM(Reference InformationModel)可以实现对临床信息的语义理解,包括药物处方、医学图像报告这些专业医学信息,以及问诊记录的医疗过程描述;语用层基于HL7V3实现电子病历的传递,同时CDA可对信息的隐私等级进行标记;

步骤二,对所述步骤一中所建立的电子病历临床文档,读取文件流,并以128位为单位,利用SM4密钥生成模块生成的密钥进行加密,并将生成的电子病历密文存储在数据服务器中;

(1)SM4密钥生成模块;密钥扩展:输入128位的密钥,进行32轮迭代,每一轮产生一个32位的轮密钥,共产生32个轮密钥;

(2)SM4加密模块;

1)s盒代换:以字节为单位进行非线性替换,输入字节的前四位和后四位确定s盒中替换的字节;

2)线性变化:移位运算和异或运算,输入输出都为32位;

3)加密算法:输入为128位,即4个32位的字,输出也为128位;共有32轮迭代,每一轮使用一个32位的轮密钥;

4)解密算法:与加密算法相同,只是轮密钥的使用顺序相反;

步骤三,对所述步骤二中SM4模块生成的密钥,利用SM2密钥生成模块生成的密钥进行加密,并将生成的SM4密钥密文存储到存储设备中;其中,密钥生成模块在软件上完成,加密过程在硬件平台完成;

(1)SM2密钥生成模块;

设终端A和终端B协商获得密钥数据的长度为klen比特,A为发起方,B为响应方;A和B双方为了获得相同的密钥,实现如下运算步骤:

终端A:

A1:用随机数发生器产生随机数rA∈[1,n-1];

A2:利用点乘模块计算椭圆曲线点RA=[rA]G=(x1,y1);

A3:将RA发送给B;

终端B:

B1:用随机数发生器产生随机数rB∈[1,n-1];

B2:利用点乘模块计算椭圆曲线点RB=[rB]G=(x2,y2);

B3:从RB中取出域元素x2,将x2的数据类型由域元素转换为整数,计算

B4:计算

B5:验证RA是否满足椭圆曲线方程,若不满足则协商失败;否则从RA中取出域元素x1,将x1的数据类型由域元素转换为整数,计算

B6:计算椭圆曲线点若V是无穷远点,则B协商失败;否则将xV、yV的数据类型由域元素转换为字节串再转换为比特串;

B7:计算KB=KDF(xV∥yV∥ZA∥ZB,klen);

B8:将RA的坐标x1、y1和RB的坐标x2、y2的数据类型由域元素转换为字节串再转换为比特串,计算

SB=Hash(0x02∥yV∥Hash(xV∥ZA∥ZB∥x1∥y1∥x2∥y2));

B9:将RB、SB发送给A;

终端A:

A4:从RA中取出域元素x1,将x1的数据类型由域元素转换为整数,计算

A5:计算

A6:验证RB是否满足椭圆曲线方程,若不满足则协商失败;否则从RB中取出域元素x2,将x2的数据类型由域元素转换为整数,计算

A7:计算椭圆曲线点若U是无穷远点,则A协商失败;否则将xU、yU的数据类型由域元素转换为字节串再转换为比特串;

A8:计算KA=KDF(xU∥yU∥ZA∥ZB,klen);

A9:将RA的坐标x1、y1和RB的坐标x2、y2的数据类型由域元素转换为字节串再转换为比特串,计算

S1=Hash(0x02∥yU∥Hash(xU∥ZA∥ZB∥x1∥y1∥x2∥y2)),并检验S1=SB是否成立,若等式不成立则从B到A的密钥确认失败;

A10:计算

SA=Hash(0x03∥yU∥Hash(xU∥ZA∥ZB∥x1∥y1∥x2∥y2)),并将SA发送给B;

终端B:

B10:计算

S2=Hash(0x03∥yV∥Hash(xV∥ZA∥ZB∥x1∥y1∥x2∥y2)),并检验S2=SA是否成立,若等式不成立则从A到B的密钥确认失败;

(2)SM2加密过程;

所述步骤二中生成的SM4加密密钥为需要加密的内容,设为比特串M,klen为M的比特长度,SM4加密密钥的长度为128bit,则klen=128;

为了对M进行加密,作为加密者的终端A实现以下运算步骤:

2.1)用随机数发生器产生随机数k∈[1,n-1];

2.2)利用点乘模块计算椭圆曲线点C1=[k]G=(x1,y1),并将C1的数据类型由点转换为字节串再转换为比特串;

2.3)计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错并退出;

2.4)利用点乘模块计算椭圆曲线点[k]PB=(x2,y2),将坐标x2、y2的数据类型由与域元素转换为字节串再转换为比特串;

2.5)计算t=KDF(x2∥y2,klen),若t为全0比特串,则返回A1;

2.6)计算

2.7)计算C3=Hash(x2∥M∥y2);

2.8)输出密文C=C1∥C2∥C3;

(3)SM2的解密过程;

设klen为密文中C2的比特长度;

为了对密文C=C1∥C2∥C3进行解密,作为解密者的用户B实现以下运算步骤:

3.1)从C中取出比特串C1,将C1的数据类型由比特串转换为字节串再转换为椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;

3.2)利用点乘模块计算椭圆曲线点S=[h]C1,若S是无穷远点,则报错并退出;

3.3)利用点乘模块计算[dB]C1=(x2,y2),将坐标x2、y2的数据类型由域元素转换为字节串再转换为比特串;

3.4)计算t=KDF(x2∥y2,klen),若t为全0比特串,则报错并退出;

3.5)从C中取出比特串C2,计算

3.6)计算u=Hash(x2//M’//y2),从C中取出比特串C3,若uC3,则报错并退出;

3.7)输出明文M’;

所述步骤三中的点乘模块具体为:

(1)SM2点乘模块的层次,顶层模块为点乘运算,第二层为点加、倍点运算,第三层为模加、模减、模乘、模逆运算;

(2)SM2点乘模块的算法,模乘算法采用交错算法,模乘操作采用二进制欧拉算法;

(3)SM2模运算硬件资源分配,模运算包括模加、模减、模乘、模逆,四个运算在一个状态机中实现,其中两个加法器作为公共硬件资源,在运算过程中被复用;

(4)SM2点运算状态机设置,点运算包括点加、倍点、点乘,其中点加和倍点运算的差别在于斜率的求法不同,而k的结果和xR、yR的求法相同;通过将相同步骤的状态合并减少状态机的状态数;模逆运算根据控制条件在运算过程中跳转到点加状态或倍点状态;

所述(3)中的SM2模运算硬件资源分配,具体为:

3.1)模加运算的硬件资源调度,模加运算在一个周期内完成,加法器1对输入值a和b进行加法运算,加法器2中的运算控制加法器1的结果不超过模数p;

3.2)模减运算的硬件资源调度,模减运算在一个周期内完成,加法器1对输入值a和b进行减法运算,加法器2中的运算控制加法器1的结果不超过模数p;

3.3)模乘运算硬件资源调度,模乘运算采用交错算法,该过程在257个时钟周期内完成;在0~256个时钟周期内,两个加法器分别完成循环过程中的加法和减法运算;除了公共硬件资源外,模乘运算的前256个时钟周期需要一个计数器对循环进行计时;模乘运算的第257个时钟周期用于控制模乘结果不超过模数p,该过程对其中一个加法器进行复用;

3.4)模逆运算硬件资源调度,模逆运算采用二进制欧拉算法,该运算过程的状态机的状态设置依次为:初始状态,u为偶数时的运算,v为偶数时的运算,uv且u、v都为奇数时的运算,uv且u、v都为偶数时的运算,u=1或v=1时的运算,结果输出;在u为偶数时的运算和v为偶数时的运算中,各自需要一个加法器;在u、v都为奇数时的两个状态中,总共需要四个加法器;为了减少加法器资源的使用,将u、v都为奇数时u和v相减的运算提前到u为偶数时的运算中或v为偶数时的运算中,使改进后的两个状态都只需要两个加法器。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010084908.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top