CN103684787A - 基于网络传输的数据包的加密解密方法及终端 - Google Patents

基于网络传输的数据包的加密解密方法及终端 Download PDF

Info

Publication number
CN103684787A
CN103684787A CN201310688322.5A CN201310688322A CN103684787A CN 103684787 A CN103684787 A CN 103684787A CN 201310688322 A CN201310688322 A CN 201310688322A CN 103684787 A CN103684787 A CN 103684787A
Authority
CN
China
Prior art keywords
packet
key
password table
key stream
starting point
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
CN201310688322.5A
Other languages
English (en)
Other versions
CN103684787B (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.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
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 Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN201310688322.5A priority Critical patent/CN103684787B/zh
Publication of CN103684787A publication Critical patent/CN103684787A/zh
Application granted granted Critical
Publication of CN103684787B publication Critical patent/CN103684787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种基于网络传输的数据包的加密解密方法及终端。采用基于流密码算法的端到端实时加密方法,通信双方在会话初始化阶段协商会话参数并分别建立密码表。发送方抽取数据包头信息产生密钥流起始点,根据密码表和起始点生成一段密钥流异或加密数据包载荷。接收方根据数据包包头信息判断是否存在网络丢包,当存在丢包时,接收方首先完成密码表同步,然后基于更新后的密码表和起始点生成同步的密钥解密数据包载荷。本申请在不额外增加网络通信流量和在线实时生成密钥流的基础上,实现了在存在丢包的网络条件下具有密钥自同步功能的实时加密技术。

Description

基于网络传输的数据包的加密解密方法及终端
技术领域
本申请涉及安全网络通信领域,具体涉及到一种基于网络传输的数据包的加密解密方法及终端。
背景技术
互联网网络因其简单、廉价和开放性而在通信领域得到了广泛的应用,例如VoIP(Voice over Internet Protocol)便是一种利用互联网传播语音分组的新型通信技术。然而,由于互联网的开放性及自身存在的不安全性,网络传输数据相对于传统的基于电路交换的语音通信等技术具有更多的不安全因素。为了保证语音、视频、图像和/或文字在开放网络中传输时的安全性,最通用的技术便是对数据包进行加密传输。但是,对数据包进行加密额外增加了通信延时,尤其是对于语音通信实时性要求较高的如VoIP来说是个极大的瓶颈。由于流密码加密算法在速度上相比块密码算法要快4~5倍,且不存在块密码算法的位错误扩散缺陷,因此基于流密码的数据加密传输技术相比基于块密码的加密技术具有更大的优势。
对于分组网络,如果传输层协议采用不可靠的用户数据报协议(如UDP协议),将无法保证加密的数据包能全部传输到接收端。当网络中存在丢包时,基于流密码的加密技术若无法实现解密密钥与加密密钥完全同步,则将导致接收端所有收到的数据包无法被解密,从而导致加密数据传输失败。目前已有部分专利技术提出了具有密钥同步功能的数据加密传输技术。
申请号为200710304592.6的中国专利申请公开了一种适于VoIP媒体传输的加解密方法,该方法的主要内容是:通信双方事先准备好密钥表和公钥,发话端选择一个随机数,用随机数对公钥取余并得到余数,按照余数从密钥表中取出密钥对明文加密,发送的数据包括随机数、余数长度的随机数据及密文数据;受话端收到数据后,先获得随机数并对公钥取余,根据余数确定的偏移量得到密文数据后,基于余数从密钥表中取出密钥实现解密。该方法的不足在于:通信双方需要事先建立固定的密钥表,且密钥表应该足够大来保证密钥的随机性,这需要消耗很大的内存资源,尤其对于移动终端设备是不适用的;该方法为了保证加解密双方的密钥同步增加了网络中传输的数据,额外添加了随机数和余数长度的随机数据;另外,该方法难以有效界定随机数与添加的余数长度的随机数据。
申请号为200810300497.3的中国专利申请公开了一种基于流密码加密的安全传输方法,该方法的主要内容是:为了实现加解密密钥的同步,通信双方同时与一个同步信号源相连接,使用与密文数据独立传输的时钟作为同步信号,发送设备与接收设备使用相同的流密码算法产生相同的密钥流;在密文数据中添加一个固定的常数位判断加解密密钥是否同步。该方法的不足在于:简单地将通信双方与一个同步信号源相连实现密钥同步在现实中难以实现,且无法进行大规模的***扩展;添加固定常数位用于判断是否同步带来了新的安全隐患。
申请号为201010171638.3的中国专利申请公开了一种用于网络通信的动态加密和解密方法和设备,该方法的主要内容是:第一网络实体产生密钥并将所述密钥发送给第二网络实体,同时,第一网络实体还将所生成的密钥存储在本地的密钥表中;第一网络实体使用密钥表中的密钥加密数据并将所使用密钥在所述本地密钥表中的索引附加到加密的数据;第二网络实体接收第一网络实体分发的密钥并将其存储在本地的密钥表中,第二网络实体接收加密的数据后,由于数据随附有用于加密的密钥的索引,且该发明假定第一网络实体分发的密密钥都能被第二网络实体接收到,即第二网络实体和第一网络实体的密钥表始终是完全同步一致的,因此根据索引定位得到第二网络实体的密钥表中的某一个密钥即为第一网络实体用于加密的密钥。该方法的不足在于:在实际应用中难以完全保证第一网络实体分发的密钥都能被第二网络实体接收,当第一通信实体分发的某些密钥无法被第二通信实体接收到时,通信双方的密钥表将失去同步,该方法将无法被正确实施,因此该方法并没有真正实现密钥同步功能;为了保证加解密双方加解密密钥的同步,通过附加密钥索引的方法额外增加了网络通信流量。
申请号为201110291636.2的中国专利申请公开了一种用于低速窄带无线数字通信的端到端语音加密方法,该方法的主要内容是:通信双方事先建立密钥映射表并设置安全时钟,主叫方发送同步控制帧给被叫方,同步控制帧包括密钥索引KI、初始向量IV及同步控制帧校验和等;主叫方对每帧语音指定一个序列号,然后基于安全时钟提取的时间T、初始向量IV、序列号和基于密钥索引KI确定的加密密钥TEK产生密钥流加密语音帧,发送的数据包括序列号及密文数据;被叫方根据同步控制帧中的密钥索引KI,从密钥映射表中获得加密密钥TEK,使用校正算法确定时间T并从同步控制帧中提取初始向量IV;收到数据后,被叫方提取出语音帧序列号,使用同样的算法产生密钥流解密语音帧。该方法的不足在于:通信双方需要事先建立固定的密钥映射表,该映射表同样面临极大的资源消耗问题;通信双方需要始终维护一个安全时钟用于同步,这在实际应用中往往难以实现;该方法需要周期性地发送包含有密钥索引的同步控制帧,增加了额外的网络通信流量。
发明内容
本申请提供一种基于网络传输的数据包的加密解密方法及终端,实现基于流密码的实时加密,且不增加额外的网络通信流量。
根据本申请的第一方面,本申请提供一种基于网络传输的数据包的加密解密方法,包括:
通信双方在发起会话时确定共同使用的会话密钥和随机初始向量;
通信双方根据会话密钥和随机初始向量建立各自的密码表;
发送端获取原始数据包,所述原始数据包为未加密的数据包;
发送端根据原始数据包的包头信息生成第一起始点,根据所述第一起始点和其密码表生成第一密钥流,利用第一密钥流对原始数据包进行加密以得到待发送的加密数据包;
接收端在接收到加密数据包后,根据加密的数据包的包头信息生成第二起始点,根据所述第二起始点和其密码表生成第二密钥流,利用第二密钥流对加密的数据包进行解密得到明文。
进一步,该方法还包括更新操作:
发送端在生成第一密钥流的同时或之后,将对其密码表进行第一更新操作;
接收端在生成第二密钥流的同时或之后,将对其密码表进行第二更新操作。
进一步,该方法还包括同步操作:
接收端在接收到加密数据包后,首先利用最新收到的数据包的包头信息判断是否存在网络丢包,当存在丢包时,接收端先进行密码表的同步操作;所称同步操作直接利用流密码的生成算法进行;接收端在接收到加密数据包后,根据加密的数据包的包头信息生成第二起始点,根据第二起始点和所述同步后的密码表生成第二密钥流,利用第二密钥流对加密的数据包进行解密得到明文。
根据本申请的第二方面,本申请提供一种基于网络传输的数据包加密解密终端,包括:
密钥和初始向量获取单元,用于在通信双方在发起会话时确定共同使用的会话密钥和随机初始向量;
密码表生成单元,用于根据会话密钥和随机初始向量生成密码表;
数据包获取单元,用于获取原始数据包,所述原始数据包为未加密的数据包;
第一起始点生成单元,用于从原始数据包的包头信息中生成第一起始点;
第一密钥流生成单元,依据密码表以及第一起始点生成第一密钥流;
加密单元,根据生成的第一密钥流对原始数据包进行加密以得到待发送的加密数据包;
第二起始点生成单元,用于根据接收到的加密的数据包的包头信息生成第二起始点;
第二密钥流生成单元,用于根据所述第二起始点和其密码表生成第二密钥流;
解密单元,用于根据生成的第二密钥流对加密的数据包进行解密得到明文。
进一步,该终端还包括:
丢包判断单元,用于根据接收到的数据包的包头信息判断是否存在网络丢包现象;
密码表同步单元,用于在存在网络丢包时进行接收端密码表的同步功能。
本申请的有益效果是:利用数据包的包头信息,在线实时产生密钥流对数据包进行加密,避免了增加网络通信流量的缺陷,相比事先准备密钥表或密钥映射表的加密技术具有更高的安全性,且利用密钥流生成算法实现了通信双方的密钥同步功能。
附图说明
图1为本申请实施例一加密、解密流程图,其中,
图1-a为本申请实施例一加密流程图,
图1-b为本申请实施例一解密流程图;
图2为本申请实施例二接收端流程图;
图3为本申请实施例三加密解密终端框图;
图4为本申请实施例四通信过程示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本发明的思路是:充分利用基于网络传输的数据包一一对应的序列号和时间戳等包头信息,即网络传输的各个数据包包头信息存在一定的关联关系,根据接收到的数据包可以计算得到丢失的数据包的部分包头信息,根据包头信息对数据包进行基于流密码算法的在线实时加密解密。本申请所提网络包括宽带网、无线通讯网络和有线通信网络等。本发明提出的加密解密方法适用于任何包头信息包含序列号和时间戳的数据包传输,如RTP(Real-time TransportProtocol)数据包、TCP(Transmission Control Protocol)数据包、UDT(UDP basedData Transfer protocol)数据包等。本发明具体实施方式以基于RTP协议的语音数据包为具体实施例对本发明的技术方案进行阐述。
对于以下实施例,作如下申明:
对于发送端如何接收原始的语音数据包以及接收端还原语音信号并非本发明要求保护的范围,即并非本发明的技术方案,只是为了让本领域技术人员能够更好、更清楚地理解本发明的技术方案。在其它实施例中,语音数据包也可以是其它的如视频、图像和/或文字等能够以数据包载荷形式存在的数据包,对应的语音信号也可以是其它的如视频、图像和/或文字等信号。
实施例一:
本发明基于网络传输的数据包的加密解密方法的一种具体实施方式可参考图1-a和图1-b,具体步骤包括:
M001.确定会话密钥SK和随机初始向量IV。
通信双方在会话初始化阶段基于特定安全机制协商好会话密钥SK和256位的随机初始向量IV。所称会话密钥SK和随机初始向量IV为通信双方所共同使用,用于建立各自通信密码表,因此,通信双方建立语音通信前,需要协商通话的有关参数。容易理解的是,由于通信双方具有相同的会话密钥SK和随机初始向量IV,因此,通信双方中的任意一方确定会话密钥SK和随机初始向量IV,而另一方获取并反馈即可。例如,主叫方在发起通话的请求中携带关于会话密钥SK和随机初始向量IV的参数,而被叫方从请求中获取会话密钥SK和随机初始向量IV并应用。或者被叫方在电话接通后向主叫方反馈应答信息,在应答信息中携带关于会话密钥SK和随机初始向量IV的参数,而主叫方从请求中获取会话密钥SK和随机初始向量IV并应用。
M002.通信双方建立各自的密码表P和Q。
当通信双方获得会话密钥SK和随机初始向量IV后,便依据双方共同使用的会话密钥SK和随机初始向量IV建立各自的密码表P和Q,例如,采用现有的算法建立密码表P和Q。所称密码表P和Q都包含1024个32bit元素,为通信双方生成流密码HC-256’的依据。
需要说明的是,本实施例采用HC-256’流密码对数据包进行加密,而双方会话密钥SK和随机初始向量IV相同,因此,通信双方依据会话密钥SK和随机初始向量IV建立的密码表P和Q也一致。
当产生语音数据时,加密的方法如图1-a所示,执行以下步骤。
M11.发送端获取原始数据包。
在做好会话初始化工作以后,双方便可通信,通信双方的语音数据按照通信协议(例如RTP协议)生成若干数据包(例如RTP数据包),当某一方需要发送语音数据时,称发送语音数据的一方为发送端,而接收该语音数据的另一方为接收端。在通信过程中,当发送和接收的角色变换后,名称也发生变化。当需要发送语音数据时,发送端获取原始数据包,所称原始数据包为未加密的数据包。该数据包包括了序列号和时间戳等包头信息以及发送端的会话明文载荷。
M12.发送端从获取的原始数据包的包头信息中抽取序列号和时间戳两个字段。
按照通信协议生成的数据包中,包含有序列号和时间戳等包头信息,发送端在获取原始数据包后应首先抽取包头信息中该数据包的序列号和时间戳两个字段。
M13.生成第一起始点。
根据抽取的序列号和时间戳两个字段生成流密码HC-256’的起始点i,在一具体实施例中,发送端抽取出序列号和时间戳两个字段后,利用散列函数(例如哈希函数)对其进行运算,将散列函数的输出值赋给流密码算法HC-256’的起始点i。
M14.发送端根据第一起始点和其密码表生成第一密钥流。
在本实施例中,第一密钥流s1通过HC-256’算法对密码表迭代生成,HC-256’算法的起点由第一起始点提供。在其它实施例中,也可以采用HC-128’算法迭代生成第一密钥流。
第一密钥流 s 1 = s 2 i ( 1 , i ) | | s 2 i + 1 ( 1 , i ) | | s 2 ( i + 1 ) ( 1 , i ) | | s 2 ( i + 1 ) + 1 ( 1 , i ) | | · · · s 2 ( i + n ) ( 1 , i ) | | s 2 ( i + n ) + 1 ( 1 , i ) | | · · · , 式中,||为串联,
Figure BDA0000437159600000062
为以起始点为i的第n步的输出密钥。
在一具体实施例中,第n步输出密钥
Figure BDA0000437159600000063
为:
j=(i+n)mod1024
P[j]=P[j]+P[j-10]+g1(P[j-3],P[j-1023])                           (1)
s 2 ( i + n ) ( 1 , i ) = h 1 ( P [ j - 12 ] ) ⊕ P [ j ]
Q[j]=Q[j]+Q[j-10]+g2(Q[j-3],Q[j-1023])                         (2)
s 2 ( i + n ) + 1 ( 1 , i ) = h 2 ( Q [ j - 12 ] ) ⊕ Q [ j ]
n=n+1;
其中,g1()、g2()、h1()和h2()均为HC-256’算法中预设的自定义函数,⊕为逐位异或运算,运算符“-”表示模1024的减法运算;从式(1)和式(2)可以看出,密码表P和Q在伴随生成密钥流的同时自动完成了更新操作。
容易理解的是,第一密钥流s1的长度(位数)是可以无限的,在本实施例中,根据数据包明文载荷的位数确定第一密钥流何时截止。
M15.利用第一密钥流对原始数据包进行加密得到加密的数据包。
生成第一密钥流s1后,发送端将原始数据包中的会话明文载荷与生成的第一密钥流s1进行逐位异或加密。
M16.得到待发送的加密的数据包。
发送端对原始数据包经步骤M15加密后,便得到待发送的加密的数据包。在得到待发送的加密的数据包后,可将加密的数据包进行暂存或其他处理,还可以通过网络直接向接收端发送加密的数据包。
在另一具体实施例中,加密的方法还包括以下步骤:
M17.发送端对其密码表进行第一更新。
由式(1)和式(2)可得,发送端在根据HC-256’算法生成一段密钥后,密码表P和Q中的元素都会被自动更新。在本申请文件中,称之为第一更新。
容易理解的是,发送端再获取原始数据包时,将采用第一更新后的密码表生成密钥流对数据包进行加密。
在每生成一段密钥流后对密码表P和Q进行更新,可以避免每次采用同样的密码表,从而提高了加密的安全性和可靠性。
当接收端接收到语音数据时,解密的方法如图1-b所示,具体步骤包括:
M21.接收端接收加密的数据包。
在发送端发送出加密的数据包后,接收端便可以接收到加密的数据包。需要说明的是,本实施例中,发送端只对数据包的明文荷载进行加密,加密后的数据包的包头信息与其对应的原始包的包头信息一致。
M22.接收端从加密的数据包的包头信息中抽取序列号和时间戳两个字段。
同样的,加密的数据包中,包含有序列号和时间戳等包头信息,接收端也应抽取包头信息中该数据包的序列号和时间戳两个字段。
M23.生成第二起始点。
接收端根据抽取的序列号和时间戳采用与M13步骤相同的算法生成流密码第二起始点。
根据M21分析可知,由于包头信息相同,所以第二起始点与第一起始点也相同。
M24.接收端根据第二起始点和其密码表生成第二密钥流。
接收端采用与发送端同样的HC-256’算法生成第二密钥流,又因为第二起始点与第一起始点相同,且发送端与接收端采用同样的密码表P和Q,所以接收端的第二密钥流与发送端的第一密钥流也完全相同。
M25.利用第二密钥流对加密的数据包进行解密。
在本实施例中,由于采用第一密钥流逐位异或的方法对原始数据包明文进行加密,而第二密钥流与第一密钥流完全相同,因此,在接收端只需将加密的数据包密文与第二密钥流进行异或运算即可实现数据包的解密。
M26.得到原始数据包。
经过M25的解密后接收端便可以得到原始数据包明文。
容易理解的是,发送端发出的数据包载荷数据通常为编码后的数字信号,所以接收端得到的明文也为数字信号。接收端为了得到语音信号,一般要将解密得到的明文进行解码从而还原语音信号。而在其它实施例中,如果传输的是视频和/或图像等数据,则需要还原成视频和/或图像信号。
需要说明的是,对于还原成原始的语音、视频和/或图像信号并非本发明的技术方案之一,只是为了使得本领域技术人员更好地理解本发明的技术方案。
在另一具体实施例中,解密方法还包括以下步骤:
M27.接收端对其密码表进行第二更新。
原理同步骤M17,接收端在生成第二密钥流之后,也会通过式(1)和式(2)自动更新密码表P和Q中的元素,并且更新后的密码表P和Q也与第一更新后的密码表P和Q一致。在本申请文件中,接收端在生成第二密钥流之后对其密码表P和Q的更新称之为第二更新。
同样地,接收端再获取加密的数据包时,将采用第二更新后的密码表生成密钥流对数据包进行解密。
根据本申请提供的实施例,充分利用数据包的序列号和时间戳的包头信息,对数据包进行在线加密。本申请实施例不仅未增加网络流量,还实现了密钥流的不断更新,更可靠地防止语音明文信息泄露,提高了双方通信的安全性。
实施例二:
由于网络等不可避免的因素,在通信过程中,难免会存在一些数据包不被接收端接收到,本申请称之为丢包现象。由于丢包现象的发生,不仅会使得丢包的数据遗失,也会导致第二更新无法与第一更新匹配。这是因为发送端的密码表在每加密一个数据包时都进行了更新,从而使得后续解密与发送端的加密不匹配,使得后续通信出现错误。
本实施例提供的方法可以在丢包现象发生时,有效地同步第二更新。请参考图2,本实施例与实施例一的不同之处在于,在接收端解密流程中,接收端接收到加密的数据包后,还进行丢包同步处理流程M20,具体包括以下步骤:
M202.丢包判断。
接收端在接收到加密的数据包后将M22步骤中抽取的最新的加密数据包的序列号记为m,将序列号m与之前一次接收到的加密数据包的序列号n作差运算:若m-n>1,则说明在收到最新数据包之前存在网络丢包现象,因此接收端需要进行密钥同步操作,执行步骤M204;若m-n=1,则说明没有丢包,则执行步骤M23,生成第二起始点。如果M202丢包判断结果为不存在丢包现象,那么,接收端便可直接依据最新数据包的序列号和时间戳以及接收端的密码表生成密钥流对最新数据包进行解密。
M204.同步密码表。
如果M202丢包判断结果为存在丢包现象,那么,接收端应首先对其密码表进行同步处理。具体同步处理为:
接收端基于最新收到的数据包头信息中的序列号和时间戳计算所有丢失的数据包的序列号和时间戳,并对每一个丢失的数据包进行第二更新密码表的操作,使得最终与第一更新相匹配。
假设丢失包的个数为lost个,则根据式(1)和式(2)对第二密码表P和Q进行lost轮更新操作。对于任何一轮更新操作,假设基于该丢失包的序列号和时间戳字段散列得到的密钥产生起始点为i',则循环如下运算直到循环次数达到数据包的长度为止:
j=i′mod1024;
P[j]=P[j]+P[j-10]+g1(P[j-3],P[j-1023]);
Q[j]=Q[j]+Q[j-10]+g2(Q[j-3],Q[j-1023]);
i′=i′+1;
当执行完lost轮更新操作后,接收端的密码表更新次数便与发送端密码表的更新次数完全一致;得到的最新密码表与发送端发送最新数据包所对应的密码表也完全相匹配,从而有效地防止了接收端密码表与发送端密码表不匹配的现象发生,实现了加解密双方的密钥同步。而后,依据得到的最新密码表以及最新数据包的序列号和时间戳生成密钥流对最新数据包进行解密。
在完成步骤M202后,无论判断结果如何,都执行步骤M203。
M203.存储序列号n。
需要说明的是,无论M202丢包判断的结果如何,在丢包判断以后,都要将最新加密数据包的序列号m赋给n,以便下一次的丢包判断。
在其它实施例中,丢包同步处理流程M20也可以在步骤M23“生成第二起始点”和步骤M24“生成第二密钥流”之间。即:在接收端根据接收到的最新的数据包的序列号和时间戳生成第二起始点之后,再进行是否存在丢包的判断,如果存在丢包,则同步密码表,而后根据同步的密码表和第二起始点生成第二密钥流;如果不存在丢包现象,则根据第二更新的密码表和第二起始点生成第二密钥流。
实施例三:
本发明适于VoIP媒体传输的加密解密终端的一种具体实施方式可参考图3,本实施例加密解密终端可用于执行上述实施例中涉及的加密、解密方法。具体结构包括:
密钥和初始向量获取单元301,用于在通信双方在发起会话时确定共同使用的会话密钥SK和随机初始向量IV;
密码表生成单元302,用于根据会话密钥SK和随机初始向量IV生成密码表P和Q;
数据包获取单元311,用于获取原始数据包,所称原始数据包为未加密的数据包;
起始点提取单元312,根据原始数据包的序列号和时间戳等包头信息提取第一起始点,具体提取方法可参见实施例一;
第一密钥流生成单元313,依据密码表以及第一起始点生成第一密钥流;
加密单元314,根据生成的第一密钥流对原始数据包进行加密以得到待发送的加密数据包;
发送单元300,用于将将加密的数据包进行发送;
数据包接收单元321,用于接收其它终端发送的加密的数据包;
起始点提取单元322,根据加密的数据包的序列号和时间戳等包头信息生成第二起始点;
第二密钥流生成单元323,根据第二起始点和其密码表生成第二密钥流;
解密单元324,根据生成的第二密钥流对加密的数据包进行解密得到明文。
进一步,本实施例加密解密终端还包含:
第一更新单元315,在根据第一起始点和其密码表生成第一密钥流之后,对其密码表进行第一更新;
第二更新单元325,在根据第二起始点和其密码表生成第二密钥流之后,对其密码表进行第二更新。
为了防止丢包现象发生时,密码表更新不匹配导致的后续通信出现错误,本实施例加密解密终端还包含:
判断单元326,用于在接收到最新的加密数据包后,将最新的加密数据包的序列号与前一次接收到的加密数据包的序列号进行比较,判断两者的差值是否大于1。如果差值大于1,则说明存在网络丢包现象,需要同步密码表;若差值等于1,则说明没有丢失包,此时第二更新单元325对其密码表进行第二更新即可。
同步单元327,用于在两者的差值大于1存在丢包现象时,对其密码表进行同步处理。
实施例四:
本申请提出的方法适用于使用数据包传输的通信***,如基于sipX、ReSIProcate、Newfies-Dialer、oSIP和Asterisk等搭建的VoIP***。下面以基于libosip2协议栈及mediastreamer2库搭建的一个基于SIP协议的安全VoIP语音通信***为例对本发明作进一步说明,在其它实施例中,也可以是视频、图像和/或文字等通信***。
本申请实施例基于libosip2协议栈及mediastreamer2库搭建了一个基于SIP协议的安全VoIP语音通信***。在本实施例中,VoIP终端基于libosip2库开发得到,SIP服务器使用开源软件partysip。
发送端通过在mediastreamer2库中添加一个自定义加密插件,该插件用于生成密钥流;接收端也通过mediastreamer2库中增加的解密插件用于生成与发送端相匹配的密钥流。
通信双方在建立语音通信前,需要进行基于SIP协议的会话发起阶段以协商通话的有关参数。在本实施例***中,发送方使用INVITE消息的SDP消息体中的param域携带密钥协商参数及初始向量,接收方使用200OK消息的SDP消息体中的param域携带密钥协商参数。经过会话发起阶段后,通信双方拥有了相同的会话密钥SK以及用于HC-256’算法的密码表P和Q。
通信双方在发起会话发起阶段之后,具体通信过程可参见图4,发送端利用话筒401采集用户的语音数据并采用PCMA编码器402将模拟语音信号转化为数字信号,发送端的加密插件403基于第一起始点及其密码表P和Q生成一段密钥流,通过该密钥流将数据包载荷部分与产生的密钥流进行异或运算得到加密后的数据包,与此同时,发送端拥有的密码表P和Q在生成加密密钥流后进行了一轮更新;而后将加密的数据包进行IP封装等操作后通过IP分组网络404发送出去。接收端收到加密的数据包后,利用接收端的解密插件405基于第二起始点及其密码表P和Q生成一段密钥流,通过该密钥流将加密的数据包载荷部分进行异或运算解密得到明文,与此同时,接收端拥有的密码表P和Q在生成解密密钥流后进行了一轮更新;而后通过编码器406将解密得到的明文进行解码后利用扬声器407播放语音。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。

Claims (11)

1.一种基于网络传输的数据包的加密解密方法,其特征在于,包括:
通信双方在发起会话时确定共同使用的会话密钥和随机初始向量;
通信双方根据会话密钥和随机初始向量建立各自的密码表;
发送端获取原始数据包,所述原始数据包为未加密的数据包;
发送端根据原始数据包的包头信息生成第一起始点,根据所述第一起始点和其密码表生成第一密钥流,利用第一密钥流对原始数据包进行加密以得到待发送的加密数据包;
接收端在接收到加密数据包后,根据加密的数据包的包头信息生成第二起始点,根据所述第二起始点和其密码表生成第二密钥流,利用第二密钥流对加密的数据包进行解密得到明文。
2.如权利要求1所述的方法,其特征在于,在所述发送端根据所述第一起始点和其密码表生成第一密钥流之后,对其密码表进行第一更新;
在所述接收端根据所述第二起始点和其密码表生成第二密钥流之后,对其密码表进行第二更新;
3.如权利要求2所述的方法,其特征在于,接收端在接收到最新的加密数据包后和生成第二密钥流之前还包括:将最新的加密数据包的序列号与前一次接收到的加密数据包的序列号进行比较,如果两者的差值大于1,则对其密码表进行同步处理,若所述差值等于1,则接收端对其第二密码表进行第二更新。
4.如权利要求3所述的方法,其特征在于,所述同步处理包括:根据最新加密数据包的序列号和时间戳字段计算所有丢失包的包头信息,然后依时间先后顺序对每一个丢失包所对应的密码表进行第二更新。
5.如权利要求2所述的方法,其特征在于,所述第一更新和第二更新为相同的处理过程。
6.如权利要求1至5任意一项所述的方法,其特征在于,通信双方根据会话密钥和随机初始向量建立的密码表相同,所述包头信息为该数据包的序列号和时间戳,所述第一起始点和所述第二起始点为通过散列函数对各自数据包的序列号和时间戳运算而得。
7.一种基于网络传输的数据包的加密解密终端,其特征在于,包括:
密钥和初始向量获取单元(301),用于在通信双方在发起会话时确定共同使用的会话密钥和随机初始向量;
密码表生成单元(302),用于根据会话密钥和随机初始向量生成密码表;
数据包获取单元(311),用于获取原始数据包,所述原始数据包为未加密的数据包;
第一起始点生成单元(312),用于从所述原始数据包的包头信息中生成第一起始点;
第一密钥流生成单元(313),依据密码表以及第一起始点生成第一密钥流;
加密单元(314),根据生成的第一密钥流对原始数据包进行加密以得到待发送的加密数据包;
第二起始点生成单元(322),用于根据接收到的加密的数据包的包头信息生成第二起始点;
第二密钥流生成单元(323),用于根据所述第二起始点和其密码表生成第二密钥流;
解密单元(324),用于根据生成的第二密钥流对加密的数据包进行解密得到明文。
8.如权利要求7所述的终端,其特征在于,
所述第一起始点生成单元(312)采用散列函数对所述原始数据包的包头信息计算生成第一起始点;
所述第二起始点生成单元(322)采用散列函数对所述加密的数据包的包头信息计算生成第二起始点;
所述包头信息为数据包的序列号和时间戳。
9.如权利要求7或8所述的终端,其特征在于,还包括:
第一更新单元(315),用于在根据所述第一起始点和其密码表生成第一密钥流之后,对其密码表进行第一更新;
第二更新单元(325),用于在根据所述第二起始点和其密码表生成第二密钥流之后,对其密码表进行第二更新。
10.如权利要求9所述的终端,其特征在于还包括:
判断单元(326),用于在接收到最新的加密数据包后和生成第二密钥流之前,将最新的加密数据包的序列号与前一次接收到的加密数据包的序列号进行比较,判断两者的差值是否大于1;
同步单元(327),用于在两者的差值大于1时,对其密码表进行同步处理;
所述第二更新单元(325)在所述差值等于1时对其密码表进行第二更新。
11.如权利要求10所述的终端,其特征在于,所述同步单元(327)根据最新加密数据包的序列号计算所有丢失包的包头信息,然后依时间先后顺序对每一个丢失包所对应的密码表进行第二更新。
CN201310688322.5A 2013-12-13 2013-12-13 基于网络传输的数据包的加密解密方法及终端 Active CN103684787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310688322.5A CN103684787B (zh) 2013-12-13 2013-12-13 基于网络传输的数据包的加密解密方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310688322.5A CN103684787B (zh) 2013-12-13 2013-12-13 基于网络传输的数据包的加密解密方法及终端

Publications (2)

Publication Number Publication Date
CN103684787A true CN103684787A (zh) 2014-03-26
CN103684787B CN103684787B (zh) 2018-01-16

Family

ID=50321181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310688322.5A Active CN103684787B (zh) 2013-12-13 2013-12-13 基于网络传输的数据包的加密解密方法及终端

Country Status (1)

Country Link
CN (1) CN103684787B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734843A (zh) * 2013-12-19 2015-06-24 江苏吉美思物联网产业股份有限公司 一种同步3des保密通信方法
CN104883372A (zh) * 2015-06-19 2015-09-02 中国电子科技集团公司第五十四研究所 一种基于无线自组织网的防欺骗和抗攻击的数据传输方法
CN105956840A (zh) * 2016-05-30 2016-09-21 广东电网有限责任公司 一种缴纳电费的方法、装置及银电联网***
CN106549979A (zh) * 2016-12-23 2017-03-29 成都鼎安华物联网工程应用有限公司 一种轻量化物联网数据的加解密传输方法
CN106789903A (zh) * 2016-11-18 2017-05-31 海能达通信股份有限公司 无线通信方法、装置及通信设备
CN107438065A (zh) * 2016-05-27 2017-12-05 三星Sds株式会社 数据加密装置及方法、数据解密装置及方法
CN107819725A (zh) * 2016-09-12 2018-03-20 山东量子科学技术研究院有限公司 基于VoIP通话的方法及移动终端
CN108712363A (zh) * 2018-03-22 2018-10-26 新华三信息安全技术有限公司 一种日志加解密方法
CN109327288A (zh) * 2015-12-14 2019-02-12 华为技术有限公司 数据传输加速方法、装置及***
CN110798316A (zh) * 2019-09-20 2020-02-14 西安瑞思凯微电子科技有限公司 加密密钥生成及其加密方法、解密密钥生成及其解密方法
CN111262868A (zh) * 2020-01-17 2020-06-09 中国科学院计算技术研究所 一种基于智能网卡的消息发送方法以及接收方法
CN111669650A (zh) * 2020-06-10 2020-09-15 北京奇艺世纪科技有限公司 视频处理方法、装置、电子设备及存储介质
CN111741034A (zh) * 2020-08-27 2020-10-02 北京安帝科技有限公司 数据传输方法、第一终端和第二终端
CN111988297A (zh) * 2020-08-13 2020-11-24 北京诚志重科海图科技有限公司 一种文字通信保密传输明密转换***
CN112615718A (zh) * 2020-12-14 2021-04-06 中国电子科技集团公司第五十四研究所 一种基于哈希函数的序列密码加密***密钥更新方法
CN112821978A (zh) * 2021-04-16 2021-05-18 北京乐研科技有限公司 一种基于时钟同步的单向网闸电路、方法及装置
WO2022135498A1 (zh) * 2020-12-25 2022-06-30 华为技术有限公司 安全传输数据的方法、装置及***
CN116707771A (zh) * 2023-08-04 2023-09-05 深圳市菲尼基科技有限公司 一种基于数据加密的通讯方法
CN116866902A (zh) * 2023-07-27 2023-10-10 烟台东方威思顿电气有限公司 一种基于交互数据的数据保护方法
CN116980232A (zh) * 2023-09-21 2023-10-31 深圳市能数科技有限公司 一种数据处理方法、装置、计算机设备和可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951501A (zh) * 2019-05-07 2019-06-28 山东渔翁信息技术股份有限公司 一种网络数据包加密方法、解密方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002051096A1 (en) * 2000-12-18 2002-06-27 Koninklijke Philips Electronics N.V. Pointers to encrypted data in rtp header
CN101023649A (zh) * 2004-09-21 2007-08-22 高通股份有限公司 在利用安全实时传输协议的广播/多播服务会话期间确定会话加密密钥
CN102006593A (zh) * 2010-10-29 2011-04-06 公安部第一研究所 一种用于低速窄带无线数字通信的端到端语音加密方法
CN202050421U (zh) * 2010-09-21 2011-11-23 公安部第一研究所 一种端到端加密语音处理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002051096A1 (en) * 2000-12-18 2002-06-27 Koninklijke Philips Electronics N.V. Pointers to encrypted data in rtp header
CN101023649A (zh) * 2004-09-21 2007-08-22 高通股份有限公司 在利用安全实时传输协议的广播/多播服务会话期间确定会话加密密钥
CN202050421U (zh) * 2010-09-21 2011-11-23 公安部第一研究所 一种端到端加密语音处理装置
CN102006593A (zh) * 2010-10-29 2011-04-06 公安部第一研究所 一种用于低速窄带无线数字通信的端到端语音加密方法
CN102404729A (zh) * 2010-10-29 2012-04-04 公安部第一研究所 一种用于低速窄带无线数字通信的端到端语音加密方法

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734843A (zh) * 2013-12-19 2015-06-24 江苏吉美思物联网产业股份有限公司 一种同步3des保密通信方法
CN104883372A (zh) * 2015-06-19 2015-09-02 中国电子科技集团公司第五十四研究所 一种基于无线自组织网的防欺骗和抗攻击的数据传输方法
CN104883372B (zh) * 2015-06-19 2018-11-16 中国电子科技集团公司第五十四研究所 一种基于无线自组织网的防欺骗和抗攻击的数据传输方法
CN109327288B (zh) * 2015-12-14 2023-11-10 华为技术有限公司 数据传输加速方法、装置及***
CN109327288A (zh) * 2015-12-14 2019-02-12 华为技术有限公司 数据传输加速方法、装置及***
US10721059B2 (en) 2016-05-27 2020-07-21 Samsung Sds Co., Ltd. Apparatus and method for data encryption, apparatus and method for data decryption
CN107438065B (zh) * 2016-05-27 2021-01-01 三星Sds株式会社 数据加密装置及方法、数据解密装置及方法
CN107438065A (zh) * 2016-05-27 2017-12-05 三星Sds株式会社 数据加密装置及方法、数据解密装置及方法
CN105956840A (zh) * 2016-05-30 2016-09-21 广东电网有限责任公司 一种缴纳电费的方法、装置及银电联网***
CN107819725A (zh) * 2016-09-12 2018-03-20 山东量子科学技术研究院有限公司 基于VoIP通话的方法及移动终端
CN106789903B (zh) * 2016-11-18 2020-11-13 海能达通信股份有限公司 无线通信方法、装置及通信设备
CN106789903A (zh) * 2016-11-18 2017-05-31 海能达通信股份有限公司 无线通信方法、装置及通信设备
CN106549979A (zh) * 2016-12-23 2017-03-29 成都鼎安华物联网工程应用有限公司 一种轻量化物联网数据的加解密传输方法
CN106549979B (zh) * 2016-12-23 2019-07-09 成都鼎安华智慧物联网股份有限公司 一种轻量化物联网数据的加解密传输方法
CN108712363B (zh) * 2018-03-22 2021-04-20 新华三信息安全技术有限公司 一种日志加解密方法
CN108712363A (zh) * 2018-03-22 2018-10-26 新华三信息安全技术有限公司 一种日志加解密方法
CN110798316A (zh) * 2019-09-20 2020-02-14 西安瑞思凯微电子科技有限公司 加密密钥生成及其加密方法、解密密钥生成及其解密方法
CN111262868B (zh) * 2020-01-17 2021-04-06 中国科学院计算技术研究所 一种基于智能网卡的消息发送方法以及接收方法
CN111262868A (zh) * 2020-01-17 2020-06-09 中国科学院计算技术研究所 一种基于智能网卡的消息发送方法以及接收方法
CN111669650A (zh) * 2020-06-10 2020-09-15 北京奇艺世纪科技有限公司 视频处理方法、装置、电子设备及存储介质
CN111988297B (zh) * 2020-08-13 2022-09-13 北京诚志重科海图科技有限公司 一种文字通信保密传输明密转换***
CN111988297A (zh) * 2020-08-13 2020-11-24 北京诚志重科海图科技有限公司 一种文字通信保密传输明密转换***
CN111741034A (zh) * 2020-08-27 2020-10-02 北京安帝科技有限公司 数据传输方法、第一终端和第二终端
CN112615718A (zh) * 2020-12-14 2021-04-06 中国电子科技集团公司第五十四研究所 一种基于哈希函数的序列密码加密***密钥更新方法
CN112615718B (zh) * 2020-12-14 2022-09-02 中国电子科技集团公司第五十四研究所 一种基于哈希函数的序列密码加密***密钥更新方法
WO2022135498A1 (zh) * 2020-12-25 2022-06-30 华为技术有限公司 安全传输数据的方法、装置及***
CN112821978A (zh) * 2021-04-16 2021-05-18 北京乐研科技有限公司 一种基于时钟同步的单向网闸电路、方法及装置
CN116866902A (zh) * 2023-07-27 2023-10-10 烟台东方威思顿电气有限公司 一种基于交互数据的数据保护方法
CN116707771A (zh) * 2023-08-04 2023-09-05 深圳市菲尼基科技有限公司 一种基于数据加密的通讯方法
CN116707771B (zh) * 2023-08-04 2023-12-05 深圳市菲尼基科技有限公司 一种基于数据加密的通讯方法
CN116980232A (zh) * 2023-09-21 2023-10-31 深圳市能数科技有限公司 一种数据处理方法、装置、计算机设备和可读存储介质
CN116980232B (zh) * 2023-09-21 2024-01-12 深圳市能数科技有限公司 一种数据处理方法、装置、计算机设备和可读存储介质

Also Published As

Publication number Publication date
CN103684787B (zh) 2018-01-16

Similar Documents

Publication Publication Date Title
CN103684787B (zh) 基于网络传输的数据包的加密解密方法及终端
US11575660B2 (en) End-to-end encryption for personal communication nodes
CN104486077B (zh) 一种VoIP实时数据安全传输的端到端密钥协商方法
CN105376261B (zh) 一种用于即时通讯消息的加密方法及***
EP2241053A1 (en) Method and apparatus to enable lawful intercept of encrypted traffic
US7466824B2 (en) Method and system for encryption of streamed data
CN104683291B (zh) 基于ims***的会话密钥协商方法
CN105025475A (zh) 面向Android***的移动保密终端实现方法
CN105337969A (zh) 两个移动终端之间的安全通信方法
CN101183935A (zh) Rtp报文的密钥协商方法、装置及***
WO2011044351A3 (en) Wireless security protocol
EP2649770B1 (en) Binding keys to secure media streams
CN104618387A (zh) 将sip信令用于量子安全通信***的方法、综合接入量子网关及***
CN103124215A (zh) 带有时间标记的自认证方法
CN111064738A (zh) 一种tls安全通信的方法及***
CN104243146A (zh) 一种加密通信方法、装置及终端
CN107517184A (zh) 报文传输方法、装置及***
WO2017197968A1 (zh) 一种数据传输方法及装置
CN117098123A (zh) 一种基于量子密钥的北斗短报文加密通信***
CN105991277B (zh) 基于sip通信***的密钥分发方法
Jung et al. One-time packet key exchange scheme for secure real-time multimedia applications
CN114363086A (zh) 基于流密码的工业互联网数据加密传输方法
CN101500146A (zh) 一种基于双向网络的数字电视收视控制方法和装置
CN104753869A (zh) 基于sip协议的通话加密方法
Jung et al. Securing rtp packets using per-packet selective encryption scheme for real-time multimedia applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant