3.2-序列密码
序列密码——精选推荐

序列密码序列密码引⾔序列密码⼜称流密码,它是将明⽂串逐位地加密成密⽂字符。
并有实现简单、速度快、错误传播少等特点。
密码按加密形式可分为:分组密码序列密码密码按密钥分为:对称密码(私钥密码)⾮对称密码(公钥密码)1. 加解密算法明⽂序列:m=m1m2……mn……密钥序列:k=k1k2……kn……加密:ci=mi+ki,i=1,2,3,……解密:mi=ci+ki,i=1,2,3,……注:+模2加,0+0=0,0+1=1,1+0=1,1+1=0例 m=101110011,c=m+k=111000110,m=c+k=101110011.1949年,Shannon证明了“⼀次⼀密”密码体制是绝对安全的。
如果序列密码使⽤的密钥是真正随机产⽣的,与消息流长度相同,则是“⼀次⼀密”体制。
但缺点是密钥长度要求与明⽂长度相同,现实情况中不可能实现,故现实中常采⽤较短的种⼦密钥,利⽤密钥序列⽣成器产⽣⼀个伪随机序列。
序列密码的原理分组密码与序列密码都属于对称密码,但两者有较⼤的不同:1. 分组密码将明⽂分组加密,序列密码处理的明⽂长度为1bit;2. 分组密码算法的关键是加密算法,序列密码算法的关键是密钥序列⽣成器。
3. 序列密码分类同步序列密码密钥序列的产⽣仅由密钥源及密钥序列⽣成器决定,与明⽂消息和密⽂消息⽆关,称为同步序列密码。
缺点:如果传输过程中密⽂位被插⼊或删除,则接收⽅与放送⽅之间产⽣了失步,解密即失败。
⾃动同步序列密码密钥序列的产⽣由密钥源、密钥序列⽣成器及固定⼤⼩的以往密⽂位决定,称为⾃同步序列密码(⾮同步密码)。
优点:如果密⽂位被删除或插⼊时,可以再失去同步⼀段时间后,⾃动重新恢复正确解密,只是⼀些固定长度的密⽂⽆法解密。
4. 密钥序列⽣成器的要求(key generation)种⼦密钥k的长度⾜够⼤,⼀般128bit以上,防⽌被穷举攻击;密钥序列{ki}具有极⼤的周期性现代密码机数据率⾼达10^8 bit/s,如果10年内不使⽤周期重复的{ki},则要求{ki}的周期T>=3*106或255;良好的统计特征。
序列密码——精选推荐

序列密码基本概念序列密码的加密⽤⼀个随机序列(密钥流)与明⽂序列按位叠加产⽣密⽂,⽤同⼀随机序列与密⽂序列叠加来恢复明⽂。
v由种⼦密钥通过密钥流发⽣器得到的密钥流为:K=k1k2...k n,则加密变换为:C=c1c2...c n其中c i=m i⊕k i i=1,2...n,那么解密变换就是m i=c i⊕k i i=1,2...n密码强度主要依赖于密钥流的安全性同步序列密码密钥序列的产⽣独⽴于明⽂消息和密⽂消息。
特点:⽆错误传播:各符号之间真正独⽴。
⼀个传播错误只影响⼀个符号,不会影响到后继的符号同步:发送⽅和接收⽅必须保持精确的、⽤同样的密钥并作⽤在同样的位置上,才能正确的解密⾃同步序列密码密钥序列是密钥及固定⼤⼩的以往密⽂的函数,依赖于密⽂。
特点:有限错误传播:设密钥序列产⽣器具有n位存储,则⼀个符号的传输错误只影响到后⾯n符号的解密⾃同步:只要接收⽅连续收到n个正确的密⽂符号,密钥序列产⽣器便会⾃动地恢复同步消除明⽂统计特性密钥流⽣成器和密钥流密钥流的要求极⼤的周期:随机序列是⾮周期的,⽽按任何算法产⽣的序列都是周期的,因此应要求密钥流具有尽可能⼤的周期良好的统计特性:随机序列有均匀的游程分布游程:指序列中相同符号的连续段,其前后均为异种符号。
例如:……0 111 0000 10……注意:计算游程的时候要⾸尾相连计算,头和尾的两个0合在⼀起构成长度为2的0游程。
有长为3的1游程、长为4的0游程、长为1的1游程,长为2的0游程。
⼀般要求其在周期内满⾜:同样长度的0游程和1游程的个数相等,或近似相等。
很⾼的线性复杂度:不能⽤级数较⼩的线性移位寄存器LFSR近似代替⽤统计⽅法由密钥序列k0k1k2…ki…提取密钥⽣成器结构或种⼦密钥在计算上不可⾏密钥流⽣成器密钥流⽣成器可以分为:驱动部分⾮线性组合部分驱动部分:控制⽣成器的状态序列,为⾮线性组合部分提供统计性能良好的序列周期很⼤分布较随机⾮线性部分:将驱动部分提供的序列组合成密码特性好的序列可隐蔽驱动序列与密钥k之间明显的依赖关系⽬前密钥流⽣成器⼤都基于移位寄存器FSR通常由线性移位寄存器(LFSR)和⼀个⾮线性组合函数即布尔函数组合,构成⼀个密钥流⽣成器(a)由⼀个线性移位寄存器和⼀个滤波器构成(b)由多个线性移位寄存器和⼀个组合器构成LSFR的优点:⾮常适合硬件实现能产⽣⼤的周期序列能产⽣统计特性好的序列能够应⽤代数⽅法进⾏很好的分析反馈移位寄存器GF(2)上⼀个n级反馈移位寄存器由n个⼆元存储器与⼀个反馈函数f(a1a2...a n)组成Processing math: 100%每个存储器称为移位寄存器的⼀级在任⼀时刻,这些级的内容构成该FSR的状态;对应于⼀个GF(2)上的n维向量,共有2n种可能的状态状态可⽤n长序列a1,a2,a3,…,a n或n维⾏向量(a1,a2,a3,…,a n)表⽰每⼀级存储器a i将其内容向下⼀级a i-1传递,并根据存储器当前状态计算f(a1,a2,a3,…,a n)作为a n下⼀时间的内容example:初始状态为(a1,a2,a3)=(1,0,1),输出可由上表求出,其输出序列为10111011101…,周期为4如果反馈函数f(a1,a2,…,a n)是a1,a2,…,a n的线性函数,则称为线性反馈移位寄存器(LFSR)n级LFSR最多有2n个不同的状态初始状态为零,则其状态恒为零若其初始状态⾮0,则其后继状态不会为0因此n级LFSR的状态周期≤2n−1输出序列的周期与状态周期相等,所以≤2n−1选择合适反馈函数可使序列周期达到最⼤值2n−1,周期达到最⼤值的序列称为m序列特征多项式表⽰:1是必须写的,c i的取值和上⾯⼀⼀对应定理:n级LFSR产⽣的序列有最⼤周期2n−1的必要条件是其特征多项式为不可约的定义:若n次不可约多项式p(x)的阶为2n-1,则称p(x)是n次本原多项式,使得p(x)|(x p−1)的最⼩p称为p(x)的阶定理:设{a i}∈G(p(x)),{a i}为m序列的充要条件是p(x)为本原多项式Java实现LSFRpublic class LSFR {public static void newLsfr(List<Integer> lst, int k, List<Integer> key){int temp=0;List<Integer> temp1 = new ArrayList<>(lst);List<Integer> temp2 = new ArrayList<>(key);for(int i = 0;i < k; ++i){boolean flag = false;Integer kOut=0;for (int j = 0;j < 20;++j){if(temp2.get(j).equals(1))kOut = (Integer) ((kOut + temp1.get(j) ^ temp2.get(j)) % 2);}temp1.remove(0);temp1.add(kOut);for(int q = 0;q < 20;q++){if (!temp1.get(q).equals(lst.get(q))) {flag = true;break;}}System.out.println(temp1.toString()+"第"+(i+1)+"次");if(!flag)temp = i+1;}if(temp!=0)System.out.println("周期是:"+temp);}对于m-序列(周期为2n−1),如果攻击者知道了2n位明密⽂对,则可确定反馈多项式的系数,从⽽确定该LFSR接下来的状态,也就能得到余下的密钥序列,具体过程如下:三个随机性公设:在⼀个周期内,0与1的个数相差⾄多为1—a i中0与1出现的概率基本上相同在⼀个周期内,长为1的游程占游程总数的1/2,长为2的游程占游程总数的1/22,……,长为i的游程占游程总数的1/2i,……,且等长的游程中0游程个数和1游程个数相等——0与1在序列中每⼀位置上出现的概率相同异相⾃相关函数是⼀个常数——通过对序列与其平移后的序列做⽐较,不能给出其它任何信息⾮线性部分Geffe发⽣器钟控发⽣器交错停⾛式发⽣器门限发⽣器常⽤流密码算法RC4基于⾮线性数组变换优点:易于软件实现,加密解密速度快,⽐DES快10倍A5基于LFSR。
密码学第3节(有上传各章节及目录封面,请在本人上传空间里查找

第三章 序列密码在第二章中,咱们证明了理论上保密的密码体制是存在的,这种密码体制是利用随机的密钥序列∞=1}{i i k 对明文序列∞=1}{i i m 加密取得密文序列∞=1}{i i c 。
可是,由于随机的密钥序列∞=1}{i i k 必需与明文等长,因此其生成、分派、存储和利用都存在必然的困难,因这人们假想利用少量的真随机数按必然的固定规那么生成的“伪随机”的密钥序列代替真正的随机序列,这就产生了序列密码。
因此,序列密码脱胎于“一次一密”密码体制。
由于序列密码中的密钥序列是由少量的真随机数按必然的固定规那么生成的,因此不可能是真正随机的。
因此,如何刻画密钥序列的“伪随机性”,如何保证密钥序列的“伪随机性”可不能造成加密算法在实际中被破,是序列密码设计中需要解决的问题。
另外,由于序列密码只需分派和存储少量的真随机数就可对任意长度的明文加密,因此克服了完全保密的密码体制在实践中在密钥分派中碰到的难题。
序列密码中利用的少量真随机数确实是序列密码的密钥,有人也称之为“种子密钥”。
由于序列密码算法在公布资料中不多,而且所需的理论基础也较多,因此本章不对序列密码做过量介绍。
本章仅从伪随机序列的常规特性、序列密码的大体模型、理论基础、Walsh 谱理论、大体编码技术和具体实例动身,介绍序列密码的设计理论,同时也简单介绍对序列密码的分析方式。
为幸免序列密码的密钥与密钥序列的概念混淆,以下本书均称序列密码的由密钥产生的密钥序列为乱数序列。
在本书中,n Z 2和n }1,0{都表示所有二元n 维向量组成的集合和二元域上的n 维线性空间,并将12Z 简记为2Z ;)/(n Z 表示集合}1,,2,1,0{-n 和模n 剩余类环,)(q GF 表示q 元域。
本书有时也将n 维二元向量),,,(021x x x n n --不加说明地等同于)2/(n Z 中的元素011211222x x x x x n n n n ++++=---- 。
现代密码学之03序列密码

(1)以种子密钥为移存器的初态,按照确定的递推关 系,产生周期长、统计特性好的初始乱源序列。
(2)继而利用非线性函数、有记忆变换、采样变换等 手段,产生抗破译能力强的乱数序列。
在序列密码设计中,大多使用周期达到最大的那些 序列,包括:
(1)二元域GF(2)上的线性递归序列 (2)2n元域GF(2n)上的线性递归序列 (3)剩余类环Z/(2n)上的线性递归序列 (4)非线性递归序列
3.2.2 线性反馈移存器(LFSR)简介
c0=1
c1
c2 …
…
x1
x2
am-1
am-2
cn-2 xn-1
cn-1
cn
xn am-n
一、当ci=1时,开关闭合,否则断开;c0=1表示总有 反馈;一般cn=1,否则退化。
二、反馈逻辑函数
f(x1, x2, …, xn)=c1x1+c2x2+…+cnxn 三、线性递推式
= c0am+c1Dam+c2D2am+…+cnDnam) = (c0+c1D+c2D2+…+cnDn)am 因此反馈多项式(也称特征多项式)为:
g(x)= c0+c1x+c2x2+…+cnxn
五、状态转移矩阵
给定两个相邻状态:
则有
Sm=(am+n-1,…,am+1,am) Sm+1=(am+n,…,am+2,am+1)
管理问题!
因而人们设想使用少量的真随机数(种子密钥) 按一定的固定规则生成的“伪随机”的密钥序 列代替真正的随机序列ki,这就产生了序列密 码。
密码学(范明钰)3.2-序列密码

K
K
安全信道
……
滚动密钥生成器
zi
xi
yi……滚动密钥生器ziyixi
同步序列密码
一次一密密码是加法序列密码的原型。事实上,如 果密钥使用滚动密钥流,则加法序列密码就退化成 一次一密密码。
实际使用中,密码设计者的最大愿望是设计出的滚 动密钥生成器,使得密钥经其扩展成的密钥流序列 具有如下性质:极大的周期、良好的统计特性、抗 线性分析、抗统计分析
基本概念
分组密码与序列密码的区别在于有无记忆性 序列密码的滚动密钥z0=f(k,σ0)由函数f、密钥k和指
定的初态σ0完全确定。此后,由于输入加密器的明文 可能影响加密器中内部记忆元件的存储状态,因而 σi(i>0)可能依赖于k,σ0,x0,x1,…,xi-1等参数。
同步序列密码
根据加密器中记忆元件的存储状态σi是否依赖 于输入的明(或密)文字符,序列密码可进一 步分成同步和自同步两种。
和σi产生的函数。
9
基本概念
序列密码将明文消息 M连续地分成字符
bit,并用密钥流来 加密每个字符bit
基本上,序列密码体
制只使用混乱技术,
而不使用散布技术。 这使得这种体制没有
错误扩散
基本情况
序列密码有广泛的理论基础,对于其各种设计原则已经 进行了详尽的分析。然而在公开的文献中详尽的序列密 码系统却相对较少 造成这种状况的部分原因是,在实际中使用的大部分序 列密码归私人所有或需要保密。相比之下,大量的分组 密码建议已经出版,其中的一些已经被标准化或公开
却希望它的输出(密钥序列k)对不知情的人来 说象是随机的。 到底该从哪些角度把握随机性等,才使所设计出 来的KG能够具有我们需要的安全程度?
密码技术及其应用

1)身份认证与密钥交换 2)保密通信 身份认证的作用:消息的接收者能够确认消息
的来源;入侵者不可能伪装成他人。身份认证 可分为两类: (1)对称认证(即常用的口令认证) (2)非对称认证(基于数字签名算法)
3.1.2 A5算法
A5算法是由法国人设计的、欧洲数字蜂窝移 动电话系统GSM采用的加密标准。该算法由3 个稀疏本原多项式构成的LFSR组成,寄存器 级数分别为19、22和23,其输出由3个LFSR的 输出相异或产生。
(3)数据认证算法(分组密码算法的认证模式,单向 Hash函数,数字签名算法)保证完整性(消息真实 性)。
2 密码技术标准
国际标准(ISO/IEC *****) 美国国家标准(ANSI X*.**) 美国联邦标准(FIPS ***) 互联网标准(RFC ****) 国际电信标准(ITU-T X.***) RSA实验室标准(PKCS **) 美国电气电子工程师协会标准(IEEE *****) 中国国家标准(GB *****)
(1)校验值ICV = AA (P, Ka, IV); (2)密文C = EA (K, IV, P || ICV)
初始向量
IV 加密密钥K 明文P
IV 认证密钥Ka
校验值 数据认证算法 ICV
IV
加
加密套件
密
密文C
算
法 加密ICV
Message
1.2 保密通信 ——加密过程(续)
{ j = ( j + s[i] + k[i]) mod 256; i0 = (i0+s[i]) mod 256; j0 = ( j0+s[j]) mod 256;
(完整word)密码学原理与应用复习大纲

密码学原理与应用复习大纲第一部分古典密码1.1 密码学的五元组(明文,密文,密钥,加密算法,解密算法)及各部分的含义1.2 密码体制什么是密码体制?完成加密和解密的算法.通常,数据的加密和解密过程是通过密码体制(cipher system) +密钥(keyword)来控制的。
密码体制必须易于使用,特别是应当可以在微型计算机使用。
密码体制的安全性依赖于密钥的安全性,现代密码学不追求加密算法的保密性,而是追求加密算法的完备,即:使攻击者在不知道密钥的情况下,没有办法从算法找到突破口。
1。
3 代替密码体制:(单表代替密码多表代替密码)就是明文中的每一个字符被替换成密文中的另一个字符.接收者对密文做反响替换就可以恢复出明文.(在这里具体的代替方案称为密钥)单表代替密码明文的相同字符用相应的一个密文字符代替.(移位密码,乘数密码,仿射密码,多项式密码,密钥短语密码)单表代替密码的特点:▲密钥空间K很大,|K|=26!=4×1026 ,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013 年。
▲移位密码体制是替换密码体制的一个特例,它仅含26个置换做为密钥空间。
密钥π不便记忆。
▲针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。
单表代替密码的弱点:▲密钥量很小,不能抵抗穷尽搜索攻击▲没有将明文字母出现的概率掩藏起来,很容易受到频率分析的攻击▲不具备雪崩效应▲加解密数学表达式简单多表代替密码是以一系列(两个以上)代换表依次对明文消息的字母进行代换的方法。
(维吉尼亚Vigenere密码,Hill密码,Playfair密码)多表代替密码的特点:使用了两个或两个以上的替代表。
Vegenere密码算法(分析类)15分,参考第一讲课件第二部分对称密码体制2.1 对称密码体制(分组密码,序列密码)的概念对称密钥密码体制,对于大多数算法,解密算法是加密算法的逆运算,加密密钥和解密密钥相同,同属一类的加密体制。
3.2传统加密方法(补充)

2 密码学发展--第三阶段大事记
80年代出现“过渡性”的“Post DES”算法,如 IDEA,RCx,CAST等 90年代对称密钥密码进一步成熟 Rijndael,RC6, MARS, Twofish, Serpent等出现 90年代逐步出现椭圆曲线等其他公钥算法 2001年Rijndael成为DES的替代者 2004年著名的MD5算法被中国的王小云破译
3 密码学的基本概念--加密函数分析
----从加密函数的角度理解密码体制的概念----
加密函数: Eke : M C 将明文m加密为密文c,即 其 (1) 定义域c 是E明ke文(m空) 间M;
(2) 值域是密文空间C; (3) 加密函数就是加密算法;
(4) 控制参数 ke 就是加密密钥
3 密码学的基本概念--脱密函数分析
(可信、不可信第三方)、敌手也叫攻击者
3 密码学的基本概念--信息传输过程中的攻击例子
窃听:对传输的信息的攻击
A:信源 发送方
C:敌手 攻击者
B:信宿 接收方
3 密码学的基本概念--信息传输过程中的攻击例子
对窃听的防护:加密技术
加密
脱密
A:信源 C:敌手
B:信宿
3 密码学的基本概念--基本概念
(1) 简单替代密码 ❖ 简单替代的就是明文的一个字母,用相
应的密文字母代替。规律是根据密钥形 成一个新的字母表,与原明文字母表有 相应的对应关系。
❖ 典型的一种替代密码是凯撒密码,又叫循环移 位密码。其加密方法就是将明文中的每个字母 都用其右边固定步长的字母代替,构成密文。
❖ 例如:步长为4,则明文A、B、C、…、Y、Z 可分别由E、F、G、…、C、D代替。如果明 文是“about”,则变为密文“efsyx”,其密 钥k=+4。两个循环的字母表对应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提问: (1) (1) (1) (1) (1) (1) A3 A 如果上面的输入序列变为: 1 A2 A 1 A 3 A2 则上面的结果是什么,为什么?
20
同步序列密码密钥流产生器
设计关键是密钥流产生器。一般可将其看成一个参数为k的有 限状态自动机,由一个输出符号集Z、一个状态集∑、两个函 数φ和ψ以及一个初始状态σ0组成 状态转移函数φ:σi→σi+1,将当前状态σi变为一个新状态σi+1 输出函数ψ:σi→zi,当前状态σi变为输出符号集中的一个元素zi
有限状态机
范明钰 2019 年本科密码学
状态转移图 密钥序列生成器
17
有限状态自动机
有限状态自动机是具有离散输入和输出(输入集和输出 集均有限)的一种数学模型,由以下3部分组成:
范明钰 2019 年本科密码学
① 有限状态集 S {si | i 1,2,....l}
(1) A { A ② 有限输入字符集 1 j | j 1,2,..., m} 和有限输出字
(1) ( 2) (A ) 1 , A 3
(1) ( 2) ( A3 , A2 )
S2
(1) ( 2) ( A2 ,A ) 1
(1) ( 2) (A ) 1 , A 2
S3
(1) ( 2) ( A2 , A2 )
(1) ( 2) ( A3 ,A ) 1
19
例子
(1) (1) (1) S {s1 , s2 , s3 }, A1 { A1 , A2 , A3 }, ( 2) ( 2) ( 2) A2 { A1 , A2 , A3 }
范明钰 2019 年本科密码学
列密码体制的模型如下图。
K 安全信道 K
……
滚动密钥生成 器
……
滚动密钥生成器
zi
zi
xi
E zi ( xi )
yi
yi
D zi (y i )
xi
14
同步序列密码:运算
同步序列密码的加密变换Ezi可以有多种选择,只需要保 证变换是可逆的。 实际使用的,一般都是二元系统,因而在有限域CF(2)上 讨论的二元加法序列密码。其加密变换可表示为 yi=zi xi。 K K
顶点对应于自动机的状态,若状态si在输入A(1)i时转为状态
sj,且输出一字符A(2)j,则在转移图中,从状态si到状态sj有
范明钰 2019 年本科密码学
一条标有(A(1)i,A(2)j)的弧线。
(1) ( 2) ( A2 , A3 )
(1) ( 2) ( A3 , A3 )
S1
(1) ( 2) (A ) 1 , A 1
3
序列密码加密方式举例
编码:明文转换为bit,例如采用ASCII编码,明文为TV (T=19=10011,V=21=10101),则编码为1001110101
范明钰 2019 年本科密码学
密钥流:给定伪随机生成器,通信双方约定初态和起点,得到伪 随机bit流,假定为1100000110,称为密钥流 运算:异或
转移函数由上一页图给出 若输入序列为
(1) (1) (1) (1) (1) (1) A 1 A 2 A 1 A 3 A 3 A 1
写成表
范明钰 2019 年本科密码学
初始状态为s1,则得到状态序列: s 1 s2 s2 s3 s2 s1 s2 输出字符序列为
( 2) ( 2) ( 2) ( 2) ( 2) ( 2) A A A A A A 1 1 2 1 3 1
范明钰 2019 年本科密码学
基本概念
序列密码的基本思想是,利用密钥k产生一个密钥流
范明钰 2019 年本科密码学
z=z0z1…,并使用如下规则对明文串x=x0x1x2…加密:
y=y0y1y2…=Ez0(x0)Ez1(x1)Ez2(x2)… 换言之:密钥流由密钥流发生器f产生, zi=f(k, σi),σi是加 密器中的记忆元件(存储器)在时刻i的状态,f是由密钥k
范明钰 2019 年本科密码学
混乱性:k的每一bit均与k的大多数bit有关;
扩散性:k任一bit的改变要引起k在全貌上的变化。
24
常见的两种密钥流产生器
目前最为流行和实用的密钥流产生器如图所示,其驱
动部分是一个或多个线性反馈移位寄存器
范明钰 2019 年本科密码学
范明钰 2019 年本科密码学
……
滚动密钥生成器
zi
xi
安全信 道
……
滚动密钥生成器
zi
yi
yi
xi
15
同步序列密码:设计
要求: 设计出的滚动密钥生成器,使得密钥经其扩展成的密 钥流序列具有如下性质:
范明钰 2019 年本科密码学
极大的周期、良好的统计特性、抗线性分析、抗统计
分析……
16
补充:同步序列密码的数学基础之一
Βιβλιοθήκη f —— 一般由m-序列(或M-序列)生成器构成,提供若干周期 大、统计特性好的序列 (称为驱动序列) x1 , x2 , , xm F —— 是把驱动序列综合在一起的非线性编码手段,目的是 有效地破坏和掩盖多条驱动序列中存在的规律或关系,提高 线性复杂度
23
密钥序列生成器(KG)基本要求
和σi产生的函数。
10
基本概念
范明钰 2019 年本科密码学
序列密码将明文消息 M连续地分成字符 bit,用密钥流来加 密每个字符bit
基本上,序列密码体 制只使用混乱技术, 而不使用散布技术。 这使得这种体制没有 错误扩散
11
基本概念
分组密码与序列密码的主要区别,在于有无记忆 序列密码的滚动密钥zi=f(k,σ0)由函数f、密钥k和指定的初 态σ0完全确定。 由于输入的明文,可能影响内部记忆元件的状态σi,因而 σi(i>0)可能依赖于(k,σ0,x0,x1,…,xi-1)等参数。
的征集准则而最终全部落选
8
发展状况
2003.3,日本密码研究与评估委员会(CRYPTREC)推荐了3个 流密码算法:MUGI、MULTI-S01和RC4-128。 2004.2,ECRYPT欧洲第6框架研究计划(FP6)下IST基金支持 的一个为期4年的项目,同年10.14—15在比利时举行了一个 名为SASC的特别会议,引发了流密码算法的征集活动,并于 2004.11发布征集公告,也是对NESSIE没有征集到流密码算 法的补充。征集活动到2005.4.29结束,根据4个征集原则, 一共征集到34个流密码算法 2007年4月进入第三轮评估,针对软件设计的候选算法有 CryptMT(Version3)、Dragon、Rabbit、HC(HC-128和HC-256)、 LEX(LEX-128、LEX-192和LEX-256)、NLS(NLSv2加密)、 Salsa20和SOSEMANUK。针对硬件设计的候选算法有 DECIM(DECIMv2和DECIM-128)、F-FCSR(F-FCSR-Hv2和 F-FCSR-16)、Edon80、Grain(Grainv1和Grain-128)、 MICKEY(MICKEY2.0和MICKEY-1282.0)、Moustique、 Trivium和Pomaranch (Version 3) 9
范明钰 2019 年本科密码学
7
应用背景
最初主要用于政府、军方等国家要害部门,因此,不像分
组密码那样有公开的国际标准,大多数设计、分析成果都
范明钰 2019 年本科密码学
是保密的。但是随着序列密码的应用需求越来越广泛,从
NESSIE工程开始,序列密码算法的设计与分析也列上了公
开征集评测的日程
2000年1月欧洲启动的NESSIE工程中,有6个序列密码算 法(Leviathan、UIi-128、BMGL、SOBER-t32、SNOW、 SOBER-tl)进入了第二阶段评估,但是因为不符合NESSIE
2
常见的序列密码算法
Chameleon、FISH、Helix、ISAAC、MUGI、Panama、
Phelix、Pike、SEAL、SOBER、SOBER-128、WAKE等
范明钰 2019 年本科密码学
RC4, used in Netscape‘s Secure Socket Layer (SSL)
protocol
A5, in the Global System for Mobile Communication (GSM)
E0,Bluetooth stream cipher, standard for wireless shortrange connectivity, specified by the Bluetooth Special Interest Group
符集 A2 { Ak( 2) | k 1,2,..., n}。
③ 转移函数 Ak( 2) f 1( s , A(j1) ), sk f 2 ( si , A(j1) )
i
即在状态为si,
输入为Aj(1)时,输出为Ak(2),而状态转移为sk。
18
状态转移
有限状态自动机可用有向图表示,称为转移图。转移图的
就目前的研究和预见,对KG提出了以下基本要求:
种子密钥k的变化量足够大,一般应在2128以上;
KG产生的密钥序列k具有极大周期,一般应不小于255; k具有均匀的n-元分布,即在一个周期环上,某特定形式的n长bit串与其求反,两者出现的频数大抵相当(例如,均匀的游 程分布);k不可由一个低级(比如,小于106级)的LFSR产生, 也不可与一个低级LFSR产生的序列只有比率很小的相异项; 利用统计方法由k提取关于KG结构或k的信息在计算上不可行;