第五讲序列密码

列生成序列密码密钥序列的方法

一种利用公开真随机序列生成密钥序列的方法 参赛队员:李荣莎沈峥迪 指导教师:苗金利 所在学校:北京四中 摘要:本文提出了一种生成序列密码的密钥序列的新思路:将公开的真随机序列引入密钥序列的生成过程,从而使密钥序列在公开真随机序列的影响下体现出较好的随机性,并与公开真随机序列有较低的相关性,从而具有良好的保密性。基于此思想,我们设计了两种具有良好性质的具体加密方法。 关键字:序列密码密钥序列 A method for generating encryption key stream using a public random sequence Abstract: In this paper, we put forward a new method for generating the encryption key streams of stream ciphers, in which a public random sequence is invited into the process, so that the encryption key stream would present comparatively good randomness under the influence of the public random sequence; at the same time, the encryption key stream would show fairly low correlation with the public random sequence, because of the effect of encryption methods, so that it would enjoy good confidentiality. Based on this thought, we have designed two specific encryption methods which have good characters mentioned above. Key words: Stream cipher, encryption key stream

序列密码

序列密码
内容提要(或本章引言)
使用流密码对某一消息 m 执行加密操作时一般是先将 m 分成连续的符 号(一般为比特串),m=m1m2m3……;然后使用密钥流 k=k1k2k3……中的第 i 个元素 ki 对明文消息的第 i 个元素 mi 执行加密变换,i=1,2,3,……;所有的 加密输出连接在一起就构成了对 m 执行加密后的密文。 序列密码以其易于实现、加解密快速、无错误传播、应用协议简单等优 点,在政府、军事、外交等重要部门的保密通信以及各种移动通信系统中被 广泛使用。
本章重点
? ? ? ? ? ? 一次一密加密体制; 线性反馈移位寄存器; 基于线性反馈移位寄存器的伪随机序列生成器; 伪随机序列的安全性; m 序列; RC4、A5 算法。

第2章
序列密码
2.1
概述
(2 级标题)
按照对明文消息加密方式的不同, 对称密码体制一般可以分为两类: 分 组密码(block cipher)和流密码(stream cipher) 分组密码:对于某一消息 m, 使用分组密码对其执行加密操作 时一般是先对 m 进行填充得到一个长度是固定分组长度 s 的 整数倍的明文串 M; 然后将 M 划分成一个个长度为 s 的分组; 最后对每个分组使用同一个密钥执行加密变换。 流密码(也称序列密码): 使用流密码对某一消息 m 执行加密操 作时一般是先将 m 分成连续的符号(一般为比特串), m=m1m2m3……; 然后使用密钥流 k=k1k2k3……中的第 i 个元素 ki 对明文消息的第 i 个元素 mi 执行加密变换, i=1,2,3,……; 所 有的加密输出连接在一起就构成了对 m 执行加密后的密文。 与分组密码相比, 序列密码受政治的影响很大, 目前应用领域主要还是 在军事、外交等部门。虽然也有公开设计和研究成果发表,但作为密码学的 一个分支,流密码的大多设计与分析成果还是保密的。目前可以公开见到、 较有影响的流密码方案包括 A5、SEAL、RC4、PIKE 等。 本章主要讨论流密码加密体制,关于分组密码的知识将在下一章给出。 容易想到,使用流密码对消息 m 执行加密时,最简单的做法就是让密钥流 中的第 i 个比特与明文串中的对应比特直接做 XOR 运算,即
图 2-1 简单的流密码加密结构 对应的解密运算即为:

序列密码(1)

序列密码设计思想简述 序列密码是通过位方式操作,采用一次一密的加密方式,如果产生的密钥序列为随随机序列,理论上是不可破译的,但是这会造成密钥长度与明文一样长,存储和传递密钥的代价很大,所以在实际应用中很少使用。实际的做法是根据一组密钥源和一个密钥序列产生器(KG)生成伪随机密钥序列,这样就解决了由于密钥过长产生的存储和传递问题,问题的关键在于KG的设计,使其产生的k伪随机序列尽可能满足随机性。 所有的密钥序列,都是由种子密钥K经过变化产生的,密钥亮的大小取决于K的变化量的大小。但是K毕竟是有限的位,其变化量也是有限的不会超过n2,为了更好地抵抗统计分析,尽可能的使k的周期最大化,且k的变化具有均匀分布的特性,所有的变化都可能出现,且出现的概率相同。由k推测KG或K在计算上不可行,满足Shannon 混乱原则和扩散原则。能抵抗各种已知攻击。KG应该具有可重复性,即输入K相同不论何时何地输出的k应该相同,以上所述是KG的设计原则。 KG设计完成后,还需要利用一些方法对其产生的k进行随机性、混乱性、扩散性、密码分析等各种检测,检测KG的设计是否满足上述的原则。 驱动子系统f,类似于分组密码中的P盒,属于线性变换,由种子密钥K控制,设计简单,无法单独完成混淆,无法抵御线性分析和统计分析,f的作用在于生成多个统计性能良好(大周期、均匀分布)

的子序列,线性变换还有扩散的作用,即生成序列中一位的变化造成子序列中大量位的变化,子序列中的任何一位与生成序列中的每一位存在关系。非线性组合子系统F,类似于分组密码中的S盒,由种子密钥K控制,对f提供的多个子序列进行非线性组合,使其线性复杂度实现最大化,提供序列的混乱性,使明文、密文、密钥之间的关系尽可能的复杂,防止线性攻击和统计分析。另外f与F要相互独立,F不能泄漏任何f的结构信息。 序列密码与分组密码的最大不同之处在于,序列密码具有记忆性,分组密码没有记忆性。序列密码是有状态的,与加密到第几步有很大关系,也叫状态密码,而分组密码的每个分组的加密密钥都是一样的,如果对分组密码的密钥产生加入记忆模块,那么就变成了序列密码。 同步序列密码中的发送者与接受者必须同步,因为密钥流是按照先后顺序产生的且与密文没有任何关系,如过有一位密文被删除,则后面的解密全部出现错误,如果有一位被修改则只会错误一位。自同步序列密码的状态转移函数即f,是带反馈的模式,密钥流的产生于固定长度的密文,自同步序列密码可以克服同步序列密码的缺点,有限的错误传播,自同步特性,密文的修改会造成一段密文的错误,修改插入重放一位密文的检测更加困难。因为每个明文都会影响后面的密文,明文的统计特性大大削弱了,能很好的抵抗明文冗余攻击。每个密钥都将影响随后的所有密钥,每个密文将会影响随后的所有密文,这种带反馈的KG可以很好的消除密钥和明文的统计特性。

序列密码

旺旺:旺我旺:能我过能软过软考考

主要内容
?序列密码的基本概念 ?序列密码的分类 ?线性移位寄存器序列 ?线性移位寄存器的输出序列求解
旺旺:我能过软考

序列密码的基本概念
版权所有:我能过软考
香农证明了“一次一密”不可破解。
用序列密码模仿“一次一密”密码。
为了安全,序列密码应使用尽可能长的密钥,但是,长密钥的存储、分配存在困难。
设计一个好的密钥序列产生算法,利用较短的种子密钥,产生长的密钥序列。 作为核心密码的主流密码
3 旺旺:我能过软考

序列密码的分类 同步序列密码
自同步序列密码 1)同步序列密码 ? 密钥序列产生算法与明密文无关 ? 产生的密钥序列和明密文无关
? 在通信中,通信双方必须保持精确的同步 ? 不存在错误传播
版权所有:我能过软考
输出反馈模式OFB
4 旺旺:我能过软考

同步序列密码的失步分析
版权所有:我能过软考


c=c1, c2, c4, c5…., cn-1, cn

⊕ k=k1, k2, k3, k4…., cn-1, cn
失 步
m=m1,m2, X,X…., X, X
? 可以检测插入、删除、重播等主动攻击
(c3 丢失) (密钥正确)
5 旺旺:我能过软考

同步序列密码错误传播分析
版权所有:我能过软考
c=c1, c2, c3, c4…., cn-1, cn ⊕ k=k1, k2, k3,k4…., cn-1, cn
m=m1,m2,X,m4 …,mn-1 ,mn-1 ? 不存在错误传播
(c3 错误) (密钥正确)
6 旺旺:我能过软考

信息安全-同步流密码(序列密码)设计与实现

实验二(1)同步流密码 一.实验目的: 1.掌握同步序列密码的原理 二 .相关的知识与要点 序列密码也称为流密码(Stream Cipher),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。1949年Shannon证明了只有一次一密的密码体制是绝对安全的,这给序列密码技术的研究以强大的支持,序列密码方案的发展是模仿一次一密系统的尝试,或者说“一次一密”的密码方案是序列密码的雏形。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密,加解密时一次处理明文中的一个或几个比特。 在序列密码中,密钥流由密钥流发生器f产生:zi=f(k,si),这里的si是加密器中存储器(记忆元件)在i时刻的状态。根据加密器中的记忆元件si的存贮状态是否依赖于明文字符,序列密码可进一步分成同步和自同步两种。如果si独立于明文字符则称为同步流密码,否则称为自同步流密码。 三 .实验环境 eclipse ,Android 虚拟机,Windows操作系统 四 .实验内容: 1、源码: package com.example.codesystem; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.R.string; import android.os.Bundle; import https://www.360docs.net/doc/d22871025.html,youtInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.os.Build;

第2讲:序列密码

现代密码学 第二讲-----密码学历史、序列密码 郑东

2.1.古典密码 密码学的历史已有4000多年 古埃及人曾把象形文字写在石碑上

2.1.1Caesar Cipher-恺撒密码 2千年前,Julius Ceasar 使用了一种简单的替换密码-——后被人称为恺撒密码(Caesar cipher ) 首先被应用于军事上(cf Gallic Wars ) 替换方法,每个字母用其后的第三个字母替换 eg. L FDPH L VDZ L FRQTXHUHG -> I CAME I SAW I CONQUERED Caesar cipher 可以描述如下: Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC 练习解密"RPQLD JDOOLD HVW GLYLVD LQ SDUWHV WUHV"

2.1.2.恺撒密码的一般形式 一般形式,可以把Caesar cipher 中字母移动的位数由3变为1-25中的任何一个 可以指定一个密钥字母作为字母A 的密文。 例如:密钥字母F 表示: A F, B —G, ... Y —D, Z —E 即每个字母移动5位 共有26种可能的密码算法(25种可用)

2.1. 3.混合单码替换密码 不仅仅是移位变换 每个字母可以用其它任何一个字母替换(不能重复) 每个字母可以随机的映射到其它一个 因此密钥长度是26个字母 单字母替换密码(Monoalphabetic Substitution Cipher ) 例如: 明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文: DKVQFIBJWPESCXHTMYAUOLRGZN Plaintext: IFWEWISHTOREPLACELETTERS Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA

相关文档
最新文档