第6章 消息认证和杂凑函数

合集下载

现代密码学_清华大学_杨波着+习题答案

现代密码学_清华大学_杨波着+习题答案

一、古典密码(1,2,4)解:设解密变换为m=D(c)≡a*c+b (mod 26)由题目可知密文ed 解密后为if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26) 由上述两式,可求得a=3,b=22。

因此,解密变换为m=D(c)≡3c+22 (mod 26)密文用数字表示为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]= ifyoucanreadthisthankateahcer4. 设多表代换密码C i≡ AM i + B (mod 26) 中,A是2×2 矩阵,B是0 矩阵,又知明文“dont”被加密为“elni”,求矩阵A。

解:dont = (3,14,13,19) => elni = (4,11,13,8)二、流密码 (1,3,4)1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c 3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a 1,a 2,a 3)=(1,0,1),求各线性反馈函数的输出序列及周期。

解:设反馈函数为 f(a 1,a 2,a 3) = a 1⊕c 2a 2⊕c 1a 3当 c1=0,c2=0 时,f(a 1,a 2,a 3) = a 1,输出序列为 101101…,周期为 3。

当 c1=0,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2,输出序列如下 10111001011100…,周期为 7。

当 c1=1,c2=0 时,f(a 1,a 2,a 3) = a 1⊕a 3,输出序列为 10100111010011…,周期为 7。

消息认证和杂凑算法

消息认证和杂凑算法
ቤተ መጻሕፍቲ ባይዱ
由此可见,强力攻击企图发现 由此可见,强力攻击企图发现authentication key不小 不小 于甚至大于对同样长度的解密key的攻击。 的攻击。 于甚至大于对同样长度的解密 的攻击
考虑以下的MAC算法 算法 考虑以下的 M = (X1 || X2 || … || Xm) 是一个由 位Xi数据块连接而成, 是一个由64位 数据块连接而成 数据块连接而成, 定义 ∆(M) = X1⊕X2⊕...⊕Xm ⊕ CK(M) = EK[∆(M)] ∆ 为异或操作; 为 工作模式的DES算法。 算法。 ⊕ 为异或操作;E为 ECB工作模式的 工作模式的 算法 Key length = 56 bit MAC length = 64 bit 强力攻击需要至少2 次加密来决定K。 强力攻击需要至少 56次加密来决定 。
CK(M ′) = EK[∆(M ′)] ∆ = EK[Y1⊕Y2 ⊕, …, ⊕ Ym-1 ⊕ Ym ] = EK[Y1⊕Y2 ⊕, …, ⊕ Ym-1 ⊕ (Y1⊕Y2 ⊕, …, ⊕ Ym-1 ⊕ ∆(M)) ] = EK[∆(M)] ∆ 用此方法,任何长度为 × 位的消息可以作为 用此方法,任何长度为64×(m-1)位的消息可以作为欺骗性 位的消息可以作为欺骗性 信息被插入! 信息被插入!
第六章 消息认证和杂凑算法
消息认证码 杂凑函数 MD5杂凑算法 安全杂凑算法 HMAC的安全性
消息鉴别码MAC
使用一个密钥生成一个固定大小的小数据块,并加入到 消息中,称MAC, 或密码校验和(cryptographic checksum) 1、接收者可以确信消息 未被改变。 未被改变。 、接收者可以确信消息M未被改变 2、接收者可以确信消息来自所声称的发送者; 、接收者可以确信消息来自所声称的发送者; 3、如果消息中包含顺序码(如HDLC,X.25,TCP),则接 、如果消息中包含顺序码( ),则接 ), 收者可以保证消息的正常顺序; 收者可以保证消息的正常顺序; MAC函数类似于加密函数,但不需要可逆性。因此在数学 函数类似于加密函数,但不需要可逆性。 函数类似于加密函数 上比加密算法被攻击的弱点要少。 上比加密算法被攻击的弱点要少。

北京航空航天大学840网络空间安全专业综合2020年考研专业课初试大纲

北京航空航天大学840网络空间安全专业综合2020年考研专业课初试大纲

2020年硕士研究生入学考试专业课考研大纲一、考试组成网络空间安全专业综合共包括两门课的内容:数据结构与C语言程序设计、密码学与网络安全,分别为150分。

学生任选其中一门课的考试内容。

二、数据结构与C语言程序设计部分的考试大纲(150分)(一)整体要求1.理解数据的逻辑结构与存储结构的基本概念;2.理解数据结构算法的定义、基本原理和性质,理解算法分析的基本概念,包括采用大O形式表示时间复杂度和空间复杂度;3.理解C语言的特点以及C语言程序的组成;4.理解C语言主要的数据类型,包括整型、实型、字符型等常量与变量和变量的赋值;用typedef定义类型;5.理解C语言各种类型数据之间的混合运算;6.理解C语言算术表达式、关系表达式和逻辑表达式,表达式sizeof的含义。

(二)知识要点1.线性表(1)线性关系、线性表的定义,线性表的基本操作;(2)线性表的顺序存储结构与链式存储结构(包括单(向)链表、循环链表和双向链表)的构造原理;(3)在以上两种存储结构的基础上对线性表实施的基本操作,包括顺序表的插入与删除、链表的建立、插入与删除、查找等操作对应的算法设计(含递归算法的设计)。

2.堆栈与队列(1)堆栈与队列的基本概念与基本操作;(2)堆栈与队列的顺序存储结构与链式存储结构的构造原理;(3)在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作的算法设计;(4)堆栈和队列在解决实际问题中应用。

3.树与二叉树(1)树与二叉树的基本概念,基本特征、名词术语;(2)完全二叉树与满二叉树的基本概念,二叉树的基本性质及其应用;(3)二叉树的顺序存储结构与二叉链表存储结的基本原理;(4)二叉树的前序遍历、中序遍历、后序遍历和按层次遍历,重点是二叉树在以二叉链表作为存储结构基础上各种遍历算法(包括非递归算法)的设计与应用;(5)二叉排序树的基本概念、建立(插入)、查找以及平均查找长度ASL的计算。

4.内排序(1)排序的基本概念,各种内排序方法的基本原理和特点,包括排序过程中进行的元素之间的比较次数,排序总趟数、排序稳定性以及时间复杂度与空间复杂度计算;(2)插入排序法(含折半插入排序法);。

自考信息安全概论习题及答案

自考信息安全概论习题及答案

信息安全概论习题及答案第1章概论1.谈谈你对信息的理解.答:信息是事物运动的状态和状态变化的方式。

2.什么是信息技术?答:笼统地说,信息技术是能够延长或扩展人的信息能力的手段和方法。

本书中,信息技术是指在计算机和通信技术支持下,用以获取、加工、存储、变换、显示和传输文字、数值、图像、视频、音频以及语音信息,并且包括提供设备和信息服务两大方面的方法与设备的总称。

也有人认为信息技术简单地说就是3C:Computer+Communication+Control。

3.信息安全的基本属性主要表现在哪几个方面?答:(1)完整性(Integrity)(2)保密性(Confidentiality)(3)可用性(Availability)(4)不可否认性(Non-repudiation)(5)可控性(Controllability)4.信息安全的威胁主要有哪些?答:(1)信息泄露(2)破坏信息的完整性(3)拒绝服务(4)非法使用(非授权访问)(5)窃听(6)业务流分析(7)假冒(8)旁路控制(9)授权侵犯(10)特洛伊木马(11)陷阱门(12)抵赖(13)重放(14)计算机病毒(15)人员不慎(16)媒体废弃(17)物理侵入(18)窃取(19)业务欺骗等5.怎样实现信息安全?答:信息安全主要通过以下三个方面:A 信息安全技术:信息加密、数字签名、数据完整性、身份鉴别、访问控制、安全数据库、网络控制技术、反病毒技术、安全审计、业务填充、路由控制机制、公证机制等;B 信息安全管理:安全管理是信息安全中具有能动性的组成部分。

大多数安全事件和安全隐患的发生,并非完全是技术上的原因,而往往是由于管理不善而造成的。

安全管理包括:人事管理、设备管理、场地管理、存储媒体管理、软件管理、网络管理、密码和密钥管理等。

C 信息安全相关的法律。

法律可以使人们了解在信息安全的管理和应用中什么是违法行为,自觉遵守法律而不进行违法活动。

法律在保护信息安全中具有重要作用对于发生的违法行为,只能依靠法律进行惩处,法律是保护信息安全的最终手段。

第6章[第2部分]杂凑函数

第6章[第2部分]杂凑函数
网络工程学院©
单向杂凑函数安全性要求
杂凑函数的安全性取决于其抗击各种攻 击的能力,对手的目标是找到两个不同消 息映射为同一杂凑值。一般假定对手知道 杂凑算法,采用选择明文攻击法。
网络工程学院©
单向杂凑函数安全性
对杂凑函数的基本攻击方法: 穷举攻击法:给定h=h(H0, M),其中H0为初值,攻击 者在所有可能的M中寻求有利于攻击者的M’’,使h(H0, M’)=h(H0, M),由于限定了目标h(H0, M)来寻找h(H0, M’), 这种攻击法称为目标攻击。若对算法的初值H0不限定,使 其h(H0', M)等于h(H0, M’),则称这种攻击法为自由起始 目标攻击。 生日攻击:这种攻击法不涉及杂凑算法的结构,可用 于攻击任何杂凑算法。强杂凑函数正是基于生日悖论一类 的攻击法定义的。穷举和生日攻击都属选择明文攻击。生 日攻击给定初值H0,寻找M’M,使h(H0, M’)=h(H0, M), 也 可 对 初 始 值 H0 不 加 限 制 , 即 寻 找 H0’, M’ 使 h(H0’, M’)=h(H0, M)。 网络工程学院©
网络工程学院©
单向杂凑函数基本概念
单向杂凑函数 定义1 若杂凑函数h为单向函数,则称其为单向 杂凑函数。 显然,对一个单向杂凑函数h,由M计算H=h(M)是 容易的,但要产生一个M'使h(M')等于给定的 杂凑值H是件难事。 定义2 弱单向杂凑函数:若单向杂凑函数h,对任 意给定M的杂凑值H=h(M)下,找一M‘使h(M’)=H 在计算上不可行。 定义 3 强单向杂凑函数:对单向杂凑函数h,若要 找任意一对输入M1, M2,M1 M2, 使h(M1)=h(M2) 在计算上不可行。
网络工程学院©
杂凑函数(hash函数)
h是多对一映射

密码学基础教学大纲完整版

密码学基础教学大纲完整版

《密码学基础》课程教学大纲(课程代码:07310620)课程简介密码学基础是信息安全专业的一门技术基础课程,该课程的学习将为后续的信息安全课程打下基础,同时也为将来从事信息安全研究和安全系统的设计提供必要的基础。

该课程主要讲授流密码(古典密码学)分组密码学、公钥密码学、密钥分配与管理、信息认证和杂凑算法、数字签名以及网络加密与认证等几个部分,在其中将学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器等多种密码学工具,以及如何应用这些工具设计一个实现基本信息安全目标的系统(目前学时不够,没有安排)。

基本密码学工具的掌握和应用这些工具构造安全服务就是本课程的基本目标。

本课程具有如下特点:(一)依赖很强的数学基础本课程需要数论、近世代数、概率论、信息论、计算复杂性等数学知识作为学习的基础。

这些数学基础的讲解既要体现本身的体系性,同时还要兼顾密码学背景。

(二)可扩展性强各种具体方法的学习不是本课程的最终目标,背后的基本原理以及应用这些原理设计新工具的能力才是本课程的最终目标。

(三)课程内容复杂且涉及面广由于密码学内容丰富,且包含许多复杂的知识点,所以本课程的讲授以线为主,即在基本主线的勾勒基础上对授课内容及复杂程度做出取舍。

本课程先修课程有:数据结构、近世代数、概率论、高等数学、高级语言程序设计等。

后续课程有信息安全扫描技术、PKI技术、病毒学等专业课程。

课程教材选用国内信息安全优秀教材杨波编著的《现代密码学》(清华大学出版社),同时参考国外优秀教材:《经典密码学与现代密码学》,Richard Spillman,清华大学出版社、Douglas R. Stinson著,冯登国译的《密码学原理和实践》,电子工业出版社,2003年2月第二版。

另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的《应用密码学教程》(电子工业出版社)等。

实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术期刊和图书。

消息认证和杂凑算法

消息认证和杂凑算法

将数据分组与Hash值异或形成新的
Hash值.
这将起到输入数据完全随机化的效果,并且 将输入中的数据格式掩盖掉.
生日悖论

在一个会场参加会议的人中,使参会人员中至 少有两人是同日出生的概率超过0.5的参会人 数至少为多少人? k个人都不是同日出生时概率Q(365,k) 至少有两人是同日出生的概率P(365,k) P(365,k)=1- Q(365,k)
MD5算法描述
T[1] T[2] T[3] T[4] ... = = = = D76AA478 E8C7B756 242070DB C1BDCEEE T[49] T[50] T[51] T[52] ... T[16] = 49b40821 T[64] = EB86D391 = = = = F4292244 432AFF97 AB9423A7 FC93A039


步骤3:初始化MD缓冲区。一个128位MD 缓冲区用以保存中间和最终Hash函数的结 果。 它可以表示为4个32位的寄存器(A,B,C,D) 寄存器初始化为以下的16进制值。 A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476
MD5算法描述

生日攻击

简要分析: H(y)=H(x)的概率为1/n, H(y)H(x)的概率为1-1/n。 随机输入的k个值y都使H(y)=H(x)不等 的概率为[1-1/n]k 至少有一个y,使得H(y)=H(x)的概率为 1- [1-1/n]k= 0.5 解得k=n/2
生日攻击


H有 2 m个可能的输出,如果H的k个随机输入中 至少有两个产生相同的输出的概率大于0.5, 则k= 2m 2 生日攻击具体方式

消息认证和杂凑算法教学课件

消息认证和杂凑算法教学课件

02
MD5算法采用了一种单向哈希函数的设计,这意味着它可 以将输入数据映射到输出哈希值,但无法从输出哈希值反 向推算出输入数据。
03
MD5算法具有较高的运算速度和广泛的应用范围,因此在 信息安全领域中具有重要的地位。
MD5算法的实现过程
MD5算法的实现过程 可以分为四个主要步 骤
1. 填充:将原始数据 进行填充,使其长度 达到一个特定的长度 ,这是为了使原始数 据的长度可以被512 整除。
MD5算法被认为存在安全隐患,主要 是由于它可以被用于生成所谓的“碰 撞”,即通过特定的方法可以生成两 个具有相同MD5哈希值的不同输入数 据。
这种碰撞的产生可能会被恶意攻击者 利用来制造伪造或篡改数据,从而绕 过一些安全措施。
此外,MD5算法的输出哈希值长度仅 为128位,相对于现代密码学需求来 说过于短小,容易被暴力破解攻击破 解。因此,在需要高安全性的场景下 ,建议使用更长的哈希函数,如 SHA-256或SHA-3。
import hashlib
def create_hmac(key, message)
return hmac.new(key, message, hashlib.sha256).hexdigest()
使用Python实现HMAC算法
key = b"my_secret_key"
message = b"Hello, world!"
01
02
初始化
将一个160位的消息摘要清零,然后 按照一定规则初始化一个5个160位的 寄存器数组。
03
迭代
对每个切分后的消息块进行迭代运算 ,将每个块与寄存器数组中的内容进 行一系列复杂的数学运算。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 消息认证码
6.2 杂凑函数
6.3 MD5杂凑算法 6.4 安全杂凑算法 6.5 HMAC
2018/11/13
1
• 第1章曾介绍过信息安全所面临的基本攻击类型, 包括被动攻击和主动攻击。抗击被动攻击的方法 是前面已介绍过的加密,本章介绍的消息认证则 是用来抗击主动攻击的。 • 消息认证是一个过程,用以验证接收消息的真实 性(的确是由它所声称的实体发来的)和完整性 (未被篡改、插入、删除),同时还用于验证消 息的顺序性和时间性(未重排、重放、延迟)。 • 除此之外,在考虑信息安全时还需考虑业务的不 可否认性,即防止通信双方中的某一方对所传输 消息的否认。实现消息的不可否认性可通过数字 签字,数字签字也是一种认证技术,它也可用于 抗击主动攻击。
2018/11/13 12
• 如果密钥长度小于MAC的长度,则第1轮 就有可能找出正确的密钥,也有可能找 出多个可能的密钥,如果是后者,则仍 需执行第2轮搜索。 • 所以对消息认证码的穷搜索攻击比对使 用相同长度密钥的加密算法的穷搜索攻 击的代价还要大。 • 有些攻击法却不需要寻找产生MAC所使 用的密钥。
2018/11/13 2
• 消息认证机制和数字签字机制都有产生认 证符的基本功能,这一基本功能又作为认 证协议的一个组成部分。 • 认证符是用于认证消息的数值,它的产生 方法又分为
– 消息认证码MAC(message authentication code) – 杂凑函数(hash function)
2018/11/13 4Leabharlann 图6.1 MAC的基本使用方式
2018/11/13
5

如果仅收发双方知道K,且B计算得到的 MAC与接收到的MAC一致,则这一系 统就实现了以下功能:
① 接收方相信发送方发来的消息未被篡改, 这是因为攻击者不知道密钥,所以不能够 在篡改消息后相应地篡改MAC,而如果仅 篡改消息,则接收方计算的新MAC将与收 到的MAC不同。 ② 接收方相信发送方不是冒充的,这是因为 除收发双方外再无其他人知道密钥,因此 其他人不可能对自己发送的消息计算出正 确的MAC。
2018/11/13 9
• 对MAC来说,由于产生MAC的函数一般 都为多到一映射,如果产生n比特长的 MAC,则函数的取值范围即为2n个可能 的MAC,函数输入的可能的消息个数 N>>2n,而且如果函数所用的密钥为k比 特,则可能的密钥个数为2k。如果系统不 考虑保密性,即敌手能获取明文消息和相 应的MAC,那么在这种情况下要考虑敌 手使用穷搜索攻击来获取产生MAC的函 数所使用的密钥。
2018/11/13
3
§6.1 消息认证码
6.1.1 消息认证码的定义及使用方式 • 消息认证码是指消息被一密钥控制的公开 函数作用后产生的、用作认证符的、固定 长度的数值,也称为密码校验和。 • 此时需要通信双方A和B共享一密钥K。设 A欲发送给B的消息是M,A首先计算 MAC=CK(M),其中CK(· )是密钥控制的公 开函数,然后向B发送M‖MAC,B收到后 做与A相同的计算,求得一新MAC,并与 收到的MAC做比较
2018/11/13 14
2018/11/13
7
2018/11/13
8
§6.1.2 产生MAC的函数应满足的要求
• 使用加密算法(单钥算法或公钥算法)加密 消息时,其安全性一般取决于密钥的长度。 • 如果加密算法没有弱点,则敌手只能使用穷 搜索攻击以测试所有可能的密钥。如果密钥 长为k比特,则穷搜索攻击平均将进行2k-1个 测试。特别地,对惟密文攻击来说,敌手如 果知道密文C,则将对所有可能的密钥值Ki 执行解密运算Pi=DKi(C),直到得到有意义 的明文。
2018/11/13 6
• MAC函数与加密算法类似,不同之处为 MAC函数不必是可逆的,因此与加密算法 相比更不易被攻破。 • 上述过程中,由于消息本身在发送过程中 是明文形式,所以这一过程只提供认证性 而未提供保密性。 • 为提供保密性可在MAC函数以后或以前进 行一次加密,而且加密密钥也需被收发双 方共享。
2018/11/13
10
• 假定k>n,且敌手已得到M1和MAC1,其中 MAC1=CK1(M1),敌手对所有可能的密钥 值Ki求MACi=CKi(M1),直到找到某个Ki使得 MACi=MAC1。由于不同的密钥个数为2k,因 此将产生2k个MAC,但其中仅有2n个不同, 由于2k>2n,所以有很多密钥(平均有2k/2n=2kn个)都可产生出正确的MAC ,而敌手无法知 1 道进行通信的两个用户用的是哪一个密钥,还 必须按以下方式重复上述攻击:
2018/11/13
11
• 第 1轮 已知M1、MAC1,其中 MAC1=CK(M1)。对所有2k个可能的密钥计算 MACi=CKi(M1),得2k-n个可能的密钥。 • 第 2轮 已知M2、MAC2,其中 MAC2=CK(M2)。对上一轮得到的2k-n个可能的 密钥计算MACi=CKi(M2),得2k-2×n个可能的密 钥。 • 如此下去,如果k=αn,则上述攻击方式平均需 要α轮。例如,密钥长为80比特,MAC长为32 比特,则第1轮将产生大约248个可能密钥,第2 轮将产生216个可能的密钥,第3轮即可找出正 确的密钥。
2018/11/13
13
例如,设M=(X1‖X2‖…‖Xm)是由64比特长的分组 Xi(i=1,…,m)链接得到的,其消息认证码由以下方 式得到: ( M ) X 1 X 2 X m
C K ( M ) EK ( M )
DES。因此,密钥长为56比特,MAC长为64比特, 如果敌手得到M‖CK(M),那么敌手使用穷搜索攻击 寻找K将需做256次加密。然而敌手还可用以下方式 攻击系统: 将X1到Xm-1分别用自己选取的Y1到Ym-1 Δ(M) ,并用 替换,求出Ym=Y1 Y2 … Ym-1 Ym替换Xm。因此敌手可成功伪造一新消息M′=Y1 … Ym,且M′ 的MAC 与原消息M的MAC相同。
相关文档
最新文档