「Cryptography-MIT6875」: Lecture 3

「Cryptography-MIT6875」: Lecture 3

In this series, I will learn MIT 6.875, Foundations of Cryptography, lectured by Vinod Vaikuntanathan.
Any corrections and advice are welcome. ^ - ^

Topics:

  • The Hybrid Argument.
  • An application: PRG length extension.
  • The notion of pseudorandom functions: Definition, motivation, discussion and comparison with PRGs.
  • PRG implies (stateful) secret-key encryption.
  • PRFs imply (stateless) secret-key encryption.

「Cryptography-MIT6875」: Lecture 2

In this series, I will learn MIT 6.875, Foundations of Cryptography, lectured by Vinod Vaikuntanathan.
Any corrections and advice are welcome. ^ - ^

Science wins either way.

Topics:

  • How to circumvent Shannon’s lower bound: the computational adversary
  • Definition of computational security
  • The definition of pseudorandom generators(PRG)

「Cryptography-MIT6875」: Lecture 1

In this series, I will learn MIT 6.875, Foundations of Cryptography, lectured by Vinod Vaikuntanathan.
Any corrections and advice are welcome. ^ - ^

Everything you’ve ever wanted is on the other side of fear.

Topics:

  • Introduction to cryptography
  • Secure Communication and Shannon’s definitions of perfect secrecy
  • Perfect Indistinguishability definitions.
  • The One-time pad construction
  • Shannon’s lower bound.

「Cryptography-Boneh」:Collision Resistance

上一节介绍了基于PRFs的MAC构造和基于随机的MAC:

previous MAC constructions

本节我们将介绍抗碰撞的MAC(MACs from collision resistance)。

第一部分介绍了什么是抗碰撞 (Collision Resistance),以及基于C.R.的MAC的安全性。

第二部分介绍了生日悖论,如何用生日攻击寻找2-way collision 和3-way collision.

第三部分介绍了Merkle-Damgarg范式(如果压缩函数h是C.R.,那么构造出的哈希函数H就是C.R.)以及如何构建C.R.的压缩函数(Davies-Meyer压缩函数).

最后一部分介绍了HMAC (Hash MAC)和一种针对MAC验证的timing attack and defense.


「Math」:Mersenne Prime

在密码学中,有限域中的运算性能极大影响密码协议的实现。

如果有限域选择梅森素数,得益于它的优良性质,可以极大提高运算效率,特别是有限域下的模运算、乘法操作。

于是近日学习了梅森素数的相关性质,以及如何约减梅森素数域下模运算和乘法运算。


「Cryptography-Boneh」:Integrity

这篇文章主要介绍消息验证码,即MAC (Message Auth. Code)。

文章首先介绍了secure MAC的模型和安全定义,当攻击者能伪造出新的msg/tag对时,MAC就不再安全。

文章的第二部分介绍了基于PRF的MAC构造,根据相关定理,只要PRF的输出空间足够大,且这是一个安全的PRF,则基于PRF的MAC就是安全的。

但基于PRF的MAC只能计算固定消息大小的MAC,如何利用这个工具构造出更大消息空间的MAC?

文章后半部分给出了一些主流的MAC构造:

  • 串行构造:CBC-MAC、NMAC、CMAC
  • 并行构造:PMAC、HMAC(下一篇文章)
  • 基于one-time MAC: CW MAC

此外,文章还介绍了MAC Padding技术。


「Tools-VSCode」:Remote SSH-跳板机设置

VSCode就是最棒的IDE!

最近遇到一个Remote SSH的问题:想要连接校内的服务器,必须经过两个跳板机。

即需要三次ssh,才能连接到目标服务器D:A➡️B➡️C➡️D

  • Terminal:如何无痛免密登录校内服务器 (需要输入三次ssh命令)
  • VSCode:如何无痛用VSCode连接远程服务器以进行开发(一键式)

「Cryptography-Boneh」:Block Cipher 2

作为BlockCipher的第二篇文章。
第一部分介绍了块密码中的抽象概念PRF和PRP的安全定义。
第二部分介绍了两个概念,一个是抵抗one-time key的语义安全,另一个是抵抗many-time key(CPA)的语义安全。

在one-time key中,每条消息都使用新的密钥,类似于流密码中的OTP。介绍了不能抵抗CPA的ECB模式,还阐述了能抵抗CPA的det. CTR模式。

在many-time key中,同一条密钥可以用于加密多条消息,攻击者可以轻易具备CPA能力,文中说明了如果确定性的加密算法,则不能抵抗CPA,而random IV或者unique nonce的方式则可以抵抗CPA。


「Cryptography-Boneh」:Block Cipher 1

这篇文章介绍了块密码。

文中主要分为四个部分。

第一个部分解释了块密码的基础概念,包括抽象概念PRF(伪随机函数)和PRP(伪随机置换)的定义及其安全定义。

第二个部分介绍了经典块密码DES,包括DES的Feistel网络,支撑Feistel网络的Luby-Rackoff定理,triple-DES和对DES的一些攻击方法。特别是有效的中间相遇攻击。

第三个部分介绍了目前流行的块密码AES,包括AES的结构和一些攻击方法等。

最后一小部分介绍了用PRG构造PRF,再利用Feistel网络变成块密码。