Возведение в степень и вычисление дробей по модулю (в конечных полях Галуа) (61, 152)

| рубрика «Программы» | автор basvic
Метки: ,

При изучении современных шифров требуется возводить степень и искать обратные числа в конечных полях. Эти вычисления вручную довольно трудоемки и если возведение в степень по модулю ещё может сделать калькулятор Винды, то деление надо программировать отдельно. Эта программа введенная в РПЗУ МК-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 возведение в квадрат