Асимметричное шифрование
Математическая модель шифра 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Шифрование и дешифрование с помощью сети Фейстеля. Процесс блочного преобразования открытой информации в зашифрованную информацию. Таблица перевода чисел и букв. Криптостойкость шифра как показатель его эффективности. Подстановки и перемещение битов.
курсовая работа [475,6 K], добавлен 30.12.2013Программа на языке Turbo Pascal для шифрования данных с помощью шифра Тритемиуса. Входные, выходные данные. Схема алгоритма и текст программы. Порядок ввода исходных данных и описание получаемых результатов. Тестовых задания и анализ их функционирования.
курсовая работа [4,0 M], добавлен 06.01.2011Зарождение и развитие криптографии. Симметричное шифрование и его особенности. Нейронная сеть и области ее использования, основные составляющие. Математическая модель нейронной сети на базе базисно-радиальных функций. Алгоритм симметричного шифрования.
курсовая работа [809,4 K], добавлен 30.09.2016Создание программы на языке программирования С#, которая проверяет наличие в матрице хотя бы одного столбца, содержащего положительный элемент, поиск его номера. Упорядочивание его элементов по возрастанию. Листинг программы и инструкция по работе с ней.
курсовая работа [1,9 M], добавлен 28.05.2014Методы криптографической защиты информации в России в XIX веке. Описание структуры программы: библиотека DLL, графическая оболочка, консольная реализация. Вид функции шифрования. Инструкция системного программиста. Класс для шифровки, расшифровки данных.
контрольная работа [26,3 K], добавлен 22.12.2011Реализация криптографического алгоритма шифрования и дешифрования с использованием шифра Виженера. Понятие и суть полиалфавитного шифра. Метод полиалфавитного шифрования буквенного текста с использованием ключевого слова. Взлом полиалфавитных шифров.
курсовая работа [863,0 K], добавлен 21.04.2012Разработка программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран заданную информацию. Типы блок-схем и их использование при написании программы. Описание входных данных и результат вычислений, листинг программы.
курсовая работа [680,3 K], добавлен 03.08.2009Формирование ключей для шифрования сообщения. Описание алгоритма RSA: шифрование и дешифрование. Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Сущность цифровой подписи.
лабораторная работа [326,0 K], добавлен 04.11.2013Значение программы Ехсеl для обработки статистической информации и представления данных в виде графиков и диаграмм. Использование способности программы производить математические вычисления по заданным формулам для определения заработка шоферов.
контрольная работа [3,0 M], добавлен 26.01.2010Создание криптографического программного обеспечения, выполняющего шифрование по алгоритму RC6; электронную подпись на основе шифра Эль-Гамаля; задачу о нахождении гамильтонова цикла в графе. Алгоритм реализации гамильтонова цикла. Исходный код программы.
курсовая работа [365,9 K], добавлен 24.07.2015