文章目录
- 什么是非对称加密
- 非对称加密流程
- 非对称加密问题
- 解决方案
- RSA&ECC椭圆曲线算法
- RSA
- ECC
对称加密大家都里了解的,生成一对密钥对,对外只暴露公钥,来保证双方的安全,下面我们来详细的了解一下
什么是非对称加密
服务端生成一对秘钥,私钥用来解密,公钥用来加密。公钥可以暴露出去,私钥自己保存
非对称加密流程
B服务 需要和A服务交互
A服务生成一对秘钥,将公钥分发非B服务
B服务将要发送的内容,通过公钥加密后发送给A服务,A服务可以通过私钥解密,拿出对应的数据
A在给B分发公钥的时候可能被C服务窃取到,但是因为公钥只能加密,所以及时C服务拦截到了B服务的信息也无法解密,查看内容
非对称加密问题
当A给B服务分发公钥的时候可能被C服务拦截到,
C冒充A更B建立连接,冒充B跟A建立连接。
这时候AB之间的交互也就不可信了
解决方案
CA证书。通过一个中间权威机构,来保证公钥的可靠性。
也就是说A将公钥发送到CA,CA确定公钥可靠后颁发证书给B.
RSA&ECC椭圆曲线算法
RSA
RSA的加密工程可以用下来公式来表达,如下。
也就是说,RSA的密文是对代表明文的数字的E次方求modN的结果。换句话说,就是将明文自己做E次乘法,然后将其结果除以N求余数,
这个余数就是密文。
RSA的解密和加密一样简单,可以用下面的公式来表达:
也就是说,对表示密文的数字的D次方求modN就可以得到明文。换句话说,将密文自己做D次乘法,在对其结果除以N求余数,就可以得到明文。
这里所使用的数字N和加密时使用的数字N是相同的。数D和数N组合起来就是RSA的解密密钥,因此D和N的组合就是私钥。只有知道D和N两个数的人才能够完成解密的运算。
ECC
人民币和比特币都在用的算法!
秘钥更短,效率更高
不管是RSA还是ECC或者其它,公钥加密算法都是依赖于某个正向计算很简单(多项式时间复杂度),而逆向计算很难(指数级时间复杂度)的数学问题。
参考 非对称加密 ca证书 CA、CA证书、数字证书