知道一个加密字符会带来安全漏洞吗?

时间:2018-06-26 20:09:09

标签: php security encryption cryptography encryption-symmetric

API数据库表中的一列是加密的文本,该文本由两条信息组成,这些信息与给定的定界符并列,例如冒号。第二条信息总长12个字符。

知道此信息是否会造成安全漏洞,并可能使攻击者在掌握信息后就可以解密该信息?

使用php方法openssl_encrypt()和'aes-128-gcm'密码对信息进行加密。

1 个答案:

答案 0 :(得分:1)

您所说的话在文献中被称为部分已知的纯文本攻击(partial-KPA)。

  

使用php方法openssl_encrypt()和'aes-128-gcm'密码对信息进行加密。

AES-GCM将AES-CTR与GHASH(GF(2 ^ 128)上的多项式MAC)结合在一起。

要进一步回答问题,需要更深入地研究密码学杂草,但通常:

  • AES被认为是安全的分组密码。
  • CTR模式将分组密码转换为流密码。
  • 流密码加密在概念上等同于一次性密码,只是密钥流是由密钥和随机数生成的,因此只能具有有限的安全级别(在这种情况下为128位)。
  

API数据库表中的一列是加密的文本,该文本由两条信息组成,这些信息与给定的定界符并列,例如冒号。第二条信息总长12个字符。

您可以从AES-GCM密文中推断出的唯一内容就是明文的长度。

为了能够从一个字节的密文(以及该字节的对应的已知明文)中推断出密钥流的其余部分,AES将需要是一个非常不安全的分组密码。由于我们知道(由于大约21年的密码分析工作),AES 是一种安全的分组密码,而AES-GCM是一种安全的身份验证密码模式,因此,部分KPA对此结构无关紧要。