密码系统中的攻击与防御策略解析
立即解锁
发布时间: 2025-08-31 00:55:48 阅读量: 16 订阅数: 48 AIGC 


密码学前沿研究精选
### 密码系统中的攻击与防御策略解析
#### 1. 自然故障攻击中的算法依赖性
自然故障攻击的效果与所使用的密码系统及其算法密切相关。以Ed25519签名系统的三种版本为例:
- **标准Ed25519**:私钥为32字节字符串,经哈希处理得到一个秘密标量和另一个秘密值,后者与消息一起哈希得到随机数。存储的私钥中任何一位翻转都会产生完全不同的哈希输出,攻击者得到的签名无明显价值。
- **最常用变体**:私钥为64字节,包含上述32字节字符串和32字节公钥的副本。使用最简单的签名算法时,这64字节中的故障会泄露私钥,但通过对秘密标量与公钥进行双重检查的签名算法可检测到故障。
- **高效故障攻击对策变体**:在生成随机数的哈希输入中加入额外32字节的随机性,无需检查公钥。
总体而言,故障攻击的可行性受密码系统细节和所用算法的影响。
#### 2. NTRU - HRSS的自然故障攻击
针对NTRU - HRSS的攻击,在存储的私钥中单个位翻转时即可生效,这一事件可能自然发生。与某些针对RSA - CRT的攻击不同,该攻击具有算法独立性,适用于计算私钥指定函数的任何算法,因为NTRU - HRSS私钥中不包含可用于检测此攻击所利用故障的数据。
不过,该攻击也存在一些缺点:
- **主动性**:攻击是主动的,会充分利用攻击模型的灵活性。对于每个目标密文,在故障发生前后发送修改版本的密文,并获取有关生成会话密钥的信息。
- **仅恢复会话密钥**:攻击只能恢复故障发生前通信的所有会话密钥,而非Alice的私钥,但攻击者恢复私钥的目的通常也是为了获取所有会话密钥。
#### 3. 冷启动攻击与错误纠正
在冷启动DRAM攻击的相关文献中,常利用存储数据的冗余来纠正翻转的位,这有时被用作将秘密数据以最大压缩格式存储的论据,甚至建议不使用SECDED ECC DRAM。然而,避免使用SECDED ECC DRAM会使用户面临难以分析的正确性和安全风险。实际上,执行良好的冷启动DRAM攻击很少遇到错误,避免冗余并不能阻止此类攻击。
相比之下,使用存储在更安全硬件中的密钥对DRAM进行加密是一种更简单且更有效的防御措施,并且与SECDED ECC DRAM和其他故障保护措施兼容。
#### 4. 选择密文攻击及其防御
选择密文攻击主要针对基于代码和基于格的系统。以NTRU - HRSS、Streamlined NTRU Prime和Classic McEliece的第三轮版本(分别简称为ntruhrss、sntrup和mceliece)为例,这些系统具有一些看似能干扰攻击的特征,具体如下表所示:
| 特征 | mceliece | sntrup | ntruhrss |
| --- | --- | --- | --- |
| 对明文进行哈希处理 | 是 | 是 | 是 |
| 刚性 | 是 | 是 | 是 |
| 无解密失败 | 是 | 是 | 是 |
| 明文确认 | 是 | 是 | 否 |
| 隐式拒绝 | 是 | 是 | 是 |
| 对密文进行哈希处理 | 是 | 是 | 否 |
| 小明文之外的有限密文空间 | 否 | 是 | 否 |
| 小明文之外的有限明文空间 | 否 | 否 | 否 |
| 无去随机化 | 是 | 是 | 是 |
#### 5. 密文结构与解密
Bob的密文形式为B = bG + d,其中G是Alice的公钥,b和d是秘密值,d通常较小。mceliece的密文结构为He,其中H是公钥,e较小,H内部由单位矩阵和另一个矩阵Q组成,He可写成e1 + Qe2,本质上也是bG + d的形式。
Alice使用私钥恢复b和d,不同系统对b和d的定义有所不同。例如,原始McEliece系统将b视为明文,d在加密时随机选择;原始NTRU系统则将d视为明文,b在加密时随机选择。
从bG恢复b相对容易,但从有噪声的bG + d中恢复b在适当参数下被认为是困难的,这涉及到“LPN”“LWE”等问题,尽管这些问题常被认为是21世纪论文引入的,但早期的McEliece和NTRU论文已对相关情况进行了算法成本分析。
#### 6. 选择密文攻击的线性利用
基于密文B = bG + d的线性结构和IND - CCA2安全定义,攻击者通常发送修改后的密文B′ = B + δ = bG + d + δ,期望解密过程返回(b, d + δ),然后减去δ获得正确
0
0
复制全文
相关推荐









