- •Старооскольский технологический институт им. А.А. Угарова
- •Лабораторная работа №1 Шифрование данных методом замены в симметричных криптосистемах.
- •Теоретическое введение
- •Аффинная система подстановок Цезаря.
- •Задание на лабораторную работу
- •Лабораторная работа №2 Шифрование с использованием метода гаммирования и датчиков псевдослучайных чисел
- •Теоретическое введение
- •Задание на лабораторную работу
- •Лабораторная работа №3
- •Теоретическое введение
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Лабораторная работа №4 Шифрование данных в асимметричной криптосистеме rsa
- •Теоретическое введение
- •Задание на лабораторную работу
- •Лабораторная работа №5 Алгоритм электронной цифровой подписи rsa
- •Теоретическое введение
- •Задание на лабораторную работу
- •Лабораторная работа №6 Алгоритм Диффи-Хелмана для безопасного обмена ключами
- •Теоретическое введение
- •Задание на лабораторную работу
- •Список литературы
- •Приложение
Задание на лабораторную работу
1. Используя алгоритм шифрования данных методом гаммирования с ПСП на основе любого датчика, написать программу шифрования и дешифрования произвольного набора символов на любом языке программирования.
Лабораторная работа №3
Шифрование с использованием методов одноразовых блокнотов
Цель работы: изучить методы шифрования данных заменой и освоить их практическое применение.
Теоретическое введение
Шифрование методом Вернама (метод одноразовых блокнотов).
Конкретная версия этого шифра, предложена в 1926г. Гильбертом Вернамом. Старинный телетайп фирмы AT&T со считывающим устройством Вернама и оборудованием для шифрования использовался корпусом связи армии США. Каждая буква исходного текста в алфавите, расширенном некоторыми дополнительными знаками, сначала переводилась с использованием телеграфного кода Бодо в пяти-битовый блок(b0, b1 ..b4). К исходному тексту Бодо добавлялся (по модулю 2) ключ k=(k0 ,k1 ,...,kк-1) записанный на бумажной ленте. В качестве информации, подлежащей шифрованию и дешифрованию, будут рассматриваться тексты, построенные на некотором алфавите. Алфавит - конечное множество используемых для кодирования информации знаков. Текст - упорядоченный набор из элементов алфавита.
В качестве примеров алфавитов, используемых в современных ИС можно привести следующие:
алфавит Z33 – 32 буквы русского алфавита и пробел;
алфавит Z256 – символы, входящие в стандартные коды ASCII и КОИ–8;
бинарный алфавит – Z2 = {0,1};
восьмеричный алфавит или шестнадцатеричный алфавит;
Шифрование – преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом. Дешифрование – обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный. Ключ – информация, необходимая для беспрепятственного шифрования и де шифрования текстов.
Порядок выполнения работы
Шифрование исходного текста, предварительно преобразованного в последовательность двоичных символов х, осуществляется путем сложения по модулю 2 символов х с последовательностью двоичных ключей k. Получим символы шифртекста: y = x k
Расшифровка состоит в сложении по модулю 2 символов y шифр текста с той же последовательностью ключей k:
y k = x k k = x
При этом последовательности ключей, использованные при шифровании и расшифровании, компенсируют друг друга (при сложении по модулю 2), и в результате восстанавливаются символы х исходного текста.
При моделировании, преобразование исходного текста в последовательность двоичных символов можно осуществить следующим образом:
C := SizeOf(char)*8;
for i := 1 to n*C do begin
{Вычисление 2^(i mod C)}
A := integer(exp((i mod C)*ln (2)));
m[i] := (str[i div A] and A) shr (i-1);
end;
где n – количество элементов в тексте, m – массив двоичных символов, 8–количество бит в байте, str – строка содержащая текст, A, C – вспомогательные переменные.
Кодер может иметь следующий вид:
i:=1; j:=1;
while i<>length(m)+1 do begin
m[i] := m[i] xor k[j];
if j <=M then inc(j)
else j := 0;
inc(i);
end;
где k – последовательность ключей, M – длина последовательности ключей
Декодер полностью совпадает с кодером. При разработке системы Вернам проверял с помощью закольцованных лент, установленных на передатчике и приемнике для того, чтобы использовалась одна и та же последовательность ключей. Метод Вернама не зависит от длины последовательности ключей и позволяет использовать случайную последовательность ключей. Однако при реализации метода Вернама возникают серьезные проблемы, связанные с необходимостью доставки получателю такой же последовательности ключей, как и у отправителя, либо с необходимостью безопасного хранения идентичных последовательностей ключей у отправителя и получателя.
Последовательность ключей можно реализовать как последовательность псевдослучайных чисел. В этом случае необходимо синхронизировать только параметры псевдослучайного генератора. Примером такого датчика может быть аддитивный:
yn+1 = (yn + yn-1) mod m,
где mod- остаток от деления;