密码学考核:50大论文+50考试(最后一节课,不进考期,闭卷考试,需要背一些基本知识)
绪论
-
信息安全目标:机密性、完整性
-
安全威胁:病毒、蠕虫、木马、小程序
-
安全服务
- 加密保护机密性:防暴露攻击、防窃听、防流量分析
- 身份认证
- 访问控制
- 保护完整性
- 不可否认性
-
明文:消息初始形式 P=[P1, P2, …, Pn]
-
密文:加密后的形式 C=[C1, C2, …, Cn]
-
密码系统满足P = D(E§) P为铭文,E为加密算法,D为解密算法
-
签名:确认身份
密码数学A
整数运算
-
带余除法:a÷n=q…r,n为正数,r非负数。
-89=7*(-12)-5=7*(-13)+2
因此-89÷7=-13...2
-
整除性:a=q*n,n整除a,记作
n|a
- 若 a|b,且 a|c,则 a|(mb+nc) m、n为任意整数
-
b与c 的最大公因子记为: ·
gcd(b, c)
-
Euclidean欧几里得算法(辗转相除)
gcd(a,0)=a
(规定任何整数都是0的因子)- 若
a=qb+r
则gcd(a,b)=gcd(b,r)
- eg.辗转相除法求最大公因数
- 140÷12=11…8
gcd(12,140)=gcd(12,8)=gcd(4,0)=4
-
扩展Euclidean欧几里得算法
-
若
gcd (a, b) = r
,必存在整数 s,t 使r = s*a+t*b
-
若
gcd (a, b) = 1
(a与b互素),必存在整数 s和t,使s*a+t*b =1
-
线性丢番图方程
-
整数一次不定方程 :
ax + by = c
称为“丢番图方程”。 -
ax + by = c 若 d = gcd(a,b) 不能整除 c, 则方程无解。 若 d | c , 则方程有无穷多组解。 两端同除d, 化为 a1 x+b1y= c1,同解。 通解为: x = s*c1 + k*b1 y = t*c1 – k*a1 其中 s和 t 满足 s*a1+t*b1 = 1
模运算
整数集Z 模n后得到 集合 Zn = { 0, 1, 2, 3, … , n-1}
定理 1 —— 运算规则
(a±b) mod n= (a mod n) ± (b mod n)
(a×b) mod n= (a mod n) × (b mod n)
10n mod x = (10 mod x)n
101 mod 11 = -1
十进制数模3或模9,等于各位数码之和模3或模9。 十进制数被3或9 整除 ,当且仅当各位数码之和能被3或9整除。
逆运算
-
加法逆:若 a+b = 0 mod n,则 a与b互为加法逆。
-
乘法逆:若 a×b =1 mod n,则 a与 b 互为乘法逆。b = a -1 可能存在,也可能不存在。若 a -1 存在,称其为a 的乘法逆(逆元)。
-
a有乘法逆 <=>
gcd(a, n) =1
,即a与n互素。 -
互为Zn乘法逆就是说,两个数相乘的结果mod n为1。
-
辗转相除法求乘法逆
-
原理:设gcd(n,b)=1,b-1存在;有
s×n+b×t = 1
;两边都mod n,有0 +(b×t)mod n = 1
,b-1=t mod n
-
步骤:在Z26 中求 11-1 / 11的乘法逆 / 求11-1 mod 26,
-
首先验证
gcd(26,11)=1
,11在Z26中有乘法逆 -
s×26+ t×11 = 1
辗转相除计算出 t, -
q r1 r2 r t1 t2 t 2 26 11 4 0 1 -2 2 11 4 3 1 -2 5 1 4 3 1 -2 5 -7 3 3 1 0 5 -7 26 1 0 -7 26 -
t=-7 mod 26 = 19
,(11,19)互为乘法逆
-
-
-
-
加法集:Zn,有加法逆的元素全体
-
乘法集:Zn*,有乘法逆的元素全体
- Z6* ={1, 5}
矩阵模运算
模n线性方程组
传统密码学
代换密码
-
单码代换:简单且便于记忆,但不能抵抗频率统计攻击
- 凯撒密码:循环移位密码,加密字母后移3位
- 加法密码:加密算法:C= (P+k) mod 26;解密算法:P= (C- k) mod 26;密码域26
- 乘法密码:加密算法:C= (P×k) mod 26;解密算法:P= (C×k-1 ) mod 26; k∈Z*26 = { 1,3,5,7,9,11,15,17,19,21,23,25},密码域大小12
- 仿射密码:加密算法:C= (P×k1+k2) mod 26;解密算法:P= (C-k2)×k1-1 ) mod 26;密码域12*26=312
- 单表密码:26! 常用方法是在字母表中先排列出密钥字,在密钥字后面填上剩余字母。用长的密钥字,更难以判断是何种文字密钥。
-
多码代换:隐藏了字母频率特征,可以防范频率统计攻击。
- 自动密钥密码:密钥域26
PlayFair
密码:5*5矩阵,加密:同行右移、同列下移、对角反转。密钥域25!
,隐藏了单字母的频率,攻击可针对双字母组合。Vigenere
密码- Hill密码(矩阵密码):加密方法:矩阵乘法C = P * K mod 26、解密方法: P = C*K-1 mod 26
- 一次一密密码OTP:加密方法: Ci = Pi * Ki mod 26、解密方法: Pi = Ci-*Ki mod 26
换位密码
采用移动字母位置的方法
- 无密钥换位
- 栅栏密码:加密:竖写横读;解密:横写竖读
- 表格换位
- 有密钥换位: 密钥 K 就是一个指定的置换。
- 双换位与组合换位:将换位方法重复2次。不同密钥,多次组合。
- 换位密码的分析
- 频率分析:
- 特征:保留单字频率,但不保留双字母、三字母频率
- 攻击:判断是换位密码,然后单字母频率攻击
- 蛮力攻击
- 攻击1:遍历所有可能的20字母排列,20!
- 攻击2:遍历所有可能的密钥 k,列数未知,可能有
1! + 2! + … + 20! - 攻击3:猜测列数
- 模式攻击(猜测列数)
- 攻击:寻找字母位置的排布模式,进而猜测列数 n
- 频率分析:
密码机
- 转轮密码
- Enigma 密码机