数字电视双向加密体系结构解决方案*

2014-04-17 07:48魏振钢林喜军刘秀燕
关键词:解密密钥密码

魏振钢,邢 静,林喜军,刘秀燕

(中国海洋大学信息科学与工程学院 ,山东 青岛266100)

随着信息技术的迅速发展和网络的普及,数字电视以个性化服务的优势越来越受到广大用户的青睐。数字电视是1个将节目从采集、编辑、制作、播出、传输、接收全过程都采用数字方式处理信号的端到端的系统[1],然而数字信号传输安全问题也就成为研究人员关注的热点。数字电视的条件接收系统(CA)实现了增值服务、扩展服务等有偿服务。条件接收就是通常所说的加密认证系统,是数字电视的核心技术,能够实现前端数据安全的传给用户。

目前国际上主要的条件接收系统有Irdeto公司M-Crypt系统,France Telecom 公司的 Vi-access系统,NDS公司的NDS系统,Canal+的 Mediaguard系统,以及永新同方条件接收系统(TFCAS)等[2],这些条件接收系统均有相应的市场应用和各自的特色。在条件接收系统的密码体系中加密的只是由服务器到客户端的数据,即单向密码体系。在条件接收系统单向密码体系中前端无法获取用户端的信息,这就为密码体系的安全性造成了极大的隐患,可能出现伪造用户智能卡的情况,导致未经授权的用户非法观看电视节目。为解决这些问题,本文提出了使用基于椭圆曲线的多对一加密认证方案的方法实现回传数据的安全,构成了数字电视双向密码体系。基于椭圆曲线的多对一加密认证方案具有身份认证的功能,因此将其用于数字电视条件接收系统构成双向密码体系能够有效的防止非法用户伪造智能卡,保证合法用户的权益。

1 数字电视安全体系分析

随着数字电视系统的发展,数字电视用户可以按照自己的需求获取各种网络服务,包括电视购物、视频点播、远程教学、远程医疗等新业务,使电视机成为名副其实的信息家电。数字电视的新功能使广播业者投资成本增加,需要向用户收取一定的费用。数字电视条件接收系统(CA)能够使被授权的用户获取付费节目、进行数据业务交互。数字电视中条件接收系统的加密原理[2-5](见图1)。(注:图中服务器端到客户端加密解密过程是为数字电视条件接收系统原理,整个图构成了数字电视的双向密码体系,其中(IDA,EKA,S)为提出的使用基于椭圆曲线的多对一加密认证算法确定用户身份及加密过程使用的密钥。)

图1 条件接收系统加密原理Fig.1 Conditional access system encryption principle

从服务器端到客户端传送信息的过程如下:

(1)服务器端加密流程

①控制字(CW)激活加扰器中的伪随机序列发生器产生伪随机序列对节目加扰;

②用户解扰节目,需要将CW正确无误的传送给用户。使用业务密钥(SK)对CW进行加密,加密后的内容作为授权控制信息(ECM)传送到客户;

③使用个人分配密钥(PDK)对SK加密,加密后的内容作为授权管理信息(EMM)传送到客户端。

(2)用户端的解密流程

①首先,用户端智能卡从接收到的数据流中过滤出ECM和EMM;

②然后,智能卡使用PDK对EMM进行解密,解密得到SK;

③使用SK对ECM解密,取出CW;

④使用CW对节目进行解扰,经授权的合法用户可以正常收看经过解扰后的节目。

目前的数字电视条件接收系统的单向密码体系能够使授权用户享受到相应的交互业务如付费节目、视频点播等。若用户需要通过该系统向前端传送信息,如何保证用户传送信息的安全,这就是该密码体系存在的安全隐患。鉴于数字电视条件收系统的这种单向密码体系存在的以上问题,下文中将详细介绍使用基于椭圆曲线的多对一加密认证算法实现由客户端向服务器端传送数据的过程,即构成数字电视双向加密系统。

2 多对一加密认证算法

多对一加密认证,顾名思义就是指1个接收者服务于多个发送者,相比于发送者,服务器数量是很少的,每一台服务器可以接受来自上百万发送者的信息,服务器只需要保存主密钥就能解密根据用户身份和密钥生成中心(KGC)发布的加密密钥加密的密文。该算法的优点[6]有:服务器的密钥管理变得简单,减轻了密钥管理的负担,且每一个合法的发送者都拥有1个独立的密钥来构造密文,非常容易实现撤销发送者发送的信息,且不会影响服务器和其他发送者的计算复杂性。

基于多对一加密认证算法的上述优点,将多对一加密认证算法应用到分布式系统具有很大的实用价值。当涉及需要保密的私密信息,比如在线软件的注册和升级,数字电视付费用户可以进行视频点播或者视频购物等,在授权的过程中需要进行身份认证。利用多对一加密认证算法实现授权,在保证安全的基础上还会使过程简化,节省资源。

通常,多对一加密认证算法由6个函数描述,图2展示了用户与服务器端安全通信的过程,其中参数的产生是使用了多对一加密算法中的函数实现。分布式系统中的每一个用户都可以根据自己的身份信息使用相应函数计算出自己的加密密钥EKA,S,使用Encryption函数将需要加密的信息进行加密。而服务器端根据自己的身份信息IDs和主密钥MK即可解密用户端发送的信息。多对一加密认证算法详细介绍[7-11]:

图2 多对一加密认证算法实现过程Fig.2 Many-to-one encryption and authentication algorithm iplementation process

(1)Setup:该算法把安全参数K作为输入,并返回系统参数Params和MK。Params包括消息空间M和密文空间C的描述。此算法由密钥生成中心(KGC)执行。Params是公开的并且授权可用,MK被KGC保留为主密钥。

(2)Private-Key-Extract:该算法以Params和接收者的身份IDs作为输入,返回1个私钥SKs。SKs被用来解密和认证密文,这个算法由接收者执行。

(3)Information-Extract:该函数以系统参数 Params,私钥SKs、接收者的身份IDs(可选)作为输入,返回与该密钥相关的信息Infos。该算法由接收者执行,并且将Infos在认证的通道传送给KGC。

(4)Encryption-Key-Generation:以定系统参数 K、系统主密钥 MK、发送者身份IDA和接收者身份IDS(可选)、与密钥相关信息Infos作为输入,KGC输出合法发送者的加密密钥EKA,S。

(5)Encrypt:以系统参数Params、发送者的加密密钥EKA,S和明文作为输入,执行函数后输出密文C。

(6)Decrypt:给定系统参数 Params、私钥SKs、发送者身份IDA、接收者身份IDs(可选)和密文作为输入,接收者输出相应明文或当密文不合法时解密错误信息。

3 多对一加密认证算法实现双向密码体系

数字电视机顶盒条件接收功能使合法用户、付费用户能够收看或者点播节目。但是如何保证用户端向服务器传送数据的安全是存在的安全问题。下面以在数字电视上购物为例,详细阐述如何使用多对一加密认证算法在条件接收系统实现用户端传送数据的安全。

(1)首先,密钥生成中心KGC产生安全参数k,然后利用Setup函数产生系统参数Params和系统主密钥MK的过程记录为(Params,MK)=Setup(k),并为合法发送和服务器分配身份信息,分别记为IDA和IDs。

(2)其次,KGC为服务器产生解密密钥SKS,随机选取,其中

(3)在智能卡发布之前,首先为智能卡分配1个身份信息,记为IDA,可以用智能卡的序列号作为身份使用,为智能卡分发加密密钥。计算过程:P为群G的生成元,选择

(4)将IDA和保存到智能卡中。

(5)用户在电视购物过程中,在向服务器发送信息时,客户端使用智能卡中保存的(IDS, EKA,S)对所要购买的产品ID(下文用M表示)进行加密并得到密文:选择

(6)服务器接收到密文C后,使用解密算法对其解密,只有当密文格式正确且是合法用户发送的信息,才能成功解密,M′即为解密后的信息。计算过程如下:

M′=vH(a),。如果,服务器作为合法明文接收M′。

当用户在数字电视电视上购物时,需要向前端提供自己购买的产品信息,并提交信用卡密码等,对于一些隐秘数据用户并不希望自己的数据以明文形式传送,因为这样很容易被非法用户截获或篡改,给合法用户造成损失,而多对一加密和认证算法恰好可以解决此问题,该算法用于电视购物不仅保证了用户向前

端发送信息的安全性,而且算法本身的特性并不会给服务器造成大的负担。因此,将多对一加密认证算法用于数字电视购物上具有很大的实用性。

4 加解密具体实现过程

多对一加密认证方案是使用椭圆曲线上的双线性映射作为工具,利用基于配对的密码系统的快速原型PBC库实现。PBC提供了双线性映射循环群的抽象接口,使程序和数学细节分离出来[12]。

下面介绍PBC函数库实现计算过程,并简单举一个例子说明如何实现,PBC库中void element_mul_zn(element_t c,element_t a,element_t z)函数表示c=az即a+a+…+a共z个a相加;

void element_pairing(element_t out,element_t int1,element_t int2)函数表示out=e(int1,int2),即实现int1与int2的配对,并且out必须在循环群内;

void element_from_Hash(element_t e, void*data, int len)

表示哈希运算,从缓存data中取出len字节长度的值给e;

加密过程使用Encrypt函数,函数具体实现过程如下:

(注:由于该基于椭圆曲线的多对一加密认证算法中函数的实现过程源代码较长,不附在此处。)

对基于椭圆曲线的多对一加密认证算法的运行时间进行统计(见图3),从图3可以看出:用时在0.855~0.875ms范围内浮动,该算法用时少、效率高,用于数字电视的双向加密体系不会给服务器增加太多额外的时间延时。

图3 算法运行时间统计Fig.3 The algorithm running time statistics

4 结语

本文阐述了数字电视条件接收系统中单向密码体系中存在的无法保证用户端向服务器发送安全信息的弊端,在此基础上改进成一种双向密码体系。在双向密码体系中,运用了多对一加密认证算法,多对一加密认证算法能够有效抵制数字电视信号被非授权用户窃取、伪造等安全问题。随着云电视、智能电视用户的增加,解决身份认证,保证网上信息传输安全和网上行为抗抵赖已刻不容缓!

[1]刘达,龚建荣.数字机顶盒关键技术及交互应用[J].网络与应用,2003(2):20-24.

[2]洪钧,关宏超.条件接收系统密码体系综述[J].广播与电视技术,2002(9):127-130.

[3]周香菊.浅谈MPEG-2技术及数字电视的条件接收系统[J].现代通信,2001(11):22-24.

[4]段先德.数字电视条件接收系统原理研究与工程实践[D].武汉:华中科技大学,2005.

[5]郑志航.数字电视原理与应用[M].第一版.北京:中国广播电视出版社,2000.

[6]Lin X J,Wu C K,Liu F.Many-to-one encryption and authentication scheme and its application[J].Journal of Communications and Networks,2008,10(1):18-27.

[7]潘亚涛.周宏.有线电视机顶盒系统设计与实现[J].电子技术,2000(1):60-62.

[8]Wu C K,Varadharajan V.Many-to-one algorithms and group signatures[C].[S.l.]:ACSC’99,1999:432-444.

[9]Lein Harn.Yang shoubao,Group-oriented undeniable signature schemes without the assistance of a mutually trusted party[C].Bad Honnef:Lectures Notes in Computer Science,1993:133-142.

[10]林喜军,孙琳,武传坤.基于双线性映射的多对一加密认证方案[J].计算机研究与发展,2009,46(2):235-238.

[11]陈辉焱,吕述望.刘振.基于身份的具有部分消息恢复功能的签名方案[J].计算机学报,2006,29(9):112-117.

[12]Ben Lynn.PBC Library Manual 0.5.11[EB/OL].http://crytpto.stanford.edu/pbc/2006Revised by:B2.

猜你喜欢
解密密钥密码
密码里的爱
幻中邂逅之金色密钥
幻中邂逅之金色密钥
炫词解密
解密“一包三改”
密码系统中密钥的状态与保护*
炫词解密
密码抗倭立奇功
TPM 2.0密钥迁移协议研究
密码藏在何处