密码学基础——加密与哈希,凯撒密码,对称加密与非对称加密以及Diffie-Hellman密码交换协议

0、加密与哈希

哈希函数的特点:不可逆长度固定值唯一
哈希函数 h 将一条信息 P 映射到一个固定长度的值 x = h(P),称为 P 的散列值或摘要。它保证了 x 的完整性。
也就是说哈希的输入可以任意长度,但输出是固定长度。比如SHA256 哈希函数,输入任何值出来的都是256比特的0和1。
加密与哈希最直观的区别就是加密是可逆的,而哈希是不可逆的。
在这里插入图片描述

1、凯撒密码 Caesar Cipher

凯撒密码通过修改字母的偏移量进行通信,比如所有字母左移5位形成一个新的字母映射关系。
在这里插入图片描述

2、对称加密

加密和解密使用相同的密钥
在这里插入图片描述
对称加密示例
假设我们现在有一段文本 10001100101需要加密,我们使用异或运算符(XOR)进行加密,给定的KEY 为 10101010101 。那么加密过程如下
Message: 10001100101
Key: 10101010101
Secret Msg: 00100110000

同样的,将上述加密后的信息与key进行异或运算后即可解码。

3、非对称加密

加密和解密使用不同的密钥;
同时每个用户都有一对密钥:分别是私钥和公钥。
发送者用接收者的公钥加密传输时,接受者则使用他的私钥进行解密;当发送者使用私钥进行加密传输时,接受者则使用发送方的公钥进行解密。如下图所示。

在这里插入图片描述
一个更直观的图如下所示。
使用公钥进行加密。Bob想给Alice发消息,便从他的公钥环中取出Alice的公钥,使用公钥将信息加密后发给Alice,Alice接受到消息后,则用自己的私钥将信息解密即可。
在这里插入图片描述
使用私钥进行加密。Bob想给Alice发消息使用私钥将信息加密后发给Alice,Alice接受到消息后,则从自己的公钥环中取出Bob的私钥解密即可。
Bob想给Alice发消息,便从他的公钥环中取出Alice的公钥,使用公钥将信息加密后发给Alice,Alice接受到消息后,则用自己的私钥将信息解密即可。

一个具体的例子如下
在这里插入图片描述

3.1 非对称加密技术的应用:数字签名

基于非对称加密技术,数字签名是其最普遍的应用场景。它保证了发送消息的完整性、源认证和不可否认性。
在这里插入图片描述

4、Diffie-Hellman 密钥交换协议

对称加密技术术需要在每对通信放之间共享密钥,所有这些密码是如何做到共享的呢,也就是用同一个密钥去加密和解密信息。于是就有了我们现在要讲的Diffie-Hellman协议

其目的是使两个用户能够安全地交换一个密钥,然后可以
用于后续消息的对称加密
• 算法本身仅限于秘密值的交换
• 其有效性取决于计算离散对数的难度。
在这里插入图片描述
我们看下算法的原理。首页Alice(以下简称A)和Bob(以下简称B)共同选定一个质数q,以及质数的源根α。
之后 A 选择一个自然数 Xa,计算出 Ya,其中Xa 保密,Ya 公开。
在这里插入图片描述

同理,B 选择 Xb 并计算出 Yb,其中 Xb 保密,Yb 公开。之后 A 用 Yb 和 Xa 计算出密钥 K,而 B 用 Ya 和 Xb 计算密钥 K。

完整流程如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Demonslzh/article/details/127638582