数据加密服务提供灵活、高可用、高性能的数据加密解密、密钥管理等服务器数据安全服务。海外服务器可以采用什么算法对数据进行加密,以保证业务数据的隐私性和安全性?
DES.
DES,全称Data Encryption Standard,是上一代标准对称加密算法,现在不推荐使用。
密钥:DES是将64位明文加密成64位密文的对称密码算法,其密钥长度为64位(每7位设置一位用于检错,所以实际密钥长度为56位)。
分组:DES以64位明文为单位加密,称为分组。一般来说,分组处理的密码算法称为分组密码,DES是分组密码的一种。DES一次只能加密64位数据。如果要加密的明文较长,则需要DES加密进行迭代。
3DES
3DES,也就是triple-DES,简单来说就是triple-DESDES加解密的组合。现在不推荐。
加密:cipthertext = E(k3, D(k2, E(k1, plaintext)))
解密:plaintext = D(k1, E(k2, D(k3, ciphertext)))
特点:如果三个密钥都一样,拿刚好和DES一样。
注:E表示Encrypt,D表示Decrypt。
AES
AES,Advanced Encryption Standard,是目前的对称加密标准。目前(2017年)如果使用对称加密,应该使用AES。当然,我们只能说目前的AES算法是安全的,不能保证AES永远安全。
分组:128bit。
密钥:128bit、192bit、256bit。
分组密码模式
分组密码介绍
分组密码(block cipher),是每次只能处理特定长度的一分组数据的一类密码算法,这里的”一分组“就称为分组(block)。一个分组的比特数就称为分组长度(block length)。
流密码(stream cipher),是对数据流进行连续处理的一类密码算法。
DES、3DES、AES等大多数对称密码算法都属于分组密码
ECB模式
全称Electronic CodeBook mode,电子密码本模式。
分组方式:将明文分组加密之后的结果直接称为密文分组。
优点:
一个分组损坏不影响其它分组。
可以并行加解密。
缺点:
相同的明文分组被转换成相同的密文分组。
明文可以在不解密密码的情况下进行操作(每个分组都是独立的,与上下文无关,直接添加或删除一个分组不影响其他分组解密过程的正确性)。
CBC模式
全称Cipher Block Chaining mode,密码分组链接模式。
分组方式:对明文分组和之前的密文分组进行异或运算,然后进行加密。每个数据分组的加密和解密取决于前一个数据分组。第一个数据分组没有前一个数据分组,因此需要一个初始化向量。
优点:
加密结果与前一个有关,有利于提高加密结果的随机性。
可以并行解密。
缺点
无法并行加密。
一个分组坏了。如果密文长度不变,会影响两个分组。
一个分组坏了。如果密文长度发生变化,后续的所有数据分组都会受到影响。
CFB模式
全称Cipher FeedBack mode,密文反馈模式。
分组方式:将前面的密文分组发送回密码算法的输入端(详见下图)。
在CBC和EBC模式下,明文分组通过加密算法加密。在CFB模式下,明文分组不直接用加密算法加密,明文分组和密文分组之间只有一个异或。
在CFB模式下,“明文分组”是通过与密码算法的输出进行异或运算而生成的。密码算法在CFB模式下产生的位序列称为密钥流。密码算法相当于密钥流的伪随机数生成器,初始化向量相当于伪随机数生成器的种子。(CFB模式有点类似于一次性密码本。)
优点:
支持并行解密。
不需要填充(padding)。
缺点:
不能抵御重放攻击(replay attack)。
不支持并行加密。
OFB模式
输出反馈模式输出反馈模式
密码算法的输出会反馈到密码算法的输入端(详见下图)。
在OFB模式下,XOR所需的位序列(密钥流)可以通过密码算法提前生成,与明文分组无关。只需要提前准备好需要的密钥流,然后进行XOR运算即可。
分组模式总结
建议使用CBC模式。
填充
为啥要填?ECB和CBC模式要求明文数据填充为数据分组长度的整数倍。
填充的两个问题。
要填充多少字节?
填什么内容?
要填充多少字节?要填充的字节数为:paddingSize = blockSize - textLength % blockSize。
填什么内容?(这里列出的三种方式本质上是一样的)
ANSI X.923:填充序列的最后一个字节填paddingSize,其它填0。
ISO 10126:填充序列的最后一个字节填paddingSize, 其它填随机数。
PKCS7:填充序列的每个字节都填paddingSize。
桂哥网络 IDC提供香港服务器、美国服务器等全球海外服务器租用托管,是区块链、流媒体、外贸、游戏等服务器解决方案首选品牌。
TikTok千粉号购买平台:https://tiktokusername.com/
TOP