1:对称性加密
这种加密方法加密解密都只用一个密匙,加解密速度快,它要求发送方和接收方在安全通信之
前,商定一个密钥,这种加密算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他
们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。
常用的对称性加密算法有:DES、3DES、Blowfish、RC2、AES以及国密的SM4,国密SM4是
为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准。
2:非对称性加密
这种加密算法把密匙分成了两个,一个自己持有的叫私钥,另一个给对方,叫公钥,公钥加密
的数据只有私钥能解开,私钥加密的数据公钥能解开。
非堆成加密是使用公钥加密,私钥解密。
非对称算法加密有RSA,Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)以
及国家商用密码SM2算法。
3:数字签名、信息摘要
数字签名是使用非对称性加密,对来方的消息进行确认是消息发送方发出的,防止消息伪造和
验证消息是否被篡改过。
数字签名:
是发送方使用私钥加密,接收方使用公钥解密,算法有:
RSA:RSA数字签名算法主要包括MD和SHA两类,有加解密,基于大整数分解问题。
DSA:仅包含数字签名,使用DSA这种算法的证书是没法进行加密通信的,基于离散
对数问题,算法速度很快。
ECDSA:椭圆曲线数字签名算法,是ECC与DSA的结合,与传统的数字签名算法相比,速
度快,强度高,签名短。
信息摘要:
单向散列函数得到一个固定长度的散列值,是一个不可逆过程,常用的信息摘要算
法有:
MD算法: Message Digest Algorithm ,目前主流的是MD5算法,为第五版算法,
之前有MD2、MD3、MD4算法。
SHA算法:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准
(Digital Signature Standard DSS)里面定义的数字签名算法(Digital
Signature Algorithm DSA);
MAC算法:带有密码信息的信息摘要算法,是对MD和SHA算法的演变和改进,包括
HmacMD2、HmacMD4、HmacMD5、HmacSHA-256等。
要达到防止伪造和验证数据是否被篡改的目的,可以将整个信息进行签名,但是一般信
息过长,加密太慢,可以对信息的唯一摘要进行加密,就要使用到摘要算法(HASH算
法),将明文信息生成一个较短的固定长度的值,比如使用MD5将文档加密得到一个固定
长度的值,然后将签名后的摘要和信息和发送给接收方,接收方首先对发过来的信息进
行解密,解密得到一个摘要(MD5),然后再对接收的信息进行md5加密,得到的md5结果
匹配解密后的摘要,如果匹配成功的话证明没有修改过,签名方式使用Signature。
4:加密和加签的区别
加密:公钥放在客户端,并使用公钥对数据进行加密,服务端拿到数据后用私钥进行解密;
加签:私钥放在客户端,并使用私钥对数据进行加签,服务端拿到数据后用公钥进行验签。
加密完全为了加密;加签主要是为了防恶意攻击,防止别人模拟我们的客户端对我们的服务器
进行攻击,导致服务器瘫痪。