非对称加密中公钥

news/2024/7/5 1:47:04

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

在这里插入图片描述

数字签名是公钥密码体系中签名验证功能的一个应用。其目的是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。其中数字签名是个加密的过程,数字签名验证是个解密的过程。其原理首先要理解非对称加密和消息摘要。

非对称加密中公钥是公开的,如果用公钥解密,只能开解对应私钥加密的内容,因此,私钥也可以认为是个人身份的证明。如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密。

消息摘要可以将消息哈希转换成一个固定符长度的值唯一的字串。值唯一的意思是不同的消息转换的摘要是不同的,并且能够确保唯一。该过程不可逆,即不能通过摘要反推明文。利用这一特性,可以验证消息的完整性。

数字签名就是非对称加密和消息摘要的组合,具体过程如下:

假设现在有通信双方A和B,两者之间使用两套非对称加密机制。

现在A向B发消息。

那么,如果在发送过程中,有人修改了里面密文消息,B拿到的密文,解密之后得到明文,并非A所发送的,信息不正确。这就要解决如下两个问题:

A的身份认证

A发送的消息完整性 那么就要用到上面所讲的基础知识。

为了解决上面两个问题,数字签名的过程如下图:

简单解释:

A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数字签名一块发给B。

B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密成功说明A的身份被认证了)。再对明文进行摘要运算,摘要比对一致说明消息没有被篡改(消息完整性)。


http://lihuaxi.xjx100.cn/news/237320.html

相关文章

Intellij IDEA 将工程转换成maven工程 详解

1> 右键工程,点击 Add Framework Support2> 选中 Maven,再点击 OK3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Maven版权声明:本文为博主原创文章,未经博主允许不得转载。 http://blog.csdn.net/che…

保持分布式团队同步

分布式团队最大的挑战是沟通,这对建立协作的基本原则必不可少。调整工作时间,互相适应,而团队联络员有助于沟通和同步工作。以信任、尊重和开明为基础的团队会鼓励组织中的人们互相帮助,培养一种使团队保持同步的文化。\\SkuVault…

软件测试质量过程检测文档_如何编写实际上有效的质量检查文档

软件测试质量过程检测文档A software product is like an airplane: it must undergo a technical check before launch.软件产品就像飞机:必须在发射前经过技术检查。 Quality Assurance is a necessary step towards launching a successful software product. I…

SunlightChain 区块链宣言

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 SunlightChain 区块链宣言 区块链技术的应用必将颠覆现在过度依赖于中心的经济模式,它与生俱来的开放、共享、去中心化等特点极大地提高…

Intellij IDEA使用教程(超详细)

转自 http://www.phperz.com/article/15/0923/159067.html转载于:https://www.cnblogs.com/lijingran/p/8585430.html

关于matlab向文件写入数据的方法——留着备用

MATLAB数据采集的时候,往往需要把得到的数据保存下来。 fid fopen(文件名,‘打开方式’); 说明:fid用于存储文件句柄值,如果fid>0,这说明文件打开成功。打开方式有如下选择: ‘r’&#xff…

无理数平方根计算_如何找到数字的平方根并手动计算

无理数平方根计算At times, in everyday situations, we may face the task of having to figure the square root of a number. What if there is no calculator or a smartphone handy? Can we use an old fashioned paper and pencil to do it in a long division style?有…

GO语言编程基础-复合类型结构体

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 1 结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性。显然单独…