Some checks failed
Sync from Gitea (main→main, keep workflow) / mirror (push) Has been cancelled
66 lines
1.9 KiB
Markdown
66 lines
1.9 KiB
Markdown
# CSE4303 Introduction to Computer Security (Lecture 7)
|
||
|
||
## Cyptography in Symmetric Systems
|
||
|
||
### Symmetric systems
|
||
|
||
Symmetric (shared-key) encryption
|
||
|
||
- Classical techniques
|
||
- Computer-aided techniques
|
||
- Formal reasoning
|
||
- Realizations:
|
||
- Stream ciphers
|
||
- Block ciphers
|
||
|
||
#### Stream ciphers
|
||
|
||
1. Operate on PT one bit at a time (usually), as a bit "stream"
|
||
2. Generate arbitrarily long keystream on demand
|
||
|
||
Security abstraction:
|
||
|
||
1. XOR transfers randomness of keystream to randomness of CT regardless of PT’s content
|
||
2. Security depends on G being “practically” indistinguishable from random string and “practically” unpredictable
|
||
3. Idea: shouldn’t be able to predict next bit of generator given all bits seen so far
|
||
|
||
Keystream $G(k)$
|
||
|
||
- Idea: shouldn’t be able to predict next bit of generator given all bits seen so far
|
||
- Strategies and challenges: many!
|
||
- Idea that doesn’t quite work: Linear Feedback Shift Register (LFSR)
|
||
- Choice of feedback: by algebra
|
||
- Pro: fast, statistically close to random
|
||
- Problem: susceptible to cryptanalysis (b/c linear)
|
||
- LFSR-based
|
||
- Modifications to basic LFSR:
|
||
- Use non-linear combo of multiple LFSRs
|
||
- Use controlled clocking (e.g. only cycle the LFSR when another LFSR outputs a 1)
|
||
- Etc.
|
||
- Others: mod arithmetic-based, other algebraic constructions
|
||
|
||
#### Block ciphers
|
||
|
||
1. Operate on PT one block at a time
|
||
2. Use same key for multiple blocks (with caveats)
|
||
3. Chaining modes intertwine successive blocks of CT (or not)
|
||
|
||
View cipher as a Pseudo-Random Permutation (PRP)
|
||
|
||
- PRP defined over $(K, X)$:
|
||
|
||
$$
|
||
E: K \times X \to X
|
||
$$
|
||
|
||
such that:
|
||
|
||
1. There exists an “efficient” deterministic algorithm to evaluate $E(k,x)$.
|
||
2. The function $E( k, \cdot )$ is one-to-one.
|
||
3. There exists an “efficient” inversion algorithm $D(k,y)$.
|
||
|
||
- i.e. a PRF that is an invertible 1-to-1 mapping from message space to
|
||
message space
|
||
|
||
|