加密/解密数据最安全的方法是什么?

时间:2011-12-05 15:44:50

标签: c# .net security encryption .net-4.0

现在我知道这是一个非常开放的问题,例如“一条弦多长时间”,但我是这个游戏的新手。

从我的基本理解(在我深入研究这个主题之前),我相信AES 256bit加密是非常安全的。

我的需求是使用.Net使用尽可能最安全的加密来生成私钥和公钥。

现在我从专家的角度知道这可能是一个天真的问题,但请帮助我扩展我的知识,并提出最佳方法,算法以及此类项目中需要考虑的其他事项。

非常感谢。

3 个答案:

答案 0 :(得分:2)

可能没有这样的东西可用。您的加密级别应与与数据关联的线程成比例。请记住,通常由人类创造的任何东西都可以被人类打破。

如果您想使用一对密钥加密/解密数据,您很可能会走上非对称加密的路径 - google it。从.NET点开始,您可以查看RSA algorithm的实现,其中considered to be secure的密钥大小为 1024 2048位或更多。

答案 1 :(得分:0)

您无需加密即可生成公钥/私钥。这是一个数学运算。然后将密钥用于加密。

快速概述它们如何连接在一起是

  1. 生成密钥。
  2. 然后使用密钥在各方之间安全地交换“密码”。
  3. 然后使用'密码'加密双方之间的进一步沟通。
  4. 第2部分将使用散列和签名等方案来确保通信是真实的和未被禁止的。 PKI非常慢,所以尽管你可以在实践中使用它来保护通信,但它通常只在开始时使用,然后使用更快的方案,如AES。

    其中很多内容应该出现在维基百科上,并查看Bruce Schneier的作品。

答案 2 :(得分:0)

AES是一种对称算法 - 意思是一键......如果你想要密钥对查找RSA库......快速谷歌搜索提供以下链接:

http://www.codeproject.com/KB/security/RSACryptoPad.aspx