170 likes | 184 Views
Learn about cryptographic goals, private and public-key cryptography, confidentiality, integrity, authentication, and advantages/disadvantages of each method in this informative lecture. Dive into essential concepts and practical implications in computer and network security.
E N D
CMSC 414Computer and Network SecurityLecture 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…