0% found this document useful (0 votes)
48 views23 pages

Cryptography Introduction

This document provides an introduction to the HTCS6702 - Cryptography course. It discusses the goals of understanding real-world cryptography through a rigorous approach. It also outlines some of the key topics that will be covered, including private-key encryption, public-key encryption, digital signatures, and cryptographic building blocks. The document provides a brief history of cryptography, noting how it has evolved from a historical focus on secrecy to a more scientific approach today.

Uploaded by

M N
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views23 pages

Cryptography Introduction

This document provides an introduction to the HTCS6702 - Cryptography course. It discusses the goals of understanding real-world cryptography through a rigorous approach. It also outlines some of the key topics that will be covered, including private-key encryption, public-key encryption, digital signatures, and cryptographic building blocks. The document provides a brief history of cryptography, noting how it has evolved from a historical focus on secrecy to a more scientific approach today.

Uploaded by

M N
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

HTCS6702 - Cryptography

Introduction

These slides are partially based on slides from J. Katz, author of text book: Introduction to Modern Cryptography
Goals
• Understand real-world crypto via a rigorous
approach
• When you encounter crypto in your career:
– Understand the key terms
– Understand the security guarantees provided
– Know how to use crypto
– Understand what goes on “under the hood”
• “Crypto mindset”
Non-goals
• Designing your own crypto schemes
• Implementing your own crypto for
real-world use

• Course goal:
realize when to consult an expert!
Cryptography (historically)
“…the art of writing or solving codes…”

• Historically, cryptography focused exclusively


on ensuring private communication
between two parties sharing secret
information in advance (using “codes” aka
private-key encryption)
Modern cryptography
• Much broader scope!
– Data integrity, authentication, protocols, …
– The public-key setting
– Group communication
– More-complicated trust models
– Foundations (e.g., number theory, quantum-
resistance) to systems (e.g., electronic voting,
cryptocurrencies)
Modern cryptography

Design, analysis, and implementation of mathematical


techniques for securing information, systems, and
distributed computations against adversarial attack
Modern cryptography
• Cryptography is ubiquitous
– Passwords, password hashing
– Secure credit-card transactions over the internet
– Encrypted WiFi
– Disk encryption
– Digitally signed software updates
– Bitcoin
–…
Cryptography (historically)
“…the art of writing or solving codes…”

• Historically, cryptography was an art


– Heuristic, unprincipled design and analysis
– Schemes proposed, broken, repeat…
Modern cryptography
• Cryptography is now much more of a science
– Rigorous analysis, firm foundations, deeper
understanding, rich theory

• The “crypto mindset” has permeated


other areas of computer security
– Threat modeling
– Proofs of security
Rough course outline
Secrecy Integrity
Private-key setting Private-key Message
encryption authentication codes
Public-key setting Public-key Digital signatures
encryption

• Building blocks
– Pseudorandom (number) generators
– Pseudorandom functions/block ciphers
– Hash functions
– Number theory
HTCS6702 - Cryptography

Classical Cryptography
Motivation
• Allows us to “ease into things…,” introduce
notation
• Shows why unprincipled approaches are
dangerous
• Illustrates why things are more difficult than
they may appear
Classical cryptography
• Until the 1970s, exclusively concerned with
ensuring secrecy of communication

• I.e., encryption
Classical cryptography
• Until the 1970s, relied exclusively on secret
information (a key) shared in advance
between the communicating parties

Private-key cryptography
– aka secret-key / shared-key / symmetric-key
cryptography
Private-key encryption
key key
ciphertext

c
k k

m
c := Enck(m) message/plaintext m := Deck(c)

decryption
encryption
Private-key encryption

k
c
m
c := Enck(m)
c
c
k

m := Deck(c)
Private-key encryption
• A private-key encryption scheme is defined by a
message space M and algorithms (Gen, Enc, Dec):
– Gen (key-generation algorithm): outputs kÎK
– Enc (encryption algorithm): takes key k and message
mÎM as input; outputs ciphertext c
c ¬ Enck(m)
– Dec (decryption algorithm): takes key k and
ciphertext c as input; outputs m or “error”
m := Deck(c)
For all mÎM and k output by Gen,
Deck(Enck(m)) = m
Kerckhoffs’s principle
• The encryption scheme is not secret
– The attacker knows the encryption scheme
– The only secret is the key
– The key must be chosen at random; kept secret

• Some arguments in favor of this principle


– Easier to keep key secret than algorithm
– Easier to change key than to change algorithm
– Standardization
• Ease of deployment
• Public validation
The shift cipher
• Consider encrypting English text
• Associate ‘a’ with 0; ‘b’ with 1; …; ‘z’ with 25
• k Î K = {0, …, 25}
• To encrypt using key k, shift every letter of the
plaintext by k positions (with wraparound)
• Decryption just does the reverse

helloworld
jgnnqyqtnf
Modular arithmetic
• x = y mod N if and only if N divides x-y
• [x mod N] = the remainder when x is divided by N
– I.e., the unique value yÎ{0, …, N-1} such that
x = y mod N

• 25 = 35 mod 10
• 25 ≠ [35 mod 10]
• 5 = [35 mod 10]
The shift cipher, formally
• M = {strings over lowercase English alphabet}
• Gen: choose uniform kÎ{0, …, 25}
• Enck(m1…mt): output c1…ct, where
ci := [mi + k mod 26]
• Deck(c1…ct): output m1…mt, where
mi := [ci - k mod 26]

• Can verify that correctness holds…


Is the shift cipher secure?
• No -- only 26 possible keys!
– Given a ciphertext, try decrypting with every
possible key
– Only one possibility will “make sense”
– (What assumptions are we making here?)

• Example of a “brute-force” or “exhaustive-


search” attack
Example
• Ciphertext uryybjbeyq
• Try every possible key…
– tqxxaiadxp
– spwwzhzcwo
–…
– helloworld

You might also like