УДК 519.7

ПРОБЛЕМЫ СОЗДАНИЯ СОБСТВЕННЫХ КРИПТОСИСТЕМ

Явич Максим Павлович1, Исаев Павел Дмитриевич2
1Грузинский Технический Университет
2Московский Технологический Институт

Аннотация
В работе рассматриваются некоторые проблемы, возникающие при создании собственных криптосистем и усовершенствовании существующих. На примере возможных атак на блочные шифры показано, что желательно не создавать свои блочные шифры, а использовать готовые библиотеки. При рассмотрении основных атак на MAC показано, что возможен взлом стандартных криптосистем, проверенных множеством экспертов, не говоря уже о собственных. На примере ошибки, которую допустил Apple в iOS, показывается, что даже минимальные ошибки в алгоритме приводят к возможности серьезных атак. На примере RSA показано, что попытки усовершенствования работы стандартных криптосистем также сопряжены с большими трудностями. На основании приведенных данных сделан вывод, о том, что создание или усовершенствование существующих криптосистем требует серьезной экспертной оценки. Отмечается, что несмотря на более высокую степень безопасности новых гибридных криптосистем, большинство этих систем являются уязвимыми к атаке “man in the middle”.

Ключевые слова: криптосистемы


PROBLEMS ASSOCIATED WITH THE CREATION OF THE OWN CRYPTOSYSTEMS

Iavich Maksim Pavlovich1, Isaev Pavel Dmitrievich2
1Georgian Technical University
2Moscow Institute of Technology

Abstract
In this paper we consider some of the problems, associated with the creation of the own cryptosystems as well as with the improvement of the existing ones. On an example of possible attacks on block ciphers we show that it is desirable not to create own block ciphers, but to use existing libraries. When considering the major attacks on MAC we show that it is possible to hack standard cryptosystems, tested by a lot of experts, and of course it is possible to hack the own ones. On an example of the error that was made by Apple in iOS we show that even minimal errors in the algorithm lead to the possibility of serious attacks. On the example of RSA we show that attempts to improve the work of standard cryptosystems are also connected with big difficulties. On the basis of these data we make a conclusion, that the creation of the new cryptosystems, as well as the improvement of existing ones, require serious expert review. It is noted that despite of a higher degree of the new hybrid cryptosystems safety, most of these systems are vulnerable to the attack "man in the middle".

Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Явич М.П., Исаев П.Д. Проблемы создания собственных криптосистем // Современные научные исследования и инновации. 2014. № 4. Ч. 1 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2014/04/33150 (дата обращения: 28.09.2017).

В данной работе мы показываем, что создание собственных криптосистем или попытка их улучшить связаны с большими трудностями. Желательно изпользовать только стандартные, уже проверенные большим числом экспертов.

Несмотря на то, что криптография успешно применяется для  защиты информации [1], имеется ряд ограничений. Отметим некоторые из них:

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

В данной работе остановимся на третьем пункте. Криптография включает в себя множество криптосистем. Криптосистема должна быть надежной. Надежность криптосистемы может быть нарушена в основном из–за ошибок в реализации криптоалгоритмов или из-за неправильного их применения. Для подтверждения вышесказанного приведем несколько видов атак. Рассмотрим пластиковую карту для платежей, использующую блочные шифры. Данная карта имеет пароль, необходимый для обналичивания денег в терминале. Злоумышленник, завладевший этой картой, может выяснить количество времени, неообходимого для шифрования и расшивровки пароля. Если время зависит от количества битов пароля, то после некоторого числа попыток злоумышленник сможет полностью  раскрыть пароль. Также возможно подключение карты к аппарату, измеряющему ее мощность во время операций. Нарисовав график зависимости тока от времени, возможно прочитать ключ по  битам, наблюдая необходимую мощность карты для проделывания разных операций. [2]

В картах, где данная иформация маскируется, воможно использование атаки под названием «дифференциальный анализ питания». Т.е. измеряется мощность, которую карта затрачивает на проведение большого количества алгоритмов шифрования. После нахождения минимальной зависимости тока от битов пароля возможна расшифровка пароля целиком. Эта же проблема касается многоядерных процессоров, где шифрование идет на одном ядре, а код злоумышленника – на другом. С помощью промахов кеш памяти алгоритма шифрования возможно определение пароля. Кредитную карту злоумышленник может испортить, т.е. разогнать ее или разогреть. Если кредитная карта будет работать некорректно, то получится неправильный шифр, что достаточно для обнаружения ключа. Выход в том, что перед тем , как выдавать ответ алгоритма, необходимо проверить корректность вычисления. Это довольно трудно.

Рассмотрим линейные атаки:

Pr[  m[l1] XOR ⋯ XOR m[lr]  XOR  c[nj] XOR⋯XOR c[nv]  =  k[i1] XOR ⋯ XOR k[iu]  ] = ½ + ε, т.е. наблюдается минимальная зависимость между шифром, сообщением и ключом (c,m,k). В случае DES, ε = 1/221, возможно полностью раскрыть ключ приблизительно за 243 попыток, что намного меньше, чем в случае поиска с перебором.  Т.е. желательно не создавать свои блочные шифры, а использовать готовые библиотеки.

Рассмотрим основные атаки на MAC. Часть кода в Python из библиотеки Keyczar имеет следующий вид:

            def Verify(key, msg, sig_bytes):

            return HMAC(key, msg) == sig_bytes

Верификация работает следующим образом: с помощью этого кода повторно вычисляется HMAC сообщения и сравнивается с верным. Проблема в том,что сравнение происходит побайтно и при первом несоответствии выдает сообщение о неравенстве строк. Это приводит к серьезной «временной» атаке на данную библиотеку.

Есть несколько способов защиты от этой атаки, мы приведем один из них:

            return false if  sig_bytes  имеет неправильную длину

            result = 0       

            for x, y in zip( HMAC(key,msg) , sig_bytes):

            result |= ord(x) ^ ord(y)

            returnresult == 0

Здесь код написан так, чтобы любые 2 строки сравнивались в продолжении одних и тех же промежутков времени вне зависимости от результата.

Обратим внимание на ошибку, который допустил Apple в iOS. Из-за лишней строчки goto fail; происходит переход в конец алгоритма и верификация подписи не будет работать правильно, т.к. обусловливает возможность не верного вывода о том, что что операция обовления SHA1 прошла успешно. Т.е. в данном случае лишняя строчка кода приводит к атаке. [3].

Исходя из приведенных данных,возможен взлом стандартных криптосистем, проверенных множеством экспертов, не говоря уже о собственных.

Существуют определенные проблемы, связанные с попытками улучшения стандартных криптосистем, например, улучшения производительности RSA (шифрование или расшифровка):

Ускорим расшифровку RSA с помощью маленького privatekeyd (d ≈ 2128); cd = m  (mod N)

Wiener’87: если   d<N0.25, то RSA небезопасно. BD’98: если d<N0.292,то RSA небезопасно

Считается, что небезопасно, если d<N0.5. За последние 14 лет не было обоснований

того, что N0.5 является минимальным возможным размером. Никому не удавалось превзойти результат N0.292.

Практически все попытки улучшить RSA, как правило, приводили к катастрофе, что позволяет сделать вывод о проблемах при отклонении от стандартных схем его использования.

Исходя из выше сказанного, создание или усовершенствования существующих криптосистем требует серьезной экспертной оценки. На сегодняшний день создаются новые гибридные криптосистемы[4], которые используют комбинацию стандартных криптосистем, поэтому вероятность того, что они безопастны, выше. Несмотря на это, исходя из нашего анализа, большинство этих систем являются уязвимыми к атаке “man in the middle”.


Библиографический список
  1. Тилборг Ж. Основы криптологии. М.: Мир, 2006 , 471 с.
  2. Kocher, Jaffe, Deferential Power Analysis, 1998, http://www.cryptography.com/public,
  3. Adam Lengly Apple’s SSL/TLS bug (22 Feb 2014), https://www.imperialviolet.org/2014/02/22/applebug.html
  4. Иванов М. А.  Криптографические методы защиты информации в компьютерных системах и сетях: учебно-справ. издание – М. : КУДИЦ-ОБРАЗ, 2001. – 368 с.


Все статьи автора «Явич Максим Павлович»


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

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: