现代密码学第五讲:流密码(三)

合集下载

流密码详解ppt课件

流密码详解ppt课件
2.1 流密码一般模型
自同步流密码(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是严格周期序列,简称周期序列。

现代密码学PPT课件

现代密码学PPT课件
因此要了解信息安全,首先应该知道信息安全面临 哪些威胁。
信息安全所面临的威胁来自很多方面,并且随着时 间的变化而变化。这些威胁可以宏观地分为人为威 胁和自然威胁。
自然威胁可能来自于各种自然灾害、恶劣的场地环 境、电磁辐射和电磁干扰、网络设备自然老化等。 这些事件有时会直接威胁信息的安全,影响信息的 存储媒质。
3. 完整性业务
和保密业务一样,完整性业务也能应用于消息流、 单个消息或一个消息的某一选定域。用于消息流的 完整性业务目的在于保证所接收的消息未经复制、 插入、篡改、重排或重放,即保证接收的消息和所 发出的消息完全一样;这种服务还能对已毁坏的数 据进行恢复,所以这种业务主要是针对对消息流的 篡改和业务拒绝的。应用于单个消息或一个消息某 一选定域的完整性业务仅用来防止对消息的篡改。
2. 认证业务
用于保证通信的真实性。在单向通信的情况下,认 证业务的功能是使接收者相信消息确实是由它自己 所声称的那个信源发出的。在双向通信的情况下, 例如计算机终端和主机的连接,在连接开始时,认 证服务则使通信双方都相信对方是真实的(即的确 是它所声称的实体);其次,认证业务还保证通信 双方的通信连接不能被第三方介入,以假冒其中的 一方而进行非授权的传输或接收。
恶意软件指病毒、蠕虫等恶意程序,可分为两类, 如图1.2所示,一类需要主程序,另一类不需要。前 者是某个程序中的一段,不能独立于实际的应用程 序或系统程序;后者是能被操作系统调度和运行的 独立程序。来自图1.2 恶意程序分类
对恶意软件也可根据其能否自我复制来进行分类。 不能自我复制的一般是程序段,这种程序段在主程 序被调用执行时就可激活。能够自我复制的或者是 程序段(病毒)或者是独立的程序(蠕虫、细菌 等),当这种程序段或独立的程序被执行时,可能 复制一个或多个自己的副本,以后这些副本可在这 一系统或其他系统中被激活。以上仅是大致分类, 因为逻辑炸弹或特洛伊木马可能是病毒或蠕虫的一 部分。

现代密码学_清华大学_杨波着+习题答案

现代密码学_清华大学_杨波着+习题答案

一、古典密码(1,2,4)解:设解密变换为m=D(c)≡a*c+b (mod 26)由题目可知密文ed 解密后为if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26) 由上述两式,可求得a=3,b=22。

因此,解密变换为m=D(c)≡3c+22 (mod 26)密文用数字表示为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]= ifyoucanreadthisthankateahcer4. 设多表代换密码C i≡ AM i + B (mod 26) 中,A是2×2 矩阵,B是0 矩阵,又知明文“dont”被加密为“elni”,求矩阵A。

解:dont = (3,14,13,19) => elni = (4,11,13,8)二、流密码 (1,3,4)1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c 3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a 1,a 2,a 3)=(1,0,1),求各线性反馈函数的输出序列及周期。

解:设反馈函数为 f(a 1,a 2,a 3) = a 1⊕c 2a 2⊕c 1a 3当 c1=0,c2=0 时,f(a 1,a 2,a 3) = a 1,输出序列为 101101…,周期为 3。

当 c1=0,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2,输出序列如下 10111001011100…,周期为 7。

当 c1=1,c2=0 时,f(a 1,a 2,a 3) = a 1⊕a 3,输出序列为 10100111010011…,周期为 7。

现代密码学_清华大学_杨波著_部分习题答案[1]

现代密码学_清华大学_杨波著_部分习题答案[1]
密文 C= E11,23(M)≡11*M+23 (mod 26) =[24 22 15 10 23 24 7 21 10 23 14 13 15 19 9 2 7 24 1 23 11 15 10 19 1]
= YWPKXYHVKXONPTJCHYBXLPKTB ∵ 11*19 ≡ 1 mod 26 (说明:求模逆可采用第 4 章的“4.1.6 欧几里得算法”,或者直接穷举 1~25) ∴ 解密变换为 D(c)≡19*(c-23)≡19c+5 (mod 26) 对密文 C 进行解密:
密文用数字表示为:
c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为 m=3*c+22 (mod 26)
=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]

Ri'
=
L' i −1

F
(
R' i −1
,
Ki' )
( ) ( ) ⇔
Li−1 ⊕ F (Ri−1, Ki )
'=
Li−1

F
(
R' i −1
,
Ki'
)
'
根据(i)(ii) 根据(iii)

F (Ri−1, Ki )
=
F
(
R' i −1
,
Ki' )

P(S
( E ( Ri −1 )

现代密码学第五讲(一):流密码

现代密码学第五讲(一):流密码

现代密码学第五讲(一):流密码《现代密码学》第五讲流密码(一)上讲内容回顾分组密码定义(分组填充)分组密码的发展历史(Shannon DES AES。

)保密系统的安全性分析及分组密码的攻击(主动/被动唯密文/已知明(密)文/选择明(密)文/自适应选择明(密)文)数据加密标准(DES)算法介绍高级加密标准(AES)算法介绍中国无限局域网标准(SMS4)算法介绍?分组密码算法的运行模式本章主要内容流密码(序列密码)的思想起源?流密码技术的发展及分类基于移位寄存器的流密码算法?其它流密码算法Estream推荐流密码算法软件算法硬件算法密钥流生成器种子密钥明文m1k1c1m2k2c2加密过程密钥流生成器种子密钥密文c1k1m1c2k2m2解密过程设明文为m=m1m2… m i∈GF(2), i>0?设密钥为k=k1k2… ki∈GF(2), i>0?设密文为c=c1c2… c i∈GF(2), i>0?则加密变换为c i=m i+ k i(mod 2) i>0?则解密变换为m i=c i+ k i(mod 2) i>0思想起源:20世纪20年代的Vernam 体制,即“一次一密”密码体制。

香农利用信息论证明“一次一密”密码体制在理论上不可破译?由有限的种子密钥生成无限长的随机密钥序列?流密码研究内容——设计安全高效的伪随机序列发生器密钥流生成、存储和分发困难随机序列计算机无法实现评测标准:线性复杂度高;周期大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异相自相关函数是一个常数.设一个周期为r的序列a1, a2,…, a r, a r+1, a r+2,…,将序列平移T位得到另外一个序列a T, a T+1,… a r+T, a r+T+1,…,若a i= a i+T, 则称对应第i位相等。

现代密码学 清华大学 杨波著 部分习题答案

现代密码学 清华大学 杨波著 部分习题答案

( 声 明:非 标 准 答 案,仅 供 参 考 )一、古典密码(1,2,4)字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 数字0 1 2 3 4 5 6 7 8 9 10 111213141516171819 20 21 22 2324251. 设仿射变换的加密是E11,23(m)≡11m+23 (mod 26),对明文“THE NATIONAL SECURITYAGENCY”加密,并使用解密变换D11,23(c)≡11-1(c-23) (mod 26) 验证你的加密结果。

解:明文用数字表示:M=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24] 密文 C= E11,23(M)≡11*M+23 (mod 26)=[24 22 15 10 23 24 7 21 10 23 14 13 15 19 9 2 7 24 1 23 11 15 10 19 1]=YWPKXYHVKXONPTJCHYBXLPKTB∵ 11*19 ≡1 mod 26 (说明:求模逆可采用第4章的“4.1.6 欧几里得算法”,或者直接穷举1~25)∴解密变换为D(c)≡19*(c-23)≡19c+5 (mod 26)对密文C进行解密:M’=D(C)≡19C+5 (mod 26)=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24]= THE NATIONAL SECURITY AGENCY2. 设由仿射变换对一个明文加密得到的密文为 edsgickxhuklzveqzvkxwkzukvcuh,又已知明文的前两个字符是“if”。

对该密文解密。

解:设解密变换为 m=D(c)≡a*c+b (mod 26)由题目可知密文 ed 解密后为 if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26)由上述两式,可求得 a=3,b=22。

现代密码学(第五章)

现代密码学(第五章)
2019/4/1 27
2019/4/1 6
一、杂凑函数
杂凑函数的性质(3)强于性质(2),即由无碰撞性 能够得到单向性。例如,设函数 y=H(x),x的长度固 定为N,y的长度为L。 设每个y有2N-L个x使y=H(x)。(均衡函数) 随机地取m个x值。则 P(有个x值满足H(x)=y’)=1-(1-2-L)m; P(有两个x值具有相同的H(x)值) =1-(2L)(2L-1)(2L-2)…(2L-m+1)2-Lm =1-(1-0×2-L)(1-1×2-L) (1-2×2-L)…(1-(m-1)×2-L)。
2019/4/1 24
二、数字签名的基本概念
不可否认性(公开可验证性)
被Alice签名的消息,在未来不能被Alice否认。 (这个性质的本质是:)Bob在收到一个被Alice签名 的消息时,他有办法向第三方证明该签名是真的被 Alice签名的消息。 如果一个数字签名具有不可伪造性,则Bob能够自行 验证签名消息的真伪;而如果一个数字签名具有公 开可验证性,则Bob能够向他人证明签名消息的真 伪。
2019/4/1 26
二、数字签名的基本概念
公钥密码的签名方案(一)
Alice欲发消息m给Bob。 (1) Alice用自己的私钥k对消息m“解密”s=D(m, k), s就是对消息m的签名值,(m,s)就是一个签名消 息。 (2) Alice将(m,s)发送给Bob。 (3) Bob收到(m,s)后,用Alice的公钥z,将消息m 与签名s做如下的检验:是否m=E(s, z)。若是则(m, s)是Alice发送的签名消息。
2019/4/1 17
一、杂凑函数
(1) Alice向Bob发送信息“我是Alice”。 (2) Bob收到信息后,向Alice发送一个随机的比特串x1。 (3) Alice 收到x1后,与自己的身份密号x2联立,得到x=(x1, x2 ) 。 (4) Alice计算y=H(x),并向Bob发送y。 (5) Bob收到y后,取出Alice的身份密号x2,并与x1联立得 到x=(x1,x2),然后验证是否 y=H(x), 若是则认为“Alice”是真正的Alice; 若否则认为“Alice”是假冒的Alice 。

现代密码学(密钥)概述

现代密码学(密钥)概述

1)流密码
流密码(Stream Cipher)也称序列密码,是对称密码算 法的一种。流密码具有实现简单、便于硬件实施、加解密处 理速度快、没有或只有有限的错误传播等特点,因此在实际 应用中,特别是专用或机密机构中保持着优势,典型的应用 领域包括无线通信、外交通信。
密钥k
密钥流 产生器
异或运算
明文m
弱密钥
弱密钥:由密钥 k 确定的加密函数与解密函数相同 ,即 。
DES的弱密钥: 密函数相同。
如果各轮产生的子密钥一样,则加密函数与解
DES
k
(•)
DES
1 k
(•)
DES至少有4个弱密钥 :
➢ 0101010101010101
➢ 1f1f1f1f0e0e0e0e
➢ e0e0e0e0f1f1f1f1
( 56 位) 置换选(择48 2
k1
位)
循环左移
循环左移
C i( 28 位)
D i( 28 位)
( 56 位)
置换选择
2
ki
( 48 位)
置换选择1(PC-1)和置换选择2(PC-2)
总结-DES示意图
DES的安全性分析
DES的安全性完全依赖于密钥,与算法本身没有 关系。 主要研究内容:
➢ 密钥的互补性; ➢ 弱密钥与半弱密钥; ➢ 密文-明文相关性; ➢ 密文-密钥相关性; ➢ S-盒的设计; ➢ 密钥搜索。
2
15 11 8
3
10 6
12 5
9
0
7
14 2
13 1
10 6
12 11 9
5
3
8
13 6
2
11 15 12 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ci = pi ⊕ zi pi = ci ⊕ zi
ci和pi分别表示第i比特的密文和明文。
MICKEYMICKEY-128
宣称的安全性
MICKEY-128 2.0 is intended to resist any attack faster than exhaustive key search. The designers have not deliberately inserted any hidden weaknesses in the algorithm.
GrainGrain-128
Grain-128使用了一个线性反馈移位寄存器 (LFSR)来确保很好的统计特性和密钥流周期 的下限值。为了引入非线性特性,它使用了 一个非线性反馈移位寄存器(NFSR)和非线性 滤波器(输出函数)。
GrainGrain-128 LFSR的寄存器内容记为si,si+1,……,si+127 LFSR的反馈多项式表示为f(x),是度数为128 的本原多项式。它定义为:
初始化过程
密钥的比特位定义为ki,0≤i≤127,输入自变 量的比特位定义为IVi,0≤i≤95。 NFSR的寄存器初始化:bi=ki,0≤i≤127; LFSR的寄存器初始化:前96个元素使用IV 比特位载入,si=IVi,0≤i≤95,后面的32比 特由1来填充,si=1,96≤i≤127。 在载入密钥和IV后,钟控256次不输出密钥流 ,密钥初始化过程如下:
bi+128 = si + bi + bi+26 + bi+56 + bi+91 + bi+96 + bi+3bi+67 + bi+11bi+13 + bi+17bi+18 + bi+27bi+59 + bi+40bi+48 + bi+61bi+65 + bi+68bi+84
GrainGrain-128
j∈A
A = {2, 15, 36, 45, 64, 73, 89}.
Grain
加解密方法 加密/解密是将输出比特流与明文/密文进行 异或运算:
ci = pi ⊕ zi pi = ci ⊕ zi
ci和pi分别表示第i比特的密文和明文。
GrainGrain-128
A.线性逼近 对于每个方程a(x)都可以找到一个有偏差的线性逼近方程Aa(x),这意味 着Grain总会产生有偏差的密钥流样本,重要的是选择函数g(x)和 h(x)以确保偏差足够小,没有比穷举攻击更好的攻击手段。 B.代数攻击: 在Grain-128中,NFSR使用h(.)函数引入了非线性特性,使用初始状态 比特流表示输出的函数度一般比较大,而且随时变化,因此它能抵 抗任何代数攻击。 C.时间-存储-数据 权衡攻击: 一般的对于流密码的时间-存储-数据攻击复杂度为O(2n/2),n指的是 流密码状态的个数。在Grain-128中,两个128位的移位寄存器加起 来状态变量为256,因此时间-存储-数据权衡攻击的复杂度不低于O (2128) D.错误攻击: 对于流密码来说,错误攻击是威胁较大的攻击之一,它们被引入攻击 了很多著名的流密码体制,但是在NFSR中引入缺陷要比在LFSR中 困难。
NFSR 的寄存器内容记为bi,bi+1,…,bi+127 NFSR的非线性反馈多项式g(x)是一个 线性函数和一个非线性函数的和: 32 37 72 102 128 44 60 61 125 g(x) =1+x +x +x +x +x +x x +x x
+x63x67 +x69x101+x80x88 +x110x111+x115x117 为消除歧义,NFSR的修正函数定义为:
CLOCK_R(R, INPUT_BIT_R, CONTROL_BIT_R): 标记r0,r1,…,r159是钟控前寄存器R的状态,r’0 ,r’1 ,…, r’159 是钟控后寄存器R的状态
FEEDBACK_BIT = r159 ⊕ INPUT_BIT_R 对于1 ≤ i ≤ 159, ri′ = ri -1 ; r0′ = 0 对于0 ≤ i ≤ 159, 若 i ∈ RTAPS , ri′ = ri′⊕ FEEDBACK_BIT 如果CONTROL _ BIT _ R =1 ri′ = ri ⊕ ri′ , 0 ≤ i ≤ 159. :
3. 前钟控 对0≤i≤159:
CLOCK_KG( R, S , MIXING = TRUE , INPUT _ BIT = 0)
MICKEYMICKEY-128 生成密钥流
0≤i≤L-1:
密钥流生成
z i = r0 ⊕ s 0
CLOCK_KG( R, S , MIXING = FALSE , INPUT _ BIT = 0)
zi =

j∈ A
b i + j + h(x) + s i + 93 ,
A = { 2 , 15 , 36 , 45 , 64 , 73 , 89 }.
GrainGrain-128
密钥流生成
加密流程
GrainGrain-128
输出比特zi 为:
zi = ∑ bi + j + h(x) + si +93 ,
GrainGrain-128 算法 MICKEYMICKEY-128 Trivium
3
软件算法
Grain-128
GrainGrain-128
Grain-128的设计者:Martin Hell (Sweden), Thomas Johansson (Sweden) 和 Willi Meier (Switzerland)
GrainGrain-128
g(x) NFSR LFSR f(x)
h(x)
密钥初始化
GrainGrain-128
布尔函数h(x) 定义如下: h( x) = x0 x1 + x2 x3 + x4 x5 + x6 x7 + x0 x4 x8 其中 x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 分别对应于两个 寄存器b和s 的抽头: bi +12 , si +8 , si +13 , si + 20 , bi +95 , si + 42 , si + 60 , si + 79 , s i +95 反馈比特zi定义为:
软件算法
Trivium
Trivium
Trivium由Belgium密码学家C. De Cannière 和 B. Preneel设计 Trivium从一个80-bit的密钥和一个80-bit的 起始变量中生成多达264比特的密钥流.
Trivium
初始化过程
密钥长度: 80比特, 记为K1 , . . . , K80 IV 大小: 80比特,记为IV1 , . . . , IV80 中间状态大小: 288比特,记为s1,. . . , s93, s94 , . . . , s177, s178 ,. . . , s288。
MICKEYMICKEY-128 寄存器S钟控 寄存器 钟控
四个序列 COMP P 0158 , P1158 ,
FB 0 0...FB 0159 , FB10...FB1159
r
r159⊕
MICKEYMICKEY-128
加解密方法 加密/解密是将输出比特流与明文/密文进行 异或运算:
1. 将80-bit 的密钥和 的密钥和80-bit 的起始变量分别 赋值给内部状态比特s1~s80和s94 ~s173。 赋值给内部状态比特 同时将s 置为1, 同时将 286 , s287和 s288置为 ,剩余所有位 置零。 置零。
MICKEYMICKEY-128
CLOCK_S(S, INPUT_BIT_S, CONTROL_BIT_S): 标记s0,s1,…,s159是钟控前寄存器R的状态,s’0, s’1, …, s’159是钟控后寄存器R的状态. 采用ŝ0, ŝ1,…, ŝ159 作为中间变量。
寄存器S钟控 寄存器 钟控
FEEDBACK _ BIT = s159 ⊕ INPUT _ BIT _ S ) si = si-1 ⊕ (( si ⊕ COMP0i ) ⋅ ( si+1 ⊕ COMP1i )), 1 ≤ i ≤ 158; ) ) s0 = 0; s159 = s158 .
如果CONTROL _ BIT _ S = 0: ) ′ = si ⊕ (FB0i ⋅ FEEDBAC_BIT ), 0 ≤ i ≤ 159 ; si 如果CONTROL _ BIT _ S = 1: ) ′ = si ⊕ (FB1i ⋅ FEEDBACK_BIT ), ≤ i ≤ 159. si 0
MICKEYMICKEY-128
初始化过程
寄存器R和S初始为全0, 1. 载入IV. 对0≤i≤IVENGTH-1:
CLOCK_KG( R, S , MIXING = TRUE , INPUT _ BIT = ivi )
2. 载入K. 对0≤i≤127:
CLOCK_KG(R, S , MIXING = TRUE , INPUT _ BIT = ki )
f ( x ) = 1 + x 32 + x 47 + x 58 + x 90 + x 121 + x 128
为了消除可能的歧义,定义LFSR对应的修 正(更新)函数:
si +128 = si + si +7 + si +38 + si +70 + si +81 + si +96
相关文档
最新文档