您的位置:首页 > 其它

一起来学信息安全知识(2)——对称密码和非对称密码

2011-08-22 10:50 363 查看
目前密码分为对称密码和非对称密码。其中,对称密码主要有DES、3DES、AES,非对称密码主要有RSA、ECC。

先举个简单的对称密码的例子。假设有一串数字123789,我们需要对其进行加密,加密的方法是每个数字加1,那么加密前后如下:

明文123789

密文234890

解密过程为每个数字减1。

从上边的例子中我们可以看到,加密算法可以描述为”每个数字加1“,由此可以推出解密过程为”每个数字减一“,这就是对称密码算法。这里的对称,并不是说加密密钥(这里的加的1就可以看作是密钥)和解密密钥一定要相同,而是说加解密密钥可以互相推倒出来。

对称加密脆弱的地方在于,可以近似看作是加解密密钥为同一个密钥,那么在进行安全通信时,通信双方拥有相同的密钥,一旦该密钥泄露,安全也就有了问题。为此,提出了非对称加密。

非对称密码的加解密密钥(暂时先这么理解,随后再细说)是不能相互推导出来的。举个形象的例子:

对称密码:房间A和房间B之间有一扇门,一个在房间A的人(明文)通过这扇门(加密过程)走到房间B(密文),他从房间B(密文)再通过这扇门(解密过程)走到房间A(明文)。即进出为同一扇门,加解密密码相同。

非对称密码:房间A和房间B之间有两扇门D1和D2,其中D1只能从房间A到房间B,D2只能从房间B到房间A。一个在房间A的人(明文)通过D1(加密)走到房间B(密文),他从房间B(密文)通过D2(解密)走到房间A(明文)。其中D1和D2为不同的两扇门,即密钥不同。下面稍微具体说一下非对称加密的两个密钥的关系。

非对称密码的密钥包含一个公钥和一个私钥,在初始化密钥的过程中,会同时生成两个密钥K1和K2(就好比同时制造了两扇门D1和D2),其中K1和K2之间不能互相推倒,从目前的技术来看,无法直接通过K1得到K2,也无法通过K2得到K1。K1和K2的特性如下:

对于数据Data,通过K1进行加密之后,可以通过K2进行解密;也可以通过K2进行加密,通过K1进行解密。即,初始化过程中生成的K1和K2其实是对等的关系,虽然两个密钥不同并且不能互相推倒,但是无论用哪一个密钥进行加密,用与之对应的另一个密钥都可以进行解密。那么,下一步就要将K1和K2区分开来。

非对称密码中的公钥就是可以公开给大家的,私钥就是自己留着的。对于K1和K2,用户可以选择其中一个密钥为公钥,那么另一个即为私钥。现假设K1为公钥,K2为私钥。你拥有K2,你的朋友拥有你公开的K1。你的朋友给你发邮件时,可以通过K1进行加密,这时,只有你拥有K2,只有你能解密。你的私钥K2不是用来加密,而是用来做签名的。

可以先通过上面的描述有个初步的印象,非对称加密签名没有上边说的那么简单,但是基本流程是没有问题的,后续再细说。

[未经作者许可,不得转载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: