Есть ли возможность ускорить код данный код

Нужно ускорить код который дешифрует шифр gronsfeld с помощью подбора ключей и сравнивания дешифровок с словарем. На данный момент перебирает 10 миллионов ключей за 34 секунды, нужно чтобы перебирал 9-значные числа как можно быстрее. + Если кто разбрается можно ли здесь использовать @njit(fastmath=true) я пробовал писать у меня ошибка.

from numba import njit, prange
import time
string.digits + string.ascii_letters + string.punctuation + string.digits
alph = string.ascii_uppercase
# print(encrypt('ANCIENT', '420'))  #шифрование
# print(decrypt('NHUDMOVUHB', '13'))  #расшифровывание
def decrypt(message, key):
    return algo(message, key, -1)

def algo(text, k, op):
    k *= len(text) // len(k) + 1
    return ''.join(alph[alph.index(j) + int(k[i]) * op] for i, j in enumerate(text))

def encrypt(message, key):
    return algo(message, key, 1)


word_toDecode = 'Ogbcntkei'.upper()
f = open('words.txt')
dictionary = f.readlines()


dictionary = set(word.strip().lower() for word in dictionary)
a = []
def brute():
    for x in prange(999999999):
        s = decrypt(word_toDecode, str(x))
        if s.lower() in dictionary:
            a.append(x)
            print(s + ' Key - ' + str(x))



def start():
    cur_time = time.time()
    brute()
    end_time = time.time()
    print(end_time - cur_time)
    f.close()
start()

Ответы (0 шт):