`

公钥,私钥和数字签名这样最好理解

 
阅读更多

 

一、公钥加密 
假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。

我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用
数字2,就是我的私钥,来解密。这样我就可以保护数据了。

我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,
只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。


 

二、私钥签名
如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知
道我的公钥是1,那么这种加密有什么用处呢?

但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他
解密看是不是c。他用我的公钥1解密,发现果然是c。
这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。
这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名

 

总结:公钥和私钥是成对的,它们互相解密。

公钥加密,私钥解密。

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

 

举例

比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:

  1. Bob将他的公开密钥传送给Alice。
  2. Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
  3. Bob用他的私人密钥解密Alice的消息。

  上面的过程可以用下图表示,Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。

例子和图出自《网络安全基础 应用与标准第二版》

 

RSA算法

RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

分享到:
评论

相关推荐

    公钥私钥加密解密数字证书数字签名详解.docx

    在探讨公钥私钥加密解密、数字证书以及数字签名之前,我们需要先理解几个核心概念。 **1. 密钥对:** - 在非对称加密技术中,存在两种密钥——私钥和公钥。私钥由密钥对的所有者持有且必须保密,而公钥则是由密钥...

    数字证书原理,公钥私钥加密原理

    3. 安全电子邮件:像S/MIME和PGP这样的协议允许用户使用数字证书和公钥私钥技术对电子邮件进行加密和签名,保证邮件内容的机密性和真实性。 4. 安全身份认证:用户可以使用数字证书和公钥私钥技术来对服务器或...

    数字证书原理,公钥私钥加密原理1

    【数字证书原理与公钥私钥加密概述】 在信息技术领域,数据安全至关重要,尤其是在网络通信中。为了确保信息不被未经授权的...理解这些基本概念有助于我们更好地理解和应对网络安全挑战,保护个人和企业的信息安全。

    公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.zip

    总之,公钥加密、数字签名、公钥认证和基于PKI的授权是构建安全网络环境的关键技术,它们在保障数据隐私、防止欺诈和确保通信安全方面发挥着至关重要的作用。理解并掌握这些概念和技术对于任何涉及网络通信安全的...

    Java实现RSA生成公钥私钥

    RSA算法是一种非对称加密算法,它在信息安全领域有着广泛的应用,例如数字签名、数据加密等。在Java中实现RSA公钥和私钥的生成,通常我们会使用Java Cryptography Extension (JCE) 提供的API,如`java.security....

    通过RSA证书提取XML/PEM公钥私钥

    RSA是一种非对称加密算法,广泛应用于网络安全领域,如数据加密、数字签名和密钥交换。在本场景中,我们关注的是如何从RSA.PFX证书中提取XML或PEM格式的公钥和私钥。 PFX(Personal Information Exchange)文件是...

    公钥和私钥

    通过理解和应用公钥加密和公钥认证,我们可以构建更加安全的网络环境,保护个人信息和商业数据免受威胁。随着技术的不断进步,密码学的应用领域还将继续扩展,为人类社会带来更多的便利和安全。

    公钥和私钥的输入程序

    公钥和私钥是一种非对称加密技术的基础,广泛应用于数据传输、数字签名和身份验证等场景。RSA是一种著名的公钥加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,它依赖于大数因子分解的困难性来...

    C++实现RSA公钥私钥加密算法

    RSA算法是一种非对称加密算法,它在信息...综上所述,C++实现RSA公钥私钥加密算法涉及了大数运算、素数检测、欧拉函数、模逆运算等多个数学和密码学概念。理解并实现这一算法有助于深入理解信息安全基础和加密技术。

    JavaRSA生成公钥私钥加解密

    在实际应用中,需要注意的是,RSA加解密效率相对较低,适合加密少量数据,如密钥交换或数字签名。对于大量数据的加密,通常会采用对称加密(如AES)配合RSA进行密钥交换,以提高性能。同时,公钥和私钥的保护至关...

    c#公钥加密私钥解密和验证

    在C#中,公钥加密私钥解密以及验证的过程涉及到了网络安全、加密算法、哈希函数和数字签名等多个知识点,它们是构建安全通信和数据保护的基础。理解并正确使用这些工具,对于开发安全的软件系统至关重要。

    代码签名数字证书(含私钥)_过期证书_过期数字签名强制签名工具_数字签名_证书

    它包含了开发者的信息、公钥以及CA的数字签名。当用户下载或安装已签名的软件时,操作系统会检查该证书的有效性,确保软件没有被篡改,并且来自可信的源。 在描述中提到的“过期证书”是指证书的有效期已经过去。...

    支付宝密钥(公钥 私钥)生成工具

    1. **身份验证**:支付宝商家或开发者使用私钥生成数字签名,这个签名可以被支付宝服务器通过公钥验证,确保消息的来源真实且未被篡改。 2. **数据加密**:虽然在支付宝交易过程中主要采用HTTPS等协议进行端到端...

    公钥加密私钥解密&私钥加密公钥解密

    - 接收方收到消息和数字签名后,使用发送方的公钥对数字签名进行解密,得到消息摘要。 - 同时,接收方独立地使用相同的哈希函数计算接收到的消息摘要。 - 比较这两个摘要是否一致,如果一致,则表明信息未被篡改...

    Java公钥加密私钥解密.rar

    首先,让我们理解公钥和私钥的概念。公钥是可以公开的,任何人都可以获取并用于加密信息。而私钥是保密的,只有信息的接收者持有,用于解密用公钥加密的信息。这种机制使得即使信息在网络中被截取,也无法被未经授权...

    RSA.zip_公钥私钥

    - **私钥**:必须保密,仅由密钥的所有者持有,用于解密用公钥加密的数据或创建数字签名。 3. **加密过程**: 明文数据通过一个模指数运算(使用公钥中的两个大素数的乘积作为模数,以及公钥的一个特定指数)转换...

    VC++写的公钥和私钥加密算法

    4. **PGP(Pretty Good Privacy)**:PGP是一种广泛使用的电子邮件加密软件,它结合了公钥加密和哈希函数,以及数字签名,提供了一种端到端的加密方式,确保邮件内容的隐私。 在VC++中实现公钥和私钥加密算法,你...

    rsa.rar_RSA 公钥加密_rsa_rsa 私钥_公钥私钥

    而私钥必须保密,用于解密信息或者生成数字签名。这一特性使得RSA在信息传输中非常安全,因为即使有人截获了用公钥加密的信息,没有对应的私钥也无法解密。 公钥的生成过程如下: 1. 首先,随机选择两个大素数p和q...

Global site tag (gtag.js) - Google Analytics