Пример #1
0
def f(r, k):
    e = map_(r, table=expansion_table)
    mid = xor_s(e, k)

    sbox_res = []
    for i in range(0, 48, 6):
        cur_sbox = sbox[i / 6]
        coord = (b2i_d[mid[i] + mid[i + 5]], b2i_d[mid[i + 1] + mid[i + 2] + mid[i + 3] + mid[i + 4]])
        sbox_res.append(i2b_d[cur_sbox[coord[0]][coord[1]]])
    sbox_res = "".join(sbox_res)

    return map_(sbox_res, table=sbox_perm_table)
Пример #2
0
def perm2_s(k):
    """
    >>> perm2_s('00000000000000011111111111101100110011110001000000011110')
    '010100000010110010101100010101110010101011000010'
    """
    return ''.join(map_(k, table=perm2_table))
Пример #3
0
def init_perm_b(plaintext):
    plaintext = "".join(plaintext)
    plaintext = map_(plaintext, table=init_perm_table)

    return plaintext[:32], plaintext[32:]
Пример #4
0
def inverse_init_perm_b(c):
    return map_(c, table=inv_init_perm_table)