密码学复习提纲

第二章 密码学的基本概念

1. 密码学基本概念

  • 概念

密码编制学密码分析学共同组成密码学

密码技术的基本思想是对数据进行伪装以隐藏信息,使未授权者不能理解它的只是含义,所谓伪装就是对数据进行一组可逆的数学变换。伪装前原始数据称为明文,伪装后的数据称为密文,伪装的过程称为加密。

  • 密码体制
  1. 明文空间M:全体明文的集合
  2. 密文空间C:全体密文的集合
  3. 密钥空间K:全体密钥的集合,其中每一个密钥K均有加密密钥$K_e$和解密密钥$K_d$组成。即$K = $。
  4. 加密算法E:它是一族M到C的加密变换
  5. 解密算法D:它是一族C到M的解密变换

加密算法E在密钥的控制下将明文M加密成密文

而解密算法D在密钥的控制下由密文C解密出明文M

密码体制

  • 密码分析
  1. 穷举攻击
  2. 数学攻击,多用于概率与统计。(其中统计攻击是最早的一种)
  3. 物理攻击

密码攻击类型

仅知密文攻击

已知明文攻击

选择明文攻击

选择密文攻击

2. 古典密码

  • 置换密码

把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编程的密码成为置换密码。

  • 代替密码

首先构造一个或多个密文字母表,然后用密文字母表中的字母或字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身改变了。这样编成的密码称为代替密码。

第三章 分组密码

数据加密标准(DES)

  • 考概念
  1. 是一种分组密码,明文,密文,密钥都是64位,有效密钥56位,每个字节第八位是奇偶校验位
  2. 面向二进制的密码算法,因而能够加解密任何形式的计算机数据
  3. 对合运算,加密解密同一算法
  4. 属于Feistel结构

三大架构

image-20210626094132608

  • DES不足

秘钥较短,存在弱秘钥,存在互补对称性

  • 3DES

秘钥长度168位,可以抵抗穷举攻击。底层算法就是DES。不足是速度较慢,可以使用三个密钥,也可以使用两个密钥。

IDEA密码

  1. 分组密码,明文密文64位,密钥长度128位
  2. 对合运算
  3. 易于实现

高级数据加密标准(AES)

  • 概念
  1. 面向二进制
  2. sp结构
  3. 对合运算
  4. 数据块长度和密钥长度都可变的分组加密算法,其数据块长度和密钥长度都可独立地选定为大于128位小于等于256位的32位的任意倍数。

image-2021062609573485

  • 算法实现

p91查表法

中国商用密码SM4

  1. 分组算法,分组长度128比特,密钥长度128比特,加密算法与密钥扩展算法都采用32轮迭代结构。
  2. 以字节8位和字32位为单位进行处理。
  3. SM4算法是对合运算。轮密钥的使用顺序相反

分组密码的技术应用

分组密码的工作模式

一个表

94A1A5FE092B29766D3856C157FDDA5C

分组密码的短短块加密

称长度小于分组长度的数据块为短块。当明文长度大于分组长度而又不是分组长度的整数倍时,短块总是最后一块。而当明文长度小于分组时,本身就是一个短块。

  1. 填充法。
  2. 序列密码加密法。
  3. 密文挪用技术。

第五章 序列密码

  • 序列密码与分组密码的异同
  1. 序列密码具有记忆性,分组密码没有记忆性。
  2. 序列密码是逐位加密,分组密码可以避免位操作,多用于软件实现
  3. 理论上,序列密码易于从数学角度分析,分组密码更多的是应用扩散和混淆的方式实现。

扩散:将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中“置换”

混淆:使作用于明文的密钥和密文之间的关系复杂化。“代换”

一次一密?

  • 序列密钥原理

image-20210626449071

  • 随机序列产生的方法
  1. 基于数学算法产生随机序列。
  2. 基于物理学来产生。
  3. 先采用物理随机源,在接一个数学算法的随机化处理器。

p154 例5-1

  • 对称性移位寄存器序列进行非线性组合
image-20210626105946738 image-20210626110000237
  • 钟控非线性序列

image-20210626110057102

第六章 Hash函数

hash函数的本质是压缩函数,辅助签名,保密

基本性质:

  1. 输入可以任意长
  2. 输出固定长
  3. 有效性

Hash函数主要用于确保数据的真实性和完整性

Hash函数的安全性有 单向性,抗弱碰撞性,抗强碰撞性,随机性。

第七章 公开密钥密码

即非对称密码

三种协议即三种基本工作方式

  1. 确保数据的秘密性
  2. 确保数据的真实性
  3. 同时确保数据的秘密性和真实性

为了实现数据的秘密性,对数据进行加密。被用来做秘钥分配

为了实现数据的真实性,对数据进行数字签名,被用来做数字签名

公钥密码的主要任务是解决分组密码当中的秘钥分配和数字签名

和分组密码的区别主要说的是,核心区别。

RSA

前面分组不要求全记下来,这个RSA个人要求记下来,这个是公钥体系中最简单的。

rsa的加密体系

详见RSA博客

ELGamal密码

和RSA一样

分组密码核心 S盒

序列密码核心 随机数序列

公钥密码核心 困难问题 np

RSA困难问题 大整数分解的难度

ELGamal困难问题:

它的安全性建立在离散对数问题的困难性之上。

背包问题,单向陷门 是超级序列

椭圆曲线不做重点,难,困难问题是什么,离散对数问题,节点所构成的交换群。

228 例7-6


sm2 椭圆曲线公钥密码加密算法

sm4分组算法

sm3密码Hash函数

第八章 数字签名

公钥密码主要用途用来做数字签名和迪科尔曼的秘钥交换协议,做秘钥交换

公开密钥密码主要用于数字签名或用于保护传统密码的密钥。

一种完善的签名应该满足:

  1. 签名者事后不能抵赖自己的签名
  2. 任何其他人不能伪造签名
  3. 如果当事的双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证签名来确认真伪。

传统密码和公开密钥密码都可以实现数字签名,但是传统的不方便

数字签名和公钥加密有什么区别?!!

数字签名的过程

包含两个步骤,签名阶段和验证签名阶段

数字签名是自己用自己的私钥对数据进行签名然后发给对方,对方通过查PDKB查你的公钥 然后进行验证

加密是公钥加密发给对方,对方通过私钥进行解密。

签名和验证

image-20210626113059640

安全压缩是hash

签名是对谁签名 明文

251 利用RSA密码实现数字签名

image-20210626103026

ECC???

他们加密解密可以交换

262 DSS 只能用做数字签名,不能用做加密

第九章 密码协议

概念

  • 定义

所谓协议,就是指两个或两个以上的参与者为了完成某一特定任务而采取的一系列执行步骤。

  • 三层含义
  1. 协议是一个有序的执行过程
  2. 协议至少要有两个参与者
  3. 协议的执行必须能完成某种任务
  • 协议和算法的区别

相同点:都是一组有穷的运算或处理步骤。他们都要求具有有穷性,确定性和能行性。

不同点:

  1. 协议强调至少两者参与,且双方之间还要进行通信。算法不要求
  2. 协议强调完成某一特定任务,而算法强调问题求解
  3. 协议的执行步骤在粒度上比较粗,比较宏,算法的执行步骤在粒度上比较细,常常是一些基本运算。

算法是协议的底层

协议是网络通信基础之一

密码协议分为四类

  1. 密钥建立协议
  2. 认证协议
  3. 身份认证和密钥建立协议
  4. 电子商务协议

协议的攻击分为四类

  1. 对协议中的密码算法进行攻击
  2. 对密码算法的技术实现进行攻击
  3. 对协议本身进行攻击
  4. 对协议的技术实现进行攻击

277 主动攻击被动攻击的区别

被动攻击是指协议外部的实体对协议的全部或部分执行过程实施窃听,收集协议执行中所传送的消息,并分析所收集到的消息,从中得到自己所感兴趣的信息,攻击者的窃听不影响协议的执行,所以被动攻击难以检测。因此在设计协议时应当考虑的重点是确保协议能够抵抗被动攻击,而不是检测被动攻击。主动攻击是指攻击者试图篡改协议中传送的消息,插人新的消息,甚至改变协议的执行过程。显然,主动攻击比被动攻击具有更大的危险性。

密码协议的设计原则:九条答一半

  1. 消息独立完整性原则
  2. 消息前提准确原则
  3. 主体身份标识原则
  4. 加密目的原则
  5. 签名原则
  6. 随机数的使用原则
  7. 时间戳的使用原则
  8. 编码原则
  9. 最少安全假设原则

第十章 认证

基本思想

认证是证实某人或某事是偶名副其实或是有效的的一个过程

认证和加密的区别 别从网上抄瞎答

认证是保护的第一道防线,身份主体的认证

基于密码学技术,基于硬件,基于人的生理特征

关于认证和数字签名的区别

  1. 认证总是基于某种收发双方共享的保密数据来被鉴别对象的真实性,而数字签名中用于验证签名的数据是公开的。
  2. 认证允许收发双方互相验证其真实性。数字签名允许第三者和收发双方进行验证
  3. 数字签名具有发送方不能抵赖、接收方不能伪造和具有在公证人前解决纠纷的能力,而认证不一定具备。

身份认证

身份认证是应用系统的第一道防线,识别用户的合理性。

  • 口令验证机制:
  1. 利用单向函数加密口令
  2. 利用数字签名方法验证口令
  3. 口令的双向验证
  4. 一次性口令

零知识证明

不考协议 但要知道是什么

image-20210626145750882

报文认证 发送方为源,接收方为宿 双向?

  • 报文源认证:

A发给B,B认证A。A发送的报文增加标识IDA,用KS加密,B接收到用KS解密,标识相同,认证成功

如果是公开密钥密码,只要发送方对每一报文进行数字签名,接收方验证签名即可。

  • 报文宿认证:

发送方对报文用B的公开的加密密钥加密即可。只有B才能用其保密的解密密钥还原报文。

  • 报文时间性认证的方法
  1. 序列号
  2. 时间戳
  3. 随机数/相应

第十一章 密钥管理

密钥管理原则 答一半

  1. 区分密钥管理的策略和机制
  2. 全程安全原则
  3. 最小权利原则
  4. 责任分离原则
  5. 密钥分级原则
  6. 密钥更换原则
  7. 密钥必须满足安全性指标

密钥管理包括密钥的产生、存储、分配、组织、使用、停用、更换、销毁等。

分组密码的密钥管理

密钥的秘密性,真实性,完整性必须同时被保护。

分级原则:初级,中级,高级(主密钥)

秘钥产生

高级:真随机序列

二级 初级 伪随机序列

这些都是知识点不一定考

密钥分配

318 利用公钥分配

320 DIffie-Hellman !

321 中间人攻击!抵御它必须进行认证

元根,莫素数p

密钥储存

  • 三种形态
  1. 明文形态,明文形式的秘钥

  2. 密文形态:被密钥加密过的密钥

  3. 分量形态:密钥分量不是密钥本身,而是用于产生密钥的部分参数。共同作用下才能产生真正密钥。

  • 如何储存
  1. 主密钥:明文形态
  2. 中级密钥:可以明文形态,也可以密文形态。
  3. 初级密钥:一般以密文形态存储。

327 页 公钥密码体制的秘钥管理围绕下面

公开密钥密码体制的密钥管理

  • 公钥分配

不需要确保其秘密性,然而,必须确保公钥真的真实性和完整性。

  • 公钥证书包含几个部分

image-2021062615282367

CA:签证机构。

  • 公开密钥基础设施PKI
  1. PKI的目的:解决网上身份认证、电子信息的完整性和不可抵赖性等安全问题,为网络应用提供可靠的安全服务
  2. PKI的任务:确立可信任的数字身份
  3. PKI组成:证书机构CA,注册机构RA,证书发布库,密钥备份与恢复,证书撤销,PKI应用接口。

证书机构:证书生成,证书颁发,证书撤销,证书更新,证书归档

注册机构:填写,提交注册信息,审核,发放证书,日志审计。

证书发布库:用于集中存放CA颁发证书和证书撤销列表

密钥备份与恢复:只能针对加解密密钥,不能对签名密钥备份

工作基础:

  1. 签证机构CA,签发证书,管理和撤销证书
  2. 注册机构RA,接受注册信息,认证,批准或拒绝证书申请,密钥恢复申请,撤销证书申请。
  3. 证书签发。
  4. 证书目录
  5. 证书目录
  6. 证书撤销,使用到期应当撤销证书。严重违反规章制度撤销。

image-20210626153635227

339页 信任模型 树结构森林结构

填空题:

  1. hash函数的安全性有 单向性,抗弱碰撞,抗强碰撞,随机性。
  2. 签名算法能够保证信息的完整性,真实性。
  3. 公钥密码的安全性是建立在数学函数基础上的。
  4. __适用于攻击任何类型的密码体制。
  5. 认证可分成单项认证,双向认证

简答题:

  1. 公钥密码体制与对称密码体制相比有哪些优点和不足

(1)密钥的分发相对容易;
(2)密钥管理简单;
(3)可以有效地实现数字签名。
缺点:
(1)与对称密码体制相比,费对称密码体制加解密速度比较慢;
(2)同等安全强度下,费对称密码体制要求的密钥位数要多一些;
(3)密文的长度往往大于明文长度。

  1. 请描述一下基于RSA公钥密码的密钥交换协议

A,B商量使用对称密码(如IDEA或DES)加密消息m;

A,B可用RSA交换单钥加密体制的密钥;

B随机产生工作密钥k,找到A的公开密钥(e,n),B对工

作密钥k加密:

B计算c=ke mod n 给A, 只有A能解密:

A计算k=cd mod n

A,B共同用k在单钥加密体制下进行保密通讯

  1. 密码协议的设计原则包括哪几种(至少答出四个)

计算题:

  1. 椭圆曲线
  2. 设RSA算法中,两个大素数分别为p = 3,q = 11,公钥为7,明文m = ?详细讲述得到密文C的过程

论述题:

  1. 说明消息认证码的工作原理

消息认证码是消息内容和密钥的公开函数,输出是固定长度的短数据块。

若发送方A向接收方B发送报文M,则A计算报文M的MAC,并将M和MAC发送给接收方B。

接收方B收到报文后用相同的密钥K重新计算得出新MAC,与收到的做比较,二者相等则接受方B可以相信。

  1. 说明公开密钥基础设施PKI的工作基础
  2. 移动支付成为一种重要的支付手段,请结合所学讨论如何保证网上支付的安全性。

当您点击支付后,是在相应的银行网站输入银行卡账号和密码的,安全性由银行全面提供支持和保护,这个过程对第三方不透明,充分保证安全。银行与网站之间通过数字签名和加密验证,以保障在线支付的绝对安全。