Симметричное шифрование

Симметричное шифрование, которое часто называют шифрованием с помощью секретных ключей, в основном используется для обеспечения конфиденциальности данных. На рисунке 1 показаны два пользователя, Алиса и Боб, которые хотят установить между собой конфиденциальную связь.

Для этого Алиса и Боб должны совместно выбрать единый математический алгоритм, который будет использоваться для шифрования и расшифровки данных. Кроме того, им нужно выбрать общий ключ (секретный ключ), который будет использоваться с принятым ими алгоритмом шифрования/расшифровки.

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

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

При шифровании или расшифровке этот алгоритм как бы сдвигает буквы вверх и вниз по алфавиту. Ключом в этом примере являются три буквы.

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

Сегодня широко используются такие алгоритмы секретных ключей, как Data Encryption Standard (DES), 3DES (или «тройной DES») и International Data Encryption Algorithm (IDEA). Эти алгоритмы шифруют сообщения блоками по 64 бита. Если объем сообщения превышает 64 бита (как это обычно и бывает), необходимо разбить его на блоки по 64 бита в каждом, а затем каким-то образом свести их воедино. Такое объединение, как правило, происходит одним из следующих четырех методов: электронной кодовой книги (ECB), цепочки зашифрованных блоков (CBC), x-битовой зашифрованной обратной связи (CFB-x) или выходной обратной связи (OFB).

Шифрование с помощью секретного ключа чаще всего используется для поддержки конфиденциальности данных и очень эффективно реализуется с помощью неизменяемых «вшитых» программ (firmware).

Этот метод можно использовать для аутентификации и поддержания целостности данных, но метод цифровой подписи (о котором мы скажем позже) является более эффективным. С методом секретных ключей связаны следующие проблемы:

· Необходимо часто менять секретные ключи, поскольку всегда существует риск их случайного раскрытия.

· Трудно обеспечить безопасное генерирование и распространение секретных ключей.

Для получения и безопасного распространения секретных ключей обычно используется алгоритм Диффи-Хеллмана (Diffie-Hellman), который описывается ниже.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: