信息安全与密码技术

信息安全与密码技术

 

21世纪,随着信息技术的不断发展,信息安全问题也日显突出。如何确保信息系统的安全已成为全社会乃至国家关注的问题。信息安全本身包括的范围很大,大到国家军事政治等机密信息,小到商业企业机密、甚至个人银行账号、手机号等信息的保护,都属于信息安全范畴。

 

而密码技术的目的很明确,就是为了解决信息安全问题。信息安全大致可分为四类:

1、机密性:为了防止信息被切听

2、完整性:为了防止信息被篡改

3、认证:为了防止攻击者伪装成真正的发送者

4、不可否认性:为了防止发送者事后否认自己没有做过

 

信息安全与密码技术之间的关系可以用下图表示:

 

一、密码技术

1、对称加密

 

也称共享密钥密码、私钥密码等。指加密和解密时使用相同密钥的方式。几千年来,我们人类都在用一种“对称性加密“的形式来进行秘密信息的传递。

 

(1)甲方选择某一种加密规则,对信息进行加密;

(2)乙方使用同一种规则,对信息进行解密。



特点是安全性低,因为甲方必须把加密规则告诉乙方,而且如果一方的秘钥遭泄露,那么整个通信就会被破解,所以传递和保存密钥成了最头疼的问题。最终可能就不得不借助互联网以外的工具,例如打电话,来进行密码传递。所以,对称性加密是不适合用于互联网上的加密通信的。

 

例子:

摩尔斯码在早期无线电上举足轻重,是每个无线电通讯者所须必知的。由于通讯号技术之进步,各国已于1999年停止使用摩尔斯码,但由于它所占的频宽最少,又具一种技术及艺术的特性,在实际生活中有广泛的应用。

 

摩尔斯电码morse code 它由两种基本信号和不同的间隔时间组成:短促的点信号“·”,读“滴”(Di);保持一定时间的长信号“—”,读“嗒”(Da)。间隔时间:滴,1t;嗒,3t;滴嗒间,1t;字符间,3t;字间,7t。

 

后来人们意识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。

 

2、非对称加密

 

也称公钥密码。指在加密和解密时使用不同密钥的方式。

 

(1)乙方生成两把密钥(公钥和私钥)。公钥公开,任何人都可以获得,私钥是保密的。

(2)甲方获取乙方的公钥,然后用它对信息加密。

(3)乙方得到加密后的信息,用私钥解密。


特点是安全性高,只要私钥不泄漏,通信就是安全的,但是加密和解密花费时间长、速度慢。

 

非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC算法等,其中最重要的要数RSA算法,具体参照:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

 

3、单向散列函数

 

官方概念是单向散列函数通过散列算法,把任意长度的输入变换成固定长度的输出,该输出就是散列值,也称为哈希值。其实简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。它用于密码校验和消息摘要,可以保证数据的完整性,常用算法有MD5、SHA-1。

 

这里简单介绍一下MD5(Message Digest Algorithm MD5)

MD5算法具有以下特点:

(1)压缩性:任意长度的数据,算出的MD5值长度都是固定的。

(2)容易计算:从原数据计算出MD5值很容易。

(3)抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

(4)强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

 

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式。

 

4、消息认证码

 

消息认证码是一种确认完整性并进行认证的技术,英文名称为message authentication code,简称为MAC。

参考链接:http://blog.sina.com.cn/s/blog_4940e1fc01012vk3.html

 

 

二、数字签名与数字证书

 

数字签名(digital signature)

 

数字签名相当于现实世界中的盖章、签字的功能,它是非对称密钥加密技术与数字摘要技术的应用。使用数字签名可以识别篡改和伪装,还可以防止否认。

 

数字证书(digital certificate)

 

数字证书是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。CA完成签发证书后,会将证书发布在CA的证书库(目录服务器)中,任何人都可以查询和下载,因此数字证书和公钥一样是公开的。

 

可以这样说,数字证书就是经过CA认证过的公钥,而私钥一般情况都是由证书持有者在自己本地生成的,由证书持有者自己负责保管。具体使用时,签名操作是发送方用私钥进行签名,接受方用发送方证书来验证签名;加密操作则是用接受方的证书进行加密,接受方用自己的私钥进行解密。

 

===========================================================================

下面这个例子,通过图片通俗易懂的解释了“数字签名”和“数字证书”到底是什么?

 

作者:David Youd

翻译:阮一峰

原文网址:http://www.youdzone.com/signature.html

 

1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。


 

2.鲍勃把公钥送给他的朋友们,帕蒂、道格、苏珊,每人一把。

 
 

3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。

 
 

4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

 
 

5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。

 
 

6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。

 
 

7.鲍勃将这个签名,附在信件下面,一起发给苏珊。

 

8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。

 
 

9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

 
 

10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

 
 

11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。

 
 

12.鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

 

 

13.苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。

 

 

14.下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。

 

 

15.首先,客户端向服务器发出加密请求。

 


16.服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

 

 

17、客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。

 

 

18.如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

 

 

19.如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。

 
 

20.如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

 

 

猜你喜欢

转载自hellolove.iteye.com/blog/2338227