安全加密算法体系

学习目标:

安全加密算法体系—注重思想,不关注具体算法

  1. 对称加密
  2. 非对称加密
  3. 单项散列加密

学习内容:

在互联网上,我们通过网络互相传递信息,那么在传递信息的过程中,我们的数据真的是安全的吗?我们在通过网络传递消息时,我们的消息是否会被人监听,是否会被人拦截并篡改,我们都不得而知,那么我们是否能够某种加密方式能够保障我们的数据可以安全的传递给对方

首先先来了解一下对称加密:

相传古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报
倘若我的军事情报内容是“attack”,那么我为了安全起见将内容加密,加密过后变成了“dwwdfn”,敌军就算得到了这个情报,也不知道这个是什么意思,因为他们不知道如何将这串字符串解密,但是自己人很快就可以将已经加密的情报还原成“attack”,具体过程如下:

安全加密算法体系_第1张图片

上述例子我们 很容易肉眼可以观察出key=3,func1的作用是将原文每个字符都向后移动3位,func2的作用是将输入的字符串每个字符都向前移动3位,这样就实现了简单的加密和解密。在加密和解密的过程中,我们使用的key都等于3,,在这种情况下,加密的密钥和解密的密钥相同,我们称其为对称加密。很好理解地,如果加密使用的key=3,解密使用的key=4,相信是不能将密文还原回去的。我们这边暂且将{func1,func2}叫为“凯撒算法”,发送方和接受方事先商定好使用该算法进行通信,即加密使用func1,解密使用func2。

对称加密问题:

那么对称加密有什么缺点吗?放在现在互联网的环境来讲,缺点主要有两个。第一:在互联网上面密钥如何传给对方,发送方总不可能大老远坐车把密钥给接受方送过去吧。如果在网络上传输密钥,很有可能会被人截获,那么我们发的信息被别人也可以阅读。第二:如何确保发送方的身份呢,万一是别人冒充发送方给你发送的消息,你也无法辨认这个发送方地真实身份。

针对对称加密问题:引入非对称加密

非对称加密特点:发送方和接受方都有自己的公钥和私钥,同一个人的公钥只能是自己的私钥解开,同一个人的私钥只能是自己的公钥解开

考虑以下两种情况:
1.发送方使用自己的私钥加密明文,接着发送给接受方。
该情况下:信息所有人都可以接受,因为所有人都可以拿着发送方的公钥来进行解密。这样操作,是不能保证数据安全性的,但是非常重要的一点是,这样可以验证发送方的身份。理由:发送方的私钥只能由发送方的公钥解,如果解密成功,就说明信息是发送方的私钥加密的,并且发送方的私钥在理论上只有发送方拥有,那就说明这个信息的的确确是是发送方送来的。这起到了身份验证的作用(数字签名)
2。明文使用接受方的公钥加密,接受方使用自己的私钥解密。
该情况下:只有接受方可以解密密文,这起到了数据加密的效果

现在模拟A和B通信,设A的公私钥分别为public_A,private_A,B的公私钥分别为public_B,private_B,待发送的内容为message
安全加密算法体系_第2张图片

非对称算法问题

非对称算法虽然安全,但是算法时间成本太大 ,特别针对大文件解密,解密非常吃力,上述的例子中还使用了两次的公私钥加解密,实为不妥当;另外网络中可能由于传输不稳定,导致文件部分损坏也是有可能的,那么数据又是有问题的。

针对上述问题,配合单向散列(hash)来解决时间问题及文件损坏问题

单向散列特点:
1.任意长度输入,固定长度输出
2.雪崩效应(修改一点点,输出的结果【叫做摘要】会发生巨大的改变);数据一样,hash结果一样
3.只能加密,不能解密

最终A,B双方传输过程如下图,综合使用对称加密,非对称加密,以及单向散列加密

安全加密算法体系_第3张图片

你可能感兴趣的:(安全加密算法体系,linux,安全)