CMSC 414
Computer and Network Security
Lecture 2
Jonathan Katz
Administrative items I
No final project
Instead, 5 (more difficult) homeworks
– Work in teams of two students
– Email TAs if you need a partner
– All students expected to work on each portion
of the homework
First homework out
Administrative items II
JCE tutorial: Tuesday at 5:30. Room to be
announced.
Everything you wanted to know
*
about cryptography
*But perhaps were afraid to ask…
Caveat
Everything I present will be (relatively)
informal
– But I will try not to say anything that is an
outright lie…
Cryptography is about precise definitions,
formal models, and rigorous proofs of
security (which we will not cover here)
– If you want more details, take CMSC 456!
Attacks
Crypto deals primarily with three goals:
– Confidentiality
– Integrity (of data)
– Authentication (of resources, people, systems)
Other goals also considered
– E.g., non-repudiation
– E-cash (e.g., double spending)
– General secure multi-party computation
Security through obscurity?
Always assume full details of crypto
protocols and algorithms are public
– Only secret information is a key
“Security through obscurity” is a bad idea…
Private- vs. public-key
For many security goals, there are two types
of cryptographic algorithms
– Private-key / shared-key / symmetric-key /
secret-key
– Public-key
Private-key cryptography
The parties communicating share a
completely random and secret key
– Main point: key is not known to an attacker
– This key must be shared (somehow) before they
communicate
All “classical” cryptosystems are private-
key based
Can also be used for secure storage
Private-key cryptography
For confidentiality:
– Private-key (symmetric-key) encryption
For data integrity:
– Message authentication codes
– (sometimes called cryptographic checksums)
Public-key cryptography
One party (Alice) generates both a public key and
a private key (or secret key)
The public key is published; the private key is
kept secret
– An attacker knows the public key!
The other communicating party (Bob) need not
have any key of his own; knows Alice’s key
Techniques for this first developed in the 70’s
Public-key cryptography
For confidentiality:
– Public-key encryption
For data integrity:
– Digital signatures
To review…
Confidentiality:
– Private-key encryption (schemes)
– Public-key encryption (schemes)
Integrity:
– Message authentication (codes)
– Digital signature (schemes)
We will discuss authentication later
Private- vs. public-key I
Disadvantages of private-key
– Need to securely share a key
• If you can share a key securely, why not just share
the message itself?
• What if not possible?
• Need to know with whom you wish to communicate
in advance!
– O(n2) keys needed for point-to-point channels
in an n-party network
Private- vs. public-key II
Why study private-key at all?
– Private-key is much more efficient (3 orders of
magnitude)
– Public-key crypto is “harder” to get right
• Needs stronger assumptions, more math
– Can combine private-key with public-key to get
the best of both worlds (for encryption)
Private- vs. public-key III
More disadvantages of public-key crypto
– Public-key crypto still requires secure
distribution and binding of public keys (PKI)
• May (sometimes) be just as hard as sharing a key
– Not clear with whom you are communicating
(for public-key encryption)
In more detail…
Alice and Bob share a key K
– Must be shared securely
– Must be completely random
– Must be kept completely secret from attacker
– We don’t discuss (for now) how they do this
Plaintext - encryption - ciphertext - decryption
Decryption must recover the message!
We have not yet said anything about security…