1 |
from poss import * |
from poss import * |
2 |
|
from math import * |
3 |
|
|
4 |
def securitybits(t, k, r=1): |
def securitybits(t, k, r=1): |
5 |
return k*(log2(t)-log2(k) - log2(r)) |
return k*(log2(t)-log2(k) - log2(r)) |
7 |
def signbits(t, k): |
def signbits(t, k): |
8 |
return log2(choose(t, k)) |
return log2(choose(t, k)) |
9 |
|
|
10 |
|
def msignaturebits(t, k): |
11 |
|
# Merkled signature bits |
12 |
|
lt = ceil(log2(t)) |
13 |
|
return k * lt |
14 |
|
|
15 |
# for t in (128, 256, 512, 1024, 2048): |
# for t in (128, 256, 512, 1024, 2048): |
16 |
print "Reyzin tradeoff: probabilistic, with security req" |
if 0: |
17 |
for t in range(300, 330): |
print "Reyzin tradeoff: probabilistic, with security req" |
18 |
r = 1 |
for t in range(300, 330): |
19 |
for k in range(1, t/2): |
r = 1 |
20 |
if signbits(t, k) >= 160 and securitybits(t, k, r) >= 160: |
for k in range(1, t/2): |
21 |
print t, k, signbits(t, k), securitybits(t, k, r) |
if signbits(t, k) >= 160 and securitybits(t, k, r) >= 160: |
22 |
r += 1 |
print t, k, signbits(t, k), securitybits(t, k, r) |
23 |
if r > 4: |
r += 1 |
24 |
break |
if r > 4: |
25 |
|
break |
26 |
|
|
27 |
print "Reyzin tradeoff: probabilistic, with security req" |
print "Reyzin tradeoff: with security req" |
28 |
for t in range(300, 330): |
for t in [2**i for i in range(1,15)]: |
29 |
for k in range(1, t/2): |
for k in range(1, t/2): |
30 |
if signbits(t, k) >= 160 and securitybits(t, k) >= 160: |
if signbits(t, k) >= 160 and securitybits(t, k) >= 160: |
31 |
print t, k, signbits(t, k), securitybits(t, k) |
print t, k, msignaturebits(t, k), signbits(t, k), securitybits(t, k) |
32 |
break |
break |
33 |
|
|
34 |
print "Reyzin tradeoff: hash only" |
print "Reyzin tradeoff: hash only" |
35 |
|
|
36 |
for t in range(100, 200): |
for t in [2**i for i in range(1,15)]: |
37 |
for k in range(1, t/2): |
for k in range(1, t/2): |
38 |
if signbits(t, k) >= 160: |
if signbits(t, k) >= 160: |
39 |
print t, k, signbits(t, k) |
print t, k, msignaturebits(t, k), signbits(t, k) |
40 |
break |
break |