Алгоритмы и основные стандарты шифрования. Научная работа по теме «Криптография как метод кодирования и декодирования информации» ученика МБОУ Школа № 75 ГО г.Уфы Макарова Ильи Александровича (Продолжение)
Симметричное и ассиметричное шифрование
Прежде чем перейти к стандартам и алгоритмам шифрования более подробно изучим симметричное и ассиметричное шифрование и поймём разницу.
Как я говорил ранее, симметричное шифрование — способ шифрования, в котором для шифрования и дешифрования применяется один и тот же криптографический ключ1. Ключ заранее известен участникам переписки.
Проблема возникает лишь в передаче ключа, требует защищённый канал связи, чтобы гарантировать конфиденциальность ключа.
Ассиметричное шифрование подразумевает генерацию двух ключей: открытого и закрытого с условием, что расшифровать информацию, которая была закодирована открытым ключом можно только с помощью закрытого. Открытый ключ передаётся участникам переписки, они шифруют информацию с помощью него и передают отправителю, который только с помощью закрытого ключа сможет её расшифровать. Закрытый ключ не разглашается.
Во избежание подмены открытого ключа используются сертификаты, которые подтверждают подлинность информации.
Разобравшись с разницей между симметричным и ассиметричным видами шифрования перейдем к основным стандартам и алгоритмам шифрования данных.
Стандарты шифрования
Я опишу лишь основные стандарты шифрования в общих чертах, не останавливаясь на их более подробном разборе в связи с его сложностью для понимания на данный момент.
DES (англ. Data Encryption Standard) — алгоритм для симметричного шифрования, который был разработан фирмой IBM и утверждённый правительством США в 1977 году как официальный стандарт.
В 1997 году началось создание нового стандарта, несмотря на то, что попытка взломать DES приводит к множеству систем нелинейных уравнений, а аналитические методы были бесполезны, он всё же имел слабое место — малое количество возможных ключей, всего лишь 256, с развитием вычислительной мощности машин перебрать все варианты можно относительно за короткий срок.
AES (англ. Advanced Encryption Standard) — симметричный алгоритм блочного шифрования принятый в качестве стандарта шифрования правительством США. Является предшественником DES. Алгоритм хорошо проанализирован и сейчас широко используется, как это было с его предшественником DES.
Алгоритмы шифрования
Алгоритм Диффи — Хеллмана
Алгоритм Диффи — Хеллмана— криптографический протокол, позволяющий двум и более сторонам получить общий ключ, с помощью незащищённого канала связи. Впоследствии полученный ключ используется для симметричного шифрования данных.
Данный алгоритм сильно повлиял на криптографию, так как он решал основную проблему, о которой я говорил выше (передача ключа по незащищённому каналу связи при симметричном шифровании).
Схема работы алгоритма основывается на модулярной арифметике. Рассмотрим выражение gx mod1 p. Числа g и p известны обоим оппонентам и не являются секретными. Участники переписки выбирают секретные числа (aи b).
Существуют некоторые ограничения относительного этих чисел: числа p и g– простые, а a и b – натуральные. Затем каждый вычисляет выражение gx mod p и рассказывает своему оппоненту конечный результат.
Теперь у одного собеседника есть значение B = gb mod p, полученное от первого, а у второго есть значение A = ga mod p, полученные друг от друга. Затем оппоненты вычисляют секретный ключ. Первый вычисляет выражение Ba mod p, а второй — Ab mod p.
Данные выражения равны и приводят к одному результату.
Криптографическая стойкость алгоритма Диффи — Хеллмана, основывается на предполагаемой сложности проблемы дискретного логарифмирования.
Дополнительно стоит сказать, что алгоритм работает только на линиях связи, надёжно защищённых от изменений информации, то есть данные, которые поступили к получателю, гарантированно принадлежат отправителю. Как и говорил выше, данная проблема решается с помощью сертификатов.
RSA
RSA — криптографический алгоритм с открытым ключом, который основывается на вычислительной сложности задачи факторизации больших целых чисел, то есть:
если известно вычислить относительно просто;
если известно , то для вычисления x нет простого способа вычислить обратное значение, используя современные вычислительные средства, за обозримый интервал времени.
Рассмотрим сам алгоритм.
Алгоритм создания открытого и закрытого ключей
RSA-ключи генерируются следующим образом:
1) выбираются два различных случайных простых числа p и q заданного размера;
2) вычисляется их произведение n=p*q, которое называется модулем;
3) вычисляется значение функции Эйлера от числа n:
φ(n)=(p-1)*(q-1)
4) выбирается целое e (экспонента) ( 1<e<φ(n)) взаимно простое со значением функции φ(n);
5) вычисляется число d (секретная экспонента), мультипликативно обратное к числу e по модулю φ(n):
d*e ≡ 1(mod φ(n))
6) пара (e,n) публикуется в качестве открытого ключа
7) пара (d,n} играет роль закрытого ключа
Шифрование и расшифрование
Алгоритм сеансового ключа
Алгоритм для отправителя:
Взять открытый ключ(e,n) получателя
Создать случайный сеансовый ключ m
Зашифровать сеансовый ключ с использованием открытого ключа получателя:
c = E(m) = me mod n
Зашифровать сообщение MA с помощью сеансового ключа симметричным алгоритмом:
C = Em(MA)
Алгоритм для получателя:
Принять зашифрованный сеансовый ключ отправителя.
Взять свой закрытый ключ (d,n)
Применить закрытый ключ для расшифровывания сеансового ключа:
M = D(c) = cd mod n
Расшифровать сообщение C C помощью сеансового ключа симметричным алгоритмом:
MA = Dm (C)
forum Обсуждение (0)
+ Оставить отзывПока нет комментариев
Вы можете задать вопрос по учебному материалу первым!