Обобщенный алгоритм Евклида
На вход алгоритма подаются два натуральных числа a и b. На выходе алгоритма получается следующая линейная композиция , где при : Ниже приведен обобщенный алгоритм Евклида в редакции Д.Кнута [7], достаточной для его программной реализации: Алгоритм X. (Обобщенный алгоритм Евклида). X1. [Начальная установка.] Присвоить (u1, u2, u3) (1, 0, a), (v1, v2, v3) (0, 1, b). X2. [v3 = 0?] Если v3 = 0, то выполнение алгоритма заканчивается. (sm, tm, rm) (u1, u2, u3) X3. [Разделить и вычесть.] Присвоить , затем присвоить (t1, t2, t3) (u1, u2, u3) – (v1, v2, v3) · q, (u1, u2, u3) (v1, v2, v3), (v1, v2, v3) (t1, t2, t3). Возвратиться к шагу X2. При решении задач, содержащихся в данном пособии более удобно пользоваться шаблоном электронной таблицы, построение которого рассмотрено ниже. Диапазон ячеек A1:C1 соответствует начальному значению вектора u. Диапазон ячеек D1:F1 соответствует начальному значению вектора v. В ячейки A2, D2 и G1 вводим формулы согласно рис.3. Рис. 3. Исходные данные Распространяем введенные формулы согласно рис.4. Рис. 4. Распространение формул
При работе с шаблоном значение a вводится в ячейку C1, а значение b в ячейку F1 (см рис.5 ). Рис. 5. Общий вид шаблона Далее выделяем диапазон A2:G2 и распространяем формулы вниз по строкам до появления в столбце G ошибки деления на 0. Значения sm, tm и rm берутся из последней строки столбцов A, B, C соответственно. В случае отрицательной величины sm или tm – к ним прибавляются величины b и a соответственно. Рис. 6. Работа алгоритма В данном примере 7-1 mod 113 = 113 – 16 = 97. Обязательно следить за тем, чтобы значение rm из последней строки столбца C было равно единице. Задача 1.2. Осуществить зашифрование и расшифрование символа m1 на алфавите N при помощи аффинного шифра на ключевой паре k1, k2. Проверить правильность расшифрования.
Пример решения.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|