C示例中的AES,Serpent或Twofish?

kil*_*ode 8 c encryption aes

我在C中发现了很多AES,Twofish和Serpent的实现.但我真的不明白这些例子.我只知道有些地方提供了反转矩阵的例子.

有人可以指向我的示例或.c文件来加密/解密由a char* 和密码表示的数据 吗?

小智 8

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

错过了AES标题的SerpentTwofish在互联网上并没有那么好记录.请记住,每个都提供参考实现.

实际上自己实施它们需要研究各自的论文,可能还需要参考参考源代码.

请注意,您的200亿条评论都与以下事实有关:为AES指定的接口NIST是每个密码提供128位(16字节)输入块以及128位,192位和256位密钥块之一.

为了安全地加密以适当地抵制密码分析,您需要一些谨慎的工作.例如,如果你的最后一个块丢失了几个字节怎么办?你怎么安全地垫?类似地,根据预期用途,还有其他方案,特别是对于大型重复数据,旨在抵制密码分析,其中您知道加密数据可能包含说的内容c:\windows.评论家试图得到的是,对于任何现实世界的使用,为了保持安全,需要考虑这些事情.

编辑由于此主题出现了另一个问题,这里有一些链接:

  • Brian Gladman的各种加密算法的ASM/C代码,包括AES,SHA和Serpent.
  • OpenSSL的 CVS中的AES代码.另见DES.他们没有实施Serpent.您可能还想查看其余代码crypto.
  • 加密++.如果您可以使用C++并且只是加密的最终用户,那么您需要此库(tm).那里有我从未听说过的算法.他们的SVN主干.
  • libgcrypt为.提供了一整套加密函数gpg.具体来说,如果你是在AES之后,你可能在这里找不到它,但你会发现山茶花和蛇.