密码分析:PRESENT 类和 GOST 块密码的攻击技术解析
1. PRESENT 类密码的差分攻击分析
在对 64 位 PRESENT 类密码的研究中,引入了一种新型差分攻击方式。该攻击针对具有秘密组件的此类密码,特别是包含 16 个秘密 S 盒的变体。
1.1 攻击复杂度模型
通过实验数据与模型数据的对比发现,模型给出了攻击复杂度的上限。在恢复 S 盒相关集合时,考虑到活动 S 盒的特性,一个活动 S 盒在两轮加密后平均不会导致 16 个活动 S 盒。基于此,利用模型确定的样本大小,在实际中可以破解至少多两轮的加密。
为验证模型,针对较少轮数的密码进行攻击实现。对于每一轮数,在模型中采样 1000 个密文,以确定区分两种分布所需的样本大小。如图 1 所示,展示了实验数据(黑线)与模型数据(红线,误差约 0.3%,对应 c = 8)的对比,复杂度表示使用的明文数量的对数。
graph LR
A[实验数据] --> C(对比)
B[模型数据] --> C
C --> D{模型给出上限}
从图中可以看出,模型似乎为攻击复杂度设定了上限。在某些罕见情况下,p 和 q 的差异接近零,导致攻击复杂度极高。因此,为估计攻击复杂度,采用中位数而非平均值。模型数据表明,在达到 2^64 个可用明文的限制之前,能够破解多达 28 轮的加密。
1.2 攻击的扩展
1.2.1 线性密码分析
差分攻击基于一个假设:第一轮 S 盒层输出的单比特差异特