一、公钥加密
假设一下,我找了两个数字,一个是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用自己的私钥进行解密。
- 大小: 20.1 KB
分享到:
相关推荐
公钥私钥数字签名数字证书详解
详细介绍了区块链使用的不对称加密在数字证书数字签名的应用
公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.zip
PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解 php代码简单生成 容易理解
1、很多刚接触加解密的同学会对单钥、双钥加密、公钥、私钥、数字证书、数字签名的概念感到头疼,这篇文章就是给你治病的。 2、童叟无欺,保证你看了过后会很满意。
(2)发送方用自己的私钥加密生成的信息生成发送方的数字签名,发送方把这个数字签名作为发送信息的附件和明文信息,一同用接收方的公钥进行加密,将加密后的密文一同发送给接收方; (3)接收方首先把接收到的密文...
该系统将使用公钥加密和私钥解密的方式来实现数字签名。 ## 系统设计 ### 系统架构 该系统将采用客户端-服务器架构,客户端将负责生成数字签名并将其发送到服务器,服务器将验证数字签名的真实性。 ### 技术实现...
PuTTYGen最新版能够帮助用户创建有效的ssh密钥,可以对公钥的合法性进行快速的支持,是开源网络客户端...PuTTYGen软件涵盖包括Rivest–Shamir–Adleman、数字签名算法、椭圆曲线数字签名算法等,支持多种操作系统。
* RSA数字签名-俗称加签验签:私钥加签,公钥验签。 * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。 * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加...
数字签名过程: ... “签名”按钮,使用发送方私钥、发送方公钥、接收方公钥对文本框中的文本进行数字签名。得到签名后的文本。 “还原验证”按钮,使用接收方私钥将签名后的文本还原,并进行验证。
以往的文件或书信可以通过亲笔签名来证明其真实性, 而通过计算机网络传输的信息则可以通过数字签名技术来实现其真实性的验证。 下面就以DSA算法为例,介绍数字签名算法。DSA算法在1991年被美国国家标准与技术局...
1、转换各种PEM(XML)格式公私钥,可以根据私钥获取公钥(pkcs8一般java用,xml格式一般C#用) 2、签名数据 3、验签并获取签名前的数据 3、公私钥格式加密或去密(支持大量对称算法,包括淘汰的) 4、生成RSA公私钥...
之前涉及到的RSA加解密都是用公钥加密私钥解密,看过此文档后你会发现原来公钥也可以用来解密啦,不同于数字签名哦
用RSA算法做数字签名,总的来说,就是签名者用私钥参数d加密,也就是签名;验证者用签字者的公钥参数e解密来完成认证。 下面简要描述数字签名和认证的过程。 (1)、生成密钥 为用户随机生成一对密钥:公钥(e,n)和...
(2)发送方用自己的私钥加密生成的信息生成发送方的数字签名,发送方把这个数字签名作为发送信息的附件和明文信息,一同用接收方的公钥进行加密,将加密后的密文一同发送给接收方; (3)接收方首先把接收到的密文...
是密钥管理基础设施的根签名密钥对,包括签名主私钥和签名主公钥,用于进行数字签名、验签和为用户生成用户签名密钥。 加密主密钥 encryption master key 是密钥管理基础设施的根加密密钥对,包括加密主私钥和加密...
用matlab实现RSA公钥密码体制的数字签名算法
Java开发的数字证书、数字签名模块实例,主要应用 于一些支付及安全性审核较高的场合。本示例将从文件中读取数字证书,获取一个处理X.509证书的证书工厂,生成文件输入流,输入文件为c:/mycert.cer,生成数字签名: ...
RSA加密验证生成公钥私钥工具类 生成RSA公钥私钥 对传入的数据验证签名,返回验证结果用私钥对信息生成数字签名
DIGISIGN-数字签名转移项目 数字签名是一种数学技术,用于验证发件人共享给一个或多个人的文件的真实性。 我们的项目旨在封装创建签名证书并将其通过LAN发送到接收计算机的方法。 另一端的接收器也可以使用此软件...