Возведение в степень и вычисление дробей по модулю (в конечных полях Галуа) (61, 152)
При изучении современных шифров требуется возводить степень и искать обратные числа в конечных полях. Эти вычисления вручную довольно трудоемки и если возведение в степень по модулю ещё может сделать калькулятор Винды, то деление надо программировать отдельно. Эта программа введенная в РПЗУ МК-52 или МК-152 может быть хорошим подспорьем студенту.
Перед первым запуском нажать БП 57
Деление С = (А / В) mod D
- Вводить: В/О A ПП B ПП D С/П
- Тест:
(3 / 18) mod 257 = 43
- Результат - на экране.
Возведение в степень С = (А ^ В) mod D
- Вводить: A ПП B ПП D С/П
- Ограничение: A, B, D < 10000
- Тест:
(49 ^ 77) mod 101 = 23
- Результат - на экране.
0 1 2 3 4 5 6 7 8 9
00 ПА П5 ПД Сх П4 ПС П9 ИПД П6 ИП5
10 ИП6 / К{x} Fx!=0 41 FBx K[x] П8 ИП6 *
20 ИП5 XY - П7 ИПС ИП8 ИП9 ПС * +
30 Fx=0 33 1 П9 КИП4 ИП6 П5 ИП7 П6 БП
40 09 ИП4 2 / K{x} Fx=0 51 ИПД ИП9 -
50 П9 ИП9 ИПА * ПП 88 С/П ПА П5 ПД
60 1 ПС ИП5 K[x] Fx!=0 85 2 / П5 K{x}
70 Fx!=0 78 ИПС ИПА * ПП 88 ПС ИПА Fx^2
80 ПП 88 ПА БП 62 ИПС БП 56 ПЕ ИПД
90 / K[x] ИПД * ИПЕ XY - В/О
Комментарии:
- /
деление
- *
умножение
- !=
не равно
- x^2
возведение в квадрат
blog comments powered by Disqus