《深入浅出密码学》|ing
一、密码学和数据安全导论
1.1对称密码学
1.1.1基础知识
-
了解明文密文密钥|公钥私钥的含义以及相关流程
-
加密算法一般都是公开的,不公开的加密算法无法确保安全性
1.1.2简单对称加密:替换密码
- 如何破译密文(得到密码表)
- 蛮力攻击或穷尽密钥搜索
- 字母频率攻击(根据英文字母的出现频率,单词字母的组合,常用单词出现的频率来进行破译)
1.2密码分析
破译密码体制的一般思路
-
经典密码分析
- 发现加密方法内部结构的分析攻击
- 将加密算法看成黑盒,试图测试所有可能密钥的进行破解的蛮力攻击
-
实施攻击
-
旁道分析获得密钥(测量处理私钥的处理器的功耗)
-
信号处理技术从功耗轨迹中恢复出密钥
-
电磁辐射或算法运行时的行为都隐含着一定的密钥信息
以上方法只适用于物理访问的密码体制
-
-
社会工程攻击
合适的密钥长度
通过蛮力破解跟密钥的长度关系非常大
1.3模运算和多种古典密码
模运算在现代密码学中的非对称算法中占有重要地位。本书主要介绍凯撒密码和仿射密码。
1.3.1模运算
除以模数,考虑余数
-
余数的计算
-
余数不唯一
-
等价类中所有成员的行为等价
- 理解什么是等价类:模m之后具有相同余数的一组数构成一个等价类
- 对于一个给定的模数m,选择等价类中任何一个元素用于计算的结果都是一样的。不管在等价类中怎么切换,任何模数计算的最终结果都是相同的。
-
余数的选择问题
一般选择满足以下条件的r:
0<=r<=(m-1),但从数学角度来看,选择等价类中任何一个元素对最后的结果都没有任何影响。
1.3.2整数环
- 如果环内任何两个数相加或相乘得到的结果始终在环内,那么这个环就是封闭的
- 加法和乘法可以相互结合
- 加法中存在中性元素0,使得对每个\(a∈Z_m\)都有a+0 \(\equiv\) a mod m
- 环中任何元素a都存在一个负元素-a,使得a+(-a)$\equiv$0 mod m,即加法逆元始终存在。
- 乘法中存在中性元素1,类似上
- 不是所有元素都存在乘法逆元。假设a∈Z,乘法逆元\(a^{-1}\)可以定义为:$a*a^{-1}\equiv\(1 mod m. 如果a的乘法你愿存在,则可以除以这个元素,因为b/a\)\equiv\(b*\)a^{-1} mod $ m
- 通过欧几里得算法可以判断某个元素的逆元,另外可以通过看当且仅当gcd(a,m)=1(互素),一个元素a ∈Z存在乘法逆元\(a^{-1}\),gcd表示最大公约数。
1.3.3移位密码(凯撒密码)
1.3.4仿射密码
1.3.5希尔密码
1.3.6维吉尼亚密码
二、序列密码
定义:序列密码也叫流密码,由密钥发生器产生密钥流,密钥流对一串明文进行加密
2.1 典型序列密码算法
- A5-1算法
- SNOW算法
- ZUC算法
- Trivium算法
2.2 密码编码学
- 对称密码学
- 分组密码
- 序列密码
- 非对称密码
- 密码协议
2.3序列密码的加密与解密
-
加密解密使用相同的函数
-
使用简单的模2加法进行加密
-
序列密码加密的密钥流长度与明文长度相同,将该铭文看作字符串或比特串,并逐字符或者逐位进行加密,为了防止密钥穷举,使用和明文信息一样长的密钥流进行加密
-
序列密码分为同步序列密码和自(异)同步序列密码。啥区别呢,就是前者密钥序列独立于明文序列和密文序列。后者并不独立。
-
同步序列密码特点:消息的发送者和接受者必须同步,即相同的密钥。
-
自同步序列密码特点:明文统计扩散。
2.4随机数生成器(RNG)
2.4.1 真随机数生成器(TRNG)
2.4.2 伪随机数生成器(PRNG)
2.4.3 加密安全的味素技术生成器
2.5 一次一密
2.6 利用PRNG构建密钥流
2.7 基于移位寄存器的序列密码
2.7.1 线性反馈移位寄存器
2.7.2 针对单个的LFSR的已知明文攻击
2.7.3 Trivium
-