RSA 加密 C#
Posted
技术标签:
【中文标题】RSA 加密 C#【英文标题】:RSA Encryption C# 【发布时间】:2010-03-14 08:29:04 【问题描述】:我有一个在 C# 中进行 RSA 加密的类,我使用了默认的 RSACryptoServiceProvider 类。但我对以下内容有疑虑;如果您有单词 hello 作为输入并且加密的字符串返回为 ABCDE,如果您对输入 hello 执行另一个加密操作,则对 RSA 使用相同的密钥(公钥和私钥)输出是否会再次为 ABCDE?
提前致谢
【问题讨论】:
瑞恩,我的回答有什么不足吗? 【参考方案1】:确实,RSA是一种确定性加密算法,所以给定相同的密钥和明文,就会输出相同的密文。 RSA 通常与填充方案一起使用以保证语义安全。
这当然只是一般情况。我不能保证 C# 中的 RSACryptoServiceProvider
编辑:
当然,您选择的填充方案也必须是相当伪随机的。 OAEP 是一种常用的。
【讨论】:
值得注意的是,因此,如果攻击者有足够的数据并且没有填充数据,RSA 很容易受到统计分析的影响。出于这个原因,SSH 等协议使用 RSA 进行身份验证,并使用不同的算法进行数据加密。 但是填充方案也是确定性的吗? @Henk Holterman:这有点傻,不是吗? :P 我是这么认为的。但这对原始问题意味着什么?以上是关于RSA 加密 C#的主要内容,如果未能解决你的问题,请参考以下文章