计算机安全学讲义_第三讲:消息认证
消息认证
• 攻击者如何用强力攻击方法攻击MAC?
假设:用户A和B通信时没有增加保密性实现,攻击者可以看到 明文, k > n (k为密钥长度位数,n为MAC长度位数) 给定:M1和MAC1, MAC1= CK1(M1) 密码分析员可以计算MACi = CKi(M1) 对所有可能的Ki,至少有一 个Ki保证产生 MACi = MAC1 注意:总共会产生2k个MAC结果,但只有2n< 2k个不同的MAC 值,因此,有若干个key将产生相同的MAC,而攻击者无法确 定哪一个是正确的key。 平均来说, 2k/2n= 2(k-n)个key将产生匹配的MAC,所以,攻击 者需要循环多次攻击,以确定K: 第一轮:给定 M1和MAC1= CK(M1),对所有2k个key,计算 MACi = CKi(M1) ,匹配的数量 2(k-n) 第二轮:给定 M2和MAC2= CK(M2),对所有2(k-n)个key,计算 MACi = CKi(M2) ,匹配的数量 2(k-2n)
散列函数的基本用法(a、b)
Provides confidentiality -- only A and B share K Provides authentication -- H(M) is cryptographically protected
Provides authentication -- H(M) is cryptographically protected
问题
• 若对相当长的文件通过签认证怎么办?如一 个合法文件有数兆字节长。自然按64比特分划 成一块一块,用相同的密钥独立地签每一个块。 然而,这样太慢。
解决办法
• 解决办法:引入可公开的密码散列函数(Hash function)。它将取任意长度的消息做自变量,结果产 生规定长度的消息摘要。[如,使用数字签名标准DSS, 消息摘要为160比特],然后签名消息摘要。对数字签 名来说,散列函数h是这样使用的: 消息: x 任意长 消息摘要: Z=h(x) 160bits 签名: y=sigk(Z) 320 bits (签名一个消息摘要) • 验证签名:(x,y),其中y= sigk(h(x)),使用公开的散列函 数h,重构作Z =h(x)。然后Verk(y)=Z,来看Z=Z'
第3讲 公钥密码和消息认证-(3)消息认证码
HMAC的安全性依赖于散列函数H的密码学属性:
• ①抗碰撞属性; • ②当应用于一个单独的消息分组时H的压缩函数的消息认证属性。
网络与信息安全
12
“挑战/响应”(Challenge/Response)身份认证
网络与信息安全
17
网络与信息安全
b bit S0
H(Si||M) 填充到b比特
n bit IV
HASH n bit
HMACK(M)
9
• 与ipad= 00110110进行异 或将导致K一半的比特翻转 。
• 与opad=01011010进行异 或将导致K一半的比特翻转 。
HMAC算法的有效实现
K+
ipad
b bit b bit
Yi:(0≤i≤L-1)是M的第i个分组, L:M的分组数,
b:是一个分组中的比特数( MD5的128,SHA-1的512)
n:嵌入的哈希函数所产生的哈希值的长度(MD5为128, SHA-1为160)
K:密钥,如果密钥长度大于b,则将密钥输入到哈希函数 中产生一个n比特长的密钥,K+是左边经填充0后的K, K+的长度为b比特,
• 消息认证码:它是一个需要密钥的算法,可以对可变长度 的消息进行认证,把输出的结果作为认证符。
网络与信息安全
3
利用Байду номын сангаас列函数来设计MAC原因
• ①一般的散列函数的软件执行速度比分组 密码的要快。
• ②密码散列函数的库代码来源广泛。
因此HMAC应运而生
计算机安全消息认证
一个安全的杂凑函数 h=H(m),应该至少满足以下几个条件: 1、H 可以作用于一个任意长度的数据块; 2、H 产生一个固定长度的输出; 3、对任意给定的 x,H(x) 计算相对容易,无论是软件还是硬件实现(快速性)。 4、对任意给定码 h,找到 x 满足 H(x)=h 具有计算不可行性;(单向性) 5、对任意给定的数据块 x,找到满足 H(y)=H(x)的 y≠x 具有计算不可行性(弱无碰撞性)。 找到任意数据对(x,y),满足 H(x) = H(y)是计算不可行的(强无碰撞性) 。 前三条要求具有实用性,第 4 条是单向性质,即给定消息可以产生一个散列码,而给定散列码不可能 产生对应的消息。第 5 条性质是保证一个给定的消息的散列码不能找到与之相同的另外的消息。即防止伪 造。第 6 条是对已知的生日攻击方法的防御能力。 攻击杂凑函数的典型方法是生日攻击,一是给定消息的 hash 函数 H(x),破译者逐个生成其他文件 y, 使得 H(x)= H(y);二是攻击者寻找随机的两个消息:x,y,并使 H(x)= H(y);生日攻击的基本观点来自于 生日问题:一个教室中,最少应有多少学生,才使得找一个学生与某人生日(该人也在教室)相同的概率 不小于 1/2?答案是 254 人;但是至少有两人的生日在同一天的概率不小于 1/2?答案是仅为 23 人。寻找 特定生日的一个人类似于第一种攻击;而寻找两个随即的具有相同生日的两个人则是第二种攻击。第二种 方法通常被称为生日攻击。 三、常用 hash 函数 目前已研制出适合于各种用途的杂凑算法,这些算法都是伪随机函数,任何杂凑值都是等可能的。输 出并不以可辨别的方式依赖于输入。任何输入串中单个比特的变化,将会导致输出比特串中大约一般的比 特发生变化。 利用某些数学难题比如因子分解问题和离散对数问题等设计的杂凑函数有 Davies-Price 平方杂凑算 法、CCITT 建议、Juene man 杂凑算法、Damgard 平方杂凑算法、Damgard 背包杂凑算法、Schnorr 的 FFT 杂 凑算法等。这些算法中有的已不安全,而有的仍然是安全的。 利用某些私钥密码体制比如 DES 等设计的杂凑函数有 Rabin 杂凑算法、 Winternitz 杂凑算法、 Quisquater-Girault 杂凑算法、Merkle 杂凑算法、 N-Hash 算法等, 这种杂凑函数的安全性与所使用的基础 密码算法有关。 不基于任何假设和密码体制直接设计杂凑函数是当今比较流行的一种设计方法。美国的安全杂凑算法 (SHA)就是这类算法,另外还有 MD4、MD5、MD2、RIPE-MD、HAVAL 等算法。 MD5 由 Ron Rivest 提出,输入为任意长度的消息,输出为 128 位消息摘要,处理以 512 位输入数据块 为单位。 SHA 输入为最大长度为 264 -1 位的消息,输出为 160 位消息摘要,处理为输入以 512 位数据块为单位 处理。由美国国家标准技术研究所 NIST 开发,作为联邦信息处理标准于 1993 年发表(FIPS PUB 180), 1995 年修订,作为 SHA-1(FIPS PUB 180-1),SHA-1 基于 MD4 设计。目前还没有针对 SHA 有效的攻击,速 度慢于 MD5,安全性优于 MD5。 IPEMD-160 输入为最大长度为 264-1 位的消息,输出为长度为 160 位的消息摘要,处理为 以 512 位数据块 为单位,欧洲 RACE Integrity Primitives Evaluation(RIPE) Project. 中提出,速度略慢于 SHA-1,安全 性优于 MD5,对密码分析的抵抗力好于 SHA-1。
消息认证的概念
消息认证的概念
消息认证是指通过特定的算法和方法,确保消息的完整性和可信性,以防止消息被篡改、伪造或替换。
认证机制可以验证消息的真实性和发送者的身份,并确认消息在传输过程中未被篡改。
消息认证的概念通常包括以下几个方面:
1. 数据完整性:认证机制使用哈希函数等算法,对消息进行计算和生成摘要,将该摘要附加到消息中。
接收者可以使用同样的算法计算摘要,比对发送者附加的摘要,以判断消息是否在传输过程中被篡改。
2. 数据源认证:认证机制使用数字签名等方法,发送者使用私钥来对消息进行签名,接收者使用对应的公钥来验证签名的有效性。
通过验证签名,接收者可以确认消息的来源和发送者的身份。
3. 重播攻击防护:认证机制可能使用时间戳或随机数等方法,防止重放攻击的发生。
接收者会检查消息的时间戳或随机数,确保消息不是之前发送的重复消息。
4. 防止伪造:认证机制使用加密算法或密钥交换协议等方法,确保通信的安全性,防止第三方伪造消息,窃听通信或篡改通信内容。
消息认证在保障通信安全性和防范网络攻击方面起着重要的作用。
它可以用于保护重要数据和信息的传输,确保消息的可信度和完整性。
信息安全概论第3章 信息认证技术
消息认证码
消息认证码(Message Authentication Code,MAC)通常 表示为MAC=CK(M) M是可变长的消息,K是收发双方共享的密钥,函数值 CK(M)是定长的认证码,也称为密码校验和。 MAC就是带密钥的消息摘要函数,其实就是一种带密 钥的数字指纹,它与不带密钥的数字指纹是有本质区别 的。 将单向Hash函数变成MAC的一个简单的办法是用对称算 法加密Hash值。相反将MAC变成单向Hash函数则只需 将密钥公开。
消息认证码
3. 密文认证 改变(2)中加密的位置,得到另外一种消息保密与认证方式。 先对消息进行加密,然后再对密文计算MAC,传送 Ek2(M)||Ck1(Ek2(M))给接收方。 接收方先对收到的密文进行认证,认证成功后,再解密。
3.2 数字签名技术
数字签名在信息安全,包括身份认证、数 据完整性、不可否认性以及匿名性等方面 有重要应用,特别是在大型网络安全通信 中的密钥分配、认证及电子商务系统中具 有重要作用。数字签名是实现认证的重要 工具。
①完整性验证:接收方确信消息M未被篡改。 ②消息源验证:接收方确信消息来自所声称的发送者,因为没有其他人知道这个共享密钥, 其他人也就不可能为消息M附加合适的MAC。
消息认证码
2. 消息认证与保密 在(1)中,消息以明文方式传送,这一过程只提供认证而不具备 保密性。如图所示提供一种即加密又认证的方式,发送方发送 Ek2[M||Ck1(M)]。该方式除具备(1)的功能外,还具有保密性。
完整性检验一般方。 存储、传输文件,需同时存储或发送该文件的数字指纹; 验证时,对得到的文件重新产生其数字指纹; 再与原数字指纹对比,如一致,文件是完整。否则,不完整。
网络安全03消息鉴别
使用对称密钥模式
发送方A
M
E
C
k
提供保密 提供鉴别
仅来自A 传输中未被更改
不提供签名
接收方B
D
M
k
使用对称密钥模式的问题
存在的问题
接收端怎样判断密文的合法性 接收端如何判断解密的结果是否正确
解密运算的本质是数学运算
原始消息对接收端是未知的 接收端可以得到 M’ = Dk(c) 怎么判断 M = M’
消息鉴别的作用
保护双方的数据交换不被其他人侵犯
基于双方共享的秘密 但是消息鉴别无法解决双方之间可能存在的争议
B伪造一个消息,声称是A发送的 B否认发送过某个消息,而A无法证明B撒谎
ቤተ መጻሕፍቲ ባይዱ
单纯鉴别系统的模型
攻击者
信源
鉴别 编码器
信道 安全信道
鉴别 密钥源
需要鉴别密钥,而且此密 钥一般不同于加密密钥
kUb
接收方B
E
C
kRb
D
M
kUa
提供保密:KUb 提供鉴别和签名:KRa
基于MAC的鉴别
基于MAC的鉴别
消息鉴别码(Message Authentication Code, MAC)
发送方采用一种类似于加密的算法和一个密钥,根据 消息内容计算生成一个固定大小的小数据块,并加入 到消息中,称为MAC。 MAC = fk(m) 需要鉴别密钥
发送方A
M M
MAC f()
密钥K’
提供消息鉴别
仅A和B共享密钥K’
接收方B
M
f()
MAC
比较
MAC的基本应用 2
发送方
M
M
E()
MAC
消息认证
消息认证方式
(3) 对散列值使用公开密钥密码算法进行加密,并将 结果连接到消息之后,密钥为发送方A私有。
消息认证方式
(4) 通信双方共享一个秘密值S,将S串接到消息头部,然后 计算散列值,该散列值作为消息认证码。
散列算法SHA-1
散列函数的安全要求
1. H能用于任何大小的数据分组能产生定长的输出; 2. 对于任何给定的x, H(x)要相对易于计算; 3. 对任何给定的散列码h 寻找x使得H(x)=h在计算 上不可行(单向性); 4. 对任何给定的分组x ,寻找不等于x的y ,使得 H(x)=H(y)在计算上不可行(弱抗冲突); 5. 寻找任何的(x,y) 使得H(x)=H(y)在计算上不可行 (强抗冲突)。
散列算法SHA-1
SHA-1中迭代过程
• 每个循环以当前处理的512比特分组Yq和160比特的缓存值
ABCDE为输入,然后更新缓存的内容,每个循环也使用一 个额外的常数值Kt ,其中0 ≤ t ≤ 79。Kt值用十六进制表示。
散列算法SHA-1
SHA-1中的Wt 产生
• 80个32比特字Wt 的值是通过如下过程由512比特的分组
消息认证方式
(1) 消息经过散列运算后,将散列值连接到消息之后, 然后对所有数据(原消息+对应散列值)使用单钥加 密,密钥为发送方A和接受方B共享,保证消息来自 A并且不被篡改。
消息认证方式
(2) 仅仅对散列值使用对称密码算法加密,并将结果 连接到消息之后,密钥为发送方A和接受方B共享, 保证散列值来自A并且不被篡改 。
消息认证的练习题
Alice希望通过长度为2bit的信息发送单位信息(1或0)给Bob,他 们有4种可能的密钥进行认证,请问: (1) 下表对于A的操作是必需的,请为Bob构造类似的表格用于 认证
消息认证和杂凑算法教学课件
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. 密码认证:使用预先共享的密码或密钥来验证消息的完整性和真实性。
发送方使用密钥对消息进行加密,并将其与消息一起发送。
接收方使用相同的密钥对消息进行解密,并验证消息是否与发送方发送的密文匹配。
2. 数字签名认证:使用公钥密码学技术创建和验证数字签名来验消息的完整性、真实性和身份。
发送方使用其私钥对消息进行数字签名,然后将消息和签名一起发送。
接收方使用发送方的公钥来验证签名,以确保消息是由发送方提供且未被篡改的。
3. 消息认证码(MAC)认证:使用一个密钥和散列函数来创
建和验证MAC来验证消息的完整性和真实性。
发送方使用密
钥和散列函数对消息进行计算,并将生成的MAC与消息一起
发送。
接收方使用相同的密钥和散列函数对收到的消息进行计算,并验证计算出的MAC是否与发送方发送的MAC匹配。
这种方法还可以防止消息被篡改,因为即使消息的内容被轻微更改,计算出的MAC也会与发送方发送的MAC不匹配。
这些方法可以单独或结合使用,以提供更强的消息认证和安全性。
《计算机信息安全》教学课件 第3章 数字签名与认证
1.Bob收到的明文是否肯定由Alice发送的。 2.Bob收到的明文是否被篡改。 鉴别过程: 1.Alice用单向散列函数h 从明文M中抽取信 息文摘X,并利用RSA算法和Alice的私人密钥sk 对X加密,得到密文E(X)。
-11-
第3章 数字签名与认证
第3章 数字签名与认证
第3章 数字签名与认证
3.1 数字签名概述 3.2 单向散列函数 3.3 Kerberos 身份验证 3.4 公开密钥基础设施PKI 3.5 用户ID与口令机制 3.6 彩虹表 3.7 生物特征识别技术 3.8 智能卡
-1-
第3章 数字签名与认证
3.1 数字签名概述
在网络通信和电子商务中很容易发生如下问 题字签名与认证
C=C+c D=D+d E=E+e 8.然后再用相同的方法进行下一个分组运 算,直到所有分组都处理完为止。最后将A,B, C,D,E输出,就得到SHA的散列值。
-26-
第3章 数字签名与认证
破解MD5算法网站: 相信吗?
-27-
第3章 数字签名与认证
16 ≤t≤ 79
-24-
第3章 数字签名与认证
6.这样SHA算法四轮共80次循环可以描述为: FOR t = 0 TO 79 DO
TEMP = (a<<<5)+ Ft(b,c,d) + e + Wt + Kt e=d d=c c = b <<< 30 b=a a = TEMP 7.SHA循环结束后将进行:
-4-
第3章 数字签名与认证
8.Bob比较M’与M”,当M’与M”相同时,可 以断定Alice在M上签名。
3消息认证和数字签名(武汉大学国际软件学院信息安全课程)
MAC举例:基于DES的消息认证码
基于DES的消息认证码
建立在DES上的数据认证算法(FIPS PUB 113) 是使用最广泛的MAC算法之一,也是一个 ANSI标准(X9.17) 数据认证算法采用DES运算的密文块链接 (CBC)方式,其初始向量为0,需要认证的 数据分成连续的64位的分组D1, D2, … , DN, 若最后分组不足64位,则在其后填0直至成为 64位的分组。利用DES加密算法E和密钥K, 计算数据认证码(DAC)的过程如图11.6所示。
Hash函数的安全性
Hash函数的安全性:Hash函数的安全性 取决于其抗击各种攻击的能力,对手的 目标是找到两个不同消息映射为同一 Hash值。 一般假定对手知道Hash算法,采用选择 明文攻击法。
HASH算法
MD5消息摘要算法(RFC 1321)
输出128b的消息摘要 输出160b的消息摘要
K
对HASH函数的要求
对HASH函数的要求
1. 2. 3. 4. H可应用于任意大小的数据块 应用于消息认 H产生定长的输出 证必须满足的 对任意给定的x,计算H(x)容易 对于给定的hash值h,找到满足H(x)=h的x在计算上 是不可行的——单向性 5. 对于给定的分组x,找到满足yx且H(y)=H(x)的y在计 算上是不可行的——抗弱碰撞性 6. 找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可 行的——抗强碰撞性
消息认证码的基本用法
提供认证
(a)消息认证 (b)消息认证和保密性:与明文有关的认证 (c)消息认证和保密性:与密文有关的认证
提供认证和保密性
(a)消息认证
网络信息安全-第三章 认证技术
第三章
认证技术
5
2018/8/1
3.2 消息认证
认证不能自动地提供保密性,而加密也不能自然地提供
认证功能。
窜扰者
信源
认证编码器
认证译码器
信宿
安全信道
密钥源
纯认证系统的模型
第三章 认证技术
6 2018/8/1
3.2消息认证
消息认证是一种过程,它使得通信的接收方能够验证 所收到的报文(发送者和报文内容、发送时间、序列等) 在传输的过程中没有被假冒、伪造和篡改,是否感染上病 毒等,即保证信息的完整性和有效性。
将消息M分成N个定长分组:M1 M2 M3 M4 …MN
M1 M2 M3 M4 …MN
输入消息分组
⊕ M1⊕M2⊕M3⊕M4⊕…⊕MN
哈希值
第三章
认证技术
16
2018/8/1
3.2消息认证
3.2.2使用哈希函数的消息认证
3.消息认证方案
用户A M
||
用户B
M
E
M
D
M
H
H
比较
M‖H(M)
K
Ek[M‖H(M)]
T[16]
第三章
= 49b40821
30
T[64]
= EB86D391
2018/8/1
认证技术
3.2消息认证
3.2.3 MD5算法
步骤5:输出结果。所有L个512位数据块处理完毕后,最后的结果 就是128位消息摘要。 CV0 = IV CVq+1 = SUM32(CVq,RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]]) MD = CVL 其中:IV = ABCD的初始值(见步骤3) Yq = 消息的第q个512位数据块 L = 消息中数据块数; CVq = 链接变量,用于第q个数据块的处理 RFx = 使用基本逻辑函数x的一轮功能函数。 MD = 最终消息摘要结果 SUM32=分别按32位字计算的模232加法结果。 第三章 认证技术
消息认证与消息完整性
消息完整性认证机制
某种函数产生认证码 用于鉴别消息的值
路漫漫其悠远
3.2.3 消息认证
认证系统设计者的任务是构造好的 认证码(Authentication Code),使 接收者受骗概率极小化。
路漫漫其悠远
3.2.3消息认证
产生认证码的函数归结为:
* 消息加密:以整个消息的密文作为它的认 证码。
路漫漫其悠远
3.2.3消息认证
散列函数的基本用法:
a) EK[M||H(M)]
提供保密 K仅A,B共享 提供鉴别 加密保护H(M)
b) M|| EK[H(M) ] c) M|| EKRa[H(M)]
d) EK[M|| EKRa [H(M)]] e) M||H(M||S) f) EK[M|| H(M||S)]
一般方法:
(1)在签名、加密之前,给数据附加一个 完整性序列号 (2)在签名、加密过程中利用数据项上的 链产生一个密码链
路漫漫其悠远
6. 抗抵赖
3.2.3消息认证
消息的否认分两种:起源否认和传递否认
抗起源否认机制:
(1)发送者签名
(2)可信第三方签名
抗传递否认机制:
(1)接收者签名确认
(2)可信传递代理确认
消息认证与消息完整性
路漫漫其悠远
2020/3/23
第二部分 信息安全支撑技术
第 3 章
信息认证技术
路漫漫其悠远
第3章 信息认证技术
信息认证技术。通过数字签名 、信息摘要以及身份认证理论和技 术,实现信息完整性检测;保护信 息的抗否认性。利用知识、推理、 生物特征和认证的可信协议及模型 完成实体的身份认证,防止身份的 假冒。
。
安全信道
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 4
认证的分类
双方相互信任的认证(如企业内部人员之间)
对称认证(symmetric authentication) 针对第三方的攻击,例如查验文件是否被人修 改过
信息加密即保证真实?
对称认证:保护消息的真实性
消息的内容不希望他人知晓
9数据加密
主动攻击(active attacks)
假冒消息 窜改消息 截留消息 修改数据 ……
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 3
真实性(authenticity)
消息内容的完整性 消息内容的真实性 消息来源的真实性 实体身份的真实性
消息和原创者信息捆绑,一个密钥参与到该过程 提供一个单独的完整性信道
D为消息的冗余,对于自然语言D=0.74;t=64
7
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室
8
类 似 于 对 称 密 码 , the secrecy of large data quantities is based on the secrecy and authenticity of a short key.
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 15
定义和记号
源状态(source state): 要交换的源信息 消息(message): 要发送给接收者的信息 编码规则(encoding rule): 源状态空间和消息空 间之间的映射 认证码(authentication code): {源状态,消息, 编码规则}三元组集合 p=|{P}|, c=|{C}|, k=|{K}|。参与者为三方:
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室
Simmons的无条件安全认证
1970年代早期,美国Sandia National Laboratories 研究美苏“削减核武器条约”的核查问题
Shannon, Communication theory of secrecy systems, Bell System Technical J., Vol.28, 1949 Gilbert, MacWilliams, Sloane: Code which detect deception, Bell System Technical J., Vol.53, No.3,1974 Simmons: A survey of information authentication, Contemporary Cryptography, IEEE Press, 1991 Stinson: Combinatorial characterizations of authentication codes, Proc. Crypt’91, LNCS 576, 1992 Kabatianskii et al. On the cardinality of systematic A-codes via error correcting codes,IEEE Trans IT-42, No.2, 1996
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 6
几个反例
例 1. 流密码:主动攻击 者可以通过置乱相应密文, 改变明文的任意比特 例 2. ECB模式分组密码:主动攻击者可以记录一 些密文块信息,用来替代其它块。如果块之间不 相关,完全不可能检测到攻击;除非明文之间有 关联(利用冗余性质)。 例 3. CBC模式分组密码:如果改变1比特密文导致 t比特明文混乱,则新明文作为有意义而被接受的 概率为 2−tD
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 19
『接收端需要恢复明文不确定性的信息』- 『通过信道传输的信息』=『被用来认证明文』
完善真实:当 P d = k ,到达认证信道 容量。 完善认证系统的构造: P 为有限射影平面, L0是固定直线,则认证系统A为
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 12
认证的三种密码学方法
三种方法可以看成一样的,不同于
敌手能力的假设、攻击成功的定义、安全性的 意义
信息论方法
考虑无条件安全
与攻击者的计算能力无关 H(key) >= H(plaintext) 无条件保密、无条件真实只是理论上的可能性 攻击者总是可能以非零概率欺骗成功,我们只能寄希 望于这个概率尽可能小
源状态L0上的点 密钥为L0以外的点 密钥k和源状态s对应的 信息是直线C=ks
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 20
1
Example 1. Let X={0, 1}, Y={00, 01, 10, 00}, K={0,1},yi=(xi||ki) .
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 17
带有秘密的认证码 不带秘密的认证码
明文可以容易从密文中导出,对应码称之为 Cartestian 码/系统码 此时密文为明文P与认证子MAC的串联 认证子的数目记为ρ
Bounds on Authentication Codes:若Eve随 机选择密文假冒攻击,则成功概率为
Pi ≥
20032003-3-31 上海交通大学计算机系
p c 上海交通大学密码与信息安全实验室
18
完善认证性
对于Cartesian码Pi > 1/ ρ 对于代替攻击,其组合界Ps >= (p-1)/(c-1) 认证信道容量定理: Ps >= 2-I(C; K) Gilbert-MacWilliams-Sloane界:Pd ≥ 1 k , 这意味着:安全的水平(-log2Pd)至多为密钥 比特的一半
研究生课程
第三讲:消息认证
认证系统模型 对称认证 Hash函数 攻击方法 数字签名
计算机安全学
Cryptography and Computer Security
陈克非 Kfchen@mail. sjtu. .edu. Kfchen@mail.sjtu
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室
双方相互不信任的认证(如商业伙伴之பைடு நூலகம்)
非对称认证(asymmetric authentication) 针对来自对方的攻击,例如查验对方的文件是 否真实
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 5
事实上,保证真实性不仅要求加密算法安全,还 取决使用密码的模式 。
Example 2. Let X={0, 1}, Y={00, 01, 10, 00}, K={00, 01, 10, 11}, yi=(xi ||f(xi,ki)).
信息的真实依赖密钥的保密与真 m m + hash result, the information is compressed to a quantity of fixed length.
第二种方式,信息的真实性基于 MDC的真实性
例, 针对所有重要文件计算MDC, 文件将发往异地的 朋友,其中MDCs通过电话。电话信道的真实通过语音 识别保障。
信息论方法 复杂度理论方法 基于系统/实际的方法
一般会认为,像Vernam一次一密一样,无条件安 全体制对于 “真实 ”而言不实际;但人们已经在过 去的几年中设计出在密钥使用、计算量方面都很 有效的unconditionally secure authentication体制
13 20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 14
增加冗余并不充分保证提高抗攻击的等级
可能有重放攻击
为保证数据源,密钥应该伴随始终,在压缩过程、 保护hash和信息时发挥作用。 Message Authentication Code (MAC), Manipulation Detection Code (MDC)
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 9
保护信息来源 (ISO 7498-2 data origin authentication) 保护信息没有被修改(ISO 7498-2 the integrity of the information)
直到1970年代末人们相信:
如果解密后得到符合语义的消息,即可断定消息来源 的真实 因为这意味密文经过真实密钥加密而来,而掌握密钥 的人是可靠的
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室
D=0,没有冗余度意味无法验证消息的真伪; 即使有冗余度,要求验证冗余的存在;若智能的 攻击者,冗余只提供一点保护。因当他知道一些 明文/密文对,接合(splicing)攻击很难防止;若 chosen-text攻击,如何加密方式都不能提供保护 要保护“完整性”,必须要有特殊的冗余
Alice, sender Bob, receiver Eve, active eavesdropper
20032003-3-31 上海交通大学计算机系 上海交通大学密码与信息安全实验室 16
假 冒 攻 击 ( impersonation attack):Eve 假 冒 Alice的名义向Bob发假消息 代替攻击(substitution attack) : Eve观察对 有密文往来时,有不同的每位取代它 欺骗攻击(deception attack) :Eve在两种攻 击中随意选择一种 在 Kerckhoffs 假 设 下 , 成 功 概 率 为 Pd = max(Pi, Ps)