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)
#!/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
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,
def __init__(self): u''' コンストラクタ ''' self.db = bbs.bbs()
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]))