CN113422680A - 数据加密传输系统和数据加密传输方法 - Google Patents
数据加密传输系统和数据加密传输方法 Download PDFInfo
- Publication number
- CN113422680A CN113422680A CN202110615279.4A CN202110615279A CN113422680A CN 113422680 A CN113422680 A CN 113422680A CN 202110615279 A CN202110615279 A CN 202110615279A CN 113422680 A CN113422680 A CN 113422680A
- Authority
- CN
- China
- Prior art keywords
- queue
- key
- terminal
- ciphertext
- shared 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Abstract
本发明涉及信息安全技术领域,公开了一种数据加密传输系统和数据加密传输方法,包括数据中心与密钥协商服务器协商获取第一共享密钥;数据中心与消息中间件相连接,用于使用第一共享密钥对明文数据进行加密获取第一密文,并将第一密文发布至消息中间件的订阅队列;密钥协商服务器与数据中心相连接,用于获取订阅队列对应的队列信息,并使用队列信息对第一共享密钥进行加密获取第二密文;终端与消息中间件和密钥协商服务器相连接,用于获取队列信息、第一密文和第二密文,根据队列信息对第二密文解密获取第一共享密钥,并根据第一共享密钥对第一密文进行解密获取明文数据。密钥协商服务器代替分布式终端与数据中心进行密钥协商,节省通信开销。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种数据加密传输系统和数据加密传输方法。
背景技术
随着互联网与能源生产、传输、存储、消费以及能源市场的深度融合,电力行业步入网络化、智能化和集成化的时代。当前的电力系统针对分布式终端存在不同类型海量数据传输的安全性和实时性问题。基于消息中间件的发布/订阅模型常用于解决针对分布式终端的数据传输问题。现有的基于消息中间件的安全传输方法包括可以满足动态队列的方案。然而,适用于动态队列的存在群组密码管理复杂,消息发布端和接收端的开销大,通信效率低下的问题。
发明内容
基于此,有必要针对适用于动态队列的存在群组密码管理复杂的问题,提供一种数据传输方法。
一种数据加密传输系统,包括数据中心、密钥协商服务器和终端,所述数据中心与所述密钥协商服务器协商获取第一共享密钥,所述数据中心,与消息中间件相连接,用于使用所述第一共享密钥对明文数据进行加密获取第一密文,并将所述第一密文发布至所述消息中间件的订阅队列;所述密钥协商服务器,与所述数据中心相连接,用于获取所述订阅队列对应的队列信息,并使用所述队列信息对所述第一共享密钥进行加密获取第二密文;所述终端,分别与所述消息中间件和所述密钥协商服务器相连接,用于获取队列信息、所述第一密文和所述第二密文,根据所述队列信息对所述第二密文进行解密获取所述第一共享密钥,并根据所述第一共享密钥对所述第一密文进行解密获取所述明文数据。
上述数据加密传输系统,在电力系统环境下基于消息中间件的发布/订阅模式,解决数据中心到分布式终端数据传输的安全性和实时性问题。通过在数据中心和分布式终端之间增加密钥协商服务器,避免了数据中心与各个分布式终端进行一对一密钥协商的繁琐过程。订阅队列中的各终端随时可以进行增订和退订操作,保证了队列的动态变化。采用将密钥协商服务器和数据中心协商出的共享密钥执行数据加密、解密操作,保证了通信的“一次一密”,同时也可以保障大数量级数据在传输时的实时性与安全性。
一种数据加密传输方法,应用于数据加密传输系统,所述数据加密传输系统包括数据中心和终端,所述方法包括与所述数据中心协商获取第一共享密钥;所述第一共享密钥用于对所述数据中心发布至订阅队列的明文数据进行加密形成第一密文,或用于对所述终端从所述订阅队列中读取的所述第一密文进行解密获取所述明文数据;获取所述订阅队列对应的队列信息,根据所述队列信息对所述第一共享密钥进行加密形成第二密文;所述队列信息还用于对所述第二密文进行解密获取所述第一共享密钥;根据所述队列信息将所述第二密文分配至订阅了所述订阅队列的各个终端;根据所述订阅队列中所述终端的增订和/或退订操作,实时更新所述队列信息。
在其中一个实施例中,采用椭圆曲线密钥协商算法与所述数据中心协商获取所述第一共享密钥。
在其中一个实施例中,所述获取所述订阅队列对应的队列信息包括接收所述数据中心使用所述第一共享密钥加密过的所述订阅队列的队列名;根据所述第一共享密钥解密获取所述队列名;根据所述队列名查询所述订阅队列对应的队列信息。
在其中一个实施例中,所述队列信息包括所述订阅队列对应的终端集合、队列密钥和初始值。
在其中一个实施例中,所述根据所述队列信息对所述第一共享密钥进行加密形成第二密文包括计算所述终端集合的终端身份异或值;利用所述队列密钥计算所述终端身份异或值的假名;根据所述队列密钥和所述初始值获取加密密钥;获取时间戳,并使用所述加密密钥对所述第一共享密钥、所述队列名和所述时间戳进行加密处理获取第一加密信息;使用私钥对所述第一加密信息进行签名获取签名信息;使用所述第一共享密钥对所述签名信息、所述密钥协商服务器的身份和所述假名进行加密处理获取第二密文。
在其中一个实施例中,采用HMAC-SHA1加密算法进行加密处理。
在其中一个实施例中,所述根据所述订阅队列中所述终端的增订操作,实时更新所述队列信息包括在所述终端集合中增加执行增订操作的所述终端,生成新的终端集合;根据新的终端集合对所述队列信息进行更新;与新的终端集合中的各个终端依次进行密钥协商,获取第二共享密钥;根据所述第二共享密钥对更新后的所述队列信息进行加密获取第三密文;将所述第三密文传输至新的终端集合中的各个终端;所述第二共享密钥还用于解密所述第三密文。
在其中一个实施例中,所述根据所述订阅队列中所述终端的退订操作,实时更新所述队列信息包括将所述终端集合中执行退订操作的所述终端删除,生成新的终端集合;选取新的所述队列密钥和所述初始值;根据新的终端集合、所述队列密钥和所述初始值对所述队列信息进行更新;与新的终端集合中的各个终端依次进行密钥协商,获取第二共享密钥;根据所述第二共享密钥对更新后的所述队列信息进行加密获取第三密文;将所述第三密文传输至新的终端集合中的各个终端;所述第二共享密钥还用于解密所述第三密文。
在其中一个实施例中,所述方法还包括每间隔固定周期选取新的所述队列密钥和所述初始值;根据新的所述队列密钥和所述初始值对所述队列信息进行更新;与所述终端集合中的各个终端依次进行密钥协商,获取第二共享密钥;根据所述第二共享密钥对更新后的所述队列信息进行加密获取第三密文;将所述第三密文传输至所述终端集合中的各个终端;所述第二共享密钥还用于解密所述第三密文。
附图说明
为了更清楚地说明本说明书实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明其中一实施例中的数据加密传输系统的结构框图;
图2为本发明其中一实施例中的数据加密传输方法的方法流程示意图;
图3为本发明其中一实施例中的获取队列信息的方法流程示意图;
图4为本发明其中一实施例中的根据队列信息加密形成第二密文的方法流程示意图;
图5为本发明其中一实施例中的根据终端的增订操作更新队列信息的方法流程示意图;
图6为本发明其中一实施例中的根据终端的退订操作更新队列信息的方法流程示意图;
图7为本发明其中一实施例中的周期性更新队列信息的方法流程示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的优选实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反的,提供这些实施方式的目的是为了对本发明的公开内容理解得更加透彻全面。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”、“上”、“下”、“前”、“后”、“周向”以及类似的表述是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
电力行业中整体网络的结构划分为生产控制大区和管理信息大区,生产控制大区可以分为控制区和非控制区。控制区和非控制区分别通过实时子网和非实时子网将数据上传至电网调度控制系统。电网调度控制系统经由数据中心对数据进行分类过滤后传输到各个分布式终端,诸如电网地理信息系统、运行管理系统、生产抢修指挥平台和告警系统等。在本发明中,主要讨论电网调度控制系统内数据的实时安全传输。本发明针对电力系统中数据中心到分布式终端数据传输的安全性和实时性需求,提出了一种基于消息中间件动态队列的数据加密传输系统。
消息中间件(Message Oriented Middleware,MOM)简化了应用之间数据的传输,屏蔽底层异构操作系统和网络平台,为分布式业务逻辑提供统一的接口支持,确保了分布式系统环境下可靠的、跨平台的数据传输和交换。消息中间件有两种数据处理模型,即点对点模型(Point To Point,PTP)和发布/订阅模型(Publish and Subscribe,Pub/Sub),采用消息中间件的发布/订阅模型,能够满足电力系统中数据中心到分布式终端一对多的数据传输模型。在消息中间件的发布/订阅模型中,消息发布者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,消息将一直存储在队列中直到队列中的所有订阅者都取走消息。将消息中间件的发布/订阅模型应用到电力系统中,主要是模型的一对多的队列数据传输模式,消息中间件能够屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,实现数据中心和分布式终端之间的同步数据传输。
图1为本发明其中一实施例中的数据加密传输系统的结构框图,在其中一个实施例中,数据加密传输系统包括数据中心100、密钥协商服务器200和终端300。为了实现对分布式终端的订阅推送服务,同时保证通信的低消耗,利用密钥协商服务器200的前端与数据中心100进行密钥协商,然后对订阅相同消息队列的终端300统一密钥分配,以保证通信的实时性。利用密钥协商服务器200统一为分布式终端进行密钥分配,可以避免数据中心100与终端300的一对一密钥协商,减少了通信过程中的密钥协商次数,节省了通信时间,解决了终端300获取消息不同步的问题,保障了通信的实时性。
数据中心100与消息中间件10和密钥协商服务器200相连接,数据中心100与密钥协商服务器200协商获取第一共享密钥。数据中心100使用第一共享密钥对明文数据进行加密获取第一密文。在本实施例中,数据中心100为消息发布者,数据中心100发布的消息为第一密文,分布式终端300为订阅者。消息发布者将消息发送给消息中间件。消息中间件将消息存放在若干订阅队列中。消息将一直存储在队列中,直到队列中的所有订阅者都取走消息。
密钥协商服务器200与数据中心100相连接,获取订阅队列对应的队列信息,并使用队列信息对第一共享密钥进行加密获取第二密文。终端300分别与消息中间件10和密钥协商服务器200相连接。终端300获取队列信息、第一密文和第二密文,根据队列信息对第二密文进行解密获取第一共享密钥,并根据第一共享密钥对第一密文进行解密获取明文数据。
本实施例提供的数据加密传输系统根据消息中间件的发布/订阅通信模式,基于消息中间件动态队列实现数据传输过程中的密钥协商与分配,保障了用户身份的隐私性、数据传输的安全性和实时性。通过增加密钥协商服务器200,代替分布式终端300与数据中心100进行密钥协商,再为终端300分配共享密钥。每次数据传输的加密密钥都是密钥协商服务器200与数据中心100协商出的,确保了通信数据的一次一密。同时,订阅队列的终端300可以随时对队列进行增订和退订操作,保证了队列可以动态变化。终端从订阅队列中获取第一密文,最后使用从密钥协商服务器200分配的密钥解密数据对第一密文进行解密获取数据中心传输的明文数据。基于消息中间件的发布/订阅模式能够很好地解决分布式终端的跨平台数据传输问题。本实施例提供的数据加密传输系统具有较好的移植性,可以广泛地推广到面向分布式终端的系统,解决面向分布式终端系统中数据传输的安全实时性问题。
图2为本发明其中一实施例中的数据加密传输方法的方法流程示意图,在其中一个实施例中,本发明还提供了一种数据加密传输方法,应用于数据加密传输系统,数据加密传输系统包括数据中心和终端,数据加密传输方法包括如下步骤S100至S400。
步骤S100:与数据中心协商获取第一共享密钥;第一共享密钥用于对数据中心发布至订阅队列的明文数据进行加密形成第一密文,或用于对终端从订阅队列中读取的第一密文进行解密获取明文数据。
密钥协商服务器200与数据中心100协商获取第一共享密钥。数据中心100使用第一共享密钥对明文数据进行加密获取第一密文。在本实施例中,数据中心100为消息发布者,数据中心100发布的消息为第一密文,分布式终端300为订阅者。消息发布者将消息发送给消息中间件。消息中间件将消息存放在若干订阅队列中。消息将一直存储在队列中,直到队列中的所有订阅者都取走消息。
密钥协商服务器200代替分布式终端300与数据中心100进行密钥协商,再为终端300分配共享密钥,终端300可以根据第一共享密钥对数据中心100加密过的数据进行解密,从而获取需要的数据。数据中心100不需要与终端300进行一对一的密钥协商,节省了通信开销。由于每次数据传输的加密密钥都是密钥协商服务器200与数据中心100实时协商出,因此,可以确保每次数据传输过程中通信数据的一次一密。
在其中一个实施例中,数据中心100将第一共享密钥k作为序列密码Trivium算法的输入,对明文数据进行加密形成第一密文。在密钥的协商与分配阶段结束之后,订阅消息队列的终端300获取数据中心100传输到订阅队列的第一密文,将获得的第一共享密钥k作为解密算法Trivium的输入对第一密文进行解密,以得到明文数据。Trivium是一种序列密码算法,在处理大数量级的数据上比分组密码AES更加迅速,具有显著的时间优势,因此在本实施例中,采用Trivium算法进行加密、解密处理,可以在一定程度上保障数据传输的实时性。
步骤S200:获取订阅队列对应的队列信息,根据队列信息对第一共享密钥进行加密形成第二密文;队列信息还用于对第二密文进行解密获取第一共享密钥。
密钥协商服务器200获取订阅队列对应的队列信息,并使用队列信息对第一共享密钥进行加密获取第二密文。密钥协商服务器200对第一共享密钥进行分配时,也对第一共享密钥的传输采用了加密处理,可以用于抵抗中间人的攻击,保证数据传输的安全性。
步骤S300:根据队列信息将第二密文分配至订阅了订阅队列的各个终端。
密钥协商服务器200可以根据队列信息确定哪些终端300订阅了相同的订阅队列,并对各订阅了相同的消息队列的终端300统一密钥分配,以保证通信的实时性。终端300在获取了队列信息、第一密文和第二密文后,就可以根据队列信息对第二密文进行解密获取第一共享密钥,并根据第一共享密钥对第一密文进行解密获取明文数据。
步骤S400:根据订阅队列中终端的增订和/或退订操作,实时更新队列信息。
针对现有的基于消息中间件固定队列的安全传输方法,在本实施例中增加了增订和退订操作,从而保证订阅队列可以动态变化。
本实施例提供的数据加密传输方法根据消息中间件的发布/订阅通信模式,基于消息中间件动态队列实现数据传输过程中的密钥协商与分配。利用密钥协商服务器200,代替分布式终端300与数据中心100进行密钥协商,再为终端300分配共享密钥。每次数据传输的加密密钥都是密钥协商服务器200与数据中心100协商出的,确保了通信数据的一次一密。
同时,订阅队列的终端300可以随时对队列进行增订和退订操作,保证了队列可以动态变化。终端从订阅队列中获取第一密文,最后使用从密钥协商服务器200分配的密钥解密数据对第一密文进行解密获取数据中心传输的明文数据。基于消息中间件的发布/订阅模式能够很好地解决分布式终端的跨平台数据传输问题。本实施例提供的数据加密传输方法具有较好的移植性,可以广泛地推广到面向分布式终端的系统,解决面向分布式终端系统中数据传输的安全实时性问题。
在其中一个实施例中,采用椭圆曲线密钥协商算法与数据中心协商获取第一共享密钥。在密钥协商过程中,数据中心100与密钥协商服务器200分别调用bouncycastle中的椭圆曲线密钥协商算法(Elliptic Curve Diffie–Hellman key Exchange,ECDH)来进行密钥协商,以获取第一共享密钥k。椭圆曲线密钥协商算法主要是用于在一个不安全的通道中建立起安全的共有加密资料,一般来说交换的都是私钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。采用椭圆曲线密钥协商算法时,密钥协商过程的安全性高、密钥量好且灵活性好,可以在密钥更短的情况下达到与Diffie-Hellman密钥协商相同的安全级别,从而节省密钥存储空间和传输带宽。
图3为本发明其中一实施例中的获取队列信息的方法流程示意图,在其中一个实施例中,获取订阅队列对应的队列信息包括如下步骤S210至S230。
步骤S210:接收数据中心使用第一共享密钥加密过的订阅队列的队列名。
密钥协商服务器200与数据中心100共同协商出第一共享密钥k后,数据中心100使用第一共享密钥k对队列名queuei进行加密得到Enk(queuei),并将其发送给密钥协商服务器200。密钥协商服务器200对其进行解密后可以根据队列名queuei得到此次数据传输的订阅队列的相关信息。
步骤S220:根据第一共享密钥解密获取队列名。
密钥协商服务器200获取使用第一共享密钥k加密过的订阅队列的队列名后,可以使用第一共享密钥k对Enk(queuei)进行解密,以获取队列名queuei。
步骤S230:根据队列名查询订阅队列对应的队列信息。
密钥协商服务器200获知队列名queuei后,查看其对应的队列信息。密钥协商服务器200可以根据队列信息确定哪些终端300订阅了相同的订阅队列,并对各订阅了相同的消息队列的终端300统一密钥分配,以保证通信的实时性。同时,在对各订阅了相同的消息队列的终端300进行统一密钥分配时,使用队列信息对第一共享密钥进行加密获取第二密文,保证密钥分配传输过程的安全性,有助于解决面向分布式终端系统中数据传输的安全实时性问题。
在其中一个实施例中,队列信息包括订阅队列对应的终端集合、队列密钥和初始值。密钥协商服务器200获知队列名queuei后,查看获取该队列名queuei对应的终端集合(其中0≤kj≤m-1)、队列密钥ki和初始值IVi。在本实施例中,订阅队列中的终端可能随时对订阅队列执行增订和/或退订操作,因此,各订阅队列的队列信息也将根据增订/退订操作实时更新。密钥协商服务器200通过更新队列所对应的终端集合、队列密钥和初始值来实现队列的增订和退订。
图4为本发明其中一实施例中的根据队列信息加密形成第二密文的方法流程示意图,在其中一个实施例中,根据队列信息对第一共享密钥进行加密形成第二密文包括如下步骤S240至S290。
步骤S240:计算终端集合的终端身份异或值。
步骤S250:利用队列密钥计算终端身份异或值的假名。
密钥协商服务器200利用队列信息中的队列密钥ki计算终端身份异或值的假名在本实施例中,采用哈希算法对终端身份异或值进行假名化处理。在进行统一密钥分配时对终端身份进行单向哈希假名化,即以队列密钥ki作为输入对身份异或值进行单向哈希,以防敌手或订阅队列的其他终端通过之前的身份异或值IDu和更新后的异或值IDu'获知增订或退订的终端身份,即(其中,IDj为增订或退订的终端身份),可以确保用户的隐私性。
步骤S260:根据队列密钥和初始值获取加密密钥。
进一步地,对队列密钥ki和初始值IVi进行加密处理,以获取加密密钥a。在本实施例中,同样地,采用哈希算法对队列密钥ki和初始值IVi进行加密处理,获取的加密密钥为a=hash(ki||IVi)。
步骤S270:获取时间戳,并使用加密密钥对第一共享密钥、队列名和时间戳进行加密处理获取第一加密信息。
密钥协商服务器200选择合适的时间戳,并使用加密密钥a对第一共享密钥k、队列名queuei和时间戳timestamp进行加密处理获取第一加密信息Ena(k||queuei||timestamp),用于避免敌手的重放攻击。
步骤S280:使用私钥对第一加密信息进行签名获取签名信息。
步骤S290:使用第一共享密钥对签名信息、密钥协商服务器的身份和假名进行加密处理获取第二密文。
密钥协商服务器200利用第一共享密钥k对签名信息s、密钥协商服务器200的身份IDs和在步骤S250计算的进行加密处理,计算得到第二密文 密钥协商服务器200将消息M=(s,HMACi)发送给订阅队列的各个终端300。
在本实施例中,在将第一共享密钥k分配至各订阅了相同的订阅队列的终端300时,数据传输过程采用了先加密后签名的方式,这种方式通常会被认为难以抵抗中间人攻击。例如,A和B为通信双方,如果存在一个中间人C可以拦截A和B的消息,在不篡改消息明文和密文的情况下,使用C的私钥对消息密文进行签名,并替换A原始的签名,最后篡改后的消息传输给接收方B,B仍然可以成功解密明文,同时用C的公钥成功验证签名,最终这条消息会被B认为是C发送的合法消息。
而在本实施例中,终端300认为发送到订阅队列的签名均是密钥协商服务器200的签名得来的,即终端只会用密钥协商服务器200的公钥来验证签名,而不是根据签名内容来找对应公钥,或者使用多个公钥尝试验签。即使有中间人替换了签名,终端300依旧会使用密钥协商服务器200的公钥验证签名,这时就会发现消息被篡改。因此,本实施例的数据传输过程采用先加密后签名的方式,通过在消息中加入时间戳来抵抗中间人的重放攻击,同时可以减少数据的传输。这种先加密后签名的数据传输方式适用于如本实施例所述的确定了签名公钥的数据传输模式。
在其中一个实施例中,采用HMAC-SHA1加密算法进行加密处理。HMAC-SHA1是从SHA1哈希函数构造的一种键控哈希算法,被用作HMAC(基于哈希的消息验证代码)。在发送方和接收方共享密钥的前提下,HMAC可用于确定通过不安全信道发送的消息是否已被篡改。发送方计算原始数据的哈希值,并将原始数据和哈希值放在一个消息中同时传送。接收方重新计算所接收消息的哈希值,并检查计算所得的HMAC是否与传送的HMAC匹配。因为更改消息和重新生成正确的哈希值都需要密钥,所以对数据或哈希值的任何更改都会导致不匹配。因此,如果原始的哈希值与计算得出的哈希值相匹配,则消息通过身份验证。在本实施例汇总,采用HMAC-SHA1加密算法进行加密处理,来进一步保障数据传输过程的安全性。
在其中一个实施例中,订阅该订阅队列的终端300在获取消息M后,解签名获取队列名queuei,查询队列名queuei所对应的队列密钥ki和初始值IVi。计算加密密钥a=hash(ki||IVi),解密第一加密信息Ena(k||queuei||timestamp)得到解密的第一共享密钥k’、队列名queuei'和时间戳timestamp。
终端300判断验证解密得到的时间戳timestamp是否在有效期内,若该时间戳timestamp已失效,则抛弃接收到的消息;若该时间戳timestamp有效,则继续验证。将解密得到的队列名queuei'与原有的队列名queuei进行对比,若queuei'=queue,则继续验证;若queuei'≠queue,则抛弃接收到的消息。
由于订阅队列中的成员可以是动态变化的,即队列成员可以对订阅队列随时进行增订和/或退订操作。成员对订阅队列的退订和/或增订操作主要涉及到队列成员的变动,随之而来的问题就是订阅队列对应的终端身份异或值、队列密钥和初始值的更新与分配。
图5为本发明其中一实施例中的根据终端的增订操作更新队列信息的方法流程示意图,在其中一个实施例中,根据订阅队列中终端的增订操作,实时更新队列信息包括步骤S401至S409。
步骤S401:在终端集合中增加执行增订操作的终端,生成新的终端集合。
假设终端IDj(0≤j≤m-1)要求对订阅队列queuei进行订阅,密钥协商服务器200更新订阅队列queuei对应的终端集合Ai,即在终端集合Ai中增加IDj,生成新的终端集合Ai'。
步骤S403:根据新的终端集合对队列信息进行更新。
密钥协商服务器200根据新的终端集合Ai'对旧的队列信息进行实时更新。
步骤S405:与新的终端集合中的各个终端依次进行密钥协商,获取第二共享密钥。
密钥协商服务器200依次与新的终端集合Ai'中的每个终端300进行密钥协商,以密钥协商服务器200与新的终端集合中的终端IDj(0≤j≤n-1,IDj∈Ai')为例进行说明,密钥协商服务器200与终端IDj调用bouncycastle中的ECDH算法协商出二者的第二共享密钥同时计算和IDu'的假名
步骤S407:根据第二共享密钥对更新后的队列信息进行加密获取第三密文。
步骤S409:将第三密文传输至新的终端集合中的各个终端;第二共享密钥还用于解密第三密文。
密钥协商服务器200将第三密文传送给终端IDj。终端IDj在收到第三密文后,使用第二共享密钥对其进行解密得到对应的队列密钥ki、初始值IVi和身份异或值IDu'的假名终端IDj根据获取的队列密钥ki、初始值IVi和身份异或值IDu'的假名对其存储的队列信息进行更新。当新的终端集合Ai'中所有的终端都执行了数据更新的操作时,IDj(0≤j≤m-1)就完成对订阅队列queuei的增订。
队列的退订与队列的增订的流程相似,但退订过程除了需要更新订阅队列对应的终端集合外,还需要对密钥协商服务器200中订阅队列对应的队列密钥ki和初始值IVi进行更新。
图6为本发明其中一实施例中的根据终端的退订操作更新队列信息的方法流程示意图,在其中一个实施例中,根据订阅队列中终端的退订操作,实时更新队列信息包括如下步骤S411至S421。
步骤S411:将终端集合中执行退订操作的终端删除,生成新的终端集合。
假设订阅队列queuei中的终端IDj(0≤j≤m-1)要求对订阅队列queuei进行退订,密钥协商服务器200更新队列对应的终端集合Ai,删除该终端集合Ai中的IDj,生成新的终端集合Ai'。
步骤S413:选取新的队列密钥和初始值。
密钥协商服务器200还需要重新选取队列密钥ki'和初始值IVi'。
步骤S415:根据新的终端集合、队列密钥和初始值对队列信息进行更新。
密钥协商服务器200根据新的终端集合Ai'、新的队列密钥ki'和新的初始值IVi'对旧的队列信息进行实时更新。
步骤S417:与新的终端集合中的各个终端依次进行密钥协商,获取第二共享密钥。
密钥协商服务器200与更新后新的终端集合Ai'中所对应的终端300依次进行ECDH密钥协商。以密钥协商服务器200与终端集合Ai'中的终端IDj(0≤j≤n-1,IDj∈Ai')为例进行说明,密钥协商服务器200与终端300调用bouncycastle中的ECDH算法协商出二者的第二共享密钥同时计算
步骤S419:根据第二共享密钥对更新后的队列信息进行加密获取第三密文。
步骤S421:将第三密文传输至新的终端集合中的各个终端;第二共享密钥还用于解密第三密文。
密钥协商服务器200将第三密文传送给终端IDj。终端IDj在收到第三密文后,使用第二共享密钥对其进行解密得到对应的新的队列密钥ki'、初始值IVi'和身份异或值IDu'的假名终端IDj根据新的队列密钥ki'、初始值IVi'和身份异或值IDu'的假名对其存储的队列信息进行更新。当新的终端集合Ai'中所有的终端都执行了数据更新的操作时,IDj(0≤j≤m-1)就完成对订阅队列queuei的增订。
本实施例提供的方法解决了电力系统中数据中心到分布式终端的数据传输问题,保障了用户身份的隐私性、数据传输的安全性和实时性。同时,订阅队列的终端300可以随时对订阅队列进行增订和退订操作,保证了队列可以动态变化,通过订阅队列和终端之间的交互对订阅队列对应的队列信息进行实时更新,从而实现增订和退订操作。
本实施例相较传统的基于消息中间件的只能实现固定队列的数据传输方法,加入了增/退订操作,使得终端300可以自由加入/退出订阅队列,保证了订阅队列的动态变化性。密钥协商服务器200通过实时更新队列所对应的队列密钥ki、初始值IVi和订阅队列的所有终端的身份异或值IDu来实现订阅队列的增订和退订操作,同时对IDu进行了假名化,即用队列密钥ki作为输入进行单向哈希得到以防敌手或订阅队列的其他终端300通过之前的异或值IDu和更新后的异或值IDu'获知增订或退订的终端身份。
图7为本发明其中一实施例中的周期性更新队列信息的方法流程示意图,在其中一个实施例中,数据加密传输方法还包括如下步骤S501至S509。
步骤S501:每间隔固定周期选取新的队列密钥和初始值。
密钥协商服务器200每间隔固定的周期时间后,重新选取队列密钥ki'和初始值IVi'。
步骤S503:根据新的队列密钥和初始值对队列信息进行更新。
密钥协商服务器200根据新的队列密钥ki'和新的初始值IVi'对旧的队列信息进行实时更新。
步骤S505:与终端集合中的各个终端依次进行密钥协商,获取第二共享密钥。
步骤S507:根据第二共享密钥对更新后的队列信息进行加密获取第三密文。
步骤S509:将第三密文传输至终端集合中的各个终端;第二共享密钥还用于解密第三密文。
密钥协商服务器200将第三密文传送给终端IDj。终端IDj在收到第三密文后,使用第二共享密钥对其进行解密得到对应的新的队列密钥ki'、初始值IVi'和身份异或值IDu的假名终端IDj根据新的队列密钥ki'、初始值IVi'和身份异或值IDu的假名对其存储的队列信息进行更新。当终端集合Ai中所有的终端都执行了数据更新的操作时,IDj(0≤j≤m-1)就完成对订阅队列queuei的增订。
在目前的加密方法中,密钥协商服务器200与终端300在每次通信之后双方都会更新订阅队列所对应的队列密钥ki、初始值IVi,但是这种方式可能会导致异步攻击。即,敌手在截获密钥协商服务器200发送到队列的消息后,故意篡改消息验证码HMAC(Hash-basedMessage Authentication Code),使得终端验证消息失败,进而导致终端更新消息失败。此时,终端300和密钥协商服务器200所持有的队列所对应的队列密钥ki和初始值IVi是不一致的,因此无法正常通信。
为了抵抗如上的异步攻击,在本实施例中采取周期性地更新队列所对应的队列密钥ki和初始值IVi。通过周期性地更新密钥信息,替代了通信后更新的方式,能够有效地抵御重放异步攻击。对密钥信息进行周期性更新过程与上述实施例中队列的增订和退订操作相似。由密钥协商服务器200与终端300逐个密钥协商出第二共享密钥,然后由第二共享密钥加密传输密钥协商服务器200新选出的队列密钥ki、初始值IVi和队列假名
应该理解的是,虽然图2-图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据加密传输系统,其特征在于,包括数据中心、密钥协商服务器和终端,所述数据中心与所述密钥协商服务器协商获取第一共享密钥,
所述数据中心,与消息中间件相连接,用于使用所述第一共享密钥对明文数据进行加密获取第一密文,并将所述第一密文发布至所述消息中间件的订阅队列;
所述密钥协商服务器,与所述数据中心相连接,用于获取所述订阅队列对应的队列信息,并使用所述队列信息对所述第一共享密钥进行加密获取第二密文;
所述终端,分别与所述消息中间件和所述密钥协商服务器相连接,用于获取队列信息、所述第一密文和所述第二密文,根据所述队列信息对所述第二密文进行解密获取所述第一共享密钥,并根据所述第一共享密钥对所述第一密文进行解密获取所述明文数据。
2.一种数据加密传输方法,应用于数据加密传输系统,所述数据加密传输系统包括数据中心和终端,其特征在于,所述方法包括:
与所述数据中心协商获取第一共享密钥;所述第一共享密钥用于对所述数据中心发布至订阅队列的明文数据进行加密形成第一密文,或用于对所述终端从所述订阅队列中读取的所述第一密文进行解密获取所述明文数据;
获取所述订阅队列对应的队列信息,根据所述队列信息对所述第一共享密钥进行加密形成第二密文;所述队列信息还用于对所述第二密文进行解密获取所述第一共享密钥;
根据所述队列信息将所述第二密文分配至订阅了所述订阅队列的各个终端;
根据所述订阅队列中所述终端的增订和/或退订操作,实时更新所述队列信息。
3.根据权利要求2所述的数据加密传输方法,其特征在于,采用椭圆曲线密钥协商算法与所述数据中心协商获取所述第一共享密钥。
4.根据权利要求2所述的数据加密传输方法,其特征在于,所述获取所述订阅队列对应的队列信息包括:
接收所述数据中心使用所述第一共享密钥加密过的所述订阅队列的队列名;
根据所述第一共享密钥解密获取所述队列名;
根据所述队列名查询所述订阅队列对应的队列信息。
5.根据权利要求4所述的数据加密传输方法,其特征在于,所述队列信息包括所述订阅队列对应的终端集合、队列密钥和初始值。
6.根据权利要求5所述的数据加密传输方法,其特征在于,所述根据所述队列信息对所述第一共享密钥进行加密形成第二密文包括:
计算所述终端集合的终端身份异或值;
利用所述队列密钥计算所述终端身份异或值的假名;
根据所述队列密钥和所述初始值获取加密密钥;
获取时间戳,并使用所述加密密钥对所述第一共享密钥、所述队列名和所述时间戳进行加密处理获取第一加密信息;
使用私钥对所述第一加密信息进行签名获取签名信息;
使用所述第一共享密钥对所述签名信息、所述密钥协商服务器的身份和所述假名进行加密处理获取第二密文。
7.根据权利要求6所述的数据加密传输方法,其特征在于,采用HMAC-SHA1加密算法进行加密处理。
8.根据权利要求5所述的数据加密传输方法,其特征在于,所述根据所述订阅队列中所述终端的增订操作,实时更新所述队列信息包括:
在所述终端集合中增加执行增订操作的所述终端,生成新的终端集合;
根据新的终端集合对所述队列信息进行更新;
与新的终端集合中的各个终端依次进行密钥协商,获取第二共享密钥;
根据所述第二共享密钥对更新后的所述队列信息进行加密获取第三密文;
将所述第三密文传输至新的终端集合中的各个终端;所述第二共享密钥还用于解密所述第三密文。
9.根据权利要求5所述的数据加密传输方法,其特征在于,所述根据所述订阅队列中所述终端的退订操作,实时更新所述队列信息包括:
将所述终端集合中执行退订操作的所述终端删除,生成新的终端集合;
选取新的所述队列密钥和所述初始值;
根据新的终端集合、所述队列密钥和所述初始值对所述队列信息进行更新;
与新的终端集合中的各个终端依次进行密钥协商,获取第二共享密钥;
根据所述第二共享密钥对更新后的所述队列信息进行加密获取第三密文;
将所述第三密文传输至新的终端集合中的各个终端;所述第二共享密钥还用于解密所述第三密文。
10.根据权利要求5所述的数据加密传输方法,其特征在于,所述方法还包括:
每间隔固定周期选取新的所述队列密钥和所述初始值;
根据新的所述队列密钥和所述初始值对所述队列信息进行更新;
与所述终端集合中的各个终端依次进行密钥协商,获取第二共享密钥;
根据所述第二共享密钥对更新后的所述队列信息进行加密获取第三密文;
将所述第三密文传输至所述终端集合中的各个终端;所述第二共享密钥还用于解密所述第三密文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110615279.4A CN113422680B (zh) | 2021-06-02 | 2021-06-02 | 数据加密传输系统和数据加密传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110615279.4A CN113422680B (zh) | 2021-06-02 | 2021-06-02 | 数据加密传输系统和数据加密传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422680A true CN113422680A (zh) | 2021-09-21 |
CN113422680B CN113422680B (zh) | 2022-12-23 |
Family
ID=77713656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110615279.4A Active CN113422680B (zh) | 2021-06-02 | 2021-06-02 | 数据加密传输系统和数据加密传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422680B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN108989026A (zh) * | 2018-07-05 | 2018-12-11 | 华东师范大学 | 一种发布/订阅环境下用户属性可撤销的方法 |
CN109640325A (zh) * | 2018-12-29 | 2019-04-16 | 西安邮电大学 | 基于可扩展式贡献组密钥协商的面向车队的安全管理方法 |
CN110012312A (zh) * | 2019-03-28 | 2019-07-12 | 南京信息工程大学 | 适于付费电视系统的基于密钥管理的访问控制方法 |
CN111801926A (zh) * | 2018-01-26 | 2020-10-20 | 西门子股份公司 | 用于公开至少一个密码学密钥的方法和系统 |
CN111901230A (zh) * | 2020-06-03 | 2020-11-06 | 浙江吉利汽车研究院有限公司 | 一种支持设备接入验证的物联网网关、系统和设备接入验证的方法 |
CN112889029A (zh) * | 2018-10-16 | 2021-06-01 | 甲骨文国际公司 | 用于网络节点处的无锁通信处理的方法、系统和计算机可读介质 |
-
2021
- 2021-06-02 CN CN202110615279.4A patent/CN113422680B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN111801926A (zh) * | 2018-01-26 | 2020-10-20 | 西门子股份公司 | 用于公开至少一个密码学密钥的方法和系统 |
CN108989026A (zh) * | 2018-07-05 | 2018-12-11 | 华东师范大学 | 一种发布/订阅环境下用户属性可撤销的方法 |
CN112889029A (zh) * | 2018-10-16 | 2021-06-01 | 甲骨文国际公司 | 用于网络节点处的无锁通信处理的方法、系统和计算机可读介质 |
CN109640325A (zh) * | 2018-12-29 | 2019-04-16 | 西安邮电大学 | 基于可扩展式贡献组密钥协商的面向车队的安全管理方法 |
CN110012312A (zh) * | 2019-03-28 | 2019-07-12 | 南京信息工程大学 | 适于付费电视系统的基于密钥管理的访问控制方法 |
CN111901230A (zh) * | 2020-06-03 | 2020-11-06 | 浙江吉利汽车研究院有限公司 | 一种支持设备接入验证的物联网网关、系统和设备接入验证的方法 |
Non-Patent Citations (1)
Title |
---|
OPC: "《OPC 10000-14》", 6 February 2018 * |
Also Published As
Publication number | Publication date |
---|---|
CN113422680B (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Group-based authentication and key agreement with dynamic policy updating for MTC in LTE-A networks | |
CA2255285C (en) | Enhanced subscriber authentication protocol | |
CN110087240B (zh) | 基于wpa2-psk模式的无线网络安全数据传输方法及系统 | |
CN110505062B (zh) | 一种应用于联盟链的动态椭圆曲线加密方法 | |
WO2009143766A1 (zh) | 一种密钥分配方法及系统和在线更新公钥的方法及系统 | |
CN112187450B (zh) | 密钥管理通信的方法、装置、设备及存储介质 | |
CN107682152B (zh) | 一种基于对称密码的群组密钥协商方法 | |
WO2023160420A1 (zh) | 群组消息加密方法、装置、设备和存储介质 | |
CN115632779B (zh) | 一种基于配电网的量子加密通信方法及系统 | |
JP2004364303A (ja) | メッセージを暗号化及び復号化するためのリンク鍵を確立する方法及びシステム | |
CN113239403A (zh) | 一种数据共享方法及装置 | |
CN107925578B (zh) | 密钥协商方法、设备和系统 | |
CN111416712B (zh) | 基于多个移动设备的量子保密通信身份认证系统及方法 | |
Yang et al. | A trust and privacy preserving handover authentication protocol for wireless networks | |
CN115378587A (zh) | 密钥获取方法、装置、设备及可读存储介质 | |
CN111586023A (zh) | 一种认证方法、设备和存储介质 | |
CN112995215B (zh) | 解密系统、方法、装置、电子设备及存储介质 | |
Castiglione et al. | An efficient and transparent one-time authentication protocol with non-interactive key scheduling and update | |
CN106953727B (zh) | D2d通信中基于无证书的组安全认证方法 | |
CN106487761B (zh) | 一种消息传输方法和网络设备 | |
CN102739660A (zh) | 一种单点登录系统的密钥交换方法 | |
CN113297599B (zh) | 数据传输系统、数据获取方法、终端和存储介质 | |
CN113422680B (zh) | 数据加密传输系统和数据加密传输方法 | |
CN116208330A (zh) | 一种基于量子加密的工业互联网云边协同数据安全传输方法及系统 | |
CN114205077B (zh) | 基于Blom密钥分配算法的混合加密安全通信方法 |
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 |