computer science and engineering computer system security cse 5339/7339 lecture 4 august 31, 2004
TRANSCRIPT
Computer Science and Engineering
Computer System SecurityComputer System Security
CSE 5339/7339CSE 5339/7339
Lecture 4Lecture 4
August 31, 2004August 31, 2004
Computer Science and Engineering
ContentsContents
EncryptionEncryption
Substitution and Transposition CiphersSubstitution and Transposition Ciphers
Symmetric and Asymmetric EnciptionSymmetric and Asymmetric Enciption
Merkle-Hellman KnapsacksMerkle-Hellman Knapsacks
Murtaza’s PresentationMurtaza’s Presentation
Computer Science and Engineering
Exercise (Group work)
Decrypt the following encrypted quotation:Decrypt the following encrypted quotation:
fqjcb rwjwj vnjax bnkhj whxcq nawjv
nfxdu mbvnu ujbbf nnc
Computer Science and Engineering
Non-Repeating Series of Numbers
Encryption Decryptionplaintext Original
plaintext
ciphertext
Non-repeating series of numbers
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 A M C I P H E R 21 4 17 13 0 12 2 8 15 7 4 17Random numbers 76 48 16 82 44 3 58 11 60 5 48 88Sum 97 52 33 95 44 15 60 19 75 12 52 105Sum mod 26 19 0 7 17 18 15 8 19 23 12 0 1Ciphertext t a h r 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 BackgroundIdentity
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 nx 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 0 0 0 0 01 0 1 2 3 42 0 2 4 1 33 0 3 1 4 24 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
xx 3 * x mod 53 * x mod 5 3 * x mod 63 * 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 nn and w are relatively prime.
1) Select S
2) Select w and n, n > summation of si
3) Obtain H (hi = w * si mod n)
Computer Science and Engineering
Example (Encryption)
S = [1, 2, 4, 9]w = 15, n = 17H = [15, 13, 9, 16]
P 0100 1011 1010 0101 C 13 40 24 29