关于VS.NET RSACryptoServiceProvider的疑惑
RSA的安全性依赖于大数难于分解这一特点。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。
密钥对的产生。选择两个大素数,p 和q 。计算:n = p * q 然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 )互质(PS:为了提高加密速度,e一般从以下三个值中选:3,17,65537,MS选的就是65537,专家认为三个值中任选一个都不会造成安全问题)。最后,利用Euclid 算法计算解密密钥d, 满足e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) ),其中n和d也要互质。数e和n是公钥,d是私钥。
两个素数p和q不再需要,应该丢弃,不要让任何人知道。加密信息 m(二进制表示)时,首先把m分成等长数据块 m1 ,m2,..., mi ,块长s,其中 2^s <= n, s 尽可能的大。对应的密文是:
ci = mi^e ( mod n )
解密时作如下计算:
mi = ci^d ( mod n )
根据RSA原理,用e和n加密,用d和n解密,事实上也可用d和n解密,而用e和n解密。
VS.NET 的RSACryptoServiceProvider只提供公钥(可独立导出),私钥(不能独立导出,如果要导出则导出全部RSA参数)解密,这样用RSACryptoServiceProvider无论如何不能实现私钥加密,公钥解密,在某些情况下(如软件注册算法)就很不方便。我就搞不懂,MS的RSA实现私钥为何必须要带RSA的全部参数,而不只是d和n?
欢迎访问:炬源信息技术网(http://www.hugesoft.net/)
转载于:https://www.cnblogs.com/zhilunchen/archive/2008/10/29/1322438.html
关于VS.NET RSACryptoServiceProvider的疑惑相关推荐
- configure_file路径疑惑
configure_file(<input> <output>[COPYONLY] [ESCAPE_QUOTES] [@ONLY][NEWLINE_STYLE [UNIX|DO ...
- 性能测试分析之带宽瓶颈的疑惑
第一部分, 测试执行 先看一图,再看下文 这个当然就是压力过程中带宽的使用率了,我们的带宽是1Gbps的,合计传输速率为128MB/s,也正因为这个就让我越来越疑惑了,不过通过压力过程中的各项数据我又 ...
- RedLock: 看完这篇文章后请不要有任何疑惑了
图片来源:无证之罪 公众号后台经常会有小伙伴咨询RedLock相关问题,笔者在此再来一篇文章剖析一下RedLock,希望此文能解决你对它所有的疑惑和误解. 为什么需要RedLock 这一点很好理解,因 ...
- ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?
前言 事情不太多时,会时不时去看项目中同事写的代码可以作个参考或者学习,个人觉得只有这样才能走的更远,抱着一副老子天下第一的态度最终只能是井底之蛙.前两篇写到关于断点传续的文章,还有一篇还未写出,后续 ...
- java当前路径和相对路径相关的疑惑
java当前路径和相对路径相关的疑惑_克豪的博客-CSDN博客 java当前路径和相对路径相关的疑惑_克豪的博客-CSDN博客
- iOS单例创建的一点疑惑
线程安全的单例常用写法, +(AccountManager *)sharedManager{static AccountManager *defaultManager = nil;disptch_on ...
- unicode环境下用CFile读取txt的若干疑惑,该如何处理
unicode环境下用CFile读取txt的若干疑惑 在vs2010下对一些文件的操作总是有好多疑问 unicade环境下以前的许多资料发现会出现异常结果,下面看看我的问题: 主要是用CFile读取t ...
- feignclient对象找不到_为什么我找不到对象呢,一个33岁大龄剩女的疑惑
小木是我朋友,属兔今年33了.不仅我觉的她很优秀,周围的人也觉得她很优秀,但就是现在还单身.下面是她的疑惑. 我各方面条件都还行,为什么找不到对象呢? 性格:温和,善良,阳光,有主见.(对待事物有自己 ...
- 关于面向对象的总结和疑惑(转载可乐冰
在这节,老师讲了面向对象的三大特性:1.全局变量:2.封装:3.继承: 现在我就我自己的理解总结一下这节课的内容,并提出相应的疑惑,望老师解答 其一:全局变量 声明变量的方法有三:1,在全局对象中va ...
最新文章
- 315 · Istio1.1 功能预告,真的假不了
- 数据结构与索引-- mysql InnoDB存储引擎索引
- observable_Java Observable countObservers()方法与示例
- java 1.7 可变参数,JDK1.7新特性(2):异常和可变长参数处理
- 大数据各子项目的环境搭建之建立与删除软连接(博主推荐)
- 用C#(asp.net)写出登录验证码!
- Python 和 C++实现 九九乘法表
- windows 中获取字体文件名
- 太阳代理ip_IP直通车 | 冬季之始,你知多少
- 餐饮行业收银系统源码,C# .NET + MSSQL WPF
- 平面方程、两平面的夹角、空间点到平面的距离公式
- C语言将数字转成大写中文数字
- oracle常见单词_oracle认证考试中,常用单词汇总
- 企业版微信公众号从零开始之一(注册账号)
- python读取tsv文件_Python读取tsv文件和evalu
- WordPress – wp-rocket插件的简单设置以及如何加速网站
- RedisDesktopManager2022(resp-2022.0)安装失败的解决
- 两部手机怎样才能把数据都传过来_新旧手机怎样互传数据?
- 逝者已逝,愿生者坚强
- 去哪儿网——项目管理平台助力研发效率提升