第一章:密码学概论
1.攻击方式:主动攻击:窃取信息,偷听传输的信息分析消息内容
被动攻击:(1)中断:阻止通信设施的正常工作 (2)篡改:更改数据的容; (3)伪造:将一个非法实体伪装成一个合法的实体; (4)重放:将一个数据单元截获后进行重传。
2.五个性质(信息安全的目标):(1)机密性:指保证信息不泄露给非授权的用户或者实体,并且非授权用户即使得到信息也无法知晓信息的内容。通过访问控制机制阻止非授权的访问,通过加密机制阻止非授权用户知晓信息的内容。
(2)完整性:指消息未经授权不能进行篡改,要保证消息的一致性。一般通过访问控制阻止篡改行为,同时通过消息摘要算法来检测信息是否被篡改。
(3)认证性:指确保一个消息的来源或者消息本身被正确地标识,同时确保该标识没有被伪造。消息鉴别是指接收方保证消息确实来自于所声称的源;实体认证指能确保被认证实体是所声称的实体。
(4)不可否认性:指能保证用户无法事后否认曾经对信息进行的生成、签发、接收等行为。发送方无法否认自己发送的信息,接收方不能否认自己受到了信息。一般通过数字签名来提供不可否认服务。
(5)可用性:指保障信息资源随时可提供服务的能力。即授权用户根据需要可以随时访问所需信息,保证合法用户对信息资源的使用不被非法拒绝。典型的对可用性的攻击是拒绝服务攻击。
3.三个安全目标:
(1)计算安全:如果攻破一个密码体制所需要的计算能力和计算时间是现实条件所不具备的,就认为相应的密码体制满足计算安全。
(2)无条件安全:如果假设攻击者在无限计算能力和计算时间的前提下,也无法攻破该体制,则认为相应的密码体制满足无条件安全。
(3)可证明安全:如果攻破一个密码体制意味着可以解决某一个经过深入研究的数学难题,就认为相应的密码体制满足可证明安全。
4.对加密体制的攻击:
对于加密体制,敌手具有的能力(或攻击方式)由弱到强分为:
(1)唯密文攻击:敌手(或密码分析者)只能通过考察密文来试图推导解密密钥或明文。
(2)已知明文攻击:敌手拥有一定量的明文和相对应的密文。
(3)选择明文攻击:敌手可以选择明文,接着得到相对应的密文。之后,敌手使用所拥有的信息,恢复以前未见过的密文的相应明文。
(4)自适应选择明文攻击:一种选择明文攻击的特殊情况,在攻击中能以一种自适应的方式选择明文(来得到相应的密文),即明文的选择可依赖于前面已得到的密文。
(5)选择密文攻击:敌手可以选择密文,接着得到相应的明文。实现这种攻击的一种方法是敌手设法获取了解密设备的访问权(但不是解密密钥,因为解密密钥可能被安全地嵌入到设备中)。然后,在不访问该解密设备的情况下,推导出(先前未询问过解密设备的)密文的明文。
(6) 自适应选择密文攻击:一种选择密文攻击的特殊情况,在攻击中能以一种自适应的方式选择密文(来得到相应的明文),即密文的选择可依赖于前面已得到的明文。
加密体制的安全性从低到高分为: (1)完全攻破 (2)部分攻破 (3)密文可区分
密文不可区分等价于语义安全。语义安全是指有限计算能力的敌手不能从密文中得到任何明文信息(与完善保密性相对应,后者是指无限计算能力的敌手不能从密文得到任何明文信息)。
第二章:古典密码体系:
1.古典密码都是对称密码,对称密码按照明文的类型可分为序列密码(又叫流密码)和分组密码。
2.置换加密体制:通过密钥将明文进行加密(对称密码体制通过加密密钥容易得出解密密钥,在这里是它的逆元)
将它的逆置换简单的表示出来:3.代换加密体制:分为单表代换(移位密码,仿射密码)和多表代换
移位密码:将26个字母用1-26表示,通过密钥K的值进行移位,例如明文为abc,当K=3时,密文为def,解密密钥为23(26-3).
仿射密码:将明文从简单的左移右移K变为右移一个函数式,使其位置没那么固定,例如当K=(7,3)时,加密密钥为7x+3(mod26),先计算7的逆元为15,解密密钥为15(y-3)(mod26),假设明文为abc,可以得到密文为jqx,解密过程按照解密函数式进行。
单表代换明文字符出现的频率没有掩盖,即明文中常出现的字符在密文中也常出现,于是被密码分析者所利用,从而达到破解的目的。(不够安全)
多表代换:实际上是多个单表代换
(1)Playfair密码:26个字母(I/J放一起),去重,去除密钥重复的字母,将密钥写到5*5方格中。从左到右,从上到下写入密钥和剩下的字母。加密方式,同行往右推一位,同列往下推一位,不同行不同列变对角。
(2)Vigenere密码:先把明文密文转换成数字,将明文按照密钥长度进行分组,然后按每组明文加上密钥输出密文
(3)Vernam密码:将明文和密钥进行二进制表示然后进行模二运算,相同为零,不同为一得到密文,用密文进行解密也是如此,将密文与密钥进行模二运算,得到明文。
(4)Hill密码(希尔密码):密钥为一个m*m的矩阵,明文乘以密钥得到密文,密文做逆变换得到明文,当m等于一是,Hill密码退化成了单表代换的移位密码。
与Playfair密码相比,Hill密码的分组长度可以更长(即大于2),由矩阵的维度决定。与Vigenere相比,Hill密码更加安全。 Hill密码中某个明文字母对应的密文字母既与加密矩阵相关,也与该分组其他字母相关,而Vigenere中,明文字母只与加密密钥相关。Hill密码容易受到已知明文攻击,通过多组明文密文可以得到解密密钥矩阵。
转轮机,机械密码。
第三章:一次一密的完善保密性:
如果一次一密是完善保密的,对于任意一个密文,明文空间中所有明文被加密成该密文的概率都是一样的,我们记这个概率为p。
新问题来了,p怎么算呢?
关于完善保密性,其实还有一个等价的定义:通俗地讲,给定任意密文c,对于明文空间中的所有明文,如果把每个明文加密成c的密钥数量都是相等的(即都是N),那么加密方案就是完善保密的。
有了以上知识,现在可以来证明一次一密为什么具有完善保密性了。
我们只需证明,给定任意密文c,把每个明文加密成c的密钥数量都是相等的即可。
根据一次一密的加密算法c=m⊕k,很容易知道k=c⊕m。所以当c和m给定的情况下,k的取值是唯一的。
也即给定任意密文,对于明文空间中的每个明文,只有一个密钥能把该明文加密成该密文,也即N=1。(p=1/|K|)
既然密钥数量都是相等的,一次一密必然具有完善保密性。
第四章:
一次一密:一种理想的加密方案,叫做一次一密密码,密钥为随机产生的,而且只使用一次,和vernam密码一样的操作,用异或操作。
优点:密钥随机产生,仅使用一次; 无条件安全; 加密和解密为异或运算,效率较高。
缺点: 密钥长度至少与明文长度一样长,密钥共享困难,不太实用。
流密码:流密码(stream cipher)是一种重要的密码体制;
明文消息按字符或比特逐位加密;
流密码也称为序列密码(Sequence Cipher);
流密码主要是基于硬件实现。
安全性 流密码的安全性主要依赖于密钥序列。 产生真随机的密钥序列对于计算机程序来说是不太可能的。 密钥流生成器——满足真正随机序列的一些特性的伪随机序列。
同步流密码特点 同步要求:发送者和接收者使用相同的密钥、操作和状态。 无错误传播:密文中的某一位在传输过程中被修改(不是被删除)并不会影响密文中其它位的解密。 主动攻击:对密文进行的插入、删除、重放等主动攻击会破坏同步性,从而接收者会检测到这种攻击。
自同步流密码特点 自同步:在同步性受到破坏时,可以自动地重新同步并正确解密,只是存在有固定数量的明文字符不可恢复。 有限错误传播:当一个密文位被修改、插入或删除时,至多有限个密文位解密不正确。 主动攻击:一个主动攻击的敌手对密文位的修改,至多有限个密文位解密不正确。故接收者能够检测到主动攻击的可能性比同步流密码的可能性要低。 明文统计扩散:每个明文位都会影响到其后的整个密文,明文的统计学特性就会扩散到整个密文中。
反馈移位寄存器:主要是用来生成密钥流的。初始状态由用户自定义,利用一个短的种子密钥来产生一个很长的密钥序列(不是真随机的,而是伪随机序列)。
线性反馈移位寄存器:反馈函数是线性的。(异或运算)
周期达到最大值的序列称为m序列,周期
流密码的已知明文攻击 由于线性反馈移位寄存器固有的线性特性,基于它的流密码算法在已知明文攻击下是比较容易破译的。 步骤: (1)由明文、密文序列得到密钥序列; (2)根据得到的密钥序列求解线性反馈寄存器的反馈函数。(流密码容易受已知明文攻击)
祖冲之密码的算法结构分为三层。第一层是线性反馈移位寄存器层(LFSR),第二层是比特重组层(BR),第三层是一个非线性函数(F)。线性反馈移位寄存器的运行模式有两种:初始化模式和工作模式,比特重组从LFSR的寄存器单元中抽取128比特组成4个32比特字 X0,X1,X2,X3 ,其中前3个字将用于下层的非线性函数 F ,第4个字参与密钥流的计算。
分组密码是将消息进行等长分组(比如每组消息的长度为n比特),然后用同一个密钥对每个分组进行加密。分组密码每次加密一个消息块,而流密码是逐比特加密。
分组密码的设计方法 混淆:使密钥和密文之间的依赖关系尽可能模糊 扩散:为了隐藏明文的统计特性而将一位明文的影响扩散到多位密文中
分组密码的迭代方式 Feistel网络 ,SP(substitution-permutation)网络
DES:用56位密钥来加密64位数据的方法
S盒代替是将“子密钥异或”的输出结果(48位)作为S盒代替的输入,经过变换得到32位的输出。将48位输出结果分成8个组,每组6位。每个S盒都是非线性运算,6位输入,4位输出