|
所在平台: Coursera |
课程主页: https://www.coursera.org/learn/crypto
课程评论:没有评论
课程名称:密码学 I 课程概述:密码学是保护计算机系统中信息的重要工具。在本课程中,学员将学习密码系统的内部运作,以及如何在现实应用中正确使用这些系统。课程开始时将详细讨论两个共享秘密密钥的双方如何在强大的对手窃听和篡改流量的情况下安全通信。我们将分析多个已部署的协议和现有系统中的错误。课程后半部分将讨论公钥技术,探索如何让两方生成共享秘密密钥。参与者将接触到许多令人兴奋的开放问题,并可以选择完成有趣的编程项目。在后续的课程(密码学 II)中,我们将涵盖更高级的密码任务,如零知识证明、隐私机制及其他形式的加密。 课程大纲: 1. 课程概述与流密码(第1周):介绍密码学的基础及初步示例,加密伪随机性和安全加密的基本定义。 2. 块加密算法(第2周):介绍块加密的概念,学习经典的块加密构造(如AES和3DES)及其应用。编程作业要求学生构建AES加解密系统。 3. 消息完整性(第3周):讨论经典的消息认证码(MAC)构造,以确保数据完整性。同时介绍如何防止非秘密数据的修改。 4. 认证加密(第4周):讲解同时确保机密性与完整性的加密方法,并探讨加密数据的搜索问题。完成编程项目涉及网络实验,实践选择密文攻击。 5. 基本密钥交换(第5周):讨论如何在两个方之间设定秘密密钥,并介绍基本的数论算法为公钥加密奠定基础。 6. 公钥加密(第6周):讲解如何使用公钥加密和秘密密钥解密,包括基于陷门函数的RSA和Diffie-Hellman协议的加密系统。涉及选择密文安全性(CCA安全)。 7. 期末考试:课程结束,进行全部内容的期末考试,祝学员们好运并期待在未来的课程中见面。 在这六周的学习中,希望每位参与者都能加深对密码学的理解,享受学习过程的乐趣。
Name:Course overview and stream ciphers
Description: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.
Name:Block Ciphers
Description: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.
Name:Message Integrity
Description: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.
Name:Authenticated Encryption
Description: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.
Name:Basic Key Exchange
Description: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.
Name:Public-Key Encryption
Description: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.
Name:Final exam
Description: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!
Cryptography is an indispensable tool for protecting information in computer systems. In this course you will learn the inner workings of cryptographic systems and how to correctly use them in real-world applications. The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic. We will examine many deployed protocols and analyze mistakes in existing systems. The second half of the course discusses public-key techniques that let two parties generate a shared secret key. Throughout the course participants will be exposed to many exciting open problems in the field and work on fun (optional) programming projects. In a second course (Crypto II) we will cover more advanced cryptographic tasks such as zero-knowledge, privacy mechanisms, and other forms of encryption.