美文网首页
加密&解密

加密&解密

作者: 小李不木 | 来源:发表于2021-09-06 12:41 被阅读0次

    对称加密  & 非对称加密

    明文: 明文指的是未被加密过的原始数据。

    密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。

    密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。

    对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

    其加密过程如下:明文 + 加密算法 + 私钥 => 密文

    解密过程如下:密文 + 解密算法 + 私钥 => 明文

    对称加密中用到的密钥叫做私钥,私钥表示个人私有的密钥,即该密钥不能被泄露。

    其加密过程中的私钥与解密过程中用到的私钥是同一个密钥,这也是称加密之所以称之为“对称”的原因。由于对称加密的算法是公开的,所以一旦私钥被泄露,那么密文就很容易被破解,所以对称加密的缺点是密钥安全管理困难。

    非对称加密:非对称加密也叫做公钥加密。非对称加密与对称加密相比,其安全性更好。对称加密的通信双方使用相同的密钥,如果一方的密钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。

    被公钥加密过的密文只能被私钥解密,过程如下:

    明文 + 加密算法 + 公钥 => 密文, 密文 + 解密算法 + 私钥 => 明文

    被私钥加密过的密文只能被公钥解密,过程如下:

    明文 + 加密算法 + 私钥 => 密文, 密文 + 解密算法 + 公钥 => 明文

    由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。

    非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

    在非对称加密中使用的主要算法有:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等。

    证    书: 数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。

    私    钥: 私有,只能解开本公钥加密的数据(用于解密),用它加密的数据只能被本公钥解密(用于签名)。

    公    钥: 公有,只能解开本私钥加密的数据(用于验证),用它加密的数据只能被本私钥解密(用于加密)。

    签    名: 用私钥加密,签上自己的名,证明自己合法。

    验    证: 用公钥解密,验证别人是否合法。

    加密和解密:

    发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的私钥进行解密,

    其中公钥和私钥匙相对的,任何一个作为公钥,则另一个就为私钥.但是因为非对称加密技术的速度比较慢,所以,一般采用对称加密技术加密明文,

    然后用非对称加密技术加密对称密钥,即数字信封技术. 

    签名和验证:

    发送方用特殊的hash算法,由明文中产生固定长度的摘要,然后利用自己的私钥对摘要进行加密,这个过程就叫签名。

    接收方利用发送方的公钥对加密的摘要进行解密操作,得到结果A。对明文也进行hash操作产生摘要B。最后,把A和B作比较。

    此方式既可以保证发送方的身份不可抵赖,又可以保证数据在传输过程中不会被篡改。

    证书预置和申请

    1:客户端会预置根证书, 里面包含CA公钥

    2:服务器去CA申请一个证书

    3: CA用自己的签名去签一个证书,指纹信息保存在证书的数字摘要里面, 然后发送给服务器

    一次访问流程简化如下:

    1: 客户端 sayHello

    2: 服务器返回证书

    3-1: 客户端验证证书内容有效性(过期时间, 域名是否相同等)

    3-2: 验证证书的有效性 (是否被串改), 通过本地根证书的CA公钥解密数字摘要,看是否匹配。

    3-3:如果数字签名验证通过, 就可以使用服务器证书里面提供的公钥进行下一步通信。

    日常使用场景:

    因为黑客也有服务器的公钥,所以在截取后可以打开服务器的密文,也可以模拟客户端获取一些信息。所以最好是两对公私钥,客户端用服务器的公钥加密传输,服务器用客户端的公钥加密传输

    总结:

    1:公钥私钥成对出现,私钥只有自己知道,用公钥加密数据,用私钥来解密数据

    2:大家可以用我的公钥给我发加密的信,我自己可以用对应的私钥进行解密。

    3:大家用我的公钥解密信的内容,看看能不能解开,能解开,说明是经过我的私钥加密了,就可以确认确实是我发的了。

    4:用私钥加密数据(数字签名),用公钥来验证数字签名。

    在实际的使用中,公钥不会单独出现,总是以数字证书的方式出现,这样是为了公钥的安全性和有效性。

    参考:

    加密解密(2)*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证 - 释迦&牟尼 - 博客园

    对称加密、非对称加密、数字签名 - 简书

    相关文章

      网友评论

          本文标题:加密&解密

          本文链接:https://www.haomeiwen.com/subject/nhpewltx.html