VPN的加密算法

来源 :教育教学论坛·下旬 | 被引量 : 0次 | 上传用户:sanlyye
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:VPN技术是近年来用于解决网络安全问题的新技术之一,数据加密是VPN实现的基础。本章从密码学角度出发,介绍了实现VPN所使用的各种加密算法。为了确保VPN的安全性,选择高效的AES加密算法应用于IPSec。
  关键词:虚拟专用网 加密算法 AES
  
  一、VPN技术
  VPN——虚拟专用网(Virtual Private Network)是专用网络在公共网络如Internet上的扩展。VPN通过私有隧道技术在公共网络上仿真一条点到点的专线从而达到安全的数据传输目的。如果要仿真一条专线,为保证传输数据的安全通常还要对数据进行加密处理。在局域网之间进行信息传输时,VPN网关的加密功能能够保证信息在不安全的网络上传输时采用密文形式。这样,即使信息被截取,它的内容也无法被偷窥和篡改。保证通过互联网连接的各个局域网间的信息传输是安全的、机密的。
  二、加密算法
  加密就是对信息重新进行编码,隐藏信息内容,使非法用户无法获得信息的真实内容。信息被称为明文。隐藏信息的过程称为加密。加密后出现的信息称为密文。由密文恢复原文的过程称为解密。密码算法就是用于加密和解密的数学函数。
  1.CBC算法。
  CBC(Cipher Block Chain)模式即密码分组链接模式,是很好的加解密模式。每一分组被用来修改下一分组的加密。加密公式为:Ci=Ek(Mi⊙Ci-1);解密公式为:Mi=Ci-1⊙Dk(Ci),其中,Ek(x)是用密钥k对明文加密,Dk(x)是用密钥k对密文解密。
  为了避免两个完全相同的明文被加密成完全相同的密文,用一个随机数据作为第一个分组,即初始向量IV(Initialization Vector),其大小与分组块一致。IV只是参与消息加解密的一个“填充物”,没有实际意义,可以与密文一起传送,不必另行加密。由于一个明文消息不可能总是恰好分成64位分组,最后一个分组经常会不足64位,而CBC要求对相同大小的分组进行加密。因此,需要对最后的分组进行填充(Padding),使其成为一个完整的64位分组,然后进行处理。
  2.DES(Data Encryption Standard)算法。
  DES(数据加密标准)采用传统加密方法的区组密码。在相信复杂函数可以通过简单函数迭代若干次得到的原则下,用8个S盒和P-置换,经过16次迭代产生64位密文。每次迭代使用的48位子密钥由原来的56位产生。明文被分成64位的块,然后用密钥把每一块明文转化成64位的密文。
  旧版数据加密标准DES自20世纪70年代采用以来,一直算是不错的数据加密算法。Windows2000自带的VPN系统支持DES,不过由于使用的密钥相对较小(56位),由于在现有的技术条件下用穷举法寻找正确密钥已趋于可行,已有被攻破的纪录,所以若要安全保护10年以上的数据最好不用DES算法。为克服这个缺陷,IPSec VPN用三重DES算法来增强DES安全性。用三把不同密钥对数据连续加密3次,构成3DES。它等价于把DES的钥匙长度增加到112位。钥匙长度每增加1位,钥匙总数就会翻一番,能有效地防止对密钥的穷尽搜索。但是,3DES加密解密的运算量也会是DES的3倍。对一小段数据输出前进行三重加密需要优良的CPU,消耗资源大。
  3.AES算法。
  近年来,高级数据加密标准AES出现,这是一种安全强度更高、更适合软硬件实现的高效加密标准。AES标准的实现是Rijndael算法。
  Rijndael算法是一种迭代分组密码,即代替——置换网络(SPN)。它是以字节定义的,使用有限域GF(28)。如果一个字节a由a7a6a5a4a3a2a1a0组成,则用系数在{0,1}中的多项式表示为a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a0。两个字节的和或差是一个多项式,其系数是相应系数的模2加(异或运算),乘法与模2元域上的不可约多项式m(x)=x8+x4+x3+x+1的多项式乘法一致。在这个域上的模m(x)多项式相乘运算举例:[(x4+x2+1)⊙(x3+x)]modm(x)=[(x7+x5+x3)+(x5+x3+x)]modm(x)=(x7+x)modm(x)=x7+x。
  由于外部输入的密码密钥长度有限,所以要用一个密钥扩展程序把密码密钥扩充成更长的比特串,以生成各轮的轮回密钥。设NK为密钥中4字节(32位)字的个数,则128、192、256位密钥长度的NK值分别为4、6、8,密码密钥按如下程序(C++伪代码)扩充成扩展密钥。
  其中,Nb=数据塊长度/32,Nr为轮回次数,W[]是4字节的数组,Rot()把一个四字节的字节循环左移,例如:[a0,a1,a2,a3]变为[a1,a2,a3,a0],Sub()对一个四字节的字节进行S盒变换,Rcon()是轮回常数,其值为[xi-1],即x0为{01},x1为{02},x2为{04},x3为{08}……
  轮回密钥从这个扩展密钥里得到。对于不同的密钥长度和数据块长度,其轮回次数不一样。例如:对于128位密钥,需要轮回次数为10;对于192位密钥,需要轮回次数为12;对于256位密钥,需要轮回次数为14等等。
  从以上分析可以看出,Rijndael的高效算法有很多优点。AES内部有简洁精确的数学算法,而加密数据只需一次通过。DES算法存在弱密钥和半弱密钥会降低算法的安全性。而Rijndael加密算法对密钥扩展,所产生的轮回密钥随机性很强,对初始密钥的选取没有专门的限制,因此不存在弱密钥和半弱密钥的问题。
  差分分析和线性分析方法都是针对Feistel结构设计的密钥分析方法。16次迭代的DES算法就是这样被破译的。AES的Rijndael算法在每轮的转换中并不具有Feistel结构,它的3个独特的可逆均衡转换可以将中间状态的每一位按照同样方式处理,进而避免了Feistel结构产生的加密信息不均匀的问题。7次轮回以上的Rijndael算法对于针对Square算法提出的攻击方法是免疫的。
  三、结论
  通过对以上各种加密算法的比较,可以看出不同的算法不仅在安全性能上有重大差别,在使用性能和资源有效利用上也有很大差别。高效的AES具有其它算法无法能及的优越性,例如原来3DES中密钥大小是64bits,在AES中改为128bits。所以在实现IPSec VPN的过程中更倾向于采用AES的模式。
  参考文献:
  1.何宝宏.IP虚拟专用网技术.北京:人民邮电出版社,2002,15~17.
  2.戴宗坤,唐三平.VPN与网络安全.电子工业出版社,2002,10~12.
  3.唐琰琰.AES的快速实现及其安全性分析.广州大学硕士学位论文,2006,7~13.
  4.张清华.Rijindael算法的高效实现及其性能分析.计算机应用,2004,(2).
  5.黄智颖,张焕国.高级加密标准AES及实现技巧.计算机工程与应用,2002,(9).
其他文献
【正】 近年来,语言学上的术语随着语言科学本身的发展,越来越受到重视。各个语言学发达的国家已陆续有这类工具书的出版。这里仅就笔者见到的几种加以简介。至于术语方面比
一、安阳县农民文化、科技素质现状安阳县总人口有93万人,现有农业人口80.2万人,占总人口的75%。其中.从事二、三产业的及在校学生等共30万人.剩余50.2万人滞留在土地上耕耘。以现在
目的:探讨替格瑞洛联合尿激酶溶栓治疗ST段抬高型心肌梗死(STEMI)的临床效果。方法:选取某院收治的98例STEMI患者,利用随机数字表法分为2组,每组各49例。2组均使用尿激酶溶栓
【正】 美国全国性的《现代语言学会会报》(PMLA)于1961年5月,向美国六十家语文杂志(包括与文学部门有关者)作了第三次杂志编辑发行情况调查。这次调查中有发行量、投稿发表
谱聚类是在谱图划分理论基础上产生的聚类分析的一个崭新的分支,与传统的聚类算法相比,具有能在任意形状的样本空间上聚类,且能收敛于全局的优点。谱聚类算法利用Laplacian矩阵
何庄煤矿井底车场全线贯通点位于副井井筒北侧,贯通点南边以下为深20 m的罐窝.为防止贯通时大量矸石落入罐窝,采取封闭罐窝、放掏槽炮等措施,实现了安全、准确、快速贯通.
一、迷人的泥咕咕儿时的记忆里,当我们跟着大人在庙会里穿梭,看着各式各样五彩斑斓的泥哨子,听着它们发出“滴滴”、“咕咕”、“嘟嘟”、“呜呜”等动听的声音时,谁不承认这是自
分析了巨厚砾岩层下开采时地表移动破坏的特征和产生的原因.
分析了复合胶体的防灭火机理,介绍了复合胶体的配制要求及施工工艺,对相同条件下的矿井防灭火有借鉴作用。
加拿大Britih Columbia大学的Bursill-Hall编的这个书目,开列了近二十年来出版的欧美结构主义语言学重要著作;它所以限于句法分析理论方面,这在书目引言中已经有所说明。我们