随着网络技术的飞速发展,网络安全问题日益重要,加解密技术是网络安全技术中的核心技术,是最常用的安全保密手段。
加密技术分为对称加密和非对称加密。
对称加密是指使用同一个密钥对数据进行解密;非对称加密是指用一对公私钥分别对数据进行加解密。
本文将介绍加解密技术,以及在加解密算法基础上衍生出来的数字信封、数字签名和数字证书技术。
对称密钥算法又称为共享密钥算法,它使用同一个密钥对数据进行加密和解密。对称密钥算法加解密的过程如下图所示。
用户A和用户B协商好对称密钥后,加解密过程如下:
① 用户A使用对称密钥将明文加密,并将密文发送给用户B。
② 用户B收到密文后,用对称密钥对密文进行解密,得到最初的明文。
非对称密钥算法又称为公钥加密算法。每个用户都拥有两个密钥:一个可对外界公开,称为“公钥”;一个只有所有者知道,称为“私钥”。
公钥和私钥配合使用,一个用于加密,一个用于解密。通常发送方以接收方的公钥作为加密密钥,接收方使用自己的私钥作为解密密钥。非对称密钥算法加解密的过程如下图所示。
用户A获得用户B的公钥后,加解密过程如下:
① 用户A使用用户B的公钥对明文加密,并将密文发送给用户B。
② 用户B收到密文后,用自己的私钥对密文进行解密,得到最初的明文。
数字信封技术结合了对称加密算法和非对称加密算法的优点,发送方首先利用对称密钥加密明文,再利用接收方的公钥加密对称密钥,被接收方公钥加密后的对称密钥被称为数字信封。
接收方收到信息后,若要解密信息,必须先用自己的私钥解密数字信封,得到对称密钥,才能利用对称密钥解密收到的信息。数字信封的加解密过程如下图所示。
用户A获得用户B的公钥后,加解密过程如下:
① 用户A使用对称密钥对明文加密,生成密文。
② 用户A使用用户B的公钥加密对称密钥,生成数字信封。
③ 用户A将数字信封和密文信息一起发送给用户B 。
④ 用户B接收到用户A发送的加密信息后,使用自己的私钥打开数字信封,得到对称密钥。
⑤ 用户B使用对称密钥对密文进行解密,得到最初的明文。
为了进一步提升加密算法传输数据的可靠性(防止数据被篡改),数字签名技术应运而生。发送方用自己的私钥加密摘要(对明文进行哈希得到)得到数字签名,可根据实际是否存在保证数据私密性的需求,选择发送明文或者密文给接收方。
下图以非对称加密与数字签名结合为例,说明数字签名的加密过程。
用户A获得用户B的公钥后,加解密过程如下:
① 用户A使用用户B的公钥对明文加密,生成密文。
② 用户A使用哈希算法对明文进行哈希计算,生成摘要信息。
③ 用户A使用自己的私钥对摘要信息进行加密,生成数字签名。
④ 用户A将密文和数字签名一起发送给用户B。
⑤ 用户B使用用户A的公钥对数字签名进行解密,得到摘要信息。
⑥ 用户B接收到用户A的加密信息后,使用自己的私钥对密文进行解密,得到最初的明文。
⑦ 用户B使用与用户A相同的哈希算法对明文进行哈希计算,生成摘要信息。
⑧ 用户B将生成的摘要信息与从A收到的摘要信息进行比对。
在应用公钥的加解密技术(非对称加密、数字信封、数字签名)中,由于无法保证公钥来源的可靠性(加解密使用的公钥一定属于指定所属者),从而存在安全隐患。以数字签名技术为例,攻击者使用自己的公钥替换了接收方本地保存的发送方公钥,将伪造的信息和用自己私钥加密得到的数字签名发给接收方,接收方使用本地保存的发送者的公钥(已被替换为攻击者的公钥)可以正常进行解密以及数据完整性校验,导致接收方无法甄别收到的消息为伪造的信息。
为了确保公钥来源的可靠性,公钥需要经过权威机构CA (Certificate Authority,证书颁发机构)认证后,才能被认为是可靠性的。
数字证书遵循X.509 V3标准,包含证书签发者名称、持有者名称、公钥信息、CA对证书的数字签名、证书的有效期等多个字段。数字证书的结构如下图所示。
对称加密算法和非对称加密算法为整个加解密技术的基础,在实际使用中,可参照下表中列出的优缺点结合实际需求进行选择。
加密算法 | 优点 | 缺点 |
---|---|---|
对称加密算法 | 1,加密效率高、速度快 2,适用于对大量数据进行加密 | 需要通信时,密钥多不便于管理: •每对通信用户之间都需要协商密钥 •所需交换的密钥数量庞大•密钥交换时,有泄漏风险 |
非对称加密算法 | 需要通信时,密钥少便于管理:•每对通信用户之间都无需协商密钥(每个通信方只需一对密钥,即可与多个其他方通信) •所需密钥交换的数量少(公钥可批量对外发布,私钥自己保存) | •加密效率低、耗时长 •适用于对少量数据进行加密 |
基于对称加密和非对称加密算法衍生出来的应用技术的作用及优势如下表所示。
技术类型 | 作用及优势 |
---|---|
数字信封 | 用于确保数据传输的私密性,结合了两种加密技术的优点:•通过对称加密算法加密明文,加密耗时短、效率高 •通过非对称加密算法加密对称密钥,确保对称密钥传递的可靠性 |
数字签名 | 用于确保数据传输的完整性,提升数据传输的可靠性,确保收到的数据信息未经过篡改 |
数字证书 | 用于确保公钥来源的可靠性,通过权威机构CA签发证书方 式解决了无法确定公钥属于指定拥有者的问题 |