Computer System Security CSE 5339/7339 Lecture 4 August 31, 2004
Download
Report
Transcript Computer System Security CSE 5339/7339 Lecture 4 August 31, 2004
Computer System Security
CSE 5339/7339
Lecture 4
August 31, 2004
Computer Science and Engineering
Contents
Encryption
Substitution and Transposition Ciphers
Symmetric and Asymmetric Enciption
Merkle-Hellman Knapsacks
Murtaza’s Presentation
Computer Science and Engineering
Exercise (Group work)
Decrypt the following encrypted quotation:
fqjcb rwjwj vnjax bnkhj whxcq nawjv
nfxdu mbvnu ujbbf nnc
Computer Science and Engineering
Non-Repeating Series of Numbers
Non-repeating series of numbers
plaintext
Encryption ciphertext Decryption
Original
plaintext
Computer Science and Engineering
One-Time Pads
Name set of sheets of paper with keys, glued into a
pad
The sender would tear off enough number of pages
The receiver needs a pad identical to the one used by
the sender
Computer Science and Engineering
One-Time Pads (cont.)
The sender would write the keys one at a time above the letters of
the plaintext.
K1 k2 k3 k4 ... Kn
p1 p2 p3 p4 ... pn
The plaintext is enciphered using a pre-arranged chart (Vignere
Tableau) – all 26 letters in each column in some scrambled order
select the substitution in row pi, column Ki
Problems:
Unlimited number of keys & Absolute synchronization between
sender and receiver
Computer Science and Engineering
Vernam Cipher
Plaintext
V
E
R
N
21 4
17 13
Random numbers
76 48 16 82
Sum
97 52 33 95
Sum mod 26
19 0
7
17
Ciphertext
t
a
h
r
A
0
M
12
C
2
I
8
P
15
H
7
E
4
R
17
44
3
58
11
60
5
48
88
44
15
60
19
75
12
52
105
18
15
8
19
23
12
0
1
s
p
i
t
x
m
a
b
Computer Science and Engineering
Book Ciphers
Both sender and receiver need access to identical objects
Example: telephone book – xxx-xxx-xxxx (use xx mod 26 as a key)
Problem – High frequency letters
A, E, O, T 40% of all letters used in Standard English text
A, E, O, T, N, I 50% of all letters used in Standard English text
The probability that the key letter and plain text letter is in these 6 letters is
0.25
Computer Science and Engineering
Transposition (Diffusion)
The letters of the message are rearranged
Columnar transposition
Example:
THIS IS A MESSAGE TO SHOW HOW A COLMUNAR TRANSPOSITION
WORKS
Computer Science and Engineering
T H I S I
S A M E S
S A G E T
O S H O W
H O W A C
O L M U N
A R T R A
N S P O S
I T I O N
W O R K S
tssoh oaniw haaso lrsto imghw utpir seeoa mrook istwc
nasna
Computer Science and Engineering
Stream and Block Ciphers
Stream converts one symbol of plaintext into a symbol of ciphertex
Block encrypts a group of plaintext symbols as one block.
Computer Science and Engineering
Symmetric Encryption Systems (Secret
Key)
Both sender and receiver share one key
Encryption and decryptions algorithms are closely related
N * (N-1) /2 keys are needed for N users to communicate in pairs
Key must be kept secret
Computer Science and Engineering
Asymmetric Encryption Systems (public
Key)
One key must be kept secret, the other can be freely
exposed – private key and public key
Only the corresponding private key can decrypt what has
been encrypted using the private key
Computer Science and Engineering
Merkle-Hellman Knapsacks (Chapter 10)
Algorithms is based on the knapsack problem
What is the knapsack problem?
General Knapsacks
Superincreasing knapsacks
Computer Science and Engineering
General Knapsacks (Hard)
Given a sequence of integers a1, a2, …, an and a target sum T,
the problem is to find a vector of 0s and 1s such that the sum
of the integers associated with 1s equals T
S = [17, 38, 73, 4, 11, 1] T = 53
Solution: (0,1,0,1,1,0)
Computer Science and Engineering
Superincreasing Knapsacks (Easy)
We place an additional restriction on the problem:
The integers of S must form an superincresaing
Sequence. (I.e. each integer is greater than the sum of all
preceding integers)
S = [1, 4, 11, 17, 38, 73]
Algorithm? (Students participation)
Computer Science and Engineering
Group Work
S = [1, 4, 11, 17, 38, 73]
Algorithm? Try it with T = 96 & T = 95
Computer Science and Engineering
Knapsack Problem as a Public Key
Algorithm
Public Key: Set of integers of a knapsack problem
Private Key: Corresponding superincreasing knapsack
Computer Science and Engineering
Math Background
Identity
i is identity for op if i op x = x op i = x
Inverse
b is inverse of a if a op b = b op a = i
Prime Number
Any number greater than 1 that is divisible only by itself and 1
2 divides 10
10 is divisible by 2
Composite vs. prime
Computer Science and Engineering
Math Background (cont.)
Greatest Common Divisor – gcd(a,b)
The largest integer that divides both a and b
gcd(15,10) = 5
If p is a prime number gcd(p.q) = 1 for any q < p
If x divides a and b x also divides a – (k*b)
Computer Science and Engineering
Modular Arithmetic
Reminder after division
a mod n = b a = c*n + b (11 mod 3 = 2, 5 mod 3 = 2)
Confine results to a particular range [0 – n-1]
Operations +, -, * can be applied before or after mod is taken
x and y are equivalent under mod n iff x mod n = y mod n
x and y are equivalent under mod n iff x – y = k*n
Computer Science and Engineering
Modular Arithmetic (cont)
Multiplicative inverse of a a-1
*
0
1
2
3
4
0
1
2
3
4
0
0
0
0
0
0
1
2
3
4
0
2
4
1
3
0
3
1
4
2
0
4
3
2
1
Product – mod 5
a = 2, a-1 = 3
Computer Science and Engineering
Fermat’s Theorem
For any prime p and any element a < p
ap mod p = a
Or
ap-1 mod p = 1
The inverse of a is x such that
a*x mod p = 1 = ap-1 mod p
x = ap-2 mod p
Computer Science and Engineering
Example
Compute the inverse of 3 mod 5
x = 35-2 mod 5
x = 27 mod 5 = 2
Computer Science and Engineering
Merkle- Hellman Knapsack (again)
Idea is to encode a binary message as a solution to a knapsack
problem, reducing the ciphertext to the target sum obtained by
adding terms corresponding to 1s in the plain text.
Public Key: Set of integers of a knapsack problem
Private Key: Corresponding superincreasing knapsack
Technique for converting a superincreasing knapsack into regular
one!
Computer Science and Engineering
Merkle- Hellman Knapsack (cont)
Normal arithmetic + or * preserve superincreasing sets
Modular arithmetic may destroy superincreasing sets
Modular arithmetic sensitive to common factors
Consider w * x mod n
If w and n share common factors not all values [0-n-1]
Otherwise (relatively prime) all values
(If w and n are relatively prime, w has multiplicative inverse
mod n)
Computer Science and Engineering
Example
x
3 * x mod 5
3 * x mod 6
1
3
3
2
1
0
3
4
3
4
2
0
5
0
3
Computer Science and Engineering
Breaking the superincreasing nature
of integer
Multiple by w and take mod n
n and w are relatively prime.
1)
2)
3)
Select S
Select w and n, n > summation of si
Obtain H (hi = w * si mod n)
Computer Science and Engineering
Example (Encryption)
S = [1, 2, 4, 9]
w = 15, n = 17
H = [15, 13, 9, 16]
P 0100 1011 1010 0101
C 13
40
24
29
Computer Science and Engineering