1、对称加密
通信收发方会通过实现商定好的秘钥对数据进行加密和解密
缺陷:
用户增多秘钥的传输过需要保存许多额外的秘钥
秘钥的保存会带来额外的负担
更加致命的是,秘钥必须通过见面协商,而没有办法通过网络来进行交换
因为秘钥的传输过程需要加密,而没有秘钥则不能进行加密,这样就陷入死循环了,因此就引出了非对称加密算法。
2、非对称加密算法
其中,对数据进行加密的秘钥是对所有人公开的,而对数据解密的秘钥却仅为数据的接收者持有
因为公钥是对所有人可见的,因此,数据不能被轻易地解密出来,因此要求加密算法单向计算容易,逆向反推困难。
模运算正好满足这一特性
模运算
典型运用:散列算法(Hash),伪随机数
mod求余算法并不可逆,只能一个个数带进去试
如果数字非常大,再带进去计算就非常困难。因此模运算被称为单向函数(One-Way Function)
公钥加密正是运用了这一特性:
正想计算密文C很简单,但是反向计算出原始数据m却很难
对这个公式进行变换:
因此,如何选择e和d方便成了加密中关键的问题
数学原理:
计算机与数学最美妙的结合
RSA算法的由来:
首次发现以来被政府封存,后来由
Ron Rivest
Adi Shamir
Leonard Adleman
三人一起发现RSA公钥加密算法
RSA算法的应用
公钥加密算法的运量大,速度慢,因此它通常会和对称加密算法一起使用,公钥加密算法常常被用在最初的连接的建立,而真正的数据传输的过程还是用对称加密算法
参考视频:https://www.bilibili.com/video/BV14y4y1272w?t=148