非对称加密是什么?签名又是什么?来看看他们的区别吧
什么是非对称加密?
非对称加密别称为公钥密码,区别与对称加密只有一把钥匙双方用来加密和解密。非对称加密中加、解密使用的是不同的密钥,一把是公钥,一把是私钥。使用公钥加密的信息只有私钥才能解开。使用私钥加密的信息只有公钥才能解开。一对公钥、私钥都可以用来加密、解密。
加密:公钥加密、私钥解密的过程
公钥是公开的,任何公钥持有者都可以将想要发送给私钥持有者的信息进行加密后发送,该信息只有私钥持有者才能解密。
加密过程双方均持有自身的私钥,和对方的公钥。
实际案例:SSL/TLS
HTTPS相比与HTTP的多出来的“S”代表“secure”,在传输层添加了SSL(Secure Sockets Layer安全套接层)/TLS(Transport Layer Security安全传输层协议),其中在TLS握手过程中涉及到了非对称加密。
TLS握手的目的是建立安全连接,在通信双方(客户端和服务器)需要完成以下任务:
- 确定双方通信所用的TLS版本
- 确定双方使用的密码组合
- 客户端通过服务器公钥和数字证书验证服务端身份
- 生成会话密钥,该密钥用于握手结束后对称加密信息
其中握手过程第三步涉及非对称加密:
客户端向服务器发送随机字符串“premaster secret” 使用服务器的公钥加密过后发送给服务器,服务器使用私钥进行解密。
签名: 私钥加密、公钥解密的过程
如果使用公钥能正常解密某一个密文,那么就能证明这段密文一定是由私钥持有者发布的,而不是其他第三方发布的,并且私钥持有者不能否认他曾经发布过该消息。
实际案例:微信支付过程商户与微信的信息交换
商户和微信支付服务器交换信息时需要用到签名,这里微信支付为了确保商户的唯一性,商户向微信支付发起业务请求时需要使用商户自身API证书私钥来对信息进行签名,向微信支付服务器端说明我是商户,不是其他人。相同的微信支付服务器端想要向商户发送信息,需要使用微信支付的私钥或者是平台证书私钥生成签名,商户再使用公钥进行验签。
总结:使用公钥加密还是使用私钥加密取决于取决于需要确保哪一方的唯一性。需要确保加密方唯一则使用私钥加密、公钥解密,确保解密方唯一使用公钥加密,私钥解密。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!