序列密码的线性滤波模型

news/2025/11/9 15:56:39/文章来源:https://www.cnblogs.com/luminescence/p/19204373

线性滤波模型的可攻击性分析

1. 线性滤波模型

  • \(g(x)\) 是线性函数,即:
    \(d_i = a \cdot S^{(i)} = a_{L-1}s_{L-1}^{(i)} \oplus \cdots \oplus a_0 s_0^{(i)}\)
  • 状态转移由矩阵 \(A\) 描述:
    \(S^{(i)} = A^i \cdot S^{(0)}\)
  • 乱数可表示为:
    \(d_i = (a \cdot A^i) \cdot Key\)
    其中 \(a \cdot A^i\) 是已知向量。

2. 构建线性方程组

  • 收集 \(L + \varepsilon\) 个乱数值 \(d_{i_1}, \dots, d_{i_{L+\varepsilon}}\),得到方程组:
    \( \begin{cases} (a \cdot A^{i_1}) \cdot Key = d_{i_1} \\ \vdots \\ (a \cdot A^{i_{L+\varepsilon}}) \cdot Key = d_{i_{L+\varepsilon}} \end{cases} \)
  • 若系数矩阵满秩(秩=\(L\)),则可唯一解出 \(Key\)

例题

题目

LFSR级数 (L): 3
反馈多项式: \(f(x) = x^3 + x + 1\)
滤波向量: \(a = (a_2, a_1, a_0) = (1, 0, 1)\)
初始密钥: \(Key = S^{(0)} = \begin{pmatrix} k_2 \\ k_1 \\ k_0 \end{pmatrix} = \begin{pmatrix} s_2^{(0)} \\ s_1^{(0)} \\ s_0^{(0)} \end{pmatrix}\)
已知乱数序列: \(d_0=1, d_1=0, d_2=0\)

构建状态转移矩阵 A

LFSR的状态转移关系为:
\(S^{(i+1)} = \begin{pmatrix} s_2^{(i+1)} \\ s_1^{(i+1)} \\ s_0^{(i+1)} \end{pmatrix} = \begin{pmatrix} s_1^{(i)} \oplus s_0^{(i)} \\ s_2^{(i)} \\ s_1^{(i)} \end{pmatrix}\)

我们希望找到一个矩阵 (A),使得 \(S^{(i+1)} = A \cdot S^{(i)}\)

根据上面的状态转移关系,我们可以逐行写出矩阵 (A):
第一行: \(s_2^{(i+1)} = 0 \cdot s_2^{(i)} \oplus 1 \cdot s_1^{(i)} \oplus 1 \cdot s_0^{(i)}\)
第二行: \(s_1^{(i+1)} = 1 \cdot s_2^{(i)} \oplus 0 \cdot s_1^{(i)} \oplus 0 \cdot s_0^{(i)}\)
第三行: \(s_0^{(i+1)} = 0 \cdot s_2^{(i)} \oplus 1 \cdot s_1^{(i)} \oplus 0 \cdot s_0^{(i)}\)
因此,状态转移矩阵 \(A\) 为:
\(A = \begin{pmatrix} 0 & 1 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}\)

构建线性方程组

\(d_i = (a \cdot A^i) \cdot Key\)
\(i=0, 1, 2\)
对于 \(i = 0\):
\(A^0\) 是单位矩阵 \(I\)
\(a \cdot A^0 = a \cdot I = a = (1, 0, 1)\)
方程为:\((1, 0, 1) \cdot Key = d_0\)
\((1, 0, 1) \begin{pmatrix} k_2 \\ k_1 \\ k_0 \end{pmatrix} = 1 \quad \Rightarrow \quad k_2 \oplus k_0 = 1\)
对于 \(i = 1\):
\(A^1 = A\)
计算 \(a \cdot A\)
\(a \cdot A = (1, 0, 1) \begin{pmatrix}0 & 1 & 1 \\1 & 0 & 0 \\0 & 1 & 0\end{pmatrix}\)
= \(( (1\cdot0 \oplus 0\cdot1 \oplus 1\cdot0), (1\cdot1 \oplus 0\cdot0 \oplus 1\cdot1), (1\cdot1 \oplus 0\cdot0 \oplus 1\cdot0) )\)
= \((0, 1\oplus1, 1)\)
= \((0, 0, 1)\)

方程为:\((0, 0, 1) \cdot Key = d_1\)
\((0, 0, 1) \begin{pmatrix} k_2 \\ k_1 \\ k_0 \end{pmatrix} = 0 \quad \Rightarrow \quad k_0 = 0\)
对于 \(i = 2\):
首先计算 \(A^2 = A \cdot A\)
\(A^2 = \begin{pmatrix}0 & 1 & 1 \\1 & 0 & 0 \\0 & 1 & 0\end{pmatrix}\) \(\begin{pmatrix}0 & 1 & 1 \\1 & 0 & 0 \\0 & 1 & 0\end{pmatrix}\)
= \(\begin{pmatrix}1 & 1 & 0 \\0 & 1 & 1 \\1 & 0 & 0\end{pmatrix}\)
然后计算 \(a \cdot A^2\)
\(a \cdot A^2 = (1, 0, 1) \begin{pmatrix}1 & 1 & 0 \\0 & 1 & 1 \\1 & 0 & 0\end{pmatrix}\)
= \(( (1\cdot1 \oplus 0\cdot0 \oplus 1\cdot1), (1\cdot1 \oplus 0\cdot1 \oplus 1\cdot0), (1\cdot0 \oplus 0\cdot1 \oplus 1\cdot0) )\)
= \((1\oplus1, 1, 0)\)
= \((0, 1, 0)\)
方程为:\((0, 1, 0) \cdot Key = d_2\)
\((0, 1, 0) \begin{pmatrix} k_2 \\ k_1 \\ k_0 \end{pmatrix} = 0 \quad \Rightarrow \quad k_1 = 0\)

求解线性方程组

我们将上述三个方程组合并成一个矩阵方程 \(M \cdot Key = D\)
系数矩阵 \(M\)\(a \cdot A^i\) 作为行向量构成:
\( M = \begin{pmatrix} a \cdot A^0 \\ a \cdot A^1 \\ a \cdot A^2 \end{pmatrix} = \begin{pmatrix} 1 & 0 & 1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{pmatrix} \)
乱数向量 \(D\) 为:
\( D = \begin{pmatrix} d_0 \\ d_1 \\ d_2 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} \)
完整的线性方程组为:
\(\begin{pmatrix} 1 & 0 & 1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{pmatrix}\)*\(\begin{pmatrix} k_2 \\ k_1 \\ k_0 \end{pmatrix}\)=\(\begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}\)
系数矩阵 \(M\) 是一个满秩矩阵(秩为3),因此该方程组有唯一解
这个矩阵方程直接对应以下三个方程:

  1. \(k_2 \oplus k_0 = 1\)
  2. \(k_0 = 0\)
  3. \(k_1 = 0\)

攻击结论:
通过矩阵方法,我们同样求解出初始密钥为:
\( Key = \begin{pmatrix} k_2 \\ k_1 \\ k_0 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} \)
恢复原始密钥

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/960547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Milvus和DeepSeek构建RAG demo - 实践

使用Milvus和DeepSeek构建RAG demo - 实践2025-11-09 15:50 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bloc…

python里字面量是什么?

在 Python 里,字面量(literal)就是“写在源码里、解释器一看就能直接算出值”的常量写法,不需要再经过变量查找或函数调用。 常见几类:类型 字面量示例 说明数字 42 -3.14 0xFF 1_000_000 3+4j 整型、浮点、十六进…

圆锥滚子轴承品牌:行业顶尖选择与专业解析

副标题:深入探讨2025年市场趋势与用户痛点解决方案 摘要 圆锥滚子轴承行业在2025年持续增长,受益于汽车、工程机械等领域的强劲需求,技术创新和高质量交付成为竞争核心。本文基于行业数据和分析,为您呈现前十名品牌…

串串重学

对于现在大部分的博客对于字符串串的说明看了一下,实在是硬套理论,定义,不能有一个如何而来的推导过程,无法深刻理解到自动机与 fail 指针的本质。 所以尝试自己写一写,但是我是鸽王 qwq 不一定按难度排序,可以看…

如何写毕业论文?10个高效写作技巧+AI论文工具推荐(2025最新)

撰写学术论文常让人无从下手,本文提供10个高效写作技巧及实用AI工具PaperNex。技巧包括明确研究主题目标、深入文献综述、制定大纲等。如明确研究问题和目标,借助学术数据库查阅文献,用AI生成大纲等。还推荐了Paper…

avro 数据入门

avro 数据入门1.概述 Apache Avro 是一种 开源的、语言无关的、基于行的(row-based)数据序列化格式,由 Hadoop 项目开发,广泛用于大数据生态系统(如 Kafka、Spark、Flink、Hive 等)中,用于高效存储和传输结构化…

Day 21

算法复习日:把“似懂非懂”的逻辑磨到通透 原本以为算法复习就是再刷几道题,可坐在电脑前打开之前的笔记才发现,很多算法只是“会写代码”,却没吃透底层逻辑——今天特意放慢节奏,对着二分查找、快速排序这两个“…

2025龙信杯个人Wp

服务器基本没做,时间太赶了www 一、 手机镜像检材 (共24题) 1.​ 分析手机镜像,请问机身的Wi-Fi 信号源的物理地址是什么?[标准格式:01:02:03:04:05:06] 00:db:60:6e:86:132.​ 分析手机镜像,请问张大的手机号码尾…

7大AI论文写作工具必备!论文写作辅助神器推荐!

临近毕业季,写毕业论文让不少人痛苦不堪。2025 年 AI 技术飞跃,成为学生的“学术神器”。作者亲自试用全网热门的 7 个 AI 写作工具,其中瑞达写作表现出色。文章详细介绍了包括瑞达写作、QuillBot、图灵论文 AI 写作…

二 C#工程化部署Yolo - 详解

二 C#工程化部署Yolo - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

flask: 报错:The CSRF token is missing.

一,报错信息 {csrf_token: [The CSRF token is missing.]}二,解决 : 在相应的form中添加:class Meta:csrf = False 例子如下: class AddedForm(FlaskForm):name = StringField(name, validators=[DataRequired(),…

Java数组——二维及多维数组

Java数组——二维及多维数组二维及多维数组 数组嵌套数组,例如:二维数组是一个特殊得一维数组,其中每个元素都是一个一维数组 二维数组 int a[][]= new int [2][3]; 以上数组a可视为二行三列的数组 public class Ar…

详细介绍:MySql复习及面试题学习

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

MATLAB 实现 SRCNN 图像超分辨率重建

MATLAB代码实现,用于基于三层卷积神经网络的图像超分辨率重建。 1. MATLAB代码实现 % 超分辨率卷积神经网络(SRCNN)的测试代码 % 参考文献:Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang. % 学习深度卷积网络…

2025.11.03~2025.11.09

2025.11.03~2025.11.09ZJCPC 2022 A Problem \(T\) 组数据。给定正整数 \(a, b\),你需要确定一个正奇数 \(x\) 和一个正偶数 \(y\) 使得 \(a\) 经过最少操作数变成 \(b\):每次选择将当前数 \(+x\) 或 \(-y\)。求最少…

2025年热门的安全检测检验公司综合排名

摘要 随着矿山安全意识的提升,2025年安全检测检验行业迎来快速发展,专注于设备设施检测和监控系统。本文基于行业数据、用户口碑和技术实力,综合评选出排名前十的公司,为矿山企业提供参考。排名表单结合了权威评测…

2025 秋季 洛阳游

故事要从国庆节说起,那时我刚通关 《饿殍:明末千里行》。故事相当的好,看完结局 ⌊ 不见 ⌉ 略有初中时看完 《龙族:黑月之潮》 的感慨。心想,没法去龙族痛城东京,好歹找个机会去洛阳看看满穗吧!结果一看研学路…

详细介绍:Python 2025年10月最新:多平台域名/小程序封禁检测工具

详细介绍:Python 2025年10月最新:多平台域名/小程序封禁检测工具pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

多快省力插件使用帮助说明

本插件使用需要搭配AutoCAD2024使用,其他版本cad不保证使用正常。 中间可能使用了Ps2025、湘源控规9.010、ArcgisPro3.5及CC工具箱。原则上其他工具有方便的功能则不再重复开发。 插件工具目录: 【多图层不变颜色合并…

Java-148 深入浅出 MongoDB 聚合操控:$match、$group、$project、$sort 全面解析 Pipeline 实例详解与性能优化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …