所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

发布时间:2020-04-12 08:50:42

资讯分类:公钥  私钥  rsa  解密  解密  加密  密钥
RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

公钥和密钥之间并没有“解密”,“加密”的数学定义。这两个动作完全是从应用的角的去区分的。密钥对的真实数学定义是非对称,即用一钥编码原文之后,必须用非对称钥来解码,使用中可以根据实际情况将任意一边定位加密或解密。实际情况总是先加密,后解密,但具体用哪个钥,由数据发送方(生产方)决定。

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

今晚被其他问题困扰了一阵,信心受到打击,心情不是很好。因此,借题解扰!也希望可帮菜鸟们解答一些问题,如果答得不好的请见谅!

其实RSA作为非对称加密的算法,猜都猜得到两者都可以加解密。说到这里应该有人反对说,不对吧!

不好意思,我说的加解密是“可逆”的加解密,不是不可逆的“签名”式的“加解密”,请分清楚。说到这里,我想到别一种只作签名的非对称“加密”,那就是DSA,对于这种算法,你只能用私钥“加密”,公钥“解密”。但真正的非对称加密是双向的,要不两边通讯都要同时保存公私钥,那没有意义了。

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

公钥(Public Key)就是公开的密钥,是用来加密的;私钥(Private Key)就是私有的密钥用来解密的;你要解密一个东西肯定是只想自己知道而不是让所有人都知道,那就用自己私有的密钥解密,这么说可能容易理解。

公钥和私钥是一对,就像古时候带兵打仗用的虎符一样,只有两个能严丝合缝的拼接在一起才能调兵。理论上公钥和私钥随便一个用来加密,另一个就能用来解密,事实上也确实是这样。

但是这只是理论行得通,实际会有问题,这么做在RSA加密中并不是不能顺利加解密,而是安全性不是那么高或者计算量非常的大,这样加密的意义就不存在了,具体为什么会这样就设计到RSA的加密算法了。

另外需要注意的是,加解密与数字签名的不同,数字签名是用私钥签名,公钥验证。

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

公钥加密私钥解密,私钥签名公钥验签

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

没有绝对的谁用来加密谁用来解密,数学上公钥和私钥的用法是对等的,一个用来加密就可以用另一个来解密,在点对点双向通信的场景中一个密钥文件可以既是公钥又是私钥。在服务器对多个客户端的场景中,被公开出去给各个客户端共同使用的密钥文件叫公钥

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

公钥和私钥在一些银行系统、第三方支付系统SDK中经常会遇到,刚接触公钥私钥的朋友们估计很难区分两者的区别。

RSA公钥和私钥是什么?

首先来说,RSA是一种非对称加密算法,它是由三位数学家(Rivest、Shamir、Adleman)设计出来的。非对称加密是相对于对称加密而言的。对称加密算法是指加密解密使用的是同一个秘钥,而非对称加密是由两个密钥(公钥、私钥)来进行加密解密的,由此可见非对称加密安全性更高。

公钥顾名思义就是公开的密钥会发放给多个持有人,而私钥是私有密码往往只有一个持有人。

公私钥特性

  • 公钥与私钥是成对出现的

  • 私钥文件中包含了公钥数据,所以可以基于私钥导出公钥;

  • 密钥越长,越难破解,所以2048位密钥比1024位密钥要更安全;

  • 公钥和私钥都是密钥,被公开的那个就是公钥,没有被公开的那个就是私钥。

公钥和私钥都可用于加密和解密

公钥和私钥都可以用于加解密操作,用公钥加密的数据只能由对应的私钥解密,反之亦然。虽说两者都可用于加密,但是不同场景使用不同的密钥来加密,规则如下:

1、私钥用于签名、公钥用于验签

签名和加密作用不同,签名并不是为了保密,而是为了保证这个签名是由特定的某个人签名的,而不是被其它人伪造的签名,所以私钥的私有性就适合用在签名用途上。

私钥签名后,只能由对应的公钥解密,公钥又是公开的(很多人可持有),所以这些人拿着公钥来解密,解密成功后就能判断出是持有私钥的人做的签名,验证了身份合法性。

2、公钥用于加密、私钥用于解密,这才能起到加密作用

因为公钥是公开的,很多人可以持有公钥。若用私钥加密,那所有持有公钥的人都可以进行解密,这是不安全的!

若用公钥加密,那只能由私钥解密,而私钥是私有不公开的,只能由特定的私钥持有人解密,保证的数据的安全性。


以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

看到不少人,甚至大V都不能准确回答这个问题。忍不住给点靠谱的回答。

其实,公私钥在产生的时候是没有区别的,就是一对儿密钥。只不过我公开其中某一个,那个就成了公钥,剩下我不公开的那个就是私钥

再说用谁来加密的问题。记住,没有一定用某个密钥加密的说法,要根据场景定义的。

公私钥的特性决定了,私钥加密,只有公钥能解开。公钥加密,只有私钥能解开。

那么,什么场景用公钥加密,什么场景用私钥加密呢,我们举例来说明:

如果我想广播一条消息,我只需要让大家知道这条消息确实是我发出来的。那么我用自己的私钥对消息加密,接受者用我的公钥解密即可。因为私钥只有我有,所以攻击者没有办法伪造我。

如果我希望某条消息只有特定的接收人可以收到,那么我可以用他的公钥加密,这样只有他拥有解密的私钥,别人无法解密。



这就是公私钥的两种典型用法,希望我的回答可以帮助你。如果想进一步的交流,请关注我谢谢!

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

生成的一对密钥,哪个公开就是公钥,另外一个就是私钥,用其中一个密钥加密的密文只能用另一个解密

据应用不同大概有两种

1.因为公钥是公开的用公钥加密的信息,用私钥才能解密 ,别人用你的公钥加密信息,只有你才能用你的私钥打开。保证信息传递的保密性别人即使截获加密信息也无法获知内容。

2.私钥加密的信息,公钥才能解开, 因为私钥只有你知道,说明这个信息肯定是你发的,不会是别人冒充的。

典型的应用,比如说电子邮件,别人用你的公钥加密邮件发给你,只有你能打开。

U盾存的是银行的公钥,加你的私钥,互相认证对方。别人无法冒充银行,银行也保证另一端不是冒充的客户。

还有SIM卡

公交卡 高端车安全一点的汽车钥匙 多场合都有用到这种技术

RSA的公钥和私钥到底哪个才是用来加密,哪个用来解密?

公钥加密,私钥解密,使用公钥进行数据加密,公钥全网公开所有用户都可以使用,私钥用来解密公钥数据,公钥也可以证明证书持有者的身份

留言与评论(共有 0 条评论)
   
验证码:
Top