电力频道

您现在的位置:首页>专题案例

电力调度数据网中DES算法分析与抗蛙跳网络部署

作者:郭为斌     浏览量:53
0 引言
随着电力调度数据网的应用与推广,电力调度数据网运行安全性受到日益重视,电力调度数据网通过III区实现与互联网相连,解决网络攻击成为电力调度数据网安全防护的重中之重。
1 DES算法
DES同时使用了代换和置换两种技巧,它用56位密钥加密64位明文,最后输出64位密文。整个过程分为两大部分(见图1):加密过程,子密钥产生过程。
                       QQ��ͼ20150105152454.png
                                图1 DES加密算法简图
1.1初始置换( IP)
初始置换是数据加密的第1步,将64位的明文按照图2置换(置换表中的数字表示输入位在输出中的位置)。
                          QQ��ͼ20150105153106.png
                                图2 初始置换
置换后将数据M分成两部分:左半部分L0和右半部分R0,各32位。划分原则是偶数位移到左半部,奇数位移到右半部。
1.2 DES每轮结构
DES每轮结构如图3所示。上一轮的右边Ri-1直接变换为下一轮的左边Li,上一轮的左边Li-1与加密函数F异或后作为下一轮的右边Ri,加密函数F则是上一轮右边Ri-1和子密钥Ki的函数。即:
Li = Ri–1
Ri = Li–1 ⊕ F(Ri–1, Ki)



                        QQ��ͼ20150105153222.png

                                图3 DES每一轮结构
加密函数F 本质上是Ri-1和子密钥Ki的异或,如图4所示,但由于它们的位数不一样,不能直接运算。从上式可以看出加密函数F是32位,而Ri-1是32位,子密钥Ki是48位,因此Ri-1和Ki不能直接异或。DES处理这个问题的方式:先用扩展置换E(如图5所示)将Ri-1扩展为48位,与48位子密钥异或,输出48位;再使用8个S盒压缩成32位,然后经置换函数P(如图6所示)输出32位的加密函数F。
                        QQ��ͼ20150105153259.png

                                图4 加密函数F的计算过程
                            QQ��ͼ20150105153329.png
                                图5扩展置换E
                          QQ��ͼ20150105153401.png
                                图6置换函数P
1.3 S盒
在加密函数计算过程中使用了8个S盒。S盒是一种非线性变换,也是DES中唯一的非线性运算。S盒有6 位输入,4 位输出。48位数据经过8个S盒后输出32位数据。每个S盒都由4行(表示为0,1,2,3)和16列(0,1,…,15)组成,如图7所示。
                  QQ��ͼ20150105153511.png
                                  图7 DES的S盒
对每个S盒,将6位输入的第一位和最后一位组成一个二进制数,用于选择S盒中的一行;用中间的4位选择S盒16列中的某一列,行列交叉处的十进制数转换为二进制数可得到4位输出。
1.4 DES子密钥产生
DES加密过程共迭代16轮,每轮用一个不同的48位子密钥。子密钥由算法的56位密钥产生。DES算法的输入密钥长度是64位,但只用了其中的56位,如图8所示, 每行的第8位被忽略,主要用于奇偶校验,也可以是随意设置。
                      QQ��ͼ20150105153544.png
                                 图8 DES的输入密码
子密钥的产生过程如图9所示。
                      QQ��ͼ20150105153622.png
                                图9 子密钥产生过程
56位密钥首先经过置换选择1(如图10所示)将其位置打乱重排,将前28位作为C0(图10上部分),后28位为D0(如图10下部分) 。



                     QQ��ͼ20150105153703.png

                                图10 置换选择1
接下来经过16轮,产生16个子密钥。每一轮迭代中, Ci-1和Di-1循环左移1位或者2位。Ci-1和Di-1循环左移后变为Ci和Di,将Ci和Di合在一起的56位,经过置换选择2(如图12所示),从中挑出48位作为这一轮的子密钥,再将Ci和Di循环左移后,使用置换选择2产生下一轮的子密钥,如此继续,产生所有16个子密钥。

                        QQ��ͼ20150105153726.png
                                 图1置换选择2
1.5 DES解密
DES解密过程与加密过程本质上一致,使用同一个算法,使用相同的步骤和相同的密钥。主要不同点是将密文作为算法的输入,但是逆序使用子密钥ki,即第1轮使用子密钥k16,第2轮使用子密钥k15,最后一轮使用子密钥k1。
1.6三重DES
为防止中间相遇攻击,可以采用3次加密方式。程序中当密钥大于8个字节时系统自动使用3次DES加/解密,否则使用标准DES加/解密。超过16字节后只取前16字节。
2DES算法安全性分析
DES是将Lucifer算法作为标准,Lucifer算法的密钥长度128位,但DES将密钥长度改为56位, 这不能抵抗穷尽密钥搜索攻击。
1999年,电子边境基金会(EFF)通过互联网上的10万台计算机合作,仅用22小时15分就破译了56位的DES。
另外,DES存在弱密钥。如果一个密钥所产生的所有子密钥都是一样的,则这个外部密钥就称为弱密钥。
针对DES的密码分析有:穷举攻击,用于任何分组密码,攻击复杂度只依赖于分组长度和密钥长度;差分分析法;线性分析法。
由于安全问题,美国政府于1998年12月宣布DES不再作为联邦加密标准。新的美国联邦加密标准是高级加密标准(ASE)。在新的加密标准实施之前,为了使已有的DES算法投资不浪费,NIST在1999年发布了一个新版本的DES标准(FIPS PUB46-3),该标准指出DES仅能用于遗留的系统,同时将三重DES(简3DES)取代DES成为新的标准。
目前还没有针对两个密钥的三重DES实际的攻击方法,但它并不太可靠,而采用三把密钥的三重DES则更为可靠。三把密钥的三重DES的密钥长度是168位,采用加密-解密-加密(E-D-E)方案。其加密过程为C=EK3[DK2 [EK1[M]]],解密过程为M=DK1[EK2 [DK3[C]]]。
3抗蛙跳攻击的网络部署
蛙跳攻击就是用像木马、僵尸这样的程序工具先控制某个网上主机,把它作为跳板,操纵它来攻击真正的目标。这样做可以掩护攻击者的真实身份,给事发后的追查增加困难,同时还能借跳板的身份来麻痹对方。

DMZ(隔离区)是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。另外,通过DMZ区域,可更加有效地保护内部网络,因为这种网络部署比起一般的防火墙方案,对攻击者来说又多了一道关卡。其网络结构如图12所示。



图12 DMZ网络结构
DMZ是一个过滤的子网,在内部网络和外部网络之间构造了一个安全地带。
在DMZ区域中通常包括堡垒主机、Modem池,以及所有的公共服务器。但电子商务服务器只能用作用户连接,真正的电子商务后台数据需要放在内部网络中。
在该防火墙方案中,包括两个防火墙,外部防火墙抵挡外部网络的攻击,并管理所有内部网络对DMZ的访问;内部防火墙管理DMZ对于内部网络的访问。内部防火墙是内部网络的第三道安全防线(前面有外部防火墙和堡垒主机),当外部防火墙失效时,它还可以起到保护内部网络的作用。在这样的结构里,一个黑客必须通过三个独立的区域(外部防火墙、内部防火墙和堡垒主机)才能够到达局域网。内部网络的安全性大大加强,但投资成本也是最高的。
为了防止蛙跳攻击,内网和DMZ之间的防火墙R1、DMZ和外网之间的防火墙R2的配置分别如表1、表2所示。
表1 R1的配置
num Director Src IP Src port Dest IP Dest port ACK Action
1 Out 内网 * 外网 * * allow
2 In 外网 * 内网 * 1 allow
3 Out 内网 * DMZ * * allow
4 In DMZ * 内网 * 1 allow
5 Both * * * * * deny

表2 R2的配置
num director Src IP Src port Dest IP Dest port ACK Action
1 out 内网 * 外网 * * allow
2 in 外网 * 内网 * 1 allow
3 out DMZ * 外网 * 1 allow
4 in 外网 * DMZ * * allow
5 both * * * * * deny



参考文献
[1]Vapnik, V.. Statistical learning theory[M]. New York: John Wiley, 1998
[2] 李红莲, 王春花. 针对大规模的支持向量机的学习策略[J]. 计算机学报, 2004, 27(5): 716-718
[3]Bruce Eckel. Thinking In Java(英文第4版)[M].北京:机械产业出版社,2007

收稿日期:2014-10-18
上一篇企业产品测试 下一篇柔性直流输电换流阀冷却系统研究..

重庆凯典科技信息有限公司版权所有 地址:重庆市渝北区武陵路上海大厦B栋 电话:023-67605105 传真:023-67903515 备案号:渝ICP11004587