《物联网安全》第2章 密码技术基础
第二章不严格直接出大题,但后面所有安全协议都依赖它;要掌握各种密码技术名词、思想和应用,同时不要卷算法推导。
重点:数字签名
2.1 密码学概论
1. 核心概念与术语
- 密码学 = 密码编码学(设计加密) + 密码分析学(破解加密),两者对立统一。
- 明文 (M) :原始可读信息;密文 ©:伪装后的信息。
- 加密 (E) : C = E K E ( M ) C = E_{K_E}(M) C=EKE(M) ;解密 (D) : M = D K D ( C ) M = D_{K_D}(C) M=DKD(C)。

- 密钥 (K) :控制加密/解密算法的参数。密钥空间:密钥可能的取值范围。
- Kerckhoffs原理(考点) :密码系统的安全应只依赖于密钥的保密。密码分析者知道双方使用的密码系统,包括明文的统计特性、加解密体制等,唯一不知道的是密钥。
2. 经典密码体制(古典密码)
古典密码主要基于置换 和代换:
- 置换密码:字母位置改变,内容不变。(如:天书Skytale加密法)
- 代换密码 :字母内容替换,位置不变。分为4种:
- 单表代换:一一映射(如凯撒密码,移位3)。
- 同音代换:一个明文可映射为多个密文。
- 多字母组代换:成组加密(如ABA->RTQ)。
- 多表代换:多套单表代换轮换使用。
- 仿射密码公式 :
- 加密: c = ( k 1 ⋅ m + k 2 ) ( m o d n ) c = (k_1 \cdot m + k_2) \pmod n c=(k1⋅m+k2)(modn)
- 解密: m = k 1 − 1 ⋅ ( c − k 2 ) ( m o d n ) m = k_1^{-1} \cdot (c - k_2) \pmod n m=k1−1⋅(c−k2)(modn)
- 注意 : k 1 k_1 k1 必须与 n n n 互素,否则无法解密(多对一映射)。 k 1 − 1 k_1^{-1} k1−1 是模乘法逆元。
2.2 对称密码体制
1. 概述与分类
- 特点 :加密和解密使用 相同密钥 。速度快,适合大量数据加密;但密钥分发困难。
- 流密码(序列密码):逐位/逐字节加密。速度快、低错误传播;但扩散性差、对插入修改不敏感。(如RC4)
- 分组密码(块加密):分块加密(如64位/128位)。扩散性好、对插入敏感;但速度较慢、存在错误传播。(如DES, AES)
2. DES加密 (数据加密标准)
考试不考察具体过程
- 参数:分组长度64位,密钥长度64位(有效56位,8位校验),16轮迭代。
- 加密流程:初始置换IP ➔ 16轮Feistel迭代 ➔ 逆置换IP⁻¹ ➔ 输出密文。
- 轮函数 F 核心流程 :
- E盒扩展:32位 ➔ 48位。
- 异或子密钥 :与48位子密钥 K i K_i Ki 异或。
- S盒压缩代换 (DES核心,实现非线性):48位 ➔ 32位。8个S盒,每个输入6位,输出4位。
- S盒查表法 :6位输入 a 1 a 2 a 3 a 4 a 5 a 6 a_1a_2a_3a_4a_5a_6 a1a2a3a4a5a6,首尾2位 a 1 a 6 a_1a_6 a1a6 决定行号(0-3),中间4位 a 2 a 3 a 4 a 5 a_2a_3a_4a_5 a2a3a4a5 决定列号(0-15),查出数值转为4位二进制输出。
- P盒置换:32位位置重排。
- 子密钥生成:64位密钥 ➔ PC-1选位(56位) ➔ 分左右各28位 ➔ 循环左移 ➔ PC-2选位(48位子密钥)。
- 解密 :算法相同,但子密钥顺序倒序使用( K 16 K_{16} K16 到 K 1 K_1 K1)。
- 3DES(三重DES) :解决DES密钥太短的问题。使用两个密钥(K1, K2),执行 加密-解密-加密 (EDE) ,有效密钥长度112位。若K1=K2则兼容普通DES。

3. AES加密 (高级加密标准)
- 背景 :替代不安全的DES。选中算法为 Rijndael。
- 特点:分组可变(128/192/256位),密钥可变(128/192/256位);设计简单,软硬件实现速度快,能抵抗已知攻击。
4. IDEA加密 (国际数据加密算法)
- 参数:分组64位,密钥128位,8轮迭代+输出变换。
- 核心运算 :模 2 16 + 1 2^{16}+1 216+1 乘法、模 2 16 2^{16} 216 加法、异或。三种运算混合提供非线性。
- 优势:比DES安全,比RSA快,抗差分分析。
2.3 非对称密码体制 (公钥密码)
1. 概述
- 特点 :加密密钥(公钥)与解密密钥(私钥)不同,公钥公开,私钥保密。由公钥推私钥在计算上不可行。
- 公钥私钥的关系:用公钥加密的信息只能用相应的私钥解密。
- 理论基础 :单向陷门函数(正向计算容易,逆向计算极难,除非知道"陷门"/私钥)。
- 功能:机密性(公钥加密)、可认证性、数据完整性、不可抵赖性(私钥签名)。
2. RSA公钥密码体制
- 理论基础:大整数素数分解困难性。
- 密钥生成 :
- 选大素数 p , q p, q p,q,计算 n = p ⋅ q n = p \cdot q n=p⋅q。
- 计算欧拉函数 ϕ ( n ) = ( p − 1 ) ( q − 1 ) \phi(n) = (p-1)(q-1) ϕ(n)=(p−1)(q−1)。
- 选公钥 e e e,满足 1 < e < ϕ ( n ) 1 < e < \phi(n) 1<e<ϕ(n) 且 g c d ( e , ϕ ( n ) ) = 1 gcd(e, \phi(n))=1 gcd(e,ϕ(n))=1(互素)。
- 算私钥 d d d,满足 e ⋅ d ≡ 1 ( m o d ϕ ( n ) ) e \cdot d \equiv 1 \pmod{\phi(n)} e⋅d≡1(modϕ(n))(模逆元)。
- 公钥为 ( e , n ) (e, n) (e,n),私钥为 ( d , n ) (d, n) (d,n)。销毁 p , q p, q p,q。
- 加解密公式 :
- 加密: c = m e ( m o d n ) c = m^e \pmod n c=me(modn)
- 解密: m = c d ( m o d n ) m = c^d \pmod n m=cd(modn)
- 安全性要求 : p , q p, q p,q 必须足够大(至少100位十进制), ∣ p − q ∣ |p-q| ∣p−q∣ 要大, p − 1 p-1 p−1和 q − 1 q-1 q−1要有大素因子。
3. 椭圆曲线密码系统 (ECC)
- 理论基础 :椭圆曲线离散对数问题 (ECDLP),比普通离散对数问题(DLP)更难。
- 优势 :密钥长度短(同等安全强度下,ECC密钥比RSA短得多),计算量小,适合物联网资源受限设备。
- 缺点:加密和解密操作的实现比其他机制花费的时间长
混合加密机制
这是密码学中非常经典且核心的混合加密机制(数字信封技术)。它巧妙地结合了非对称密码(RSA/ECC等)和对称密码(DES/AES等)的优点。
核心思想:用对称密钥锁数据,用公钥锁对称密钥。


会话密钥是一个对称密钥 (比如AES密钥),加解密速度极快 。发送方用这个会话密钥对大量的明文数据进行对称加密,得到加密数据。对称加密很快,适合处理大数据。
解决了一个痛点:对称密码密钥分发困难,非对称密码加解密太慢。
2.4 散列函数 (Hash)
单向散列函数,又称为单向Hash函数、杂凑函数,就是把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数。这个输出串称为该消息的散列值。
1. 核心性质
- 单向性:由消息求哈希值容易,由哈希值反推消息不可能。
- 抗弱碰撞(第二原像性) :给定 x x x,找到 y ≠ x y \neq x y=x 使得 H ( x ) = H ( y ) H(x)=H(y) H(x)=H(y) 计算不可行。
- 抗强碰撞(碰撞阻力) :找到任意一对 ( x , y ) (x, y) (x,y) 使得 H ( x ) = H ( y ) H(x)=H(y) H(x)=H(y) 计算不可行。
2. 常见算法
- MD5 :输出128位。已被王小云教授团队破解(可产生强碰撞)。
- SHA-1:输出160位。类似MD4结构,也被理论上破解。
- SHA-2 (SHA-224/256/384/512):目前推荐使用的安全散列算法。
- MAC/HMAC:带密钥的散列函数,用于消息认证。
- CRC:循环冗余校验,用于检错,非严格加密散列。
3. MD5 vs SHA-1 对比
- 安全性:SHA-1摘要长(160bit vs 128bit),抗强行攻击能力更强,抗密码分析能力更强。
- 速度:MD5更快。
2.5 数字签名与PKI
1. 数字签名
- 基本概念 :数字签名,又称为公钥数字签名、电子签章,是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
- 本质 :用发送方的私钥对消息摘要(Hash值)进行加密。
- 目的/特点 :
- 消息源认证(确信来源)
- 不可伪造(只有持私钥者能签)
- 不可重用(签名与文件绑定)
- 不可抵赖(私钥签名无法否认)
- 验证过程 :接收方用发送方公钥解密签名得到摘要1 ➔ 对原文Hash得到摘要2 ➔ 对比两摘要。
- ✨ 数字签名认证过程


- 数字签名作用:确定消息确实由发送方签名并发出;确定消息的完整性。
签名 &加密 的区分
签名 :使用发送方的私钥 加密发送方的私钥是唯一保密的,具有身份认证 的作用。
加密 :使用接收方的公钥 加密使用接收方的公钥加密,则只能用接收方的私钥解密,具有数据保密 的作用。
RSA密钥不同的使用方法(两次加密过程):
2. PKI (公钥基础设施)
- 定义 :利用公钥密码技术提供安全服务的基础设施,核心是管理密钥和证书。
- 核心组件 :
- CA (证书认证机构):PKI的核心,负责发放、管理、撤销数字证书的信任第三方。
- RA (注册机构):负责证书申请的审核登记。
- 数字证书:遵循X.509标准,包含持有者身份信息、公钥、CA的数字签名。解决了"公钥属于谁"的问题。
- CRL (证书吊销列表):已被撤销的证书黑名单。
3. 证书验证流程(三步走)
- 验证证书真伪 :用CA公钥 解密证书上的签名,与自己重新计算的证书Hash值比对。
- 验证持有者真伪 :用证书内的公钥 加密一段信息发给持有者,看他能否用私钥解密/回应(挑战-响应)。
- 验证所有者姓名 :比对证书中的Common Name (CN) 与实际域名/身份是否一致。

💡 PPT思考题解析
- A紧急发送保密资料给B?
- 方案:A用B的公钥加密,B用自己的私钥解密。(非对称加密,解决密钥分发问题)
- A发送大量保密资料给B?
- 方案 :A随机生成一个对称密钥(会话密钥)加密大量数据,然后用B的公钥加密这个对称密钥,一起发给B。B先用私钥解密出对称密钥,再解密数据。(混合加密机制,兼顾非对称的安全分发和对称的高效)
- A布置加密考卷,同学交加密答卷?
- 考卷下发:A用对称密钥加密考卷,用学生的公钥加密对称密钥分发。
- 交卷:学生用A的公钥加密答卷(保证只有A能看),或者用自己的私钥签名(防抵赖)。
- 手机系统升级"正在校验"在干什么?
- 原理:校验固件的完整性和来源真实性。厂商用私钥对升级包Hash值签名,手机端用内置的厂商公钥验证签名,确保升级包未被篡改(防中间人植入木马)。
- 微信借钱,如何防范风险?
- 防范:需要身份认证和不可抵赖。要求对方发送语音或视频(生物特征认证),或在安全应用中进行数字签名确认,确认是本人操作而非盗号。
模拟复习题
一、 单项选择题
1. 现代密码学设计的一个重要原则是"一切秘密寓于密钥之中",这也就是著名的Kerckhoffs原则。根据该原则,密码系统的安全性应依赖于什么?
A. 加密算法的保密性
B. 解密算法的复杂度
C. 密钥的保密性
D. 明文统计特性的隐藏
【答案】C
解析:Kerckhoffs原则明确提出,密码算法应该对外公开,密码系统唯一应该保密的只有密钥。安全性只依赖于密钥的保密。
2. 在DES加密算法的轮函数F中,实现非线性变换且被称为DES安全性核心的部件是哪一个?
A. 初始置换IP
B. E盒扩展
C. S盒压缩
D. P盒置换
【答案】C
解析:S盒是DES中唯一的非线性部件,实现了明文在密文空间上的随机非线性分布,是DES安全的核心。E盒是扩展,P盒是置换,都是线性的。
3. RSA公钥密码体制的安全性是基于何种数学难题?
A. 大整数素数分解难题
B. 离散对数难题
C. 椭圆曲线离散对数难题
D. 背包难题
【答案】A
解析:RSA的安全性基于大整数的素数分解难题;ECC基于椭圆曲线离散对数难题。
4. 散列函数需要满足多种安全特性。其中,"找到任意两个不同的消息x和y,使得H(x)=H(y)在计算上不可行"这一特性被称为?
A. 单向性
B. 抗弱碰撞性
C. 抗强碰撞性
D. 雪崩效应
【答案】C
解析:抗弱碰撞性是给定x,找y使H(x)=H(y)不可行;抗强碰撞性是找任意一对(x,y)使H(x)=H(y)不可行。
5. 在数字签名技术中,发送方对消息摘要进行签名时,使用的是谁的什么密钥?
A. 发送方的私钥
B. 发送方的公钥
C. 接收方的私钥
D. 接收方的公钥
【答案】A
解析:数字签名的原则是"私钥签名,公钥验证"。发送方用自己的私钥签名,接收方用发送方的公钥验签。
二、 判断题
1. 对称密码体制中,加密和解密使用的是相同的密钥;而非对称密码体制中,公钥和私钥是毫无关联的,可以独立生成。
【答案】×
解析:非对称密码体制中,公钥和私钥是紧密联系的一对密钥对,由同一个算法成对生成,由公钥推私钥在计算上不可行,但绝非毫无关联。
2. 三重DES(3DES)的加密过程是"加密-解密-加密(EDE)",使用两个独立密钥时,其有效密钥长度为112位。
【答案】√
解析:3DES过程为EDE(加密-解密-加密),使用K1和K2两个密钥,有效长度为56+56=112位。
3. 椭圆曲线密码体制(ECC)相比RSA的主要优势是:在达到相同安全强度的情况下,ECC所需的密钥长度更短。
【答案】√
解析:ECC的最大优势就是密钥短、安全强度高,适合计算资源和存储受限的物联网设备。
4. MD5算法目前仍被认为是绝对安全的散列算法,不存在比穷举攻击更有效的破解方法。
【答案】×
解析:2004年王小云教授团队已经成功破解了MD5,找到了强碰撞的方法,MD5已不再安全。
5. 在PKI系统中,注册机构(RA)是数字证书生成、发放的运行实体,也是证书废止列表(CRL)的生成和处理者。
【答案】×
解析:RA(注册机构)只负责证书申请的审核;CA(认证中心)才是数字证书生成、发放和CRL生成的核心实体。
三、 简答题
1. 简述流密码与分组密码的主要区别及各自的优缺点。
【参考答案】
- 区别:流密码以1个比特/字节为基本处理单元;分组密码以固定长度的数据块为基本处理单元。
- 流密码优缺点:优点是处理速度快、低错误传播、硬件实现简单;缺点是扩散性差、对插入修改不敏感。
- 分组密码优缺点:优点是扩散性好、对插入敏感;缺点是加解密速度相对较慢、存在错误传播。
2. 请简述DES算法中轮函数F的四个主要处理步骤。
【参考答案】
DES轮函数F包含四步:
- E盒扩展:将32位输入扩展为48位;
- 异或子密钥:将48位数据与48位子密钥进行按位异或;
- S盒压缩代换:将48位数据分为8组进入8个S盒,每个S盒输入6位输出4位,共输出32位(此步为核心非线性变换);
- P盒置换:对S盒输出的32位数据进行位置重排置换。
3. 在RSA算法的密钥生成过程中,为了保证安全,对选取的大素数p和q有哪些具体要求?
【参考答案】
抵抗现有的整数分解算法,对p和q的要求如下:
- p和q必须为足够大的素数(通常要求长度相同,约100位十进制数);
- |p-q|必须很大,防止攻击者通过相近的值逼近;
- p-1和q-1应分别含有大素因子p1和q1;
- p1-1和q1-1的最大公约数应该很小。
4. 在实际网络通信中,为什么常采用"用非对称密码加密对称密钥,用对称密码加密数据"的混合加密机制(数字信封)?请说明原因及过程。
【参考答案】
- 原因:对称密码加解密速度快,适合加密大量数据,但密钥分发困难;非对称密码无需提前共享密钥,解决了密钥分发问题,但加解密速度极慢,不适合加密大量数据。混合机制取长补短。
- 过程 :
- 发送方随机生成一个临时对称密钥(会话密钥);
- 用会话密钥加密大量明文数据,得到密文;
- 用接收方的公钥加密该会话密钥,得到数字信封;
- 将密文和数字信封一起发送;
- 接收方先用私钥解密数字信封得到会话密钥,再用会话密钥解密密文。
5. 简述浏览器验证数字证书有效性的三个主要步骤及其各自的目的。
【参考答案】
- 验证证书的真伪:用CA的公钥解密证书上的数字签名,并与自己重新计算的证书哈希值比对。目的:确认证书确实是可信CA签发的,且未被篡改。
- 验证持有者的真伪:用证书中的公钥加密一段挑战信息发给持有者,若对方能用私钥正确解密/回应。目的:证明当前通信的对方确实拥有该证书对应的私钥,是证书的合法主人。
- 验证证书所有者的姓名:比对证书中的Common Name(CN)字段与实际访问的域名是否一致。目的:防止攻击者用自己合法申请的证书去冒充其他网站。

