【问题标题】:How Can/Should I Test The AES Algorithm我如何/应该如何测试 AES 算法
【发布时间】:2023-03-28 14:00:01
【问题描述】:

我正在写一篇关于计算机科学的扩展论文,但我不知道该怎么做。我对 AES 算法或任何加密算法的主题感兴趣。然而,由于计算机科学是一门科学学科,我必须进行实验。但是我不确定我应该如何测试它。

我考虑过加密不同类型的文件,例如。视频、照片和文字文件等,并与其他加密算法相比,测试数据传输速度或加密速度。我想知道你们中是否有人能告诉我如何做到这一点或推荐一个不同的实验。做不到不能太难,不能考好也不能太容易。谢谢。附言我 17 岁(12 年级)

【问题讨论】:

  • 尝试询问:cs.stackexchange.com,因为这是编程站点。
  • 考虑接受有帮助的答案。通过接受一个答案,您向未来的读者表明这是一个正确的答案。要接受答案,请单击最佳答案旁边的空心复选标记,这样做会提高您的声誉并提供更多功能,请参阅reputation faq 更多详细信息,请参阅this page。也请考虑返回并接受过去的答案,请参阅reputation faq

标签: encryption aes rijndael


【解决方案1】:

当然,这里有很多研究机会。对您对此感到好奇并对其进行调查对您有好处。您可能希望控制一些变量并按照以下几行进行测试:

  • 对称与非对称加密(即 AES 与 RSA)
  • 不同的对称算法(即 Rijndael(当前 AES 算法)与 Blowfish、DES、TDES 等)
  • 不同的分组密码操作模式(即 CTR 与 CBC 与 GCM 等)
  • 不同的数据大小(即它是否可以线性扩展?加密 16 字节与 16_000 与 16_000_000 相比是否需要 1000 倍的时间?)

您需要在相同的硬件、相同的负载、相同的语言中多次运行这些实验,以获得良好的数据。特别是考虑到现代 CPU 具有 AES-NI 指令集和用于加密数据的自定义寄存器,请记住为您的实验设置种子,否则后续运行可能会有不同的性能配置文件。

如果您以前没有编码经验,Java、Ruby 和 Python 都拥有非常流行的密码库和广泛的社区,如果/当您遇到挑战时,他们很乐意为您提供支持。如果您已经熟悉一种或多种特定语言,我建议您使用其中一种,因为学习特定于加密的指令会很棘手;此时学习一门新语言可能是一个不必要的负担。

我认为这很模糊,您仍然需要为您的论文进行研究和调查,但应该提供一个起点。如果您需要,请随时跟进具体问题。

【讨论】:

  • 非常感谢,您知道我如何测试算法的速度,例如与其他算法相比加密需要多长时间?
  • 您必须编写一个测试工具来执行这两个操作并比较时间。您需要多次运行并考虑均值/中值/标准差。有许多不同语言的库可以执行基准测试,但基本概念是记录当前时钟时间,执行操作,再次记录时钟时间,然后减去。
猜你喜欢
  • 2010-11-05
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 2023-03-19
  • 2011-12-01
  • 2018-08-26
相关资源
最近更新 更多