密码编码学与网络安全复习详细重点Word文档下载推荐.docx
《密码编码学与网络安全复习详细重点Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《密码编码学与网络安全复习详细重点Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
![密码编码学与网络安全复习详细重点Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/28/5299c89d-a390-4e67-803d-64671fd3f4e9/5299c89d-a390-4e67-803d-64671fd3f4e91.gif)
2Encryptionalgorithm加密算法对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。
3Secretkey密钥密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据
4Ciphertext密文一个可通过算法还原的被打乱的消息,与明文相对。
5Decryptionalgorithm解密算法:
加密算法的逆过程
※Cryptography密码编码学以及独立特征P35(英)p16(中)
※Cryptanalysis密码分析学P36(英)p14(中)
1、※Cryptanalysis密码分析学P35(英)p16(中)
2、※brute-forceattack穷举攻击(强行攻击)p16(中)试遍所有的密钥,直到有一个合法的密钥能够把密文还原成可读的有意义的明文----最基本的攻击。
※TypeofAttacksonEncryptedMessage基于加密信息的攻击类型P33(英)p14(中)
CO惟密文攻击是最容易防范的。
※unconditionallysecureandcomputationallysecure无条件安全和计算上的安全P37(英)
1、unconditionallysecure无条件安全:
P37(英)p17(中)
如果由一个加密方案产生的密文中包含的信息部足以唯一的决定对应的明文,则称此加密方案是无条件安全的。
2、computationallysecure计算上的安全:
P37(英)p18(中)
(1)、破译该密码的成本超过了被加密信息的价值。
(2)、破译该密码的时间超过信息有用的生命周期。
※AverageTimeRequiredforExhaustiveKeySerch穷尽密钥空间所需时间
表格位置:
P38(英)p18(中)对于高性能计算机,DES算法不再是计算上安全的算法。
TheFact对称加密体制所有分析方法的事实:
明文的结构和模式在加密之后仍然保存了下来,并且能够在明文中找到一些蛛丝马迹。
※classicalencryption(substitution、transportation)经典加密技术P37(英)p18(中)
不同的密码算法是字符之间相互代替或者是相互之间换位,好的密码算法是结合这两种方法,每次进行多次运算。
1、substitution替代技术P37,p52(英)p18,p28(中)字母频率统计特征2、transportation置换技术P53,p57(英)p29,30(中)
※One-TimePad一次一密P52(英)p28(中)
1、一次一密的安全性完全取决于密钥的随机性。
2、提供安全性存在的两个基本难点。
第三章
※blockcipher分组密码P68(英)p44(中)
分组密码是一个明文分组被当成一个整体来产生一个等长的密文分组的密码,通常使用的是64bit的分组大小。
※streamcipheranditsbasicidea流密码及其基本思想P68(英)p44(中)
流密码就是对于数字数据流一次加密一个比特或一个字节的密码。
古典的流密码的例子有自生密钥的Vigenere密码和Vernam密码。
基本思想:
分组密码与流密码的区别在于记忆性。
流密码的滚动密钥Z=f(k,σ),00由函数f、密钥k和指定的初态σ完全确定。
此后,由于输入加密器的明文可能影响加密0
器中内部记忆元件的存储状态,因而σ(i>
0)可能依赖于k,σ等参数。
,。
。
i0x0.
※FeistalstructureanditsparametersFeistal密码结构和参数P75(英)p47(中)图3.5※DESanditsparameters、itsstrengthDES的参数、强度P79(英)p58(中)
(分组64bit密钥长度56bit轮数16或32轮)安全操作S盒
※avalancheeffect雪崩效应P86(英)p57(中)
明文或密钥微小改变将对密文产生很大的影响。
第五章
※originsofAESparametersAES参数的起源P148(英)p104(中)
密码学中的高级加密标准(AdvancedEncryptionStandard,AES),又称高级加密标准。
NIST在1999年发布了一个新版本DES标准,该标准指出DES仅能用于遗留的系统,同时3DES将取代DES。
然而3DES根本性缺点在于用软件实现该算法速度比较慢,另一个缺点是DES和3DES分组长度均为64位。
就效率和安全性而言,分组长度应该更长。
由于这些缺陷3DES不能成为长期使用的加密算法标准,故NIST就1997年公开征集新的高级加密标准。
要求安全性不低于3DES。
同时应该具有更好的执行性能。
同时特别提出高级加密标准必须是分组长度为128位的对称分组密码,并能支持长度为128、192、256位的密钥,经过评估NIST在2001年发布了高级加密标准(AES),AES是对一个对称分组密码,用来取代DES,从而成为更广泛使用的加密标准。
该算法为比利时密码学家JoanDaemen和VincentRijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。
(Rijdael的发音近于"
Rhinedoll"
)
AES加密数据块和密钥长度可以是128比特、192比特、256比特中的任意一个。
AES加密有很多轮的重复和变换。
大致步骤如下:
1、密钥扩展(KeyExpansion),2、初始轮(InitialRound),
3、重复轮(Rounds),每一轮又包括:
4、最终轮(FinalRound),最终轮没有SubBytes、ShiftRows、MixColumns、MixColumns。
AddRoundKey,
※DES结构的四个阶段P153(英)p108(中)
一个混淆和三个代换:
字节代换、行移位、列混淆、轮密钥加
※mainoperationdifferencebetweenDESandAESDES与AES的主要区别:
参数:
明文64bit未公布S盒设计依据,DES解DES是Feistel结构密钥56bit密和加密算法一致16or32轮
128有严格的数据依据和背景,AESAES非Feistel结构/128、192、256解密算法和加密算法不一样/10、12、14
在应用方面,尽管DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES。
但是DES迟早要被AES代替。
流密码体制较之分组密码在理论上成熟且安全,但未被列入下一代加密标准。
第六章
※originof3DES三重DES起源p128(中)
3DES又称TripleDES,是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密。
数据加密标准(DES)是美国的一种由来已久的加密标准,它使用对称密钥加密法,并于1981年被ANSI组织规范为ANSIX.3.92。
DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。
比起最初的DES,3DES更为安全。
3DES(即TripleDES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。
它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:
设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样,
设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,
3DES加密过程为:
C=Ek3(Dk2(Ek1(P)))
3DES解密过程为:
P=Dk1((EK2(Dk3(C)))
※meet-in-the-middleattack中间相遇攻击P305(英)p129(中)※blockciphermodeofoperation分组密码的操作模式P199(英)p65(中)
指以某个分组密码算法为基础,解决对任意长度的明文的加密问题的方法。
1电码本模式(ECB)2密码分组链接模式(CBC)
3密码反馈模式(CFB)4输出反馈模式(OFB)
5计数器模式(CTR)
1、ECB模式:
将明文的各个分组独立的使用同一密钥K加密
优点:
1、实现简单2、不同明文分组的加密可并行实施,尤其是硬件实现时速度很快
缺点:
不同明文分组之间的加密独立进行,故保留了单表代替缺点,造成相同明文分组对应相同密文分组,因而不能隐蔽明文分组的统计规律和结构规律,不能抵抗替换攻击。
2、CBC模式下,加密算法的输入是当前明文组与前一密文组的异或。
CBC模式的特点:
1、明文块的统计特性得到隐蔽。
2、具有有限的错误传播特性。
3、具有自同步功能
3、CFB模式:
若待加密消息需按字符,字节或比特处理时。
1适用于每次处理J比特明文块的特定需求的加密情形。
2具有有限步的错误传播,可用于认证3可实现自同步功能。
加密效率低
4、OFB模式:
结构上类似于CFB模式,但反馈的内容是DES输出的乱数而不是密文。
1、这是将分组密码当做序列密码使用的一种方式,但乱数与明文和密文无关。
2、不具有错误传播特性。
1不能实现报文的完整性认证。
2乱数序列的周期可能有短周期现象。
5、CTR模式:
利用固定密钥k对自然数序列123-----加密,将得到的密文分组序列看作乱数序列,按加减密码的方式与明文分组逐位模2加的一种方式。
第七章
※streamcipherRC4RC4流密码P234(英)p141(中)
流密码:
是一种对称加密算法,通过发生器输出的密钥流与同一时刻一字节一字节的明文流进行异或(XOR)。
RC4加密算法是大名鼎鼎的RSA三人组中的头号人物RonRivest在1987年设计的密钥长度可变的流加密算法簇。
之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。
该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。
RC4起初是用于保护商业机密的。
但是在1994年9月,它的算法被发布在互联网上,也就不再有什么商业机密了。
RC4也被叫做ARC4(AllegedRC4——所谓的RC4),因为RSA从来就没有正式发布过这个算法。
RC4算法的原理很简单,包括初始化算法(KSA)和伪随机子密码生成算法(PRGA)两大部分。
假设S-box的长度为256,密钥长度为Len。
先来看看算法的初始化部分(用C代码表示):
其中,参数1是一个256长度的char型数组,定义为:
unsignedcharsBox[256];
参数2是密钥,其内容可以随便定义:
charkey[256];
参数3是密钥的长度
※随机性P223(英)
第八章
※discretelogarithms离散对数难题P257(英)p181,p185(中)
※factoring因式分解
第九章
※whyintroducepublic-keycryptosystem为什么引入公钥密码体制,P269(英)p185(中)
为了解决传统密码中最困难的两个问题而提出的,即:
密钥分配问题和数字签名问题
第十四章公开密钥加密详细
※basicideaofpublic-keyencryption公钥加密的基本理念P278(英)p195(中)
基本组成6个;
加密、签名;
加密,签名;
基本操作过程;
基本参数;
应用※RSA、CCAhowtouseP289(英)
RSA在选择密文攻击面前很脆弱。
一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。
然后,经过计算就可得到它所想要的信息。
实际上,攻击利用的都是同一个弱点,即存在这样一个事实:
乘幂保留了输入的乘法结构:
(XM)^d=X^d*M^dmodn
由于RSA密文是通过公开渠道传播的,攻击者可以获取密文。
我们假设攻击者为A,密文收件人为T,A得到了发往T的一份密文c,他想不通过分解质因数的方法得到明文。
换句话说,他需要m=c^d。
为了恢复m,他找一个随机数r,r<
n,当然他有T的公匙(e,n)。
他计算:
x=r^e%n(用T的公匙加密r)
y=x*c%n(将临时密文x与c相乘)
t=r^-1%n
A知道RSA具有下面的一个特性:
如果x=r^e%n,那么r=x^d%n
因此他想办法让T对y用T自己的私匙签名(实际上就是把y解密了),然后将结果u=y^d%n寄回给A。
A只要简单地计算:
m=t*u%n
上面结论的推导是这样的:
t*u%n=(r^-1)*(y^d)&
n
=(r^-1)*(x^d)(c^d)%n
=(c^d)%n
=m
要防止这种攻击的办法就是不要对外来的随机信息签名,或者只对信息的MD5特征值签名。
在这里就很容易明白为什么要强调MD5的单向性了,因为MD5的结果是不能预定的,就是说A难以凑出一份刚好能产生y这样的MD5特征值的明文来让T签名。
计算题1RSA题目:
给出pqem信息加密参照书上式子
n=p*qXn*,,,,1且d和e整数,d,,,,,,,n,p,1*q,1e
X取值为1、2、3?
?
第十章
※D-Hkeyexchangeprotocold-h密钥交换P301,303(英)p216(中)计算题2
※man-in-the-middleattack重放攻击P305(英)
maninthemiddleattack:
是一个攻击者使用公钥交换来拦截消息并且转发它们,然后取代他自己的公钥发送给被请求的一方,以致于原始的双方表面上看起来仍然还是相互通信,攻击者从球类游戏中得到它的名字,即两个人试图相互直接仍一个球给对方,然而在这两个人中间有一个人试图去抓住这个球。
在这个MITMA中入侵者使用一个表面上看起来是从服务器到客户端但看起来又像是从客户端到服务器端的应用程序。
这种攻击可能被使用在简单的获得访问消息的权利,或者能使得攻击者在转发消息之前先修改消息。
第十一、十二章
※messageauthentication消息认证p232(中)
消息认证是指通过对消息或者消息有关的信息进行加密或签名变换进行的认证,目的是为了防止传输和存储的消息被有意无意的篡改,包括消息内容认证(即消息完整性认证)、消息的源和宿认证(即身份认证0)、及消息的序号和操作时间认证等※messagedigest报文摘要
验证所收到的消息确定是来自真正的发送方且未被修改的消息,它也可验证消息的顺序和及时性。
※hashfunction哈希函数p238(中)
将任意长的消息映射为定长的hash值,用来提供消息认证时,hash值通常被称为消息摘要。
一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。
这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。
理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。
※birthdayattack生日攻击P338(英)p246(中)
※generalstructureofsecurehash散列函数的总体结构P340(英)
※SHA-512
算法输入长度小于2128bit的消息,输出512bit消息摘要,输入消息以1024bit的分组
为单位进行处理。
SHA(SecureHashAlgorithm,译作安全散列算法)是美国国家安全局(NSA)设计,美国国家标准与技术研究院(NIST)发布的一系列密码散列函数。
※MACP372(英)p241(中)
※HMAC以及设计目标P376(英)p278(中)
※digitalsignature数字签名p284(中)
※DSADSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。
DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。
RSA算法却作不到。
算法中应用了下述参数:
p:
Lbits长的素数。
L是64的倍数,范围是512到1024;
q:
p-1的160bits的素因子;
g:
g=h^((p-1)/q)modp,h满足h<
p-1,h^((p-1)/q)modp>
1;
x:
x<
q,x为私钥;
y:
y=g^xmodp,(p,q,g,y)为公钥;
H(x):
One-WayHash函数。
DSS中选用SHA(SecureHashAlgorithm)。
p,q,g可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。
签名及验证协议如下:
1.P产生随机数k,k<
q;
2.P计算r=(g^kmodp)modq
s=(k^(-1)(H(m)+xr))modq
签名结果是(m,r,s)。
3.验证时计算w=s^(-1)modq
u1=(H(m)*w)modq
u2=(r*w)modq
v=((g^u1*y^u2)modp)modq若v=r,则认为签名有效。
※DSS
第十四章
※KDCKDC(KeyDistributionCenter)密匙分配中心P412(英)
密码学中的密钥分发中心(KDC)是密钥体系的一部分,旨在减少密钥体制所固有的交换密钥时所面临的风险。
KDC应用在这样的系统中:
系统内一些用户能够使用某些服务,而其他人不能使用那些服务
KDC在kerberos中通常提供两种服务:
1.AuthenticationService(AS):
认证服务
2.Ticket-GrantingService(TGS):
授予票据服务
※masterkey主密钥P414(英)
用户与密钥分配中心之间长时间使用的密钥,用来在传输会话密钥时进行加密。
通常主密钥的分配采用非密码手段,又称为密钥加密密钥。
※sessionkey会话密钥P415(英)
会话密钥(sessionkey)是保证用户跟其它计算机或者两台计算机之间安全通信会话而随机产生的加密和解密密钥。
※public-keycertification公开密钥加密P430(英)
公开密钥加密也称为非对称密钥加密,该加密算法使用两个不同的密钥:
加密密钥和解
密密钥。
前者公开,又称公开密钥,简称公钥。
后者保密,又称私有密钥,简称私钥。
这两个密钥是数学相关的,用某用户加密密钥加密后所得的信息只能用该用户的解密密钥才能解密。
※公开密钥加密与对称密钥加密的区别
在对称密钥加密中,对一个信息的加密密码和解密密码都是相同的,所以发送者需要发送一条信息之前,必须先发送密钥给接收者,这样接收者才能解密这条信息。
对称密钥加密的过程是:
假设两个用户A,B进行通信,A先发送信息给B,然后B发送信息给A
1.A先用密钥k1加密一条信息,使之变成密文c1;
2.A把密钥k1发送给B;
(此时如果密钥被截获,截获方就可以解密并读取密文)
3.A把密文c1发送给B;
4.B用密钥k1解密,并读取解密后的信息
5.B用密钥k2加密一条信息,使之变成密文c2;
6.B把密钥k2发送给A;
7.B把密文c2发送给A;
8.A用密钥k2解密,并读取解密后的信息
公开密钥加密的过程是:
1.B先产生一对密钥k1a和k1b,前者用来加密,后者用来解密
2.B把密钥k1a发送给A;
(因为k1a只能用来加密,截获方无法通过它来解密并读取密文)
3.A用密钥k1a加密一条信息,使之变成密文c1;
4.A把密文c1发送给B;
5.B用密钥k1b解密,并读取解密后的信息;
6.A产生一对密钥k2a和k2b,前者用来加密,后者用来解密
7.A把密钥k2a发送给B;
8.B用密钥k2a加密一条信息,使之变成密文c2;
9.B把密文c2发送给A;
10.A用密钥k2b解密,并读取解密后的信息;
与对称密钥加密相比,优点在于无需共享的通用密钥,解密的私钥不发往任何用户。
即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密