密码学基础之非对称加密算法

非对称加密算法

典型的非对称加密算法有RSA(基于大数因子分解),DSA(基于离散对数),ECC椭圆曲线加密算法等。以RSA为例,其公钥主要包括一个公钥指数和模数,公钥模数是两个大质数的乘积,长度一般为1024位,2048位,3072位,4096位等。公钥指数是除了1,3,5,17,257以外的最小素数,一般使用0x10001。而且因为加密过程中需要利用随机数填充所以相同的数据被RSA公钥加密后的密文数据都不一样。非对称加密主要应用在https通讯过程中的会话密钥的协商。

DH密钥协商算法

在对称加密中通信双方通过相同的密钥进行加解密数据,这就涉及到密钥的协商。DH密钥协商算法是通过A方会产生一个密钥对,然后将公钥发送给B。B也产生一个密钥对,然后将公钥发送给A。然后A通过自己的私钥+B的公钥计算出一个会话密钥K,B通过自己的私钥和A的公钥也计算出一个会话密钥K。之后通信双发就可以通过这个会话密钥K进行通讯。因为这个会话密钥在通讯时产生,通讯后就失效,所以称为会话密钥,只保存在内存中,不需要存储。而且这个密钥是由通讯双方共同决定的。

非对称加密的密钥协商算法

基于非对称加密的密钥协商算法是通过服务端会产生一个密钥对,然后将公钥发送给客户端,客户端生成一个随机数充当会话密钥,然后客户端通过服务端发来的公钥对这个会话密钥进行加密后发送给服务端。服务端获取到加密数据后通过私钥解密获取到会话密钥。之后双方通过会话密钥进行数据传递。(https就是这么做的)

posted @ 2022-09-20 23:10  怎么可以吃突突  阅读(379)  评论(0编辑  收藏  举报