Введение

Протокол шифрования CipherSaber — это простой симметричный протокол шифрования, основанный на потоковом шифре RC4. Его цели носят как технический, так и политический характер: он обеспечивает разумно надежную защиту конфиденциальности сообщений, но при этом разработан достаточно просто, чтобы даже начинающие программисты могли запомнить алгоритм и реализовать его самостоятельно. По словам создателя, версия CipherSaber на языке программирования QBASIC занимает всего шестнадцать строк кода. Его политическая составляющая заключается в том, что благодаря своей простоте его можно перереализовать в любом месте и в любое время, предоставляя пользователям возможность конфиденциально общаться даже в условиях, когда распространение стандартного криптографического программного обеспечения полностью невозможно из-за правительственных или иных ограничений.

История и цель

CipherSaber был изобретен Арнольдом Рейнхольдом, чтобы сильная криптография оставалась в руках общественности. Многие правительства ввели юридические ограничения на использование криптографии, и многие другие предлагают их ввести. Публикуя детали безопасного, но простого в программировании алгоритма шифрования, Рейнхольд надеется сделать технологию шифрования доступной каждому. В отличие от программ вроде PGP, распространяемых как готовое к использованию программное обеспечение, Рейнхольд публикует CipherSaber только в виде спецификации. Спецификация разработана так, чтобы даже начинающий программист мог легко её реализовать. Как объясняется на веб-сайте CipherSaber: в трилогии "Звёздные войны" Джорджа Лукаса от джедаев ожидалось, что они сами изготовят свои световые мечи. Сообщение было ясным: воин, столкнувшийся с могущественной империей, стремящейся к тоталитарному контролю, должен быть самодостаточным. Поскольку мы сталкиваемся с реальной угрозой запрета на распространение сильной криптографии в Соединенных Штатах и, возможно, во всем мире, нам следует подражать мастерам-джедаям и научиться создавать программы сильной криптографии самостоятельно. Если это удастся, подавить сильную криптографию станет невозможно. На веб-сайте есть графический файл, отображаемый как сертификат "CipherKnight"; однако этот файл зашифрован с помощью CipherSaber с использованием известного ключа, опубликованного вместе с файлом. Пользователи могут просмотреть изображение (и при желании распечатать его для обрамления), предварительно написав собственную реализацию CipherSaber для расшифровки файла. Написав собственную реализацию и выполнив несколько других небольших задач, пользователь становится CipherKnight, а расшифрованный сертификат удостоверяет его рыцарский статус. Таким образом, вместо предоставления готового инструмента, создатель CipherSaber надеется помочь пользователям компьютеров понять, что они способны создавать собственные программы сильной криптографии, не полагаясь на профессиональных разработчиков или разрешение правительства.

Техническое описание

В оригинальной версии 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: если правительство запретит распространение криптографического программного обеспечения, оно, вероятно, также захочет преследовать любого, кого обнаружит отправляющим зашифрованные сообщения. Подробнее об этих проблемах и мерах противодействия им см. в разделах «Анализ трафика» и «Стеганография».