Основы криптографии: от математики до физики
Рассмотрим основы криптографии, поговорим о самых популярных шифрах и о том, как новое поколение криптографии связано с физикой.
69К открытий73К показов
Основы криптографии включают шифры, специальную терминологию и отдельные компоненты криптосистемы. Сегодня эта наука тесно связана с информационной безопасностью.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
Задачи, которые решает криптография:
- Конфиденциальность — когда нужно передать данные так, чтобы человек, перехвативший зашифрованное сообщение, не смог узнать его содержание.
- Аутентификация — получатель сообщения хочет быть уверен, что оно пришло от определённой стороны, а не от кого-либо ещё.
- Целостность — получатель сообщения хочет доказательства того, что оно не было изменено третьей стороной.
- Отказ от ответственности — предотвратить отказ автора за создание или отправку сообщения.
Популярные шифры
Чтобы понять основы шифрования, необходимо обратиться к популярным примерам.
Квадрат Полибия
Квадрат Полибия — шифр простой замены. В данном примере будет использоваться двумерная матрица 6х6, содержащая заглавные буквы алфавита и цифры от 0 до 9:
С матрицей 6х6 (36 буквенно-цифровых знаков) мы можем начать замену. Например, буква «А» имеет адрес 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
Шифротекст выше может быть легко взломан методом полного перебора, который заключается в сдвиге в одну из сторон на одну позицию, пока не получится какое-то смысловое сообщение.
Прим. пер. Существует более простой способ взлома шифра Цезаря — частотный анализ. Он заключается в подсчёте частоты встреч каждого символа в любом обычном тексте и в шифротексте. Потом символы с похожими частотами заменяются. Например, если в шифротексте чаще всего встречается буква «T», то она заменяется на букву «Е» для английского алфавита. Этот способ действует только для текстов свыше 300 символов.
Квадрат Виженера
Это усовершенствованный шифр Цезаря с разными значениями сдвига. Например, к первой букве сообщения применяется преобразование ROT5, ко второй — ROT16, etc.
Также у нас есть статья, из которой вы узнаете о самых популярных кодах и шифрах.
Полиморфизм
Основы шифрования и криптографии включают в себя полиморфизм. Это более продвинутая практика в криптографии и часто используется в техниках компьютерного шифрования. Такая техника, которая самостоятельно модифицирует криптоалгоритм после каждого выполнения, и на каждой итерации получаются разные результаты. Если понадобится зашифровать одну и ту же информацию два раза, то алгоритм выдаст разные шифротексты.
Распространённые алгоритмы
Сегодня шифры используют алгоритмы либо с секретным, либо с публичным ключом. В шифрах с закрытым ключом используется единственный ключ, которым обмениваются стороны. Такой ключ или шифр также называют симметричным.
В 1949 году Клод Шеннон из Bell Laboratories опубликовал фундаментальную теорию, положившую начало симметричному шифрованию, а десятилетия эволюции принесли примеры высокого качества. Однако только в 1975 году мощный алгоритм с закрытым ключом DES стал доступен для общего пользования.
Шифрование с помощью открытого ключа или асимметричное шифрование также возникло в середине 1970-х. Асимметричные шифры используют пару ключей — открытый, им делятся с другими людьми, и соответствующий ему закрытый, пользователь должен хранить его в секрете от других.
Стойкость шифровального алгоритма зависит от трёх важных факторов:
- Инфраструктура — если криптография встроена в ПО, то самым слабым звеном будет среда выполнения этого ПО.
- Длина ключа — практичный шифр должен использовать такую длину ключа, при которой полный перебор будет нецелесообразным.
- Качество алгоритма — ошибки шифрования могут ускорить процесс взлома для злоумышленников.
Виды алгоритмов
DES выдержал испытание временем и вошёл в основы криптографии. После четверти века исследований учёным удалось найти несколько спекулятивных атак, которые в конечном итоге не были столь эффективными, как метод полного перебора. Единственная реальная слабость DES-шифра — маленькая длина ключа в 56 бит.
Triple DES (3DES) — модификация DES, позволяющая увеличить длину ключа до 112 или 168 бит.
AES (Advanced Encryption Standard или Rijndael) поддерживает три длины ключа: 128, 192 и 256 бит. Использует 128-битный размер блоков. Считается стойким и используется по всему миру.
Так как DES был специально разработан для аппаратного обеспечения, то не было предусмотрено, чтобы он эффективно работал в ПО. NIST протестировал работу алгоритма AES в программной среде и разработал требования к хранению криптоматериала, чтобы гарантировать, что AES будет эффективно работать на C и Java, которые используются на рабочих станциях, а также в более ограниченных средах встроенных процессоров ARM и смарт-карт.
Архитектура AES основана на принципе, известном как замена и перестановка, и быстро работает как в программном, так и на аппаратном уровнях. В отличие от своего предшественника — DES, AES не использует сеть Фейстеля.
Длина ключа, используемого для шифрования AES, указывает на количество повторений раундов преобразования, которые преобразуют входной сигнал, называемый исходным текстом, а конечный вывод — шифротекстом. Число циклов повторения выглядит следующим образом:
- 10 циклов повторения для 128-битных ключей;
- 12 циклов повторения для 192-битных ключей;
- 14 циклов повторения для 256-битных ключей.
Каждый раунд состоит из нескольких этапов обработки. Набор обратных повторений применяется для преобразования шифротекста в исходный текст с использованием того же самого ключа шифрования.
Квантовая криптография
Это уже не совсем основы криптографии, а более продвинутый уровень.
На приведённой диаграмме квантовое распределение ключей (протокол BB84), являющееся безопасным способом связи, который реализует криптографический протокол с участием компонентов квантовой механики. Он позволяет двум сторонам создавать общий закрытый ключ, известный только им.
Новое поколение криптографии будет основываться не на математике, а на физике. Учёные в области физики атомов и частиц уже вошли в мир основ криптографии и хотят использовать законы квантовой механики для отправки сообщений, которые невозможно взломать. Они основоположники новой науки — квантовой криптографии.
69К открытий73К показов