CN110719295B - 一种基于身份的面向食品数据安全的代理重加密方法与装置 - Google Patents

一种基于身份的面向食品数据安全的代理重加密方法与装置 Download PDF

Info

Publication number
CN110719295B
CN110719295B CN201911001413.0A CN201911001413A CN110719295B CN 110719295 B CN110719295 B CN 110719295B CN 201911001413 A CN201911001413 A CN 201911001413A CN 110719295 B CN110719295 B CN 110719295B
Authority
CN
China
Prior art keywords
user
identity
ciphertext
private key
kgc
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.)
Active
Application number
CN201911001413.0A
Other languages
English (en)
Other versions
CN110719295A (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 CN201911001413.0A priority Critical patent/CN110719295B/zh
Publication of CN110719295A publication Critical patent/CN110719295A/zh
Application granted granted Critical
Publication of CN110719295B publication Critical patent/CN110719295B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • H04L9/3252Cryptographic 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
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Abstract

本发明公开了一种基于身份的面向食品数据安全的代理重加密方法与装置,该方法包括以下步骤:1)系统初始化:输入安全参数λ,KGC生成系统参数和系统主公私钥;2)根据给定用户i的身份标识IDi,KGC使用系统参数为用户i生成私钥;3)用户A利用系统参数和自身私钥生成消息M的密文;4)用户A根据消息集合C和用户B的身份标识生成重加密密钥;5)用户A利用重加密密钥和密文消息集合计算重加密密文;6)用户B解密重加密密文并验证解密结果的正确性。本发明使用基于身份的SM2签名算法构建代理重加密方案,基于用户身份生成签名私钥,规避了传统PKI体系下大量公钥证书的维护和管理问题,且具有存储开销小的优点。

Description

一种基于身份的面向食品数据安全的代理重加密方法与装置
技术领域
本发明涉及信息安全技术,尤其涉及一种基于身份的面向食品数据安全的代理重加密方法与装置。
背景技术
在信息爆炸的大数据时代,食品数据的安全存储和共享一直受到广泛关注。数据共享不仅可以减少数据采集,实现数据碎片价值挖掘,还有助于产业链优化,提高食品质量监督和防伪。区块链是一种基于分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,可以在信任非集中的分布式网络中实现可信价值传递,从而支持数据共享。然而,一般地,元数据以密态形式存储在云端。若使用传统的公钥加密算法共享数据,数据所有者需要先从云端下载密文解密,再使用数据接收方的公钥加密,此种共享方式需要消耗巨大的计算和存储代价。
代理重加密是一种实现数据共享的密文安全转换技术。半可信代理者通过授权者产生的转换密钥把用授权者公钥加密的密文转化为用被授权者公钥加密的密文。被授权者直接使用私钥解密密文获得共享数据,减少了委托者密钥泄露的风险,且整个转化过程中,不泄露明文的任何信息。然而,现有的代理重加密方案大多需要具有巨大的计算和存储代价,不具有实用性。
SM2是国家密码管理局于2010年12月颁布的一种椭圆曲线公钥密码算法(参见《SM2椭圆曲线公钥密码算法》规范)。基于此算法能实现数字签名、密钥交换以及数据加密。本文设计了一种基于身份的SM2代理重加密方案,使用区块链为企业云存储库中的共享食品数据提供数据来源和控制。同时,使用基于身份的SM2签名算法来构建代理重加密方案,规避了传统PKI体系下公钥证书的管理和维护问题。本发明具有安全性高、计算和存储开销低等特点,对于资源受限的应用场景也同样适用。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于身份的面向食品数据安全的代理重加密方法与装置。
本发明解决其技术问题所采用的技术方案是:一种基于身份的面向食品数据安全的代理重加密方法,包括以下步骤:
1)系统初始化:输入安全参数λ,KGC生成系统参数和系统主公、私钥;具体如下:
1.1)输入安全参数λ,KGC生成椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数H1、H2、H3、H4;其中,q为大素数,a、b为Fq中的元素,用于定义Fq上的一条椭圆曲线E,G为椭圆曲线的一个基点,其阶为素数n;
1.2)KGC选择随机数x∈[1,n-1]作为系统主私钥,计算Ppub=xG作为系统主公钥;
2)根据给定用户i的身份标识IDi,KGC使用系统参数为用户i生成私钥;
2.1)KGC选择随机数l∈[1,n-1],计算:Li=[l]G,h=H1(IDi||Li),αi=l+hxmod n;其中,αi为用户i的私钥;
2.2)KGC将αi通过安全信道发送给用户,并将用户i的公开信息(IDi,Li)存储到区块链上;
3)加密:用户A利用系统参数和自身私钥生成消息M的密文以及验证信息;用户A为数据所有者;
3.1)用户A选择随机数r∈[1,n-1],计算:meta=(IDA||T0),R=[r]G,PA=αAG,
Figure BDA0002241443280000031
hA=H4(R||M||meta),以及sA=(1+αA)-1(r-hAαA);其中,IDA为用户A的身份标识;T0为当前时间戳;
3.2)用户A输出密文消息集合:C=(CA,meta,hA,sA);
消息M的密文是CA,验证消息指hA,sA,都包含在了密文消息集合里;
4)重加密密钥生成Rekey(C,Ppub):用户A根据消息集合C和用户B的身份标识生成重加密密钥;
4.1)根据用户B的身份标识为用户B生成私钥,并将(IDB,LB)存储到区块链上;
4.2)用户A从链上获取(IDB,LB),计算:h1=H1(IDB||LB),PB=LB+h1Ppub
4.3)用户A提取随机数r:由sA=(1+αA)-1(r-hAαA),可得:r=sA(1+αA)+hAαA
4.4)用户A计算重加密密钥:
Figure BDA0002241443280000041
5)用户A利用重加密密钥和密文消息集合计算重加密密文;
5.1)用户A计算用户B的重加密密文:
Figure BDA0002241443280000042
5.2)用户A输出重加密密文消息集合:C′=(CB,meta,IDB,hA,sA)。
6)用户B解密重加密密文CB并验证解密结果的正确性;
6.1)用户B从区块链上获取(IDA,LA),计算:h2=H1(IDA||LA);
6.2)用户B计算:t=hA+sA,R′=sAG+t(LA+h2Ppub);
6.3)用户B解密重加密密文CB
Figure BDA0002241443280000043
Figure BDA0002241443280000044
6.4)用户B验证解密结果的正确性;用户B计算:h3=H4(R′||M||meta),并验证等式h3=hA是否成立;若成立,则验证通过;否则,验证不通过。
按上述方案,所述步骤2)中,KGC使用系统参数为用户i生成私钥和用户i的公开信息,具体如下:
2.1)KGC选择随机数l∈[1,n-1],计算:Li=[l]G,h=H1(IDi||Li),αi=l+hxmod n;其中,αi为用户i的私钥;
2.2)KGC将αi通过安全信道发送给用户,并将用户i的公开信息(IDi,Li)保存。
按上述方案,所述步骤2)中,所述保存用户i的公开信息是将用户i的公开信息存储到区块链上。
按上述方案,所述步骤3)中,用户A利用系统参数和自身私钥生成消息M的密文,具体如下:
3.1)用户A选择随机数r∈[1,n-1],计算:meta=(IDA||T0),R=[r]G,PA=αAG,
Figure BDA0002241443280000051
hA=H4(R||M||meta),以及sA=(1+αA)-1(r-hAαA);其中,IDA为用户A的身份标识;T0为当前时间戳;
3.2)用户A输出密文消息集合:C=(CA,meta,hA,sA)。
按上述方案,所述步骤4)中,用户A根据消息集合C和用户B的身份标识生成重加密密钥,具体如下:
4.1)根据用户B的身份标识为用户B生成私钥,并将(IDB,LB)存储到区块链上;
4.2)用户A从链上获取(IDB,LB),计算:h1=H1(IDB||LB),PB=LB+h1Ppub
4.3)用户A提取随机数r:由sA=(1+αA)-1(r-hAαA),可得:r=sA(1+αA)+hAαA
4.4)用户A计算重加密密钥:
Figure BDA0002241443280000061
按上述方案,所述步骤5)中用户A利用重加密密钥和密文消息集合计算重加密密文,具体如下:
5.1)用户A计算用户B的重加密密文:
Figure BDA0002241443280000062
5.2)用户A输出重加密密文消息集合:C′=(CB,meta,IDB,hA,sA)。
按上述方案,所述步骤6)中,用户B解密重加密密文CB并验证解密结果的正确性;具体如下:
6.1)用户B从区块链上获取(IDA,LA),计算:h2=H1(IDA||LA);
6.2)用户B计算:t=hA+sA,R′=sAG+t(LA+h2Ppub);
6.3)用户B解密重加密密文CB
Figure BDA0002241443280000063
Figure BDA0002241443280000064
6.4)用户B验证解密结果的正确性;用户B计算:h3=H4(R′||M||meta),并验证等式h3=hA是否成立;若成立,则验证通过;否则,验证不通过。
本发明还提供一种基于身份的面向食品数据安全的代理重加密装置,包括:
初始化模块,用于KGC根据输入安全参数λ生成系统参数和系统主公、私钥;具体如下:
1)输入安全参数λ,KGC生成椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数H1、H2、H3、H4;其中,q为大素数,a、b为Fq中的元素,用于定义Fq上的一条椭圆曲线E,G为椭圆曲线的一个基点,其阶为素数n;
2)KGC选择随机数x∈[1,n-1]作为系统主私钥,计算Ppub=xG作为系统主公钥;
用户私钥生成模块,用于KGC根据给定用户i的身份标识IDi,使用系统参数为用户i生成私钥;
1)KGC选择随机数l∈[1,n-1],计算:Li=[l]G,h=H1(IDi||Li),αi=l+hxmod n;其中,αi为用户i的私钥;
2)KGC将αi通过安全信道发送给用户,并将用户i的公开信息(IDi,Li)存储到区块链上;
数据加密模块,用于数据所有者用户A利用系统参数和自身私钥生成消息M的密文以及验证信息;具体如下:
1)用户A选择随机数r∈[1,n-1],计算:meta=(IDA||T0),R=[r]G,PA=αAG,
Figure BDA0002241443280000081
hA=H4(R||M||meta),以及sA=(1+αA)-1(r-hAαA);其中,IDA为用户A的身份标识;T0为当前时间戳;
2)用户A输出密文消息集合:C=(CA,meta,hA,sA);
重加密密钥生成模块,用于用户A根据消息集合C和用户B的身份标识生成重加密密钥;具体如下:
1)根据数据使用者用户B的身份标识为用户B生成私钥,并将(IDB,LB)存储到区块链上;
2)用户A从链上获取(IDB,LB),计算:h1=H1(IDB||LB),PB=LB+h1Ppub
3)用户A提取随机数r:由sA=(1+αA)-1(r-hAαA),可得:r=sA(1+αA)+hAαA
4)用户A计算重加密密钥:
Figure BDA0002241443280000082
重加密密文生成模块,用于用户A利用重加密密钥和密文消息集合计算重加密密文;具体如下:
1)用户A计算用户B的重加密密文:
Figure BDA0002241443280000083
2)用户A输出重加密密文消息集合:C′=(CB,meta,IDB,hA,sA)。
解密模块,用于用户B解密重加密密文CB并验证解密结果的正确性;
1)用户B从区块链上获取(IDA,LA),计算:h2=H1(IDA||LA);
2)用户B计算:t=hA+sA,R′=sAG+t(LA+h2Ppub);
3)用户B解密重加密密文CB
Figure BDA0002241443280000091
Figure BDA0002241443280000092
4)用户B验证解密结果的正确性;用户B计算:h3=H4(R′||M||meta),并验证等式h3=hA是否成立;若成立,则验证通过;否则,验证不通过。
本发明产生的有益效果是:
1.本发明使用基于身份的SM2签名算法构建代理重加密方案,基于用户身份生成签名私钥,规避了传统PKI体系下大量公钥证书的维护和管理问题。
2.用户可直接通过消息集合提取随机数,进而计算重加密密钥以及重加密密文,避免了用于随机数存储的巨大开销,极大减轻了用户的存储负担,对于资源受限的应用场景也同样适用。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程图;
图2是本发明实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明提出了一种基于身份的面向食品数据安全的代理重加密方法,下面给出具体描述。
一、符号及定义
P1,P2:两个参与方;
q:大素数;
Fq:包含q个元素的有限域;
a,b:Fq中的元素,用于定义Fq上的一条椭圆曲线;
n:大素数;
G:椭圆曲线的一个基点,其阶为n;
[l]G:基点G的l倍点。其中,l是正整数;
H1,H2,H3,H4:安全密码哈希函数;
x:系统主私钥;
Ppub:系统主公钥;
IDi:用户身份标识;
αi:用户私钥;
l,r:从[1,n-1]中选取的随机数;
rkAB:重加密密钥;
M:待重加密的消息;
CA:密文;
CB:重加密密文;
Li,LA,LB,h,h1,h2,h3,meta,PA,PB,R,hA,sA,t,h′,R′:中间变量;
二、基于身份的SM2代理重加密
一种安全高效的基于身份的SM2代理重加密方法,包括系统初始化,用户密钥提取,加密,重加密密钥生成,重加密,解密六个部分,具体阐述如下:
1.系统初始化Setup(λ):输入安全参数λ,KGC生成系统参数和系统主公、私钥。
1)输入安全参数λ,KGC生成椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数H1、H2、H3、H4
2)KGC选择随机数x∈[1,n-1]作为系统主私钥,计算Ppub=xG作为系统主公钥。
2.用户密钥提取Extract(IDi):给定用户身份标识IDi,KGC为用户生成私钥。
1)KGC选择随机数l∈[1,n-1],计算:Li=[l]G,h=H1(IDi||Li),αi=l+hxmod n;
2)KGC将αi通过安全信道发送给用户,并将(IDi,Li)存储到区块链上。
3.加密Encrypt(M):用户A生成消息M的密文以及验证信息。
1)用户A选择随机数r∈[1,n-1],计算:meta=(IDA||T0),R=[r]G,PA=αAG,
Figure BDA0002241443280000121
hA=H4(R||M||meta),以及sA=(1+αA)-1(r-hAαA);
2)用户A输出消息集合:C=(CA,meta,hA,sA)。
4.重加密密钥生成Rekey(C,Ppub):用户A根据消息集合C计算重加密密钥。
1)用户A从链上获取(IDB,LB),计算:h1=H1(IDB||LB),PB=LB+h1Ppub
2用户A提取随机数r:由sA=(1+αA)-1(r-hAαA),可得:r=sA(1+αA)+hAαA
3)用户A计算重加密密钥:
Figure BDA0002241443280000122
5.重加密ReEncrypt(CA,rkAB):用户A利用重加密密钥计算重加密密文。
1)用户A计算重加密密文:
Figure BDA0002241443280000131
2)用户A输出消息集合:C′=(CB,meta,IDB,hA,sA)。
6.解密Decrypt(CB,αB):用户B解密重加密密文CB并验证解密结果的正确性。
1)用户B从链上获取(IDA,LA),计算:h2=H1(IDA||LA);
2)用户B计算:t=hA+sA,R′=sAG+t(LA+h2Ppub);
3)用户B解密重加密密文CB
Figure BDA0002241443280000132
Figure BDA0002241443280000133
4)用户B计算:h3=H4(R′||M||meta),并验证等式h3=hA是否成立。若成立,则解密正确;否则,解密不正确。
如图2,根据上述方法,容易得到一种基于身份的面向食品数据安全的代理重加密装置,包括:
系统初始化模块,用于KGC根据输入安全参数λ生成系统参数和系统主公、私钥;具体如下:
1)输入安全参数λ,KGC生成椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数H1、H2、H3、H4;其中,q为大素数,a、b为Fq中的元素,用于定义Fq上的一条椭圆曲线E,G为椭圆曲线的一个基点,其阶为素数n;
2)KGC选择随机数x∈[1,n-1]作为系统主私钥,计算Ppub=xG作为系统主公钥;
用户私钥生成模块,用于KGC根据给定用户i的身份标识IDi,使用系统参数为用户i生成私钥;
1)KGC选择随机数l∈[1,n-1],计算:Li=[l]G,h=H1(IDi||Li),αi=l+hxmod n;其中,αi为用户i的私钥;
2)KGC将αi通过安全信道发送给用户,并将(IDi,Li)存储到区块链上;
数据加密模块,用于数据所有者用户A利用系统参数和自身私钥生成消息M的密文以及验证信息;具体如下:
1)用户A选择随机数r∈[1,n-1],计算:meta=(IDA||T0),R=[r]G,PA=αAG,
Figure BDA0002241443280000141
hA=H4(R||M||meta),以及sA=(1+αA)-1(r-hAαA);其中,IDA为用户A的身份标识;T0为当前时间戳;
2)用户A输出密文消息集合:C=(CA,meta,hA,sA);
重加密密钥生成模块,用于用户A根据消息集合C和用户B的身份标识生成重加密密钥;具体如下:
1)根据数据使用者用户B的身份标识为用户B生成私钥,并将(IDB,LB)存储到区块链上;
2)用户A从链上获取(IDB,LB),计算:h1=H1(IDB||LB),PB=LB+h1Ppub
3)用户A提取随机数r:由sA=(1+αA)-1(r-hAαA),可得:r=sA(1+αA)+hAαA
4)用户A计算重加密密钥:
Figure BDA0002241443280000151
重加密密文生成模块,用于用户A利用重加密密钥和密文消息集合计算重加密密文;具体如下:
1)用户A计算用户B的重加密密文:
Figure BDA0002241443280000152
2)用户A输出重加密密文消息集合:C′=(CB,meta,IDB,hA,sA)。
解密模块,用于用户B解密重加密密文CB并验证解密结果的正确性;
1)用户B从区块链上获取(IDA,LA),计算:h2=H1(IDA||LA);
2)用户B计算:t=hA+sA,R′=sAG+t(LA+h2Ppub);
3)用户B解密重加密密文CB
Figure BDA0002241443280000153
Figure BDA0002241443280000154
4)用户B验证解密结果的正确性;用户B计算:h3=H4(R′||M||meta),并验证等式h3=hA是否成立;若成立,则验证通过;否则,验证不通过。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种基于身份的面向食品数据安全的代理重加密方法,其特征在于,包括以下步骤:
1)系统初始化:输入安全参数λ,KGC生成系统参数和系统主公钥、主私钥;具体如下:
1.1)输入安全参数λ,KGC生成椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数H1、H2、H3、H4;其中,q为大素数,a、b为Fq中的元素,用于定义Fq上的一条椭圆曲线E,G为椭圆曲线的一个基点,其阶为素数n;Fq为包含q个元素的有限域;
1.2)KGC选择随机数x∈[1,n-1]作为系统主私钥,计算Ppub=xG作为系统主公钥;
2)根据给定用户i的身份标识IDi,KGC使用系统参数为用户i生成用户i的私钥;
3)用户A利用系统参数和用户A的私钥生成消息M的密文以及验证信息;用户A为数据所有者;
4)用户A根据消息集合C和用户B的身份标识生成重加密密钥;
5)用户A利用重加密密钥和密文消息集合计算重加密密文;
6)用户B解密重加密密文CB并验证解密结果的正确性。
2.根据权利要求1所述的基于身份的面向食品数据安全的代理重加密方法,其特征在于,所述步骤2)中,KGC使用系统参数为用户i生成用户i的私钥,具体如下:
2.1)KGC选择随机数l∈[1,n-1],计算:Li=[l]G,h=H1(IDi||Li),αi=l+hxmod n;其中,αi为用户i的私钥;
2.2)KGC将αi通过安全信道发送给用户,并将用户i的公开信息(IDi,Li)保存。
3.根据权利要求2所述的基于身份的面向食品数据安全的代理重加密方法,其特征在于,所述步骤2)中,所述保存用户i的公开信息是将用户i的公开信息存储到区块链上。
4.根据权利要求2所述的基于身份的面向食品数据安全的代理重加密方法,其特征在于,所述步骤3)中,用户A利用系统参数和用户A的私钥生成消息M的密文,具体如下:
3.1)用户A选择随机数r∈[1,n-1],计算:meta=(IDA||T0),R=[r]G,PA=αAG,
Figure FDA0002737570970000021
hA=H4(R||M||meta),以及sA=(1+αA)-1(r-hAαA);其中,IDA为用户A的身份标识;T0为当前时间戳;
3.2)用户A输出密文消息集合:C=(CA,meta,hA,sA)。
5.根据权利要求4所述的基于身份的面向食品数据安全的代理重加密方法,其特征在于,所述步骤4)中,用户A根据消息集合C和用户B的身份标识生成重加密密钥,具体如下:
4.1)根据步骤2)中的方法,使用用户B的身份标识为用户B生成私钥,并将(IDB,LB)保存;其中,IDB为用户B的身份标识;
4.2)用户A获取(IDB,LB),计算:h1=H1(IDB||LB),PB=LB+h1Ppub
4.3)用户A提取随机数r:由sA=(1+αA)-1(r-hAαA),可得:r=sA(1+αA)+hAαA
4.4)用户A计算重加密密钥:
Figure FDA0002737570970000031
6.根据权利要求5所述的基于身份的面向食品数据安全的代理重加密方法,其特征在于,所述步骤5)中用户A利用重加密密钥和密文消息集合计算重加密密文,具体如下:
5.1)用户A计算用户B的重加密密文:
Figure FDA0002737570970000032
5.2)用户A输出重加密密文消息集合:C′=(CB,meta,IDB,hA,sA)。
7.根据权利要求6所述的基于身份的面向食品数据安全的代理重加密方法,其特征在于,所述步骤6)中,用户B解密重加密密文CB并验证解密结果的正确性;具体如下:
6.1)用户B从区块链上获取(IDA,LA),计算:h2=H1(IDA||LA);
6.2)用户B计算:t=hA+sA,R′=sAG+t(LA+h2Ppub);
6.3)用户B解密重加密密文CB
Figure FDA0002737570970000041
Figure FDA0002737570970000042
6.4)用户B验证解密结果的正确性;用户B计算:h3=H4(R′||M||meta),并验证等式h3=hA是否成立;若成立,则验证通过;否则,验证不通过。
8.一种基于身份的面向食品数据安全的代理重加密装置,其特征在于,包括:
系统初始化模块,用于KGC根据输入安全参数λ生成系统参数和系统主公钥、主私钥;具体如下:
1)输入安全参数λ,KGC生成椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数H1、H2、H3、H4;其中,q为大素数,a、b为Fq中的元素,用于定义Fq上的一条椭圆曲线E,G为椭圆曲线的一个基点,其阶为素数n;Fq为包含q个元素的有限域;
2)KGC选择随机数x∈[1,n-1]作为系统主私钥,计算Ppub=xG作为系统主公钥;
用户私钥生成模块,用于KGC根据给定用户i的身份标识IDi,使用系统参数为用户i生成私钥;
1)KGC选择随机数l∈[1,n-1],计算:Li=[l]G,h=H1(IDi||Li),αi=l+hxmod n;其中,αi为用户i的私钥;
2)KGC将αi通过安全信道发送给用户,并将(IDi,Li)存储到区块链上;
数据加密模块,用于数据所有者用户A利用系统参数和用户A的私钥生成消息M的密文以及验证信息;具体如下:
1)用户A选择随机数r∈[1,n-1],计算:meta=(IDA||T0),R=[r]G,PA=αAG,
Figure FDA0002737570970000051
hA=H4(R||M||meta),以及sA=(1+αA)-1(r-hAαA);其中,IDA为用户A的身份标识;T0为当前时间戳;
2)用户A输出密文消息集合:C=(CA,meta,hA,sA);
重加密密钥生成模块,用于用户A根据消息集合C和用户B的身份标识生成重加密密钥;具体如下:
1)根据数据使用者用户B的身份标识为用户B生成私钥,并将(IDB,LB)存储到区块链上;其中,IDB为用户B的身份标识;
2)用户A从链上获取(IDB,LB),计算:h1=H1(IDB||LB),PB=LB+h1Ppub
3)用户A提取随机数r:由sA=(1+αA)-1(r-hAαA),可得:r=sA(1+αA)+hAαA
4)用户A计算重加密密钥:
Figure FDA0002737570970000061
重加密密文生成模块,用于用户A利用重加密密钥和密文消息集合计算重加密密文;具体如下:
1)用户A计算用户B的重加密密文:
Figure FDA0002737570970000062
2)用户A输出重加密密文消息集合:C′=(CB,meta,IDB,hA,sA)。
解密模块,用于用户B解密重加密密文CB并验证解密结果的正确性;
1)用户B从区块链上获取(IDA,LA),计算:h2=H1(IDA||LA);
2)用户B计算:t=hA+sA,R′=sAG+t(LA+h2Ppub);
3)用户B解密重加密密文CB
Figure FDA0002737570970000063
Figure FDA0002737570970000064
4)用户B验证解密结果的正确性;用户B计算:h3=H4(R′||M||meta),并验证等式h3=hA是否成立;若成立,则验证通过;否则,验证不通过。
CN201911001413.0A 2019-10-21 2019-10-21 一种基于身份的面向食品数据安全的代理重加密方法与装置 Active CN110719295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911001413.0A CN110719295B (zh) 2019-10-21 2019-10-21 一种基于身份的面向食品数据安全的代理重加密方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911001413.0A CN110719295B (zh) 2019-10-21 2019-10-21 一种基于身份的面向食品数据安全的代理重加密方法与装置

Publications (2)

Publication Number Publication Date
CN110719295A CN110719295A (zh) 2020-01-21
CN110719295B true CN110719295B (zh) 2020-12-29

Family

ID=69212970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911001413.0A Active CN110719295B (zh) 2019-10-21 2019-10-21 一种基于身份的面向食品数据安全的代理重加密方法与装置

Country Status (1)

Country Link
CN (1) CN110719295B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111415718B (zh) * 2020-02-29 2024-02-09 沈培君 一种基于区块链和条件代理重加密的电子处方共享方法
CN111783136A (zh) * 2020-06-17 2020-10-16 联想(北京)有限公司 一种数据保护方法、装置、设备和存储介质
CN113221130A (zh) * 2021-01-28 2021-08-06 武汉大学 一种面向食品安全物联网的无证书在线离线签名方法及介质
CN113346998B (zh) * 2021-08-06 2021-10-15 苏州浪潮智能科技有限公司 密钥更新及文件共享方法、装置、设备、计算机存储介质
CN115865531B (zh) * 2023-02-24 2023-06-06 南开大学 一种代理重加密数字资产授权方法
CN116579005B (zh) * 2023-07-10 2023-09-19 西安银信博锐信息科技有限公司 一种用户数据安全存储管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013524352A (ja) * 2010-03-31 2013-06-17 セキュリティー ファースト コーポレイション 移動中のデータをセキュア化するためのシステムおよび方法
CN104038341B (zh) * 2014-06-20 2017-04-05 北京航空航天大学 一种基于身份的跨系统代理重加密方法
CN106375346B (zh) * 2016-11-14 2019-02-05 北京邮电大学 一种云环境下基于条件广播代理重加密的数据保护方法

Also Published As

Publication number Publication date
CN110719295A (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
CN110719295B (zh) 一种基于身份的面向食品数据安全的代理重加密方法与装置
CN108881314B (zh) 雾计算环境下基于cp-abe密文隐私保护方法及系统
WO2021042685A1 (zh) 一种区块链的交易方法、装置及系统
CN103647642B (zh) 一种基于证书代理重加密方法及系统
CN110958219B (zh) 一种面向医疗云共享数据的sm2代理重加密方法与装置
CN110113155B (zh) 一种高效无证书公钥加密方法
CN107154845B (zh) 一种基于属性的bgn型密文解密外包方案
US9698984B2 (en) Re-encrypted data verification program, re-encryption apparatus and re-encryption system
US11870891B2 (en) Certificateless public key encryption using pairings
CN105933345B (zh) 一种基于线性秘密共享的可验证外包属性基加密方法
CN104767612A (zh) 一种从无证书环境到公钥基础设施环境的签密方法
CN104767611B (zh) 一种从公钥基础设施环境到无证书环境的签密方法
CN104836657B (zh) 一种具有高效解密特性的基于身份匿名广播加密方法
CN109873699A (zh) 一种可撤销的身份公钥加密方法
CN104158880A (zh) 一种用户端云数据共享解决方法
CN107086912B (zh) 一种异构存储系统中的密文转换方法、解密方法及系统
CN114036539A (zh) 基于区块链的安全可审计物联网数据共享系统及方法
CN106713349B (zh) 一种能抵抗选择密文攻击的群组间代理重加密方法
CN105763528A (zh) 一种混合机制下多重接受者匿名的加密装置
JPWO2020251795A5 (zh)
CN114095171A (zh) 一种基于身份的可穿刺代理重加密方法
CN113468582A (zh) 一种抗量子计算加密通信方法
CN116318696B (zh) 一种双方无初始信任情况下代理重加密数字资产授权方法
CN107682158A (zh) 一种可托管的认证加密方法
CN116846556A (zh) 一种基于sm9的数据条件代理重加密方法、系统及设备

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