Чтобы обмениваться посланиями и скрыть содержание от третьих лиц, применяют шифрование. Оно используется там, где необходим повышенный уровень защиты. Есть две схемы шифрования: симметричная и асимметричная.
Что такое шифрование
Шифрование будет полезно тогда, когда нужно скрыть некоторую информацию от посторонних лиц и предоставить секретные данные авторизованным пользователям.
Особенностью такого вида передачи данных является использование ключа.
Вам будет интересно:Оперативная память доступна не вся: как задействовать ее полный объем?
Есть три состояния безопасности:
- скрытие информации от посторонних;
- предотвращение изменений;
- сохранение целостности информации;
- идентификация отправителя.
Для чтения информации, кроме ключа, требуется дешифратор. Именно это обеспечивает невозможность получения данных злоумышленниками, ведь перехватив данные, но не имея ключа, прочесть их невозможно.
Бывают два вида шифрования: симметричный и асимметричный.
Главной целью шифрования является хранение информации. Это позволяет работать с некоторыми данными из ненадежных источников, передавать сообщения по незащищенным каналам. Отправка информации происходит так:
- отправитель шифрует данные;
- получатель расшифровывает.
Вам будет интересно:Javascript-метод Array.slice: тонкости использования
Каждое преобразование реализуется с помощью алгоритмов, для решения которых используются ключи. Симметричные и асимметричные методы шифрования отличаются криптостойкостью.
Криптостойкость
Симметричные и асимметричные системы шифрования имеют такую характеристику, которая отвечает за сложность получения несанкционированного доступа.
Существует 2 основных типа криптостойкости системы шифрования.
Сравнение криптостойкости некоторых систем шифрования
Максимальный размер ключа RSA - 4096 бит.
Он используется для шифрования и подписи. Криптостойкость можно описать как 2,7•1028 для ключа 1300 Бит. Схема применяется во многих стандартах, принцип шифрования RSA один из первых асимметричных алгоритмов.
Вам будет интересно:Как на сайте убрать подчеркивание ссылок на CSS?
Размер ключа схемы Эль-Гамаля равен RSA - 4096 Бит. Он используется и для шифрования, и для цифровой подписи. Криптостойкость этой системы не отличается от RSA при одинаковом размере ключа.
В методе DSA используется значительно меньшей ключ - 1024 бита. Применяется он исключительно для цифровой подписи.
Симметричное и асимметричное шифрование
Эти два вида шифрования отличаются количеством ключей и уровнем устойчивости к взлому.
Если для кодирования и раскодирования используется один ключ, то это шифрование симметричное. Асимметричное шифрование подразумевает использование одного ключа для каждого алгоритма.
Цель шифрования определяет метод сохранения конфиденциальности. Одним из первых было симметричное, асиметричное шифрование изобретено позже для обеспечения большей надежности.
Особенности симметричного шифрования
Симметричная система защита имеет следующие достоинства.
К недостаткам относится следующее:
- сложность управления ключами в большой сети;
- сложность обмена ключами;
- потребность в поиске надежного канала для передачи ключа сторонам;
- невозможность использования для цифровой подписи, сертификатов.
Для компенсации недостатков используется комбинированная схема, в которой с помощью асимметричного шифрования передается ключ, используемый для дешифровки. Он передается при помощи симметричного шифрования.
Особенности асимметричного шифрования
Применение пары открытый-закрытый ключ можно использовать как:
- самостоятельное средство защиты информации;
- средство распределения ключей;
- средства аутентификации пользователей.
Имеет такие преимущества:
- сохранение секретного ключа в надежном месте, вместо которого по открытому каналу передается открытый;
- ключ дешифрования известен только одной стороне;
- в большой асимметричной системе используйте меньшее количество ключей в отличие от симметричной.
В таких алгоритмах сложно внести какие-либо изменения. Подобная система имеет длинные ключи. Если симметричный ключ имеет размер 128 Бит, то ключ RSA - 2304 Бит. Из-за этого страдает скорость расшифровывания - она в 2-3 раза медленнее. Для расшифровки требуются большие вычислительные ресурсы.
Существует очень много примеров симметричной и асимметричной систем шифрования.
Симметричное шифрование - как выглядит?
Пример симметричного шифрования и схема реализации ниже.
Главным недостатком является невозможность установить подлинность текста. В случае перехвата ключа злоумышленник расшифрует секретную информацию.
Существуют классические методы.
Первый метод является одним из простейших, в схеме которого не используется ключ. Отправитель и получатель договариваются о некотором ключе, представленным в виде размера таблицы. Передаваемое сообщение записывается в столбцы таблицы, но считывается по строкам. Зная размер таблицы, получатель расшифровывает сообщение.
Для обеспечения большей скрытности используется двойная перестановка. Таким образом происходит шифрование ранее зашифрованного текста. Для этого таблицы должны отличаться количеством строк и столбцов. Они заполняются вертикально, горизонтально, змейкой, по спирали. Этот способ не усиливает шифрование, но процесс взлома становится более длительным.
“Магический квадрат” - более сложная структура, которая представляет собой матрицу. В клетки вписываются натуральные числа таким образом, чтобы сумма чисел по каждому столбцу, строке, диагонали была одинаковой. Каждое число соответствует букве сообщения. Полученный текст выписывается в строку, сопоставляя числа и символы.
Примеры асимметричного шифрования
В данном случае открытый ключ отправляется по открытому каналу и теоретически может быть перехвачен злоумышленниками.
В отличие от симметричных, асимметричные ключи шифрования разные. Для шифровки применяется открытый ключ, для расшифровки послания - закрытый. Использование двух ключей решает проблему возможности перехвата, которая была в симметричном методе. Реализуется так.
Существует такие основные методы асинхронного шифрования.
RSA
RSA - первый криптографический алгоритм, используемый и для шифрования, и для цифровой подписи.
Описывается так.
Пара чисел e, n (5, 21) - открытый ключ. Теперь вычисляются числа d и n закрытого ключа. Число d удовлетворяет условие (d×е) mod φ=1 и равняется 17. В итоге вторая пара чисел 17 и 21 - закрытый ключ. Шифрование выполняется следующим образом: сообщение возводится в степень e, берется остаток от деления на n, при этом результат должен быть меньше числа n. Получается 10 - это будут закодированные данные. Для раскодировки e возводится в степень d, вычисляется остаток от деления на n.
DSA
DSA (в отличие от RSA) используется только для цифровой подписи, но не для шифрования. Заданная подпись может быть проверена публично. Есть два алгоритма для создания подписи и проверки. Шифруется именно хеш-сообщение, которое представляет текст в цифровом виде. Поэтому для избежания коллизий выбирается сложная хэш-функция. Построение цифровой подписи состоит из следующих шагов.
Схема Эль-Гамаля
Шифрование по схеме Эль-Гамаля используется для цифровых подписей. Является продолжением алгоритма Диффи-Хеллмана.
При работе по этой схеме важно учитывать следующую особенность. Шифрование Эль-Гамаля не является алгоритмом цифровой подписи по схеме с одноименным названием. При шифровке текст преобразовывается в шифр, который длиннее исходного сообщения в 2 раза.
Генерация ключей происходит следующим образом.
При шифровании текста M выбирается системный ключ K. Он больше единицы и меньше p-1. Затем вычисляются числа a и b, которые являются шифротекстом, a = g^k mod p и b = y^k M mod p.