一、引言
(一)核心定义与考试定位
密码学是研究信息隐藏、安全传输与身份认证的交叉学科,是信息安全体系的核心基础,在软考信息安全工程师考试中占比约 15%-20%,覆盖选择题、案例分析题全题型,是必须掌握的核心知识模块。密码学的核心目标是实现信息的保密性、完整性、抗抵赖性和可用性四大安全属性。
(二)历史发展脉络
密码学发展分为三个核心阶段:
- 古典密码阶段(1949 年之前):以替换、移位等手工加密方式为主,典型代表为凯撒密码、维吉尼亚密码,安全性依赖算法保密性,无严格的理论支撑。
- 现代密码学阶段(1949 年 - 1976 年):1949 年香农发表《保密系统的通信理论》,奠定现代密码学的数学基础,密码学成为正式学科,安全性从依赖算法保密转向依赖密钥保密。
- 公钥密码阶段(1976 年至今):1976 年 Diffie 和 Hellman 提出公钥密码思想,解决对称密码的密钥分发难题,推动数字签名、身份认证等新型安全应用落地。
(三)内容框架说明
本篇为密码学专题第一篇,重点梳理密码学基础概念、密码体制分类、安全分析模型与国产密码体系四大核心模块,为后续学习具体算法、应用协议奠定理论基础。
密码学发展阶段时间线与核心里程碑示意图
二、密码学基础体系与法律规范
(一)密码学的核心组成
密码学由两个对立统一的分支构成:
- 密码编码学:研究安全密码体制的设计,目标是构造满足安全需求的加密、认证算法,保障信息安全,核心研究方向包括加密算法设计、哈希函数构造、数字签名协议设计等。
- 密码分析学:研究在未知密钥的情况下从密文恢复明文或密钥的技术,目标是发现现有密码体制的安全漏洞,为密码编码学的改进提供方向,核心研究方向包括差分密码分析、线性密码分析、侧信道攻击等。
(二)我国密码相关法律规范
我国密码应用与管理遵循明确的法律框架,两项核心法律为:
- 《中华人民共和国密码法》(2020 年 1 月 1 日实施):将密码分为三类实行分类管理:
(1)核心密码:保护绝密级、机密级、秘密级国家秘密信息,由国家密码管理部门统一管理。
(2)普通密码:保护机密级、秘密级国家秘密信息,同样纳入严格的国家监管体系。
(3)商用密码:保护不属于国家秘密的信息,广泛应用于金融、能源、交通等民生领域,是日常技术应用的主要密码类型。 - 《中华人民共和国电子签名法》(2005 年 4 月 1 日实施,2019 年修订):明确可靠的电子签名与手写签名、盖章具有同等法律效力,确立了数字签名应用的法律地位,是电子政务、电子商务中身份认证与抗抵赖的法律基础。
(三)必须掌握的核心概念
密码学的基础概念是所有算法和应用的前提,需准确理解:
- 明文(P/Plaintext):未经过加密处理、需要保护的原始信息,形式可以是文本、图像、音频、二进制数据等任意格式。
- 密文(C/Ciphertext):明文经过加密算法转换后得到的内容,外观呈现为无意义的随机数据,非授权方无法直接读取其含义。
- 加密:将明文通过加密算法和密钥转换为密文的过程,数学表达式为 C = E (K, P),其中 E 为加密算法,K 为加密密钥。
- 解密:将密文通过解密算法和对应密钥恢复为明文的过程,数学表达式为 P = D (K', C),其中 D 为解密算法,K' 为解密密钥。
- 加密 / 解密算法:实现加解密转换的一组标准化运算规则,算法本身通常公开,安全性依赖密钥的保密性。
- 密钥(Key):控制加解密算法运算的关键参数,是密码系统安全的核心,根据 Kerckhoffs 原则,即使攻击者知晓加密算法的全部细节,只要密钥未泄露,系统仍然安全。
密码系统基本工作流程示意图,包含明文、加密、密钥、密文、解密、接收方全链路
三、密码体制分类与技术对比
根据加密和解密使用的密钥是否相同,密码体制分为三大类,各有适用场景:
(一)对称密码体制(私钥密码体制)
- 核心原理:加密和解密使用完全相同的密钥,通信双方需要事先通过安全渠道共享同一密钥,数学关系满足 P = D (K, E (K, P))。
- 技术特点:
(1)优势:算法运算速度快,硬件实现可达 Gbps 级吞吐量,适合加密大量数据,资源消耗低,适合嵌入式、移动端等资源受限场景。
(2)核心挑战:密钥分发与管理困难,N 个用户的通信网络需要维护 N*(N-1)/2 个密钥,大规模部署复杂度高,且无法直接实现数字签名功能。 - 典型算法:DES(数据加密标准,密钥长度 56 位,已被破解)、3DES(三重 DES,密钥长度 112/168 位,用于 legacy 系统兼容)、AES(高级加密标准,密钥长度 128/192/256 位,当前主流对称加密算法)、RC4(流加密算法,曾用于 WEP、TLS 1.0,存在安全漏洞已被弃用)、IDEA(国际数据加密算法,用于 PGP 等场景)。
(二)非对称密码体制(公钥密码体制)
- 核心原理:每个用户拥有一对唯一关联的密钥,公钥公开可被任意用户获取,私钥由用户严格保密。两种核心使用模式:
(1)公钥加密、私钥解密:发送方用接收方公钥加密数据,只有接收方的私钥可以解密,实现保密通信。
(2)私钥加密(签名)、公钥解密(验证):发送方用自己的私钥对消息摘要进行签名,任意用户可以用对应的公钥验证签名的合法性,实现身份认证与抗抵赖。 - 技术特点:
(1)优势:完美解决密钥分发问题,N 个用户的通信网络仅需要维护 N 对公钥私钥对,支持数字签名、身份认证等功能,适用于密钥交换、签名场景。
(2)劣势:基于数学难题构造,计算复杂度高,加密速度仅为对称算法的 1/100 到 1/1000,不适合直接加密大量数据。 - 典型算法:RSA(基于大整数分解难题,密钥长度 2048 位以上,广泛用于数字签名、密钥交换)、Elgamal(基于离散对数难题,用于加密和签名)、ECC(椭圆曲线密码算法,相同安全强度下密钥长度远小于 RSA,256 位 ECC 安全性等同于 3072 位 RSA,适合移动、物联网场景)、DH(Diffie-Hellman 密钥交换协议,用于双方在不安全信道上协商生成共享对称密钥)。
(三)混合密码体制
- 设计思想:结合对称密码与非对称密码的优势,用对称加密算法加密大量的明文数据(发挥速度优势),再用接收方的公钥加密该对称密钥(解决密钥分发问题),最终将加密后的密文和加密后的对称密钥一起发送给接收方。
- 工作流程:
(1)发送方随机生成临时对称密钥 K,用 K 加密明文 P 得到密文 C。
(2)发送方用接收方公钥 Pub_R 加密对称密钥 K 得到加密后的密钥 C_K。
(3)发送方将 C 和 C_K 一起发送给接收方。
(4)接收方用自己的私钥 Pri_R 解密 C_K 得到对称密钥 K,再用 K 解密 C 得到明文 P。 - 应用场景:是当前主流安全通信的标准模式,SSL/TLS、IPsec VPN、PGP 加密邮件、微信加密传输等均采用混合密码体制,兼具加密效率与安全性。
三类密码体制技术特性对比表,包含密钥特性、速度、适用场景、典型算法、优缺点等维度
四、密码分析安全模型
密码系统的安全性评估基于攻击者掌握的信息资源,按照攻击难度从低到高分为五类,密码系统的安全强度需要至少抵抗已知明文攻击:
(一)唯密文攻击(COA)
- 定义:攻击者仅能获取到密文,不知道任何明文信息,是最常见也是攻击难度最高的场景。
- 攻击条件:攻击者仅知道加密算法的公开细节和截获的密文,需要通过统计分析等方法恢复明文或密钥。
- 安全要求:所有密码系统必须能够抵抗唯密文攻击,否则不具备基本安全性。
(二)已知明文攻击(KPA)
- 定义:攻击者掌握了部分明文和对应的密文对,通过这些已知对推导密钥或解密其他密文。
- 攻击条件:攻击者可能通过协议特征、固定报文头、已知的标准格式内容等获取明文 - 密文对,例如 HTTP 协议的固定请求头、文件的固定魔术数字等。
- 安全要求:现代实用密码系统必须能够抵抗已知明文攻击,这是算法安全的基本门槛。
(三)选择明文攻击(CPA)
- 定义:攻击者可以主动选择任意明文内容,并获取对应的密文,进而分析密码系统的特性推导密钥。
- 攻击条件:常见于攻击者可以部分控制加密系统输入的场景,例如云存储服务中用户可以上传任意文件并获取加密后的存储内容,电子邮件系统中攻击者发送的邮件会被服务器自动加密存储等。
- 安全要求:商用级密码算法需要能够抵抗选择明文攻击,AES、SM4 等算法均满足该要求。
(四)选择密文攻击(CCA)
- 定义:攻击者可以选择任意密文,并获取对应的解密后的明文,进而分析密钥或系统漏洞。
- 攻击条件:主要针对公钥密码体制和数字签名系统,例如攻击者可以向签名服务器发送任意待签名内容并获取签名结果,或者向解密服务提交任意密文获取明文结果。
- 安全要求:公钥加密算法、数字签名算法需要能够抵抗选择密文攻击,RSA-OAEP、SM2 等算法均具备抵抗该攻击的能力。
(五)密文验证攻击(CVA)
- 定义:攻击者不需要获取完整的解密明文,仅能判断任意选定的密文是否为合法的密文(例如是否符合 padding 规则、是否通过完整性校验),通过多次尝试推导明文信息。
- 攻击条件:常见于 TLS 协议的 padding oracle 攻击、加密文件系统的完整性校验场景,攻击者通过系统返回的 "解密成功 / 失败" 信息即可逐步推导明文内容。
- 安全要求:现代安全协议设计需要通过认证加密等机制避免密文验证攻击的风险。
五类密码分析模型的攻击条件、难度对比与典型场景示意图
五、国产商用密码(SM 系列)体系
国产商用密码算法是我国自主可控安全体系的核心,也是软考的高频考点,核心算法包括四类:
(一)对称加密算法:SM1、SM4
- SM1 算法:分组密码算法,分组长度 128 位,密钥长度 128 位,安全强度与 AES-128 相当,仅通过硬件 IP 核形式实现,不公开算法细节,用于智能卡、加密机等安全硬件产品。
- SM4 算法:分组密码算法,分组长度 128 位,密钥长度 128 位,算法完全公开,支持软件和硬件实现,是我国无线局域网标准的强制加密算法,也广泛用于文件加密、数据库加密等场景,性能与 AES-128 相当。
(二)非对称加密算法:SM2
- 算法原理:基于椭圆曲线离散对数难题设计,属于 ECC 类公钥算法,密钥长度 256 位,安全强度等同于 3072 位 RSA 算法,运算效率远高于同安全强度的 RSA 算法。
- 应用场景:支持公钥加密、数字签名、密钥交换三类功能,用于电子政务电子签章、金融 IC 卡、SSL/TLS 国密改造等场景,是当前应用最广泛的国产公钥算法。
(三)杂凑算法:SM3
- 算法原理:密码杂凑(哈希)算法,输入任意长度的消息,输出 256 位固定长度的哈希值,安全强度等同于 SHA-256,优于 MD5(128 位,已被破解)和 SHA-1(160 位,已被破解)。
- 应用场景:用于完整性校验、数字签名、消息认证码生成、口令哈希存储等场景,是国密体系中所有需要完整性保障场景的基础算法。
(四)标识密码算法:SM9
- 算法原理:基于身份的密码(IBC)体制,用户的唯一标识(如手机号、邮箱地址、身份证号)直接作为公钥,不需要单独申请和维护数字证书,大幅简化密钥管理流程。
- 应用场景:适用于物联网、即时通信、云计算等用户规模大、证书管理复杂度高的场景,支持加密、签名、密钥交换功能,是新型密码应用的核心算法。
SM 系列国产商用密码算法分类与应用场景架构图
六、总结与备考建议
(一)核心知识点提炼
- 密码学由密码编码学和密码分析学构成,我国实行核心密码、普通密码、商用密码分类管理,《密码法》《电子签名法》是核心法律依据。
- 密码体制分为对称、非对称、混合三类,对称密码适合大数据加密,非对称密码适合密钥交换和签名,混合密码是当前主流应用模式。
- 密码分析模型按照攻击难度从低到高分为唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击、密文验证攻击,安全系统需要至少抵抗已知明文攻击。
- 国产 SM 系列算法包括 SM1/SM4 对称加密、SM2 非对称加密、SM3 杂凑算法、SM9 标识密码,是自主可控安全体系的核心。
(二)软考考试重点提示
- 高频考点:密码体制的分类与对比、Kerckhoffs 原则、SM 系列算法的分类与用途、密码分析模型的场景区分、《密码法》的分类管理要求。
- 易错点:对称与非对称密码的适用场景混淆、公钥密码的两种使用模式区分、SM 系列算法的功能匹配。
- 题型预测:选择题主要考察概念区分、算法分类,案例分析题可能结合 SSL/TLS、VPN 等应用场景考察混合密码体制的工作流程。
(三)学习与实践建议
- 基础学习阶段:准确记忆所有核心概念,对比梳理三类密码体制的差异,形成清晰的知识框架。
- 巩固提升阶段:结合 HTTPS、加密邮件等实际应用,理解混合密码体制的实际工作流程,动手尝试用 OpenSSL 工具实现 SM2、SM3、SM4 算法的基本操作。
- 备考阶段:重点掌握国产 SM 系列算法的特性与应用场景,关注《密码法》相关的合规考点,为后续学习具体算法原理、密码应用协议奠定基础。