如何用C#开始学习密码学?

5

我希望学习有关密码学理论(基础知识),并想在c#中使用算法。

因此,我需要一些指南、书籍和教程来入门。

请帮助我,谢谢。

6个回答

7

阅读尼尔斯·弗格森(Niels Ferguson)和布鲁斯·施奈尔(Bruce Schneier)的实用密码学Practical Cryptography。您可能还想阅读布鲁斯之前的(旧,但仍非常酷的)书籍 - Applied Cryptography

它们不会教授您想要了解的所有知识-但它将消除许多神话并教授您很多理论和实践知识。

它们中没有代码,但我选择了一种独立于语言的答案,因为在学习不同类型的加密以及如何使用它们后,在C#中使用原语显着更容易。

之后,在我看来,MSDN成为如何使用这些原语的主要参考资料。


2

“linked”文章已不再提供。我在Archive.org上找到了它。这是一篇大约写于2003年11月的相当不错的文章。因此,涉及.NET 1.1的参考资料。 - James

2
我建议您阅读David Hook的《使用Java进行密码学初探》(Beginning Cryptography with Java)。这本书使用Java语言,因此对您来说不是最理想的选择。但是Java和C#非常相似,所以它应该会有所帮助。而且,这本书的作者也是Bouncycastle加密库的维护者,该库包括一个几乎与Java相同的C#库。这本书中的大部分示例应该很容易转换成C#。

1

一旦你读完了Schneier的优秀著作《应用密码学》,我建议你阅读应用密码学手册,它包含了所有细节,这些细节会使Schneier的书显得比较杂乱,但对于任何对安全协议和程序实际实现感兴趣的人来说都是必需的。

(一旦你读完它,你可能会更好地理解为什么每个人都依赖于像OpenSSL、GnuTLS、Crypto++等加密库。)


非常同意 - 你的推论是“除非你真的知道自己在做什么,否则不要自己动手写代码!” - Andras Zoltan



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接