首页 > 编程语言 >非对称加密算法

非对称加密算法

时间:2023-08-09 16:22:33浏览次数:42  
标签:公钥 加密 解密 签名 私钥 非对称 加密算法

非对称加密算法是一种使用公钥和私钥配对的加密算法,也称为公钥加密算法.常见的非对称加密算法包括 RSA、DSA 等,它们遵循 公钥分发、私钥保密规则,也就是说公钥是公开的,可以自由分发给其他人.而私钥是保密的,只有私钥的持有者知道.这样可以确保加密和签名的安全性,因为即使公钥被泄露,也无法对数据进行解密或伪造有效的签名,非对称加密算法主要有两种应用方式,分别是公钥加密、私钥解密和私钥签名、公钥验签,

一、公钥加密、私钥解密
在非对称加密算法中,公钥用于加密数据,私钥用于解密数据.只有持有私钥的人可以解密使用公钥加密的数据.这种方式可以实现加密数据的机密性,因为只有私钥的持有者才能解密数据

下面是公钥加密和私钥解密的具体做法
公钥加密:
1、发送方使用接收方的公钥对待加密的数据进行加密
2、发送方将加密后的数据发送给接收方
私钥解密:
1、接收方接收到加密的数据后,使用自己的私钥对数据进行解密
2、解密后得到原始数据

二、私钥签名、公钥验证
除了加密和解密,非对称加密算法还可用于数字签名.私钥用于对数据进行签名,而公钥用于验证签名的有效性.这种方式可以实现数据的完整性和身份验证,因为只有私钥的持有者才能生成有效的签名,而任何人都可以使用公钥验证签名的有效性
下面是私钥签名和公钥验证的具体做法
私钥签名:
1、发送方使用私钥对待签名的数据进行哈希计算,生成消息摘要
2、发送方使用私钥对消息摘要进行加密,生成数字签名
3、发送方将原始数据和数字签名一起发送给接收方
公钥验证
1、接收方接收到原始数据和数字签名后,使用公钥对数字签名进行解密,得到消息摘要
2、接收方对接收到的原始数据进行哈希计算,生成一个新的消息摘要
3、接收方比较解密得到的消息摘要和计算得到的消息摘要是否一致,如果一致,说明数据未被篡改,验证通过,如果不一致,说明数据被篡改、伪造或数字签名无效,验证失败

三、公钥加密、私钥解密和私钥签名、公钥验证的优缺点
公钥加密、私钥解密的优点
1、机密性:使用接收方的公钥加密数据,只有拥有私钥的接收方才能解密数据,确保数据在传输过程中的机密性
2、简化密钥管理:公钥可以自由分发,不需要保密,减少了密钥管理的复杂性

公钥加密、私钥解密的缺点
1、计算复杂性:相比对称加密算法,非对称加密算法的计算复杂性较高,加密和解密过程需要更多的计算资源
2、速度较慢:由于计算复杂性的增加,公钥加密、私钥解密的速度较对称加密算法较慢
3、公钥是分发的,任何人都可以获取到,如果黑客使用公钥伪造数据,虽然只有接收方可以解密数据,但是接收方无法判断数据是否是合法的对端发送过来的,不能保证发送者身份的真实性和数据的完整性

私钥签名、公钥验证的优点
1、数据完整性:通过私钥签名,可以确保数据在传输过程中没有被篡改,保证数据的完整性
2、身份验证:公钥验证可以验证数据的签名是否有效,从而验证数据的发送者身份的真实性

私钥签名、公钥验证的缺点
1、密钥管理:私钥需要严格保密,任何人都不能获取私钥,否则可能导致签名被伪造
2、验证速度:验证签名需要进行解密和哈希计算,速度较加密慢一些
3、发送方发送给接收方的是原始数据和数字签名,原始数据是裸露的,对于一些敏感数据来说,是非常不合理的

总体而言,公钥加密、私钥解密和私钥签名、公钥验证都有各自的应用场景和优缺点.公钥加密、私钥解密适用于保证数据的机密性,而私钥签名、公钥验签适用于保证数据的完整性和身份的合法性.根据实际需求,可以选择合适的机制来保障数据的安全性

 

标签:公钥,加密,解密,签名,私钥,非对称,加密算法
From: https://www.cnblogs.com/xiaomaomao/p/17617135.html

相关文章

  • APP逆向之AES加密算法
    importrandomfromCrypto.CipherimportAESimportbase64#加密的字符串,必须是固定长度,处理成固定长度defpad_data(data):#计算需要填充的字节数pad_len=AES.block_size-(len(data)%AES.block_size)#使用填充字节进行填充padding=bytes([......
  • NET/C#中SM2/SM3国密加密算法
    usingOrg.BouncyCastle.Asn1;usingOrg.BouncyCastle.Asn1.GM;usingOrg.BouncyCastle.Asn1.X9;usingOrg.BouncyCastle.Crypto;usingOrg.BouncyCastle.Crypto.Parameters;usingOrg.BouncyCastle.Math;usingOrg.BouncyCastle.Security;usingOrg.BouncyCastle.Util......
  • JavaScript学习 -- 对称加密算法DES
    在现代的互联网时代,数据安全性备受关注。为了保护敏感数据的机密性,对称加密算法是一种常用的方法。在JavaScript中,DES(DataEncryptionStandard)是一种常用的对称加密算法。本篇博客将为您展示如何在JavaScript中使用DES算法进行加密和解密,并提供一个实际的例子。首先,我们需要使用Cr......
  • Asp.Net Core 集成JWT采用Rsa非对称密钥并实现自定义身份验证
    授权和鉴权分为了两个项目。首先是授权:建立Asp.netcore项目,并在Nuget包安装System.IdentityModel.Tokens.Jwt新建一个WebApi用于登录,这里使用账户密码方便调试。另外BaseResult是我封装的一个统一返回数据类型。需要注意的是audience以及JwtRegisteredClaimNames.Name......
  • 对称加密算法
    对称加密算法:指加密和解密都是同一个密钥。  包括DES,DES3,AES 参考这篇博文:(50条消息)什么是对称加密(对称加密简介)_AtlanSI的博客-CSDN博客......
  • Java3DES双倍长加密算法详解
     Java3DES双倍长加密算法是一种强大的加密算法,它可以保护我们的敏感数据不被未经授权的人访问。在本文中,我将详细介绍Java3DES双倍长加密算法的原理和使用方法。首先,让我们来了解一下Java3DES双倍长加密算法的原理。这种算法是基于DES(DataEncryptionStandard)算法的改进版本......
  • MCU基于非对称算法的伪安全启动方案
    一、概述随着软件定义汽车理念的普及,汽车上代码量不断膨胀,功能不断智能化,用户体验不断升级。从传统汽车不需要联网,到职能汽车具有联网功能已是标配,汽车触网必将带来更多信息安全问题。汽车的信息安全问题比IT领域更加重要,因为可能危及生命安全。故国家也出台强标《汽车整车信息安......
  • HTTPS 对称加密与非对称加密
    HTTPS对称加密与非对称加密1、HTTPS的实现原理HTTPS协议之所以是安全的是因为HTTPS协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实:HTTPS在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。HTTPS的整体过程分为证书验证和数据传输......
  • 使用加密算法时报错:ModuleNotFoundError: No module named ‘Crypto‘
    解决办法:安装Crypto模块,执行 pipinstallCrypto ,安装成功后,再执行命令,还是报上面的错误第一步:在python3(或者python虚拟环境)目录下的/Lib/site-packages/目录下找到crypto、crypto-1.4.1.dist-info目录,将crypto首字母改为大写,即修改名称为Crypto、Crypto-1.4.1.d......
  • Base64加密算法以及在IDA中的识别
    Base64加密算法以及在IDA中的识别一、何为Base64算法?Base64是一种基于64个可打印字符来表达二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元。对于某个可打印字符。为什么这样说呢?我们首先了解一下Base64是如何设计的。3个字节有24个比特,在Base64中6个比特一......