Digital Rights Management
Download
Report
Transcript Digital Rights Management
Once Upon a Time-Memory
Tradeoff
Mark Stamp
Department of Computer Science
San Jose State University
This talk…
Non-cryptanalytic
TMTOs
Crypto background
Hellman’s cryptanalytic TMTO
Distributed TMTO
Conclusions
TMTO
2
Non-crypto TMTOs
Popcnt
Shank’s
algorithm
TMTO
3
Popcnt
Let
x be a 32-bit integer
Define popcnt(x) = number of 1’s in
binary expansion of x
How to compute popcnt(x) ?
TMTO
4
Simple popcnt
popcnt(x)
t=0
for i = 0 to 31
t = t + (x >> i) & 1
next i
return t
end popcnt
TMTO
5
Efficient popcnt
Initialize: table[i] = popcnt(i) for i = 0,1,…,255
popcnt(x)
t = table[ x & 0xff ]
+ table[ (x >> 8) & 0xff ]
+ table[ (x >> 16) & 0xff ]
+ table[ (x >> 24) & 0xff ]
return t
end popcnt
TMTO
6
Discrete Log
Let
p be prime, g {1,2,…, p1} s.t. for
any n there is a k with n = gk mod p
Discrete log: given m {1,2,…, p1}
find e s.t. m = ge mod p
Notation: e = logg(m)
Could try each value in {1,2,…, p1} to
find e that works
TMTO
7
Shank’s algorithm
Shank’s is a TMTO for discrete log
Given m, we want e = logg(m)
A. Compute list Lr as follows
1.
2.
Let r = sqrt(p 1) and compute grj mod p
for j = 0,1,…,r 1
Let Lr be the list of ( j, grj mod p) sorted
on second coordinate
TMTO
8
Shank’s alg (continued)
B. Compute list Lm as follows
1.
2.
Compute mgi mod p for i = 0,1,…,r 1
Let Lm be the list of (i, mgi mod p)
sorted on second coordinate
TMTO
9
Shank’s alg. (cont. again)
C. Then e = logg(m) is found by
1.
2.
Find elements of Lr and Lm that agree in
2nd coordinates, say, ( j, x) Lr and
(i, x) Lm
Then e = logg(m) = rj + i mod (p 1) since
grj = mgi mod p
Shank’s: baby step, giant step
TMTO
10
Shank’s algorithm (example)
Suppose p = 257, g = 3. Then r = 16 and Lr is
(0,1)
(3,2)
(6,4)
(9,8)
(12,16)
(15,32) (2,64) (5,128) (13,129) (10,193)
(7,225) (4,241) (1,249) (14,253) (11,255) (8,256)
Suppose m = 132. Then Lm is
(9,23) (1,44) (3,62)
(5,64) (8,69)
(12,77) (15,79) (6,107) (0,132) (10,179)
(2,186) (4,192) (13,197) (7,207) (11,231) (14,237)
From Lr and Lm we find (2,64) and (5,64).
Then log3(132) = 2 16 + 5 = 37 and
easy to verify 337 = 132 mod 257
TMTO
11
Block cipher
Consider a block cipher
C = E(P, K)
where
P is plaintext of length n
C is ciphertext of length n
K is key of length k
TMTO
12
Block Cipher
TMTO
13
Chosen plaintext attack
We choose P and obtain C, where
C = E(P, K)
Want to find the key K
1.
2.
Exhaustive key search
Table pre-computation
TMTO lies between 1. and 2.
TMTO
14
Chain of encryptions
Assume n = k. Then a chain is
SP = K0 = Starting Point
K1 = E(P, SP)
K2 = E(P, K1)
:
:
EP = Kt = E(P, Kt1) = End Point
TMTO
15
Chain (another view)
TMTO
16
Pre-computation
Compute
m encryption chains, each of
length t +1
Save only start and end points
(SP0, EP0)
(SP1, EP1)
:
(SPm-1, EPm-1)
TMTO
17
TMTO Attack
Memory:
Given (SPi, EPi), i = 0,1,…,m1
For chosen P compute
C = E(P, K)
The key K is unknown
Time: Compute chain (max of t steps)
X0 = C, X1 = E(P, X0), X2 = E(P, X1),…
TMTO
18
Attack (continued)
Given
the chain
X0 = C, X1 = E(P, X0), X2 = E(P, X1),…
Suppose we find Xi = EPj
Then C might be in chain (SPj, EPj)
Assume C is in chain (SPj, EPj)
TMTO
19
Attack (continued again)
Given
C is in the chain (SPj, EPj)
and Xi = EPj
Re-compute chain (SPj, EPj)
Y0 = SPj, Y1 = E(P,Y0), Y2 = E(P,Y1),…
Then C = Yti = E(P, Yti1)
And Yti1 = K (always?)
TMTO
20
In a perfect world
Suppose the block cipher has 56 bit key
Suppose we find m = 228 chains, each of
length t = 228 and no chains overlap
Memory: 228 pairs (SPj, EPj)
Time: about 228 (for attack)
1.
2.
Find C in about 227 tries
Find K with about 227 more tries
TMTO
21
In a perfect world
All
chains distinct
Ciphertext C lies within a chain
SP0
EP0
C
SP1
EP1
EP2
SP2
TMTO
22
In the real world
Chains
are not so well-behaved
Chains cycle and merge
C
EP
SP
TMTO
23
To reduce merging
Compute
chain as Ki = F(E(P, Ki1)) where
F is a permutation
Choose r different functions F
For each F choose m random SP
Each chain of length t
TMTO
24
Notation
= number of random starting points
for each function F
t = length of each chain
r = number of “random” functions F
Note: mtr = total number of computed
chain elements
m
TMTO
25
Real-world issues
False
alarms, avoid cycles, reduce
merging, etc.
Pre-computation is lots of work (must
be amortized over many attacks)
Success is not assured
What if block size not equal key length?
What is the probability of success?
TMTO
26
Probability of success
Occupancy
problem: b balls distributed
with uniform probability to c cells
Let pl(b,c) be probability of l empty
cells. Feller [3] shows
TMTO
27
Success probability (continued)
Poisson
approx to pl(b,c) is
pl() = el/l! where = ceb/c
So expected number of empty cells is
TMTO
28
Success probability (still more)
Expected
number of occupied cells is
c = c(1 eb/c)
Therefore
P(cell i is occupied) = 1 eb/c
TMTO attack succeeds if and only if
the “cell” with key K is “occupied”
TMTO
29
Success prob (last word, almost)
mtr
---2k2
2k1
2k
2k+1
2k+2
P(success) = 1
-------------
k
mtr/2
e
0.22
0.39
0.63
0.86
0.98
TMTO
30
The bottom line
Choose
m = t = r = 2k/3 and probability of
success is about 0.63 (at least 0.55 by
a more careful analysis)
Pre-computation is O(mtr) work
Each TMTO attack requires O(mr)
“memory” and O(tr) “time”
TMTO
31
Distinguished points
Let
a distinguished point be of the form
(x0,x1,…,xs1,0,0,…,0)
Construct chain until distinguished point
is found
If no distinguished point is found within
max steps, don’t save chain
Then every EP is distinguished
TMTO
32
Distinguished points +/
Disadvantages
Chains are variable length
Some extra work to find chains
Triples (SP, EP, length)
Advantage
Distributed attack is very nice
Why? One client for each F then client only needs
(P, C) and F and max chain length no data!
TMTO
33
References
[1] M. Hellman, A cryptanalytic time-memory tradeoff,
IEEE Trans on Info Thy, Vol. 26, No. 4, July 1980,
pp. 401-406
[2] J.Borst, et al., On the time-memory tradeoff between
exhaustive key search and table precomputation,
http://www.esat.kuleuven.ac.be/~borst/downloadable/tm.ps.gz
[3] W. Feller, An Introduction to Probability Theory and Its
Applications, volume 1, Wiley (1968)
[4] M. Stamp, Once upon a time-memory tradeoff,
http://www.cs.sjsu.edu/faculty/stamp/articles/tmto.pdf
TMTO
34