171
1 第3第 第第第第第

第 3 章 密码学基础

  • Upload
    marcus

  • View
    102

  • Download
    7

Embed Size (px)

DESCRIPTION

第 3 章 密码学基础. 本章知识点:. 保密与安全 安全保密与密码学的联系与区别 编码系统与密码系统的关系与区别 密码体系与密码系统 加密与解密之联系 常用及特殊密码体系 硬件加密与软件加密 保密技术的应用. 保密与安全 保密: 保守机密,让不该知道的人不知。 安全: 让自身不受任何方式的威胁与侵害。为此,提出了保密和安全问题。 这里必须了解: 安全的类别和层次(粒度)。 类别: 国家安全、部门安全、行业安全、商业安全 层次: 安全的敏感度、了解公开的范围、密级。. 什么是国家安全. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 3 章 密码学基础

1

第 3章密码学基础

Page 2: 第 3 章 密码学基础

2

保密与安全 安全保密与密码学的联系与区别 编码系统与密码系统的关系与区别 密码体系与密码系统 加密与解密之联系 常用及特殊密码体系 硬件加密与软件加密 保密技术的应用

本章知识点:

Page 3: 第 3 章 密码学基础

3

保密与安全保密:保守机密,让不该知道的人不知。安全:让自身不受任何方式的威胁与侵害。为此,提出了保密和安全问题。这里必须了解: 安全的类别和层次(粒度)。 类别:国家安全、部门安全、行业安全、商业安全 层次:安全的敏感度、了解公开的范围、密级。

Page 4: 第 3 章 密码学基础

4

国家安全是指主权国家独立自主地生存和发展的权利和利益的总和,指国家独立、主权和领土完整以及国家政治制度不受侵犯;经济发展、民族和睦、社会安定不受威胁;国家秘密不被窃取;国家工作人员不被策反;国家的机构不被渗透;人民生命、财产不受外来势力的威胁和侵犯。

什么是国家安全

Page 5: 第 3 章 密码学基础

5

《中华人民共和国保守国家秘密法》第二条规定,国家秘密是关系国家的安全和利益,依照法定程序确定,在一定时间内只限一定范围的人员知悉的事项。

什么是国家秘窑

Page 6: 第 3 章 密码学基础

6

《保密法》第八条规定:“国家秘密包括符合本法第二条规定的下

列秘密事项:1 )国家事务的重大决策中的秘密事项;2 )国防建设和武装力量活动中的秘密事项;3 )外交和外事活动中的秘密事项以及对外 承担保密义务的事项;4 )国民经济和社会发展中的秘密事项;5 )科学技术中的秘密事项;

Page 7: 第 3 章 密码学基础

7

6 )维护国家安全活动和追查刑事犯罪中的 秘密事项;7 )其他经国家保密工作部门确定应当保守 的国家秘密事项; 不符合本法第二条规定的,不属于国家秘密。 政党的秘密事项中符合本法第二条规定的,属于国家秘密。

Page 8: 第 3 章 密码学基础

8

文档保密密级: 绝密: 机密: 秘密: 公开: 由于办公自动化的日益普及,计算机和通信技术的联姻,信息和数据也同样涉及到保密的密级问题。在实际的应用中,加密解密机制从另一个方面决定了保密的密级。

Page 9: 第 3 章 密码学基础

9

安全保密性: 数据与信息的价值 人对数据和信息的依赖性 信息的敏感性 信息的私有性为什么要保密 ? 不愿被他人知晓的都要保密 信息决定生存、决定政治和社会稳定 信息决定发展、 信息决定主动、抢占制高点 个人隐私,防窥视、窃取、泄露、滥用

Page 10: 第 3 章 密码学基础

10

安全机制的第三部分:安全保密

信息隐藏:看不到,找不到

信息加密:看不懂,难理解

信息锁定:看到了,带不走

信息控制:看懂了,已无用

用户认证

访问控制

安全保密

安全审计

安全恢复

Page 11: 第 3 章 密码学基础

11

信息论涉及:消息在运动中产生信息 在通信时才需要信息保护 现在无论静态和动态数据都需要保护密码学涉及:早期作用是保密, 现在除保密外,还有认证、鉴别功能保密学涉及:早期对文电、文档进行加密 现在除文电、文档外,对任何文字、图形、图象、声音等多媒体信息; 对硬件部件和电路等实体的保密; 对思路、思维、企图等虚体的保密;

安全保密涉及的学科

Page 12: 第 3 章 密码学基础

12

一、防泄漏的范围 防止计算机中的程序、数据、运行结果与执行过程的泄密,防止进入计算机系统、网络系统、信息系统的防御措施的泄密,防止个人专用信息和隐私的泄密。

第一节 系统防泄露与加解密

Page 13: 第 3 章 密码学基础

13

二、防泄露的机制1 )隐藏:屏蔽,看不到、找不到2)加密:能看到,看不懂,难理解3)控制:看到了,拿不到,带不走4)权限:拒绝读写,拒绝执行5)时效:看懂了,已无用,过时

Page 14: 第 3 章 密码学基础

14

三、密码学密码学是一门研究秘密信息的隐写技术的学科;密码学技术可以使消息的内容对( 除发送者和接收者以外的 ) 所有人保密;可以使接收者验证消息的正确性;是解决计算机与通信安全问题重要技术。

Page 15: 第 3 章 密码学基础

15

四、编码系统与密码系统的关系与区别密码编码学 (Cryptography): 主要研究对信息进行编码 ,实现对信息的隐蔽 . 虽然两者都可以用于隐藏传输信息,但是它们采用的是不同的替换技术。 在密码系统中,明文表示被加密以前的一组数据,在处理时并不注重它们实际的含义。而在编码系统中,单词或者词组被其他的单词或词组所替换,从而隐藏了它们的原义。

Page 16: 第 3 章 密码学基础

16

例如,消息: FIRE THE CORPORATE LAWYER 通过密码系统简单加密变为: GJSF UIF OPSQPSBUF MBXZFS 通过编码系统简单加密变为: SELL THE CORPORATE DONKEY, 这里,单词 SELL 对应于 FIRE ,而 DONKEY则对应于 LAWYER 。

Page 17: 第 3 章 密码学基础

17

编码系统特点: * 一般不会改变太多的术语的含义 * 要求预先熟悉和掌握所有的替换码 * 复杂累赘的编码本(密码本),这种编码本含有成千上万条术语和对应的编码。编码本的准备不仅困难和耗时,而且一旦丢失、或者泄露,就形同噩梦缠身,不得不用新的编码本来替换。 * 较长的消息内容。要用编码本编码、译码非常费时,如果是现代,等译码后,消息已经无用。 * 编码系统获安全保护级别较低

Page 18: 第 3 章 密码学基础

18

密码系统特点: * 需要改变消息的真实含义,成为一堆乱码 * 要求预先熟悉和掌握必须的密钥 * 没有密码本,密钥可以经常替换、 * 无论消息多长。可以非常方便,可利用计算机处理,译码速度快 * 比编码系统获得更高的消息安全保护级别。

Page 19: 第 3 章 密码学基础

19

五、电子邮件传输与保密问题 将被加密的消息通过电子邮件传输的安全问题 计算机字符集: 8位二进制表示一个字符, 那么,共有: 28=256种唯一的字符能够被用来表示明文字符集和密文字符集。 但是,很多电子邮件系统把所传输的字符限制为 7位,而把第 8位作为传输字节的奇偶校验位。这里,字符传输的限制是 27 ,即 128种字符。那么,许多不限制密文字符集的密码系统,如 DES 算法,就不能直接地通过某些电子邮件系统传输数据。

Page 20: 第 3 章 密码学基础

20

密文应当能以 8位字符集表示 256种唯一的字符,并能通过 7位的电子邮件系统发送。那么,就需要对每个 8位字符进行一种变换。 实现这种变换的计算机程序称为 UUENCODE ,将三个 8位字符转换成四个 7位字符。而另一个程序 UUDECODE则完成逆向操作。这里,发送者和接收者都必须具有编码程序和对应的解码程序。 如果要通过某种电子邮件系统来传输密文,而又不需要接收者必须具有 7位到 8位字符的转换程序,我们就必须对明文字符集和用来产生密文的算法作出一定的限制。

Page 21: 第 3 章 密码学基础

21

第二节 密码学的基本概念 一、密码学与密码 密码学是关于加密和解密变换的一门科学,是保护数据和信息的有力武器。密码技术已经从早期的军事和外交领域逐步延伸到金融、交通、经济、科学、技术、信息、社会生活等各个方面,成为现代社会中保护信息的重要方法。 密码是什么 ? 密码就是变换。(信息代码变换、数据电平变换。 变换是什么?变换是一种算法实现过程。 谁来做变换?变换可以由硬件和软件实现。(人、器件部件、计算机)

Page 22: 第 3 章 密码学基础

22

几个术语:明文 (plaintext):需要被隐蔽的消息密文 (cipertext) : 明文经变换形成的隐蔽形式加密 (encryption) :

从明文到密文的变换过程 解密 (decryption) :

从密文恢复到明文的过程。

Page 23: 第 3 章 密码学基础

23

几个术语:变换函数所用的一个控制参数称为密钥 (key)加密和解密算法的操作通常是在一组密钥控制下进行的,分别称为加密密钥和解密密钥。密钥未知情况下进行的解密推演过程,称为破译,也称为密码分析或者密码攻击。

Page 24: 第 3 章 密码学基础

24

变换的依据:密钥( Key) 密钥:计算的数据基( Database )。 密钥深度:计算的复杂性 加密的深度(程度) 获取密钥是入侵的关键,也是解密的关键。破译与逆向工程: 密码破译:分析、统计、穷举 程序破译:反汇编、反编译 硬件破译:逆向工程

Page 25: 第 3 章 密码学基础

25

“ ”魔高一尺,道高一丈加密和解密:矛盾在长期对抗中不断发展。实际体现:加密和解密算法。系统的保密性主要取决于密钥的安全性。

明文 x

密文 y

加密过程 E

密钥 k

Page 26: 第 3 章 密码学基础

26

明文 明文

密文

加密算法 解密算法

密钥 密钥

加解密过程示意图加密和解密算法的操作通常都是在一组密钥的控制下进行的 , 分别称为加密密钥 (Encryption Key) 和解密密钥 (Decryption Key).

Page 27: 第 3 章 密码学基础

27

“ ”魔高一尺,道高一丈

明文 x

密文 y

加密过程

加密密钥

解密过程

解密密钥

密码破译

加密与解密

Page 28: 第 3 章 密码学基础

28

密钥分类: ①基本密钥 (base key)。用于启动和控制某种算法结构的密钥产生器,产生用于加密数据的密钥流。 ②会话密钥 (session key)。两个用户在一次通话或交换数据时采用的密钥,例如:数据加密密钥、文件加密密钥等。 ③密钥加密密钥 (key encrypting key)。对密钥进行加密时采用的密钥。 ④主密钥 (host master key)。对密钥加密密钥进行加密的密钥。

Page 29: 第 3 章 密码学基础

29

二、密码体制 密码体制目前分为单钥密码和双钥密码体制 ㈠单钥密码体制 也称为对称密码体制,其加密密钥和解密密钥相同,或者在实质上等同,即从一个很容易得出另一个。

它具有两种加密方式:

Page 30: 第 3 章 密码学基础

30

它具有两种加密方式:流密码 (stream cipher) :又称序列密码 . 序列密码每次加密一位或一字节的明文。即 对明文按字符逐位加密组密码 (block cipher):将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。 ● 序列密码是手工和机械密码时代的主流●

设计简单,密钥单一,加密效率高,特别适合点对点通信传输的数据加密。但其密钥的管理(如密钥产生、分配、存储、销毁等)工作比较复杂。

Page 31: 第 3 章 密码学基础

31

㈡双钥密码体制 也称非对称密码体制,其加密密钥与解密密钥不相同,从一个很难得出另一个。采用双密钥体制的每个用户都有一对选定的密钥,其中一个是秘密的,而另一个则可以公开,并可以象电话号码一样注册公布。因此,双钥密码体制也被称为公钥体制 (public key system) 。

Page 32: 第 3 章 密码学基础

32

公钥体制特点: 加密和解密能力分开,可实现多个用户加密的信息只能由一个用户解读(多对一),或者一个用户加密的信息可以由多个用户解读(一对多)。 前者可以用于公共网络中实现保密通信,后者可用于认证系统中对信息进行数字签名。由于该体制大大减少了多用户之间通信所需的密钥数,方便了密钥管理,这种体制特别适合多用户通信网络。

Page 33: 第 3 章 密码学基础

33

公钥体制特点: 大部分是分组密码,只有概率密码体制属于流密码

每次对一块数据加密 数字签名 ,身份认证 RSA,ECC,ElGamal 加密解密速度慢

Page 34: 第 3 章 密码学基础

34

三、密码与系统安全 几个概念: 1)没有一种密码系统是无懈可击的,仅仅是 一个时间 / 空间复杂性问题。 2)有多种密码体制,每一种体制又派生出多 种算法,需要针对性折衷。 3 )加密程度可以根据应用安全的级别来定, 一个系统可以有多种加密方式。 4)加密程度越高,算法越复杂,会降低系统 性能,需要实际性折衷。

Page 35: 第 3 章 密码学基础

35

1 )有很多密码体系,各自产生的背景不同, 要了解他们各自适合的领域和范围。2 )每一种密码体系都有其优势和不足,扬 长避短。3 )每种密码体系算法是公开的,需要用的 时候可以知道到什么地方去查找这种标 准化文本?知道如何使用。4 )了解如何使用加密、解密工具。

如何对待密码体系?

Page 36: 第 3 章 密码学基础

36

如何对待密码体系?5 )了解其如何产生?解决什么问题?优势 和不足在哪里?还有什么问题没有解决? 我们能不能解决?怎样解决?6 )我们能够做的事: 改进已有的算法,加深加密深度,提高加解密速度,增强应用灵活性,检测和评估加解密的程度,发明新的加密解密算法和硬件。

Page 37: 第 3 章 密码学基础

37

采用了密码体制的系统称为密码系统,密码系统是各种攻击的目标。非授权者、恶意攻击者通过各种办法来窃取机密信息。例如:网络侦察、数据流分析、软件跟踪、搭线窃听、电磁窃听等。 在一定的情况下,不知道密钥,仍然可能入侵密码系统。对一个密码系统采取截获密文,经过分析推断出明文的攻击称为被动攻击。而主动向系统串扰,采用删除、增添、更改、伪造等手段向系统注入假信息的攻击称为主动攻击。

第三节 密码系统

Page 38: 第 3 章 密码学基础

38

常用的密码分析方法有四类:

唯密文攻击 (Ciphertext-only attack)。密码分析者拥有一些消息的密文,这些消息都是用同样的加密算法来加密的。密码分析者的任务是尽可能多地恢复出明文来。当然,最好能够得到加密消息所使用的密钥,以便利用该密钥尽可能多地去解读其他的密文。

Page 39: 第 3 章 密码学基础

39

已知明文攻击 (Known-plaintext attack)。密码分析者不仅拥有一些消息的密文,而且还拥有这些密文对应的明文。密码分析者的任务就是根据这些明文和密文的对应关系来推出加密密钥或者推导出一个算法,使得该算法可以对用同一密钥加密的任何消息进行解密。

Page 40: 第 3 章 密码学基础

40

选择明文攻击 (Chosen-plaintext attack)。分析者不仅拥有一些消息的密文和相应的明文,而且他们还可以进行有选择地加密明文。密码分析者可以选择特定的明文块,这些明文块可能会产生更多关于密钥的信息。分析者的任务就是推导用于加密的密钥或者产生一个算法,使得该算法可以对用同一密钥加密得到的任何密文进行解密。

Page 41: 第 3 章 密码学基础

41

选择密文攻击 (Chosen-ciphertext attack)。密码分析者能够选择不同的密文,而且能够得到与之对应的明文。有时我们将选择明文攻击和选择密文攻击一起称作选择文本攻击(Chosen-text attack)

Page 42: 第 3 章 密码学基础

42

衡量密码攻击的复杂度有两个方面:数据复杂度和处理复杂度。数据复杂度是指为了实施攻击所需输入的数据量;而处理复杂度是指处理这些数据所需的计算量。

Page 43: 第 3 章 密码学基础

43

一、密码学的起源三个阶段:

• 1949 年之前 密码学是一门艺术• 1949 ~ 1975 年 密码学成为科学• 1976 年以后 密码学的新方向——公钥密码学

Page 44: 第 3 章 密码学基础

44

密码学的起源

隐写术 (steganography): 通过隐藏消息的存在来保护消息 .

a. 隐形墨水b. 字符格式的变化c. 图象图像

Page 45: 第 3 章 密码学基础

45

例 1

( 象形文字的修改 )Modified Hieroglyphics, c. 1900 B.C. 密码学的第一个例子是对标准书写符号的修改 例如 :古埃及法老坟墓上的文字 思想 : 代替 (substitution)

Page 46: 第 3 章 密码学基础

46

例 2

Polybius’ Checkerboard , 205~123 B.C.

明文 :POLYBIUS 密文 :3534315412244543

1 2 3 4 5

1 A B C D E

2 F G H IJ K

3 L M N O P

4 Q R S T U

5 V W X Y Z

Page 47: 第 3 章 密码学基础

47

• 1949 年之前 : 古典密码( classical cryptography) 密码学还不是科学 , 而是艺术 出现一些密码算法和加密设备 密码算法的基本手段 (substitution & permutation)出现,针对的是字符

简单的密码分析手段出现

Page 48: 第 3 章 密码学基础

48

1 )代替密码(替换密码) 可分为单表密码、多表密码单表密码:将明文中的字母或符号用另一种字母或符号来代替,这种代替是一一对应的。 明文与密文之间只有一种对应关系。多表密码:代替不是一一对应的。 代替规律不同,密码体制也不同。 代替规律相同,明密文间字母对应关系不同, 代替出的密码也不同。e.g. 同余密码(加同余、乘同余、线性同余) 随机替代、密钥词组、多表组合

二、经典密码

Page 49: 第 3 章 密码学基础

49

* 一般单码替换密码♦ 简单的方法给出密钥♦ 写出密钥(删除重复字母)♦ 在其下面依次写出剩余字母 (以横、纵行)♦ 按列读取字母得到密文。

Page 50: 第 3 章 密码学基础

50

一般单码替换密码举例♦ 给定密钥字 "STARWARS"♦ 去掉重复字母得到 "STARW"♦ 填写剩余字母:STARWBCDEFGHIJKLMNOPQUVXYZ♦ 按列读取字母得到密文♦ Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ♦ Cipher: SBGLQZTCHMUADINVREJOXWFKPY♦ 可以用这个密钥加密、解密♦ 例如 Plaintext: I KNOW ONLY THAT I KNOW NOTHING♦ Ciphertext: H UINF NIAP OCSO H UINF INOCHIT

Page 51: 第 3 章 密码学基础

51

一般单码替换密码的密码分析♦ 根据频率统计进行分析♦ 确定每个字母被映射到什么字母♦ 如果知道单词之间的间隙知道 , 则破译会很容易 .♦ 单个字母出现的可能是 A 或 I♦ 一般来说 3 个字母出现的可能是 THE 或 AND♦ 还可以用其他通常出现的双字母或三字母组合 )♦ 还可以应用其它很少应用的字母

Page 52: 第 3 章 密码学基础

52

同余密码 (1) 加同余码: 一种移位密码,如凯撤 (Cacsar)密码:以查码表方式进行一对一替换。 收发双方采用同一码表。 凯撤密码加密变换: C=P+3 (mod 26) 凯撤密码解密变换: P=C-3 (mod 26)密钥: 3

Page 53: 第 3 章 密码学基础

53

若明文m=Casear cipher is a shift substitution 则密文C=E(m)=FDVHDU FLSHU LV D VKLIW VXEVWLWXWLRQ

明文a b c d e f g h i j k l m

密文D E F G H I J K L M N O P

明文n o p q r s t u v w x y z

密文Q R S T U V W X Y Z A B C

Page 54: 第 3 章 密码学基础

54

凯撤密码扩展: C=P+n (mod 26) P=C-n (mod 26) 密钥: n

密码分析(1)加解密算法已知(2)可能尝试的密钥只有2 6个通过强力攻击得到明文

Page 55: 第 3 章 密码学基础

55

(2)乘同余码: 移位或等间隔抽取码,明密文之间没有一一对应关系。(容易产生多义性)。 变换按照同余乘法进行: 加密变换: C=Pk (mod 26) 解密变换: P=Ck (mod 26) 密钥: k

Page 56: 第 3 章 密码学基础

56

(3)线性同余: 加同余与乘同余密码的结合。 正常字母顺序替换,解码容易

Page 57: 第 3 章 密码学基础

57

随机替换密码 随机改变字母替换顺序,改变单一字母组合, 增加字符或者专用符号替换,从而增加了密钥数量,使密码破译困难,但用户自己记忆也困难。通常以码表查阅实现。密钥词组密码 解决密钥记忆困难问题,任选一词组作为密钥。 加解密均也采用查表方式。上述密码均是字母、符号的排列和组合,用计算机可以对上述密码进行破译。

Page 58: 第 3 章 密码学基础

58

多表密码 利用多码表组合形成的加解密机制,打乱明文统计规律,提高保密强度。多表代换密码是以一系列 (两个以上 )代换表依次对明文消息的字母进行代换的加密方法

e.g. 维吉尼亚密码、博福特密码等

Page 59: 第 3 章 密码学基础

59

1.维吉尼亚密码一种以移位代换为基础的周期代换密码,为 1858 年法国密码学家维吉尼亚提出。 首先构造一个维吉尼亚方阵:它的基本阵列是 26行 26列的方阵 .方阵的第一行是按正常顺序排列的字母表 ,第二行是第一行左移循环1 位得到的 ,依此类推 ,得到其余各行 . 然后在基本方阵的最上方附加一行 ,最左侧附加一列 , 分别依序写上a到 z 26个字母 , 表的第一行与与附加列上的的字母 a相对应 , 表的第二行与附加列上的字母 b相对应 ..最后一行与附加列上的字母 z相对应 . 如果把上面的附加行看作是明文序列,则下面的 26行就分别构成了左移 0位, 1 位, 2 位…, 25 位的 26个单表代换加同余密码的密文序列。加密时,按照密钥字的指示,决定采用哪一个单表。

Page 60: 第 3 章 密码学基础

60

A A B C D E F G H I J ... Y Z

B B C D E F G H I J K ... Z A

C C D E F G H I J K L ... A B

D D E F G H I J K L M ... B C

E E F G H I J K L M N C D

F F G H I J K L M N O D E

G G H I J K L M N O P E F

H H I J K L M N O P Q F G

Z Z A B C D E F G H I ... X Y

Page 61: 第 3 章 密码学基础

61

维吉尼亚密码密钥字 encryptionencryptione明 文: publickeydistribution密 文: thdcgrdmmqmfvrgqnbwbr

由于密钥字比明文短,所以要重复书写密钥字,以得与明文等长的密钥序列。

Page 62: 第 3 章 密码学基础

62

Vigenére cipher- 破译• 依然保留了字符频率某些统计信息• 重码分析法:间距是密钥长度整数倍的相同子串有相同密文,反过来,密文中两个相同的子串对应的密文相同的可能性很大。

Page 63: 第 3 章 密码学基础

63

2 )置换密码 也称换位密码或转置密码。 加密方式与密文形式不同于代替密码体制。 不改变组成明文消息的符号本身,只对符号进行重新排列。 可以分类为: 倒序密码:颠倒明文书写顺序。 栅栏密码:明文交替书写排列。 行列转置:明文行列转置书写。

Page 64: 第 3 章 密码学基础

64

变换密码的关键思想◆按一定规则写出明文,按另一规则读出密文。◆ 密钥:用于读密文的方法和写明文的方法

Page 65: 第 3 章 密码学基础

65

例、行变换密码 -( Row transposition ciphers )•按行写出字母•以密钥给出的顺序按行读出密文•(总是有一个密钥对)

Page 66: 第 3 章 密码学基础

66

行变换密码 ( 续 1)1) Plain: THESIMPLESTPOSSIBLETRANSPOSITIONSXXKey (R): 2 5 4 1 3Key (W): 4 1 5 3 2

T H E S I S T I E HM P L E S E M S L PT P O S S S T S O P I B L E T E I T L BR A N S P S R P N AO S I T I T O I I SO N S X X X O X S N

Cipher: STIEH EMSLP STSOP EITLB SRPNA TOIIS XOXSN

Page 67: 第 3 章 密码学基础

67

3 )代码密码 可以对明文字母、符号、词组和短语等进行替换,甚至对明文句子进行替换。 不考虑明文的结构,代码替换可以是等长的,也可以是不等长的。 短码替换使明文长度缩短,实现明文压缩。 长码替换使明文长度增长,实现明文扩展。e.g. 以各种编码实现替换: 二进制码、八或 16进制码、五中出二码、 格雷码等。

Page 68: 第 3 章 密码学基础

68

一次一密密码 一次一密密码,由 AT&T公司的 Gilbert Vernam在1917 年提出。发方和收方各保存一份一次一密乱码本,它是一个大的不重复的真随机密钥字母集。发方用乱码本中的某一页密钥加密明文。加密方法:明文字符和乱码本密钥字符的模 26加法。

每个密钥仅对一个消息使用一次。发方对所发的消息加密,然后销毁乱码本中用过的一页。收方有一个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文的每个字符,然后销毁乱码本中用过的一页。

Page 69: 第 3 章 密码学基础

69

三、著名密码体系1、分组密码的一般设计原理分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为 n的组(可看成长度为 n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列,

Page 70: 第 3 章 密码学基础

70

DES ( Data Encryption Standard )在所有分组密码中,数据加密标准( DES )可谓是最著名的了。 DES密码是一种数据加密标准, 1977年正式公布,供非机要部门的保密通信使用,是唯一由美国政府颁布的公开加密算法。 DES密码在过去 20年被正式作为国际标准采用,但业界认为其 56位密钥太短,而且其基本设计原理,如各种不同排列选择、置换、叠代次数等没有清楚的说明,存在系统隐蔽陷阱的可能。

1 )、 DES 数据加密标准

Page 71: 第 3 章 密码学基础

71

目前, DES 密码体制已经从 56位单一 DES, 发展为 112位的 Double DES ,以及 Triple DES 和更多重的 DES ,使加密程度和密码本身安全性得以大大提高。

Page 72: 第 3 章 密码学基础

72

DES是一种对二进制数据进行加密的算法。数据分组长为 64 位,密钥长也为 64 位。使用 56位密钥对 64 位的数据块进行加密,并对 64 位的数据块进行 16轮编码。与每轮编码时,一个 48位的“每轮”密钥值由 56位的完整密钥得出来。经过 16 轮的迭代、乘积变换、压缩变换等,输出密文也为 64 位。 DES算法的安全性完全依赖于其所用的密钥。

Page 73: 第 3 章 密码学基础

73

明文 64 bit 码

初始变换IP

16轮乘积变换

逆初始变换IP-1

密文64 bit 码输出

DES算法

Page 74: 第 3 章 密码学基础

74

(1)初始变换 将 64 位数据按下表变换( IP)取得 64 位的数据,如果数据长度不足 64 位,应该将其扩展为 64 位(例如补零) Initial Permutation (IP)

58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7

Page 75: 第 3 章 密码学基础

75

将输入的第 58 位换到第一位,第 50 位换到第 2 位, ... ,依此类推,最后一位是原来的第 7 位。

L0 、 R0 则是换位输出后的两部分, L0是输出的左 32 位, R0 是右 32 位,例:设置换前的输入值为 D1D2D3......D64 ,则经过初始置换后的结果为: L0=D58D50...D8 ;

R0=D57D49...D7 。

Page 76: 第 3 章 密码学基础

76

将变换后的数据分为两部分,开始的 32 位称为 L[0],最后的 32位称为 R[0]。

用 16个子密钥加密数据,初始 I=1。

Page 77: 第 3 章 密码学基础

77

(2)选择运算将 32 位的 R[I-1] 按下表( E )扩展为 48 位的 E[I-1]

选择运算E,输入32位数据,产生48位输出.Expansion (E)32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312   13   14   15   16 1716   17   18   19   20   2120 21 22 23 24 2524   25   26 27 28  2928 29 30 31 32 1

Page 78: 第 3 章 密码学基础

78

•变换密钥 16 个取得 64 位的密钥,每个第 8 位作为

奇偶校验位。舍弃 64 位密钥中的奇偶校验位,根据下表( PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位已被舍弃。

Page 79: 第 3 章 密码学基础

79

Permuted Choice 1 (PC-1)57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4

Page 80: 第 3 章 密码学基础

80

将变换后的密钥分为两个部分 :

开始的 28位称为 C[0],

最后的 28位称为 D[0]。

Page 81: 第 3 章 密码学基础

81

生成 16 个子密钥,初始 I=1 。同时将 C[I] 、 D[I] 左移 1 位或 2 位,根

据 I 值决定循环左移的位数。见下表I : 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

Page 82: 第 3 章 密码学基础

82

将 C[I]D[I]作为一个整体按下表( PC-2)变换,得到 48位的

K[I] Permuted Choice 2 (PC-2)14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32

Page 83: 第 3 章 密码学基础

83

(3)使用密钥用 16个子密钥加密数据,初始 I=1。

Page 84: 第 3 章 密码学基础

84

异或 E[I-1]和 K[I], 即 E[I-1] XOR K[I]将异或后的结果分为 8个 6位长的部分,第 1 位到第 6位称为 B[1],第 7位到第 12 位称为 B[2],依此类推,第 43位到第 48位称为 B[8]。

Page 85: 第 3 章 密码学基础

85

(4) 选择函数 (S- 盒 )

S1 、 S2….S8 为选择函数,其功能是将6 bit 数据变为4 bit 数据

Page 86: 第 3 章 密码学基础

86

Substitution Box 1 (S[1])14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Page 87: 第 3 章 密码学基础

87

S[2]

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

Page 88: 第 3 章 密码学基础

88

S[3]

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 15 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

Page 89: 第 3 章 密码学基础

89

S[4]

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

10 6 9 0 12 11 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

Page 90: 第 3 章 密码学基础

90

............

Page 91: 第 3 章 密码学基础

91

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

Page 92: 第 3 章 密码学基础

92

按 S 表变换所有的 B[J] ,初始 J=1 。所有在 S 表的值都被当作 4 位长度处

理。 将 B[J] 的第 1 位和第 6 位组合为一个 2

位长度的变量 M , M 作为在 S[J] 中的行号。

将 B[J] 的第 2 位到第 5 位组合,作为一个 4 位长度的变量 N , N 作为在 S[J]中的列号。

用 S[J][M][N] 来取代 B[J] 。

Page 93: 第 3 章 密码学基础

93

例:以S1为例说明 在S1中,共有4行数据,0、1、2、3 每行有16列,0、1、… 14 、 15 列 现输入D= 101100 , 则 列 =0110 ,行 =10 ,坐标为( 2 , 6 )查表 S1 为 2 ,以 4 位二进制表示为: 0010

Page 94: 第 3 章 密码学基础

94

( 5 )选择函数输出的拼接与换位

将 B[1] 到 B[8] 组合 32 位 ,

按下表( P )变换 , 得到 P .

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

Page 95: 第 3 章 密码学基础

95

(6) 每轮输出 异或 P 和 L[I-1] 结果放在 R[I] , 即 R[I]=P XOR L[I-1] 。 L[I]=R[I-1] 直到 K[16] 被变换完成。

Page 96: 第 3 章 密码学基础

96

(7) 逆初始变换 IP-1

组合变换后的 R[16]L[16] (注意: R 作为开始的 32 位)40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25

Page 97: 第 3 章 密码学基础

97

DES用软件进行解码需要用很长时间,而用硬件解码速度非常快,但幸运的是当时大多数黑客并没有足够的设备制造出这种硬件设备。

在 1977 年,人们估计要耗资两千万美元才能建成一个专门计算机用于 DES的解密,而且需要 12个小时的破解才能得到结果。所以,当时 DES被认为是一种十分强壮的加密方法。

Page 98: 第 3 章 密码学基础

98

1997 年开始, RSA 公司发起了一个称作“向DES 挑战”的竞技赛。 1997 年 1 月,用了 96 天时间,成功地破解了用 DES 加密的一段信息; 一年之后,在第二届赛事上,这一记录 41 天 ;1998 年 7 月, “ 第 2-2 届 DES 挑战赛( DES Challenge II-2 )” 把破解 DES 的时间缩短到了只需 56 个小时; “ 第三届 DES 挑战赛( DES Challenge III )”把破解 DES 的时间缩短到了只需 22.5 小时 。

Page 99: 第 3 章 密码学基础

99

三重 DES 解决其密钥长度问题的方法,即采用三重DES。这种方法用两个密钥对明文进行三次加密,假设两个密钥是 K1和 K2,其算法的步骤:1. 用密钥 K1进行 DES加密。2. 用 K2对步骤 1的结果进行 DES解密。

3. 用步骤 2的结果使用密钥 K1进行 DES加密缺点:花费原来三倍时间优点: 112 位密钥长度,很“强壮”的加密方式

Page 100: 第 3 章 密码学基础

100

Page 101: 第 3 章 密码学基础

101

2) IDEA密码算法 IDEA是以 64-bit的明文块进行分组,密钥是128-bit 长。此算法可用于加密和解密。 IDEA用了混乱和扩散等操作,算法背后的设计思想是“在不同的代数组中的混合运算”。主要有三种运算:异或、模加、模乘,容易用软件和硬件来实现。IDEA的速度:现在 IDEA的软件实现同 DES的速度一样块。

Page 102: 第 3 章 密码学基础

102

2 、公钥密码算法

加密与解密由不同的密钥完成加密 : XY: Y = EKU(X)解密 : YX: X = DKR(Y) = DKR(EKU(X))

知道加密算法 , 从加密密钥得到解密密钥在计算上是不可行的

两个密钥中任何一个都可以用作加密而另一个用作解密 ( 不是必须的 )

X = DKR(EKU(X)) = EKU(DKR(X))

Page 103: 第 3 章 密码学基础

103

3 、公钥密码算法

1 ) RSA密码体制 RSA密码是由 Rivest, Shamir 和 Adleman三位学者于 1977年联合提出的双密钥(公钥)密码系统, RSA是由他们的名字的首字母命名。是迄今理论上最为成熟完善的一种公钥密码体制。 RSA密码基于计算复杂性原理获得加密强度,但其缺点是系统的安全取决于所用的两个大素数,如果能找出一种快速方法分解这两个大素数,系统很容易被攻破。

Page 104: 第 3 章 密码学基础

104

RSA 算法描述 RSA 加、解密算法 (1978 Rivest,Shamir,Adelman)• 分组大小为 k, 2k < n 2k+1

• 公开密钥 n (两素数 p 和 q 的乘积)(推荐 p,q等长) e (与 (p-1)(q-1) 互素) ed1(mod(p-1)(q-1))• 私人密钥 d ( e-1 mod(p-1)(q-1) ) • 加密 c=me mod n

• 解密 m=cdmod n

Page 105: 第 3 章 密码学基础

105

用户首先选择一对不同的素数 p, q,计算 n=pq, f(n)=(p-1)(q-1).

并找一个与 f(n)互素的数 e ,并计算其逆 d, 即 de=1 mod f(n)。

则密钥空间 K=(n,p,q,e,d )。

加密过程为 me mod n=c,

解密过程为 cd mod n=m。

其中 m,c 分别为明文和密文 .

n和 e公开,而 p, q, d是保密的。

Page 106: 第 3 章 密码学基础

106

举例 取两个质数 p=11 , q=13 , p 和 q 的乘积为

n=p×q=143 ,算出另一个数 m=(p-1)×(q-1)=120 ;再选取一个与 m=120 互质的数,例如 e=7 ,则公开密钥 = ( n , e ) = ( 143 , 7 )。

对于这个 e 值,可以算出其逆: d=103 。因为e×d=7×103=721 ,满足 e×d mod m =1 ;即721 mod 120=1 成立。则秘密密钥 = ( n ,d ) = ( 143 , 103 )。

Page 107: 第 3 章 密码学基础

107

设张小姐需要发送机密信息(明文) m=85 给李先生,她已经从公开媒体得到了李先生的公开密钥( n , e ) = ( 143 , 7 ),于是她算出加密值:c= me mod n=857 mod 143=123并发送给李先生。李先生在收到密文 c=123 后,利用只有他自己知道的秘密密钥计算: m= cd mod n =123103 mod 143=85 ,所以,李先生可以得到张小姐发给他的真正的信息 m=85 ,实现了解密。

Page 108: 第 3 章 密码学基础

108

RSA 的安全性

就目前的计算机水平用 1024 位的密钥是安全的, 2048 位是绝对安全的。 RSA实验室认为, 512 位的 n已不够安全,应停止使用,现在的个人需要用 668 位的 n ,公司要用 1024 位的 n ,极其重要的场合应该用 2048 位的 n 。

Page 109: 第 3 章 密码学基础

109

RSA 算法的脆弱性公开密钥算法

P 、 q 选择不当,则变换周期性、封闭性而泄密

例: p=17 , q=11 , e=7 ,则 n=187 。设 m=123 ,则

C1=1237 mod 187=183

C2=1837 mod 187=72

C3=727 mod 187=30

C4=307 mod 187=123

明文 m 经过 4 次加密,恢复成明文。

总之, RSA 对用户要求太苛刻,密钥不能常更换。

Page 110: 第 3 章 密码学基础

110

4。背包密码体制 一种基于组合数学的公钥密码体制。 思路:组合容易,分解困难,单向性原理。 加密对象:数字信息。 不同的背包有不同的解密方法

Page 111: 第 3 章 密码学基础

111

背包问题背包问题描述:给定重量分别为 a1,a2,…an的 n个

物品 ,装入一个背包中 ,要求重量等于一个给定值 ,那么,究竟是那些物品?

0-1背包问题:●给定一个正整数 S和一个背包向量 A=(a1,…,an),其中 ai是正整数,求满足方程S = ∑aixi 的二进制向量 X=(x1,…,xn)。●这是一个 NP (非确定多项式)完全问题,解决这个问题所需要的时间与 n呈指数增长

Page 112: 第 3 章 密码学基础

112

背包问题用于公钥密码学

•做法:明文为 X, S为密文•奥妙在于有两类背包,一类可以在线性时间内求解,另一类则不能

•把易解的背包问题修改成难解的背包问题–公开密钥使用难解的背包问题–私钥使用易解的背包问题

Page 113: 第 3 章 密码学基础

113

易解的背包问题——超递增背包• 满足下列条件的背包

ai > ∑aj (j = 1,…,i-1)• 这样的背包也被称为简单背包• 求解

– 从最大的 ai开始,如果 S大于这个数,则减去 ai, 记xi为 1,否则记 xi为 0

– 如此下去,直到最小的 ai• 例如背包序列 {2, 3, 6, 13, 27, 52}– 求解 70的背包

•结果为 {2, 3, 13, 52}•所以,密文 70对应的明文为 1 1 0 1 0 1

Page 114: 第 3 章 密码学基础

114

例:加解密过程 取一个超递增序列,用 N 去乘所有的项,再

用 M 做模数进行模运算。模应比序列中的所有数的和要大,乘数与序列中的数没有公因子。

超递增序列 {2 , 3 , 6 , 13 , 27 , 52} 取模 M=105 ,乘数 N=31 ,那么一般背包:

Page 115: 第 3 章 密码学基础

115

( 2×31 ) mod 105=62 (3×31 ) mod 105=93 (6×31 ) mod 105=81 (13×31 ) mod 105=88 (27×31 ) mod 105=102 (52×31 ) mod 105=37

即背包为 {62 , 93 , 81 , 88 , 102 , 37}

超递增背包序列是私人密钥,而得到的背包序列是公开密钥。

Page 116: 第 3 章 密码学基础

116

加密二进制:首先将其分为长度等于一般背包序列中项目

数的多个分组。 如消息是: 011000 110101 101110

第一组: 011000 对应 93+81=174

第二组: 110101 对应 62+93+88+37=280

第三组: 101110 对应 62+81+88+102=333

于是密文: 174 , 280 , 333

Page 117: 第 3 章 密码学基础

117

解密密文 先计算 N-1 以满足 N×N-1≡(mod M), 用 N-1 模

M 乘密文值的每项,然后用原始的超递增背包对其进行划分得明文。

M=105 N=31 N-1=61

Page 118: 第 3 章 密码学基础

118

( 174×61 ) mod 105=9=3+6 对应 011000 ( 280×61 ) mod 105=70=2+3+13+52

对应 110101

( 333×61 ) mod 105=48=2+6+13+27

对应 101110

恢复明文

Page 119: 第 3 章 密码学基础

119

背包密码系统的意义• 是第一个公钥密码系统• 有较好的理论价值• 在实践过程中,大多数的背包方案都已被破解,或者证明存在缺陷

Page 120: 第 3 章 密码学基础

120

5、刘氏密码 刘尊全教授 1998年公布了一种新型公开密码系统,成功解决了数据加密中 NP(非确定多项式)完全问题。特点: ①一种真正公开加密算法,设计原理清楚易懂,算法过程透明,无隐蔽陷阱。 ②解决了信息加密中提高加密强度的问题。 ③密文不存在统计特征,相同明文有不同的密文,相同密文也可能有不同的明文,从而使流行的统计分析密码破译法失效。 ④新加密系统的密钥基于随机性和数学无通常解析解而设计。

Page 121: 第 3 章 密码学基础

121

例、 PGP加密软件是美国 Network Associate Inc.出产的 Internet免费软件,可用它对文件、邮件进行加密,你还可和同样装有 PGP软件的朋友互相传递加密文件,安全十分保障。  PGP的 7.0 版是免费版,在 www.pgp.com 上可以下载, 7.8M。是基于 RSA的双钥加密体制。

Page 122: 第 3 章 密码学基础

122

软件用法:首先生成一对密钥(同时生成)一个公钥,你可以把它分发给你的朋友们,用来加密文件,另一个私钥,自己保存,解密文件的。打开“开始”中“ PGP”的“ PGP KEYS”,点击图标 或者用菜单 key>new key开始生成密钥。

Page 123: 第 3 章 密码学基础

123

PGPKeys 窗口

Page 124: 第 3 章 密码学基础

124

常用工具窗口

Page 125: 第 3 章 密码学基础

125

PGPKeys窗口

Page 126: 第 3 章 密码学基础

126

密钥(公钥、私钥)的产生

Page 127: 第 3 章 密码学基础

127

公钥以 .asc 或 .txt 文件保存,并发送对方,用于加密。

Page 128: 第 3 章 密码学基础

128

文件加密

Page 129: 第 3 章 密码学基础

129

注意选择加密的密钥

Page 130: 第 3 章 密码学基础

130

注意选择适当的公钥进行加密

Page 131: 第 3 章 密码学基础

131

第四节 密钥管理 密钥是加密解密算法中的可变部分,采用密码技术保护的系统,其安全性在很大程度上取决于对密钥的保护,而不仅仅是对算法和硬件本身的保护。因此,密钥的保密和密钥的安全管理在信息系统、通信系统等现代系统安全中是极其重要的。密钥管理包含了密钥自产生到最终销毁的整个过程中的各种安全问题。如:密钥的产生、存储、装入、分配、保护、遗忘、丢失和销毁。

Page 132: 第 3 章 密码学基础

132

密钥安全的几个关键步骤: ⑴密钥生成 密钥算法,公式,实现两方或多方提供共享的秘钥以便在以后的安全通信中进行加密解密、消息认证或身份认证

Page 133: 第 3 章 密码学基础

133

(2)密钥传送点对点模式需要共享密钥的双方直接通信,传递密钥。这种传递可以是面对面的,即采用人工分发的形势,也可以通过数字信封,用一个双方预先共享的密钥来加密新密钥,然后通过 Internet 传送。

密钥服务器模式这种模式需要密钥服务器 (Key Server, KS)的参

与。这里又分为两种情况:其一,密钥服务器生成密钥,然后通过安全信道分别传送给通信的各方;其二,密钥服务器只负责密钥的传递,不负责密钥的生成。密钥的生成由通信各方中的一方生成。

Page 134: 第 3 章 密码学基础

134

(3)密钥协商现在用得最广泛的密钥协商协议是 DH密钥交换协议。 1976 年, Diffie和 Hellman联合设计了一个密钥交换协议,我们称之为 DH密钥交换协议。通过这个协议,通信双方能够在不安全的通信信道上传递公开信息,继而各自计算出共享密钥。

最大缺点是不能抵御中间人攻击( Middle-man Attack)。

Page 135: 第 3 章 密码学基础

135

(4) 秘密分割 在很多场合下,为了避免权力过于集中,必须将秘密分割开来让多人掌管。只有达到一定数量的人同时合作,才能恢复这个秘密。

Page 136: 第 3 章 密码学基础

136

(5) 密钥控制 密钥更换的频率对系统的安全性也有很大影响。频繁地更换密钥大大降低了攻击者成功的概率。即便一个攻击者获得了某个密钥,他也只能解读很小量的密文。如果我们每次加密都是用不同的密钥(一次一密),那么攻击者获得的密钥更是没有使用价值。但是,如果密钥更新太频繁,又将加大用户间信息交换的延迟,也会造成网络负担。因此,我们要综合考虑这些因素来决定密钥更新的频率。两次密钥更新之间的时间间隔就称为密钥生存周期。

Page 137: 第 3 章 密码学基础

137

严格的说,满足以下三个条件的密码算法才是真正的一次一密:密钥是随机产生的,并且必须是真随机数,而不是伪随机数;密钥不能重复使用;密钥的有效长度不小于密文的长度。一次一密是最安全的加密算法,双方一旦安全地共享了密钥,他们之间交换信息的过程就是绝对安全的。这种算法在一些要求高度机密的场合下使用。

Page 138: 第 3 章 密码学基础

138

密钥通常由密钥服务器来控制,密钥服务器负责密钥的生成和安全分发等工作。但如果网络中用户数目非常多而且分布的地域非常复杂,那么一个密钥服务器就无法承担为所有用户分配密钥的重任。其中的一个解决办法是使用多个密钥服务器的分层结构。

Page 139: 第 3 章 密码学基础

139

(6)密钥托管 密钥托管也称为托管加密,其目的是保证对个人没有绝对的隐私和绝对不可跟踪的匿名性,即在强加密中结合对突发事件的解密能力。其实现手段是把已加密的数据和数据恢复密钥联系起来,数据恢复密钥不必是直接解密的密钥,但由它可得解密密钥。数据恢复密钥由所信任的委托人持有,委托人可以是政府机构、法院或有契约的私人组织。一个密钥可能是在数个这样的委托人中分拆。调查机构或情报机构通过适当的程序,如获得法院证书,然后再从委托人处获得数据恢复密钥。

Page 140: 第 3 章 密码学基础

140

(7)密钥管理基础设施美国国家安全系统委员会于 1997年着手建立一个完善的密钥管理体制,包括公钥基础设施PKI、证书管理基础设施 CMI(Certificate Management Infrastructure)和密钥管理基础设施 KMI(Key Management Infrastructure)。 KMI的功能包括:密钥生成、导出、注册、证书建立、证书安装、密钥和证书的存储和分配、证书状态的维护、注册注销、密钥档案、密钥销毁以及审计功能等。

Page 141: 第 3 章 密码学基础

141

第五节 软件与硬件加密技术 一、软件加密概念缺点:速度慢、造价高、安全性差优点:使用灵活、修改方便、可移植性好。

采用软件加密时,密钥管理的手段必须可靠,密钥和明文应在加密后删除。

Page 142: 第 3 章 密码学基础

142

用纯软件方法来实现的加密,有密码方式、软件自校验方式和钥匙盘方式等。随着软加密的发展,解密软件也开始出现。一些高手可利用DEBUG、 SOFT—ICE 等工具来分析软加密的工作原理,而编写相应的解密程序。市场上有许多采用软加密的软件被这些工具解密。针对这些,软加密也做出相应的改进。一是提高加密强度,采用内部调用函数,外部包壳,并会自动排斥一些常用的解密工具;二是短时间内即做一次软件升级,使解密者难于应付。

Page 143: 第 3 章 密码学基础

143

密码方式所谓密码方式就是在软件执行过程中在一些重要的地方询问用户密码,用户依照密码表输入密码,程序才能继续执行。优点:实现简单,投入成本少。缺点:破坏了正常的人机对话,易让用户感到厌烦;密码相对固定,非法用户只需复制密码表,就可以非法使用该软件;加密点比较固定,软件容易被解密。密码方式主要用于价格较低的软件,如早期的一些游戏软件就采取了此种方式。

Page 144: 第 3 章 密码学基础

144

软件自校验方式是开发商将软件装入用户硬盘,安装程序自动记录计算机硬件的奇偶校验和、软件安装的磁道位置等信息,或者在硬盘的特殊磁道、 CMOS中做一定标记,然后自动改写被安装程序。软件安装完之后,执行时就会校验这些安装时记录的信息或标记。如果软件被用户拷贝到另外的计算机上,由于运行环境已改变,软件不能正常执行。

Page 145: 第 3 章 密码学基础

145

使用此种加密方式用户在正常使用软件时感觉不到加密的存在,加密相对也比较可靠,为许多软件开发商采用。有的软件商索性将安装盘用硬件加密后销售,用户购买安装盘后可自己将软件安装到多台计算机上,为用户提供了很大方便。这种加密方式也存在一定缺陷,当用户增减或更换计算机硬件,压缩硬盘,或出现 CMOS掉电等情况都会造成软件不能正常执行,需重新安装软件。

Page 146: 第 3 章 密码学基础

146

钥匙盘方式在软盘的特殊磁道写入一定信息,软件在运行时要校验此信息。此软盘类似一把钥匙,称为钥匙盘。采用此种加密方式的软加密工具有很多,较先进的软加密工具还提供了接口函数,如 BITLOK。软件商只需一次性投资购买一套加密工具,就可自己制作多张钥匙盘。此种方式加密简便,成本低,加密可靠,使用此种加密方式的软件也比较多,如 KILL、 KV300等。但存在一些缺陷:用户执行软件时必须在软盘驱动器中插入软盘,为用户在软盘中存取数据造成不便。因软盘是消耗品,易因折伤、划伤、磁化、冷热等原因造成损坏。软盘上的软件和数据用户可以备份,而钥匙盘不能备份,所以用户经常会因钥匙盘损坏等原因造成软件不能正常使用。

Page 147: 第 3 章 密码学基础

147

序列号加密  现今很多Shareware(共享软件 )大多采用这种加密方式,用户在软件的试用期是不需要交费的,一旦试用期满还希望继续使用这个软件,就必须到软件公司进行注册,然后软件公司会根据你提交的信息 (一般是用户的名字 )来生成一个序列号,当你收到这个序列号以后,并在软件运行的时候输入进去,软件会验证你的名字与序列号之间的关系是否正确,如果正确说明你已经购买了这个软件,也就没有日期的限制了。

Page 148: 第 3 章 密码学基础

148

许可证加密  是序列号加密的一个变种。从网上下载或购买的软件并不能直接使用,软件在安装时或运行时会对你的计算机进行一番检测,并根据检测结果生成一个特定指纹,这个指纹是一个数据文件,把这个指纹数据通过 Internet、 E-mail、电话、传真等方式发送到开发商那里,开发商再根据这个指纹给你一个注册码或注册文件,你得到这个注册码或注册文件并按软件要求的步骤在你的计算机上完成注册后方能使用。

Page 149: 第 3 章 密码学基础

149

二、硬件加密概念硬加密则是采用硬件(电路、器件、部件等)和软件结合来实现的加密,对硬件本身和软件采取的加密、隐藏、防护技术,防止被保护对象被攻击者破析、破译。硬件加解密是商业或军事上的主流

( 1)速度问题:针对位的操作、不占用计算机主处理器( 2)安全性:可进行物理保护( 3)易于安装:不需使用计算机的电话、传真、数据线路;计算机环境下,使用硬件加密可对用户透明,软件实现,需要在操作系统深层安装,不容易实现。

Page 150: 第 3 章 密码学基础

150

续( 硬件加密概念 ):

如:加密卡、软件狗和微狗等。硬加密也是目前广泛采用的加密手段,加密后软件执行时需访问相应的硬件,如插在计算机扩展槽上的卡或插在计算机并口上的“狗” 。采用硬加密的软件执行时需和相应的硬件中交换数据,若没有相应的硬件,加密后的软件将无法执行。

Page 151: 第 3 章 密码学基础

151

三、硬件加密特点 硬件加密较之软件加密具有其独到的特点。 ①安全性好,破译困难采用定制或半定制硬件芯片将硬件密封,防止破译者了解硬件情况。 ②由硬件完成加密解密和权限检查,防止破译者通过反汇编、反编译分析破译。 ③在硬件内设置自毁装置,一旦发现硬件被拆卸或程序被跟踪,促使硬件自毁,使破译者不敢进行动态跟踪。 ④ 硬件加密需要增加硬件,增加成本

Page 152: 第 3 章 密码学基础

152

四、硬件加密技术•加密卡方式插在计算机总线上的加密产品一般称为加密卡。加密卡方式加密强度高,防跟踪措施完备。它的好处是:在软件的执行过程中可以随时访问加密卡,而不会对软件运行的速度带来太多的影响,而且由于它是使用完全由卡的生产厂家制定的数据通讯协议与计算机总线交换数据的,没有统一的标准接口,使得软件解密者无从下手。像北大方正早期的印刷软件都是采用这种方法。

Page 153: 第 3 章 密码学基础

153

但软件换一台计算机使用时,必须要打开两台计算机的机箱,将卡换插,用户使用不太方便;而且加密卡成本也较高,所以一般为做系统集成的开发商所使用。卡加密 90年代初卡加密技术开始风行,但它需要占用扩展槽,一般还需要专门的人员来安装,也比较容易同现有的硬件发生冲突。

Page 154: 第 3 章 密码学基础

154

•软件狗软件狗,是目前流行的一种加密工具。它是插在计算机并行口上的软硬件结合的软件加密产品。软件狗一般都有几十或几百字节的非易失性存储空间可供读写,并且提供了各种语言的接口( OBJ)及外壳的加密方式供开发商使用。它具有加密可靠,使用方便等优点,成本相对加密卡来说要低很多。

Page 155: 第 3 章 密码学基础

155

由于现在使用软件狗加密的软件越来越多,针对软件狗的解密产品也在发展。一方面是从硬件着手,用逻辑分析仪或利用软件监测并口,分析软件在运行时向并口写了什么数据,从并口返回了什么数据,然后在运行软件前先在内存驻留程序监视并口,当软件向并口写数据时,软件自动代替并口返回相应数据。这样,用软件模拟了软件狗。另一方面是从软件着手,寻找软件调用软件狗函数部分,修改判断软件狗是否存在的语句,将程序直接跳转到正常执行部分;这种方式要困难一些,但对于只采取简单加密的软件还是比较有效的。缺陷是:很难完全保障加密和打印两全齐美。

Page 156: 第 3 章 密码学基础

156

微狗——带微处理器的软件狗在软件狗内部增添一个单片机,故名微狗(即带微处理器的软件狗)。此产品在软硬件方面都提高了加密的强度。微狗在进行数据通讯时采取了独特的噪声技术,即利用单片机在微狗和软件之间建立一定的通讯协议,当软件对微狗操作时在传输数据时插入大量噪声数据,而微狗会依照通讯协议自动将噪声滤掉;微狗向软件返回数据时同样也是加入噪声的。由于噪声是随机数,所以即使软件和微狗之间发送或返回相同数据时,检测到的数据每次都是不同的,难用软件仿真微狗。同时,微狗内部还设置了时间闸,当发现模块被跟踪时,会自动返回错误结果。

Page 157: 第 3 章 密码学基础

157

光盘加密 光盘母盘上的某些特征信息是不可再现的,而且

这些特征信息大多是光盘上非数据性的内容,在光盘复制时复制不到的地方。因为投入是一次性的,对于大规模的生产这种加密方案可以将成本降得很低。而且软件数据和加密在同一载体上,对用户无疑是很方便的。但这是一种较新的加密方案,很多方面还需进一步验证。而且由于加密方式所限,不可能在用户自己刻录的光盘上实现这种加密,必须是生产线 。

Page 158: 第 3 章 密码学基础

158

在正版软件中设置破坏性程序的案例 ——江民公司 KV300软件逻辑炸弹案 被处罚人:北京江民新技术有限责任公司(简称“江民公司” )     处罚日期: 1997 年 9 月 8日,北京市公安局

Page 159: 第 3 章 密码学基础

159

在 1997 年 6 月

昆明黑马软件专卖店的职员

在某 BBS站上有 KV300 的磁盘密钥制作工具 ,经过实验后,发现确实可以制作 KV300 密钥,并且可以支持到 KV300 当时的最新版本 L++版。

发现已经有 KV300L++的升级文件,作为经销商,就下载 了。

结果:机器就这么死了 ,硬盘出了问题。只能低级格式化硬盘

打通了北京江民公司的电话,王江民接电话“你是不是用了盗版的加密软件?如果你用正版的 KV300就不会有问题“。

王江民在 KV300L++版里加入了对 MK300V4 加工过的密钥的鉴别程序。他早已预见到会有人用这种密钥盘,就针对性的对这些人的系统进行破坏。病毒的定义就是在特定的条件下被激活并且破坏或影响他人的电脑系统。可以确定, L++版的 KV300里确实有具有病毒特征的程序。

王江民先生也公开亲口承认了 KV300L++上确实有那么一段对付盗版的程序,美其名曰“逻辑锁”──“将‘小偷’反锁在‘屋里’”。

Page 160: 第 3 章 密码学基础

160

公安机关的处理 9月 1日,公安部就江民公司逻辑炸弹事件正式表态。 公安部计算机管理监察司负责人在公安部召开的新闻发布会上指出:鉴定证实, KV300L++网上升级版中有破坏计算机功能的子程序。江民公司的这一行为违反了《中华人民共和国计算机信息系统安全保护条例》规定。北京市公安局计算机安全监察部门将根据以上事实对江民公司的违法行为进行处罚。

Page 161: 第 3 章 密码学基础

161

北京市公安局的处罚决定归纳如下:

公安机关鉴定证实,江民公司的 KV300L++网上升级版中有破坏计算机功能的子程序。江民公司的这一行为违反了《计算机信息系统安全保护条例》规定,属于故意输入有害数据危害计算机信息系统安全的行为。公安机关根据该条例第 23 条规定,决定给予 3000 元罚款的处罚。

Page 162: 第 3 章 密码学基础

162

硬盘死锁的原因表现为:在硬盘下选择 DOS 或 WINDOWS启动机器都死机,在软盘下用 DOS启动也死机;在 CMOS 中将硬盘类型设置为 NONE ,虽然可以从软盘启动,但启动后没有硬盘,使用 软盘上的 FDISK命令,想重新分区或格式化都无法实现。

Page 163: 第 3 章 密码学基础

163

硬盘死锁通常是对硬盘的分区表做手脚,因此首先应该了解硬盘的分区表。

硬盘的分区表位于:

0柱面 0磁头 1扇区,这个扇区的前面200多个字节是主引导程序,后面从 01BEH 开始的 64 个字节是分区表。 分区表共 64 个字节,分为 4栏,每栏 16个字节,用来描述一个分区。

Page 164: 第 3 章 密码学基础

164

硬盘分区表链的知识 :

分区表位于 0柱面 0磁头 1扇区内,以位移 1BEH 开始的第一分区表作为链首,由表内的链接表项指示下一分区表的物理位置( XX柱面 0磁头1扇区),在该位置的扇区内同样位移 1BEH 处,保存着第二张分区表,依次类推,直至指向最后一张分区表的物理位置( YY柱面 0磁头 1扇区)。

因该分区表内不存在链接表项,即作为分区表链的链尾。

Page 165: 第 3 章 密码学基础

165

DOS 引导流程: 如果是从硬盘启动,则计算机和磁盘最开始打交

道是将硬盘 0柱面 0磁头 1扇区的内容 读入内存 0000 : 7C00 处并跳转到 0000 : 7C00 处执行;如果选择从软盘启动,则计算机 和磁盘最开始打交道是将 A盘 0磁道 0磁头 1扇区的内容读入内存 0000 : 7C00 处并跳到 0000 : 7C00 处执行。 然后读入 IO.SYS 中的模块,并继续执行!!!

Page 166: 第 3 章 密码学基础

166

硬盘被锁死的症结: 根源在于 DOS 中 IO.SYS 文件,它包含 LO

ADER,IO1,IO2,IO3四个模块,其中 IO1 中 包含有一个很关键的程序 SysInt_I,它在启动中很固执,非要去读分区表,而且不把分区表读完誓不罢休。如果碰上分区表是循环的,它就死机了!!!这就是王江民逻辑炸弹的 关键所在。

Page 167: 第 3 章 密码学基础

167

解开死锁的方法:措施如下: 在 DOS启动之前抢先拦截 INT 13

H ,驻留高端内存并监视 INT 13H ,判断是否读硬盘, 如果是读则直接返回,禁止了读硬盘,也就避免了 DOS读硬盘循环分区表造成的死机;

同时拦截对软盘的读取,如果是读软盘的 0磁道 0磁头 1扇区,就改成读真正有引导程序和磁盘参数表的扇区,免得 DOS 在启动过程中找不到软盘的磁盘参数表而死机。完成这些任务 的同时,还要读取软盘真正的引导程序并把控制权交给它。

Page 168: 第 3 章 密码学基础

168

第六节 计算机窃取 非授权者、恶意攻击者通过各种办法来窃取机密信息。例如:网络侦察、数据流分析、口令分析、软件跟踪、计算机窃

听等。

Page 169: 第 3 章 密码学基础

169

1)网络侦察 编写一段小程序,对网络中的信息,或者是远程和局部存储部件和介质中的文件、文档进行搜索(关键字搜索、文档搜索、参数区搜索等),将搜索结果(匹配结果、文件、文档等)存放在指定地点(存储部件中),或者发送回本地机,前者再用其他程序将其取回。或者获取远程系统或部件的参数、配置、注册、登录等数据。

Page 170: 第 3 章 密码学基础

170

2)数据流分析 采用各种手段截获数据流并进行分析。 例如:对每一次按键启动键盘中断,获取键盘缓冲区中的数据,得到键码或者内部码,进行分析,获取有价值信息。3 )口令分析 对系统的口令表或者系统口令文件进行读取、分析、追踪、获取用户和管理员口令。

Page 171: 第 3 章 密码学基础

171

4)软件跟踪 对软件(程序)进行静态或者动态跟踪,获取软件进入系统关键部位的方法和步骤。破析软件(程序),对软件进行逆向工程分析等。5 )计算机窃听 利用计算机和网络,对系统和网络中来往的信息交流采取搭线、电磁辐射等方式窃听,分析流包,获取有价值的信息

等。