2009年 7月 25日 6时 9分 计算机网络安全基础第 7章 数据加密数据加密是计算机安全的重要部分。口令加密是防止文件中的密码被人偷看。文件加密主要应用于因特网上的文件传输,防止文件被看到或劫持。
电子邮件给人们提供了一种快捷便宜的通信方式,但电子邮件是不安全的,很容易被别人偷看或伪造。为了保证电子邮件的安全,人们采用了数字签名这样的加密技术,并提供了基于加密的身份认证技术,这样就可以保证发信人就是信上声称的人。数据加密也使因特网上的电子商务成为可能。
2009年 7月 25日 6时 9分 计算机网络安全基础第 7章 数据加密本章主要内容:
1,数据加密概述
2,传统密码技术
3,数据加密
4,公用密钥/私有密钥密码学
5,安全传输方法
6,验证
7,加密软件 PGP
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
7.1.1密码学的发展
1,加密的历史作为保障数据安全的一种方式,数据加密起源于公元前 2000年 。 埃及人是最先使用特别的象形文字作为信息编码的人 。 随着时间推移,巴比伦,美索不达米亚和希腊都开始使用一些方法来保护他们的书面信息 。
2,密码学的发展密码学的发展可以分为两个阶段 。 第一个阶段是计算机出现之前的四千年 ( 早在四千年前,古埃及就开始使用密码传递消息 ),这是传统密码学阶段,基本上靠人工对消息加密,传输和防破译 。 第二阶段是计算机密码学阶段,包括:
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
① 传统方法的计算机密码学阶段 。 解密是加密的简单逆过程,两者所用的密钥是可以简单地互相推导的,
因此无论加密密钥还是解密密钥都必须严格保密 。 这种方案用于集中式系统是行之有效的 。
② 包括两个方向:一个方向是公用密钥密码
( RSA),另一个方向是传统方法的计算机密码体制 —
— 数据加密标准 ( DES) 。
3,什么是密码学?
密码学包括密码编码学和密码分析学 。 密码体制的设计是密码编码学的主要内容,密码体制的破译是密码分析学的主要内容 。 密码编码技术和密码分析技术是相互依存,相互支持,密不可分的两个方面 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
7.1.2 数据加密数据加密的基本过程包括对称为明文的可读信息进行处理,形成称为密文或密码的代码形式 。 该过程的逆过程称为解密,即将该编码信息转化为其原来的形式的过程 。
1,为什么需要进行加密因特网是危险的,而且这种危险是 TCP/ IP协议所固有的,一些基于 TCP/ IP的服务也是极不安全的,另一方面,因特网把全世界连在了一起,走向因特网就意味着走向了世界 。 为了使因特网变得安全和充分利用其商业价值,人们选择了数据加密和基于加密技术的身份认证 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
2,加密密钥加密算法通常是公开的,现在只有少数几种加密算法,如 DES和 IDEA等 。 一般把受保护的原始信息称为明文,编码后的信息称为密文 。 尽管大家都知道使用加密方法,但对密文进行解码必须要有正确的密钥,而密钥是保密的 。
( 1) 保密密钥和公用/私有密钥在保密密钥中,加密者和解密者使用相同的密钥,
也被称为对称密钥加密 。 这种加密算法的问题是,用户必须让接收人知道自己所使用的密钥,这个密钥需要双方共同保密,任何一方的失误都会导致机密的泄露,而且在告诉收件人密钥过程中,还需要防止任何人发现或偷听密钥,这个过程被称为密钥发布 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述公用/私有密钥,与单独的密钥不同,它使用相互关联的一对密钥,一个是公用密钥,任何人都可以知道,
另一个是私有密钥,只有拥有该对密钥的人知道 。 如果有人发信给这个人,他就用收信人的公用密钥对信件进行过加密,当收件人收到信后,他就可以用他的私有密钥进行解密,而且只有他持有的私有密钥可以解密 。 这种加密方式的好处显而易见 。 密钥只有一个人持有,也就更加容易进行保密,因为不需在网络上传送私人密钥,
也就不用担心别人在认证会话初期截获密钥 。
① 公用密钥和私有密钥有两个相互关联的密钥;
② 公用密钥加密的文件只有私有密钥能解开;
③ 私有密钥加密的文件只有公用密钥能解开 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
( 2) 摘要函数摘要是一种防止信息被改动的方法,其中用到的函数叫摘要函数 。 这些函数的输入可以是任意大小的消息,
而输出是一个固定长度的摘要 。 摘要有这样一个性质,
如果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,也就是说输入消息的每一位对输出摘要都有影响 。 总之,摘要算法从给定的文本块中产生一个数字签名 ( Fingerprint或 Message
Digest),数字签名可以用于防止有人从一个签名上获取文本信息或改变文本信息内容 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
3,密钥的管理和分发
( 1) 使用同样密钥的时间范围一般强调仅将一个对话密钥用于一条信息或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性 。
( 2) 保密密钥的分发建立了一个安全的,可信任的密钥分发中心 ( Key
Distribution Center,KDC),每个用户只要知道一个和
KDC进行通信的密钥就可以了,而不需要知道成百上千个不同的密钥 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
7.1.3 基本概念
1,消息和加密消息被称为明文 。 用某种方法伪装消息以隐藏它的内容的过程称为加密 ( Encryption),被加密的消息称为密文,而把密文转变为明文的过程称为解密
( Decryption) 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述使消息保密的技术和科学叫做密码编码学 ( Cryptography),从事此行的叫密码编码者 ( Cryptographer),密码分析者是从事密码分析的专业人员,密码分析学 ( Cryptanalysis)
就是破译密文的科学和技术,即揭穿伪装 。 密码学 ( Cryptology) 作为数学的一个分支,包括密码编码学和密码分析学两部分,精于此道的人称为密码学家 ( Cryptologist),现代的密码学家通常也是理论数学家 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述加密函数 E作用于明文 M得到密文 C,可用数学公式表示:
E( M) =C
相反地,解密函数 D作用于 C产生 M:
D( C) =M
先加密后再解密,原始的文明将恢复,故下面的等式必须成立:
D( E( M)) =M
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
2,鉴别,完整性和抗抵赖除了提供机密性外,密码学通常还有其它的作用 。
( 1) 鉴别 。 消息的接收者应该能够确认消息的来源,入侵者不可能伪装成他人 。
( 2) 完整性 。 消息的接收者应该能够验证在传送过程中消息没有被修改,入侵者不可能用假消息代替合法消息 。
( 3) 抗抵赖 。 发送者事后不可能虚假地否认他发送的消息 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
3,算法和密钥密码算法 ( Algorithm) 也叫密码 ( Cipher),是用于加密和解密的数学函数 。 通常情况下,有两个相关的函数,一个用作加密,另一个用作解密 。
密钥用 K表示 。 K可以是很多数值里的任意值 。 密钥 K的可能值的范围叫做密钥空间 。 加密和解密运算都使用这个密钥 ( 即运算都依赖于密钥,并用 K作为下标表示 ),这样,加/解密函数现在变成:
EK( M) =C DK( C) =M
这些函数具有的特性,DK( EK( M)) =M
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述单钥密加解密双钥加密解密
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述基于密钥的算法通常有两类:对称算法和公用密钥算法 。
4,对称算法对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推导出来,反过来也成立 。
对称算法可分为两类 。 一次只对明文中的单个位 ( 有时对字节 ) 运算的算法称为序列算法或序列密码 。 另一类算法是对明文的一组位进行运算,这些位组称为分组,
相应的算法称为分组算法或分组密码 。
5,公用密钥算法公用密钥算法 ( Public-Key Aalgorithm) 也叫非对称算法,它是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
6,密码分析密码分析学是在不知道密钥的情况下,恢复出明文的科学 。 成功的密码分析能恢复出消息的明文或密钥 。
密码分析也可以发现密码体制的弱点,最终得到上述结果 。 密钥通过非密码分析方式的丢失叫做泄露 。 常用的密码分析攻击有四类 。
( 1) 唯密文攻击 ( Cipher Text-Only Attack) 。 密码分析者有一些消息的密文,这些消息都用同一加密算法加密 。
密码分析者的任务是恢复尽可能多的明文,或者最好是能推算出加密消息的密钥来,以便可采用相同的密钥解出其他被加密的消息 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
( 2) 已知明文攻击 ( Known-Plaintext Attack) 。 密码分析者不仅可得到一些消息的密文,而且也知道这些消息的明文 。 分析者的任务就是用加密信息推出用来加密的密钥或推导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密 。
( 3) 选择明文攻击 ( Chosen-Plaintext Attack) 。 分析者不仅可得到一些消息的密文和相应的明文,而且他们也可选择被加密的明文 。 这比已知明文攻击更有效 。 因为密码分析者能选择特定的明文块去加密,那些块可能产生更多关于密钥的信息,分析者的任务是推出用来加密消息的密钥或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
( 4) 自适应选择明文攻击 ( Adaptive-Chosen-Plaintext
Attack) 。 这是选择明文攻击的特殊情况 。 密码分析者不仅能选择被加密的明文,而且也能基于以前加密的结果修正这个选择 。 在选择明文攻击中,密码分析者还可以选择一大块被加密的明文,而在自适应选择密文攻击中,可选取较小的明文块,然后再基于第一块的结果选择另一明文块,依此类推 。
( 5) 选择密文攻击 ( Chosen-Cipher Text Attack) 。 密码分析者能选择不同的被加密的密文,并可得到对应的解密的明文,例如密码分析者存取一个防窜改的自动解密盒,密码分析者的任务是推出密钥 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.1 数据加密概述
( 6) 选择密钥攻击 ( Chosen-Key Attack) 。 这种攻击并不表示密码分析者能够选择密钥,它只表示密码分析者具有不同密钥之间的关系的有关知识 。
( 7) 软磨硬泡攻击 ( Rubber-Hose Cryptanalysis) 。 这种攻击是对密码分析者威胁,勒索,或者折磨某人,直到他给出密钥为止 。 行贿有时称为购买密钥攻击
( purchase-key attack) 。 这些是非常有效的攻击,并且经常是破译算法的最好途径 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7,算法的安全性不同的密码算法具有不同的安全等级 。 如果破译算法的代价大于加密数据的价值,破译算法所需的时间比加密数据保密的时间更长,用单密钥加密的数据量比破译算法需要的数据量少得多,那么这种算法可能是安全的 。 破译算法可分为不同的类别,安全性的递减顺序为:
全部破译 。 密码分析者找出密钥 K,这样 DK( C) =P。
全盘推导 。 密码分析者找到一个代替算法在不知道密钥 K
的情况下,等价于 DK( C) =P。
局部推导 。 密码分析者从截获的密文中找出明文 。
信息推导 。 密码分析者获得一些有关密钥或明文的信息 。
这些信息可能是密钥的几个位,有关明文格式的信息等 。
7.1 数据加密概述
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术
7.2.1 数据表示方法数据的表示有多种形式,使用最多的是文字,还有图形,声音,图像等 。 这些信息在计算机系统中都是以某种编码的方式来存储的 。
传统加密方法的主要应用对象是对文字信息进行加密解密 。
7.2.2 替代密码替代密码 ( Substitution Cipher) 是使用替代法进行加密所产生的密码 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术替代密码就是明文中每一个字符被替换成密文中的另外一个字符。接收者对密文进行逆替换就恢复出明文来。替代法加密是用另一个字母表中的字母替代明文中的字母。在替代法加密体制中,使用了密钥字母表。它可以由明文字母表构成,也可以由多个字母表构成。如果是由一个字母表构成的替代密码,称为单表密码。其替代过程是在明文和密码字符之间进行一对一的映射。
如果是由多个字母表构成的替代密码,称为多表密码。
在经典密码学中,有四种类型的代替密码 。
简单代替密码,多名码代替密码,多字母代替密码和多表代替密码 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术
1,单表替代密码单 表替 代 密 码的 一 种 典型 方 法 是凯 撒
( Caesar) 密码,又叫循环移位密码 。 它的加密方法就是把明文中所有字母都用它右边的第 k
个字母替代,并认为 Z后边又是 A。 这种映射关系表示为如下函数:
F(a)=(a+k) mod n
其中,a表示明文字母; n为字符集中字母个数; k为密钥 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术映射表中,明文字母中在字母表中的相应位置数为 C,
( 如 A=1,B=2,… ) 形式如下:
设 k= 3; 对于明文 P= COMPUTE SYSTEMS则
f( C) =( 3+3) mod 26=6=F
f( O) =( 15+3) mod 26=18=R
f( M) =( 13+3) mod 26=16=P

f( S) =( 19+3) mod 26=22=V
所以,密文 C= Ek( P) =FRPSXRWHUVBVWHPV。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术除了凯撒密码,在其他的单表替代法中,有的字母表被打乱。比如,在字母表中首先排列出密钥中出现的字母,然后在密钥后面填上剩余的字母。如密钥是
HOW,那么新的字母表就是:
HOWABCDEFGIJKLMNPQRSTUVXYZ
这个密钥很短,多数明文字母离开其密文等价字母,
仅有一个或几个位置。若用长的密钥字,则距离变大,
因而便难于判断是何文字密钥。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术
2,多表替代密码周期替代密码是一种常用的多表替代密码,又称为维吉尼亚 ( Vigenere) 密码 。 这种替代法是循环的使用有限个字母来实现替代的一种方法 。 若明文信息
mlm2m3… mn,采用 n个字母 ( n个字母为 B1,B2,… Bn)
替代法,那么,ml将根据字母 Bn的特征来替代,mn+l又将根据 B1的特征来替代,mn+2又将根据 B2的特征来替代 ……,如此循环 。 可见 B1,B2,… Bn就是加密的密钥 。
这种加密的加密表是以字母表移位为基础把 26个英文字母进行循环移位,排列在一起,形成 26× 26的方阵 。
该方阵被称为维吉尼亚表 。 采用的算法为
f( a) =( a+Bi) mod n ( i=( 1,2,…,n))
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术例如:以 YOUR为密钥,加密明码文 HOWAREYOU。
P =HOWAREYOU
K =YOURYOURY
Ek( P) =FCQRPSSFS
其加密过程就是以明文字母选择列,以密钥字母选择行,两者的交点就是加密生成的密码文字母 。 解密时,
以密码字母选择行,从中找到密文字母,密文字母所在列的列名即为明文字母 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术
7.2.3 换位密码换位密码是采用移位法进行加密的 。 它把明文中的字母重新排列,本身不变,但位置变了 。 如:把明文中的字母的顺序倒过来写,然后以固定长度的字母组发送或记录 。
明文,computer systems
密文,sm etsy sretupmoc
( l) 列换位法将明文字符分割成为五个一列的分组并按一组后面跟着另一组的形式排好 。 如明文是:
WHAT YOU CAN LEARN FROM THIS BOOK
分组排列为:
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术密文则以下面的形式读出:
WOFHOHURIKACOSXTAMBXYNTOX
这里的密钥是数字 5。
W H A T Y
O U C A N
F R O M T
H I S B O
O K X X X
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术
( 2) 矩阵换位法这种加密是把明文中的字母按给定的顺序安排在一个矩阵中,然后用另一种顺序选出矩阵的字母来产生密文 。 如将明文 ENGINEERING按行排在 3*4
矩阵中,如下所示:
1 2 3 4
E N G I
N E E R
I N G

2413
1234
f
给定一个置换,
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术现在根据给定的置换,按第 2列,第 4列,
第 1列,第 3列的次序排列,就得得到密文:
NIEGERNEN IG
在这个加密方案中,密钥就是矩阵的行数 m和列数 n,即 m*n= 3*4,
以及给定的置换矩阵 。
也就是:
k=( m*n,f)
1 2 3 4
N I E G
E R N E
N I G
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术其解密过程是将密文根据 3*4矩阵,按行,列的顺序写出,再根据给定置换产生新的矩阵,恢复明文为:
ENGINEERING
1 2 3 4
N I E G
E R N E
N I G
1 2 3 4
E N G I
N E E R
I N G
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术
7.2.4 简单异或异或 ( XOR) 在 C语言中是,^” 操作,或者用数学表达式 ⊕ 表示 。 它是对位的标准操作,有以下一些运算:
0⊕ 0=0
0⊕ 1=1
1⊕ 0=1
1⊕ 1=0
也要注意:
a⊕ a=0 a⊕ b⊕ b=a
2009年 7月 25日 6时 9分 计算机网络安全基础
/* Usage,crypto_key input_file output_file*/
#include "stdio.h"
void main(int argc,char *argv[])
{
FILE *fi,*fo;
char *cp;
int c;
if ((cp=argv[1]) && *cp!='\0'){
if ((fi=fopen(argv[2],"rb"))!=NULL){
if ((fo=fopen(argv[3],"wb"))!=NULL){
while ((c=getc(fi))!=EOF){
if (!*cp)cp=argv[1];
c^=*(cp++);
putc(c,fo);
}
fclose(fo);
}
fclose(fi);
}}
}
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术
7.2.5 一次密码本有一种理想的加密方案,叫做一次密码本 ( One-
Time Pad) 。
一次密码本是一个大的不重复的真随机密钥字母集,
这个密钥字母集被写在几张纸上,并被粘成一个密码本 。
它最初的形式是用于电传打字机 。 发送者用密码本中的每一密钥字母准确地加密一个明文字符 。 加密是明文字符和一次密码本密钥字符的模 26加法 。
每个密钥仅对一个消息使用一次 。 发送者对所发送的消息加密,然后销毁密码本中用过的一页或磁带部分 。
接收者有一个同样的密码本,并依次使用密码本上的每个密钥去解密密文的每个字符 。 接收者在解密消息后销毁密码本中用过的一页或磁带部分 。 新的消息则用密码本中新的密钥加密 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.2 传统密码技术例如,如果消息是:
ONE TIME PAD
而取自密码本的密钥序列是:
TBF RGFA RFM
那么密文就是:
IPK LPSF HGQ
因为
O+ T mode 26=I
N+ B mode 26=P
E+ F mode 26=K
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密对加密算法要求要达到以下几点:
( 1) 必须提供高度的安全性;
( 2) 具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又便于理解和掌握;
( 3) 安全性应不依赖于算法的保密,其加密的安全性仅以加密密钥的保密为基础;
( 4) 必须适用于不同的用户和不同的场合;
( 5) 实现算法的电子器件必须很经济,运行有效;
( 6) 必须能够验证,允许出口 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
7.3.1数据加密标准数据加密标准 ( Data Encryption Standard,DES)
是美国国家标准局开始研究除国防部以外的其它部门的计算机系统的数据加密标准 。
DES是一个分组加密算法,它以 64位为分组对数据加密 。 64位一组的明文从算法的一端输入,64位的密文从另一端输出 。 DES是一个对称算法:加密和解密用的是同一算法 。 密钥的长度为 56位 。 ( 密钥通常表示为 64
位的数,但每个第 8位都用作奇偶校验,可以忽略 。 )
密钥可以是任意的 56位的数,且可在任意的时候改变 。
其中极少量的数被认为是弱密钥,但能容易地避开它们 。
所有的保密性依赖于密钥 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
DES有 16轮,
这意味着要在明文分组上 16次实施相同的组合技术 。
1,加密过程
DES 使用 56
位密钥对 64位数据块进行加密,
需要进行 16轮编码 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密在每轮编码时,一个 48位的,每轮,密钥值由 56位的完整密钥得出来 。 在每轮编码过程中,64位数据和每轮密钥值被输入到一个称为,S”的盒中,由一个压码函数对数位进行编码 。 另外,在每轮编码开始,过后以及每轮之间,64位数码被以一种特别的方式置换 ( 数位顺序被打乱 ) 。 在每一步处理中都要从 56位的主密钥中得出一个唯一的轮次密钥 。 最后,输入的 64位原始数据被转换成 64位看起来被完全打乱了的输出数据,但可以用解密算法 ( 实际上是加密过程的逆过程 ) 将其转换成输入时的状态 。 当然,这个解密过程要使用加密数据时所使用的同样的密钥 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密由于每轮之前,之间和之后的变换,DES用软件执行起来比硬件慢得多,用软件执行一轮变换时,必须做一个 64次的循环,每次将 64位数的一位放到正确的位置 。
使用硬件进行变换时,只需用 64个输入,管脚,到 64个输出,管脚,的模块,输入,管脚,和输出,管脚,之间按定义的变换进行连接 。 这样,结果就可以直接从输出,管脚,得到 。
2,算法概要
DES对 64位的明文分组进行操作 。 通过一个初始置换,将明文分组分成左半部分和右半部分,各 32位长 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密然后进行 16轮完全相同的运算,这些运算被称为函数 f,在运算过程中数据与密钥结合 。 经过 16轮后,左,
右半部分合在一起,经过一个末置换 ( 初始置换的逆置换 ),这样该算法就完成了 。
在每一轮中,密钥位移位,然后再从密钥的 56位中选出 48位 。 通过一个扩展置换将数据的右半部分扩展成
48位,并通过一个异或操作与 48位密钥结合,通过 8个
S盒将这 48位替代成新的 32位数据,再将其置换一次 。
这四步运算构成了函数 f。 然后,通过另一个异或运算,
函数 f的输出与左半部分结合,其结果即成为新的右半部分,原来的右半部分成为新的左半部分 。 将该操作重复 16次,便实现了 DES的 16轮运算 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密一轮 DES
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密假设 Bi是第 i次迭代的结果,Li和 Ri是 Bi的左半部分和右半部分,Ki是第 i轮的 48位密钥,且 f是实现代替,
置换及密钥异或等运算的函数,那么每一轮就是:
Li=Ri-1
Ri=Li-1⊕ f(Ri-1,Ki)
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
3,初始置换初始置换在第一轮运算之前执行,对输入分组实施如下表所示的变换 。 此表应从左向右,从上向下读 。 例如,初始置换把明文的第 58位换到第 1位的位置,把第
50位换到第 2位的位置,把第 42位换到第 3位的位置,等等 。
58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
4,密钥置换一开始,由于不考虑每个字节的第 8位,DES的密钥由 64位减至 56位,如下表所示 。 每个字节第 8位可作为奇偶校验位以确保密钥不发生错误 。 在 DES的每一轮中,从 56位密钥产生出不同的 48位子密钥 ( Sub Key),
这些子密钥 Ki由下面的方式确定 。
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密首先,56位密钥被分成两部分,每部分 28位 。 然后,
根据轮数,这两部分分别循环左移 l位或 2位 。 下表给出了每轮移动的位数 。
轮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
位数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密移动后,就从 56位中选出 48位 。 因为这个运算不仅置换了每位的顺序,同时也选择子密钥,因而被称作压缩置换 。 这个运算提供了一组 48位的集 。 下表定义了压缩置换 ( 也称为置换选择 ) 。 例如,处在第 33位位置的那一位在输出时移到了第 35位的位置,而处在第 18位位置的那一位被略去了 。
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密因为有移动运算,在每一个子密钥中使用了不同的密钥子集的位 。 虽然不是所有的位在子密钥中使用的次数均相同,但在 16个子密钥中,每一位大约使用了其中
14个子密钥 。
5,扩展置换这个运算将数据的右半部分 Ri从 32位扩展到了 48位 。
由于这个运算改变了位的次序,重复了某些位,故被称为扩展置换 。
这个操作有两个方面的目的:它产生了与密钥同长度的数据以进行异或运算,它提供了更长的结果,使得在替代运算时能进行压缩 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密下图显示了扩展置换,有时它也叫做 E盒。对每个 4
位输入分组,第 1和第 4位分别表示输出分组中的两位,
而第 2和第 3位分别表示输出分组中的一位。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密下表给出了哪一输出位对应于哪一输入位 。 例如,
处于输入分组中第 3位的位置的位移到了输出分组中第 4
位的位置,而输入分组中第 21位的位置的位移到了输出分组中第 30和第 32位的位置 。
尽管输出分组大于输入分组,但每一个输入分组产生唯一的输出分组 。
32 1 2 3 4 5 4 5 6 7 8 9
8 9 10 11 12 13 12 13 14 15 16 17
16 17 18 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
6,S盒代替压缩后的密钥与扩展分组异或以后,将 48位的结果送入,进行代替运算。替代由 8个代替盒,或 S盒完成。
每一个 S盒都有 6位输入,4位输出,且这 8个 S盒是不同的。( DES的这 8个 S盒占的存储空间为 256字节。) 48
位的输入被分为 8个 6位的分组,每一分组对应一个 S盒代替操作:分组 1由 S-盒 1操作,分组 2由 S-盒 2操作,依次类推。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密每个 S盒是一个 4行,16列的表。盒中的每一项都是一个 4位的数。 S盒的 6个位输入确定了其对应的输出在哪一行哪一列。下面列出所有的 8个 S盒。
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 5 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 1
1
7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 5 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S盒 3:
S盒 4:
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
1 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S盒 5:
S盒 6:
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S盒 7:
S盒 8:
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密输入位以一种非常特殊的方式确定了 S盒中的项 。
假定将 S盒的 6位的输入标记为 b1,b2,b3,b4,b5,b6。
则 b1和 b6组合构成了一个 2位的数,从 0到 3,它对应着表中的一行 。 从 b2到 b5构成了一个 4位的数,从 0到 15,
对应着表中的一列 。
例如,假设第 6个 S盒的输入 ( 即异或函数的第 31位到 36位 ) 为 110011。 第 1位和最后一位组合形成了 11,
它对应着第 6个 S盒的第三行 。 中间的 4位组合在一起形成了 1001,它对应着同一个 S盒的第 9列 。 S盒 6的第三行第 9列处的数是 14( 记住,行,列的记数均从 0开始而不是从 1开始 ),则值 1110就代替了 110011。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
7,P盒置换
S盒代替运算后的 32位输出依照 P盒进行置换 。 该置换把每输入位映射到输出位,任意一位不能被映射两次,
也不能被略去,这个置换叫做直接置换 。 下表给出了每位移到的位置 。 例如,第 21位移到了第 4位处,同时第 4
位移到了第 31位处 。 最后,将 P盒置换的结果与最初的
64位分组的左半部分异或,然后左,右半部分交换,接着开始另一轮 。
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
8,末置换末置换是初始置换的逆过程,下表列出了该置换。
应注意 DES在最后一轮后,左半部分和右半部分并未交换,而是将 R16与 L16并在一起形成一个分组作为末置换的输入。
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
9,DES解密在经过所有的代替,置换,异或和循环移动之后,
获得了这样一个非常有用的性质:加密和解密可使用相同的算法 。
DES使得用相同的函数来加密或解密每个分组成为可能,二者的唯一不同之处是密钥的次序相反 。 这就是说,如果各轮的加密密钥分别是 K1,K2,K3…,K16
那么解密密钥就是 K16,K15,K14……,K1。 为各轮产生密钥的算法也是循环的 。 密钥向右移动,每次移动个数为 0,1,2,2,2,2,2,2,1,2,2,2,2,2,
2,1。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
10,三重 DES
DES的唯一密码学缺点就是密钥长度较短 。 解决密钥长度的问题的办法之一是采用三重 DES。 三重 DES方法需要执行三次常规的 DES加密步骤,但最常用的三重
DES算法中仅仅用两个 56位 DES密钥 。 设这两个密钥为
K1和 K2,其算法的步骤是:
( 1) 用密钥 K1进行 DES加密;
( 2) 用步骤 ( 1) 的结果使用密钥 K2进行 DES解密;
( 3) 用步骤 ( 2) 的结果使用密钥 K1进行 DES加密 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密这个过程称为 EDE,
因为它是由加密 —— 解密 —— 加密( Encrypt
Decrypt Encrypt) 步骤组成的。在 EDE中,中间步骤是解密,所以,可以使 K1=K2来用三重 DES
方法执行常规的 DES加密。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
11,DES举例已知明文 m=computer,密钥 k=program,用 ASCII
码表示为:
m=01100011 01101111 01101101 01110000 01110101
01110100 01100101 01110010
k=01110000 01110010 01101111 01100111 01110010
01100001 01101101
因为 k只有 56位,必须插入第 8,16,24,32,40,
48,56,64位奇偶校验位,合成 64位 。 而这 8位对加密过程没有影响 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
m经过 IP置换后得到
L0= 11111111 10111000 01110110 01010111
R0= 00000000 11111111 00000110 10000011
密钥 k通过 PC-1得到
C0= 11101100 10011001 00011011 1011
D0= 10110100 01011000 10001110 0110
再各自左移一位,通过 PC-2得到 48位
k1=00111101 10001111 11001101 00110111 00111111
00000110
R0( 32位 ) 经 E作用膨胀为 48位,
10000000 00010111 11111110 10000000 11010100
00000110
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密再和 k1作异或运算得到 ( 分成 8组 )
101111 011001 100000 110011 101101 111110 101101
001110
通过 S盒后输出位 32比特,
01110110 00110100 00100110 10100001
S盒的输出又经过 P置换得到
01000100 00100000 10011110 10011111
这时,
所以,第一趟的结果是,00000000 11111111 00000110
10000011 10111011 10011000 11101000 11001000
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密如此,迭代 16次以后,得到密文:
01011000 10101000 01000001 10111000 01101001
11111110 10101110 00110011
明文或密钥每改变一位,都会对结果密文产生剧烈的影响。任意改变一位,其结果大致有将近一半的位发生了变化。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
7.3.2国际数据加密算法国际数据加密算法 ( International Data Encryption
Algorithm) IDEA与 DES一样,也是一种使用一个密钥对 64位数据块进行加密的常规共享密钥加密算法 。 同样的密钥用于将 64位的密文数据块恢复成原始的 64位明文数据块 。 IDEA使用 128位 ( 16字节 ) 密钥进行操作,这么长的密钥被认为即使在多年后仍是有效的 。
IDEA算法通过一系列的加密轮次进行操作,每轮都使用从完整的加密密钥中生成的一个子密钥,使用一个称为,压码,的函数在每轮中对数据位进行编码 。 与
DES不同的是 IDEA不使用置换 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
7.3.3共享密钥技术的应用
1,整条消息加密使用共享密钥技术对整条消息进行加密,一个显然的办法是将消息分成 64位一块的数据块,然后用同样的密钥对每一个数据块加密 。 但这种做法的最大弊端是会使消息的内容泄漏 。 因为,同样的 64位输入数据块总是与同样的 64位密文块相对应,虽然,对于偷窃者来说可能无法破译密文,但人们明显可以发现某些特定的块的重复,使消息泄漏 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密
2,Kerberos
Kerberos是由麻省理工学院开发的网络访问控制系统,它是一种完全依赖于密钥加密的系统范例,其主要的功能用于解决保密密钥管理与分发的问题。
Kerberos建立在一个安全的、可信任的密钥分发中心( Key Distribution Center,KDC) 的概念上。与每个用户都要知道几百个密码不同,使用 KDC时用户只需知道一个保密密钥 —— 用于与 KDC通信的密钥。
Kerberos的工作过程如下:
假设用户 A想要与用户 B秘密通信 。 首先,由 A呼叫
KDC,请求与 B联系 。 KDC为 A与 B之间的对话选择一条随机的对话密钥,设为 XXXXX。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.3 数据加密同时生成一个,标签,,由 KDC将拥有这,标签,
的人 A告诉 B,并请 B使用对话密钥 XXXXX与 A交谈 。
与此同时,KDC发给 A的消息则用只有 A与 KDC知道的
A的共享密钥加密,告诉 A用对话密钥 XXXXX与 B交谈 。
此时,A对 KDC的回答进行解密,恢复对话密钥
XXXXX和给 B的标签 。 在这过程中,A无法修改标签的头部与细节,因为该标签用只有 B和 KDC知道共享密钥加密了 。
之后,A呼叫 B,告诉对方标签是由 KDC给的 。 接着,B对标签的内容进行解密,知道只有 KDC和他自己能用知道的口令对该消息进行加密,并恢复 A的名字及对话密钥 XXXXX。
这样,A和 B就可以用对话密钥相互安全地进行通信了。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.4 公用密钥/私有密钥密码学公用密钥/私有密钥密码学又称公用密钥密码 。 它通过使用两个数字互补密钥,绕过了排列共享的问题 。
这两个密钥,一个是尽人皆知的,而另一个只有拥有者才知道,尽人皆知的密钥叫做公用密钥,而只有密钥拥有者才知道的密钥叫做私有密钥,或称专用密钥 。 这两种密钥合在一起称为密钥对 。 公用密钥可以解决安全分配密钥问题,因为它不需要与保密密钥通信,所需传输的只有公用密钥 。 这种公用密钥不需要保密,但对保证其真实性和完整性却非常重要 。
如果某一信息用公用密钥加密,则必须用私有密钥解密,这就是实现保密的方法 。 如果某一信息用私有密钥加密,那么,它必须用公用密钥解密 。 这就是实现验证的方法 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.4 公用密钥/私有密钥密码学公用密钥系统的最流行的例子是由麻省理工学院的
Rom Rivest,Adi Shamir和 Len Adleman开发的 RSA系统 。
另一个系统叫做 Diffie-Hellman,该系统直接从本身不是密钥的公用,组成部分,中产生共享保密密钥 。 这两种系统各有优点,互为补充,因而常常组合在一起 。
7.4.1 Diffie-Hellman密钥交换算法
Diffie-Hellman密钥交换算法 常用做密钥的分配并满足:
y= gx mod p
( 在 g自乘幂 x后,然后除以 p,y为余数 )
2009年 7月 25日 6时 9分 计算机网络安全基础
7.4 公用密钥/私有密钥密码学如果知道 g,x和 p,则很容易计算 y。 但是,如果知道 y,g和 p,则很难在合理的时间内以类似规模的数计算 x。 当所有的数都很大时,p是很大的素数 。 在此情况下,数 y叫做公用分量,而 x叫做私有分量或专用分量 。
这些分量本身不是密钥,但是,它们可以用来制作共享保密密钥 。
7.4.2 RSA公用密钥/私有密钥
RSA是在 Diffie-Hellman算法问世两年之后,由
Rivest,Shamir和 Adelman在 MIT作出的,并于 1978年公布 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.4 公用密钥/私有密钥密码学
RSA要求每一个用户拥有自己的一种密钥:
( 1) 公开的加密密钥,用以加密明文;
( 2) 保密的解密密钥,用于解密密文 。
在 RSA密钥体制的运行中,当 A用户发文件给 B用户时,A用户用 B用户公开的密钥加密明文,B用户则用解密密钥解读密文,其特点是:
( 1) 密钥配发十分方便,用户的公用密钥可以像电话本那样公开,使用方便,每个用户只需持有一对密钥即可实现与网络中任何一个用户的保密通信 。
( 2) RSA加密原理基于单向函数,非法接收者利用公用密钥不可能在有限时间内推算出秘密密钥 。
( 3) RSA在用户确认和实现数字签名方面优于现有的其他加密机制 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.4 公用密钥/私有密钥密码学
7.4.3 DES和 RSA标准的比较加密机制 DES RSA
原理 加密钥 =解密钥(秘密) 加密钥 解密钥(公开) (秘密)
算法 公开 公开密钥配送 必要 不必要密钥数 必须为通信对象数 自己用的一个即可安全确认 比较困难 容易加密速度 可达 100MB/S 可达 10KB/S
2009年 7月 25日 6时 9分 计算机网络安全基础
7.5 安全传输方法在不同用户的大规模网络系统中,安全地传输信息的最佳方法就是使用一种组合的公用密钥和共享密钥系统,以充分利用每种方法的优点。
首先,用共享密钥加密工具,如 DES对普通文本进行加密,然后,对话密钥用目的地的密钥对公用部分进行加密 。 最后,把对话密钥加密的普通文本和公用密钥加密的对话密钥组合在一起,并发送到目的地 。
当目的地接收到信息后,它用自己的私有密钥对对话密钥解密,之后,使用对话密钥对剩余的信息进行解密 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.6 验证验证有两个明显不同的方面:保证信息的完整性,
保证发送者的身份。
7.6.1 信息的验证从概念上说,信息的签名就是用专用密钥对信息进行加密,而签名的验证就是用相对应的公用密钥对信息进行解密。
同普通密钥系统相比,公用密钥系统的速度很慢,
用公用密钥系统对长信息加密来达到签名的目的,并不比用公用密钥系统来达到信息保密的目的更有吸引力 。
解决方案就是引入另一种普通密码机制,这种密码机制叫做信息摘要或散列函数。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.6 验证最常用的信息摘要算法叫做 MDS,可产生一个 128
位长的摘要 。 使用信息摘要时,对信息签名过程如下:
( 1) 用户制作信息摘要;
( 2) 信息摘要由发送者的专用密钥加密;
( 3) 原始信息和加密信息摘要发送到目的地;
( 4) 目的地接收信息,并使用与原始信息相同的信息摘要函数对信息制作其自己的信息摘要;
( 5) 目的地还对所收到的信息摘要进行解密;
( 6) 目的地将制作的信息摘要同附有信息的信息摘要进行对比,如果相吻合,目的地就知道信息的文本与用户发送的信息文本是相同的,如果二者不吻合,则目的地知道原始信息已经被修改过 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.6 验证
7.6.2 用户验证和证明权威如何知道在每次通信或交易中所使用的密钥对实际上就是用户的密钥对呢? 这就需要一种验证公用密钥和用户之间的关系的方法 。
解决这一问题的方法是引入一种叫做证书或凭证的特种签名信息。证书包含识别用户的信息:特异的名字、
公用密钥和有效期,全都由一个叫做证明权威( CA)
的可靠网络实体进行数字签名。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.6 验证首先,用户产生密钥对,并把该密钥对的公用部分以及其它识别信息提交给 CA。 当 CA一旦对用户的身份 ( 人员,机构或主计算机 )
表示满意,就取下用户的公用密钥,
并对它制作信息摘要 。 然后,信息摘要用 CA的专用密钥进行加密,制作用户公用密钥的 CA签名 。 最后,
用户的公用密钥和验证用户公用密钥的 CA签名组合在一起制作证书 。
右图为数字证书 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.6 验证
7.6.3 CA结构证明权威,即 CA,它签发并管理正式使用公用密钥与用户相关联的证书 。 证书只在某一时间内有效,因而 CA保存一份有效证书及其有效期清单 。 有时,证书或许要求及早废除,因而 CA保存一份废除的证书以及有效证书的清单 。 CA把其有效证书,废除证书或过期证书的清单提供给任何一个要获得这种清单的人 。
证书有两种常用的方法,CA的分级系统和信任网。
在分级证明中,顶部即根 CA,它验证它下面的 CA,
第二级 CA再验证用户和它下属的 CA,依此类推。在信任网中,用户的公用密钥能以任何一个为接收证书的人所熟悉的用户签名的证书形式提交。一个企图获取另一个人公用密钥的用户可以从各种不同来源获取,并验证它们是否全部符合。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.7 加密软件 PGP
PGP( Pretty Good Privacy) 是一个基于 RSA
密钥加密体系的供大众使用的加密软件。它不但可以对用户的邮件保密,以防止非授权者阅读,还能对邮件加上数字签名让收信人确信邮件未被第三者篡改,让人们可以安全地通信。
PGP采用了审慎的密钥管理,一种 RSA和传统加密的综合算法,用于数字签名的信息摘要算法,加密前压缩等。由于 PGP功能强,速度快,
而且源代码全免费,因此,PGP成为最流行的公用密钥加密软件包之一。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.7 加密软件 PGP
1,PGP原理
PGP是基于 RAS算法:,大质数不可能因数分解假设,的公用密钥体系 。 简单地说,就是两个很大的质数,
一个公开给世人,另一个不告诉任何人,前者称为,公用密钥,,后者称为,私有密钥,。 这两个密钥相互补充,就是说公用密钥的密文可以用私有密钥来解密,反之也然 。
2,公用密钥的传送对 PGP来说,公用密钥本来就是公开的,不存在有没有防偷窃的问题,但公用密钥在发布中仍然存在安全性问题,其中最大的漏洞是公用密钥被篡改 。
2009年 7月 25日 6时 9分 计算机网络安全基础
7.7 加密软件 PGP
PGP的解决方案采用前面介绍的,证明权威,,每个由其签字的公用密钥都被视为是真的 。 这样的,权威,
适合由非个人控制组织或政府机构充当 。
3,私有密钥管理私有密钥相对于公用密钥而言不存在被篡改的问题,
但却存在泄露的问题。对此,PGP的办法是让用户为随机生成的 RSA私有密钥指定一个口令,只有通过给出口令才能将私有密钥释放出来使用。用口令加密私有密钥的方法加密程序与 PGP本身是一样的。所以,私有密钥的安全性问题实际上首先是对用户口令的保密。
2009年 7月 25日 6时 9分 计算机网络安全基础小 结
1,数据加密概述数据加密的基本过程包括对称为明文的原来可读信息进行翻译,译成称为密文或密码的代码形式 。 该过程的逆过程为解密,即将该编码信息转化为其原来的形式的过程 。
2,传统密码技术传统加密方法的主要应用对象是对文字信息进行加密解密 。
3,数据加密数据加密标准 DES( Data Encryption Standard) 是美国国家标准局研究除国防部以外的其它部门的计算机系统的数据加密标准 。
2009年 7月 25日 6时 9分 计算机网络安全基础习题与思考题
1,什么是数据加密? 简述加密和解密的过程 。
2,在凯撒密码中令密钥 k=8,制造一张明文字母与密文字母对照表 。
3,用维吉尼亚法加密下段文字,COMPUTER AND
PASSWORD SYSTEM,密钥为 KEYWORD。
4,DES算法主要有哪几部分?
5,简述 DES算法中的依次迭代过程 。
6,公开密钥体制的主要特点是什么?
7,编写一段程序,对选定的文字进行加密和解密 ( 密钥为另一段文字 ) 。
8,编写一篇经过加密的文章,通过一定的算法获得文章的内容 ( 要求原文的内容有意义并能看懂 ) 。