此篇文章将简单的讨论密码学的加密解密过程,看完后,你会理解非对称加密的优点以及黑客伪造公钥攻击的过程原理

文末有思维导图

背景:
加解密技术目的
  • 即使信息被窃听或者截取,攻击者也无法知晓信息的真实内容。可以对抗网络攻击中的被动攻击
  • 通常使用加密机制来保护信息的保密性,防止信息泄密。信息的加密机制通常是建立在密码学的基础上。
加密算法:
1.对称加密算法
  • IDEA(International Data Encryption Algorithm)
  • DES/DES
  • RC系列(RC2、RC4、RC5、RC6)
  • AES

对称加密算法的主要问题

a.加解密双方要使用相同的密钥(对称的密钥对),这个相同的密钥是在收发数据前要完成协商,公网传输密钥是个很大的安全问题
b.管理不便,大量的密钥管理十分的麻烦

缺陷:
双方建立信道用的是安全的信道,但是数据传输的通信链路是不安全的
改良:

问题描述:
对于网络中的多数量密钥,即每个人要保管多个对称密钥 (通信双方的密钥成对出现{对称},不能重复),但是密钥是要通过安全的信道传输的,这增大了网络传输的困难

解决:邮差原理

  • 概述:

    设置一个专门存放密钥与加密信息的的管理中心(信箱),这个信箱只有接收方可以打开

  • 具体:
    1.发送方在发送加密信息时,将解密的密钥也带上,发给接收方的信箱里
    2.接收方只需要使用一把钥匙,即能打开自己的信箱的钥匙
    3.打开后,用加密信息上带的解密用的钥匙,解开加密信息,完成数据通信

    要理解上述步骤的关键是对称加密算法的一个特点是:
    对称加密算法是一个公私钥对

  • 公钥加密的信息可以用私钥解密

  • 私钥加密的信息可以用公钥解密

其原理可概述为:
接收方将自己的公钥发出去,想要跟我通信的人,拿着这把公钥将数据加密,然后发送给我,只有我能解密,是因为我有跟这把公钥形成密钥对的私钥,所以只有我才能解密,这也就是对称加密的核心思想。即可变相的认为,我拿着一把私钥就可以解开所有的加密信息,一把钥匙打天下。

2.非对称加密算法(公钥加密算法)
  • ECC(Elliptic Curves Cryptography)
  • RSA
  • Rabin
  • Elgamal(基于Diffie-Hellman算法)

第一代非对称加密算法 DH算法(优质的密钥交互算法)

做法:

不需要知道对方的私钥 双方用自己的私钥与公开的公钥进行加密后交互新的加密算法(私钥+公钥)来形成相同的密钥

结果是拿到了别人无法猜透的值(利用这个值来实现对称密钥的交互)

目的:

用非对称加密算法来传递对称加密算法的密钥

本质:

数学中的取模运算 5模2 是1 但是根据2与1得不出来5(因为计算机中的数据是非常大的)

区别:
非对称加密算法的加解密用的不是同一把钥匙

总结:
(1)数据传输采用对称加密算法;
(2)对称加密的密钥通过非对称加密算法进行加解密

加解密过程:

前言:
首先,要明确一点,一个公钥与私钥的密钥对是可以互相解密的

以下进行网络中的加密信息的详细加解密过程
Alice是发送方,Bob是接收方

1.Alice将原始信息先用HASH加密形成摘要,然后用自己的私钥加密生成数字签名

  • 为什么要用到HASH?
    a.HASH用较小的值代表原始数据(加快数据传输的速率)
    b.用较小的代价发现原始数据的改变(Hash的值小)
    c.加快私钥加密的速度(Hash的值小)
  • 数字签名
    说明:
    a.这个数字签名只有Alice才能生成
    b.对原始信息负责,对Alice负责,即只有Alice才能生成这样的原始信息
    c.数据与Alice才能合成这样的数字签名
    意义:
    这个数字签名代表了合同,具有实际效应

2.Alice将原始信息与数字签名发给拥有Alice公钥的Bob

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

4.Bob再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。–完成数据完整性的验证。

  • Hack攻击
    做法:
    将自己的公钥换掉Bob上的Alice的公钥
    问题核心:
    Hack换掉的公钥,让Bob以为还是Alice的

解决:要证明这把公钥一定就是Alice给的
做法:
要有一个可信的机构CA (第三方可信机构)
1.Alice去CA中心申请一个证书 (证书有Alice的身份、身份验证机构、Alice的公钥等)
2.CA机构用自己的私钥对证书加密
3.生成一个数字证书

接下来
1.Bob使用CA的公钥,解开CA颁发发给Alice的数字证书,获得Alice的公钥
2.此时的Alice公钥是肯定正确的
至此完成数据的通信