序列密码,最安全的密码体制

2023-11-02

序列密码体制是理论上最安全的密码体制,因为Shannon证明了一次一密密码体制是绝对安全的,每个字节明文都对应这一个字节的密钥,而序列密码的设计就是基于此而设计。

序列密码

明 文 、 密 文 、 密 钥 以 位 ( 或 者 字 符 ) 为 单 位 进 行 加 解 密 , 由 一 个 短 的 种 子 密 钥 , 通 过 算 法 产 生 密 钥 序 列 。 明文、密文、密钥以位(或者字符)为单位进行加解密,由一个短的种子密钥,通过算法产生密钥序列。

模 型 \color{blue}模型

在这里插入图片描述

序 列 密 码 的 分 类 \color{blue}序列密码的分类
  • 同步序列密码

要求密码和密钥必须同步,才能够还原正确的明文。
发送方与接收方的同步时钟出错,即密文在传输过程中有丢失的数据,而密钥正确导致解密时出现错位。
密 文 失 步 的 例 子 : 密文失步的例子:
密 文 : c 1 c 3 c 4 c 5 … … c n − 1 c n ⨁ 密 钥 : k 1 k 2 k 3 k 4 … … k n — — — — — — — — — — — — — — — — — 明 文 : m 1 错 误 错 误 错 误 错 误 错 误 错 误    \begin{matrix} & 密文:& c_1& c_3& c_4& c_5& ……& c_{n-1}& c_n \\ \bigoplus& 密钥:& k_1& k_2& k_3& k_4& ……& k_n\\ —&——&——&——&—— &—— &—— &—— &—— \\ &明文:&m_1&{\color{red}错误}&{\color{red}错误}&{\color{red}错误}&{\color{red}错误}&{\color{red}错误}&{\color{red}错误} \end{matrix}\\\; c1k1m1c3k2c4k3c5k4cn1kncn
c2的丢失导致后续的明文都错误。

因 此 同 步 序 列 密 码 对 失 步 特 别 敏 感 , 很 容 易 检 测 出 插 入 删 除 , 重 播 等 主 动 攻 击 \color{gray}因此同步序列密码对失步特别敏感,很容易检测出插入删除,重播等主动攻击

失步和错误是两个完全不同的概念,失步会导致之后的全都会错位,而错误只是使一个发生错误,其他的并不会发生错位。
假如c2错误,则仅会导致m2的错误。
密 文 : c 1 c 2 c 3 c 4 … … c n ⨁ 密 钥 : k 1 k 2 k 3 k 4 … … k n — — — — — — — — — — — — — — — 明 文 : m 1 错 误 m 3 m 4 … … m n    \begin{matrix} & 密文:& c_1& {\color{red}c_2}& c_3& c_4& ……& c_n \\ \bigoplus& 密钥:& k_1& k_2& k_3& k_4& ……& k_n\\ —&——&——&——&—— &—— &—— &—— \\ &明文:&m_1&{\color{red}错误}&m_3&m_4&……&m_n \end{matrix}\\\; c1k1m1c2k2c3k3m3c4k4m4cnknmn

  • 自同步序列密码

使密钥产生算法与明文和密文相关联,解决了“同步”问题。

模 型 : \color{blue}模型:

在这里插入图片描述
将一个单位(n位)的密文反馈给产生器,产生相应的k,
因此一个字节的错误会影响所在的一个单位(n位)范围内的错误,而过了这个单位,就不会再影响下一个单位了。

构造一个序列密码

利用移位寄存器产生序列密码的方法。

寄 存 器 分 为 线 性 寄 存 器 和 非 线 性 寄 存 器 。 \color{blue}寄存器分为线性寄存器和非线性寄存器。 线线

一般模型:

在这里插入图片描述
S 0 到 S n − 1 S_0到S_{n-1} S0Sn1构成了循环左移的寄存器,
S 0 S_0 S0经过 f f f函数的运算一方面作为密钥输出,另一方面再反馈给该寄存器,作为寄存器的 S n − 1 S_{n-1} Sn1 S n − 1 S_{n-1} Sn1变为 S n − 2 S_{n-2} Sn2,以达到循环,以产生循环不断的密钥序列。

f 函 数 称 为 反 馈 函 数 , 这 个 函 数 是 否 为 线 性 函 数 , 决 定 了 这 个 寄 存 器 是 线 性 的 还 是 非 线 性 的 。 f函数称为反馈函数,这个函数是否为线性函数,决定了这个寄存器是线性的还是非线性的。 f线线线

线性移位寄存器在已知明文攻击下是可破译的,所以应该尽力设计一种非线性的移位寄存器

线 性 移 位 寄 存 器 \color{blue}线性移位寄存器 线

f ( S 0 , S 1 , . . . , S n − 1 ) = g 0 × S 0 + g 1 × S 1 + g 2 × S 2 + … … + g n − 1 × S n − 1    f(S_0,S_1,...,S_{n-1}) = g_0×S_0+g_1×S_1+g_2×S_2+……+g_{n-1}×S_{n-1}\\\; f(S0,S1,...,Sn1)=g0×S0+g1×S1+g2×S2++gn1×Sn1
g 0 , g 1 , … … g n − 1 为 反 馈 系 数 , 其 值 要 么 为 0 , 要 么 为 1 。 相 当 于 一 个 开 关 。 g_0,g_1,……g_{n-1}为反馈系数,其值要么为0,要么为1。相当于一个开关。 g0,g1,gn101

一般模型:

在这里插入图片描述

线性移位寄存器加/脱密模型:

在这里插入图片描述
加 密 : \color{blue}加密: :
c 1 = m 1 ⨁ ∑ i = 0 n − 1 g i ⋅ s i    c_1 = m_1\bigoplus\sum_{i=0}^{n-1}g_i·s_i\\\; c1=m1i=0n1gisi
c 2 = m 2 ⨁ ∑ i = 0 n − 2 g i ⋅ s i ⨁ g n − 1 ⋅ c 1    c_2 = m_2\bigoplus\sum_{i=0}^{n-2}g_i·s_i\bigoplus g_{n-1}·c_1\\\; c2=m2i=0n2gisign1c1
c 3 = m 1 ⨁ ∑ i = 0 n − 3 g i ⋅ s i ⨁ g n − 2 ⋅ c 1 ⨁ g n − 1 ⋅ c 2    c_3 = m_1\bigoplus\sum_{i=0}^{n-3}g_i·s_i\bigoplus g_{n-2}·c_1\bigoplus g_{n-1}·c_2\\\; c3=m1i=0n3gisign2c1gn1c2
… …    ……\\\;
c n = m 1 ⨁ g 0 ⋅ s 0 ⨁ ∑ i = 1 n − 1 g n − i ⋅ c i    c_n = m_1\bigoplus g_0·s_0\bigoplus \sum_{i=1}^{n-1}g_{n-i}·c_i\\\; cn=m1g0s0i=1n1gnici

解 密 过 程 同 加 密 过 程 相 同 。 \color{blue}解密过程同加密过程相同。

认 知 有 限 , 请 批 评 指 正 。 \color{gray}认知有限,请批评指正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

序列密码,最安全的密码体制 的相关文章

  • pdf加密在线破解

    http www unlock pdf com
  • wsl+ zsh + oh-my-zsh配置

    wsl zsh oh my zsh配置 经常在windows平台办公 配置一些开发环境时在Linux中会比较简单 参照了在Linux服务器中的配置 同步在WSL中 测试平台 WIN10 X64专业版 V1903 只支持WSl V1 WSL
  • Unity编辑器扩展之Excel表转CS文件(C#类)

    前言 这里我们需要理解动态生成CS文件的一些基础 https blog csdn net qq 37254346 article details 103216761 怎样读取Excel表这里就不说了 Excel表转CS文件 这是我们需要转的
  • EEPROM芯片(24c02)使用详解(I2C通信时序分析、操作源码分析、原理图分析)

    1 前言 1 本文主要是通过24c02芯片来讲解I2C接口的EEPROM操作方法 包含底层时序和读写的代码 2 大部分代码是EEPROM芯片通用的 但是其中关于某些时间的要求 是和具体芯片相关的 和主控芯片和外设芯片都有关系 需要具体分析
  • Android中mmap原理及应用简析

    1 mmap介绍 mmap是一种内存映射文件的方法 即将一个文件或者其他对象映射到进程的地址空间 实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对应关系 实现这样的映射关系后 进程就可以采用指针的方式读写操作这一块内存 而系统会自动
  • 网络参考模型

    网络参考模型 1 OSI参考模型 1 1 产生背景 在网络发展的早期时代 网络技术的发展变化速度非常快 计算机网络变得越来越复杂 新的协议和应用不断产生 而网络设备大部分都是按厂商自己的标准生产 不能兼容 很难相互间进行通信 为了解决网络之

随机推荐

  • 【python数据挖掘课程】十七.社交网络Networkx库分析人物关系(初识篇)

    这是 Python数据挖掘课程 系列文章 也是我大数据金融学院上课的部分内容 本章主要讲述复杂网络或社交网络基础知识 通过Networkx扩展包绘制人物关系 并分析了班级学生的关系学院信息 本篇文章为初始篇 基础文章希望对你有所帮助 如果文
  • 面试突击37:线程安全问题的解决方案有哪些?

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 线程安全是指某
  • anaconda切换为国内源

    查看配置文件 conda config show windows下 1 添加清华源 命令行中直接使用以下命令 conda config add channels https mirrors tuna tsinghua edu cn anac
  • Unity3d 物体速度快直接穿透墙体没有发生碰撞怎么办?

    1 Edit gt Project Setting gt Time 调节TimeManager的fixed Timestep
  • 如何在Linux虚拟机或服务器上发布或部署一个Spring项目

    1 开放端口 项目需要使用哪些端口就开放哪些端口 开放方法如下 1 进入控制台 选择安全组 2 点击蓝色连接 点击手动添加 3 添加需要开放的端口 2 安装服务器远程连接工具 Xshell 的安装使用 Xshell是一个终端模拟软件 换言之
  • stm32 USB HID单点触摸屏上报安卓触摸信号

    此工程在个人博客使用stm32配置自定义的HID设备基础上修改 在上个博客中我们介绍了如何使用stm32配置成自定义的HID设备 使用usb通讯 但是仅仅只是实现了基于USB的通讯 真正需要运用的时候还需要在此基础上定义我们自己的协议 然后
  • Unity接入越南社交软件Zalo登录之获取用户信息

    根据Unity接入越南社交软件Zalo登录 Android 之SDK接入接入SDK后 需要获取用户name id 头像 性别的信息 这一篇文章教你如何获取 根据官网文档获取用户信息API ZaloSDK Instance getProfil
  • CPU和线程概述、线程池如何合理设置

    目录 1 物理核 虚拟核 单核cpu和多核cpu 2 进程和线程 理解 对比 线程切换 线程开销 3 串行 并发 并行 串行 并发 并行 4 多核下线程数量选择 计算密集型 IO密集型 提高性能的方向 5 并发编程网上关于线程池的总结 参考
  • PAT A1039使用string也可以不超时!!!

    亲测 直接使用map
  • AJAX & Axios 总结

    AJAX Axios 1 AJAX 1 1 作用 与服务器进行数据交换 异步交互 异步和同步 1 2 基本使用 1 3 案例 SelectUserServlet register html register html中的
  • 层层逼近,了解Norm系需要解决的问题及其衍生变体

    引自 https zhuanlan zhihu com p 33173246 https blog csdn net xiao lxl article details 72730000 https github com switchable
  • linux audit日志通过syslog转发到远端

    流程 开启audit 配置rsyslog读audit log文件 转发到远端 1 开启audit 重启audit service auditd restart 确认audit log产生日志 cat var log audit audit
  • filebeat-sidecar模式采集pod应用日志

    文章目录 1 将镜像上传服务器 2 新增sidecar yml文件 3 kubectl部署应用 部署应用 查看应用部署情况 查看pod运行情况 查看容器 应用服务 运行情况 查看容器 filebeat 运行情况 查看pod日志 4 kafk
  • Linux内核设计与实现(五)

    文章目录 什么是内核同步 1 临界区和竞争条件 2 加锁 2 1 造成并发执行的原因 2 2 了解需要保护什么 3 死锁 4 争用和扩展性 内核同步方法 1 原子操作 1 1 原子整数操作 1 2 原子位操作 2 自旋锁 2 1 自旋锁方法
  • 时序预测

    时序预测 MATLAB实现基于TSO XGBoost金枪鱼算法优化XGBoost的时间序列预测 多指标评价 目录 时序预测 MATLAB实现基于TSO XGBoost金枪鱼算法优化XGBoost的时间序列预测 多指标评价 预测效果 基本介绍
  • java+selenium环境搭建

    目录 1 写在前面的话 2 下载谷歌驱动 3 添加Selenium依赖 我这里添加的是4 0 0版本的 4 在操作过程中可能出现的问题 解决办法 目录 1 写在前面的话 2 下载谷歌驱动 3 添加Selenium依赖 我这里添加的是4 0
  • MTK 平台Camera 驱动架构

    记录下 Mtk的Hal3架构笔记 正在进行学习 后续仍会更新 一 MtkCam3的代码结构及学习资料 mtk online里搜Camera 可以搜到很全面的Mtk Hal3的学习文档 Mtk整理的文档很棒 简单到位 https online
  • 嵌入式(线程的取消和互斥)

    线程的取消 意义 随时杀掉一个线程 int pthread cancel pthread t thread 注意 线程的取消要有取消点才可以 不是说取消就取消 线程的取消点主要是阻塞的系统调用 运行段错误调试 可以使用gdb调试 使用gdb
  • Linux之进程组、守护进程

    转自 https blog csdn net happiness llz article details 82749105 进程组 概念和特性 进程组 也称之为作业 BSD于1980年前后向Unix中增加的一个新特性 代表一个或多个进程的集
  • 序列密码,最安全的密码体制

    序列密码体制是理论上最安全的密码体制 因为Shannon证明了一次一密密码体制是绝对安全的 每个字节明文都对应这一个字节的密钥 而序列密码的设计就是基于此而设计 序列密码 明 文 密 文 密