Что в криптографии называют открытым текстом?
Что называют открытым ключом в асимметричных методах шифрования?
Для каких целей применяется хеш-код в криптографии?
Когда в криптографии стало использоваться асимметричное шифрование?
Что определяет термин «Расстояние единственности», используемый в криптографии?
С точки зрения криптографии, энтропия сообщения определяет …
Когда в криптографии стало использоваться асимметричное шифрование?
Что определяет термин «Норма языка», используемый в криптографии?
Что определяет термин «Абсолютная норма языка», используемый в криптографии?
Для чего используются в криптографии сдвиговые регистры с обратной связью?
Лекция 1. Основные понятия
Предположим, что отправитель хочет послать сообщение получателю. Более того, этот отправитель хочет послать свое сообщение безопасно: он хочет быть уверен, что перехвативший это сообщение не сможет его прочесть.
Сообщения и шифрование
Само сообщение называется открытым текстом (иногда используется термин клер). Изменение вида сообщения так, чтобы спрятать его суть называется шифрованием. Шифрованное сообщение называется шифротекстом. Процесс преобразования шифротекста в открытый текст называется дешифрированием. Эта последовательность показана на Oth .
(Если вы хотите следовать стандарту ISO 7498-2, то в английских текстах используйте термины » enchipher » вместо » encrypt » («зашифровывать») и » dechipher » вместо » decrypt » («дешифровывать»)).
Искусство и наука безопасных сообщений, называемая криптографией, воплощается в жизнь криптографами. Криптоаналитиками называются те, кто постоянно используют криптоанализ, искусство и науку взламывать шифротекст, то есть, раскрывать, что находится под маской. Отрасль математики, охватывающая криптографию и криптоанализ, называется криптологией, а люди, которые ей занимаются, — криптологами. Современным криптологам приходится неплохо знать математику.
Рис. 1-1. Шифрование и дешифрирование
Обозначим открытый текст как М(от message , сообщение), или Р (от plaintext , открытый текст). Это может быть поток битов, текстовый файл, битовое изображение, оцифрованный звук, цифровое видеоизображение. да что угодно. Для компьютера М — это просто двоичные данные. (Во всех следующих главах этой книги рассматриваются только двоичные данные и компьютерная криптография.) Открытый текст может быть создан для хранения или передачи. В любом случае, М — это сообщение, которое должно быть зашифровано.
Обозначим шифротекст как С (от cipher text ). Это тоже двоичные данные, иногда того же размера, что и М, иногда больше. (Если шифрование сопровождается сжатием, С может быть меньше чем М. Однако, само шифрование не обеспечивает сжатие информации.) Функция шифрования Е действует на М, создавая С. Или, в математической записи:
В обратном процессе функция дешифрирования D действует на С, восстанавливая М:
Поскольку смыслом шифрования и последующего дешифрирования сообщения является восстановление первоначального открытого текста, должно выполняться следующее равенство:
Проверка подлинности, целостность и неотрицание авторства
Кроме обеспечения конфиденциальности криптография часто используется для других функций:
— Проверка подлинности. Получатель сообщения может проверить его источник, злоумышленник не сможет замаскироваться под кого-либо.
— Целостность. Получатель сообщения может проверить, не было ли сообщение изменено в процессе доставки, злоумышленник не сможет подменить правильное сообщение ложным.
— Неотрицание авторства. Отправитель не сможет ложно отрицать отправку сообщения.
Существуют жизненно важные требования к общению при помощи компьютеров, также как существуют аналогичные требования при общении лицом к лицу. То, что кто-то является именно тем, за кого он себя выдает. что чьи-то документы — водительские права, медицинская степень или паспорт — настоящие. что документ, полученный от кого-то, получен именно от этого человека. Как раз это обеспечивают проверка подлинности, целостность и неотрицание авторства.
Алгоритмы и ключи
Криптографический алгоритм, также называемый шифром, представляет собой математическую функцию, используемую для шифрования и дешифрирования. (Обычно это две связанных функции: одна для шифрования, а другая для дешифрирования.)
Если безопасность алгоритма основана на сохранении самого алгоритма в тайне, это ограниченный алгоритм. Ограниченные алгоритмы представляют только исторический интерес, но они совершенно не соответствуют сегодняшним стандартам. Большая или изменяющаяся группа пользователей не может использовать такие алгоритмы, так как всякий раз, когда пользователь покидает группу, ее члены должны переходить на другой алгоритм. Алгоритм должен быть заменен и, если кто-нибудь извне случайно узнает секрет.
Что еще хуже, ограниченные алгоритмы не допускают качественного контроля или стандартизации. У каждой группы пользователей должен быть свой уникальный алгоритм. Такие группы не могут использовать открытые аппаратные или программные продукты — злоумышленник может купить такой же продукт и раскрыть алгоритм. Им приходится разрабатывать и реализовывать собственные алгоритмы. Если в группе нет хорошего криптографа, то как ее члены проверят, что они пользуются безопасным алгоритмом?
Несмотря на эти основные недостатки ограниченные алгоритмы необычайно популярны для приложений с низким уровнем безопасности. Пользователи либо не понимают проблем, связанных с безопасностью своих систем, либо не заботятся о них.
Современная криптография решает эти проблемы с помощью ключа К. Такой ключ может быть любым значением, выбранным из большого множества. Множество возможных ключей называют пространством ключей. И шифрование, и дешифрирование этот ключ (то есть, они зависят от ключа, что обозначается индексом К), и теперь эти функции выглядят как:
При этом выполняется следующее равенство (см -1-й):
Для некоторых алгоритмов при шифровании и дешифрировании используются различные ключи (см -2-й). То есть ключ шифрования, К 1 , отличается от соответствующего ключа дешифрирования, К 2 . В этом случае:
D K 2 ( E K 1 ( M ))= M
Безопасность этих алгоритмов полностью основана на ключах, а не на деталях алгоритмов. Это значит, что алгоритм может быть опубликован и проанализирован. Продукты, использующие этот алгоритм, могут широко тиражироваться. Не имеет значения, что злоумышленнику известен ваш алгоритм, если ему не известен конкретный ключ, то он не сможет прочесть ваши сообщения.
Криптосистема представляет собой алгоритм плюс все возможные открытые тексты, шифротексты и ключи.
Рис. 1-2. Шифрование и дешифрирование с ключом
Рис. 1-3. Шифрование и дешифрирование с двумя различными ключами
Существует два основных типа алгоритмов, основанных на ключах: симметричные и с открытым ключом. Симметричные алгоритмы, иногда называемые условными алгоритмами, представляют собой алгоритмы, в которых ключ шифрования может быть рассчитан по ключу дешифрирования и наоборот. В большинстве симметричных алгоритмов кличи шифрования и дешифрирования одни и те же. Эти алгоритмы, также называемые алгоритмами с секретным ключом или алгоритмами с одним ключом, требуют, чтобы отправитель и получатель согласовали используемый ключ перед началом безопасной передачи сообщений. Безопасность симметричного алгоритма определяется ключом, раскрытие ключа означает, что кто угодно сможет шифровать и дешифрировать сообщения. Пока передаваемые сообщения должны быть тайными, ключ должен храниться в секрете. Шифрование и дешифрирование с использованием симметричного алгоритма обозначается как:
Симметричные алгоритмы делятся на две категории. Одни алгоритмы обрабатывают открытый текст побитно (иногда побайтно), они называются потоковыми алгоритмами или потоковыми шифрами. Другие работаю с группами битов открытого текста. Группы битов называются блоками, а алгоритмы — блочными алгоритмами или блочными шифрами. Для алгоритмов, используемых в компьютерных модемах, типичный размер блока составляет 64 бита — достаточно большое значение, чтобы помешать анализу, и достаточно небольшое и удобное для работы. (До появления компьютеров алгоритмы обычно обрабатывали открытый текст посимвольно. Такой вариант может рассматриваться как потоковый алгоритм, обрабатывающий поток символов.)
Алгоритмы с открытым ключом
Алгоритмы с открытым ключом (называемые асимметричными алгоритмами) разработаны таким образом, что ключ, используемый для шифрования, отличается от ключа дешифрирования. Более того, ключ дешифрирования не может быть (по крайней мере в течение разумного интервала времени) рассчитан по ключу шифрования. Алгоритмы называются «с открытым ключом», потому что ключ шифрования может быть открытым: кто угодно может использовать ключ шифрования для шифрования сообщения, но только конкретный человек с соответствующим ключом дешифрирования может расшифровать сообщение. В этих системах ключ шифрования часто называется открытым ключом, а ключ дешифрирования — закрытым. Закрытый ключ иногда называется секретным ключом, но чтобы не было путаницы с симметричными алгоритмами, этот термин не используется в данной книге. Шифрование с открытым ключом К обозначается как:
Хотя открытый и закрытый ключи различны, дешифрирование с соответствующим закрытым ключом обозначается как:
Иногда сообщения шифруются закрытым ключом, а дешифрируются открытым, что используется для цифровой подписи (см. раздел 2.6). Несмотря на возможную путаницу эти операции, соответственно, обозначаются как:
Смысл криптографии — в сохранении открытого текста (или ключа, или и того, и другого) в тайне от злоумышленников (также называемых взломщиками, соперниками, врагами, перехватчиками). Предполагается, что злоумышленники полностью контролируют линии связи между отправителем и получателем.
Криптоанализ — это наука получения открытого текста, не имея ключа. Успешно проведенный криптоанализ может раскрыть открытый текст или ключ. Он также может обнаружить слабые места в криптосистемах, что в конце концов приведет к предыдущему результату. (Раскрытие ключа не криптологическими способами называется компрометацией.)
Попытка криптоанализа называется вскрытием. Основное предположение криптоанализа, впервые сформулированное в девятнадцатом веке Датчманом А. Керкхофсом ( Dutchman A . Kerckhoffs ), юостоит в том, что безопасность полностью определяется ключом [794]. Керкхофс предполагает, что у криптоаналитика есть полное описание алгоритма и его реализации. (Конечно же, у ЦРУ не в обычае сообщать Моссад о своих криптографических алгоритмах, но Моссад возможно все равно добудет их.) Хотя в реальном мире криптоаналитики не всегда обладают подробной информацией, такое предположение является хорошей рабочей гипотезой. Если противник не сможет взломать алгоритм, даже зная, как он работает, то тем более враг не сможет вскрыть алгоритм без этого знания.
Существует четыре основных типа криптоаналитического вскрытия. Для каждого из них, конечно, предполагается, что криптоаналитик обладает всей полнотой знания об используемом алгоритме шифрования:
1. Вскрытие с использованием только шифротекста. У криптоаналитика есть шифротексты нескольких сообщений, зашифрованных одним и тем же алгоритмом шифрования. Задача криптоаналитика состоит в раскрытии открытого текста как можно большего числа сообщений или, что лучше, получении ключа (ключей), использованного для шифрования сообщений, для дешифрировании других с сообщений, зашифрованных теми же ключами.
Дано: С 1 =Е к (Р 1 ), С 2 =Е к (Р 2 ). С i =Е к (Р i )
Получить: Либо P 1 , Р 2 . P i ; k ; либо алгоритм, как получать P i +1 из C i +1 = E k ( P i +1 )
2. Вскрытие с использованием открытого текста. У криптоаналитика есть доступ не только к шифро-текстам нескольких сообщений, но и к открытому тексту этих сообщений. Его задача состоит в получении ключа (или ключей), использованного для шифрования сообщений, для дешифрировании других сообщений, зашифрованных тем же ключом (ключами).
Дано: Р 1 , С 1 =Е к (Р 1 ), Р 2 , С 2 =Е к (Р 2 ). Р i , С i =Е к (Р i )
Получить: Либо k ; либо алгоритм, как получать P i +1 из C i +1 = E k ( P i +1 )
3. Вскрытие с использованием выбранного открытого текста. У криптоаналитика не только есть доступ к шифротекстам и открытым текстам нескольких сообщений, но и возможность выбирать открытый текст для шифрования. Это предоставляет больше вариантов чем вскрытие с использованием открытого текста, так как криптоаналитик может выбирать шифруемые блоки открытого текста, что может дать больше информации о ключе. Его задача состоит в получении ключа (или ключей), использованного для шифрования сообщений, или алгоритма, позволяющего дешифрировать новые с сообщения, зашифрованные тем же ключом (или ключами).
Дано: Р 1 , С 1 =Е к (Р 1 ), Р 2 , С 2 =Е к (Р 2 ). Р i , С i =Е к (Р i ) , где криптоаналитик может выбирать Р 1 Р 2 . P i
Получить: Либо k ; либо алгоритм, как получать P i +1 из C i +1 = E k ( P i +1 )
4. Адаптивное вскрытие с использованием открытого текста. Это частный случай вскрытия с использованием выбранного открытого текста. Криптоаналитик не только может выбирать шифруемый текст, но также может строить свой последующий выбор на базе полученных результатов шифрования. При вскрытии с использованием выбранного открытого текста криптоаналитик мог выбрать для шифрования только один большой блок открытого текста, при адаптивном вскрытии с использованием выбранного открытого текста он может выбрать меньший блок открытого текста, затем выбрать следующий блок, используя результаты первого выбора и так далее.
Существует по крайней мере еше три типа криптоаналитической вскрытия.
5. Вскрытие с использованием выбранного шифротекста. Криптоаналитик может выбрать различные шифротексты для дешифрирования и имеет доступ к дешифрированным открытым текстам. Например, у криптоаналитика есть доступ к «черному ящику», который выполняет автоматическое дешифрирование. Его задача состоит в получении ключа.
Дано: С 1 , P 1 = D k ( C 1 ), C 2 , P 2 = D k ( C 2 ). С i , P i = D k ( C i )
Такой тип вскрытия обычно применим к алгоритмам с открытым ключом и обсуждается в разделе 19.3. Вскрытие с использование выбранного шифротекста иногда также эффективно против симметричных алгоритмов. (Иногда вскрытие с использованием выбранного открытого текста и вскрытие с использованием выбранного шифротекста вместе называют вскрытием с использованием выбранного текста.)
6. Вскрытие с использованием выбранного ключа. Такой тип вскрытия означает не то, что криптоаналитик может выбирать ключ, а что у него есть некоторая информация о связи между различными ключами. Этот странный, запутанный и не очень практичный тип вскрытия обсуждается в разделе 12.4.
7. Бандитский криптоанализ. Криптоаналитик угрожает, шантажирует или пытает кого-нибудь, пока не получит ключ. Взяточничество иногда называется вскрытием с покупкой ключа. Это очень мощные способы вскрытия, часто являющиеся наилучшим путем взломать алгоритм.
Вскрытия с известным открытым текстом и с использованием выбранного открытого текста встречаются чаще, чем можно подумать. Не является невозможным для криптоаналитика добыть открытый текст шифрованного сообщения или подкупить кого-нибудь, кто зашифрует выбранное сообщение. Может и не потребоваться никого подкупать — передав письмо послу, вы, возможно, обнаружите, что письмо будет зашифровано и отправлено в его страну для изучения. Многие сообщения имеют стандартные начало и окончание, что может быть известно криптоаналитику. Особенно уязвим шифрованный исходный код из-за частого использования ключевых слов: # define , struct , else , return . Те же проблемы и у шифрованного исполнимого кода: функции, циклические структуры и так далее. Вскрытия с известным открытым текстом (и вскрытия с выбранным шифротекстом) успешно использовались в борьбе с немцами и японцами в ходе Второй мировой войны. Исторические примеры вскрытий такого типа можно найти в книгах Дэвида Кана [794,795,796].
И не забывайте о предположении Керкхофса: если мощь вашей новой криптосистемы опирается на то, что взломщик не знает, как работает алгоритм, вы пропали. Если вы считаете, что хранение принципа работы алгоритма в секрете лучше защитит вашу криптосистему, чем предложение академическому сообществу проанализировать алгоритм, вы ошибаетесь. А если вы думаете, что кто-то не сможет дизассемблировать ваш исходный код и восстановить ваш алгоритм, вы наивны. (В 1994 году такое произошло с алгоритмом RC 4, см. раздел 17.1.) Нашими лучшими алгоритмами являются те, которые были разработаны открыто, годами взламывались лучшими криптографами мира и все еще несокрушимы. (Агентство Национальной Безопасности хранит свои алгоритмы в секрете, но у них работают лучшие криптографы мира, а у вас — нет. Кроме того, они обсуждают свои алгоритмы друг с другом, полагаясь на способность товарища обнаружить все слабости в своей работе.)
У криптоаналитиков не всегда есть доступ к алгоритмам (например, вскрытие в ходе Второй мировой войны Соединенными Штатами японского дипломатического кода PURPLE [794]), но часто они его получают. Если алгоритм используется в коммерческой программе безопасности, то это просто вопрос времени и денег, удастся ли дизассемблировать программу и раскрыть алгоритм. Если же алгоритм используется в военной системе связи, то это просто вопрос времени и денег купить (или украсть) аппаратуру и реконструировать алгоритм.
Те, кто стремится получить нераскрываемый шифр, считая этот шифр таковым только потому, что они сами не смогли его взломать, либо гении, либо дураки. К несчастью, последних в мире достаточно много. Остерегайтесь людей, расхваливающих надежность своих алгоритмов, но отказывающихся их опубликовать. Доверять таким алгоритмам нельзя.
Хорошие криптографы опираются на мнение других, отделяя хорошие алгоритмы от плохих.
Различные алгоритмы предоставляют различные степени безопасности в зависимости от того, насколько трудно взломать алгоритм. Если стоимость взлома алгоритма выше, чем стоимость зашифрованных данных, вы, скорее всего, в безопасности. Если время взлома алгоритма больше, чем время, в течение которого зашифрованные данные должны сохраняться в секрете, то вы также, скорее всего, в безопасности. Если объем данных, зашифрованных одним ключом, меньше, чем объем данных, необходимый для взлома алгоритма, и тогда вы, скорее всего, в безопасности.
Я говорю «скорее всего», потому что существует вероятность новых прорывов в криптоанализе. С другой стороны, значимость большинства данных падает со временем. Важно, чтобы значимость данных всегда оставалась меньше, чем стоимость взлома системы безопасности, защищающей данные.
Ларе Кнудсен ( Lars Knudsen ) разбил вскрытия алгоритмов по следующим категориям, приведенным в порядке убывания значимости [858]:
1. Полное вскрытие. Криптоаналитик получил ключ, К, такой, что D K ( C ) = Р.
2. Глобальная дедукция. Криптоаналитик получил альтернативный алгоритм, А, эквивалентный D K ( C ) без знания К.
3. Местная (или локальная) дедукция. Криптоаналитик получил открытый текст для перехваченного шифротекста.
4. Информационная дедукция. Криптоаналитик получил некоторую информацию о ключе или открытом тексте. Такой информацией могут быть несколько бит ключа, сведения о форме открытого текста и так далее.
Алгоритм является безусловно безопасным, если, независимо от объема шифротекстов у криптоаналитика, информации для получения открытого текста недостаточно. По сути, только шифрование одноразовыми блокнотами (см. раздел 1.5) невозможно вскрыть при бесконечных ресурсах. Все остальные криптосистемы подвержены вскрытию с использованием только шифротекста простым перебором возможных ключей и проверкой осмысленности полученного открытого текста. Это называется вскрытием грубой силой (см. раздел 7.1).
Криптография больше интересуется криптосистемами, которые тяжело взломать вычислительным способом. Алгоритм считается вычислительно безопасным (или, как иногда называют, сильным), если он не может быть взломан с использованием доступных ресурсов сейчас или в будущем. Термин «доступные ресурсы» является достаточно расплывчатым. Сложность вскрытия можно измерить (см раздел 11.1) различными способами:
1. Сложность данных. Объем данных, используемых на входе операции вскрытия.
2. Сложность обработки. Время, нужное для проведения вскрытия. Часто называется коэффициентом работы.
3. Требования к памяти. Объем памяти, необходимый для вскрытия.
В качестве эмпирического метода сложность вскрытия определяется по максимальному из этих трех коэффициентов. Ряд операций вскрытия предполагают взаимосвязь коэффициентов: более быстрое вскрытие возможно за счет увеличения требований к памяти.
Сложность выражается порядком величины. Если сложность обработки для данного алгоритма составляет 2 128 , то 2 128 операций требуется для вскрытия алгоритма. (Эти операции могут быть сложными и длительными.) Так, если предполагается, что ваши вычислительные мощности способны выполнять миллион операций в секунду, и вы используете для решения задачи миллион параллельных процессоров, получение ключа займет у вас свыше 10 19 лет, что в миллиард раз превышает время существования вселенной.
В то время, как сложность вскрытия остается постоянной (пока какой-нибудь криптоаналитик не придумает лучшего способа вскрытия), мощь компьютеров растет. За последние полвека вычислительные мощности феноменально выросли, и нет никаких причин подозревать, что эта тенденция не будет продолжена. Многие криптографические взломы пригодны для параллельных компьютеров: задача разбивается на миллиарды маленьких кусочков, решение которых не требует межпроцессорного взаимодействия. Объявление алгоритма безопасным просто потому, что его нелегко взломать, используя современную технику, в лучшем случае ненадежно. Хорошие криптосистемы проектируются устойчивыми к взлому с учетом развития вычислительных средств на много лет вперед.
Исторически термин код относится к криптосистеме, связанной с лингвистическими единицами: словами, фразами, предложениями и так далее. Например, слово «ОЦЕЛОТ» может кодировать целую фразу «ПОВОРОТ НАЛЕВО НА 90 ГРАДУСОВ», слово «ЛЕДЕНЕЦ» — фразу «ПОВОРОТ НАПРАВО НА 90 ГРАДУСОВ», а слова «ПОДСТАВЬ УХО» могут кодировать слово «ГАУБИЦА». Коды такого типа не рассматриваются в данной книге, см. [794,795]. Коды полезны только при определенных обстоятельствах. Если у вас нет кода для «МУРАВЬЕДЫ», вы не сможете передать это понятие. А используя шифр можно сказать все.
1.2 Стеганография
Стеганография служит для передачи секретов в других сообщениях, так что спрятано само существование секрета. Как правило отправитель пишет какое-нибудь неприметное сообщение, а затем прячет секретное сообщение на том же листе бумаги. Исторические приемы включают невидимые чернила, невидимые простому глазу пометки у букв, плохо заметные отличия в написании букв, пометки карандашом машинописных символов, решетки, покрывающие большую часть сообщения кроме нескольких символов и тому подобное.
Ближе к сегодняшнему дню люди начали прятать секреты в графических изображениях, заменяя младший значащий бит изображения битом сообщения. Графическое изображение при этом менялось совсем незаметно — большинство графических стандартов определяют больше цветовых градаций, чем способен различить человеческий глаз — и сообщение извлекалось на противоположном конце. Так в черно-белой картинке 1024×1024 пиксела можно спрятать сообщение в 64 Кбайт. Многие общедоступные программы могут проделывать подобный фокус.
Имитационные функции Питера Уэйнера ( Peter Wayner ) маскируют сообщения. Эти функции изменяют сообщение так, что его статистический профиль становится похожим на что-нибудь еще: раздел The New York Times , а пьесу Шекспира или телеконференцию в Internet [1584,1585]. Этот тип стеганографии не одурачит человека, но может обмануть большой компьютер, ищущий нужную информацию в Internet .
Лекция 2. Докомпьютерные шифры
2.1 Подстановочные и перестановочные шифры
До появления компьютеров криптография состояла из алгоритмов на символьной основе. Различные криптографические алгоритмы либо заменяли одни символы другими, либо переставляли символы. Лучшие алгоритмы делали и то, и другое, и по много раз.
Сегодня все значительно сложнее, но философия остается прежней. Первое изменение заключается в том, что алгоритмы стали работать с битами, а не символами. Это важно хотя бы с точки зрения размера алфавита — с 26 элементов до двух. Большинство хороших криптографических алгоритмов до сих пор комбинирует подстановки и перестановки.
Подстановочным шифром называется шифр, который каждый символ открытого текста в шифротексте заменяет другим символом. Получатель инвертирует подстановку шифротекста, восстанавливая открытый текст. В классической криптографии существует четыре типа подстановочных шифров:
— Простой подстановочный шифр, или моноалфавитный шифр, — это шифр, который каждый символ открытого текста заменяет соответствующим символом шифротекста. Простыми подстановочными шифрами являются криптограммы в газетах.
— Однозвучный подстановочный шифр похож на простую подстановочную криптосистему за исключением того, что один символ открытого текста отображается на несколько символов шифротекста. Например, «А» может соответствовать 5, 13, 25 или 56, «В» — 7, 19, 31 или 42 и так далее.
— Полиграмный подстановочный шифр — это шифр, который блоки символов шифрует по группам. Например, » ABA » может соответствовать » RTQ «, » ABB » может соответствовать » SLL » и так далее.
— Полиалфавитный подстановочный шифр состоит из нескольких простых подстановочных шифров. Например, могут быть использованы пять различных простых подстановочных фильтров; каждый символ открытого текста заменяется с использованием одного конкретного шифра.
Знаменитый шифр Цезаря, в котором каждый символ открытого текста заменяется символом, находящегося тремя символами правее по модулю 26 («А» заменяется на » D ,» «В» — на «Е». » W » — на » Z «, » X » — на «А», » Y » — на «В», » Z » — на «С»), представляет собой простой подстановочный фильтр. Он действительно очень прост, так как алфавит шифротекста представляет собой смещенный, а не случайно распределенный алфавит открытого текста.
ROT 13 — это простая шифровальная программа, обычно поставляемая с системами UNIX . Она также является простым подстановочным шифром. В этом шифре «А» заменяется на » N ,» «В» — на «О» и так далее. Каждая буква смещается на 13 мест. Шифрование файла программой ROT 13 дважды восстанавливает первоначальный файл.
P = ROT 13( ROT 13( P ))
ROT 13 не используется для безопасности, она часто применяется в почте, закрывая потенциально неприятный текст, решение головоломки и тому подобное.
Простые подстановочные шифры легко раскрываются, так как шифр не прячет частоты использования различных символов в открытом тексте. Чтобы восстановить открытый текст, хорошему криптоаналитику требуется только знать 26 символов английского алфавита [1434]. Алгоритм вскрытия таких шифров можно найти в [578, 587, 1600, 78, 1475, 1236, 880]. Хороший компьютерный алгоритм приведен в [703].
Однозвучные подстановочные шифры использовались уже в 1401 году в герцогстве Мантуа [794]. Они более сложны для вскрытия, чем простые подстановочные шифры, хотя и они не скрывают всех статистических свойств языка открытого текста. При помощи вскрытия с известным открытым текстом эти шифры раскрываются тривиально. Вскрытие с использованием только шифротекста более трудоемко, но и оно занимает на компьютере лишь несколько секунд. Подробности приведены в [1261].
Полиграммные подстановочные шифры — это шифры, которые кодируют сразу группы символов. Шифр Play — fair («Честная игра»), изобретенный в 1854 году, использовался англичанами в Первой мировой войне [794]. Он шифрует пары символов, и его криптоанализ обсуждается в [587,1475,880]. Другим примером полиграммного подстановочного шифра является шифр Хилла ( Hill ) [732]. Иногда можно видеть как вместо шифра используется кодирование по Хаффману ( Huffman ), это небезопасный полиграммный подстановочный шифр.
Полиалфавитные подстановочные шифры были изобретены Лином Баттистой ( Lean Battista ) в 1568 году [7 94 ]. Они использовались армией Соединенных Штатов в ходе Гражданской войны в Америке. Несмотря на то, что они легко могут быть взломаны [819, 577, 587, 794] (особенно с помощью компьютеров), многие коммерческие продукты компьютерной безопасности используют такие шифры [1387,1390, 1502]. (Подробности того, как вскрыть эту схему шифрования, используемую программой WordPerfect , можно найти в [135,139].) Шифр Вигенера ( Vigenere ), впервые опубликованный в 1586 году, и шифр Бофора ( Beaufort ) также являются примерами полиалфавитных подстановочных шифров.
У полиалфавитных подстановочных шифров множественные однобуквенные ключи, каждый из которых используется для шифрования одного символа открытого текста. Первым ключом шифруется первый символ открытого текста, вторым ключом — второй символ, и так далее. После использования всех ключей они повторяются циклически. Если применяется 20 однобуквенных ключей, то каждая двадцатая буква шифруется тем же ключом. Этот параметр называется периодом шифра. В классической криптографии шифры с длинным периодом было труднее раскрыть, чем шифры с коротким периодом. Использование компьютеров позволяет легко раскрыть подстановочные шифры с очень длинным периодом.
Шифр с бегущим ключом (иногда называемый книжным шифром), использующий один текст для шифрования другого текста, представляет собой другой пример подобного шифра. И хотя период этого шифра равен длине текста, он также может быть легко взломан [576,794].
В перестановочном шифре меняется не открытый текст, а порядок символов. В простом столбцовом перестановочном шифре открытый текст пишется горизонтально на разграфленном листе бумаги фиксированной ширины, а шифротекст считывается по вертикали (см. -3-й). Дешифрирование представляет собой запись шифротекста вертикально на листе разграфленной бумаги фиксированной ширины и затем считывание открытого текста горизонтально.
Криптоанализ этих шифров обсуждается в [587,1475]. Так как символы шифротекста те же, что и в открытом тексте, частотный анализ шифротекста покажет, что каждая буква встречается приблизительно с той же частотой, что и обычно. Это даст криптоаналитику возможность применить различные методы, определяя правильный порядок символов для получения открытого текста. Применение к шифротексту второго перестановочного фильтра значительно повысит безопасность. Существуют и еще более сложные перестановочные фильтры, но компьютеры могут раскрыть почти все из них.
Немецкий шифр ADFCVX , использованный в ходе Первой мировой войны, представлял собой перестановочный фильтр в сочетании с простой подстановкой. Этот для своего времени очень сложный алгоритм был раскрыт Жоржем Пенвэном ( Georges Painvin ), французским криптоаналитиком [794].
Хотя многие современные алгоритмы используют перестановку, с этим связана проблема использования большого объема памяти, а также иногда требуется работа с сообщениями определенного размера. Подстановка более обычна.
В 1920-х годах для автоматизации процесса шифрования были изобретены различные механические устройства. Большинство использовало понятие ротора, механического колеса, используемого для выполнения подстановки.
Роторная машина, включающая клавиатуру и набор роторов, реализует вариант шифра Вигенера. Каждый ротор представляет собой произвольное размещение алфавита, имеет 26 позиций и выполняет простую подстановку. Например, ротор может быть использован для замены «А» на » F «, «В» на » U «, «С» на » I » и так далее. Выходные штыри одного ротора соединены с входными штырями следующего ротора.
Открытый текст : COMPUTER GRAPHICS MAY BE SLOW BUT AT LEAST IT’S EXPENSIVE.
Шифротекст : CAELP OPSEE MHLAN PIOSS UCWTI TSBIV EMUTE RATS GYAE RBTX
Рис. 1-4. Столбцовый перестановочный фильтр.
Например, в четырехроторной машине первый ротор может заменять «А» на » F «, второй — » F » на » Y «, третий — » Y » на «Е» и четвертый — «Е» на «С», «С» и будет конечным шифротекстом. Затем некоторые роторы смещаются, и в следующий раз подстановки будут другими.
Именно комбинация нескольких роторов и механизмов, движущих роторами, и обеспечивает безопасность машины. Так как роторы вращаются с различной скоростью, период для роторной машины равен 26 n . Некоторые роторные машины также могут иметь различные положения для каждого ротора, что делает криптоанализ еще более бессмысленным.
Самым известным роторным устройство является Энигма ( Enigma ). Энигма использовалась немцами во Второй мировой войне. Сама идея пришла в голову Артуру Шербиусу ( Arthur Scherbius ) и Арвиду Герхарду Дамму ( Arvid Gerhard Damm ) в Европе. В Соединенных Штатах она была запатентована Артуром Шербиусом [1383]. Немцы значительно усовершенствовали базовый проект для использования во время войны.
У немецкой Энигмы было три ротора, котроые можно было выбрать из пяти возможных, коммутатор, который слегка тасовал открытый текст, и отражающий ротор, который заставлял каждый ротор обрабатывать открытый текст каждого письма дважды. Несмотря на сложность Энигмы, она была взломана в течение Второй мировой войны. Сначала группа польских криптографов взломала немецкую Энигму и объяснила раскрытый алгоритм англичанам. В ходе войны немцы модифицировали Энигму, а англичане продолжали криптоанализ новых версий. Объяснение работы роторных шифров и способов их раскрытия можно найти в [794, 86, 448, 498, 446, 880, 1315, 1587, 690]. В двух следующих отчетах увлекательно рассказывается о взломе Энигмы [735, 796].
Для дальнейшего чтения
Данная книга не является книгой по классической криптографии, поэтому далее я не буду подробно останавливаться на этих предметах. Прекрасными книгами по докомпьютерной криптологии являются [587, 1475]. [448] содержит современный криптоанализ шифровальных машин. Дороти Деннинг ( Dorothy Denning ) рассматривает многие из этих шифров в [456], а [880] содержит беспристрастный сложный математический анализ тех же самых шифров. Другим описанием старой криптографии, описывающим аналоговую криптографию, является [99]. Прекрасный обзор выполнен в статье [579]. Великолепны также книги по исторической криптографии Дэвида Кана [794, 795, 796].
1.4 Простое XOR
XOR представляет собой операцию «исключающее или»: ‘^’ в языке С или
Что в криптографии называют открытым текстом
6.6. Криптографические методы защиты
Криптографические методы защиты основаны на возможности осуществления некой операции преобразования информации, которая может выполняться одним (или более) пользователем ИС, обладающим некоторой секретной частью дополнительной информации.
В классической криптографии используется только одна единица конфиденциальной и обязательно секретной информации — ключ, знание которого позволяет отправителю зашифровать информацию, а получателю — расшифровать ее. Именно эта операция зашифрования/расшифрования с большой вероятностью невыполнима без знания секретного ключа.
В криптографии с открытым ключом имеется два ключа, по крайней мере один из которых нельзя вычислить из другого. Один ключ используется отправителем для зашифрования информации, сохранность которой должна быть обеспечена. Другой — получателем для обработки полученной информации. Бывают приложения, в которых один ключ должен быть несекретным, а другой — секретным.
Основным достоинством криптографических методов защиты информации является обеспечение ими гарантированной стойкости защиты, которую можно рассчитать и выразить в числовой форме (средним числом операций или количеством времени, необходимым для раскрытия зашифрованной информации или вычисления ключей).
Средства шифрования могут быть реализованы как аппаратно, так и чисто программно. В любом случае они должны быть сертифицированными, т.е. должны соответствовать определенным требованиям (стандартам). В противном случае, они не могут гарантировать пользователям необходимую стойкость шифрования.
Использование в системе защиты для различных целей нескольких однотипных алгоритмов шифрования нерационально. Оптимальным вариантом можно считать систему, в которой средства криптозащиты — общесистемные, т.е. выступают в качестве расширения функций операционной системы и включают сертифицированные алгоритмы шифрования всех типов (блочные и потоковые, с закрытыми и открытыми ключами).
Прозрачное шифрование всей информации на дисках, что широко рекомендуется рядом разработчиков средств защиты, оправдано лишь в том случае, когда компьютер используется только одним пользователем и объемы дисков невелики. Но на практике даже персональные компьютеры используются группами из нескольких пользователей. И не только потому, что ПК на всех не хватает, но и в силу специфики работы защищенных систем. Так, автоматизированные рабочие места операторов систем управления используются двумя-четырьмя операторами, работающими посменно, и рассматривать их как одного пользователя нельзя в силу требований разделения ответственности.
Очевидно, что в такой ситуации приходится либо отказаться от разделения ответственности и разрешить пользоваться ключом шифра нескольким операторам, либо создавать отдельные закрытые диски для каждого из них и запретить им тем самым обмен закрытой информацией, либо часть информации хранить и передавать в открытом виде, что по сути равносильно отказу от концепции прозрачного шифрования всей информации на дисках.
Кроме того, прозрачное шифрование дисков требует значительных накладных расходов ресурсов системы (времени и производительности). И не только непосредственно в процессе чтения-записи данных. Дело в том, что надежное криптографическое закрытие информации предполагает периодичес-кую смену ключей шифрования, а это приводит к необходимости перешиф-рования всей информации на диске с использованием нового ключа (необходимо всю информацию расшифровать с использованием старого и зашифровать с использованием нового ключа). Это требует значительного времени. Кроме того, при работе в системе с шифрованными дисками задержки возникают не только при обращении к данным, но и при запуске программ, что значительно замедляет работу компьютера. Поэтому, использовать криптографическую защиту следует ограниченно, защищая только ту информацию, которую действительно надо закрыть от несанкционированного доступа.
Основные сведения о криптографии. Под криптологией (от греческого kruptos — тайный и logos сообщение) понимается наука о безопасности (секретности) связи.
Криптология делится на две части: криптографию (шифрование) и криптоанализ. Криптограф пытается найти методы обеспечения секретности и или аутентичности (подлинности) сообщений. Криптоаналитик пытается выполнить обратную задачу: раскрыть шифртекст или подделать его так, чтобы он был принят как подлинный.
Одним из основных допущений криптографии является то, что криптоаналитик противника имеет полный шифртекст и ему известен алгоритм шифрования, за исключением секретного ключа. При этих допущениях криптограф разрабатывает систему, стойкую при анализе только на основе шифротекста. На практике допускается некоторое усложнение задачи криптографа. Криптоаналитик противника может иметь фрагменты открытого текста и соответствующего ему шифротекста. В этом случае криптограф разрабатывает систему стойкую при анализе на основе открытого текста. Криптограф может даже допустить, что криптоаналитик противника способен ввести свой открытый текст и получить правильный шифртекст с помощью секретного ключа (анализ на основе выбранного открытого текста), и наконец, — объединить две последние возможности (анализ на основе выбранного текста).
Многие из стратегий нарушителя могут быть блокированы с помощью криптографических средств защиты информации, но следует отметить, что большинство стратегий нарушителя связано с проблемами аутентичности пользователя и сообщений.
Подсистема криптографической защиты. Подсистема объединяет средства криптографической защиты информации и предназначена для обеспечения целостности, конфиденциальности, аутентичности критичной информации, а также обеспечения юридической значимости электронных документов в ИС. По ряду функций подсистема кооперируется с подсистемой защиты от НСД. Поддержку подсистемы криптографической защиты в части управления ключами осуществляет подсистема управления СЗИ.
Структурно подсистема состоит из:
♦ программных средств симметричного шифрования данных;
♦ программно-аппаратных средств цифровой подписи электронных документов (ПАС ЦП). Функции подсистемы предусматривают;
♦ обеспечение целостности передаваемой по каналам связи и хранимой информации;
♦ имитозащиту сообщений, передаваемых по каналам связи;
♦ скрытие смыслового содержания конфиденциальных сообщений, передаваемых по каналам связи и хранимых на носителях;
♦ обеспечение юридической значимости электронных документов;
♦ обеспечение аутентификации источника данных.
Функции подсистемы направлены на ликвидацию наиболее распространенных угроз сообщениям в автоматизированных системах:
♦ угрозы, направленные на несанкционированное ознакомление с информацией;
♦ несанкционированное чтение информации на машинных носителях и в ЗУ ЭВМ;
♦ незаконное подключение к аппаратуре и линиям связи;
♦ снятие информации на шинах питания;
♦ перехват ЭМИ с линий связи;
♦ угрозы, направленные на несанкционированную модификацию (нарушение целостности) информации:
♦ изменение служебной или содержательной части сообщения;
♦ изъятие (уничтожение) сообщения.
♦ угрозы, направленные на искажение аутентичности отправителя сообщения:
♦ незаконное присвоение идентификаторов другого пользователя, формирование и отправка электронного документа от его имени (маскарад), либо утверждение, что информация получена от некоего пользователя, хотя она сформирована самим нарушителем;
♦ повторная передача документа, сформированного другим пользователем;
♦ искажение критичных с точки зрения аутентичности полей документа (даты формирования, порядкового номера, адресных данных, идентификаторов отправителя и получателя и др.).
♦ угрозы, связанные с непризнанием участия:
♦ отказ от факта формирования электронного документа;
♦ отказ от факта получения электронного документа или ложные сведения о времени его получения;
♦ утверждение, что получателю в определенный момент была послана информация, которая в действительности не посылалась (или посылалась в другое время).
Аутентичность сообщений. Конечной целью шифрования является обеспечение защиты информации от несанкционированного ознакомления, аутентификации обеспечения защиты участников информационного обмена от обмана, осуществляемого на основе имитации, т.е., например подделки шифртекста до прихода подлинного шифртекста, подмены (навязывании) ложной информации после прихода подлинного шифртекста.
Под аутентификацией информации понимается установление подлинности информации исключительно на основе внутренней структуры самой информации независимо от источника этой информации, установление законным получателем (возможно арбитром) факта, что полученная информация наиболее вероятно была передана законным отправителем (источником) и что она при этом не заменена и не искажена.
Любые преднамеренные и случайные попытки искажений информации обнаруживаются с определенной вероятностью. Наиболее полно проблема аутентичности проявляется в вычислительных сетях, где можно выделить следующие ее виды:
Аутентификация пользователя сети — установление подлинности личности пользователя сети, которому требуется доступ к защищаемой информации или необходимо подключиться к сети;
Аутентификация сети — установление подлинности сети, к которой получен доступ;
Аутентификация хранящихся массивов программ и данных — установление факта, что данный массив не был изменен в течение времени, когда он был вне посредственного контроля, а также решение вопросов об авторстве этого массива данных;
Аутентификация сообщений — установление подлинности содержания полученного по каналам связи сообщения и решение вопросов об авторстве сообщения.
Решение указанных задач возможно как с применением классических систем шифрования, так и систем с открытым ключом.
Криптографические методы защиты информации основаны на использовании криптографических систем, или шифров. Криптосистемы позволяют с высокой степенью надежности защитить информацию путем ее специального преобразования. В криптопреобразовании используется один или несколько секретных параметров, неизвестных злоумышленнику, на чем и основана стойкость криптосистем.
Криптосистемы подразделяются на симметричные и несимметричные. В симметричных системах преобразование (шифрование) сообщения и обратное преобразование (дешифрование) выполняются с использованием одного и того же секретного ключа, которым сообща владеют отправитель и получатель сообщения. В несимметричных системах, или системах с открытым ключом, каждый пользователь имеет свою ключевую пару, состоящую из ключа шифрования и ключа дешифрования (открытого и секретного ключа), при этом открытый ключ известен остальным пользователям.
Основными методами являются шифрование, цифровая подпись и имитозащита сообщений.
Шифрование сообщений позволяет преобразовать исходное сообщение (открытый текст) к нечитаемому виду; результат преобразования называют шифротекстом. Злоумышленник без знания секретного ключа шифрования не имеет возможности дешифровать шифротекст. Для шифрования сообщений, как правило, используются симметричные криптосистемы.
♦ скрытие содержания сообщения;
♦ аутентификацию источника данных, только владелец секретного ключа мог сформировать и отправить шифротекст; однако электронный документ не имеет при этом юридической значимости, так как возможен подлог со стороны получателя, также владеющего секретным ключом.
Цифровая подпись обеспечивает:
♦ аутентификацию источника данных, только владелец секретного несимметричного ключа мог сформировать цифровую подпись; получатель имеет только открытый ключ, на котором подпись может быть проверена, в том числе и независимой третьей стороной;
♦ целостность сообщения: злоумышленник не может целенаправленно изменить текст сообщения, поскольку это обнаружится при проверке цифровой подписи, включающей зашифрованную контрольную сумму сообщения; однако он имеет возможность случайно модифицировать шифротекст или навязать ранее переданный шифротекст.
♦ юридическую значимость сообщения: цифровая подпись по свойствам эквивалентна рукописной подписи по невозможности ее подделки, возможности проверки получателем документа и независимой третьей стороной (арбитром) и обеспечением аутентификации создателя подписи.
Имитозащита сообщений состоит в формировании контрольной суммы (имитовставки, кода аутентификации сообщения) по криптоалгоритму, добавляемой к сообщению. После этого сообщение с имитовставкой, как правило, шифруется по симметричному криптоалгоритму. Принципы формирования имитовставок (кодов аутентификации сообщений) подробно рассмотрены в аванпроекте «Разработка пакета программных средств обеспечения юридической значимости лицензий посредством цифровой подписи».
Имитозащита обеспечивает — целостность сообщения в соответствии со свойствами контрольной суммы.
Анализ существующих методов криптографических преобразований. В настоящее время широкое применение нашли как симметричные, так и несимметричные криптосистемы.
Симметричные системы используются в основном для шифрования, а также для выработки криптографических контрольных сумм (имитовставки, хеш-функции). По способу использования средств шифрования информации обычно различают поточное и блочное симметричное шифрование. При поточном шифровании каждый символ исходного текста преобразуется независимо от других, что позволяет осуществлять шифрование одновременно с передачей данных по каналу связи. При блочном шифровании исходный текст преобразуется поблочно, причем преобразование символов в пределах блока является взаимозависимым. Известно большое число алгоритмов блочного шифрования, в том числе принятых в качестве национальных стандартов. Наиболее известен американский алгоритм DES.
Шифрование сообщений осуществляется на абонентском или канальном уровне. Средства шифрования реализуются программно, аппаратно-программно или аппаратно.
Разработки в области канального шифрования ведутся в основном в странах НАТО. Среди фирм, изготавливающих подобное оборудование, наиболее известными являются: CyLink, Fredericks, Harris, GTE, E-Systems (США), Newbridge Microsystems (Канада), Siemens, Telefunken, Tele Security Timman (Германия), Philips USFA (Нидерланды), Cryptech Belgie (Бельгия), Plessy, Racal, Corros, Marconi (Великобритания).
Интересным с точки зрения перспектив развития средств канального шифрования является предложенный фирмой Newbridge Microsystems (Канада) процессор СА20СОЗА для шифрования данных по стандарту DES. Ключ хранится в энергонезависимой постоянной памяти, не имеющей доступа извне. Предлагаются версии процессора с тактовыми частотами 2,5 и 5 МГц.
Наиболее важными характеристиками средств шифрования, работающих на канальном уровне, являются:
♦ возможность работы в сетях с коммутацией пакетов Х.25;
♦ тип возможных к использованию модемов;
♦ протоколы обмена ключевой информацией;
♦ способ ввода ключей;
♦ реализация функций обратного вызова, электронной подписи и др.
В основном скорости шифрования равны 64 Кбит/с для синхронного режима и 19,2 Кбит/с для асинхронного. Этого вполне достаточно для работы по выделенным телефонным линиям, но совершенно не приемлемо для обмена зашифрованной информацией по оптоволоконным линиям связи.
Для таких приложений могут подойти только высокоскоростные шифраторы CIDEC-HS, CIDEC-HSi, и CIDEC-VHS фирмы Cylink — мирового лидера в производстве средств канального шифрования. Устройство FX-709 также обеспечивает высокую скорость работы, но является мостом для соединения сетей Ethernet через интерфейсы RS-422 и RS-449.
Для канального шифрования, как правило, используются потоковые шифры. Главным их достоинством является отсутствие размножения ошибок и высокая скорость. Единственным стандартным методом генерирования последовательностей для поточного шифрования остается метод, применяемый в стандарте шифрования данных DES в режиме обратной связи от выхода. Поэтому многие производители разрабатывают собственные алгоритмы, например фирма British Telecom реализовала в своих приборах B-CRYPT собственный секретный алгоритм В-152.
Программа аттестации коммерческих средств защиты связи ССЕР (Commercial COMSEC endorsement program) Агентства национальной безопасности (АНБ) США предусматривает выдачу секретных криптоалгоритмов некоторым фирмам-изготовителям интегральных микросхем США для использования их только в США. Первый такой алгоритм был реализован фирмой Harris Semiconductor в ее криптографическом кристалле с интег-ральными микросхемами HS3447 Cipher.
Шифраторы, работающие на низких скоростях, обычно совмещают с модемами (STM-9600, Glo-Warm, Mesa 432i). Для средне- и высокоскоростных шифраторов изготовители обеспечивают совместимость с протоколами V.35, RS-449/422, RS-232 и Х.21. Определенная группа приборов ориентирована на применение в узлах и конечных пунктах сетей с коммутацией пакетов Х.25 (Datacriptor 64, Secure X.25L, Secure X.25H, Telecript-Dat, CD225, KryptoGuard). Управление ключами — принципиально важный вопрос в любой криптосис-теме. Большинство канальных шифраторов американского производства ориен-тировано на иерархический метод распределения ключей, описываемый национальным стандартом ANSI X9.17. В коммерческом секторе получают распространение криптосистемы с открытым распределением ключей. Напри-мер, фирма Cylink помимо реализации ANSI X9.17 имеет собственную запатентованную систему автоматического распределения ключей SEEK.
Ввод ключей в шифраторы может выполняться вручную с приборной панели, при помощи специальных карт либо дистанционно. Шифратором Glo-Warm можно управлять с сервера или рабочих станций; он имеет дополнительный внешний модуль дистанционного доступа.
Фирма Airtech, одна из первых начавшая производство стандартных встраиваемых блоков шифрования Rambutan, применяет магнитные карты для ввода ключей в канальные шифраторы. Фирма British Telecom выпускает карточку шифрования Lector 3000 для «дорожной» ЭВМ Toshiba TS 200/100 в версии с блоком Rambutan. Блок Rambutan разработан Группой безопасности связи и электронных средств CESG (Communications Electronics Security Group) Правительственного Управления связи Великобритании GCHQ (Government Communications Headguarters) специально для встраивания в аппаратуру, предназначенную для обработки и передачи важной правительственной информации, включающей и информацию с грифом «конфиденциально».
Шифраторы фирмы Cylink имеют клавиатуру для ввода ключей и могут передавать сигналы тревоги и состояния прибора. Дистанционная система управления сетью CNMS (Cylink Network Management System) фирмы Cylink может контролировать до 256 шифраторов CIDECHSi из одного центрального пункта.
Несимметричные криптосистемы используются для формирования цифровой подписи и шифрования (формирования) симметричных ключей при их рассылке по каналам связи. Среди протоколов распределения ключей на практике используется метод Диффи-Хеллмана и метод цифрового конверта. Среди методов цифровой подписи наибольшее применение нашли RSA-подобные алгоритмы и алгоритмы на основе метода Эль-Гамаля, стандар-тизованные в ряде стран. Наиболее перспективным представляется использование усовершенствованного метода цифровой подписи Эль-Гамаля, который в последние годы стандартизован в США и России.
Что в криптографии называют открытым текстом
Криптография — наука о методах обеспечения конфиденциальности и аутентичности информации. Математическая криптография возникла как наука о шифровании информации, т.е. как наука о криптосистемах. В классической модели системы секретной связи имеют место два полностью доверяющих друг другу участника, которым необходимо передавать между собой информацию, не предназначенную для третьих лиц. Такая информация называется конфиденциальной или секретной. Задача обеспечения конфиденциальности, т.е. защита секретной информации от противника — первая задача криптографии.
Часто возникает ситуация, когда информация не является конфиденциальной, но важен факт поступления сообщений в неискаженном виде, т.е. наличие гарантии, что сообщение не было подделано. Такая гарантия называется обеспечением целостности информации и составляет вторую задачу криптографии.
При передаче электронных документов (в том числе и через Интернет) возможна как их подмена или редактура, так и — в случае секретного текста — доступ посторонних лиц к передаваемой информации. Таким образом, электронные документы также нуждаются в криптографической защите.
- Обеспечение уверенности получателя в том, что документ подлинный и корректный, т.е. при передаче не был подменен или отредактирован;
- Обеспечение невозможности доступа посторонних лиц к содержанию документа.
Когда речь идет об электронных документах, первая задача решается применением электронной подписи, вторая — зашифрованием документа.
Электронная подпись (ЭП) — цифровой аналог ручной подписи, обеспечивающий возможность проверки подлинности и корректности документа. Существует техническая возможность проверки электронной подписи: если документ подменен или искажен при передаче, подпись при проверке будет признана некорректной.
Зашифрование документа — видоизменение текста документа таким образом, что только тот или те, для кого текст документа предназначен, в состоянии восстановить исходный текст.
Криптографические программные продукты
Для защиты информации используются специальные пользовательские программные продукты. Они разделяются на две основные группы.
Первая группа, очень широко распространенная — это криптопровайдеры (или CSP, Cryptographic Service Providers). CSP не являются самостоятельными приложениями, они предоставляют криптографические функции другим приложениям — например, таким, как почтовые программы. Пользователь фактически не имеет дела непосредственно с CSP, работая с привычным ему пользовательским интерфейсом. CSP обладают универсальностью — один и тот же CSP может использоваться для работы со множеством различных программ. Примером такого продукта производства ООО «Криптоком» является криптопровайдер МагПро CSP.
Вторая группа — это библиотеки криптографических функций. Такие библиотеки содержат готовые функции, решающие криптографические задачи, и могут использоваться для создания новых приложений. Примером такого продукта производства ООО «Криптоком» является программный продукт «МагПро КриптоПакет».
Криптографические алгоритмы
Для того чтобы с помощью электронной подписи можно было установить факт подмены или редактуры документа при передаче, необходимо, чтобы электронная подпись вырабатывалась на основе самого текста документа. Т.е. ЭП представляет собой последовательность символов, связанную с текстом документа так, что при изменении документа нарушается заданное соответствие между ЭП и текстом. Таким образом, для получения ЭП под документом нужно провести некоторое преобразование текста документа.
Для получения зашифрованного текста исходный текст также преобразовывается так, чтобы восстановление исходного текста было практически невозможным без знания определенной информации. Лица, обладающие этой информацией, должны быть в состоянии восстановить исходный текст. Очевидно, что информация, необходимая для восстановления текста (расшифрования), должна быть известна только адресатам.
Совокупность операций, которые производятся над текстом при криптографическом преобразовании, называется криптографическим алгоритмом.
В настоящее время существует множество криптографических алгоритмов, используемых для решения различных криптографических задач.
Алгоритмы, т.е. сами последовательности действий, не являются секретными.
Стандарты на криптографические алгоритмы
На криптографические алгоритмы существуют стандарты. Надежность алгоритмов, соответствующих стандартам, тщательно анализируется специалистами. При работе с официальной документацией разрешается пользоваться только алгоритмами, соответствующими стандартам.
В разных странах существуют различные стандарты на алгоритмы. В программном обеспечении широко используются алгоритмы, соответствующие американским стандартам, чаще всего это алгоритм RSA.
В России существуют собственные государственные стандарты на алгоритмы шифрования и выработки/проверки электронной подписи: ГОСТ 28147-89, ГОСТ Р 34.10-2012, ГОСТ Р 34.10-2012.
Для выработки и проверки электронной подписи, а также зашифрования и расшифрования документов используются определенные последовательности действий, называемые криптографическими алгоритмами.
Криптографический алгоритм — это серьезная разработка, требующая немалого труда специалистов и отвечающая определенным требованиям. Одним и тем же алгоритмом может пользоваться для защиты информации большое количество пользователей, т.к. алгоритмы не являются секретной информацией.
На криптографические алгоритмы существуют стандарты, т.е. официально оформленные совокупности требований, которым эти алгоритмы должны отвечать. Эти стандарты различны в разных странах и изменяются со временем. Популярные американские алгоритмы — RSA, DSA и т.д. — которые часто используются в распространенных программных продуктах, отвечают американским стандартам.
В России также приняты государственные стандарты на криптографические алгоритмы. Российские производители, в том числе ООО «Криптоком», используют в своих программных продуктах алгоритмы, соответствующие российским стандартам.
Криптографические ключи
В качестве секретной информации используются криптографические ключи.
Криптографический ключ представляет собой последовательность символов, выработанную по определенным правилам. Эта последовательность используется при криптографических преобразованиях текстов. Для каждого криптографического алгоритма существуют свои требования, в соответствии с которыми создаются ключи. Каждый ключ создается для определенного алгоритма.
Для того чтобы обеспечить невоспроизводимость электронной подписи и невозможность прочтения зашифрованных текстов посторонними людьми, в криптографии применяются криптографические ключи.
Современный криптографический ключ — это последовательность чисел определенной длины, созданная по определенным правилам на основе последовательности случайных чисел. Для каждого ключа последовательность случайных чисел создается заново, ни одна последовательность не используется более одного раза. Для генерации последовательностей случайных чисел используются специальные программные объекты или устройства, называемые датчиками случайных чисел.
Каждый алгоритм предъявляет собственные требования к ключам, поэтому любой криптографический ключ создается для определенного алгоритма и используется только с этим алгоритмом.
Если выработка электронной подписи и ее проверка, или зашифрование и расшифрование текста выполняются с помощью одного и того же ключа, такой подход называется симметричной криптографией (соответственно симметричные алгоритмы и симметричные ключи). Операции симметричной криптографии выполняются быстро и сравнительно просты. Но они требуют знания ключа по меньшей мере двумя людьми, что значительно повышает риск их компрометации (т.е. доступа к ним посторонних лиц).
Поэтому сейчас в основном используется асимметричная криптография. В асимметричной криптографии выработка электронной подписи или зашифрование выполняются на одном ключе, а проверка подписи или расшифрование — на другом, парном ключе.
В асимметричной криптографии применяются так называемые ключевые пары (key pairs). Каждая такая пара состоит из двух связанных между собой ключей. Один из этих ключей — закрытый (private key). Он известен только владельцу ключа и ни при каких условиях не должен быть доступен никому другому. Другой ключ — открытый (public key), он может быть доступен любому желающему.
Для выработки ЭП необходим закрытый ключ автора сообщения, для проверки — открытый. Таким образом, создать ЭП может только владелец закрытого ключа, а проверить — любой пользователь, получивший соответствующий открытый ключ.
Для зашифрования текста применяется открытый ключ адресата, для расшифрования — закрытый. Таким образом, зашифровать сообщение может любой человек, а расшифровать — только владелец соответствующего закрытого ключа, т.е. адресат.
Ключевая пара, используемая для работы с ЭП (выработки и проверки ЭП), называется ключами подписи (signature keys). Ключевая пара, используемая для зашифрования и расшифрования сообщений, называется ключами обмена (exchange keys).
Проблема асимметричной криптографии состоит в том, что зашифрование по асимметричным алгоритмам происходит намного медленнее, чем по симметричным. Кроме того, если зашифрованный текст предназначен для нескольких адресатов, в отправляемое сообщение приходится включать копию текста для каждого адресата, что резко увеличивает как объем сообщения, так и время, необходимое для его зашифрования.
Эта проблема решается с помощью так называемой гибридной криптографии.
В процессе шифрования прежде всего создается одноразовый (так называемый сеансовый) ключ шифрования (session encryption key). Это симметричный ключ, т.е. один и тот же ключ используется и для зашифрования, и для расшифрования. Одноразовым или сеансовым он называется потому, что используется для зашифрования/расшифрования только одного сообщения.
На сеансовом ключе шифрования зашифровывается сообщение. Поскольку сообщение зашифровывается по симметричному алгоритму, процесс зашифровывания сообщения происходит достаточно быстро.
Затем сам ключ шифрования зашифровывается по асимметричному алгоритму на открытом ключе обмена получателя. Поскольку ключ шифрования представляет собой сравнительно небольшой объем данных, зашифрование такого ключа не занимает много времени.
Зашифрованный ключ шифрования включается в сообщение.
В результате сообщение получается незначительно больше по объему (за счет добавленной зашифрованной копии ключа шифрования), но процесс зашифрования происходит гораздо быстрее, чем если бы само сообщение зашифровывалось по асимметричному алгоритму.
Если получателей несколько, то сообщение зашифровывается один раз на сеансовом ключе шифрования, а ключ (сравнительно небольшой объем данных) зашифровывается отдельно на открытом ключе обмена каждого получателя. Таким образом, зашифрованное сообщение вместо нескольких копий сообщения, зашифрованных для каждого получателя, содержит одну зашифрованную копию сообщения и несколько копий одноразового сеансового ключа шифрования, зашифрованных для каждого получателя. Объем зашифрованного сообщения и время, необходимое для его зашифрования, оказываются существенно меньшими, чем если бы сообщение шифровалось по асимметричному алгоритму для каждого получателя.
Когда адресат получает сообщение, среди зашифрованных сеансовых ключей, включенных в сообщение, ищется сеансовый ключ, зашифрованный на открытом ключе обмена получателя. Если такой ключ находится, он расшифровывается с помощью закрытого ключа обмена получателя, а потом с помощью этого ключа расшифровывается само сообщение.
Таким образом, основное требование к процессу зашифрования по асимметричному алгоритму — чтобы к закрытому ключу обмена никто не имел доступа, кроме владельца этого ключа — соблюдается. Для того, чтобы получить доступ к ключу шифрования, необходим доступ к закрытому ключу обмена; но после того, как произведено расшифрование ключа шифрования с помощью закрытого ключа обмена, этот ключ шифрования больше никогда не используется, так что говорить о его компрометации не имеет смысла.
Сертификаты
Сертификаты — это принятая сейчас форма хранения и передачи открытых ключей. Сертификат — это набор данных специального формата, содержащий сам открытый ключ и всю информацию о нем и о его владельце. Все открытые ключи хранятся и передаются в виде сертификатов.
Сертификаты выпускаются специальными уполномоченными центрами, которые могут носить различные названия: удостоверяющий центр, центр сертификации, пункт регистрации абонентов и т.д. В любом случае такой центр выполняет административные функции. Центр и пользователи (абоненты), которые пользуются услугами центра, составляют криптосеть.
Для того чтобы центр выпустил сертификат на открытый ключ, абоненту необходимо прислать заявку (запрос) на такой сертификат. Заявка содержит открытый ключ и всю информацию о нем и о владельце. Центр проверяет подлинность и корректность этой информации (как именно — зависит от регламента центра) и выпускает сертификат, заверяя его своей электронной подписью.
Цепочки доверия
Часто возникает необходимость проверять документ с помощью другого документа, который так же требует проверки. Например, подпись под документом проверяется с помощью сертификата на открытый ключ, парный тому секретному, на котором подпись выработана. Но сам сертификат — это тоже документ, корректность и подлинность которого требует проверки. Подпись под сертификатом проверяется на сертификате на открытый ключ подписи того центра, который выпустил сертификат. Сертификат центра, в свою очередь, тоже может быть подписан электронной подписью и требовать проверки.
Такие цепочки документов, каждый из которых проверяется на следующем, называются цепочками доверия.
Очевидно, что в конце концов цепочка заканчивается — в ней обязательно существует документ, который невозможно проверить на другом документе (например, самый первый сертификат центра). Такие документы могут называться самозаверенными, корневыми, доверенными и т.д. Существуют разные способы проверки корректности и подлинности таких документов, зависящие от используемого программного обеспечения и принятого регламента: контрольные записи, цифровые отпечатки и т.д. Общим во всех этих способах проверки является то, что они требуют участия каких-то бумажных документов (распечаток) и не могут быть проверены автоматически: необходимо, чтобы человек сравнил информацию из проверяемого электронного документа с распечатанной и убедился в совпадении.
Документ может считаться корректным только в том случае, если корректны все документы, входящие в цепочку доверия от данного документа до документа, которым заканчивается цепочка (корневого).
Разумеется, при каждой проверке подписи полной проверки цепочки доверия с участием человека не происходит. Обычно корневой документ проверяется при его установке на компьютер, а затем проверка цепочек доверия, заканчивающихся этим документом, происходит автоматически.
Датчики случайных чисел и создание ключей
Ключи создаются по специальным алгоритмам на основе последовательностей случайных чисел.
Для того чтобы криптографическая защита на ключе была надежной, последовательность случайных чисел, на которой создана ключевая пара, должна быть уникальной для каждой ключевой пары. Кроме того, она должна быть действительно случайной, т.е. не допускать повторов даже через очень большие промежутки.
Такие уникальные последовательности случайных чисел генерируются во время создания ключей с помощью специальных устройств или программ, называемых датчиками случайных чисел.
Очень удобны и быстры так называемые аппаратные датчики случайных чисел, представляющие собой физические устройства — платы, подключенные к компьютеру. Такие датчики создают последовательности случайных чисел на основе физических процессов. Генерация последовательностей случайных чисел с помощью аппаратного датчика происходит очень быстро и без участия пользователя.
Но такие датчики устанавливаются не на каждом компьютере. Поэтому часто для создания ключей используется клавиатурный датчик случайных чисел~— программа, использующая для создания последовательности случайных чисел физический процесс нажатия клавиш пользователем. Для инициализации такого датчика пользователю необходимо нажать определенное количество указываемых ему клавиш (если все клавиши нажаты безошибочно, то нужно 40 нажатий; если пользователь допускает ошибочные нажатия, количество необходимых нажатий увеличивается). Создание ключей с помощью клавиатурного датчика — более медленный процесс, чем создание ключей с помощью аппаратного датчика, но его можно осуществить на любом компьютере.
Хранение закрытых ключей
Для удобства хранения закрытых ключей может создаваться файл специального формата, в котором хранятся закрытые ключи. Файл, в свою очередь, может храниться на жестком диске компьютера, на дискете, на флэш-накопителе. Для защиты закрытого ключа от несанкционированного чтения он хранится в файле в зашифрованном виде, т.е. для того, чтобы прочитать закрытый ключ и воспользоваться им, необходимо знать пароль (парольную фразу), на которой зашифрован ключ.
- Устройство должно включать в себя область памяти, достаточной, чтобы записать туда закрытые ключи (иногда эту область памяти называют «хранилищем ключей»);
- Устройство должно легко подключаться к компьютеру, чтобы ключи могли быть считаны;
- Устройство должно легко отключаться от компьютера, чтобы злоумышленники не могли считать с него ключи.
Таким условиям удовлетворяет USB-токен «Вьюга», разработанный в ООО «Криптоком». Устройство «Вьюга» включает в себя генератор случайных чисел (т.е. может использоваться как датчик случайных чисел при генерации ключей) и область памяти объема, достаточного для хранения ключей. Устройство подключается к компьютеру через USB-порт. Возможно подключение устройства к компьютеру непосредственно в процессе работы.
Компрометация ключей
Компрометация ключей — понятие, которое включает в себя факт доступа посторонних лиц к секретным ключам, а также возможность такого доступа или подозрение на него. Скомпрометированный секретный ключ — главная опасность для любой системы защиты информации, поэтому принимаются специальные меры для защиты секретных ключей: их никогда не записывают на жесткий диск компьютера, их держат на отдельных носителях, их зашифровывают, их защищают на пароле и т.д. Тем не менее, случаи компрометации возможны.
В случае компрометации секретный ключ и парный к нему открытый вносятся в специальные списки, содержащие скомпрометированные ключи. Такие списки в разных криптографических продуктах также могут называться по-разному — стоп-листы, списки отзыва сертификатов и т.д. Действие скомпрометированных ключей прекращается. Подпись, выработанная на скомпрометированном ключе, автоматически считается некорректной; информацию из документа, зашифрованного на скомпрометированном ключе, нельзя считать секретной.