【问题标题】:XOR encryption/decryption and complianceXOR 加密/解密和合规性
【发布时间】:2023-04-08 12:59:01
【问题描述】:

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

我已将其用于 C++ 中的文件加密/解密。该文件包含安全数据。该文件被分成许多固定大小的块,不同的字符用于加密不同的块,得到一个加密文件。

我想知道两件事:

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

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

感谢您的帮助。

【问题讨论】:

    标签: encryption cryptography pci-compliance


    【解决方案1】:

    您已经回答了自己的问题。 XOR“加密”,如果你可以这么称呼它,应该从不在生产代码中使用。在学术层面,它提供了一个很好的例子,说明没有经验的密码学家可以对其进行密码分析的破解加密方案。过了,就没用了。但是,与您所说的相反,XOR 加密确实需要密钥。

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

    XOR 加密对于 PCI 合规性等问题也绝对不可接受。

    【讨论】:

    • 我认为这个问题的答案并不能说明这个神秘的“XOR 加密”的全部故事。如果我们只是指一次性垫,那么它实际上确实提供了完美的保密性。然而,出于多种原因(密钥要求、延展性),通用加密是相当不切实际的。在某些场景下,它仍然可以在实践中使用,例如用于秘密分享。
    【解决方案2】:
    1. 是的,有一种更安全的文件加密方式:AES(高级加密标准)。

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

    3. 这不符合 PCI 标准,请参阅 PCI Security Standards

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

    【讨论】:

      【解决方案3】:

      XOR 加密根本不安全。破解很简单,几乎可以在任何设备上完成。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多