Шифрование информации

Изучение методов шифрования и их классификации. Выбор языка программирования. Алгоритм шифрования Эль–Гамаля. Обратимое преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением авторизованным пользователям доступа к ней.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 08.10.2015
Размер файла 442,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

С1 = Еk1(T), С2 = Еk1(T), С3 = Еk1(T), ..., СN = Еk1(T), (9.4)

T = Dk2(C1) = Dk2(C2) = Dk2(C3) = ... = Dk2(CN). (9.5)

В результате, даже если у криптоаналитика имеется шифртекст Ci и он угадает T, то в результате операции шифрования получиться Сj = Еk1(T). Вероятность того, что Ci = Сj крайне низка. Таким образом, криптоаналитик даже не узнает, была ли правильной его догадка относительно T или нет.

Ниже рассматриваются два алгоритма вероятностного шифрования:

- алгоритм шифрования Эль-Гамаля;

- алгоритм на основе эллиптических кривых.

4.4 Алгоритм шифрования Эль-Гамаля

Схема была предложена Тахером Эль-Гамаля в 1984 г. Он усовершенствовал систему Диффи-Хеллмана и получил два алгоритма, которые использовались для шифрования и обеспечения аутентификации. Стойкость данного алгоритма базируется на сложности решения задачи дискретного логарифмирования.

Суть задачи заключается в следующем. Имеется уравнение

gx mod p = y. (6)

Требуется по известным g, y и p найти целое неотрицательное число x (дискретный логарифм).

Порядок создания ключей приводится в следующей таблице.

Таблица 8. Процедура создания ключей

Примечание. Первообразный (примитивный) корень по модулю p - наименьшее положительное число g такое, что g(p) mod p = 1 и gi mod p ? 1, для 1 ? i < (p), где (p) - функция Эйлера (т.к. р - простое число, то (p) = p - 1).

Проверка. При g = 2 и p = 37, (37) = 37 - 1 = 36.

236 mod 37 = 1;

21 mod 37 = 2 (? 1);

22 mod 37 = 4 (? 1);

23 mod 37 = 8 (? 1);

24 mod 37 = 16 (? 1);

...;

234 mod 37 = 28 (? 1);

235 mod 37 = 19 (? 1).

Для шифрования каждого отдельного блока исходного сообщения должно выбираться случайное число k (1 < k < p - 1). После чего шифрограмма генерируется по следующим формулам

a = gk mod p, (9.7)

b = (yk Т) mod p, (9.8)

где Т - исходное сообщение;

(a, b) - зашифрованное сообщение.

Дешифрование сообщения выполняется по следующей формуле

T = (b (ax)-1) mod p (9.9)

или

T = (b ap-1-x) mod p, (9.10)

где (ax)-1 - обратное значение числа ax по модулю p.

Пример шифрования и дешифрования по алгоритму Эль-Гамаля при k = 7 приведен в таблице, хотя для шифрования каждого блока (в нашем случае буквы) исходного сообщения надо использовать свое случайное число k.

Первая часть шифрованного сообщения - a = 27 mod 37 = 17.

ax = 175 = 1419857, (ax)-1 = 2 (1419857 * 2 mod 37 = 1) или ap-1-x = 1737-1-5 ? 1.3928892 * 1038.

Таблица 9. Пример шифрования по алгоритму Эль-Гамаля (при k = const)

Ввиду того, что число k является произвольным, то такую схему еще называют схемой вероятностного шифрования. Вероятностный характер шифрования является преимуществом для схемы Эль-Гамаля, т.к. у схем вероятностного шифрования наблюдается большая стойкость по сравнению со схемами с определенным процессом шифрования. Недостатком схемы шифрования Эль-Гамаля является удвоение длины зашифрованного текста по сравнению с начальным текстом. Для схемы вероятностного шифрования само сообщение Т и ключ не определяют шифртекст однозначно. В схеме Эль-Гамаля необходимо использовать различные значения случайной величины k для шифровки различных сообщений Т и Т'. Если использовать одинаковые k, то для соответствующих шифртекстов (a, b) и (a', b') выполняется соотношение b (b')-1 = Т (Т')-1 (mod p). Из этого выражения можно легко вычислить Т, если известно Т'.

Пример. Предположим злоумышленник перехватил зашифрованное сообщение С = ((a1, b1), (a2, b2), …, (an, bn)), для которого использовалось одно и тоже случайное число k. Он знает один из блоков Ti = Ek1(Ci) или при известном открытом ключе (y, g, p) ему удалось подобрать k', которое совпало с используемым при шифровании k. Например по второму варианту, для шифрования символа Х (Т' = 22) злоумышленник использовал k' = 7 (равное k). Тогда, b(X) = b' = (327 * 22) mod 37 = 11, (b')-1 = 27, (Т')-1 = 32. Расшифрование перехваченного сообщения приведено в следующей таблице.

Таблица 10. Пример расшифрования перехваченного сообщения

4.5 Алгоритм на основе эллиптических кривых

Использование эллиптических кривых для создания криптосистем было независимо предложено Нилом Коблицем (Neal Koblitz) и Виктором Миллером (Victor Miller) в 1985 г. При использовании алгоритмов на эллиптических кривых полагается, что не существует быстрых алгоритмов для решения задачи дискретного логарифмирования в группах их точек. В настоящий момент известны лишь экспоненциальные алгоритмы вычисления обратных функций для эллиптических кривых. По сравнению с субэкспоненциальными алгоритмами разложения числа на простые сомножители (см. криптосистему RSA), это позволяет при одинаковом уровне стойкости уменьшить размерность ключа в несколько раз, а, следовательно, упростить программную и аппаратную реализацию криптосистем.

Эллиптической кривой E называется множество точек (x, y), удовлетворяющих однородному уравнению Вейерштрасса:

y2 + a1xy + a2y = x3 + a3x2 + a4x + a5, (11)

где ai - коэффициенты уравнения.

а) y2 = x3 - x б) y2 = x3 - 3x + 2

в) y2 = x3 - x + 1

Рис. 6. Примеры эллиптических кривых

В криптографии эллиптические кривые рассматриваются над двумя типами конечных полей: простыми полями нечётной характеристики (, где n > 3 - простое число) и полями характеристики 2 (GF(2m)).

Эллиптические кривые над полями нечётной характеристики можно привести к виду, называемому эллиптической кривой в короткой форме Вейерштрасса:

y2 = x3 + Ax + B (mod n), (12)

где A, B - коэффициенты эллиптической кривой, удовлетворяющие 4 A3 + 27 B2 ? 0 (mod n).

Поскольку , график кривой симметричен относительно оси абсцисс. Чтобы найти точки его пересечения с осью абсцисс, необходимо решить кубическое уравнение

x3 + Ax + B = 0. (13)

Это можно сделать с помощью известных формул Кардано. Дискриминант этого уравнения

. (14)

Если ? > 0, то уравнение имеет три различных действительных корня (см. рис. 9.1а - x1, x2 и x3). Если ? = 0, то уравнение имеет три действительных корня, по крайней мере, два из которых равны (см. рис. 9.1б - x1 и x2). Если ? = 0, то уравнение имеет один действительный корень (см. рис. 9.1в - x1) и два комплексно сопряженных.

Используемые в криптографии кривые не должны иметь особых точек. Геометрически это значит, что график не должен иметь точек возврата и самопересечений (см. рис. 6б). Если кривая не имеет особых точек, то её график имеет две части при положительном дискриминанте (см. рис. 6а), и одну - при отрицательном (см. рис. 6в). Например, для графиков выше в первом случае дискриминант равен 64, а в третьем он равен -368.

Следует отметить, что в у каждого ненулевого элемента есть либо два квадратных корня, либо нет ни одного, поэтому точки эллиптической кривой разбиваются на пары вида P = (x, y) и -P = (x, -y). Например, эллиптическая кривая y2 = x3 + 3x + 2 при x = 1 и n = 5 имеет две точки в качестве решения: P = (1, 1) и -P = (1, -1), т.к. 12 ? 13 + 3 * 1 + 2 (mod 5) и (-1)2 ? 13 + 3 * 1 + 2 (mod 5).

Введем две операции, которые можно выполнять над точками кривой.

Сложение точек P3(x3, y3) = P1(x1, y1) + P2(x2, y2).

а) y2 = x3 - x б) y2 = x3 - x + 1

Рис. 7. Сложение точек

(15)

(16)

В формулах 15 и 16 л - угловой коэффициент прямой, проходящей через точки P1 и P2. Если P1 = P2, то л равен значению производной в точке P1.

Умножение точки на число Pk(xk, yk) = k * P(x, y).

а) y2 = x3 - x б) y2 = x3 - x + 1

Рис. 8. Удвоение точки

А) вариант 1 - выполнить сложение точки P k раз

(17)

B) вариант 2 - с использование двоичного представления числа k = (bL, …, b2, b1) и операции удвоения точки. Например, k = 110 = (1101110)2, тогда Pk = 64P + 32P + 8P + 4P + 2P.

Алгоритм, вычисления Pk может выглядеть следующим образом.

Pk = null, Q = P.

for i = 1 to L

If bi = 1

then if Pk = null

then Pk = Q

else Pk = Pk + Q

Q = 2 * Q (? Q = Q + Q)

endFor

Для k = 110 вместо 109 сложений будет 1 присваивание, 4 сложения и 7 удвоений (сложений).

Рассмотрим процедуру создания ключей.

Таблица 11. Процедура создания ключей

Прямой способ вычисления порядка группы точек эллиптической кривой q.

1) Рассчитываются координаты первой точки из выражения

y2 = x3 + Ax + B (mod n) > y2 = x3 + 3x + 7 (mod 41).

Примем x1 = 7, тогда y12 mod 41 = (73 + 3 * 7 + 7) mod 41 = 2, откуда y1 = 17.

P(xp, yp) = P(x1, y1) = P(7, 17).

2) Находим координаты второй точки. Для этого вначале вычисляется коэффициент л

Решая последнее уравнение, получаем л = 2 (34 * 2 mod 41 = 27).

Координаты второй точки получаем путем удваивания первой из выражений

x2 = (л2 - 2x1) mod n = (22 - 2 * 7) mod 41 = -10 mod 41 = 31,

y2 = (л(x1 - x2) - y1) mod n = (2 (7 - 31) - 17) mod 41 = -65 mod 41 = 17.

3) Каждую следующую точку рассчитываем по формулам, пока в знаменателе первой формулы не будет получен 0:

(18)

(19)

Получаем:

- л3 = 0, x3 = 3, y3 = 24;

- л4 = 29, x4 = 11, y4 = 31;

- л5 = 24, x5 = 25, y5 = 2;

- …;

- л46 = 2, x46 = 7, y46 = 24.

К полученному числу точек добавляем точку О, в результате чего q = 46 + 1 = 47. Эта точка есть результат сложения любых двух точек P(xi, yi) и -P(xi, -yi) и представляет собой бесконечно удаленную точку, в которой гипотетически сходятся все вертикальные кривые.

Процедура шифрования отдельного блока выполняется следующим образом.

Таблица 12. Процедура шифрования отдельного блока (буквы)

Процедура расшифрования отдельного блока выполняется следующим образом.

Таблица 13. Процедура расшифрования отдельного блока (буквы)

Приведенный выше способ шифрования является вариацией шифрования Эль-Гамаля. Если стойкость алгоритма шифрования Эль-Гамаля базируется на сложности решения задачи дискретного логарифмирования, то стойкость шифрования с помощью эллиптических кривых базируется на сложности нахождения множителя k точки P по их произведению. Т.е. если Q = k P, то зная P и k довольно легко вычислить Q. Эффективное решение обратной задачи (найти k при известных P и Q) на текущий момент пока не опубликовано.

Заключение

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

Программа была разработана в среде Delphi 7, за счет чего программа обеспечивает быструю и качественную работу.

Список используемых источников

1. А.П. Алферов, А.Ю. Зубов, А.С. Кузьмин, А.В. Черемушкин. Основы Криптографии. -- Гелиос АРВ, 2002 г.

2. Э. Мэйволд. Безопасность сетей. -- 2006 г.

3. Современная криптография. Теория и практика = Modern Cryptography: Theory and Practice. -- М.: Вильямс, 2005 г.

4. Саломаа А. Криптография с открытым ключом. -- М.: Мир, 1995 г.

5. К. Шеннон. Теория связи в секретных системах // Работы по теории информации и кибернетике, 1963 г.

6. Жельников В. Кpиптогpафия от папиpуса до компьютеpа ,1996 г.

7. Бабаш А.В., Шанкин Г.П. История криптографии. Часть I, 2002 г.

Приложение

При старте программа выводит три окна: окно ввода текста для шифрования, окно для зашифрованного текста и окно для вывода расшифрованного текста.

Внешний вид окна ввода текста для шифрования

Внешний вид окна зашифрованного текста

Внешний вид окна для вывода расшифрованного текста

Листинг программы

unit Shifrovanie;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, IdCoder, IdCoder3to4, IdCoderUUE, IdCoderXXE, IdBaseComponent,

StdCtrls;

type

TForm1 = class(TForm)

mmo1: TMemo;

mmo2: TMemo;

btn1: TButton;

btn2: TButton;

idncdrx1: TIdEncoderXXE;

idcdrx1: TIdDecoderXXE;

mmo3: TMemo;

lbl1: TLabel;

Label1: TLabel;

lbl2: TLabel;

procedure btn1Click(Sender: TObject);

procedure btn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

begin

mmo2.Text:=idncdrx1.Encode(mmo1.Text) ;

end;

procedure TForm1.btn2Click(Sender: TObject);

begin

mmo3.Text:= idcdrx1.DecodeString(mmo2.Text) ;

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

  • Анализ криптографических методов шифрования данных. Разработка криптосистемы, основанной на схеме Эль-Гамаля. Определение функциональных и нефункциональных требований. Выбор языка программирования и среды разработки. Тестирование программного продукта.

    дипломная работа [1,6 M], добавлен 17.07.2016

  • Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.

    лабораторная работа [24,3 K], добавлен 20.02.2014

  • Основные способы криптографии, история ее развития. Принцип шифрования заменой символов, полиалфавитной подстановкой и методом перестановки. Симметричный алгоритм шифрования (DES). Открытое распределение ключей. Шифры Ривеста-Шамира-Алдемана и Эль Гамаля.

    реферат [39,3 K], добавлен 22.11.2013

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

    курсовая работа [184,0 K], добавлен 09.03.2009

  • Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

    курсовая работа [795,7 K], добавлен 02.12.2014

  • Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".

    курсовая работа [3,3 M], добавлен 11.03.2013

  • Принцип программной реализации классических криптографических методов. Метод шифрования с использованием таблицы Виженера. Создание текстового редактора "Блокнот", содержащего методы шифрования. Вербальный алгоритм и программа для методов шифрования.

    курсовая работа [2,0 M], добавлен 20.01.2010

  • Комбинированное использование симметричного и асимметричного шифрования. Зависимость между открытым и закрытым ключами. Основные недостатки симметричного шифрования. Схема двухстороннего конфиденциального обмена. Концепция шифрования по алгоритму DES.

    презентация [1,4 M], добавлен 20.12.2012

  • Применение алгоритмов шифрования и дешифрования данных в компьютерной технике в системах сокрытия конфиденциальной и коммерческой информации от злонамеренного использования сторонними лицами. Классический пример - симметричные криптографические алгоритмы.

    дипломная работа [44,9 K], добавлен 08.07.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.