应用密码学期末复习

应用密码学期末复习

文章目录

  • 应用密码学期末复习
  • 一、密码学概述
    • 五类信息安全服务
    • 古典密码、近代密码的特点
    • 密码学的主要任务
    • 密码学(Cryptology)研究领域的两个分支
    • 保密通信模型
    • 密码系统的组成(M,C,E,D,K)
    • 对密码系统的攻击
    • Kerckhoffs原则
    • 密码算法的分类
  • 二、古典密码
    • 替代密码
      • 单表替代密码
      • 多表替代密码
    • 置换密码
  • 三、分组密码
    • 分组密码体系
    • 分组加密算法的两个基本结构
    • DES
    • AES
  • 四、公钥密码
    • RSA公钥密码体制
    • ElGamal 算法
    • 椭圆曲线密码体制ECC
  • 五、散列函数与报文鉴别
    • 散列函数
  • 六、数字签名技术
    • RSA数字签名
    • ElGamal数字签名
  • 七、密钥管理技术
    • Diffie-Hellman密钥协商
    • 公钥证书
    • 秘密分割
  • 八、身份鉴别技术
    • 攻击者主要的攻击手段
    • 常用身份鉴别技术
    • 画框图
  • 九、序列密码基础
    • LSFR(基本概念,周期,画表)


一、密码学概述

五类信息安全服务

(1)鉴别服务:提供对通信中对等实体和数据来源的鉴别;
(2)访问控制服务:对资源提供保护,以对抗其非授权使用和操纵;
(3)机密性服务:保护信息不被泄露或暴露给未授权的实体;
(4)完整性服务:对数据提供保护,以对抗未授权的改变、删除或替代;
(5)抗抵赖服务:防止参与某次通信交换的任何一方事后否认本次通信或通信的内容。

古典密码、近代密码的特点

古典密码主要特点:数据的安全还要依赖于算法的保密
近代密码主要特点:数据的安全基于密钥而不是算法的保密。

密码学的主要任务

(1)机密性:如何使信息让授权的人能看懂,别人看不懂;
(2)鉴别:如何确保数据的可信来源,以及通信实体的真实性?
(3)完整性:如何确保数据在传输过程中没有被未授权的改变、删除或替代;
(4)抗抵赖性:如何防止参与通信的任何一方事后否认本次通信或通信的内容。

密码学(Cryptology)研究领域的两个分支

(1)密码编码学(Cryptography)
主要任务是寻求有效密码算法和协议,以保证信息的机密性或认证性的方法
(2)密码分析学(Cryptanalytics)
主要任务是研究加密信息的破译或认证信息的伪造

保密通信模型

应用密码学期末复习_第1张图片

密码系统的组成(M,C,E,D,K)

五元组{ M,C,K,E,D }就称为一个密码系统(机密性服务) 。
消息空间M( 又称明文空间 ):所有可能明文m的集合;
密文空间C:所有可能密文c的集合;
密钥空间K:所有可能密钥k的集合,其中每一密钥 k由加密密钥 ke 和解密密钥 kd 组成,即
k=(ke,kd)
加密算法E:一簇由加密密钥控制的、从M到C的加密变换;
解密算法D: 一簇由解密密钥控制的、从C到M的解密变换。

对密码系统的攻击

(1)攻击的目标:在不知道密钥的前提下,破译或部分破译加密信息,甚至密钥。

(2)对密码攻击者的假设:
已知密码算法(已知所用加密算法全部知识)
可以拥有目前最先进的计算资源
可以不惜成本,拥有足够的时间

(3)密码分析者破译或攻击密码的方式
穷举攻击法
统计分析法
数学分析攻击法

(4)密码分析攻击类型
惟密文攻击
已知明文攻击
选择明文攻击
选择密文攻击

Kerckhoffs原则

即使密码系统中的算法为密码分析者所知,也难以从截获的密文推导出明文或密钥。 也就是说,密码体制的安全性仅应依赖于对密钥的保密,而不应依赖于对算法的保密。

密码算法的分类

(1)根据密码算法的功能
加密算法:实现信息的机密性保护;
杂凑算法:也称散列算法、哈希算法,实现信息完整性保护;
数字签名算法:实现认证、鉴别和抗抵赖性
身份鉴别算法:实现实体身份认证;
密钥协商算法:实现通信双方密钥的安全共享

2)根据密码算法所用的密钥数量
1.对称密码算法
供机密性服务的密码系统, 其加密密钥和解密密钥相同或可相互导出
2.非对称密码算法
要求与特点:
①加密密钥公开,解密密钥保密
②两个密钥不能相同,且公开密钥不能导出私有密钥,计算不可行
③机密性服务:公钥用于加密、私钥用于解密,使用接收方密钥对
④鉴别服务:私钥用于签名、公钥用于验证,使用发送方密钥对

(3)根据对明文信息的处理方式
分组密码
序列密码

二、古典密码

替代密码

单表替代密码

(1)一般单表替代密码
原理:以26个英文字母集合上的一个置换π为密钥,对明文消息中的每个字母依次进行变换。
密钥空间:K={π:Z26→Z26|π是置换}
特点:密钥空间大,密钥π不便记忆

(2)移位密码(加法密码)
当移位密码的密钥k=3时,就是历史上著名的凯撒密码(Caesar)。

(3)仿射密码
仿射密码的明文空间和密文空间与移位密码相同,但密钥空间为 K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}
应用密码学期末复习_第2张图片
(4)密钥短语密码
选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一个字母替代表。

单表替代密码最大问题: 单表替代密码表现出明文中单字母出现的频率分布与密文中相同。

多表替代密码

(1)维吉尼亚密码(Vigenere)
该密码体制有一个参数n。在加解密时,同样把英文字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。
设密钥k =cipher,明文消息appliedcryptosystem
应用密码学期末复习_第3张图片
(2)希尔(Hill)密码
基本思想是将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做一次逆变换即可。

特点:
1.可以较好地抑制自然语言的统计特性,不再有单字母替换的一一对应关系,对抗“惟密文攻击”有较高安全强度
2.密钥空间较大,在忽略密钥矩阵K可逆限制条件下,|K|=26n×n
3.易受已知明文攻击选择明文攻击

(3)一次一密密码(One Time Pad)
若替代密码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。

理论上是不可破译,但实际上;一次一密系统受到很大限制:
① 要求密钥是随机序列
② 每个密钥只用一次(一次一密)

(4)Playfair密码
Playfair密码是一种著名的双字母单表替代密码,实际上属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。

置换密码

置换密码又称为换位密码,通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变;置换密码在实质上是Hill密码的特例,所以置换密码属线性变换的密码。

(1)周期置换密码
应用密码学期末复习_第4张图片

(2)列置换密码

三、分组密码

分组密码体制(Block cipher)是在密钥k控制下一次变换一个明文数据块( Block,又称为分组)的密码体制,其具有速度快、易于标准化和便于软硬件实现等特点。

分组密码的设计原则
1.针对安全性的两个基本原则
①扩散:将明文的统计规律和结构规律散射到相当长的一段统计中去
②混淆:将密文、明文、密钥三者之间的统计关系和代数关系变得尽可能复杂

2.针对实现的设计原则
①软件实现的设计原则:使用子块和简单的运算。
②硬件实现的设计原则:尽量使用规则结构。

分组密码体系

1.电码本模式( ECB,Electronic Code Book)
特点 :
(1) 一种最简易的工作方式
(2) 相同密钥作用下,密文块与明文块一一对应,易于暴露明文的固有格式
(3) 各密文块间缺乏相关性,信息易于受到块替换攻击
算法本质上相当于一个“大的单字母替换”

2.密码块链接模式(CBC,Cipher Block Chain)
特点 :
(1) 同一明文块会产生不同的密文块;算法不再是一个“大的单字母替换”
(2) 有误码扩散,同时又有自同步特性
(3) 只有当所有64比特块到达后才能开始编解码,不能直接用于交互式终端。否则传输带宽浪费严重
(4)需要初始向量

3.密码反馈模式(CFB,Cipher FeedBack )
特点:
(1) 移位寄存器的的内容与明文整个以前的历史有关,同样需要一个初始向量(寄存器初值)
(2) 存在误码扩散(仍有自同步特性)
(3) 将分组密码转换为流密码(序列密码),实现即时加密

4.输出反馈模式(OFB,Output FeedBack )
特点:
(1) 没有误码扩散,适用于传输信息长度变化较大的数据,如语音、图像等
(2) 比CFB更易受对消息流的篡改;攻击者有可能通过对消息数据部分和校验部分的篡改,而以检错码不能检测的方式篡改密文
(3) 链接相关性,密文与前面的明文无关
(4) 应用时要求一次一密方式(OTP,One-Time Pad)

5.计数器模式(CTR)
(1)具有随机访问特性,可随机对任意一个密文分组进行解密处理,对该密文分组的处理与其他密文无关
(2)处理效率高,可进行并行处理,提高数据吞吐量
(3)同一明文块会产生不同的密文块
(4)可提前进行预处理
(5) 实现简单,加、解密阶段都只涉及加密函数。(这点与ECB和CBC模式不同)

6.密文窃取模式(CSM)

分组加密算法的两个基本结构

(1)SPN
替换 (Substitution) ------ S盒
置换或变位 (Permutation) ------ P盒
P盒实现变位,S盒实现替换。P盒的作用是起到扩散作用(线性变换),S盒的作用是起到混淆作用(非线性变换)。

SPN结构也是一种特殊的迭代密码 ,SPN结构和Feistel结构相比,可以得到更快速的扩散,但是SPN密码的加解密运算通常不完全相同

== (2)Feistel ==
网络结构特点:
① 输入为2w比特的分组(称为左半分组和右半分组);
② 函数F用于产生扩散和混淆作用,但并不要求为可逆函数;
③ ki为由密码密钥K生成的子密钥;
④ Feistel网络由n个基本结构单元构成(但子密钥ki互不相同)

应用密码学期末复习_第5张图片
应用密码学期末复习_第6张图片
算法特点:加解密运算相同,但同时,Feistel型密码的扩散要慢一些。如算法至少需要两轮才能改变输入的每一位。

DES

DES是一种明文分组为64比特,有效密钥56比特(有8位用于奇偶校验),输出密文64比特的,具有16轮迭代的Feistel密码算法。解密算法和加密相同,但子密钥的使用顺序相反。

(1)DES基本运算操作:置换、替换、异或与循环移位 。

(2)Feistel 结构特性
主要优点:
1.设计容易: F函数不要求可逆, 加、解密算法结构相同
2.强度高:如果F函数是随机的, 则连续若干圈复合形成的函数与随机置换是无法区分的.
主要缺点:
1.每圈加密时输入有一半没有改变
2.左右块的加密处理不能并行实施

(3)函数F的设计准则
原则:函数F 的非线性程度越大,进行密码分析的难度越大。
(1)严格雪崩效应准则:改变输入中的1位,平均要导致一半的位被改变
(2)比特独立准则:对于任何的 i,j,k,当任何一个输入比特 i 变化时,函数输出比特 j和k 应当独立地变化。

AES

(1)算法特点
① 分组密码
明文和密文长度128位,密钥长度可变(128/192/256等,现在选用128位)。
② 面向二进制的密码算法
能够加解密任何形式的计算机数据。
③不是对合运算
加解密使用不同的算法。
④综合运用多种密码技术
置换、代替、代数
⑤整体结构
SP结构,基本轮函数迭代,迭代轮数可变(≥10)

(2)AES的多项式计算(重点必考)
在这里插入图片描述
应用密码学期末复习_第7张图片
(3)AES的基本流程
①字节替代 ByteSub(): 也称S盒变换 ,是一个关于字节的非线性变换。S盒变换是AES唯一的非线性变换,也是AES安全的关键。

与DES的S盒相比:
(1)AES使用16个相同的S盒,DES使用8个不相同的S盒
(2)AES的S盒有8位输入8位输出,是一种非线性替换。
DES的S盒有6位输入4位输出,是一种非线性压缩。

②行移位变换 ShiftRows():
第0行不动
第1行循环左移1个字节
第2行循环左移2个字节
第3行循环左移3个字节

③列混合变换 MixColumns():
④轮密钥加法 AddRoundKey( ):

四、公钥密码

两种密码体制的比较:
1.对称密码:
①对明文/密文变换时,加解密密钥相同,或可相互导出;
②双方在通信前需要安全地协商共享密钥;
③ 加解密算法效率较公开密码算法高;
④系统开放性差,密钥管理复杂;
⑤不能提供抗抵赖服务。

2.公钥密码:
①对明文/密文变换时,加解密密钥不相同,且不能由加密密钥(公钥,公开)导出解密密钥(私钥,保密);
②系统开放性好,密钥管理较容易;
③可提供抗抵赖服务(数字签名)
④加解密运算复杂,效率低,不宜作数据加密;
⑤存在特有的,“可能报文攻击”的威胁。

RSA公钥密码体制

该算法的数学基础是初等数论中的Euler (欧拉)定理,安全性建立在大整数的因子分解困难性之上,是目前应用最广泛的公钥密码算法。

1.RSA算法描述
应用密码学期末复习_第8张图片
eg.在RSA密码体制中,如果n = 21,取公钥e = 5,如果明文消息为m = 8,试用该算法加密m得到密文c,并解密进行验证。

应用密码学期末复习_第9张图片

2.可利用平方-乘法算法进行RSA加密和解密的快速计算
应用密码学期末复习_第10张图片

3.可利用中国剩余定理可以实现RSA的快速解密计算
应用密码学期末复习_第11张图片
应用密码学期末复习_第12张图片

4.应用RSA体制中的一些问题
(1)不同的用户不可共享模值n (存在公共模数攻击)
(2)不同的用户选用的素数不能相同
(3)RSA的不动点问题
(4)不宜直接用于数据加密

ElGamal 算法

1.算法安全性
①ElGamal公开密钥密码算法的安全性建立在计算Zp上离散对数的困难性
②要使用不同的随机数k来加密不同的信息
③随机数k不可预测

2.算法特点
(1)“非确定性的”。由于密文依赖于执行加密过程的用户A所选择的随机数 k,所以,加密相同的明文可能会产生不同的密文。
(2) 密文空间大于明文空间。明文空间为Zp* ,而密文空间为 Zp* × Zp* 对于每个明文,其密文由2个Zp*上的元素组成。

3.算法描述
应用密码学期末复习_第13张图片
应用密码学期末复习_第14张图片
应用密码学期末复习_第15张图片
eg.在ElGamal密码体制中,设素数p = 71,本原元α = 7,
(1) 如果接收方B公钥yB = 3,发送方A选择的随机整数k = 2,求明文m1 = 30所对应的密文c = ?
(2) 如果发送方A选择另一随机整数k’,使对明文m1 = 30加密后的密文c’ = (59,c2),求c2 = ?
(3) 如果发送方A用相同的k = 2加密另外一个明文m2,加密后的密文为c2 = (49,13),求m2 = ?

答:
应用密码学期末复习_第16张图片

椭圆曲线密码体制ECC

应用密码学期末复习_第17张图片
α是基点,β是公钥
应用密码学期末复习_第18张图片

五、散列函数与报文鉴别

散列函数

1.概念
Hash函数H将可变长度的数据块M作为输入,产生固定长度的Hash值h = H(M)。散列函数的目的是为文件、报文或其他的分组数据产生“数字指纹”,主要用于报文鉴别和数字签名。

2.散列函数的基本性质
(1) H能用于任何大小的数据分组,即输入长度可变;
(2) H产生定长输出,或输出长度固定;
(3) 对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可行。
(4) 对任何给定的散列码md,寻找x使得H(x)=md在计算上是不可行的。(单向性,抗原像攻击)

  由于Hash是多对一的映射,“碰撞”不可避免性,但要求:
(5) 对任何给定的分组x,寻找不等于x的y,使得H(x)=H(y)在计算上是不可行的。 (弱抗碰撞 weak collision resistance) ;也称抗第二原像攻击或抗次原像攻击。
(6) 寻找任何(x,y)对(x≠y),使得H(x)=H(y)在计算上是不可行的。(强抗碰撞 strong collision resistance) 。

3.散列函数的主要特性
(1) 散列函数的输出不以可辨别的方式依赖于输入;
(2) 在任何输入串中单个比特的变化,将会导致输出比特串中大约一半的比特发生变化。(强混淆特性)
(3) 如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的(散列函数具有确定性的结果)。
(4) 散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但不绝对肯定二者一定相等(可能出现哈希碰撞)。(多对一的映射)

六、数字签名技术

1.定义:数字签名是这样一种鉴别机制,它可以使一个报文附加上一段起到签名作用的代码。这个代码可保证报文的来源和完整性。

2.数字签名的主要作用: 将消息和拥有消息的实体可信地联系起来。

3.数字签名与传统手写签名的比较
(1)手写签名:签名认为是被签名消息的一部分。
数字签名:签名与消息是分开的,需要一种方法将签名与消息绑定在一起。
(2)手写签名:验证是由经验丰富的消息接收者通过同以前的签名相比较而进行的。
数字签名:在签名验证的方法上,数字签名利用一种公开的方法对签名进行验证,任何人都可以对签名进行验证。
(3)手写签名:签名的物理复制是无效的或容易识别的。
数字签名:签名代码物理上可被复制,故在数字签名方案的设计中要预防签名的再用。

4.数字签名方案的组成部分
①签名算法(Signature Algorithm):签名密钥一定是秘密的。
②验证算法(Verification Algorithm):验证算法及有关参数一定是公开的。

RSA数字签名

应用密码学期末复习_第19张图片

ElGamal数字签名

应用密码学期末复习_第20张图片
应用密码学期末复习_第21张图片

七、密钥管理技术

Diffie-Hellman密钥协商

1.计算过程(重点)
协商好一个大素数q和q的一个本原元 α, 1< α 应用密码学期末复习_第22张图片

2.中间人攻击
算法本身的安全性依赖于有限域上计算离散对数的困难性。但协议在实际应用时,一定要引入某种鉴别机制,否则就容易受到中间人攻击 (man-in-the-middle attack)。密钥协商协议应能同时鉴别参加者的身份,这种协议称为鉴别密钥协商 。

公钥证书

定义:公钥数字证书是一种数字标识,是一个经证书授权中心数字签名的、包含用户信息及公开密钥等信息的数据文件。

具体有如下要求:

  1. 任何参与者都可以阅读证书,以确定证书拥有者和公钥;
  2. 任何参与者都可以验证证书是否真正由证书管理机构颁发;
  3. 只有证书管理机构才能制作、更新公钥证书;
  4. 任何参与者都可以验证公钥证书的时效性。

秘密分割

1.门限方案的概念:秘密s被分为n个部分,每个部分称为shadow,由一个参与者持有,使得:
①由k个或多于k个参与者所持有的部分信息可重构s。
②由少于k个参与者所持有的部分信息则无法重构s。

2.Shamir门限方案
主要优点:
(1)是完善的门限方案;
(2)易于扩充新用户,即计算要分配的新份额不影响原来的各个份额。
(3)安全性不依赖于未经证明的假设。
主要缺点:
(5)门限值固定;
(6)秘密分发者知道参与者的份额;
(7)不能防止秘密分发者和参与者的欺诈。

八、身份鉴别技术

1.一个安全的身份鉴别方案至少应该满足以下两个要求:
(1) A能向B证明自己的确是A;
(2) 当A向B证明了自己的身份后,B和其它实体得不到任何用于假冒A的有用信息,B和其它实体无法向第三方声称自己是A而被信任。
即:A向B证明自己的身份,但又不泄漏自己的秘密。

2.身份鉴别的基本方法
①验证实体所知什么
②验证实体拥有什么
③验证实体不可改变的特性

3.保证消息的实时性的基本方法
①时间戳
由于变化的和不可预见的网络延迟的本性,不能期望分布式时钟保持精确的同步。因此,任何基于时间戳的过程必须采用时间窗的方式来处理。

②质询/响应方式
不适应非连接性的应用,因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。

攻击者主要的攻击手段

主要威胁:假冒、伪造等。
典型攻击手段
① 信道截获:由于认证信息要通过网络传递,并且很多认证系统的口令是未经加密的明文,攻击者通过窃听网络数据,就很容易分辨出某种特定系统的认证数据,并提取出用户名和口令,或者其它有关的鉴别信息。
②口令猜测:
③重放:非授权用户截获信息,然后再传送给接收者。
④修改或伪造:非授权用户截获信息,替换或修改信息后再传送给接收者,或者非授权用户冒充合法用户发送信息。
⑤其它:如反送攻击、交错攻击和选择性攻击等。

常用身份鉴别技术

1.静态口令鉴别——最简单、传统的鉴别方法
2.一次性口令鉴别机制
主要思路是:在登录过程中加入不确定因素,使每次登录传送的鉴别信息都不相同,以提高登录过程安全性。(对付重放攻击)

S-key方案:一个基于OTP的用户鉴别方案
安全性分析:
(1) 重放攻击:由于用户每次登录的口令不同, 因此攻击者把上一次的口令传送给服务器将通不过服务器的认证。
(2)口令以密文传输:口令散列后在通信信道中传输,因此攻击者截获口令的散列值后要计算用户的口令是困难的。
(3)小数攻击问题

画框图

1.信息基本传播方案
(1)对称、公私钥
应用密码学期末复习_第23张图片

应用密码学期末复习_第24张图片

(2)公共信道、安全信道

2.如果有窃听者,如何主动、被动攻击
应用密码学期末复习_第25张图片

九、序列密码基础

序列密码又称为流密码(stream cipher),它是一种对称密码体制,也是一种重要的密码。
特点:
1.明文消息按字符或比特逐位进行加密;
2.基于硬件电路实现,如链路密码机;
3.实现简单,加解密处理速度快;
4.没有或只有有限的错误传播
5.多用于军事和外交等特殊通信领域

同步序列密码:如果系统内部记忆元件的状态独立于明文或密文的叫做同步流密码,否则叫自同步流密码。

LSFR(基本概念,周期,画表)

LSFR——线性反馈移位寄存器
应用密码学期末复习_第26张图片
应用密码学期末复习_第27张图片

应用密码学期末复习_第28张图片

你可能感兴趣的:(计算机期末复习,安全)