XOR encryption/decryption 和合规

XOR encryption/decryption and compliance

XOR encryption/decryption 是一种非常基本的机制,不需要任何密钥来加密。

我在 C++ 中将其用于文件 encrypt/decrypt。该文件包含安全数据。该文件分为许多固定大小的块,不同的字符用于加密不同的块,从而得到一个加密文件。

我想知道两件事:

  1. 是否有其他更安全的加密方式?
  2. 如果考虑 PCI 合规性,这种机制是否可以接受?

我无法在当前环境中添加对任何加密库(如 openssl 等)的支持。

感谢您的帮助。

异或加密一点也不安全。打破是微不足道的,几乎可以在任何设备上完成。

它不适合 PCI 合规性。 OWASP 在这里提供了一些指导: https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet#Rule_-_Use_strong_approved_cryptographic_algorithms

对于 C++,有许多库可以为您进行加密 - 使用这些库,不要自己实现,否则会出错!要查看的一些库是 OpenSSL 和 libgcrypt。

您已经在一定程度上回答了您自己的问题。 XOR "encryption",如果你可以这样称呼它,那么 永远不要 用于生产代码。在学术层面,它提供了一个破译加密方案的极好示例,没有经验的密码学家可以对其进行密码分析。过了就没用了。然而,与您所说的相反,XOR 加密确实需要密钥。

撰写本文时行业标准的对称加密算法是 AES。 AES 用于许多广泛使用的协议,例如 TLS 和 SSH。

对于 PCI 合规性之类的事情,XOR 加密也是绝对不能接受的。

  1. 是的,有一种更安全的文件加密方式:AES(高级加密标准)。

  2. 因为没有密钥所以不是加密,而是混淆。几乎没有安全性,安全性不是通过使用秘密方法获得的。

  3. 这不符合 PCI,参见 PCI Security Standards

  4. "Schneier's Law": "任何人,从最无能的业余爱好者到最优秀的密码学家,都可以创建他自己无法破解的算法。"