def primals():
    for val in values:
        xorshift.init_seed(val)
        bbs.init_seed(val, p, q)
        print '%d bits: ' % val

        start = datetime.datetime.now()
        x = xorshift.xorshift(val)
        end = datetime.datetime.now()
        delta = end - start
        print '\tXorshift: %dms' % (delta.total_seconds() * 1000)

        start = datetime.datetime.now()
        x = bbs.bbs(val)
        end = datetime.datetime.now()
        delta = end - start
        print '\tBBS: %dms' % (delta.total_seconds() * 1000)
Exemplo n.º 2
0
#!/usr/bin/env python3

from bbs import bbs
from itertools import groupby
from collections import Counter

TEST_SAMPLE = 20000

bbs_result = bbs(TEST_SAMPLE)
if TEST_SAMPLE < 100:
    print(f"Binary representation: {bin(bbs_result)}")
print(f"Random key: {bbs_result}\n")

sequence = [(bbs_result >> i) & 1 for i in range(TEST_SAMPLE)]

# TEST POJEDYNCZYCH BITÓW

count = sum(sequence)
print(f"Liczba jedynek: {count}")
if 9725 < count < 10275:
    print("Test pojedynczych bitów: ok\n")
else:
    print("Test pojedynczych bitów: niepowodzenie\n")

# TEST SERII

for i in [0, 1]:
    series_lengths = Counter(
        [len(list(g)) for k, g in groupby(sequence) if k == i])
    print(sorted(series_lengths.items(), key=lambda el: el[0]))
    failed = False
Exemplo n.º 3
0
            for (bitVerifier, secret,
                 commitment) in zip(self.verifiers, secrets, bitCommitments))

    def decode(self, secrets, bitCommitments):
        decodedBits = self.decodeBits(secrets, bitCommitments)
        binary = ''.join(str(bit) for bit in decodedBits)
        n = 8
        binarySets = [binary[i:i + n] for i in range(0, len(binary), n)]
        chars = [chr(int(charBin, 2)) for charBin in binarySets]
        return ''.join(chars)


if __name__ == "__main__":

    securityParameter = 600
    oneWayPerm = bbs.bbs(securityParameter)
    hardcorePred = bbs.parity
    scheme = BBSStringCommitmentScheme(100, oneWayPerm, hardcorePred)
    verifier = BBSStringCommitmentVerifier(100, oneWayPerm, hardcorePred)

    # secrets = scheme.reveal()
    # print(secrets)

    secrets = [
        45782, 34856, 9604, 8665, 28702, 37591, 30483, 33756, 9524, 14601,
        42310, 6183, 24988, 6204, 3488, 39433, 34766, 46094, 19775, 23875,
        40943, 11285, 6183, 24054, 25734, 5223, 6094, 14392, 16113, 43007,
        21454, 46200, 17083, 6469, 30745, 20459, 24413, 21196, 16462, 19760,
        10746, 42028, 41763, 12019, 42131, 32287, 39827, 4611, 26412, 2678,
        38928, 8230, 11994, 1188, 25799, 19533, 30160, 967, 47, 26877, 19551,
        12191, 31983, 41621, 22856, 13221, 32849, 29302, 2897, 6893, 5049,
Exemplo n.º 4
-1
 def __init__(self):
     u'''
     コンストラクタ
     '''
     self.db = bbs.bbs()
Exemplo n.º 5
-2
def main():

  size=pow(10,6)          # number of bits generated for each run

  rsastest=[0]*4
  bmstest=[0]*4
  bbsstest=[0]*4
  decstest=[0]*4

  for i in range(10):
    for j in range(10):
      
      temp=rsa(primes[2*i],primes[2*i+1],size)
      for k in range(4):
        rsastest[k]+=temp[k]

      temp=bm(primes[i],size)
      for k in range(4):
        bmstest[k]+=temp[k]

      temp=bbs(primes[2*i],primes[2*i+1],size)
      for k in range(4):
        bbsstest[k]+=temp[k]

      temp=dec(primes[i],size)
      for k in range(4):
        decstest[k]+=temp[k]

  
  rsastest=[a/100 for a in rsastest]
  bmstest=[a/100 for a in bmstest]
  bbsstest=[a/100 for a in bbsstest]
  decstest=[a/100 for a in decstest]

  print('---------')
  print('Testing Done')
  print('---------')
  print('Result of RSA Bit Generator:')
  print('Average generating time: {0}'.format(rsastest[0]))
  print('Frequency of 1s: {0}'.format(rsastest[1]))
  print('Frequency of switches: {0}'.format(rsastest[2]))
  print('Chi Square of Poker test: {0}'.format(rsastest[3]))
  print('---------')
  print('Result of Blum-Micali Generator:')
  print('Average generating time: {0}'.format(bmstest[0]))
  print('Frequency of 1s: {0}'.format(bmstest[1]))
  print('Frequency of switches: {0}'.format(bmstest[2]))
  print('Chi Square of Poker test: {0}'.format(bmstest[3]))
  print('---------')
  print('Result of Blum Blum Shub:')
  print('Average generating time: {0}'.format(bbsstest[0]))
  print('Frequency of 1s: {0}'.format(bbsstest[1]))
  print('Frequency of switches: {0}'.format(bbsstest[2]))
  print('Chi Square of Poker test: {0}'.format(bbsstest[3]))
  print('---------')
  print('Result of Dual Elliptic Curve Bit Generator:')
  print('Average generating time: {0}'.format(decstest[0]))
  print('Frequency of 1s: {0}'.format(decstest[1]))
  print('Frequency of switches: {0}'.format(decstest[2]))
  print('Chi Square of Poker test: {0}'.format(decstest[3]))