网络安全--对称加密

Posted JordanInShenzhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络安全--对称加密相关的知识,希望对你有一定的参考价值。

概念:通过同一组秘钥将明文加密成密文,将密文解密成明文,即是对称加密。在这个过程中使用的秘钥即是对称秘钥。

优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。

缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘 钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

当前各种对称加密方式

1. DES:业界已经证明该加密强度不够,已经被破解(直接穷举),企业也基本不用

2. 3DES:加密结果足够安全,能够防止穷举,但是加解密速度太慢,用的少

3. RC2:RC2是一种传统的私钥块加密算法,曾经被考虑作为DES算法的替代品。RC2很旧,很少使用; 即使它是一个相当当前的密码,它的分析也比DES少得多.很可能没有人在过去5年中回过头来看看如何使用最新的攻击技术打破RC2,如果要使用加密算法,建议使用AES

4. Blowfish:由于分组长度太小已被认为不安全

5. AES:当前主流的对称加密方式,也是目前最安全的对称加密方式,根据每种模式重点介绍

AES-ECB:电子密码本模式。每一块数据,独立加密,独立解密。最基本的加密模式,也就是通常理解的加密,相同的明文将永远加密成相同的密文,无初始向量,容易受到密码本重放攻击,一般情况下很少用。

AES-CBC(Cipher Block Chaining):密码分组链接模式。使用一个密钥和一个初始化向量[IV]对数据执行加密。明文被加密前要与前面的密文进行异或运算后再加密,因此只要选择不同的初始向量,相同的密文加密后会形成不同的密文,这是目前应用最广泛的模式。CBC加密后的密文是上下文相关的,但明文的错误不会传递到后续分组,但如果一个分组丢失,后面的分组将全部作废(同步错误)。
CBC可以有效的保证密文的完整性,如果一个数据块在传递时丢失或改变,后面的数据将无法正常解密。

AES-CFB模式又称密文反馈模式(Cipher feedback):与ECB和CBC模式只能够加密块数据不同,CFB能够将块密文(Block Cipher)转换为流密文(Stream Cipher)。CFB的加密工作分为两部分:1、将一前段加密得到的密文再加密;2、将第1步加密得到的数据与当前段的明文异或。由于加密流程和解密流程中被块加密器加密的数据是前一段密文,因此即使明文数据的长度不是加密块大小的整数倍也是不需要填充的,这保证了数据长度在加密前后是相同的

AES-OFB模式又称输出反馈模式(Output feedback):OFB是先用块加密器生成密钥流(Keystream),然后再将密钥流与明文流异或得到密文流,解密是先用块加密器生成密钥流,再将密钥流与密文流异或得到明文,由于异或操作的对称性所以加密和解密的流程是完全一样的。OFB与CFB一样都非常适合对流数据的加密

AES-GCM模式:结合了上述两者的特点(GCM中的G就是指GMAC,C就是指CTR),能同时确保数据的保密性、完整性及真实性,另外,它还可以提供附加消息的完整性校验,加密流程如下图:

总结:对于普通的字符串等数据加密,一般使用AES-CBC、AES-GCM(推荐,能够对加密数据做完整性校验),对于流数据加密,使用AES-CFB、AES-OFB

以上是关于网络安全--对称加密的主要内容,如果未能解决你的问题,请参考以下文章

常见对称加密算法与工作模式简介

谁帮我介绍下加密对称算法?

对称加密与非对称加密

[学习笔记]--信息安全

go语言教程哪里有?Go从入门到精通系列视频3.1 对称加密算法

安全技术3:数据加密之对称加密算法