对称密码体制与非对称密码体制
对称密码体制
对称加密算法
- 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
- 需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
- 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
- 因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。
对称加密工作流程图
对称加密算法的优点
- 速度快,处理量大,适用于对应用数据的直接加密。
- 加密密钥长度相对较短
- 对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点
- 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
常用对称加密算法
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
DES算法
- DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;
- DES 加密算法是一种分组密码,以 64 位为分组对数据加密,它的密钥长度是56 位,加密解密用同一算法。
- DES 加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由 DES加密算法加密的密文数据。因此,破译 DES 加密算法实际上就是搜索密钥的编码。对于 56 位长度的密钥来说,如果用穷举法 来进行搜索的话,其运算次数为 2 ^ 56 次。
DES算法中的密钥key为8个字节64位,其中每8位为校验位不参与运算,所以有效密钥只有56位。
DES采用16轮运算,没轮运算产生一个轮密钥参与到运算中。
密钥与明文运算时采用的是按位异或的方法。
3DES算法
- DES密钥 太短,被破解的概率非常大,3DES算法替代了DES算法。
- 3DES即三重数据加密算法,是基于 DES 的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。
- 3DES的密钥大小为112和168位,相较于DES增加了密钥长度。
3DES采用了48轮运算,它对于差分密码分析有很强的抵御能力。
3DES完成加密和解密的时间要比DES长3倍。
3DES可以在不同模式下运行:
- DES-EEE3:使用三个不同的密钥进行加密,数据被加密、加密、再加密;
- DES-EDE3:使用3个不同的密钥进行加密,数据被加密、解密、再加密;
- DES-EEE2:与DES-EEE3相同,只使用两个密钥,第一个第三个加密过程使用相同的密钥;
- DES- EDE2:与DES-EDE3相同,只使用两个密钥,第一个和第三个加密过程使用相同的密钥。
当数据使用一个对称密钥加密,使用不同的对称密钥解密时,它会变的更加混乱无序。EDE模式第二部其实并没有解密,而是使用了一个不同的密钥进行了一次加密。
AES算法
- AES:密码学中的高级加密标准,又称Rijndael加密法,是美国联邦政府采用的一种区块加密技术。
- AES密码与分组密码Rijndael基本上完全一致。
- Rijndael分组大小和密钥可以是128、192、256位。AES标准只要求分组大小为128位。(只有分组长度128位的Rijndael才成为AES算法。)
- AES 本身就是为了取代 DES的,AES具有更好的安全性、效率和灵活性。
- AES总共有3种不同类型的层,除了第一轮外,其它每轮都是由三层组成。