第一章 绪论
1.密码的主要功能
(1)机密性:保证信息不泄露给非授权的用户或实体,确保存储的信息和传输的信息仅能
被授权的各方得到,而非授权用户即使得到信息也无法知晓信息内容,不能使用
(2)完整性:信息在生成、传输、存储和使用过程中不应发生人为或非人为的非授权篡改,如果发生,能够及时发现
(3)认证性:确保一个信息的来源或源本身被正确地标识,同时确保该标识的真实性,分为实体认证和消息认证。
消息认证是指能向接收方保证该信息确实来自于它所宣称的源。
实体认证是指参与信息处理的实体是可信的,即每个实体的确是它所宣称的那个实体,使得任何其它实体不能假冒这个实体
(4)不可否认性:防止发送方或接收方抵赖所传输的信息,要求无论发送方还是接收方都不能抵赖所进行的行为。
2.现代密码学与信息安全的关系
(1)信息安全是指信息网络的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、泄露、更改、假冒、否认等,系统连续可靠正常地运行,信息服务不中断。
(2)密码学是与信息安全多方面(比如机密性、完整性、认证性和不可否认性等)有关的数学技术的研究。
(3)密码学是保障信息安全的核心技术,但不是提供信息安全的唯一方式。
(4)信息安全是密码学研究与发展的目的。
(5)信息安全的理论基础是密码学,信息安全的问题根本解决通常依靠密码学理论。
3.密码学发展每个阶段的特点
(1)古典密码时期:通过纸、笔或简单器械实现的代换及置换 e.g.凯撒密码,维吉尼亚密码
(2)近代密码时期:手工或电动机械实现复杂的代换及置换 e.g.Vernam密码、转轮密码
(3)现代密码时期:分组密码、序列密码以及公钥密码,有坚实的数学理论基础,成为一门科学 e.g.DES、AES、RC4、RSA 、ECC 、SHA
4.现代密码学的两次飞跃及里程碑事件
(1)1949年Shannon发表题为《保密系统的通信理论》,为密码系统建立了理论基础,从此密码学成了一门科学。(第一次飞跃)
(2)1976年,Diffe和Hellman发表了《密码学的新方向》,提出了一种新的密码设计思想,从而开创了公钥密码学的新纪元。(第二次飞跃)
(3)1976年后,美国数据加密标准(DES)的公布使密码学的研究公开,密码学得到了迅速发展。(里程碑的事件)
5.现代密码体制的基本原则及公开算法的意义
(1)基本原则:加密和解密算法的安全性取决于密钥的安全性,而加解密的过程和细节是公开的
(2)公开算法的意义:有利于增强密码算法的安全性、密码技术的推广应用、增强用户使用的信心、密码技术的发展
6.密码体制的基本要求
(1)密码体制的安全性是依赖密钥的安全性,密码算法是公开的。
(2)密码算法安全强度高,也就是说,密码分析者除了穷举搜索攻击外再找不到更好的攻击方法。
(3)密钥空间应足够大,使得试图通过穷举密钥空间进行搜索的方式在计算上不可行。
(4)加密函数和解密函数都可以高效地满足实际需求。
(5)密码体制既易于实现又便于使用。
7.密码的攻击类型及其含义
(1)唯密文攻击:密码分析者可利用的信息只有密文
(2)已知明文攻击:密文、明-密文对
(3)选择明文攻击:密文,一定数量的明密文对,可选择任何明文在密钥未知的情况下得到相应的密文(相当于暂时控制加密机)
(4)选择密文攻击:可选择不同被加密的密文,得到对应的明文(相当于暂时控制解密机)
(5)选择文本攻击:是选择明文攻击和选择密文攻击的组合 (相当于暂时控制加密机和解密机)
8.攻击密码体制的常用方法
(1)穷举攻击:通过试遍所有密钥的方法来破译密码(可通过设计足够的密钥空间来防止此类攻击)
(2)统计分析攻击:通过分析密文和明文的统计规律来破译密码 (设法使明文的统计特征尽可能地不带入密文)
(3)数学分析攻击:针对加密变换所以赖的数学难题,通过数学求解的方法来设法找到相应的解密变化,从而实现破译
第二章 分组密码
1.分组密码的设计思想
(1)扩散:将算法设计成明文每一比特的变化尽可能多地影响到输出密文序列的变化,以便隐蔽明文的统计特性,即雪崩效应
(2)混乱:加解密过程中明文、密钥以及密文之间的关系尽可能地复杂化,以防止密码破译者采用解析法进行破译攻击,有复杂的非线性因素
2.分组密码的设计应该满足的要求是什么
(1)分组要足够长,以防止明文穷举攻击
(2)密钥长度要足够长,否则难以抵御唯密文攻击,但密钥长度又不能过长,这不利于密钥的管理和影响加解密的速度
(3)由密钥确定的置换算法要足够复杂,足以抗击各种已知的攻击
(4)加解密运算简单,易于软件和硬件的快速实现
(5)一般无数据扩展或压缩
(6)差错传播尽可能的小
3.分组密码的基本特点
分组密码即将明文分块,然后分块进行加密
(1)分组长度和密钥长度:长度越长,代表安全性越高,但是会影响加解密的速度
(2)轮函数:是分组密码结构的核心,实现数据的混乱和扩散。设计时要遵循雪崩效应准则、非线性和可逆性。
(3)迭代:分组密码要通过多轮迭代提高其安全性。决定迭代论述的准则是密码分析的难度要大于简单穷举攻击的难度
(4)子密钥:从种子秘钥产生各轮迭代要使用的子密钥的算法。目标是实现子密钥的统计独立性和密钥更换的有效性
4.DES算法
64bit分组长度 加解密除密钥编排不同外,使用同一算法 56bit密钥 采用混乱和扩散的组合,每个组合先代换后置换,共十六轮 易于实现,速度快
其加密过程是先对64位明文分组进行初始置换,然后分左右两部分,分别进行16轮迭代,(包括扩展置换E,S盒代换,置换运算P),最后进行逆初始置换得出密文
5.互补性会使DES在选择明文攻击下所需的工作量减半
6.差分分析与线性分析
差分分析是一种攻击迭代密码体制的选择明文攻击方法,通过分析某些高概率的明文差分和密文差分对来推算密钥
线性分析是一种对分组密码进行分析攻击的方法,通过大量的“明-密文对”找出分组密码算法中与密钥有关的线性方程,然后试着得到大量的这类关系从而确定密钥。其基本思想是以最佳的线性函数逼近DES的非线性变换S盒,是一种已知明文攻击方法。
7.3DES的优点与不足
优点:
(1)密钥长度增加到112位或168位,克服了DES面临的穷举攻击
(2)相对于DES,增加了算法复杂度,提高了安全性
(3)升级到3DES比更新新算法成本要小得多
(4)3DES的抗分析能力更强
不足:
(1)3DES的加解密速度较慢
(2)密钥长度增加,明文分组长度(64bit)没变,与密钥长度的增长不匹配
8.AES算法
128bit分组长度,密钥长度(128:10 192:12 256:14),迭代轮数和密钥长度相关,加解密算法不一样
每轮包括4个阶段:字节代换,行位移,列混淆,轮密钥相加。字节代换实现了非线性运算,行位移使得某列中的4个字节被扩展到了四个不同的列,列混淆使得每列的的所有字节具有良好的混淆性
9.AES和DES的相似与不同
相似:
(1)二者的轮函数都是由四层构成,非线性层、移位层、线性混合层、子密钥异或,只是顺序不同。
(2)AES的非线性运算是字节代换(ByteSub),对应于DES中的非线性运算S盒。
(3)行移位运算保证了每一行的字节不仅仅影响其它行对应的字节,而且影响其它行所有的字节,这与DES中置换P相似。
(4)AES的列混淆运算的目的是让不同的字节相互影响,而DES中F函数的输出与左边一半数据相加也有类似的效果。
(5)AES的子密钥异或对应于DES中S盒之前的子密钥异或。
不同:
(1)AES的密钥长度(128位、192位、256位)是可变的,而DES的密钥长度固定为56位。
(2)DES是面向比特的运算,AES是面向字节的运算。
(3)AES的加密运算和解密运算不一致,因而加密器不能同时用作解密器,而DES的加密器可用作解密器,只是子密钥的顺序不同。
10.分组密码的五种操作模式
(1)电子密码本模式(ECB,Electronic Code Book) :相同明文(在相同密钥下)得出相同的密文,即明文中的重复内容可能将在密文中表现出来,易实现统计分析攻击、分组重放攻击和代换攻击
(2)密码分组链接模式(CBC,Clipher Block Chaining) :一种反馈机制在分组密码中的应用,每个密文分组不仅依赖于产生它的明文分组,还依赖于它前面的所有分组; 相同的明文,即使相同的密钥下也会得到不同的密文分组,隐藏了明文的统计特性;
(3)计数器模式(CTR,Counter) :对计数器值进行加密,然后将其结果与明文分组进行异或,得到密文分组。效率高,能够并行处理多块明文(密文),其基本加密算法的执行并不依靠明文或密文的输入,可以预先处理,当给出明文和密文时,进行一系列的异或运算
(4)密文反馈模式(CFB,Cipher Feedback) :初始化向量加密后与第一个明文分组进行异或,得到密文分组,然后对该密文分组进行加密,与第二个明文分组进行异或得到第二个密文分组,以此类推。消息被看做数据分组流,不需要整个数据接受完后才能进行加解密,可用于自同步序列密码。
(5)输出反馈模式(OFB,Output Feedback):是密文反馈模式的一种变形,不具有自同步能力,要求系统保持严格的同步,否则难于解密。
第三章 序列密码
1.简述序列密码与分组密码的不同
分组密码是把明文分成相对比较大的块,对于每一块使用相同的加密函数进行处理,因此分组密码是无记忆的。相反,序列密码处理的明文长度可以小到1 bit,其加解密算法只是简单的模二运算,序列密码是有记忆的。 另外,分组密码的实现关键在于加解密算法,使其尽可能复杂,而序列密码的关键在于密钥序列产生器,使其尽可能不可预测。
2.密钥序列产生器的基本要求
(1)密钥序列产生器KG生成的密钥序列{ki}具极大周期;
(2)密钥序列{ki}具有均匀的n-元分布,即在一个周期内,某特定形式的n-长bit串与其求反,两者出现的频数大抵相当;
(3)由密钥序列{ki}提取关于种子密钥K的信息在计算上不可行;
(4)雪崩效应。即种子密钥K任一位的改变要引起密钥序列{ki}在全貌上的变化;
(5)密钥序列{ki}不可预测的。密文及相应的明文的部分信息(确定部分密钥序列),不能确定整个密钥序列{ki } 。
3.什么是m序列?m序列的特性是什么?
只要选择合适的反馈函数才可以使序列的周期达到最大值2^n-1,周期达到最大值(2^n-1)的序列称为m序列。(n级线性反馈移位寄存器最多有2^n个不同的状态。若其初始状态为0,则其状态恒为0。若其初始状态非0,则其后继状态不会为0。因此,n级线性反馈移位寄存器的状态周期小于等于2^n-1,其输出序列的周期与状态周期相等,也小于等于2^n-1)
m序列的特性:
(1)0,1平衡性:即0和1出现的个数基本相同
(2)游程特性:即0和1在序列中每个位置上出现的概率基本相同
(3)自相关函数为常数:意味着通过对序列与其平移后的序列作比较,不能给出其他任何信息。
4.常见序列密码算法
A5:典型的基于LFSR的序列密码算法。主要组成部分是三个长度不同的线性移位寄存器,即A,B, C。其中A有19位, B有22位, C有23位。移位是由时钟控制的,且遵循“择多”的原则。用于加密从手机到基站的通信连接,用来保护语音通信
RC4:是一种基于非线性数据表变换的序列密码,以一个足够大的数据表为基础,对表进行线性变换,产生非线性的密钥流序列。面向字节操作,以随机置换作为基础,密钥长度可变。易于用软件实现,加解密速度快。
ZUC:由3个基本部分组成:线性反馈移位寄存器(LFSR),比特重组,非线性函数F。上层的线性反馈移位寄存器(LFSR),具有 m 序列周期长、统计特性好等特点;中间层为比特重组,采用取半合并技术,实现 LFSR 数据单元到非线性函数 F 和密钥输出的数据转换,其主要目的是破坏 LFSR 的线性结构;下层为非线性函数 F,充分借鉴了分组密码的设计技巧,采用 S 盒和高扩散特性的线性变换 L ,非线性函数 F 具有高抵抗区分分析、快速相关攻击和猜测确定攻击等方法的能力
5.序列密码的特点(与分组密码相比)
(1)其安全强度取决于密钥序列的随机性,加解密简单
(2)在某些情况下,比如缓冲不足必须对收到的字符进行及时处理时,序列密码更有优势
(3)在软硬件实现上,不需要高性能平台或复杂的硬件电路,加解密速度快。
第四章 公钥密码
1.公钥密码体制的优势与不足
优势:
(1)密钥分发简单
(2)需秘密保存的密钥量少
(3)可以实现数字签名和认证的功能
不足:
(1)解密速度慢
(2)同等安全强度下,公钥密码体制要求的密钥位数要多一些
(3)密文长度往往大于明文长度
2.公钥密码算法应满足的要求是什么
(1)密钥对(公钥PKB和私钥SKB)的产生在计算上是容易的。
(2)利用公钥对消息m加密以产生密文c在计算上是容易的。
(3)利用私钥对密文c解密在计算上是容易的。
(4)攻击方由公钥PKB求私钥SKB在计算上是不可行的。
(5)攻击方由密文c和公钥PKB恢复明文m或求私钥SKB 在计算上是不可行的。
3.RSA算法
(1)选取两个大素数p和q,两个数长度接近且相差较大。(以抵御试除法攻击和循环攻击)
(2)计算n=p*q,φ(n)=(p-1)(q-1)。
(3)随机选取整数e,满足gcd(e,φ(n))=1。
(4)计算d,满足d*e ≡1(mod φ(n))。
注:p和q保密。 e和n为公钥,d为私钥。
加密算法:c=E(m)≡me(mod n)
解密算法:m=D(c)≡cd(mod n)
4.与RSA、 ElGamal 相比,ECC算法的优势
(1)安全性能更高(160位等同于RSA的1024位)
(2)在保持同等安全的条件下所需的密钥长度更短
(3)计算量小,处理速度快
(4)存储空间占用小
(5)带宽要求低
(6)应用前景非常好,特别是在移动通信、无线设备上的应用
5.IBE算法的优势与不足(基于身份加密)
优点:公钥的真实性容易实现,大大简化了公钥的管理
不足:
(1)IBE仅适合应用于用户群小的场合
(2)可信第三方如何安全地将用户的私钥送到用户的手中
(3)用户私钥由可信第三方生成和掌握,不具备唯一性,实现不可否认性时容易引发争议
第五章 Hash函数及其应用
1.Hash函数的性质及安全性
哈希函数是一种单向密码体制,是从明文到密文的不可逆映射。
性质:
(1)输入的消息是任意有限长度,
(2)输出的哈希值是固定长度,
(3)对于任意给定的消息,容易计算其哈希值
(4)逆向不可行
安全性:
(1)抗弱碰撞性:对于给定的消息M1,找到另一个消息M2,满足两者哈希值相等在计算上是不可行的
(2)抗强碰撞性:找出任意一对不同的消息,使两者哈希值相等在计算上是不可行的
(3)随机性:当一个输入位发生变化时,输出位将发生很大的变化(雪崩效应)
2.哈希算法(数据结构)与哈希函数(密码学)的不同
哈希算法:根据设定的哈希函数H(key)和处理冲突方法,将一组关键字映象到一个有限的地址区间上的算法,也称散列算法,杂凑算法
(1)对象不同:哈希算法用于特定类型数据,输出设定有限区间内;哈希函数用于“任意”数据,输出固定长度任何数据
(2)用途不同:哈希算法用于快速寻址,哈希函数用于数据完整性
(3)安全性不同:哈希算法允许出现冲突(碰撞),提供解决冲突的办法;而哈希函数不允许出现冲突(碰撞)
3.哈希函数的应用
(1)口令的安全性,比如常常将用户登录的密码用MD5盐化后存储到数据库中
(2)文件的完整性,比如可信计算,文件病毒的检验,网页防篡改,区块链等
(3)密码协议的应用,比如零知识证明,电子商务的安全协议等
(4)消息认证,比如消息认证码MAC
(5)数字签名,通常将电子文件用哈希函数提取关键字后再进行签名
4.数字签名与手写签名的不同
(1)签名:手写签名是被签文件的物理组成部分;数字签名是连接到被签消息上的数字串。
(2)传输方式:数字签名和所签名的消息能够在通信网络中传输;手写签名使用传统的安全方式传输。
(3)验证:手写签名是通过将它与真实的签名进行比较来验证;而数字签名是利用已经公开的验证算法来验证。
(4)数字签名的复制是有效的;而手写签名的复制品是无效的。
(5)手书签字是模拟的,且因人而异;数字签字是0和1的数字串,因消息而异。
5.什么是数字签名
所谓数字签名(Digital Signature),也称电子签名,是指附加在某一电子信息中的一组特定的符号或代码,它是利用数学方法和密码算法对该电子信息进行关键信息提取并进行加密而形成的,用于标识签发者的身份以及签发者对电子信息的认可,并能被接收者用来验证该电子信息在传输过程中是否被篡改或伪造
6.数字签名的过程
签名者先计算消息的哈希值,然后用自己的私钥对消息的哈希值进行数字签名。消息和签名一起被发送到接收方。接收方接受到消息之后,一方面计算接收到的消息的哈希值,另一方面利用发送方的公钥对发送来的数字签名进行验证。如果计算得到的哈希值与从数字签名中提取的哈希值相同,则可以判断消息有所生成的发送者发出,同时消息在传输的过程中没有被篡改。
7.数字签名与消息加密、消息认证的对比
与消息加密不同:消息加密和解密可能是一次性的,它要求在解密之前是安全的;而一个签字的消息可能作为一个法律上的文件,如合同等,很可能在对消息签署多年之后才验证其签字,且可能需要多次验证此签字。
与消息认证不同:数字签名也是一种消息认证技术,它基于非对称密钥,消息认证码基于对称密钥且消息认证码的处理速度比数字签名快得多。但是,消息认证码无法实现不可否认性
8.以基于RSA的数字签名为例,说明使用Hash的好处
(1)如果不使用hash,直接对完整的消息进行数字签名,当消息内容很长时,相应的数字签名也将很长。实际应用中除了要保留原始的消息内容之外,还要保存消息的数字签名以备随时验证,这将导致高昂的存储开销。
(2)其次,公开密钥密码系统存在处理速度慢、计算开销高昂的缺点,对长消息进行数字签名和签名验证时都需要付出高昂的计算代价,同时耗时冗长,实际应用时难以接受。使用哈希函数提取消息的特征信息,再进行数字签名,可以减少计算开销和存储开销。
(3)由于RSA的乘法同态性,攻击者可以根据消息m1,m2对应的签名,伪造消息m1*m2的有效签名,使用hash可以避免这样的攻击
9.Elgamal,Schnorr,DSA这三种签名方案的联系与区别
他们都是基于离散对数的签名算法。
ELgamal签名是多重数字签名,多重签名就是多个用户对同一个消息进行数字签名和认证
Schnorr签名是群签名,在一个群签名方案中,一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其他数字签名一样,群签名是可以公开验证的,而且可以只用单个群公钥来验证
DSA签名是盲签名,盲签名允许消息者先将消息盲化,而后让签名对盲化的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名
第六章 密钥管理技术
1.密钥管理遵循的基本原则
(1)明确密钥管理的策略和机制:策略是密钥管理系统的高级指导,而机制是实现和执行策略的技术机构和方法
(2)全面安全原则:指必须在密钥的产生、存储、分发、装入、使用、备份、更换和销毁等全过程中对密钥采取妥善的安全管理
(3)最小权利原则:指只分配给用户进行某一事务处理所需的最小的密钥集合
(4)责任分离原则:指一个密钥应当专职一种功能,不要让一个密钥兼任几种功能
(5)密钥分级原则:根据密钥的职责与重要性,把密钥划分为几个级别
(6)密钥更换原则:指密钥必须按时更换
(7)密钥应有足够的长度
(8)密钥体制不同,密钥管理也不同
2.数字证书包含哪些内容?
数字证书,是将证书持有者的身份信息和其所拥有的公钥进行绑定的文件。
数字证书的内容:版本号,序列号,认证机构标识,主体标识,主体公钥,证书有效期,证书用途,扩展内容,发证机构签名
3.密钥分配的基本模式
(1)无中心密钥分配模式:A、B事先已拥有相同的密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方
(2)基于密钥分配中心的分配模式:A、B与第三方C分别有一保密信道,可以由第三方生成新密钥并发放给A、B,或者由A、B任意一方生成新密钥,再通过第三方发放给另一方
(3)基于公钥的密钥分配模式:A、B事先有自己的私钥,一方选取新密钥,利用公钥密码技术实现新密钥安全传送
4.密钥分配与密钥协商的区别
密钥分配:密钥分配是一种机制,通过这种机制,通信双方中的一方或密钥分配中心选取一个秘密密钥,然后将其传送给通信双方中的另一方。密钥分配技术是在不让其他人(除密钥分配中心外)看到密钥的情况下将一个密钥传递给希望交换数据的双方的方法
密钥协商:是保密通信双方(或更多方)通过公开信道的通信来共同形成秘密密钥的过程。一个密钥协商方案中,密钥的值是某个函数值,其输入量由两个成员(或更多方)提供。密钥协商的结果是:参与协商双方(或更多方)都将得到相同的密钥,同时,所得到的密钥对于其他任何方都是不可知的。
5.Diffie-Hellman密钥交换方案
前提条件:P是一个安全的大素数,g∈Zp是有限域Zp的生成元,P和G公开。
(1)用户A随机选取一个大数a,0≤a≤p-2,计算Ka≡ga (mod p) ,并将结果传送给用户B。
(2)B随机算取一个大数b,0≤b≤p-2,用户B计算Kb ≡ gb (mod p) ,并将结果传送给用户A。
(3)用户A计算K ≡(Kb) a (mod p)
(4)用户B计算K ≡ (Ka)b (mod p)
(用户A和用户B各自计算生成共同的会话密钥K)
版权归原作者 Stubborn_Lanmail 所有, 如有侵权,请联系我们删除。