Введение
Протокол шифрования CipherSaber — это простой симметричный протокол шифрования, основанный на потоковом шифре RC4. Его цели носят как технический, так и политический характер: он обеспечивает разумно надежную защиту конфиденциальности сообщений, но при этом разработан достаточно просто, чтобы даже начинающие программисты могли запомнить алгоритм и реализовать его самостоятельно. По словам создателя, версия CipherSaber на языке программирования QBASIC занимает всего шестнадцать строк кода. Его политическая составляющая заключается в том, что благодаря своей простоте его можно перереализовать в любом месте и в любое время, предоставляя пользователям возможность конфиденциально общаться даже в условиях, когда распространение стандартного криптографического программного обеспечения полностью невозможно из-за правительственных или иных ограничений.
CipherSaber is a simple symmetric encryption protocol based on the RC4 stream cipher. Its goals are both technical and political: it gives reasonably strong protection of message confidentiality, yet it's designed to be simple enough that even novice programmers can memorize the algorithm and implement it from scratch. According to the designer, a CipherSaber version in the QBASIC programming language takes just sixteen lines of code. Its political aspect is that because it's so simple, it can be reimplemented anywhere at any time, and so it provides a way for users to communicate privately even if government or other controls make distribution of normal cryptographic software completely impossible.
История и цель
CipherSaber был изобретен Арнольдом Рейнхольдом, чтобы сильная криптография оставалась в руках общественности. Многие правительства ввели юридические ограничения на использование криптографии, и многие другие предлагают их ввести. Публикуя детали безопасного, но простого в программировании алгоритма шифрования, Рейнхольд надеется сделать технологию шифрования доступной каждому. В отличие от программ вроде PGP, распространяемых как готовое к использованию программное обеспечение, Рейнхольд публикует CipherSaber только в виде спецификации. Спецификация разработана так, чтобы даже начинающий программист мог легко её реализовать. Как объясняется на веб-сайте CipherSaber: в трилогии "Звёздные войны" Джорджа Лукаса от джедаев ожидалось, что они сами изготовят свои световые мечи. Сообщение было ясным: воин, столкнувшийся с могущественной империей, стремящейся к тоталитарному контролю, должен быть самодостаточным. Поскольку мы сталкиваемся с реальной угрозой запрета на распространение сильной криптографии в Соединенных Штатах и, возможно, во всем мире, нам следует подражать мастерам-джедаям и научиться создавать программы сильной криптографии самостоятельно. Если это удастся, подавить сильную криптографию станет невозможно. На веб-сайте есть графический файл, отображаемый как сертификат "CipherKnight"; однако этот файл зашифрован с помощью CipherSaber с использованием известного ключа, опубликованного вместе с файлом. Пользователи могут просмотреть изображение (и при желании распечатать его для обрамления), предварительно написав собственную реализацию CipherSaber для расшифровки файла. Написав собственную реализацию и выполнив несколько других небольших задач, пользователь становится CipherKnight, а расшифрованный сертификат удостоверяет его рыцарский статус. Таким образом, вместо предоставления готового инструмента, создатель CipherSaber надеется помочь пользователям компьютеров понять, что они способны создавать собственные программы сильной криптографии, не полагаясь на профессиональных разработчиков или разрешение правительства.
In George Lucas's Star Wars trilogy, Jedi Knights were expected to make their own light sabers. The message was clear: a warrior confronted by a powerful empire bent on totalitarian control must be self reliant. As we face a real threat of a ban on the distribution of strong cryptography, in the United States and possibly world wide, we should emulate the Jedi masters by learning how to build strong cryptography programs all by ourselves. If this can be done, strong cryptography will become impossible to suppress. The web site has a graphics file that displays as a "CipherKnight" certificate; however, that file is encrypted using CipherSaber with a known key published alongside the file. Users can view the graphic (and optionally print it out for framing) by first writing their own CipherSaber implementation to decrypt the file. By writing their own implementation and performing a few other small tasks, the user becomes a CipherKnight and the decrypted certificate attests to their knighthood. So, rather than providing a ready made tool, CipherSaber's designer hopes to help computer users understand that they're capable of making their own strong cryptography programs without having to rely on professional developers or the permission of the government.
Техническое описание
В оригинальной версии CipherSaber (ныне называемой CipherSaber 1 или CS1) каждое зашифрованное сообщение начинается со случайного десятибайтового вектора инициализации (IV). Этот IV добавляется к ключу CipherSaber для формирования входных данных для алгоритма инициализации ключа RC4. За этим непосредственно следует сообщение, пропущенное через операцию XOR с ключевым потоком RC4. Атака Флюэра, Мантина и Шамира на RC4 сделала CipherSaber 1 уязвимым, если с одним и тем же ключом CipherSaber отправлено большое количество сообщений (>1000). Для устранения этой проблемы разработчик CipherSaber создал модифицированный протокол (называемый CipherSaber 2), в котором цикл инициализации ключа RC4 повторяется несколько раз (рекомендуется 20). Помимо согласования секретного ключа, стороны, использующие CipherSaber 2, должны договориться о количестве повторений этого цикла. Выходной шифротекст представляет собой двоичный байтовый поток, который должен быть "неотличим от случайного шума". Для использования в системах связи, принимающих только данные ASCII, автор рекомендует кодировать байтовый поток в виде шестнадцатеричных цифр. Это менее эффективно, чем, например, кодирование MIME в base64, но его гораздо проще реализовать в коде, что соответствует цели CipherSaber – максимальной простоте реализации.
Безопасность и удобство использования
CipherSaber достаточно надёжен и удобен, чтобы эффективно донести свою политическую позицию. Однако он значительно уступает в безопасности и удобстве тому, что обычно ожидается от подобной криптосистемы. В то время как CipherKnights могут использовать CipherSaber для обмена случайными сообщениями друг с другом с разумной степенью безопасности, будь то для развлечения или в критической ситуации, CipherSaber сводит криптографию к самым основам и не предоставляет достаточного количества функций для широкого распространения и повседневного использования. Автор CipherSaber фактически просит пользователей загрузить и установить PGP в качестве одного из шагов для становления CipherKnight. CipherSaber можно рассматривать как систему резервного копирования, используемую в случае запрета программ вроде PGP. Некоторые, но не все недостатки и ограничения CipherSaber уникальны для RC4. CipherSaber не обеспечивает аутентификацию сообщений. Эта уязвимость, общая для всех чистых потоковых шифров, легко эксплуатируется. Например, злоумышленник, знающий, что сообщение содержит фразу "Встретимся с Джейн и мной завтра в 15:30" в определенной точке, может восстановить ключевой поток в этой точке из зашифрованного и открытого текста. Затем злоумышленник может заменить исходное содержимое любым другим содержимым той же длины, например, "Встреча в 15:30 отменена, оставайтесь дома", зашифровав его восстановленным ключевым потоком, не зная ключа шифрования. Как и большинство шифров, используемых сегодня для передачи больших объемов данных, CipherSaber является симметричным шифром. Следовательно, каждая пара общающихся пользователей должна каким-то образом безопасно договориться о ключе шифрования, и каждый пользователь должен безопасно хранить ключи шифрования тех, с кем он собирается общаться. Согласование ключей шифрования при наличии только небезопасных каналов связи – это классическая проблема «что было раньше, курица или яйцо», решаемая криптографией с открытым ключом, как в программах вроде PGP. Избежание необходимости безопасного согласования симметричных ключей между каждой парой пользователей значительно удобнее и в целом повышает безопасность. Обычно используемый протокол для достижения хорошей эффективности и удобства заключается в использовании шифра с открытым ключом, такого как RSA, для обмена ключами, а затем симметричного шифра, такого как CipherSaber, для передачи больших объемов данных с использованием согласованного ключа. Короткая настройка ключа RC4, используемая в CipherSaber 1, взломана: теперь известно, что исходная схема планирования ключей RC4 слишком слаба для защиты большого количества шифротекстов, зашифрованных одним и тем же ключом. CipherSaber 2 изменяет процедуру настройки ключа CipherSaber 1, повторяя ее несколько раз в надежде повысить безопасность (результат эквивалентен использованию стандартного RC4, начинающегося с ключа, который был предварительно обработан сложным алгоритмом). Хотя считается, что эта процедура устраняет уязвимость схемы планирования ключей RC4, ее эффективность не доказана. Как и любой шифр с выбранным ключом, обе версии CipherSaber уязвимы для атаки по словарю, если выбранный ключ (обычно пароль или парольная фраза) не имеет достаточной энтропии. Реализации симметричной криптографии обычно включают возможность генерации случайных ключей, когда требуется высокая безопасность. На сайте CipherSaber рекомендуется генерировать случайные пароли с высокой энтропией с помощью Diceware. Как и большинство других криптосистем (включая PGP), CipherSaber не предусматривает никаких мер для предотвращения обнаружения (в отличие от расшифровки) зашифрованных сообщений. Это потенциально серьезная проблема в некоторых ситуациях, для которых предназначен CipherSaber: если правительство запретит распространение криптографического программного обеспечения, оно, вероятно, также захочет преследовать любого, кого обнаружит отправляющим зашифрованные сообщения. Подробнее об этих проблемах и мерах противодействия им см. в разделах «Анализ трафика» и «Стеганография».