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
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
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]
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]
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