当前位置:
文档之家› 第2章 密码学基础(21-23)
第2章 密码学基础(21-23)
凯撒Caesar密码
凯撒密码体系的数学表示:
M=C={有序字母表},q = 26,k = 3。 思考: (c-3)有没有负数的 其中q 为有序字母表的元素个数,本例采用英文字母表, 可能?如果是负数该怎 么计算?(加法逆元) q = 26。
加密函数:Ek(m)
= (m+3) mod 26; 解密函数:Dk(c) = (c–3) mod 26;
多表代替密码是以一系列代替表依次对明文消息的字
母进行代替的加密方法。
多表代替密码使用从明文字母到密文字母的多个映射
来隐藏单字母出现的频率分布。
每个映射是简单代替密码中的一对一映射
若映射系列是非周期的无限序列,则相应的密码称 为非周期多表代替密码。 对每个明文字母都采用不同的代替表(或密钥)进行 加密,称作一次一密密码。
近代密码(计算机阶段)
依据密码体制的特点以及出现的时间分类:
古典替换密码:一般是文字替换,使用手工或机械变换 的方式实现。 对称密钥密码:加密密钥=解密密钥 公开密钥密码:加密密钥≠解密密钥
依据处理数据的类型
分组密码:将明文分成若干固定长度的组,用同一加密 算法对每一个明文分组进行加密,输出等长的密文组。 序列密码:流密码,加密时一次处理一个元素。
②
③ ④ ⑤ ⑥ ⑦ ⑧
if (Y3=0) then return d-1 = null //无逆元 if (Y3=1) then return d-1 = Y2 //Y2为逆元 Q = X3 div Y3 //整除 (T1,T2,T3) = (X1 - Q×Y1,X2 - Q×Y2,X3 - Q×Y3) (X1,X2,X3) = (Y1,Y2,Y3) (Y1,Y2,Y3) = (T1,T2,T3) Goto ②
密钥不变情况下,对所有可能的明文加密直到得到与 截获的密文一致为止(完全试凑法)。
理论上会成功,但实际中不可行。
数学分析法 利用一个或几个已知量(密文或明文-密文对)用数 学关系式求解未知量(密钥)。
统计分析法 对截获的密文进行统计分析,找出规律,并与明文 的统计规律进行对照比较,从中提取对应关系。
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)
逆元。
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),
非周期多表代替密码
维吉尼亚Vigenere密码
维吉尼亚Vigenère密码
是以移位代替为基础的周期多表代替密码。 加密时每一个密钥被用来加密一个明文字母,当所有 密钥使用完后,密钥又重新循环使用。 Ek(m)=C1 C2 „ Cn,其中Ci=(mi + ki)mod 26; 密钥K可以通过周期性反复使用以至无穷。
Mod 26 解密过程
基于统计的密码分析
单表代替密码的加密是从明文字母到密文字母的一一映射 攻击者统计密文中字母的使用频度,比较正常英文字母的 使用频度,进行匹配分析。 如果密文信息足够长,很容易对单表代替密码进行破译。
14 12
12.702
相对使用频度(%)
10
8.167
9.056 6.996 6.094 4.253 4.025
依据密码分析形式
密码分析(密码攻击)
攻击者在不知道密钥的情况下,对密文进行分析,试图获 得机密信息(明文或密钥)。 密码编码与密码分析是共生的、互逆的,两者解决问题的 途径有很多差别。
密码编码设计是利用数学基础构造密码。 密码分析出了依靠数学、工程背景、语言学等知识外,还靠经验、 测试、眼力、运气、直觉判断能力等。
解密黑盒子,可解密任意密文得到相应
的明文
被动攻击和主动攻击
被动攻击:攻击者可以用搭线窃听等方式直接获得未经加 密的明文或者加密后的密文,并分析得知明文。(不破坏 原始信息) 主动攻击:攻击者采用删除、更改、增添、重放、伪造等 手段主动向系统注入假消息。
密码攻击的方法
穷举分析法
对截获的密文依次用各种密钥试译,直到得到有意义 的明文;
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 多表代替密码
若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,二者互素) 算法描述:
未经过加密的原始消息称为明文m(Plain Text)。
伪装消息以隐藏它的内容的过程称为加密E(Encrypt)
加密后的消息,即经过伪装后的明文称为密文c(Cipher Text) 把密文转变为明文的过程称为解密D(Decrypt)。
密码 方案
确切地描述了加密变换和解密变换的具体规则
维吉尼亚Vigenère密码算法如下:
维吉尼亚Vigenere密码举例
ห้องสมุดไป่ตู้
(6,20,13)
q qcyrnukg
u
k
2.3 对称密钥密码
对称密钥密码算法,又称单密钥密码算法、传统密 码算法。
通信双方共享密钥,即ke=kd
常用的算法:DES、RC5、AES等
2.1.3 密码的分类
密码学发展历史
古代加密方法(手工阶段)
公元前440年古希腊战争的隐写术 斯巴达人公元前400年应用的Scytale加密工具 古代藏头诗
古典密码(机械阶段)
古罗马Caesar密码——单表加密 Enigma转轮密码
1949年Claude Shanon ―秘密体制的通信理论” 1976年W.Diffie和M.Hellman提出公钥密码思想 1978年RSA公钥密码体制出现
核心基础。
研究内容
密码学以研究秘密通信为目的,即研究对信息采用何种秘 密的变换以防止第三方窃取,包括密码编码学和密码分析 学两部分。
密码编码学:研究如何编码,采用什么样的密码体制保证 信息被安全加密。 密码分析学:破译密文,在未知密钥的情况下推演出铭文 和密钥的技术。
2.1.2 密码体制
M=C={字母表},q=26;
K={k∈整数集 | 0<k<26,gcd(k,26)=1} ;
Ek ( m ) = k×m mod q。 Dk(c)=k-1×c mod q,其中k-1为k在模q下的乘法逆元。
密钥取值与乘法逆元
乘数密码的密钥k与26互素时,加密变换才是一一映射的。 k的选择有11种:3、5、7、9、11、15、17、19、21、 23、25。K取1时没有意义。
2.2 古典替换密码
2.2.1 简单代替密码
指将明文字母表M中的每个字母用密文字母表C中的相 应字母来代替 例如:移位密码、乘数密码、仿射密码等。
移位密码
具体算法是将字母表的字母右移k个位臵,并对字母 表长度作模运算。
每一个字母具有两个属性,本身代表的含义,可计算的位 臵序列值: 加密函数:Ek(m) = (m+k) mod q ; 解密函数:Dk(c) = (c–k) mod q;
仿射密码
可以看作是移位密码和乘数密码的结合。
密码体制描述如下:
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
解密函数:
Dk(y)=21(y -3) mod 26 =21y – 11 (mod 26)。 加密明文“yes”的加密与解密过程如下:
Ek
y e s
= 5×
24 4 18
+
3 3 3
=
19 23 15
=