Основы криптографии

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

Криптография решает несколько задач, среди которых:

  1. Конфиденциальность — это когда необходимо передать данные так, чтобы никто, кроме получателя, не мог прочитать их содержимое, даже если сообщение было перехвачено третьей стороной.
  2. Аутентификация — получатель сообщения должен быть уверен, что оно было отправлено определенным отправителем, а не кем-то еще.
  3. Целостность — получатель сообщения должен иметь уверенность в том, что сообщение не было изменено в процессе передачи, и его содержимое осталось неизменным.
  4. Отказ от ответственности — это мера, предотвращающая возможность автора сообщения отказаться от его создания или отправки в будущем.

Популярные шифры

Для понимания основ шифрования полезно обратиться к популярным примерам.

Квадрат Полибия

Квадрат Полибия
Квадрат Полибия

С помощью матрицы размером 6х6, содержащей 36 буквенно-цифровых символов, мы можем произвести замену символов. Например, буква «A» находится на позиции 1х1, что можно записать как x=1, y=1, или сократить до 11. Аналогично, позиция буквы «N» будет 2х3, то есть x=2, y=3, или 23.

  • Сообщение: ENCRYPT ME 2 DAY
  • Шифротекст: 51–23–31–63–15–43–24 13–51 55 41–11–15

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

Шифр Цезаря

Шифр Цезаря
Шифр Цезаря

Шифр Цезаря является первым известным шифром. Его использовал Цезарь для шифрования сообщений, отправляемых его генералам, чтобы предотвратить чтение приказов врагами, которые могли перехватить сообщения в Римской Империи. Этот шифр применяет простой метод шифрования, который сегодня считается устаревшим и легко взламываемым: буквы алфавита просто сдвигаются на определенное количество позиций вправо или влево. Различные значения сдвига приводят к разным результатам шифрования. Число сдвига определяет количество букв, на которое осуществляется смещение в одном направлении, для создания шифротекста.

Пример использования шифра со сдвигом влево на 3:

  • Сообщение: ENCRYPT ME
  • Шифротекст: HQFUBSW PH

Метод полного перебора может быть использован для легкого взлома шифротекста выше. Он заключается в последовательном сдвиге текста на одну позицию вправо или влево до тех пор, пока не будет получено какое-то смысловое сообщение.

Квадрат Виженера

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

Квадрат Виженера
Квадрат Виженера

Полиморфизм

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

Распространённые алгоритмы

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

Распространённые алгоритмы
Распространённые алгоритмы

В 1949 году ученый Клод Шеннон из Bell Laboratories представил фундаментальную теорию, которая заложила основы симметричного шифрования. Затем, на протяжении десятилетий, произошла эволюция этой технологии, и появились примеры высококачественных шифров. Но только в 1975 году мощный алгоритм с закрытым ключом DES стал доступен для широкого использования.

Асимметричное шифрование, или шифрование с помощью открытого ключа, также возникло в середине 1970-х годов. Асимметричные шифры используют пару ключей: открытый ключ, который распространяется между пользователями, и соответствующий ему закрытый ключ, который пользователь должен хранить в тайне от других.

Распространённые алгоритмы
Распространённые алгоритмы

Три ключевых фактора определяют стойкость шифровального алгоритма:

  1. Инфраструктура — если криптография используется в программном обеспечении, то наиболее уязвимым местом может быть среда выполнения этого ПО.
  2. Длина ключа — шифр должен использовать длину ключа, которая делает перебор нецелесообразным. Поэтому практический шифр должен иметь достаточную длину ключа, чтобы стать стойким.
  3. Качество алгоритма — ошибка в шифровании может ускорить процесс взлома для злоумышленников, поэтому качество алгоритма играет важную роль в стойкости шифра.

Виды алгоритмов

DES является долгоживущим и надежным шифром, который был включен в основы криптографии. За четверть века исследований было обнаружено несколько возможных атак, но они не оказались столь эффективными, как полный перебор. Единственной реальной уязвимостью DES является использование короткого ключа длиной всего 56 бит.

Виды алгоритмов
Виды алгоритмов

Triple DES (3DES) представляет собой измененную версию DES, которая позволяет увеличить длину ключа до 112 или 168 бит. 3DES обеспечивает большую стойкость, чем оригинальный DES, за счет того, что шифрование происходит трижды с использованием разных ключей.

AES (Advanced Encryption Standard), также известный как Rijndael, поддерживает три различные длины ключа: 128, 192 и 256 бит. Он использует блоки размером в 128 бит и считается одним из самых стойких и надежных алгоритмов шифрования, который широко используется по всему миру.

Алгоритм шифрования Rijndael (AES)
Алгоритм шифрования Rijndael (AES)

DES был специально разработан для аппаратного обеспечения, поэтому не было учтено, как он может эффективно работать в програмном обеспечении. NIST протестировал работу алгоритма AES в программной среде и определил требования к хранению криптоматериалов, чтобы гарантировать, что AES будет эффективно работать на языках программирования C и Java, которые широко используются на рабочих станциях, а также в ограниченных средах, таких как встроенные процессоры ARM и смарт-карты.

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

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

  • Для 128-битных ключей используется 10 повторений.
  • Для 192-битных ключей используется 12 повторений.
  • Для 256-битных ключей используется 14 повторений.

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

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