一起来学信息安全知识(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不是用来加密,而是用来做签名的。
可以先通过上面的描述有个初步的印象,非对称加密签名没有上边说的那么简单,但是基本流程是没有问题的,后续再细说。
[未经作者许可,不得转载]
先举个简单的对称密码的例子。假设有一串数字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不是用来加密,而是用来做签名的。
可以先通过上面的描述有个初步的印象,非对称加密签名没有上边说的那么简单,但是基本流程是没有问题的,后续再细说。
[未经作者许可,不得转载]
相关文章推荐
- 密码学基础知识(一)信息安全与密码学
- 一起来学信息安全知识(4)——CRC, MD5, SHA1的关系与区别
- 信息安全——对称密码体制
- 20141103 【 信息安全 】 对称密码体系 —— DES 加密算法
- 信息安全理论(2)--对称密码体制
- 信息安全——非对称密码体制
- 密码学基础知识(一)信息安全与密码学
- 通过代理截取并修改非对称密钥加密信息 加密、解密算法总的来说可以分称对称密钥加密以及非对称密钥加密算法。 对称密钥加密算法要求加密和解密都用同一把密钥。这可能是对称密码体制的主要弱点(为了让对方能够
- 一起来学信息安全知识(3)——签名
- 一起来学信息安全知识(1)——一个小故事的大道理
- [信息安全] 1.密码工具箱
- 信息安全——RSA密码系统的实现
- java-信息安全(九)-基于DH,非对称加密,对称加密等理解HTTPS
- 【每日安全资讯】数千服务器泄漏密码密钥等敏感信息
- Java安全之对称加密、非对称加密、数字签名
- [走火入魔失眠夜]浅谈管理软件信息安全,用户名、密码的加密解密【附C#配套加密解密源码】
- 信息安全——RSA密码系统的实现
- 信息安全知识的介绍