本发明涉及数据加解密,具体涉及基于密文密钥关系验证的区块链数据加解密方法及系统。
背景技术:
1、现有方案中的密钥管理:
2、如图1所示,密钥管理主要通过调用密码安全服务平台部分功能进行实现。密码安全服务平台提供国密算法保证落地和传输过程的数据安全,并提供基础密码创建和相关服务,密码安全服务平台通过安全网关与数据交换平台进行交互,访问密码安全服务平台。密码安全服务平台将相关地址注册到安全认证网关,由安全认证网关转换成https,对传输通道进行加密,保证平台安全。
3、现有方案中的国密算法:
4、数据交换平台通过加/解密功能保护落地数据和传输中的数据安全,使末经授权方无法有效获取信息。平台调用全密码安全服务平台提供的国密算法:sm2,sm3,sm4,完成散列、加密及签名功能。
5、现有方案中的密码创建:
6、数据交换平台运行过程中需要由全密码安全服务平台提供密码生成与创建功能,用于交换过程中的加/解密。
7、现有方案中的密码服务:
8、数据交换平台运行过程中需要由全密码安全服务平台提供基础密码服务和密码查询功能,用于密码管理。
9、现有方案中的数据传输安全:
10、如图2所示,数据传输过程分为数据包生成、数据包传输、数据包存储、消息通知发送、数据包获取五个阶段。
11、现有方案中的数据包生成:
12、数据资源方按照资源的交换频次生成数据包。数据资源方首先通过鉴权获取公钥,并通过公钥对数据进行加密,生成密文数据。
13、现有方案中的数据包传输:
14、已密文数据将通过电子政务外网进行数据传输,到达前置级联组件。
15、现有方案中的数据包存储:
16、前置级联组件通过资源方私钥对密文数据进行解密,并通过前置数据中心密钥进行加密,再将加密后的数据包存储至分布式文件中心。
17、现有方案中的消息通知发送:
18、数据包上传到前置数据中心后,实时推送数据获取通知消息给资源对应的所有订阅方。
19、现有方案中的数据包获取:
20、数据订阅方接取到数据到达消息后,主动从前置级联组件拉取对应的数据包。
21、现有方案中的数据包落地安全:
22、数据包落地安全将为安全等级较高的数据提供落地加密服务。
23、数据订阅方获取到加密数据包后使用自己的私钥进行解密;对解密后的数据进行后续业务处理。
24、现有方案中的区块链技术:
25、(1)dag(有向非循环图)图链式数据结构
26、区块链的不可篡改特性主要是基于特有的链式数据结构,区块链中的交换信息存储在区块中,每个区块的区块头链接前一个父区块,哈希值相互对应并加上时间戳,依此顺序连接形成的链式数据结构来保证区块链的不可篡改性。
27、本次区块链采用的是平行账户链的dag(有向非循环图)图链式数据结构,在原有链式数据结构保证不可篡改和去中心化程度前提下,对链实现扩展;并且在保障区块链系统稳定运行的同时也可以实现账户链之间异步共识,通过并行处理数据上链,不需要排队等待,从而提高交换数据上链的效率,缩短交换确认的平均时间,使交换确认时间做到毫秒级确认。
28、(2)点对点网络通信
29、本次区块链采取的通信方式是点对点网络通信,点对点网络又称对等式网络,是无中心服务器、依靠用户群交换信息的互联网体系。点对点网络通信与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,既是网络里资源信息的提供者,也是享有资源者。
30、本次区块链采取实行点对点网络通信,减弱了以往网络传输中的中心服务器节点作用,以降低中心服务器压力大、数据易被攻击泄露等风险,提高了防故障能力。p2p网络还可以让所有的客户端都能提供资源,包括带宽,存储空间和计算能力,因此随着节点加入且对系统请求增多,整个系统的容量也增大,这是具有一组固定服务器随着客户端的增加意味着所有用户的数据传输性能更差的结构所不不具备的能力。
31、(3)共识机制
32、通俗来说,共识机制是一种利益分配机制,目前主要有pow、pos、dpos三种主要机制,各自的共识形式不尽相同,存在各自的优缺点。
33、1)工作量证明:pow
34、这里工作量是指计算机计算随机数的工作量,而在一定时间内找到随机数具有难度,需要投入算力。最先得到随机数的节点,将打包的交易区块添加到既有的区块链上,并向全网广播,由其他节点验证、同步,同时系统通过“按劳分配”给该节点分配相应奖励。
35、2)权益证明:pos
36、pos是pow机制的一种升级机制,根据每个节点所占的比例和时间,等比降低工作量证明难度,从而加快寻找随机数的速度。pow机制最大的问题是会浪费很多算力资源,而pos机制类似现实中的股份制。在pos机制中,持有更多通证及相应时间的出块者将获得更多的投票权。
37、3)股份授权证明:dpos
38、pos机制的问题是会阻碍新生力量的加入,因为后来的人持通证时间肯定比先来的人短,不利于整个区块链社区的发展。dpos机制优势在于记账人数量大大减少,并且由授权的超级节点来轮流记账,从而大大提高了系统的整体效率,在理想环境中,dpos机制每秒能够实现数十万笔交易。
39、(4)智能合约
40、智能合约的初衷是在没有信任第三方可信权威参与和控制的情况下,借助计算机程序,编写能够自动执行合约条款的在区块链上的代码序列,代码逻辑定义了合约内容,这段代码逻辑一经触发便在全网自动执行,并借助区块链基础平台对执行结果进行公示确认,每次运行都是可跟踪和不可逆的。智能合约技术成功去掉了中介,依托技术实现用户之间自主灵活建立合约,实现了区块链性的可定制性和可编程性;并且智能合约通过区块链上清晰的代码,保障业务流程公开透明、不可篡改、高效自动化,使区块链与业务结合度更高,适用性更强,极大降低了人为操控的隐患。区块链通过与智能合约技术的结合,拓宽了区块链技术的使用场景,使得区块链的应用有了更加广阔的舞台。
41、(5)安全体系
42、本次区块链通过哈希加密、非对称加密等密码学技术,实现上链数据的加密不可见,保护上链隐私安全。哈希算法是一类加密算法的统称,是信息领城中非常重要的技术,我们可以将哈希算法的输出(也就是哈希值)理解为区块链世界中的“地址”,有了这个地址,就可以定位到任何区块。区块链的数据一旦通过哈希加密,哪怕被黑客截获,想破解也极为困难,这保证了区块链的节点数据安全。
43、非对称加密是指加密和解密使用不同密钥的加密算法,又称公私钥加密,这是目前信息安全领域使用最广的加密模式。非对称加密采用公钥和私钥两个密钥,在区块链网络中,每个节点都拥有唯一的一对私钥和公钥。公钥是公开的,私钥是非公开的部分,使用密钥对时,使用公钥加密,私钥解密。非对称加密技术是目前互联网信息安全的基石,确保了区块链上数据安全性。
44、公布号为cn111357026a的现有发明专利申请文献《基于区块链的可信保函》,该方法包括:接收指定保函的数字文档的密文,以及与关联于保函的一个或多个值有关的一个或多个零知识证明(zkp);验证一个或多个零知识证明;在成功验证了一个或多个零知识证明后,基于执行共识算法将密文存储到区块链中;从与受益人或受益人的代表相关联的第一计算设备接收针对保函的提款请求;基于执行共识算法将提款请求存储到区块链中;将关于提款请求的第一消息传递给与第一担保人相关联的第二计算设备。本技术与该申请的区别在于,本技术实现了数据加密密钥的确定性认证,而该申请仅仅实现了加密内容的对应关系验证,作用对象不同,并且本技术还存在以下优势:对于一个加密内容,本技术只需要构造一个零知识证明即可验证其绑定关系,而该申请可能需要多个零知识证明来验证,本技术具有更高的效率。
45、公布号为cn111989707a的现有发明专利申请文献《管理基于区块链的海关清关服务的用户权限》,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:在服务平台处,从与用户相关联的计算设备接收加密密钥和数据以存储在区块链上,其中,所述数据包括公开数据和隐私数据,并且所述加密密钥对所述隐私数据进行加密;将所述加密密钥和所述数据的标识(id)存储在缓存存储中,所述缓存存储专用于存储用于执行智能合约的智能合约数据;以及调用应用编程接口(api),以使区块链节点能够发起共识算法来将所述数据和所述数据的id记录在区块链上。其中,所述一个或多个零知识证明中的至少一个是基于同态加密生成的,并且是范围证明或零测试中的至少一个,并且所述共识算法是在验证了所述一个或多个零知识证明之后执行的。生成与关联于所述隐私数据的一个或多个值有关的一个或多个零知识证明zkp。本技术与该申请的区别在于,本技术未使用范围证明、同态加密的方式,相比于该申请具有更易实现、更高性能的优势。
46、公布号为cn115694840a的现有发明专利申请文献《用于区块链的证明方法及装置、电子设备和存储介质》获取地址控制者对该地址控制者的公开地址的一个或多个绑定声明,该一个或多个绑定声明指示公开地址和该地址控制者的一个或多个私密地址之间的绑定关系;针对该一个或多个私密地址中的每一个私密地址,获取对该一个或多个绑定声明中的对应绑定声明进行签名后的签名数据,其中,对该对应绑定声明进行签名是基于与该私密地址对应的私钥的;以及利用符合预设条件的零知识证明电路来生成用于验证该一个或多个绑定关系的第一证明数据,其中,零知识证明电路的输入包括签名数据。本技术与该申请的区别在于,使用了专用零知识证明构造,而该申请使用的非通用零知识证明构造,无需设计零知识证明电路,本技术在实现难度和零知识证明构造方面均有优势。
47、综上,现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。
技术实现思路
1、本发明所要解决的技术问题在于:如何解决现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。
2、本发明是采用以下技术方案解决上述技术问题的:基于密文密钥关系验证的区块链数据加解密方法包括:
3、s1、使数据加密方构造数据解密方公钥,对待上链数据的明文进行加密处理,得到待上链数据密文,计算得到待上链数据的明文承诺,据以构造密文正确性证明,将待上链数据密文、明文承诺以及密文正确性证明作为待上链数据内容;
4、s2、发送待上链数据内容至不少于2个的区块链节点;
5、s3、利用区块链节点验证待上链数据内容的正确性证明,以得到正确性证明验证结果,在判定待上链数据密文与解密方公钥绑定关系符合预置要求时,对待上链数据内容进行密文上链操作,以生成链上数据;
6、s4、利用数据解密方访问链上数据;
7、s5、利用数据解密方,解密获取链上数据中的待上链数据的明文。
8、本发明解决链上数据加密使用的密钥确定性问题,即支持验证密文与密钥的绑定关系,验证某个密文确实是使用指定密钥加密的,对于不符合要求的加密数据,拒绝上链,保障链上数据可用性。
9、在更具体的技术方案中,步骤s1包括:
10、s11、数据加密方使用数据解密方的公钥pk,对待上链数据的明文m加密,以得到待上链数据密文;
11、s12、计算待上链数据的明文承诺;
12、s13、数据加密方选取随机数,据以计算明文承诺,以得到上链数据的标识,据以构造密文正确性证明,其中,密文正确性证明包括:零知识证明。
13、在更具体的技术方案中,步骤s11包括:
14、s111、选取随机数据以利用下述逻辑处理得到密文参数cx,cy:
15、cx=rc·g,cy=m+rc·pk
16、式中,pk为公钥,m表示明文,g为椭圆曲线群的生成元,cx和cy分别表示密文对应的椭圆曲线中的两个点,其中x和y作为下标区分该两个点;
17、s112、根据密文参数,利用下述逻辑处理得到待上链数据密文ctp:
18、ctp=(cx,cy)
19、式中,ctp表示密文,其中的p表示其内容由明文(plaintext)加密而来。
20、在更具体的技术方案中,步骤s12中,根据预置承诺机制中的隐藏性和绑定性,处理得到明文承诺,其中,明文承诺包括:隐藏性承诺以及绑定性承诺。
21、在更具体的技术方案中,利用下述逻辑,对任意x,x′构造隐藏性承诺c、c′。
22、c=com(x,r),c′=com(x′,r)
23、式中,x’指的是不同于x的另一个秘密值,r代表一个随机数,用于共同计算承诺值。
24、在更具体的技术方案中,步骤s13包括:
25、s131、数据加密方首先选取随机数并计算rd=rd·g;其中,d代表随机数r的下标,用以对传输(delivery)的数据进行加密所使用的随机数,用作delivery的简称;
26、s132、利用下述逻辑计算明文承诺cm=hp(rd·pk)·g+m,作为上链数据的标识;
27、s133、根据rd、明文承诺及标识,构造零知识证明。
28、在更具体的技术方案中,步骤s133中,根据下述逻辑构造零知识证明π,其中,hp指的是一个抗碰撞哈希函数,其可将任意数据映射为整数群中的一个元素,而pf则作为零知识证明构造过程中的中间变量,从明文承诺cm中截取的前项,是parameter front的简称:
29、令:
30、pf=hp(rd·pk);
31、选取两个随机数计算:
32、rx=rs·g,ry=rs·pk,rf=rf·g;
33、其中,rx,ry,rf均为构造零知识证明中所需要的随机值承诺,用于确保零知识证明的不可否认性,随机数rs,rf的意义在于使零知识证明的构造不可伪造,并且保护零知识证明中的秘密;
34、令:
35、rp=ry-rf;
36、计算:
37、h=hp(rp||rx||g||pk||cx||cy||cm);
38、令:
39、ws=rs+h·rc,wf=rf+h·pf;
40、其中,h是零知识证明中公开参数值拼接后的哈希运算结果,用以保障零知识证明的可靠性,ws与wf则是随机数rs,rf参与运算的零知识证明中的见证数据(witness),用以保障零知识证明的正确性;
41、得到零知识证明:
42、π=(ws,wf,h)。
43、本发明的区块链支持过程中,以区块链节点程序通过零知识证明验证的方式,支持了对上链内容的加密合法性验证,通过验证零知识证明,验证上链交易内容是否经过了指定的公钥加密,有效过滤了无效的垃圾上链数据。
44、在更具体的技术方案中,步骤s3包括:
45、s31、利用区块链节点,计算上链数据内容中的接收交易数据,以验证正确性证明;
46、s32、在正确性证明验证结果为真时,将当前密文上链;
47、s33、在正确性证明验证结果为假时,拒绝将当前密文上链。
48、本发明通过构造待上联数据的零知识证明,并对零知识证明进行验证,仅在零知识证明验证为真时允许当前密文上链,在不暴露加密内容的情况下验证加密方法的正确性。
49、在更具体的技术方案中,步骤s31中,利用下述逻辑,处理接收交易数据(cm,rd,ctp):
50、r′p=ws·pk-wf·g+h·(cm-cy);
51、r′x=ws·g-h·cx;
52、h′=hp(r′p||r′x||g||pk||cx||cy||cm)。
53、其中,r′p,r′x和h′是零知识证明验证方根据可公开的参数运算得到的用于零知识证明验证的中间变量,用以验证零知识证明的正确性。
54、在更具体的技术方案中,基于密文密钥关系验证的区块链数据加解密系统包括:
55、上链数据内容构造模块,用以使数据加密方构造数据解密方公钥,对待上链数据的明文进行加密处理,得到待上链数据密文,计算得到待上链数据的明文承诺,据以构造密文正确性证明,将待上链数据密文、明文承诺以及密文正确性证明作为待上链数据内容;
56、上链数据发送模块,用以发送待上链数据内容至不少于2个的区块链节点,上链数据发送模块与上链数据内容构造模块连接;
57、上链内容验证模块,用以利用区块链节点验证待上链数据内容的正确性证明,以得到正确性证明验证结果,在判定待上链数据密文与解密方公钥绑定关系符合预置要求时,对待上链数据内容进行密文上链操作,以生成链上数据,上链内容验证模块与上链数据发送模块连接;
58、链上数据访问模块,用以利用数据解密方访问链上数据,链上数据访问模块与上链内容验证模块连接;
59、上链密文解密模块,用以利用数据解密方,解密获取链上数据中的待上链数据的明文。
60、本发明相比现有技术具有以下优点:本发明解决链上数据加密使用的密钥确定性问题,即支持验证密文与密钥的绑定关系,验证某个密文确实是使用指定密钥加密的,对于不符合要求的加密数据,拒绝上链,保障链上数据可用性。
61、本发明的区块链支持过程中,以区块链节点程序通过零知识证明验证的方式,支持了对上链内容的加密合法性验证,通过验证零知识证明,验证上链交易内容是否经过了指定的公钥加密,有效过滤了无效的垃圾上链数据。
62、本发明通过构造待上联数据的零知识证明,并对零知识证明进行验证,仅在零知识证明验证为真时允许当前密文上链,在不暴露加密内容的情况下验证加密方法的正确性。本发明解决了现有技术未明确建立密钥和密文的绑定关系,导致上链数据语义不明确、链上堆积垃圾数据,阻碍区块链长期高效运行的技术问题。