密码学与网络安全笔记整理-数据完整性技术

本文详细介绍了密码学中的数据完整性技术,包括对称加密、非对称加密中的RSA、Rabin及Elgamal算法,强调了MAC、HMAC以及基于分组加密的MAC构造方法,同时探讨了生日攻击原理。通过对各种加密和认证技术的讨论,展示了确保网络安全的重要性。
摘要由CSDN通过智能技术生成

1. 数据完整性

类似于通信中的校验码功能,在密码学领域数据完整性用于验证收到信息的正确性,校验收到的信息是否经过篡改,校验收到的信息是真实的发送者发送而非伪造。发送者通过编码为消息增加一些“冗余”,生成一个校验值,并将该校验值附在消息之后。接收者根据协商好的规则,利用附加的校验值来检测接收到消息的正确性。
这里写图片描述

2. 对称技术

  • 有效的变换f和g是对称算法,意味着f = g,并且Ke = Kv;
  • MAC(消息认证码):由对称密码技术生成的MDC;
  • MAC的生成验证可以使用:keyed hash函数,分组加密等;

3. Keyed hash函数与HMAC

  • 一个确定的函数,可以将任意长的比特串映射为一个固定长的比特串,该函数需要key作为参数;
  • 设h表示一个Keyed hash函数,其固定输出长度为|h|;
  • h应当是混合变换的;
  • h应当可以抵抗冲突攻击;
  • h应当可以抵抗原像攻击;
  • h应当具有实用有效性;
    使用keyed hash函数构造生成的MAC被称为HMAC,与发送者共享key的接收者收到M,并重新计算HMAC,检验与收到的HMAC是否一致,HMAC = h(key || M || key),用密钥包含信息的两端是阻止攻击者直接修改信息前缀或者消息后缀。

4. 基于分组加密算法的MAC

使用分组加密构造keyed hash函数,选择CBC模式,密钥为k,每一块加密函数为Ek(m):

  • 对信息M分组,分成若干长度相同(分组加密算法每一块的长度)的块M = m(1)m(2)……m(t),如果最后一块长度不够,则需要随机填充padding;
  • H(0) = IV,随机初始向量;
  • H(i) = Ek(m(i) ⊕ H(i-1)),i = 1, 2……t;
  • 将(IV, H(t))作为MAC;
    这里写图片描述
    说明:

  • CBC-MAC是一个单向变换,不可求其逆数据:因为MAC里面包含的只是分组加密得到的最后一块H(t)与IV,根据CBC的加密解密流程:无论是接收者还是中间的攻击者都无法根据最后一块H(t)和IV反推出全部的MAC值,因此这是一个单向变换;

  • MAC在MAC空间中分布均匀;
  • 发送者与接收者共享密钥k,发送者发送消息M与CBC-MAC,接收者收到M与MAC(IV, H(t)),进行再一次计算,验证是否相同;

5.生日攻击

生日攻击又称平方根攻击,攻击者利用生日现象,找到冲突的哈希函数值,伪造报文,从而进行攻击。为了实施攻击,攻击者通过计算若干message-hash数值对,直到找到冲突。
【例】

M = (price, description, R), h = h(price, description, R)
M1 = (price1, description, R1), h1 = h(price1, description, R1)
M ≠ M1, h = h1, use (M1 || h1) to forge(M || h)

生日攻击:攻击者计算 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值