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

Криптография

Криптографией называется наука о составлении и расшифровке закодированных сообщений. Криптография является важным элементом для механизмов аутентификации, целостности и конфиденциальности.

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

Аутентификация, целостность данных и конфиденциальность данных поддерживаются тремя типами криптографических функций: симметричным шифрованием, асимметричным шифрованием и хэш-функциями.

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

Пример симметричного шифрования показан на рис. 7.5.


увеличить изображение
Рис. 7.5. Симметричное шифрование

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

  • электронной кодовой книги (Electronic Code Book - ECB);
  • цепочки зашифрованных блоков (Cipher Block Changing - CBC);
  • x-битовой зашифрованной обратной связи (Cipher FeedBack - CFB-x);
  • выходной обратной связи (Output FeedBack - OFB).

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

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