标题:加密算法的一些常识admin
等级:管理员
文章:94
积分:493
门派:无门无派
注册:2002年5月19日楼主
-------------------------------------------------------------------------------- 加密算法的一些常识
加密算法很容易理解啦,就是把明文变成人家看不懂的东西,然后送给自己想要的
送到的地方,接收方用配套的解密算法又把密文解开成明文,这样就不怕在路世上如
果密文给人家截获而泄密。
加密算法有俩大类,第一种是不基于KEY的,举个简单的例子,我要加密"fordesign"
这么一串字符,就把每个字符都变成它的后一个字符,那么就是"gpseftjhm"了,这样
的东西人家当然看不明白,接收方用相反的方法就可以得到原文。当然这只是个例子,
现在应该没人用这么搞笑的加密算法了吧。
不基于KEY的加密算法好象一直用到了计算机出现。我记得古中国军事机密都是用这
种方式加密的。打战的时候好象军队那些电报员也要带着密码本,也应该是用这种方式
加密的。这种算法的安全性以保持算法的保密为前提。
这种加密算法的缺点太明显了,就是一旦你的加密算法给人家知道,就肯定挂。日本
中途岛惨败好象就是密码给老米破了。设计一种算法是很麻烦的,一旦给人破了就没用
了,这也忑浪费。
我们现在使用的加密算法一般是基于key的,也就是说在加密过程中需要一个key,用这个key来对明文进行加密。这样的算法即使一次被破,下次改个key,还可以继续用。    key是一个什么东西呢?随便你,可以是一个随机产生的数字,或者一个单词,啥都行,只要你用的算法认为你选来做key的那玩意
合法就行。
这样的算法最重要的是:其安全性取决于key,一般来说取决于key的长度。也就是说应该保证人家在知道这个算法而不知道key的情况下,破解也相当困难。其实现在常用的基于KEY的加密算法在网络上都可以到,很多革命同志(都是老外)都在想办法破解基于key的加密算法又包括俩类:对称加密和不对称加密。对称加密指的是双方使用完全相同的key,最常见的是DES. DES3, RC4等。对称加密算法的原理很容易理解,通信一方用KEK加密明文,另一方收到之后用同样的KEY来解密就可以得到明文。
不对称加密指双方用不同的KEY加密和解密明文,通信双方都要有自己的公共密钥和私有密钥。举个例子比较容易理解,我们们假设通信双方分别是A, B.
A, 拥有 KEY_A1, KEY_A2, 其中KEY_A1是A的私有密钥,KEY_A2是A的公共密钥。
B, 拥有KEY_B1, KEY_B2, 其中KEY_B1是B的私有密钥,KEY_B2是B的公共密钥。
公共密钥和私有密钥的特点是,经过其中任何一把加密过的明文,只能用另外一把才能够解开。也就是说经过KEY_A1加密过的明文,只有KEY_A2才能够解密,反之亦然。
通信过程如下:
A-------->KEY_A2------------>B
A<--------KEY_B2<------------A
这个过程叫做公共密钥交换,老外管这叫key exchange.
之后A和B就分别用对方的公共密钥加密,用自己的私有密钥解密。
一般公共密钥是要发布出去的,然后你通过自己的私有密钥加密明文,人家用你的公共密钥解密,如果能解开,那么说明你是加密人,这就是SSL使用的验证机制。
常用的不对称加密一般有RSA, DSA, DH等。我们一般使用RSA.
数字签名也是不对称加密算法的一个重要应用,理解它对于理解SSL很重要的,放在这里一起介绍一下。
签名是什么大家都很熟悉吧?证明该东西是你写的,是你发布的,你就用签名搞定。
看看那些重要文件都要头头签名。数字签名就是数字化的签名了。记得公用密钥和私有密钥的特征吗?只有你一个人有你自己的私有密钥。而你的公用密钥是其他人都知道的了。那么你在写完一封邮件之后,用自己的私有密钥加密自己的名字,接收人用你的公
密码字符串是什么
共密钥解开一看,哦,是你发的。这就是你的数字签名过程了。
上面的解释是很简化的了,其实数字签名比这个复杂多了,但我们没有了解的必要,知道数字签名是这么一回事就可以了。
还有一种我们需要知道的加密算法,其实我不觉得那是加密算法,应该叫哈希算法,英文是message digest, 是用来把任何长度的一串明文以一定规则变成固定长度的一串字符串。它在SSL中的作用也很重要,以后会慢慢提及的。一般使用的是MD5, SHA.
base64不是加密算法,但也是SSL经常使用的一种算法,它是编码方式,用来把asc 码
和二进制码转来转去的。
具体的加密解密过程我们不需要了解,因为SSL根本不关心。但了解加密算法的一些基本原理是必要的,否则很难理解SSL。
对加密算法的细节有兴趣的同志,可以去网络上这些加密算法的原理的文章和实现
的程序来研究,不过先学数论吧。不懂数论看那玩意还是一头雾水。
2003-10-29 1:42:45
================================================================================ =====
标题:密码学基本知识(一)admin
等级:管理员
文章:94
积分:493
门派:无门无派
注册:2002年5月19日楼主
-------------------------------------------------------------------------------- 密码学基本知识(一)
1.传统的加密方法
传统的加密方法也称为密钥或对称加密,
加密和解密过程使用同一个密钥.
数据加密标准(DES)是传统加密方法的一个实例
现在被(老美的)联邦政府广泛使用.
传统加密方法的一个极简单的例子是置换密码
(substitution cipher). 就是用一种信息替换另一种信息.常见的用法是将字母在字母表中偏移
位置. 朱利叶.凯撒并不相信自己的信使,他把给前线
将领文书中的A全部替换成D,B全部替换成E,用
这样的方法来加密文书.以今天的标准来看这种方法
太简单了,但这对凯撒很实用.这个例子描述了传统
加密方法的原理.
1.1 密钥管理和传统的加密方法
传统加密方法是有优势的.它的速度很快,而且特别适用
于不需要移动的数据.然而,由于安全地发布密钥非常困
难,单独使用传统加密方法来安全传输数据的代价是非常昂贵的.
在间谍影片中常可以看到这样的情节,特工将一个密码箱用手铐和自己的手腕铐在一起.密码箱中有什么呢?多数
情况下里面不是导弹发射密码,不是化学公式,也不是入侵
计划,而是用来解密的密钥.
对于使用传统加密方法进行安全通讯的手法双方来说,
他们必须拥有相同的密钥而且不能让别人知道.如果他们
处在不同的物理位置,必须相信信使,加密电话或者其他
的安全通讯介质,防止在传输过程中泄露密钥.在传输过程
中,偷听或截获到密钥的任何人,就能够阅读,修改和伪造用
这个密钥加密或认证的所有信息. 无论DES还是凯撒,传统
加密方法的永恒问题就是密钥的发布,怎样才能使接收者
得到密钥而不被其他人截获呢?
2.公开密钥加密法
公开密钥加密法可以解决密钥发布的问题,公开密钥的概念
由Whitfield Diffie&Martin Hellman在1975年提出.(现在有证据表明英国情报机关先于Diffie&Hellman几年发明了
这种方法,但是却作为军事秘密,而且在这方面的工作什么也没做)
公开密钥加密法是一种使用一对密钥的非对称加密手段.公钥用于加密,私钥用于解密
公钥可以让所有人知道,而私钥却必须保密.任何人(甚至是你从未见过的人)用你的公钥加密的信息只有你可以看懂.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。