电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

EPON三重搅动加密算法及其安全性分析

作者:    时间:2007-12-25    来源: 

 

      

1 引言

EPON使用点到多点的树状拓扑结构,它的上行数据传输采用时分复用方式,下行数据传输采用广播方式,存在窃听(Eavesdropping)、假冒(Impersonation)和拒绝服务(Denial of service)等安全威胁。

窃听ONU可以接收到OLT广播的所有下行信息,并且共享上行信道的容量和网络资源。因此,每个ONU都可以一天24小时不间断地监听所有的下行流量并且不会被发现。攻击者不费吹灰之力就可以得到重要数据,如OAM数据,网络状态信息等。

假冒 初始化注册执行过程中,OLT寻找ONU并分配ONU ID。攻击者有机会获得MAC地址,通过传送假的注册帧到OLT,以此假冒成另一个0NU,并使OLT相信它是合法的。攻击者通过假冒获取网络的资源和信息,而且还能够向ONU发送关于管理和注册的假信息。

拒绝服务上行方向,ONU共享上行带宽和资源。攻击者通过恶意ONU向网络发送大流量有效或无效的信息,造成网络堵塞,使得网络资源和OAM信息不可用,从而导致其他ONU得不到分配的带宽。

搅动算法是针对PON结构提出的一种安全解决方案,目前搅动算法分为单重搅动(single churning)和三重搅动(triple churning)。三重搅动算法是在单重搅动算法的基础上扩展而成。信息产业部发布标准"接入网技术要求--EPON系统互通性要求"中已采用三重搅动算法作EPON加密标准。本文详细介绍三重搅动加密算法的原理,并对其密钥数量、时域关联、比特移位等特性进行分析。

2 三重搅动加密算法

EPON系统下行方向采用广播方式,恶意用户很容易截获系统中其它用户的信息。ONU为了使自己的信息不被其他ONU读懂,要求OLT在发送它的数据信息前按每个ONU自己提供的密码(搅动键)在TC层进行搅动加密。

应OLT的要求,ONU提供搅动键,使用3个字节的键完成搅动功能。搅动键是从上行用户数据中提取出来的3个字节数据和3个字节随机产生数的异或相加的结果。这三个字节共24位码,它们是X1-X8和P1-P16,均映射在信息域中。

通过对X1-X8和P1-P16的逻辑运算,产生搅动键K1-K10。在搅动端利用K1、K2、P1-P12共14比特按照固定对8比特宽的数据流进行搅动,在解搅动端利用同样的14比特对8比特长的经过搅动的数据(密文)进行解搅动。

搅动、解搅动按如图1所示方式实现。

为防止窃听者逐个试探解密,需要对搅动键定时更新,每个ONU更新的频率至少每秒更新一次。

三重搅动算法是在单重搅动算法的基础上扩展而成,其增加了搅动后数据的时域关联性,进而提高用户数据的安全性。为提高用户数据的保密性,系统支持针对每个LLID的搅动功能.每个LLID都有独立的密钥。搅动由OLT提出密钥更新要求,ONU提供3字节搅动密钥,OLT使用此密钥完成搅动功能。在启用搅动功能后,对所有的数据帧和OAM帧进行搅动。搅动密钥的更新和同步过程采用基于OrganizationSpecific Exfension的OAM PDU方式。

三重搅动采用3个级联的搅动器,每个搅动器均执行上述规定的单重搅动操作,每次搅动使用的密钥不同。三重搅动的第一级搅动功能采用原始的24比特密钥(X1-X8,P1-P16),第二级搅动所采用的密钥由原始24比特密钥右循环移位1字节后获得(P9-P16,X1-X8,P1-P8),第二三级搅动所采用的密钥由将原始24比特密钥右循环移位2字节时获得(P1-P16,X1-X8)。

第一级搅动引擎chutning_1的输出与两个8位矢量进行逐比特的异或(XOR)运算:第一个矢量是前一个输入加密字节,当所加密的字节为一个数据帧的第一个加密字节时,该矢量为密钥的最低位字节。第二个矢量是4个字节前的三重搅动后的数据输出。对于一个帧中的前4个加密字节,用"0"代替data_out[N-4]。XOR_1的输出经过比特移位输入ehurning_2。移位规则如下:比特2、4交换,比特3、5交换,比特0、1、6、7位置不变,如图2所示。

第二级搅动引擎Churning_2的输出也与两个矢量进行逐比特XOR运算:第一个矢量是二字节前的输入加密字节,当所加密的字节为一个数据帧的第一个加密字节时,该矢量为密钥的第二低位字节。当所加密的字节为一个数据帧的第二个加密字节时,该矢量为密钥的最低位字节。第二个矢量是5个字节前的三重搅动后的数据输出。XOR_2的输出仍然经过比特移位输入第三级搅动引擎chuming_3,移位规则同前。三重解搅动的实现为三重搅动功能的简单镜像,其实现方案如图3所示。

3 三重搅动加密算法的安全性分析

ITU-T G.983标准描述的单重搅动采用3字节随机数作为搅动码.搅动码和其生成的10比特辅助搅动参数构成一组搅动密钥.在搅动端对固定8bit宽的数据流进行搅动。24比特对8比特明文搅动得到8比特密文,但上文已知对半个字节的搅动密钥仅有8比特,而高半字节和低半字节搅动过程中没有相关性,因此对于8比特明文的搅动所使用到的密钥最多不超过16个,密钥总数相当于216=65536,采用穷举法破译.每微秒可搜索一百万次的计算机所需破译时间不到0.1μs。

三重搅动密钥包含三个级联搅动器,搅动器中采用的密钥按字节循环使用。这样每个搅动器的密钥均不相同,三重搅动的实际密钥为长度为48比特,密钥总数为248,已接近DES的密钥长度(56比特)。简单采用穷举法进行破译所需的时间大大超过密钥更新的周期,因此具有较好的安全性。

为了提高异或运算的破译难度,三重搅动算法将加密算子的数量设为两个。一个是第4或第5字节前三重搅动的输出数据,一个是第1或第2字节前的输入数据。该方式可以使当前搅动输出与以前的搅动输出相关联,使单重搅动情况下容易重复出现的某些图案在三重搅动情况下无法被探测到。时域关联使加密算子无规律地更新。三重搅动的数据关联性如图4所示。

三重搅动采用比特移位的方式,使高半字节和低半字节相关联。和单重搅动相比,单独破译出半字节数据的情形将不再出现,每比特数据对应的密钥数由原来的8个增加到14个,如比特3原来只由有K1、K2、P1-P4、P9和P10共8比特密钥决定,现在则为K1-K2和P1-P12共14比特密钥决定,数据加密的复杂性得到提高。

4 结束语

单重搅动算法的密钥长度短,安全级别低,最简单的穷举攻击也能对它实现短时间破译,不适宜在EPON系统中应用。三重搅动算法使用三个级联搅动器,增加密钥数量,采用时域关联的异或运算,并用比特移位实现了明文高低半字节之间的搅动连接。三重搅动算法保留了搅动方案所特有的优点,采取上述措施可相对提高算法的安全性,并且成本较低,从而弥补了单重搅动算法安全性不高的缺陷,三重搅动算法在现有的EPON系统中能较好的发挥作用。

但是,和AES相比,三重搅动算法的安全性仍然不高,攻击者仍然有较高的概率可以获得密钥。随着PON系统的速度不断提高,安全需求不断增加,三重搅动算法安全性差的弱点将会愈加明显。我们知道PON系统不仅需要采用加密技术保证下行的安全性,还需要认证技术保证上行安全性。因此,PON系统需要能够同时提供加密认证,支持高速,并具有较高安全性的安全解决方案,目前关注较多的分组密码工作模式是一种较为理想的选择。

博主
lihailin560@163.com
lihailin560's Blog
lihailin560
点击跳转