Cryptography I签名认证

密码学(一)

关注 (11k) 学过 (184) 写点评 (66) 晒证书

9.5 (66人)

  • 知识量:10
  • 教师参与:9.8
  • 趣味性:9.9
  • 课程设计:9.9

难度:一般

开始时间:2017-08-07

持续时间:7.0周

去上课 申请课程签名认证>

达人推荐

隐姓埋名在地球

隐姓埋名在地球

普通公民

获得证书 2

跟国内的密码学教学完全不是一个风格,dan牛的讲课更贴近实践,前后的连贯性、铺垫安排很合理。。课后除了日常作业外还有编程题很精彩,很实用。100%推荐!

你可能感兴趣换一换

授课大纲

WEEK 1
Module 1
Week 1. This week's topic is an overview of what cryptography is about as well as our first example ciphers. You will learn about pseudo-randomness and how to use it for encryption. We will also look at a few basic definitions of secure encryption.
阅读: Lecture slides for all six weeks

阅读: Course overview and additional reading resources

课程视频: Course Overview

课程视频: What is Cryptography?

课程视频: History of Cryptography


课程视频: Discrete Probability (Crash Course)

课程视频: Discrete Probability (Crash Course, Cont.)


课程视频: Information Theoretic Security and The One Time Pad

课程视频: Stream Ciphers and Pseudo Random Generators


课程视频: Attacks on Stream Ciphers and The One Time Pad


课程视频: Real-World Stream Ciphers


课程视频: PRG Security Definitions

课程视频: Semantic Security

课程视频: Stream Ciphers are Semantically Secure [optional]


测验: Week 1 - Problem Set

测验: Week 1 - Programming Assignment [optional]




WEEK 2
Module 1
Week 2. We introduce a new primitive called a block cipher that will let us build more powerful forms of encryption. We will look at a few classic block-cipher constructions (AES and 3DES) and see how to use them for encryption. Block ciphers are the work horse of cryptography and have many applications. Next week we will see how to use block ciphers to provide data integrity. The optional programming assignment this week asks students to build an encryption/decryption system using AES.
课程视频: What are Block Ciphers?


课程视频: The Data Encryption Standard

课程视频: Exhaustive Search Attacks

课程视频: More Attacks on Block Ciphers


课程视频: The AES Block Cipher

课程视频: Block Ciphers From PRGs


课程视频: Review: PRPs and PRFs

课程视频: Modes of Operation: One Time Key


课程视频: Security for Many-Time Key (CPA security)

课程视频: Modes of Operation: Many Time Key (CBC)

课程视频: Modes of Operation: Many Time Key (CTR)


测验: Week 2 - Problem Set

测验: Week 2 - Programming Assignment [Optional]




WEEK 3
Module 1
Week 3. This week's topic is data integrity. We will discuss a number of classic constructions for MAC systems that are used to ensure data integrity. For now we only discuss how to prevent modification of non-secret data. Next week we will come back to encryption and show how to provide both confidentiality and integrity. This week's programming project shows how to authenticate large video files. Even if you don't do the project, please read the project description --- it teaches an important concept called a hash chain.
课程视频: Message Authentication Codes

课程视频: MACs Based On PRFs


课程视频: CBC-MAC and NMAC

课程视频: MAC Padding


课程视频: PMAC and the Carter-Wegman MAC


课程视频: Introduction

课程视频: Generic Birthday Attack


课程视频: The Merkle-Damgard Paradigm

课程视频: Constructing Compression Functions


课程视频: HMAC

课程视频: Timing attacks on MAC verification


测验: Week 3 - Problem Set

测验: Week 3 - Programming Assignment [Optional]




WEEK 4
Module 1
Week 4. This week's topic is authenticated encryption: encryption methods that ensure both confidentiality and integrity. We will also discuss a few odds and ends such as how to search on encrypted data. This is our last week studying symmetric encryption. Next week we start with key management and public-key cryptography. As usual there is also an extra credit programming project. This week's project involves a bit of networking to experiment with a chosen ciphertext attack on a toy web site.
课程视频: Active Attacks on CPA-Secure Encryption

课程视频: Definitions

课程视频: Chosen Ciphertext Attacks


课程视频: Constructions From Ciphers and MACs


课程视频: Case Study: TLS 1.2

课程视频: CBC Padding Attacks

课程视频: Attacking Non-Atomic Decryption


课程视频: Key Derivation


课程视频: Deterministic Encryption

课程视频: Deterministic Encryption: SIV and Wide PRP


课程视频: Tweakable Encryption

课程视频: Format Preserving Encryption


测验: Week 4 - Problem Set

测验: Week 4 - Programming Project [Optional]




WEEK 5
Module 1
Week 5. This week's topic is basic key exchange: how to setup a secret key between two parties. For now we only consider protocols secure against eavesdropping. This question motivates the main concepts of public key cryptography, but before we build public-key systems we need to take a brief detour and cover a few basic concepts from computational number theory. We will start with algorithms dating back to antiquity (Euclid) and work our way up to Fermat, Euler, and Legendre. We will also mention in passing a few useful concepts from 20th century math. Next week we will put our hard work from this week to good use and construct several public key encryption systems.
课程视频: Trusted 3rd Parties
课程视频: Merkle Puzzles


课程视频: The Diffie-Hellman Protocol

课程视频: Public-Key Encryption


课程视频: Notation

课程视频: Fermat and Euler

课程视频: Modular e'th Roots

阅读: More background on number theory


课程视频: Arithmetic algorithms

课程视频: Intractable Problems


测验: Week 5 - Problem Set

测验: Week 5 - Programming Assignment [Optional]




WEEK 6
Module 1
Week 6. This week's topic is public key encryption: how to encrypt using a public key and decrypt using a secret key. Public key encryption is used for key management in encrypted file systems, in encrypted messaging systems, and for many other tasks. The videos cover two families of public key encryption systems: one based on trapdoor functions (RSA in particular) and the other based on the Diffie-Hellman protocol. We construct systems that are secure against tampering, also known as chosen ciphertext security (CCA security). There has been a ton of research on CCA security over the past decade and given the allotted time we can only summarize the main results from the last few years. The lectures contain suggestions for further readings for those interested in learning more about CCA secure public-key systems. The problem set this week involves a bit more math than usual, but should expand your understanding of public-key encryption. Please don't be shy about posting questions in the forum. This is the last week of this Crypto I course. I hope everyone learned a lot and enjoyed the material. Crypto is a beautiful topic with lots of open problems and room for further research. I look forward to seeing you in Crypto II where we will cover additional core topics and a few more advanced topics.
课程视频: Definitions and Security
课程视频: Constructions


课程视频: The RSA Trapdoor Permutation

课程视频: PKCS 1


课程视频: Is RSA a One-Way Function?

课程视频: RSA in Practice


课程视频: The ElGamal Public-key System

课程视频: ElGamal Security

课程视频: ElGamal Variants With Better Security


课程视频: A Unifying Theme

课程视频: Farewell (For Now)


测验: Week 6 - Problem Set

测验: Week 6 - Programming Assignment [Optional]




WEEK 7
Module 1
Congratulations! We are at the end of the course. This module contains only the final exam which covers the entire course. I hope everyone learned a lot during these 6 weeks. Good luck on the final exam and I look forward to seeing you at a future course!
测验: Final Exam






密码学是保护计算机系统信息安全不可或缺的工具。这门课程会介绍密码学原语的内部工作原理以及如何正确使用他们。学生将会学习如何论证密码结构的安全性以及如何将这些知识运用到现实生活中的应用中。这门课程将会以拥有共享的秘钥的双方如何在有一个能够监听和篡改数据流量的强大对手存在的情况下安全地进行通信作为开始。我们会检查许多已经实施的协议并且分析已存在系统中的错误。这门课程的第二部分将会讨论允许两个或多个人产生共享的私钥的公钥技术。我们会涉及相关的数论并讨论公钥加密和基本的密钥交换。整个课程中学生将会接触到这个领域内许多有趣的开放问题。
这门课程会包括书写的作业和编程的实验。这门课程的内容是自我包含的,然而,如果对离散概率理论有基本理解的话会有所帮助。


常见问题解答
在完成这门课程后会拿到证书吗?
是的。成功完成这门课程的学生会拿到老师签名的证书。
这门课程的形式是什么?
这门课会由小片的视频组成,每个视频一般为8到12分钟。其中的一些会包含嵌入的小测试。这门课程还会有不在视频中的独立测试和编程作业。每周大概会有2个小时长度的视频内容。
这门课程要求多少编程背景?
这门课程包含编程作业。拥有一些编程背景会有所帮助。然而,我们会提供一些能够帮助学生完成作业的基本代码。我们也会提到能够帮助学生找到必要背景的网络资源。
这门课程要求多少数学背景?
课程中已经包含了大部分需要用到的内容,然而离散概率方面的知识会有所帮助。离散概率方面的wikibooks文章应该能够为你提供足够的资源。


翻译:@希尔伯特变换
编辑:火绒草

课程点评 写点评

综合评分:9.5难度:一般

  • 知识量:10
  • 教师参与:9.8
  • 趣味性:9.9
  • 课程设计:9.9
  • 老师牛 15
  • 干货 11
  • 讲解清楚 10
  • 作业难 8
  • 偏理论 4
  • 作业少 2
  • 入门级 2

精彩点评

  • 已退休少先队员
    已退休少先队员 已完成

    说这门课困难不是说课程材料本身困难,教授准备的材料和视频课都很好。听的时候注意力集中并且手勤快些多推推公式,应该可以理解不少内容。 ------------------1-11-2014---编辑------------------------------- 时隔一年后,我又回到这门课里了,是因为一年前学的那点基本已被大脑自行优化了(当然当时印象最深的东西还在,比如第一周的编程作业,比如费马定理...),还有就是准备二月份密码学II。 根据一年前和如今重修的经历,给几个我自己认为靠谱的小建议。 1)按照教授排列的顺序逐个看课程视频,一段没看懂哪怕只有一点点的疑惑,可以暂停下来看看课件,拿张纸和笔重复一遍之前的逻辑;要是还是有困难,再到论坛里求助。 2)作业部分,必做的那部分习题尽量不要去扒论坛帖子找答案(只为弄清题意的另说),自己倒腾出正确结果会很有成就感的,当然对编程题部分也一样。 3)这门课也许会让一心想学习如何破解密文的同学有些失望,课程主体是讲数学是如何默默支撑整个密码学根基的。事实上破解现有加密算法是世界性难题,不信你看Dan教授介绍量子计算机破解AES那段(是假设存在量子计算机前提下给出破解算法运行的复杂度)。 -------------------1-18-2014-----编辑--------------------------- 昨晚见一ID发帖,说自己不会写程序,就只好用excel完成了第一周的编程作业。这算是炫耀帖么?不要再为什么“没基础不会写程序”纠结了,只要感兴趣谁都可以的! -------------------1-23-2014----------------------------------- 已经一快半了,所以 不!要!放!弃! 坚持住!

  • petitejoie
    petitejoie 已完成

    这两个月上Cryptography I真是一段奇妙的旅程呐!掰掰手指头简直回忆不出我还上过神马比这门更有意思的课。无论是课堂内容,还是课后作业,都各自有理论有应用,组织得非常好。满分结课~ 时间占用上来说,第一周的视频量巨大,加上编程作业不熟悉hex啦ascii啦各种转化,花了十几个小时,对于个人时间并不充裕的我来说,简直要被吓哭了。后来习惯了就好了,大概每周如传说中的五到七小时(大致是三小时视频,一小时quiz,两小时编程)或者再多一些些。 内容上来说,除了第五第六周公钥秘钥数论和RSA部分,其他都是我之前完全没有接触过的东西,常常上着上着就惊叹,怎么会有这么有趣的学科呢!作为一门CS类别的课,这门课的理论部分/数学部分讲得很算严谨到位,我好喜欢。注重理论的同时老师也举了大量现实中attack的例子。编程作业除了第二周是standard primitives的实现与使用外,其他每一周的内容都好玩到爆,比如第一周第四周都是在没有key的情况下解密,第三周是给视频加MAC好让它在没有全部下载完前就能分段验证,第五周是求大数同余下的log,第六周是大数质因数分解。我做完第四周作业就到处和朋友同事炫耀我attack过website了,完全达到了我学这门课想用来装逼吹牛皮的目的哈哈:p 因为这门课对Stanford的好感油然而生呐。可惜Cryptography II被延期又延期,希望可以早日开课,也希望到时候还能记得I都上过些什么。 P.S. 我真是人来疯啊,为什么作业里一需要算xor我就特别high……

    晒证书 Cryptography I Cryptography I
  • Salamanca
    Salamanca 在上课

    希望对想选择这门课程的同学有些帮助。 1、如果没任何基础只是因为感兴趣而选择了这门课,那么不得不说这课程很可能不适合你。或许兴趣不足以支持你完成这门课。 2、最好放低身段,带上字幕看视频。如果没有专业背景,直接看无字幕硬上纯属找虐。同时建议至少先翻翻讲义或相关书籍,至少先了解一点。可能还稍微需要翻翻高数概率之类。 3、老师确实是个大牛,字句间暴露明显;语速很快但完全没有废话,每段视频里面都压缩进去很多的知识。如果真的想认真学,个人觉得时不时暂停下来思考一阵写写画画是不可少的。要不然很容易进入一脸茫然的状态。 综上,按照老师说话速率,按照知识浓度,感觉6周实在是压缩太多了。适合喜欢挑战的同学。认认真真完成的都是好样的。 祝各位同学和自己能顺利完成这门课。共同加油!

最新点评

  • gk小笼包
    gk小笼包 已完成

    这门课的老师是大牛,不过语速非常快,幸好B站有字幕,不然纯粹被虐。学一会就得暂停推导下,内容实在是太充实了,理论和实际结合得蛮好的。

    2016-09-08 15:48 0
  • Alexi19
    Alexi19 已完成

    对于高中刚毕业的我来说就是。。。我去呀。。。从最最最开始的xor开始感觉自学了整个大学数学呀有木有!!!完全零基础,查单词时间都哗哗啦啦好久好久。。。最开始的课中练习没有一题是对的,老师还要不停的说是easy,sily,stupid question。。。坚持下来好不容易,给自己赞一个。老师真的是牛逼!逻辑怪!很厉害!语速超快! 建议至少上了大学的同学来修,或者很厉害的高中生(很显然我不是。。。)第一张斯坦福的证书,好满足~

    2016-09-06 23:14 0
  • 志勋网络-Lily
    志勋网络-Lily 在上课

    帅炸的上课方式,跟着大神走!一开始老师就简单明了地告诉我们要做什么,需要了解什么和能够为此做些什么准备,当然,还有他鼓励我们的学习方式,刚刚起步,但是感觉挺信任这个教授的,码住!抱紧大腿!

    2016-08-05 11:14 1
  • NoNo_63464
    NoNo_63464 在上课

    帅炸的上课方式,跟着大神走!一开始老师就简单明了地告诉我们要做什么,需要了解什么和能够为此做些什么准备,当然,还有他鼓励我们的学习方式,刚刚起步,但是感觉挺信任这个教授的,码住!抱紧大腿!

    2016-04-07 11:56 0
  • blackey
    blackey 已完成

    内容很赞,作业尤其赞,编程也很好玩,熬夜去抠那些细节还是很有意思的 不算平易近人,老师讲的飞快,必须不时停下来仔细想想到底讲的什么,有时需要去翻之前视频的ppt。不过不讲这么快的话,视频量要增加好多

    2015-11-13 18:38 0
  • 小程-维创科技
    小程-维创科技 没能完成

    这堂课非常不错,让我学习到了很多东西!还需要多多学习和了解这方面的知识,来更好的了解关于密码学的知识!

    2015-10-28 15:40 0
  • Kanagi_Miss
    Kanagi_Miss 已完成

    老师的语速很快,课程内容非常充实(就是因为太充实了,有很多地方得暂停了仔细看或者拉回去重看),几个PA也是出得非常好,展示了一些错误的密码系统设计会带来怎样灾难性的后果。 非常期待part2啊,不知道什么时候才会出。

    晒证书 Cryptography I Cryptography I
    2015-10-17 16:43 0
  • 超级囧大果
    超级囧大果 已完成

    老师讲课稍微有点快,不过第一节课他就说了,会比教室里上课的速度要快一些。所以听视频的时间要稍微多留出来一点。其实作业还是蛮多的,一边上班一边写作业还是挺累的(其实还是没写完)。所以休息一段时间再选下一门啦~^_^

    晒证书 Cryptography I Cryptography I
    2015-10-07 14:37 0

课程笔记

写笔记
查看全部笔记 >

所属专题

相关课程

京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号 ©2017果壳网

关于我们 新手指南