信息安全基础--加解密和数字签名

来源:互联网 发布:c语言游戏 编辑:程序博客网 时间:2024/06/07 21:36

信息安全已经是这个时代强烈注重的问题,所以,不管时个人还是企业,在设计自己的系统时,一定会加上信息安全的机制。

先说说基础:

1.什么是对称加密?

简言之,对于消息的加密和解密,都是用同样的密钥,密钥越大,加密越强,但是加解密过程就越慢。

2.什么是非对称加密?

非对称加密,有一对密钥(公钥和私钥),一个密钥加密,另一个密钥就可以解密。因为公钥是发给很多人的,若用来解密就会不安全,即遵从私钥解密,公钥加密。私钥只能一方保管,公钥可以发给任何需要请求他的人。私钥可以用来表示个人身份的证明。

如银行,银行把公钥给我们,我们用公钥把信息加密后发给银行,银行可以用私钥解密,如果消息被人劫持,那也打不开。但是打不开,他可以给消息添加一些病毒或是其他恶意消息啊,这时候就需要验证发来的消息是否完整,是不是对的消息。这就需要用到信息摘要。

3.什么是信息摘要?

信息摘要,就是将消息用Hash函数生成一个固定长度的唯一字符串,这个生成的字符串就是信息摘要,此过程不可逆。不同的信息,生成的字符串是不同的,即摘要是唯一的。信息摘要可以用来验证信息的完整性,解决上述问题。

4.什么是数字签名呢?

信息要安全,必须保证:1.信息来源的身份认证  2.信息的完整性。数字签名的作用是为了认证用户身份的,做法是将信息生成的摘要用发件人的私钥加密,发送给对方,对方通过发件人给他的公钥来验证。如果用公钥解开了,说明就是发件人本人发出的。解决了身份认证的问题。

具体的保证信息安全的做法(两套非对称算法):

A和B通信,A发消息给B,为保证B收到的信息 1是A发的,2信息是完整的。具体操做如下(引用别人的图):


完整流程:

A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数字签名一块发给B。

B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密成功说明A的身份被认证了)。

对明文进行摘要运算,得到实际收到的摘要,将两份摘要进行对比,如果一致,说明消息没有被篡改(消息完整性)。

疑问:

摘要使用A的私钥加密,如果被拥有A的公钥的第三者截获,不就可以获取到摘要了么?会不会对安全造成威胁。

不会。因为摘要是不可逆推出原文的。

解读:1.A用B的公钥加密消息,保证只有B才能打开。但是还要验证信息的身份来源和信息的完整性,就继续如下。

2.A对消息进行摘要算法,B对解密后的明文也进行摘要算法,如两者的摘要一致,保证B收到的是正确的信息。但还要加上身份认证,即

3.A再对生成的摘要用自己的私钥加密,生成数字签名发给B,B如果用A的公钥解密成功,说明是A发出的,A的身份得到证明








1 0
原创粉丝点击