当前位置:
文档之家› 第2章 密码学基础(2.1-2.3)(1)
第2章 密码学基础(2.1-2.3)(1)
若c-3<0,假设c-3的值为-x,那么(-x)即为x关于模26的加法逆 元。根据加法逆元的特点求: (x+y)mod26=0
例如:假设c=1(即密文字符为‘b‘),解密后明文m=(-2)mod26 =26-2=24(即明文字符为‘y‘)。
乘数密码
将明文字母串逐位乘以密钥k并进行模运算。 数学表达式:Ek ( m )=k×m mod q, gcd (k, q) = 1(表示k与q的最大公因子为1,二者互素) 算法描述:
k-1为k在模q下的乘法逆元。
其定义为k-1×k mod q =1
可采用扩展的欧几里德算法。欧几里德算法又称辗转相 除法,用于计算两个整数a和b的最大公约数。
求解乘法逆元的方法
扩展的欧几里得算法: 求d关于模f的乘法逆元d-1 ,即 d×d-1
mod f = 1 ① (X1,X2,X3) = (1,0,f); (Y1,Y2,Y3) = (0,1,d)
第2章 密码学基础
主要内容
2.1 2.2 2.3 2.4 2.5 2.6 密码学基础知识(密码体系结构及关键概念) 古典替换密码(仿射密码) 对称密钥密码(DES) 公开密钥密码(RSA) 消息认证(认证函数、数字签名) 密码学新进展
2.1 密码学基础知识
意义
解决数据的机密性、完整性、不可否认性以及身份识别等 问题均需要以密码为基础,密码技术是保障信息安全的 核心基础。
密码攻击的方法
穷举分析法
对截获的密文依次用各种密钥试译,直到得到有意义 的明文;
密钥不变情况下,对所有可能的明文加密直到得到与 截获的密文一致为止(完全试凑法)。
理论上会成功,但实际中不可行。
数学分析法 利用一个或几个已知量(密文或明文-密文对)用数 学关系式求解未知量(密钥)。
统计分析法 对截获的密文进行统计分析,找出规律,并与明文 的统计规律进行对照比较,从中提取对应关系。
依据处理数据的类型
分组密码:将明文分成若干固定长度的组,用同一加密 算法对每一个明文分组进行加密,输出等长的密文组。 序列密码:流密码,加密时一次处理一个元素。
依据密码分析形式
密码分析(密码攻击)
攻击者在不知道密钥的情况下,对密文进行分析,试图获 得机密信息(明文或密钥)。 密码编码与密码分析是共生的、互逆的,两者解决问题的 途径有很多差别。
伪装消息以隐藏它的内容的过程称为加密E(Encrypt)
加密后的消息,即经过伪装后的明文称为密文c(Cipher Text) 把密文转变为明文的过程称为解密D(Decrypt)。
密码 方案
确切地描述了加密变换和解密变换的具体规则
加密算法 对明文进行加密时所使 用的规则的描述E(m)
解密算法 对密文进行还原时所使 用的规则的描述D(c)
非周期多表代替密码
维吉尼亚Vigenere密码
维吉尼亚Vigenère密码
是以移位代替为基础的周期多表代替密码。 加密时每一个密钥被用来加密一个明文字母,当所有 密钥使用完后,密钥又重新循环使用。 Ek(m)=C1 C2 „ Cn,其中Ci=(mi + ki)mod 26; 密钥K可以通过周期性反复使用以至无穷。
研究内容
密码学以研究秘密通信为目的,即研究对信息采用何种秘 密的变换以防止第三方窃取,包括密码编码学和密码分析 学两部分。
密码编码学:研究如何编码,采用什么样的密码体制保证 信息被安全加密。 密码分析学:破译密文,在未知密钥的情况下推演出明文 和密钥的技术。
2.1.2 密码体制
未经过加密的原始消息称为明文m(Plain Text)。
2.228 2.015 0.772 0.153
8 6 4 2 0
2.782
1.492
7.507 6.749
6.327 5.987
2.406
2.758 1.929
2.36
1.974 0.15
0.978
0.095
0.074
a
b c
d e
f
g
h
i
j
k
l m n o p q
r
s
t
u v w x
y
z
2.2.2 多表代替密码
Mod 26 解密过程
基于统计的密码分析
单表代替密码的加密是从明文字母到密文字母的一一映射 攻击者统计密文中字母的使用频度,比较正常英文字母的 使用频度,进行匹配分析。 如果密文信息足够长,很容易对单表代替密码进行破译。
14 12
12.702
相对使用频度(%)
10
8.167
9.056 6.996 6.094 4.253 4.025
2.1.3 密码的分类
密码学发展历史
芦花丛中一扁舟, 古代加密方法(手工阶段) 俊杰俄从此地游。 公元前440年古希腊战争的隐写术 义士若能知此理, 斯巴达人公元前400年应用的Scytale加密工具 反躬难逃可无忧。
古代藏头诗 加密核心是3个转轮。在每个转轮的边缘上,都 标记着26个德文字母。 古典密码(机械阶段) 3个转轮组合起来,就能生成26×26×26=17576 古罗马Caesar密码——单表加密 种不同的变化。 Enigma转轮密码 多表替代——不断改变明文和密文的字母映射 近代密码(计算机阶段) 关系,对明文进行连续不断的换表加密操作。
密钥:加密和解密算法的操作在称为密钥(k)的元素 控制下进行。
加密通信模型
加密的过程:c=Eke(m)
解密的过程:m=Dkd(c)
完整密码体制要包括如下五个要素:
M是可能明文的有限集称为明文空间; C是可能密文的有限集称为密文空间; K是一切可能密钥构成的有限集称为密钥空间; E为加密算法,对于任一密钥,都能够有效地计算; D为解密算法,对于任一密钥,都能够有效地计算。
逆元。
K1=1时,相当于移位密码; k2=0时,相当于乘数密码。 当K1、k2同时为(1,0)无效。
仿射密码示例1
仿射密码示例2
设k=(5,3),注意到5-1 mod 26=21, 模运算的性质 加密函数: (a+b)mod n=[(a mod n)+(b mod n)]mod n (a-b)mod n=[(a mod n)-(b mod n)]mod n E (x)=5x+3 (mod 26),
字母 a b c d e f …. x y z
位置序列值
0
1
2
3
4
5
….
23
24
25
使用凯撒密码对明文字符串逐位加密结果如下:
明文信息 M = meet me after the toga party 密文信息 C = phhw ph diwho wkh wrjd sduwb
加法逆元
概念:对于x,如果(x+y) mod z=0,则y为x关于模z的 加法逆元。 解密函数:Dk(c) = (c–3) mod 26; y=26-x
截获的部分密文
加密算法 截获的部分密文和相应的明文
选择明文攻击
加密算法
加密黑盒子,可加密任意明文得到相应
的密文
选择密文攻击
加密算法
解密黑盒子,可解密任意密文得到相应
的明文
被动攻击和主动攻击
被动攻击:攻击者可以用搭线窃听等方式直接获得未经加 密的明文或者加密后的密文,并分析得知明文。(不破坏 原始信息) 主动攻击:攻击者采用删除、更改、增添、重放、伪造等 手段主动向系统注入假消息。
凯撒Caesar密码
凯撒密码体系的数学表示:
M=C={有序字母表},q = 26,k = 3。 思考: (c-3)有没有负数的 其中q 为有序字母表的元素个数,本例采用英文字母表, 可能?如果是负数该怎 么计算?(加法逆元) q = 26。
加密函数:Ek(m)
= (m+3) mod 26; 解密函数:Dk(c) = (c–3) mod 26;
密码编码设计是利用数学基础构造密码。 密码分析出了依靠数学、工程背景、语言学等知识外,还靠经验、 测试、眼力、运气、直觉判断能力等。
根据密码分析者对明文、密文等数据资源所掌握的程度, 将密码分析攻击划分为不同的形式:
密码攻击分类
攻击类型 唯密文攻击 已知明文攻击
加密算法
攻击者拥有的资源
仿射密码
可以看作是移位密码和乘数密码的结合。
密码体制描述如下:
M=C=Z/(26);q=26;
K={
k1,k2∈Z | 0< k1,k2<26,gcd(k1,26)=1};
mod q; k1-1( c - k2) mod q,其中k1-1为k1在模q下的乘法
Ek(m)=(k1m+k2) Dk(c)=
例如:k=7, 求解7-1(7关于模26的乘法逆元)
循环次数 初值 1 2 3 Q
无
X1 1 0 1 -1
X2 0 1 -3 4
X3 26 7 5 2
Y1 0 1 -1 3
Y2 1 -3 4 -11
Y3 7 5 2 1
3 1 2
-11即为求得的结果,是11关于模26的加法逆元,即15。
验证:
加密算法:Ek(m)=k×m mod q 解密算法:Dk(c)=k-1×c mod q 若密钥k=7,m=3(明文字符为‘d‘),则加密后 c=3×7mod26=21(‗v‘) 解密时:已知c=21,求解m=7-1×21mod26=15×21mod26=3