CN114697051A - 安全传输数据的方法、装置及系统 - Google Patents

安全传输数据的方法、装置及系统 Download PDF

Info

Publication number
CN114697051A
CN114697051A CN202011566162.3A CN202011566162A CN114697051A CN 114697051 A CN114697051 A CN 114697051A CN 202011566162 A CN202011566162 A CN 202011566162A CN 114697051 A CN114697051 A CN 114697051A
Authority
CN
China
Prior art keywords
data segment
data
sequence number
frame
ciphertext
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
CN202011566162.3A
Other languages
English (en)
Other versions
CN114697051B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011566162.3A priority Critical patent/CN114697051B/zh
Priority to PCT/CN2021/140625 priority patent/WO2022135498A1/zh
Priority to EP21909493.5A priority patent/EP4258628A4/en
Publication of CN114697051A publication Critical patent/CN114697051A/zh
Application granted granted Critical
Publication of CN114697051B publication Critical patent/CN114697051B/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
    • 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • 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/0457Network 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 dynamic encryption, e.g. stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

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)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种数据传输方法及相关的装置和系统,通过加解密以保护数字内容,实现数字内容的安全传输。发送端基于帧序列号和发送端的数据段序列号加密数据帧内的数据段以得到密文,发送端向接收端发送该帧序列号和该密文。接收端基于该帧序列号和接收端的数据段序列号解密该密文以得到明文。发送端和接收端的数据段序列号具有相同的初始值,且在加密和解密同一个数据帧内的数据段时基于相同的规则更新,加密完该数据帧内的所有数据段后发送端的数据段序列号重置为初始值,解密完该数据帧内的所有数据段的密文后接收端的数据段序列号重置为初始值。

Description

安全传输数据的方法、装置及系统
技术领域
本申请涉及数据通信领域,更为具体地,涉及一种安全传输数据的方法、装置和系统。
背景技术
随着多媒体技术的发展,对音视频等内容传输在安全性、可靠性、稳定性等上提出了更高的要求。特别在数字接口间传输数据时,由于数据的巨大价值,对数据进行保护,防止数据在传输中遭受非法窃取具有重要意义。
目前,解决数字接口间数据安全传输的方法是使用对称密钥加密传输,对称密码体制要求发送端和接收端使用同一密钥,即发送端使用加密密钥加密数据成密文后发送到接收端,接收方使用相同的密钥才能解密密文。如果接收端使用的密钥和发送端的加密密钥不一致,就会解密失败,进而造成花屏等不好的体验。因此,发送端加密密钥需要和接收端解密密钥完全同步,才能保证接收端能够正确的解密收到的加密数据。
现有技术的方法,发送端以数据段为单位加密数据,接收端逐个解密数据段的密文。为了实现发送端和接收端的秘钥同步,发送端每加密一个数据段,就按照预定规则更新用于生成秘钥的参数,比如数据段序列号。接收端每解密一个密文,也按照与发送端相同的预定规则更新用于生成秘钥的参数。由于发送端和接收端用于生成秘钥的参数在一次加密解密的过程中按照统同样的规则更新,因此可以实现发送端加密密钥和接收端解密密钥的同步。但是,在数据的实际传输过程中,数据的丢失是不可避免的,一旦某个密文丢失,发送端和接收端的参数将无法保持同步,进而导致接收端生成的密钥将无法与发送端同步,导致解密错误。更为重要的是,一旦出现解密错误,就会导致后续所有密文的解密一直错误,直到发送端重新认证接收端的身份并协商新的会话密钥(SessionKey)。
发明内容
有鉴于此,本申请提供了一种数据传输方法及相关的装置和系统,可以用于加解密数据,以实现数据的安全传输,并且能够在出现解密错误时快速恢复正确解密。
第一方面,本申请提供一种数据传输方法,可应用于安全数据传输的场景,比如将个人电脑的内容共享到更大的屏幕、电脑连接投影仪进行投影、台式电脑主机连接显示器进行显示、影碟机连接电视播放CD/DVD等。该方法包括:发送端向接收端发送帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个数据段;所述发送端还向所述接收端发送所述数据段X的密文,所述数据段X的密文是基于所述帧序列号和所述发送端的数据段序列号加密所述数据段X得到的,所述发送端的数据段序列号具有初始值,加密所述数据段X后所述发送端的数据段序列号按照预定规则更新,当所述数据帧的所有数据段被加密后,所述发送端的数据段序列号被重置为所述初始值;所述接收端接收所述帧序列号和所述数据段X的密文;以及,所述接收端基于所述帧序列号和所述接收端的数据段序列号,解密所述数据段X的密文,以得到所述数据段X的明文;所述接收端的数据段序列号具有与所述发送端的数据段序列号相同的初始值,解密所述数据段X的密文后所述接收端的数据段序列号按照所述预定规则更新,当所述数据帧内的所有数据段的密文被解密后,所述接收端的数据段序列号被重置为所述初始值。
在AES这种对称加密方法中,帧序列号和数据段序列号用于生成密钥流,该密钥流在发送端和接收端的同步是接收端正确解密数据的关键,所以,发送端和接收端准确同步帧序列号和数据段序列号是接收端正确解密数据的基础。
在一个数据帧的传输过程中,一旦出现至少一个数据段的密文丢失的情况,接收端用于解密的数据段序列号将无法正确对应到被解密的密文,即接收端用于解密的数据段序列号与发送端用于加密的数据段序列号出现错位的情况。在本申请提供的数据传输方法中,如果在一个数据帧的传输过程中,出现上述数据段序列号错位的情况,在传输下一个数据帧时,所述接收端和所述发送端的数据段序列号被重置为相同的初始值,即两端的数据段序列号重新同步,此后,两端的数据段序列号又按照相同的预定规则进行更新,确保用于加密和用于解密的数据段序列号一致。
也就是说,在传输一个数据帧的过程中,一旦出现接收端和发送端帧序列号或数据段序列号不同步的情况,本申请提供的数据传输方法能够确保在传输下一个数据帧时,所述发送端和所述接收端的帧序列号和数据段序列号都能够重新同步,从而保证所述接收端生成准确的密钥流以解密数据。
此外,本申请提供的数据传输方法通过传输字节数较少的帧序列号和数据段序列号的帧内计数,在出现解密错误的情况时,不需要先断开发送端与接收端的连接来重新认证身份和协商会话密钥,以实现帧序列号和数据段序列号的重新同步,节约了通信开销和重新同步的时间开销。
进一步地,本申请提供的数据传输方法将解密错误的情况限制在一个数据帧内,快速恢复正确解密,能够降低解密错误对用户的影响,避免了出现花屏等问题,甚至在用户还没有感知到出现解密错误的问题时就已经恢复了数据的正常传输,能够有效提升用户体验。
第二方面,本申请提供一种数据传输方法,应用于电脑、机顶盒、影碟机等电子设备,所述电子设备具有加密数据和发送数据的功能。该方法包括:发送帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的一个或多个未加密数据段;发送所述数据段X的密文,所述数据段X的密文是基于所述帧序列号和数据段序列号加密所述数据段X得到的,所述数据段序列号具有初始值,加密所述数据段X后所述数据段序列号按照预定规则更新,当所述数据帧内的所有数据段被加密后,所述数据段序列号被重置为所述初始值。
在本申请提供的数据传输方法中,发送端发送一个数据帧时,通过发送帧序列号到接收端,确保即使由于传输过程中丢失密文等各种情况导致所述接收端与所述发送端的帧序列号出现不同步的情况下,也能及时重新同步帧序列号。
在一种可能的实现方式中,所述数据段X是所述多个数据段中首个被加密的数据段,所述数据段序列号的初始值被用于加密所述数据段X。
在一种可能的实现方式中,所述数据段X不是所述多个数据段中首个被加密的数据段,所述数据段序列号的更新值被用于加密所述数据段X,所述数据段序列号的更新值是基于所述初始值按照所述预定规则更新得到的。
本申请提供的数据传输方法将解密错误的情况限制在一个数据帧内,快速恢复正确解密,能够降低解密错误对用户的影响,避免了出现花屏等问题,甚至在用户还没有感知到出现解密错误的问题时就已经恢复了数据的正常传输,能够有效提升用户体验。
在一种可能的实现方式中,该方法还包括:根据所述帧序列号和所述数据段序列号,生成初始化向量;基于所述初始化向量,加密所述数据段X以得到所述数据段X的密文。
在一种可能的实现方式中,所述根据所述帧序列号和所述数据段序列号,生成所述初始化向量,包括:拼接所述帧序列号和所述数据段序列号,以得到计数器;拼接所述计数器和预先生成的随机数,以得到所述初始化向量。计数器是加密模块,比如工作在计数器(Counter,CTR)模式下的AES模块的输入,是一个特定长度(比如,64bits)的码流或比特流。
在一种可能的实现方式中,所述基于所述初始化向量,加密所述数据段X以得到所述数据段X的密文,包括:将所述初始化向量和会话密钥输入高级加密标准AES单元,以得到密钥流;以及,将所述密钥流与所述数据段X进行异或操作,以得到所述数据段X的密文。
在一种可能的实现方式中,当所述数据段序列号的值等于第一阈值时,表示所述数据帧内的所有数据段被加密。也就是说,可以通过数据段序列号的值来确定一个数据帧内的所有数据段是否都已经被加密。第一阈值可以基于数据帧包含的数据段的数量来设定。比如,假设数据帧包含100个数据段,数据段序列号的初始值为0,每加密一个数据段,数据段序列号加1,当数据段序列号等于99时,意味着已经进行了100次加密操作,及数据帧内包含的100个数据段全部被加密。
在一种可能的实现方式中,数据帧包含的数据段的数量是一定的,根据已加密的数据段个数即可确定数据帧内的所有数据段被加密,比如当已加密的数据段个数或加密次数等于数据帧包含的数据段的数量时,就表示所述数据帧内的所有数据段被加密。已加密的数据段个数或加密次数可以通过一个单独的计数器来统计,也是基于数据段序列号换算得到。
第三方面,本申请提供一种数据传输方法,应用于电视机、电脑、投影仪、显示器、智慧大屏等电子设备,所述电子设备具有接收数据和解密数据的功能。该方法包括:接收帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的一个或多个数据段;接收所述数据段X的密文;基于所述帧序列号和数据段序列号解密所述数据段X的密文,以得到所述数据段X的明文,所述数据段序列号具有初始值,解密所述数据段X的密文后所述数据段序列号按照预定规则更新,且解密所述数据帧内的所有数据段的密文后所述数据段序列号被重置为所述初始值。
结合第三方面所述的数据传输方法,在一种可能的实现方式中,该方法还包括:若解密所述数据段X的密文失败,则丢弃之后接收到的其他密文,直到接收到另一个帧序列号。由于数据段序列号和/或帧序列号是按照预定规则更新的,一旦出现解密错误的情况,意味着这一个数据帧内剩余所有数据段的密文都无法对应到正确的数据段序列号和/或帧序列号,即可以判定这一个数据帧内剩余所有数据段的密文都无法正确解密,在这种情况下,直接丢弃之后接收到的其他密文,避免了接收端去解密明知无法正确解密的密文,可以节约接收端的计算资源。而在接收到另一个帧序列号以后,意味着发送端已加密该数据帧内的所有数据段,故两端的帧序列号和数据段序列号将重新同步,接收端就恢复正常的解密操作,解密该另一个帧序列号对应的数据帧。
第四方面,本申请还提供一种数据传输方法,应用于电脑、机顶盒、影碟机等电子设备,所述电子设备具有加密数据和发送数据的功能。该方法包括:发送帧序列号和数据段序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个未加密数据段;以及,发送所述数据段X的密文,所述数据段X的密文是基于所述帧序列号和所述数据段序列号加密所述数据段X得到的,所述数据段序列号具有初始值,加密所述数据段X后所述数据段序列号按照预定规则更新。
结合第四方面所述的数据传输方法,在一种可能的实现方式中,帧序列号和数据段序列号同时发送,即发送每一个数据段的密文时,都发送帧序列号和数据段序列号。在发送一个数据帧内所有数据段的密文时,所述帧序列号相同,每发送一个数据段的密文,所述数据段序列号按照预定规则更新。帧序列号和数据段序列号可以封装在加密信息头中,随密文一起发送。加密信息头和密文也可以分发发送。
结合第四方面所述的数据传输方法,在一种可能的实现方式中,帧序列号和数据段序列号分开发送。具体地,每发送一个数据帧,发送一次帧序列号,发送所述数据帧内的每一个数据段时,都发送一次数据段序列号。每发送一个数据段的密文,所述数据段序列号按照预定规则更新。
第四方面所提供的数据传输方法,能够在出现解密错误时,更快地恢复正确解密,即在下一个数据段就立即恢复,进一步提升了数据传输时的可靠性和容错性。
第五方面,本申请还提供一种数据传输系统,包括发送装置、接收装置,该发送装置被配置用于执行上述第一方面中发送端执行的数据传输方法,该接收装置被配置用于执行上述第一方面中接收端执行的数据传输方法。
第六方面,本申请还提供一种电子设备,该电子设备被配置用于执行上述第二方面和/或第三方面中任一项所述的数据传输方法。
第七方面,本申请还提供一种电子设备,该电子设备被配置用于执行上述第四方面中任一项所述的数据传输方法。
第八方面,本申请还提供一种计算机装置,该计算机装置包括存储器、处理器及存储在存储器上的计算机程序,当所述计算机程序被所述处理器执行时,该计算机装置执行上述第第二方面和/或第三方面中任一项所述的数据传输方法。
第九方面,本申请还提供一种计算机装置,该计算机装置包括存储器、处理器及存储在存储器上的计算机程序,当所述计算机程序被所述处理器执行时,该计算机装置执行上述第第四方面中任一项所述的数据传输方法。
第十方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得计算机执行如上述第二方面和/或第三方面中任一项所述的数据传输方法。
第十一方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得计算机执行如上述第四方面中任一项所述的数据传输方法。
第十二方面,本申请还提供一种计算机程序产品,计算机程序产品包括:计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行如上述第二方面和/或第三方面中任一项所述的数据传输方法。
第十三方面,本申请还提供一种计算机程序产品,计算机程序产品包括:计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行如上述第四方面中任一项所述的数据传输方法。
第十四方面,本申请还提供一种电路系统,该电路系统包括处理电路,所述处理电路被配置为执行如上述第二方面和/或第三方面中任一项所述的数据传输方法。
第十五方面,本申请还提供一种电路系统,该电路系统包括处理电路,所述处理电路被配置为执行如上述第四方面中任一项所述的数据传输方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一个数据安全传输系统的架构示意图。
图2是本申请实施例提供的发送端100的一个结构示意图。
图3是本申请实施例提供的数据划分的一种示意图。
图4是本申请实施例的安全传输数据的流程示意图。
图5是本申请实施例提供的包含帧序列号的加密信息头的格式示意图。
图6是本申请实施例提供的发送端100和接收端200协商会话密钥和随机数的流程示意图。
图7是本申请实施例提供的生成初始化向量的流程示意图。
图8是本申请实施例提供的发送端利用初始化向量和会话密钥加密明文以得到密文的流程示意图。
图9是本申请实施例提供的接收端利用初始化向量和会话密钥解密密文以得到明文的流程示意图。
图10是本申请实施例提供的获取数据段序列号的方法示意图。
图11是本申请实施例提供的获取帧序列号的方法示意图。
图12是本申请实施例提供的一种电子设备的结构示意图。
图13是本申请实施例提供的一种电路系统的结构示意图。
图14是本申请实施例提供的服务器300的一个结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。应理解,本发明实施例可在其它方面中使用,并可包括附图中未描绘的结构变化或逻辑变化。
例如,应理解,结合所描述的方法的揭示内容可以对用于执行所述方法的对应设备或系统也同样适用,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括例如功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元,其中每个都执行多个步骤中的一个或多个),即使附图中未明确描述或说明这种一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能性,或多个步骤,其中每个执行多个单元中一个或多个单元的功能性),即使附图中未明确描述或说明这种一个或多个步骤。进一步,应理解的是,除非另外明确说明,本文中所描述的各示例性实施例和/或方面的特征可以相互组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
首先介绍可能应用本申请实施例提供的技术方案的一个具体场景,机顶盒通过HDMI数据线连接电视,以在电视上播放音视频内容,机顶盒先将需要播放的音视频内容加密后,再经HDMI数据线传输到电视,电视将接收到的加密音视频内容解密后再进行呈现。本申请实施例提供的技术方案还可以应用到更多需要传输数据的场景,比如将个人电脑的内容共享到更大的屏幕、电脑连接投影仪进行投影、台式电脑主机连接显示器进行显示、影碟机连接电视播放CD/DVD等。
本申请实施例提供一种安全传输数据的方法,通过在传输加密数据的时候,发送端发送帧序列号,使得接收端出现解密故障时能够迅速恢复,以提升安全传输数据的可靠性,带给用户更佳的体验。
图1为本申请实施例提供的一种数据安全传输系统的架构示意图。如图1所示,该系统至少包括数据发送端100和数据接收端200。发送端100可以通过有线和/或无线的方式(后文中详细介绍)与接收端200通信,发送端100发送经过加密的数据,接收端200接收加密数据并进行解密。
发送端100为具有数据发送和加密能力的装置,例如,发送端100可以为平板电脑、笔记本电脑、台式机主机、机顶盒、影碟机、手机、电子阅读器、数位板、数字会议系统、可穿戴智能设备(如智能手表)、摄像头、个人数字助理(personal digital assistant,PDA)、车载设备等电子设备或其任意组合。在一种可能的实施方式中,发送端100可以搭载
Figure BDA0002860727460000061
Figure BDA0002860727460000062
或者其它操作系统。当然,在以下实施例中,对发送端100的具体形式不作任何限制。
接收端200为具有数据接收和解密能力的装置,例如各种可以显示数据的显示设备,如显示器、电视机、投影仪、智慧屏、平板电脑、笔记本电脑、台式机主机、机顶盒、电子阅读器、数位板、数字会议系统、手机、可穿戴智能设备(如智能手表)、网络视频录像机(network video recorder,NVR)/数字硬盘录像机(digital video recorder,DVR)、视频监控系统、PDA、车载设备等电子设备或其任意组合。在一种可能的实施方式中,接收端200可以搭载
Figure BDA0002860727460000063
或者其它操作系统。当然,在以下实施例中,对接收端200的具体形式不作任何限制。
可以理解的是,在某些场景下,发送端和接收端的角色可以互换,即发送端可以执行接收端的操作,而接收端可以执行发送端的操作。在某些场景下,发送端和接收端的角色可以集成到同一电子设备上,例如转换器等,该设备可以接收加密数据并将其解密,也可以将数据加密以后再发送出去。
可选地,数据安全传输系统还可以包括服务器300,发送端100将数据加密后先发送到服务器300,再由服务器300发送到接收端200。服务器300可以包括连接到局域网(local area network,LAN)或广域网(wide area network,WAN)的一个或多个设备,发送端100和接收端200可经由网络访问服务器300。当然,在以下实施例中,对服务器300的具体形式不作任何限制。
在一种可能的实施方式中,服务器300接收发送端100发送的加密数据后,不对数据进行解密,只是将接收到的加密数据暂时保存,当收到来自接收端200的数据请求时,将保存的加密数据发送到接收端200。
在另一种可能的实施方式中,服务器300接收发送端100发送的加密数据后,先将数据解密后再保存(例如,以便于在服务器300端支持查询功能),当收到来自接收端200的数据请求时,将保存的数据先进行加密,再发送到接收端200。
在一种可能的实施方式中,服务器300还可以用于控制和管理发送端100和接收端200之间的身份认证、会话密钥交换等交互动作,确保发送端100和接收端200建立安全通信。在认证时,服务器300可用于分发会话密钥,在发送端100和接收端200建立通信之后,服务器300还可以用于更新用于加密的会话密钥。此外,服务器300还可以维护一个白名单,白名单中包括已经认证的可以接收加密数据的接收端列表,以及每个接收端对应的状态。在一个实施例中,发送端100可以访问服务器300维护的白名单,并请求与白名单中的至少一个接收端建立安全通信。
下面结合图2详细介绍发送端100的一种示例性结构。如图2所示,发送端100至少包括处理器101、存储器102和通信模块103。本领域技术人员可以理解,图2中示出的硬件结构并不构成对发送端100的限定,发送端100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在发送端100中,处理器101是发送端100的控制中心,例如处理器101可以控制发送端100是否对数据进行加密后再进行传输。处理器101可以通过各种接口、支持电路以及总线与发送端100的其他组件进行交互,支持电路可以与处理器101集成到一起。在一个实施例中,处理器101被实现为一个或多个处理器,一个或多个控制器和/或可用于执行程序的其它结构。例如,处理器101具体可以包括通用处理器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑组件中的至少一种。通用处理器可以包括基于x86、ARM等架构的处理器,微处理器,以及控制器,微控制器,或状态机。处理器101也可以实现为计算组件,例如DSP和微处理器的组合。
存储器102中存储有计算机程序,诸如操作系统和应用程序。处理器101被配置用于执行存储器102中的计算机程序,从而实现该计算机程序定义的功能,例如,处理器101执行加密程序从而实现对数据的加密。存储器102还存储有除计算机程序之外的其他数据,诸如操作系统和应用程序运行过程中产生的数据,又如加密前后的数据。存储器102为非易失性存储介质,一般包括内存和外存。内存包括但不限于随机存取存储器(random accessmemory,RAM),只读存储器(read-only memory,ROM),或高速缓存(cache)等。外存包括但不限于闪存(flash memory)、硬盘、光盘、通用串行总线(universal serial bus,USB)盘等。计算机程序通常被存储在外存上,处理器在执行计算机程序前会将该程序从外存加载到内存。
存储器102可以是独立的,通过总线与处理器101相连接;存储器102也可以和处理器101集成到一个芯片子系统。
通信模块103可以包括任何用于与其他设备或通信网络进行有线和/或无线通信的收发器等类似的装置。有线通信模块1031可以包括串行和/或并行有线介质,例如,以太网、通用串行总线(universal serial bus,USB)、火线(FireWire)、数字视频接口(digitalvisual interface,DVI)、高清多媒体接口(high-definition multimedia interface,HDMI)、视频图形阵列(video graphics array,VGA)接口、千兆位视频接口(gigabit videointerface,GVIF)、统一显示接口(unified display interface,UDI)等。
无线通信模块1032可以包括提供无线局域网(wireless local area networks,WLAN)通信功能的通信模块,如无线保真(wireless fidelity,Wi-Fi)模块,也可以包括提供蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近场通信(near field communication,NFC),红外(infrared,IR)等无线通信功能的通信模块。无线通信模块1032还可以包括提供2G/3G/4G/5G等移动通信能力的移动通信模块,提供移动通信能力的移动通信模块可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
无线通信模块1032可以是集成至少一个通信模块的一个或多个器件。在一些实施例中,无线通信模块1032的至少部分功能模块可以被设置于处理器101中。在一些实施例中,无线通信模块1032的至少部分功能模块可以与处理器101的至少部分模块被集成在同一个器件中。无线通信模块1032经由天线接收电磁波,将电磁波信号进行解调以及滤波处理,将处理后的信号发送到处理器101。无线通信模块1032还可以从处理器101接收待发送的信号,对其进行调频,放大,经天线转为电磁波辐射出去。
在一种可能的实现方式中,发送端100还包括输入/输出(I/O)设备105,I/O设备包括输出设备和输入设备两大部分。
输出设备包括但不限于:显示器1051、音频电路1055等等。
显示器(也称为显示屏)1051用于显示用户输入的信息或展示给用户的信息。可以采用液晶显示屏、有机发光二极管等形式来配置显示器。显示器可以是与发送端100其他组件集成在一起的自带显示器,也可以是通过有线或无线方式连接的外部显示器。
音频电路1055、扬声器1056、麦克风1057可提供用户与发送端100之间的音频接口。音频电路1055可将接收到的音频数据转换后的电信号,传输到扬声器1056,由扬声器1056转换为声音信号输出;另一方面,麦克风1057将收集的声音信号转换为电信号,由音频电路1055接收后转换为音频数据,再通过通信模块将音频数据发送给比如另一电子设备,或者将音频数据输出至存储器102以便进一步处理。
输入设备可以包括按键1052。按键1052可以是集成在发送端100上的实体按键,比如机顶盒上的控制按键,也可以是通过红外通信等方式连接的外在按键,比如用于控制电视机的遥控器。用户可以通过按键来控制发送端100的通电断电,也可以通过按键控制发送端100执行其他操作。
可选地,发送端100的输入设备还可以包括触摸屏1053。例如,手机和平板电脑等电子设备可以通过触摸屏1053采集用户输入(比如用户使用手指、触控笔等任何适合的物体在触摸屏1053上或在触摸屏1053附近的操作),并将采集到的触摸事件发送给其他器件(例如处理器101),可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现触摸屏1053。在一种可能的实现方式中,触摸屏1053与显示器1051集成为一个组件。
可选地,发送端100的输入设备还可以包括触控板1054、键盘1058、鼠标1059等。例如,笔记本电脑可以通过触控板1054感应用户手指的移动来控制指针的动作。键盘1058可以是与发送端100一体的键盘,比如笔记本电脑自带的键盘,也可以是通过蓝牙、网络、有线等方式连接到发送端100,为发送端100提供输入的外部键盘。
此外,也可以通过音频电路1055进行语音输入。
接收端200的结构与发送端100相同或相似,此处不再赘述。类似地,本领域技术人员可以理解,图2中示出的硬件结构并不构成对接收端200的限定,接收端200可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本申请提供的安全传输数据的方法,在发送端和接收端建立安全的通信连接之后,以特定长度(比如128bits)的数据段为单位将数据加密,接收端接收到加密数据后,再分别解密,然后按照一定顺序组合。也就是说,加密和解密的过程中,数据可能会被划分为多个数据段。为便于理解,接下来先介绍数据分段的情况。
图3给出了将数据分段的一个示例,数据的划分包括两个层次,第一层是将数据划分为若干固定长度的数据帧,例如,将数据按照一定顺序(比如,内容的顺序)划分为特定长度(该长度可以是一个通用长度,也可以是用户指定的长度)的多个数据帧。第二层是将每一帧进一步划分为若干固定长度的数据段,例如,按照加密的顺序,将每一个数据帧划分为多个固定长度(例如128bits)的数据段。
每一个数据帧可以通过一个帧序列号(frame number,FN)来指示。在一个实施例中,帧序列号可以为数据帧的唯一标识,例如,发送端可以为每一个数据帧按照预定规则分配一个唯一的标识(如图3中的n-1,n,n+1),用于区分不同的数据帧;接收端也可以按照同样的预定规则为每一个数据帧分配帧序列号,从而确保同一个数据帧在发送端加密过程中和在接收端解密过程中的帧序列号是一致的。
在另一个实施例中,发送端可以将其加密的第一个数据帧的帧序列号初始化为一个固定值,然后每加密完一帧,就将帧序列号的值按照预定规则更新一次,比如加1;相应的,接收端可以将其解密的第一个数据帧的序列号初始化为与发送端相同的固定值,然后每解密完一帧,就将帧序列号的值按照与发送端同样的预定规则更新一次。这样发送端和接收端可以实现帧序列号的同步。在一个实施例中,当上述固定值为0,且预定规则为递增1时:发送端加密的第一个数据帧的帧序列号为0,并且第一个数据帧加密完成后,发送端加密的第二个数据帧的序列号递增为1,以此类推。相应的,接收端解密的第一个数据帧的帧序列号也为0,并且第一个数据帧解密完成后,接收端解密的第二个数据帧的序列号也基于相同的规则递增为1,以此类推。可以看出,在这种情形(帧序列号的初始值为0)下,对发送端来说,数据帧序列号指示了发送端已加密的数据帧的数量;对接收端来说,数据帧序列号指示了接收端已解密的数据帧的数量。也可以生成一个随机数/伪随机数作为第一帧的帧序列号的初始值。
在一种可能的实现方式中,相邻数据帧的帧序列号之间存在一定的关联,知道某一个数据帧的帧序列号以后,可以按照预定规则获取下一个数据帧的帧序列号。在一个可能的实施例中,下一个数据帧的帧序列号是当前数据帧的帧序列号加上一个预定值,比如图3所示的加1,或者也可以加上其他任何FN表示范围内的非负数。
由于每一个数据帧在发送端是按照特定长度的数据段为单位加密的,所以为了区分同一个数据帧内按序被加密的多个数据段,发送端通过数据段序列号(data number,DN)来指示同一个数据帧的不同数据段(或对同一个数据帧内的不同数据段的加密操作)。同样地,每一个数据帧在接收端也是以特定长度的数据段为单位解密的,接收端为了区分同一个数据帧内按序被解密的多个数据段,也通过数据段序列号来指示同一个数据帧内的不同数据段(或对同一个数据帧内的不同数据段的解密操作)。
在一种可能的实现方式中,发送端可以为同一个数据帧内的每一个数据段按照预定规则分配一个唯一的标识(如图3中的0,1,2,3,4,…),用于区分不同的数据段;接收端也可以按照同样的预定规则为同一个数据帧内的每一个数据段分配标识,以区分不同的数据段。
在一种可能的实施方式中,发送端和接收端各自维护一个数据段序列号,用于区分同一个数据帧内的不同数据段。发送端在加密每个数据帧中第一个数据段前将数据段序列号重置为初始值,该初始值为固定值,比如图3所示的0,或者其它值,本发明对此不做限制。然后发送端每加密完一个数据段,就将数据段序列号的值按照预定规则更新一次,比如加1或加上其他任何正数。相应的,接收端在解密每个数据帧中的第一个数据段时将其维护的数据段序列号重置为与发送端相同的初始值,然后每解密完一个数据段,就将接收端的数据段序列号的值按照与发送端同样的预定规则更新一次。在一个实施例中,当上述初始值为0,且预定规则为递增1时:发送端加密数据帧内第一个数据段时,发送端维护的数据段序列号的值为0,并且第一个数据帧段加密完成后,发送端维护的数据段序列号递增为1,以此类推。当该数据帧所有的数据段都加密后,发送端又将数据段序列号重置为初始值。相应地,接收端解密该数据帧内的第一个数据段时,接收端维护的数据段序列号的值也为0,并且第一个数据段解密完成后,接收端维护的数据段序列号也基于相同的规则递增为1,以此类推。当该数据帧所有的数据段都解密后,接收端又将数据段序列号重置为初始值。
图4以一个数据段的加密和发送为例,呈现了本申请实施例提供的安全传输数据方法的主要流程,下面结合图4详细介绍本申请实施例提供的安全传输数据方法。
4a.发送端100生成或更新帧序列号。关于帧序列号的定义可以参照上面的实施例。
在一种可能的实施方式中,发送端100发送一个新的数据帧之前,生成一个新的帧序列号,新的帧序列号可以指示将要发送的新的数据帧;在另一种可能的实施方式中,发送端100发送一个新的数据帧之前,更新帧序列号,更新的帧序列号指示将要发送的新的数据帧。
4b.发送端100发送帧序列号到接收端200,以实现帧序列号在发送端100和接收端200的同步。在一种可能的实施方式中,发送端100不是直接将帧序列号发送到接收端200,而是先发送到服务器300,再由服务器300发送到接收端200。
在一种可能的实现方式中,发送端100将帧序列号封装到加密信息头里进行发送。例如,在传输一个数据帧之前,发送端100生成加密信息头,加密信息头里面包括了可以指示该数据帧的帧序列号。
图5显示了加密信息头的一个示意性结构。如图5所示,在一个实施例中,加密信息头可以包括如下字段:
version字段,固定长度为6位(6bits),描述信息头的版本号。在一种可能的实施方式中,version字段描述的信息头的版本号可以与所采用的加解密标准版本号保持一致。
encrypted字段,固定长度为2位(2bits),描述加密所使用的密钥格式。在一种可能的实施方式中,00表示使用奇密钥,01表示偶密钥,10表示不加密,11作为保留字段。
FN(frame number)字段,长度为8位(8bits)或8位的的整数倍,最小为8位,最大为128位,用于描述帧序列号。
可选地,加密信息头还可以包括DN(data number)字段,长度为8位(8bits)的整数倍,最小为8位,最大为120位,用于描述数据段序列号。
在一种可能的实施方式中,只有FN字段是加密信息头必须包含的字段,其余字段都是可选字段。
4aa.接收端200接收从发送端100发送过来的帧序列号。
4c.发送端100利用帧序列号和数据段序列号生成初始化向量(initial vector,IV),初始化向量在发送端100和接收端200的同步是数据加密和正确解密的关键。
下面结合图7详细介绍如何生成初始化向量。在一种可能的实施方式中,初始化向量由三部分组成:帧序列号、数据段序列号和一个随机数。首先,拼接帧序列号和数据段序列号可以得到一个计数器(counter,CTR),在数据传输过程中,发送端100和接收端200同步密钥流的核心就是同步计数器。然后,拼接所述计数器和随机数,以得到初始化向量。拼接两个字符串是指将两个字符串首尾相接,共同组成一个字符串,在拼接过程中不改变原来两个字符串内部的字符和顺序。
在一种可能的实施方式中,用于生成初始化向量的随机数是由发送端和接收端协商得到的(具体过程在图6相关实施例中介绍)。例如,用于生成初始化向量的随机数由发送端100生成,然后,发送端100在和接收端200协商会话密钥和随机数的过程中,将所述随机数发送到接收端200,双方共同确认用于生成初始化向量的随机数。在另一种可能的实施方式中,所述随机数由服务器300生成并发送到发送端100和接收端200。
在一种可能的实施方式中,所述数据段序列号在发送端100和接收端200各自生成或设置,但双方的数据段序列号按照相同的预定规则确定(具体示例已在图3相关的实施例中说明)。
在另一种可能的实施方式中,所述数据段序列号由发送端100按照预定规则得到(具体规则可以参照图3相关实施例的描述),然后将所述数据段序列号与帧序列号一起发送。例如,将所述数据段序列号与帧序列号封装在同一个加密信息头中,发送到接收端200,接收端200解析加密信息头,可以同时得到帧序列号和数据段序列号;在这种情况下,不再是每一帧发送一次加密信息头,而是伴随每一个密文(即,每一个加密的数据段)发送一次加密信息头。这种方式能够在出现解密错误时,更快地恢复正确解密,即在下一个数据段就立即恢复,进一步提升了数据传输时的可靠性和容错性。
在另一种可能的实现方式中,发送端100既发送帧序列号,也发送数据段序列号,但是帧序列号和数据段序列号分开发送。具体地,每发送一个数据帧,发送一次帧序列号,发送所述数据帧内的每一个数据段时,都发送一次数据段序列号。每发送一个数据段的密文,所述数据段序列号按照预定规则更新,然后发送更新后的数据段序列号。即,发送端100发送一个数据帧,需要发送一次帧序列号和发送多次数据段序列号。这种方式能够在出现解密错误时,更快地恢复正确解密,即在下一个数据段就立即恢复,进一步提升了数据传输时的可靠性和容错性,且额外发送帧序列号和数据段序列号的代价较小。
4d.发送端100利用在步骤4c所生成的初始化向量加密明文以得到密文,发送端100以数据段为最小单元进行加密,所述明文表示尚未加密的一个数据段,所述密文表示经过加密的一个数据段。
图8呈现了利用初始化向量加密明文(即,数据段)的过程,加密过程可以分为两步,首先是利用初始化向量和会话密钥得到密钥流,然后再用密钥流去加密明文以得到密文。会话密钥可以是由发送端100和接收端200协商得到的,具体的协商方法请参见图6相关的实施例。
801:发送端100将初始化向量和会话密钥输入AES模块,以得到密钥流。所述AES模块为高级加密标准(advanced encryption standard),其加密的是分组大小为128位的数据段,是一种常用的加密算法。在一种可能的实施方式中,AES模块也可以对分组大小为192位或256位的数据段进行加密。
802:发送端100将步骤801中生成的密钥流和待加密的数据段(即,明文)进行异或操作,以得到加密后的数据段(即,密文)。所述异或操作是指将密钥流和明文进行逐位的异或运算,若两个值不同,则异或结果为1;若两个值相同,则异或结果为0。
4e.发送端100将4d步骤加密得到的密文发送到接收端200。在一种可能的实现方式中,发送端100将密文直接发送到接收端200。在另一种可能的实施方式中,发送端100不是直接将密文发送到接收端200,而是先发送到服务器300,再由服务器300发送到接收端200。
4bb.接收端200接收密文,接收端接收到的密文可以是由发送端100发送的,也可以是从服务器300发送的。
4cc.接收端200利用帧序列号和数据段序列号生成初始化向量,在已知帧序列号、数据段序列号和随机数的情况下,接收端200按照与发送端100相同的方法(见步骤4c)生成初始化向量,此处不再赘述。
4dd.接收端200利用初始化向量解密密文以得到明文。图9为接收端200利用初始化向量和会话密钥解密密文以得到明文的示意性流程图,步骤901与图8中步骤801相同,此处不再赘述。步骤902与图8中步骤802的操作是一样的,但输入的内容和执行设备不一样,步骤802是发送端100的加密模块对输入的明文进行加密以得到密文;步骤902则是由接收端200的解密模块完成,对输入的密文进行解密以得到明文。
4f.发送端100按照预定规则更新数据段序列号,所述预定规则参见下文图10相关实施例的介绍。
发送端100在完成步骤4f以后,若当前数据帧内的所有数据段尚未加密完,则发送端100返回步骤4c,以继续执行下一个数据段的加密和发送;若当前数据帧内的所有数据段已经加密完,则发送端100返回步骤4a,以继续执行下一个数据帧内数据段的加密和发送。
在一种可能的实现方式中,一个数据帧的长度是固定的,而一个数据段的长度也是固定的,则一个数据帧所包含的数据段的数量是固定的,当数据段序列号达到一个阈值以后,就将数据段序列号重置为上述初始值,所述阈值与数据帧所包含的数据段的数量相关。例如,当数据段序列号的初始值为0,数据段序列号的更新规则为每发送一个数据段的密文就递增1,那么上述阈值就等于数据帧所包含的数据段的数量。
4ee.接收端200按照预定规则更新数据段序列号,所述预定规则参见下文图10相关实施例的介绍。
应理解,图4中所有步骤,除了发送端发送帧序列号/密文的步骤应该在接收端接收帧序列号/密文的步骤之前执行,本申请不限制其余发送端的步骤和接收端的步骤分别执行的先后顺序,各个步骤执行的先后顺序应以其内在逻辑来确定。
下面结合图6介绍发送端100和接收端200协商会话密钥和随机数的过程。
301:发送端100生成用于加密数据内容的会话密钥和一个随机数,在一种可能的实施方式中,随机数的长度为64位(64bits),随机数可以是伪随机数。在一个可能的实施例中,会话密钥和随机数可以由服务器300生成之后分别发送到发送端100和接收端200。
302:发送端100发送会话密钥和随机数到接收端200。在一种可能的实施方式中,当发送端100和接收端200不是直接进行通信,而是通过服务器300传输数据时,发送端100可以将会话密钥和随机数发送到服务器300,然后再由服务器300发送到接收端200。
303:发送端100和接收端200确认会话密钥和随机数一致。在一种可能的实施方式中,若会话密钥和随机数由服务器300生成之后再分别发送到发送端100和接收端200,则发送端100和接收端200无需再确认会话密钥和随机数一致。
在一种可能的实施方式中,当发送端100短暂地中断加密数据的时候,如果发送端100和接收端200之间的通信连接没有断开,那么双方协商的会话密钥就依然有效。一旦发送端100和接收端200之间的通信连接断开,那么发送端100和接收端200之间协商的会话密钥自动失效,若双方需要继续安全通信,则需要重新认证身份,重新建立安全连接之后再协商新的会话密钥和随机数。
在一种可能的实施方式中,一旦接收端200出现解密错误(可能由密文丢失或帧序列号丢失等原因引起)的情况,接收端200就丢弃接下来接收到的密文,直到接收到另一个帧序列号。不管是由于密文丢失还是由于帧序列号丢失导致的计数器错位,无法正确解密,一旦接收到新的帧序列号,接收端200和发送端100双方的帧序列号以及数据段序列号就会重新同步,进而生成正确同步的计数器和密钥流。
由于数据段序列号和/或帧序列号是按照预定规则更新的,一旦出现解密错误的情况,意味着这一个数据帧内剩余所有数据段的密文都无法对应到正确的数据段序列号和/或帧序列号,即可以判定这一个数据帧内剩余所有数据段的密文都无法正确解密,在这种情况下,直接丢弃之后接收到的其他密文,避免了接收端去解密明知无法正确解密的密文,可以节约接收端的计算资源。而在接收到另一个帧序列号以后,意味着发送端已加密该数据帧内的所有数据段,故两端的帧序列号和数据段序列号将重新同步,接收端就恢复正常的解密操作,解密该另一个帧序列号对应的数据帧。
本申请提供的方法通过传输帧序列号,以及发送端和接收端在加解密同一个数据帧时按照同样的规则初始化和更新数据段序列号,使得即使数据传输过程中间出现密文或帧序列号丢失的情况,也能够将解密错误限制在当前帧,一旦收到新的帧序列号,就可以继续正确解密,一定程度上解决了现有技术中传输不可靠、出现解密错误无法及时恢复正确解密的问题。
上面结合图4详细介绍了发送端100加密和发送一个数据段以及接收端200接收和解密所述数据段的过程,下面结合图10描述发送端和接收端如何确定数据段序列号并保持数据段序列号同步的一个实施例。
1001:首先判断数据段X是否为所属数据帧的第一个被加密的数据段,加密一个数据帧中其他数据段所使用的数据段序列号都要基于所述数据帧中第一个被加密的数据段的数据段序列号来确定。
1002:若数据段X是所属数据帧所包括的多个数据段中第一个被加密的数据段,则用于加密数据段X的数据段序列号置为初始值。该初始值可以是在加密完上一个数据帧的最后一个数据段后设置的,也可以是在加密数据段X之前的某个时间设置的。比如,可以将用于加密数据段X的数据段序列号置为0或其他任何不超过数据段序列号的长度所能表示的范围的非负数。
1003:若数据段X不是所属数据帧包括的多个数据段中被加密的第一个数据段,则用于加密数据段X的数据段序列号可以基于加密前一个数据段所使用的数据段序列号按照预定规则更新得到,比如用加密其前一个数据段所使用的数据段序列号加1或加上其他任何正数。
在一种可能的实施方式中,发送端100和接收端200都采用上述图10相关实施例所描述的方法获取数据段序列号,从而实现数据段序列号在双方的同步。
在本申请提供的方法中,数据段序列号在所属的数据帧范围内按照预定规则进行更新。例如,发送端每加密该数据帧内的一个数据段,就将数据段序列号按照预定规则更新一次。相应的,接收端每解密该数据帧内的一个数据段的密文,也将其维护的数据段序列号按照相同的规则更新一次。一旦发送端100加密完该数据帧内的所有数据段,或者发送了新的帧序列号(即,进入另一个数据帧的加密过程),则将数据段序列号重新设置为初始值,即发送端维护的数据段序列号采用帧内计数的方式。一旦接收端200解密完该数据帧内的所有数据段,或者接收到了新的帧序列号(即,进入另一个数据帧的解密过程),则将数据段序列号重新设置为初始值,即接收端维护的数据段序列号也采用帧内计数的方式。所以,如果在传输过程中,出现密文丢失,导致接收端的数据段序列号无法与发送端的数据段序列号同步(即,针对同一数据段分别使用不同的数据段序列号加密和解密),从而无法正确解密的情况,这个问题也会在接收到新的帧序列号之后立即解决。因为接收端200一旦接收到新的帧序列号,就会将数据段序列号的值重置为初始值并重新开始计数,新的帧序列号结合新的数据段序列号可以得到新的而且准确同步的计数器,从而恢复数据的正确解密过程。
除了将解密错误限制在一个数据帧的范围内,在下一个数据帧快速恢复正确解密以外,本申请提供的方法还不需要通过断开连接重新确认身份来实现计数器的重新正确同步,减小了通信开销,而且节约了恢复正确解密的时间,用户甚至无法感知到出现了解密错误,有效提升了用户体验。
在另一种可能的实现方式中,发送端100按照上述图10相关实施例所描述的方法确定数据段序列号,以用于加密数据段。发送端100还将数据段序列号发送到接收端200,从而实现数据段序列号的同步。在一个实施例中,加密信息头同时包括帧序列号和数据段序列号时,数据段序列号可以仍然采用发送端和接收端相同的帧内计数规则,也可以不再采用帧内计数规则,只需要发送端和接收端维护的数据段序列号具有相同的初始值且采用相同的规则计数即可。
下面结合图11描述本申请提供的发送端100获取帧序列号的一种可能方法。
1101:发送端100首先判断是否已经存在加密信息头。在一种可能的实施方式中,若待加密的数据帧是传输的数据内容中的第一帧,则发送端100不存在加密信息头,否则,发送端100已经存在加密信息头。
1102:若发送端100不存在加密信息头,则生成一个指定长度的随机数作为帧序列号的初始值。随机数的长度由加密信息头中FN字段的长度决定。在一个可能的实施例中,生成的所述随机数可以是伪随机数。
1103:当发送端100不存在加密信息头时,如1102步骤所述的生成随机数作为帧序列号的初始值之后,发送端100生成一个加密信息头,加密信息头的结构已在图5相关实施例中描述,此处不再赘述。
1104:若发送端100已经存在加密信息头,在一种可能的实施方式中,在加密新的数据帧时,可以不用生成新的加密信息头,只需要更新现有加密信息头中的帧序列号,比如,如图11所示的,将加密信息头中包括的帧序列号的值加1,或者,将帧序列号的值加上任何其他正数。
在另一种可能的实施方式中,即使发送端100已经存在加密信息头,在加密新的数据帧时,也重新生成新的加密信息头,加密信息头中的FN字段随数据帧变化,比如,可以是前一个加密信息头所对应数据帧的帧序列号加1或加上任何其他正数。
本申请实施例提供的安全传输数据方法通过发送帧序列号的方式实现发送端和接收端的帧序列号同步,又通过数据段序列号的帧内计数实现数据段序列号在发送端和接收端的同步。结合发送帧序列号和数据段序列号帧内计数,可以在每一个数据帧发送之前实现发送端和接收端双方的计数器重新同步,从而保证即使出现计数器不同步的情况,也会在发送下一个数据帧时恢复正确的同步,进而实现了即使一帧的内容解密错误,下一帧就恢复正确解密的效果。
基于以上各个实施例提供的安全传输数据的方法,本申请实施例还提供一种电子设备400,包括用于执行上述各个实施例所描述的安全传输数据方法的一个或多个功能单元,这些功能单元可以由软件实现,或者由硬件,比如处理器实现,或者由软件、硬件和/或固件的适当组合实现,比如部分功能由处理器执行计算机程序实现,部分功能由有线通信模块(诸如HDMI接口等)来实现。
在一个实施例中,如图12所示,电子设备400包括处理模块401和通信模块402。处理模块用于数据帧的加密,其具体可以为图2所示实施例中的处理器101,也可以为用于实现加密和/或解密功能的处理电路。处理电路可以被实现为一个或多个处理器,一个或多个控制器和/或可用于执行程序的其它结构。处理电路具体可以包括通用处理器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑组件中的至少一种。通用处理器可以包括微处理器,以及任何常规的处理器,控制器,微控制器,或状态机。处理电路也可以实现为计算组件,例如DSP和微处理器的组合。通信模块402用于连接电子设备400与其他电子设备或网络,其具体实现可参加图2的通信模块103相关实施例的描述,此处不再赘述;从功能上划分,通信模块402可以包括发送模块403和/或接收模块404,发送模块402用于发送数据到其他电子设备或网络,接收模块403用于接收从其他电子设备或网络发送到电子设备400的数据。
在一个实施例中,通信模块402可以为任何用于与其他设备或通信网络进行有线和/或无线通信的收发器等类似的装置,例如,以太网接口、USB接口、DVI接口、HDMI接口、视频VGA接口、GVIF接口、UDI接口等。在另一个实施例中,通信模块402可以包括图2所示实施例的有线通信模块1031和无线通信模块1032中的至少一个。
处理模块401至少包括认证模块406。认证模块406用于认证与电子设备400通信的其他电子设备的身份,以及协商会话密钥,可以通过调用通信模块402来实现。
在一个实施例中,电子设备400为数据发送端。在发送加密数据之前,电子设备400可以通过协议验证接收端是否获得接收加密数据内容的许可,在确定接收端的合法性之后,电子设备400才会将加密数据传输给接收端。此外,认证模块406也可以识别接收端是否被攻击,吊销或更新接收端的身份认证,并阻止加密内容的传输。电子设备400验证过接收端的合法身份之后,可以通过认证模块406协商会话密钥,所协商的会话密钥用于加密将要进行传输的数据内容(具体协商过程参见图6相关实施例部分的介绍)。作为数据发送端的电子设备400,其处理模块401还包括加密模块407,用于实现数据的加密,经过加密的数据将通过发送模块403发送(数据的加密方法参见图7和图8相关实施例部分的描述)。加密模块407采用对称密钥加密传输的方式,即在电子设备400和接收端使用相同的密钥流,为了保证加密数据在接收端能够正确解密,密钥流的同步极为重要。本发明提供的技术方案能够有效保证密钥流的同步,进而保证数据正确解密。
加密模块407用于执行、处理、准备或提供各种加密操作。加密模块407可以由图2所示的处理器101实现;或者,加密模块407可以用存储在图2所示的存储器102中并由图2所示的处理器101执行的指令来实现;或者,加密模块407可以实现为单独的芯片,也可以与其他芯片或电路在一起形成系统级芯片或集成电路。这些芯片或集成电路可应用于所有实现有线和/或无线通信功能的电子设备,包括:手机、笔记本电脑、台式电脑、平板电脑、数字会议系统、可穿戴设备、车载设备等。
在一个实施例中,电子设备400为数据接收端。此时,认证模块406用于电子设备400与发送端互相认证身份和协商会话密钥。
作为数据接收端的电子设备400,其处理模块401还包括解密模块408,用于解密电子设备400的接收模块404所接收到的数据(数据的解密方法参见图7和图9相关实施例部分的描述)。
在一个实施例中,电子设备400既可以是数据发送端,也可以是数据接收端,此时,电子设备400的处理模块401同时包括加密模块407和解密模块408。
应理解,如在本文的任何实施例中所使用的那样,术语“模块”可以指用于执行上述操作中的任何一个的软件、固件和/或电路。软件可能体现为软件包、代码、说明指令集和/或记录在非瞬时性、计算机可读存储介质上的数据。固件可以体现为硬编码在存储器(例如,非易失性)设备中的代码、指令或指令集和/或数据。如本文中任何实施例中所使用的电路,例如可单独或以任何组合包括硬连线电路、可编程电路,例如包括一个或多个单独指令处理核心的计算机处理器、状态机电路和/或存储由可编程电路执行的指令的固件。这些模块可以集体地或单独地实施为形成较大系统一部分的电路,例如集成电路(IC)、系统片上(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能手机等。
本申请实施例还提供一种电路系统500,如图13所示,该电路系统500包括:处理电路502,以及与其连接的通信接口504和存储介质506。
处理电路502用于处理数据,控制数据访问和存储,发出命令以及控制其它组件执行操作,以实现或控制其他组件实现本文实施例中所提供的安全传输数据的方法。处理电路502可以被实现为一个或多个处理器,一个或多个控制器和/或可用于执行程序的其它结构。处理电路502具体可以包括通用处理器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑组件中的至少一种。通用处理器可以包括微处理器,以及任何常规的处理器,控制器,微控制器,或状态机。处理电路502也可以实现为计算组件,例如DSP和微处理器的组合。
存储介质506可以包括非瞬时计算机可读存储介质(non-transitory computer-readable storage medium),如磁存储设备(例如,硬盘,软盘,磁条),光存储介质(例如,数字多功能盘(DVD)),智能卡,闪存设备,随机存取存储器(RAM),只读存储器(ROM),可编程ROM(PROM),可擦除PROM(EPROM),寄存器,以及它们的任意组合。存储介质506可以耦合到处理电路502以使得处理电路502可读取信息和将信息写入到存储介质506。具体地,存储介质506可以集成到处理电路502,或者存储介质506和处理电路502可以是分开的。
通信接口504可包括电路和/或程序以实现电路系统500与一个或多个其他电子设备或网络设备(例如,显示屏、投影仪、路由器、交换机、接入点等)之间的双向通信,或者,通信接口504也可以用于实现电路系统500与所属设备内的其他组件之间的双向通信。通信接口504包括至少一个接收电路和/或至少一个发射电路。在一个实施例中,通信接口504可以由有线和/或无线模块来实现。
存储介质506中存储有各种数据,例如系统数据、各种应用程序运行过程中的数据、待加密/解密的数据等。在一个实施例中,存储介质506中存储有计算机程序,处理电路502被适配为执行存储在存储介质506中的计算机程序,以实现上述图4,以及图6至11所示的任一实施例中的部分或全部步骤。
图14示出了可用于实现根据本申请实施例的安全传输数据的服务器300的示例性硬件架构的结构图。如图14所示,服务器300可以包括输入设备301、输入接口302、处理器303、存储器304、输出接口305、以及输出设备306。其中,输入接口302、处理器303、存储器304、以及输出接口305通过总线310相互连接,输入设备301和输出设备306分别通过输入接口302和输出接口305与总线310连接,进而与服务器300的其他组件连接。存储器304存储有可执行程序,处理器303包括一个或多个处理单元,比如多个处理器核,处理器303在执行计算机可执行指令时可以实现上述实施例所描述的安全传输数据方法或系统的功能。
需要说明的是,本申请实施例所使用的术语“可执行程序”,“计算机程序”,“程序”应被广泛地解释为包括但不限于:指令、指令集、代码、代码段、子程序、软件模块、应用、软件包、线程、进程、函数、固件、中间件等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等各种可以存储可执行程序的介质。
此外,应理解,还有多种实现本发明的方法,例如包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分步骤的计算机程序产品,具体可以是独立或可下载软件对象、控件、工具箱、驱动程序代码、操作系统、适当的API等形式。
由此,本申请描述的各种实现都可以具有完全采用硬件、部分采用硬件并且部分采用软件、以及完全采用软件的方面。

Claims (47)

1.一种数据传输方法,其特征在于,包括:
发送帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个未加密数据段;
发送所述数据段X的密文,所述数据段X的密文是基于所述帧序列号和数据段序列号加密所述数据段X得到的,所述数据段序列号具有初始值,加密所述数据段X后所述数据段序列号按照预定规则更新,当所述数据帧内的所有数据段被加密后,所述数据段序列号被重置为所述初始值。
2.根据权利要求1所述的方法,其特征在于,所述数据段X是所述多个数据段中首个被加密的数据段,所述数据段序列号的初始值被用于加密所述数据段X。
3.根据权利要求1所述的方法,其特征在于,所述数据段X不是所述多个数据段中首个被加密的数据段,所述数据段序列号的更新值被用于加密所述数据段X,所述数据段序列号的更新值是基于所述初始值按照所述预定规则更新得到的。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
根据所述帧序列号和所述数据段序列号,生成初始化向量;
基于所述初始化向量,加密所述数据段X以得到所述数据段X的密文。
5.根据权利要求4所述的方法,其特征在于,所述根据所述帧序列号和所述数据段序列号,生成所述初始化向量,包括:
拼接所述帧序列号和所述数据段序列号,以得到计数器;
拼接所述计数器和预先生成的随机数,以得到所述初始化向量。
6.根据权利要求4或5所述的方法,其特征在于,所述基于所述初始化向量,加密所述数据段X以得到所述数据段X的密文,包括:
将所述初始化向量和会话密钥输入高级加密标准AES单元,以得到密钥流;
以及,将所述密钥流与所述数据段X进行异或操作,以得到所述数据段X的密文。
7.根据权利要求1至6任一项所述的方法,其特征在于,当所述数据段序列号的值等于第一阈值时,表示所述数据帧内的所有数据段被加密。
8.一种数据传输方法,其特征在于,包括:
接收帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个数据段;
接收所述数据段X的密文;
基于所述帧序列号和数据段序列号解密所述数据段X的密文,以得到所述数据段X的明文,所述数据段序列号具有初始值,解密所述数据段X的密文后所述数据段序列号按照预定规则更新,当所述数据帧内的所有数据段的密文被解密后,所述数据段序列号被重置为所述初始值。
9.根据权利要求8所述的方法,其特征在于,所述数据段X的密文是所述多个数据段的密文中首个被解密的密文,所述数据段序列号的初始值被用于解密所述数据段X的密文。
10.根据权利要求8所述的方法,其特征在于,所述数据段X的密文不是所述多个数据段的密文中首个被解密的密文,所述数据段序列号的更新值被用于解密所述数据段X的密文,所述数据段序列号的更新值是基于所述初始值按照预定规则更新得到的。
11.根据权利要求8至10任一项所述的方法,其特征在于,所述基于所述帧序列号和数据段序列号解密所述数据段X的密文,包括:
根据所述帧序列号和所述数据段序列号,生成初始化向量;
以及,基于所述初始化向量,解密所述数据段X的密文。
12.根据权利要求11所述的方法,其特征在于,所述根据所述帧序列号和所述数据段序列号,生成初始化向量,包括:
拼接所述帧序列号和所述数据段序列号,以得到计数器;
拼接所述计数器和随机数,以得到所述初始化向量。
13.根据权利要求11或12所述的方法,所述基于所述初始化向量,解密所述数据段X的密文包括:
将所述初始化向量和会话密钥输入高级加密标准AES单元,以得到密钥流;
以及,将所述密钥流与所述数据段X的密文进行异或操作,以得到所述数据段X的明文。
14.根据权利要求8-13任一权利要求所述的方法,其特征在于,当接收到另一个帧序列号时,表示所述数据帧内的所有数据段的密文被解密。
15.一种数据传输方法,其特征在于,包括:
发送端向接收端发送帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个数据段;
所述发送端向所述接收端发送所述数据段X的密文,所述数据段X的密文是基于所述帧序列号和所述发送端的数据段序列号加密所述数据段X得到的,所述发送端的数据段序列号具有初始值,加密所述数据段X后所述发送端的数据段序列号按照预定规则更新,当所述数据帧的所有数据段被加密后,所述发送端的数据段序列号被重置为所述初始值;
所述接收端接收所述帧序列号和所述数据段X的密文;
以及,所述接收端基于所述帧序列号和所述接收端的数据段序列号,解密所述数据段X的密文,以得到所述数据段X的明文;所述接收端的数据段序列号具有与所述发送端的数据段序列号相同的初始值,解密所述数据段X的密文后所述接收端的数据段序列号按照所述预定规则更新,当所述数据帧内的所有数据段的密文被解密后,所述接收端的数据段序列号被重置为所述初始值。
16.根据权利要求15所述的方法,其特征在于,所述数据段X是所述多个数据段中首个被加密的数据段,所述发送端的数据段序列号的初始值被用于加密所述数据段X;加密所述数据段X后所述发送端的数据段序列号由所述初始值按照所述预定规则更新,更新后的数据段序列号被用于加密下一数据段。
17.根据权利要求16所述的方法,其特征在于,所述接收端在解密所述数据段X的密文之后,所述接收端的数据段序列号由所述初始值按照所述预定规则更新,更新后的所述接收端的数据段序列号被用于解密所述下一数据段的密文。
18.根据权利要求15所述的方法,其特征在于,所述数据段X是所述多个数据段中最后一个被加密的数据段,所述方法还包括:
所述发送端在加密所述数据段X之后,将所述发送端的数据段序列号重置为所述初始值。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:所述接收端在解密所述数据段X的密文之后,将所述接收端的数据段序列号重置为所述初始值。
20.根据权利要求15至17任一项所述的方法,其特征在于,当所述接收端接收到另一个帧序列号时,表示所述数据帧内的所有数据段的密文被解密。
21.根据权利要求15至20任一项所述的方法,其特征在于,所述预定规则被同时配置到所述发送端和所述接收端。
22.一种数据传输装置,其特征在于,包括:
处理模块,用于基于帧序列号和数据段序列号加密数据段X,以得到所述数据段X的密文;
所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个数据段;
通信模块,用于发送所述帧序列号,以及发送所述数据段X的密文;
所述数据段序列号具有初始值,加密所述数据段X后所述数据段序列号按照预定规则更新,当所述数据帧内的所有数据段被加密后,所述数据段序列号被重置为所述初始值。
23.根据权利要求22所述的装置,其特征在于,所述数据段X是所述多个数据段中首个被加密的数据段,所述数据段序列号的初始值被用于加密所述数据段X。
24.根据权利要求22所述的装置,其特征在于,所述数据段X不是所述多个数据段中首个被加密的数据段,所述数据段序列号的更新值被用于加密所述数据段X,所述数据段序列号的更新值是基于所述初始值按照所述预定规则更新得到的。
25.根据权利要求22至24任一项所述的装置,其特征在于,所述处理模块还用于:根据所述帧序列号和所述数据段序列号,生成初始化向量;以及,基于所述初始化向量,加密所述数据段X以得到所述数据段X的密文。
26.根据权利要求25所述的装置,其特征在于,所述处理模块具体用于:拼接所述帧序列号和所述数据段序列号,以得到计数器;拼接所述计数器和预先生成的随机数,以得到所述初始化向量。
27.根据权利要求25或26所述的装置,其特征在于,所述处理模块具体用于:将所述初始化向量和会话密钥输入高级加密标准AES单元,以得到密钥流;以及,将所述密钥流与所述数据段X进行异或操作,以得到所述数据段X的密文。
28.根据权利要求22至27任一项所述的装置,其特征在于,当所述数据段序列号的值等于第一阈值时,表示所述数据帧内的所有数据段被加密。
29.一种数据传输装置,其特征在于,包括:
通信模块,用于接收帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个数据段;
所述通信模块,还用于接收所述数据段X的密文;
处理模块,用于基于所述帧序列号和数据段序列号,解密所述数据段X的密文,以得到解密的所述数据段X的明文;所述数据段序列号具有初始值,解密所述数据段X的密文后所述数据段序列号按照预定规则更新,当所述数据帧内的所有数据段的密文被解密后,所述数据段序列号被重置为所述初始值。
30.根据权利要求29所述的装置,其特征在于,所述数据段X的密文是所述多个数据段的密文中首个被解密的密文,所述数据段序列号的初始值被用于解密所述数据段X的密文。
31.根据权利要求29所述的装置,其特征在于,所述数据段X的密文不是所述多个数据段的密文中首个被解密的密文,所述数据段序列号的更新值被用于解密所述数据段X的密文,所述数据段序列号的更新值是基于所述初始值按照预定规则更新得到的。
32.根据权利要求29至31任一项所述的装置,其特征在于,所述处理模块具体用于:根据所述帧序列号和所述数据段序列号,生成初始化向量;以及,基于所述初始化向量,解密所述数据段X的密文。
33.根据权利要求32所述的装置,其特征在于,所述处理模块具体用于:拼接所述帧序列号和所述数据段序列号,以得到计数器;拼接所述计数器和预先生成的随机数,以得到所述初始化向量。
34.根据权利要求32或33所述的装置,其特征在于,所述处理模块具体用于:将所述初始化向量和会话密钥输入高级加密标准AES单元,以得到密钥流;以及,将所述密钥流与所述数据段X进行异或操作,以得到所述数据段X的密文。
35.根据权利要求29至34任一项所述的装置,其特征在于,当接收到另一个帧序列号时,表示所述数据帧内的所有数据段的密文被解密。
36.一种数据传输系统,其特征在于,包括:
发送装置、接收装置;
所述发送装置用于,向所述接收装置发送帧序列号,所述帧序列号指示一个数据帧,所述数据帧包括数据段X在内的多个数据段;
所述发送装置还用于,向所述接收装置发送所述数据段X的密文,所述数据段X的密文是基于所述帧序列号和所述发送装置的数据段序列号加密所述数据段X得到的,所述发送装置的数据段序列号具有初始值,加密所述数据段X后所述发送装置的数据段序列号按照预定规则更新,当所述数据帧的所有数据段被加密后,所述发送装置的数据段序列号被重置为所述初始值;
所述接收装置用于,接收所述帧序列号和所述数据段X的密文;以及基于所述帧序列号和所述接收装置的数据段序列号,解密所述数据段X的密文,以得到所述数据段X的明文;所述接收装置的数据段序列号具有与所述发送装置的数据段序列号相同的初始值,解密所述数据段X的密文后所述接收装置的数据段序列号按照所述预定规则更新,当所述数据帧内的所有数据段的密文被解密后,所述接收装置的数据段序列号被重置为所述初始值。
37.根据权利要求36所述的系统,其特征在于,所述数据段X是所述多个数据段中首个被加密的数据段,所述发送装置的数据段序列号的初始值被用于加密所述数据段X;加密所述数据段X后所述发送装置的数据段序列号由所述初始值按照所述预定规则更新,更新后的所述发送装置的数据段序列号被用于加密下一数据段。
38.根据权利要求37所述的系统,其特征在于,所述接收装置在解密所述数据段X的密文之后,所述接收装置的数据段序列号由所述初始值按照所述预定规则更新,更新后的所述接收装置的数据段序列号被用于解密所述下一数据段的密文。
39.根据权利要求36所述的系统,其特征在于,所述数据段X是所述多个数据段中最后一个被加密的数据段,所述发送装置还用于:在加密所述数据段X之后,将所述发送装置的数据段序列号重置为所述初始值。
40.根据权利要求39所述的系统,其特征在于,所述接收装置还用于:在解密所述数据段X的密文之后,将所述接收装置的数据段序列号重置为所述初始值。
41.一种数据传输系统,其特征在于,包括:
权利要求22至28任一项所述的数据传输装置,以及权利要求29至35任一项所述的数据传输装置。
42.一种计算机装置,包括存储器,用于存储一个或多个数据帧;以及权利要求22至28任一项所述的数据传输装置,用于加密所述存储器中存储的数据帧。
43.一种计算机装置,包括存储器,用于存储一个或多个密文;以及权利要求29至35任一项所述的数据传输装置,用于解密所述密文。
44.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
45.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求8至14中任一项所述方法的步骤。
46.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
47.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求8至14中任一项所述方法的步骤。
CN202011566162.3A 2020-12-25 2020-12-25 安全传输数据的方法、装置及系统 Active CN114697051B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011566162.3A CN114697051B (zh) 2020-12-25 2020-12-25 安全传输数据的方法、装置及系统
PCT/CN2021/140625 WO2022135498A1 (zh) 2020-12-25 2021-12-22 安全传输数据的方法、装置及系统
EP21909493.5A EP4258628A4 (en) 2020-12-25 2021-12-22 METHOD, DEVICE AND SYSTEM FOR SECURE DATA TRANSMISSION

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011566162.3A CN114697051B (zh) 2020-12-25 2020-12-25 安全传输数据的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN114697051A true CN114697051A (zh) 2022-07-01
CN114697051B CN114697051B (zh) 2024-01-09

Family

ID=82130406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011566162.3A Active CN114697051B (zh) 2020-12-25 2020-12-25 安全传输数据的方法、装置及系统

Country Status (3)

Country Link
EP (1) EP4258628A4 (zh)
CN (1) CN114697051B (zh)
WO (1) WO2022135498A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117544949B (zh) * 2024-01-10 2024-03-22 中国电力科学研究院有限公司 数据加密方法、数据解密方法、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101199158A (zh) * 2005-04-26 2008-06-11 高通股份有限公司 在无线通信系统中对包进行加密和重新排序
KR20080099071A (ko) * 2007-05-08 2008-11-12 삼성전자주식회사 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
CN102006593A (zh) * 2010-10-29 2011-04-06 公安部第一研究所 一种用于低速窄带无线数字通信的端到端语音加密方法
CN102144370A (zh) * 2008-09-04 2011-08-03 富士通株式会社 发送装置、接收装置、发送方法及接收方法
CN103945371A (zh) * 2013-01-17 2014-07-23 中国普天信息产业股份有限公司 一种端到端加密同步的方法
CN107113171A (zh) * 2015-12-10 2017-08-29 深圳市大疆创新科技有限公司 安全通信系统、方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277548B2 (en) * 2002-10-23 2007-10-02 Ndosa Technologies, Inc. Cryptographic method and computer program product for use in wireless local area networks
CN101388829B (zh) * 2007-09-10 2011-03-30 大唐移动通信设备有限公司 重定位的信令及数据加密的方法、系统及无线网络控制器
CN102348203B (zh) * 2010-07-29 2014-05-14 普天信息技术研究院有限公司 加密同步实现方法
US9736684B2 (en) * 2011-06-01 2017-08-15 Qualcomm Incorporated Mechanisms for detection of and recovery from ciphering parameter mismatch on communication networks
CN103248474B (zh) * 2012-02-01 2016-08-10 华为技术有限公司 一种流媒体的加密、解密方法和装置
CN103684787B (zh) * 2013-12-13 2018-01-16 北京大学深圳研究生院 基于网络传输的数据包的加密解密方法及终端
KR102447476B1 (ko) * 2015-08-20 2022-09-27 삼성전자주식회사 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법
EP3641258B1 (en) * 2017-08-03 2021-10-13 Huawei Technologies Co., Ltd. Data transmission method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101199158A (zh) * 2005-04-26 2008-06-11 高通股份有限公司 在无线通信系统中对包进行加密和重新排序
KR20080099071A (ko) * 2007-05-08 2008-11-12 삼성전자주식회사 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
CN102144370A (zh) * 2008-09-04 2011-08-03 富士通株式会社 发送装置、接收装置、发送方法及接收方法
CN102006593A (zh) * 2010-10-29 2011-04-06 公安部第一研究所 一种用于低速窄带无线数字通信的端到端语音加密方法
CN103945371A (zh) * 2013-01-17 2014-07-23 中国普天信息产业股份有限公司 一种端到端加密同步的方法
CN107113171A (zh) * 2015-12-10 2017-08-29 深圳市大疆创新科技有限公司 安全通信系统、方法及装置

Also Published As

Publication number Publication date
WO2022135498A1 (zh) 2022-06-30
CN114697051B (zh) 2024-01-09
EP4258628A4 (en) 2024-06-05
EP4258628A1 (en) 2023-10-11

Similar Documents

Publication Publication Date Title
CN111314274B (zh) 一种车载终端与中心平台双向认证方法及系统
KR101483536B1 (ko) 콘텐츠 보호 포트의 사전 인증 및 인증 유지를 위한 방법, 장치 및 시스템
KR101735682B1 (ko) 데이터 스트림의 부분 암호화를 위한 메커니즘
TWI641259B (zh) 利用點對點認證協定的串流加密之高效益路由
US10541819B2 (en) Forged command filtering system and related command authentication circuit
KR20110003331A (ko) 데이터 스트림의 사전 인증 및 처리를 위한 방법과 장치와 시스템
CN110637299B (zh) 用于流式传输内容的内容类型改变的平滑过渡
KR101837188B1 (ko) 비디오 보호 시스템
WO2019019853A1 (zh) 处理数据的方法、终端设备和网络设备
KR20150052303A (ko) 시스템 온 칩 장치에서 강력하고 안전한 콘텐츠 보호의 개선된 구현
US12074857B2 (en) Partial authentication tag aggregation to support interleaved encryption and authentication operations on multiple data records
WO2016105917A1 (en) Protected media decoding system supporting metadata
KR102095911B1 (ko) 오디오 리턴 데이터 링크를 통한 디지털 컨텐트 보호
WO2022135498A1 (zh) 安全传输数据的方法、装置及系统
EP2696594A1 (en) Secure transmission method and apparatus for transport stream
US10110945B2 (en) Maintaining synchronization of encryption process across devices by sending frame numbers
WO2018226295A1 (en) Avoiding link integrity failures on displayport during hcdp 2.2 by using sink side optimizations
US10382199B2 (en) Keyword to set minimum key strength
JP5361031B2 (ja) 暗号認証処理方法及び装置
WO2024103597A1 (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