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的疑惑相关推荐

  1. configure_file路径疑惑

    configure_file(<input> <output>[COPYONLY] [ESCAPE_QUOTES] [@ONLY][NEWLINE_STYLE [UNIX|DO ...

  2. 性能测试分析之带宽瓶颈的疑惑

    第一部分, 测试执行 先看一图,再看下文 这个当然就是压力过程中带宽的使用率了,我们的带宽是1Gbps的,合计传输速率为128MB/s,也正因为这个就让我越来越疑惑了,不过通过压力过程中的各项数据我又 ...

  3. RedLock: 看完这篇文章后请不要有任何疑惑了

    图片来源:无证之罪 公众号后台经常会有小伙伴咨询RedLock相关问题,笔者在此再来一篇文章剖析一下RedLock,希望此文能解决你对它所有的疑惑和误解. 为什么需要RedLock 这一点很好理解,因 ...

  4. ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?

    前言 事情不太多时,会时不时去看项目中同事写的代码可以作个参考或者学习,个人觉得只有这样才能走的更远,抱着一副老子天下第一的态度最终只能是井底之蛙.前两篇写到关于断点传续的文章,还有一篇还未写出,后续 ...

  5. java当前路径和相对路径相关的疑惑

    java当前路径和相对路径相关的疑惑_克豪的博客-CSDN博客 java当前路径和相对路径相关的疑惑_克豪的博客-CSDN博客

  6. iOS单例创建的一点疑惑

    线程安全的单例常用写法, +(AccountManager *)sharedManager{static AccountManager *defaultManager = nil;disptch_on ...

  7. unicode环境下用CFile读取txt的若干疑惑,该如何处理

    unicode环境下用CFile读取txt的若干疑惑 在vs2010下对一些文件的操作总是有好多疑问 unicade环境下以前的许多资料发现会出现异常结果,下面看看我的问题: 主要是用CFile读取t ...

  8. feignclient对象找不到_为什么我找不到对象呢,一个33岁大龄剩女的疑惑

    小木是我朋友,属兔今年33了.不仅我觉的她很优秀,周围的人也觉得她很优秀,但就是现在还单身.下面是她的疑惑. 我各方面条件都还行,为什么找不到对象呢? 性格:温和,善良,阳光,有主见.(对待事物有自己 ...

  9. 关于面向对象的总结和疑惑(转载可乐冰

    在这节,老师讲了面向对象的三大特性:1.全局变量:2.封装:3.继承: 现在我就我自己的理解总结一下这节课的内容,并提出相应的疑惑,望老师解答 其一:全局变量 声明变量的方法有三:1,在全局对象中va ...

最新文章

  1. 315 · Istio1.1 功能预告,真的假不了
  2. 数据结构与索引-- mysql InnoDB存储引擎索引
  3. observable_Java Observable countObservers()方法与示例
  4. java 1.7 可变参数,JDK1.7新特性(2):异常和可变长参数处理
  5. 大数据各子项目的环境搭建之建立与删除软连接(博主推荐)
  6. 用C#(asp.net)写出登录验证码!
  7. Python 和 C++实现 九九乘法表
  8. windows 中获取字体文件名
  9. 太阳代理ip_IP直通车 | 冬季之始,你知多少
  10. 餐饮行业收银系统源码,C# .NET + MSSQL WPF
  11. 平面方程、两平面的夹角、空间点到平面的距离公式
  12. C语言将数字转成大写中文数字
  13. oracle常见单词_oracle认证考试中,常用单词汇总
  14. 企业版微信公众号从零开始之一(注册账号)
  15. python读取tsv文件_Python读取tsv文件和evalu
  16. WordPress – wp-rocket插件的简单设置以及如何加速网站
  17. RedisDesktopManager2022(resp-2022.0)安装失败的解决
  18. 两部手机怎样才能把数据都传过来_新旧手机怎样互传数据?
  19. 逝者已逝,愿生者坚强
  20. 去哪儿网——项目管理平台助力研发效率提升

热门文章

  1. python gil原理_Python GIL深入浅出
  2. arcgis栅格邻域统计_地理工具学习--arcgis篇:单工具学习(14)
  3. deno mysql_从 Node 到 Deno
  4. Eclipse 皮肤
  5. java实体类 判断 字段_java8 根据实体类中的某个字段对实体类去重
  6. 数据库MySQL基础---DDL/DML/DQL
  7. 安全多方计算(MPC)从入门到精通:简易教程
  8. 五、集合——3-Set集合
  9. [读书笔记]Effective Java 第四章
  10. 使用gdb进行程序调试1-在GDB中运行程序