96
NISE 安安安安安安安安安 — 安安安安安

NISE 安全技术工程师培训 — 密码学技术

Embed Size (px)

DESCRIPTION

NISE 安全技术工程师培训 — 密码学技术. 密码学技术. 密码学相关概念 密码技术 通信加密实现 PGP 的使用. 密码学相关概念. 加密产生的背景 密码学相关术语 密码学发展历程 密码学与信息安全的关系 典型对加密消息的攻击类型. 加密产生的背景. 古玩店的商品价格 凯撒密码 倒序密码 双轨式密码 网格式密码. 信息隐藏. You can't understand. Steganography 也称隐写术:将秘密消息隐藏在其他消息中。 隐形墨水,字符上的针眼,手写字符的差异,字符上的铅笔记号等 - PowerPoint PPT Presentation

Citation preview

Page 1: NISE 安全技术工程师培训 — 密码学技术

NISE 安全技术工程师培训 —密码学技术

Page 2: NISE 安全技术工程师培训 — 密码学技术

密码学技术

密码学相关概念密码技术通信加密实现PGP 的使用

Page 3: NISE 安全技术工程师培训 — 密码学技术

密码学相关概念

• 加密产生的背景• 密码学相关术语• 密码学发展历程• 密码学与信息安全的关系• 典型对加密消息的攻击类型

Page 4: NISE 安全技术工程师培训 — 密码学技术

加密产生的背景

• 古玩店的商品价格• 凯撒密码• 倒序密码• 双轨式密码• 网格式密码

Page 5: NISE 安全技术工程师培训 — 密码学技术

信息隐藏

• Steganography 也称隐写术:将秘密消息隐藏在其他消息中。

• 隐形墨水,字符上的针眼,手写字符的差异,字符上的铅笔记号等

• 图象中隐写:用消息位代替图象的每个字节的最不重要的位,而肉眼无法看出差异;

• 隐写术不使用算法或者密钥

Page 6: NISE 安全技术工程师培训 — 密码学技术

密码学相关概念

• 加密产生的背景• 密码学相关术语• 密码学发展历程• 密码学与信息安全的关系• 典型对加密消息的攻击类型

Page 7: NISE 安全技术工程师培训 — 密码学技术

密码学相关术语

• 使消息保密的技术和科学叫做密码编码学( cryptography ),

• 从事此行业的叫做密码编码者( cryptographer ),

• 密码分析者( cryptanalyst )是从事密码分析的专业人员,

• 密码分析学( cryptanalysis )就是破译密文的科学和技术。

• 密码学( cryptology )作为数学的一个分支,包括密码编码学和密码分析学两部分。

Page 8: NISE 安全技术工程师培训 — 密码学技术

基本术语• 消息被称为明文 (Plaintext) ,用某种方法伪装消息以隐藏它的内容的过程称为加密 (Encrtption) ,被加密的消息称为密文 (Ciphertext) ,而把密文转变为明文的过程称为解密 (Decryption)

• 密码算法 (Cryptography Algorithm): 是用于加密和解密的数学函数

• 密码员对明文进行加密操作时所采用的一组规则称作加密算法 (Encryption Algorithm)

• 接收者对密文解密所采用的一组规则称为解密算法 (Decryption Algorithm)

Page 9: NISE 安全技术工程师培训 — 密码学技术

加解密过程示意图

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

明文 明文

密文

加密算法 解密算法

加密密钥 解密密钥

Page 10: NISE 安全技术工程师培训 — 密码学技术

密码体制• 密码体制:它是一个五元组( P,C,K,E,D) 满足条件:

( 1 ) P 是可能明文的有限集;(明文空间)

( 2 ) C 是可能密文的有限集;(密文空间)

( 3 ) K 是一切可能密钥构成的有限集;(密钥空间)

* ( 4 )任意 k K,∈ 有一个加密算法 和相应的解密算法 ,使得 和 分别为加密解密函数,满足 dk(ek(x))=x, 这里 x P∈ 。

Eek

Ddk CPek : PCdk :

Page 11: NISE 安全技术工程师培训 — 密码学技术

密码学相关概念

• 加密产生的背景• 密码学相关术语• 密码学发展历程• 密码学与信息安全的关系• 典型对加密消息的攻击类型

Page 12: NISE 安全技术工程师培训 — 密码学技术

密码学发展阶段

1949 年之前

1949 ~ 1975 年

1976 年以后

密码学是一门艺术

密码学成为科学

密码学的新方向——公钥密码学

Page 13: NISE 安全技术工程师培训 — 密码学技术

第 1阶段-古典密码

密码学还不是科学 , 而是艺术

出现一些密码算法和加密设备

密码算法的基本手段出现,针对的是字符

简单的密码分析手段出现

主要特点:数据的安全基于算法的保密

Page 14: NISE 安全技术工程师培训 — 密码学技术

Phaistos 圆盘,一种直径约为 160mm 的 Cretan-Mnoan粘土圆盘,始于公元前 17世纪。表面有明显字间空格的字母,至今还没有破解。

第 1 阶段-古典密码

Page 15: NISE 安全技术工程师培训 — 密码学技术

20世纪早期密码机

Page 16: NISE 安全技术工程师培训 — 密码学技术

第 1阶段-古典密码

1883 年 Kerckhoffs 第一次明确提出了编码的原则:加密算法应建立在算法的公开不影响明文和密钥的安全。

这一原则已得到普遍承认,成为判定密码强度的衡量标准,也成为传统密码和现代密码的分界线。

Page 17: NISE 安全技术工程师培训 — 密码学技术

计算机使得基于复杂计算的密码成为可能 相关技术的发展 1949 年 Shannon 的“ The Communication Theory of Secr

et Systems” 1967 年 David Kahn 的《 The Codebreakers》 1971-73年 IBM Watson 实验室的 Horst Feistel等几篇技

术报告 主要特点:数据的安全基于密钥而不是算法的保密

第 2阶段 1949-1975

Page 18: NISE 安全技术工程师培训 — 密码学技术

1976 年: Diffie & Hellman 的 “ New Directions in

Cryptography” 提出了非对称密钥密码 1977 年 Rivest,Shamir & Adleman提出了 RSA 公钥

算法 90 年代逐步出现椭圆曲线等其他公钥算法 主要特点:公钥密码使得发送端和接收端无密钥传输的

保密通信成为可能

-

第 3阶段 1976-

Page 19: NISE 安全技术工程师培训 — 密码学技术

1977 年 DES正式成为标准 80 年代出现“过渡性”的“ Post DES” 算法 ,如 IDEA,

RCx,CAST 等 90 年代对称密钥密码进一步成熟 Rijndael,RC6, MARS,

Twofish, Serpent 等出现 2001 年 Rijndael 成为 DES 的替代者

第 3阶段 1976-

Page 20: NISE 安全技术工程师培训 — 密码学技术

密码学相关概念

• 加密产生的背景• 密码学相关术语• 密码学发展历程• 密码学与信息安全的关系• 典型对加密消息的攻击类型

Page 21: NISE 安全技术工程师培训 — 密码学技术

密码学的作用

机密性 :提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务 [通过数据加密实现 ]。

数据完整性 :提供确保数据在存储和传输过程中不被未授权修改(窜改、删除、插入和重放等)的服务。 [通过数据加密、数据散列或数字签名来实现 ]

Page 22: NISE 安全技术工程师培训 — 密码学技术

密码学的作用

鉴别 : 提供与数据和身份识别有关的服务。[通过数据加密、数据散列或数字签名来实现 ]

抗抵赖性 :提供阻止用户否认先前的言论或行为的服务。 [通过对称加密或非对称加密,以及数字签名等,或借助可信的注册机构或证书机构的辅助提供这种服务 ]

Page 23: NISE 安全技术工程师培训 — 密码学技术

密码学相关概念

• 加密产生的背景• 密码学相关术语• 密码学发展历程• 密码学与信息安全的关系• 典型对加密消息的攻击类型

Page 24: NISE 安全技术工程师培训 — 密码学技术

密码分析攻击类型

• 唯密文攻击——只有密文串可供破译用。

• 已知明文攻击——已知一些明文及其对应的密文。

• 选择明文攻击——密码分析者能够选择一些明文 , 并构造出这些明文所对应的密文来。

• 选择密文攻击——密码分析者能够选择一些密文 , 并造出这些密文所对应的明文来。

Page 25: NISE 安全技术工程师培训 — 密码学技术

密码学相关概念密码学技术通信加密实现PGP 的使用

Page 26: NISE 安全技术工程师培训 — 密码学技术

密码学技术

• 密码算法分类• 经典加密技术• 对称密钥加密技术• 非对称密钥加密技术• 数字签名技术

Page 27: NISE 安全技术工程师培训 — 密码学技术

密码算法分类 -i

• 按照保密的内容分 :受限制的( restricted) 算法 : 算法的保密性基于保持算法的秘密。

基于密钥( key-based) 的算法 : 算法的保密性基于对密钥的保密。

Page 28: NISE 安全技术工程师培训 — 密码学技术

密码算法分类 -ii

• 基于密钥的算法,按照密钥的特点分类:对称密码算法( symmetric cipher) :又称传统密码算法( conventional cipher) ,又称秘密密钥算法或单密钥算法。

非对称密钥算法( asymmetric cipher): 加密密钥和解密密钥不相同,从一个很难推出另一个。又称公开密钥算法( public-key cipher) 。

Page 29: NISE 安全技术工程师培训 — 密码学技术

密码算法分类 -iii

• 按照明文的处理方法:分组密码( block cipher) :将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。

流密码( stream cipher) :又称序列密码。序列密码每次加密一位或一字节的明文,也可以称为流密码。

序列密码是手工和机械密码时代的主流

Page 30: NISE 安全技术工程师培训 — 密码学技术

密码学技术

• 密码算法分类• 经典加密技术• 对称密钥加密技术• 非对称密钥加密技术• 数字签名技术

Page 31: NISE 安全技术工程师培训 — 密码学技术

替代

置换转子机

经典加密技术

Page 32: NISE 安全技术工程师培训 — 密码学技术

明文的字母由其它字母或数字

或符号代替

若该明文被视为一个比特序列

,则替代涉及到用密文比特模式代

替明文比特模式

替代替代

经典加密技术

Page 33: NISE 安全技术工程师培训 — 密码学技术

单字母密码( monoalphabetic cipher )也叫简单代替密码( simple substitution cipher )

即明文的一个字符用相应的一个密文字符代替Caesar恺撒密码:向右环移 3

可用频率分析来破解

◆单字母替代

替代

Page 34: NISE 安全技术工程师培训 — 密码学技术

破译以下密文:

wuhdwb lpsrvvleohTREATY IMPOSSIBLE

Ci=E(Pi)=Pi+3加密算法:

字母表: ( 密码本)

ABCDEFGHIJKLMNOPQRSTUVWXYZ defghijklmnopqrstuvwxyzabc

◆ 恺撒密码

替代

Page 35: NISE 安全技术工程师培训 — 密码学技术

• 单字母密码(简单替换技术)• 简单,便于记忆

• 缺点:结构过于简单,密码分析员只使用很少的信息就可预言加密的整个结构

• 已知加密与解密算法– C=E(p)=(p+k)mod(26)– p=D(C)=(C-k)mod(26)

• 25 个可能的密钥 k ,适用 Brute-Force Cryptanalysis

• 明文的语言是已知的且易于识别

◆ 恺撒密码的特点

替代

Page 36: NISE 安全技术工程师培训 — 密码学技术

替代

• 使用密钥– key

ABCDEFGHIJKLMNOPQRSTUVWXYZkeyabcdfghijlmnopqrstuvwxz

– spectacular

ABCDEFGHIJKLMNOPQRSTUVWXYZspectaulrbdfghijkmnoqvwxyz

–泄露给破译者的信息更少

◆其它单字母替换

Page 37: NISE 安全技术工程师培训 — 密码学技术

替代

•对字母进行无规则的重新排列E(i)=3*i mod 26

ABCDEFGHIJKLMNOPQRSTUVWXYZ

adgjmpsvybehknqtwzcfilorux

◆其它单字母替换

Page 38: NISE 安全技术工程师培训 — 密码学技术

字母频率分析实例

Page 39: NISE 安全技术工程师培训 — 密码学技术

替代

多字母代替 polygram substitutio

n

字符块成组加密 ABA RTQ

ABB SLL

◆多字母代替

Page 40: NISE 安全技术工程师培训 — 密码学技术

多字母替代

明文 分组 密文

balloon ba lx lo on db sp gs ugbook bo ok sr qgfill fi lx lx ae sp sp

Page 41: NISE 安全技术工程师培训 — 密码学技术

多表替换

多表替换 polyalphabetic substitution

由多个单字母替换密钥组成 密钥循环使用 密钥数即为周期长度

Page 42: NISE 安全技术工程师培训 — 密码学技术

替代

• 使用非重复的加密字母序列加密会使密码分析至今能使用的任何工具失效。

• 一次性密钥( One Time Pad)

–相同的 PAD ,发方与收方绝对同步;–打印、分发、保存与使用问题

◆多表替代密码

Page 43: NISE 安全技术工程师培训 — 密码学技术

一次一密乱码本( OTP )一次一密乱码本就是一个大的不重复的真随机密钥字母集,发送者用乱码本中的每一个密钥准确地加密一个明文字符,加密是明文字符和密钥字符进行模 26 加法。

明文: ONETIMEPAD

密钥: TBFRGFARFM

密文: I P KLPSFHGQ

因为: O+Tmod26=I , N+Bmod26=P , E+Fmod26=K ,……

A B C D E F G H I J K L M N O P Q R S T U V WX Y Z

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

Page 44: NISE 安全技术工程师培训 — 密码学技术

替代

置换

转子机

经典加密技术

Page 45: NISE 安全技术工程师培训 — 密码学技术

明文字母不变,但顺序打乱 纵行移位

明文: computer graphics may be slow c o m p u t e r g r a p h I c s m a y b e s l o w 密文: caeopsmhlploucwtsemragyrb

置换密码 Transposition 置换密码 Transposition

经典加密技术

Page 46: NISE 安全技术工程师培训 — 密码学技术

置换

Page 47: NISE 安全技术工程师培训 — 密码学技术

替代

置换

转子机

经典加密技术

Page 48: NISE 安全技术工程师培训 — 密码学技术

通过多个加密阶段的组合,能使密码

分析变得极为困难

对置换和替代都适合

转子机转子机

经典加密技术

Page 49: NISE 安全技术工程师培训 — 密码学技术

具有连线的三转子机器(用编号的触点表示)

Page 50: NISE 安全技术工程师培训 — 密码学技术

密码学技术

• 密码算法分类• 经典加密技术• 对称密钥加密技术• 公有密钥加密技术• 数字签名技术

Page 51: NISE 安全技术工程师培训 — 密码学技术

对称密钥加密技术

Page 52: NISE 安全技术工程师培训 — 密码学技术

对称密钥加密技术

安全性依赖于:加密算法足够强,加密方法的安全性依赖于密钥的秘密性,而不是算法。

特点:( 1)收发双方使用相同密钥的密码( 2)密钥的分发和管理非常复杂、代价昂贵。( 3)不能实现数字签名用来加密大量的数据( 4) n个节点的网络所需密钥为 n*(n-1)/2

Page 53: NISE 安全技术工程师培训 — 密码学技术

对称密钥加密的算法

• DES , Triple DES

• RC2 , RC4 , RC5 , RC6

• AES• IDEA

Page 54: NISE 安全技术工程师培训 — 密码学技术

DES 的产生 -i

• 1973 年 5月 15日 , NBS (美国国家标准局)开始公开征集标准加密算法 ,并公布了它的设计要求 :

(1) 算法必须提供高度的安全性(2) 算法必须有详细的说明 ,并易于理解(3) 算法的安全性取决于密钥 , 不依赖于算法(4) 算法适用于所有用户(5) 算法适用于不同应用场合(6) 算法必须高效、经济(7) 算法必须能被证实有效(8) 算法必须是可出口的

Page 55: NISE 安全技术工程师培训 — 密码学技术

DES 的产生 -ii

• 1974 年 8月 27日 , NBS开始第二次征集 ,IBM提交了算法 LUCIFER ,该算法由 IBM 的工程师在 1971~1972 年研制

• 1975 年 3月 17日 , NBS 公开了全部细节• 1976 年 ,NBS指派了两个小组进行评价• 1976 年 11月 23日,采纳为联邦标准,批准用于非军事场合的各种政府机构

• 1977 年 1月 15日 ,“ 数据加密标准” FIPS PUB 46 发布

Page 56: NISE 安全技术工程师培训 — 密码学技术

DES 的应用

• 1979 年,美国银行协会批准使用• 1980 年,美国国家标准局( ANSI )赞同 DES作为私人使用的标准 , 称之为 DEA ( ANSI X.392 )

1983 年,国际化标准组织 ISO赞同 DES 作为国际标准,称之为 DEA-1

• 该标准规定每五年审查一次,计划十年后采用新标准

• 最近的一次评估是在 1994 年 1月,已决定 1998年 12月以后, DES 将不再作为联邦加密标准。

Page 57: NISE 安全技术工程师培训 — 密码学技术

DES的描述• DES利用 56比特串长度的密钥 K来加密长度为 64 位的明文,得到长度为 64 位的密文 

         

输入 64 比特明文数据

初始置换 IP

在密钥控制下16 轮迭代

初始逆置换 IP-1

输出 64 比特密文数据

DES 算法框图

交换左右 32 比特

Page 58: NISE 安全技术工程师培训 — 密码学技术

Triple-DES 的四种模型

• DES-EEE3 :三个不同密钥,顺序使用三次加密算法

• DES-EDE3 :三个不同密钥,依次使用加密 -解密 - 加密算法

• DES-EEE2 : K1=K3 ,同上• DES-EDE2 : K1=K3 ,同上

Page 59: NISE 安全技术工程师培训 — 密码学技术

RC 系列算法RC 系列是 Ron Rivest 为 RSA 公司设计的一系列密码: RC1 从未被公开,以致于许多人们称其只出现在 Rivest 的记事本上;

RC2 是 64 位分组,变长密钥加密密法; (RC3在设计过程中在 RSADSI 内被攻破 );

RC4 是 Rivest 在 1987 年设计的变长密钥的序列密码;

RC5 是 Rivest 在 1994 年设计的分组长、密钥长的迭代轮 数都可变的分组迭代密码算法;

DES(56),RC5-32/12/5, RC5-32/12/6,RC-32/12/7已分别在 1997 年被破译;

Page 60: NISE 安全技术工程师培训 — 密码学技术

RC4 序列算法

• RC4由 Ron Rivest 在 1987 年为 RSA 公司开发,是可变密钥长度的序列密码,

• 该算法以 OFB 方式工作:密钥序列与明文互相独立。

• 有一个 8×8 的 S盒: S0 , S1 ,…… S255 。• 所有项都是数字 0到 255 的置换,并且这个置换是一个可变长度密钥的函数。它有两个计数器: i 和 j ,初值为 0 。

Page 61: NISE 安全技术工程师培训 — 密码学技术

RC5

• 作者为 Ron Rivest 1994 设计、 1995 公开1. 适用于软件或者硬件实现2. 运算速度快3. 能适应于不同字长的程序(一个字的 bit 数是 RC5 的

一个参数;)4. 加密的轮数可变(轮数是 RC5 的第二个参数)5. 密钥长度是可变的(密钥长度是 RC5 的第三个参

数)6. 对内存要求低7. 依赖于数据的循环移位(增强抗攻击能力)

Page 62: NISE 安全技术工程师培训 — 密码学技术

RC6

• 被选为 21世纪加密标准算法。 RC6 是 RC5的进一步改进。像 RC5那样, RC6 实际上是利用数据的循环移位。

• RC5自 1995 年公布以来,尽管至今为止还没有发现实际攻击的有效手段,然而一些理论攻击的文章先后也分析出 RC5 的一些弱点。

• RC6 的加密程序: RC6-w/r/b

Page 63: NISE 安全技术工程师培训 — 密码学技术

国际数据加密 IDEA 算法

• 1990 年瑞士联邦技术学院的来学嘉和 Massey提出, PES , 91 年修订, 92 公布细节

• IDEA 是对称、分组密码算法,输入明文为 64位,密钥为 128 位,生成的密文为 64 位, 8圈;

• 设计目标从两个方面考虑– 加密强度– 易实现性

• IDEA 是一种专利算法 ( 在欧洲和美国 ) ,专利由 Ascom-Tech AG拥有 ;

( International Data Encryption Algorithm)

Page 64: NISE 安全技术工程师培训 — 密码学技术

AES 背景

• 1997 年 4 月 15 日,美国国家标准技术研究所( NIST )发起征集高级加密标准( Advanced Encryption Standard) AES的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。

• 1997年 9月 12日,美国联邦登记处公布了正式征集 AES候选算法的通告。作为进入 AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。

• 对 AES的基本要求是:比三重 DES快、至少与三重 DES一样安全、数据分组长度为 128比特、密钥长度为 128/192/256比特。

Page 65: NISE 安全技术工程师培训 — 密码学技术

AES 背景

• 1998年 8月 12日,在首届 AES会议上指定了15个候选算法。

• 1999年 3月 22日第二次 AES会议上,将候选名单减少为 5个,这 5个算法是 RC6, Rijndael, SERPENT, Twofish和MARS。

• 2000年 4月 13日,第三次 AES会议上,对这5个候选算法的各种分析结果进行了讨论。

• 2000年 10月 2日, NIST —宣布了获胜者 Rijndael算法, 2001 年 11月出版了最终标准 FIPS PUB197。

Page 66: NISE 安全技术工程师培训 — 密码学技术

密码学技术

• 密码算法分类• 经典加密技术• 对称密钥加密技术• 公有密钥加密技术• 数字签名技术

Page 67: NISE 安全技术工程师培训 — 密码学技术

公有密钥加密技术

Page 68: NISE 安全技术工程师培训 — 密码学技术

公有密钥加密技术

公有密钥和私有密钥的使用规则( 1)密钥成对使用( 2)公钥可以给任何人,而私钥自己保留( 3)从现实环境下,不可能从公有密钥推导出私有密钥特点:( 1)密钥的分配和管理简单。( 2)容易实现数字签名,最适合于电子商务应用。( 3)安全性更高,计算非常复杂,实现速度远赶不上对称密钥加密系统( 4) n个节点的网络需要密钥总数 2n 个。

加密关键性的、核心的机密数据

Page 69: NISE 安全技术工程师培训 — 密码学技术

基于公有密钥的加密算法

• RSA

• DSA

• Diffie-Hellman

Page 70: NISE 安全技术工程师培训 — 密码学技术

RSA 算法 Ron Rivest, Adi Shamir 和 Len Adleman 于 1977年研制并于 1978 年首次发表;

RSA 是一种分组密码,其理论基础是一种特殊的可逆模幂运算,其安全性基于分解大整数的困难性;

RSA既可用于加密,又可用于数字签名,已得到广泛采用;

RSA已被许多标准化组织 (如 ISO、 ITU、 IETF和 SWIFT 等 ) 接纳;

RSA-155(512 bit), RSA-140 于 1999 年分别被分解;

Page 71: NISE 安全技术工程师培训 — 密码学技术

DSA

•数字签名算法,是 Elgamal 签名机制的一种变形,变美国 NIST作为 DSS(数字签名标准)于 1994 年 5月 19日被颁布,专用于签名 /验证。

Page 72: NISE 安全技术工程师培训 — 密码学技术

RSA 与 DSA比较

• RSA 既可用于加密 , 也可用于签名 ;

• DSA只能用于签名 , 不能用于加密 ;

• RSA 算法产生签名比 DSA慢,但验证签名比 DSA快 ;

Page 73: NISE 安全技术工程师培训 — 密码学技术

Diffie-Hellman

•由 whitfield Diffie 和 Martin Hellman 提出,

•是一个密钥建立协议,•只用于密钥分发,•不能用于加 /解密报文。

Page 74: NISE 安全技术工程师培训 — 密码学技术

密码学技术

• 密码算法分类• 经典加密技术• 对称密钥加密技术• 公有密钥加密技术• 数字数字签名技术

Page 75: NISE 安全技术工程师培训 — 密码学技术

数字签名技术

• 基于公有密钥的鉴别过程• 鉴别函数• 数字签名功能• 数字签名原理

Page 76: NISE 安全技术工程师培训 — 密码学技术

基于公有密钥的鉴别过程

Page 77: NISE 安全技术工程师培训 — 密码学技术

鉴别函数

报文加密:以整个报文的密文作为它的鉴别符。

报文鉴别码( MAC ):以一个报文的公共函数和用于产生一个定长值的密钥作为鉴别符。

散列函数:一个将任意长度的报文映射为定长的散列值的公共函数,以散列值作为鉴别码。

Page 78: NISE 安全技术工程师培训 — 密码学技术

鉴别函数

• HASH函数是将一个任意长的输入变成固定长度的输出的函数,一般输出的长度为 128位或 160 位。

•单向 Hash 的输出不依赖于输入• Hash 主要用于完整性校验和身份认证•常见的 Hash 函数算法有: MD5 , SHA

单向散列函数单向散列函数

Page 79: NISE 安全技术工程师培训 — 密码学技术

MD5

• MD 算法( Message Digest Algorithm 信息摘要算法)由 Rivest 从二十世纪八十年代末开发的系列散列算法的合称。

• MD 算法是让大容量信息在用数字签名软件签系统署积重难返人密匙前被”压缩”成一种保密的格式,即把一个任意长度的字节串变成一个定长的大整数。

• 1990 年开发出 MD4 算法, 1991 年推出 MD5 算法• MD5 以 512 位分组来处理输入的信息,每一分组又被划分为 16 个 32 位子分组,经过一系列的处理后,算法的输出由四个 32 位分组组成,最后级联后生成一个128 位散列值

Page 80: NISE 安全技术工程师培训 — 密码学技术

Secure Hash Algorithm 简介

• 1992 年 NIST 制定了 SHA(128 位 )• 1993 年 SHA 成为标准• 1994 年修改产生 SHA-1(160 位 )• 1995 年 SHA-1 成为新的标准• SHA-1 要求输入消息长度 <264

• SHA-1 的摘要长度为 160 位• 基础是 MD4

Page 81: NISE 安全技术工程师培训 — 密码学技术

• 使用了密钥的单向散列函数通常也称为消息鉴别码( Message Authentication Code,MAC )。

• 消息鉴别码具有散列函数相同的特性,但消息鉴别码使用了一个密钥,只有具有该密钥的人才能生成消息鉴别码。

• 典型的消息鉴别码方案有 HMAC 算法,它是 1996 年由 Bellare 等人提出的。 1997 年, HMAC 被发表为 RFC 2104 ,成为了事实上的 Internet标准,包括 IPSec协议在内的一些安全协议都使用了 HMAC 算法。

MAC (消息鉴别码)MAC (消息鉴别码)

鉴别函数

Page 82: NISE 安全技术工程师培训 — 密码学技术

数字签名的功能

• 接收者能够核实发送这对报文的签名 • 发送这事后不能抵赖对报文的签名 • 任何人不能伪造对报文的签名 . • 保证数据的完整性 , 防止截获者在文件中加入其他信息

• 对数据和信息的来源进行保证 ,以保证发件人的身份 .

• 数字签名有一定的处理速度 ,能够满足所有的应用需求 .

Page 83: NISE 安全技术工程师培训 — 密码学技术

数字签名

将要传送的明文通过一种函数运算( HASH)转换成报文摘要,报文摘要加密后与明文一起传送给按受方,接受方将接受的明文产生新的报文摘要与发送方的发来的摘要解密比较,比较结果一致表示明文未被改动,如果不一致明文已篡改。

原 理原 理

Page 84: NISE 安全技术工程师培训 — 密码学技术

密码技术回顾

密码算法 密码算法

无密钥算法无密钥算法

对称算法对称算法

公开密钥算法公开密钥算法

任意长度的散列函数任意长度的散列函数

单向置换单向置换

随机序列随机序列

对称密钥密码对称密钥密码

分组密码分组密码

序列密码序列密码

任意长度的散列函数( MACs )任意长度的散列函数( MACs )

伪随机序列伪随机序列签名签名

签名签名

公开密钥密码公开密钥密码

Page 85: NISE 安全技术工程师培训 — 密码学技术

密码学技术

密码学相关概念密码技术通信加密实现PGP 的使用

Page 86: NISE 安全技术工程师培训 — 密码学技术

通信加密实现 ( 一 )

•传输数据仅在数据链路层进行加密 ,•接收方是传送路径上的各台节点机,•信息在每台节点机内都要被解密和再加密,依次进行,直至到达目的地

链路加密原理链路加密原理

Page 87: NISE 安全技术工程师培训 — 密码学技术

通信加密实现 ( 一 )

节点(发方)

节点(发方) 加密加密 解密解密 节点

(交换中心)节点

(交换中心) 加密加密 解密解密 节点(收方)

节点(收方)

数据(明文)

密钥 A 密钥 A

(明文)数据

密文 密文 密文

链路加密技术链路加密技术

Page 88: NISE 安全技术工程师培训 — 密码学技术

链路加密的优缺点

优点:• 易操作,对用户是透明的,即在通过链路传送之前所有数据都被加密

• 每一次链接仅需要一组密钥• 任何路由信息都被加密,所以能够提供安全的通信序列

• 加密是在线的缺点:• 在中间节点间数据易被暴露

Page 89: NISE 安全技术工程师培训 — 密码学技术

• 端 -端加密是为数据从一端传送到另一端提供的加密方式。数据在发送端被加密,在最终目的地(接收端)解密,中间节点处不以明文的形式出现

• 特点:应用层减少密码设备的数量只能加密报文,而不能对报头加密

端 -端加密端 -端加密

通信加密实现 (二 )

Page 90: NISE 安全技术工程师培训 — 密码学技术

密码学技术

密码学相关概念密码技术通信加密实现PGP 的使用

Page 91: NISE 安全技术工程师培训 — 密码学技术

PGP 简介

•混合加密系统( RSA、 IDEA)•数字签名•功能强大,速度快•源代码免费

Page 92: NISE 安全技术工程师培训 — 密码学技术

混合加密通信方式

发方

加密C=EK(P)

解密P=DK(C)

收方

明文 P

密钥 K加密

CK=EPbk(K)解密

K=DPrk(CK) 密钥 K

Page 93: NISE 安全技术工程师培训 — 密码学技术

PGP 使用

导入密钥

加密文件

PGP Disk

数字签名

Page 94: NISE 安全技术工程师培训 — 密码学技术

总结

密码学相关概念密码学技术通信加密实现PGP 的使用

Page 95: NISE 安全技术工程师培训 — 密码学技术

Any questions?

Page 96: NISE 安全技术工程师培训 — 密码学技术

课程结束

思考练习题• 密码学包含哪些学科?• 对称密钥加密技术的特点是什么?• 典型的对称密钥加密算法有哪些?• 非对称密钥加密算法有哪些?• MD5、 SHA-1