Чердачок Брюса Шнайера. Выпуск №3 “Алгоритмы и ключи”
Криптографический алгоритм (cryptographic algoritm), который также называется шифром (cipher), — это математическая функция, используемая для шифрования и расшифровки. Если безопасность алгоритма обеспечивается засекречиванием самого алгоритма, то он называется ограниченным (restricted). Такие алгоритмы уже давно не применяются. Причина вполне очевидна: если участник группы использующей этот алгоритм покидает группу, то группа вынуждена переходить на новый алгоритм.
Эту и другие проблемы ограниченных алгоритмов современная криптография решает с помощью ключей (keys), который обозначают буквой K. Ключ может быть любым значением выбранным из множества. Множество возможных значений ключа называют пространством ключей (keyspace). Этот ключ используется и при шифровании, и при расшифровке. В формулах он выглядит как индекс K у функций шифрования/расшифровки:
Ek(M) = C
Dk(С) = M
При этом должно выполняться следующее равенство:
Dk(Ek(M)) = M
В некоторых алгоритмах при шифровании и расшифровке используются разные ключи. В этом случае выполняются такие соотношения:
Ek1(M) = C
Dk2(C) = M
Dk2(Ek1(M)) = M
Безопасность этих алгоритмов полностью основана на ключе, а не на деталях. Это означает, что алгоритм можно опубликовать и проанализировать. Программные продукты, использующие этот алгоритм могут становиться массовыми. Не имеет значения, что злоумышленник знает ваш алгоритм: если ему не известен конкретный ключ, то он не может читать ваши сообщения.
Полезно ввести еще одно понятие - криптосистема (crytosystem). Это алгоритм и все возможные открытые тексты, шифротексты и ключи.
#ЧБШ