CN110958219A - 一种面向医疗云共享数据的sm2代理重加密方法与装置 - Google Patents

一种面向医疗云共享数据的sm2代理重加密方法与装置 Download PDF

Info

Publication number
CN110958219A
CN110958219A CN201911000660.9A CN201911000660A CN110958219A CN 110958219 A CN110958219 A CN 110958219A CN 201911000660 A CN201911000660 A CN 201911000660A CN 110958219 A CN110958219 A CN 110958219A
Authority
CN
China
Prior art keywords
user
message
ciphertext
key
encryption
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
Application number
CN201911000660.9A
Other languages
English (en)
Other versions
CN110958219B (zh
Inventor
何德彪
胡佳希
李莉
孙艾颖
周朕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201911000660.9A priority Critical patent/CN110958219B/zh
Publication of CN110958219A publication Critical patent/CN110958219A/zh
Application granted granted Critical
Publication of CN110958219B publication Critical patent/CN110958219B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • H04L9/3268Cryptographic 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 using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Abstract

本发明公开了一种面向医疗云共享数据的SM2代理重加密方法与装置,该方法包括以下步骤:1)CA初始化生成系统参数和系统主公私钥;2)对任意用户,CA利用私钥为用户生成用户证书;3)数据所有者用户A加密消息M;给定消息M和时间戳T0,用户A利用自身公钥对消息M加密获得密文C;4)用户A生成代理重加密密钥;5)根据重加密密钥和用户B的身份,通过云服务器对密文进行重加密,获得重加密密文;6)用户B解密重加密密文得到消息,并验证消息完整性。本发明基于SM2设计的代理重加密方案更加安全高效,用以医疗大数据共享能够有效保证在不泄露用户私钥的情况下,降低计算开销和通信代价,安全高效地完成数据共享。

Description

一种面向医疗云共享数据的SM2代理重加密方法与装置
技术领域
本发明涉及信息安全技术,尤其涉及一种面向医疗云共享数据的SM2代理重加密方法与装置。
背景技术
在大数据时代,医疗大数据的安全存储与共享一直受到广泛关注,医疗数据通常包括患者的身份信息、电子病历、检查报告和药品信息等,数据一旦泄露,会对患者的正常生活造成极大影响。医疗大数据共享涉及到云存储访问控制,数据所有者需要在不泄露自身解密密钥的情况下,授予第三方解密数据的权限,从而实现数据共享。如果采用一般的公钥加密算法实现数据共享,数据所有者需要下载密文解密后,再用数据接收方的公钥加密,数据接收方可以利用私钥解密获取数据。这类数据共享方式将消耗数据所有者巨大的通信代价和计算开销,实用性较差。
代理重加密技术的提出,能够有效实现数据的安全共享。代理重加密是密文间的一种密钥转换机制,在代理重加密中,一个半可信代理人通过代理授权人产生的重加密密钥rkAB,把用授权者A的公钥PA加密的密文转化为用被授权者B的公钥PB加密的密文,实现A和B之间的数据共享。虽然代理重加密技术的特性能够满足数据共享的应用需求,但是目前的代理重加密方案计算开销较大,难以满足医疗数据共享的实际应用需求。
针对上述问题,本专利基于SM2数字签名设计一种安全高效代理重加密方案以实现医疗大数据数据共享。其中,SM2椭圆曲线公钥密码算法是国家密码管理局于2010年12月17日发布的一种椭圆曲线公钥密码算法,确定了包括数据加密、数字签名和密钥交换等算法或协议。SM2数字签名算法的ISO/IEC14888-3/AMD1《带附录的数字签名第3部分:基于离散对数的机制-补篇1》获得一致通过,成为ISO/IEC国际标准,进入标准发布阶段,该算法具有高安全、高效率的特点,能够很好地支持代理重加密方案的设计。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种面向医疗数据共享的SM2代理重加密方法与装置。
本发明解决其技术问题所采用的技术方案是:一种面向医疗云共享数据的SM2代理重加密方法,包括以下步骤:
1)CA初始化生成系统参数和系统主公私钥,具体如下:
1.1)根据输入的安全参数l,CA选择一个l比特大素数q,生成一个q阶加法循环群G,令P为G的一个生成元;
1.2)CA选择一个随机数
Figure BDA0002241211040000031
作为主私钥,计算Pα=αP为系统主公钥;其中,
Figure BDA0002241211040000032
为模q的正整数域;
1.3)CA选择两个安全的密码杂凑函数:
Figure BDA0002241211040000033
Figure BDA0002241211040000034
1.4)CA秘密保存系统主私钥α,公开系统参数params={G,q,P,Pα,H1,H2};
2)对任意用户U,CA利用私钥为用户U生成用户证书;
2.1)用户U根据系统参数生成公私钥对:用户U产生一个随机数
Figure BDA0002241211040000035
作为私钥,并计算公钥PU=dUP,将(idU,PU)发送给CA,其中,idU为用户U的身份标识,可以唯一确定用户的公钥;
2.2)CA利用私钥α为用户U的公钥PU生成用户U的证书CertU
3)数据所有者用户A加密消息M
给定消息M和消息M发布对应的时间戳T0,用户A利用自身公钥PA对消息M加密获得密文C;时间戳是消息M发布的时间;
具体如下:
3.1)产生消息M相关的元数据meta=(idA||T0);其中,idA为用户A的身份标识;
3.2)产生随机数
Figure BDA0002241211040000036
并计算点K=kP=(x1,y1);
3.3)计算第一部分密文
Figure BDA0002241211040000041
第二部分密文hA=H2(K||M||meta);
3.4)计算SM2部分签名rA=x1+hA;若rA=0,或rA+k=q则返回第3.2)步;
3.5)用户A使用私钥dA计算SM2部分签名sA=(1+dA)-1(k-rAdA);
3.6)输出密文C=(CA,meta,hA,rA,sA);
4)用户A生成代理重加密密钥
给定密文C=(CA,meta,hA,rA,sA),用户B的身份idB和证书CertB,用户A产生授权给用户B的重加密密钥rkAB,具体阐述如下:
4.1)用户A恢复随机数k=sA(1+dA)+rAdA
4.2)用户A利用CA的公钥Pα验证用户B的证书CertB是否有效,若有效,则从证书CertB中获取用户B的公钥PB
4.3)计算重加密密钥
Figure BDA0002241211040000042
5)根据重加密密钥rkAB和用户B的身份idB,通过云服务器对密文进行重加密,获得重加密密文C′;
给定密文C=(CA,meta,hA,rA,sA)和重加密密钥rkAB,对密文C进行重加密,具体阐述如下:
5.1)计算部分重加密密文
Figure BDA0002241211040000051
5.2)输出重加密密文C′=(CB,meta,hA,idB,rA,sA)。
6)用户B解密密文
根据给定重加密密文C′=(CB,meta,hA,idB,rA,sA),和用户A的证书CertA,用户B解密重加密密文得到消息,并验证消息完整性,具体阐述如下:
6.1)用户B利用CA的公钥Pα验证用户A的证书CertA,并从用户A的证书CertA中获取用户A的公钥PA
6.2)计算点K′=sAP+(rA+sA)PA
6.3)计算消息
Figure BDA0002241211040000053
6.4)使用M′计算部分密文h′A=H2(K′||M′||meta);
6.5)判断h′A是否与hA相等,若相等,则接受消息M′,否则拒绝M′。
7)用户A解密密文
给定密文C=(CA,meta,hA,rA,sA),用户A能够解密得到消息,并验证消息完整性,具体阐述如下:
(1)计算随机数k′=sA(1+dA)+rAdA,计算点K′=k′P=(x′1,y′1);
(2)计算消息
Figure BDA0002241211040000052
(3)使用M′计算h′A=H2(K′||M′||meta);
(4)计算SM2部分签名r′A=x′1+h′A
(4)计算SM2部分签名s′A=(1+dA)′(k′-r′AdA);
(5)判断(r′A,s′A)是否与(rA,sA)相等,若相等,则接受消息M′,否则拒绝M′。
按上述方案,所述步骤2)中,对任意用户U,CA利用私钥为用户U生成用户证书,具体如下:
2.1)用户U根据系统参数生成公私钥对:用户U产生一个随机数
Figure BDA0002241211040000061
作为私钥,并计算公钥PU=dUP,将(idU,PU)发送给CA,其中,idU为用户U的身份标识;
2.2)CA利用私钥α为用户U的公钥PU生成用户U的证书CertU
按上述方案,所述步骤3)中,用户A利用自身公钥对消息M加密密文C,具体如下:
3.1)产生消息M相关的元数据meta=(idA||T0);其中,idA为用户A的身份标识;
3.2)产生随机数
Figure BDA0002241211040000062
并计算点K=kP=(x1,y1);
3.3)计算第一部分密文
Figure BDA0002241211040000063
第二部分密文hA=H2(K||M||meta);
3.4)计算SM2部分签名rA=x1+hA;若rA=0,或rA+k=q则返回第3.2)步;
3.5)用户A使用私钥dA计算SM2部分签名sA=(1+dA)-1(k-rAdA);
3.6)输出密文C=(CA,meta,hA,rA,sA);
按上述方案,所述步骤4)中用户A产生授权给用户B的重加密密钥rkAB,具体如下:
4.1)恢复随机数k=sA(1+dA)+rAdA
4.2)用户A利用CA的公钥Pα验证用户B的证书CertB是否有效,若有效,则从证书CertB中获取用户B的公钥PB
4.3)计算重加密密钥
Figure BDA0002241211040000071
按上述方案,所述步骤6)中,用户B解密重加密密文得到消息,并验证消息完整性,具体如下:
6.1)用户B利用CA的公钥Pα验证用户A的证书CertA,并从用户A的证书CertA中获取用户A的公钥PA
6.2)计算点K′=sAP+(rA+sA)PA
6.3)计算消息
Figure BDA0002241211040000072
6.4)使用M′计算部分密文h′A=H2(K′||M′||meta);
6.5)判断h′A是否与hA相等,若相等,则接受消息M′,否则拒绝M′。
一种面向医疗云共享数据的SM2代理重加密装置,包括:
初始化模块,用于CA初始化生成系统参数和系统主公私钥;具体如下:
1)根据输入的安全参数l,CA选择一个l比特大素数q,生成一个q阶加法循环群G,令P为G的一个生成元;
2)CA选择一个随机数
Figure BDA0002241211040000081
作为主私钥,计算Pα=αP为系统主公钥;
3)CA选择两个安全的密码杂凑函数:
Figure BDA0002241211040000082
Figure BDA0002241211040000083
4)CA秘密保存系统主私钥α,公开系统参数params={G,q,P,Pα,H1,H2};
用户证书生成模块,用于对任意用户U,CA利用私钥为用户U生成用户证书;
数据加密模块,用于用户A利用自身公钥对消息M加密获得密文C;
代理重加密密钥生成模块,用于对给定密文C,用户B的身份idB和证书CertB,用户A产生授权给用户B的重加密密钥rkAB
重加密密文生成模块,用于根据重加密密钥rkAB和用户B的身份idB,通过云服务器对密文进行重加密,获得重加密密文C′;
重加密密文解密模块,用于用户B根据给定重加密密文C′,和用户A的证书CertA,解密密文并验证消息完整性。
按上述方案,所述用户证书生成模块中,对任意用户U,CA利用私钥为用户U生成用户证书,具体如下:
1)用户U根据系统参数生成公私钥对:用户U产生一个随机数
Figure BDA0002241211040000091
作为私钥,并计算公钥PU=dUP,将(idU,PU)发送给CA,其中,idU为用户U的身份标识;
2)CA利用私钥α为用户U的公钥PU生成用户U的证书CertU
按上述方案,所述数据加密模块中,用户A利用自身公钥对消息M加密获得密文C,具体如下:
1)产生消息M相关的元数据meta=(idA||T0);其中,idA为用户A的身份标识;
2)产生随机数
Figure BDA0002241211040000092
并计算点K=kP=(x1,y1);
3)计算第一部分密文
Figure BDA0002241211040000093
第二部分密文hA=H2(K||M||meta);
4)计算SM2部分签名rA=x1+hA;若rA=0,或rA+k=q则返回第2)步;
5)计算SM2部分签名sA=(1+dA)-1(k-rAdA);
6)输出密文C=(CA,meta,hA,rA,sA);
按上述方案,所述代理重加密密钥生成模块中用户A产生授权给用户B的重加密密钥rkAB,具体如下:
1)恢复随机数k=sA(1+dA)+rAdA
2)用户A利用CA的公钥Pα验证用户B的证书CertB是否有效,若有效,则从证书CertB中获取用户B的公钥PB
3)计算重加密密钥
Figure BDA0002241211040000101
按上述方案,所述重加密密文解密模块中用户B解密重加密密文得到消息,并验证消息完整性,具体阐述如下:
1)用户B利用CA的公钥Pα验证用户A的证书CertA,并从用户A的证书CertA中获取用户A的公钥PA
2)计算点K′=sAP+(rA+sA)PA
3)计算消息
Figure BDA0002241211040000102
4)使用M′计算部分密文h′A=H2(K′||M′||meta);
5)判断h′A是否与hA相等,若相等,则接受消息M′,否则拒绝M′。
本发明产生的有益效果是:本发明基于SM2设计的代理重加密方案更加安全高效,用以医疗大数据共享能够有效解决上述问题,保证在不泄露用户私钥的情况下,降低计算开销和通信代价,安全高效地完成数据共享。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程图;
图2是本发明实施例的装置结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,一种面向医疗云共享数据的SM2代理重加密方法,包括以下步骤:
1)CA初始化生成系统参数和系统主公私钥,具体如下:
1.1)根据输入的安全参数l,CA选择一个l比特大素数q,生成一个q阶加法循环群G,令P为G的一个生成元;
1.2)CA选择一个随机数
Figure BDA0002241211040000111
作为主私钥,计算Pα=αP为系统主公钥;
1.3)CA选择两个安全的密码杂凑函数:
Figure BDA0002241211040000112
Figure BDA0002241211040000113
1.4)CA秘密保存系统主私钥α,公开系统参数params={G,q,P,Pα,H1,H2};
2)对任意用户U,CA利用私钥为用户U生成用户证书;
2.1)用户U根据系统参数生成公私钥对:用户U产生一个随机数
Figure BDA0002241211040000114
作为私钥,并计算公钥PU=dUP,将(idU,PU)发送给CA,其中,idU为用户U的身份标识;
2.2)CA利用私钥α为用户U的公钥PU生成用户U的证书CertU
3)数据所有者用户A加密消息M,用户A为授权用户;
给定消息M和消息M发布对应时间戳T0,用户A利用自身公钥PA对消息M加密获得密文C;时间戳是消息M发布的时间;
具体如下:
3.1)产生消息M相关的元数据meta=(idA||T0);其中,idA为用户A的身份标识;
3.2)产生随机数
Figure BDA0002241211040000121
并计算点K=kP=(x1,y1);
3.3)计算第一部分密文
Figure BDA0002241211040000122
第二部分密文hA=H2(K||M||meta);
3.4)计算SM2部分签名rA=x1+hA;若rA=0,或rA+k=q则返回第3.2)步;
3.5)用户A使用私钥dA计算SM2部分签名sA=(1+dA)-1(k-rAdA);
3.6)输出密文C=(CA,meta,hA,rA,sA);
4)用户A生成代理重加密密钥;
给定密文C=(CA,meta,hA,rA,sA),用户B的身份idB和证书CertB,用户A产生授权给用户B的重加密密钥rkAB,用户B为被授权用户;具体如下:
4.1)用户A恢复随机数k=sA(1+dA)+rAdA
4.2)用户A利用CA的公钥Pα验证用户B的证书CertB是否有效,若有效,则从证书CertB中获取用户B的公钥PB
4.3)计算重加密密钥
Figure BDA0002241211040000131
5)根据重加密密钥rkAB和用户B的身份idB,通过云服务器对密文进行重加密,获得重加密密文C′;
给定密文C=(CA,meta,hA,rA,sA)和重加密密钥rkAB,对密文C进行重加密,具体阐述如下:
5.1)计算部分重加密密文
Figure BDA0002241211040000132
5.2)输出重加密密文C′=(CB,meta,hA,idB,rA,sA)。
6)用户B解密密文
根据给定重加密密文C′=(CB,meta,hA,idB,rA,sA),和用户A的证书CertA,用户B解密重加密密文得到消息,并验证消息完整性,具体阐述如下:
6.1)用户B利用CA的公钥Pα验证用户A的证书CertA,并从用户A的证书CertA中获取用户A的公钥PA
6.2)计算点K′=sAP+(rA+sA)PA
6.3)计算消息
Figure BDA0002241211040000141
6.4)使用M′计算部分密文h′A=H2(K′||M′||meta);
6.5)判断h′A是否与hA相等,若相等,则接受消息M′,否则拒绝M′。
7)用户A解密密文
给定密文C=(CA,meta,hA,rA,sA),用户A能够解密得到消息,并验证消息完整性,具体阐述如下:
7.1)计算随机数k′=sA(1+dA)+rAdA,计算点K′=k′P=(x′1,y′1);
7.2)计算消息
Figure BDA0002241211040000142
7.3)使用M′计算h′A=H2(K′||M′||meta);
7.4)计算SM2部分签名r′A=x′1+h′A
7.5)计算SM2部分签名s′A=(1+dA)′(k′-r′AdA);
7.6)判断(r′A,s′A)是否与(rA,sA)相等,若相等,则接受消息M′,否则拒绝M′。
本发明中符号及定义如下:
l:系统安全参数;
q:l比特大素数;
G:阶为q的加法循环群;
P:群G的生成元;
kP:加法群G中元素P的k倍;
α:系统主私钥;
Pα:系统主公钥;
Figure BDA0002241211040000151
模q的正整数域;
Figure BDA0002241211040000152
由{0,1}64×G到
Figure BDA0002241211040000153
的密码杂凑函数;
Figure BDA0002241211040000154
Figure BDA0002241211040000155
Figure BDA0002241211040000156
的密码杂凑函数;
idU:用户U的身份标识,可以唯一确定用户的公钥;
meta:消息相关的元数据;
CertU:用户U的证书;
dU:用户U的私钥;
PU:用户U的公钥;
A,B:授权用户A和被授权用户B;
rkAB:用户A授权给用户B的重加密密钥;
x||y:x与y的拼接,其中x和y是比特串或字节串;
Figure BDA0002241211040000161
x异或y。
根据上述方法,可以得到一种面向医疗云共享数据的SM2代理重加密装置,包括:
初始化模块,用于CA初始化生成系统参数和系统主公私钥;具体如下:
1)根据输入的安全参数l,CA选择一个l比特大素数q,生成一个q阶加法循环群G,令P为G的一个生成元;
2)CA选择一个随机数
Figure BDA0002241211040000162
作为主私钥,计算Pα=αP为系统主公钥;
3)CA选择两个安全的密码杂凑函数:
Figure BDA0002241211040000163
Figure BDA0002241211040000164
4)CA秘密保存系统主私钥α,公开系统参数params={G,q,P,Pα,H1,H2};
用户证书生成模块,用于对任意用户U,CA利用私钥为用户U生成用户证书;具体如下:
1)用户U根据系统参数生成公私钥对:用户U产生一个随机数
Figure BDA0002241211040000165
作为私钥,并计算公钥PU=dUP,将(idU,PU)发送给CA,其中,idU为用户U的身份标识;
2)CA利用私钥α为用户U的公钥PU生成用户U的证书CertU
数据加密模块,用于用户A利用自身公钥对消息M加密获得密文C;
具体如下:
1)产生消息M相关的元数据meta=(idA||T0);其中,idA为用户A的身份标识;
2)产生随机数
Figure BDA0002241211040000171
并计算点K=kP=(x1,y1);
3)计算第一部分密文
Figure BDA0002241211040000172
第二部分密文hA=H2(K||M||meta);
4)计算SM2部分签名rA=x1+hA;若rA=0,或rA+k=q则返回第2)步;
5)计算SM2部分签名sA=(1+dA)-1(k-rAdA);
6)输出密文C=(CA,meta,hA,rA,sA);
代理重加密密钥生成模块,用于对给定密文C,用户B的身份idB和证书CertB,用户A产生授权给用户B的重加密密钥rkAB
具体如下:
1)恢复随机数k=sA(1+dA)+rAdA
2)用户A利用CA的公钥Pα验证用户B的证书CertB是否有效,若有效,则从证书CertB中获取用户B的公钥PB
3)计算重加密密钥
Figure BDA0002241211040000173
重加密密文生成模块,用于根据重加密密钥rkAB和用户B的身份idB,通过云服务器对密文进行重加密,获得重加密密文C′;
重加密密文解密模块,用于用户B根据给定重加密密文C′,和用户A的证书CertA,解密密文并验证消息完整性。
具体如下:
1)用户B利用CA的公钥Pα验证用户A的证书CertA,并从用户A的证书CertA中获取用户A的公钥PA
2)计算点K′=sAP+(rA+sA)PA
3)计算消息
Figure BDA0002241211040000181
4)使用M′计算部分密文h′A=H2(K′||M′||meta);
5)判断h′A是否与hA相等,若相等,则接受消息M′,否则拒绝M′。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种面向医疗云共享数据的SM2代理重加密方法,其特征在于,包括以下步骤:
1)CA初始化生成系统参数和系统主公私钥,具体如下:
1.1)根据输入的安全参数l,CA选择一个l比特大素数q,生成一个q阶加法循环群G,令P为G的一个生成元;
1.2)CA选择一个随机数
Figure FDA0002241211030000011
作为主私钥,计算Pα=αP为系统主公钥;其中,
Figure FDA0002241211030000012
为模q的正整数域;
1.3)CA选择两个安全的密码杂凑函数:
Figure FDA0002241211030000013
Figure FDA0002241211030000014
1.4)CA秘密保存系统主私钥α,公开系统参数params={G,q,P,Pα,H1,H2};
2)对任意用户U,CA利用私钥为用户U生成用户证书;
3)数据所有者用户A加密消息M;
给定消息M和消息M发布对应的时间戳T0,用户A利用自身公钥PA对消息M加密获得密文C;
4)用户A生成代理重加密密钥:给定密文C,用户B的身份idB和证书CertB,用户A产生授权给用户B的重加密密钥rkAB
5)根据重加密密钥rkAB和用户B的身份idB,通过云服务器对密文进行重加密,获得重加密密文C′;
6)根据给定重加密密文C′,和用户A的证书CertA,用户B解密重加密密文得到消息,并验证消息完整性。
2.根据权利要求1所述的面向医疗云共享数据的SM2代理重加密方法,其特征在于,所述步骤2)中,对任意用户U,CA利用私钥为用户U生成用户证书,具体如下:
2.1)用户U根据系统参数生成公私钥对:用户U产生一个随机数
Figure FDA0002241211030000021
作为私钥,并计算公钥PU=dUP,将(idU,PU)发送给CA,其中,idU为用户U的身份标识;
2.2)CA利用私钥α为用户U的公钥PU生成用户U的证书CertU
3.根据权利要求1所述的面向医疗云共享数据的SM2代理重加密方法,其特征在于,所述步骤3)中,用户A利用自身公钥对消息M加密密文C,具体如下:
3.1)产生消息M相关的元数据meta=(idA||T0);其中,idA为用户A的身份标识;
3.2)产生随机数
Figure FDA0002241211030000022
并计算点K=kP=(x1,y1);
3.3)计算第一部分密文
Figure FDA0002241211030000023
第二部分密文hA=H2(K||M||meta);
3.4)计算SM2部分签名rA=x1+hA;若rA=0,或rA+k=q则返回第3.2)步;
3.5)计算SM2部分签名sA=(1+dA)-1(k-rAdA);
3.6)输出密文C=(CA,meta,hA,rA,sA)。
4.根据权利要求3所述的面向医疗云共享数据的SM2代理重加密方法,其特征在于,所述步骤4)中用户A产生授权给用户B的重加密密钥rkAB,具体如下:
4.1)恢复随机数k=sA(1+dA)+rAdA
4.2)用户A利用CA的公钥Pα验证用户B的证书CertB是否有效,若有效,则从证书CertB中获取用户B的公钥PB
4.3)计算重加密密钥
Figure FDA0002241211030000031
5.根据权利要求4所述的面向医疗云共享数据的SM2代理重加密方法,其特征在于,所述步骤6)中,用户B解密重加密密文得到消息,并验证消息完整性,具体如下:
6.1)用户B利用CA的公钥Pα验证用户A的证书CertA,并从用户A的证书CertA中获取用户A的公钥PA
6.2)计算点K′=sAP+(rA+sA)PA
6.3)计算消息
Figure FDA0002241211030000032
6.4)使用M′计算部分密文h′A=H2(K′||M′||meta);
6.5)判断h′A是否与hA相等,若相等,则接受消息M′,否则拒绝M′。
6.一种面向医疗云共享数据的SM2代理重加密装置,其特征在于,包括:
初始化模块,用于CA初始化生成系统参数和系统主公私钥;具体如下:
1)根据输入的安全参数l,CA选择一个l比特大素数q,生成一个q阶加法循环群G,令P为G的一个生成元;
2)CA选择一个随机数
Figure FDA0002241211030000041
作为主私钥,计算Pα=αP为系统主公钥;
3)CA选择两个安全的密码杂凑函数:
Figure FDA0002241211030000042
Figure FDA0002241211030000043
4)CA秘密保存系统主私钥α,公开系统参数params={G,q,P,Pα,H1,H2};
用户证书生成模块,用于对任意用户U,CA利用私钥为用户U生成用户证书;
数据加密模块,用于用户A利用自身公钥对消息M加密获得密文C;
代理重加密密钥生成模块,用于对给定密文C,用户B的身份idB和证书CertB,用户A产生授权给用户B的重加密密钥rkAB
重加密密文生成模块,用于根据重加密密钥rkAB和用户B的身份idB,通过云服务器对密文进行重加密,获得重加密密文C′;
重加密密文解密模块,用于用户B根据给定重加密密文C′,和用户A的证书CertA,解密密文并验证消息完整性。
7.根据权利要求6所述的面向医疗云共享数据的SM2代理重加密装置,其特征在于,所述用户证书生成模块中,对任意用户U,CA利用私钥为用户U生成用户证书,具体如下:
1)用户U根据系统参数生成公私钥对:用户U产生一个随机数
Figure FDA0002241211030000051
作为私钥,并计算公钥PU=dUP,将(idU,PU)发送给CA,其中,idU为用户U的身份标识;
2)CA利用私钥α为用户U的公钥PU生成用户U的证书CertU
8.根据权利要求6所述的面向医疗云共享数据的SM2代理重加密装置,其特征在于,所述数据加密模块中,用户A利用自身公钥对消息M加密获得密文C,具体如下:
1)产生消息M相关的元数据meta=(idA||T0);其中,idA为用户A的身份标识;
2)产生随机数
Figure FDA0002241211030000052
并计算点K=kP=(x1,y1);
3)计算第一部分密文
Figure FDA0002241211030000053
第二部分密文hA=H2(K||M||meta);
4)计算SM2部分签名rA=x1+hA;若rA=0,或rA+k=q则返回第2)步;
5)计算SM2部分签名sA=(1+dA)-1(k-rAdA);
6)输出密文C=(CA,meta,hA,rA,sA)。
9.根据权利要求8所述的面向医疗云共享数据的SM2代理重加密装置,其特征在于,所述代理重加密密钥生成模块中用户A产生授权给用户B的重加密密钥rkAB,具体如下:
1)恢复随机数k=sA(1+dA)+rAdA
2)用户A利用CA的公钥Pα验证用户B的证书CertB是否有效,若有效,则从证书CertB中获取用户B的公钥PB
3)计算重加密密钥
Figure FDA0002241211030000061
10.根据权利要求9所述的面向医疗云共享数据的SM2代理重加密装置,其特征在于,所述重加密密文解密模块中用户B解密重加密密文得到消息,并验证消息完整性,具体阐述如下:
1)用户B利用CA的公钥Pα验证用户A的证书CertA,并从用户A的证书CertA中获取用户A的公钥PA
2)计算点K′=sAP+(rA+sA)PA
3)计算消息
Figure FDA0002241211030000062
4)使用M′计算部分密文h′A=H2(K′||M′||meta);
5)判断h′A是否与hA相等,若相等,则接受消息M′,否则拒绝M′。
CN201911000660.9A 2019-10-21 2019-10-21 一种面向医疗云共享数据的sm2代理重加密方法与装置 Active CN110958219B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911000660.9A CN110958219B (zh) 2019-10-21 2019-10-21 一种面向医疗云共享数据的sm2代理重加密方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911000660.9A CN110958219B (zh) 2019-10-21 2019-10-21 一种面向医疗云共享数据的sm2代理重加密方法与装置

Publications (2)

Publication Number Publication Date
CN110958219A true CN110958219A (zh) 2020-04-03
CN110958219B CN110958219B (zh) 2021-01-26

Family

ID=69976395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911000660.9A Active CN110958219B (zh) 2019-10-21 2019-10-21 一种面向医疗云共享数据的sm2代理重加密方法与装置

Country Status (1)

Country Link
CN (1) CN110958219B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111786786A (zh) * 2020-07-27 2020-10-16 国网河南省电力公司郑州供电公司 云计算环境下支持等式判定的代理重加密方法及系统
CN111797907A (zh) * 2020-06-16 2020-10-20 武汉大学 一种用于医疗物联网的安全高效的svm隐私保护训练及分类方法
CN112836240A (zh) * 2021-02-26 2021-05-25 广东工业大学 基于区块链的电子医疗数据安全共享方法、系统及介质
CN113360886A (zh) * 2021-04-23 2021-09-07 山东英信计算机技术有限公司 一种加密数据共享的方法、装置、设备及可读介质
CN114338229A (zh) * 2022-01-27 2022-04-12 华东师范大学 一种轻量级动态广播代理重新加密及云数据共享方法
WO2023010727A1 (zh) * 2021-08-06 2023-02-09 苏州浪潮智能科技有限公司 密钥更新及文件共享方法、装置、设备、计算机存储介质
CN115865531A (zh) * 2023-02-24 2023-03-28 南开大学 一种代理重加密数字资产授权方法
CN116722977A (zh) * 2023-06-27 2023-09-08 暨南大学 基于国密sm9的条件代理重加密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102176709A (zh) * 2010-12-13 2011-09-07 北京交通大学 一种带隐私保护的数据共享与发布的方法和装置
CN103647642A (zh) * 2013-11-15 2014-03-19 河海大学 一种基于证书代理重加密方法及系统
CN104363218A (zh) * 2014-11-04 2015-02-18 河海大学 一种基于证书条件代理重加密方法和系统
CN105025024A (zh) * 2015-07-22 2015-11-04 河海大学 一种基于无证书条件代理重加密系统与方法
US10484352B2 (en) * 2017-03-31 2019-11-19 Microsoft Technology Licensing, Llc Data operations using a proxy encryption key

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102176709A (zh) * 2010-12-13 2011-09-07 北京交通大学 一种带隐私保护的数据共享与发布的方法和装置
CN103647642A (zh) * 2013-11-15 2014-03-19 河海大学 一种基于证书代理重加密方法及系统
CN104363218A (zh) * 2014-11-04 2015-02-18 河海大学 一种基于证书条件代理重加密方法和系统
CN105025024A (zh) * 2015-07-22 2015-11-04 河海大学 一种基于无证书条件代理重加密系统与方法
US10484352B2 (en) * 2017-03-31 2019-11-19 Microsoft Technology Licensing, Llc Data operations using a proxy encryption key

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈庄等: ""一种基于国密算法的云数据加密方案研究"", 《信息安全研究》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797907A (zh) * 2020-06-16 2020-10-20 武汉大学 一种用于医疗物联网的安全高效的svm隐私保护训练及分类方法
CN111786786A (zh) * 2020-07-27 2020-10-16 国网河南省电力公司郑州供电公司 云计算环境下支持等式判定的代理重加密方法及系统
CN112836240A (zh) * 2021-02-26 2021-05-25 广东工业大学 基于区块链的电子医疗数据安全共享方法、系统及介质
CN113360886A (zh) * 2021-04-23 2021-09-07 山东英信计算机技术有限公司 一种加密数据共享的方法、装置、设备及可读介质
WO2023010727A1 (zh) * 2021-08-06 2023-02-09 苏州浪潮智能科技有限公司 密钥更新及文件共享方法、装置、设备、计算机存储介质
US11824982B1 (en) 2021-08-06 2023-11-21 Inspur Suzhou Intelligent Technology Co., Ltd. Key updating method and apparatus, file sharing method and apparatus, device, and computer storage medium
CN114338229A (zh) * 2022-01-27 2022-04-12 华东师范大学 一种轻量级动态广播代理重新加密及云数据共享方法
CN114338229B (zh) * 2022-01-27 2022-10-04 华东师范大学 一种轻量级动态广播代理重新加密及云数据共享方法
CN115865531A (zh) * 2023-02-24 2023-03-28 南开大学 一种代理重加密数字资产授权方法
CN116722977A (zh) * 2023-06-27 2023-09-08 暨南大学 基于国密sm9的条件代理重加密方法
CN116722977B (zh) * 2023-06-27 2024-03-19 暨南大学 基于国密sm9的条件代理重加密方法

Also Published As

Publication number Publication date
CN110958219B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
CN110958219B (zh) 一种面向医疗云共享数据的sm2代理重加密方法与装置
CN109584978B (zh) 基于签名聚合医疗健康监控网络模型信息处理方法及系统
CN107483212B (zh) 一种双方协作生成数字签名的方法
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
CN110719295B (zh) 一种基于身份的面向食品数据安全的代理重加密方法与装置
CN110120939B (zh) 一种基于异构系统的可否认认证的加密方法和系统
CN107086911B (zh) 一种cca安全的可委托验证的代理重加密方法
CN101262341A (zh) 一种会务系统中混合加密方法
US11870891B2 (en) Certificateless public key encryption using pairings
CN104767611B (zh) 一种从公钥基础设施环境到无证书环境的签密方法
CN110535626B (zh) 基于身份的量子通信服务站保密通信方法和系统
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
CN106713349B (zh) 一种能抵抗选择密文攻击的群组间代理重加密方法
CN108989049A (zh) 一种无双线性配对的代理重加密系统及加密方法
CN114448641A (zh) 一种隐私加密方法、电子设备、存储介质以及芯片
CN110233729B (zh) 一种基于puf的加密固态盘密钥管理方法
WO2023098390A1 (zh) 一种基于国密算法的安全的文件共享方法和系统
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
CN113468582A (zh) 一种抗量子计算加密通信方法
CN116318696B (zh) 一种双方无初始信任情况下代理重加密数字资产授权方法
CN109495257B (zh) 一种基于改进国密sm2加密算法的数据采集器加密方法
CN116846556A (zh) 一种基于sm9的数据条件代理重加密方法、系统及设备
CN115987500A (zh) 基于工业设备数据采集的数据安全传输方法及系统
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
CN114679262A (zh) 一种融合非对称体制的量子密钥分发系统及方法

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