CN116827555A - 基于密文密钥关系验证的区块链数据加解密方法及系统 - Google Patents
基于密文密钥关系验证的区块链数据加解密方法及系统 Download PDFInfo
- Publication number
- CN116827555A CN116827555A CN202310913555.4A CN202310913555A CN116827555A CN 116827555 A CN116827555 A CN 116827555A CN 202310913555 A CN202310913555 A CN 202310913555A CN 116827555 A CN116827555 A CN 116827555A
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- uplink
- plaintext
- correctness
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000007246 mechanism Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 14
- 238000010276 construction Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 4
- 230000007774 longterm Effects 0.000 abstract description 5
- 230000005540 biological transmission Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供基于密文密钥关系验证的区块链数据加解密方法及系统,包括:使数据加密方构造数据解密方公钥,对明文进行加密处理,得到待上链数据密文,计算明文承诺,据以构造密文正确性证明,将待上链数据密文、明文承诺以及密文正确性证明作为待上链数据内容;发送待上链数据内容至区块链节点;验证待上链数据内容的正确性证明,以得到正确性证明验证结果,在密文与公钥绑定关系符合要求时,进行密文上链操作;利用数据解密方访问链上数据;利用数据解密方,解密获取链上数据中的待上链数据的明文。本发明解决了现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。
Description
技术领域
本发明涉及数据加解密技术领域,具体涉及基于密文密钥关系验证的区块链数据加解密方法及系统。
背景技术
现有方案中的密钥管理:
如图1所示,密钥管理主要通过调用密码安全服务平台部分功能进行实现。密码安全服务平台提供国密算法保证落地和传输过程的数据安全,并提供基础密码创建和相关服务,密码安全服务平台通过安全网关与数据交换平台进行交互,访问密码安全服务平台。密码安全服务平台将相关地址注册到安全认证网关,由安全认证网关转换成Https,对传输通道进行加密,保证平台安全。
现有方案中的国密算法:
数据交换平台通过加/解密功能保护落地数据和传输中的数据安全,使末经授权方无法有效获取信息。平台调用全密码安全服务平台提供的国密算法:SM2,SM3,SM4,完成散列、加密及签名功能。
现有方案中的密码创建:
数据交换平台运行过程中需要由全密码安全服务平台提供密码生成与创建功能,用于交换过程中的加/解密。
现有方案中的密码服务:
数据交换平台运行过程中需要由全密码安全服务平台提供基础密码服务和密码查询功能,用于密码管理。
现有方案中的数据传输安全:
如图2所示,数据传输过程分为数据包生成、数据包传输、数据包存储、消息通知发送、数据包获取五个阶段。
现有方案中的数据包生成:
数据资源方按照资源的交换频次生成数据包。数据资源方首先通过鉴权获取公钥,并通过公钥对数据进行加密,生成密文数据。
现有方案中的数据包传输:
已密文数据将通过电子政务外网进行数据传输,到达前置级联组件。
现有方案中的数据包存储:
前置级联组件通过资源方私钥对密文数据进行解密,并通过前置数据中心密钥进行加密,再将加密后的数据包存储至分布式文件中心。
现有方案中的消息通知发送:
数据包上传到前置数据中心后,实时推送数据获取通知消息给资源对应的所有订阅方。
现有方案中的数据包获取:
数据订阅方接取到数据到达消息后,主动从前置级联组件拉取对应的数据包。
现有方案中的数据包落地安全:
数据包落地安全将为安全等级较高的数据提供落地加密服务。
数据订阅方获取到加密数据包后使用自己的私钥进行解密;对解密后的数据进行后续业务处理。
现有方案中的区块链技术:
(1)DAG(有向非循环图)图链式数据结构
区块链的不可篡改特性主要是基于特有的链式数据结构,区块链中的交换信息存储在区块中,每个区块的区块头链接前一个父区块,哈希值相互对应并加上时间戳,依此顺序连接形成的链式数据结构来保证区块链的不可篡改性。
本次区块链采用的是平行账户链的DAG(有向非循环图)图链式数据结构,在原有链式数据结构保证不可篡改和去中心化程度前提下,对链实现扩展;并且在保障区块链系统稳定运行的同时也可以实现账户链之间异步共识,通过并行处理数据上链,不需要排队等待,从而提高交换数据上链的效率,缩短交换确认的平均时间,使交换确认时间做到毫秒级确认。
(2)点对点网络通信
本次区块链采取的通信方式是点对点网络通信,点对点网络又称对等式网络,是无中心服务器、依靠用户群交换信息的互联网体系。点对点网络通信与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,既是网络里资源信息的提供者,也是享有资源者。
本次区块链采取实行点对点网络通信,减弱了以往网络传输中的中心服务器节点作用,以降低中心服务器压力大、数据易被攻击泄露等风险,提高了防故障能力。P2P网络还可以让所有的客户端都能提供资源,包括带宽,存储空间和计算能力,因此随着节点加入且对系统请求增多,整个系统的容量也增大,这是具有一组固定服务器随着客户端的增加意味着所有用户的数据传输性能更差的结构所不不具备的能力。
(3)共识机制
通俗来说,共识机制是一种利益分配机制,目前主要有PoW、PoS、DPoS三种主要机制,各自的共识形式不尽相同,存在各自的优缺点。
1)工作量证明:PoW
这里工作量是指计算机计算随机数的工作量,而在一定时间内找到随机数具有难度,需要投入算力。最先得到随机数的节点,将打包的交易区块添加到既有的区块链上,并向全网广播,由其他节点验证、同步,同时系统通过“按劳分配”给该节点分配相应奖励。
2)权益证明:PoS
PoS是PoW机制的一种升级机制,根据每个节点所占的比例和时间,等比降低工作量证明难度,从而加快寻找随机数的速度。PoW机制最大的问题是会浪费很多算力资源,而PoS机制类似现实中的股份制。在PoS机制中,持有更多通证及相应时间的出块者将获得更多的投票权。
3)股份授权证明:DPoS
PoS机制的问题是会阻碍新生力量的加入,因为后来的人持通证时间肯定比先来的人短,不利于整个区块链社区的发展。DPoS机制优势在于记账人数量大大减少,并且由授权的超级节点来轮流记账,从而大大提高了系统的整体效率,在理想环境中,DPoS机制每秒能够实现数十万笔交易。
(4)智能合约
智能合约的初衷是在没有信任第三方可信权威参与和控制的情况下,借助计算机程序,编写能够自动执行合约条款的在区块链上的代码序列,代码逻辑定义了合约内容,这段代码逻辑一经触发便在全网自动执行,并借助区块链基础平台对执行结果进行公示确认,每次运行都是可跟踪和不可逆的。智能合约技术成功去掉了中介,依托技术实现用户之间自主灵活建立合约,实现了区块链性的可定制性和可编程性;并且智能合约通过区块链上清晰的代码,保障业务流程公开透明、不可篡改、高效自动化,使区块链与业务结合度更高,适用性更强,极大降低了人为操控的隐患。区块链通过与智能合约技术的结合,拓宽了区块链技术的使用场景,使得区块链的应用有了更加广阔的舞台。
(5)安全体系
本次区块链通过哈希加密、非对称加密等密码学技术,实现上链数据的加密不可见,保护上链隐私安全。哈希算法是一类加密算法的统称,是信息领城中非常重要的技术,我们可以将哈希算法的输出(也就是哈希值)理解为区块链世界中的“地址”,有了这个地址,就可以定位到任何区块。区块链的数据一旦通过哈希加密,哪怕被黑客截获,想破解也极为困难,这保证了区块链的节点数据安全。
非对称加密是指加密和解密使用不同密钥的加密算法,又称公私钥加密,这是目前信息安全领域使用最广的加密模式。非对称加密采用公钥和私钥两个密钥,在区块链网络中,每个节点都拥有唯一的一对私钥和公钥。公钥是公开的,私钥是非公开的部分,使用密钥对时,使用公钥加密,私钥解密。非对称加密技术是目前互联网信息安全的基石,确保了区块链上数据安全性。
公布号为CN111357026A的现有发明专利申请文献《基于区块链的可信保函》,该方法包括:接收指定保函的数字文档的密文,以及与关联于保函的一个或多个值有关的一个或多个零知识证明(ZKP);验证一个或多个零知识证明;在成功验证了一个或多个零知识证明后,基于执行共识算法将密文存储到区块链中;从与受益人或受益人的代表相关联的第一计算设备接收针对保函的提款请求;基于执行共识算法将提款请求存储到区块链中;将关于提款请求的第一消息传递给与第一担保人相关联的第二计算设备。本申请与该申请的区别在于,本申请实现了数据加密密钥的确定性认证,而该申请仅仅实现了加密内容的对应关系验证,作用对象不同,并且本申请还存在以下优势:对于一个加密内容,本申请只需要构造一个零知识证明即可验证其绑定关系,而该申请可能需要多个零知识证明来验证,本申请具有更高的效率。
公布号为CN111989707A的现有发明专利申请文献《管理基于区块链的海关清关服务的用户权限》,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:在服务平台处,从与用户相关联的计算设备接收加密密钥和数据以存储在区块链上,其中,所述数据包括公开数据和隐私数据,并且所述加密密钥对所述隐私数据进行加密;将所述加密密钥和所述数据的标识(ID)存储在缓存存储中,所述缓存存储专用于存储用于执行智能合约的智能合约数据;以及调用应用编程接口(API),以使区块链节点能够发起共识算法来将所述数据和所述数据的ID记录在区块链上。其中,所述一个或多个零知识证明中的至少一个是基于同态加密生成的,并且是范围证明或零测试中的至少一个,并且所述共识算法是在验证了所述一个或多个零知识证明之后执行的。生成与关联于所述隐私数据的一个或多个值有关的一个或多个零知识证明ZKP。本申请与该申请的区别在于,本申请未使用范围证明、同态加密的方式,相比于该申请具有更易实现、更高性能的优势。
公布号为CN115694840A的现有发明专利申请文献《用于区块链的证明方法及装置、电子设备和存储介质》获取地址控制者对该地址控制者的公开地址的一个或多个绑定声明,该一个或多个绑定声明指示公开地址和该地址控制者的一个或多个私密地址之间的绑定关系;针对该一个或多个私密地址中的每一个私密地址,获取对该一个或多个绑定声明中的对应绑定声明进行签名后的签名数据,其中,对该对应绑定声明进行签名是基于与该私密地址对应的私钥的;以及利用符合预设条件的零知识证明电路来生成用于验证该一个或多个绑定关系的第一证明数据,其中,零知识证明电路的输入包括签名数据。本申请与该申请的区别在于,使用了专用零知识证明构造,而该申请使用的非通用零知识证明构造,无需设计零知识证明电路,本申请在实现难度和零知识证明构造方面均有优势。
综上,现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。
发明内容
本发明所要解决的技术问题在于:如何解决现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。
本发明是采用以下技术方案解决上述技术问题的:基于密文密钥关系验证的区块链数据加解密方法包括:
S1、使数据加密方构造数据解密方公钥,对待上链数据的明文进行加密处理,得到待上链数据密文,计算得到待上链数据的明文承诺,据以构造密文正确性证明,将待上链数据密文、明文承诺以及密文正确性证明作为待上链数据内容;
S2、发送待上链数据内容至不少于2个的区块链节点;
S3、利用区块链节点验证待上链数据内容的正确性证明,以得到正确性证明验证结果,在判定待上链数据密文与解密方公钥绑定关系符合预置要求时,对待上链数据内容进行密文上链操作,以生成链上数据;
S4、利用数据解密方访问链上数据;
S5、利用数据解密方,解密获取链上数据中的待上链数据的明文。
本发明解决链上数据加密使用的密钥确定性问题,即支持验证密文与密钥的绑定关系,验证某个密文确实是使用指定密钥加密的,对于不符合要求的加密数据,拒绝上链,保障链上数据可用性。
在更具体的技术方案中,步骤S1包括:
S11、数据加密方使用数据解密方的公钥pk,对待上链数据的明文M加密,以得到待上链数据密文;
S12、计算待上链数据的明文承诺;
S13、数据加密方选取随机数,据以计算明文承诺,以得到上链数据的标识,据以构造密文正确性证明,其中,密文正确性证明包括:零知识证明。
在更具体的技术方案中,步骤S11包括:
S111、选取随机数据以利用下述逻辑处理得到密文参数Cx,Cy:
Cx=rc·G,Cy=M+rc·pk
式中,pk为公钥,M表示明文,G为椭圆曲线群的生成元,Cx和Cy分别表示密文对应的椭圆曲线中的两个点,其中x和y作为下标区分该两个点;
S112、根据密文参数,利用下述逻辑处理得到待上链数据密文CTp:
CTp=(Cx,Cy)
式中,CTp表示密文,其中的p表示其内容由明文(plaintext)加密而来。
在更具体的技术方案中,步骤S12中,根据预置承诺机制中的隐藏性和绑定性,处理得到明文承诺,其中,明文承诺包括:隐藏性承诺以及绑定性承诺。
在更具体的技术方案中,利用下述逻辑,对任意x,x′构造隐藏性承诺C、C′。
C=Com(x,r),C′=Com(x′,r)
式中,x’指的是不同于x的另一个秘密值,r代表一个随机数,用于共同计算承诺值。
在更具体的技术方案中,步骤S13包括:
S131、数据加密方首先选取随机数并计算Rd=rd·G;其中,d代表随机数r的下标,用以对传输(delivery)的数据进行加密所使用的随机数,用作delivery的简称;
S132、利用下述逻辑计算明文承诺CM=Hp(rd·pk)·G+M,作为上链数据的标识;
S133、根据Rd、明文承诺及标识,构造零知识证明。
在更具体的技术方案中,步骤S133中,根据下述逻辑构造零知识证明π,其中,Hp指的是一个抗碰撞哈希函数,其可将任意数据映射为整数群中的一个元素,而pf则作为零知识证明构造过程中的中间变量,从明文承诺CM中截取的前项,是parameter front的简称:
令:
pf=Hp(rd·pk);
选取两个随机数计算:
Rx=rs·G,Ry=rs·pk,Rf=rf·G;
其中,Rx,Ry,Rf均为构造零知识证明中所需要的随机值承诺,用于确保零知识证明的不可否认性,随机数rs,rf的意义在于使零知识证明的构造不可伪造,并且保护零知识证明中的秘密;
令:
Rp=Ry-Rf;
计算:
h=Hp(Rp||Rx||G||pk||Cx||Cy||CM);
令:
ws=rs+h·rc,wf=rf+h·pf;
其中,h是零知识证明中公开参数值拼接后的哈希运算结果,用以保障零知识证明的可靠性,ws与wf则是随机数rs,rf参与运算的零知识证明中的见证数据(witness),用以保障零知识证明的正确性;
得到零知识证明:
π=(ws,wf,h)。
本发明的区块链支持过程中,以区块链节点程序通过零知识证明验证的方式,支持了对上链内容的加密合法性验证,通过验证零知识证明,验证上链交易内容是否经过了指定的公钥加密,有效过滤了无效的垃圾上链数据。
在更具体的技术方案中,步骤S3包括:
S31、利用区块链节点,计算上链数据内容中的接收交易数据,以验证正确性证明;
S32、在正确性证明验证结果为真时,将当前密文上链;
S33、在正确性证明验证结果为假时,拒绝将当前密文上链。
本发明通过构造待上联数据的零知识证明,并对零知识证明进行验证,仅在零知识证明验证为真时允许当前密文上链,在不暴露加密内容的情况下验证加密方法的正确性。
在更具体的技术方案中,步骤S31中,利用下述逻辑,处理接收交易数据(CM,Rd,CTp):
R′p=ws·pk-wf·G+h·(CM-Cy);
R′x=Ws·G-h·Cx;
h′=Hp(R′p||R′x||G||pk||Cx||Cy||CM)。
其中,R′p,R′x和h′是零知识证明验证方根据可公开的参数运算得到的用于零知识证明验证的中间变量,用以验证零知识证明的正确性。
在更具体的技术方案中,基于密文密钥关系验证的区块链数据加解密系统包括:
上链数据内容构造模块,用以使数据加密方构造数据解密方公钥,对待上链数据的明文进行加密处理,得到待上链数据密文,计算得到待上链数据的明文承诺,据以构造密文正确性证明,将待上链数据密文、明文承诺以及密文正确性证明作为待上链数据内容;
上链数据发送模块,用以发送待上链数据内容至不少于2个的区块链节点,上链数据发送模块与上链数据内容构造模块连接;
上链内容验证模块,用以利用区块链节点验证待上链数据内容的正确性证明,以得到正确性证明验证结果,在判定待上链数据密文与解密方公钥绑定关系符合预置要求时,对待上链数据内容进行密文上链操作,以生成链上数据,上链内容验证模块与上链数据发送模块连接;
链上数据访问模块,用以利用数据解密方访问链上数据,链上数据访问模块与上链内容验证模块连接;
上链密文解密模块,用以利用数据解密方,解密获取链上数据中的待上链数据的明文。
本发明相比现有技术具有以下优点:本发明解决链上数据加密使用的密钥确定性问题,即支持验证密文与密钥的绑定关系,验证某个密文确实是使用指定密钥加密的,对于不符合要求的加密数据,拒绝上链,保障链上数据可用性。
本发明的区块链支持过程中,以区块链节点程序通过零知识证明验证的方式,支持了对上链内容的加密合法性验证,通过验证零知识证明,验证上链交易内容是否经过了指定的公钥加密,有效过滤了无效的垃圾上链数据。
本发明通过构造待上联数据的零知识证明,并对零知识证明进行验证,仅在零知识证明验证为真时允许当前密文上链,在不暴露加密内容的情况下验证加密方法的正确性。本发明解决了现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。
附图说明
图1为现有技术中的密钥管理基本架构示意图;
图2为现有技术中的数据加解密传输操作示意图;
图3为本发明实施例1的基于密文密钥关系验证的区块链数据加解密方法步骤示意图;
图4为本发明实施例1的数据明文加密具体原理图;
图5为本发明实施例1的零知识证明构造具体原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图3所示,本发明提供基于密文密钥关系验证的区块链数据加解密方法,包括以下基本步骤:
S1、数据加密方构造待上链数据内容;
在本实施例中,构造待上链数据的步骤S1,还包括以下步骤:
S11、构造数据解密方的公钥,加密待上链的数据明文;
如图4所示,在本实施例中,在数据明文加密过程中,数据加密方使用数据解密方的公钥pk对明文M加密,选取随机数得到密文Cx=rc·G,Cy=M+rc·pk,将CTp=(Cx,Cy)作为加密密文。
S12、计算待上链数据的明文承诺;
在本实施例中,密码学中的承诺机制是一类基础原语,可实现秘密的延迟公布,机制的执行涉及两方,承诺者和验证者,承诺者针对某个秘密生成对应的承诺,向验证者公布承诺,在满足某项条件后(如规定时刻之后)可由承诺者打开承诺,验证者此时可以验证承诺的打开值是否与之前的承诺值满足对应关系。因此,承诺机制需要满足如下两个属性:隐藏性(hiding)和绑定性(binding)。
在本实施例中,隐藏性是指,对于任意x,x′所构造的承诺:
C=Com(x,r),C′=Com(x′,r)
在本实施例中,攻击者在多项式时间内成功区分C和C′的概率是可忽略的。
在本实施例中,绑定性是指,对于任意的承诺C=Com(x,r),一旦承诺者已经生成C,则任何人在多项式时间内成功找到x′≠x,使得Com(x′,r)=C的成立的概率是可忽略的。
在本实施例中,在众多密码学承诺构建的方案中,Hash承诺较为常用,其中Hash承诺利用密码学哈希函数的单向性作为理想随机预言机模型的近似工程实现方案,在揭示秘密时,需要公布承诺的原始值x即Hash函数的原象。
S13、构造密文正确性证明;
如图5所示,在本实施例中,数据加密方首先选取随机数并计算Rd=rd·G,计算数据明文承诺CM=Hp(rd·pk)·G+M,作为上链数据的标识。
在本实施例中,按如下规则构造零知识证明π:
令pf=Hp(rd·mpk);
选取两个随机数计算Rx=rs·G,Ry=rs·pk,Rf=rf·G;
令Rp=Ry-Rf;
计算h=Hp(Rp||Rx||G||pk||Cx||Cy||CM);
令ws=rs+h·rc,wf=rf+h·pf;
最终得到π=(ws,wf,h)。
在本实施例中,零知识证明是一种运行于证明者和验证者两方之间的一种密码学协议。在零知识证明的框架下,证明者可证明某个断言,而无需泄露任何关于该断言的有效知识。在证明的过程中,该断言可被归约为某个计算困难性问题的解,并且证明者需要不断地对验证者发出的随机挑战做出正确的回应,在执行足够多轮次的挑战之后,证明者成功伪造该证明的概率是可忽略的。因此,零知识证明需要满足如下三个属性:完备性、可靠性、零知识。
在本实施例中,完备性(Completeness):若要证明的断言本身可被验真,且验证者和证明者均诚实(遵守协议),则验证者必然会相信证明者的断言。
在本实施例中,可靠性(Soundness):若证明者的断言本身为假,则无论证明者采用何种欺骗方式,都无法通过验证者的验证。
在本实施例中,零知识(Zero-knowledge):若要证明的断言为真,则在证明的过程中,验证者除了知晓该断言为真,没有获取任何有效的其他信息。
在本实施例中,证明者为了向验证者证明断言的正确性,需要和二者之间形成多轮通信,即交互式的挑战,针对该种模式,可采用fiat-shamir变换,将其转换为非交互式零知识证明,在随机预言机的假设下,证明者只需生成关于某个论断的零知识证明π,验证者无需再与证明者反复交互,只需验证π即可验证该论断的真实性。
S2、发送待上链数据内容至区块链节点;
S3、区块链节点对上链内容进行验证;
在本实施例中,对上链内容验证的步骤S3,还包括以下具体步骤:
S31、验证密文正确性证明;
在本实施例中,为了验证上链加密构造的正确性,区块链节点对接收到的交易中包含的(CM,Rd,CTp)进行如下计算:
计算R′p=ws·pk-wf·G+h·(CM-Cy);
计算R′x=ws·G-h·Cx;
计算h′=Hp(R′p||R′x||G||pk||Cx||Cy||CM);
最后,判断h′是否与h相等,若相等,则证明数据加密方遵守协议,使用了指定的公钥,对指定的内容(消息M)进行加密,区块链节点进而验证交易其他内容的合法性,完成验证后讲交易打包进区块中,上链。否则将拒绝该交易上链。
S32、在密文正确性证明验证结果为真时,将当前密文上链;
S33、在密文正确性证明验证结果为假时,拒绝将当前密文上链;
S4、数据解密方访问链上数据;
S5、数据解密方解密上链密文;
在本实施例中,解密上链密文的步骤S5,还包括以下具体步骤:
S51、从链上获取数据密文;
S52、解密数据。
在本实施例中,数据解密方在看到链上密文后,可以自行执行一遍零知识证明的验证算法,校验其内容合法性,并按如下步骤,使用其自身私钥sk解密:
计算M=Cy-sk·Cx。
实施例2
在本实施例中,使用对称加密算法对上链数据M进行加密,并使用通用零知识证明技术zk-SNARK构造加密正确性的零知识证明,也可部分替代3.3中的技术方案,但这样做有以下弊端:
在本实施例中,使用对称加密会带来密钥泄露的问题,每次发送前需要一次密钥协商,通信开销大。
在本实施例中,使用通用零知识证明技术zk-SNARK生成的证明体积大、生成时间长,相比于前述实施例1中所构造的专用零知识证明方案效率较低。
综上,本发明解决链上数据加密使用的密钥确定性问题,即支持验证密文与密钥的绑定关系,验证某个密文确实是使用指定密钥加密的,对于不符合要求的加密数据,拒绝上链,保障链上数据可用性。
本发明的区块链支持过程中,以区块链节点程序通过零知识证明验证的方式,支持了对上链内容的加密合法性验证,通过验证零知识证明,验证上链交易内容是否经过了指定的公钥加密,有效过滤了无效的垃圾上链数据。
本发明通过构造待上联数据的零知识证明,并对零知识证明进行验证,仅在零知识证明验证为真时允许当前密文上链,在不暴露加密内容的情况下验证加密方法的正确性。本发明解决了现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述方法包括:
S1、使数据加密方构造数据解密方公钥,对待上链数据的明文进行加密处理,得到待上链数据密文,计算得到所述待上链数据的明文承诺,据以构造密文正确性证明,将所述待上链数据密文、所述明文承诺以及所述密文正确性证明作为待上链数据内容;
S2、发送所述待上链数据内容至不少于2个的区块链节点;
S3、利用所述区块链节点验证所述待上链数据内容的所述正确性证明,以得到正确性证明验证结果,在判定所述待上链数据密文与所述解密方公钥绑定关系符合预置要求时,对所述待上链数据内容进行密文上链操作,以生成链上数据;
S4、利用数据解密方访问所述链上数据;
S5、利用数据解密方,解密获取所述链上数据中的所述待上链数据的明文。
2.根据权利要求1所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述步骤S1包括:
S11、所述数据加密方使用所述数据解密方的公钥pk,对所述待上链数据的明文M加密,以得到所述待上链数据密文;
S12、计算待上链数据的明文承诺;
S13、所述数据加密方选取随机数,据以计算所述明文承诺,以得到所述上链数据的标识,据以构造所述密文正确性证明,其中,所述密文正确性证明包括:零知识证明。
3.根据权利要求2所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述步骤S11包括:
S111、选取随机数据以利用下述逻辑处理得到密文参数:
Cx=rc·G,Cy=M+rc·pk
式中,pk为公钥,M表示明文,G为椭圆曲线群的生成元,Cx和Cy分别表示密文对应的椭圆曲线中的两个点,其中x和y作为下标区分该两个点;
S112、根据所述密文参数,利用下述逻辑处理得到所述所述待上链数据密文:
CTp=(Cx,Cy)
式中,CTp表示密文,其中的p表示其内容由明文(plaintext)加密而来。
4.根据权利要求2所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述步骤S12中,根据预置承诺机制中的隐藏性和绑定性,处理得到所述明文承诺,其中,所述明文承诺包括:隐藏性承诺以及绑定性承诺。
5.根据权利要求4所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,利用下述逻辑,对任意x,x′构造所述隐藏性承诺:
C=Com(x,r),′=Com(x′,r)
式中,x’指的是不同于x的另一个秘密值,r代表一个随机数,用于共同计算承诺值。
6.根据权利要求2所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述步骤S13包括:
S131、所述数据加密方首先选取随机数并计算:
Rd=rd·G
式中,d代表随机数r的下标,用以对传输(delivery)的数据进行加密所使用的随机数;
S132、利用下述逻辑计算所述明文承诺,作为所述上链数据的标识:
CM=Hp(rd·pk)·G+M
式中,Hp指的是一个抗碰撞哈希函数,其可将任意数据映射为整数群中的一个元素,而pf则作为零知识证明构造过程中的中间变量,从明文承诺CM中截取的前项;
S133、根据Rd、所述明文承诺及所述标识,构造所述零知识证明。
7.根据权利要求6所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述步骤S133中,根据下述逻辑构造所述零知识证明π:
令:
pf=Hp(rd·mpk);
选取两个随机数计算:
Rx=rs·G,Ry=rs·pk,Rf=rf·G
式中,Rx,Ry,Rf均为构造零知识证明中所需要的随机值承诺,用于确保零知识证明的不可否认性,随机数rs,rf的意义在于使零知识证明的构造不可伪造,并且保护零知识证明中的秘密;
令:
Rp=Ry-Rf;
计算:
h=Hp(Rp||Rx||G||pk||Cx||Cy||CM);
令:
ws=rs+h·rc,wf=rf+h·pf;
其中,h是零知识证明中公开参数值拼接后的哈希运算结果,用以保障零知识证明的可靠性,ws与wf则是随机数rs,rf参与运算的零知识证明中的见证数据(witness),用以保障零知识证明的正确性;
得到所述零知识证明:
π=(ws,wf,h)。
8.根据权利要求1所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述步骤S3包括:
S31、利用所述区块链节点,计算所述上链数据内容中的接收交易数据,以验证所述正确性证明;
S32、在所述正确性证明验证结果为真时,将当前密文上链;
S33、在所述正确性证明验证结果为假时,拒绝将当前密文上链。
9.根据权利要求8所述的基于密文密钥关系验证的区块链数据加解密方法,其特征在于,所述步骤S31中,利用下述逻辑,处理所述接收交易数据(CM,Rd,CTp):
R′p=ws·pk-wf·G+h·(CM-Cy);
R′x=ws·G-h·Cx;
h′=p(R′p||′x||||||x||y||M)
式中,R′ p,R′ x和h′是零知识证明验证方,根据可公开的参数运算得到的用于零知识证明验证的中间变量。
10.基于密文密钥关系验证的区块链数据加解密系统,其特征在于,所述系统包括:
上链数据内容构造模块,用以使数据加密方构造数据解密方公钥,对待上链数据的明文进行加密处理,得到待上链数据密文,计算得到所述待上链数据的明文承诺,据以构造密文正确性证明,将所述待上链数据密文、所述明文承诺以及所述密文正确性证明作为待上链数据内容;
上链数据发送模块,用以发送所述待上链数据内容至不少于2个的区块链节点,所述上链数据发送模块与所述上链数据内容构造模块连接;
上链内容验证模块,用以利用所述区块链节点验证所述待上链数据内容的所述正确性证明,以得到正确性证明验证结果,在判定所述待上链数据密文与所述解密方公钥绑定关系符合预置要求时,对所述待上链数据内容进行密文上链操作,以生成链上数据,所述上链内容验证模块与所述上链数据发送模块连接;
链上数据访问模块,用以利用数据解密方访问所述链上数据,所述链上数据访问模块与所述上链内容验证模块连接;
上链密文解密模块,用以利用数据解密方,解密获取所述链上数据中的所述待上链数据的明文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310913555.4A CN116827555A (zh) | 2023-07-21 | 2023-07-21 | 基于密文密钥关系验证的区块链数据加解密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310913555.4A CN116827555A (zh) | 2023-07-21 | 2023-07-21 | 基于密文密钥关系验证的区块链数据加解密方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116827555A true CN116827555A (zh) | 2023-09-29 |
Family
ID=88139286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310913555.4A Pending CN116827555A (zh) | 2023-07-21 | 2023-07-21 | 基于密文密钥关系验证的区块链数据加解密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116827555A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733163A (zh) * | 2021-01-04 | 2021-04-30 | 北京航空航天大学 | 基于离散对数相等性证明的可监管零知识证明方法及装置 |
CN113098838A (zh) * | 2021-02-21 | 2021-07-09 | 西安电子科技大学 | 一种可信分布式身份认证方法、系统、存储介质及应用 |
CN113989047A (zh) * | 2018-07-27 | 2022-01-28 | 创新先进技术有限公司 | 基于区块链的资产发布方法及装置、电子设备 |
CN114143080A (zh) * | 2021-11-30 | 2022-03-04 | 兰州理工大学 | 基于零知识证明的区块链数据隐私保护和共享方法 |
CN116015592A (zh) * | 2022-11-18 | 2023-04-25 | 西安电子科技大学 | 一种满足零知识证明的同态加密系统 |
-
2023
- 2023-07-21 CN CN202310913555.4A patent/CN116827555A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113989047A (zh) * | 2018-07-27 | 2022-01-28 | 创新先进技术有限公司 | 基于区块链的资产发布方法及装置、电子设备 |
CN112733163A (zh) * | 2021-01-04 | 2021-04-30 | 北京航空航天大学 | 基于离散对数相等性证明的可监管零知识证明方法及装置 |
CN113098838A (zh) * | 2021-02-21 | 2021-07-09 | 西安电子科技大学 | 一种可信分布式身份认证方法、系统、存储介质及应用 |
CN114143080A (zh) * | 2021-11-30 | 2022-03-04 | 兰州理工大学 | 基于零知识证明的区块链数据隐私保护和共享方法 |
CN116015592A (zh) * | 2022-11-18 | 2023-04-25 | 西安电子科技大学 | 一种满足零知识证明的同态加密系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039872B (zh) | 基于区块链的跨域匿名认证方法及系统 | |
JP7119040B2 (ja) | データ伝送方法、装置およびシステム | |
CN111371730B (zh) | 边缘计算场景下支持异构终端匿名接入的轻量级认证方法 | |
CN106357396B (zh) | 数字签名方法和系统以及量子密钥卡 | |
CN104023013B (zh) | 数据传输方法、服务端和客户端 | |
CN111756529B (zh) | 一种量子会话密钥分发方法及系统 | |
CN113612605A (zh) | 使用对称密码技术增强mqtt协议身份认证方法、系统和设备 | |
US12010216B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
CN112351037B (zh) | 用于安全通信的信息处理方法及装置 | |
CN101867473B (zh) | 抗阻塞攻击的共享媒体终端连接建立方法和接入认证系统 | |
CN114710275B (zh) | 物联网环境下基于区块链的跨域认证和密钥协商方法 | |
CN113572765B (zh) | 一种面向资源受限终端的轻量级身份认证密钥协商方法 | |
CN108632042A (zh) | 一种基于对称密钥池的类aka身份认证系统和方法 | |
CN109756877A (zh) | 一种海量NB-IoT设备的抗量子快速认证与数据传输方法 | |
US11528127B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
Chen et al. | Cross-domain password-based authenticated key exchange revisited | |
CN111885058A (zh) | 物联网云中端到端智能设备通信的轻量级消息传递方法 | |
CN114024698A (zh) | 一种基于国密算法的配电物联网业务安全交互方法及系统 | |
CN110708337A (zh) | 一种基于身份认证的大数据安全框架系统 | |
CN116599659B (zh) | 无证书身份认证与密钥协商方法以及系统 | |
KR100456624B1 (ko) | 이동 통신망에서의 인증 및 키 합의 방법 | |
Song et al. | Improvement of key exchange protocol to prevent man-in-the-middle attack in the satellite environment | |
CN113766452B (zh) | 一种v2x通信系统、通信密钥分发方法与隐式认证方法 | |
CN114070570A (zh) | 一种电力物联网的安全通信方法 | |
CN116827555A (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 |