密码学(cryptography I - Dan Boneh)on coursera学习笔记

1. Introduction

 

1.1  课程概述(Course Overview)

 

1.2  什么是密码学(What is Cryptography)

 

1.2.1  核心:  Secure Communication

  1. 安全密钥构造(secured key establishment)
  2. 安全通信with共享密钥(shared key)

 

1.2.2  具体应用:

通过协议获得共享密钥K + 彼此确认身份

保密性(confidentiality):攻击者不知道消息的内容

完整性(integrity):如果攻击者篡改消息,会被发现

数字签名(Digital Signatures)

不同文件的签名不同

构建安全的数字签名:基于内容的签署函数(后面将进一步学习)

匿名通信(Anonymous Communication)

服务器(server)不知道Alice是谁

实现方法mixnet:允许Alice通过一系列代理(proxies)进行通信

bi-directional:Bob不知道身份,但是可以发信给Alice

匿名现金(digital cash)

防止拷贝硬币(double spending):花销同一硬币多次时身份公布。

安全多方计算(Secure Multi-party Computation)

例:选举中心:党派送入加密的票数 -> 中心计算票数并宣布胜方,不泄露其他信息;验证选民;

可信组织?任何能交给可信组织的计算,一定不需要可信组织来得到结果

私下外包计算(Privately Outsourcing Computation )

例:google search:Alice有一串关键词,通过加密方案,谷歌能基于加密过的信息计算而不知道原始文本

零知识证明(Zero knowledge/Proof of knowledge)

假设Alice知道一个确定的,由两个大素数P、Q构造的数字N,并且她也知道构成N的因子。而Bob只知道数字N而不知道构成N的1因子。根据零知识证明,Alice可以向Bob证明她知道N的因子,而Bob也能证实Alice没有骗他。最终Bob却不知道因子P和Q的值。

 

1.2.3  密码学的三个步骤:

  1. 精确定义威胁模型(precisely specify threat model)

  2. 提出构造方案(propose a construction)

  3. 证明在特定威胁模型下,任何成功的攻击都必须解决一些对应的难题(Prove that breaking construction under threat mode will solve an underlying hard problem)

 

1.3 密码学史(History of Cryptography)

 

推荐书目:《破译者》(The Codebreakers)by David Kahn

 

对称加密(symmetric cipher):加密和解密共用相同密钥K

Alice和Bob想要安全地对话 -> 共享密钥k ->使用加密器(ciper)

加密器:加密算法E需要输入消息M和密钥K;由此,通过E可以产生一段密文(ciphertext)也就是使用密钥K对信息M进行加密。

于是加密信息通过互联网(也可以是加密的档案系统,EFS)传给了Bob。

当Bob收到了这段密文,它可以将其带入解密算法,并使用相同的密钥K,通过解码算法输出明文。

 

  • 最早:替换加密法(substitution cipher):

凯撒密码(没有使用密钥,不是加密算法)

破译:计算字母/字母组频率

  • 文艺复兴:维吉尼亚密码(Vigener cipher):

破译:遍历长度+频率

  • 19世纪早期:转轮机(rotor machines):

早期版本:Hibber machine,单转轮(single rotor)

破译:频率,足够的密文(唯密文攻击)

Enigma:n转轮,密钥空间26^n

破译:英国Bletchley Park

  • 二战后:DES,最早的数据加密联邦标准:

1975年IBM提出,密钥空间2^56,一次加密64位(8个字母)

破译:暴力破解

  • 高级加密标准:AES(2001)、Salsa20(2008)...

你可能感兴趣的:(密码学,笔记,计算机安全)