Криптография и Свобода - 2

Mar 29, 2012 21:29

RSA vs EC

За те долгие годы, когда впервые было заявлено о криптографии с открытым распределением ключей (середина 70-х годов прошлого века), реальными считаются фактически две системы: RSA и система Диффи-Хеллмана. Алгоритмы RSA основаны на сложности разложения большого числа на простые множители, в то время как DH - алгоритмы Диффи-Хеллмана - основаны на сложности логарифмирования в конечных полях. Если на заре криптографии с открытым распределением ключей в качестве полей для алгоритма DH выбирали конечные группы Галуа, то где-то примерно с середины 90-х годов началось повальное увлечение EC - elliptic curve - эллиптическими кривыми, математический аппарат которых весьма схож с аппаратом конечных полей и методом DH. Таким образом, в современной криптографии есть два конкурирующих между собой метода построения системы с открытым распределением ключей: RSA и EC. И во всем мире началась дискуссия - что лучше: RSA или EC. Какие же доводы могли привести сторонники того или иного метода?

RSA.
  1. Алгоритм проще, чем EC, с точки зрения реализации. Бесспорным доказательством этого служит тот факт, что при зашифровании с помощью RSA достаточно открытого ключа получателя шифрованного сообщения, в то время как в EC необходимо иметь пару: открытый ключ получателя - секретный ключ отправителя. Если, к примеру, речь идет о защищенном протоколе SSL, то при использовании EC появляются дополнительные сложности. Если клиент не имеет своего private key, то для установления соединения с сервером необходимо выработать так называемый эфемерный ключ и включить соответствующий ему открытый ключ в протокол обмена сообщениями при handshake.
  2. Процедуры шифрования и подписи для RSA реализуются с помощью одной и той же функции, которая называется modular exponent - возведение в степень по модулю. Если реализовывать RSA на внутреннем процессоре Smart Card. то реализация одной этой функции сразу позволяет осуществлять как шифрование, так и подпись внутри Smart Card.

EC.

По сравнению с RSA, EC может похвастать только одним преимуществом: «природа» эллиптических кривых и возможные их параметры намного шире, чем у RSA, где весь математический аппарат привязан к операциям с простыми числами.

Эти особенности и определили судьбу двух основных методов криптографии с асимметричными ключами.

- RSA - широкое распространение в коммерческой криптографии, где в первую очередь требуется простота и надежность реализации, минимизация ошибок в программном обеспечении, которое может быть подготовлено многими независимыми друг от друга программистами.

- EC - в государственной и военной криптографии, где в первую очередь требуется оригинальность криптографических решений, являющаяся дополнительным рубежом криптографической защиты.

Безусловно, что такое разделение является очень общим, в реальной жизни всегда есть множество оттенков и полутонов. Но de facto RSA стал общепризнанным международным стандартом, который вошел, в частности, в операционную систему Windows и большинство мировых сертификационных центров заверяют сертификаты только с помощью RSA.

Здесь нельзя не упомянуть об оценках стойкости алгоритмов типа RSA и EC. Для RSA в 2010 году удалось успешно вскрыть ключ длиной 768 бит, поэтому в настоящее время минимально допустимой длиной RSA ключа является 1024 бит. Тогда же было высказано мнение, что такая длина может быть криптографически безопасной еще только ближайшие три-четыре года. Два из них уже прошли, но пока по-прежнему длина 1024 бит не считается для RSA критической. Здесь, помимо чисто криптографических методов анализа, еще, на мой взгляд, надо учитывать то, что RSA является намного более распространенным методом, чем EC, а следовательно, привлекает к себе гораздо больше внимания криптографов-аналитиков, чем EC. Хотя, по-видимому, требуемый уровень безопасности в EC можно обеспечить при меньшей длине ключа, чем в RSA. Но подходы к гражданской криптографии все-таки сильно отличаются от криптографии военной: здесь в первую очередь важны удобство и распространенность реализации, а взлом - это весьма дорогостоящее мероприятие, которое вряд ли стоит затевать, к примеру, для получения доступа к банковскому счету обычного пользователя банка. Стоимость такого взлома может оказаться намного больше, чем сумма денег на счету пользователя.

Поскольку RSA получил широкое распространение, то среди ведущих мировых производителей смарт-карт, таких как GmbH, Gemplas, Infinion, Axalto началась гонка за завоевание криптографических рынков с помощью чипов с полной поддержкой RSA на уровне архитектуры процессора, т.е. на уровне hardware. Под полной поддержкой во всем мире сразу же стали понимать, что выработка и использование RSA ключей должны осуществляться только внутри процессора смарт-карты, а наружу (во внешнюю и более уязвленную память компьютера) должен выдаваться только готовый результат зашифрования или подписи. А время выработки случайного 1024-битного RSA-ключа внутри смарт карты было доведено до 10 - 20 секунд.

Эта гонка привела к тому, что гражданская криптография стала проникать даже в те страны, где каких-нибудь 15-20 лет назад о ней не имели ни малейшего представления. Алгоритм простой: ничего сами не выдумываем, проводим открытый конкурс и выбираем готовые криптографические решения. Как правило, сначала закупается сертификационный центр, а затем PKI, включающий в себя CSP и PKCS#11 для смарт-карт и, естественно, сами смарт-карты с полной поддержкой RSA. Мне за время пребывания в Корее один раз удалось принять участие в таком конкурсе, который в 2006 году проводило правительство Таиланда.

У тайцев к тому времени уже был собственный сертификационный центр, теперь же они хотели добавить к нему PKI с поддержкой смарт карт. Правительство Таиланда объявило открытый конкурс, в котором в качестве одного из соискателей приняла участие корейская компания HiSmarTech, входящая в могущественный Samsung. Молодые ребята из этой компании подготовили собственную Smart Card а к тому времени у меня уже были готовы поддерживающие эту карту Smart Card CSP и PKCS#11, поэтому HiSmarTech включила меня в свою команду для участия в конкурсе в Таиланде. Что требуется от соискателя - загадка. Интуитивно ясно, что PKI, точнее даже не сам PKI, а совместимость моих CSP и PKCS#11 с готовыми тайскими PKI.

Первые тесты я делал для SCard CSP на тестовом таиландском CA - вроде работают. Где-то в конце июня 2006 года - первая вылазка в Таиланд, посмотреть живьем на тайские СА и понять, что им надо. Прилетели. Нас привезли в тайский вычислительный центр, где стоит закупленный тайцами Baltimore UniCERT Certificate Authority System. PKI использует PKCS#11, наш PKCS#11 с ним глючит. Тот СА, который я тестировал в Интернете, с этим не имеет ничего общего, за исключением того, что тот и другой выдают сертификаты. В общем, первый блин комом. Вылазка была, если мне сейчас не изменяет память, дня на два, к концу второго дня мне удалось глюки выловить и получить с этого сервера тестовый сертификат. Но это было, так сказать, неофициальное выступление, основное участие в конкурсе - benchmark test (по-русски - экзамен кандидатского минимума) - состоялся недели через две.

К benchmark test ребята из HiSmarTech подготовились основательно. Притащили в Бангкок здоровенную железяку - машинку для проверки прочности пластиковых смарт карт. Она несколько тысяч раз выгибала карточку в разных плоскостях и давала наглядное подтверждение, что чип приклеен к карточке надежно. А верховодила корейской командой девушка, которая закончила в Москве режиссерский факультет института кинематографии и неплохо говорила по-русски. В команду, кроме нее входили «ребята -апплетписатели», т. е. те, кто разрабатывал уровень software для карточки. Требованием тайцев был полный цикл подготовки карточки, им надо было показать, как апплет устанавливается в карточку, как тестируется, инициализируется, и, естественно, как карточка работает с криптографическими интерфейсами CSP и PKCS#11.

«Экзамен кандидатского минимума» принимали тайские чиновники. У меня экзамен по криптографии принимал молодой человек, чем-то похожий на Яшку-цыгана из фильма «Неуловимые мстители». Стандартные тесты процедур шифрования и подписи с помощью CSP (про PKCS#11 так и не вспомнил, а я так переживал!) и постоянные попытки вытащить карточку в момент подписи из считывателя - чтобы убедиться, что все криптографические процедуры реально выполняются внутри чипа карты. После нескольких попыток проэкзаменовать меня по другим криптографическим вопросам он как-то сник и безропотно ставил плюсики в своем экзаменационном листе. Короче, криптографическая часть этого кандидатского минимума была выполнена быстрее всех. Я превратился в наблюдателя за работой корейской зверь-машины по выламыванию чипа из карточки, которая сколько ни старалась, так ничего и не смогла сделать с упрямым чипом.

В общем, команда HiSmarTech выступила в Таиланде довольно успешно. Тут же появились тайские спонсоры, готовые поддержать корейцев в осваивании местного рынка. Вечером они повели нас в известное в Бангкоке место - Beer Factory. Там пиво пьют не литрами, а метрами: полуторамертовыми пробирками, в каждую из которых входит около 5 литров пива.







К сожалению, в сентябре того же года в Таиланде произошел военный переворот, и, по-видимому, правительству стало не до смарт карт. Иначе России пришлось бы сейчас догонять по гражданской криптографии не только Южную Корею, но и Таиланд.

До сих пор так и нет в России ни RSA, ни полноценного Internet Banking, ни открытых криптографических конкурсов. «Тот, кто встроил RSA, тот проныра и лиса» - такое мнение бытует в ФСБ. Зато наши эллиптические кривые ГОСТ Р 3410 такие, каких ни у кого в мире нет (и карточек под них тоже практически нет), а RSA - это происки зарубежной закулисы, в бессильной злобе наблюдающей за тем, как Россия встает с колен!

Назад                                Продолжение
В начало книги Криптография и Свобода - 2
Previous post Next post
Up