2016-12-21 93 views
1

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

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

+0

尝试询问:http://cs.stackexchange.com/因为这是编程站点。 – kenorb

+0

考虑接受有用的答案。通过接受答案,您向未来的读者表明这是一个正确的答案。 接受的空心勾选答案点击是最好的答案旁边,这样做会增加你的声誉和允许更多的功能,参见[口碑常见问题解答(http://stackoverflow.com/faq#reputation)参见[本页](http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work)了解更多详情。 也请考虑回去并接受过去的答案,请参阅[声誉常见问题](http://stackoverflow.com/faq#reputation) – zaph

回答

1

当然还有丰富的研究这里的机会。对你好奇并对它进行研究很有帮助。你可能会希望控制大意如下几个变量和测试:

  • 对称与非对称加密(即AES与RSA)
  • 不同的对称算法(即Rijndael算法(AES目前的算法)VS 。河豚,DES,TDES,等)的操作的
  • 不同块加密模式(即CTR与CBC与GCM等)
  • 不同数据大小(即它线性比例?是否采取恰好1000X只要加密16个字节与16_000与16_000_000?)

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

如果你以前没有编码经验,爪哇,红宝石和Python都有非常流行的加密库和广泛的社区是高兴地支持你,如果/当你遇到挑战。如果您已经熟悉一种或多种特定语言,我会建议使用其中一种语言,因为学习特定于加密的指令会非常棘手;学习一种新语言可能是当前增加的不必要的负担。

我认为这是足够含糊,你仍然必须做的研究和调查为您的纸张,但应提供一个起点。如有需要,请随时跟进具体问题。

+0

非常感谢你,你知道我怎么可以测试算法的速度,如因为与其他人相比,加密需要多长时间? –

+0

您必须编写一个测试工具来执行这两个操作并比较时间。您需要多次运行并考虑平均值/中值/标准偏差。有许多不同语言的库可以执行基准测试,但基本概念是,您可以记录当前时钟时间,执行操作,再次记录时钟时间并进行相减。 – Andy