非对称加密算法较为缓慢,不适用于数据量大的场景,常被部署于进行身份验证和共享密钥的协商,这些密钥将用于后续快速的对称加密。RSA是目前最普遍部署的非对称加密算法。
非对称加密会比对称加密慢的原因:对称加密主要的运算是位运算,速度非常快,如AES 算法其,运算本质上来说就是位移和替换。非对称运算中涉及到大数乘法、大数模等运算。为什么非对称加密比对称加密慢
对称加密算法
RC4
RC4 是最为人熟知的序列密码。序列密码的和核心是生成一串无穷序列,作为密钥序列。加密过程将密钥序列中的1字节与明文序列中的1字节进行异或操作。异或操作可逆,解密是将密文序列中的1字节与密钥序列中的一字节进行异或操作。只要攻击者无法预测密钥序列中对应位置的字节,认为加密过程安全。
AES
AES是一种分组加密算法。一种分组密码就是一个变换函数,每一个可能的输入组合都有唯一的输出。AES 算法,异或与移位实现
DES 3DES
DES 算法把 64位的明文输入块变为数据长度位64的密文输入块,其中8位为奇偶校验位,另外 56位作为密码长度。首先,DES把输入的 64位数据块按位重新组合,并把输入分为 L0、R0两部分,每部分各长 32 位,并进行前后置换,最终由 L0输出左32位,R0输出右32位,根据这个法则经过 16 次迭代运算后,得到 L16、R16,将此作为输出,进行与初始置换相反的逆置换,即得到密文输出。
非对称加密算法
RSA
客户端生成预主密钥(46字节随机数),使用服务器公钥对其加密,将其包含在 clientkeyexchange 消息中发送出去。服务端解密这条消息取出预主密钥。
DH
发送方和接收方分别生成一个秘密随机数,根据随机数推导出公开值,双方交换公开值,使用自己的私有数和对方的公开值生成对称密钥,称为共享密钥。
网友评论