44、流密码中S盒与向量布尔函数的代数免疫性及相关性分析

流密码中S盒与向量布尔函数的代数免疫性及相关性分析

1. 非线性滤波器生成器的代数攻击

在密码学领域,对于非线性滤波器生成器的研究至关重要。某些问题可以在多项式时间内解决,而采样问题在某些情况下是次指数级的,在可进行线性采样时则是多项式级的。

以CanFil5函数为例,实验表明,使用n + ε(n = 40, …, 70且ε < 10)的数据可以对其进行攻击。我们的分析为这一现象提供了确凿的解释。类似地,像Majority5这样的函数也可以用相同的方法攻击,但CanFil1和CanFil2对这种通用攻击具有更强的抵抗力。在m < m0 - 1时,未发现线性方程,仅发现少量二次方程。

2. Trivium流密码的分析

Trivium是一种具有288位状态、非线性更新和线性输出的流密码,其简单的代数结构使其成为研究的理想对象。

2.1 采样分析

Trivium的状态由3个寄存器R1、R2和R3组成。在每个时钟周期,输出状态中6位的线性组合,然后寄存器右移一位,并对每个寄存器的第一位进行非线性反馈。
- 在最初的66个时钟周期内,每个密钥流位是输入的线性函数,之后则涉及非线性表达式。因此,对于m = 66位的输出,可以通过求解线性系统高效地确定一些原像。
- 由于非线性函数是二次的,且乘积的两个因子具有连续的索引,固定状态的一些交替位可以得到剩余变量的额外线性方程。例如,设初始状态的所有偶数位为常数,经过一定的更新后,状态的性质会发生变化,具体如下表所示:
| 寄存器 | 初始状态 | 1次更新后 | 84次更新后 |
| ---- | ---- | ---- | ---- |
| R1 | lclcl … | llclcl … | lllll … |
| R2 | clclc … | lclclc … | lllll … |
| R3 | clclc … | lclclc … | qllll … |

经过84次更新后,R2的第82和83位都是线性的,变量t2使用这两位计算非线性项,因此在第84次更新后,t2 = x178是二次的。再经过65次更新,x243是二次的,第150个密钥流位是二次的,而前149个密钥流位是剩余变量的线性函数。状态中剩余变量的数量(自由度)为144,对于m = 144位的输出,理论上可以找到一个解,实验也验证了这一点。

graph LR
    A[初始状态] --> B[第1次更新]
    B --> C[第84次更新]
    C --> D[第149次更新]
    D --> E[第150次更新(二次密钥流位)]
2.2 潜在攻击分析

Trivium的非线性更新导致随着m值的增加,方程Sm(x) = y的次数也增加。但对于任何输出y,输入变量中至少有66个线性方程。为了确定是否存在额外的线性方程,需要计算约289个原像。通过采样可以在多项式时间内完成这一计算。

实验表明,对于144位的规定输出y,计算400个原像并求解线性单项式矩阵M,对于30个随机选择的y,始终观察到66个线性独立的解。对于输出y = 000 … 0的150位,同样计算400个随机原像并求解矩阵M,仍然观察到66个线性独立的解。这表明Trivium似乎对可能有助于攻击的额外线性方程具有免疫力,并且由于缺乏概率解,也对高概率方程具有免疫力。

3. 布尔函数的代数攻击

代数攻击和快速代数攻击是针对布尔函数的重要攻击方法。

3.1 代数攻击

布尔函数f的代数免疫性AI定义为函数g的最小次数d,使得fg = 0或(f + 1)g = 0。在fg = 0的情况下,可以将yt = f(Lt(x))乘以g得到g(Lt(x)) · yt = 0。对于yt = 1,这是一个次数为d的方程。通过线性化,传统代数攻击的数据复杂度约为2D/RA,时间复杂度CT = D3,其中D是方程中单项式的最大数量。

3.2 快速代数攻击

快速代数攻击考虑方程fg = h(deg h ≥ AI且deg g < AI)。将yt = f(Lt(x))乘以g得到g(Lt(x)) · yt = h(Lt(x)),通过预计算线性组合可以消除高次单项式,从而降低方程的次数。时间复杂度可能比代数攻击小,数据复杂度约为CD = D + E。

4. 滤波器生成器的实验设置

在滤波器生成器的实验中,设置了不同的参数,其中n是LFSR的大小,k是滤波器函数的输入数量。反馈抽头的选择使得LFSR具有最大周期,滤波器抽头根据全正差集选择。具体设置如下表所示:
| 设置 | n | k | 反馈抽头 | 滤波器抽头 |
| ---- | ---- | ---- | ---- | ---- |
| 1 | 18 | 5 | [2, 3, 5, 15, 17, 18] | [1, 2, 7, 11, 18] |
| 2 | 18 | 5 | [1, 2, 5, 7, 9, 14, 15, 16, 17, 18] | [1, 3, 7, 17, 18] |
| 3 | 18 | 5 | [3, 5, 7, 15, 17, 18] | [1, 5, 8, 16, 18] |
| 4 | 18 | 5 | [4, 5, 6, 10, 13, 15, 16, 18] | [1, 6, 7, 15, 18] |
| 5 | 18 | 5 | [2, 3, 5, 7, 11, 15, 17, 18] | [1, 3, 6, 10, 18] |
| 6 | 20 | 5 | [7, 10, 13, 17, 18, 20] | [1, 3, 9, 16, 20] |
| 7 | 20 | 5 | [1, 2, 4, 7, 8, 10, 11, 12, 13, 15, 19, 20] | [1, 5, 15, 18, 20] |
| 8 | 20 | 5 | [2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 19, 20] | [1, 4, 9, 16, 20] |
| 9 | 20 | 5 | [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 15, 17, 19, 20] | [1, 2, 15, 17, 20] |
| 10 | 20 | 5 | [1, 2, 6, 7, 9, 11, 15, 20] | [1, 5, 13, 18, 20] |
| 11 | 40 | 5 | [3, 8, 9, 10, 11, 13, 14, 15, 18, 19, 23, 24, 25, 26, 27, 30, 33, 34, 36, 40] | [1, 3, 10, 27, 40] |

5. 额外的实验结果

对于不同的滤波器和参数,统计了n = 18位输入和m位输出时增强函数的线性方程数量R,具体结果如下表所示:
| 滤波器 | m | R(设置1 - 5) |
| ---- | ---- | ---- |
| CanFil1 | 12 | 0 0 0 0 0 |
| | 13 | 625 288 908 335 493 |
| CanFil2 | 12 | 0 0 0 0 0 |
| | 13 | 144 346 514 207 418 |
| CanFil3 | 12 | 0 0 4 0 0 |
| | 13 | 1272 1759 2173 2097 983 |
| CanFil4 | 7 | 0 0 0 0 0 |
| | 8 | 19 4 0 0 0 |
| | 9 | 102 17 1 0 12 |
| | 10 | 533 69 9 20 167 |
| CanFil5 | 6 | 1 0 0 0 0 |
| | 7 | 4 0 0 0 0 |
| | 8 | 15 0 0 0 1 |
| | 9 | 55 1 0 0 39 |
| | 10 | 411 61 3 0 360 |
| | 11 | 2142 1017 166 10 1958 |
| CanFil6 | 8 | 0 0 0 0 0 |
| | 9 | 0 |
| | 10 | 64 0 0 |
| | 10 | 0 97 256 0 0 |
| | 11 | 0 517 1024 0 0 |
| | 12 | 0 2841 3533 1068 0 |
| | 13 | 152 19531 17626 12627 9828 |
| CanFil7 | 11 | 0 2 0 0 6 |
| | 12 | 68 191 36 26 178 |
| Majority5 | 8 | 1 0 0 0 0 |
| | 9 | 8 3 42 27 14 |
| | 10 | 97 94 401 282 158 |

通过这些实验结果,我们可以更深入地了解不同滤波器生成器的特性,为密码系统的设计和分析提供重要依据。在实际应用中,选择合适的滤波器生成器对于保障密码系统的安全性至关重要。同时,对于具有更强抵抗力的函数,如CanFil1和CanFil2,我们可以进一步研究其结构和特性,以开发更安全的密码算法。

6. 向量布尔函数的广义相关性分析

在流密码中,n位到m位的向量布尔函数的使用可以提高加密和解密的速度,但也带来了新的安全挑战。传统的相关性攻击方法包括Siegenthaler攻击及其改进,以及Zhang - Chan攻击。而我们引入了一种新的广义相关性攻击方法,旨在更有效地分析向量布尔函数的安全性。

6.1 传统相关性攻击回顾
  • Siegenthaler攻击 :在滤波器函数模型中,尝试找到LFSR状态位和输出密钥流之间的线性近似。如果近似概率p ≠ 1/2,则在已知足够多的密钥流位时,可以恢复秘密LFSR位。在组合模型中,通过LFSR产生的n个输入位中的t位组合来近似输出。
  • Zhang - Chan攻击 :考虑将向量输出与任何布尔函数组合,形成线性近似。由于有更多的线性近似可供选择,更容易找到具有更高偏差的近似。
6.2 广义相关性攻击的引入

我们提出的广义相关性攻击考虑的是输入变量x线性、输出变量z = F(x)自由次数的隐式方程。在预处理阶段,计算Pr(g(z) + w1(z)x1 + w2(z)x2 + · · · + wn(z)xn = 0),其中z = F(x),wi : GF(2)m → GF(2)。在攻击阶段,由于z = F(x)是已知的密钥流,g(z)和wi(z)都是已知的,可以将该方程视为线性近似。

为了衡量函数对广义相关性攻击的抵抗能力,我们定义了广义非线性度GNF。通过理论推导和实验验证,我们发现广义相关性攻击比Zhang - Chan攻击和传统相关性攻击更有效,因为广义非线性度低于其他非线性度指标,即GNF ≤ UNF ≤ NF。

6.3 广义相关性攻击的复杂度优化

选择最佳线性近似的复杂度最初为22m×(n + 1) + n,这是不可行的。我们将其降低到22n,使得该攻击方法更具可操作性。

6.4 广义分治相关性攻击

Siegenthaler分治攻击导致了t阶相关免疫函数(当函数平衡时称为t弹性函数)的概念。为了保护密码系统免受广义分治相关性攻击,我们引入了广义弹性的概念。实验表明,通常的弹性概念足以保护密码系统免受广义分治相关性攻击。

6.5 二次构造函数的广义非线性度

对于具有弹性和/或高非线性度的向量布尔函数的二次构造,我们研究了其广义非线性度。结果表明,平衡向量函数的输出组合(如丢弃输出位)可能会增加广义非线性度。对于串联函数,要使其具有高广义非线性度,需要所有组件函数都具有高广义非线性度。

graph LR
    A[传统相关性攻击] --> B[Zhang - Chan攻击]
    B --> C[广义相关性攻击]
    D[Siegenthaler分治攻击] --> E[广义分治相关性攻击]
    F[二次构造函数] --> G[研究广义非线性度]

通过对向量布尔函数的广义相关性分析,我们为流密码的安全性评估提供了新的视角和方法。在实际应用中,开发具有高广义非线性度的向量布尔函数可以提高流密码的安全性。同时,对于不同的攻击方法和非线性度指标的研究,有助于我们更全面地了解密码系统的安全性能,为密码算法的设计和优化提供有力支持。

综上所述,无论是非线性滤波器生成器的代数攻击,还是向量布尔函数的广义相关性分析,都为密码学的研究和发展提供了重要的理论和实践基础。在未来的密码系统设计中,我们需要综合考虑各种因素,选择合适的密码算法和参数,以确保系统的安全性和可靠性。

流密码中S盒与向量布尔函数的代数免疫性及相关性分析

7. 广义相关性攻击的优势与应用场景

广义相关性攻击在流密码分析中展现出显著优势,其应用场景也较为广泛。

7.1 优势体现
  • 更高的攻击效率 :由于广义相关性攻击可以从更多的线性近似中选择,能够找到偏差更大的近似,从而提高攻击的成功率。相比传统的相关性攻击,它能在更少的密钥流数据下实现对密码系统的破解。
  • 更广泛的适用性 :该攻击方法适用于各种使用向量布尔函数的流密码系统,无论是组合生成器还是滤波器函数生成器,都能发挥其作用。
7.2 应用场景
  • 密码系统评估 :在设计新的流密码算法时,可以使用广义相关性攻击来评估算法对该攻击的抵抗能力,从而优化算法的安全性。
  • 漏洞检测 :对于已有的密码系统,通过广义相关性攻击可以检测其是否存在潜在的安全漏洞,及时发现并修复问题。
8. 不同攻击方法的对比总结

为了更清晰地比较不同攻击方法的特点,我们将其进行了总结,如下表所示:
| 攻击方法 | 原理 | 复杂度 | 有效性 | 适用场景 |
| ---- | ---- | ---- | ---- | ---- |
| Siegenthaler攻击 | 寻找LFSR状态位和输出密钥流的线性近似 | 相对较低 | 依赖近似概率 | 滤波器函数模型和组合模型 |
| Zhang - Chan攻击 | 将向量输出与任何布尔函数组合形成线性近似 | 较高 | 比Siegenthaler攻击更有效 | 各种使用向量布尔函数的流密码 |
| 广义相关性攻击 | 考虑输入线性、输出自由次数的隐式方程 | 优化后可操作 | 比前两者更有效 | 各类流密码系统的评估和检测 |

graph LR
    A[Siegenthaler攻击] --> B[Zhang - Chan攻击]
    B --> C[广义相关性攻击]
    style A fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    style B fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    style C fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

从这个对比中可以看出,随着攻击方法的发展,攻击的有效性逐渐提高,但复杂度也在一定程度上增加。在实际应用中,需要根据具体情况选择合适的攻击方法进行密码系统的分析。

9. 密码系统设计的建议

基于前面的研究和分析,对于流密码系统的设计,我们给出以下建议:

9.1 选择合适的向量布尔函数
  • 高广义非线性度 :优先选择具有高广义非线性度的向量布尔函数,以提高密码系统对广义相关性攻击的抵抗能力。
  • 平衡和弹性 :确保函数是平衡的,并且具有较高的弹性,以抵抗分治相关性攻击。
9.2 综合考虑多种攻击方法

在设计密码系统时,不能只考虑单一的攻击方法,要综合考虑各种可能的攻击,如代数攻击、相关性攻击等,确保系统在多种攻击下都具有较高的安全性。

9.3 定期评估和更新

密码系统的安全性不是一成不变的,随着攻击技术的发展,原有的安全措施可能会失效。因此,需要定期对密码系统进行评估,并根据评估结果及时更新和优化。

10. 未来研究方向展望

虽然我们在流密码的代数攻击和相关性分析方面取得了一定的成果,但仍有许多问题值得进一步研究。

10.1 新型攻击方法的探索

随着密码技术的不断发展,可能会出现新的攻击方法。我们需要不断探索和研究这些新型攻击方法,以便及时发现密码系统中的潜在漏洞。

10.2 提高攻击效率的优化

尽管我们对广义相关性攻击的复杂度进行了优化,但仍然有进一步提高攻击效率的空间。未来可以研究更高效的算法和技术,以减少攻击所需的时间和资源。

10.3 设计更安全的密码算法

基于对各种攻击方法的研究,我们可以设计出更安全的流密码算法。这些算法应具有更高的代数免疫性和非线性度,能够抵抗各种已知和未知的攻击。

graph LR
    A[新型攻击方法探索] --> B[提高攻击效率优化]
    B --> C[设计更安全密码算法]
    style A fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
    style B fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
    style C fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px

总之,流密码的安全性研究是一个不断发展和完善的过程。通过对代数攻击和相关性分析的深入研究,我们可以更好地保障密码系统的安全,为信息安全领域的发展做出贡献。在实际应用中,我们要根据具体情况选择合适的密码算法和攻击方法,不断提高密码系统的安全性和可靠性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值