Данный проект реализован руками на основе обрывочных кусков кода других репозиториев, тех.доков и неистовой веры в спагетти-код.
Если вдруг при изучении вам покажется, что кусок кода откуда-то позаимствован - это действительно могло произойти (Да, код индусов хорош. Нет, он работает не всегда. Ага, особенно в криптографии)
Итак, перейдем к requirements данного творения ада:
- Все это чудо может работать ТОЛЬКО через
python 3.6.x
(почему - потому что создавать процессы без оглядки на GIL и логику можно только до версии 3.7) - Хочу, чтобы все страдали одинаково - бессоница required
- Пакет
dill
- ибо дампить ключи, состоящие из несколькихдесятковчастей в файл я устал
Я, в целом, по требованию, могу даже упаковать все сие чудо в докер (не надо, пожалуйста)
- Файл
GF256.py
отвечает за конечное полеGF(256)
и всю связанную с ним магию. Честно спёрто и творчески переработано. Affine.py
- видит ВКР, я не хотел переписыватьpytorch
для работы не с картинками. Меня заставили.main.py
- концентрат ада, степень опасности максимальная. Генерирует 2 ключа для подписи на основаниичего угодно кроме необходимого(исправлено в версии 1.2) введенных значений. UOV тут слегка переработан для работы в Layer-виде, то есть чистый постквантовый Rainbow получился.
- Обеспечить наличие файла
test.txt
, к содержимому которого вы хотите применить алгоритм. python3 main.py
- Наслаждаться файлами с открытым и закрытым ключом, а также выведенной в консоль подписью.
-v = 1
- для обеспечения загрязнения консоли всей побочной информацией (ее много, я дибажыл честно)