RSA怎样设置公钥和私钥

RSA怎样设置公钥和私钥,第1张

首先明确一点,公钥和私钥是成对出现的。一个负责加密,另一个负责解密。公开的就是公钥,自己留着的就是私钥。所以不管加密还是解密密钥都是可以是公钥或者私钥的。

所以如果别人发东西给我,我就需要把加密密钥给别人,解密密钥自己藏着,这样就是公钥加密,私钥解密。

如果我想让别人确认我的身份,我就需要把解密密钥给别人,加密密钥自己留着,给自己加密,别人获得密文后用我的解密密钥才可以解密。所以这里就是公钥负责解密,私钥负责加密。

例如服务器证书,一个证书中通常包含很多字段,其中包括:

浏览器收到证书时会对签名颁发机构进行检查。如果这个机构是个很有权威的公共签名机构,浏览器可能已经知道其公开密钥了(浏览器会预先安装很多签名颁发机构的证书),然后用公钥解密,获得相关信息,例如获得证书里面的Web站点的名称和主机名,看看与当前浏览器的地址栏中的地址是否匹配,不匹配的话,浏览器就会给出警告(你可能看到过),提示当前证书是颁给xxx域名的,不是给当前域名的,让你注意。

c值的是算出来是正确的,但是M值设置是错误的,在RSA算法中m值不能大于n值,在该算法中是模运算,求出的明密文必然小于n,因此明文不能大于n

C=M^e mod N; M=C^e mod N;

该命令生成一个模长 2048 位,名字为 rsa_private_keypem 、 PKCS1 格式的 RSA 私钥文件

genrsa :指定生成算法使用 RSA

-out :后面参数是生成的私钥的文件名

2048 :生成私钥的模长,单位字节(bits)

根据生成的私钥 rsa_private_keypem 文件,生成公钥 rsa_public_keypem 文件

生成名字为 rsa_pkcs8_private_keypem 的私钥文件

Java Android 用到的密钥:

公钥: rsa_public_keypem

私钥: rsa_pkcs8_private_keypem

终端会提示输入国家、省市、所在地、组织、组织单位、常用名称、邮箱地址等信息,按要求填写(可以随便填写), 输入完对应信息后会提示输入一个密码 :

最终会生成 rsacertcsr 文件

用最开始生成的私钥 rsa_private_keypem 和 rsacertcsr 证书请求文件生成一个数字证书 rsacertcrt

使用 x509 工具自建CA。由于 x509 无法建立证书请求文件,所以只能使用 openssl req 来生成请求文件,然后使用 x509 来自签署, 也可以用来签署他人的证书请求,即为他人颁发证书。

知识点 :

终端会提示设置密码,该密码是 p12 私钥的密码(用 private_keyp12 私钥解密时, 要用到该密码, 需要记录下 ), 会提示再次输入检验刚才输入的密码

RSA的公钥、私钥

采用单钥 密码系统 的加密方法,同一个 密钥 可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单 密钥加密 。

与对称加密 算法 不同, 非对称加密算法 需要两个 密钥 : 公开密钥 (publickey)和私有密钥(privatekey)。 公开密钥 与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的 密钥 ,所以这种算法叫作 非对称加密算法 。

一、举个例子

1、发消息

   用对方的公钥给对方发消息

2、发公告

  发公告的时候,用自己的私钥形成签名!

二、加密和签名

RSA的公钥、私钥是互相对应的,RSA会生成两个密钥,你可以把任何一个用于公钥,然后另一个就是你必须保护好的私钥了。

RSA的公钥、私钥都可以加密,也都可以解密。

其中:

用公钥加密需要私钥解密,称为“加密”。由于私钥是不公开的,确保了内容的保密,没有私钥无法获得内容;

用私钥加密需要公钥解密,称为“签名”。由于公钥是公开的,任何人都可以解密内容,但只能用发布者的公钥解密,验证了内容是该发布者发出的。

所以:

如果用于加密解密,那就是用公钥加密私钥解密(仅你可读但别人不可读,任何人都可写)

如果用于证书验证,那就是用私钥加密公钥解密(仅你可写但别人不可写,任何人都可读)

三、认证过程

标签:  >

这么小的RSA参数,直接用PARI计算b^(-1) (mod 3599):

gp> (1/31)%3599

%1 = 1161

故私钥(n,a) = (3599, 1161)

这么小的数,分解它也很快就出来了:

gp > factor(3599)

%2 =

[59 1]

[61 1]

以上就是关于RSA怎样设置公钥和私钥全部的内容,包括:RSA怎样设置公钥和私钥、RSA PKCS#1在java中怎么实现、RSA 公钥和私钥等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9460112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存