/[gzz]/manuscripts/Sigs/reyzin.py
ViewVC logotype

Diff of /manuscripts/Sigs/reyzin.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by tjl, Mon May 19 04:42:15 2003 UTC revision 1.2 by tjl, Mon May 19 11:47:04 2003 UTC
# Line 1  Line 1 
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))
# Line 6  def securitybits(t, k, r=1): Line 7  def securitybits(t, k, r=1):
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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26