Information
- Rating
- Does not participate
- Registered
- Activity
Specialization
Software Developer, Embedded Software Engineer
Senior
From 150,000 ₽
Python
C++
Programming microcontrollers
C++ STL
Applied math
Algorithms and data structures
System Programming
Прокомментирую немного более развёрнуто.
При шифровании и дешифровании по методу RSA используются блоки по 512 и 1024 бита уже как норма (наверно, есть уже и больше).
Вся современная криптография построена на возведении в гигантскую (тоже порядка нескольких сотен) степень этих 1024х-битных чисел, т. е. перемножении в кольце 1024х разрядных двоичных чисел.
Способов перемножения больших чисел много, один из них - сдвиг со сложением.
К примеру, смотри тут https://fpga-e.ru/wp-content/uploads/kit145150-1.pdf
И вот, чтобы перемножить два 1024х-битных числа, необходимо реализовать 1024х битный сдвиговый регистр. Соответственно, все биты должны в нём сдвигаться одновременно (!), что при больших числах вызывает определённые сложности. Возможно, синтезатор про это тоже "знает" и пытается как-то оптимизировать процесс.
Необходимая вещь при замене умножения на сдвиг со сложением