WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2628查看
  • 0回复

主题

好友

1852

积分

金牌会员

发表于 2010-7-21 11:46:26 |显示全部楼层
1.简单的加密方法:换位和置换

    换位和置换(transposition and substitution ciphers)是两种主要的编码方法,是组成最简单的密码基础。换位很像是一种字母游戏,打乱字母的顺序,并设法用这些打乱的字母组成一个单词。在换位密码中,数据本身并没有改变,它只是被安排成另一种不同的格式,有许多种不同的置换密码,有一种是用凯撒大帝的名字Julias Caesar命名的,即凯撒密码。它的原理是每一个字母都用其前面的第三个字母代替,如果到了最后那个字母,则又从头开始算。字母可以被在它前面的第n个字母所代替,在凯撒的密码中n就是3。

    2.基于密钥的密码算法

    这种算法通常有两类:对称算法和公开密钥算法。

    (1) 对称算法

    对称算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。大多数对称算法中,加、解密的密钥是相同的,这些算法也称为秘密密钥算法或单密钥算法。它要求发送者和接收者在安全通信之前,商定一个密钥。算法的安全性依赖于密钥,只要通信需要保密,密钥就必须保密。

    对称算法又分为两类:分组算法和序列算法,两者区别在于分组算法是对一个大的明文数据块(分组)进行运算;序列算法是对明文中单个位(或字节)进行运算。对称算法体制的发展趋势将以分组密码为重点,着名的对称密码算法有:

    1)  DES(Data Encryption Standard)数据加密标准

    最着名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在70年代发展起来的,该标准于 1977年由美国国家标准局颁布,主要用于民用敏感信息的保护,后被国际标准化组织接受作为国际标准。DES主要采用替换和移位的方法,使用56位密钥每次处理64位数据,运算速度快,易于用软件实现,也适合在专用芯片上实现。DES是一种世界公认的好的加密算法,自它问世以来经受住了许多科学家的研究和破译,曾为全球贸易、金融等部门提供了可靠的通信安全保障。但它也有明显的缺点,密钥太短, 有56位。目前已有许多DES被破译的报道,因此为了提高安全性,DES又有了新的发展。比如:三重 DES 使用双密钥加密的方法,即使用两个 56 位的密钥 k1、k2,发送方用 k1 加密,k2 解密,再使用 k1加密。接收方则使用k1解密,k2加密,再使用k1解密,其效果相当于将密钥的长度增加到112位。还有三重DES的变形算法,使用三个独立密钥,相当于密钥长度增加到168位等。

    2) IDEA(International Data Encryption Algorithm)国际数据加密算法

    IDEA由瑞士的Xuejia Lai和James Massey于1990年正式公布,并在以后得到增强。这种算法是在DES算法的基础上发展起来的,类似于三重DES。发展IDEA也是因为感到DES使用的密钥太短。IDEA的密钥为 128 位,这么长的密钥在未来若干年内应该是安全的。IDEA 算法也基于分组,它采用软件和硬件实现都同样快速,目前软件实现的IDEA比DES快两倍。由于IDEA是在美国之外提出并发展起来的,避开了美国法律上对加密技术的诸多限制。因此,有关IDEA算法和实现技术的资料可以自由出版和交流,可极大地促进IDEA的发展和完善。但由于该算法是一个相对较新的算法,针对它的攻击也还不多,还未经过较长时间的考验。因此,尚不能判断出它的问题和缺陷。

    这一类算法的优点是有很强的保密强度,且经受住时间的检验和攻击,但其密钥必须通过安全的途径传送。因此,其密钥管理成为系统安全的重要因素。

    (2) 公开密钥算法

    公开密钥算法是指使用一对密钥加解密信息,加密的密钥不同于解密的密钥,而且解密的密钥不能根据密钥在合理的时间和财力内计算出来。之所以叫公开密钥算法(以下简称公钥算法),是因为加密密钥能够公开,谁都可以使用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。

    着名的公钥算法有:

    1) RSA算法

    RSA由美国的Rivest、Shamir和Adleman于1978年提出。该算法基于大数分解的难度,即已知合数n,求pq,使n=pq。所以随着大整数分解算法和计算能力的不断提高,对RSA的破译能力也在增强。有报道482位的RSA已被利用数域筛NFS分解出来,512位也可以在数月时间被分解,1024位的RSA目前仍是比较安全的。与DES相比,RSA拥有更高的安全。与DES相比,RSA拥有更高的安全性,但执行速度慢,因些两者经常结合起来使用,DES加密速度快,适合加密较长的报文;而 RSA 可解决 DES 密钥分配的问题。比如:若 A 要与 B 通信,首先 A产生一个与B通信的DES密钥,用B的公钥对通信密钥加密后传给B,B用其私有密钥(只有B拥有)解密,获得双方的一次性通信DES密钥。然后双方采用此DES通信进行保密通信。

    2) Diffe-Hellman算法

    该算法是第一个公钥算法,由美国的Diffe和Hellman于1976年提出。其安全性源于在有限域上计算离散对数比计算指数更困难,该算法主要用于密钥交换。协议如下:首先A与B协商一个大的素数n和g ,g是模n的本原元;A选取一个大的随机数x并且发送给B:X=gx mod n;B选取一个大的随机数y并且发送给A:Y=gy mod n;A计算k2=Yx mod n;B计算k2=Xy mod n,k1和k2都等于gxy mod n,偷听者即使知道n,g,X和Y,也无法计算出k,除非他们计算离散对数,因此k是A与B的秘密密钥。

    3) 椭圆曲线

    椭圆曲线已研究了许多年,Koblitz和Miller 于1985年分别提出将它用于公钥密码体制。椭圆曲线的吸引人之处在于提供了由元素和组合规则来组成群的构造方法,即利用椭圆曲线上的点构成 Abelian 加法群构造离散对数问题。基于有限域GF(2n)的椭圆曲线算术运算器很容易构造,并且n在130位至200位之间的实现相当简单,它提供了一个更快的具有更小密钥长度的公钥算法。

    公钥密码的优点是可以适应网络的开放性要求,且密钥管理问题也较为简单,尤其可方便的实现数字签名和验证。但其算法复杂,加密数据的速率较低,尽管如此,随着现代电子技术和密码技术的发展,公钥密码算法将是一种很有前途的网络安全加密体制。

    当然在实际应用中人们通常将常规密码和公钥密码结合在一起使用,比如:利用DES或者IDEA来加密信息,而采用 RSA 来传递会话密钥。如果按照每次加密所处理的比特来分类,可以将加密算法分为序列密码和分组密码。前者每次只加密一个比特而后者则先将信息序列分组,每次处理一个组。

    3.广泛运用的PGP

    PGP(Pretty Good Privacy)是一个基于RSA公钥加密体系的邮件加密软件,它的创始人是美国的PhilZimmermann。其创造性在于把RSA公钥体系的方便和传统加密体系的高速度结合起来,可以用它对邮件保密以的邮件加上数字签名,从而使收信人可以确信邮件是用户发来的。它让用户可以安全地和从未见过的人们通信,事先并不需要任何保密的传递密钥。它采用了以下技术:审慎的密钥合算法、用于数字签名的邮件往往不加密前压缩等,还有一个良好的人机工程设计。它功能强大、速度很快,而且其源代码是免费的。实际上PGP的功能还不止上面说的,PGP可以用来加密文件,还可以用PGP代替UUencode生成RADIX64格式(就是MIME的BASE 64格式)的编码文件。

    为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法,首先解释一下什么叫传统加密,简单地说就是用一个密钥加密明文,然后用同样的密钥解密。这种方法的代表是DES(US Federal Data Encryption Standard),也就是乘法加密,主要缺点就是传递渠道解决不了安全性问题,不适合网络环境邮件加密需要。IDEA 是一个有专利的算法,专利持有者是 ETH 和一个瑞士公司Ascom-Tech AG,非商业用途的IDEA实现不用向他们交纳费用。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥用IDEA算法对明文加密,然后用RSA算法对该密钥加密,这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身,这样的链式加密就做到了既有RSA体系的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。

    关于公钥的产生问题是PGP安全的核心,在这里就不细说了。和传统单密钥体系一样,私钥保密是决定性的。相对公钥而言,私钥不存在被篡改的问题,但存在泄露的问题。RSA的私钥是很长的一个数字,用户不能将它记住,PGP 的办法是让用户为随机生成的 RSA 私钥指定一个口令。只有通过给出口令才能将私钥释放出来使用,用口令加密私钥的方法保密程度和PGP本身是一样的,用穷举法可试探出用户的口令,虽说很困难但毕竟是损失了安全性。这里只要简单地记住一点,要像其他隐私一样保藏自己的私钥,认证有机会接触到它,最好只在大脑中保存它,不要写在纸上。

    PGP在安全性的审慎考虑体现在PGP的各个环节。比如每次加密的实际密钥是随机数,大家都知道计算机无法产生真正的随机数的。PGP 程序对随机数的产生是很审慎的,关键的随机数(像RSA 密钥的产生)是从用户敲键盘的时间间隔上取得随机数种子的。

    在这里提一下PGP的加密前预压缩处理,PGP内核使用PKZIP算法来压缩加密前的明文。一方面对电子邮件而言,压缩后加密再过7 bits编码的密文有可能比明文更短。这就节省了网络传输的时间。另一方面,明文际上相当经过一次变换,信息更加杂乱无章,对明文抵御能力更强,PGP中使用的PKZIP算法的压缩率压缩速度都相当好的压缩算法是经过原作者同意的,PKZIP算法是个公认,在PGP中使用的是PKZ的算法。IP2.0版本兼容的算法。

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-4 03:47 , Processed in 0.059054 second(s), 16 queries .

返回顶部