Шрифт:
Криптосистемы разделяются на симметричные криптосистемы и криптосистемы с открытым ключом.
В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ.
В системах с открытым ключом используются два ключа – открытый и закрытый, которые математически связаны друг с другом.
Информация шифруется с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения.
Термины распределение ключей и управление ключами относятся к процессам системы обработки информации, содержанием которых является составление и распределение ключей между пользователями.
Электронной (цифровой) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и подлинность сообщения.
Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т. е. криптоанализу). Имеется несколько показателей криптостойкости, среди которых:
1) количество всех возможных ключей;
2) среднее время, необходимое для криптоанализа. Преобразование Tk определяется соответствующим алгоритмом и значением параметра k. Эффективность шифрования с целью защиты информации зависит от сохранения тайны ключа и криптостойкости шифра.
Процесс криптографического закрытия данных может осуществляться как программно, так и аппаратно. Аппаратная реализация отличается существенно большей стоимостью, однако ей присущи и преимущества: высокая производительность, простота, защищенность и т. д. Программная реализация более практична, допускает гибкость в использовании.
Для современных криптографических систем защиты информации сформулированы следующие общепринятые требования:
1) зашифрованное сообщение должно поддаваться чтению только при наличии ключа;
2) число операций, необходимых для определения использованного ключа шифрования по фрагменту шифрованного сообщения и соответствующего ему открытого текста, должно быть не меньше общего числа возможных ключей;
3) число операций, необходимых для расшифровывания информации путем перебора всевозможных ключей, должно иметь строгую нижнюю оценку и выходить за пределы возможностей современных компьютеров (с учетом возможности использования сетевых вычислений);
4) знание алгоритма шифрования не должно влиять на надежность защиты;
5) незначительное изменение ключа должно приводить к существенному изменению вида зашифрованного сообщения даже при использовании одного и того же ключа;
6) структурные элементы алгоритма шифрования должны быть неизменными;
7) дополнительные биты, вводимые в сообщение в процессе шифрования, должен быть полностью и надежно скрыты в шифрованном тексте;
8) длина шифрованного текста должна быть равной длине исходного текста;
9) не должно быть простых и легко устанавливаемых зависимостей между ключами, последовательно используемыми в процессе шифрования;
10) любой ключ из множества возможных ключей должен обеспечивать надежную защиту информации;
11) алгоритм должен допускать как программную, так и аппаратную реализацию, при этом изменение длины ключа не должно вести к качественному ухудшению алгоритма шифрования.
Современные алгоритмы симметричного шифрования используют как подстановку, так и перестановку. Стандартом де-факто являются несколько раундов шифрования с разными ключами, которые генерируются на основе одного общего ключа. Большинство алгоритмов имеют структуру, аналогичную структуре шифра Файстеля, разработанного в 1973 г.
Надежный алгоритм шифрования должен удовлетворять двум свойствам: диффузии и конффузии.
Диффузия – каждый бит открытого текста должен влиять на каждый бит зашифрованного текста. Суть диффузии заключается в рассеянии статистических характеристик открытого текста внутри шифрованного текста.
Конфузия – отсутствие статистической взаимосвязи между ключом и зашифрованным текстом. Даже если противник определит какие-то статистические особенности зашифрованного текста, их будет недостаточно, чтобы получить информацию о ключе.
Структура шифра Файстеля
Данный шифр относится к категории блочных. Блочные шифры предназначены для шифрования небольших блоков определенной длины. Перед зашифровыванием произвольного текста его разбивают на блоки. Затем каждый блок зашифровывается отдельно. Шифр Файстеля работает с двоичным алфавитом, т. е. открытый и зашифрованный текст представлены последовательностью битов и предназначен для реализации на ЭВМ.
На вход алгоритма шифрования подается блок открытого текста, имеющий четную длину 2l и ключ K. Блок разделяется на две равные части – правую R0 и левую L0. Далее эти части проходят m раундов обработки, после чего снова объединяются в зашифрованный текст.