首页> 中国专利> 基于网络传输的数据包的加密解密方法及终端

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

摘要

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

著录项

  • 公开/公告号CN103684787A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 北京大学深圳研究生院;

    申请/专利号CN201310688322.5

  • 发明设计人 雷凯;袁杰;

    申请日2013-12-13

  • 分类号H04L9/32(20060101);

  • 代理机构44281 深圳鼎合诚知识产权代理有限公司;

  • 代理人郭燕;彭愿洁

  • 地址 518055 广东省深圳市南山区西丽深圳大学城北大园区

  • 入库时间 2023-12-17 01:59:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-16

    授权

    授权

  • 2014-11-26

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20131213

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域

本申请涉及安全网络通信领域,具体涉及到一种基于网络传输的数据包的 加密解密方法及终端。

背景技术

互联网网络因其简单、廉价和开放性而在通信领域得到了广泛的应用,例 如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 Transport  Protocol)数据包、TCP(Transmission Control Protocol)数据包、UDT(UDP based  Data 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’算法迭代 生成第一密钥流。

第一密钥流s1=s2i(1,i)||s2i+1(1,i)||s2(i+1)(1,i)||s2(i+1)+1(1,i)||···s2(i+n)(1,i)||s2(i+n)+1(1,i)||···,式中,||为串联,为以起始点为i的第n步的输出密钥。

在一具体实施例中,第n步输出密钥为:

j=(i+n)mod1024

P[j]=P[j]+P[j-10]+g1(P[j-3],P[j-1023])                           (1)

s2(i+n)(1,i)=h1(P[j-12])P[j]

Q[j]=Q[j]+Q[j-10]+g2(Q[j-3],Q[j-1023])                         (2)

s2(i+n)+1(1,i)=h2(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播放语音。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认 定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术 人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号