我正在开展一个项目,我将在性能上比较加密算法。我该如何用软件实现这一目标?我找到了Crypto ++,但我不熟悉C ++。 Crypto ++对我来说也觉得太先进了。是否有任何更简单的软件可供使用,因为我只是一名高中生?
答案 0 :(得分:1)
如果您不了解不同算法的组合方式,那么这可能非常具有挑战性,因此每种算法的配置都是合适的。在许多现代系统中,它也倾向于偏向AES,因为一些芯片内置了AES原语(特别是如果你使用的是优化的库)。另一方面,算法的幼稚C实现可能无法代表大多数人在现实生活中使用的真实世界的优化实现。另一方面,良好的实现可能比较差的实现慢,因为它保持恒定时间(和/或恒定功率)性能,这对安全性很重要。
既然我已经告诉过你一些问题了,它仍然不是一个糟糕的高中项目,你可以学到很多东西(只要确保当你发布你的结果时,你很清楚你没有真的知道你在做什么,所以没有人应该把它们作为明确的基准。)
此IMO的最佳工具包是BouncyCastle。它在Java中,相对容易学习(与Crypto ++中的一些奇特的C ++相比)。它有一个相当平易近人的API。它有很多不同的算法可供选择。它是专业开发人员每天使用的真实图书馆。
学习BC周围的方式,即使你错误地使用它(你会这样做;加密很难正确地做,即使有一个库),也可能是一个很好的学习经历,所以去吧。