In this introductory course, we will cover the two primary cryptographic settings and
their corresponding primitives.
In the private key
setting where the communicating parties share secret information in advance.
We will study private key encryption schemes for
ensuring secrecy of their communication and message authentication codes for
the equally important task of data integrity.
That is ensuring that data is not modified improperly.
We will then move on to a treatment of the public-key setting.
Where communicating parties did not share any secret information and events.
And where the analysis concerns,
the analysis concerns are handled by public-key encryption schemes and
digital signatures that as we will see, are constructed using very different
techniques from the corresponding perimeters in the private-key setting.
Along the way, we will also cover some of the necessary building blocks for
these primitives.
Which are interesting and useful in their own right.
Things like Pseudorandom generators, block ciphers and hash functions.
We will of course, also introduce some number theory about midway through
the course in preparation for our discussion of public key cryptography.