首页 > 其他分享 >CAN304 W3

CAN304 W3

时间:2023-05-13 22:48:26浏览次数:59  
标签:CBC hash collision MAC W3 长度 bit CAN304

CAN304 W3

Message authentication code

Message integrity

我们一直关注确保通信的保密性。

Integrity:确保接收到的消息来自预期方,并且未被修改,即使攻击者控制该通道。

保密 (secrecy) 和完整性 (integrity) 是正交的问题 (orthogonal concerns),可以有一个而没有另一个。

加密可以帮助发现信息是否被更改:如果解密的消息毫无意义,不可读,则被更改了;但加密的目的不是为了发现信息是否被更改。

Message authentication code (MAC)

消息身份验证代码由三种算法(Gen、Mac、Vrfy)定义:

  • Gen:生成一个随机密钥 k

  • Mac:将密钥 k 和 message \(m \in \{0, 1\}^*\) 作为输入,输出 tag t

    \[t:=Mac_k(m) \]

  • Vrfy:将密钥 k、message m 和 tag t 作为输入;输出 1(“accept”)或 0(“reject”)(如果是 Gan 生成的密钥,则接受;如果不是,则拒绝)

    \[For \ all \ m \ and \ all \ k \ output \ by \ Genknow \\ Vrfy_k(m, Mac_k(m)) = 1 \]

最后验证主要靠 message m 和 tag t。

Fixed-length MAC

image-20230513153914394

在实践中,block ciphers 具有短的,固定长度块大小。因此,之前的构造仅限于对短的、固定长度的消息进行身份验证。

CBC-MAC

Recall CBC mode

CBC 使用先前块的密文来加密当前块:将先前块的密文和当前块的明文进行异或操作,再加密其结果。这样每个块的加密取决于所有先前块的内容。

CBC-MAC

CBC-MAC 使用 CBC mode,\(m = m_1m_2…m_l\)。

image-20230513154120147

CBC-MAC 主要生成 tag t,用来验证。

CBC-MAC vs. CBC-mode encryption

  • CBC-MAC 是确定性的 (deterministic,没有 IV,initialization vectors),对于相同的输入总是有相同的结果(使用随机向量IV会变得不安全)

  • 在 CBC-MAC 中,仅输出最终值 t,通过重新计算结果进行验证

  • 可以从其 MAC 的 tag 中恢复原始 message 吗?

    • 不行!

CBC-MAC extensions

处理可变长度消息的几种方法

  • 其长度不是块长度的倍数

最简单的方法之一:在应用 CBC-MAC 之前预置消息长度

image-20230513163903861

假如块的长度为128 bit,我们把消息分成长度为 128 bit 的块,然后到 m1 的时候,发现 m1 的长度不足 128 bit。我们使用 l 把 m1 的长度补成 128 bit,再进行 CBC-MAC。之后发送方要把 l 也告诉接收方,接收方以相同的操作来进行验证。

Secure communications

在消息传递中,我们希望同时达到 confidentiality 和 integrity。我们用加密来达到 confidentiality,用 MAC 来达到 integrity。

image-20230513164133934

上图中,发送者用 k1 加密消息,用 k2 生成 MAC tag,然后把加密消息和 tag 发给接收方;接收方用 k1 解密消息,用 k2 来验证消息是否被修改过。这样就达成了加密通讯。

不过这里存在一个问题:假如我们发送两次相同的信息,密文会不同,但 tag 会相同 (MAC is deterministic),这会泄露信息。

不过这个问题很好解决:我们不生成明文的 MAC,而是生成密文的 MAC,这样每次密文不同,tag 也不同。而接收方收到消息后,需要先用密文验证,再解密。

image-20230513165211182

Secure sessions

Consider parties who wish to communicate securely over the course of a session

"Securely" = confidentiality and integrity
"Session" = period of time over which parties are willing tomaintain state

Can use authenticated encryption

Attacks in Secure sessions

Replay attack:sender 给 receiver 发送两条消息 (c1, t1) 和 (c2, c2);attacker 截留第二条消息 (c2, c2),并伪装成 sender 再发一遍 (c1, t1)。

Re-ordering attack:sender 给 receiver 发送两条消息 (c1, t1) 和 (c2, c2);attacker 截留两条消息,伪装成 sender 更改顺序后发送两条消息。

Solution:使用 counters 和 identities 来防止这些攻击 (以及其他攻击)。即发送消息时带上自己的标识和消息的数量,如 (”

标签:CBC,hash,collision,MAC,W3,长度,bit,CAN304
From: https://www.cnblogs.com/zz-w/p/17398394.html

相关文章

  • CAN304 W2
    CAN304W2ClassicalandmoderncryptographyClassicalcryptography完全依赖于通信双方之间共享的秘密信息(Private-keycryptography,又叫secret-key/shared-key/symmetric-keycryptography)。Securecommunication:双方共享一个密钥,用于安全通信。Securestorage:单......
  • CAN304 W1
    CAN304W1DefinitionTheprotectionaffordedtoanautomatedinformationsysteminordertoattaintheapplicableobjectivesofpreservingtheintegrity,availability,andconfidentialityofinformationsystemresources(includeshardware,software,firmw......
  • margin:auto position: absolute 居中 对应在 w3c规范 中的描述
    https://www.w3.org/TR/CSS2/visudet.html 10.6 CalculatingheightsandmarginsForcalculatingthevaluesof 'top', 'margin-top', 'height', 'margin-bottom',and 'bottom' adistinctionmustbemadebetween......
  • w3-2 寄包柜
    第一种方法:数组10^5*10^5超范围第二种方法:vector(mle)//较麻烦,并且通过不了hack,需要手动搜索查询#include<iostream>#include<vector>usingnamespacestd;intn,p,judge,num1,num2,k;structnum{//格子intindex,k;//第index个格子,放的是k};structcupboard{......
  • w3-4 后缀表达式
    #include<iostream>#include<stack>usingnamespacestd;longlongtmp1,tmp2,tmp3;intmain(){stack<longlong>a;charch;cin>>ch;while(ch!='@'){//到@停止if(ch>='0'&&ch<=&......
  • Qt+MySql开发笔记:Qt5.9.3的mingw32版本编译MySql8版本驱动并Demo连接数据库测试
    前言  之前特定的mysql版本msvc版本已经调通了,但是为了更好的跨平台,所以选择用mingw32版本,于是需要编译mysql驱动的mingw32版本的驱动库,以便提供给qt连接mysql使用。<br......
  • 在分布式追踪系统中使用 W3C Trace Context
    在分布式追踪系统中使用W3CTraceContext 在分布式追踪系统中使用W3CTraceContexthttps://dev.to/luizhlelis/using-w3c-trace-context-standard-in-distribu......
  • .NET Core 3.0-preview3 发布
    .NETCore3.0Preview3已经发布,框架和ASP.NETCore有许多有趣的更新。这是最重要的更新列表。下载地址:​​https://aka.ms/netcore3download​​。​​.NETCore3.0......
  • Day 01 1.1 浏览器发展历史 w3c标准
    软件架构体系:(1)、C/S:client/Server客户端/服务端QQ,酷狗,爱奇艺,王者荣耀等3D游戏(2)、B/S:browser/Server浏览器/服务端百度/淘宝/京东/网页版的爱奇艺/基于......
  • Sharing assemblies between w3wp processes for reduce memory usage
    Problem Wearepublishingalotofmicroservicesononemachine,i.e.:30instancesandeveryoneuse150–300mb.Alotofmicroservicesusethesamelibra......