一、流密码的基本概念

RC4(Rivest Cipher 4)是由密码学家 Ron Rivest(RSA 算法发明者之一)于 1987 年设计的对称流加密算法。它以简单、高效著称,曾广泛应用于网络安全协议(如 SSL/TLS、WEP/WPA),但因存在严重安全漏洞,现已逐渐被淘汰。

1.1 流密码概念

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

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

流密码框图如下:KG指密钥流生成器

  • 消息流:m=m_1m_2...m_i,其中m_i\in M
  • 密文流:c=c_1c_2...c_i...=E_{k_1}(m_1)E_{k_2}(m_2)...E_{k_i}(m_1)...,其中c_i\in C
  • 密钥流:\left \{ k_i \right \},i\geq 0
  • 加法流密码:c_i=E_{k_i}(m_i)=m_i\bigoplus k_i

密钥流:是一个完全随机的非周期序列,可以实现一次一密体制。但需要无限存储单元和复杂的输出逻辑函数f\sigma_i是第i时刻密钥流生成器的内部状态,以存储单元的存数矢量描述。

1.2 有限状态自动机FA

具有离散输入和输出(输入集和输出集均有限)的一种数学模型

  • 有限状态集S=\left \{ s_i|i=1,2,...,l \right \}
  • 有限输入字符集X=\left \{ X_i|i=1,2,...,m \right \}
  • 有限输出字符集Y=\left \{ Y_k|i=1,2,...,n \right \}
  • 转移函数Yj=f_1(s_j,X_j)S_{j+1}=f_2(s_j,X_j),第j时刻输入X_j\in X,输出Y_j\in Y;

例如2-1:S=\left \{ s_1,s_2,s_3 \right \},X=\left \{ X_1,X_2,X_3 \right \},Y=\left \{ Y_1,Y_2,Y_3 \right \}

转移函数:

f_1X_1X_2X_3
s_1Y_1Y_3Y_2
s_2Y_2Y_1Y_3
s_3Y_3Y_2Y_1
f_2X_1X_2X_3
s_1s_2s_1s_3
s_2s_3s_2s_1
s_3s_1s_3s_2

那么FA的状态图表示为:初始状态为s_1

若输入为x_1,x_2,x_1,x_3,x_3,x_1

那么输出为y_1,y_1,y_2,y_1,y_3,y_1,状态转移为s_2,s_2,s_3,s_2,s_1,s_2

1.3 作为FA的密钥流产生器

  • 同步流密码的密钥流产生器可看为一个参数为k的FA;
  • 输出集Z,状态集\sum,状态转移函数\varphi :\sigma_i\rightarrow \sigma_{i+1}和输出函数\Psi,初始状态\sigma_0
  • 设计的关键是\varphi\Psi

  • 具有非线性\varphi的的FA理论很不完善,通常采用线性\varphi以及非线性的\Psi
  • 可将此类产生器分为驱动部分和非线性组合部分
  • 驱动部分控制状态转移
  • 非线性组合部分提供统计特性良好的序列

两种目前最为流行和实用的密钥流产生器如图所示,其驱动部分是一个或多个线性反馈移位寄存器:

1.4 流密码的分类

1.4.1 同步流密码SSC

\sigma_i与明文消息无关,密钥流将独立于明文

同步流密码的特点

  • 对于明文而言,这类加密变换是无记忆的,但它是时变的;
  • 只有保持两端精确同步才能正常工作;
  • 对主动攻击时异常敏感而利于检测;
  • 无差错传播
1.4.2 自同步流密码SSSC

\sigma_i依赖于\left ( k_i,\sigma _{i-1},m_i \right ),使密文c_i不仅与当前输入m_i有关,而且由于k_i\sigma_i的关系而与以前的输入m_1,m_2,....m_{i-1}有关。一般在有限的n级存储下将与m_{i-1},...,m_{i-n}有关。

优点:具有自同步能力,强化了其抗统计分析的能力;

缺点:有n位长的差错传播;

如图所示:

1.5 序列的伪随机性

1.5.1 周期
  • 周期:序列\left \{ a_i \right \}_{i\geq 0},使对所有ia_{i+p}=a_i成立的最小整数p;
  • 长度为l的串\left ( a_t,a_{t+1}...a_{t+l-1} \right ),在序列\left \{ a_i \right \}的一个周期中,a_{t-1}\neq a_t=a_{t+1}=...=a_{t+l-1}\neq a_{t+l}

例如:长度为l的1串和长度为l的0串:...011...10...和...100...01...

    1.5.2 自相关函数

    GF(2)上周期为T的序列\left \{ a_i \right \}的自相关函数定义为:

    R(\tau )=\frac{1}{T}\sum_{k=1}^{T}(-1)^{a_k}(-1)^{a_k+\tau},0\leq \tau \leq T-1

    \tau =0时,R(\tau)=1;当\tau \neq 0时,称R(\tau )为异相自相关函数。

    1.5.3 Golomb随机性公设

    Golomb对伪随机周期序列提出了应满足的如下三个随机性公设:

    • 在序列的一个周期内,01的个数相差至多为1;
    • 在序列的一个周期内,长为1的游程占游程总数的\frac{1}{2} ,长为2的游程占游程总数的 \frac{1}{2^2} ,... ,长为i的游程占游程总数的 \frac{1}{2^{i}}, ,且在等长的游程中0的游程个数和1的游程个数相等;
    • 异自相关函数是一个常数;
    1.5.4 密码系统随机性条件

    一个伪随机序列应满足另外的三个条件:

    • \left \{ a_i \right \}的周期相当大。
    • \left \{ a_i \right \}的确定是计算上容易的。
    • \left \{ a_i \right \}由密文及相应的明文的部分信息,不能确定整个\left \{ a_i \right \}。(不可预测性)

    二、线性反馈移位寄存器序列

    2.1 相关概念

    • 级数(Stages):存储单元数;
    • 状态(State):n个存储单元的存数(a_i,...,a_{i+n-1})
    • 反馈函数:f(a_i,a_{i+1},...,a_{i+n-1})是状态(a_i,...,a_{i+n-1})的函数;
    • 线性反馈移位寄存器(LFSR):f为线性函数
    • 非线性反馈移位寄存器:f为非线性函数

    如图所示:n级反馈移位寄存器

    2.2 线性反馈移位寄存器

    如果移位寄存器的反馈函数f(a_1,a_2,...,a_n)a_1,a_2,...,a_n的线性函数,则称之为线性反馈移位寄存器LFSR,此时可写为f(a_1,a_2,...,a_n)=c_na_1\bigoplus c_{n-1}a_2\bigoplus ...\bigoplus c_1a_n;

    那么输出序列\left \{ a_i \right \}满足a_{n+t}=c_na_t\bigoplus c_{n-1}a_{t+1}\bigoplus ...\bigoplus c_1a_{n+t-1},其中t为非负正整数。

    2.2.1 最长周期

    在线性反馈移位寄存器中总是假定c_1,c_2,....,c_n中至少由一个不为 0,

    否则 f(a_1,a_2,...,a_n)=0,这样的话,在 n个脉冲后状态必然是 00....0,且这个状态必将一直持续下去。

    因此线性移位器序列的最长周期为2^n-1

    2.2.2 m序列
    • 2^n-1的LFSR序列称为m序列
    • nm序列\left \{ a_i \right \}循环地遍历所有2^n-1个非零状态,且任一非零输出皆为\left \{ a_i \right \}的移位,或为其循环等价序列;
    • 初始状态不同2^n-1个的m序列共有2^n-1个,他们的全体记为\Omega(f),他们只是状态前后次序之别。

    m序列满足Golomb的三个随机性公设

    2.2.3 特征多项式

    LFSR的特征多项式为:p(x)=1+c_1x+...+c_{n-1}x^{n-1}+c_nx^n

    三、非线性序列

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

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

    相关文章

    Drools‌业务引擎

    drools引擎使用 官网介绍 一、底层原理 ReteOO 网络 • 本质是一张“有向无环图”,节点类型: – Root / ObjectTypeNode:按 Java 类型分发事实 – AlphaNode:单对象约束(age > 18) – BetaNode&#xf…

    linux的磁盘满了清理办法

    今天测试系统的某个磁盘满了,需要看一下,可以看到的是,已经被占用百分之百了,某些服务运行不了了,需要清一下,这个我熟看哪个目录占用空间大cd / du -sh * ##找到占用最大,比如cd /home cd /hom…

    阿里开源项目 XRender:全面解析与核心工具分类介绍

    阿里开源项目 XRender:全面解析与核心工具分类介绍 在开源技术飞速发展的浪潮中,阿里巴巴推出的 XRender 作为专注于表单与数据可视化的开源框架,凭借独特的设计理念和强大功能,已在开发者群体中崭露头角。XRender 以 “协议驱动…

    网络安全初级--搭建

    一、Docker搭建apt-get install docker.io docker-compose 下载docker 配置docker代理 a.创建对应的以及对应的文件mkdir /etc/systemd/system/docker.service.dvim /etc/systemd/system/docker.service.d/http-proxy.confb.写入以下内容[Service]Environment"HTTP_PROXYh…

    文心一言4.5深度评测:国产大模型的崛起之路

    在⼤语⾔模型竞争⽇益激烈的今天,百度推出的文⼼⼀⾔4.5凭借其在中文处理上的独特优势,正在成为越来越 多开发者的选择。经过为期⼀周的深度测试和数据分析,我将从技术参数、性能表现、成本效益等多个维度, 为⼤家呈现这款国产⼤模…

    科技的成就(六十九)

    631、摄影术的先驱 1801年,德国物理学家约翰威廉里特(Johann Wilhelm Ritter)发现了紫外线。他注意到,太阳光谱中紫色一侧光谱之外的位置的不可见射线比紫光更快地使氯化银试剂变暗,他将其称为“化学射线”。后来这种射…

    用Golang gRPC异步处理:释放并发性能的秘密武器

    目录 章节一:为什么gRPC异步处理是并发性能的“加速器” 异步的本质:解放Goroutine的潜能 异步gRPC的适用场景 章节二:从零开始:搭建一个异步gRPC服务 准备工作:定义Protobuf 实现同步gRPC服务 迈向异步:初步改造 章节三:用Worker Pool模式榨干并发性能 Worker …

    MCP终极篇!MCP Web Chat项目实战分享

    目录 前言 MCP Web Chat 功能概要说明 MCP Web Chat代码调用结构说明 api动态生成MCP Server 方法一(之前的方法) 方法二(现在的方法) 做个比较 相关代码 相关问题解决说明 稳定性 由此引申而来的异步任务问题 MCP周…

    破解VMware迁移难题

    理解VMware迁移的常见挑战 VMware迁移过程中可能遇到的难题包括兼容性问题、性能瓶颈、数据完整性风险以及网络配置复杂性。识别这些问题是制定有效迁移策略的基础。 评估当前环境与目标环境 详细分析源VMware环境的配置、虚拟机数量、存储类型和网络拓扑。对比目标环境的硬件和…

    15-STM32F103RCT6的FLASH写入

    STM32F103RCT6的FLASH写入 1.//*******************************固件升级地址信息******************************// #define STM32_FLASH_BASE 0x08000000 //固件起始地址 #define FLASH_APP_ADDR 0x08005000 //APP开始地址 #define FLASH_PARA_ADDR 0x0803C000 //固件关…

    PPO:近端策略优化算法

    温馨提示: 本篇文章已同步至"AI专题精讲" PPO:近端策略优化算法 摘要 我们提出了一类新的用于强化学习的 policy gradient 方法,该方法在与环境交互以采样数据和使用随机梯度上升优化一个“代理”目标函数之间交替进行。与标准的…

    数据结构的算法分析与线性表<1>

    一、算法分析: 由于语句执行一次的实际所需时间与机器的软硬件有关,则算法分析是针对语句执行次数,而非执行时间。 时间复杂度 计算时间复杂度: 常量阶 如果算法中的n是固定的,或者说n是常数,或者时间复杂…

    esp32使用ESP-IDF在Linux下的升级步骤,和遇到的坑Traceback (most recent call last):,及解决

    因为之前使用的是ESP-IDF5.3版本。而5.3版本又不支持ESP32P4。而V5.4版本开始正式对P4的支持。所以我把ESP-IDF 升级到V5.4.2的release版本。 一、升级版本:【根据乐鑫官方的方式升级】ESP-IDF 版本简介 - ESP32-P4 - — ESP-IDF 编程指南 v5.4.2 文档 更新至一个稳…

    【算法】贪心算法:最大数C++

    文章目录前言题目解析算法原理字典序代码示例策略证明前言 题目的链接,大家可以先试着去做一下再来看一下思路。179. 最大数 - 力扣(LeetCode) 题目解析 还是老样子,把题目读懂,画出有用信息。 认真看示例&#xff0…

    网络安全职业指南:探索网络安全领域的各种角色

    本文旨在为对网络安全领域感兴趣的粉丝读者提供一份全面的职业指南。我们将探讨网络安全领域中各种不同的职业角色,包括其职责、所需技能以及职业发展路径,帮助你了解网络安全领域的职业选择,并为你的职业规划提供参考。网络安全职业概览 身处…

    Design Vision:显示扇入/扇出逻辑

    相关阅读 Design Visionhttps://blog.csdn.net/weixin_45791458/category_13006970.html?spm1001.2014.3001.5482 在使用Design Vision中查看示意图时,可以在示意图中查看所选单元(Cell)、引脚(Pin)、端口(Port)或线网(Net)的扇入/扇出逻辑。用户可以在当前激活的…

    13.7 Meta LLaMA2-Chat核心技术突破:三重强化学习实现91.4%安全评分,超越ChatGPT的对话模型架构全解析

    Meta LLaMA2-Chat核心技术突破:三重强化学习实现91.4%安全评分,超越ChatGPT的对话模型架构全解析 指令微调模型:LLaMA2-Chat 技术深度解析 LLaMA2-Chat 作为 Meta 推出的对话优化大模型,其技术实现展现了大模型对齐(Alignment)领域的前沿突破。与基础版 LLaMA2 相比,该…

    二维仿射变换笔记

    二维仿射变换笔记 1. 数学基础 1.1 变换矩阵 二维仿射变换使用3x3的齐次坐标矩阵表示: [a b tx] [c d ty] [0 0 1 ]其中: [a b; c d] 是线性变换部分,表示旋转、缩放和错切[tx; ty] 是平移部分最后一行 [0 0 1] 是齐次坐标的固定形式1.2 基本变换 1.2.1 平移变换 将点…

    创建自定义Dataset类与多分类问题实战

    codes 文章目录🌟 6 多分类问题与卷积模型的优化🧩 6.1 创建自定义Dataset类⚠️ 数据集特点:🔑 关键实现步骤:🛠️ 自定义Dataset类实现📊 数据集划分与可视化🧠 6.2 基础卷积模型&…

    用vue自定义指令设置页面权限

    1.按钮权限处理/*** v-hasPermi 按钮权限处理*/import store from /storeexport default {inserted(el, binding, vnode) {const { value } bindingconst all_permission "*:*:*";const permissions store.getters && store.getters.permissionsif (value…