CN113037499A - 一种区块链加密通讯方法及系统 - Google Patents

一种区块链加密通讯方法及系统 Download PDF

Info

Publication number
CN113037499A
CN113037499A CN202110277377.1A CN202110277377A CN113037499A CN 113037499 A CN113037499 A CN 113037499A CN 202110277377 A CN202110277377 A CN 202110277377A CN 113037499 A CN113037499 A CN 113037499A
Authority
CN
China
Prior art keywords
key
node
public key
kdf
encryption
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.)
Granted
Application number
CN202110277377.1A
Other languages
English (en)
Other versions
CN113037499B (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.)
Hangzhou Lianwang Technology Co ltd
Original Assignee
Hangzhou Lianwang Technology Co ltd
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 Hangzhou Lianwang Technology Co ltd filed Critical Hangzhou Lianwang Technology Co ltd
Priority to CN202110277377.1A priority Critical patent/CN113037499B/zh
Publication of CN113037499A publication Critical patent/CN113037499A/zh
Application granted granted Critical
Publication of CN113037499B publication Critical patent/CN113037499B/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
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种区块链加密通讯方法及系统,将区块链体系与加密通讯相结合,有效实现链上安全加密通讯和交易。其中该方法包括:响应加密通讯会话请求,发起节点接收会话节点的第一公钥和第二公钥,对第二公钥验证;验证通过后,发起节点生成第三密钥对,调用加密通讯协议得到会话根密钥;对会话根密钥执行KDF计算得到第一加密结果,将部分第一加密结果用于更新会话根密钥,另一部分执行发送密钥的KDF计算,得第二加密结果,将部分第二加密结果更新发送密钥,另一部分作为消息密钥对发送消息进行加密生成消息密文;将发起节点的第一、第三公钥、接收节点的第二公钥和消息密文打包成加密数据发送;接收节点接收加密数据并进行对称密钥解密。

Description

一种区块链加密通讯方法及系统
技术领域
本发明属于区块链技术领域,具体涉及一种区块链加密通讯方法及系统。
背景技术
随着互联网的发展和即时通讯平台的普及和使用,通讯安全成了目前不得不面对的问题,我们所熟知的telegram的默认会话模式并不是端到端加密,服务器是可以获取用户私钥并解密聊天内容的,虽然目前报道表明telegram向任何机构出售用户聊天内容,但是用户的隐私安全由一家公司的职业操守来保障,总是不太稳妥。
目前国内外常见的即时通讯加密传输系统,都是采用PKI技术的安全架构,通过CA认证中心事先分发用户证书包括,公钥来实现用户间的数据加密传输密钥交换,存储在CA认证中心端证书数据库中的数据证书是以明文的形式存储,容易受到黑客的攻击,安全性比较低。
近年来,以协商密钥为核心技术的加密通讯方法逐渐兴起,专利——网络通讯的加密方法和系统(CN102857479A)采用另一方公钥和私钥生成协商密钥,双方利用协商密钥加密传输数据,改变初始密钥的元素位置,作为下一次加密密钥,双方共同使用加密密钥。而目前最有名的Signalprotocol作为的端到端的通讯加密协议,号称是世界上最安全的通讯协议,任何第三方包括服务器都无法查看通讯内容,热门应用facebookmessenger,whatsapp,singal app都采用的此协议。
然而,在数字经济飞速发展的当下,区块链技术继互联网人工智能、物联网之后的又一大新兴行业,无论数字金融、健康医疗、教育、能源都在逐渐尝试落地各种区块链项目,区块链拥有去中心化、防篡改、可溯源等特质,使其在未来必有一席之地。而将区块链技术与当前加密通讯技术相结合形成可应用于链上的安全有效的加密通讯手段是目前研究比较匮乏的。
发明内容
本发明基于上述背景和现有技术所存在的问题,拟设计一种区块链加密通讯方法及系统,利用区块链基础设施作为底层架构、采用区块链可信存储服务器,在此基础上设置区块链加密通讯协议,最终实现链上的加密通讯。
一种区块链加密通讯方法,具体包括如下步骤:
响应于接收到发起节点发起的加密通讯会话请求;
发起节点接收会话节点的第一公钥和第二公钥,并对第二公钥进行验证;
验证通过后,发起节点生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥;
对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文;
将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包成加密数据发送至接收节点;
接收节点接收加密数据并进行对称密钥解密,得到解密后的加密密文。
进一步地,所述加密通讯会话请求包括加密通讯请求和资产交易请求。
在这里,链上的资产交易可以作为一次特殊的加密通讯会话,链上资产交易分为两个部分,一个是交易消息,一个是资产交易的资产数据,其中,交易消息作为普通会话消息经加密通讯协议处理后进行加密传递,资产数据则进行区块共识验证出块的方式,在链上哈希后进行Merkle树存储,方便节点调取,在交易消息加密的情况下,即使是资产数据明文暴露也是安全的。
进一步地,第一密钥对包括第一公钥和第一私钥,第二密钥对包括第二公钥、第二私钥及第二公钥的已签名值,其中,第二公钥的已签名值为通过第一密钥对私钥签名过的数据,所述第一密钥对和第二密钥对都是基于密钥生成协议生成;
所述密钥生成协议和加密通讯协议是在区块链本身固有的共识协议、验证协议之外的为实现链上加密通讯而设置的协议,这两个协议部署在通讯节点所关联的服务器中,随时供通讯节点进行调用;
具体过程为:利用EdDSA算法随机选择256长度的二进制数作为私钥,对私钥进行SHA512哈希,其哈希值与给定的椭圆曲线生成元结合生成公钥,形成密钥对,所述给定的椭圆曲线生成元为参与会话的通讯节点双方共享的椭圆曲线参数。
区别于EcDSA算法,EdDSA算法具有安全的随机化私钥和简便的公钥,例如Ed25519公钥为32个字节,本文密钥生成协议逻辑中采用EdDSA算法生成二进制私钥,并且通讯节点双方采用共同的椭圆曲线参数为后面的加密通讯过程做准备,可生成共享密钥对。
进一步地,所述第一公密钥对作为身份认证密钥对,利用第一密钥对生成相应助记词,利用助记词作为通讯节点登录所述区块通讯网络的PIN码,兼容区块链资产交易业务和加密通讯业务;第二公密钥对利用第一密钥对签名,作为建立加密通讯使用的密钥对,并为该密钥对设置更新周期,进行循环更新;
第一密钥对作为确认通讯节点身份的密钥对,也就是说在用户注册区块链通讯网络体系时,第一密钥对的公钥映射用户账户地址,第一密钥对的私钥生成助记词,助记词由12个单词组成,每个单词之间有一个空格,助记词和私钥具有同样的功能,简化并保存私钥,该助记词作为用户登录该体系的PIN密码,利用助记词代替传统的身份密码,有效保护用户隐私信息,同时第一密钥对有作为参与节点加密通讯过程中的身份认证密钥对,准许节点进行加密通讯业务的权限,因此兼容区块链资产交易业务和加密通讯业务;
第二密钥对是一个符合加密通讯协议的密钥对,用户注册时创建,利用第一密钥对签名,并定期进行轮换,此密钥可能是为了保护身份密钥认证不被泄露。
进一步地,所述加密通讯协议用于基于X3DH算法得到发起节点和接收节点共同的根密钥,并通过KDF算法计算循环更新根密钥并产生发送密钥或接收密钥,所述发送密钥或接收密钥通过KDF算法生成发送加密密钥对或接收加密密钥对,其中更新根密钥的KDF算法计算时采用临时密钥私钥对和对方公钥进行DH计算生成KDF输入盐,发送密钥和接收密钥的KDF计算时输入盐为随机常数。
X3DH基于ECDH算法的衍生算法,但是引入更多的公钥参数以提高安全性,同时相比DH算法优势在于用户可以根据这些密钥异步地和用户协商共同密钥,而不需节点保持在线;
KDF是一种密钥导出函数,可以看成加强版的hash,以衍生出固定长度的密钥对,通过附加一些数据(数据被称为“盐”,附加数据又称“加盐”),将原始密钥导出新的密钥,提高原始密钥的保密性。公式表达为:KDF(原密钥,盐)=导出密钥;KDF算法可用于更安全地保存密钥,普通的密钥管理方式是服务器保存节点密钥的哈希值,以避免服务器被攻击后黑客拿到节点密钥原文,但是一些简单密码的哈希值仍然可以通过少量的碰撞破解出来,比如123456的哈希值就很容易被碰撞出来。更加安全的做法是在节点哈希值附加其它信息(比如用户注册时间,用户住址等等),通过KDF算法导出,得出的密钥具有非常强的随机性,就很难被碰撞出来。比如原始密码是123456的哈希值为"hash(123456)",使用KDF算法得出最终密钥KDF(hash(123456),用户注册时间)=最终密钥,服务器只保存最终密钥。这样的密钥管理方式的好处是,不管随机生成的密钥多么简单,服务器保存的密钥都是非常随机的,很难被碰撞出来。
本文中循环进行KDF计算就是运用KDF算法,设计出一种密钥不断变化的效果。
进一步地,所述基于第二公钥生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥,具体流程如下:
(1)初次建立通讯会话流程:
1)验证接收节点身份:
基于第一公钥和第二公钥以及第二公钥的已签名值,通过第二公钥的已签名值对第二公钥进行验证;
2)生成通讯会话根密钥:
验证成功后,发起节点本地生成临时密钥对,所述临时密钥对作为第三密钥对,调用加密通讯协议分别对发起节点的第一私钥和接收节点的第二公钥、发起节点的第三私钥和接收节点的第一公钥、发起节点的第三私钥和接收节点的第二公钥进行X3DH计算,将计算结果并列组合后进行KDF压缩计算,生成会话根密钥;其中第三密钥对为一次性密钥对,单次消息通讯后通讯节点调用密钥生成协议在本地生成新的第三密钥对参与下次消息通讯的发送或接收。
进一步地,所述对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文,具体过程包括:
3)根密钥的KDF计算:
将所述会议根密钥作为输入数据,所述发起节点的第三私钥和接收节点的第二公钥进行DH计算的结果作为输入盐进行根密钥的KDF计算,计算结果随机分为两部分,第一部分更新根密钥,作为新一轮根密钥的KDF输入数据;
4)发送密钥的KDF计算:
第二部分作为发送密钥的KDF输入,并取随机常量作为输入盐进行发送密钥的KDF计算,所述发送密钥的KDF计算结果随机取一分部更新发送密钥,作为新一轮的发送密钥的KDF输入数据;
5)发送加密消息:
另一部分作为发送消息密钥对,其私钥对发送消息加密签名生成消息密文,并将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包发送至接收节点;
该过程完成初次消息密钥发送,该过程的KDF计算为对称密钥计算,发起节点和接收节点使用共享的根密钥,共享的KDF盐常量生成加密/解密的消息密钥对。
(2)接收节点接收加密消息并进行对称密钥解密:
接收节点调用加密通讯协议利用发起节点的第一公钥及第三公钥获取根密钥,并利用发起节点的第三公钥和其第二私钥DH计算生成输入盐进行根密钥的KDF计算并进行接收密钥的KDF计算,所述接收密钥的KDF计算结果随机取一分部更新接收密钥,作为新一轮的接收密钥的KDF输入数据,另一部分作为解密消息密钥对,其私钥对接收到的加密密文解密。
特别地,所述根密钥的KDF计算在通讯节点在发送节点和接收节点之间出现角色转换时进行更新计算;
更新步进方式:
①情况一:当接收节点回复消息转为发送节点时,生成自己新的第三密钥对,利用自己新的第三私钥,按照步骤2)中更新步进根密钥的KDF计算;
②情况二:当发送节点转为接收节点时,收到对方新的第三公钥,利用对方新第三公钥,按照步骤2)中更新步进根密钥的KDF计算;
所述发送密钥的KDF计算在发送消息时更新计算获取新的加密密钥,所述接收密钥的KDF计算在接收消息时更新计算获取新的解密密钥。
发送或接收KDF计算更新步进方式:
①情况一:当要发送加密信息或接收解密信息时,根密钥的KDF计算未出现步进时,直接在当前的发送或接收密钥的基础上做KDF步进;
②情况二:当要发送加密信息或接收解密信息时,根密钥的KDF计算出现步进时,需要先进行根密钥的KDF计算,之后在新的根密钥的KDF计算结果衍生下,做崭新的KDF接收或发送步进。
一种区块链加密通讯系统,创建加密通讯链,部署加密通讯协议,设置可信存储服务器,具体如下:
基于Substrate架构搭建加密通讯链基础设施并注册通讯节点,形成区块链通讯网络架构,其特征在于,区块链通讯网络架构包括应用层及协议层;
基于Substrate架构搭建加密通讯链基础设施,基于该架构注册通讯节点,形成区块链通讯网络;该部分是搭建区块链加密通讯的底层环境,其中,Substrate是一个用于构建区块链的开源的、模块化的和可扩展的区块链开发框架,类似于Express框架或其他Web应用程序框架,具备区块链基础设施如具有共识机制,p2p网络和WebAssembly虚拟机;
所述应用层,用于响应于接收到发起节点发起的加密通讯会话请求;
所述协议层,被设置为:发起节点接收会话节点的第一公钥和第二公钥,并对第二公钥进行验证;验证通过后,发起节点生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥;对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文;将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包成加密数据发送至接收节点;接收节点接收加密数据并进行对称密钥解密,得到解密后的加密密文。
特别地,所述区块链通讯网络架构还包括可信存储层;
所述可信存储层用于分布式存储用户密钥及交易数据信息,存储通讯会话过程中产生的第一公钥、第二公钥、第三公钥,所述第一公钥始终存储在可信存储服务器中供通讯节点调用,所述第二公钥在可信存储服务器中存储并定期更新,所述第三公钥随通讯会话进行循环更新存储。
可信存储服务器区别于中心化服务器,通过分布式IPFS网关连接链上服务器,存储数据备份于多个IPFS节点,所以即使某个节点出问题也不会影响内容的访问。
在区块链通讯网络体系中,整个流通流程如下:用户在应用层关联所属通讯节点,注册区块链通讯系统,在协议层调用密钥生成协议生成各流程所需密钥对,利用生成的密钥对调用加密通讯协议进行链上加密通讯会话和资产交易,过程中产生的公钥和资产数据发送至可信存储层的可信存储服务器中存储。
本发明设计一种区块链加密通讯方法,具有以下优势:
1)采用区块链架构,搭建加密通讯底层设施,构建去中心化的通讯底层环境;
2)利用EdDSA算法产生私钥,并生成相应助记词,利用助记词作为通用的节点登录PIN码,兼容区块链业务和加密通讯业务;
3)循环采用KDF算法进行加密通讯会话,能实现每条消息使用不同的密钥,保证消息向前和向后的安全;
4)增加可信区块链存储服务器,将生成的公钥及消息数据信息备份于多个分布式服务器,避免黑客对服务器的攻击造成运行中止。
附图说明
图1为本发明区块链加密通讯方法流程图;
图2为本发明发起节点初次建立发送会话流程图;
图3为本发明接收节点初次接收会话流程图;
图4为本发明接收节点进行角色转换回复会话流程图;
图5为本发明发起节点进行角色转换接收会话流程图;
图6为本发明发起节点进行连续发起会话流程图;
图7为本发明区块链通讯网络架构图;
图8为本发明可信存储服务器和通讯节点本地数据分布图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施,其具体实现的交互过程可用常见的资产交易过程为例来描述,以方便本领域技术人员的理解。
具体实施例1
一种区块链加密通讯方法,如图1所示为其整体流程图,具体包括如下步骤:
响应于接收到发起节点发起的加密通讯会话请求;
发起节点接收会话节点的第一公钥和第二公钥,并对第二公钥进行验证;
验证通过后,发起节点生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥;
对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文;
将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包成加密数据发送至接收节点;
接收节点接收加密数据并进行对称密钥解密,得到解密后的加密密文。具体如下:
设定用户Alice和Bob关联通讯节点A和B,用户Alice和Bob在链上的通讯会话流程如下,其中发起节点为A,接收节点为B:
节点A生成所需密钥对:
关联节点A调用密钥生成协议给定共享椭圆曲线参数(椭圆曲线E、阶N、基点G),生成随机数IKa,计算公钥IKA=IKa*G,即生成节点A的第一密钥对IK-A(IKa,IKA);
以共享基点P生成随机数Ska,计算公钥SKA=SKa*P,即生成节点A定期更换的第二密钥对SK-A(Ska,SKA);
以及发起通讯会话请求时以共享基点P为参数生成的第一个第三密钥对(临时密钥对)EK1-A(Ek1a,EK1A);
节点A将生成的IKA、SKA、EK1A以及Sig(IKa,Encode(SKA))发送至可信存储服务器存储;
节点B生成所需密钥对:
节点A发起与节点B的通讯会话请求,发送共享基点G、P,节点B以共享基点调用密钥生成协议以相同的方式生成节点B的第一密钥对IK-B(IKb,IKB)、第二密钥对SK-B(Skb,SKB)以及Sig(IKb,Encode(SKB));
节点B将生成的IKB、SKB、EK1B以及Sig(IKb,Encode(SKB))发送至可信存储服务器存储;
(1)如图2所示,建立初始会话:
1)节点A验证接收节点B身份:响应节点A的会话请求,链上可信服务器发送节点B的IKB、SKB以及Sig(IKb,Encode(SKB)),节点A使用Sig(IKb,Encode(SKB))验证SKB的正确性和合法性;
2)在确认SKB可用后,首先A使用ECDH计算:
DH1-A=DH(IK-A,SK-B)=IKa*SKB=IKa*(Skb*P)=(IKa*Skb)*P;
DH2-A=DH(EK1-A,IK-B)=EK1a*IKB=EK1a*(Ikb*G)=(EK1a*Ikb)*G;
DH3-A=DH(EK1-A,SK-B)=EK1a*SKB=EK1a*(Skb*P)=(EK1a*Skb)*P;
其初始共享根密钥RK-A=KDF(DH1||DH2||DH3)=KDF[(IKa*Skb)*P||(EK1a*Ikb)*G||(EK1a*Skb)*P]=KDF[(IKa*Skb*EK1a*Ikb*EK1a*Skb*P*G*P]=RK1;“||”代表链接,即123||456=123456。
其中第三密钥对为一次性密钥对,单次消息通讯后通讯节点调用密钥生成协议在本地生成新的第三密钥对参与下次消息通讯的发送或接收;
3)根密钥的KDF计算:
将所述根密钥RK1作为输入数据,节点A的EK1a和节点B的第二公钥SKB进行DH计算的结果作为输入盐进行RK1的KDF计算,计算结果随机分为两部分,第一部分更新根密钥,作为新一轮根密钥RK2的KDF输入数据,第二部分作为发送密钥Sek1的KDF输入;
4)Sek1的KDF计算:取随机常量Con1作为输入盐进行Sek1的KDF计算,其KDF计算结果随机取一分部更新发送密钥,作为新一轮的发送密钥Sek2的KDF输入数据,另一部分作为发送消息密钥MK1;
5)发送加密消息:消息密钥MK1对发送消息加密签名生成消息密文,并将节点A的IKA/EKA/SKB和加密密文打包发送至接收节点B.
该过程完成初次消息密钥发送,该过程的KDF计算为对称密钥计算,发起节点和接收节点使用共享的根密钥,共享的KDF盐常量生成加密/解密的消息密钥对;
之所以可以共享根密钥,是因为响应A的发起会话请求,接收A发送的IKA/EKA/SKB和加密密文,B使用同样的ECDH计算:
DH1-B=DH(SK-B,IK-A)=IKb*SKA=SKb*(Ika*G)=(SKb*Ika)*G;
DH2-B=DH(IK1-B,EK-A)=IK1b*EKA=IK1b*(Eka*P)=(IK1b*Eka)*P;
DH3-B=DH(SK1-B,EK-A)=SK1b*EKA=SK1b*(Eka*P)=(SK1b*Eka)*P;
RK-B=KDF(DH1||DH2||DH3)=KDF[(IKa*Skb)*P||(EK1a*Ikb)*G||(EK1a*Skb)*P]=KDF[(IKa*Skb*EK1a*Ikb*EK1a*Skb*P*G*P]=RK-A=RK1
即节点A和B持有共同的根密钥RK1。
(2)如图3所示,接收节点接收加密消息并进行对称密钥解密:
节点B由上述方式获取根密钥RK1,并利用节点A的EK1A和其Skb进行DH计算生成输入盐进行步骤节点B根密钥的KDF计算,进一步进行与步骤4)中发送密钥相对应的接收密钥Rek1的KDF计算,所述Rek1的KDF计算结果随机取一分部更新接收密钥,作为新一轮的接收密钥Rek2的KDF输入数据,另一部分作为解密消息密钥MK1,对接收到的加密密文解密;
(3)如图4所示,节点B再次发起回复消息时,则发生接收和发送角色转换,节点B作为发起节点,节点A作为接收节点,重复上述步骤(1)和(2)进行消息循环通讯。
具体如下:节点B利用EK1A和自己生成的第三密钥私钥EK1b进行DH计算,计算结果作为根密钥RK2的KDF盐输入,进行根密钥RK2的KDF计算,计算结果一部分作为更新根密钥作为RK3,另一部分作为发送密钥Sek2,(由于角色转换,此时Sek2等同于第一轮的Rek2),并以常量Con2作为盐输入进行发送密钥Sek2的KDF计算,计算结果一部分更新发送密钥,作为Sek3,另一部分作为本次发送消息的发送密钥MK2,利用MK2加密发送消息,与IKB/EK1B/SKA一起打包发送至节点A;
如图5所示,同样节点A作为接收节点,更新自己第三密钥为EK2-A(EK2a,EK2A),并以EK2a和EK1B进行DH计算,计算结果作为盐进行根密钥RK2的KDF盐输入,进行根密钥RK2的KDF计算,计算结果一部分作为更新根密钥作为RK3,另一部分作为接收密钥Rek2,(由于角色转换,此时Rek2等同于第一轮的Sek2),并以常量Con2作为盐输入进行Rek2的KDF计算,计算结果一部分更新接收密钥,作为Rek3,另一部分作为本次接收消息的解密密钥MK2,利用MK2解密B节点的发送消息。
如图6所示,当通讯节点连续发送消息时或连续接收消息时,比如在上述基础上节点A在收到节点B的消息回复后进行连续发送消息:节点A角色未发生改变,其连续作为发起节点发送消息,根密钥RK4不进行KDF计算,发送密钥Sek4的KDF计算利用已有发送密钥Sek3进行KDF计算,获取KK3,在Sek4基础上进一步获取Sek5,MK4,同样,接收密钥的KDF计算利用已有接收密钥进行叠加KDF计算。
实施例2:
用户Alice和Bob进行资产w交易流程如下:
用户Alice和Bob关联节点A和B,节点A将资产w在链上进行Merkle哈希计算,将Merkle根hash(w)通过节点共识协议进行共识出块,维持链运行,并将资产w分布式备份在可信存储服务器中;
节点A发送资产交易消息tx请求,调用密钥生成协议和加密通讯协议,按照实施例2中的发起节点加密通讯流程进行资产交易消息tx的加密传递;
节点B此时作为接收节点根据对发送消息解密获取资产交易消息tx,并根据tx索引从可信存储服务器中获取资产w,完成本次资产交易。
在交易消息加密的情况下,即使是资产数据明文在链上暴露也是安全的。
实施例3:
构建一种区块链加密通讯系统,创建加密通讯链,部署加密通讯协议,还包括设置可信存储服务器,如图7所示,具体包括如下:
搭建区块链加密通讯的底层环境:采用p2p网络和WebAssembly虚拟机,基于Substrate架构搭建加密通讯链基础设施,基于该架构注册通讯节点,形成区块链通讯网络;
所述区块链通讯网络架构从上至下包括应用层、协议层、可信存储层,形成区块链通讯网络体系,
所述应用层,用于响应于接收到发起节点发起的加密通讯会话请求;
所述协议层,被设置为:发起节点接收会话节点的第一公钥和第二公钥,并对第二公钥进行验证;验证通过后,发起节点生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥;对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文;将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包成加密数据发送至接收节点;接收节点接收加密数据并进行对称密钥解密,得到解密后的加密密文。
所述可信存储层用于分布式存储用户密钥及交易数据信息,存储通讯会话过程中产生的第一公钥、第二公钥、第三公钥,所述第一公钥始终存储在可信存储服务器中供通讯节点调用,所述第二公钥在可信存储服务器中存储并定期更新,所述第三公钥随通讯会话进行循环更新存储。
用户在应用层关联所属通讯节点,注册区块链通讯系统,在协议层调用密钥生成协议生成各流程所需密钥对,利用生成的密钥对调用加密通讯协议进行链上加密通讯会话和资产交易,过程中产生的公钥和资产数据发送至可信存储层的可信存储服务器中存储。
如图8所示为可信存储服务器和通讯节点A和B本地分别存储的数据分布图,可信存储服务器存储通讯会话过程中产生的第一公钥、第二公钥、第三公钥、已签名的第二公钥值以及链上资产交易产生的交易数据,其中第一公钥始终存储在可信存储服务器中供通讯节点调用,第二公钥在可信存储服务器中存储并定期更新,第三公钥随通讯会话进行循环更新存储(比如EK1A,EK2A,EK3A等)。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

Claims (10)

1.一种区块链加密通讯方法,其特征在于,包括以下步骤:
响应于接收到发起节点发起的加密通讯会话请求;
发起节点接收会话节点的第一公钥和第二公钥,并对第二公钥进行验证;
验证通过后,发起节点生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥;
对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文;
将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包成加密数据发送至接收节点;
接收节点接收加密数据并进行对称密钥解密,得到解密后的加密密文。
2.根据权利要求1所述的区块链加密通讯方法,其特征在于,所述加密通讯会话请求包括加密通讯请求和资产交易请求。
3.根据权利要求1所述的区块链加密通讯方法,其特征在于,第一密钥对包括第一公钥和第一私钥,第二密钥对包括第二公钥、第二私钥及第二公钥的已签名值,其中,第二公钥的已签名值为通过第一密钥对私钥签名过的数据,所述第一密钥对和第二密钥对都是基于密钥生成协议生成;
具体过程为:利用EdDSA算法随机选择256长度的二进制数作为私钥,对私钥进行SHA512哈希,其哈希值与给定的椭圆曲线生成元结合生成公钥,形成密钥对,所述给定的椭圆曲线生成元为参与会话的通讯节点双方共享的椭圆曲线参数。
4.根据权利要求1所述的区块链加密通讯方法,其特征在于,所述第一公密钥对作为身份认证密钥对,利用第一密钥对生成相应助记词,利用助记词作为通讯节点登录所述区块通讯网络的PIN码,兼容区块链资产交易业务和加密通讯业务;第二公密钥对利用第一密钥对签名,作为建立加密通讯使用的密钥对,并为该密钥对设置更新周期,进行循环更新。
5.根据权利要求1所述的区块链加密通讯方法,其特征在于,所述加密通讯协议用于基于X3DH算法得到发起节点和接收节点共同的根密钥,并通过KDF算法计算循环更新根密钥并产生发送密钥或接收密钥,所述发送密钥或接收密钥通过KDF算法生成发送加密密钥对或接收加密密钥对,其中更新根密钥的KDF算法计算时采用临时密钥私钥对和对方公钥进行DH计算生成KDF输入盐,发送密钥和接收密钥的KDF计算时输入盐为随机常数。
6.根据权利要求1所述的区块链加密通讯方法,其特征在于,所述基于第二公钥生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥,具体流程如下:
基于第一公钥和第二公钥以及第二公钥的已签名值,通过第二公钥的已签名值对第二公钥进行验证;
验证成功后,发起节点本地生成临时密钥对,所述临时密钥对作为第三密钥对,调用加密通讯协议分别对发起节点的第一私钥和接收节点的第二公钥、发起节点的第三私钥和接收节点的第一公钥、发起节点的第三私钥和接收节点的第二公钥进行X3DH计算,将计算结果并列组合后进行KDF压缩计算,生成会话根密钥;其中第三密钥对为一次性密钥对,单次消息通讯后通讯节点调用密钥生成协议在本地生成新的第三密钥对参与下次消息通讯的发送或接收。
7.根据权利要求1所述的区块链加密通讯方法,其特征在于,所述对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文,具体过程包括:
将所述会话根密钥作为输入数据,所述发起节点的第三私钥和接收节点的第二公钥进行DH计算的结果作为输入盐进行根密钥的KDF计算,计算结果随机分为两部分,第一部分更新根密钥,作为新一轮根密钥的KDF输入数据,第二部分作为发送密钥的KDF输入,并取随机常量作为输入盐进行发送密钥的KDF计算,所述发送密钥的KDF计算结果随机取一分部更新发送密钥,作为新一轮的发送密钥的KDF输入数据,另一部分作为发送消息密钥对,其私钥对发送消息加密签名生成消息密文,并将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包发送至接收节点;
接收节点调用加密通讯协议利用发起节点的第一公钥及第三公钥获取根密钥,并利用发起节点的第三公钥和其第二私钥DH计算生成输入盐进行根密钥的KDF计算并进行接收密钥的KDF计算,所述接收密钥的KDF计算结果随机取一分部更新接收密钥,作为新一轮的接收密钥的KDF输入数据,另一部分作为解密消息密钥对,其私钥对接收到的加密密文解密。
8.根据权利要求7所述的区块链加密通讯方法,其特征在于,所述根密钥的KDF计算在通讯节点在发送节点和接收节点之间出现角色转换时进行更新计算;所述发送密钥的KDF计算在发送消息时更新计算获取新的加密密钥,所述接收密钥的KDF计算在接收消息时更新计算获取新的解密密钥。
9.一种区块链加密通讯系统,基于Substrate架构搭建加密通讯链基础设施并注册通讯节点,形成区块链通讯网络架构,其特征在于,区块链通讯网络架构包括应用层及协议层;
所述应用层,用于响应于接收到发起节点发起的加密通讯会话请求;
所述协议层,被设置为:发起节点接收会话节点的第一公钥和第二公钥,并对第二公钥进行验证;验证通过后,发起节点生成第三密钥对,调用加密通讯协议基于第一密钥对、第二密钥对和第三密钥对得到会话根密钥;对会话根密钥执行KDF计算得到第一加密结果,将一部分第一加密结果用于更新会话根密钥,另一部分结合随机常量执行发送密钥的KDF计算,得到第二加密结果,将一部分第二加密结果用于更新发送密钥,另一部分作为消息密钥对并基于私钥对发送消息进行加密签名生成消息密文;将发起节点的第一公钥、第三公钥、接收节点的第二公钥和消息密文打包成加密数据发送至接收节点;接收节点接收加密数据并进行对称密钥解密,得到解密后的加密密文。
10.根据权利要求9所述的一种区块链加密通讯系统,其特征在于,所述区块链通讯网络架构还包括可信存储层;
所述可信存储层用于分布式存储用户密钥及交易数据信息,存储通讯会话过程中产生的第一公钥、第二公钥、第三公钥,所述第一公钥始终存储在可信存储服务器中供通讯节点调用,所述第二公钥在可信存储服务器中存储并定期更新,所述第三公钥随通讯会话进行循环更新存储。
CN202110277377.1A 2021-03-15 2021-03-15 一种区块链加密通讯方法及系统 Active CN113037499B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110277377.1A CN113037499B (zh) 2021-03-15 2021-03-15 一种区块链加密通讯方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110277377.1A CN113037499B (zh) 2021-03-15 2021-03-15 一种区块链加密通讯方法及系统

Publications (2)

Publication Number Publication Date
CN113037499A true CN113037499A (zh) 2021-06-25
CN113037499B CN113037499B (zh) 2024-01-05

Family

ID=76470559

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110277377.1A Active CN113037499B (zh) 2021-03-15 2021-03-15 一种区块链加密通讯方法及系统

Country Status (1)

Country Link
CN (1) CN113037499B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407558A (zh) * 2021-07-14 2021-09-17 广东粤信智能科技有限公司 一种基于区块链世界状态的交易数据更新方法、存储介质及系统
CN114531237A (zh) * 2022-04-21 2022-05-24 八维通科技有限公司 基于嵌入式平台的集成网关的根密钥升级方法
CN114584316A (zh) * 2022-02-28 2022-06-03 广州世安智链科技有限公司 一种面向物联网的去中心化did身份聚合验证方法及装置
CN115348114A (zh) * 2022-10-19 2022-11-15 浙江浩普智能科技有限公司 一种智慧电厂数据安全传输方法、系统、电子设备及介质
CN115499223A (zh) * 2022-09-20 2022-12-20 贵州电网有限责任公司 一种密钥交换方法、装置、电子设备及存储介质
CN118400186A (zh) * 2024-06-25 2024-07-26 浙江之江数安量子科技有限公司 一种安全的密钥交换方式

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140211938A1 (en) * 2013-01-29 2014-07-31 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
CN109691013A (zh) * 2018-08-16 2019-04-26 区链通网络有限公司 区块链节点间通信方法、装置及存储介质、区块链系统
US20190182236A1 (en) * 2017-12-13 2019-06-13 Paypal, Inc. Systems and methods encrypting messages using multiple certificates
CN110601830A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的密钥管理方法、装置、设备及存储介质
US10715339B1 (en) * 2019-04-26 2020-07-14 Alibaba Group Holding Limited Distributed key management for trusted execution environments
US20200226586A1 (en) * 2017-08-14 2020-07-16 Feitian Technologies Co., Ltd. Method for realizing digital currency wallet by using hardware, and hardware wallet
US20200280436A1 (en) * 2019-03-01 2020-09-03 John A. Nix Public key exchange with authenticated ecdhe and security against quantum computers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140211938A1 (en) * 2013-01-29 2014-07-31 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
US20200226586A1 (en) * 2017-08-14 2020-07-16 Feitian Technologies Co., Ltd. Method for realizing digital currency wallet by using hardware, and hardware wallet
US20190182236A1 (en) * 2017-12-13 2019-06-13 Paypal, Inc. Systems and methods encrypting messages using multiple certificates
CN109691013A (zh) * 2018-08-16 2019-04-26 区链通网络有限公司 区块链节点间通信方法、装置及存储介质、区块链系统
US20200280436A1 (en) * 2019-03-01 2020-09-03 John A. Nix Public key exchange with authenticated ecdhe and security against quantum computers
US10715339B1 (en) * 2019-04-26 2020-07-14 Alibaba Group Holding Limited Distributed key management for trusted execution environments
CN110601830A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的密钥管理方法、装置、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
李杰;李雷孝;孔冬冬;: ""一种基于中文助记词的椭圆曲线密钥生成方案"", 《内蒙古工业大学学报(自然科学版)》, no. 02 *
王伟康: ""区块链技术在文档管理中的应用与研究"", 《中国优秀硕士学位论文全文数据库》, no. 05, pages 14 - 26 *
王新国;张兵;胡天军;万国根;: ""基于证书的改进ECDH双向认证及密钥协商协议"", 《小型微型计算机系统》, no. 12 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407558A (zh) * 2021-07-14 2021-09-17 广东粤信智能科技有限公司 一种基于区块链世界状态的交易数据更新方法、存储介质及系统
CN114584316A (zh) * 2022-02-28 2022-06-03 广州世安智链科技有限公司 一种面向物联网的去中心化did身份聚合验证方法及装置
CN114531237A (zh) * 2022-04-21 2022-05-24 八维通科技有限公司 基于嵌入式平台的集成网关的根密钥升级方法
CN115499223A (zh) * 2022-09-20 2022-12-20 贵州电网有限责任公司 一种密钥交换方法、装置、电子设备及存储介质
CN115348114A (zh) * 2022-10-19 2022-11-15 浙江浩普智能科技有限公司 一种智慧电厂数据安全传输方法、系统、电子设备及介质
CN115348114B (zh) * 2022-10-19 2023-02-28 浙江浩普智能科技有限公司 一种智慧电厂数据安全传输方法、系统、电子设备及介质
CN118400186A (zh) * 2024-06-25 2024-07-26 浙江之江数安量子科技有限公司 一种安全的密钥交换方式

Also Published As

Publication number Publication date
CN113037499B (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
CN113037499B (zh) 一种区块链加密通讯方法及系统
CN112039872B (zh) 基于区块链的跨域匿名认证方法及系统
CN108886468B (zh) 用于分发基于身份的密钥资料和证书的系统和方法
CN108599925B (zh) 一种基于量子通信网络的改进型aka身份认证系统和方法
US20100042841A1 (en) Updating and Distributing Encryption Keys
EP3360279B1 (en) Public key infrastructure&method of distribution
JP2011501585A (ja) キー配信用の方法、システムおよび機器
WO2023082599A1 (zh) 基于量子密钥的区块链网络安全通信方法
CN108964897B (zh) 基于群组通信的身份认证系统和方法
CN112187450B (zh) 密钥管理通信的方法、装置、设备及存储介质
CN108964896B (zh) 一种基于群组密钥池的Kerberos身份认证系统和方法
US8345878B2 (en) Method for distributing cryptographic keys in a communication network
CN113572603A (zh) 一种异构的用户认证和密钥协商方法
CN111416712B (zh) 基于多个移动设备的量子保密通信身份认证系统及方法
CN115459913A (zh) 一种基于量子密钥云平台的链路透明加密方法及系统
CN118540165A (zh) 国密IPSec VPN协议的抗量子安全增强方法
Castiglione et al. An efficient and transparent one-time authentication protocol with non-interactive key scheduling and update
CN111049649A (zh) 一种基于标识密码的零交互密钥协商安全增强协议
CN114285550A (zh) 一种量子安全密钥服务网络、系统与节点装置
CN113014376B (zh) 一种用户与服务器之间安全认证的方法
CN113918971B (zh) 基于区块链的消息传输方法、装置、设备及可读存储介质
CN114268441A (zh) 一种量子安全应用方法、客户端装置、服务器装置与系统
CN114386020A (zh) 基于量子安全的快速二次身份认证方法及系统
CN109067705B (zh) 基于群组通信的改进型Kerberos身份认证系统和方法
CN114362926B (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
GR01 Patent grant
GR01 Patent grant