密码学复习——第二章(流密码)

简介: 密码学复习——第二章(流密码)

第二章:流密码

2.1 流密码的基本概念

流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如0,1数字),每一字符分别与密钥流对应字符作用,从而进行加密,解密时以同步产生的同样的密钥流实现。

  • 流密码的强度完全依赖于密钥流产生器所生成序列的随机性和不可预测性。
  • 因此核心问题是密钥流生成器的设计。
  • 保持收发两端密钥流的精确同步是实现可靠解密的关键。

二元加法流密码

image.png

加法流密码体制模型

image.png

流密码的分类

  • 同步流密码:如果密钥流产生的算法和产生的密钥序列都与明文或密文无关,我们称这类流密码为同步流密码。
  • 自同步流密码:密钥流产生的算法与明文相关,则所产生的密钥序列也与明文相关,称这类流密码为自同步流密码。

2.2 线性反馈移位寄存器

移位寄存器是流密码产生密钥流的一个主要组成部分,GF(2)上一个n级反馈移位寄存器由n个二元存储器与一个反馈函数组成。

  • 4位反馈移位寄存器图示

image.png

在任一时刻,这些级的内容构成该反馈移位寄存器的状态,每一状态对应于GF(2)上的一个n维向量,共有2^n种可能的状态。

image.png

经典例题

image.png

这里的输出序列指的是a1切记!

线性反馈移位寄存器:实现简单、速度快、有较为成熟的理论,是构造密钥流生成器的最重要的部件之一。

image.png

LFSR的性质

  • 输出序列的性质:完全由其反馈函数决定。
  • n级LFSR状态数:最多有2^n个
  • 输出序列的周期 = 状态周期 <= 2^n - 1
  • 选择合适的反馈函数可使序列的周期达到最大值2^n - 1,周期达到最大值的序列成为m序列

image.png

image.png

2.4 m序列的伪随机性

提到这里,我们要再次强调以下什么是m序列,m序列指的是能够使的输出序列的周期达到最大值2^n - 1的序列

  • 伪随机序列的定义

如果密钥流是随机的,要完全做到随机性是困难的,严格的说这样的序列不可能做到随机,只能要求截获比周期短的一段时不会泄露更多信息,这样的序列称为伪随机序列

  • 什么是游程?

image.png

image.png

相关文章
|
机器学习/深度学习 算法 JavaScript
密码学系列之四:一文搞懂序列密码
密码学系列之四:一文搞懂序列密码
1775 0
|
Kubernetes 网络协议 API
node节点加入k8s集群时报错:no such host
node节点加入k8s集群时报错:no such host
688 0
|
存储 安全 虚拟化
虚拟化数据恢复—虚拟机数据丢失导致Hyper-V服务瘫痪数据恢复
虚拟化数据恢复环境: 一台服务器上部署的Hyper-V虚拟化平台,虚拟机的硬盘文件和配置文件放在一台某品牌MD3200存储中。该存储中有一组由4块硬盘组建的raid5磁盘阵列,还有一块大容量硬盘存放虚拟机数据文件的备份。 虚拟化故障: MD3200存储中虚拟机数据文件丢失,导致Hyper-V服务瘫痪,虚拟机无法使用。
虚拟化数据恢复—虚拟机数据丢失导致Hyper-V服务瘫痪数据恢复
|
存储 算法 数据安全/隐私保护
基于A律压缩的PCM脉冲编码调制通信系统simulink建模与仿真
本项目展示了一种基于MATLAB 2022a的脉冲编码调制(PCM)算法,用于将模拟信号转换为数字信号。A律压缩是非均匀量化方法之一,适用于语音信号编码,能够提高信噪比和编码效率。核心代码已提供,并附有详细中文注释和操作视频。A律压缩通过调整量化间隔来适应人耳的听觉特性,减少量化噪声,实现高质量的语音通信。此技术广泛应用于电话通信、VoIP和数字音频处理等领域。
|
Rust Linux iOS开发
Rust 交叉编译 macOS 为 Linux 和 Windows
Rust 交叉编译 macOS 为 Linux 和 Windows
720 0
|
存储 安全 算法
深入解析Linux命令:cksum
`cksum`是Linux中用于计算文件CRC校验和及字节数的命令,有助于验证文件完整性。它的语法是`cksum [OPTION]... [FILE]...`,常用选项包括`-b`(按字节显示文件大小)、`-c`(检查校验和文件)等。通过示例展示了如何计算单个或多个文件的CRC,以及如何验证文件完整性。在系统管理和网络安全中,`cksum`可用于文件传输验证、备份检查和安全审计,确保文件未被篡改。
|
缓存 算法 Java
深入解析线程上下文切换的原理与优化策略
深入解析线程上下文切换的原理与优化策略
1830 0
|
存储 缓存 Linux
内存系列学习(三):ARM处理器地址变换过程
内存系列学习(三):ARM处理器地址变换过程
1569 0
|
JavaScript 前端开发 API
千呼万唤始出来,ElementPlus正式版正式发布,VueAdminWorkX第一时间升级更新
千呼万唤始出来,ElementPlus正式版正式发布,VueAdminWorkX第一时间升级更新
千呼万唤始出来,ElementPlus正式版正式发布,VueAdminWorkX第一时间升级更新
|
存储 算法 程序员
25【软件基础】面向对象分析与设计思想总结
`面向对象的本质`:通过对象之间的协作完成功能。
1175 0