密钥,私钥,公钥的区分

首先明确几个基本概念:

1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。

3、私钥,如上,用来解密公钥加密的数据。

4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。

5、签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。(看最下面的一部分就明白了)

6、签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。

上面实际上介绍了加密解密和数字签名两个概念和实现过程,二者的过程正好是相反的。

公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),将其中的一个向外界公开,称为公钥;另一个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。

使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

密钥分类
密钥分为两种:对称密钥与非对称密钥

对称密钥加密,又称私钥加密或会话密钥加密算法,即信息的发送方和接收方使用同一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。

非对称密钥加密系统,又称公钥密钥加密。它需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。

所以在实际的应用中,人们通常将两者结合在一起使用,例如,对称密钥加密系统用于存储大量数据信息,而公开密钥加密系统则用于加密密钥。

/*密钥指的是私钥或者公钥—>密钥=私钥/公钥;

密钥对,针对的是非对称加密—>密钥对=私钥+公钥

这样的话,整个思路就清晰了*/

既然是加密,肯定是不希望别人知道我的消息,所以只要我才能解密 
所以得出,公钥负责加密,私钥负责解密, 
同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名, 
所以得出,私钥负责签名,公钥负责验证.

/*这些是个人网上摘录并总结的*/

这只是大概说了作用,具体说来,涉及到密钥相关的东西。密钥有公钥和私钥之分。

那么这里一共有两组四个密钥:A的公钥(PUB_A),A的私钥(PRI_A);B的公钥(PUB_B),B的私钥(PRI_B)。

公钥一般用来加密,私钥用来签名。

通常公钥是公开出去的,但是私钥只能自己私密持有。

公钥和私钥唯一对应,用某个公钥签名过得内容只能用对应的私钥才能解签验证;同样用某个私钥加密的内容只能用对应的公钥才能解密。

这时A向B发送信息的整个签名和加密的过程如下:
1、A先用自己的私钥(PRI_A)对信息(一般是信息的摘要)进行签名。
2、A接着使用B的公钥(PUB_B)对信息内容和签名信息进行加密

这样当B接收到A的信息后,获取信息内容的步骤如下:
1、用自己的私钥(PRI_B)解密A用B的公钥(PUB_B)加密的内容;
2、得到解密后的明文后用A的公钥(PUB_A)解签A用A自己的私钥(PRI_A)的签名。

从而整个过程就保证了开始说的端到端的唯一确认。A的签名只有A的公钥才能解签,这样B就能确认这个信息是A发来的;A的加密只有B的私钥才能解密,这样A就能确认这份信息只能被B读取。

总结:公钥和私钥是成对的,它们互相解密(密钥指公钥或私钥,密钥对指公钥加私钥)。

公钥和私钥都可以加密和解密

私钥数字签名,公钥验证。

(如下图)

这个文本应该是写的比较详细的!后来我又补上去的这个图就能说明一切了

RSA加密/解密和签名/验签过程理解:https://www.jianshu.com/p/8dc4a5f64e06
————————————————
版权声明:本文为CSDN博主「慕尚鱼鱼」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41586280/article/details/82669840

原文地址:https://www.cnblogs.com/hzk001/p/11744028.html

时间: 2024-08-02 08:41:19

密钥,私钥,公钥的区分的相关文章

Linux使用私钥公钥(Public key)登录 - 免密码登录

为了更安全.方便的登录Linux服务器,可以取消密码登录,使用私钥公钥的方式来登录,更方便也更安全. 生成密钥 借助Xshell可以很方便的生成和管理私钥,点击工具菜单,选择新建用户密钥生成向导: 直接点击下一步 输入名称和密码,再点击下一步 将公钥保存起来备用,公钥需要上传到Linux服务器上. 上传公钥 先使用用户名和密码登录,然后输入命令 cd .ssh 将公钥保存到 .ssh 目录 上传成功如下图所示: 导入公钥 公钥上传好以后,需要导入公钥 cat RemotePPK.pub >>

密码学-数据公钥加密和认证中的私钥公钥

一.公钥加密 假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看,我就用1加密了. 别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密.这样我就可以保护数据了. 我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上. 别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,只有我才能解密,解密后就得到a. 这样,我们就可

C#和JAVA的RSA密钥、公钥转换

C#的秘钥跟JAVA的密钥区别 RSA对于程序本身是没有区别的,其格式都是相同的.对于不同的程序来说,存储使用的语法(包装的类)会有所不同. RSA语法和语法标准有很多,大的类型大概分为ASN.1.PKCS.X.509. RSA语法介绍 ASN.1.PKCS是最初的,也是最主要的RSA公钥和私钥的语法标准,被RSA Lab所维护. ASN.1.PKCS#1都定义了公钥和私钥的类型--序列化的数字.为了下一个层次的抽象(适当的包装),现在一般使用的组合是:PKCS#8的私钥,X.509的公钥 .

windows 下 openssl 生成RSA私钥公钥以及PKCS8

生成RSA私钥 打开bin文件夹下面的openssl.exe,输入genrsa -out rsa_private_key.pem 1024 把RSA私钥转换成PKCS8格式 输入命令pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt 生成公钥 输入命令rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 说明: rsa_private_key

openssl生成私钥公钥的步骤

本文参考http://blog.csdn.net/scape1989/article/details/18959657 在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面,在命令行了输入openssl即可: 1)生成RSA私钥: genrsa -out rsa_private_key.pem 1024 此时我们就可以在当前路径下看到rsa_priv

openresty中使用私钥/公钥进行加密/解密/签名/验签。

对于公钥私钥的提取,详细请看http://www.cnblogs.com/dreamer-One/p/5621134.html另外付在线加解密工具链接:http://tool.chacuo.net/cryptrsaprikey--公钥local RSA_PUBLIC_KEY = [[ -----BEGIN RSA PUBLIC KEY----- MIGJAoGBAJ9YqFCTlhnmTYNCezMfy7yb7xwAzRinXup1Zl51517rhJq8W0wVwNt+ mcKwRzisA1S

openssl rsa 私钥 PKCS8私钥 公钥

上文配置好 openssl 运行 => cmd => cd C:\usr\local\ssl\bin => 执行 openssl 生成私钥: genrsa -out rsa_private_key.pem 1024 得到 rsa_private_key.pem 文件 生成公钥 rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 得到 rsa_public_key.pem 文件 生成PKCS8私钥 pkcs8 -topk8

拜占庭将军

拜占庭将军问题很多人可能听过,但不知道是什么意思,本文从非专业的角度来讲讲,拜占庭将军问题到底是说什么的. 拜占庭将军问题(Byzantine Generals Problem),首先由Leslie Lamport与另外两人在1982年提出,很简单的故事模型,却困扰了计算机科学家们数十年. 故事大概是这么说的: 拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵.任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦

Xshell配置密钥公钥(Public key)与私钥(Private Key)登录

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步:1.生成密钥(公钥与私钥):2.放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中:3.配置ssh客户端使用密钥登录. 一.生成密钥公钥(Public key)与私钥(Private Key) 打开Xshell,在菜单栏点击"tools",在弹出的菜单中选择&quo