Код решения Custom encryption:
from sympy import mod_inverse
a = 90
b = 26
p = 97
g = 31
cipher = [61578, 109472, 437888, 6842, 0, 20526, 129998, 526834, 478940, 287364, 0, 567886, 143682, 34210, 465256, 0, 150524, 588412, 6842, 424204, 164208, 184734, 41052, 41052, 116314, 41052, 177892, 348942, 218944, 335258, 177892, 47894, 82104, 116314]
def dynamic_xor_decrypt(cipher_text, text):
decrypted = ""
key_length = len(text)
for i, char in enumerate(cipher_text):
key_char = text[i % key_length]
decrypted_char = chr(ord(char) ^ ord(key_char))
decrypted += decrypted_char
return decrypted
def reverse_generator(g, x, p):
return pow(g, x, p)
def decrypt(cipher, key):
dec_text = ""
for char in cipher:
dec_char = chr(char // (key * 311))
dec_text += dec_char
return dec_text
def main():
u = reverse_generator(g, a, p)
v = reverse_generator(g, b, p)
key = reverse_generator(v, a, p)
text = "trudeau"
cipher_text = decrypt(cipher, key)
flag = dynamic_xor_decrypt(cipher_text, text)
print(flag[::-1])
if __name__ == "__main__":
main()
Видео выполнения: