密码技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理论上不可攻破的系统只有一次一密系统:密钥随机产生、 与明文等长、只使用一次。 明文
明文序号
随机密钥 密文序号 密文
s 18 5 23 x
e 4 13 17 r
n 13 1 14 o
d 3 0 3 d
h 7 7 14 o
e 4 2 6 g
l 11 20 5 f
p 15 16 5 f
本处加密算法: (明文+密钥) mod 26
8 7 6 5 4 3 2 1
48 47 46 45 44 43 42 41
16 15 14 13 12 11 10 9
56 55 54 53 52 51 50 49
24 23 22 21 20 19 18 17
64 63 62 61 60 59 58 57
32 31 30 29 28 27 26 25
若m1和m2在密钥方阵的同一列,则C1和C2分别是m1和m2下 边的字母(第一行视为最后一行的下边)。
若m1和m2位于不同的行和列,则C1和C2是以m1和m2为顶点 的长方形中的另外两个顶点,其中C1和m1、C2和m2处于同一 行。 若m1=m2,则在m1和m2之间插入一个无效字母,如“x”,再 进行以上判断和指定。 若明文只有奇数个字母,则在明文末尾加上一个无效字母。
密文:kxqdq xqlyhuvlwb 明文:Hunan University
例三 多表代换密码
经典的维吉尼亚密码 仍能够用统计技术进行分析
需选择与明文长度相同并与之没有统计关系的密钥
明文 密钥 H E 4 密文 L e c 2 g l h 7 s l o 14 s W E 4 A o c 2 q r h 7 y l o 14 z d e 4 h
B 的公钥 PKB B 的私钥 SKB
A
加密 E 运算 密文Y 加密算法 密文Y
解密
D 运算 解密算法
B
因特网
明文 X
明文 X
用户1 (保存用户2、3、4密钥)
用户2 (保存用户1、3、4密钥)
用户4 (保存用户1、2、3密钥)
用户3 (保存用户1、2、4密钥)
网络中4个用户之间使用对称加密技术
用户1 (保存自己的私钥、公钥)
加密密钥 K A E 运算 密文Y 加密算法 因特网 密文Y
解密密钥 K B D 运算 解密算法
明文 X
明文 X
3、 非对称密码体制(Asymmetric Key Crytosystem) 双钥密码体制(Two-key Crytosystem) 公钥密码体制(Public key Crytosystem)
行加密的运算。这是DES加密算法的核心部分。
逆初始变换(IP-1)。是第步变换的逆变换,这一变换过 程也不需要密钥,也是简单的移位操作。 输出64位码的密文。
初始变换IP
逆初始变换IP-1
置换码组 输入(64位)
输入(64位) 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7 40 39 38 37 36 35 34 33
难以解决数字签名验证的问题。
解决密钥分发的困难 数字签名的需要 依据数学问题的不同,可分为三类:
基于整数分解问题:RSA 基于离散对数问题:DSA,DH 基于椭圆曲线点群上离散对数问题:ECDSA
【RSA密码体制】 密钥产生
假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她 可以用以下的方式来产生一个公钥和一个私钥: 随意选择两个大的质数p和q,p不等于q,计算n=p×q。 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1) 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1) 用公式计算d:d× e ≡ 1 (mod (p-1)(q-1)) 将p和q的记录销毁。 e是公钥,d是私钥。d是秘密的,而n是公众都知道的。Alice将她 的公钥传给Bob,而将她的私钥藏起来。
输出(64位) L0(32位) R0(32位)
输出(64位)
t1t2t3…… t63 t64→ t58t50t42……t15 t7
t1t2t3…… t63 t64→ t40t8t48……t57 t25
D E S 加 密 过 程 图
Байду номын сангаас
Li
Ri
32位
密钥 移位
28位
移位
28位
扩展运算E
48位
压缩置换PC-2
0 0 1 0
输出4位
【对称密码体制的不足】
密钥使用一段时间后就要更换,加密方每次启动新密码时, 都要经过某种秘密渠道把密钥传给解密方,而密钥在传递 过程中容易泄漏。 网络通信时,如果网内的所有用户都使用同样的密钥,那 就失去了保密的意义。但如果网内任意两个用户通信时都 使用互不相同的密钥,N个人就要使用N(N-1)/2个密钥。因 此,密钥量太大,难以进行管理。 无法满足互不相识的人进行私人谈话时的保密性要求。在 Internet中,有时素不相识的两方需要传送加密信息。
置换选择函数PC-1
Ci(28位)
Di(28位)
14 3 23 16 41 30 44 46
17 28 19 7 52 40 49 42
11 15 12 27 31 51 39 50
24 6 4 20 37 45 56 36
1 21 26 13 47 33 34 29
5 10 8 2 55 48 53 32
流密码
利用密钥K产生一个密钥流,按字符逐位进行加/解密。
密钥流z=z0,z1,… ,其中zi=f(K,σi), σi是加密器中存储器在时 刻i的状态,f是K和σi产生的函数。
【DES加密过程】
明文分组:将明文分成64位一组
初始变换IP:对64位码进行移位操作
迭代过程。共16轮运算,这是一个与密钥有关的对分组进
先用自己的私人密钥对随机数进行解密,然后再用随机数对 信息进行解密。这样的链式加密就做到了既有RSA体系的保
密性,又有DES或IDEA算法的快捷性。
例一 希腊密码(二维字母编码查表): 公元前2世纪 1 A F L Q V 2 B G M R W 3 C H N S X 4 D IJ O T Y 5 E K P U Z
用户2 (保存自己的私钥、公钥)
Internet
用户4 (保存自己的私钥、公钥)
用户3 (保存自己的私钥、公钥)
网络中4个用户之间使用非对称加密技术
公开密钥密码体制的优点:
(1)密钥分配简单。由于加密密钥与解密密钥不同,且不 能由加密密钥推导出解密密钥,因此,加密密钥表可以像电 话号码本一样,分发给各用户,而解密密钥则由用户自己掌 握。
g 6 24 8 i
f 5 20 11 l
f 5 20 11 l
解密算法: (密文-密钥) mod 26
明文空间M 密 码 系 统 密文空间C 密钥空间K=<K1,K2>
加密算法E
解密算法D
1、加密/解密函数
Ek1 (m) c Dk2 (c) m Dk2 ( Ek1 (m)) m
2、 对称密码体制(Symmetric Key Crytosystem) 单钥密码体制(One-key Crytosystem) 经典密码体制(Classical Crytosystem)
3.1 数据加密概述
3.2 数据加密技术
3.3 数字签名技术
3.4 鉴别技术
3.5 密钥管理技术
密码编码学(cryptography)是密码体制的设计学。 密码分析学(cryptanalysis)则是在未知密钥的情况下从密 文推演出明文或密钥的技术。密码编码学与密码分析学合 起来即为密码学(cryptology)。 如果不论截取者获得了多少密文,但在密文中都没有足够 的信息来唯一地确定出对应的明文,则这一密码体制称为 无条件安全的,或称为理论上是不可破的。 如果密码体制中的密码不能被可使用的计算资源破译,则 这一密码体制称为在计算上是安全的。
对称密码体制算法比公钥密码体制算法快;公钥密码体
制算法比对称密码体制算法易传递,因而在安全协议中(例
如SSL和S/MIME),两种体制均得到了应用。这样,既提 供保密又提高了通信速度。 应用时,发送者先产生一个随机数(即对称密钥,每次 加密密钥不同),并用它对信息进行加密,然后用接收者的
公共密钥用RSA算法对该随机数加密。接收者接收到信息后,
(2)密钥的保存量少。网络中的每一密码通信成员只需秘 密保存自己的解密密钥,N个通信成员只需产生N对密钥, 便于密钥管理。 (3)可以满足互不相识的人之间进行私人谈话时的保密性 要求。
(4)可以完成数字签名和数字鉴别。发信人使用只有自己 知道的密钥进行签名,收信人利用公开密钥进行检查,既方 便又安全。
表1 二字母替换密码方阵
H
I E M V
A
C F N W
R
O G Q X
P
D K T Y
S
B L U Z
例如:明文为“bookstore”,求密文。 明文:bo ok st or ex 密文:ID DG PU GX GV
分组密码
按一定长度对明文分组,然后以组为单位用同一个密钥进行加/ 解密。 著名的分组密码算法有:DES(Data Encryption Standard), IDEA(International Data Encryption Algorithm),GOST (Gosudarstvennyi Standard),AES(Advanced Encryption Standard)。
1 2 3 4 5
密文:2315313134 明文:HELLO
例二 凯撒密码:公元前50年
公元前50年,古罗马的凯撒大帝在高卢战争中采用的加密 方法。凯撒密码算法就是把每个英文字母向前推移K位 (k=3)。 A B C D E F G …… X Y Z D E F G H I J …… A B C
17 9 26 18 35 27 44 36
63 55 47 39 31 7 62 54 46 38 14 6 61 53 45 21 13 5 28 20
23 15 30 22 37 29 12 4
C0(28位)
D0(28位)
密钥K是一个64位二进制块,其中8位是奇偶校验位,分别位于 第8,16,24,…64位。置换选择函数将这些奇偶校验位去掉,并 把剩下的56位进行换位,换位后的结果被分成两半。
Ki(48位) 置换选择函数PC-2
选择压缩的例子
10 =2
1 0 1 1 0 0
=6
输入6位
0 1 2 3
0 1 2 14 4 13 0 15 7 4 1 14 15 12 8
3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 15 11 8 3 10 6 12 5 9 0 7 4 14 2 13 1 10 6 12 11 9 5 3 8 8 13 6 2 11 15 12 9 7 3 10 5 0 2 4 9 1 7 5 11 3 14 10 0 6 13
48位
+
Ki
选择压缩S
32位
置换运算P + Li+1=Ri Ri+1 密钥
56位密钥
一轮迭代过程示意图
R0
32位
扩展运算E: 经初始变换后的64位序列右半 部分(32位)经选择扩展运算 E,将32位扩展成48位二进制 块: Ri-1=E(r1r2r3…r31r32 ) =r32r1r2r3…r31r32r1
32 4 8 12 16 20 24 28
1 5 9 13 17 21 25 29
2 6 10 14 18 22 26 30
3 7 11 15 19 23 27 31
4 8 12 16 20 24 28 32
5 9 13 17 21 25 29 1
E运算
选择运算E的结果
48位
密钥(64位)
57 49 41 33 25 1 58 50 42 34 10 2 59 51 43 19 11 3 60 52
作业1:请用C/C++实现vigenere密码
例四 多字母替换密码
Playfair是以英国科学家L.Playfair的名字命名的一种多字母替换 密码。英国曾在一战期间使用过二字母替换密码。每一对明文字 母m1和m2,替换规则如下: 若m1和m2在密钥方阵的同一行,则密文字母C1和C2分别是 m1和m2右边的字母(第一列视为最后一列的右边)。
可能的密钥序列有268个,明文长度越大,破译难度越大。
穷举破译过程中,可能生成另外的有意义的明文,所以无 论截获多少密文,都不能增加破译可能。
截获密文 密文序号 试探密钥
明文序号
“破译”明文
x 23 4 19 t
r 17 3 14 o
o 14 2 12 m
d 3 21 8 i
o 14 22 18 s