Шифрова́ние — обратимое преобразование информации в целях сокрытия от неавторизованных лиц с предоставлением в это же время авторизованным пользователям доступа к ней. Главным образом, шифрование служит для соблюдения конфиденциальности передаваемой информации. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма.
Пользователи являются авторизованными, если они обладают определённым аутентичным ключом. Вся сложность и, собственно, задача шифрования состоит в том, как именно реализован этот процесс.
В целом, шифрование состоит из двух составляющих: зашифрование и расшифрование.
С помощью шифрования обеспечиваются три состояния безопасности информации: Конфиденциальность. Шифрование используется для скрытия информации от неавторизованных пользователей при передаче или при хранении. Целостность. Шифрование используется для предотвращения изменения информации при передаче или хранении. Идентифицируемость. Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.
Для того, чтобы прочитать зашифрованную информацию, принимающей стороне необходимы ключ и дешифратор (устройство, реализующее алгоритм расшифровывания). Идея шифрования состоит в том, что злоумышленник, перехватив зашифрованные данные и не имея к ним ключа, не может ни прочитать, ни изменить передаваемую информацию. Кроме того, в современных криптосистемах (с открытым ключом) для шифрования, расшифрования данных могут использоваться разные ключи. Однако, с развитием криптоанализа, появились методики, позволяющие дешифровать закрытый текст без ключа. Они основаны на математическом анализе переданных данных.
Цели шифрования Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищённым каналам связи. Такая передача данных включает два взаимно обратных процесса: Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифровыванию. Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифровки.
Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако впоследствии шифровать информацию начали с целью её хранения в ненадёжных источниках. Шифрование информации с целью её хранения применяется и сейчас, это позволяет избежать необходимости в физически защищённом хранилище.
Шифром называется пара алгоритмов, реализующих каждое из указанных преобразований. Эти алгоритмы применяются к данным с использованием ключа. Ключи для шифрования и для расшифровки могут различаться, а могут быть одинаковыми. Секретность второго (расшифровывающего) из них делает данные недоступными для несанкционированного ознакомления, а секретность первого (шифрующего) делает невозможным внесение ложных данных. В первых методах шифрования использовались одинаковые ключи, однако в 1976 году были разработаны алгоритмы с применением разных ключей. Сохранение этих ключей в секретности и правильное их разделение между адресатами является очень важной задачей для сохранения конфиденциальности передаваемой информации. Эта задача исследуется в теории управления ключами (в некоторых источниках она упоминается как разделение секрета).
В настоящий момент существует огромное количество методов шифрования. Главным образом эти методы подразделяются в зависимости от структуры используемых ключей: на симметричные методы и асимметричные методы. Кроме того, методы шифрования могут обладать различной криптостойкостью и по-разному обрабатывать входные данные — блочные шифры и поточные шифры. Всеми этими методами, их созданием и анализом занимается наука криптография.
Зашифровывание и расшифровывание Как было сказано, шифрование состоит из двух взаимно обратных процессов: зашифрование и расшифрование. Оба этих процесса на абстрактном уровне представимы математическими функциями, к которым предъявляются определённые требования. Математически данные, используемые в шифровании, представимы в виде множеств, над которыми построены данные функции. Иными словами, пусть существуют два множества, представляющие данные — и ; и каждая из двух функций (шифрующая и расшифровывающая) является отображением одного из этих множеств в другое. Зашифровывающая функция: Расшифровывающая функция:
Элементы этих множеств — и — являются аргументами соответствующих функций. Также в эти функции уже включено понятие ключа. То есть, тот необходимый ключ для зашифровывания или расшифровывания является частью функции. Это позволяет рассматривать процессы шифрования абстрактно, вне зависимости от структуры используемых ключей. Хотя, в общем случае, для каждой из этих функций аргументами являются данные и вводимый ключ.
Если для зашифровывания и расшифровывания используется один и тот же ключ , то такой алгоритм относят к симметричным. Если же из ключа шифрования алгоритмически сложно получить ключ расшифровывания, то алгоритм относят к асимметричным, то есть к алгоритмам с открытым ключом.
Для применения в целях шифрования эти функции, в первую очередь, должны быть взаимно обратными ().
Важной характеристикой шифрующей функции является её криптостойкость. Косвенной оценкой криптостойкости является оценка взаимной информации между открытым текстом и шифротекстом, которая должна стремиться к нулю.
Криптостойкость шифра
Криптографическая стойкость — свойство криптографического шифра противостоять криптоанализу, то есть анализу, направленному на изучение шифра с целью его дешифрования. Для изучения криптоустойчивости различных алгоритмов была создана специальная теория, рассматривающая типы шифров и их ключи, а также их стойкость. Основателем этой теории является Клод Шеннон. Криптостойкость шифра есть его важнейшая характеристика, которая отражает то, насколько успешно алгоритм решает задачу шифрования.
Любая система шифрования, кроме абсолютно криптостойких, может быть взломана простым перебором всех возможных в данном случае ключей. Но перебирать придётся до тех пор, пока не отыщется тот единственный ключ, который и поможет расшифровать шифротекст. Выбор этого единственного ключа основан на возможности определения правильно расшифрованного сообщения. Зачастую эта особенность является камнем преткновения при подборе ключа, так как при переборе вручную криптоаналитику достаточно просто отличить правильно расшифрованный текст, однако ручной перебор очень медленен. Если же программа выполняет перебор, то это происходит быстрее, однако ей сложно выделить правильный текст. Невозможность взлома полным перебором абсолютно криптостойкого шифра так же основана на необходимости выделить в расшифрованном сообщении именно то, которое было зашифровано в криптограмме. Перебирая все возможные ключи и применяя их к абсолютно стойкой системе, криптоаналитик получит множество всех возможных сообщений, которые можно было зашифровать (в нём могут содержаться и осмысленные сообщения). Кроме того, процесс полного перебора также длителен и трудоёмок.
Другой метод дешифровки основывается на анализе перехваченных сообщений. Этот метод имеет большое значение, так как перехват сообщений возможен, если злоумышленник обладает специальным оборудованием, которое, в отличие от достаточно мощного и дорогостоящего оборудования для решения задач методом полного перебора, более доступно. Например, перехват ван Эйка для ЭЛТ монитора осуществим с помощью обычной телевизионной антенны. Кроме того, существуют программы для перехвата сетевого трафика (снифферы), которые доступны и в бесплатных версиях.
При анализе передаваемых сообщений криптоустойчивость шифра оценивается из возможности получения дополнительной информации об исходном сообщении из перехваченного. Возможность получения этой информации является крайне важной характеристикой шифра, ведь эта информация в конечном итоге может позволить злоумышленнику дешифровать сообщение. В соответствии с этим шифры делятся на абсолютно стойкие и достаточно стойкие.
Клод Шеннон впервые оценил количество подобной информации в зашифрованных сообщениях следующим образом:
Пусть возможна отправка любого из сообщений , то есть любого подмножества множества . Эти сообщения могут быть отправлены с вероятностями соответственно. Тогда мерой неопределенности сообщения может служить величина информационной энтропии:
Пусть отправлено сообщение , тогда его шифротекст . После перехвата зашифрованного эта величина становится условной неопределенностью — условием здесь является перехваченное шифрованное сообщение . Необходимая условная энтропия задаётся следующей формулой:
Через здесь обозначена вероятность того, что исходное сообщение есть при условии, что результат его зашифрования есть .
Это позволяет ввести такую характеристику шифрующей функции (алгоритма) , как количество информации об исходном тексте, которое злоумышленник может извлечь из перехваченного шифротекста. Необходимая характеристика является разностью между обычной и условной информационной неопределенностью:
Эта величина, называемая взаимной информацией, всегда неотрицательна. Её значение есть показатель криптостойкости алгоритма. Взаимная информация показывает, насколько уменьшится неопределённость при получении соответствующего шифротекста и не станет ли она таковой, что при перехвате некоторого количества шифротекстов станет возможной расшифровка исходного сообщения.
Абсолютно стойкие системы Оценка криптоустойчивости шифра, проведенная Шенноном, определяет фундаментальное требование к шифрующей функции . Для наиболее криптоустойчивого шифра неопределённости (условная и безусловная) при перехвате сообщений должны быть равны для сколь угодно большого числа перехваченных шифротекстов.
Таким образом, злоумышленник не сможет извлечь никакой полезной информации об открытом тексте из перехваченного шифротекста. Шифр, обладающий таким свойством, называется абсолютно стойким.
Для соблюдения равенства энтропий Шеннон вывел требования к абсолютно стойким системам шифрования, касающиеся используемых ключей и их структуры. Ключ генерируется для каждого сообщения (каждый ключ используется один раз). Ключ статистически надёжен (то есть вероятности появления каждого из возможных символов равны, символы в ключевой последовательности независимы и случайны). Длина ключа равна или больше длины сообщения.
Стойкость таких систем не зависит от того, какими возможностями обладает криптоаналитик. Однако практическое применение абсолютно стойких криптосистем ограничено соображениями стоимости таких систем и их удобства. Идеальные секретные системы обладают следующими недостатками: Шифрующая система должна создаваться с исключительно глубоким знанием структуры используемого языка передачи сообщений Сложная структура естественных языков крайне сложна, и для устранения избыточности передаваемой информации может потребоваться крайне сложное устройство. Если в передаваемом сообщении возникает ошибка, то эта ошибка сильно разрастается на этапе кодирования и передачи в связи со сложностью используемых устройств и алгоритмов.
Достаточно стойкие системы В связи со сложностью применения абсолютно стойких систем, повсеместно более распространёнными являются так называемые достаточно стойкие системы. Эти системы не обеспечивают равенство энтропий и, как следствие, вместе с зашифрованным сообщением передают некоторую информацию об открытом тексте.
Их криптостойкость зависит от того, какими вычислительными возможностями обладает криптоаналитик. Иными словами, шифротекст взламывается, если криптоаналитик обладает достаточными ресурсами, такими как время и количество перехваченных сообщений. Практическая стойкость таких систем основана на их вычислительной сложности и оценивается исключительно на определённый момент времени с двух позиций: вычислительная сложность полного перебора для данной системы