E-mail: hjbin@infosec.pku.edu.cn 密码学基础(3) 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin.

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

3 的倍数特征 抢三十

苗付友 年 12 月.
第六章 杂凑函数 聂旭云
信号与系统 第三章 傅里叶变换 东北大学 2017/2/27.
電子商務安全防護 線上交易安全機制.
第八章 信息认证和散列函数 (Message Authentication and Hash Functions)
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
(第十四讲) 认证 张焕国 武汉大学计算机学院
06資訊安全-加解密.
周福才 /4/9 可信计算基础 周福才
2-7、函数的微分 教学要求 教学要点.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第十讲公钥加密算法 (续) 公钥密码(续) RSA \ ElGamal algorithms.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
第三章 公钥基础设施PKI 本章学习重点掌握内容: 密码学基本术语 密码体制分类 私钥密码体制的主要特点 公钥密码体制的主要特点
Module 2:電子商務之安全.
6.4.有代表性的哈希函数 基于私钥密码系统的哈希函数 基于离散对数问题的哈希函数 MD系列哈希函数
2.2 IDEA 1990年Xuejia Lai(来学加)& J.L.Massey提出
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
计算机安全与保密 (Computer Security and Applied Cryptography )
数字签名与身份认证 本章内容: 数字签名 鉴别协议 数字签名标准 身份认证技术.
走进编程 程序的顺序结构(二).
网络常用常用命令 课件制作人:谢希仁.
第十二讲 数字签名算法 郑东 上海交通大学计算机科学与工程系.
第五章 数字签名.
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
计算机数学基础 主讲老师: 邓辉文.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
Online job scheduling in Distributed Machine Learning Clusters
雜湊與MAC演算法 Hash and MAC Algorithms
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
SOA – Experiment 2: Query Classification Web Service
若2002年我国国民生产总值为 亿元,如果 ,那么经过多少年国民生产总值 每年平均增长 是2002年时的2倍? 解:设经过 年国民生产总值为2002年时的2倍, 根据题意有 , 即.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
分组密码的工作模式 为克服分组密码自身所具有的缺陷,在具体的分组密码系统设计中必须对其基本的工作模式(电码本模式Electronic Codebook, ECB)进行改进。 密码分组链接模式(Cipher Block Chaining ,CBC) 密码反馈模式(Cipher Feed back ,CFB)
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
顺序表的删除.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VisComposer 2019/4/17.
5.2 常用统计分布 一、常见分布 二、概率分布的分位数 三、小结.
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
密碼學 Chapter 4 基於電腦的非對稱性金鑰密碼學演算法
IT 安全 第 11节 加密控制.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
第4章 Excel电子表格制作软件 4.4 函数(一).
现代密码学理论与实践 第11章 消息认证和散列函数
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
§8.3 不变因子 一、行列式因子 二、不变因子.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
数据报分片.
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第 四 章 迴歸分析應注意之事項.
第一部分:概率 产生随机样本:对分布采样 均匀分布 其他分布 伪随机数 很多统计软件包中都有此工具 如在Matlab中:rand
整合線上軟體開發工具、線上廣播與加密技術之軟體工程線上考試系統
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
基于列存储的RDF数据管理 朱敏
VoIP组工作汇报 黄权 李光华.
第三章 从概率分布函数的抽样 (Sampling from Probability Distribution Functions)
第十七讲 密码执行(1).
第十二讲 密码执行(上).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
§4.5 最大公因式的矩阵求法( Ⅱ ).
入侵检测技术 大连理工大学软件学院 毕玲.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

E-mail: hjbin@infosec.pku.edu.cn 密码学基础(3) 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin

目 录 消息鉴别与散列函数 散列算法 数字签名

消息鉴别与散列函数 Message Authentication and Has Functions

网络通信的攻击威胁 泄露:把消息内容发布给任何人或没有合法密钥的进程 流量分析:发现通信双方之间信息流的结构模式,可以用来确定连接的频率、持续时间长度;还可以发现报文数量和长度等 伪装:从一个假冒信息源向网络中插入消息 内容篡改:消息内容被插入、删除、变换、修改 顺序修改:插入、删除或重组消息序列 时间修改:消息延迟或重放 否认:接受者否认收到消息;发送者否认发送过消息

鉴别和认证 鉴别:authentication 真伪性 认证:Certification 资格审查 (1) A process used to verify the integrity of transmitted data, especially a message 用来验证发送的数据,特别是一个信息的完整性的过程 (2) The act of establishing the identity of users when they start to use the system 在用户开始使用系统时对其身份进行的确认 认证:Certification 资格审查 In computer security, the technical evaluation made as part of and in support of the accreditation process, that established the extent to which a particular computer system or network design and implementation meet prespecified security requirements 计算安全学用语,指为了鉴定一个计算机系统或网络的设计和它提供的手段在多大程度上能满足预定的安全要求而进行的技术评估

鉴别的结构 任何消息认证或数字签名机制可以看到两个层次: 底层必须有某种函数产生一个认证标识:一个用于认证一个报文的值 高层认证协议以底层函数为原语,使接收者完成报文的鉴别

鉴别的目的 信源识别:验证信息的发送者是真正的,而不是冒充的 验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等

鉴别模型

鉴别系统的组成 鉴别编码器和鉴别译码器可抽象为鉴别函数 一个安全的鉴别系统,需满足 (1)指定的接收者能够检验和证实消息的合法性、真实性和完整性 (2)消息的发送者和接收者不能抵赖 (3)除了合法的消息发送者,其它人不能伪造合法的消息

鉴别函数分类 消息加密:整个消息的密文作为认证标识 消息鉴别码(MAC):公开函数+密钥产生一个固定长度的值作为认证标识 散列函数:一个公开函数将任意长度的消息映射到一个固定长度的哈希值,作为认证标识

鉴别函数分类 消息加密:整个消息的密文作为认证标识 消息鉴别码(MAC):公开函数+密钥产生一个固定长度的值作为认证标识 散列函数:一个公开函数将任意长度的消息映射到一个固定长度的哈希值,作为认证标识

消息加密

对称加密-保密和鉴别 B A

对称加密-保密和鉴别

明文M的自动确定 M定义为有意义的明文序列,便于自动识别 强制定义明文的某种结构,这种结构是易于识别但又不能复制且无需借助加密的 可以在加密前对每个报文附加检错码,即所谓的帧检验序列号或检验和FCS 内部差错控制和外部差错控制

差错控制 更难于构造

公钥加密-保密性 B A

公钥加密-鉴别和签名 B A

公钥加密-保密、鉴别和签名 B A

消息鉴别码 MAC

消息鉴别码 使用一个密钥生成一个固定大小的小数据块,并加入到消息中,称MAC, 或密码校验和(cryptographic checksum) 2、接收者可以确信消息来自所声称的发送者 3、如果消息中包含顺序码(如HDLC,X.25,TCP),则接收者可以保证消息的正常顺序 MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少

消息鉴别 B A

消息鉴别与保密,鉴别与明文连接 B A

消息鉴别与保密,鉴别与密文连接 B A

消息鉴别 VS 常规加密 保密性与真实性是两个不同的概念 根本上,信息加密提供的是保密性而非真实性 加密代价大(公钥算法代价更大) 鉴别函数与保密函数的分离能提供功能上的灵活性 某些信息只需要真实性,不需要保密性 – 广播的信息难以使用加密(信息量大) – 网络管理信息等只需要真实性 – 政府/权威部门的公告

散列函数 Hash Function

散列函数 H(M): 输入为任意长度的消息M; 输出为一个固定长度的散列值,称为消息摘要(MessageDigest) H(M)又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、数据鉴别码(Dataauthentication code)等

散列函数基本用法(1)

散列函数基本用法(2)

散列函数基本用法(3)

散列函数基本用法(4)

散列函数基本用法(5)

散列函数基本用法(6)

消息鉴别码 MAC

K M MAC 函数域:任意长度的报文 值域:所有可能的MAC和所有可能的密钥 MAC一般为多对一函数

对MAC的强行攻击 函数域:任意长度的报文 值域:所有可能的MAC和所有可能的密钥 假设

对MAC的强行攻击 假设 假设攻击者已经获得报文的明文和相应的MAC,即

对MAC的强行攻击

对MAC的强行攻击 如果 k≤n,则第一轮就可以产生一个唯一对应。仍然可以有多于一个key产生这一配对,这时攻击者只需对一个新的(message, MAC)进行相同的测试 由此可见,强力攻击企图发现authentication key不小于甚至大于对同样长度的解密key的攻击

对MAC的其它攻击 设M = (X1 || X2 || … || Xm) 是一个由64位Xi数据块连接而成 定义 CK(M) = EK[(M)] 其中  为异或操作;E为 ECB工作模式的DES算法 则 Key length = 56 bit MAC length = 64 bit 强力攻击需要至少256次加密来决定K

对MAC的其它攻击 设 M’ = ( Y1 || Y2 || … || Ym-1 || Ym) 其中 Y1, Y2, …, Ym-1是替换 X1, X2,…,Xm-1的任意值,而 Ym = Y1Y2 , …,  Ym-1  (M) 则 CK(M’) = EK[(M’)] = EK[Y1Y2 , …,  Ym-1  Ym ] = EK[Y1Y2 , …,  Ym-1  (Y1Y2 , …,  Ym-1  (M)) ] = EK[(M)] 这时消息M’ 和 MAC= CK(M) = EK[(M)]是一对可被接收者认证的消息 用此方法,任何长度为64(m-1)位的消息可以被插入任意的欺骗性信息

MAC应具备的性质 如果一个攻击者得到M和CK(M),则攻击者构造一个消息M’使得CK(M’)=CK(M)应具有计算复杂性意义下的不可行性 CK(M)应均匀分布,即:随机选择消息M和M’, CK(M)= CK(M’)的概率是2-n,其中n是MAC的位数 令M’为M的某些变换,即:M’=f(M),(例如:f可以涉及M中一个或多个给定位的反转),在这种情况下,Pr[CK(M)= CK(M’)] = 2-n

基于DES的报文鉴别码

基于DES的报文鉴别码 算法来源 使用CBC(Cipher Block Chaining)方式,初始向量为IV=0 FIPS publication (FIPS PUB 113) ANSI standard (X9.17) 使用CBC(Cipher Block Chaining)方式,初始向量为IV=0

基于DES的报文鉴别码 算法来源 使用CBC(Cipher Block Chaining)方式,初始向量为IV=0 FIPS publication (FIPS PUB 113) ANSI standard (X9.17) 使用CBC(Cipher Block Chaining)方式,初始向量为IV=0

基于DES的报文鉴别码 O1 = EK(D1) O2 = EK(D2O1) O3 = EK(D3O2) … 将数据按64位分组,D1, D2, … , DN,必要时最后一个数据块用0向右填充 运用DES算法E,密钥K 数据认证码(DAC)的计算如下: O1 = EK(D1) O2 = EK(D2O1) O3 = EK(D3O2) … ON = EK(DNON-1)

FIPS PUB 113

目 录 消息鉴别与散列函数 散列算法 数字签名

散列函数

散列函数的定义 散列函数: M:变长报文 H(M):定长的散列值 主要用于为文件、报文或其它分组数据产生指纹

散列函数的要求 H能用于任意大小的分组 H能产生定长的输出 对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能 对任何给定的码h,寻找x使得H(x)=h在计算上是不可行的,即单向性 对任何给定的分组x,寻找不等于x的y,使得H(x)=H(y)在计算上是不可行的,即弱抗冲突性 寻找对任何的(x,y)对使得H(x)=H(y)在计算上是不可行的,即强抗冲突性

Hash vs MAC MAC需要对全部数据进行加 MAC速度慢 Hash是一种直接产生鉴别码的方法

Hash函数通用结构 由Ron Rivest于1990年提出MD4 几乎被所有hash函数使用 具体做法: – 把原始消息M分成一些固定长度的块Yi – 最后一块padding并使其包含消息M长度 – 设定初始值CV0 – 压缩函数f, CVi=f(CVi-1,Yi-1) – 最后一个CVi为hash值

MD5

MD5描述 Merkle于1989年提出hash function模型 Ron Rivest于1990年提出MD4 1992年, Ron Rivest 完成MD5 (RFC 1321) 在最近数年之前,MD5是最主要的hash算法 现行美国标准SHA-1以MD5的前身MD4为基础

MD5描述 输入:任意长度的报文 输入分组长度:512 bit 输出:128 bit 报文

MD5描述-step 1 附加长度值 对报文进行填充,使其比特数与448模512同余,即填充长度为512的整数倍减去64 填充方法:填充比特串的最高位为1,其余各位均为0

MD5描述-step 2 附加长度值 |M2|为512的倍数: Y0,Y1,…,YL-1

MD5描述-step 3 初始化MD缓存 MD为128bit,用于存放散列函数的中间及最终结果 MD可表示为4个32bit的寄存器(A,B,C,D),初始化如下:

MD5描述-step 4 压缩:4个循环的压缩算法

MD5描述-step 5 输出

HMD5

单个512bit分组的MD5处理过程(MD5压缩函数) 当前正在处 理的512 比特分组 128bit 的缓存值 更新缓存 T[0,1…64] 单个512bit分组的MD5处理过程(MD5压缩函数)

每步操作形式

单个512bit分组的MD5处理过程(MD5压缩函数) X[0..15]:保存当前512bit待处理输入分组的值 X[k] = M[q×16 + k] = 在第q个512位数据块中的第k个32位字 每次循环(4)的每步(16)内,X[i]的使用循序各不相同 单个512bit分组的MD5处理过程(MD5压缩函数)

MD5的安全性 Berson表明,对单循环MD5,使用不用的密码分析可能在合理的时间内找出能够产生相同摘要的两个报文,这个结果被证明对四个循环中的任意一个循环也成立,但作者没有能够提出如何攻击包含全部4个循环MD5的攻击 Boer和Bosselaers显示了即使缓存ABCD不同,MD5对单个512bit分组的执行将得到相同的输出(伪冲突) Dobbertin的攻击技术:使MD5的压缩函数产生冲突,即寻找 MD5被认为是易受攻击的,逐渐被SHA-1和RIPEMD-160替代

其它常用Hash算法 SHA-1 RIPEMD-160 HMAC

Hash小结 Hash函数把变长信息映射到定长信息 Hash函数不具备可逆性 Hash函数速度较快

目 录 消息鉴别与散列函数 散列算法 数字签名

报文鉴别的局限性 信宿方伪造报文 信源方否认已发送的报文 用于保护通信双方免受第三方攻击 无法防止通信双方的相互攻击 引入数字签名,是笔迹签名的模拟

数字签名的性质 传统签名的基本特点 数字签名是传统签名的数字化 能与被签的文件在物理上不可分割 签名者不能否认自己的签名 签名不能被伪造 容易被验证 数字签名是传统签名的数字化 能与所签文件“绑定” 容易被自动验证

数字签名的性质 必须能够验证作者及其签名的日期时间 必须能够认证签名时刻的内容 签名必须能够由第三方验证,以解决争议

数字签名的设计要求 签名必须是依赖于被签名信息的一个位串模板 签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认 必须相对容易生成该数字签名 必须相对容易识别和验证该数字签名 伪造该数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名 在存储器中保存一个数字签名副本是现实可行的

数字签名分类 签名方式 安全性 可签名次数 直接数字签名direct digital signature 仲裁数字签名arbitrated digital signature 安全性 无条件安全的数字签名 计算上安全的数字签名 可签名次数 一次性的数字签名 多次性的数字签名

直接数字签名

直接数字签名

直接数字签名

直接数字签名的缺点 验证模式依赖于发送方的保密密钥 – 发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名 – 通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在 – 改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心 X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳

仲裁数字签名

仲裁数字签名 引入仲裁者 仲裁者在这一类签名模式中扮演敏感和关键的角色 – 所有从发送方X到接收方Y的签名消息首先送到仲裁者A – A将消息加上日期并与已被仲裁者验证通过的指示一起发给Y 仲裁者在这一类签名模式中扮演敏感和关键的角色 – 所有的参与者必须极大地相信这一仲裁机制工作正常

仲裁数字签名-单密钥加密方式1 数字签名

仲裁数字签名-单密钥加密方式

仲裁数字签名-单密钥加密方式2

仲裁数字签名-双密钥加密方式

仲裁数字签名-双密钥加密方式

数字签名算法 普通数字签名算法 – EIGamal – RSA – DSS/DSA 不可否认的数字签名算法 群签名算法 盲签名算法

数字签名算法 DSA

DSA

DSA

DSA

DSA分析 基于离散对数的难度,对手通过r恢复k,或通过s恢复x都很难 签名产生的计算任务仅是计算 另一个需要完成的工作只是确定逆元