gpt4 book ai didi

c - C 示例中的 AES、Serpent 或 Twofish?

转载 作者:太空狗 更新时间:2023-10-29 17:02:12 25 4
gpt4 key购买 nike

我发现了很多 AES、Twofish 和 Serpent 的 C 实现。但是我不是很理解这些例子。我只知道有些地方提供了反转矩阵的例子。

谁能给我一个示例或 .c 文件来加密/解密由 char* 和密码表示的数据?

最佳答案

维基百科文章实际上链接到一个优秀的 tutorial (由 X-N20 编写)用 C 语言编写,引导您完成数学运算并随时提供 C 实现,这对于理解过程非常有用。我还建议阅读 finite field arithmetic .

SerpentTwofish , 错过了 AES 的称号,在互联网上没有很好的记录。请记住,尽管每个都提供了引用实现。

实际自己实现它们需要研究它们各自的论文,可能还需要引用源代码。

请注意,您的 200 亿条评论都与这样一个事实有关,即 NIST 为 AES 指定的接口(interface)是每个密码提供一个 128 位(16 字节)输入 block 以及 128 位、192 位和 256 位之一关键 block 。

为了以正确抵抗密码分析的方式安全地加密,您需要做一些仔细的工作。例如,如果您的最后一个 block 缺少所需的几个字节怎么办?你如何安全地垫?同样,根据预期用途,还有其他方案,特别是针对大量重复数据,旨在抵抗密码分析,您知道加密数据可能包含 c:\windows 的内容。评论员试图说明的是,对于任何现实世界的使用,为了保持安全,这些事情都需要考虑。

编辑 由于另一个问题出现在这个主题上,这里有几个链接:

  • Brian Gladman's ASM/C code用于各种加密算法,包括 AES、SHA 和 Serpent。
  • OpenSSL's AES code在他们的简历中。另见 DES .他们没有实现 Serpent。您可能还想在 crypto 下查看他们的其余代码。
  • Crypto++ .如果您可以使用 C++ 并且只是加密的最终用户,那么您需要这个库 (tm)。那里有我从未听说过的算法。他们的SVN trunk .
  • libgcryptgpg 提供了一整套加密函数。具体来说,如果您使用 AES,您可能不会在这里找到它,但您会找到 camellia 和 serpent。

关于c - C 示例中的 AES、Serpent 或 Twofish?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4688512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com