第3章 密码技术 教学提示:上一章我们已经学习了协议安全的有关知识,本章将介绍与密码算法相关的一些知识,包括其基本概念和简单的实现方法。

Slides:



Advertisements
Similar presentations
质数和合数 中心小学 顾禹 人教版小学五年级数学下册 一、激趣导入 提示:密码是一个三位 数,它既是一个偶数, 又是 5 的倍数;最高位是 9 的最大因数;中间一位 是最小的质数。你能打 开密码锁吗?
Advertisements

因数与倍数 2 、 5 的倍数的特征
质数和合数 2 的因数( ) 6 的因数( ) 10 的因数 ( ) 12 的因数 ( ) 14 的因数 ( ) 11 的因数 ( ) 4 的因数( ) 9 的因数( ) 8 的因数( ) 7 的因数( ) 1 、 2 、 3 、 4 、 6 、 12 1 、 11 1 、 2 、 5 、 10.

2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
冀教版四年级数学上册 本节课我们主要来学习 2 、 3 、 5 的倍数特征,同学们要注意观察 和总结规律,掌握 2 、 3 、 5 的倍 数分别有什么特点,并且能够按 要求找出符合条件的数。
重庆市九龙坡区走马小学 邓华. 一、复习导入,揭示课题 下面哪些数是 2 的倍数?哪些数是 5 的倍数? 2,5的倍数的特征:只看个位上数就能进行判断。 2的倍数:个位上是0,2,4,6,8的数。
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
2 、 5 的倍数特征 集合 2 的倍数(要求) 在百数表上依次将 2 的倍数找出 并用红色的彩笔涂上颜色。
PKI基础.
导入案例 2004年2月,日本因特网雅虎BB公司外泄450万笔个人资料,引起社会指责。雅虎BB以每笔赔偿500日元平息该事件,总计赔偿23亿日币。雅虎BB公司因此陷入财务危机。 2005年1月,东京迪斯尼乐园“终年通信证”的客户资料已被外泄,歹徒要求赎金,否则将公开这些资料。园方针对客户资料泄密事件向14万客户郑重道歉。
学习情境4-2 网上交易安全问题 ——数据加密技术
计算机网络教程 任课教师:孙颖楷.
全国高等职业教育计算机类规划教材 实例与实训教程系列 网络安全应用技术 密码技术.
智能信息安全 Intelligent Information Security
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
安全协议理论与方法 第一章 引论.
引入 在开放的、非安全的网络上如何安全的传送数据? 我怎么确认你发给我的文件没被别人篡改过?.
计算机网络安全 第五章.
常用逻辑用语复习课 李娟.
Oracle数据库 Oracle 子程序.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
李开祥 郭雪丽 马高峰 杨洋 孙凤英 陈静 Copyright © 2007 西安交通大学电子商务系
第十六章 计算机密码学.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
第十讲公钥加密算法 (续) 公钥密码(续) RSA \ ElGamal algorithms.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
网络与系统安全实验 一 传统加密技术 古典密码技术.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Online job scheduling in Distributed Machine Learning Clusters
现代密码学理论与实践 第9章 公钥密码学与RSA
动态规划(Dynamic Programming)
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第3章 信息与信息系统 陈恭和.
第 5 章 加密与认证技术 本章学习目标: 掌握加密通信的系统模型 了解密码学知识及常见的密码体制 了解三种网络加密方法的特点
第一章 函数与极限.
分组密码的工作模式 为克服分组密码自身所具有的缺陷,在具体的分组密码系统设计中必须对其基本的工作模式(电码本模式Electronic Codebook, ECB)进行改进。 密码分组链接模式(Cipher Block Chaining ,CBC) 密码反馈模式(Cipher Feed back ,CFB)
第3章 密钥分配与管理.
VisComposer 2019/4/17.
IT 安全 第 11节 加密控制.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
数据报分片.
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
6×3= 6×30= 60×30= 14×2= 14×20= 140×2= 25×2= 25×20= 250×20= 算一算 18 28
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
基于列存储的RDF数据管理 朱敏
第9章 基于身份的公钥密码体制.
第四章 UNIX文件系统.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
位似.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
第二次课后作业答案 函数式编程和逻辑式编程
App 加密算法建议 Possible lab 土豪军 小陈.
学习目标 1、什么是列类型 2、列类型之数值类型.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
9.3多项式乘多项式.
Presentation transcript:

第3章 密码技术 教学提示:上一章我们已经学习了协议安全的有关知识,本章将介绍与密码算法相关的一些知识,包括其基本概念和简单的实现方法。 教学要求:了解几种常用的加密算法和技术:对称密码算法、公钥密码算法、数字签名技术、密钥管理等。掌握涉及密码系统的基本概念和原理,能够运用基本原理对实际问题进行分析。

3.1 对称密码体制 3.1.1 对称加密体制的概念 对称密码算法是指加密和解密数据使用同一个密钥,即加密和解密的密钥是对称的,这种密码系统也称为单密钥密码系统。

3.1.2 DES算法 DES算法的整个工作流程: 1.在图4.2的左边,64位的明文被修改(排列)以改变位的次序; 2.把明文分成两个32位的块; 3.在图中的密码一侧,原始密钥被分成两半; 4.密钥的每一半向左循环移位,然后重新合并、排列,并扩展到48位,分开的密钥仍然保存起来供以后的迭代使用;

5.在图中的明文一边,右侧32位块被扩展到48位,以便与48位的密钥进行异或(XOR)操作,在这一步后还要进行另外一次排列; 7.使用置换函数把第6步的结果置换成32位; 8.把第2步创建的64位值的左边一半与第7步的结果进行XOR操作; 9.把第8步的结果和第2步创建的块的右半部分共同组成一个新块,前者在右边,后者在左边; 10从第4步开始重复这个过程,迭代15次; 11.完成最后一次迭代后,对这个64位块进行一次翻转,得到一个64位的密文。

图3-2 DES算法的工作流程

3.1.3 DES算法实现 1.变换密钥,取得64位的密钥,每个第8位作为奇偶校验位。 2.舍弃64位密钥中的奇偶校验位,根据以下数组4.1(PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位以被舍弃。

数组3.1 变换选择 (PC-1) 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

3.将变换后的密钥分为两个部分,开始的28位称为C[0],最后的28位称为D[0]。 4.生成16个子密钥,初始I=1。 5.同时将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 6.将C[I]D[I]作为一个整体按以下数组4.2(PC-2)变换,得到48位的K[I]。

数组3.2变换选择2 (PC-2) 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

7.从5处循环执行,直到K[16]被计算完成。 8.处理64位的数据 (1)取得64位的数据,如果数据长度不足64位,应该将其扩展为64位(例如补零) (2)将64位数据按以下数组4.3变换(IP)

数组3.3 初始变换 (IP) 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

9.将变换后的数据分为两部分,开始的32位称为L[0],最后的32位称为R[0]。 10.用16个子密钥加密数据,初始I=1。 (1)将32位的R[I-1]按下表4.4(E)扩展为48位的E[I-1]

数组3.4 扩展 (E) 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

(2)异或E[I-1]和K[I],即E[I-1] XOR K[I]。 (3)将异或后的结果分为8个6位长的部分,第1位到第6位称为B[1],第7位到第12位称为B[2],依此类推,第43位到第48位称为B[8]。 (4)按S表变换所有的B[J],初始J=1。所有在S表的值都被当作4位长度处理。 a、将B[J]的第1位和第6位组合为一个2位长度的变量M,M作为在S[J]中的行号。 b、将B[J]的第2位到第5位组合,作为一个4位长度的变量N,N作为在S[J]中的列号。 c、用S[J][M][N]来取代B[J]。

数组3.5 替换盒1 (S[1]) 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 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

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

S[5] 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 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S[6] 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

S[7] 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[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

d、从a处循环执行,直到B[8]被替代完成。 e、将B[1]到B[8]组合,按以下数组3.6(P)变换,得到P。 (5) 异或P和L[I-1]结果放在R[I],即R[I]=P XOR L[I-1]。 (6) L[I]=R[I-1] (7) 从a处开始循环执行,直到K[16]被变换完成。 11. 组合变换后的R[16]L[16](注意:R作为开始的32位),按以下数组4.7(IP-1)变换得到最后的结果。

数组3.6 变换 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

数组3.7 最后变换 (IP-1) 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

3.2 公钥密码体制 3.2.1 公钥密码体制的概念 非对称密码算法是指加密和解密数据使用两个不同的密钥,即加密和解密的密钥是不对称的,这种密码系统也称为公钥密码系统PKC(Pubilic Key Cryptosystem)。 与对称密码算法不同的是,非对称密码算法将随机产生两个密钥:一个用于加密明文,其密钥是公开的,称为公钥;另外一个用来解密密文,其密钥是秘密的,称为私钥。图4.3所示为非对称密码算法的基本原理。

3.2.2 RSA算法 RSA算法是第一个既能用于数据加密也能用于数字签名的算法. 安全有效性: 1) 已有确定一个数是不是质数的快速算法; 2) 尚未找到确定一个合数的质因子的快速算法。

工作原理: 1) 任意选取两个不同的大质数p和q,计算乘积r=p*q; 2) 任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。注意:e的选取是很容易的,例如,所有大于p和q的质数都可用。 3) 确定解密密钥d: d * e = 1 modulo(p - 1)*(q - 1) 根据e、p和q可以容易地计算出d。 4) 公开整数r和e,但是不公开d; 5) 将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为:C = Pe modulo r 6) 将密文C解密为明文P,计算方法为: P = Cd modulo r

3.2.3 RSA算法实现 (见例题)

3.3 数字签名技术 3.3.1 数字签名技术的概念 数字签名包括消息签名和签名认证两个部分。对于一个数字签名系统必须满足下列条件: 3.3 数字签名技术 3.3.1 数字签名技术的概念 数字签名包括消息签名和签名认证两个部分。对于一个数字签名系统必须满足下列条件: 1)一个用户能够对一个消息进行签名。 2)其他用户能够对被签名的消息进行认证,以证实该消息签名的真伪。 3)任何人都不能伪造一个用户的签名。 4)如果一个用户否认对消息的签名,则可以通过第三种仲裁来解决争议和纠纷。

3.3.2 数字签名的实现方法 DSA是一种基于公开密钥体系的数字签名算法,它不能用作加密,只用作数字签名。DSA使用公开密钥,为接受者验证数据的完整性和数据发送者的身份。它也可用于由第三方去确定签名和所签数据的真实性。DSA算法的安全性基于解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,成为网络安全体系的基本构件之一。

3.3.3 数字签名的其他问题 公钥加密算法中使用最广的是RSA。RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题,还可利用RSA来完成对电文的数字签名以防止电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。 但目前RSA算法的专利期限即将结束,取而代之的是基于椭圆曲线的密码方案(ECC算法)。较之于RSA算法,ECC有其相对优点,这使得ECC的特性更适合当今电子商务需要快速反应的发展潮流。

3.4 密钥管理 3.4.1私钥分配 获得共享密钥的方法基本上有以下几种: (1)密钥由A选取并通过物理手段发送给B; 3.4 密钥管理 3.4.1私钥分配 获得共享密钥的方法基本上有以下几种: (1)密钥由A选取并通过物理手段发送给B; (2)密钥由第三方选取并通过物理手段发送给A和B; (3)如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方; (4)如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。

3.4.2 公钥分配 1.公开发布 2.公用目录表 3.公钥管理机构 4.公钥证书

3.4.3 用公钥加密分配私钥密码体制的密钥 1.简单分配 2.具有保密性和认证性的密钥分配

3.5 认证 认证(Authentication)是证实某人或某个对象是否有效合法或名副其实的过程。它与身份识别(Identification)不同,也与授权(Authorization)不同。在非保密的计算机网络中,验证远程用户(或过程实体)是合法授权用户或恶意的入侵者就属于认证问题。认证是对通信对象的验证;授权是验证用户在系统中的权限,识别则是判别通信对象是哪种身份。

3.5.1 身份认证 身份认证,也称为身份甄别。身份认证是对网络中通信双方的主体进行验证的过程。用户必须提供他是谁的证明。例如,系统中存储用户的指纹,或者用户的视网膜血管分布图,或者用户的声音波纹图等。当用户登录系统时,系统将对其辨认,比较、验证该用户的真实性。

通常有三种方法验证主体身份:一是拥有该主体知道的秘密,如口令、密钥;二是主体携带的物品,如智能卡、令牌卡;三是主体具有的唯一特征,如指纹、声音、视网膜或签名等。

3.5.2 主机之间的认证 如果要认证的对象是主机或站点。例如,银行之间,银行与商家之间的通信,需要确认的是对方主机的身份。据此判别通信是否在指定的主机(或站点)之间进行,这样的过程称为站点认证或主机认证。

3.5.3 Kerberos认证 (1)Kerberos 工作原理 (2)Kerberos的凭证 (3)Kerberos的消息 (4)Kerberos的安全性

3.6 本 章 实 训 实训:SSH安全认证

3.7 本章习题 填空题 (1) 在密码学中通常将源信息称为________,将加密后的信息称为________。这个变换处理过程称为________过程,它的逆过程称为________过程。 (2) DES算法加密过程中输入的明文长度是________位,整个加密过程需经过________轮的子变换。 (3) 常见的密码技术有________、________和________。 (4) 认证是对________的验证;授权是验证________在系统中的权限,识别则是判断通信对象是哪种身份。

选择题 (1) 以下不属于对称密码算法的是( )。 A.IDEA B.RC C.DES D.RSA (1) 以下不属于对称密码算法的是( )。 A.IDEA B.RC C.DES D.RSA (2) 以下不属于非对称密码算法特点的是( )。 A.计算量大 B.处理速度慢 C.使用两个密码 D.适合加密长数据 (3) 对于一个数字签名系统的非必要条件有( )。 A.一个用户能够对一个消息进行签名 B.其他用户能够对被签名的消息进行认证,以证实该消息签名的真伪 C.任何人都不能伪造一个用户的签名 D.数字签名依赖于诚信 (4) 不属于公钥管理的方法有( )。 A.公开发布 B.公用目录表 C.公钥管理机构 D.数据加密

简答题 (1) 简述公钥体制和私钥体制的主要区别? (2) 数据加密算法可以分为几大类型,各举一例说明。 (3) 简要说明DES加密算法的关键步骤。 (4) RSA算法的基本原理和主要步骤是什么? (5) 什么情况下需要数字签名?简述数字签名的算法。 (6) 简要说明密钥管理的主要方法。 (7) 什么是身份认证?用哪些方法可以实现? (8) Kerberos 是什么协议?简要描述Kerberos的鉴别原理。