Update: Not sure if Stanford still offers the class at security-class.org. Here is another free security class offered by Stanford.
Cryptography is an indispensable tool for protecting information in computer systems. This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to 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 or more parties generate a shared secret key. We will cover the relevant number theory and discuss public-key encryption and basic key-exchange. Throughout the course students will be exposed to many exciting open problems in the field.
The course will include written homeworks and programming labs. The course is self-contained, however it will be helpful to have a basic understanding of discrete probability theory.Sign Up for Cryptography
Update: Not sure if Stanford still offers the class at security-class.org.
In this class you will learn how to design secure systems and write secure code. You will learn how to find vulnerabilities in code and how to design software systems that limit the impact of security vulnerabilities. We will focus on principles for building secure systems and give many real world examples. In addition, the course will cover topics such as:
- memory safety vulnerabilities,
- techniques and tools for vulnerability detection,
- sandboxing and isolation,
- web security,
- network security,
- malware detection and defense, and
- mobile platform security.
Course homework and labs will teach students how to find vulnerabilities and how to fix them. The labs are designed to help students practice the principles of secure system design.
This course is intended for Computer Science students who have some programming background in C and C++.
Frequently Asked Questions
- When does the class start?
The class will start in February 2012.
- What is the format of the class?
The class will consist of lecture videos, which are broken into small chunks, usually between eight and twelve minutes each. Some of these may contain integrated quiz questions. There will also be standalone quizzes that are not part of video lectures, and other assignments. There will be approximately two hours worth of video content per week.
- Will the text of the lectures be available?
We hope to transcribe the lectures into text to make them more accessible for those not fluent in English. Stay tuned.
- Do I need to watch the lectures live?
No. You can watch the lectures at your leisure.
- Can online students ask questions and/or contact the professor?
Yes, but not directly There is a Q&A forum in which students rank questions and answers, so that the most important questions and the best answers bubble to the top. Teaching staff will monitor these forums, so that important questions not answered by other students can be addressed.
- How much programming background is needed for the course?
The course assumes knowledge of programming languages such as C and C++ as well as an understanding of basic concepts from operating systems such as processes and threads. While we will try to make the lectures self contained, students without the necessary pre-requisites will need to make up the material by referring to online resources.
- Will other Stanford or Berkeley resources be available to online students?
Thank you for reading IT Blog