Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора в натуре.doc
Скачиваний:
9
Добавлен:
30.07.2019
Размер:
287.23 Кб
Скачать

5.Зачастую надо найти другие два целых числа, s и t, такие, которые

s x a + t x b = НОД(a,b)

Расширенный алгоритм Евклида может вычислить НОД (a, b) и в то же самое время вычислить значения s и t.

Расширенный алгоритм Евклида использует те же самые шаги, что и простой алгоритм Евклида. Однако в каждом шаге мы применяем три группы вычислений вместо одной. Алгоритм использует три набора переменных: r, s и t.

На каждом шаге переменные r1, r2 и r используются так же, как в алгоритме Евклида. Переменным r1 и r2 присваиваются начальные значения a и b соответственно. Переменным s1 и s2 присваиваются начальные значения 1 и 0 соответственно. Переменным t1 и t2 присваиваются начальные значения 0 и 1, соответственно. Вычисления r, s и t одинаковы, но с одним отличием. Хотя r — остаток от деления r1 на r2, такого соответствия в других двух группах вычислений нет. Есть только одно частное, q, которое вычисляется как r1/r2 и используется для других двух вычислений.

6. Линейные диофантовые уравнения

Важным приложением расширенного алгоритма Евклида являеться — "нахождение решения линейных диофантовых уравнений двух переменных", а именно, уравнения ax + by = c. Мы должны найти значения целых чисел для x и y, которые удовлетворяют этому уравнению. Этот тип уравнения либо не имеет решений, либо имеет бесконечное число решений. Пусть d = НОД (a, b). Если d†c, то уравнение не имеет решения. Если d|c, то мы имеем бесконечное число решений. Одно из них называется частным, остальные — общими.

Линейное диофантово уравнение — это уравнение двух переменных: ax + by = c .

Частное решение

Если d|c, то можно найти частное решение вышеупомянутого уравнения, используя следующие шаги.

  1. Преобразуем уравнение к a1x + b1y = c1, разделив обе части уравнения на d. Это возможно, потому, что d делит a, b, и c в соответствии с предположением.

  2. Найти s и t в равенстве a1s + b1t = 1, используя расширенный алгоритм Евклида.

  3. Частное решение может быть найдено:

Частное решение: X0 = (c/d)s и y0 = (c/d)t

Общие решения

После нахождения частного решения общие решения могут быть найдены:

Общие решения: x = x0 + k(b/d) и y = y0 – k(a/d), где k — целое число

22. Чтобы обеспечивать требуемые свойства современного блочного шифра, такие как рассеяние и перемешивание информации (обсуждается кратко), этот шифр формируется как комбинация модулей транспозиции (называемых P -блоками), модулей подстановки (называемых S -блоками) и некоторыми другими модулями (обсуждается кратко).

P -блок (блок перестановки) подобен традиционному шифру транспозиции символов. Он перемещает биты. В современных блочных шифрах мы можем найти три типа P -блоков: прямые P -блоки, P -блоки расширения и P -блоки сжатия.

Прямые P-блоки.Прямой P -блок с n входами и n выходами – это перестановка с n! возможными отображениями. P-блоки сжатия. P -блок сжатия – это P -блок с n входами и m выходами, где m <n. Некоторые из информационных входов блокированы и не связаны с выходом). P -блоки сжатия, используемые в современных блочных шифрах, обычно являются безключевыми с таблицей перестановки, которая указывает правила перестановки бит. Нам надо учитывать, что таблица перестановок для P -блока сжатия имеет m табличных входов, но в содержании каждого табличного входа – от 1 до n, и некоторые из них могут отсутствовать (те информационные входы, которые блокированы. P-блок расширения — P -блок с n входами и m выходами, где m> n. Некоторые из входов связаны больше чем с одним выходом. P -блоки расширения, используемые в современных блочных шифрах, обычно без ключа. Правила перестановки бит указываются в таблице. Таблица перестановки для P -блока расширения имеет m табличных входов, но m – n входов (те входы, которые связаны больше чем с одним информационным выходом). S-блок (блок подстановки) можно представить себе как миниатюрный шифр подстановки. Этот блок может иметь различное число входов и выходов. Другими словами, вход к S -блоку может быть n -битовым словом, а выход может быть m разрядным словом, где m и n — не обязательно одинаковые числа. Хотя S -блок может быть ключевым или без ключа, современные блочные шифры обычно используют S -блоки без ключей, где отображение от информационных входов к информационным выходам заранее определено.

S -блок — m x n модуль подстановки, где m и n не обязательно равны.

23. Асимметричное шифрование получило свое название из того факта, что в нем участвует два ключа. Один содержится в тайне (закрытый, или секретный, ключ пользователя), другой общедоступен (открытый, или публичный, ключ пользователя). Открытый ключ обычно помещается в общедоступные каталоги, и совершенно не имеет значения, кто будет иметь его копию.

Существует строгое математическое соответствие между закрытым и открытым ключами, которое заключается в том, что все, что зашифровано при помощи одного из двух ключей, может быть расшифровано только другим ключом пары. Длина ключей и вся математика, стоящая за ними, дают достаточную гарантию того, что не существует никакого другого ключа, не являющегося частью пары, который мог бы дешифровать сообщение.

24. Цифровые подписи

Полезная вещь, которую дают нам алгоритмы асимметричного ключа.

Отправитель использует свой закрытый ключ для шифрования сообщения и затем отсылает его принимателю. Посланное сообщение хотя и является все еще зашифрованным, но больше уже не имеет частного характера, поскольку любой, у кого есть открытый ключ, может расшифровать его (все равно, у кого он есть).

Это сообщение от отправителя – авторизация. Поскольку только отправитель имеет доступ к закрытому ключу, при помощи которого было создано это сообщение, оно может прийти от него и только от него. В этом состоит понятие цифровой подписи.

Цифровые подписи участвуют в обеспечении целостности, аутентификации и идентификации, в определении авторства (невозможность отказа), в то время как алгоритмы и симметричного и асимметричного ключей.

9. Матрица — прямоугольный массив, содержащий l x m элементов, в которых l — число строк, m — число столбцов. Матрица обычно обозначается заглавной буквой, такой, как A. Элемент aij расположен в i -той строке и j -том столбце. Хотя элементы матрицы могут быть любым множеством чисел, мы обсуждаем только матрицы с элементами в Z. Пример матрицы с m столбцами и l строками

Если матрица имеет только одну строку ( l = 1 ), она называется матрицей-строкой ; если она имеет только один столбец ( m = 1 ), то называется матрицей-столбцом. Матрица называется квадратной, если число строк равно числу столбцов ( l = m ) и содержит элементы a11, a22, ……, amm. Матрица обозначается 0, если все строки и все столбцы содержат нули. Единичная матрица обозначается I, если она квадратная и содержит все единицы на главной диагонали и все нули на других местах. Рисунок 3.2 показывает некоторые примеры матриц с элементами из Z.

Операции и уравнения

В линейной алгебре для матриц определены одно уравнение (равенство) и четыре операции (сложение, вычитание, умножение и скалярное умножение).

Равенство

Две матрицы равны, если они имеют одинаковое число строк и столбцов и соответствующие элементы равны. Другими словами, A = B, если мы имеем aij = bij для всех i и j.

Сложение и вычитание

Операция сложения двух матриц может применяться, если матрицы имеют одинаковое число столбцов и строк. Сложение записывают как C =A + B. В этом случае полученная в результате матрица C имеет тот же самый номер строк и столбцов, как A или B. Каждый элемент C — сумма двух соответствующих элементов A и B: aij + bij.

Операция вычитания производится аналогично сложению, за исключением того, что каждый элемент B вычитается из соответствующего элемента A: dij= aij – bij.

Ниже показан пример сложения и вычитания.

Умножение

Две матрицы различного размера могут быть перемножены, если число столбцов первой матрицы совпадает с числом строк второй матрицы. Если A — матрица размера l x m, а матрица B размера m x p, то произведением будет матрица C размером l x p. Если элемент матрицы A обозначить aij, а каждый элемент матрицы B обозначить bjk, то элемент матрицы C — cik — вычисляется следующим образом:

Скалярное умножение

Мы можем также умножить матрицу на число (называемое скаляр ). Если A — матрица l×m и x — скаляр, то C = xA — матрица l×m , в которой .

Матрицы вычетов

Криптография использует матрицы вычетов: матрицы могут содержать все элементы из Zn. Все операции на матрицах вычетов выполняются так же, как и на матрицах целых чисел, за исключением того, что операции производятся в модульной арифметике. Есть одно интересное свойство: матрица вычетов имеет мультипликативную инверсию, если детерминант матрицы имеет мультипликативную инверсию в Zn. Другими словами, матрица вычета имеет мультипликативную инверсию, если НОД (det (A), n) = 1.

Обратной по отношению к матрице A называется такая матрица, для которой выполняется равенство AA-1 = A-1A = E.

Матрица, которая имеет обратную называется обратимой или не особенной.