信息安全与密码学1-加密与认证(验证)
2015-12-10 11:56
495 查看
信息安全与密码学1-加密与认证(验证)
1、加密和认证的概念
加密
将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。
其重点在于数据的安全性。
身份认证
用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。
其重点在于用户的真实性。
两者的侧重点是不同的。
2、公钥和私钥的概念
在现代密码体制中,加密和解密是采用不同的密钥(公开密钥和私有秘钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥。这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。
一个公钥对应一个私钥。
密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
3、加密和认证的过程
非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面详细讲解一下两者的区别。
加密过程
例如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:
1) Bob将他的公开密钥传送给Alice。
2) Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
3) Bob用他的私人密钥解密Alice的消息。
过程如下图。
身份认证
身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。
还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用公钥密码,对文件签名,发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。
整个身份认证的过程如下:
Alice用她的私人密钥对文件加密,从而对文件签名。
Alice将签名的文件传送给Bob。
Bob用Alice的公钥解密文件,从而验证签名。
整个流程如下:
其实这个验证流程还是有漏洞:
后来,Bob感觉不对劲,发现自己无法确定公钥是否真的属于Alice。
比如第三个人Tom想欺骗Bob,Tom偷偷使用了Bob的电脑,用自己的公钥换走了Alice的公钥。此时,Bob实际拥有的是Tom的公钥,但是还以为这是Alice的公钥。因此,Tom就可以冒充Alice,用自己的私钥做成"数字签名",写信给Bob,让Bob用假的Alice公钥进行解密。这样Tom就成功伪装成Alice了。
如何避免这种情况呢?
有一个办法,Alice去找"证书中心"(certificate authority,简称CA),为公钥做认证。
证书中心用自己的私钥,对Alice的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。
Alice拿到数字证书以后再给Bob写信,只要在签名的同时,再附上数字证书就行了。
Bob收信后,用CA的公钥解开数字证书,就可以拿到Alice真实的公钥了,然后就能证明"数字签名"是否真的是Alice签的。
这样的话,Tom就很难冒充Alice来欺骗Bob了。
著作权声明:本文由http://my.csdn.net/Nathan1987_原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢
1、加密和认证的概念
加密
将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。
其重点在于数据的安全性。
身份认证
用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。
其重点在于用户的真实性。
两者的侧重点是不同的。
2、公钥和私钥的概念
在现代密码体制中,加密和解密是采用不同的密钥(公开密钥和私有秘钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥。这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。
一个公钥对应一个私钥。
密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
3、加密和认证的过程
非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面详细讲解一下两者的区别。
加密过程
例如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:
1) Bob将他的公开密钥传送给Alice。
2) Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
3) Bob用他的私人密钥解密Alice的消息。
过程如下图。
身份认证
身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。
还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用公钥密码,对文件签名,发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。
整个身份认证的过程如下:
Alice用她的私人密钥对文件加密,从而对文件签名。
Alice将签名的文件传送给Bob。
Bob用Alice的公钥解密文件,从而验证签名。
整个流程如下:
其实这个验证流程还是有漏洞:
后来,Bob感觉不对劲,发现自己无法确定公钥是否真的属于Alice。
比如第三个人Tom想欺骗Bob,Tom偷偷使用了Bob的电脑,用自己的公钥换走了Alice的公钥。此时,Bob实际拥有的是Tom的公钥,但是还以为这是Alice的公钥。因此,Tom就可以冒充Alice,用自己的私钥做成"数字签名",写信给Bob,让Bob用假的Alice公钥进行解密。这样Tom就成功伪装成Alice了。
如何避免这种情况呢?
有一个办法,Alice去找"证书中心"(certificate authority,简称CA),为公钥做认证。
证书中心用自己的私钥,对Alice的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。
Alice拿到数字证书以后再给Bob写信,只要在签名的同时,再附上数字证书就行了。
Bob收信后,用CA的公钥解开数字证书,就可以拿到Alice真实的公钥了,然后就能证明"数字签名"是否真的是Alice签的。
这样的话,Tom就很难冒充Alice来欺骗Bob了。
著作权声明:本文由http://my.csdn.net/Nathan1987_原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢
相关文章推荐
- 12.10工作
- 窗体间的传值
- 用IFrame作预览pdf,图片
- Graphics Rendering: Render Command Encoder
- Spring Mvc @ResponseBody 返回Json信息报406(Not Acceptable)
- POPTEST 150801 祝大家前途似锦
- ARP 协议
- project euler 69
- 软件设计六大原则
- SSH配置以及多个SSH & config文件
- 【Swift】—— 中国课程
- discuz x3.2使用小记
- bootstrapCDN和本地化
- 【adb】如何在Android模拟器下添加busybox?
- 2330: [SCOI2011]糖果
- unset
- Touch事件分发机制
- Android Studio 编译报错:Process 'command 'D:\SDK\AS\sdk\build-tools\23.0.0\aapt.exe'' finished with non-zero exit value 1
- cell展开的几种方式
- overridePendingTransition动画只设置一个