Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты по информатике.docx
Скачиваний:
16
Добавлен:
16.09.2019
Размер:
295.01 Кб
Скачать

18. Шифрование rsa (суть, алгоритм, пример)

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

Алгоритм RSA состоит из следующих пунктов:

  • Выбрать простые числа p и q

  • Вычислить n = p * q

  • Вычислить m = (p - 1) * (q - 1)

  • Выбрать число d взаимно простое с m

  • Выбрать число e так, чтобы e * d = 1 (mod m)

Числа e и d являются ключами RSA. Шифруемые данные необходимо разбить на блоки - числа от 0 до n - 1. Шифрование и дешифровка данных производятся следующим образом:

Шифрование: b = ae (mod n)

Дешифровка: a = bd (mod n)

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

Пример:

Зашифруем и расшифруем сообщение "САВ" по алгоритму RSA. Для простоты возьмем небольшие числа - это сократит наши расчеты.

  • Выберем p=3 and q=11.

  • Определим n= 3*11=33.

  • Hайдем (p-1)*(q-1)=20. Следовательно, d будет равно, например, 3: (d=3).

  • Выберем число е по следующей формуле: (e*3) mod 20=1. Значит е будет равно, например, 7: (e=7).

Представим шифруемое сообщение как последовательность чисел в диапозоне от 0 до 32 (незабывайте, что кончается на n-1). Буква А =1, В=2, С=3.

Теперь зашифруем сообщение, используя открытый ключ {7,33}

С C1 = (3^7) mod 33 = 2187 mod 33 = 9;  A C2 = (1^7) mod 33 = 1 mod 33 = 1;  B C3 = (2^7) mod 33 = 128 mod 33 = 29; 

Теперь расшифруем данные, используя закрытый ключ {3,33}.

M1=(9^3) mod 33 =729 mod 33 = 3(С);  M2=(1^3) mod 33 =1 mod 33 = 1(А);  M3=(29^3) mod 33 = 24389 mod 33 = 2(В);  Вот такая лапша.

19. Хеш-функции (для чего нужны, виды, примеры)

Хеширование — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями, а их результаты называют хешем.

Хеширование применяется для сравнения данных: если у двух массивов хеш-коды разные, массивы гарантированно различаются; если одинаковые — массивы, скорее всего, одинаковы. Виды хеш-функций разделяются по их характеристикам: разрядности, вычислительной сложности, криптостойкости. Конкретно названия видов: MD2, MD5, SHA-1. Политологу забивать голову их изучением сейчас не стоит. Примеры применения:

  1. проверка некоторой информации на идентичность оригиналу, без использования оригинала.

  2. контрольная сумма может быть передана по каналу связи вместе с основным текстом. На приёмном конце, контрольная сумма может быть рассчитана заново и её можно сравнить с переданным значением. Если будет обнаружено расхождение, то это значит, что при передаче возникли искажения и можно запросить повтор.

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