消息认证(Message Authentication)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Message Encryption
• message encryption by itself also provides a measure of authentication • if symmetric encryption is used then:
– receiver know sender must have created it – since only sender and receiver know key used – know content cannot of been altered – if message has suitable structure, redundancy or a checksum to detect any changes
Encryption for authentication
• First symmetric encryption:
– Let M be a message of some bit pattern – Eg. M=X||111110000011111 – Authenticator: V=EK(M) – Authentication
M4
Ek (x)
…
Mn
Ek (x)
IV
Ek (x)
…
C1
C2
C3
C4
…
Cn MAC
如何实现消息认证
1. 加密 – 消息內容只有加密者和拥有解密密钥者才知道, 确保消息的秘密性。 – 如果明文內容中有可辨别的信息,则可确认消息 的正确性 1) 对称加密系统 – 优点:计算速度快 – 缺点:事先必須分享好共同密钥 2) 公钥加密系统 – 优点:不需要事先必須分享好共同密钥 – 缺点:计算速度慢, 需要认证公钥来源的正确性
– Compute C’’=CK(M’) – Check whether C’=C’’
MAC: example
• The last block of DES-CBC Cipher block chaining mode
MAC: security
• Only A and B who share a key can create a valid MAC code for a message M • Only the designated receiver A or B can authenticate the received message • An attacker cannot modify M without recalculating the MAC=CK(M’)
2. 如何实现消息认证
• 消息认证码(Message Authentication Code)
MAC 发送方 M • 发送方用双方都知道的密钥计算出
MAC值,并连同消息送給接收方
• 接收方欲知道在消息传送的过程中, MAC M 接收方 是否有被篡改,於是做以下验证: – Step1:用与发送方共享的密钥算 M’的MAC值
(Message Authentication Code, MAC)
较简单的方法是利用具密钥的杂凑函数
(Keyed Hash Function)产生MAC. 可以实现消
息认证 (Message Authentication)或完整性
(Integrity)
认证的种类–消息认证
• 以MAC為例
– M为发送方要发送给接收方的信息 – K为发送方与接收方事先分享的密钥 – MAC的输入为M与K,输出为digest (只有拥有K的人才能計 算出digest) – 接收方可以利用MAC,对收到的M’或digest’做验证,以确 保消息的完整性
• Methods (Important)=> Thinking
Method-1: Message encryption
Method-2: Message authentication code
Method-3: Hash function (Partial properties)
如何实现消息认证
1. 加密实现认证——CBC-MAC
CBC模式
n 分组消息 M (M1 ,, M n ) , 校验码为MAC: Cn为认证码 MAC。
M1
M2
Ek (x)
M3
Ek (x)
M4
Ek (x)
…
Mn
Ek (x)
IV
Ek (x)
…
C1
消息 :
C2
M
C3
C4
…
Cn MAC
仅需对消息认证, 而不需加密时,传送 认证码: Cn=MAC ( k, IV, M) 初始向量: IV
●
美国政府5年内将不再使用SHA-1,并计划在2010年改用其他更长 更安全的算法(如SHA-224、SHA-256、SHA-384和SHA-512)来替 代
Recall: Encryption for authentication
Hash function: usage
Hash function: usage (cont.)
Message Digest
目标:确保信息的完整性(Integrity) 特色: (1) 不需密钥 (2) 任意长信息输入,固定长摘要输出 (3) 找出两个不同的输入,使输出相同在计算上很难 常用系統: MD5 (RFC 1321) SHA-1 (FIPS 180-1)
Structure of Message Digest
• hash includes a key along with the message • original proposal:
KeyedHash = Hash(Key|Message) – some weaknesses were found with this
• eventually led to development of HMAC
• 同时进行身份认证与密钥交换的协议
– Authenticated Encryption
• 同时具备签名与加密两种功能,有确保消 息完整性与身份认证的效果 – 电子商务上的应用,如电子付款、电子投票
1. 消息认证目的
双方通讯时,可能面临 • 窃听、伪造、伪装、重放、篡改……攻击
• 双方如何知道消息的来源和內容是否正确、完整?
Message Encryption
• if public-key encryption is used:
– encryption provides no confidence of sender – since anyone potentially knows public-key – however if
ቤተ መጻሕፍቲ ባይዱ
HMAC的设计目标
• Hash函数不使用密钥,不能直接用于MAC • HMAC要求 –可不经修改使用现有hash函数 –其中嵌入的hash函数可易于替换为更快和更安 全的hash函数 –保持嵌入的hash函数的最初性能,不因适用于 HAMC而使其性能降低 –以简单方式使用和处理密钥 –在对嵌入的hash函数合理假设的基础上,易于 分析 HMAC用于认证时的密码强度
– Step2: 比较算出來的MAC值是否
和传送过来的MAC’一样,如果一 样即通过验证
• Authenticator: a short string (value) MAC appended to a message M for authenticating the message
– Sender: M M||MAC – Receiver: M||MAC yes/no (authentication)
– Let F be a public checksum function – Compute C=EK(M||F(M)) – Authentication
• Compute DK(C)=M’||S’ • Check S’=F(M’)
Encryption for authentication (cont.)
认证内容
• 认证的种类 • 认证的需求 • 认证的功能
认证的种类
• 消息认证(Message Authentication)
• 身份认证(Identity Authentication)
• 基于身份的身份认证(ID-based Identity
Authentication)
消息认证
• 目的
– 验证消息是否为真正的通讯双方所传送,并
• Compute DK(V)=M’ • Check M’=X’||111110000011111
Encryption for authentication (cont.)
• Second symmetric encryption • Compute a “checksum” (frame check sequence)
Keyed Hash Functions as MACs
• have desire to create a MAC using a hash function rather than a block cipher
– because hash functions are generally faster – not limited by export controls unlike block ciphers
检验方法:
验证者仅收到消息 M 和认证码 MAC ,他需要: Step1 计算消息 M 的校验码 Step2 利用共享密钥使用CBC模式对 M 加密,将得到的最 后一个密文分组与接受到的认证码 MAC 比较,二者一致时 判定接收的明文无错;二者不一致时判定明文出错。
M1
M2
Ek (x)
M3
Ek (x)
MD5不再安全!?
安全的杂凑函数在设计时必须满足两个要求
● ●
找到两个不同输入而得到相同的输出值在计算上是不可行的—— 抗碰撞
给定一输出值找出输入值在計算上是不可行的——单向性
2004年在Crypto會議,來自山東大學的王小云等教授发表了一 份「破解」MD5的把报告
●
● ●
提出一种可以快速找到碰撞的方法 受影响的算法—— MD5、HAVAL-128、MD4、RIPEMD SHA-0及減弱条件下的SHA-1不安全——在任何初始值下 用240次hash运算可以找出SHA-0的碰撞 SHA-1预计至2010年也会被破解
验证信息在传送过程中未遭受遗失、插入
及篡改也就是确保信息的完整性(Integrity)
• 方法 – 消息认证码(Message Authentication Code, MAC) – 数字签名(Digital Signature) – 加密(Encryption)
认证的功能
• 认证的应用
– Authenticated Key Exchange (AKE)
1. 消息认证目的
• 消息认证目的包括 – 消息內容认证
– 消息来源认证
– 可信任的通訊密钥建立
消息认证(Message Authentication)
Goal:
A => M => B
1. Guarantee no message changed 2. Confirm the message sent by specified user
如何实现消息认证
2. 数字信封
– 结合对称加密系统和公钥加密系统
– 利用对称加密系统计算量较少优点來加密消息 – 利用公钥加密系统來加密对称密钥,所以不必 事先分享好密钥。
如何实现消息认证
3. 数字签名 – 消息来源认证
– 消息不可否否认性
– 消息的完整性 – 但计算量大
如何实现消息认证
4. hash函数构造—消息认证码
• sender signs message using their private-key • then encrypts with recipients public key • have both secrecy and authentication
– again need to recognize corrupted messages – but at cost of two public-key uses on message
Message authentication code
• Prerequisite: A and B shares a key K
– Can be a session key
• MAC: a short fixed-size data block, depending on the message M and the shared key K • MAC(K,M)=CK(M) • Sender: M||CK(M) • Receiver: on receiving M’|C’