Cryptography is an important tool in using computer security.
In fact, cryptography is all around us.
When you use your browser to
connect to a bank, or
to do e-commerce, your browser is
using a number of cryptographic algorithms
and primitives as part of the https protocol.
In fact, all modern browsers these
days contain many sophisticated Cryptographic algorithms.
When you log into your computer in
the morning your password is
protected by a cryptographic hash function.
When you send an email it is
often encrypted using the SSL protocol.
Generally speaking, cryptography is the science of communicating securely.
It is a very mathematical field
with precise definitions and proofs of security.
It includes many beautiful ideas that often use deep mathematical tools.
Cryptography is a very old field leading back to Babylonian times.
However, it has only become
a rigorous science in the past few decades.
My name is Dan Boneh,
I've been a professor here at
Stanford for the past 14 years,
where I've been teaching and researching Cryptography.
My research focuses on Cryptographic
systems with novel properties, such as
easy to use key managements and improved efficiency.
I particularly get excited by
applications of cryptography to real
world systems.
In this course, you will learn how cryptographic primitives
work and more importantly, you will learn how to use them securely.
By the end of the course, you
will be able to reason and
prove why certain cryptographic
constructions are secure and why others are not.
The course will include many
real world examples of systems
that were broken because of misuse of cryptography.
Of course, we will also study some well-designed systems.
The course is mostly
self-contained, however it will
be helpful to have some
basic understanding of discreet probability theory.
In the first half of the course,
we will focus on symmetric encryption
where two parties have a shared
key and they wish to communicate securely with one another.
In the second half of the
course, we will discuss public key cryptography
and its many applications.
The course will include a
number of programming projects
as well as written homeworks, and
I look forward to seeing you when the course starts.
