首页 / C# / c# – RSA私钥加密
c# – RSA私钥加密
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – RSA私钥加密,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1793字,纯文字阅读大概需要3分钟。
内容图文
![c# – RSA私钥加密](/upload/InfoBanner/zyjiaocheng/807/d3bfcfcb064341df9056ea1dede3102c.jpg)
有没有办法在C#中执行私钥加密?
我知道System.Security.Cryptography中的标准RSACryptoServiceProvider,但这些类仅提供公钥加密和私钥解密.此外,它们提供数字签名功能,使用内部私钥加密,但没有任何可公开访问的功能来执行私钥加密和公钥解密.
我找到了this article on codeproject,这是执行这种加密的一个非常好的起点,但是,我正在寻找一些现成的代码,因为文章中的代码很难加密包含随机的任意长字节数组值(表示任何值,包括零).
你知道一些好的组件(最好是免费的)来执行私钥加密吗?
我使用.NET 3.5.
注意:我知道这通常被认为是使用非对称加密的不良方式(使用私钥加密和使用公钥解密),但我只需要这样使用它.
附加说明
考虑一下你
var bytes = new byte[30] { /* ... */ };
并且您希望使用2048位RSA以确保没有人更改此阵列中的任何内容.
通常,您将使用数字签名(即RIPEMD160),然后将其附加到原始字节并发送到接收器.
因此,您有30个字节的原始数据,以及额外的256个字节的数字签名(因为它是一个2048位的RSA),总共286个字节. Hovewer,这256字节中只有160位实际上是散列的,所以没有使用1888位(236字节).
所以,我的想法是这样的:
取30个字节的原始数据,将哈希值(20个字节)附加到它,现在加密这50个字节.你得到256字节长的消息,比286字节短得多,因为“你能够在数字签名中推送实际数据”.
ECDSA资源
MSDN
Eggheadcafe.com
c-plusplus.de
MSDN Blog
Wiki
DSA资源
最终解决方案
如果有人对我如何解决这个问题感兴趣,我将使用1024bit DSA和SHA1,它在许多不同版本的Windows(Windows 2000和更新版本)上得到广泛支持,安全性已经足够(我不签名)订单,我只需要确保一些孩子不能破解他的iPhone上的签名(:-D),并且签名大小只有40个字节长.
解决方法:
您尝试设计的内容称为“具有消息恢复的签名方案”.
设计新的签名方案很难.设计具有消息恢复的新签名方案更加困难.我不知道有关您的设计的所有细节,但它很可能容易受到选择的消息攻击.
有关消息恢复的签名方案的一个提议是RSA PSS-R.但遗憾的是,该提案已获得专利保护.
IEEE P1363标准化小组曾讨论过添加带有消息恢复的签名方案.但是,我不确定这项工作的当前状态,但可能值得一试.
内容总结
以上是互联网集市为您收集整理的c# – RSA私钥加密全部内容,希望文章能够帮你解决c# – RSA私钥加密所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。