CN115865531B - 一种代理重加密数字资产授权方法 - Google Patents
一种代理重加密数字资产授权方法 Download PDFInfo
- Publication number
- CN115865531B CN115865531B CN202310159404.4A CN202310159404A CN115865531B CN 115865531 B CN115865531 B CN 115865531B CN 202310159404 A CN202310159404 A CN 202310159404A CN 115865531 B CN115865531 B CN 115865531B
- Authority
- CN
- China
- Prior art keywords
- party
- ciphertext
- key
- data
- elliptic curve
- 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
Links
Images
Abstract
本发明公开了一种代理重加密数字资产授权方法,包括:初始化、授权的第一方生成并上传加密密文、第一方生成并上传转移秘钥、区块链利用转移秘钥对密文进行重加密和被授权的第二方进行解密等步骤。本发明利用对称加密技术安全加密数字资产消息,没有对称密钥的任意方将无法解密得到数字资产,保证了数字资产的隐私性。本发明利用非对称密钥体系的加密技术将托管在区块链上的数据进行加密,让每份数据都唯一对应一个实体,只有该实体持有私钥,从而可以解密数据。本发明利用代理重加密技术实现密文上的转换,使一方的密文在授权的场景下可以安全转化为另一方的密文,但在转换过程中无需经过解密过程从而暴露明文内容。
Description
技术领域
本发明涉及密码学和信息安全技术领域,具体涉及一种代理重加密数字资产授权方法。
背景技术
在许多涉及现实业务的场景中,基于实体物件的证明、许可、身份等在被使用时往往需要流转于各个实体机构,业务流程繁琐,时间成本较高。其根本原因是,基于计算机数据的身份证件信息具有可复制性,需要提出一种电子数据的可靠授权而又不被滥用的技术。在实体的金融产业中,数字资产的信息转移也需要相关的许可技术,需要提出一种基于密码学的保证数据可靠传输,保证私密性质不被第三方窃取的数字资产转移技术。
区块链技术具有去中心化、信息公开透明且不可篡改等特点,在区块链上存储数据,利用密码学中的代理加密技术,给出了解决以上问题的新思路。在现实应用场景中,第一方将身份、数字资产等证明数据加密后提交到不可篡改的区块上,当需要向第二方提供证明时,需要第一方将证明的查看权授权给第二方。因为证明都已经保存到区块链中,无需重新开具,第二方直接解密区块链上的加密信息即可得到各项证明。这样,在保护数据隐私的同时达到了数字证明转移的目的。例如,买房时需要购房者向房屋机构提供银行流水记录。银行事先将用户的流水记录加密后放到区块链上,当用户需要向房屋机构提供流水记录时,向银行提出证明申请,银行向区块链上发送转移密钥,这个转移密钥由银行和房屋机构的密钥信息计算而来,用于转换密文。链上利用转移密钥将用银行密钥加密的密文转化为用房屋机构密钥加密的密文。房屋机构从链上获取密文后,用自己的私钥解密获取用户的流水记录。此过程中链上不会显示流水记录明文,保证了用户的信息安全,且信息来源真实可靠。
代理重加密技术允许某一方(如Alice)在一个由第三方(如Charlie)控制的数据平台上向另一方(如Bob)传递信息时,可以对受委托存储的密文内容进行密文基础上的变换,而不需要经过解密过程和再加密过程。取而代之的,Alice通过分享一个转移密钥给Charlie可以让Charlie直接对密文进行变换,使密文内容由只有Alice可以解密变为Bob也获得解密的许可,从而完成数据内容的授权。
Blaze等人在1998年提出了最初的代理重加密技术方案,并定义了代理重加密的密码学原语和类型。2005年,Ateniese等人利用基于椭圆曲线双线性配对的计算方式实现了单向的代理重加密密码学模型。双向的代理重加密,即密文从Alice方转化为Bob方后,又可以转化为Alice方的密文,而单向代理重加密则可以避免此问题,避免了重放攻击;然而,使用双线性配对的方案的实现计算效率较低,一次椭圆曲线双线性对的计算时间远大于椭圆曲线数乘的计算时间。
发明内容
本发明的目的是解决现有技术的不足,提供一种代理重加密数字资产授权方法,该方法使得对于持有数字资产的第一方而言,它可以将该此数字资产经由区块链存储授权给某个受信任的第二方。区块链上仅存储对某一方可见的密文,其他的各方包括提供存储服务的区块链节点无法得知数据内容,保证数字资产的隐私性,避免数字资产的泄露。
本发明的技术方案如下:
一种代理重加密数字资产授权方法,包括以下步骤:
步骤1、初始化,具体步骤如下:
步骤2、第一方生成并上传加密密文,具体步骤如下:
步骤S203:第一方将自己的数据资产m应用对称加密算法的CBC模式加密得到密文Cipher;
步骤S204:第一方将步骤S203得到的密文Cipher按照每240bit分为一组,得到密文组,添加填充数据后每个密文/>映射到椭圆曲线上,得到加密点组加密点组中的每个元素/>为椭圆曲线上的一个点,与密文/>的值有唯一的对应关系;
步骤3、第一方生成并上传转移秘钥,具体步骤如下:
步骤S301:第一方将发送授权转移信息到区块链上;
步骤5、第二方进行解密,具体步骤如下:
步骤S506:第二方应用对称加密算法的CBC模式将步骤S505得到的密文Cipher解密得到数据资产的明文。
在上述技术方案中,所述的对称加密算法,使用国密SM4对称加密算法。
在上述技术方案中,步骤S204中,加密点组中的每个元素与密文/>的对应关系表示为/>,maptocurve表示将/>唯一映射为椭圆曲线上点的函数,maptocurve的具体操作为:对每个/>,将其240bit数据作为x的高240bit数据代入椭圆曲线表示形式,计算/>是否为模数p的二次剩余,,pad是填充数据。
在上述技术方案中,步骤S505中,与/>的对应关系表示为,mapfromcurve是将椭圆曲线上一点唯一映射为有限域上对应元素的函数,mapfromcurve的具体操作为:对每个/>提取出该点的横坐标的高240bit数据,该数据即为/>的值。
本发明的优点和有益效果如下。
本发明利用对称加密技术安全加密数字资产消息,没有对称密钥的任意方将无法解密得到数字资产,保证了数字资产的隐私性。本发明利用非对称密钥体系的加密技术将托管在区块链上的数据进行加密,让每份数据都唯一对应一个实体,只有该实体持有私钥,从而可以解密数据。本发明利用区块链技术实现数据的去中心化托管,降低数据分享和授权的复杂性,避免实体授权场景下的复杂流程。本发明利用代理重加密技术实现密文上的转换,使一方的密文在授权的场景下可以安全转化为另一方的密文,但在转换过程中无需经过解密过程从而暴露明文内容。此外,本发明在GPU上实现密码学计算库,实现椭圆曲线计算操作的可并行化,针对大规模的椭圆曲线操作通过并行计算提升计算效率。
附图说明
图1是本发明的代理重加密数字资产授权方法的模型图。
具体实施方式
下面将结合附图介绍本发明的具体实施方式。
实施例一
参见附图1,给出了本发明的代理重加密数字资产授权方法的模型图,本发明包括授权的第一方、被授权的第二方和区块链三个实体部分,包括:初始化、第一方生成并上传加密密文、第一方生成并上传转移秘钥、区块链利用转移秘钥对密文进行重加密和第二方进行解密等步骤,下面具体介绍各个步骤。
步骤1、初始化,具体步骤如下。
步骤S101:参与协议各方约定并公开使用的椭圆曲线参数,包括:离散椭圆曲线的表示形式中的参数ecc.a和ecc.b、模数p、椭圆曲线群的生成元G(椭圆曲线点)以及椭圆曲线群阶数q。在本发明的实例中我们使用国密SM2公钥加密算法中使用的椭圆曲线参数。
步骤2、第一方生成并上传加密密文,具体步骤如下。
步骤S204:第一方将步骤S203得到的密文Cipher按照每240bit分为一组,得到密文组,添加填充数据后每个密文/>映射到椭圆曲线上,得到加密点组,每个加密点/>为椭圆曲线上的一个点,与密文/>的值有唯一的对应关系;该关系表示为/>,maptocurve表示将/>唯一映射为椭圆曲线上点的函数,maptocurve的具体操作为:对每个/>,将其240bit数据作为x的高240bit数据代入椭圆曲线表示形式,计算/>是否为模数p的二次剩余,这里,pad是填充数据。
步骤3、第一方生成并上传转移秘钥,具体步骤如下。
步骤S301,在第一方和第二方在链外达成信任授权关系下,第一方将发送授权转移信息到区块链上。
这里*代表椭圆曲线数乘,+代表椭圆曲线加法。
步骤5、第二方进行解密,具体步骤如下。
步骤S505:第二方从计算得到的数据资产加密点组中每个元素提取出240bit的密文数据,得到/>,/> ,mapfromcurve是将椭圆曲线上一点唯一映射为有限域上对应元素的函数,mapfromcurve的具体操作为:对每个/>提取出该点的横坐标的高240bit数据,该数据即为/>的值;将所有的/>合并得到完整密文Cipher。
实施例二
进一步的说,在步骤S205、步骤S401、步骤S504中,采用GPU并行加速的方式计算椭圆曲线运算操作。下面具体介绍本发明使用的GPU并行加速的方式计算椭圆曲线运算操作方法,具体步骤如下。
步骤S601:在GPU上实施计算的计算方的待计算操作数为,其中/>为椭圆曲线乘法的向量乘数,为有限域上的数字;/>为椭圆曲线乘法的被乘数,为椭圆曲线上的点的坐标,计算方将从CPU的内存中复制到GPU端的内存当中。
Claims (2)
1.一种代理重加密数字资产授权方法,其特征在于,包括以下步骤:
步骤1、初始化,具体步骤如下:
步骤S101:参与协议的各方约定并公开使用的椭圆曲线参数,包括:离散椭圆曲线的表示形式y2=x3+ecc.a·x+ecc.b中的参数ecc.a和ecc.b、模数p、椭圆曲线群的生成元G以及椭圆曲线群阶数q;
步骤S105:第一方将公私钥对(skB,pkB)发给第二方,第二方验证此公私钥对满足pkB=skB*G;
步骤2、第一方生成并上传加密密文,具体步骤如下:
步骤S201:第一方将自己的随机数密钥k映射到椭圆曲线上,计算kG=k*G;
步骤S202:第一方提取出点kG的坐标表示[kG.x,kG.y]中kG.x的低128bit的数据,作为实际的对称密钥keysym;
步骤S203:第一方将自己的数据资产m应用对称加密算法的CBC模式加密得到密文Cipher;
步骤S204:第一方将步骤S203得到的密文Cipher按照每240bit分为一组,得到密文组{C1,C2,...,Cn},添加填充数据后每个密文Ci映射到椭圆曲线上,得到加密点组{P1,P2,...,Pn},加密点组中的每个元素Pi为椭圆曲线上的一个点,与密文Ci的值有唯一的对应关系;加密点组中的每个元素Pi与密文Ci的对应关系表示为Pi=maptocurve(Ci),maptocurve表示将Ci唯一映射为椭圆曲线上点的函数,maptocurve的具体操作为:对每个Ci,将其240bit数据作为x的高240bit数据代入椭圆曲线表示形式,计算x3+ecc.a.x+ecc.b是否为模数p的二次剩余,x=216Ci||pad,0≤pad<216,pad是填充数据;
步骤S206:第一方使用自己的随机数密钥k和公钥pkA,计算出包含身份信息的对称公钥加密后的密文Ck=k*pkA=kaG;
步骤3、第一方生成并上传转移秘钥,具体步骤如下:
步骤S301:第一方将发送授权转移信息到区块链上;
步骤S302:第一方利用自己的私钥skA以及其拥有的第二方的私钥skB计算数字资产从第一方到第二方的转移密钥rAB,rAB=(skA)-1*skB=a-1b;
步骤S303:第一方将转移密钥rAB发送到区块链上;
步骤5、第二方进行解密,具体步骤如下:
步骤S502:第二方使用自身的私钥skB和转移密钥rAB解密密文Ck的信息,计算Ck*rAB*skB -1=kaG*a-1b*b-1=kG;
步骤S503:第二方从步骤S502解密出的kG的点坐标表示[kG.x,kG.y]中提取出kG.x的低128bit的数据,得到对称密钥keysym;
步骤S505:第二方将步骤S504得到的数据资产加密点组中每个元素Pi转换成对应的原始密文Ci,Ci与Pi的对应关系表示为Ci=mapfromcurve(Pi),mapfromcurve是将椭圆曲线上一点唯一映射为有限域上对应元素的函数,mapfromcurve的具体操作为:对每个Pi提取出该点的横坐标的高240bit数据,该数据即为Ci的值;将所有的Ci合并得到完整原始密文Cipher;
步骤S506:第二方应用对称加密算法的CBC模式将步骤S505得到的密文Cipher解密得到数据资产的明文。
2.根据权利要求1所述的一种代理重加密数字资产授权方法,其特征在于:所述的对称加密算法,使用国密SM4对称加密算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310159404.4A CN115865531B (zh) | 2023-02-24 | 2023-02-24 | 一种代理重加密数字资产授权方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310159404.4A CN115865531B (zh) | 2023-02-24 | 2023-02-24 | 一种代理重加密数字资产授权方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115865531A CN115865531A (zh) | 2023-03-28 |
CN115865531B true CN115865531B (zh) | 2023-06-06 |
Family
ID=85658804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310159404.4A Active CN115865531B (zh) | 2023-02-24 | 2023-02-24 | 一种代理重加密数字资产授权方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865531B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110719295A (zh) * | 2019-10-21 | 2020-01-21 | 武汉大学 | 一种基于身份的面向食品数据安全的代理重加密方法与装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112789824B (zh) * | 2019-09-09 | 2022-09-09 | 深圳市网心科技有限公司 | 区块链系统及信息传输方法、系统、装置、计算机介质 |
CN110958219B (zh) * | 2019-10-21 | 2021-01-26 | 武汉大学 | 一种面向医疗云共享数据的sm2代理重加密方法与装置 |
CN111191288B (zh) * | 2019-12-30 | 2023-10-13 | 中电海康集团有限公司 | 一种基于代理重加密的区块链数据访问权限控制方法 |
CN111222155A (zh) * | 2020-01-08 | 2020-06-02 | 湖南智慧政务区块链科技有限公司 | 一种重加密与区块链结合的方法及系统 |
-
2023
- 2023-02-24 CN CN202310159404.4A patent/CN115865531B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110719295A (zh) * | 2019-10-21 | 2020-01-21 | 武汉大学 | 一种基于身份的面向食品数据安全的代理重加密方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115865531A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292402B (zh) | 用于信息的安全交换的公共秘密的确定和层级确定性密钥 | |
CN111314089B (zh) | 一种基于sm2的两方协同签名方法及解密方法 | |
Kumar et al. | Secure storage and access of data in cloud computing | |
RU2376651C2 (ru) | Использование изогений для разработки криптосистем | |
CN111859444B (zh) | 一种基于属性加密的区块链数据监管方法及系统 | |
CN110719295B (zh) | 一种基于身份的面向食品数据安全的代理重加密方法与装置 | |
CN104168108A (zh) | 一种泄露密钥可追踪的属性基混合加密方法 | |
CN109936456B (zh) | 基于私钥池的抗量子计算数字签名方法和系统 | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
CN110958219A (zh) | 一种面向医疗云共享数据的sm2代理重加密方法与装置 | |
CN107086912B (zh) | 一种异构存储系统中的密文转换方法、解密方法及系统 | |
CN112491529B (zh) | 用于不可信服务器环境中数据文件加密及完整性验证方法及其系统 | |
US20040086113A1 (en) | Methods for point compression for jacobians of hyperelliptic curves | |
JP2001202010A (ja) | メッセージの公開型且つ非可換性の符号化方法及び暗号化方法 | |
CN111355582A (zh) | 基于sm2算法的两方联合签名和解密的方法及系统 | |
CN113708917A (zh) | 基于属性加密的app用户数据访问控制系统及方法 | |
CN116830523A (zh) | 阈值密钥交换 | |
CN116318696B (zh) | 一种双方无初始信任情况下代理重加密数字资产授权方法 | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
CN110519040B (zh) | 基于身份的抗量子计算数字签名方法和系统 | |
JP5633563B2 (ja) | 楕円曲線上のパラメータ化による暗号法 | |
CN112737783A (zh) | 一种基于sm2椭圆曲线的解密方法及设备 | |
CN115865531B (zh) | 一种代理重加密数字资产授权方法 | |
CN112019335B (zh) | 一种基于sm2算法的多方协同加解密方法及装置、系统、介质 | |
Rao et al. | Secure and practical outsourcing of linear programming in cloud computing: A survey |
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 |