Golang与对称加密
· 阅读需 11 分钟
对称加密介绍
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:
- DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合
- 3DES(Triple DES):是基于
DES
,对一块数据用三个不同的密钥进行三次加密,强度更高 - AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高
- CBC 分组加密的四种模式之一
ECB
、CBC
、CFB
、OFB
对称加密又分为分组加密和序列密码
-
分组密码,也叫块加密
block cyphers
,一次加密明文中的一个块。是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组 -
序列密码,也叫流加密
stream cyphers
,一次加密明文中的一个位。是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密
对称加密的特点
-
加密过程每一步都是可逆的
-
加密和解密用的是同一组密钥
DES
概述
DES(Data Encryption Standard
)数据加密标准,是目前最为流行的加密算法之一
DES是一种使用密钥加密的块算法,1977
年被美国联邦政府的国家标准局确定为联邦资料处理标准FIPS
,并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来
AES与3DES的比较
算法名称 | 算法类型 | 密钥长度 | 速度 | 解密时间(建设机器每秒尝试255个密钥) | 资源消耗 |
---|---|---|---|---|---|
AES | 对称block密码 | 128、192、256位 | 高 | 1490000亿年 | 低 |
3DES | 对称feistel密码 | 112位或168位 | 低 | 46亿年 | 中 |
破解历史
历史上有三次对DES
有影响的攻击实验。1997
年,利用当时各国 7
万台计算机,历时96
天破解了DES
的密钥。1998
年,电子边境基金会(EFF)用25
万美元制造的专用计算机,用56
小时破解了DES
的密钥。1999年,EFF
用22
小时15
分完成了破解工作
主要思路
对原始数据(明文)进行分组,每组64
位bit
,最后一组不足64
位时按一定规则填充,每一组上单独施加DES
算法