CN112907247B - 一种区块链授权计算控制方法 - Google Patents
一种区块链授权计算控制方法 Download PDFInfo
- Publication number
- CN112907247B CN112907247B CN202110293128.1A CN202110293128A CN112907247B CN 112907247 B CN112907247 B CN 112907247B CN 202110293128 A CN202110293128 A CN 202110293128A CN 112907247 B CN112907247 B CN 112907247B
- Authority
- CN
- China
- Prior art keywords
- private key
- data
- transaction
- transaction data
- file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 title claims abstract description 36
- 238000013475 authorization Methods 0.000 title claims abstract description 9
- 230000006399 behavior Effects 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 5
- 230000002085 persistent effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000007789 sealing Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明实现一种区块链授权计算控制方法,本发明在原有的能链开放许可链节点上,得到加密后的使用指令集扩展的密钥封装的字节流;被包围容器将加密后的使用指令集扩展的密钥封装的字节流发送至不信任环境,并将加密数据写入到磁盘中;密钥封装为在特定中CPU都包含两个存储在存储电路中的root密钥和根SealKey,并支持启用远程认证过程,root密钥仅被平台所支持。
Description
技术领域
本发明属于能链开放许可链领域, 具体涉及基于一种区块链授权计算控制方法的方法。
背景技术
在能链区块链中,用户的账户通常由私钥生成,而非用户名和密码组成。分布式的账户体系大大提高了账户的安全性,同时也带来了使用不方便和推广难度大等问题。建立中心化的托管账户体系大大提高了易用度,但同时由于私钥的托管,提高了风险。
区块链是由多个分布式节点参与的分布式数据账本,它具有不可篡改、伪造的特点。区块链由一串通过密码学方法产生的区块构成,每一个区块都包含了上一个区块的哈希值(hash),从创始区块直至到当前区块,形成链条。
在区块链中,用户的账户由三个部分组成:私钥,公钥,以及账户地址。私钥通过随机数算法生成,并根据私钥生成公钥和相应的地址,整个过程不可逆。用户可以使用私钥对交易去进行签名,签名后的交易在节点处被执行的过程中可以提取出公钥,并验证签名的合法性。
发明内容
在本发明中,本发明解决的技术问题:提出了一种区块链授权计算控制方法,降低用户使用区块链的门槛。
为克服现有技术的不足, 本发明提供一种区块链授权计算控制方法, 为达此目的, 本发明采用以下技术方案:
步骤一、在能链区块链中,通过随机生成的256bit的0,1字符串生成私钥,并以一种在能链区块链存储私钥文件的格式的形式将私钥存在于文件中,用户通过存储私钥文件的格式和对称加密密码计算出私钥,存储私钥文件记录对称加密算法,以及对称加密后的密文;
步骤二、开始私钥授权使用的加密传输,并在指令集扩展中托管用户私钥,然后转到步骤四;
步骤三、在特定的被包围容器中,开始分步骤:分步骤1、开始进行能链加密算法,首先开始适用于区块链数据的网络传输和持久化存储标准对交易数据进行拍平操作,设定数字a、数据b和数字c为自然数,对于交易数据的值在[0, 数字a]之间的单个字节,交易数据的拍平编码数据是其本身;如果交易数据的值转化为byte数组的长度l <= 数字a,拍平编码的结果是转化后byte数组本身,并加上设定的数字a+l作为前缀,如果交易数据的值转化为byte数组长度大于数字b,拍平编码结果第一个是数字c加交易数据的数组长度的编码的长度;分步骤2、然后是交易数据的数组长度的本身的编码;分步骤3、最后是转化后byte数组的编码,然后对交易数据的拍平编码数据开始进行签名,当对交易数据的拍平编码进行签名时,首先需要对交易数据的内容做哈希计算,能链加密算法的生成通过调用指令集扩展底层哈希算法实现;
步骤四、交易行为包括客户端行为,第一步,客户端行为主要有收集交易行为,收集交易行为包括有知晓交易的内容,发送给谁,发送哪些数据,通过收集交易行为用以构造一笔无签名的交易数据,客户端行为获得交易发送方的基本信息时,包括但不限于tx.data,tx.price,tx.gaslimit数据;第二步,计算即对交易数据的内容做哈希计算中需要考虑tx.data,tx.price,tx.gaslimit,tx.payload字段;第三步,开始拿出交易数据的拍平编码数据,第四步,对交易数据的拍平编码数据使用被包围容器托管的私钥,使用secp256k1算法进行签名,得到签名数据;第五步,将交易数据的拍平编码数据和签名数据拼接起来,以构造完整报文;第六步,节点对完整报文进行哈希计算;第七步、由于完整报文最终会上链,因此需要明文传输;
步骤五、根据计算处理的签名数据提取V,R,S字段;首先需要实现存储私钥文件和私钥密码的加密传输;存储私钥文件和私钥密码通过非对称加密的方式进行传输;具体过程如下:被包围容器通过指令集扩展提供的基本库函数实现在启动初始化的过程中,首先生成一对rsa的公私钥,最终生成长度为3072位的rsa算法,通过长度为3072位可以对最长长度为384字节的数据进行加密;当被包围容器生成一对rsa私钥后,被包围容器通过获取远程报告工具获取远程认证报告;在生成远程认证报告的认证过程中,将一对rsa的公钥填充至远程认证报告的data字段中;被包围容器获取远程认证报告,并将远程认证报告上传至能链区块链上;被包围容器的代码公开,并允许用户编译,并允许用户查看被包围容器的度量,当用户获取能链区块链上存储的托管方的远程认证报告,对照托管方的远程认证报告中的度量字段与自己本地生成的度量字段;当校验成功,提取相应的rsa公钥,rsa公钥由mod和exp字段组成,用户通过mod和exp字段重新恢复rsa公钥;用户使用恢复后的rsa公钥对交易数据进行rsa算法加密,交易数据包括存储私钥文件和用户的存储私钥文件密码,在被包围容器内部对收到的数据,进行解密,存储私钥文件以字节流的形式传入被包围容器中;在被包围容器中,使用托管私钥对数据签名,首先需要实现通过私钥对数据签名的算法,并与区块链上通用算法保持一致;当对交易数据进行签名时,首先需要对交易数据的内容进行哈希计算;哈希计算时中需要考虑tx.data, tx.price, tx.gaslimit,tx.payload字段;根据计算处理的签名提取V,R,S字段;V,R,S字段是交易签名后的值,被用来生成签名者的公钥;R字段,S字段是ECDSA椭圆加密算法的输出值,V字段是用于恢复结果的ID;当用户的私钥托管在可信硬件指令集扩展中时,当涉及到多个用户时,需要考虑私钥信息在内存中的存储;同时当被包围容器发生异常终止时,需要将之前的信息还原,因此需要考虑私钥信息的初始化问题;并且在被包围容器中,需要考虑私钥的存储方式;私钥由两种表现形式,一种为私钥存储文件,一种为用户私钥;出于安全的考虑,在每一次需要做交易做签名的过程中,都需要用户将私钥存储文件的密码发送过来,重新解锁区块链私钥;私钥存储文件的相关处理过程为:用户将发送使用在被包围容器rsa公钥加密私钥存储文件,以及所述私钥存储文件保护账户的公钥地址得到加密数据;被包围容器使用被包围容器自己的rsa私钥对加密数据进行解密,将字节流和地址通过哈希映射的方式存放于内存中;被包围容器对私钥存储字节流调用指令集扩展的底层密封函数,得到加密后的使用指令集扩展的密钥封装的字节流;被包围容器将加密后的使用指令集扩展的密钥封装的字节流发送至不信任环境,并将加密数据写入到磁盘中;密钥封装为在特定中CPU都包含两个存储在存储电路中的root密钥和根Seal Key,并支持启用远程认证过程,root密钥仅被平台所支持。
实施方式
下面结合具体实施方式来进一步说明本发明的技术方案。本发明技术方案一种构建链上隐私交易的方法过程为:
步骤一、在能链区块链中,通过随机生成的256bit的0,1字符串生成私钥,并以一种在能链区块链存储私钥文件的格式的形式将私钥存在于文件中,用户通过存储私钥文件的格式和对称加密密码计算出私钥,存储私钥文件记录对称加密算法,以及对称加密后的密文;
步骤二、开始私钥授权使用的加密传输,并在指令集扩展中托管用户私钥,然后转到步骤四;
步骤三、在特定的被包围容器中,开始分步骤:分步骤1、开始进行能链加密算法,首先开始适用于区块链数据的网络传输和持久化存储标准对交易数据进行拍平操作,设定数字a、数据b和数字c为自然数,对于交易数据的值在[0, 数字a]之间的单个字节,交易数据的拍平编码是其本身;如果交易数据的值转化为byte数组的长度l <= 数字a,编码的结果是转化后byte数组本身,并加上设定的数字a+l作为前缀,如果交易数据的值转化为byte数组长度大于数字b, 编码结果第一个是数字c加交易数据的数组长度的编码的长度,分步骤2、然后是交易数据的数组长度的本身的编码,分步骤3、最后是转化后byte数组的编码,然后对交易数据的拍平编码开始进行签名,当对交易数据的拍平编码进行签名时,首先需要对交易数据的内容做hash,能链加密算法的生成通过调用指令集扩展底层哈希(hash)算法实现;
步骤四、交易行为包括客户端行为,第一步,收集交易,知道交易的内容,发送给谁,发送哪些数据,用以构造一笔无签名的交易,客户端行为获得交易发送方的基本信息时,包括但不限于tx.data,tx.price,tx.gaslimit数据;第二步,计算即对交易数据中的内容做哈希计算中需要考虑tx.data,tx.price,tx.gaslimit,tx.payload等字段;第三步,开始拿出交易数据的拍平编码数据(RLP编码数据),第四步,对交易数据的拍平编码数据使用被包围容器托管的私钥,使用secp256k1算法进行签名,得到签名数据;第五步,将交易数据的拍平编码数据和签名数据拼接起来,以构完整的报文;第六步,节点对完整的报文进行hash计算;第七步,由于交易最终会上链,因此需要明文传输。
客户端使用私钥对填充了rlpHash的交易数据进行签名。类能链区块链的签名算法使用secp256k1算法,指令集扩展官方库中只提供了ecc椭圆曲线,参照rust secp256k1进行实现了签名算法。
步骤五、根据计算处理的签名提取V,R,S字段。首先需要实现存储私钥文件(keystore文件)和私钥密码的加密传输。在本发明中,keystore文件和私钥密码通过非对称加密的方式进行传输。具体过程如下:被包围容器通过指令集扩展提供的基本库函数实现在启动初始化的过程中,首先生成一对rsa的公私钥,最终生成长度为3072的rsa算法,通过长度为3072位可以对最长长度为384字节的数据进行加密。当被包围容器生成一对rsa私钥后,被包围容器通过获取远程报告工具获取Intel远程的远程报告。在生成远程认证的过程中,将rsa的公钥填充至远程认证报告的data字段中。被包围容器获取intel的远程认证报告,并将该远程认证报告上传至区块链上。被包围容器的代码公开,用户可以编译,并可以查看被包围容器的度量。当用户获取区块链上存储的托管方的远程认证报告,对照托管方的远程认证报告中的度量字段与自己本地生成的度量字段。校验成功,并提取相应的rsa公钥。rsa公钥由mod和exp字段组成,用户通过mod和exp字段重新恢复公钥。用户使用恢复后的公钥对数据进行rsa加密。数据包括存储私钥文件文件和用户的存储私钥文件密码。在被包围容器内部对收到的数据,进行解密。存储私钥文件文件以字节流的形式传入被包围容器中。在被包围容器中,使用托管私钥对数据签名,首先需要实现通过私钥对数据签名的算法,并与区块链上通用算法保持一致。
当对交易数据进行签名时,首先需要对交易数据的内容进行哈希计算;哈希计算时中需要考虑tx.data,tx.price, tx.gaslimit,tx.payload字段;根据计算处理的签名提取V,R,S字段;V,R,S字段是交易签名后的值,被用来生成签名者的公钥;R字段,S字段是ECDSA椭圆加密算法的输出值,V字段是用于恢复结果的ID;当用户的私钥托管在可信硬件指令集扩展中时,当涉及到多个用户时,需要考虑私钥信息在内存中的存储;同时当被包围容器发生异常终止时,需要将之前的信息还原,因此需要考虑私钥信息的初始化问题。
并且在被包围容器中,需要考虑私钥的存储方式;私钥由两种表现形式,一种为私钥存储文件,一种为用户私钥;出于安全的考虑,在每一次需要做交易做签名的过程中,都需要用户将私钥存储文件的密码发送过来,重新解锁区块链私钥;私钥存储文件的相关处理过程为:用户将发送使用在被包围容器rsa公钥加密私钥存储文件,以及所述私钥存储文件保护账户的公钥地址得到加密数据;被包围容器使用被包围容器自己的rsa私钥对加密数据进行解密,将字节流和地址通过哈希映射的方式存放于内存中;被包围容器对私钥存储字节流调用指令集扩展的底层密封函数,得到加密后的使用指令集扩展的密钥封装的字节流;被包围容器将加密后的使用指令集扩展的密钥封装的字节流发送至不信任环境,并将加密数据写入到磁盘中;密钥封装为在特定中CPU都包含两个存储在存储电路中的root密钥和根Seal Key,并支持启用远程认证过程,root密钥仅被平台所支持。
在本发明中,重点关注如何实现类能链区块链的签名算法。在被包围容器中,实现三个过程:
当对交易进行签名时,首先需要对交易内容做hash。计算Hash中需要考虑tx.data,tx.price,tx.gaslimit,tx.payload等字段。Rlphash算法的生成通过调用指令集扩展底层hash算法实现。由于交易最终会上链,因此需要明文传输。使用私钥对填充了rlpHash的交易数据进行签名。类能链区块链的签名算法使用secp256k1算法,指令集扩展官方库中只提供了ecc椭圆曲线,参照rust secp256k1进行实现了签名算法。
根据计算处理的签名提取V,R,S字段。
指令集扩展存储区块链私钥
当用户的私钥托管在可信硬件指令集扩展中时,当涉及到多个用户时,需要考虑私钥信息在内存中的存储。同时当被包围容器发生异常终止时,需要将之前的信息还原,因此需要考虑私钥信息的初始化问题。
内存中私钥的存储方式
在被包围容器中,需要考虑私钥的存储方式。私钥由两种表现形式,一种为keystore文件,一种为用户私钥。
出于安全的考虑,在每一次需要做交易做签名的过程中,都需要用户将keystore文件的密码发送过来,重新解锁区块链私钥。私钥存储涉及的相关流程如下:
用户将使用被包围容器 rsa公钥加密的keystore文件发送过来,以及该keystore保护账户的公钥地址。
被包围容器使用自己的rsa私钥对加密数据进行解密,将字节流和地址通过哈希映射的方式存放于内存中。
被包围容器对keystore字节流调用指令集扩展的底层seal函数,得到加密后的字节流。
被包围容器将使用指令集扩展 key 封装的字节流发送至不信任环境,并将加密后的数据写入到磁盘中。
步骤一、在能链区块链中,通过随机生成的256bit的0,1字符串生成私钥,并以一种在能链区块链存储私钥文件的格式的形式将私钥存在于文件中,用户通过存储私钥文件的格式和对称加密密码计算出私钥,存储私钥文件记录对称加密算法,以及对称加密后的密文;
步骤二、开始私钥授权使用的加密传输,并在指令集扩展中托管用户私钥,
步骤三、在特定的被包围容器中,开始分步骤:分步骤1、开始进行能链加密算法,首先开始适用于区块链数据的网络传输和持久化存储标准对交易数据进行拍平操作,设定数字a、数据b和数字c为自然数,对于交易数据的值在[0, 数字a]之间的单个字节,交易数据的拍平编码数据是其本身;如果交易数据的值转化为byte数组的长度l <= 数字a,拍平编码的结果是转化后byte数组本身,并加上设定的数字a+l作为前缀,如果交易数据的值转化为byte数组长度大于数字b,拍平编码结果第一个是数字c加交易数据的数组长度的编码的长度;分步骤2、然后是交易数据的数组长度的本身的编码;分步骤3、最后是转化后byte数组的编码,然后对交易数据的拍平编码数据开始进行签名,当对交易数据的拍平编码进行签名时,首先需要对交易数据的内容做哈希计算,能链加密算法的生成通过调用指令集扩展底层哈希算法实现;
步骤四、交易行为包括客户端行为,第一步,客户端行为主要有收集交易行为,收集交易行为包括有知晓交易的内容,发送给谁,发送哪些数据,通过收集交易行为用以构造一笔无签名的交易数据,客户端行为获得交易发送方的基本信息时,包括但不限于tx.data,tx.price,tx.gaslimit数据;第二步,计算即对交易数据的内容做哈希计算中需要考虑tx.data,tx.price,tx.gaslimit,tx.payload字段;第三步,开始拿出交易数据的拍平编码数据,第四步,对交易数据的拍平编码数据使用被包围容器托管的私钥,使用secp256k1算法进行签名,得到签名数据;第五步,将交易数据的拍平编码数据和签名数据拼接起来,以构造完整报文;第六步,节点对完整报文进行哈希计算;第七步,由于完整报文最终会上链,因此需要明文传输;
步骤四中客户端行为获得交易发送方的基本信息时,包括但不限于tx.data,tx.price,tx.gaslimit数据;对交易数据的拍平编码数据使用被包围容器托管的私钥进行签名,使用secp256k1算法,得到签名数据;
步骤五、根据计算处理的签名数据提取V,R,S字段;首先需要实现存储私钥文件和私钥密码的加密传输;存储私钥文件和私钥密码通过非对称加密的方式进行传输;具体过程如下:被包围容器通过指令集扩展提供的基本库函数实现在启动初始化的过程中,首先生成一对rsa的公私钥,最终生成长度为3072位的rsa算法,通过长度为3072位可以对最长长度为384字节的数据进行加密;当被包围容器生成一对rsa私钥后,被包围容器通过获取远程报告工具获取远程认证报告;在生成远程认证报告的认证过程中,将一对rsa的公钥填充至远程认证报告的data字段中;被包围容器获取远程认证报告,并将远程认证报告上传至能链区块链上;
被包围容器的代码公开,并允许用户编译,并允许用户查看被包围容器的度量,当用户获取能链区块链上存储的托管方的远程认证报告,对照托管方的远程认证报告中的度量字段与自己本地生成的度量字段;当校验成功,提取相应的rsa公钥,rsa公钥由mod和exp字段组成,用户通过mod和exp字段重新恢复rsa公钥;用户使用恢复后的rsa公钥对交易数据进行rsa算法加密,交易数据包括存储私钥文件和用户的存储私钥文件密码,在被包围容器内部对收到的数据,进行解密存储私钥文件以字节流的形式传入被包围容器中;在被包围容器中,使用托管私钥对数据签名,首先需要实现通过私钥对数据签名的算法,并与区块链上通用算法保持一致;当对交易数据进行签名时,首先需要对交易数据的内容进行哈希计算;哈希计算时中需要考虑tx.data, tx.price, tx.gaslimit,tx.payload字段;根据计算处理的签名提取V,R,S字段;V,R,S字段是交易签名后的值,被用来生成签名者的公钥;R字段,S字段是ECDSA椭圆加密算法的输出值,V字段是用于恢复结果的ID;当用户的私钥托管在可信硬件指令集扩展中时,当涉及到多个用户时,需要考虑私钥信息在内存中的存储;同时当被包围容器发生异常终止时,需要将之前的信息还原,因此需要考虑私钥信息的初始化问题;
在被包围容器中,需要考虑私钥的存储方式;私钥由两种表现形式,一种为私钥存储文件,一种为用户私钥;出于安全的考虑,在每一次需要做交易做签名的过程中,都需要用户将私钥存储文件的密码发送过来,重新解锁区块链私钥;
私钥存储文件的相关处理过程为:用户将发送使用在被包围容器rsa公钥加密私钥存储文件,以及所述私钥存储文件保护账户的公钥地址得到加密数据;被包围容器使用被包围容器自己的rsa私钥对加密数据进行解密,将字节流和地址通过哈希映射的方式存放于内存中;被包围容器对私钥存储字节流调用指令集扩展的底层密封函数,得到加密后的使用指令集扩展的密钥封装的字节流;被包围容器将加密后的使用指令集扩展的密钥封装的字节流发送至不信任环境,并将加密数据写入到磁盘中;密钥封装为在特定中CPU都包含两个存储在存储电路中的root密钥和根Seal Key,并支持启用远程认证过程,root密钥仅被平台所支持。
以上所述, 仅为本发明较佳的具体实施方式, 但本发明的保护范围并不局限于此, 任何熟悉该技术的人在本发明所揭露的技术范围内, 可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此, 本发明的保护范围应该以权利要求的保护范围为准。
有益效果:本发明构建区块链授权计算控制方法。在原有的能链开放许可链节点上,得到加密后的使用指令集扩展的密钥封装的字节流;被包围容器将加密后的使用指令集扩展的密钥封装的字节流发送至不信任环境,并将加密数据写入到磁盘中;密钥封装为在特定中CPU都包含两个存储在存储电路中的root密钥和根Seal Key,并支持启用远程认证过程,root密钥仅被平台所支持。
Claims (1)
1.一种区块链授权计算控制方法,其特征在于,包括有:
步骤一、在能链区块链中,通过随机生成的256bit的0,1字符串生成私钥,并以一种在能链区块链存储私钥文件的格式的形式将所述私钥存在于文件中,用户通过存储私钥文件的格式和对称加密密码计算出私钥,存储私钥文件记录对称加密算法,以及对称加密后的密文;
步骤二、开始私钥授权使用的加密传输,并在指令集扩展中托管用户私钥,然后转到步骤四;
步骤三、在特定的被包围容器中,开始分步骤:分步骤1、开始进行能链加密算法,首先开始适用于区块链数据的网络传输和持久化存储标准对交易数据进行拍平操作,设定数字a、数据b和数字c为自然数,对于交易数据的值在[0, 数字a]之间的单个字节,交易数据的拍平编码数据是其本身;如果交易数据的值转化为byte数组的长度l <= 数字a,拍平编码的结果是转化后byte数组本身,并加上设定的数字a+l作为前缀,如果交易数据的值转化为byte数组长度大于数字b,拍平编码结果第一个是数字c加交易数据的数组长度的编码的长度;分步骤2、然后是交易数据的数组长度的本身的编码;分步骤3、最后是转化后byte数组的编码,然后对交易数据的拍平编码数据开始进行签名,当对交易数据的拍平编码进行签名时,首先需要对交易数据的内容做哈希计算,能链加密算法的生成通过调用指令集扩展底层哈希算法实现;
步骤四、交易行为包括客户端行为,第一步,客户端行为主要有收集交易行为,收集交易行为包括有知晓交易的内容,发送给谁,发送哪些数据,通过收集交易行为用以构造一笔无签名的交易数据,客户端行为获得交易发送方的基本信息时,包括但不限于tx.data,tx.price,tx.gaslimit数据;第二步,计算即对交易数据的内容做哈希计算中需要考虑tx.data,tx.price,tx.gaslimit,tx.payload字段;第三步,开始拿出交易数据的拍平编码数据,第四步,对交易数据的拍平编码数据使用被包围容器托管的私钥, 使用secp256k1算法进行签名,得到签名数据;第五步,将交易数据的拍平编码数据和签名数据拼接起来,以构造完整报文;第六步,节点对完整报文进行哈希计算;第七步、由于完整报文最终会上链,因此需要明文传输;
步骤五、根据计算处理的签名数据提取V,R,S字段;首先需要实现存储私钥文件和私钥密码的加密传输;存储私钥文件和私钥密码通过非对称加密的方式进行传输;具体过程如下:被包围容器通过指令集扩展提供的基本库函数实现在启动初始化的过程中,首先生成一对rsa的公私钥,最终生成长度为3072位的rsa算法,通过长度为3072位可以对最长长度为384字节的数据进行加密;当被包围容器生成一对rsa私钥后,被包围容器通过获取远程报告工具获取远程认证报告;在生成远程认证报告的认证过程中,将一对rsa的公钥填充至远程认证报告的data字段中;被包围容器获取远程认证报告,并将远程认证报告上传至能链区块链上;被包围容器的代码公开,并允许用户编译,并允许用户查看被包围容器的度量,当用户获取能链区块链上存储的托管方的远程认证报告,对照托管方的远程认证报告中的度量字段与自己本地生成的度量字段;当校验成功,提取相应的rsa公钥,rsa公钥由mod和exp字段组成,用户通过所述mod和exp字段重新恢复rsa公钥;用户使用恢复后的rsa公钥对交易数据进行rsa算法加密,交易数据包括存储私钥文件和用户的存储私钥文件密码,在被包围容器内部对收到的数据,进行解密存储私钥文件以字节流的形式传入被包围容器中;在被包围容器中,使用托管私钥对数据签名,首先需要实现通过私钥对数据签名的算法,并与区块链上通用算法保持一致;当对交易数据进行签名时,首先需要对交易数据的内容进行哈希计算;哈希计算时中需要考虑tx.data,tx.price, tx.gaslimit,tx.payload字段;根据计算处理的签名提取V,R,S字段;V,R,S字段是交易签名后的值,被用来生成签名者的公钥;R字段,S字段是ECDSA椭圆加密算法的输出值,V字段是用于恢复结果的ID;当用户的私钥托管在可信硬件指令集扩展中时,当涉及到多个用户时,需要考虑私钥信息在内存中的存储;同时当被包围容器发生异常终止时,需要将之前的信息还原,因此需要考虑私钥信息的初始化问题;并且在被包围容器中,需要考虑私钥的存储方式;私钥由两种表现形式,一种为私钥存储文件,一种为用户私钥;出于安全的考虑,在每一次需要做交易做签名的过程中,都需要用户将私钥存储文件的密码发送过来,重新解锁区块链私钥;私钥存储文件的相关处理过程为:用户将发送使用在被包围容器rsa公钥加密私钥存储文件,以及所述私钥存储文件保护账户的公钥地址得到加密数据;被包围容器使用被包围容器自己的rsa私钥对加密数据进行解密,将字节流和地址通过哈希映射的方式存放于内存中;被包围容器对私钥存储字节流调用指令集扩展的底层密封函数,得到加密后的使用指令集扩展的密钥封装的字节流;被包围容器将加密后的使用指令集扩展的密钥封装的字节流发送至不信任环境,并将加密数据写入到磁盘中;密钥封装为在特定中CPU都包含两个存储在存储电路中的root密钥和根Seal Key,并支持启用远程认证过程,root密钥仅被平台所支持。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110293128.1A CN112907247B (zh) | 2021-03-18 | 2021-03-18 | 一种区块链授权计算控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110293128.1A CN112907247B (zh) | 2021-03-18 | 2021-03-18 | 一种区块链授权计算控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112907247A CN112907247A (zh) | 2021-06-04 |
CN112907247B true CN112907247B (zh) | 2024-01-26 |
Family
ID=76105516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110293128.1A Active CN112907247B (zh) | 2021-03-18 | 2021-03-18 | 一种区块链授权计算控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112907247B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220319265A1 (en) * | 2021-03-31 | 2022-10-06 | Sony Group Corporation | Computer program, non-transitory machine-readable medium, apparatus, and methods for electronic election |
CN116094739A (zh) * | 2021-11-08 | 2023-05-09 | 华为云计算技术有限公司 | 加密方法、装置及相关设备 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533661A (zh) * | 2016-10-25 | 2017-03-22 | 北京大学 | 基于组合公钥的密码学货币地址在线生成方法 |
CN109377226A (zh) * | 2018-10-30 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种交易信息管理方法及相关设备 |
CN109818930A (zh) * | 2018-12-27 | 2019-05-28 | 南京信息职业技术学院 | 一种基于tcp协议的通讯文本数据传输方法 |
CN110048847A (zh) * | 2019-03-13 | 2019-07-23 | 上海七印信息科技有限公司 | 一种基于区块链技术的快速扫码签名方法 |
CN110149322A (zh) * | 2019-05-06 | 2019-08-20 | 山东公链信息科技有限公司 | 一种不可逆的动态失效重验重建的区块链加密方法 |
CN110417556A (zh) * | 2019-07-02 | 2019-11-05 | 北京交通大学 | 区块链中的加密及签章验证方法 |
CN110943976A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种基于口令的用户签名私钥管理方法 |
CN111147245A (zh) * | 2020-01-08 | 2020-05-12 | 江苏恒为信息科技有限公司 | 一种区块链中使用国家密码进行加密的算法 |
WO2020108019A1 (zh) * | 2018-11-29 | 2020-06-04 | 苏宁云计算有限公司 | 一种基于联盟链的数据传递方法及装置 |
CN111368333A (zh) * | 2020-03-26 | 2020-07-03 | 国金公用通链(海南)信息科技有限公司 | 一种通用区块链密钥封装技术 |
WO2020143470A1 (zh) * | 2019-01-09 | 2020-07-16 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
CN111526023A (zh) * | 2020-04-27 | 2020-08-11 | 南京讯石数据科技有限公司 | 一种基于ipk的区块链上链数据安全认证方法与系统 |
CN111639361A (zh) * | 2020-05-15 | 2020-09-08 | 中国科学院信息工程研究所 | 一种区块链密钥管理方法、多人共同签名方法及电子装置 |
CN112217807A (zh) * | 2020-09-25 | 2021-01-12 | 山西特信环宇信息技术有限公司 | 一种锥体区块链密钥生成方法、认证方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101447554B1 (ko) * | 2013-11-08 | 2014-10-08 | 한국전자통신연구원 | 암호화된 파일을 복호화하는 장치 및 그 방법 |
-
2021
- 2021-03-18 CN CN202110293128.1A patent/CN112907247B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533661A (zh) * | 2016-10-25 | 2017-03-22 | 北京大学 | 基于组合公钥的密码学货币地址在线生成方法 |
CN109377226A (zh) * | 2018-10-30 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种交易信息管理方法及相关设备 |
WO2020108019A1 (zh) * | 2018-11-29 | 2020-06-04 | 苏宁云计算有限公司 | 一种基于联盟链的数据传递方法及装置 |
CN109818930A (zh) * | 2018-12-27 | 2019-05-28 | 南京信息职业技术学院 | 一种基于tcp协议的通讯文本数据传输方法 |
WO2020143470A1 (zh) * | 2019-01-09 | 2020-07-16 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
CN110048847A (zh) * | 2019-03-13 | 2019-07-23 | 上海七印信息科技有限公司 | 一种基于区块链技术的快速扫码签名方法 |
CN110149322A (zh) * | 2019-05-06 | 2019-08-20 | 山东公链信息科技有限公司 | 一种不可逆的动态失效重验重建的区块链加密方法 |
CN110417556A (zh) * | 2019-07-02 | 2019-11-05 | 北京交通大学 | 区块链中的加密及签章验证方法 |
CN110943976A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种基于口令的用户签名私钥管理方法 |
CN111147245A (zh) * | 2020-01-08 | 2020-05-12 | 江苏恒为信息科技有限公司 | 一种区块链中使用国家密码进行加密的算法 |
CN111368333A (zh) * | 2020-03-26 | 2020-07-03 | 国金公用通链(海南)信息科技有限公司 | 一种通用区块链密钥封装技术 |
CN111526023A (zh) * | 2020-04-27 | 2020-08-11 | 南京讯石数据科技有限公司 | 一种基于ipk的区块链上链数据安全认证方法与系统 |
CN111639361A (zh) * | 2020-05-15 | 2020-09-08 | 中国科学院信息工程研究所 | 一种区块链密钥管理方法、多人共同签名方法及电子装置 |
CN112217807A (zh) * | 2020-09-25 | 2021-01-12 | 山西特信环宇信息技术有限公司 | 一种锥体区块链密钥生成方法、认证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112907247A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8687800B2 (en) | Encryption method for message authentication | |
CN107395368B (zh) | 无介质环境中的数字签名方法及解封装方法与解密方法 | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
CN113779645B (zh) | 一种量子数字签名和量子数字签密方法 | |
CN112907247B (zh) | 一种区块链授权计算控制方法 | |
CN111314050B (zh) | 一种加解密方法及装置 | |
CN112152805B (zh) | 一种认证加密方法、验证解密方法和通信方法 | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
CN113711564A (zh) | 用于加密数据的计算机实现的方法和系统 | |
CN111147245A (zh) | 一种区块链中使用国家密码进行加密的算法 | |
CN106067878A (zh) | 一种网络数据加密传输方法 | |
CN108989049A (zh) | 一种无双线性配对的代理重加密系统及加密方法 | |
CN115208615B (zh) | 一种数控系统数据加密传输方法 | |
KR20210063378A (ko) | 공통 비밀을 공유하는 컴퓨터 구현 시스템 및 방법 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
CN100531027C (zh) | 一种基于安全环境的密钥移植方法 | |
CN109218251B (zh) | 一种防重放的认证方法及系统 | |
CN114567431A (zh) | 一种用于单向传输的安全认证方法 | |
CN114065249A (zh) | 一种认证加密方法 | |
CN115865313A (zh) | 一种轻量级隐私保护纵向联邦学习模型参数聚合方法 | |
KR102304831B1 (ko) | 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법 | |
CN110474780B (zh) | 一种后量子pgp加密方法、加密装置、解密方法及解密装置 | |
CN108616351B (zh) | 一种全动态加密解密方法及加密解密装置 | |
CN111314051B (zh) | 一种加解密方法和装置 | |
TWI665901B (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 | ||
CB02 | Change of applicant information |
Address after: 200120 building C3, No. 101 Eshan Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Shanghai Lingshuzhonghe Information Technology Co.,Ltd. Address before: 18ef, China Resources Times Plaza, 500 Zhangyang Road, Pudong New Area, Shanghai, 200120 Applicant before: NENG LIAN TECH. LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |