def random_bits(X):
    Y = list(X)
    for i in range(len(X)):
        tmp_bin = Binary()
        tmp_bin.gen_random(word_size=len(X[i]))
        Y[i] = tmp_bin
    return tuple(Y)
Exemple #2
0
def test_gen_random():
    Bin = Binary()
    assert Bin.bits == '0'
    Bin.gen_random(32)
    assert type(Bin.bits) is str
    assert len(Bin.bits) == 32

    zeros = 0
    ones = 0
    for bit in Bin.bits:
        if bit == '0':
            zeros += 1
        else:
            ones += 1
    assert 4 < zeros < 28
    assert 4 < ones < 28
def random_flips(function=QR, word_size:int=12):
    X = Binary()#'0000000000000000')
    X.gen_random(word_size)
    X = X.split_string()
    Y = function(X)

    HD_lists = []
    for i in range(100):
        Xs = generate_random_flipped_space(X, runs=100)
        #Ys = QR_on_list(Xs)
        Ys = []
        for X_i in Xs:
            Ys.append(function(X_i))
        

        Y_base = [Y] * len(Ys)
        HDs = HDs_of_lists(Y_base, Ys)
        HD_lists.append(HDs)
    
    return HD_lists
def incremental_space(function=QR, word_size:int = 12):
    X = Binary()#'0000000000000000')
    X.gen_random(word_size)
    X = X.split_string()
    Y = function(X)

    Xs = generate_incr_space(word_size)
    #Ys = QR_on_list(Xs)
    Ys = []
    for X in Xs:
        Ys.append(function(X))
    

    Y_base = [Y] * len(Ys)
    HDs = HDs_of_lists(Y_base, Ys)

    multi_line_chart(
        lines=[HDs],
        title='HDs of incremental outputs',
        x_label='bits',
        y_label='Hamming distance and weight'
    )
Exemple #5
0
from tools.binary import Binary
from salsa.QR_function import QR


a = Binary()
b = Binary()
c = Binary()
d = Binary()

a.gen_random(32)
b.gen_random(32)
c.gen_random(32)
d.gen_random(32)

X = (a, b, c, d)

Ys = []

for i in range(100):
    # Generate a new part. c for interesting findings.
    c.gen_random(32)
    X = (a, b, c, d)
    Y = QR(X)
    Ys.append(Y)


partials = []
for i in range(len(Ys)):
    a, b, c, d = Ys[i]
    # Add relevant partial. b for interesting findings.
    partials.append(b)