Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





Асимметричная схема Эль Гамаль, предложенная автором (El Gamal), использует операцию возведения в степень по модулю простого числа. При этом трудноразрешимой задачей для злоумышленника является отыскание не числа, которое возведено в степень, а то, в какую степень возведено известное число. Эта задача носит название проблемы дискретного логарифма.

 

На этапе выработки ключей:

1. Выбирается произвольное (правда достаточно большое) простое число р.

2. Для этого простого числа определяется любой образующий элемент (англ. primitive root) – т. е. такое число а, при многократном возведении которого в степень по модулю р (а1 mod p, a2 mod p, …), будут перебираться (в произвольном порядке, но обязательно по одному разу) все числа от 1 до (p-1) включительно.

3. Генерируется произвольное случайное число х (0<х<p) – это и есть

закрытый ключ.

4. Вычисляется значение b = ax mod p – комбинация (a, p, b) представляет собой открытый ключ получателя.

 

На этапе шифрования:

1. Отправитель генерирует произвольное случайное число y (0<y<p).

2. Помещает в начале шифрограммы число (ay mod p).

3. Вычисляет величину k = (by mod p) = ((ax mod p)y mod p).

4. Используя некоторую, заранее оговоренную в данной реализации, часть k в качестве симметричного ключа для любого блочного шифра шифрует отправляемое сообщение.

5. Надежно стирает числа y и k из оперативной памяти и других мест, куда они могли случайно попасть.

 

На этапе дешифрования:

1. По приходу зашифрованного сообщения получатель отделяет от пакета величину (ay mod p) и вычисляет на ее основе ((ay mod p)x mod p) – математика доказывает, что полученное число будет равно тому самому k, которое вычислил отправитель, так как в данной формуле операнды x и y можно менять местами.

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

Схема алгоритма Эль Гамаль приведена на рис. 3.2.

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

обозримое время определить, в какую именно степень было возведено основание. В схеме Эль Гамаль потенциальный злоумышленник может получить значения a, p, (ax mod p) и (ay mod p). Однако из-за сложности определения чисел х и y "в чистом виде" у него не оказывается возможности вычислить значение k = (axy mod p), которое так необходимо для прочтения шифровки.

По криптостойкости с схеме Эль Гамаль 512-битное число p приравнивается к 56-битному симметричному ключу, размер которого в настоящее время недостаточен для надежного шифрования. Поэтому на практике применяются р длиной в 768, 1024 и 1536 бит.

Пример 3. В качестве простого числа, порождающего циклическую группу, выберем р = 11, за образующий элемент примем число а = 7 (при возведении 7 в степень 1, 2, 3 и т. д. по модулю 11 последовательно проходят все 10 значений [7, 5, 2, 3, 10, 4, 6, 9, 8, 1]). Секретным ключом х выберем 6, параметр b принимает значение b = (ax mod p) = (76 mod 11) = 4. В целом ключ принимает вид (а = 7, р = 11, b = 4).

Предположим, что некий абонент хочет передать сообщение. Он выбрал случайное число, не превосходящее р, например, у = 9. В начало шифрограммы помещается число (ay mod p) = 79 mod 11) = 8. Кроме того, на основе у и открытого ключа отправитель вычисляет k = by mod p = 49 mod 11 = 3. Выбрав значение 3 или какие-либо его биты в качестве симметричного ключа, отправитель шифрует передаваемые данные и стирает величины 9 и 3 со своих накопителей.

Получатель по приходу пакета для вычисления k = (ay mod p)x mod p возводит число 8 из заголовка шифрограммы в степень секретного ключа и получает k = 86 mod 11 = 3 – то же самое значение, которое использовал отправитель, шифруя собственно данные.

 

Date: 2015-06-11; view: 1261; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию