Hello and welcome to my course on cryptography.
Cryptography is a powerful tool used to protect
information in computer systems.
When you use your browser for home banking,
you use a number of cryptographic algorithms
to protect data sent to your bank.
When you log into your computer, your password
is protected by a cryptographic hash function.
When you send an email, it is often encrypted
using SSL.
However, as useful as cryptography is it is
very easy to implement incorrectly.
The resulting systems will work just fine
but they will be completely insecure.
My name is Dan Boneh and I'm a Professor of
Computer Science at Stanford University.
I've been working on cryptography for many
years.
My research focuses on cryptographic systems
with novel properties such as easy key management
and better efficiency.
I particularly get excited by applications
of cryptography to real world systems.
In this course you will learn how cryptographic
primitives work but more importantly you will
learn how to use these primitives correctly.
By the end of the course you will be able
to reason and improve why certain constructions
work and why other constructions are insecure.
The course will include many real world examples
of well-designed systems as well as systems
that were broken because of misuse of cryptography.
The course is mostly self-contained.
In the first half we will focus on symmetric
encryption.
Basically, how two parties who have a shared
secret key can communicate securely with one
another and then in the second half we will
discuss public e-cryptography and its many
applications.
The course will include written assignments
and programming projects where you will try
to break certain cyphers and then try to fix
them.
Those of you who complete the course will
receive a statement of accomplishment from
me.
I look forward to seeing you in the course.
