斯坦福大学密码学公开课——消息完整性(三)

Introduction to hash & generic birthday attack

这里讲的是 Hash 函数的一个基本性质..我就不写了.


image

用hash保证integrity的好处主要在于,我们不需要一个密钥

Birthday Attack

Generic Attack on C.R. functions

Birthday Paradox

在生日悖论中,平均分布是最坏的结果;而每个值的独立性也是证明中非常重要的性质

image
Generic Attack
Quantum Collision Finder

Merkle-Damgard Paradigm

本小节目标:给定针对于短消息的C.R.函数,我们要构建针对于长消息的C.R.函数.


MD iterated construction

有理论支撑,只要h满足collision resistance,那么H也会满足collision resistance的条件。

Constructing Compression Functions

本章节的目标是构建压缩函数 .

我们可以从blockcipher来构建压缩函数(Compression Function).

Compr. func. from a block cipher
Oher block cipher constructions
Case Study: SHA-256

除了上述的构建方法,我们还可以构建出可证明的压缩函数。虽然函数的正确性可以通过证明来解决,但是主要的问题在于构建的速度过慢,在实际中无法得到应用。


Provable Compression functions

HMAC:a MAC from SHA-256

直接由MD Hash Function生成的MAC是有问题的,我们是可以在结尾附加上任何 ,然后直接生成对应的 . 具体的原理见下面的框图:

image

HMAC in pic

HMAC Properties

Timing attacks on MAC verification

这里主要的讲的是一个经典的时序攻击。即服务器在验证的时候,是按照一位一位bit的顺序去进行验证的,一旦出现错误的信息,就会停止检查。这个操作的逻辑没有任何问题,但是会被攻击者所利用。攻击者可以观察服务器的检查时间,判断自己前信息是否正确。然后一位一位地去检测。

防御的方法有两个:

  • 固定检查时间,让攻击者无法进行攻击;缺点在于,优化过的编译器可能会忽略这个过程,还是会有运行时间的差距;

  • 不对两个目标值进行进行比较,而是通过间接的方式..比如,再hash一次

所以说,这里Dan又一次劝我们不要自己试图实现复杂的密码学过程,因为可能会出现各种各样的问题...

你可能感兴趣的:(斯坦福大学密码学公开课——消息完整性(三))