基于LFSR的流密码的代数攻击

LFSR(线性反馈移位寄存器) 线性反馈移位寄存器LFSR,是移位寄存器的一种,通常用于在数字电路中产生伪随机数。寄存器中的初始值叫做种子,种子应该是非零的。LFSR的下一时刻输入为是由整个移位寄存器值的某些位做异或运算的结果。选取哪些位置 用于移位,是需要进行预先设计好的,目的是要产生一个伪随机并且尽可能长周期的数字序列。 n位LFSR,最多产生2^(n-1)种序列(全零或全一被排除,因为全零异或nor结果为0,不会产生新序列,全1同或xnor也是)。 影响下一个状态的比特位叫做抽头。移位寄存器链的多个抽头用作XOR或XNOR门的 阅读详情

目录

前言

(1)布尔多项式环

(2)整环

(3)非线性多项式

一. 线性反馈移位寄存器

1.1 介绍

1.2 举例

二.流密码

2.1 介绍

2.2 基于LFSR的流密码

三. 非线性过滤函数

总结


前言

(1)布尔多项式环

设R是有单位元的环,若\forall x\in R,都有x^2=x,也就是R中的每一个元都是幂等元,则称R为布尔多项式环。其中多项式强调每一个环元素都是一个多项式。

(2)整环

整环满足封闭性,拥有单位元,满足交换性,不一定有逆元。

(3)非线性多项式

线性多项式指的就是一次多项式。非线性多项式则代表多项式的次数大于1。

因为布尔多项式环不是一个整环,所以可以利用此性质来降低非线性多项式的次数。由此可以用来设计密码学的攻击思想。

一. 线性反馈移位寄存器

1.1 介绍

线性反馈移位寄存器( Linear Feedback Shift Register, LFSR)一般是结合寄存器和异或门用来生成二进制伪随机序列。它可以根据前一状态的移位寄存器输出,将该输出再用作输入再进行异或运算,循环往复。但不是所有移位寄存器都需要进行异或运算,根据移位寄存器的给定位进行异或操作后会产生一个结果,再将产生的结果作为输入放到最左边的移位寄存器中作为该寄存器的状态,相应的每个移位寄存器的状态都往右移位一格,实现寄存器中数据状态的整体位移,通常每移位一次将更新线性反馈移位寄存器的全部状态,可看如下图:

LFSE 的应用也领域非常广泛,一般用作生成伪随机序列用作加扰序列或者扩频码进行信息序列的伪随机化,有时还会用做为噪声序列。

1.2 举例

LFSR: Linear Feedback Shift Register 线性反馈移位寄存器。以一个12比特的线性反馈移位寄存器为例子,初始状态如下:

下一个clock,出去了一个数,则需要左边再进一个数,依据:s_0^,=s_4+s_6+s_8+s_{11}=0, s^,_1=s_0, s_2^,=s_1,\ldots,s_1^,=s_{10} 

可得如下:

反馈函数的通式为:

f(x)=c_0x^{12}+c_1x^{11}+\ldots+c_{11}x+1

在上图中反馈函数为:

f(x)=x^{12}+x^9+x^7+x^5+1。

补充本原多项式:

如果多项式的系数满足:

gcd(a_0,a_1,\cdots,a_n)=1

也就是系数的最大公约数为1,则称该多项式为本原多项式。

将LFSR的长度表示为L,当LFSR的输出序列的周期为2^L-1时,反馈函数f(x)称为本原多项式。可以看到这是L长线性反馈移位寄存器所能输出的最大长度。

因为非零状态的个数为2^L-1,所以LFSR的最大周期只能到达2^L-1,这样的序列称为m-sequence。因其在同等阶数条件下的伪随机序列周期最大,所以 m 序列有较好的随机化能力,可以更好的实现基带信号的伪随机过程,提高初始信源序列在无线通信系统中数据传输的平稳能力,使得通信过程更加优化。

二.流密码

2.1 介绍

在保密系统中, 发送方发送的消息一般被称为明文, 明文依据某种规则变换成密文, 这种依据规则变换的过程被称为加密; 其逆过程被称为解密。 对明文进行加密时采用的规则被称为加密算法, 对密文进行解密时采用的规则被称为解密算法。根据加解密时所使用的密钥是否相同, 可以将密码算法分为非对称密码算法和对称密码算法。

对称密码体制一般又可以被分为分组密码和流密码, 常见的分组密码包括 AES、 SM4、 ASCON-128 、 PRESENT等, 常见的流密码包括Trivium、 Grain-128、 Lizard、 Plantlet 等。

作为对称加密体系中的一种加密结构, 流密码算法一般逐字节或者逐比特处理信息。 大多数情况下, 流密码是通过一个相对较短的主密钥利用一些规则生成密钥流, 之后密钥流序列再对明文进行加密, 从而得到对应的密文。

流密码算法通常由异或运算、 与运算以及循环移位等基础操作组成, 这使得流密码算法具有加解密速度快, 软硬件实现简单等特点, 因此常被用于资源受限制的环境条件, 比如处理器性能较弱、 硬件资源有限。

对于流密码而言, 关键在于设计好的伪随机数生成器。一般来说, 密钥流发生器生成的序列随机性越强, 其明文中的统计特征就会被覆盖的更好。 密钥流发生器的基本构造模块为反馈移位寄存器, 其主要包含线性反馈移位寄存器和非线性反馈移位寄存器。

2.2 基于LFSR的流密码

模仿一次一密加密过程,利用有限的key,生成无限的keystream密钥流:

k_0,k_1,\ldots

密码学的攻击模型中,有一种叫做已知明文攻击。也就是,攻击者已知明密文对:

(p_1,c_1), (p_2,c_2), \ldots,(p_m,c_m)

这个过程就是简单的异或运算,所以可得:

k_1=p_1\bigoplus c_1, k_2=p_2\bigoplus c_2, \ldots, k_m=p_m\bigoplus c_m

此时便出现了两种解密方法。
方法一:

从k_1,k_2,\ldots,k_m中恢复初始密钥

方法二:

从k_1,k_2,\ldots,k_m中恢复某一时刻的中间状态(s_0,s_1,\ldots,s_{L-1})。有了(s_0,s_1,\ldots,s_{L-1})可以得到同样的密钥流

 结论:只通过LFSR生成密钥流是不安全的。Berlekamp-Massy 算法可以利用2L长的输出序列,以O(L^3)的复杂度得到生成这个序列的线性反馈移位寄存器。

三. 非线性过滤函数

在线性反馈移位寄存器中加入非线性结构,如下图:

以f(x_1,x_2,x_3,x_4,x_5,x_6)为例,每个clock,从当前状态s_0,s_1,\ldots,s_{L-1}中抽取出6个(s_{k_1},s_{k_2},s_{k_3},s_{k_4},s_{k_5},s_{k_6}),其中k_1,k_2,\ldots,k_6为抽头数。由此可得密钥流:

KS_i=f(s_{k_1},s_{k_2},s_{k_3},s_{k_4},s_{k_5},s_{k_6})

线性反馈移位寄存器的更新过程可以看成如下线性变换:

其中:

s_0^,=c_{L-1}s_0+c_{L-2}s_1+\ldots+c_0s_{L-1}

s_1^,=s_0,s^,_2=s_1,\ldots,s^,_{L-1}=s_{L-2}

假设x_1,x_2,\ldots,x_n为n比特线性反馈移位寄存器某一时刻的中间状态,密钥流可以写成布尔多项式如下:

以下为探讨中间状态恢复问题 :

此问题的本质相当于已知密钥流b_0,b_1,\ldots,b_{m-1},求解如下关于x_1,x_2,\ldots,x_n的方程组:

在求解此方程中,由于L为线性函数,因此每个单独方程的次数都等于过滤函数f的次数。从此角度出发,要求f的次数足够高,f的非线性度要高。

总结

代数密码分析的本质就是从求解多变元多项式方程组的角度来分析密码算法。密码系统、代数系统、破解密码系统、求解代数系统之间的关系可以表示为如下:

数据处理方法(LFSR) 线性反馈移位寄存器(LFSR):通常由移位寄存器和异或门逻辑组成。其主要应用在: 伪随机数,伪噪声序列,计数器,BIST,数据的加密和 CRC 校验等。 阅读详情

相关推荐

线性反馈移位寄存器(LFSR)的原理

通常为非全0值循环操作:每次迭代中,将当前状态的第 k 位和第 k+1 位进行异或运算,然后将结果赋值给第 k+1 位,并将所有其他位向右移动一位。每次循环,我们将第1位和第7位进行异或运算,并将结果赋值给第7位,然后将所有位向右移动一位。具体来说,LFSR通过将当前寄存器状态作为输入信号,并通过一系列异或门对这些输入信号进行变换,从而得到下一个状态。其中xn​表示第n个状态,f是一个线性函数,通常是异或运算,即f(xn−1​,xn−2​,…// 定义LFSR的位数和反馈位。// 初始化LFSR。

weixin_37414365的博客 1946

【电子技术】什么是LFSR?

0 前言 线性反馈移位寄存器:(Linear Feedback Shift Register,LFSR)和循环冗余码(Cyclic Redundancy Check,CRC)是微控制器中常用的底层原理。LFSR用于生成伪随机数,后者用于生成检错码。他们的数学原理都是一样的。 1 数学基础 1.1 逻辑异或 异或运算使用符号⊕或者nor表示,真值表如下 F = A ⊕ B A B F 0 0 0 0 1 1 1 0 1 1 1 0 异...

那么菜的博客 1万+

A2U2流密码实时密钥恢复攻击:原理、建模与实战分析

流密码作为对称加密的核心技术之一,通过伪随机密钥流与明文异或实现加密,其安全性依赖于密钥流的不可预测性。在资源受限的物联网和嵌入式场景中,轻量级流密码(如A2U2)因结构简单、功耗低而被广泛应用,但这也可能引入安全风险。其核心原理基于线性反馈移位寄存器(LFSR)与非线性滤波函数的组合,若非线性组件设计不足,密钥比特与输出流之间可能残留线性或低次代数关系,从而降低安全强度。从技术价值看,理解这类潜在漏洞有助于评估算法在实时通信等高敏感场景中的适用性,并为设计更健壮的轻量级密码提供依据。针对A2U2的实时密钥

weixin_34293246的博客 315

详解线性反馈移位寄存器(LFSR)

转载于。

bo_self_effacing的博客 2万+

流密码实战解析:从ZUC-128看密钥生成器的安全设计

本文深入解析了流密码算法ZUC-128的密钥生成器安全设计。文章剖析了其三层架构:线性反馈移位寄存器(LFSR)提供长周期驱动,比特重组(BR)进行非线性扰动,非线性函数F通过S盒和线性变换实现核心混淆与扩散。通过实战推演,阐述了ZUC-128如何从初始化到工作阶段生成安全的伪随机密钥流,并探讨了其抵御代数攻击、相关攻击等安全机制,是理解现代流密码安全设计的典范。

weixin_29314405的博客 202

25、LRC - 256:高效安全的基于LFSR的流密码

LRC-256是一种高效安全的基于LFSR的流密码,采用8个互质长度的LFSR和不规则时钟机制,结合S盒选择、非线性布尔函数与复杂反馈结构,提供高安全性与优异性能。该算法在抗相关攻击、代数攻击、时间-内存权衡攻击、分治攻击、区分攻击及AIDA/Cube攻击方面均表现出强抵抗力,适用于嵌入式设备等轻量级场景。尽管存在初始化复杂和LFSR易受侧信道攻击的局限性,但通过未来在初始化简化、安全性增强和性能优化方面的改进,有望进一步提升其实用性与安全性。

opencv7vision的博客 55

伪随机性的艺术:序列密码生成器的设计与攻防博弈

本文深入探讨了序列密码(流密码)的核心——密钥流生成器的设计艺术与安全博弈。文章剖析了从线性反馈移位寄存器(LFSR)到非线性组合器的设计原理,并以RC4和A5/1等经典算法的兴衰为例,揭示了伪随机性生成中的关键弱点与攻击手段(如相关性攻击、代数攻击)。最后,结合现代最佳实践,阐述了构建安全序列密码需遵循的原则,如充足的内部状态、高度非线性以及抵抗已知攻击。

bert9linguist的博客 183

17、基于截断压缩原像集的流密码低数据复杂度反转攻击

本文提出了一种基于截断压缩原像集(TCP集)的低数据复杂度反转攻击方法,用于分析基于LFSR的非线性滤波流密码的安全性。该方法在数据和时间复杂度上均优于传统代数攻击和反转攻击,尤其适用于密钥流数据受限的情况。通过分析布尔函数的压缩原像集特性,该方法能够在较少密钥流比特的情况下高效恢复LFSR的初始状态。实验结果表明,该方法对90级LFSR生成器和LILI-128流密码的攻击效果显著,分别仅需10位和9位密钥流即可实现攻击。这项研究为流密码的安全性评估和设计提供了新的思路。

study的专栏 85

《应用密码学课程调研|研究序列密码:原理、攻防、落地与后量子发展全复盘》

搭建序列密码完整理论框架理清流密码核心异或加解密机制、LFSR 密钥流生成架构,整理行业评判安全密钥流的四大硬性指标(周期长度、线性复杂度、抗相关攻击、雪崩效应);区分开序列密码、分组密码、公钥密码的适用边界,明确流密码在低延迟、低功耗场景不可替代的核心优势。完成全品类序列密码横向对比梳理按照技术架构将现有流密码划分为三类并逐一拆解优劣:纯线性 LFSR 生成 m 序列:仅适合理论教学,线性漏洞极易被破解,无法商用;

Shenjuanxhe的博客 370

32、非线性方程表示与快速流密码设计

本文探讨了非线性方程的MRHS表示在代数攻击中的优势,并提出了一种结合线性反馈移位寄存器(LFSR)和均匀拟群滤波器的快速流密码设计方案。MRHS表示在方程数量、求解复杂度和线性方程提取方面优于传统的MP表示。通过一致性处理和线性方程提取示例,展示了MRHS方程处理的有效性。流密码设计部分介绍了LFSR的高效生成能力以及拟群滤波器在引入非线性元素和确保生成序列周期与分布特性方面的优势。最后,文章总结了相关技术在现代密码学中的应用潜力,并展望了未来优化方向。

o9p0q1的博客 73

18、流密码的低数据复杂度反演攻击

本文提出了一种基于k-阶截断压缩原像集(TCP集)的低数据复杂度反演攻击方法,用于恢复流密码中线性反馈移位寄存器(LFSR)的初始状态。通过分析90级LFSR密钥流生成器和LILI-128流密码,该方法在时间和数据复杂度方面展现出优势,尤其在数据需求方面显著降低。文章还探讨了该方法的应用场景、对密码设计的启示及未来研究方向,为流密码的安全性分析提供了新的思路。

study的专栏 69

流密码基础(四):相关攻击与 Geffe 生成器

在上一篇《流密码基础(三):非线性布尔函数与组合生成器》中,我们搭建了组合生成器的架构,并梳理了布尔函数的五大密码学性质。但有一个关键问题没有展开:相关攻击究竟是如何攻破组合生成器的?相关攻击是流密码分析史上的里程碑。它利用布尔函数的统计偏差对多路 LFSR 实施分治破解,直接打破了"非线性组合 = 安全"的幻想,把组合生成器的安全评估从"线性复杂度"单一维度,推向了"相关免疫性"这个全新战场。本篇我们将从相关系数和 Walsh 谱出发,搭建相关攻击的完整理论框架;然后以经典 Geffe 生成器为例,走一遍

Sagittarius_A*的博客 508

基于AImin的流密码攻击

本文提出一种新的猜测然后代数攻击方法,引入一阶最小代数免疫度AImin(f)作为新参数。利用该参数的性质,针对具有非线性滤波的LFSR流密码,有效降低攻击的时间与数据复杂度。研究表明,即使滤波函数具有最大代数免疫性,若AImin(f)过小,仍可高效攻击,为流密码设计提供了新的安全准则。

linux6sysadmin的博客 948

SOBER算法的各种密码分析方法全面盘点

💎 总结 SOBER系列算法的密码分析史,清晰地展现了其安全边界的逐步收缩。从早期针对设计缺陷的攻击,到后来更成体系的区分攻击、代数攻击和密钥恢复攻击,这些研究不断挑战并重新定义着SOBER算法的安全性,证明了即使是设计良好的密码系统,也需要经历严苛的公开审查才能确立其可信度。

HuangJinLong2的博客 193

MaixCAM2 4K AI相机硬件解析与开发实战

嵌入式AI视觉开发中,边缘计算设备的选择直接影响项目落地效果。以NPU为核心的AI加速技术通过专用指令集优化,可在低功耗下实现10+TOPS算力,典型应用包括工业质检、智能门禁等实时场景。MaixCAM2作为新一代4K AI相机,搭载AX630 SoC芯片,其双核Cortex-A53与NPU的异构架构,在运行YOLOv11n模型时可达113FPS,显著优于传统方案。开发时需注意模型量化部署技巧,如INT8量化需500+张校准图片覆盖多光照条件,避免准确率下降。设备扩展性方面,PMOD接口支持热成像、ToF传

weixin_30819085的博客 688

Ubuntu离线情况下安装gcc编译器

Ubuntu离线情况下安装gcc编译器1.系统版本2.安装说明3.异常处理 1.系统版本 (1)Ubuntu系统版本:20.04.1LTS; (2)gcc编译器版本:gcc-9.3.0(下载链接为https://download.youkuaiyun.com/download/qq_18350351/13762214); 当前可找到的gcc最新版本为gcc-10,但是笔者在安装gcc-10版本时发现一些依赖项无法安装,因此选取了gcc-9版本。如果是在联网情况下安装,直接使用apt相关的安装指令即可。 2.安装说明 安

GreenHand的博客 3932

流密码基础(三):非线性布尔函数与组合生成器

本文探讨了流密码中非线性布尔函数与组合生成器的设计与安全性问题。文章首先指出LFSR(线性反馈移位寄存器)虽然具有优良的统计特性,但其线性结构易受BM算法攻击,导致密钥流被预测。为解决这一问题,提出在LFSR输出端引入非线性布尔函数作为"非线性外壳"的组合生成器架构。

Sagittarius_A*的博客 400

【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍 (1)TX方向 麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。 (2)RX方向 音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。 二、分析步骤 1...

crow_ch的博客 5971

一文读懂流密码

本文从流密码“逐比特异或”的核心思想切入,追溯了从弗纳姆电传加密到OTP绝对安全、再到工程化LFSR的历史演进。重点解析了ZUC算法三部件——LFSR(基于有限域GF(2³¹−1)的本原多项式保证496bit周期)、比特重组(时空双维度打散线性结构)、非线性函数F(S盒+循环移位+记忆单元注入非线性)的原理与协同机制,并梳理了密钥装入→32轮初始化→工作模式的完整运行流程,帮助读者系统理解现代流密码的设计逻辑。

lansoul1987的专栏 351

目前最新NIST随机数测试软件下载、安装、及使用教程

最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载...

Miracle.Zhao的博客 3万+

史上最小白之RNN详解

1.前言 网上目前已经有诸多优秀的RNN相关博客,但是我写博客的出发点主要是为了加深和巩固自己的理解,所以还是决定自己再进行一下总结和描述,如有不正确的地方欢迎指正~ 2.区分RNN 循环神经网络(Recurrent Neural Network),递归神经网络(Recursive Neural Network),你有没有发现他们的缩写都是RNN,那他们两个是同一回事儿吗?网上有一些博客把这两就当...

Tink1995的博客 4万+

轻量级流密码安全分析:Grain-128、Grain-128a与A2U2对照

流密码是面向低功耗与物联网场景的轻量级密码技术,其安全性并不只由密钥长度决定,而取决于状态更新、非线性输出与初始化扩散等结构细节。以LFSR/NFSR混合结构为例,初始化轮数不足或密钥调度过于单薄,会降低代数次数与扩散效率,使代数攻击、猜测-确定攻击和差分类分析获得可乘之机;在电子标签、传感器节点等门数受限应用中,面积优化更需以明确威胁模型和安全裕度为前提。围绕Grain-128、Grain-128a与A2U2的对照,可梳理从攻击前提、复杂度到实现侧IV/计数器管理的工程检查项。

weixin_29325007的博客 104

第28节:cesium 加载高程数据(含源码+视频)

cesium 加载高程(地形)数据

qq_29384639的博客 1740
上一篇: 格密码基础:最短向量与格基正交化
下一篇: 基于MATLAB的数值微分与拟合多项式求导
唠嗑!
唠嗑! 优质创作者: 信息安全技术领域 优质创作者: 信息安全技术领域
博客等级 码龄5年 3万+粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值