Придумывание хорошего шифра дело трудоемкое. Поэтому желательно увеличить время жизни хорошего шифра и использовать его для шифрования как можно большего количества сообщений. Но при этом возникает опасность, что противник уже разгадал (вскрыл) шифр и читает защищаемую информацию. Если же в шифре сеть сменный ключ то, заменив ключ, можно сделать так, что разработанные противником методы уже не дают эффекта.
В этой методологии алгоритм шифрования объединяет ключ с текстом для создания шифртекста. Безопасность систем шифрования такого типа зависит от конфиденциальности ключа, используемого в алгоритме шифрования, а не от хранения в тайне самого алгоритма. Многие алгоритмы шифрования общедоступны и были хорошо проверены благодаря этому (например, DES). Но основная проблема, связанная с этой методологией, состоит в том, как сгенерировать и безопасно передать ключи участникам взаимодействия. Как установить безопасный канал передачи информации между участниками взаимодействия до передачи ключей?
Другой проблемой является аутентификация. При этом существуют две серьезных проблемы:
· Сообщение шифруется кем-то, кто владеет ключом в данный момент. Это может быть владелец ключа;
· Но если система скомпрометирована, это может быть другой человек.
· Когда участники взаимодействия получают ключи, откуда они могут узнать, что эти ключи на самом деле были
· созданы и посланы уполномоченным на это лицом?
Существуют две методологии с использованием ключей - симметричная (с секретным ключом) и асимметричная (с открытым ключом). Каждая методология использует свои собственные процедуры, свои способы распределения ключей, типы ключей и алгоритмы шифрования и расшифровки ключей. Так как терминология, используемая этими методологиями, может показаться непонятной, дадим определения основным терминам:
Термин | Значение | Замечания |
Симметричная методология | Используется один ключ, с помощью которого производится как шифрование, так и расшифровка с использованием одного и того алгоритма симметричного шифрования. Этот ключ передается двум участникам взаимодействия безопасным образом до передачи зашифрованных данных. | Часто называется с методологией с секретным ключом. |
Асимметричная методология | Использует алгоритмы симметричного шифрования и симметричные ключи для шифрования данных. Использует алгоритмы асимметричного шифрования и асимметричные ключи для шифрования симметричного ключа. Создаются два взаимосвязанных асимметричных ключа. Симметричный ключ, зашифрованный с использованием одного асимметричного ключа и алгоритма асимметричного шифрования, должен расшифровываться с использованием другого ключа и другого алгоритма шифрования. Создаются два взаимосвязанных асимметричных ключа. Один должен быть безопасно передан его владельцу, а другой - тому лицу, которое отвечает за хранение этих ключей (СА- сертификационному центру ключей), до начала их использования. | Часто называется методологией с открытым ключом. |
Секретный ключ (1) | Симметричная методология. | Использует один ключ, с помощью которого производится как шифрование, так и расшифровка. См. выше. |
Секретный ключ (2) | Секретный ключ симметричного шифрования. | Симметричный секретный ключ. |
Секретный ключ (3) | Секретный ключ асимметричного шифрования | Асимметричный ключ. Асимметричные ключи создаются парами, так как связаны друг с другом. Выражение «секретный ключ» часто используют для одного из пары асимметричных ключей, который должен держаться в секрете. Асимметричный секретный ключ не имеет ничего общего с симметричным секретным ключом. |
Открытый ключ (1) | Асимметричная методология | Использует пару ключей, которые совместно создаются и связаны друг с другом. Все, что зашифровано одним ключом, может быть расшифровано только другим ключом этой пары. |
Открытый ключ (2) | Открытый ключ асимметричного шифрования | Асимметричные ключи создаются парами, каждый из двух ключей связан с другим. Выражение "открытый ключ" часто используют для одного из пары асимметричных ключей, который должен быть всем известен. |
Сеансовый ключ | Симметричный (секретный) ключ шифрования | Используется в асимметричной методологии для шифрования самих данных с помощью симметричных методологий. Это просто симметричный секретный ключ (см. выше). |
Алгоритм шифрования | Математическая формула | Для симметричных алгоритмов требуются симметричные ключи. Для асимметричных алгоритмов требуются асимметричные ключи. Вы не можете использовать симметричные ключи для асимметричных алгоритмов и наоборот. |
Секретные криптосистемы | Используют симметричные алгоритмы и симметричные (секретные) ключи для шифрования данных. | |
Открытые криптосистемы | Использует асимметричные алгоритмы и асимметричные ключи для шифрования сеансовых ключей. Используют симметричные алгоритмы и симметричные (секретные) ключи для шифрования данных. |
В этой методологии и для шифрования, и для расшифровки отправителем и получателем применяется один и тот же ключ, об использовании которого они договорились до начала взаимодействия. Если ключ не был скомпрометирован, то при расшифровке автоматически выполняется аутентификация отправителя, так как только отправитель имеет ключ, с помощью которого можно зашифровать информацию, и только получатель имеет ключ, с помощью которого можно расшифровать информацию. Так как отправитель и получатель - единственные люди, которые знают этот симметричный ключ, при компрометации ключа будет скомпрометировано только взаимодействие этих двух пользователей. Проблемой, которая будет актуальна и для других криптосистем, является вопрос о том, как безопасно распространять симметричные (секретные) ключи. Алгоритмы симметричного шифрования используют ключи не очень большой длины и могут быстро шифровать большие объемы данных.
Порядок использования систем с симметричными ключами:
1. Безопасно создается, распространяется и сохраняется симметричный секретный ключ.
2. Отправитель создает электронную подпись с помощью расчета хэш-функции для текста и присоединения полученной строки к тексту.
3. Отправитель использует быстрый симметричный алгоритм шифрования-расшифровки вместе с секретным симметричным ключом к полученному пакету (тексту вместе с присоединенной электронной подписью) для получения зашифрованного текста. Неявно, таким образом, производится аутентификация, так как только отправитель знает симметричный секретный ключ и может зашифровать этот пакет.
4. Только получатель знает симметричный секретный ключ и может расшифровать этот пакет.
5. Отправитель передает зашифрованный текст. Симметричный секретный ключ никогда не передается по незащищенным каналам связи.
6. Получатель использует тот же самый симметричный алгоритм шифрования-расшифровки вместе с тем же самым симметричным ключом (который уже есть у получателя) к зашифрованному тексту для восстановления исходного текста и электронной подписи. Его успешное восстановление аутентифицирует кого-то, кто знает секретный ключ.
7. Получатель отделяет электронную подпись от текста.
8. Получатель создает другую электронную подпись с помощью расчета хэш-функции для полученного текста.
9. Получатель сравнивает две этих электронных подписи для проверки целостности сообщения (отсутствия его искажения).
Доступными сегодня средствами, в которых используется симметричная методология, являются:
· Kerberos, который был разработан для аутентификации доступа к ресурсам в сети, а не для верификации данных. Он использует центральную базу данных, в которой хранятся копии секретных ключей всех пользователей.
· Сети банкоматов (ATM Banking Networks). Эти системы являются оригинальными разработками владеющих ими банков и не продаются. В них также используются симметричные методологии.
В этой методологии ключи для шифрования и расшифровки разные, хотя и создаются вместе. Один ключ делается известным всем, а другой держится в тайне. Хотя можно шифровать и расшифровывать обоими ключами, данные, зашифрованные одним ключом, могут быть расшифрованы только другим ключом. Все асимметричные криптосистемы являются объектом атак путем прямого перебора ключей, и поэтому в них должны использоваться гораздо более длинные ключи, чем те, которые используются в симметричных криптосистемах, для обеспечения эквивалентного уровня защиты. Это сразу же сказывается на вычислительных ресурсах, требуемых для шифрования, хотя алгоритмы шифрования на эллиптических кривых могут смягчить эту проблему.
Брюс Шнейер в книге "Прикладная криптография: протоколы, алгоритмы и исходный текст на C" приводит следующие данные об эквивалентных длинах ключей.
Длина симметричного ключа | Длина открытого ключа |
56 бит | 384 бит |
64 бита | 512 бит |
80 бит | 768 бит |
112 бит | 1792 бита |
128 бит | 2304 бита |
Для того чтобы избежать низкой скорости алгоритмов асимметричного шифрования, генерируется временный симметричный ключ для каждого сообщения и только он шифруется асимметричными алгоритмами. Само сообщение шифруется с использованием этого временного сеансового ключа и алгоритма шифрования/расшифровки, описанного в пункте 2.2.1.1. Затем этот сеансовый ключ шифруется с помощью открытого асимметричного ключа получателя и асимметричного алгоритма шифрования. После этого этот зашифрованный сеансовый ключ вместе с зашифрованным сообщением передается получателю. Получатель использует тот же самый асимметричный алгоритм шифрования и свой секретный ключ для расшифровки сеансового ключа, а полученный сеансовый ключ используется для расшифровки самого сообщения. В асимметричных криптосистемах важно, чтобы сеансовые и асимметричные ключи были сопоставимы в отношении уровня безопасности, который они обеспечивают. Если используется короткий сеансовый ключ ( например, 40-битовый DES), то не имеет значения, насколько велики асимметричные ключи. Хакеры будут атаковать не их, а сеансовые ключи. Асимметричные открытые ключи уязвимы к атакам прямым перебором отчасти из-за того, что их тяжело заменить. Если атакующий узнает секретный асимметричный ключ, то будет скомпрометирован не только текущее, но и все последующие взаимодействия между отправителем и получателем.