예제 #1
0
def inv_cipher(data, key, N_k):

    r = 0
    rounds = get_rounds(N_k)

    data = create_state_block(data)
    logger.input(r, data)

    key_sch = key[-4:]
    logger.k_sch(r, key_sch)

    addRoundKey(data, key_sch)

    for r in range(rounds-2, 0, -1):
        logger.start(rounds-r-1, data)

        inv_shiftRows(data)
        logger.shift_row(rounds-r-1, data)

        inv_subBytes(data)
        logger.sub_byte(rounds-r-1, data)

        key_sch = key[4*(r):4*(r+1)]
        logger.k_sch(rounds-r-1, key_sch)

        addRoundKey(data, key_sch)
        logger.ik_add(rounds-r-1, data)

        inv_mixColumns(data)
    logger.start(rounds-r, data)

    inv_subBytes(data)
    logger.sub_byte(rounds-r, data)

    inv_shiftRows(data)
    logger.shift_row(rounds-r, data)

    key_sch = key[0:4]
    logger.k_sch(rounds-r, key_sch)

    addRoundKey(data, key_sch)
    logger.output(rounds-r, data)

    return convert_block_to_stream(data)
예제 #2
0
파일: cipher.py 프로젝트: anujgtm1/AES
def cipher(data, key, N_k):

    r = 0
    rounds = get_rounds(N_k)

    data = create_state_block(data)
    logger.input(r, data)

    key_sch = key[0:4]
    logger.k_sch(r, key_sch)

    addRoundKey(data, key_sch)
    for r in range(1, rounds - 1):
        logger.start(r, data)

        subBytes(data)
        logger.sub_byte(r, data)

        shiftRows(data)
        logger.shift_row(r, data)

        mixColumns(data)
        logger.mix_column(r, data)

        key_sch = key[4 * r:4 * (r + 1)]
        logger.k_sch(r, key_sch)

        addRoundKey(data, key_sch)
    r += 1
    logger.start(r, data)

    subBytes(data)
    logger.sub_byte(r, data)

    shiftRows(data)
    logger.shift_row(r, data)

    key_sch = key[-4:]
    logger.k_sch(r, key_sch)

    addRoundKey(data, key_sch)
    logger.output(r, data)

    return convert_block_to_stream(data)
예제 #3
0
def writeToFile(command):
    file = open(stateFiles.getScriptOutputFilePath(), 'w')
    file.write(command + '\n')
    file.close()
    logger.output()
예제 #4
0
def writeToFile(command):
    file = open(os.path.expanduser(OUTPUT_FILE), 'w')
    file.write(command + '\n')
    file.close()
    logger.output()
예제 #5
0
def appendToFile(command):
    file = open(stateFiles.getScriptOutputFilePath(), "a")
    file.write(command + "\n")
    file.close()
    logger.output()
예제 #6
0
def writeToFile(command):
    file = open(os.path.expanduser(OUTPUT_FILE), 'w')
    file.write(command + '\n')
    file.close()
    logger.output()