软考-系统架构设计师 信息加解密技术详细讲解
个人博客:blogs.wurp.top
一、密码学基础与目标
密码学不仅关乎加密和解密,更旨在实现四大核心安全目标,常被称为CIA三元组及其扩展:
- 机密性 (Confidentiality):确保信息不被未授权的实体访问。加密技术是实现机密性的主要手段。
- 完整性 (Integrity):确保信息在传输或存储过程中未被篡改。散列函数和消息认证码是实现完整性的主要手段。
- 认证性 (Authentication):确保通信实体的身份是真实的。数字签名和数字证书是实现认证性的主要手段。
- 不可否认性 (Non-repudiation):确保一个实体无法否认其先前的行为或承诺。数字签名是实现不可否认性的主要手段。
二、对称加密算法 (Symmetric Encryption)
又称共享密钥加密算法。
1. 核心思想
加密和解密使用同一个密钥。
- 通信模型:Alice 和 Bob 必须预先通过一个安全通道共享同一个密钥
K
。 - 流程:
明文
+密钥
-> (加密) ->密文
-> (传输) ->密文
+密钥
-> (解密) ->明文
2. 主要算法
- DES (Data Encryption Standard):
- 密钥长度:56位(已破解)
- 分组大小:64位
- 现状:不安全,已不被推荐用于任何新系统。
- 3DES (Triple DES):
- 是DES的增强版,对每个数据块应用三次DES加密。
- 密钥长度:112位或168位(有效安全性)
- 现状:正在被淘汰,性能较低,逐步被AES取代。
- AES (Advanced Encryption Standard):
- 当前最主流、最推荐的对称加密算法。
- 密钥长度:128位、192位、256位。
- 分组大小:128位
- 特点:安全性高、性能好、硬件实现高效。
- 国密算法 SM1/SM4:
- SM4是我国商用密码标准,属于分组对称加密算法。
- 密钥长度和分组大小均为128位。
- 软考关注:需了解国产商用密码算法体系。
3. 工作模式 (Mode of Operation)
为了用分组密码加密长消息,需要工作模式:
- ECB (Electronic Codebook):相同的明文块加密成相同的密文块。不安全,不能隐藏数据模式。
- CBC (Cipher Block Chaining):每个明文块先与前一个密文块进行异或操作再加密。需要初始化向量(IV)。最常用的模式之一。
- 其他模式:CTR, GCM等。GCM模式还能同时提供机密性和完整性验证。
4. 优缺点
- 优点:算法效率高,加解密速度快,适合加密大量数据。
- 缺点:
- 密钥分发困难:通信双方需要安全地共享同一把密钥。
N
个用户需要C(N,2)
把密钥。 - 密钥管理复杂:大量密钥的存储、更换和销毁是个挑战。
- 密钥分发困难:通信双方需要安全地共享同一把密钥。
三、非对称加密算法 (Asymmetric Encryption)
又称公钥加密算法。
1. 核心思想
使用一对密钥:公钥 (Public Key) 和 私钥 (Private Key)。公钥公开,私钥自己保密。
- 加密:用对方的公钥加密,只能由对方的私钥解密。用于保证机密性。
- 签名:用自己的私钥加密(签名),任何人都可以用你的公钥解密来验证签名。用于保证认证性和不可否认性。
2. 主要算法
- RSA:
- 最著名、最广泛使用的非对称算法。
- 安全性基于大整数质因数分解的难度。
- 密钥长度:1024位(已不安全)、2048位(当前推荐)、4096位(更高安全)。
- ECC (Elliptic Curve Cryptography,椭圆曲线密码学):
- 使用比RSA短得多的密钥就能达到相同的安全强度(例如256位ECC ≈ 3072位RSA)。
- 优点:计算更快、存储空间更小、带宽要求更低。
- 应用:移动设备、SSL/TLS证书、物联网(IoT)。
- 国密算法 SM2:
- 基于椭圆曲线密码的国产非对称算法,用于替代RSA。
- 软考重点:必须了解,是我国商用密码体系的核心。
3. 优缺点
- 优点:解决了密钥分发问题,安全性更高。
- 缺点:计算非常复杂,速度比对称加密慢3个数量级(1000倍)以上,不适合加密大量数据。
四、散列函数 (Hash Function) / 消息摘要算法
1. 核心思想
将任意长度的输入(消息)通过散列算法,变换成固定长度的输出(散列值、摘要)。这个过程是单向的、不可逆的。
- 特性:
- 单向性:无法从散列值推算出原始数据。
- 抗碰撞性:极难找到两个不同的输入得到相同的散列值。
- 雪崩效应:输入的微小改变会导致输出的巨大差异。
2. 主要算法
- MD5:输出128位。已破译,严重安全缺陷,绝对禁止用于安全目的(仅可用于校验文件完整性)。
- SHA-1:输出160位。已破译,不安全,应停止使用。
- SHA-2:当前主流,包括SHA-256、SHA-384、SHA-512等(数字代表输出长度)。
- SHA-3:最新标准,与SHA-2采用不同的设计结构,作为备选。
- 国密算法 SM3:国产散列算法,输出256位,安全性相当于SHA-256。软考重点。
3. 应用场景
- 完整性校验:下载文件时附带其MD5/SHA值,用户下载后计算比对,验证文件是否被篡改。
- 密码存储:系统数据库不存储明文密码,只存储密码的散列值。登录时对比散列值。
- 数字签名:对消息的散列值进行签名,效率远高于对整个消息签名。
- 区块链:区块链中大量使用散列算法来构建区块和保证链的完整性。
五、综合应用技术与协议
实际系统中,以上技术是协同工作的,以发挥各自优点,弥补缺点。
1. 数字签名 (Digital Signature)
用于验证消息来源和完整性。
- 流程(核心):
- 发送方:对消息
M
计算散列值H(M)
。 - 发送方:使用自己的私钥对
H(M)
进行加密,得到数字签名S
。 - 发送方:将消息
M
和签名S
一起发送。 - 接收方:收到后,计算消息
M'
的散列值H(M')
。 - 接收方:使用发送方的公钥对签名
S
进行解密,得到H(M)
。 - 接收方:对比
H(M')
和H(M)
。如果相同,则证明消息未被篡改(完整性)且确实来自发送方(认证性)。
- 发送方:对消息
2. 数字证书 (Digital Certificate) 与 PKI
- 问题:如何保证你拿到的公钥真的是对方的,而不是攻击者的?
- 解决方案:数字证书。它由证书授权中心(CA) 颁发,相当于用户的“网络身份证”。
- 内容:绑定了用户的身份信息及其公钥,并由CA的私钥进行签名。
- PKI (公钥基础设施):创建、管理、存储、分发和撤销数字证书所需的一系列硬件、软件、策略和程序的集合。核心组件包括CA、RA(注册机构)、证书库等。
3. SSL/TLS 协议 (HTTPS的基石)
这是综合运用各类加密技术的典范,完美体现了架构师的权衡思想。
- 目的:在不可信的网络(如互联网)上建立安全的通信通道。
- 握手流程(简化):
- 客户端问候:客户端发送支持的密码套件列表等。
- 服务器问候:服务器选择并返回密码套件、其数字证书(包含公钥)。
- 验证证书:客户端用内置信任的CA公钥验证服务器证书的真实性。
- 生成会话密钥:客户端生成一个预主密钥,用服务器的公钥加密后发送给对方。
- 推导密钥:双方使用预主密钥推导出相同的会话密钥(对称密钥)。
- 安全通信:后续所有通信都使用高效的对称加密(如AES)进行加密,密钥就是刚才生成的会话密钥。
核心思想:用非对称加密的安全特性来安全地交换对称加密的密钥,然后用对称加密来高效地加密实际传输的数据。 这是一个经典的架构权衡。
六、软考考点总结与应用
-
选择题:
- 直接考查各类算法的特性(如AES是对称加密,RSA是非对称加密,SHA-256是散列算法)。
- 考查算法的密钥长度和安全性(如DES 56位不安全,AES 128位安全)。
- 考查国密算法的名称和用途(SM1/SM4对称,SM2非对称,SM3散列)。
- 考查数字签名和SSL/TLS的工作流程。
-
案例分析题:
- 给出一个系统场景(如“设计一个Web应用”、“实现安全通信”),要求:
- 为特定场景选择加密算法:传输大量数据用AES,安全交换密钥用RSA/SM2,存储密码用SHA-256/SM3加盐。
- 设计安全方案:如何实现用户登录认证?如何保证数据传输机密性?如何防止数据被篡改?
- 分析现有方案漏洞:如发现系统用MD5存储密码,或使用HTTP明文传输,需指出风险并提出改进方案。
- 给出一个系统场景(如“设计一个Web应用”、“实现安全通信”),要求:
-
论文题:
- 可能围绕“论信息系统安全架构的设计”、“加密技术在某项目中的应用与实践”、“Web应用的安全防护”等主题。
- 写作时,必须详细阐述你如何综合运用对称加密、非对称加密、散列算法、数字签名等技术来解决实际的安全需求,并说明其中的权衡考量(例如为什么在TLS中既用了RSA又用了AES)。