《中国有线电视》2005(01)CH I N A CABLE TELE V I SI O N・开发与应用・流媒体信息加密与用户认证技术的实现□姚华桢1,冯穗力1,叶 梧1,谢 杏2(1.华南理工大学,广东广州510640;2.广东省信息中心,广东广州510640)摘 要:讨论了保障多媒体通信安全的几个关键技术,分析了流媒体加密的几种方式。
根据流媒体传输的特点,研究了一种基于AES和MD5算法的流媒体数据加密传输和用户认证的方法,并分析了如何在流媒体服务器端和客户端予以实现。
关键词:流媒体;AES;MD5;认证;密钥传递中图分类号:T N943.6 文献标识码:A 文章编号:1007-7022(2005)01-0057-04The I m ple m en t a ti on of I nforma ti on Encrypti on andUser Authen ti ca ti on i n Stream i n g M ed i a□Y AO Hua2zhen1,FENG Sui2li1,YE W u1,X I E Xing2(1.South China University of Technol ogy,Guangdong Guangzhou510640,China;2.Guangdong I nf or mati on Center,Guangdong Guangzhou510640,China)Abstract:This paper discusses vital technique f or secure communicati on of multi m edia.It analyzes s ome waysf or strea m data encryp ti on.According t o the characteristic of strea m ing media trans port,it p resents a methodof strea m data encryp ti on and user authenticati on based on AES algorithm and MD5algorith m.It als o analyzes how t o realize the algorithm on server and client syste m s.Key words:strea m ing media;AES;MD5;authenticati on;secret key pass1 引言流媒体技术是一种在线多媒体播放技术,可广泛用于在线直播、远程教育、实时视频会议等应用场合。
在许多情况下流媒体传输中的安全性、高效性以及客户的身份认证问题是至关重要的因素。
本文就流媒体信息加密中加密算法的选择、客户的认证方法、密钥的传递方法作了深入的讨论。
在算法选择上,流媒体传输对速度的要求很高,以往进行流媒体加密采用一般的数据加密标准DES,随着密码分析水平(特别是差分密码分析及线性密码分析)、芯片处理能力的提高, DES算法在其实现速度、代码大小、跨平台性等方面难以满足新的应用需求。
本文采用高级加密标准AES,使本系统在速度、安全性等方面都有很大提高。
在客户认证方面,本系统采用TCP/I P协议,与数据流传输基金项目:广东省工业攻关项目资助(2003B12224)作者简介:姚华桢(19802 ),女,硕士研究生,研究方向为通信理论与技术;冯穗力(19552 ),男,教授,硕士生导师,研究方向为通信理论与技术。
的UCP /I P 协议分开,客户认证和数据传输是两个不同的线程,相当于一个双服务器系统,一边是播放服务器,一边是认证服务器。
在密钥传递方面,和其他系统不同的是:由于本系统支持多播,有可能多个用户同时请求连接,如果和其他系统一样采用公钥(非对称)加密算法,无疑会大大增加系统的运算量,因此这里仍然采用私钥(对称)加密算法,服务器端以客户的密码对数据流密钥加密,然后再传给客户端,客户端再进行相应解密,而服务器对于客户密钥的获取可通过客户注册由公钥加密算法实现。
2 系统结构2.1 RTP /RT CP 协议RTP (Real 2ti m e Trans port Pr ot ocol )是用于I nternet上针对多媒体数据流的一种传输协议,其目的是提供时间信息和流同步,RTP 通常使用UDP 来传送数据。
RTCP (Real 2Ti m e Trans port Contr ol Pr ot ocol )和RTP 一起提供流量控制和拥塞控制服务。
2.2 系统实现架构基于RTP /RTCP 协议的加密视频传输系统架构如图1所示,其中虚线和数字表示用户认证和密钥传递线程,实线和字母表示流媒体数据加密传送线程。
服务器是在L inux 系统中实现的,而客户端是基于W indo ws 平台的。
图1 加密视频传输的系统架构整个加密传输过程的顺序为:①→②→③→④→⑤→⑥→a →b →c →d →e →f →g →h →i,可详细描述如下:(1)客户端首先向服务器端发出连接服务器的请求;(2)服务器端对客户进行身份验证,如果是合法用户,则用用户的密码(userkey )对密钥(datakey )(此密钥用于流媒体数据加密)进行加密,这里所采用的加密算法仍然是AES,然后将加密后的密钥信息(en 2cryp tkey )及登陆成功的消息传给客户端;(3)客户端接收已加密的密钥信息和登陆成功的消息,并用自己的密码(userkey )对加密后的密钥信息(encryp tkey )进行解密,得到真正用于流媒体数据解密的密钥(datakey );(4)客户端向服务器端发出播放视频流的请求;(5)服务器端把视频流文件转化为RTP /RTCP 信息流,进行加密处理后传向网络;(6)客户端接收到数据包后用datakey 对包进行解密处理,然后播放。
3 流媒体数据的加密技术3.1 H.263加密算法的选择本文的实时视频监测传输系统采用的是H.263视频流,在传输流媒体的过程中,除了要考虑正确性、实时性、系统的效率等,还有一个非常重要的方面即流媒体数据信息的安全性。
综合这几方面考虑,必须要选择一种高效、简洁、安全的加密算法。
由于数据加密标准算法(DES )及其变形的安全强度已经难以满足新的安全需要,其实现速度、代码大小和跨平台性均难以满足新的需求,本文选用高级加密标准AES 。
AES 是2000年10月由美国国家标准和技术研究所推出的新的数据加密标准,来自比利时的R ijndael 凭借其简洁、高效、安全和原则性的设计成为高级加密标准AES 。
本系统采用AES 算法,使得其在效率、安全性等方面都有很大优势。
3.2 AES 算法描述R ijndael 是具有可变分组长度和可变密钥长度的分组密码,其分组长度和密钥长度均可独立地设定为32bit 的任意倍数,最小值为128bit,最大值为256bit 。
其输入输出均可看为8位字节的一维数组:假设输入明文为p 0,p 1…p i …,0≤i ≤4×N b -1,将明文映射到一个字节矩阵上,我们称之为状态,如图2所示。
p 0p 4p 8p 12p 1p 5p 9p 13p 2p 6p 10p 14p 3p 7p 11p 15 图2 当N b =4时的状态分布本例中N b =4,密钥同理可映射到密钥状态中。
R ijndael 加密算法由3部分组成:①一个初始轮密钥加法变换;②N r -1轮变换;③最后一轮变换。
用伪C 码表示为: R ijndael (State,Ci pherKey ){KeyExpansi on (Ci pherKey,ExpandKey )//密钥扩展,姚华桢等:流媒体信息加密与用户认证技术的实现 《中国有线电视》2005年第01期即把输入的密钥扩展为加密用的密钥 AddRoundKey(State,ExpandKey)//初始轮密钥加法变换 f or(i=1;i<;i++)//Nr-1轮轮变换 Round(State,ExpandedKey[i]) {ByteSub(State);//S-盒变换,非线性的砖匠置换Shift Row(State);//字节换位,将状态中的行按不同的偏移量进行循环移位M ix Colu mn(State);//作用在状态各列的砖匠变换AddRoundKey(State,ExpandedKey[i];)//密钥加法} Final Round(State,ExpandedKey[]) {ByteSub(State);//同上Shift Row(State);//同上AddRoundKey(State,ExpandedKey[]);//同上}}考虑到要在32位或者更长字长的处理器快速实现R ijndael,可以考虑将轮变换的不同步骤合并为一组表T0,T1,T2,T3,每张表的大小为4kB,对于每一轮的每一列仅需4次表查询和4次异或运算,效率大为提高。
解密过程在结构上与加密类似,不同之处在于调用了I nvSub Bytes,I nvShift Rows和I nv M ixColu mn,密钥扩展的方式也不同。
实验表明,采用这种方法,在基于2.2GHz的P4平台上用ANSI C实现,可以使我们在密钥长度为256 bit的情况下,加密速度达到19.692Mbit/s,解密速度达到17.782Mbit/s。
而本系统客户端的播放速度一般都在2Mbit/s以下,所以AES算法完全能够满足系统的要求。
3.3 H.263加密方式的选择由于加密的对象是H.263视频流,它和一般的文本文件有所不同,所以我们可以根据流媒体的特点来选择合适的加密方式。
常用的流媒体加密方式有:①直接加密方式:对所有流媒体的RTP包进行加密,这种方法可以获得最安全的H.263的传输,其缺点是速度相对较慢,然而对于加密要求比较严格的视频应用,是很值得考虑的。
②选择性加密方式:仅对H.263的关键帧,即帧头和I帧进行加密,该方式的最大缺点是对其他含有相当信息的帧没有加密,有可能造成信息泄露,其优点是加密速度得到了一定的改善。
本文构建的系统对于视频流的安全性有很严格的要求,再者,AES是一种高效、简洁、安全的算法,完全能满足系统要求,所以我们采用第一种加密方式即直接加密方式。
4 身份认证和密钥传递技术4.1 身份认证和传送密钥过程由于获得视频服务的是特殊的客户群,我们必须在服务器端加入身份认证和密钥传递模块,使得密钥能够到达合法用户。
我们在服务器建立了包含每个客户的用户名(I D)、密码(userkey)和密码的Hash(哈希)值的数据库,用于上述功能的实现。