加密与解密原理

加密与解密原理

加密技术的作用

机密性:

通过数据加密实现。提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务。这是使用加密的普遍原因。通过小心使用数学方程式,可以保证只有对应接收人才能查看它。

完整性:

通过数据加密、散列或数字签名来实现,提供确保数据在存储和传输过程中不被未授权修改(篡改、删除、插入和重放等)的服务。对安全级别需求较高的用户来说,仅仅数据加密是不够的,数据仍能够被非法破解并修改。

鉴别性:

通过数据加密,数据散列或数字签名来实现,提供与数据和身份识别有关的服务,即认证数据发送和接收者的身份。

抗抵赖性:

通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助来实现,提供阻止用户否认先前的言论或行为的抗抵赖服务。

对称加密

加密与解密原理_第1张图片

对称加密算法也叫传统密码算法(秘密密钥算法、单钥算法),加密密钥能从解密密钥中推算出来。发件人和收件人共同拥有同一个密钥,既用于加密也用于解密。对称密钥加密是加密大量数据的一种行之有效的方法。对称密钥加密有许多种算法,但所有这些算法都有一个共同的目的:以可以还原的方式将明文(未加密的数据)转换为暗文。由于对称密钥加密在加密和解密时使用相同的密钥,所以这种加密过程的安全性取决于是否有未经授权的人获得了对称密钥。

注:希望使用对称密钥加密通信的双方,在交换加密数据之前必须先安全地交换密钥。

对称加密算法的缺点:

(1)由于加解密双方都要使用相同的密钥,因此在发送、接收数据之前,必须完成密钥的协商分发,在公开的网络上如何安全传送密钥成为了一个严峻的问题。

(2)N个用户之间采用对称加密算法进行通信,需要的密钥对数量为N取2的组合,比如100个人通信时需要4950对密钥,如何对如此大数量的密钥进行管理成为另一个严峻的问题

常见的对称加密算法

流加密算法(stream algorithm)

流加密算法在算法过程中连续输入元素,一次产生一个输出元素。典型的流加密算法算法一次加密一个字节的明文,密钥输入到一个伪随机字节生成器,产生一个表面随机的字节流,称为密钥流。流加密算法一般用在数据通信信道,浏览器或网络链路上。

RC4

分组加密算法(block algorithm)

分组加密算法的输入为明文分组及密钥,明文被分为两半,这两半数据通过n轮处
理后组合成密文分组,每轮的输入为上轮的输出;同时子密钥也是由密钥产生。
典型分组长度是64位。

数据加密标准(DES, Data Encryption Standard)

三重数据加密标准(3DES ,
Triple DES)

高级加密标准(AES, Advanced Encryption Standard)

IDEA (International Data Encryption Algorithm)

非对称加密

加密解密使用的是不同的密钥(公钥私钥),两个密钥之间存在相互依存关系

用其中任一个密钥加密的信息只能用另一个密钥进行解密:即用公钥加密,用私钥解密就可以得到明文

其中公钥和算法是对外公开的,人人都可以通过这个密钥加密文件然后发给收信者。

收信者收到加密文件后,它可以使用他的私钥解密(反之亦然),这个密钥是由他自己私人掌管的,不需要分发,这就解决了密钥分发的问题

非对称加密过程:
加密与解密原理_第2张图片

注:给谁发消息就需要使用谁的公钥进行数据加密

非对称加密算法

  • DH( Diffie-Hellman)
  • RSA(Ron Rivest、AdiShamirth、LenAdleman)
  • DSA (Digital Signature Algorithm)

散列算法:把任意长度的输入变换成固定长度的输出。

MD5(Message Digest Algorithm 5)

SHA(Secure Hash Algorithm)

SM3(Senior Middle 3)

对称与非对称加密比较

优点 缺点
对称加密 加解密速度快 密钥分发问题
非对称加密 密钥安全性高 加解密对速度敏感

PKI(Public Key Infrastructure,公钥基础设施)

通过使用公钥技术和数字证书来提供信息安全服务,并负责验证数字证书持有者身份的一种体系。

数字证书

数字证书:一个经证书授权中心即CA数字签名的文件,包含拥有者的公钥及相关身份信息

证书类型

自签名证书

又称为根证书,是自己颁发给自己的证书,即证书中的颁发者和主体名相同。申请者无法向CA申请本地证书时,可以通过设备生成自签名证书,可以实现简单证书颁发功能。设备不支持对其生成的自签名证书进行生命周期管理(如证书更新、证书撤销等)。

CA证书

CA自身的证书。如果PKI系统中没有多层级CA,CA证书就是自签名证书;如果有多层级CA,则会形成一个CA层次结构,最上层的CA是根CA,它拥有一个CA"自签名”的证书。申请者通过验证CA的数字签名从而信任CA,任何申请者都可以得到CA的证书(含公钥),用以验证它所颁发的本地证书。

本地证书

CA办法给申请者的证书

设备本地证书

设备根据CA证书给自己颁发的证书,证书中的颁发者名称是CA服务器的名称。申请者无法向CA申请本地证书时,可以通过设备生成设备本地证书,可以实现简单证书颁发功能。

PKI两种角色

  • 终端实体EE (End Entity) :也称为PKI实体,它是PKI产 品或服务的最终使用者,可以是个人、组织、设备(如路由器、防火墙)或计算机中运行的进程。
  • 证书认证机构CA (Certificate Authority) : CA是PKI的信任基础,是一个用于颁发并管理数字证书的可信实体。它是一种权威性、可信任性和公正性的第三方机构,通常由服务器充当,例如Windows Server 2008。

PKI组成

  • 证书颁发机构(CA)
  • 证书注册机构(RA)
  • 证书库
  • 密钥备份及恢复系统
  • 证:书废除处理系统
  • 应用系统接口
  • 数字证书

证书颁发机构(CA,Certificate Authority)

加密与解密原理_第3张图片

CA是PKI的核心执行机构,是PKI的 主要组
成部分,一般简称为CA,在业界通常把它称为认证中心。它是一种权威性、可信任性和公正性的第三方机构。

作用:

  • 签发证书、规定证书的有效期和通过发布证书废除列表(CRL)确保必要时可以废除证书,以及对证书和密钥进行管理。
  • CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公钥。
  • CA中心的数字签名使得攻击者不能伪造和篡改证书。

证书注册机构(RA, Registration Authority)

RA ( Registration Authority) 是CA认证中心的组成部分,是数字证书的申请注册、审批、校对和管理机构。证书申请注册机构RA也称为层次结构,RA为注册总中心,负责证书申请注册汇总; LRA为远程本地受理点,负责用户证书申请和审查,只有那些经过身份信用审查合格的用户,才可以接受证书的申请,批准向其签发证书,这是保障证书使用的安全基础。

证书库

证书集中存放地,用户可以从此获得其他用户的证书。

密钥备份及恢复系统

  • 如果用户的解密私钥丢失,则密文无法解密造成数据丢失,密钥的备份与恢复应由可信机构来完成,密钥的备份与恢复只能针对解密私钥(用户证书私钥),签名私钥(根证书私钥)不能备份。
  • 根据用户需求,CA中心可对用户的加密私钥进行备份,并确保密钥安全,CA中心的签名私钥可由上级CA中心来备份,所有密钥的备份都采用密钥分享技术,并将备份信息分段保存在不同的地方,所有密钥的恢复必须满足一定的条件(人数、信息分段的位置、特定的算法)才能完成。

证书废除处理系统

证书在有效期之内由于某些原因可能需要废除,废除证书-一般是将证书列入证书吊销.列表(CRL, Certificate Revocation List)来完成。

应用系统接口

PKI的价值在于使用户能够方便地使用加密、数字签名等安全服务,一个完整的PKI必须提供良好的应用接口,使得各种应用能够以安全、一致、可信的方式与PKI交互,确保所建立起来的网络环境的可信性。

数字证书

数字证书简称证书,是PKI的核心元素,数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据,数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件,由CA证书颁发机构签发,它是数字签名的技术基础保障;现行的证书通常符合X.509v3标准(国内必须要使用X.509格式证书),证书是公钥的载体,证书上的公钥唯一与实体身份相绑定。现行的PKI机制一般为双证书机制,即一个实体应具有两个证书,两个密钥对,一个是加密证书,一个是签名证书,加密证书原则上是不能用于签名的。

PKI工作过程

加密与解密原理_第4张图片

1.PKI实体向CA请求CA证书

2.CA收到PKI实体的CA证书请求时,将自己的CA证书回复给PKI实体。

3.PKI实体收到CA证书后,安装CA证书。

当PKI当PKI实体通过SCEP协议申请本地证书时,PKI实体会用配置的HASH算法对CA证书进行运算得到数字指纹,与提前配置的CA服务器的数字指纹进行比较,如果一致,则PKI实体接受CA证书,否则PKI实体丢弃CA证书。

4.PKI实体向CA发送证书注册请求消息(包括配置的密钥对中的公钥和PKI实体信息)。

  • 当PKI实体通过SCEP协议申请本地证书时,PKI实体对证书注册请求消息使用CA证书的公钥进行加密和自己的私钥进行数字签名。如果CA要求验证挑战密码,则证书注册请求消息必须携带挑战密码(与CA的挑战密码一致)。
  • 当PKI实体通过CMPv2协议申请本地证书时,PKI实体可以使用额外证书(其他CA颁发的本地证书)或者消息认证码方式进行身份认证。
    • 额外证书方式: PKI实体对证书注册请求消息使用CA证书的公钥进行加密和PKI实体的额外证书相对应的私钥进行数字签名。
    • 消息认证码方式: PKI实体对证书注册请求消息使用CA证书的公钥进行加密,而且证书注册请求消息必须包含消息认证码的参考值和秘密值(与CA的消息认证码的参考值和秘密值一致)。

5.PKI实体收到CA发送的证书信息。

  • 当PKI实体通过SCEP协议申请本地证书时,PKI实体使用自己的私钥解密,并使用CA的公钥解密数字签名并验证数字指纹。数字指纹一致时, PKI实体接受证书信息,然后安装本地证书。

  • 当PKI实体通过CMPv2协议申请本地证书时:

    额外证书方式: PKI实体使用额外证书相对应的私钥解密,并使用CA的公钥解密数字签名并验证数字指纹。数字指纹一致时, PKI实体接受证书信息,然后安装本地证书。

    消息认证码方式: PKI实体使用自己的私钥解密,并验证消息认证码的参考值和秘密值。参考值和秘密值一致时, PKI实体接受证书信息,然后安装本地证书。

6.PKI实体间互相通信时,需各自获取并安装对端实体的本地证书。PKI实体可以通过HTTP/LDAP等方式下载对端的本地证书。在一些特殊的场景中,例如IPSec, PKI实体会把各自的本地证书发送给对端。

7.PKI实体安装对端实体的本地证书后,通过CRL或OCSP方式验证对端实体的本地证书的有效性。

8.对端实体的本地证书有效时,PKI实体间才可以使用对端证书的公钥进行加密通信。

9.如果PKI认证中心有RA,则PKI实体也会下载RA证书。由RA审核PKI实体的本地证书申请,审核通过后将申请信息发送给CA来颁发本地证书。

数据安全传输案例

加密与解密原理_第5张图片
1.原始信息通过Hash形成信息摘要

2.使用Alice的私钥进行数字签名

3.将原始信息、数字签名、Alice的证书(包含Alice公钥)使用Bob与Alice之间的对称密钥进行加密传送数据。

4.用Bob放入公钥加密对称密钥,将其放在密钥信封中传输。

5.在公网上传输加密信息和密钥信封

6.Bob接收到密钥信封后,使用Bob的私钥解密出对称密钥。

7.使用对称密钥对加密信息进行解密

8.解密出的数字签名,使用Alice证书中的Alice公钥验证签名,将信息摘要解出。

9.将原始信息使用相同的Hash算法算出信息摘要,然后与8中的信息摘要进行对比,相同则接受成功。

你可能感兴趣的:(网络)