示例#1
0
    secret = str(randint(1000000000000000000000000, 9999999999999999999999999))
    key = str(randint(1000, 9999))

    enc_suite = OpenSSL('cbc')
    msg = enc_suite.encrypt('0' * (n - s) + secret, key * 4, key * 4)

    msgs.append(msg)
    keys.append(key)
    secrets.append(secret)

# ALICE sends "msgs" Block to BOB

# BOB (Brute force Decryption)
decrypted_msg = ''
rand_msg_solve = randint(0, N - 1)

print("Start decrypting at {}".format(time.time() - start))
keys = [str(x) for x in range(1000, 9999)]
while not decrypted_msg[:(n - s)] == '0' * (n - s):
    if len(keys) == 0:
        print("Could not find decryption")
        exit(-1)
    key = keys.pop(randint(0, len(keys) - 1))
    dec_suite = OpenSSL('cbc')
    decrypted_msg = dec_suite.decrypt(msgs[rand_msg_solve], key * 4, key * 4)

print('Bob decrypted secret:\t\t' + decrypted_msg[(n - s):])
print('Alice secret (' + str(rand_msg_solve) + '):\t\t' +
      secrets[rand_msg_solve])
print(time.time() - start)
示例#2
0
文件: tests.py 项目: MS103/studia
from openssl import OpenSSL

command_line_parser = CommandLineParser()
parsed_args = command_line_parser.parse_arguments(sys.argv[1:])

key_store = jks.KeyStore.load(parsed_args['keystore_path'],
                              parsed_args['password'])
key = key_store.private_keys['alias_name'].pkey[:32]

num_of_success = 0
msg_to_enc = 'x'
types_of_enc = ['ofb', 'cbc', 'ctr']
if True:
    for enc_type in types_of_enc:
        print('Sprawdzam szyfrowanie i deszyfrowanie dla ', enc_type.upper())
        openssl = OpenSSL(enc_type)
        iv = '0' * 16
        enc_m = openssl.encrypt(msg_to_enc, key, iv)
        dec_m = openssl.decrypt(enc_m, key, iv).rstrip(b'\x00')
        try:
            dec_m = dec_m.decode()
            if_success = msg_to_enc == dec_m
        except UnicodeDecodeError as e:
            print("Wystąpił błąd!", e)
            if_success = 0
        num_of_success += if_success
        print('Sprawdzam czy {a} == {b}. Rezultat to {c}\n'.format(
            a=msg_to_enc, b=dec_m, c=if_success))
    print('Stosunek sukcesów do prób to {a}/{b}'.format(a=num_of_success,
                                                        b=len(types_of_enc)))