Please enable JavaScript.
Coggle requires JavaScript to display documents.
密码学 - Coggle Diagram
密码学
数字签名
-
流程:
1、Bob 生成公钥和私钥,然后把公钥公布出去,私钥自己保留。
2、用私钥加密数据作为签名,然后将数据附带着签名一同发布出去。
3、Alice 收到数据和签名,需要检查此份数据是否是 Bob 所发出,于是用 Bob 之前发出的公钥尝试解密签名,将收到的数据和签名解密后的结果作对比,如果完全相同,说明数据没被篡改,且确实由 Bob 发出。
1、如果有人修改了数据,那么 Alice 解密签名之后,对比发现二者不一致,察觉出异常。
2、如果有人替换了签名,那么 Alice 用 Bob 的公钥只能解出一串乱码,显然和数据不一致。
3、也许有人企图修改数据,然后将修改之后的数据制成签名,使得 Alice 的对比无法发现不一致;但是一旦解开签名,就不可能再重新生成 Bob 的签名了,因为没有 Bob 的私钥。
-
非对称加密
-
缺点:
- 非对称加密算法也无法确定通信双方的身份,依然会遭到中间人攻击
- 比对称加密慢
-
公钥证书
-
-
证书只需要安装一次,并不需要每次都向认证机构请求;一般是服务器直接给客户端发送证书,而不是认证机构
我们安装的正规浏览器中都预存了正规认证机构的证书(包含其公钥),用于确认机构身份,所以说证书的认证是可信的
-
密钥交换算法
Diffie-Hellman 密钥交换算法
- 首先,Alice 和 Bob 协商出两个数字 N 和 G 作为生成元,N、G所有人可见
- Alice 和 Bob 心中各自想一个数字出来,分别是 A、B
- Alice : AG = f(A, G); Bob : BG = f(B,G);Alice把AG发给Bob,Bob把BG发给Alice
- Alice : ABG = f(A,BG); Bob : ABG = f(B, AG); 双方都得到了ABG,用ABG作为密钥
-
-
采用对称加密和非对称加密的情景
如果双方有一个对称加密方案,希望加密通信,而且不能让别人得到钥匙,那么可以使用 Diffie-Hellman 算法交换密钥。
如果你希望任何人都可以对信息加密,而只有你能够解密,那么就使用 RSA 非对称加密算法,公布公钥。