腾讯云服务器可以采取哪些算法来加密数据?

  • 回答 (8)
  • 关注 (0)
  • 查看 (370)

数据加密服务提供弹性,高可用,高性能的数据加解密、密钥管理等云上数据安全服务,那么腾讯云服务器可以采取哪些算法来加密数据保障业务数据隐私安全?

隔壁李尼玛隔壁李尼玛提问于
爆栈工程师世界上的确有一些缘分,使你在第一次相遇就敢于倾述内心最真实的感觉回答于

1、对称加密算法

所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。

分类

常用的算法有:DES、3DES、AES等。

DES

全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

3DES

即TripleDES,是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。

AES

全称为Advanced Encryption Standard,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

2、非对称性加密算法

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

分类

常用的算法有:RSA、DSA、ECC等。

RSA

全称为Digital Signature Algorithm,是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

DSA

全称为Digital Encryption Standard,是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA算法却做不到。

ECC

全称为Elliptic Curves Cryptography,,也叫椭圆加密算法,是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。

3、散列算法

在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的“散列”或“消息摘要”(Message digest)。

分类

常用的算法有:MD5、SHA、HMAC等。

MD5

全称为Message Digest Algorithm,即中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

SHA

全称为Secure Hash Algorithm,即安全哈希算法,主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。有SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种单向散列算法,其中SHA-1已经不安全。

HMAC

全称为Hash Message Authentication Code,即散列消息鉴别码,主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。一般的,消息鉴别码用于验证传输于两个共 同享有一个密钥的单位之间的消息。HMAC 可以与任何迭代散列函数捆绑使用。MD5 和 SHA-1 就是这种散列函数。HMAC 还可以使用一个用于计算和确认消息鉴别值的密钥。

吴凌云千里之行,始于足下回答于

DES

  • DES,全称Data Encryption Standard,是上一代标准对称加密算法,现已不推荐使用
  • 密钥:DES是一种将64bit的明文加密成64bit的密文的对称密码算法,它的密钥长度是64bit(每隔7bit会设置一个用于错误检查的bit,因此实际使用密钥长度56bit)。
  • 分组:DES是以64bit的明文作为一个单位来进行加密的,这64bit的单位称为分组。一般来说,以分组为单位进行处理的密码算法称为分组密码(block cipher),DES就是分组密码中的一种。DES每次只能加密64比特的数据,如果要加密的明文比较长,就需要对DES加密进行迭代。

3DES

  • 3DES,即triple-DES,简单地说就是3次DES加解密的组合。现已不推荐使用。
  • 加密: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,密码分组链接模式。
  • 分组方式:将明文分组与前一个密文分组进行XOR运算,然后再进行加密。每个分组的加解密都依赖于前一个分组。而第一个分组没有前一个分组,因此需要一个初始化向量(initialization vector)。
  • 优点:
    • 加密结果与前文相关,有利于提高加密结果的随机性。
    • 可并行解密。
  • 缺点
    • 无法并行加密。
    • 一个分组损坏,如果密文长度不变,则两个分组受影响。
    • 一个分组损坏,如果密文长度改变,则后面所有分组受影响。

CFB模式

  • 全称Cipher FeedBack mode,密文反馈模式。
  • 分组方式:前一个密文分组会被送回到密码算法的输入端(具体见下图)。
  • 在CBC和EBC模式中,明文分组都是通过密码算法进行加密的。而在CFB模式中,明文分组并没有通过加密算法直接进行加密,明文分组和密文分组之间只有一个XOR。
  • CFB模式是通过将“明文分组”与“密码算法的输出”进行XOR运行生成“密文分组”。CFB模式中由密码算法生成的比特序列称为密钥流(key stream)。密码算法相当于密钥流的伪随机数生成器,而初始化向量相当于伪随机数生成器的种子。(CFB模式有点类似一次性密码本。)
  • 优点:
    • 支持并行解密。
    • 不需要填充(padding)。
  • 缺点:
    • 不能抵御重放攻击(replay attack)。
    • 不支持并行加密。

OFB模式

  • Output FeedBack mode 输出反馈模式
  • 密码算法的输出会反馈到密码算法的输入中(具体见下图)。
  • OFB模式中,XOR所需的比特序列(密钥流)可以事先通过密码算法生成,和明文分组无关。只需要提前准备好所需的密钥流,然后进行XOR运算就可以了。

分组模式小结

推荐使用CBC模式。

填充

  • 为什么要填充? ECB和CBC模式要求明文数据必须填充至长度为分组长度的整数倍。
  • 填充的两个问题。
    • 填充多少字节?
    • 填充什么内容?
  • 填充多少字节? 需要填充的字节数为:paddingSize = blockSize - textLength % blockSize
  • 填充什么内容?(这里列举的三种方式本质上是一致的)
    • ANSI X.923:填充序列的最后一个字节填paddingSize,其它填0。
    • ISO 10126:填充序列的最后一个字节填paddingSize, 其它填随机数。
    • PKCS7:填充序列的每个字节都填paddingSize
小皇帝JamesIT赵四回答于

数据加解密

数据加解密算法分为两类:对称性加解密和非对称性加解密,前者如AES、DES,后者如RSA。

1、对称性加解密

对称性加解密的加密和解密使用相同密钥,且能通过加密算法推导出解密算法,或者通过解密算法推导出加密算法。这种做法加解密速度快,适合于对大量数据进行加解密,但密钥管理困难(防止偷听者获取密钥和加解密算法)。

比如一个简单的对称性加解密可以为:加密时将数据每个字节都加3,解密时将每个字节都减3。3就可以视为一个密钥,加减操作视为加解密算法。

对称性加解密不安全,原因在于A和B之间要通过对称性加解密算法来进行加解密,他们就必须使用相同的算法以及密钥,而算法和密钥的协商也是需要传输数据包进行协商,协商的数据包被偷听者获取之后,偷听者就获取了加解密算法和密钥,从而在收到A或者B的数据之后可以对数据进行解密,当然也可以用加密算法加密自己的数据传给A或者B。

2、非对称性加解密

非对称性加解密需要两个密钥,公钥和私钥,使用公钥加密的数据只能用私钥解密,使用私钥加密的数据只能用公钥解密。

A若想和B通信,A可以先生成一个公钥和私钥,然后将公钥发送给B,B通过公钥加密数据,然后发送给A,A通过私钥解密获得数据;而如果中间有C偷窥了B发送的数据,但是C没有A的私钥无法解密。同样,B生成一对公钥和私钥,公钥发送给A,A用公钥加密数据发送给B,B收到数据后用私钥解密,中间数据被C窃取,C也无法解密。

非对称性加解密相比于对称性加解密安全,因为密钥非对称,公钥随便公开,只要私钥不在网络上传输,别人即使获得公钥,窃取了加密后的数据,也无法解密。但是,非对称加解密的算法复杂度较高,对于实时性的数据加密压力较大。所以一般使用的数据加解密方法是,使用非对称性加解密方法传输对称性加解密算法的密钥,传输数据时,用对称性加解密方法加解密。

常见的非对称性加密算法如RSA算法,RSA是三个人共同提出的,所以以三个人的姓氏首字母命名。它是基于大数的因式分解的数学难题而提出的,对一个大数进行因式分解,其复杂度相当高。

3、SSH加密原理

SSH安全协议是一种非对称加密和对称加密算法的结合。

首先服务端会通过非对称加密,产生一个公钥和一个私钥;

在客户端发起请求时,服务端将公钥暴露给客户端,这个公钥可以被任意暴露;

客户端在获取公钥之后,会先产生一个由256位随机数字组成的会话密钥,称为口令;

客户端通过公钥将这个口令加密,发送给服务器端;

服务器端通过私钥进行解密,获取到通讯口令;

之后客户端和服务端的信息传递,都使用这个口令进行对称的加密。

密钥交换算法

如果要进行对称性加解密,通信双方需要使用相同的加解密算法和密钥,那么双方如何协商他们使用的密钥呢?一种方式是双方使用RSA等非对称性加密算法进行密钥的交换,还有一些其他的密钥交换算法,比如DH密钥交换算法。

小铁匠米兰的v回答于

企业没有必要加密所有的数据。为了确保安全,企业需要一个详细的策略。首先,确定自己的哪些数据需要位于云端,以及流量的位置。只有这样,才能决定哪些信息值得加密。

在加强安全措施之前,企业评估其可行性。应评估引入新措施的成本,并将其与数据泄露造成的潜在损失相比较。另外,企业还应该分析加密、访问控制、用户身份验证对系统性能的影响。

数据保护可以在多个层面上实施。例如,用户发送到云端的所有数据都可以使用AES算法进行加密,该算法提供了匿名性和安全性。下一级保护是云计算存储服务器中的数据加密。云计算提供商通常将数据存储在多个数据中心中,通过冗余来帮助保护客户信息。

圣人惠好可爱在一条通往牛逼的道路上,我不断放弃回答于

供选择的加密算法有FPE和Tokenization。而姓名等数据则可以采用AES256等更通用的加密算法。

谢鸢回答于

按字段加密,可以在数据到达云端之前完成加密,安全性最好

温浪回答于

1 密钥交换算法 ECDHE_RSA,这是由ECC和DH密钥交换算法衍生出来的算法; 

2 动态密钥算法 AES_128_GCM,用于实现数据包的加解密; 

3 MAC算法 HMAC_SHA256,用于创建加密数据块的摘要; 

4 伪随机函数 PRF,TLS1.2 定义其与MAC算法一致。

小翼This is a bug!回答于

数据库透明加密应用透明,应用系统和外围维护工具无需改造,涵盖SQL语句透明、存储程序透明、开发接口透明、数据库对象透明、管理工具透明。

扫描关注云+社区