Example #1
0
def rl_conversion(string):
    result = string
    for i in range(16):
        result = r_main.rr_conversion(result)
        state_info.block = "r"
        state_info.value = result
        print_class.sleepy()
    return result
Example #2
0
def c_conversion():
    result = []
    # D → V128
    mas_v128 = [d_to_v128(i + 1) for i in range(32)]
    # Перевод строки из 128 2-ых обозначений в 32 16-ый
    mas_s32 = [v128_to_s32(i) for i in mas_v128]
    for i in mas_s32:
        state_info.raund = "c#" + str(v128_to_d(s32_to_v128(i)))
        c = l_main.l_conversion(i)
        state_info.block = "result"
        state_info.value = c + " "
        print_class.sleepy()
        result.append(c)
    return result
Example #3
0
def f_conversion(k, a1, a0):
    x = x_main.x_conversion(c_action.s32_to_v128(k), c_action.s32_to_v128(a1))
    state_info.block = "x"
    state_info.value = c_action.v128_to_s32(x)
    print_class.sleepy()
    s = s_main.s_conversion(c_action.v128_to_s32(x))
    state_info.block = "s"
    state_info.value = s
    print_class.sleepy()
    l = l_main.l_conversion(s)
    state_info.block = "l"
    state_info.value = l + " "
    print_class.sleepy()
    return [c_action.v128_to_s32(x_main.x_conversion(c_action.s32_to_v128(l), c_action.s32_to_v128(a0))), a1]
Example #4
0
def k_conversion(keys):
    # Выроботка констант
    mas_c = c_action.c_conversion()
    # Состовляющие мастер ключа
    k1 = keys[:32]
    state_info.raund = "key#12"
    state_info.block = "result k1"
    state_info.value = k1
    print_class.sleepy()
    k2 = keys[32:]
    state_info.block = "result k2"
    state_info.value = k2
    print_class.sleepy()
    # Выроботка подкючей 3 и 4
    state_info.raund = "key#34"
    k34 = k_functions.get_ki(mas_c[:8], k1, k2)
    k3 = k34[0]
    state_info.block = "result k3"
    state_info.value = k3
    print_class.sleepy()
    k4 = k34[1]
    state_info.block = "result k4"
    state_info.value = k4
    print_class.sleepy()
    # Выроботка подкючей 5 и 6
    state_info.raund = "key#56"
    k56 = k_functions.get_ki(mas_c[8:16], k3, k4)
    k5 = k56[0]
    state_info.block = "result k5"
    state_info.value = k5
    print_class.sleepy()
    k6 = k56[1]
    state_info.block = "result k6"
    state_info.value = k6
    print_class.sleepy()
    # Выроботка подкючей 7 и 8
    state_info.raund = "key#78"
    k78 = k_functions.get_ki(mas_c[16:24], k5, k6)
    k7 = k78[0]
    state_info.block = "result k7"
    state_info.value = k7
    print_class.sleepy()
    k8 = k78[1]
    state_info.block = "result k8"
    state_info.value = k8
    print_class.sleepy()
    # Выроботка подкючей 9 и 10
    state_info.raund = "key#910"
    k910 = k_functions.get_ki(mas_c[24:], k7, k8)
    k9 = k910[0]
    state_info.block = "result 9"
    state_info.value = k9
    print_class.sleepy()
    k10 = k910[1]
    state_info.block = "result 10"
    state_info.value = k10
    print_class.sleepy()
    return [k1, k2, k3, k4, k5, k6, k7, k8, k9, k10]
Example #5
0
def decryption(text, key):
    # Получаю раyндовые ключи
    keys = k_main.k_conversion(key)
    keys = keys[::-1]
    result = text
    state_info.raund = "start"
    state_info.block = "input"
    state_info.value = result
    print_class.sleepy()
    # Произвожу десять раундов
    for i in range(len(keys)-1):
        state_info.raund = i + 1
        x = x_main.x_conversion(c_action.s32_to_v128(keys[i]), c_action.s32_to_v128(result))
        state_info.block = "x"
        state_info.value = c_action.v128_to_s32(x)
        print_class.sleepy()
        l = l_main.rl_conversion(c_action.v128_to_s32(x))
        state_info.block = "l"
        state_info.value = l + " "
        print_class.sleepy()
        result = s_main.rs_conversion(l)
        state_info.block = "s"
        state_info.value = result
        print_class.sleepy()
    state_info.raund = state_info.raund + 1
    state_info.block = "x"
    main_result = c_action.v128_to_s32(x_main.x_conversion(c_action.s32_to_v128(result),
                                                    c_action.s32_to_v128(keys[len(keys)-1])))
    state_info.value = main_result
    print_class.sleepy()
    state_info.raund = "end"
    state_info.block = "output"
    state_info.value = main_result + " "
    print_class.sleepy()
    return main_result