如何保证生成的私钥不重复(相同)

原创 2007年09月25日 23:03:00

心提示:openssl或是其它基于<公钥,私钥>的算法中,如何保证生成的私钥不重复(相同),不被有恶意的人生成同样的私钥? 1、CA根服务器的如何保证颁布给别人的私钥,不会被hacker暴力算出来? 2、我建一个企业内部的CA服务器,怎么做到颁发的证书不让其它人也安个CA,算出相..... 

 

enssl或是其它基于<公钥,私钥>的算法中,如何保证生成的私钥不重复(相同),不被有恶意的人生成同样的私钥?

1、CA根服务器的如何保证颁布给别人的私钥,不会被hacker暴力算出来?

2、我建一个企业内部的CA服务器,怎么做到颁发的证书不让其它人也安个CA,算出相机的私钥来。

 

RSA工作原理
1)  任意选取两个不同的大质数p和q,计算乘积r=p*q;
2)  任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。注意:e的选取是很容易的,例如,所有大于p和q的质数都可用。
3)  确定解密密钥d: d * e = 1 modulo(p - 1)*(q - 1) 根据e、p和q可以容易地计算出d。
4)  公开整数r和e,但是不公开d;
5)  将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为:
C = Pe modulo r
6)  将密文C解密为明文P,计算方法为:
P = Cd modulo r
然而只根据r和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

 

 

我的问题是如果在某个时间某个CA服务器产生出的 随机数 p,q,和e 碰巧与之前(另外一台主机的)的相同以后,那密钥不就重担了吗,失去了其唯一标识一个用户的作用。


p q 那是很重要的,但一切定理和理论都基于假设,安全理论也不例外。此处的假设就是,没有一个人能够获得和你的 CA 一样的 RSA 密钥对。如果产生了重复,岂不等同于密钥被破解?如果你知道密钥被破解之后该做些什么,你也就清楚密钥产生了重复以后你的任务。

如果真的巧合,随机数相同,但是你不知道谁的密钥和你相同
就像银行密码,一定有人和你相同,但是你不知道是谁。

阁下和我的想法一样,但不知是否真的这样,还是这些算法本身有一种机制可保证产生的随机数不同。
书上说1024位的RSA要179台2GB内存的主机300,0000年才可破解。但现在互联网上的证书服务器这么多,都在根据RSA算法去生成随机数,我想这个重复的概率是大大增加了。

可以不用担心会产生相同的证书/私钥,只要关心私钥的安全性,使用usb key之类的

 

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c#生成rsa公钥和私钥

  • 2015-01-21 17:26
  • 102KB
  • 下载

java生成数字证书(二、私钥数字证书)

先生成jks,再将jks转化为pfx 之所以所有的参数都用info[],是为了统一测试,还有就是我比较懒,不想再改了>v< 1.生成jkspackage ca;import java.io.Fil...

支付宝生成私钥公钥工具

  • 2016-02-14 16:57
  • 1.11MB
  • 下载

生成公钥私钥工具OpenSSL

  • 2016-09-18 23:14
  • 17.63MB
  • 下载

OpenSSL生成私钥和公钥以及RSA加密

MAC 自带了OpenSSL,直接在终端里使用。 1、打开终端,然后输入cd到一个文件夹用来存放生成的公钥私钥文件。接着输入openssl来打开OpenSSL。 2、输入 genrsa -ou...

openssl生成RSA私钥公钥

  • 2015-08-23 18:31
  • 949KB
  • 下载

MAC OS下OpenSSL生成私钥和公钥以及RSA加密

转载地址:http://blog.sina.com.cn/s/blog_8589a6890102vitk.htmlMAC OS自带了OpenSSL,直接在命令行里使用OPENSSL就可以。 (1)生...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)