龙空技术网

什么是非对称加密算法?

数影星球 139

前言:

今天我们对“1000加密算法”可能比较关怀,我们都想要学习一些“1000加密算法”的相关内容。那么小编同时在网摘上搜集了一些关于“1000加密算法””的相关文章,希望兄弟们能喜欢,小伙伴们一起来了解一下吧!

非对称加密算法是一种密钥的保密方法。非对称加密(公钥密码)是指加密和解密使用不同密钥的加密算法,也称为公私钥加密。非对称加密的主要算法有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。其中,使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。

在对称加密中,我们只需要一个密钥,通信双方同时持有。但是,非对称加密算法则需要两个密钥:一个是公开密钥(publickey:简称公钥),一个是私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。

非对称加密需要4个密钥。通信双方各自准备一对公钥和私钥。其中公钥是公开的,由信息接受方提供给信息发送方。公钥用来对信息加密。私钥由信息接受方保留,用来解密。既然公钥是公开的,就不存在保密问题。这也就是说非对称加密完全不存在密钥配送问题。

例如,一次信息传输的非对称加、解密过程:

1、消息发送方、接收方都要准备好一对用于加密与解密的公钥和私钥

2、消息发送方的私钥保密,其公钥告诉消息接收方;接收方也自己留存私钥、公钥发布给消息发送方

3、消息发送方使用接收方的公钥对消息进行加密,因为消息发送方知道消息接收方的公钥

4、消息发送方将加密的发送给消息接收方,消息接收方用自己的私钥对消息进行解密,因为解密的就是消息接收方的私钥

公钥只能用做数据加密。公钥加密的数据,只能用对应的私钥才能解密。这是非对称加密的核心概念。

非对称加密算法的应用场景有签名(服务端加签、客户端解签验证),如需要出差或在家办公的运维与开发人员经常通过Xshell直连服务器,一般是通过SSH协议,Xshell生成一对公钥\私钥,把私钥放在本地C:\Users\用户名.ssh目录下并导入shell,把公钥发送给服务器管理员,放在服务器中。

这样运维与开发人员连接服务器的时候,使用自己私钥加密,然后发给服务器使其用公钥解密,达到一个签名的效果。再比如Git中也是支持HTTPS和SSH两种协议。

相反的一个场景就是加解密了,比如常见的HTTPS中,服务端先给客户端发送一个公钥,客户端通过公钥解密一些信息(比如客户端生成的会话秘钥),发送给服务端,服务端通过自己的私钥解密,达到信息安全传输的目的。

例如,某一企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。假设A用B的公钥加密消息,用A的私钥签名,B接到消息后,首先用A的公钥验证签名,确认后用自己的私钥解密消息。

由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以通过数字签名确保发送者无法否认曾发送过该信息。

非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。但是,要注意的是,非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。

标签: #1000加密算法