什么是.Net 3.5中最强大的加密

时间:2009-06-26 13:33:51

标签: .net encryption

我在S3中存储文件,并希望将数据加密到最大。我正在使用ThreeSharp S3库,它使用DESCryptoServiceProvider来加密数据。与.Net中提供的其他加密相比,DESCryptoServiceProvider有多强大?

我也看到像Mozy.com这样使用448位Blowfish加密的服务。我做了一些研究,发现了一些提供Blowfish的免费图书馆。但没有什么可以说明为什么Blowfish比.Net提供的更好。

我需要知道.Net 3.5中最强的加密方式是什么。我还想对其他可能不在.Net中的库提出更高的加密建议。

6 个答案:

答案 0 :(得分:17)

DES已经过时了。它的56位密钥基本上可以通过笔记本电脑的计算能力在几个小时内强制执行。 .Net附带的最佳对称密钥加密是AES 256(http://msdn.microsoft.com/en-us/library/system.security.cryptography.aescryptoserviceprovider.aspx)。 Blowfish和AES(又名Rijndael)的比较超出了本讨论的范围,但AES是采用的NIST标准,也是可预见的未来之路。有关详细信息,请参阅http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

答案 1 :(得分:4)

DES是不安全的。使用AES。 AES被美国国家安全局批准用于其所有绝密操作。

答案 2 :(得分:3)

由于在密钥中使用奇偶校验位,DES名义上是64位但实际上是56位加密。然而,它是一个古老的联邦标准,尽管它的年龄从来没有被蛮力破坏。一般来说,你会坚持使用标准化的加密算法来实现互操作性,而且因为如果他们要破坏它们,他们可能已经有了更多的审查。因此,对于.NET提供的强加密,您最好选择3DES(有效168位)或AES(最高256位) - 后者是在其原始名称Rijndael下实现的,因为.NET首次发布此AES选择过程正式结束前的库。

在加密中,您需要足够强大的加密,而不是最强大的加密。除非你试图保护与NSA具有相同资源水平的人的信息,否则这些都可以解决问题......

答案 3 :(得分:2)

我现在很久以前都在谈论(VB6天),但我过去常常使用一些与VB中的PGP配合使用的模块,如果我有选择的话(这就是模块的话,我会得到PGP的声誉) / new .net库仍然存在),出于安全原因选择任何Builtin CLR加密。

虽然如果PGP没有最近的.net库,那么256位AES可能是你最好的选择。

编辑:AES可能值得注意的是NSA要求创建的所有新加密算法都包含后门访问系统,以便他们在需要访问时使用加密数据(恐怖分子加密数据等)Phil Zimmermann(原始版本) PGP的作者)空白拒绝这样做。虽然我不知道哪个加密算法包含后门(AES在这个论点发生之后被很好地引入.Net所以很可能它有后门),可以说PGP没有!

http://www.philzimmermann.com/EN/faq/faq.html

从某个安全网站引用

  “反政府的Phil Zimmermann   PGP的创造者说它的副本   出售的加密软件   2001年秋天,当他离开NAI时,   是可靠的,但未来的版本可能是   污点“

所以最新版本可能不会出现,但我很高兴使用2001年之前的版本(7.0.3是Zimmermann保证的最后一个版本): - )

EDIT2:http://www.codeproject.com/KB/security/gnupgdotnet.aspx这似乎有所帮助。

HTH

单稳

答案 4 :(得分:2)

使用System.Security.Cryptography.RijndaelManaged 256位密钥。没有什么能打破这一点,如果有一场加密革命可能会突然破坏,那么可能会有比你保护的数据更重要的目标;银行,国际公司,政府。

答案 5 :(得分:0)

Blowfish是一种比Rijndael更老的密码。 Blowfish已经足够老了,已经进行了深入的研究,并且没有对它进行过有效的攻击,所以它可能足够安全。

然而,设计Blowfish的人不再推荐使用它了。既然我不是文盲大师,我会推迟他们对这个问题的判断。相反,他们推荐Blowfish的继任者Twofish,这是AES决赛入围者之一。