» » » Криптографические протоколы

Криптографические протоколы


...



Об остальных персонажах подробнее будет рассказано несколько позже.



Итак, Петр пытается собрать максимум информации об участниках протокола и об их действиях. У Зиновия же совсем другие интересы - ухудшение производительности компьютерной сети, получение несанкционированного доступа к ее ресурсам, внесение искажений в базы данных. При этом и Петр, и Зиновий не обязательно являются совершенно посторонними лицами. Среди них могут быть легальные пользователи, системные и сетевые администраторы, разработчики программного обеспечения и даже участники протокола, которые ведут себя непорядочно или даже вовсе не соблюдают этот протокол.
В последнем случае атакующий называется мошенником. Пассивный мошенник следует всем правилам, которые определены протоколом, но при этом еще и пытается узнать о других участниках больше, чем предусмотрено этим протоколом. Активный мошенник вносит произвольные изменения в протокол, чтобы нечестным путем добиться для себя наибольшей выгоды.
Защита протокола от действий нескольких активных мошенников представляет собой весьма нетривиальную проблему. Тем не менее при некоторых условиях эту проблему удается решить, предоставив участникам протокола возможность вовремя распознать признаки активного мошенничества. А защиту от пассивного мошенничества должен предоставлять любой протокол вне зависимости от условий, в которые поставлены его участники.


Доказательство с нулевым разглашением конфиденциальной информации
Антон: "Я знаю пароль для входа в компьютерную сеть Центробанка и рецепт приготовления „Байкала"".
Борис: "Нет, не знаешь!"
Антон: "Нет, знаю!"
Борис: "Чем докажешь?"
Антон: "Хорошо, я тебе все расскажу".
Антон долго шепчет что-то на ухо Борису.
Борис: "Действительно интересно! Надо сообщить об этом газетчикам!"
Антон: "Ё-моё..."
К сожалению, в обычных условиях Антон может доказать Борису, что знает какую-либо тайну, единственным способом - рассказав, в чем состоит ее суть. Но тогда Борис автоматически узнает эту тайну и сможет поведать о ней первому встречному. Есть ли у Антона возможность помешать Борису это сделать?
Конечно, есть. В первую очередь, Антону не следует доверять свою тайну Борису. Но как тогда Антон сможет убедить Бориса в том, что действительно входит в число посвященных?
Антону надо воспользоваться протоколом доказательства с нулевым разглашением конфиденциальной информации. С помощью этого протокола Антон окажется в состоянии доказать Борису, что он обладает некой секретной информацией, однако разглашать данную информацию перед Борисом будет совсем не обязательно.
Доказательство носит интерактивный характер. Борис задает Антону серию вопросов. Если Антон знает секрет, то ответит правильно на все заданные ему вопросы. Если не знает, вероятность правильного ответа на каждый из вопросов будет невелика. После примерно 10 вопросов Борис будет точно знать, обманывает ли его Антон. При этом шансы Бориса извлечь для себя какую-либо полезную информацию о сути самого секрета практически равны нулю.
Протокол доказательства с нулевым разглашением конфиденциальной информации
Использование доказательства с нулевым разглашением конфиденциальной информации можно пояснить на конкретном примере.
Предположим, что имеется пещера, точка входа в пещеру обозначена буквой A, в точке B пещера разветвляется на две половины - C и D (см. рисунок). У пещеры есть секрет: только тот, кто знает волшебные слова, может открыть дверь, расположенную между C и D.
Антону волшебные слова известны, Борису - нет. Антон хочет доказать Борису, что знает волшебные слова, но так, чтобы Борис по-прежнему оставался в неведении относительно этих слов. Тогда Антон может воспользоваться следующим протоколом:
1. Борис стоит в точке A.
2. По своему выбору Антон подходит к двери либо со стороны точки C, либо со стороны точки D.
3. Борис перемещается в точку B.
4. Борис приказывает Антону появиться или (а) - через левый проход к двери, или (б) - через правый проход к двери.
5. Антон подчиняется приказу Бориса, в случае необходимости используя волшебные слова, чтобы пройти через дверь.
6. Шаги 1-5 повторяются n раз, где n - параметр протокола.
Допустим, что у Бориса есть видеокамера, с помощью которой он фиксирует все исчезновения Антона в недрах пещеры и все его последующие появления с той или иной стороны. Если Борис покажет записи всех n экспериментов, произведенных им совместно с Антоном, смогут ли эти записи послужить доказательством знания Антоном волшебных слов для другого человека (например, для Владимира)?
Вряд ли. Владимир никогда не сможет полностью удостовериться в том, что Антон каждый раз предварительно не сообщал Борису, с какой стороны он направится к двери, чтобы потом Борис приказывал ему выходить именно с той стороны, с какой Антон зашел. Или что из сделанной видеозаписи не вырезаны все неудачные эксперименты, в ходе которых Антон появлялся совсем не с той стороны, с какой ему приказывал Борис.
Это означает, что Борис не в состоянии убедить Владимира, лично не присутствовавшего при проведении экспериментов в пещере, в том, что Антон действительно подтвердил там свое знание секрета. А значит, использованный Антоном протокол доказательства характеризуется именно нулевым разглашением конфиденциальной информации. Если Антон не знает волшебные слова, открывающие дверь в пещере, то, наблюдая за Антоном, не сможет ничего узнать и Борис. Если Антону известны волшебные слова, то Борису не поможет даже подробная видеозапись проведенных экспериментов. Во-первых, поскольку при ее просмотре Борис увидит только то, что уже видел живьем. А во-вторых, потому что практически невозможно отличить сфальсифицированную Борисом видеозапись от подлинной.





Протокол доказательства с нулевым разглашением срабатывает в силу того, что, не зная волшебных слов, Антон может выходить только с той стороны, с которой зашел. Следовательно, только в 50 % всех случаев Антон сумеет обмануть Бориса, сумев выйти именно с той стороны, с которой тот попросит. Если количество экспериментов равно n, то Антон успешно пройдет все испытания только в одном случае из 2n. На практике можно ограничиться n=16. Если Антон правильно исполнит приказ Бориса во всех 16 случаях, значит, он и вправду знает волшебные слова.
Пример с пещерой является очень наглядным, но имеет существенный изъян. Борису будет значительно проще проследить, как в точке B Антон поворачивает в одну сторону, а потом появляется с противоположной стороны. Протокол доказательства с нулевым разглашением здесь попросту не нужен.
Поэтому предположим, что Антону известны не какие-то там волшебные слова типа "Сезам, откройся". Нет, Антон владеет более интересной информацией - он первым сумел справиться с труднорешаемой задачей. Чтобы доказать этот факт Борису, Антону совсем не обязательно публично демонстрировать свое решение. Ему достаточно применить следующий протокол доказательства с нулевым разглашением конфиденциальной информации:
1. Антон использует имеющуюся у него информацию и сгенерированное случайное число, чтобы свести труднорешаемую задачу к другой труднорешаемой задаче, изоморфной исходной задаче. Затем Антон решает эту новую задачу.
2. Антон задействует протокол предсказания бита для найденного на шаге 1 решения, чтобы впоследствии, если у Бориса возникнет необходимость ознакомиться с этим решением, Борис мог бы достоверно убедиться, что предъявленное Антоном решение действительно было получено им на шаге 1.
3. Антон показывает новую труднорешаемую задачу Борису.
4. Борис просит Антона
или (а) - доказать, что две труднорешаемые задачи (старая и новая) изоморфны,
или (б) - предоставить решение, которое Антон должен был найти на шаге 1, и доказать, что это действительно решение задачи, к которой Антон свел исходную задачу на том же шаге.
5. Антон выполняет просьбу Бориса.
6. Антон и Борис повторяют шаги 1-6 n раз, где n - параметр протокола.
Труднорешаемые задачи, способ сведения одной задачи к другой, а также случайные числа должны по возможности выбираться так, чтобы у Бориса не появилось никакой информации относительно решения исходной задачи даже после многократного выполнения шагов протокола.
Не все труднорешаемые задачи могут быть использованы при доказательстве с нулевым разглашением конфиденциальной информации, однако большинство из них вполне пригодны для таких целей. Примерами могут служить отыскание в связном графе цикла Гамильтона (замкнутого пути, проходящего через все вершины графа только один раз) и определение изоморфизма графов (два графа изоморфны, если они отличаются только названиями своих вершин).



1. Антон использует имеющуюся у него информацию и n сгенерированных случайных чисел, чтобы свести труднорешаемую задачу к n другим труднорешаемым задачам, изоморфным исходной задаче. Затем Антон решает эти n новых задач.
2. Антон задействует протокол предсказания бита для найденных на шаге 1 n решений.
3. Антон подает n обязательств, полученных им на шаге 2, на вход однонаправленной функции.
4. Для каждой i-й труднорешаемой задачи, к которой Антон свел исходную задачу на шаге 1, он берет i-й бит значения, вычисленного с помощью однонаправленной функции, и
(а) если этот бит равен 1, то Антон доказывает, что исходная и i-я задачи изоморфны, или
(б) если этот бит равен 0, то Антон помещает в общедоступную базу данных решение i-й задачи, вычисленное на шаге 1.
5. Антон передает в общедоступную базу данных все обязательства, которые были получены им на шаге 2.
6. Борис, Владимир или любое другое заинтересованное лицо могут проверить правильность выполнения шагов 1-5 Антоном.
Удивительно, но факт: Антон предоставляет в общее пользование данные, которые позволяют любому убедиться в том, что он владеет некоторым секретом, и в то же время не содержат никакой информации о сути самого секрета.
Роль Бориса в этом протоколе исполняет однонаправленная функция. Если Антон не знает решения труднорешаемой задачи, он все равно может выполнить действия, предусмотренные или пунктом (а), или пунктом (б) шага 4 протокола, но отнюдь не обоими пунктами сразу. Поэтому, чтобы смошенничать, Антону придется научиться предсказывать значения однонаправленной функции. Однако, если функция действительно является однонаправленной, Антон не сможет ни догадаться, какими будут ее значения, ни повлиять на нее с тем, чтобы на ее выходе получилась нужная Антону битовая последовательность.
В отличие от интерактивного протокола, здесь требуется большее количество итераций. Поскольку генерация случайных чисел возложена на Антона, подбором этих чисел он может попытаться добиться, чтобы на выходе однонаправленной функции получилась битовая последовательность нужного ему вида. Ведь даже если Антон не знает решения исходной труднорешаемой задачи, он всегда в состоянии выполнить требования или пункта (а), или пункта (б) шага 4 протокола.
Тогда Антон может попытаться догадаться, на какой из этих пунктов падет выбор, и выполнить шаги 1-3 протокола. А если его догадка неверна, он повторит все сначала. Именно поэтому в неинтерактивных протоколах необходим больший запас прочности, чем в интерактивных. Рекомендуется выбирать n=64 или даже n=128.
Доказано, что в общем случае любое математическое доказательство может быть соответствующим образом преобразовано в доказательство с нулевым разглашением конфиденциальной информации. А это означает, что теперь математику вовсе не обязательно публиковать результаты своих научных исследований. Он может доказать своим коллегам, что нашел решение какой-то математической проблемы, не раскрывая перед ними сути найденного решения.



В-третьих, Антон может попросить Зиновия одолжить на время его цифровое удостоверение личности. Мол, Антону надо съездить в Соединенные Штаты, а поскольку он - бывший сотрудник советской разведки, работавший против США, американское правительство наотрез отказывает ему во въездной визе. Зиновий с радостью соглашается: после отъезда Антона он может пойти практически на любое преступление, поскольку обзавелся "железным" алиби. С другой стороны, ничто не мешает совершить преступление Антону. Кто поверит лепету Зиновия о том, что он одолжил свое цифровое удостоверение личности какому-то другому человеку?
Избавиться от перечисленных недостатков помогают дополнительные меры предосторожности. В первом случае мошенничество стало возможным, поскольку Зиновий, проверяя цифровое удостоверение личности Антона, мог одновременно общаться с внешним миром по телефону или радио. Если Зиновия поместить в экранированную комнату без всяких средств связи, никакого мошенничества не было бы.
Чтобы исключить вторую форму мошенничества, необходимо ввести ограничение на количество ключей, которые человеку разрешается использовать, чтобы удостоверить свою личность (как правило, такой ключ должен существовать в единственном числе).
И наконец, чтобы не допустить третий вид мошенничества, требуется либо заставить всех граждан удостоверять свою личность как можно чаще (например, у каждого фонарного столба, как это делается в тоталитарных государствах), либо дополнить средства цифровой идентификации другими идентификационными методами (например, проверкой отпечатков пальцев).


Конечно, протокол неосознанной передачи информации отнюдь не гарантирует, что Антон не пошлет Борису какие-нибудь бессмысленные послания (типа "Борис - лох" или "Мяу-мяу") вместо битов одного из семи простых множителей, на которые раскладывается исходное 700-битовое число. Или что Борис вообще захочет с ними ознакомиться и примет участие в выполнении шагов этого протокола.
На практике протокол неосознанной передачи информации используется довольно редко. Обычно он служит в качестве одного из строительных блоков для построения других протоколов.


3. Антон сообщает в фирму, сколько раз Борис должен применять однонаправленную функцию, чтобы получить искомый телефонный номер.
4. С помощью однонаправленной функции Борис преобразует 7-значный идентификатор своего чудачества столько раз, сколько это делал Антон, и получает 7-значное число, которое трактует как телефонный номер. Борис звонит по полученному им номеру и спрашивает, нет ли для него какой-либо информации.

Следует отметить, что Борис может предпринять атаку с выбранным открытым текстом. Узнав идентификаторы распространенных человеческих чудачеств, Борис будет по очереди перебирать их, применять к ним однонаправленную функцию и звонить по получающимся у него телефонным номерам. Поэтому необходимо сделать так, чтобы количество возможных чудачеств было достаточно велико и подобного рода атака стала в результате неосуществимой.


Суть ее состоит в том, что для гарантированного подтверждения подлинности информации, содержащейся в электронном документе, а также для возможности неопровержимо доказать третьей стороне (партнеру, арбитру, суду и т.п.), что электронный документ был составлен именно конкретным лицом, или по его поручению, и именно в том виде, в которм он предъявлен, автору документа предлагается выбрать свое индивидуальное число ( называемое обычно индивидуальным ключом, паролем, кодом, и т.д.) и каждый раз для "цифрового подписывания" сворачивать (замешивать) этот свой индивидуальный ключ, хранимый в секрете от всех, с содержимым конкретного электронного документа. Результат такого "сворачивания" - другое число, и может быть назван цифровой подписью данного автора под данным конкретным документом.
Для практического воплощения этой идеи требовалось найти конкретные и конструктивные ответы на следующие вопросы:
Как "замешивать" содержание документа с индивидуальным ключом пользователя, чтобы они стали неразделимы ?
Как проверять, что содержание подписываемого документа и индивидуальный ключ пользователя были подлинными, не зная заранее ни того, ни другого ?
Как обеспечить возможность многократного использования автором одного и того же индивидуального ключа для цифрового подписывания большого числа электронных документов ?
Как гарантировать невозможность восстановления индивидуального ключа пользователя по любому количеству подписанных с его помощью электронных документов ?
Как гарантировать, что положительным результат проверки подлинности цифровой подписи и содержимого электронного документа будет в том и только в том случае, когда подписывался именно данный документ и именно с помощью данного индивидуального ключа ?
Как обеспечить юридическую полноправность электронного документа с цифровыми подписями, существующего только в электронном виде без бумажного дубликата или заменителей ?
Для полноценных удовлетворительных ответов на все эти вопросы потребовалось около 20 лет. Сейчас мы можем точно и определенно сказать, что практические ответы на все эти вопросы получены. Мы располагаем полноценным арсеналом технических средств авторизации электронных документов, называемым цифровой подписью.
Рассмотрим эти ответы подробнее. Основная идея Диффи и Хеллмана состояла в том, чтобы искать ответы на первые четыре из списка вопросов (математические) по следующей схеме:
пользователи располагают средствами выбирать случайно свои индивидуальные ключи для подписывания из очень большого множества всех возможных ключей,
по каждому конкретно выбранному индивидуальному ключу для подписывания легко вычислить парный к нему ключ для проверки подписей,
процедура вычисления ключа проверки из ключа подписывания широко известна, практически реализуема и гарантирует невозможность восстановления ключа подписывания,
процедуры подписывания и проверки подписи широко известны, в каждой из них используется только один из пары ключей, и гарантируется невозможность получения неверного ответа, а также невозможность восстановления ключа подписывания по ключу проверки.
Самым сложным из этих условий является, конечно же, гарантирование невозможности восстановления ключа подписывания по ключу проверки и любому количеству подписанных электронных документов.
Лучший из предложенных на сегодня учеными способов его выполнения состоит в том, чтобы использовать такие процедуры подписывания и проверки, что практическое восстановление ключей подписи по ключам проверки требует решения известной сложной вычислительной задачи. Поскольку задача является общеизвестно сложной, то если ее не научились решать за обозримое время все математики мира во все предыдущие столетия, то есть некоторая надежда, что ее не сумеют решить быстро и в ближайшем будущем.
Практический результат последующих 20 лет научных поисков таких задач оказался до некоторой степени парадоксальным: при всем многообразии известных сложных вычислительных задач, практически применимой оказалась одна. Это так называемая задача дискретного логарифмирования.
В простейшем варианте ее можно сформулировать так. Если заданы три больших целых положительных числа
a, n, x,
то располагая даже несложными арифметическими устройствами типа карманного калькулятора, или просто карандашом и бумагой, можно довольно быстро вычислить число
a**x
как результат умножения числа
a
на себя
x
раз,
а затем и остаток от деления этого числа нацело на n, записываемый как
b = a**x mod n
задача же дискретного логарифмирования состоит в том, чтобы по заданным числам
a, b, n
связанным таким соотношением, найти то число
x
из которого по этой формуле было вычислено число b.
Оказывается, что задача дискретного логарифмирования при правильном выборе целых чисел настолько сложна, что позволяет надеяться на практическую невозможность восстановления числа x, - индивидуального ключа подписывания, по числу b, применяемому в качестве ключа проверки.
Чтобы говорить более определенно о практической невозможности решить ту или иную вычислительную задачу, следует предварительно договориться о том, какие вычислительные мощности и мозговые ресурсы доступны тому, кто предположительно будет эту задачу решать. Поскольку давать конкретные оценки возможностей потенциальных мозговых ресурсов будущего "взломщика" системы цифровой подписи дело весьма сложное и неблагодарное, мы будем просто исходить из предположения, что он располагает полной информацией о наилучших известных мировой науке методах решения данной задачи.





Далее, если он располагает вычислительной системой общей мощностью, скажем, 1 миллиард (10**9 = 1 000 000 000) операций в секунду, а это мощность современного суперкомпьютера типа CRAY-3, то
- за сутки непрерывной работы такой системы может быть решена задача сложностью около 100 000 миллиардов (или 10**14) операций
- за месяц - около 3*(10**15),
- за год - около 3*(10**16),
- за 10 лет - около 3*(10**17),
- за 30 лет - около 10**18 операций.
Таким образом, даже если допустить, что потенциальный взломщик цифровой подписи располагает вычислительной системой эквивалентной по мощности 1000 суперкомпьютерам типа CRAY-3, то на выполнение вычислений объемом 10**21 операций ему потребовалось бы не менее 30 лет непрерывной работы всей системы, что с практической точки зрения означает невозможность их выполнения.
Поэтому, цифровая подпись с надежностью не менее 10**21 может считаться практически неподделываемой.
В этом месте автору обычно задают вопрос: "А что, если где-то в недрах специальных служб известны более совершенные методы решения этой задачи, которые могут быть применены для фальсификации цифровых подписей?"
В настоящее время ответ на него оказывается довольно простым. Если вы боитесь, что обычно предлагаемого при длине ключей в 64 байта запаса надежности в 10**18 - 10**21 недостаточно, применяйте алгоритмы с более длинными ключами. Современные цифровые процессоры Intel486 и Pentium позволяют за доли секунды вычислять и проверять цифровые подписи с ключами до 512 байт, а стойкость большинства широко применяемых методов цифровой подписи при такой длине ключей заведомо превосходит все разумные требования ( более чем 10**50).
Итак, как видим, современные принципы построения системы цифровой подписи, общепризнанные в мире, просты и изящны:
методы вычисления и проверки цифровых подписей всех пользователей системы одинаковы, всем известны и основываются на широко известных математических задачах,
методы вычисления ключей проверки цифровых подписей из индивидуальных ключей подписывания одинаковы для всех и хорошо известны, их надежность также основывается на широко известных математических задачах,
индивидуальные ключи подписывания выбираются самими пользователями по случайному закону из большого множества всех возможных ключей,
при конкретном алгоритме цифровой подписи его стойкость может быть оценена без привлечения какой-либо "закрытой" информации на основе только известных математических результатов и разумных допущений о вычислительных мощностях потенциального "взломщика", посколку она базируется на общедоступных теоретических результатах по оценке сложности широко известных сложных вычислительных задач.
2. АЛГОРИТМЫ.
Проведем теперь сопоставление некоторых конкретных алгоритмов цифровой подписи с целью выявления их преимуществ и недостатков в различных ситуациях.
Для удобства оценки основных свойств того или иного алгоритма мы будем сравнивать его основные характеристики:
длину ключей,
длину цифровой подписи,
сложность (время) вычисления и
сложность (время) проверки подлинности цифровой подписи
при условии, что уровень стойкости подписи по отношению к любым методам фальсификации не ниже, чем 10**21 (или 30 лет непрерывной работы сети из 1000 суперкомпьютеров).
В качестве "базовой" длины ключей и длины самой цифровой подписи мы будем рассматривать длину в 64 байта.
RSA. Первым по времени изобретения конкретным алгоритмом цифровой подписи был разработанный в 1977 году в Массачусетском технологическом институте алгоритм RSA.
Алгоритм RSA основывается на том математическом факте, что задача дискретного логарифмирования при выборе целого параметра n в виде произведения двух различных простых чисел примерно равных по порядку величины, т.е.
n = p*q
становится не менее сложной, чем разложение n на эти простые множители, а последняя задача давно (еще со времен Архимеда и Евклида) известна в математике как сложная.
По современным оценкам сложность задачи разложения на простые множители при целых числах n из 64 байт составляет порядка 10**17 - 10**18 операций, т. е. находится где-то на грани досягаемости для серьезного "взломщика". Поэтому обычно в системах цифровой подписи на основе алгоритма RSA применяют более длинные целые числа n (обычно от 75 до 128 байт).
Это соответственно приводит к увеличению длины самой цифровой подписи относительно 64-байтного варианта примерно на 20% -100% (в данном случае ее длина совпадает с длиной записи числа n), а также от 70% до 800% увеличивает время вычислений при подписывании и проверке.
Кроме того, при генерации и вычислении ключей в системе RSA необходимо проверять большое количество довольно сложных дополнительных условий на простые числа p и q (что сделать достаточно трудно и чего обычно не делают, пренебрегая вероятностью неблагоприятного исхода - возможной подделки цифровых подписей)., а невыполнение любого из них может сделать возможным фальсификацию подписи со стороны того, кто обнаружит невыполнение хотя бы одного из этих условий (при подписывании важных документов допускать, даже теоретически, такую возможность нежелательно).





В дополнение ко всем этим алгоритмическим слабостям метода RSA следует также иметь в виду, что он защищен патентом США и поэтому любое его использование на территории США или западноевропейских стран требует приобретения соответствующей лицензии на использование, стоимость которой на 100 пользователей составляет $5000.
EGSA. Существенным шагом вперед в разработке современных алгоритмов цифровой подписи был новый алгоритм Т. ЭльГамаля, предложенный им в 1984 году. В этом алгоритме целое число n полагается равным специально выбранному большому простому числу p, по модулю которого и производятся все вычисления. Такой выбор позволяет повысить стойкость подписи при ключах из 64 байт примерно в 1000 раз, т.е. при такой длине ключей обеспечивается необходимый нам уровень стойкости порядка 10**21. Правда, при этом длина самой цифровой подписи увеличивается в два раза и составляет 128 байт.
Главная "заслуга" алгоритма ЭльГамаля состояла в том, что в дальнейшем он послужил основой для принятия нескольких стандартов цифровой подписи, в том числе национального стандарта США DSS, введенного в действие 1 декабря 1994 года и государственного стандарта РФ ГОСТ Р 34.10, введенного с 1 января 1995 года.
DSA. Национальным институтом стандартов и технологий СЩА в 1991 году на основе алгоритма ЭльГамаля был разработан и представлен на рассмотрение Конгресса США новый алгоритм цифровой подписи, получивший название DSA (сокращение от Digital Signature Algorithm). Алгоритм DSA, ставший в дальнейшем основой национального стандарта США на цифровую подпись имеет по сравнению с алгоритмом RSA целый ряд преимуществ:
во-первых, при заданном уровне стойкости цифровой подписи целые числа, с которыми приходится проводить вычисления, имеют запись как минимум на 20% короче, что соответственно уменьшает сложность вычислений не менее, чем на 70% и позволяет заметно сократить объем используемой памяти;
во-вторых, при выборе параметров достаточно проверить всего три достаточно легко проверяемых условия;
в-третьих, процедура подписывания по этому методу не позволяет вычислять (как это возможно в RSA) цифровые подписи под новыми сообщениями без знания секретного ключа.
Эти преимущества, а также соображения, связанные с возможностью его реализовывать любым разработчиком свободно без коммерческих лицензионных соглашений с держателями патента, компанией RSA Data Security, и возможностью свободного безлицензионного экспорта такой технологии из США послужили главным мотивом для принятия в 1994 году национального стандарта цифровой подписи (DSS) на его основе.
Такое решение отнюдь не было очевидным, поскольку RSA, как наиболее известный алгоритм цифровой подписи и шифрования с открытым ключом, был гораздо шире распространен, практически опробован во многих странах и признан как стандарт de facto большинством разработчиков операционных систем, сетевых технологий и прикладного программного обеспечения. Популярность его объясняется, прежде всего, 8-летним опережением по времени появления, значительно более широкой известностью как самого алгоритма, так и его авторов в научных кругах, а также успешным бизнесом держателя патента - компании RSA Data Security, Inc. (сам автор алгоритма ЭльГамаль был в 1994-1995 гг. ее сотрудником).
Технические преимущества алгоритма, о которых мы говорили выше видны были лишь специалистам в области криптографии. Однако, в данной ситуации именно они оказались определяющими, и мир получил далеко не худший по тем временам стандарт. В настоящее время алгоритм DSA уже не является лучшим из возможных алгоритмов цифровой подписи по техническим параметрам, но вероятность его принятия в качестве международного стандарта остается достаточно большой.
По сравнению с оригинальным алгоритмом ЭльГамаля метод DSA имеет одно важное преимущество, - при заданном в стандарте уровне стойкости, числа, участвующие в вычислении подписи, имеют длину по 20 байт каждое, сокращая общую длину подписи до 40 байт.
Поскольку большинство операций при вычислении подписи и ее проверке также производится по модулю из 20 байт, сокращается время вычисления подписи и объем используемой памяти.
В алгоритме ЭльГамаля длина подписи при таком уровне стойкости была бы равна 128 байт.
НОТАРИУС. Поскольку в 1991 году наиболее распространенной моделью персонального компьютера в СССР был AT/286(12) то мы в своих ранних алгоритмических разработках должны были максимально упростить лучшие из известных тогда алгоритмов цифровой подписи, чтобы их программная реализация на таком процессоре позволяла вычислять и проверять подпись под электронными документами за разумное время, скажем, 1-2 секунды при размере документа до 10 KB.
Такие упрощения не должны были, конечно, снижать стойкости алгоритма, но за счет модификации процедур вычисления и проверки цифровой подписи, должны были его ускорить достаточно, чтобы подписывание и проверка цифровой подписи под электронным документом не вызывала заметных задержек в процессе его обработки на персональном компьютере.
Первым результатом такой работы был созданный в конце 1992 года аналог алгоритма ЭльГамаля НОТАРИУС-1.Основное отличие алгоритма НОТАРИУС-1 от алгоритма ЭльГамаля состоит в том, что вместо обычной операции умножения целых чисел по модулю большого простого p, как это делается у ЭльГамаля, алгоритм НОТАРИУС-1 использует похожую операцию, эффект от использования которой состоит в том, что обеспечивая точно такой же уровень стойкости, что и умножение по модулю простого числа, эта операция гораздо эффективней вычисляется на распространенных процессорах Intel, Motorola и др.





Процедуры подписывания электронных документов и проверки цифровых подписей по алгоритму НОТАРИУС-1 выглядят аналогично соответствующим процедурам алгоритма ЭльГамаля, обеспечивают тот же уровень стойкости подписи, но выполняются быстрее.
Затем, аналогичным образом был усовершенствован алгоритм DSA, который послужил основой для алгоритма цифровой подписи, названного НОТАРИУС-D.
Реализация этого алгоритма на стандартном процессоре Intel486DX4(100) позволила добиться времени подписывания электронного документа объемом 1 KB вместе с его предварительным хэшированием в 0.014 сек., а времени проверки подписи под документами такого объема, - 0.027 сек.
Если же объем документа равен 100 KB , время подписывания составляет 0.124 сек., а время проверки - 0.138 сек. Длина подписи 40 байт, стойкость - 10**21.
Дальнейшее совершенствование алгоритмов подписывания и проверки произошло за счет использования совместно с нашими, также запатентованных в США и Германии идей немецкого криптографа Клауса Шнорра, который предоставил нам право использования своего алгоритма на территории стран СНГ. Совместное применение этих идей привело в 1996 году к разработке алгоритма НОТАРИУС-S, который при сохранении стойкости подписи позволил сократить ее длину еще на 32.5%. Для базового варианта с ключами из 64 байт длина подписи сократилась относительно DSA и НОТАРИСА-D с 40 байт до 27 байт. Соответственно уменьшилось время вычисления и проверки подписи. Стойкось осталась на том же уровне - 10**21.
Эти алгоритмические разработки позволили нам предложить пользователю широкий выбор программ с длинами цифровой подписи от 16 до 63 байт и уровнями стойкости, соответственно, от 10**14 (или несколько дней работы сети из несколькими десятков персональных компьютеров) до 10**54 (или более 100 миллиардов лет непрерывной работы любой мыслимой вычислительной системы обозримого будущего). Более детальные технические характеристики различных алгоритмов приведены ниже, в Таблице 1.
Автор надеется, что параметры алгоритмов, приведенные в таблице, дадут читателю возможность оценить их основные качества без дальнейших пространных комментариев. Дополнительных пояснений требуют только разделы таблицы, посвященные алгоритму ГОСТ 34.10.
ГОСТ34.10. Стандарт на электронную подпись ГОСТ34.10 был опубликован впервые Госстандартом РФ в мае 1994 года и введен в действие с 1 января 1995 года. В предварительном варианте он был введен в качестве ведомственного стандарта на цифровую подпись ЦБ РФ и использовался в этом качестве с сентября 1993 года по декабрь 1994 года. Алгоритмы вычисления и проверки подписи в ГОСТ34.10 устроены аналогично алгоритму DSA, но предварительная обработка электронных документов перед подписыванием (так называемое хэширование) выполняются по другому, существенно более медленному способу. К сожалению, разработчики допустили целый ряд досадных ошибок, которые есть даже в официальном тексте стандарта. Поэтому при реализации следует быть внимательным и не всегда следовать формальному тексту.
Мы рассматриваем следующие виды угроз:
1. Предполагаем, что попытки подделать подпись предпринимают не профессионалы. "Злоумышленники" могут располагать сетью из нескольких персональных компьютеров, общая вычислительная мощность которой равна 2*108 операций/сек.
Предполагаем, что "противостоим" профессионалам с вычислительной системой общей мощностью до 1012 операций/ сек. Это может быть сеть из нескольких десятков мощных современных суперкомпьютеров.
Предполагаем, что "противостоим" самой мощной государственной спецслужбе, располагающей возможностью ( и желанием ) создать для этой задачи сеть из сотен специализированных параллельных суперкомпьютеров с 1000 специальных мощных
( по 1013 оп./ сек.) процессоров каждый и практически неограниченной памятью.
Фантазии на тему будущего.
Фантазии на тему далекого будущего.
СЕРТИФИКАЦИЯ.
Принятые в различных странах в настоящее время процедуры сертификации, которые могут быть применены к программам или программно-аппаратным реализациям цифровой подписи, состоят в проверке соответствия, реализованных разработчиком алгоритмов описанным в официальных текстах стандартов.
В США, аккредитованные Национальным институтом стандартов и технологий лаборатории проводят тестирование процедуры порождения простых чисел, определяющих параметры алгоритма DSA, на основании опубликованных в тексте стандарта конкретных значений параметров и начальных установок процедуры генерации простых чисел, затем, при тестовых значениях параметров алгоритма, тестовых индивидуальных ключах и тестовых рандомизирующих значениях подписывания производится вычисление и проверка цифровых подписей под тестовыми примерами электронных документов. Таких циклов тестирования может быть довольно много - до нескольких десятков тысяч. Вся последовательность результатов предъявляется в лабораторию для сравнения с результатами работы эталонной программы на таких же значениях входных параметров. По результатам сравнения делается заключение о соответствии данной реализации цифровой подписи стандарту.





Таким же или примерно таким образом происходит процесс сертификации программ цифровой подписи и в ряде западноевропейских стран.
У нас ситуация оказывается, мягко говоря, парадоксальной. Поскольку в официальном тексте стандарта есть ошибки, которые, будь он реализован строго формально, привели бы к совершенно другому алгоритму цифровой подписи, о стойкости которого можно только догадываться (особенно при специальном "неудачном" выборе параметров), то проверить для программных или аппаратных реализаций "соответствие стандарту ГОСТ34.10" просто невозможно. Если реализация абсолютно точно соответствует формальному тексту стандарта с ошибками, то неясно, что это означает с точки зрения надежности подписи, а если при реализации эти ошибки были "учтены", то такая реализация не может соответствовать стандарту. Поэтому все бумаги, в которых в настоящее время такое соответствие декларируется, не означают абсолютно ничего.
Более разумный подход проявляется при сертификации в рамках Гостехкомиссии РФ программ цифровой подписи в классе программных средств защиты информации в от несанкционированного доступа и изменения. Согласно руководящих документов Гостехкомиссии программные или аппаратные средства, реализующие технологию цифровой подписи могут быть объективно оценены на предмат соответствия конкретным официально опубликованным требованиям по степени защиты информации от несанкционированного изменения путем ее подписывания цифровыми подписями.
ЛИЦЕНЗИРОВАНИЕ.
До последнего времени было не совсем ясно как будут наши законы трактовать вопросы распространения технологии цифровой подписи и, в частности возможность их экспорта. Дело в том, что при явном противоречии как с принципами построения систем цифровой подписи, так и просто со здравым смыслом чиновники некоторых ведомств пытались отнести эту технологию чуть ли не к разряду особо охраняемых государством наравне с ядерным или другими видами оружия массового поражения или сверх секретными специальными шифровальными средствами для особо важной государственной информации.
К счастью, за последнее время произошли заметные изменения, проясняющие ситуацию в этом вопросе. Президент РФ 26 августа 1996 года подписал Указ №1268, регламентирующий экспорт товаров и технологий двойного назначения. Согласно примечаниям к списку технологий двойного применения, на которые распространяется действие этого указа, из программного обеспечения, в том числе криптографического, экспорт которого из РФ регламентируется и требует специальных лицензий, сделаны следующие исключения.
Общедоступное:
а) проданное из фондов в розничные торговые точки и предназначенное для:
сделок по продаже в розницу;
сделок по высылке товаров по почте; или
сделок по телефонным заказам; и
б) разработанное для установки пользователем без дальнейшей реальной поддержки снабженцем
(продавцом), или
2. "В общественной сфере".
Кроме того, в тексте примечаний к указу, в части терминологии приводятся следующие интересные определения.
Криптография - дисциплина, включающая принципы, средства и методы преобразования информации в целях сокрытия ее содержания, предотвращения видоизменения или несанкционированного использования.
Криптография ограничена преобразованием информации с использованием одного или более секретных параметров (например, криптографических перемененных) или соответствующим управлением ключом.
Поскольку технология цифровой подписи:
очевидно, не обеспечивает сокрытия содержания подписанной информации,
не предотвращает ее видоизменения (содержимое подписанных документов можно видоизменять как угодно, и это собственно сама подпись никак не может предотвратить),
не обеспечивает и несанкционированного использования (подписанный электронный документ может быть точно также, как и бумажный использован не законно)
то получается, что она не относится к области криптографии вообще.
А что же, собственно, мы получаем благодаря этой технологии ?




Электронные деньги
1. Внесетевые платежные системы


Пластиковая карточка - это персонифицированный платежный инструмент, предоставляющий пользующемуся карточкой лицу возможность безналичной оплаты товаров и/или услуг, а также получения наличных средств в отделениях (филиалах) банков и банковских автоматах (банкоматах) /4/. Принимающие карточку предприятия торговли/сервиса и отделения банков образуют сеть точек обслуживания карточки (или приемную сеть).
Таким образом, пластиковые карты можно разделить на два типа: 1) магнитные карты 2) карты памяти.








При выдаче денег из банкоматов по обратной связи, как правило, запрашивается так называемый PIN-код - личный 4 - 6-значный код владельца карточки, что служит дополнительной защитой от мошенников. Эта мера безопасности была введена, чтобы предотвратить рост числа краж по пластиковым картам. Дело в том, что при использовании карты с магнитной полосой ее достаточно просто скопировать, но, не зная PIN-кода, нельзя воспользоваться копией в банкомате. Средством, обеспечивающим расчеты в магазине с помощью пластиковых карточек, служат торговые терминалы. Простейшими из них являются механические устройства для прокатки рельефной части пластиковой карты и получения специального чека (слипа), который подписывает клиент. В торговых терминалах PIN-коды обычно не применяют ввиду небольших списываемых сумм.
И немного статистики. Наибольшее распространение в США и Канаде получила платежная система на базе карточек American Express /4/. В США установлено свыше 60 тыс. банкоматов, обслуживающих эти карточки. В Европе более распространены карточки VISA и MasterCard. В частности, в Германии насчитывается более 29 тыс. банкоматов, обслуживающих эти карточки, во Франции - более 15 тыс., в Италии - более 6 тыс. В Испании более 20 тыс. банкоматов принимают карточки VISA и около 14 тыс. - MasterCard. Показатели American Express в Европе существенно скромнее: в Германии и Франции - около 2 тыс. банкоматов, в Италии - менее тысячи




Электронные бумажники уже появились, беспроводная связь тоже есть, осталось создать частную валюту, без которой, как утверждает теория цифровых денег, невозможно обеспечить полномасштабную электронную коммерцию. Вопрос о необходимости и сути частной валюты и/или цифровых денег будет рассмотрен позже.
Одним из наиболее серьезных аргументов в пользу "пластиковых денег" является сокращение оборота наличных средств (рублей и валюты). По самым оптимистичным оценкам, ежедневно в России в обороте находятся десятки тысяч тонн бумажных рублей. С крупными суммами наличных денег (изготовление, хранение, транспортировка, счет, проверка на подлинность и т. д.) связано много нкприятностей. Кроме этого в пользу "пластиковых денег" говорит и тот факт, что при открытом похищении карточки (грабеже, разбое) нападающий не сможет воспользоваться отнятыми средствами немедленно. Для получения наличных через банкомат необходимо узнать у жертвы PIN-код, места расположения банкоматов банка, выдавшего карточку. Владелец карточки может практически сразу заявить о пропаже (блокировать карту), и тогда грабитель вообще ничего не получит. Однако у пластиковых карт есть и недостатки.
Так, в России появилось поколение достаточно квалифицированных злоумышленников, способных изымать деньги из банкоматов по фальшивым пластиковым карточкам. Как уже отмечалось, карточки с магнитной полосой достаточно легко подделать, а PIN-код можно выяснить различными способами. "Пластиковые деньги" нельзя увидеть, нельзя подсчитать без специальной аппаратуры, поэтому, если их украдут, владелец сразу об этом и не узнает. Кроме того, реальные документы, которые можно было бы предъявить, например, в суде, отсутствуют.



Ряд банков, включая крупный британский Barklays Bank, пытаются внедрить сетевой вариант системы чекового обращения.
Сильная сторона таких решений состоит в том, что в большинстве стран уже существует детализированное законодательство, регламентирующее обращение чеков и пластиковых карточек. Значительны также маркетинговые преимущества использования таких имен, как MasterCard, Visa или Discover. Однако эти решения имеют общий с суррогатными коренной недостаток.
Чтобы понять суть этого недостатка, нужно обратиться к понятиям наличного и безналичного денежного обращения. Во всех современных национальных денежных системах обязательными к приему являются деньги как в форме наличных (банкнот и монет), так и в форме безналичных (записи на счетах в банке) средств. Обе эти формы в равной мере реализуют базовые функции денег: функцию посредника в обмене, позволяющего отделить акт купли от акта продажи во времени и пространстве, и функцию накопления покупательной способности. Однако в обращении наличных и безналичных денег имеется одно принципиальное различие. Сделка с использованием денег в наличной форме предполагает лишь соприсутствие контрагентов. Более того, наличные деньги являются оборотным финансовым документом, т.е. способны передавать абсолютно обоснованный правовой титул любому правомерному держателю. На этом основывается свойство наличных денег, которое можно обозначить как деперсонализацию сторон в сделке: для совершения сделки нет необходимости подтверждения личности контрагента.









Во многих странах получить кредитную карточку не просто, а в России кредитных карточек, которые дают именно кредит, нет вообще. Ввиду нестабильности экономической ситуации и отсутствия слежения за кредитной историей клиентов, в России в ходу только дебетные карточки, по которым покупки производятся из денег, которые покупатель заранее кладет на специальный счет в банке, выдавшем карточку (Issuing Bank).
Основными характеристиками цифровых (виртуальных) денег являются:
Безопасность. Протоколы защиты информации должны обеспечить полную конфиденциальность передачи транзакций, современные алгоритмы цифровой информации, подписи и шифровки вполне пригодны для решения задачи.
Анонимность. Это одна из отличительных характеристик цифровых денег. Предполагается полное отсутствие авторизации транзакций, чтобы исключить всякую возможность проследить платежи частного лица, а значит --- вторгнуться в его частную жизнь.
Портативность. Дает возможность пользователю цифровых денег не быть привязанным к своему домашнему персональному компьютеру. Обычным решением является использование электронного бумажника.
Неограниченный срок службы. В отличие от бумажных денег, цифровые не подвержены физическому разрушению.
Двунаправленность. Цифровые деньги можно не только отдавать другому лицу, но и получать. В платежных карточных системах вы обычно отдаете (платите) свои деньги одним способом, а получаете их совершенно другим, исключающим возможность прямой передачи средств между двумя частными лицами.
Есть и несколько других, менее важных характеристик. Важно что цифровые деньги реализуют концепцию наличных денег, которые все (особенно это характерно для России) привыкли использовать. Вы носите с собой электронный бумажник с сертифицированными электронными банкнотами, но их никто не может у вас взять без спроса. Приобретая обыкновенную пластиковую карточку, вы тем самым переводите свои средства в разряд так называемых безналичных денег все операции, по которым авторизуют владельца средств. Если же вы используете цифровые деньги, операции проводятся обезличенно, как будто вы платите или передаете обыкновенную банкноту.
Обезличенностью денег, неотслеживаемостью платежей и введением частных валют осуществляется так называемая "денежная свобода" (monetary freedom). Некоторые авторы провозглашают начало новой эры человечества в связи с повсеместным введением в оборот цифровых денег. Свободная конкуренция без границ (имеются ввиду межгосударственные границы), несвязанная с государственной политикой коммерция, свободные от инфляции и девальвации деньги --- все это, по мнению авторов, даст толчок колоссальному росту промышленности и обогащению потребителя. С точки зрения финансистов и политиков, в цифровых деньгах кроется потенциальный источник новых потрясений цивилизации, так как одним из главных технических аспектов цифровых денег является анонимность.
К настоящему моменту в Internet представлены две технологии, реализующие эту идею.
Компания Mondex, возглавляемая Тимоти Джонсом (Timothy Jones), предлагает сетевую версию электронного кошелька, реализованную в виде аппаратно-программного комплекса (об электронном кошельке см. в разделе 1.3) .
Компания же DigiCash под руководством Д.Чома представила технологию сетевых электронных денег ecash в чисто программном варианте. Рассмотрим это решение.
В ядре технологии лежит все тот же прием криптозащиты с открытыми ключами /2/. Эмитент электронной наличности (банк) имеет, кроме обычной пары ключей, аутентифицирующей его, еще и последовательность пар ключей, в соответствие которым ставятся номиналы "цифровых монет". Снятие наличных со счета производится следующим образом. В ходе сеанса связи клиент и банк (точнее, их программы-представители) аутентифицируют друг друга. Затем клиент генерирует уникальную последовательность символов, преобразует ее путем "умножения" на случайный множитель (blinding factor), "закрывает" результат открытым ключом банка и отправляет "монету" в банк. Банк "раскрывает" "монету", используя свой секретный ключ, "заверяет" ее электронной подписью, соответствующей номиналу "монеты", "закрывает" ее открытым ключом клиента и возвращает ее ему, одновременно списывая соответствующую сумму со счета клиента. Клиент, получив "монету", "открывает" ее с помощью своего секретного ключа, затем "делит" ее символьное представление на запомненный множитель (при этом подпись банка остается) и сохраняет результат в "кошельке". Транзакция завершена. Теперь банк готов принять эту монету, от кого бы она не поступила (разумеется, лишь один раз).
Использование blinding factor и составляет суть приема "слепой подписи", предложенного Чомом в дополнение к обычному методу криптозащиты с открытыми ключами. Благодаря использованию "слепой подписи" банк не в состоянии накапливать информацию о плательщиках, в то же время сохраняя возможность следить за однократным использованием каждой "монеты" данным клиентом и идентифицировать получателя каждого платежа. Чом называет такую логику взаимодействия сторон "односторонней безусловной непрослеживаемостью" платежей. Покупатель не может быть идентифицирован даже при сговоре продавца с банком. В то же время, покупатель при желании может идентифицировать себя сам, и доказать факт осуществления сделки, апеллируя к банку. Такая логика призвана воспрепятствовать криминальному использованию электронной наличности.





Для вложения наличности клиент просто связывается с банком и отправляет ему полученную "монету", закрыв ее открытым ключом банка. Банк проверяет, не была ли она уже использована, заносит номер в регистр входящих и зачисляет соответствующую сумму на счет клиента.



















В сопутствующей же Боннской декларации Декларации лидеров промышленности сказано: "(1) Для обеспечения надежности и доверия в электронной коммерции и коммуникации Правительства должны допустить широкую доступность стойкой криптографии. (2) Частные лица и фирмы должны быть свободны в выборе технологий шифрования, отвечающих их специфическим требованиям безопасности и приватности коммуникаций. (3) Правительства не должны принимать новых правил, ограничивающих распространение, продажу, экспорт или использование стойкого шифрования, а все существующие правила такого рода должны быть упразднены. В любых обстоятельствах частные лица и корпорации должны иметь возможность локальной генерации, управления и хранения ключей шифрования". Возможно, взгляды подписавших Декларацию лидеров промышленности уже были бы приняты официальной Европой в полном объеме, однако этому препятствует Франция со своей особой позицией. Франция и Россия остаются единственными странами Севера, чья исполнительная власть продолжает настаивать на своей монополии на криптографические технологии. Попытки провести соответствующие законы в других европейских государствах оказались неудачными.
Во Франции запрещается использование зарубежных криптографических средств (за исключением используемых в международных платежных системах). Неофициально власти давали понять, что преследовать частных лиц-пользователей стойкой криптографии они не будут.
Право на анонимность. Современные демократические нормы предполагают определенные гарантии права на свободу анонимного слова (фактически, на право включать или не включать в публикуемую информацию сведения о ее авторе) по крайней мере по отношению к высказываниям политического характера. С переходом к сообщениям неполитического, и особенно коммерческого, характера, ситуация становится менее определенной. И -- совсем противоречивой, если речь заходит о столь специфических "сообщениях", как передача расчетной информации и, тем более, собственно платежах.
Определенную гарантию тайны, например, частного банковского вклада декларируют законодательства практически всех государств. Однако, в реальности большее значение имеют не декларативные гарантии, а различные "оговорки", определяющие те исключительные обстоятельства, в которых такая информация может быть раскрыта. Соответствующие нормы весьма различаются, и если, например, в Финляндии для получения информации о частных финансовых операциях достаточно запроса из полиции, то в Швейцарии или Австрии потребуется уже решение суда. Различна и ответственность лиц и организаций, раскрывающих такую информацию с нарушением закона и правил, и регулярность наложения этой ответственности. Фактически, уровень реально обеспечиваемой банковской тайны в большинстве государств неуклонно снижался в послевоенные годы. Критической ситуация стала в конце семидесятых - начале восьмидесятых, когда в рамках международных кампаний по борьбе с преступностью (в частности, с нелегальным оборотом наркотиков), был заключен ряд межгосударственных соглашений, которые позволяют контролирующим органам получать информацию о межгосударственных банковских операциях. В 1997 году "Война с отмыванием доходов" перешла в новую фазу: согласно принятым международным соглашениям (поддержанным большинством стран) сумма межгосударственных переводов, о которых финансовые учреждения обязаны сообщать контролирующим органамскачать dle 11.0фильмы бесплатно
загрузка...

Внимание! Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.