CN116132118A - 一种基于区块链技术的加密通讯方法和系统 - Google Patents

一种基于区块链技术的加密通讯方法和系统 Download PDF

Info

Publication number
CN116132118A
CN116132118A CN202211680910.XA CN202211680910A CN116132118A CN 116132118 A CN116132118 A CN 116132118A CN 202211680910 A CN202211680910 A CN 202211680910A CN 116132118 A CN116132118 A CN 116132118A
Authority
CN
China
Prior art keywords
user
node
nodes
message
key
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
Application number
CN202211680910.XA
Other languages
English (en)
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.)
Sichuan Qingmu Technology Co ltd
Original Assignee
Sichuan Qingmu 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 Sichuan Qingmu Technology Co ltd filed Critical Sichuan Qingmu Technology Co ltd
Priority to CN202211680910.XA priority Critical patent/CN116132118A/zh
Publication of CN116132118A publication Critical patent/CN116132118A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于区块链技术的加密通讯方法和系统,该方法使用区块链网络代替传统的公钥基础设施和密钥生成中心,结合基于身份的加密,用户的公开密钥直接来源于其身份信息,并由区块链网络节点担任密钥生成中心的角色,将用户私钥的生成与网络中多个节点相联系,具体地,由监督节点完成对用户的身份认证并提供部分私钥,由生成节点提供剩余部分私钥,保护节点在其中参与用户身份验证和密钥分发的共识过程,这使得用户的私钥不仅仅由一个中心节点或机构生成,解决了密钥托管问题的缺点和在其传递过程中存在的安全问题,同时通过使用同态加密算法以及区块链具有公开透明、信息不可篡改等特性避免了各方通讯过程中存在的隐私安全问题及消息泄露隐患。

Description

一种基于区块链技术的加密通讯方法和系统
技术领域
本发明涉及区块链、数据共享和数据加密技术领域,具体涉及一种基于区块链技术的加密通讯方法和系统。
背景技术
网络技术的快速发展使得人们对通讯过程中的身份识别和数据保密有了更高的要求。用于保护数据和通信安全的传统基础设施是公钥基础设施(PKI)。为了给用户提供一个安全的通信平台,PKI使用非对称加密算法和数字证书,通过一个被称为证书机构(CA)的可信第三方保证用户的公钥安全。然而,PKI证书的管理需要大量的存储和计算,这将需要大量的资源。此外,还需要在多个CA之间进行交叉认证,且存在固有的密钥代管问题。密钥生成中心可以生成用户的私钥来解密任何加密文本并伪造数据。
区块链是集分布式数据存储、密码学、数据一致性算法等的一种综合技术。区块链为用户加密通讯提供了一种构建去中心化安全信任关系的方案,允许用户直接在网络上进行交易,而不需要依赖第三方中介。区块链的主要特征是分布式记账、全过程记录、不可篡改和加密。具体地说,分布式结构确保了链中一个节点的损坏不会影响整个系统。此外,系统中的节点之间可相互监督,防止数据被篡改,保证通信的不可抵赖性,不可篡改并利用加密技术增强了通信的安全性。因此,对于加密通讯系统的构建,将区块链技术整合到用户密钥发布过程中,可以保证用户密钥不易泄露且安全。此外,对通讯过程中消息明文的加密方式的研究也是至关重要的,可进一步保证通讯的安全性、不可泄漏性与完整性。
发明内容
有鉴于此,本发明的目的之一是提供一种基于区块链技术的加密通讯方法,能够为通讯双方创造兼具安全性、可回溯、不可篡改、不易泄露的加密通讯场景。
本发明的目的之一是通过以下技术方案实现的:
一种基于区块链技术的加密通讯方法,包括以下步骤:
步骤S1:底层区块链网络构建与初始化;
步骤S2:用户向监督节点发起身份认证请求;
步骤S3:监督节点进行用户身份验证并发起验证共识,若达成共识则将部分私钥S1发送至用户;
步骤S4:保护节点检查交易及用户信息,进行加密签名并转发至生成节点;
步骤S5:生成节点收到至少一半以上保护节点的加密签名,生成有效区块并达成共识,然后计算剩余部分私钥S2,并发送至用户;
步骤S6:用户结合S1、S2计算完整私钥S;
步骤S7:通信双方包括消息发送方、接收方,使用系统分配的密钥对进行相互身份认证,并建立安全通信通道;
步骤S8:消息发送方使用同态加密算法在本地执行消息加密,并通过通道将密文传输至接收方;
步骤S9:消息接收方对密文进行解密,得到消息明文;
步骤S10:客户端为此次通讯生成提案并分发给网络所有节点,以达成交易共识并生成有效区块提交到帐本,区块链网络执行更新帐本操作。
进一步,还包括底层区块链网络构建与初始化的步骤,具体包括:
步骤S101:区块链网络为其中的网络节点分配私钥si与公钥Pi,其中Pi=si*P,P为系统发布的一个随机数;
步骤S102:区块链网络随机选择n个节点作为监督节点,并协作生成系统公钥Y=s0*s1*…*sn*P,为保证系统并行处理用户请求,设置n不小于3且不大于总节点数的1/3;
步骤S103:为网络中的剩余节点随机分配角色,分别为n个生成节点与m个保护节点,其中需保证n<m<2n,以确保有效的共识。
进一步,用户向监督节点发起身份认证请求具体包括:
步骤S201:用户选择一个随机数x,并计算其公钥Qx=x*QID以及基于随机数P的签名Sigx(P)=x-1*P,其中QID=H1(ID),H1为系统指定的哈希函数,ID为用户号;
步骤S202:用户将认证信息(QID,Qx,Sigx(P))发送至客户端,客户端将其广播至区块链网络并为其分配处于空闲状态的一个监督节点和一个生成节点。
进一步,监督节点进行用户身份验证并发起验证共识的过程具体包括:
步骤S301:监督节点基于用户公钥Qx生成签名Sigs0(Qx)=s0*Qx,并向所有生成节点与保护节点发起验证共识;
步骤S302:所有生成节点与保护节点通过用户号、哈希函数H1与随机数P验证用户签名,并保留监督节点签名Sigs0(Qx),验证通过的节点基于自己的私钥生成签名并转发至监督节点;
步骤S303:监督节点检查收到的签名数量,若大于(n+m)/2+1,则网络对此用户身份验证达成共识,监督节点计算部分私钥发送至用户,并生成一个有效区块。
进一步,生成节点发起第二步验证共识,由所有保护节点参与,保护节点检查交易信息和用户信息,如Sigx(P),若检查通过则使用其密钥加密签名并转发给生成节点。
进一步,生成节点检查第二部分共识结果,若成功则生成有效区块并达成共识,然后计算剩余部分私钥S2,并发送至用户,若失败则用户身份认证失败,具体包括:
步骤S501:生成节点检查接收到的签名数,若大于m/2+1,则达成共识并生成一个有效的区块,并进入下一步骤,反之则用户身份认证失败;
步骤S502:该生成节点结合收到的签名计算剩余部分私钥 并转发至用户,其中s'=s1+s2+…+st
进一步,用户结合S1、S2计算完整私钥S,其具体计算过程如下:
其中,s=s0+s'。
进一步,通信双方包括消息发送方、接收方,使用系统分配的密钥对进行相互身份认证,并建立安全通信通道,具体包括:
步骤S701:消息发送方使用消息接收方的公钥加密请求认证消息M(QR,Requesttime(QS,N1)),并发送至接收方,其中QS、QR分别为消息发送方和接收方的公钥,N1为发送方生成的一个随机数;
步骤S702:接收方接收到请求认证消息,使用私钥SR对其执行解密操作,并向发送方响应回复消息M(QS,Replytime(f(N1),N2,Hash)),其中f(N1)为N1的一个变换,N2为接收方生成的一个随机数,Hash是上述消息的一个哈希值,用于验证消息的完整性;
步骤S703:消息发送方解密回复消息,确认接收方身份,若确认成功则发送确认消息M(QR,Confirmtime(f(N2),MS,Hash)),其中MS为通信内容,包括随机生成的一组密钥(k1,k2,…,kn);
步骤S704:消息接收方解密确认消息,确认发送方身份,若确认成功则向发送方发送确认回复消息M(QS,ConfirmReplytime(MR,Hash))。
进一步,消息发送方使用同态加密算法在本地执行消息加密,并通过通道将密文传输至接收方,具体包括:
步骤S801:消息发送方在本地生成椭圆曲线C及曲线上随机基点G;
步骤S802:发送方将基点G与密钥(k1,k2,…,kn)进行标量乘运算以生成公钥(Q1,Q2,…,Qn),其中Qi=G*ki
步骤S803:对明文(m1,m2,…,mn)进行加密操作,发送方将明文嵌入到椭圆曲线C中,获取明文点(Pm1,Pm2,…,Pmn);
步骤S804:发送方生成一组随机整数序列(l1,l2,…,ln),保证序列中每个随机数不大于基点G的阶数;然后使用公钥(Q1,Q2,…,Qn)、随机数序列(l1,l2,…,ln)与基点G对明文点进行加密运算,得到加密密文E1(E11,E21)…En(E1n,E2n),并通过区块链网络发送至接收方,加密运算具体操作如下:
E1i=li*G
E2i=E3i*Pmi
E3i=li*Qi
进一步,消息接收方对密文进行解密,得到消息明文,具体计算公式如下:
得到嵌入在椭圆曲线C上的明文点乘积,经过对应解码得到明文(m1,m2,…,mn)。
进一步,客户端为此次通讯生成提案并分发给网络所有节点,以达成交易共识并生成有效区块提交到帐本,区块链网络执行更新帐本操作,此次通讯结束,消息发送方与消息接受方公私钥失效,并将其上传至安全存储模块,此外区块链网络也将此次通讯的相关详细信息上传至安全存储模块进行保存。
本发明的目的之二是提供一种基于区块链技术的加密通讯系统,包括用户层、底层区块链网络以及安全存储模块;
所述用户层有消息发送方、消息接收方两种类型用户,任一类型用户每次发起通讯请求或接收到通讯请求后,均在本地动态更新其公钥并由区块链网络为其分发私钥,然后通讯双方正式进入相互身份认证过程;
所述区块链网络包括有客户端、监督节点、生成节点以及保护节点,用于完成用户密钥分发任务以及安全通信通道构建,其中,所述客户端用于与用户进行交互,并在用户发起身份认证请求时为其分配一对处于空闲状态的监督节点和生成节点对,所述监督节点用于用户的身份认证并发布部分私钥,所述生成节点用于生成剩余部分的私钥并参与验证用户身份的共识过程,所述保护节点用于对验证用户身份与分发密钥的过程达成共识,三种不同类型的网络节点间会发生角色转换,监督节点与生成节点在产生一定数量的有效区块后将转变为保护节点,所述监督节点可从所有生成节点与保护节点中通过选举产生,选举需要获得一半以上监督节点的同意,所述生成节点可从保护节点中选举产生,选举需要获得一半以上生成节点的同意;
所述安全存储模块用于保存用户密钥历史记录、通讯数据信息以及数据密文,用于在用户发生分歧的情况下进行信息核验,其中用户密钥历史记录将在每次通讯结束且当前密钥对失效后写入,通讯数据信息包括通讯双方ID、通讯开始时间戳、结束时间戳以及通讯结果。
本发明的有益效果是:
(1)本发明的方法使用区块链网络代替传统的公钥基础设施和密钥生成中心,结合基于身份的加密,用户的公开密钥直接来源于其身份信息(如ID号),并由区块链网络节点担任密钥生成中心的角色,将用户私钥的生成与网络中多个节点相联系。具体地讲,由监督节点完成对用户的身份认证并提供部分私钥,由生成节点提供剩余部分私钥,保护节点在其中参与用户身份验证和密钥分发的共识过程。这使得用户的私钥不仅仅由一个中心节点或机构生成,解决了密钥托管问题由中心节点管理密钥从而导致的不安全性的缺点和在其传递过程中存在的安全性问题,即使某个恶意节点获取了大部分保护节点的加密签名,也无法破解用户私钥以窃取通讯内容;
(2)本发明根据不同的职责将区块链网络中的节点分为监督节点、生成节点与保护节点三类,提出使用监督节点完成用户身份认证并发布部分用户私钥,使用生成节点生成剩余部分用户私钥并参与用户身份认证共识过程,而保护节点则用于参与用户身份认证共识过程与私钥发布验证共识过程,在该网络中完成各类数据验证、保障网络安全性并协调全节点的账本一致性。各类节点的分工合作可以有效避免出现某个中心化节点有过高的决策权,达到约束去中心化网络中的每个分散节点并维持系统运作有序性与公平性的目的,进而提高网络的可信性;
(3)区块链网络中三种不同类型的节点会进行节点角色转换操作,具体地讲,监督节点与生成节点在产生一定数量的有效区块后将转变为保护节点,缺少的监督节点将从所有生成节点与保护节点中通过选举产生,选举需要获得一半以上监督节点的同意,缺少的生成节点将从保护节点中选举产生,选举需要获得一半以上生成节点的同意。执行角色转换操作可以进一步加强网络的去中心化,使得单个节点的职责和权限不断变化,用户的私钥发布不再取决于网络中的特定节点,减少由节点被劫持所产生的严重后果,如扰乱用户私钥发布过程导致用户无法进行后续通讯、恶意方发布提前预设的私钥以窃取通讯密文等,进一步保证了网络的去中心化、可信性与安全性;
(4)在用户通讯过程中使用椭圆加密技术和同态加密算法对消息明文进行加密,确保消息的不可泄露与安全性,通过区块链技术与消息加密技术的双重保障,使得双方的加密通讯更加的安全、稳定以及可信。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和前述的权利要求书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为本发明的一种基于区块链技术的加密通讯方法流程示意图;
图2为本发明的一种基于区块链技术的加密通讯系统结构示意图;
图3为本发明的通讯双方(消息发送方与消息接收方)进行相互身份认证的流程示意图;
图4为本发明通讯过程中消息的加解密过程示意图。
具体实施方式
以下将参照附图,对本发明的优选实施例进行详细的描述。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
如图1所示,本发明的一种基于区块链技术的加密通讯方法,包括如下步骤:
步骤S1:底层区块链网络构建与初始化;
步骤S2:用户向监督节点发起身份认证请求;
步骤S3:监督节点进行用户身份验证并发起验证共识,若达成共识则将部分私钥S1发送至用户;
步骤S4:保护节点检查交易及用户信息,进行加密签名并转发至生成节点;
步骤S5:生成节点收到至少一半以上保护节点的加密签名,生成有效区块并达成共识,然后计算剩余部分私钥S2,并发送至用户;
步骤S6:用户结合S1、S2计算完整私钥S;
步骤S7:通信双方包括消息发送方、接收方,使用系统分配的密钥对进行相互身份认证,并建立安全通信通道;
步骤S8:消息发送方使用同态加密算法在本地执行消息加密,并通过通道将密文传输至接收方;
步骤S9:消息接收方对密文进行解密,得到消息明文;
步骤S10:客户端为此次通讯生成提案并分发给网络所有节点,以达成交易共识并生成有效区块提交到帐本,区块链网络执行更新帐本操作。
需要说明的是,本发明的流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
具体实施例:
如图1所示,本发明实施例提供了一种基于区块链技术的加密通讯方法,包括以下步骤S1至S10:
步骤S1包括以下分步骤:
步骤S101:区块链网络为其中的网络节点分配私钥si与公钥Pi,其中Pi=si*P,P为系统发布的一个随机数;
步骤S102:区块链网络随机选择n个节点作为监督节点,并协作生成系统公钥Y=s0*s1*…*sn*P,为保证系统并行处理用户请求,设置n不小于3且不大于总节点数的1/3;
步骤S103:为网络中的剩余节点随机分配角色,分别为n个生成节点与m个保护节点,其中需保证n<m<2n,以确保有效的共识。
本实施例中,步骤S1中的区块链网络为真实企业级加密通讯系统的底层网络模块,其组成如图2所示,该网络中包含监督节点、生成节点、保护节点三类节点,分别为用户提供用户认证、私钥分发、达成共识功能;其中监督节点与生成节点数量相等,为保证系统处理用户请求的高效率,将其数量设置为不小于3但不大于总节点数的1/3,且在处理用户请求时为一对一的对应关系;保护节点用于为监督节点和生成节点发起的提案达成共识,保证网络中信息的一致性与安全性,为达成共识,其节点数量大于监督节点数量且小于监督节点和保护节点的总和。
步骤S2包括以下分步骤:
步骤S201:用户选择一个随机数x,并计算其公钥Qx=x*QID以及基于随机数P的签名Sigx(P)=x-1*P,其中QID=H1(ID),H1为系统指定的哈希函数,ID为用户号;
步骤S202:用户将认证信息(QID,Qx,Sigx(P))发送至客户端,客户端将其广播至区块链网络并为其分配处于空闲状态的一个监督节点和一个生成节点。
本实施例中,用户在加入该加密通讯系统后,系统将为其分配唯一用户ID号,并随H1哈希函数、随机数P一起发送至用户客户端,用户选择一个随机数生成x并在本地生成公钥Qx。例如,用户ID为0001的用户选择随机数365生成公钥Qx=365*H1(0001),签名Sigx(P)=365-1*P;将认证信息(H1(0001),365*H1(0001),365-1*P)发送至区块链网络客户端,客户端为该用户分配一对监督节点和保护节点对(S,G)。
步骤S3包括以下分步骤:
步骤S301:监督节点基于用户公钥Qx生成签名并向所有生成节点与保护节点发起验证共识,其中s0为该监督节点的主密钥;
步骤S302:所有生成节点与保护节点通过用户号、哈希函数H1与随机数P验证用户签名,并保留监督节点签名验证通过的节点基于自己的私钥生成签名并转发至监督节点;
步骤S303:监督节点检查收到的签名数量,若大于(n+m)/2+1,则网络对此用户身份验证达成共识,监督节点计算部分私钥发送至用户,并生成一个有效区块。
在本实施例中,监督节点S基于用户公钥与自己的私钥s0生成签名 并将签名转发至所有的生成节点与保护节点以发起用户身份认证共识,生成节点与保护节点通过将收到的签名与系统保存的用户号、哈希函数H1与随机数P验证用户身份,若信息一致则使用私钥签名并转发回监督节点S,监督节点S检查签名数,若大于(n+m)/2+1则认为该用户为合法用户,计算部分私钥S1=s0 2*365*H1(0001)发送至用户0001,并为此次共识生成一个有效区块然后进入步骤S4。
步骤S4:保护节点检查交易及用户信息,进行加密签名并转发至生成节点。
在本实施例中,生成节点G发起第二步验证共识,由所有保护节点(P1,P2,…,Pm)参与,保护节点检查用户信息与上一步共识的信息是否一致,保证生成节点没有被恶意方攻击,若信息一致则使用自己的密钥对签名进行加密,然后转发至生成节点G。
步骤S5包括以下分步骤:
步骤S501:生成节点检查接收到的签名数,若大于m/2+1,则达成共识并生成一个有效的区块;
步骤S502:该生成节点结合收到的签名计算剩余部分私钥 并转发至用户,其中s'=s1+s2+…+st
在本实施例中,生成节点G首先对签名数量t进行检查,若收到大于一半保护节点的同意,则第二步验证共识成功,节点G生成一个有效区块并计算剩余部分私钥S2=s1*s0*365*H1(0001)+…+st-1*s0*365*H1(0001)+st*s0*365*H1(0001)转发至用户0001,其中s1、s2、…、st为进行了签名的保护节点的私钥。
步骤S6:用户0001结合S1、S2计算完整私钥S的具体计算过程如下:
其中,s=s0+s'。
在本实施例中,用户在本地计算完整私钥S=s*s0*QID=(s0+s1+s2+…+st)*s0 2*H1(0001)。
步骤S7包括以下分步骤:
步骤S701:消息发送方使用消息接收方的公钥加密请求认证消息M(QR,Requesttime(QS,N1)),并发送至接收方,其中QS、QR分别为消息发送方和接收方的公钥,N1为发送方生成的一个随机数;
在该分步骤实施例中,假设消息发送方为用户0001,接收方为用户0002,则QS=365*H1(0001)、QR=478*H1(0002),N1=111111,请求认证消息为M(478*H1(0002),Requesttime(365*H1(0001),111111))。
步骤S702:接收方接收到请求认证消息,使用私钥SR对其执行解密操作,并向发送方响应回复消息M(QS,Replytime(f(N1),N2,Hash)),其中f(N1)为N1的一个变换,N2为接收方生成的一个随机数,Hash是上述消息的一个哈希值,用于验证消息的完整性;
在该分步骤实施例中,假设使用f=SHA1作为随机数的变换函数,使用SHA256哈希函数为消息生成哈希值,接收方用户0002生成N2=222222作为随机数,则回复消息为M(365*H1(0001),Replytime(3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d,222222,f2fd098ddef2cd38fa7e610e467f11e25a43f7d2cf6d134daa1ed2512f4d7978))。
步骤S703:消息发送方解密回复消息,确认接收方身份,若确认成功则发送确认消息M(QR,Confirmtime(f(N2),MS,Hash)),其中MS为通信内容,通信内容中包括有随机生成的一组密钥(k1,k2,…,kn);
在该分步骤实施例中,消息发送方确认接收方身份后,将为后续加密通讯作准备,使用随机数生成器在本地生成一组密钥(6GGtrH14d,84NaY6E,…,AwwhF5)并作为此次通信内容发送至接收方,则确认消息为M(478*H1(0002),Confirmtime(273a0c7bd3c679ba9a6f5d99078e36e85d02b952,(6GGtrH14d,84NaY6E,…,AwwhF5),f574da9b7d99320aca4faeae95d607077082b2a00bc140f91a3026ac9c569f29))。
步骤S704:消息接收方解密确认消息,确认发送方身份,若确认成功则向发送方发送确认回复消息M(QS,ConfirmReplytime(MR,Hash))。
在该分步骤实施例中,消息接收方确认发送方身份,将Confirmed0001作为通信内容,向发送方发送确认回复消息M(365*H1(0001),ConfirmReplytime(Confirmed0001,d4f2a44972e8455175849a4877c0f15adf4b19ba57809a446cbdad1fad24266f))。
在步骤S7实施例中,消息接收方与发送方使用双重认证确认对方身份的合法性与正确性,首先通过区块链网络保证了通讯双方的身份合法性(均不是恶意方),其次通过非对称加密的方式对请求认证消息与回复消息进行加密保证对方身份的正确性,通讯双方(消息发送方与消息接收方)进行相互身份认证的流程如图3所示。
步骤S8包括以下分步骤:
步骤S801:消息发送方在本地生成椭圆曲线C及曲线上随机基点G;
S802:发送方将基点G与密钥(k1,k2,…,kn)进行标量乘运算以生成公钥(Q1,Q2,…,Qn),其中Qi=G*ki
步骤S803:对明文(m1,m2,…,mn)进行加密操作,发送方将明文嵌入到椭圆曲线C中,获取明文点(Pm1,Pm2,…,Pmn);
步骤S804:发送方生成一组随机整数序列(l1,l2,…,ln),保证序列中每个随机数不大于基点G的阶数;然后使用公钥(Q1,Q2,…,Qn)、随机数序列(l1,l2,…,ln)与基点G对明文点进行加密运算,具体操作如下:
E1i=li*G
E2i=E3i*Pmi
E3i=li*Qi
得到加密密文E1(E11,E21)…En(E1n,E2n),并通过区块链网络发送至接收方。
在本实施例中,通讯双方使用椭圆曲线加密技术和同态加密算法对通讯消息进行加密,避免消息在传送过程中被恶意方从网络中窃取,即使消息被窃取,但由于消息在区块链模块中以密文的形式存在,恶意方也会由于缺少加密算法无法破解密文得到消息明文。
步骤S9:消息接收方通过执行以下公式对密文进行解密:
得到嵌入在椭圆曲线C上的明文点乘积,经过对应解码得到明文(m1,m2,…,mn)。
在本实施例中,用户在本地通过执行解密算法得到消息明文,通讯过程中消息的加解密过程如图4所示。
步骤S10:客户端为此次通讯生成提案并分发给网络所有节点,以达成交易共识并生成有效区块提交到帐本,区块链网络执行更新帐本操作,此次通讯结束,消息发送方与消息接收方私钥失效,用户将失效私钥以及此次通讯的相关详细信息上传至安全存储模块进行保存。
基于上述加密通讯方法的设计思想,本发明还提出了一种基于区块链技术的加密通讯系统,包括用户层、底层区块链网络以及安全存储模块,所述用户层有消息发送方、消息接收方两种类型用户,任一类型用户每次发起通讯请求或接收到通讯请求后,均在本地动态更新其公钥并由区块链网络为其分发私钥,然后通讯双方正式进入相互身份认证过程;
所述区块链网络包括有客户端、监督节点、生成节点以及保护节点,主要完成用户密钥分发任务以及安全通信通道构建任务,其中所述客户端用于与用户进行交互,并在用户发起身份认证请求时为其分配一对处于空闲状态的监督节点、生成节点,所述监督节点用于用户的身份认证并发布部分私钥,所述生成节点用于生成剩余部分的私钥并参与验证用户身份的共识过程,所述保护节点用于对验证用户身份与分发密钥的过程达成共识。三种网络节点间会发生角色转换,监督节点与生成节点在产生一定数量的有效区块后将转变为保护节点,所述监督节点可从所有生成节点与保护节点中通过选举产生,选举需要获得一半以上监督节点的同意,所述生成节点可从保护节点中选举产生,选举需要获得一半以上生成节点的同意;
所述安全存储模块用于保存用户密钥历史、通讯数据信息以及数据密文,用于在用户发生分歧的情况下进行信息核验,其中用户密钥历史将在每次通讯结束且当前密钥对失效后写入,通讯数据信息包括通讯双方ID、通讯开始时间戳、结束时间戳、通讯结果(成功、失败)。
该方法和系统将区块链技术与加密通讯技术结合以降低在网络通讯场景中存在的各种安全风险。基于区块链技术安全性这一特性,提出使用底层区块链网络作为用户通讯网络,完成用户私钥分发、安全通信通道构建,使得该网络中的用户间信任度得到大幅度提高,且在用户单次通讯结束后原私钥将失效,使用网络中的生成节点、监督节点以及保护节点动态更新用户私钥,动态更新密钥的方式降低了用户被恶意方挟持的可能性。此外,区块链技术与椭圆曲线加密技术、同态加密算法的双重加密结合,使得恶意方难以从该网络中窃取数据,即使窃取到数据也无法对密文进行解密,保证了通讯过程中数据的安全性与完整性。基于区块链不可篡改、可追溯性等特性,将用户的每一次通讯相关内容,包括通讯双方ID、失效密钥对、通讯内容摘要等上传至区块链和安全存储模块保存,用于在用户对于某次通讯结果提出质疑或意见发生分歧时进行信息核验,同时由于区块链还具有去中心化、使用共识机制达成交易一致性等特性,使得这些通讯数据难以被篡改且可追溯,保证了通讯的不可抵赖性,加强了加密通讯系统的安全性,为安全网络通信提出了新的解决方案。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于区块链技术的加密通讯方法,其特征在于:所述方法包括以下步骤:
步骤S1:构建底层区块链网络并初始化,所述区块链网络包括有客户端、监督节点、生成节点以及保护节点;
步骤S2:用户通过客户端向监督节点发起身份认证请求;
步骤S3:监督节点进行用户身份验证并发起验证共识,若达成共识则将部分私钥S1发送至用户;
步骤S4:保护节点检查交易及用户信息,进行加密签名并转发至生成节点;
步骤S5:生成节点收到至少一半以上保护节点的加密签名,生成有效区块并达成共识,然后计算剩余部分私钥S2,并发送至用户;
步骤S6:用户结合S1、S2计算完整私钥S;
步骤S7:用户包括消息发送方和接收方,双方使用系统分配的密钥对进行相互身份认证,并建立安全通信通道;
步骤S8:消息发送方使用同态加密算法在本地执行消息加密,并通过通道将密文传输至接收方;
步骤S9:消息接收方对密文进行解密,得到消息明文;
步骤S10:客户端为此次通讯生成提案并分发给网络所有节点,以达成交易共识并生成有效区块提交到帐本,区块链网络执行更新帐本操作。
2.根据权利要求1所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S1具体包括:
步骤S101:区块链网络为其中的网络节点分配私钥si与公钥Pi,其中Pi=si*P,P为系统发布的一个随机数;
步骤S102:区块链网络随机选择n个节点作为监督节点,并协作生成系统公钥Y=s0*s1*…*sn*P,为保证系统并行处理用户请求,设置n不小于3且不大于总节点数的1/3;
步骤S103:为网络中的剩余节点随机分配角色,分别为n个生成节点与m个保护节点,其中需保证n<m<2n,以确保有效的共识。
3.根据权利要求1所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S2具体包括:
步骤S201:用户选择一个随机数x,并计算其公钥Qx=x*QID以及基于随机数P的签名Sigx(P)=x-1*P,其中QID=H1(ID),H1为系统指定的哈希函数,ID为用户号;
步骤S202:用户将认证信息(QID,Qx,Sigx(P))发送至客户端,客户端将其广播至区块链网络并为其分配处于空闲状态的一个监督节点和一个生成节点。
4.根据权利要求1所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S3具体包括:
步骤S301:监督节点基于用户公钥Qx生成签名
Figure FDA0004019321100000021
并向所有生成节点与保护节点发起验证共识,其中s0为该监督节点的主密钥;
步骤S302:所有生成节点与保护节点通过用户号、哈希函数H1与随机数P验证用户签名,并保留监督节点签名
Figure FDA0004019321100000022
验证通过的节点基于自己的私钥生成签名并转发至监督节点;
步骤S303:监督节点检查收到的签名数量,若大于(n+m)/2+1,则网络对此用户身份验证达成共识,监督节点计算部分私钥
Figure FDA0004019321100000023
发送至用户,并生成一个有效区块。
5.根据权利要求1所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S5具体包括:
步骤S501:生成节点检查接收到的签名数,若大于m/2+1,则达成共识并生成一个有效的区块;
步骤S502:该生成节点结合收到的签名计算剩余部分私钥:
Figure FDA0004019321100000024
Figure FDA0004019321100000025
并转发至用户,其中s'=s1+s2+…+st
6.根据权利要求1所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S6用户结合S1、S2计算完整私钥S,其具体计算过程如下:
Figure FDA0004019321100000026
Figure FDA0004019321100000027
其中,s=s0+s'。
7.根据权利要求1所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S7具体包括:
步骤S701:消息发送方使用消息接收方的公钥加密请求认证消息M(QR,Requesttime(QS,N1)),并发送至接收方,其中QS、QR分别为消息发送方和接收方的公钥,N1为发送方生成的一个随机数;
步骤S702:接收方接收到请求认证消息,使用私钥SR对其执行解密操作,并向发送方响应回复消息M(QS,Replytime(f(N1),N2,Hash)),其中f(N1)为N1的一个变换,N2为接收方生成的一个随机数,Hash是上述消息的一个哈希值,用于验证消息的完整性;
步骤S703:消息发送方解密回复消息,确认接收方身份,若确认成功则发送确认消息M(QR,Confirmtime(f(N2),MS,Hash)),其中MS为通信内容,包括随机生成的一组密钥(k1,k2,…,kn);
步骤S704:消息接收方解密确认消息,确认发送方身份,若确认成功则向发送方发送确认回复消息M(QS,ConfirmReplytime(MR,Hash))。
8.根据权利要求1所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S8具体包括:
步骤S801:消息发送方在本地生成椭圆曲线C及曲线上随机基点G;
步骤S802:发送方将基点G与密钥(k1,k2,…,kn)进行标量乘运算以生成公钥(Q1,Q2,…,Qn),其中Qi=G*ki
步骤S803:对明文(m1,m2,…,mn)进行加密操作,发送方将明文嵌入到椭圆曲线C中,获取明文点(Pm1,Pm2,…,Pmn);
步骤S804:发送方生成一组随机整数序列(l1,l2,…,ln),保证序列中每个随机数不大于基点G的阶数;然后使用公钥(Q1,Q2,…,Qn)、随机数序列(l1,l2,…,ln)与基点G对明文点进行加密运算,具体操作如下:
E1i=li*G
E2i=E3i*Pmi
E3i=li*Qi
得到加密密文E1(E11,E21)…En(E1n,E2n),并通过区块链网络发送至接收方。
9.根据权利要求8所述的一种基于区块链技术的加密通讯方法,其特征在于:所述步骤S9中,所述消息接收方通过执行以下公式对密文进行解密:
Figure FDA0004019321100000031
Figure FDA0004019321100000032
Figure FDA0004019321100000033
Figure FDA0004019321100000034
得到嵌入在椭圆曲线C上的明文点乘积,经过对应解码得到明文(m1,m2,…,mn)。
10.一种基于区块链技术的加密通讯系统,其特征在于:包括用户层、底层区块链网络以及安全存储模块;
所述用户层有消息发送方、消息接收方两种类型用户,任一类型用户每次发起通讯请求或接收到通讯请求后,均在本地动态更新其公钥并由区块链网络为其分发私钥,然后通讯双方正式进入相互身份认证过程;
所述区块链网络包括有客户端、监督节点、生成节点以及保护节点,用于完成用户密钥分发任务以及安全通信通道构建,其中,所述客户端用于与用户进行交互,并在用户发起身份认证请求时为其分配一对处于空闲状态的监督节点和生成节点对,所述监督节点用于用户的身份认证并发布部分私钥,所述生成节点用于生成剩余部分的私钥并参与验证用户身份的共识过程,所述保护节点用于对验证用户身份与分发密钥的过程达成共识,三种不同类型的网络节点间会发生角色转换,监督节点与生成节点在产生一定数量的有效区块后将转变为保护节点,所述监督节点可从所有生成节点与保护节点中通过选举产生,选举需要获得一半以上监督节点的同意,所述生成节点可从保护节点中选举产生,选举需要获得一半以上生成节点的同意;
所述安全存储模块用于保存用户密钥历史记录、通讯数据信息以及数据密文,用于在用户发生分歧的情况下进行信息核验,其中用户密钥历史记录将在每次通讯结束且当前密钥对失效后写入,通讯数据信息包括通讯双方ID、通讯开始时间戳、结束时间戳、通讯结果。
CN202211680910.XA 2022-12-27 2022-12-27 一种基于区块链技术的加密通讯方法和系统 Pending CN116132118A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211680910.XA CN116132118A (zh) 2022-12-27 2022-12-27 一种基于区块链技术的加密通讯方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211680910.XA CN116132118A (zh) 2022-12-27 2022-12-27 一种基于区块链技术的加密通讯方法和系统

Publications (1)

Publication Number Publication Date
CN116132118A true CN116132118A (zh) 2023-05-16

Family

ID=86309372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211680910.XA Pending CN116132118A (zh) 2022-12-27 2022-12-27 一种基于区块链技术的加密通讯方法和系统

Country Status (1)

Country Link
CN (1) CN116132118A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117220879A (zh) * 2023-10-23 2023-12-12 北京中汇国信科技有限公司 一种基于fpga芯片的网络流量加密实现方法与装置
CN117478302A (zh) * 2023-12-28 2024-01-30 湖南天河国云科技有限公司 基于区块链隐私节点身份验证方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117220879A (zh) * 2023-10-23 2023-12-12 北京中汇国信科技有限公司 一种基于fpga芯片的网络流量加密实现方法与装置
CN117478302A (zh) * 2023-12-28 2024-01-30 湖南天河国云科技有限公司 基于区块链隐私节点身份验证方法及装置
CN117478302B (zh) * 2023-12-28 2024-03-01 湖南天河国云科技有限公司 基于区块链隐私节点身份验证方法及装置

Similar Documents

Publication Publication Date Title
CN112491846B (zh) 一种跨链的区块链通信方法及装置
WO2021042685A1 (zh) 一种区块链的交易方法、装置及系统
CN108199835B (zh) 一种多方联合私钥解密方法
CN114730420A (zh) 用于生成签名的系统和方法
WO2022199290A1 (zh) 多方安全计算
CN111066285A (zh) 基于sm2签名恢复公钥的方法
US11870891B2 (en) Certificateless public key encryption using pairings
CN116132118A (zh) 一种基于区块链技术的加密通讯方法和系统
US20150043735A1 (en) Re-encrypted data verification program, re-encryption apparatus and re-encryption system
US20200014546A1 (en) Method and system for providing security in trusted execution environments
CN104168114A (zh) 一种分布式的基于(k,n)门限证书加密方法及系统
CN113630248B (zh) 一种会话密钥协商方法
JP2023500570A (ja) コールドウォレットを用いたデジタルシグニチャ生成
KR20230024369A (ko) 비밀 공유의 생성
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
CN106789087B (zh) 确定消息的数据摘要、基于多方的数字签名的方法及系统
TW202318833A (zh) 臨界簽章方案
CN114598533B (zh) 一种区块链侧链跨链身份可信认证及数据加密传输方法
Itoo et al. A robust ECC-based authentication framework for energy internet (EI)-based vehicle to grid communication system
CN111245611B (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN116757698B (zh) 一种用于完善支付安全性能的加密方法及系统
CN111224783B (zh) 一种支持密钥刷新的两方椭圆曲线数字签名方法
EP3664361B1 (en) Methods and devices for secured identity-based encryption systems with two trusted centers
CN116703593A (zh) 基于区块链的电子保函业务监管审批方法及系统
US7958354B1 (en) High-order knowledge sharing system to distribute secret data

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