Асимметричное шифрование
Математическая модель шифра RSA. Понятие и методика определения открытого ключа. Последовательность, которая составляет криптотекст. Механизм декодирования информации. Формулирование специальной программы, ее анализ и листинг, оценка результативности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 09.10.2013 |
Размер файла | 12,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Лабораторная работа
Асимметричное шифрование
Задание
Целью лабораторной работы №4 является изучить методы асимметричного шифрования, написать программу для шифрования RSA.
Выполнение работы
1. Математическая модель шифра RSA
Для примера выберем два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей).
Определим параметр n как результат перемножения р и q. Выберем большое случайное число и назовем его d, причем оно должно быть взаимно простым с результатом умножения (р - 1) * (q - 1). Найдем такое число e, для которого верно соотношение:
(e*d) mod ((р - 1) * (q - 1)) = 1
(mod - остаток от деления, т.е. если e, умноженное на d, поделить на ((р - 1) * (q - 1)), то в остатке получим 1).
Открытым ключом является пара чисел e и n, а закрытым - d и n. При шифровании исходный текст рассматривается как числовой ряд, и над каждым его числом мы совершаем операцию:
C (i) = (M (i) e) mod n
программа шифр криптотекст декодирование
В результате получается последовательность C (i), которая и составит криптотекст, декодирование информации происходит по формуле
M (i) = (C (i) d) mod n
Как видите, расшифровка предполагает знание секретного ключа.
Попробуем на маленьких числах. Установим р=3, q=7. Тогда n=р*q=21. Выбираем d как 5. Из формулы (e*5) mod 12=1 вычисляем e=17. Открытый ключ 17, 21, секретный - 5, 21.
Зашифруем последовательность «2345»:
C (2) = 217 mod 21 =11
C (3) = 317 mod 21= 12
C (4) = 417 mod 21= 16
C (5) = 517 mod 21= 17
Криптотекст - 11 12 16 17.
Проверим расшифровкой:
M (2) = 115 mod 21= 2
M (3) = 125 mod 21= 3
M (4) = 165 mod 21= 4
M (5) = 175 mod 21= 5
Как видим, результат совпал.
2. Текст программы
function Bit (Value, n: Integer): Boolean;
asm
bt eax, edx
setc al
and eax, 0FFh
end;
function FastPower (a, b, n: integer): integer;
var i: integer;
ai: extended;
begin
ai:= a;
for I:= Trunc (log2 (b)) - 1 downto 0 do
if Bit (b, i) then ai:= Round (sqr(ai) * a) mod n else ai:= Round (sqr(ai)) mod n;
result:= Round(ai);
end;
function Encrypt (s: string; e, n: integer): TIncodeMes;
var I: Integer;
begin
SetLength (result, length(s));
for I:= 0 to Length(s) - 1 do
result[i]:= FastPower (ord(s [i + 1]), e, n)
end;
function Decrypt (s: array of integer; e, n: integer): string;
var i: Integer;
begin
SetLength (Result, Length(s));
for I:= 0 to Length(s) - 1 do
result [i + 1]:= chr (FastPower(s[i], e, n))
end;
procedure TForm16. Button1Click (Sender: TObject);
var i, n, e: Integer;
begin
n:= StrToIntDef (Edit3. Text, 697);
e:= StrToIntDef (Edit2. Text, 7);
FMes:= Encrypt (Memo1. Lines. Text, e, n);
for i:= 0 to High(FMes) do Memo2. Lines. Append (IntToStr(FMes[i]));
end;
Размещено на Allbest.ru
Подобные документы
Разработка криптографического алгоритма программы ручного шифра по таблице Виженера. Разработка программы, выполняющей шифрование и расшифрование. Особенности использования в качестве ключа самого открытого текста. Алгоритмы решения "обратных" задач.
курсовая работа [45,0 K], добавлен 13.11.2009Проблема скрытия и защиты информации от несанкционированного использования. История создания шифра. Решения задачи шифрования текста и кодирования данных. Тестирование полученного приложения и анализ работы программы с точки зрения пользователя.
курсовая работа [3,0 M], добавлен 24.11.2013Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009Принципы обеспечения достоверности и сохранности, основанные на шифровании информации. Создание электронной цифровой подписи. Обеспечение достоверности и сохранности информации в автоматизированных системах. Симметричное и асимметричное шифрование.
курсовая работа [897,3 K], добавлен 19.01.2015Назначение алгоритма "Blowfish", особенности длины ключа и степени криптостойкости. Обоснование программной реализации расширения ключа и сцепления блоков шифра "Blowfish". Проверка использования инициализирующего вектора и распространения ошибок шифра.
курсовая работа [1,3 M], добавлен 30.01.2014Криптографические методы обеспечения конфиденциальности, невозможности прочтения информации посторонним. Современные методы шифрования информации как обратимого преобразования открытого текста в шифрованный на основе секретного алгоритма или ключа.
презентация [514,3 K], добавлен 06.02.2016История возникновения криптографии. Открытый ключ криптосистемы. Шифрование секреторного ключа. Математические методы обеспечения конфиденциальности и аутентичности информации. Преобразование текста на основе секретного алгоритма в шифрованный текст.
презентация [260,8 K], добавлен 11.10.2015Генератор псевдослучайной последовательности в системах защиты информации. Шифрование мультимедийных данных. Вероятностное шифрование и алгоритм Эль-Гамаля. Основные понятия теории конечных полей. Алгоритм нахождения циклического избыточного кода.
дипломная работа [1,7 M], добавлен 19.07.2013Принцип работы и программная реализация однозвучного, одноалфавитного и полиграммного шифра. Шифрование по методу подстановки, замены и кодового слова. Безопасность шифровки простой замены. Частотные характеристики текстовых сообщений и дешифрация.
контрольная работа [1,1 M], добавлен 02.02.2012Краткая характеристика библиотек: stdio.h, conio.h, string.h, stdafx.h. Шифр Плейфера как подстановка символов из таблицы, основные варианты. Структура программы playfer.exe. Создание таблицы перекодировки. Ввод, шифрование и дешифрование текста.
курсовая работа [216,7 K], добавлен 18.05.2013