应用密码学-2016-(第11讲)-流密码
流密码详解ppt课件
自同步流密码(SSSC)
密钥流生成器是一种有记忆变换器 密钥流与明文符号有关:
i 时刻的密文不仅取决于i 时刻的明文,而且与i 时刻 之前的l个明文符号有关 具有有限的差错传播 具有自同步能力 把明文每个字符扩散在密文多个字符中,强化了抗统 计分析的能力
问:SSSC是如何自同步的?请email回应。
i F ( i1, k ), zi f ( i, k ), ci E (zi,m i). i:密 钥 流 生 成 器 的 内 部 状 态 0 :密 钥 流 生 成 器 的 初 始 状 态 k : 种 子 (初 始 )密 钥 F :状 态 转 移 函 数 f :密 钥 流 生 成 函 数
k
密钥流生成器
11
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程
2.1 流密码一般模型
二元加法序列密码
明文序列: m= m1 m2 m3 …; 密钥序列: z= z1 z2 z3 …; 密文序列: c= c1 c2 c3 …; 加密变换: ci=zimi (i=1,2,3,…); 解密变换: mi=zici (i=1,2,3,…).
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程
2.2 线性反馈移位寄存器序列
伪随机序列 考虑二元序列: a={ai}=a0a1a2a3 ….
周期序列
定义2.1 设a= (a0, a1,…,ai,…)是一个二元序列,若 存在正整数N和非负整数m,使得ai+N=ai对于任意i m成立,则称二元序列a是终归周期序列。如果 m=0,则称序列a是严格周期序列,简称周期序列。
流密码名词解释
流密码名词解释流密码是一种用于保护信息安全的密码算法。
它通过对数据流逐位进行加密和解密,以确保数据在传输和存储过程中的保密性。
不同于传统的块密码算法,流密码是一种流式加密算法,它将明文划分为一个个的位,然后通过一系列的加密操作,将明文转化为密文。
流密码的基本原理是使用一个密钥生成一个伪随机的密钥流,再将密钥流与明文进行异或运算,得到密文。
解密时,使用相同的密钥再次生成密钥流,并将密文与密钥流进行异或运算,即可恢复出原始的明文。
流密码的加密速度通常非常快,并且不受明文长度的限制。
它可以用于各种不同的应用场景,包括通信、存储和计算机网络等。
对于需要实时传输和处理大量数据的系统,流密码是一种非常有效的加密方式。
流密码具有以下几个重要的特点:首先,流密码具有良好的扩展性。
它可以方便地应用于各种不同的通信协议和网络环境,无论是传统的有线网络还是无线网络。
其次,流密码的安全性与密钥的选择和管理密切相关。
密钥的强度和安全性直接影响着流密码算法的安全性。
因此,在使用流密码时,必须注意密钥的保密性和更新策略,以及密钥生成算法的安全性。
再次,流密码对明文的保密性非常高。
由于流密码是逐位进行加密的,所以即使部分明文被攻击者获取,也无法得到完整的明文信息。
最后,流密码具有较低的存储空间需求。
由于流密码是逐位加密的,不需要额外的存储空间来存储加密后的数据。
这使得流密码在资源受限环境下的应用更加方便。
综上所述,流密码是一种有效的加密算法,能够在信息传输和存储过程中提供良好的保密性和安全性。
但是,在使用流密码时,我们仍然需要密切关注密钥的安全性和密钥管理的问题,以确保数据的保密性。
流密码加密原理
流密码加密实验【实验原理】流密码(stream cipher)也称为序列密码,每次加密处理数据流的一位或一个字节,加解密使用相同的密钥,是对称密码算法的一种。
1949年Shannon证明只有一次一密密码体制是绝对安全的,为流密码技术的研究提供了强大的支持,一次一密的密码方案是流密码的雏形。
流密码的基本思想是利用密钥K产生一个密钥流k1k2…k n对明文流M=m1m2…m n进行如下加密:C=c1c2…c n=E k1(m1)E k2(m2)…E kn(m n)。
若流密码所使用的是真正随机产生的、与消息流长度相同的密钥流,则此时的流密码就是一次一密的密码体制。
流密码分为同步流密码和自同步流密码两种。
同步流密码的密钥流的产生独立于明文和密文;自同步流密码的密钥流的产生与密钥和已经产生的固定数量的密文字符有关,即是一种有记忆变换的序列密码。
一、RC4流密码算法RC4是1987年Ron Rivest为RSA公司设计的一种流密码,是一个面向字节操作、具有密钥长度可变特性的流密码,是目前为数不多的公开的流密码算法。
目前的RC4至少使用128为的密钥。
RC4的算法可简单描述为:对于n位长的字,有共N=2n个可能的内部置换状态矢量S=S[0],S[1],…,S[N-1],这些状态是保密的。
密钥流K由S中的2n个元素按一定方式选出一个元素而生成,每生成一个密钥值,S中的元素就重新置换一次,自始至终置换后的S包含从0到N-1的所有n比特数。
RC4有两个主要算法:密钥调度算法KSA和伪随机数生成算法PRGA。
KSA算法的作用是将一个随机密钥变换成一个初始置换,及相当于初始化状态矢量S,然后PRGA利用KSA 生成的初始置换生成一个伪随机数出序列。
密钥调度算法KSA的算法描述如下:fori=0to N-1doS[i]=i;j=0;fori=0to N-1doj=(j+S[i]+K[i mod L])mod N;swap(S[i],S[j]);初始化时,S中元素的值被设置为0到N-1,密钥长度为L个字节,从S[0]到S[N-1]对于每个S[i]根据有密钥K确定的方案,将S[i]置换为S中的另一个元素。
流密码的应用方案
流密码的应用方案1. 简介流密码(Stream cipher)是一种加密算法,它基于根据密钥生成的伪随机比特流对明文逐比特加密。
相对于分组密码,流密码具有高加密速度和低处理延迟的特点。
流密码的应用广泛,包括终端设备加密通信、无线通信、互联网通信等领域。
本文将介绍流密码的应用方案,并分析它在以下三个方面的具体应用:网络通信加密、无线传感器网络和物联网设备。
2. 网络通信加密流密码在网络通信加密方面有着重要的应用。
流密码可以通过在发送方和接收方使用相同的密钥和伪随机比特流,将明文流转化为密文流。
这种加密方式保证了高效且安全的通信过程。
在网络通信加密中,流密码常用于数据包加密、安全连接建立等方面。
2.1 数据包加密数据包加密是一种常见的网络通信加密方式,通过对每个数据包进行加密,可以阻止未经授权的用户访问和篡改数据包。
流密码可以实现对数据包的实时加密,确保数据的机密性和完整性。
对于每个数据包,发送方使用密钥和伪随机序列对明文进行加密,而接收方则使用相同的密钥和伪随机序列进行解密。
通过流密码的加密机制,数据包在传输过程中得到保护。
2.2 安全连接建立在网络通信中,安全连接建立是一项关键任务。
通过建立安全连接,能够保证通信双方之间的机密性和完整性。
流密码可以用于生成加密密钥,确保建立的连接具有高强度的加密保护。
一种常见的安全连接建立方法是使用流密码生成所需的初始向量和会话密钥,进而生成安全连接所需的密钥材料。
通过流密码的应用,可以有效地建立安全且可靠的网络连接。
3. 无线传感器网络无线传感器网络是由大量分布在广域范围内的传感器节点组成的网络。
流密码在无线传感器网络中的应用有助于提供数据的安全传输,并减少能耗。
3.1 数据传输安全无线传感器网络中,传感器节点负责采集环境数据并将其传输到汇聚节点或基站。
传感器节点之间的通信涉及到敏感数据,如温度、湿度等。
为了保障数据的机密性,流密码可以被应用于无线传感器网络中的数据传输过程。
流密码详解
15
2.2 线性反馈移位寄存器序列
伪随机序列
序列的游程
定义2.2 设a= (a0, a1,…,ai,ቤተ መጻሕፍቲ ባይዱ)是一个周期为N的二元序列, 在一个周期内连续出现的最多的符号“0”(或1)的串, 称为0(或1)的一个游程。在一个游程中,0(或1)的 个数称为该游程的长度。(讨论:该定义有否歧义?)
例: 在序列 k={ki}=001110100000111100中, 有 长为1的0游程一个; 长为4的0游程一个; 长为5 的0游程一个; 长为1的1游程一个; 长为3的1游 程一个; 长为4的1游程一个.
4
课堂讨论:
加密函数和解密函数都用异或运算,行不行?
什么样的加解密算法是高效、安全的?Why? 实用的流密码方案中,加解密算法是什么?
5
2.1 流密码一般模型
流密码原理框图
k 安全信道 k
密钥流 生成器
密钥流 生成器
zi mi E ( zi , m i ) ci 信道 ci
zi D(zi,ci) mi
6
2.1 流密码一般模型
流密码体制的安全性 当流钥序列是具有均匀分布的离散无记 忆随机序列时, 在理论上是不可破译的. 实用的困难性
真正的具有均匀分布的随机序列是不可能重 复产生的. 密钥序列长(至少与明文序列一样长), 其管理 (存储、分配)难.
设计流密码体制的关键问题 设计产生密钥序列的方法.
16
2.2 线性反馈移位寄存器序列
伪随机序列
序列的相关函数
定义2.3 设a=(a0,a1,…,aN1)和b=(b0,b1,…,bN1)是两个 周期为N的二元周期序列,其相关函数定义为
流密码
2019/1/11
3
x1
xm
k
k
y1
xi
无记忆元件
内部记忆元件
yi
yl
y E k x
yi E z xi
31
• 定理2.2 p(x)|q(x)的充要条件是G(p(x)) G(q(x)) – 上述定理说明可用n级LFSR产生的序列,也 可用级数更多的LFSR来产生。 • 定义2.2 设p(x)是GF(2)上的多项式,使 p(x)|(xp-1)的最小p称为p(x)的周期或阶。 • 定理2.3 若序列{ai}的特征多项式p(x)定义在 GF(2)上,p是p(x)的周期,则{ai}的周期r | p。 – n级LFSR输出序列的周期r不依赖于初始条 件,而依赖于特征多项式p(x)。
2019/1/11 20
• 初始状态由用户确定, • 当第i个移位时钟脉冲到来时,每一级存储 器ai都将其内容向下一级ai-1传递,并计算 f(a1,a2,…,an)作为下一时刻的an。 • 反馈函数f(a1,a2,…,an)是n元布尔函数,即 n个变元a1,a2,…,an可以独立地取0和1这两 个可能的值,函数中的运算有逻辑与、逻 辑或、逻辑补等运算,最后的函数值也为 0或 1。
1 0 1 1 1 0
即输出序列为101110111011…,周期为4。
2019/1/11 23
• 如果f(a1,a2,…,an)是a1,a2,…,an的线性函数, 则称之为线性反馈移位寄存器LFSR (linear feedback shift register)。此时f 可写为 f(a1,a2,…,an) =cna1 cn-1a2 … c1an 其中常数ci=0或1 2加法。ci=0或1 可用开关的断开和闭合来实现 • 输出序列{at}满足 an+t=cnat cn-1at+1 … c1an+t-1 其中t为非负正整数。
流加密
类型
同步流密码
自同步流密 码
在同步流密码中,独立于明文和密文消息生成一个伪随机数字流,然后与明文(加密)),并且使用独占或操作(XOR)将密钥流与明文结合。这被称为二 元加法流密码。
在同步流密码中,发送方和接收方必须准确地进行解密才能成功。如果在传输过程中将数字添加到消息中或 从消息中删除数字,则同步丢失。为了恢复同步,可以系统地尝试各种偏移量以获得正确的解密。另一种方法是 在输出中的标准点处用标记标记密文。
流加密
对称加密算法
01 简介
03 类型
目录
02 过程 04 例子
流加密,是对称加密算法的一种,加密和解密双方使用相同伪随机加密数据流(pseudo-randomstream)作 为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流。实践中数据通常是一个位(bit)并用异 或(xor)操作加密。
内容扰乱系统(英语:Content Scramble System,CSS),是通过种子生成密钥,对DVD进行流加密的技术。 它也作为数字版权管理系统,曾应用于几乎所有的DVD光盘。CSS有一个40-bit的流加密算法,1996年首次投入使 用,1999年被首次破解。
CSS目前已被更高级的加密技术如运用于高清DVD(HD DVD)和蓝光的AES,AACS所取代。它们分别拥有56和 128个比特的密钥长度。
流密码-高中数学知识点讲解
流密码
1.流密码
【知识点的知识】
利用密钥产生一个密钥流Z=Z1Z2Z3…,然后利用此密钥流依次对明文X=X0X1X2…进行加密,这样产生的密码就是序列密码,也称流密码.密钥流由密钥流发生器f 产生:z i=f(k,s i),这里的s i 是加密器中存储器(记忆元件)在i 时刻的状态,k 是密钥.序列密码方案的发展是模仿“一次一密”系统的尝试.
序列密码也称为流密码,它是对称密码算法的一种.序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信.1949 年Shannon 证明了只有一次一密的密码体制是绝对安全的,这给序列密码技术的研究以强大的支持,序列密码方案的发展是模仿一次一密系统的尝试,或者说“一次一密”的密码方案是序列密码的雏形.如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制.若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密,加解密时一次处理明文中的一个或几个比特.
1/ 1。
古典密码和流密码的原理及应用
古典密码和流密码的原理及应用古典密码和流密码是密码学中两种基本的加密方法,它们都有着各自独特的原理和应用。
本文将深入介绍古典密码和流密码的原理,以及它们在实际中的应用。
古典密码是指一种使用简单的替换或排列规则对明文进行加密的加密方法。
古典密码包括凯撒密码、简单曹文和多替换密码等。
凯撒密码是最为典型的古典密码之一。
凯撒密码顾名思义,就是由古罗马军事家凯撒创立的一种密码算法。
凯撒密码的原理是将明文中的每个字母按照一个固定的偏移量进行位移,以得到密文。
若偏移量为3,那么明文中的字母A就被替换成D,B替换为E,以此类推。
而解密过程则是将密文中的字母按同样的偏移量进行逆向位移,得到原始明文。
古典密码的原理相对简单,适用于只具备基本加密需求的场景。
由于其固定的替换或者排列规则,古典密码容易受到密码分析的攻击,安全性较低。
在现代的密码保护领域,古典密码已经渐渐被更安全的加密方法所替代。
流密码是另一种加密方法,它采用了更为复杂的原理进行加密。
流密码的基本原理是利用一个伪随机序列对明文进行逐位的加密。
这个伪随机序列可以通过特定的算法以及一个密钥生成,而密钥则决定了伪随机序列的生成规则。
流密码的一个经典应用是RC4流密码算法。
RC4是由著名密码学家罗纳德·里维斯提出的一种流密码算法,它被广泛应用于SSL/TLS协议中,用于保护网络通信的安全性。
RC4算法使用了一个变长的密钥进行初始化,并以此生成一个伪随机的密钥流,再将这个密钥流与明文进行逐位的异或运算,得到密文。
解密过程与加密过程类似,将密文与生成的密钥流进行异或运算,还原出原始明文。
流密码相对于古典密码来说,具有更高的安全性。
因为伪随机序列的长度会根据密钥的长度而变化,使得密码分析者难以找到规律进行破解。
流密码的加密过程是逐位进行的,使得即使部分明文泄露,也无法得知整个密文的信息。
流密码则可以提供更高的安全性,适用于对信息保密要求较高的场景,比如网络通信和金融交易等领域。
流密码——精选推荐
流密码0000目前关于流密码的理论和技术已取得长足的发展。
同时密码学家也提出了大量的流密码算法,有些算法已被广泛地应用于移动通信、军事外交等领域。
流密码的原理:在流密码中,明文按一定长度分组后被表示成一个序列,并称为明文流,序列中的一项称为一个明文字。
加密时,先由主密钥产生一个密钥流序列,该序列的每一项和明文字具有相同的比特长度,称为一个密钥字。
然后依次把明文流和密钥流中的对应项输入加密函数,产生相应的密文字,由密文字构成密文流输出。
即设明文流为:M=m1m2…mi…密钥流为:K=k1k2…ki…则加密算法为:C=c1c2…ci…=Ek1(m1)Ek2(m2)…Eki(mi)…解密算法为:M=m1m2…mi…=Dk1(c1)Dk2(c2)…Dki(ci)…流密码与分组密码在对明文的加密方式上是不同的。
分组密码对明文进行处理时,明文分组相对较大。
所有的明文分组都是用完全相同的函数和密钥来加密的。
而流密码对明文消息进行处理时,采用较小的分组长度(一个分组称为一个字或一个字符),对明文流中的每个字用相同的函数和不同的密钥字来加密。
1.一次一密下面介绍一下一次一密密码体制。
以逐比特加密的一次一密为例,它要求对明文消息的每个比特做一次加密,而且加密每个明文比特时,都要独立随机地选取一个密钥比特。
无论明文的统计分布如何,一次一密都是无条件安全的,并且它使用的密钥量在所有无条件安全的密码体制中是最小的,因此,从这个意义上来说,一次一密无疑是最优的。
一次一密的一个明显缺点就是它要求密钥与明文具有相同长度,这增加了密钥分配与管理的困难,这一缺陷极大地限制了它在实际中的应用。
流密码采用了类似于一次一密的思想,但加密各明文字的密钥字不是独立随机选取的,而是由一个共同的较短的主密钥按一个算法产生的。
因此,它不具有一次一密的无条件安全性,但增加了实用性,只要算法设计得当,其安全性可以满足实际应用的需要。
流密码通常分为同步和自同步两类。
密码学-流加密法
ki = pi XOR ci 对于 LFSR ,秘钥串的各位由下式给出:
ai is one if there is an ith feedback link Same as XOR
Method (continued)
如果已知明文流的位数n等于或者大于2m(m 是LFSR的大小),那么 就可以通过求解如下 线形方程得出反馈向量分量ai):
T
h
e
e
n
d
位串匹配攻击法
破解基于 LFSR的流加密法可采用位串匹 配法,它需要: – 明文位串及相应的密文串 – LFSR 的大小(尝试几个合理值) – 找出反馈位,重构秘钥生成器
Method
攻击法假设有一段m位明文流 pi (i = 0 to m-1) 及对应 的m位明文流 ci (i = 0 to m-1). –可以得到秘钥串ki :
– 使用二进制位的一个特殊运算:异或逻辑运算 (XOR)
XOR Function
XOR 有两个输入,一个输出,如果两个输入 不同,则输出为1,真值表如下:
A B
XOR
F
A 0 0 1 1
B 0 1 0 1
F 0 1 1 0
A will be the plaintext and B the key
Using CAP
CAP 的随机测试
Stream Ciphers in CAP
CAP will implement a LFSR stream cipher
– First convert the plaintext to binary – Second, run the stream cipher option
第2章01--流密码(LFSR)
p称为p(x)的周期或者阶。
仅能被非0常数或自身的常数倍除尽,但不能被其他 多项式除尽的多项式称为不可约多项式。 若n次不可约多项式p(x)的阶为2n-1,则称p(x)是n 次本原多项式。
以本原多项式为连接多项式产生的非零序列均是m序列。
26
若n次不可约多项式p(x)的阶为2n-1,则称p(x)是n次本原多项式
5
流密码的分类(2)
自 同 步 流 密 码 SSSC(Self-Synchronous Stream Cipher) i 依赖于( kI,i-1,mi),使密文 ci 不仅与当前 输入mi有关,而且由于ki对i的关系而与以前的输 入 m1, m2 ,…,mi-1 有关。一般在有限的 n 级存储下 将与mi-1,…,mi-n有关。 优点:具有自同步能力,强化了其抗统计分析的 能力 缺点:有n位长的差错传播。
20
f (a1, a2 ,, an ) cn a1 cn1a2 c1an
21
线性反馈移位寄存器输出序列的性质完全由其反馈函数 决定。 n n级线性反馈移位寄存器最多有2 个不同的状态。 若其初始状态为0,则其状态恒为0。若其初始状态非0, 则其后继状态不会为0。 n 因此n级线性反馈移位寄存器的状态周期小于等于2 -1。 n 其输出序列的周期与状态周期相等,也小于等于2 -1。 只要选择合适的反馈函数便可使序列的周期达到最大值 2n-1,周期达到最大值的序列称为m序列。
若输入为 x1x2x1x3x3x1 初始状态s1
状态序列:s1s2s2s3s2s1s2
输出序列: y1
10
y1 y2
y1 y3 y1
作为FA的密钥流产生器
同步流密码的密钥流产生器可看为一 个参数为k的FA 输出集Z,状态集Σ,状态转移函数 φ和输出函数ψ,初态0
流密码
一、流密码的基本概念
1 n
n
∑
( − 1)
k l + k l+k
l =1
2011-12-31
13
一、流密码的基本概念
伪随机性: 伪随机性:密钥流的实用情形
实用的密钥流k不可能由完全随机的方式生成。出于 商用目的和标准化要求,密钥流k必须由确定的方 式自动生成。不过从攻击者的角度来看,密钥流k 很像真正的随机序列,称为伪随机序列。 伪随机序列应该满足前面提到的性质(1’)(2’) (3’)。这三条性质就是著名的Golomb随机性假 设。
2011-12-31 23
二、线性反馈移位寄存器序列
定义 一个周期序列作为一个线性反馈移位寄存器序列, 它的最小阶数称为它的线性复杂度。对应于这个阶的 特征多项式称为该序列的极小多项式. (注意 一个周期序列作为一个线性反馈移位寄存器序 列,可以有很多不同的阶数,其中它的最小周期就是 它的一个阶数。因此,周期序列的线性复杂度一定不 超过它的最小周期) 所谓序列的综合,就是寻找周期序列的线性复杂度n, 并且求出极小多项式f(x)。 序列的综合的两种最著名的算法是B-M算法和GamesChan算法。
输出
1 0 1 1 1 0 …
2011-12-31
17
二、线性反馈移位寄存器序列
线性反馈移位寄存器序列
若比特流k由如下的方式生成: (1) 选择长度为n的比特串k1k2k3… kn; (2)当l>n后,kl=c1kl-1 ‘+’ c2kl-2 ‘+’ … ‘+’ cnkl-n。 其中常数c1、 c2 、 … 、 cn都是比特值,且cn=1。
2011-12-31 30
古典密码和流密码的原理及应用
古典密码和流密码的原理及应用古典密码和流密码是密码学中常见的两种加密算法,它们都有各自的原理和应用。
在本文中,我们将从古典密码和流密码的基本原理、特点和应用进行介绍。
一、古典密码的原理及应用1. 古典密码的原理古典密码是指使用传统的加密技术来实现信息加密的方法,其基本原理是通过替换或置换明文中的信息来隐藏其真实含义。
古典密码包括凯撒密码、埃尼格玛密码等。
以凯撒密码为例,其原理是将明文按照一定的位移量进行移位,然后将移位后的字母作为密文输出。
比如将A替换成D,B替换成E,以此类推。
这样即使密文被截获,也需要知道移位的位移量才能还原出明文。
2. 古典密码的应用古典密码多用于古代的军事和外交领域,用来保护国家机密以及军事指令等重要信息。
近年来,古典密码也被一些爱好者用来进行通信加密等娱乐用途。
1. 流密码的原理流密码是一种利用伪随机数发生器生成密钥流,再用该密钥流与明文进行“异或”运算得到密文的加密方法。
其本质是一种通过伪随机数对明文进行混淆的加密技术。
对于流密码,其加密过程即将明文按位与密钥流进行异或操作,得到密文。
解密时同样将密文按位与密钥流进行异或操作,即可得到原来的明文。
2. 流密码的应用流密码广泛应用于现代通信领域,特别是在无线通信和互联网通信中。
流密码因为其运算速度快、加密强度高和可扩展性强,在实际应用中得到了广泛的应用。
三、古典密码和流密码的特点比较1. 安全性古典密码由于使用的密钥空间较小,容易被暴力破解攻击。
而流密码使用的密钥流是一个伪随机数列,其安全性相对较高,因此在加密强度上有着明显的优势。
2. 速度古典密码的加密和解密速度通常较快,特别是对于简单的置换密码。
流密码的加密和解密速度也不慢,因为其基于异或操作,计算速度也相对较快。
3. 可拓展性古典密码在使用新的密钥时需要重新构造密码表,而流密码在生成新的密钥流时只需要改变密钥生成算法的种子即可,因此在可扩展性上流密码拥有更大的优势。
流密码
线性反馈移位寄存器简图
f (ai, ai+1, …ai+n-1)
ai+n-1 xn
ai+n-2 xn-1
ai+1 x2
ai ai-1.,…,a1 x1
线性反馈移位寄存器
f(x)为线性函数,输出序列满足下式
0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
问题
• n=4的LFSR,输出序列满足ki-4+ki-1 + ki =0,初始状态为0001。 • 不同时刻的状态及最终输出序列是怎样?
m序列
• 周期为2n-1的LFSR序列称为m序列。
流密码的基本概念
• 消息流:m=m1m2…mi,其中miM。 • 密文流: • 密钥流:{ki},i0。
c=c1c2…ci=Ek1(m1)Ek2(m2)… Eki(mi),ciC。 一个完全随机的非周期序列,可以实现一 次一密体制。但需要无限存储单元和复杂 的输出逻辑函数f。 加法流密码: ci=Eki(mi)=mi ki
多路选择序列
可供选择的输入
…
地 a0 (t ) 址 a1 (t ) 控 制 am 1 (t )
b0 (t )b (t )bn 1 (t ) 1
多路选择器 多路选择密码
Geffe生成器
• Geffe序列生成器由3个LFSR组成,其中 LFSR2作为控制生成器使用,如下图所示。
i 1
多项式的周期
• 多项式f(x)的周期p为使f(x)除尽xn-1的最 小整数n的取值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
…
…
滚动密钥生成器
滚动密钥生成器
x i
z i
y i
z i
x i
e z i (x i )
图3.20 同步流密码体制模型
e z i (y i )
流密码的结构
• 典型的流密码每次加密一个字节的明文; • 密钥输入到一个伪随机数发生器,产生一串随机 的8比特数; • 发生器的输出称为密钥流; • 11001100 明文 • ⊕01101100 密钥流 • 10100000 密文 • 解密使用相同的伪随机序列: • 10100000 密文 • ⊕01101100 密钥流 • 11001100 明文
S 5 0 1 1 2 2 3 3 4 4 0 5 6 6 7 7
j:=(j+s(i)+k(i)) mod 8;
RC4算法
索引i加1后,j的下一个值为: j=(5+S(1)+K(1)) mod 8=(5+1+6) mod 8=4 即将S数据表的S(1)和S(4)互换:
S 5 0 4 1 2 2 3 3 1 4 0 5 6 6 7 7
第 十 一 讲
流密码技术的发展及分类
• 序列密码是世界各国的军事和外交等领域中使用的主要密码体制之 一 • 2000年Profile 1月欧洲启动的 NESSIE工程中,流密码算法的设计与分析 1 (SW) Profile 2 (HW) 也列上了公开征集评测的日程;6个流密码算法(Leviathan、UIi一 128、BMGL、SOBER—t32、SOBER—tl、SNOW)进入了第二阶 CryptMT (CryptMT Version 3) DECIM (DECIM v2 and DECIM-128) 段评估,但是因为他们都不符合 NESSIE 的征集准则而最终全部落 选 Dragon Edon80 • 2003年3月,日本政府的密码研究与评估委员会( CRYPTREC)推 荐了三个流密码算法:MUGI、MULTI-S01和RC4-128. HC (HC-128 and HC-256) F-FCSR (F-FCSR-H v2 and F-FCSR-16) • ECRYPT是欧洲FP6下的IST 基金支持的一个为期四年的项目,该项 目启动于2004年2月,STVL (Symmetric techniques virtual lab LEX (LEX-128, LEX-192 and LEX-256) Grain (Grain v1 )正在进行流密码算法的公开征集评估活动 . and Grain-128) 征集活动到 2005 年4月29 日结束,征集到了 34 个流密码算法 . 2.0) NLS (NLSv2, encryption-only) MICKEY (MICKEY 2.0 and MICKEY-128 2007年4月开始进入第三轮评估,16个算法进入第三轮评估. Rabbit Moustique /stream/phase3list.html Salsa20 Pomaranch (Pomaranch Version 3) 2008年4月8个算法成为推荐算法 . 2008年8月更新为7个推荐算法. Trivium SOSEMANUK
流密码的优缺点
• 和分组密码相比,速度更快,而且需要编写的代 码少; • 对不同的明文需要使用不同的流密钥,否则容易 破解; • 适用于需要对数据流进行加密解密的应用,如通 过一个数据通信信道或网页浏览连接; • 不适用于处理成块的数据:文件传输、电子邮件 和数据库。
流密码与分组密码区别:
流密码几乎总是比分组密码快,通常使用的代 码也比分组密码少得多。如最常用的流密码 RC4,大概比最快的分组密码至少快两倍 。 RC4可以用30行代码写成 , 而大多数分组密码需要数百行代码。
i=0 j=0 重复下述步骤,直至获得足够长度的密钥流: i=i+1 mod 256 j=j+S[i] mod 256 互换s[i]与s[j] t=S[i]+S[j] mod 256 K=S[t]
RC4算法
假如使用3位(从0到7)的RC4,其操作是对8取模(而 不是对256取模)。数据表S只有8个元素,初始化为:
流密码和RC4
• 流密码的结构 • RC4算法
RC4
• RC4是Ron Rivest为RSA公司在1987年设计的一 种流密码; • 是一个可变密钥长度,面向字节操作的流密码; • 算法以随机置换作为基础,密码的周期大于10100 。 • 每输出一个字节的结果仅需要8条到16条机器操作 指令。 • 可能是应用最广泛的流密码,被应用于SSL/TLS 标准。
第 十 一 讲
种子密钥
密钥流生成器
k1 k2
m2 m1
密文
c2 c1
解密过程
流密码的思想起源
• 设明文为m=m1m2…
mi∈GF(2), i>0 ki∈GF(2), i>0 ci∈GF(2), i>0 i>0 i>0
第 十 一 讲
• 设密钥为k=k1k2… • 设密文为c=c1c2…
• 则加密变换为ci= mi + ki (mod 2) • 则解密变换为mi= ci+ ki (mod 2)
流密码的思想起源
第 十 一 讲
• 思想起源:20世纪20年代的Vernam体制, 即 “一次一密”密码体制。香农利用信息论证明 随机序列计算机无法实现 “一次一密”密码体制在理论上不可破译 • 由有限的种子密钥生成无限长的随机密钥序列 • 流密码研究内容——设计安全高效的伪随机序列 发生器 评测标准:线性复杂
j=0 对i=0,…,255做 j=j+S[i]+K[i] mod 256 互换s[i]与s[j]
伪随机生成算法(PRGA, Pseudo Random Generation Algorithm)
• 从内部状态中选取一个随机元素作为密钥流中的一个字节, 并修改内部状态以便下一次选择。 • 选取过程取决于索引值i和j,它们的初始值均为0。
应用密码学
计算机科学与技术学院 温蜜
第11讲流密码相关内容
主要内容
第 十 一 讲
• • • • 流密码(序列密码)的思想起源 流密码技术的发展及分类 基于移位寄存器的流密码算法 RC4流密码算法
流密码的思想起源
第 十 三 讲
种子密钥
密钥流生成器
k1 k2
c1 c2
明文
m2 m1
加密过程
流密码的思想起源
S 0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
选取一个密钥,该密钥是由0到7的数以任意顺序组成的。例 如选取5、6和7作为密钥。该密钥如下填入密钥数据表中:
K 5 0
6 1
7 2
5 3
6 4
7 5
5 6
6 7
RC4算法
密钥调度算法KSA
然后利用如下循环构建实际的S数据表: j:=0; for i=0 to 7 do swap(S(i),S(j)); 该循环以j=0和i=0开始。使用更新公式后j为: j=(0+S(0)+K(0)) mod 8=5 S数据表的第一个操作是将S(0)与S(5)互换。
流密码技术的发展及分类
k k
密钥流 生成器 z i E(z ,m ) i i c i 信道 c i
密钥流 生成器 z E(z ,m ) i i
i
m i
• 自同步流密码的优点是即使接收端和发送端不同步,只要 接收端能连续地正确地接受到n个密文符号,就能重新建 立同步。因此自同步流密码具有有限的差错传播 ,且分析 较同步流密码的分析困难得多
度高;周期大 密钥流生成、存储和分发 困难
流密码的思想起源
Golomb伪随机性测试 周期为r的0-1序列的随机性公设如下: • r是奇数,则0-1序列{si}的一个周期内0的个数比1 的个数多一个或少一个;若r是偶数,则0的个数与1的 个数相等. • 在长度为r的周期内,长为1的游程的个数为游程总数 的1/2,长为2的游程的个数占游程总数的1/22,…, 长 为c的游程的个数占总游程的1/2c.而且对于任意长度 ,0的游程个数和1的游程个数相等. 例:0110111101中,4个游程长度为1,1个游程长度为2 ,1个游程长度为4
基于移位寄存器的流密码算法
• 初态为100放入寄存器,输出序列情况如下
状态 100 110 111 011 101 010 001 100 输出位 0 0 1 1 1 0 1 0
b3 b2 b1
00111010011101…
f(b1,b2,b3)=b1⊕b3
输出序列的周期为7
目前大多数研究成果都是关于同步流密码的。
RC4算法
• 主要包括两个步骤:
– 密钥调度算法(KSA,Key-Scheduling Algorithm) – 伪随机生成算法(PRGA, Pseudo Random Generation Algorithm)
密钥调度算法(KSA,Key-Scheduling Algorithm)
• 设置内部状态(s[0],…,s[255])的随机排列。 • 开始时,内部状态中的元素被初始化为0~255,既 s[i]=i(i=0,…,255); • 密钥长度可变,设为L个字节(K[0],…,K[L-1]); • L一般为5~32之间,用L个字节不断重复填充,直至得到 K[0],…,K[255],用于对内部状态S进行随机化。
基于移位寄存器的流密码算法
• 反馈移位寄存器(feedback shift register,FSR)是由n 位的寄存器和反馈函数(feedback function)组成,如 下图所示,n位的寄存器中的初始值称为移位寄存器的 初态. • 工作原理:. 反馈函数f是n个变元(b1,b2,…,bn)的布尔 函数. 移位寄存器根据需要不断地进动m拍,便有m位的 输出,形成输出序列a1,a2,…,am .