Проблема аутентификации данных и блочные шифры

       

Что такое цифровая подпись.


Итак, схема цифровой подписи или электронно-цифровой подписи – это набор алгоритмов и протоколов[1], позволяющих построить информационное взаимодействие между двумя и более участниками таким образом, чтобы факт авторства переданного массива данных, «подписанного» одним из участников, мог быть надежно подтвержден или опровергнут третьей стороной, «независимым арбитражем».  Подобная схема необходима для всех систем электронной обработки данных, где нет полного взаимного доверия между участниками информационного процесса, прежде всего это касается финансовой сферы.  Любая схема цифровой подписи предполагает добавление к «подписываемому» массиву данных дополнительного кода – собственно «цифровой подписи», выработать который может только автор сообщения, обладающий секретным ключом подписи, а все остальные могут лишь проверить соответствие этой «подписи» подписанным данным.  Поэтому каждая схема должна предусмотреть, как минимум, определение трех следующих алгоритмов:

1.    Алгоритм  GK  выработки пары ключей – подписи  KS  и проверки подписи  KC  с использованием вектора случайных параметров  R:  (KS,KC)=GK(R), здесь:

KS – ключ подписи, он должен быть известен только подписывающему;

KC – ключ проверки подписи, он не является секретным и доступен каждому, кто должен иметь возможность проверять авторство сообщений.

2.    Алгоритм  S  подписи сообщения  T  с использованием секретного ключа подписи  KS:

s=S(T,KS),

где  s

– цифровая подпись сообщения;

3.    Алгоритм  V  проверки подписи с использованием ключа проверки подписи KC, выдающий в качестве результата булево значение – подтверждается или не подтверждается авторство сообщения:

V(T,s,KC)Î{0,1}.

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

  • вычисляют контрольную комбинацию по некоторому алгоритму  C  с использованием подписанного сообщения и цифровой подписи:

  • c=C(T,s);

    • сравнивают контрольную комбинацию  c  и ключ проверки подписи  KC, если они совпадают, то подпись признается верной, а данные – подлинными, в противном случае данные считаются ложными.




    • Собственно говоря, указанных трех алгоритмов достаточно для реализации схемы цифровой подписи, однако на практике в схемы добавляют еще один алгоритм – функцию выработки хэш–блока для подписываемого массива данных  T.  Большинство криптографических алгоритмов оперируют блоками данных фиксированного размера, а массивы большего размера обрабатывают по частям, что необходимо для обеспечения эффективности и надежности этих схем.  Если такой же подход использовался при выработке цифровой подписи, блоки массивов информации подписывались бы отдельно друг от друга, и размер подписи оказался бы сравнимым с размером подписываемого массива данных, что по вполне понятным причинам не удобно.  Поэтому в практических схемах ЭЦП подписывается не само сообщение, а его хэш–код, то есть результат вычисления функции необратимого сжатия для этого массива, который имеет фиксированный размер.  Таким образом, в схему ЭЦП добавляется четвертый алгоритм:

      4.    Алгоритм  H  вычисления необратимой хэш–функции для подписываемых массивов:

      h=H(T).

      Алгоритм вычисления хэш–функции и прочие алгоритмы схемы не зависят друг от друга и согласуются только по размеру блоков, которыми они оперируют.  Это позволяет при необходимости менять в схеме подписи способ вычисления хэш–значений.

      Для работоспособной схемы электронно-цифровой подписи необходимо выполнение следующих условий:

      • никто, кроме лица, обладающего секретным ключом подписи  KS, не может корректно подписать заданное сообщение  T;


      • Поскольку сторона, проверяющая подпись, обладает открытым ключом  KC  проверки подписи, из указанного свойства следует, что не должно существовать вычислительно эффективного алгоритма вычисления секретного ключа  KS  по открытому  KC.

        • никто, включая лицо, обладающее ключом подписи, не в состоянии построить сообщение  T', подходящее под наперед заданную подпись  s.




        • При предложении какой- либо схемы подписи оба эти свойства необходимо доказывать, что делается обычно доказательством равносильности соответствующей задачи вскрытия схемы какой-либо другой, о которой известно, что она вычислительно неразрешима.  Практически все современные алгоритмы цифровой подписи и прочие схемы «современной криптографии» основаны на так называемых «сложных математических задачах» типа факторизации больших чисел или логарифмирования в дискретных полях.  Однако доказательство невозможности эффективного вычислительного решения этих задач отсутствует, и нет никаких гарантий, что они не будут решены в ближайшем будущем, а соответствующие схемы взломаны – как это произошло с «ранцевой» схемой цифровой подписи [9].  Более того, с бурным прогрессом средств вычислительных техники «границы надежности» методов отодвигаются в область все больших размеров блока.  Всего пару десятилетий назад, на заре криптографии с открытым ключом считалось, что для реализации схемы подписи RSA достаточно 128- или даже битовых чисел.  Сейчас эта граница отодвинута до 1024-битовых чисел – практически на порядок, – и это далеко еще не предел.  Надо ли объяснять, что с каждой такой «подвижкой» приходится перепроектировать аппаратуру и переписывать программы, реализующие схему.  Ничего подобного нет в области классических блочных шифров, если не считать изначально ущербного и непонятного решения комитета по стандартам США ограничить размер ключа алгоритма DES 56-ю битами, тогда как еще во время обсуждения алгоритма предлагалось использовать ключ большего размера [5].  Схемы подписи, основанные на классических блочных шифрах, свободны от указанных недостатков:

          • во-первых, их стойкость к попыткам взлома вытекает из стойкости использованного блочного шифра;


          • Надо ли говорить, что классические методы шифрования изучены гораздо больше, а их надежность обоснована неизмеримо лучше, чем надежность методов «современной криптографии».

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



            • Содержание раздела