当前位置:文档之家› 鉴别与签名

鉴别与签名


对MAC的强行攻击
假设
MAC长度为n比特 2n 个可能的MAC N 个报文,其中N 2n 密钥的长度为k 2k 个可能的密钥
假设攻击者已经获得报文的明文和相应的MAC,即 ( M , MAC )
1 1
假设
k n
对MAC的强行攻击
第1轮 给定:M 1 , MAC1 Ck ( M 1 ) for i=1 to 2k: 试探 MAC1=Ck i ( M 1 ) 匹配数 2(k-n), 无法确定真正的密钥k
散列函数基本用法(2)
A B:M E k [H(M)] 提供鉴别 -加密保护H(M)
散列函数基本用法(3)
提供鉴别和数字签名 -加密保护H(M) -仅A能生成EKRa[H(M)]
散列函数基本用法(4)
A B:E k [M E KR a [H(M)]] 提供鉴别和数字签名 提供保密 -仅A和B共享密钥k
公钥加密-鉴别和签名
A B
提供鉴别和签名 -仅A有KR a可进行加密 -传输中不会被更改 -需要某种结构或冗余 -任何一方均能使用KU a验证签名
公钥加密-保密、鉴别和签名
A B
KR a提供鉴别和签名 KUb可提供保密性
消息鉴别码 MAC
消息鉴别码
使用一个密钥生成一个固定大小的小数据块,并加入到消息中,
对MAC的强行攻击
函数域:任意长度的报文 值域:所有可能的MAC和所有可能的密钥 假设 MAC长度为n比特 2 个可能的MAC
n
N 个报文,其中N 2n 密钥的长度为k 2k 个可能的密钥
假设攻击者使用强行攻击,且已经获得报文的明文和相应的
MAC,即 ( M1, MAC1 )
k≤n,则第一轮就可以产生一个唯一对应。仍然可 以有多于一个key产生这一配对,这时攻击者只需对一个新 的(message, MAC)进行相同的测试
由此可见,强力攻击企图发现authentication
甚至大于对同样长度的解密key的攻击
key不小于
MAC应具备的性质

如果一个攻击者得到M和CK(M),则攻击者构造一个消息M’使 得CK(M’)=CK(M)应具有计算复杂性意义下的不可行性
散列函数的要求

H能用于任意大小的分组 H能产生定长的输出 对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实 际可能 对任何给定的码h,寻找x使得H(x)=h在计算上是不可行的,即单向 性 对任何给定的分组x,寻找不等于x的y,使得H(x)=H(y)在计算上是 不可行的,即弱抗冲突性 寻找对任何的(x,y)对使得H(x)=H(y)在计算上是不可行的,即强抗冲 突性
资格审查
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 计算安全学用语,指为了鉴定一个计算机系统或网络的设计和它提供的手段在多大程度 上能满足预定的安全要求而进行的技术评估
第2轮 给定:M 2 , MAC2 Ck ( M 2 ) for i=1 to 2(k-n): 试探 MAC2=Ck i ( M 2 ) 匹配数 2(k-2n), 无法确定真正的密钥k
若k a n,则需要进行a轮,比寻找等长度的解密密钥强度还高
对MAC的强行攻击
如果
MD5描述

输入:任意长度的报文
输入分组长度:512 bit 输出:128 bit 报文
MD5描述-step 1
附加长度值 对报文进行填充,使其比特数与448模512同余,即填
充长度为512的整数倍减去64
| M1 | 448mod512 if | M | 448mod512, then | M1 || M | 512

CK(M)应均匀分布,即:随机选择消息M和M’, CK(M)= CK(M’)
的概率是2-n,其中n是MAC的位数 令M’为M的某些变换,即:M’=f(M),(例如:f可以涉及M中 一个或多个给定位的反转),在这种情况下,P [CK(M)= CK(M’)] = 2-n

基于DES的报文鉴别码
基于DES的报文鉴别码
固定长度的值作为认证标识
散列函数:一个公开函数将任意长度的消息映
射到一个固定长度的哈希值,作为认证标识
消息加密
对称加密-保密和鉴别
A B
A与B共享密钥k A : Ek ( M ) B B : Dk ( M ),查看M 是否为有意义的明文
对称加密-保密和鉴别
提供保密 -仅A和B共享k 提供一定程度的鉴别 -仅来自A -传输中不会被更改 -需要某种结构和冗余 不提供签名 -接收人可以伪造报文 -发送人可以伪造报文
消息鉴别与保密,鉴别与密文连接
A B
A B:E k2 [M C k1 (E k2 (M))] 提供鉴别 -仅A和B共享密钥k1 提供保密 -仅A和B共享密钥k2
消息鉴别 VS 常规加密
保密性与真实性是两个不同的概念 根本上,信息加密提供的是保密性而非真实性 加密代价大(公钥算法代价更大) 鉴别函数与保密函数的分离能提供功能上的灵活性 某些信息只需要真实性,不需要保密性
定连接的频率、持续时间长度;还可以发现报文数量和长度等
伪装:从一个假冒信息源向网络中插入消息 内容篡改:消息内容被插入、删除、变换、修改 顺序修改:插入、删除或重组消息序列 时间修改:消息延迟或重放 否认:接受者否认收到消息;发送者否认发送过消息
鉴别和认证
鉴别:authentication 认证:Certification
消息鉴别
A B
MAC=Ck (M);为 k A和B共享的密钥,M为明文 A B:M Ck (M) 提供鉴别 -仅A和B共享密钥k
消息鉴别与保密,鉴别与明文连接
A B
A B:E k2 [M C k1 (M)] 提供鉴别 -仅A和B共享密钥k1 提供保密 -仅A和B共享密钥k 2
O1 = EK(D1) O2 = EK(D2O1) O3 = EK(D3O2) … ON = EK(DNON-1)
FIPS PUB 113
目录
1. 2.
消息鉴别与散列函数
散列算法
3.
数字签名
散列函数
散列函数的定义
散列函数:
h H (M )
M:变长报文 H(M):定长的散列值 主要用于为文件、报文或其它分组数据产生指纹
真伪性
(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 在用户开始使用系统时对其身份进行的确认
– 广播的信息难以使用加密(信息量大)
– 网络管理信息等只需要真实性 – 政府/权威部门的公告
散列函数 Hash Function
散列函数
H(M): 输入为任意长度的消息M; 输出为一个固定长
度的散列值,称为消息摘要(MessageDigest)
H(M)是消息M的所有位的函数并提供错误检测能力:
明文M的自动确定
M定义为有意义的明文序列,便于自动识别 强制定义明文的某种结构,这种结构是易于识别但又
不能复制且无需借助加密的
可以在加密前对每个报文附加检错码,即所谓的帧检
验序列号或检验和FCS
内部差错控制和外部差错控制
差错控制
更难于构造
公钥加密-保密性
A B
提供保密 -仅B有KR b能解密 不提供鉴别 -任何一方均可以使用KU b加密报文而假称它是发自A的

算法来源

FIPS publication (FIPS PUB 113) ANSI standard (X9.17)

使用CBC(Cipher Block Chaining)方式,初 始向量为IV=0
基于DES的报文鉴别码

将数据按64位分组,D1, D2, … , DN,必要时最后一个数据块用0向右填 充 运用DES算法E,密钥K 数据认证码(DAC B: M H(M S)]] 提供鉴别 -仅A和B共享消息S
散列函数基本用法(6)
A B: E k [M H(M S)]] 提供鉴别 -仅A和B共享S 提供保密 -仅A和B共享密钥k
消息鉴别码 MAC
K
M
MAC

函数域:任意长度的报文 值域:所有可能的MAC和所有可能的密钥 MAC一般为多对一函数
消息中的任何一位或多位的变化都将导致该散列值的 变化
H(M)又称为:哈希函数、数字指纹(Digital finger
print)、压缩(Compression)函数、数据鉴别码 (Dataauthentication code)等
散列函数基本用法(1)
A B:E k [M H(M)] 提供鉴别 -加密保护H(M) 提供保密 -仅A和B共享密钥k
Hash vs MAC
MAC需要对全部数据进行加密 MAC速度慢 Hash是一种直接产生鉴别码的方法
相关主题