加解密简单了解
1、对称加密与非对称加密
对称加密概念:加密算法是公开的,靠的是秘钥来加密数据,使用一个秘钥加密,必须使用相同的秘钥才解密。
优点: 算法公开、计算量小、加密速度快、加密效率高
缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。
非对称加密:加密和解密使用不同的秘钥,一把公开的公钥,一把私有的私钥。公钥加密的信息只有私钥才能解密,私钥加密的信息只有公钥才能解密。
优点:安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,也就无法破译密文。作为接收方,务必要保管好自己的密钥。
缺点:加密算法复杂,安全性依赖算法与密钥,而且加密和解密效率很低。
2、DH密钥协商
2.1、DH密钥协商协议的流程
2.2DH协商问题
3、AES128
3.1、算法选取
AES128加密算法,(AES256、AES192备选)
3.2、AES128模式
选择使用EBC模式(CBC、CTR备选)
ECB模式的优点:简单、快速、支持并行计算(加密、解密) ECB模式的缺陷:明文中的重复排列会反应在密文中,通过删除、替换密文分组能够对明文进行操作,对包含某些比特错误的密文进行解密时,对应的分组会出错;不可以抵御重放攻击。
CBC模式优点:明文的重复排列不会反应在密文中;支持并行计算(仅解密);可以解密随意密文分组。 CBC模式缺陷:对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错;加密不支持并行计算。
CTR模式的优点:不需要填充、可事前进行加密、解密的预备、加密、解密运用相同结构、对包含某些错误比特的密文进行解密时,只要明文中相对应的比特会出错;支持并行计算(加密、解密) CTR模式的缺陷:主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转。
3.3.3、填充方式
选择 PKCS#7方式填充 (ISO 10126、 ZerosPadding 备选)
ZerosPadding,全部填充0x00,无论缺多少全部填充0x00,已经是128bits倍数仍要填充。
PKCS#7缺n个字节,就在后面填n个n 最后一块如果正好16个字节的话,也要再填充16个字节。
ISO 10126,最后一个字节是填充的字节数(包括最后一字节),其他全部填随机数。