【问题标题】:RSA Encryption C#RSA 加密 C#
【发布时间】:2010-03-14 08:29:04
【问题描述】:

我有一个在 C# 中进行 RSA 加密的类,我使用了默认的 RSACryptoServiceProvider 类。但我对以下内容有疑虑;如果您有单词 hello 作为输入并且加密的字符串返回为 ABCDE,如果您对输入 hello 执行另一个加密操作,则对 RSA 使用相同的密钥(公钥和私钥)输出是否会再次为 ABCDE?

提前致谢

【问题讨论】:

  • 瑞恩,我的回答有什么不足吗?

标签: c# rsacryptoserviceprovider


【解决方案1】:

确实,RSA是一种确定性加密算法,所以给定相同的密钥和明文,就会输出相同的密文。 RSA 通常与填充方案一起使用以保证语义安全。

这当然只是一般情况。我不能保证 C# 中的 RSACryptoServiceProvider

编辑:

当然,您选择的填充方案也必须是相当伪随机的。 OAEP 是一种常用的。

【讨论】:

  • 值得注意的是,因此,如果攻击者有足够的数据并且没有填充数据,RSA 很容易受到统计分析的影响。出于这个原因,SSH 等协议使用 RSA 进行身份验证,并使用不同的算法进行数据加密。
  • 但是填充方案也是确定性的吗?
  • @Henk Holterman:这有点傻,不是吗? :P
  • 我是这么认为的。但这对原始问题意味着什么?
猜你喜欢
  • 2015-03-16
  • 2012-01-03
  • 2012-11-27
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多