应用密码学期末冲刺
大纲
选择,填空,判断题,解答题
计算题(实验)
RSA算法基础原理,每一步怎么算的,流程,会算加密,解密
1、选pq
2、计算n和φ(n)
3、选公钥e,1 < e < φ(n)
4、计算私钥d,满足d * e 等价于 1 mod φ(n)
5、以{e、n}为公开钥,{d、n}为秘密钥
加密:对明文进行分组,使得对应的十进制数小于n,即分组长度小于$log_{2}^{n}$,对每个明文分组m作加密运算。
密文C 等价于 m^e^ mod n m:分组后明文 C:加密后信息
解密:m 等价于 c^d^ mod n n:两素数乘积
SHA-1算法,填充扩充,扩展w
看sha-1位置
维吉尼亚密码
明文e 密钥4 密文i(e+4)
DES和DES双重多重变形,结果是多少bit
DES有效密钥56bits,2DES有效密钥112bits,3DES-EEE3有效密钥168bits
AES算法
4*4字节矩阵 1、字节替换 2、循环左移 3、列混合 4、轮密钥加(异或)
几种分组密码的模式,每种的意思,差错传递情况
ECB无错误传播 CBC有,仅影响该组和下一组,后面的不会受影响 CFB会影响到当前组和后面[n / j]组(n为总组数,j为当前组数) OFB错误不会传播,但更易受到对信息流的篡改 CTR较为简单,不依赖明文和密文输入,可以并行处理
DH密钥协商算法(自学)
几种典型的古典密码,如何变化,特点
传统隐写法:隐藏信息在大段文字 替换:例如数字替换为文字 换位:index=1位置的数字换成index=5的数字
现代密码学特点概念,分类,每种算法基于什么困难,常用的国密算法
概念:明文 密文 加密 解密 加密算法 解密算法 分类:对称密钥密码体制 非对称密钥密码体制 分组密码体制 序列密码体制 确定型密码体制 概率密码体制 单向变换密码体制 双向变换密码体制
国密:SM系列+祖冲之+SSF33
计算安全性概念等
被动攻击:是未经用户同意和认可的情况下将信息或数据文件泄露给系统攻击者,但不对数据信息进行任何修改
主动攻击:主要涉及某些数据流的篡改或虚假数据流的产生。主动攻击常分为假冒(或伪造)、重放、篡改信息和拒绝服务四类。
分组密码,序列密码相关基础知识、线性反馈(自学)
分组:1、直接扩充法(指定填充长度)2、密文挪用扩充
序列:线性反馈移位寄存器(LFSR)
每一状态对应于GF(2)上的一个n维向量,共有2^n^ 种可能的状态。每一时刻的状态可用n长序列
n级线性反馈移位寄存器的状态周期小于等于2^n^-1。输出序列的周期与状态周期相等,也小于等于2^n^-1。只要选择合适的反馈函数便可使序列的周期达到最大值2^n^-1
哈希函数基础,概念,特点
Hash函数是一公开函数,可以将任意长的消息m映射为较短的、固定长度的一个值,记为H(m),函数值H(m)的值称为哈希值。
可以看作是一种单向密码体制,即它从一个明文到密文是不可逆映射
几类哈希函数,不同哈希函数的意思,多少bit,特点
SHA-256与SHA-1算法一样,以512-bit分块为基本处理单位,每分块又划分为16个32-bit字进入哈希函数中处理操作。
而SHA-384、SHA-512与SHA-1算法不同,是以1024-bit分块为基本处理单位,每分块是划分为16个64-bit字进入哈希函数中处理操作。
注意:SHA-xxx,xxx即为生成的信息摘要长度,例如SHA-512生成的信息摘要为512bits
SHA-3中也提出了4个Hash算法SHA3-224, SHA3-256, SHA3-384, SHA3-512,可完全替换SHA-2。采用了不同于传统MD结构,而选择了海绵构造(sponge结构)
MD5由RSA的创始人Rivest设计开发的,能接收任意长度的消息作为输入,并生成其128 bits哈希值
MD5散列函数总共两组输入:512 bits 明文分块和上一组128 bits的输出块
数字签名概念,模型,特点,过程,如何变化的
数字签名应满足:
① 签名的产生必须使用发方独有的一些信息以防伪造和否认。
② 签名的产生应较为容易。
③ 签名的识别和验证应较为容易。
④ 对已知的数字签名构造一新的消息或对已知的消息构造一假冒的数字签名在计算上都是不可行的。
步骤:
第一步:将消息按散列算法计算得到一个固定位数的消息摘要值
第二步:对消息摘要值用发送者的私有密钥加密,所产生的密文即称数字签名。然后该数字签名同原消息一起发送给接收者。
第三步:接收方收到消息和数字签名后,用同样的散列算法对消息计算摘要值,然后与用发送者的公开密钥对数字签名进行解密,将解密后的结果与计算的摘要值相比较。如相等则说明报文确实来自发送者。
基于RSA的数字签名
一个普通的数字签名算法通常包括2个部分:签名算法和验证算法。
- 在签名阶段,签名者用自己的私钥对消息进行签名;
- 在验证阶段,验证者则通过签名者对应的公开钥进行验证。
差别
RSA加密算法 “公钥加密,私钥解密”
RSA签名算法 “私钥签名,公钥验证”
消息认证码的概念,与数字签名的异同
消息认证码MAC(Message Authentication Code,MAC):由以消息和密钥作为输入的公开函数产生的认证信息。
C是MAC函数,它利用密钥K和任意长度的消息M来生成一个固定长度的短数据块MAC。$MAC = C_{k}(M)$
消息认证其作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造。
数字签名与消息认证的区别
- 数字签名——第三者可以确认收发双方的消息传送(数字签名必须与所签文件捆绑在一起。)
- 消息认证——只有收发双方才能确认消息的传送
数字证书基础
数字证书就是标志网络用户身份信息的一系列数据,用来在网络通讯中识别通讯各方的身份,即要在Internet上解决“我是谁”的问题,就如同现实中我们每一个人都要拥有一张证明个人身份的身份证或驾驶执照一样,以表明我们的身份或某种资格。
一张数字证书通过一个公钥和与之对应的私钥来证明身份的唯一性
基于非对称密码体制和对称密码体制都可以产生数字签名。不过,基于对称密码体制的数字签名一般都要求有可信任的第三方,在发生纠纷的时候作为仲裁者。
密钥管理,层次化密钥管理,结构特点,为什么需要密钥管理
密钥管理:就是在一定的安全策略指导下完成密钥从产生到最终销毁的整个过程,包括密钥的生成、建立(分配和协商)、存储、托管、使用、备份/恢复、更新、撤销和销毁等.
层次化的密钥结构:
为什么需要密钥管理?
但当密钥丢失时,非法用户将有可能窃取保密信息。
最后复盘笔记
密码学在信息安全中的作用
密码学绝不是保证信息安全的唯一技术,也不能解决所有安全问题,除了技术,管理也是重要的方面,密码编码与密码分析一直处于动态平衡
密码学的基本概念
密码编码学寻找生成高强度密码的有效算法,以满足对信息进行加密
密码分析学是破译密码或者伪造认证密码,窃取机密
现代密码学除了密码编码和密码分析,现在还有密钥密码学
截取密文叫做被动攻击,注入假信息的攻击称为主动攻击
密码体制构成与分类
密码体制构成
构成:(一个密码算法由五部分构成)
铭文空间M 密文空间C 密钥空间K (均为全体xx的集合)
加密器(加密变换)E 由加密秘钥控制的加密变换的集合
解密器(解密变换) D 同上,加密改成解密就行
完整的密码系统由密码体质,信源,信宿和攻击者构成
传统密码采用的加密秘钥和解密密钥相同
密码体制分类
替换密码体制:明文中每个元素重新排列,映射到另外一个元素
根据密文数据段和明文数据段在整个明文中的位置,可以将密码体制其分为分组密码体制和序列密码体制
加密变换是否可逆:单向和双向密码变换体制 单向可以将明文加密成密文,却不能从密文转换为明文。
是否引入客观随机因素:确定性密码体制和概率密码体制 概率密码保密强度大,但加密开销大,密文比明文长的多
密码体制安全的方法与条件
三种方法:
1、无条件安全:提供无穷资源仍然无法破译
2、可证明安全性:与数学题挂钩,因为数学题难以破解,所以算法目前难以破解,有风险
3、计算安全性:用最好的方法破解超过了破译者的资源,也就是耗不起,即有计算安全性。
要使得密码安全需要满足的条件:
1、每一个加密函数和解密函数都有有效的解
2、取得秘闻不能再有效时间中破译出密钥和明文
3、穷举破译将是不可行的,密钥空间非常大。
了解古代密码体制(Vigenere必考)
1、单字符单表替换密码技术
1.1、乘法密码技术:对所有密码都使用一个固定映射
1.2、加法:对密码+固定数字并取模
1.3、仿射密码:一个字母被另外一个字母替换,Vigenere的雏形,不过所用的密钥是同一个
2、单字符多表替换密码技术
2.1、Vigenere密码
使用一个词组作为密钥,词组中的每个字母都作为以为替换密码的密钥,并确定一个替换表
利用一个替换表,完成明文到密文字母的转换,其实就是向后推移
明文 e 密钥 4 密文 i e + 4 = i
2.2、Hill(希尔)密码
线性变换。将n个明文字母通过线性变换为n个密文字母,利用矩阵的思想
DES
DES是Feistel密码结构,轮数通常取16轮,过程就是多个阶段的代替与置换
明文分组都是64bit 有效密钥长度56bit 四种运行模式:电码本(ECB)模式,分组链接(CBC)模式,密码反馈(CFB)模式,输出反馈(OFB)模式
密钥的生成是由初始化密钥64bit -> 28 + 28(八位留作校验位) -> 循环左移位 -> ip置换为48bit子密钥
关键步骤:初始化IP 与 F函数(E扩 轮或 S压 P置)
其中,初始化IP与P置基本上用途类似
AES
明文分组128bits,密钥有128、192、256bits三种选择
代替-置换网络(S[substitute] - P[Permutation])结构
关键步骤:SubBytes替换 – 》循环左移(0,1,2,3) – 》 列混合 –》 轮密钥加
域有分配率,可以拆开。
分组密码的工作模式
电码本(ECB)模式:利用加密算法各分组数据组加密
分组链接(CBC)模式,
密码反馈(CFB)模式,
输出反馈(OFB)模式
计数器(CTR)模式
RSA
1、选pq
2、计算n和φ(n)
3、选公钥e,1 < e < φ(n)
4、计算私钥d,满足d * e 等价于 1 mod φ(n)
5、以{e、n}为公开钥,{d、n}为秘密钥
加密:对明文进行分组,使得对应的十进制数小于n,即分组长度小于$log_{2}^{n}$,对每个明文分组m作加密运算。
密文C 等价于 m^e^ mod n m:分组后明文 C:加密后信息
解密:m 等价于 c^d^ mod n n:两素数乘积
公钥{e, n} 私钥{d, n}
ELGamal
与RSA过程类似,但ELGamal是一个非确定性算法,对于相同信息m,由于随机数k(1<k<p)选择不同,所得的密文也不同。
有一个缺点是信息扩展,即秘闻长度是对应明文长度的两倍,对网络带宽受限的应用尤其不利。
Hash函数概念与结构
Hash函数的H是一个公开的函数,不需要密钥,能将任意长的信息m映射为较短的、固定长度的一个值H(m)。
对他有六个要求
1、能接受任意长度的信息作为输入
2、能生成较短的,固定长度的输出
3、对任何信息输入,都应该容易且快速的计算出哈希值
4、具有单向性,也就是计算上恢复m是不可行的
5、能抵挡弱碰撞,即给定m和 H(m),找到另外一个消息m ≠ m’ ,使H(m) = H(m’)是不可能的。
6、能抵挡强冲突,即m和m’存在时,H(m) = H(m’)是几乎不可能的。
Hash函数算法
一般哈希函数,不会说成 MD5加密、SHA-1加密,而是说哈希算法。哈希出来的结果,一般也成为摘要值,哈希值,散列值,而不会说“密文”。
SHA-1算法
扩充
假设输入消息M, 保证整个消息长度是512bit的倍数
假设M长度为 l 个bit,在M尾部加一个1的比特位,和k个0的比特位,并且保证l + 1 + k 等价于 448(mod 512) k为最小的非负整数
然后再在填充消息的末尾添加64-bit块,这64位是原始消息变换为二进制的长度(abc:共24bit,长度就是24),个数小于64的话,则在左边补0,使得长度刚好等于64
扩展
其中ROTL表示循环座椅t bit,ROTL^1^表示循环左移1 bit。
例如
W[16]其实就等于61626380循环左移一位(w[13]w[8]w[2]均为0)
SHA-2
SHA-256,SHA-384,SHA-512统称为SHA-2,
SHA-256与SHA-1一样以512bit分块作为基本处理单位,每分块又划分为16个32bit字,而SHA-384,SHA-512与SHA-1算法不同,是以1024bit作为基本处理,然后每分块分为16个64bit
消息认证
消息认证是一个过程,用以验证接收消息的真实性、顺序性、时间性
检验内容应该包括:
1、证实信息的源和宿
2、消息内容是否曾收到偶然或有意的篡改
3、消息的序号和时间先后
这种认证只在通信双方进行,不允许第三者进行,不一定是实时的,可用消息认证码对消息做认证。
消息认证码(MAC Message Authentication Code)是用做认证的固定长度的数值
但必须持有共享密钥才能计算MAC值,这一点可用理解为单向的哈希函数。
各种攻击手段
唯密文攻击(COA)是指仅仅知道密文的情况下进行分析,求解明文或密钥的密码分析方法。
已知明文攻击(KPA)是指攻击者掌握了部分的明文M和对应的密文C,从而求解或破解出对应的密钥和加密算法。
选择明文攻击(CPA)是指攻击者除了知道加密算法外,还可以选定明文消息,从而得到加密后的密文,即知道选择的明文和加密的密文,但是不能直接攻破密钥。
选择密文攻击(CCA)是指攻击者可以选择密文进行解密,除了知道已知明文攻击的基础上,攻击者可以任意制造或选择一些密文,并得到解密的明文,是一种比已知明文攻击更强的攻击方式。
难易程度:选择密文攻击(CCA)<选择明文攻击(CPA)<已知明文攻击(KPA)<唯密文攻击(COA)