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

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?водит к истинному MDC исходного массива данных.

Для того, чтобы уменьшить вероятность навязывания ложных данных через нахождение побочных ключей, в шагах криптографического преобразования применяются не сами блоки исходного сообщения, а результат их расширения по некоторой схеме. Под схемой расширениея здесь понимается процедура построения блоков данных большего размера из блоков данных меньшего размера. Примером может служить, например, функция расширения, в которой выходной блок строится из байтов (или 2-,4-,... и т.д. -байтовых слов) исходного блока, перечисляемых в различном порядке. Указанное расширение стоит применять, если размер ключа использованного шифра в несколько раз превышает размер его блока данных. Так, для алгоритма DES, с размером блока данных 64 бита и ключа 56 бит в расширении нет необходимости. Если в схеме используется алгоритм ГОСТ2814789 с размером блока 64 бита и размером ключа 256 бит, стоит использовать 64- или 128-битные блоки исходного текста и расширять их до размеров 256 бит. Пример функции расширения 128-битового блока в 256-битовый может быть, например, следующим:

Исходный блок:T=(B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16),

После расширения: P(T)=(B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16,

B1, B4, B7, B10, B13, B16, B3, B6, B9, B12, B15, B2, B5, B8, B11, B14),

где Bi байты блока данных, |Bi|=8.

Схема алгоритма выработки MDC (хэшкода) с использованием классического блочного шифра приведена на рисунке 2.

Рис. 2. Алгоритм выработки кода обнаружения манипу-ляций для массива данных.

  1. Входные данные массив данных T, разбитый на m блоков фиксированного размера, не превышающего размер ключа использованного криптоалгоритма и, как правило, делящего его нацело: T=(T1,T2,...,Tm). Последний блок данных Tm каким-либо способом дополняется до полного блока данных, если имеет меньший размер.
  2. MDC получает нулевое начальное значение (это значение может быть, в принципе, любым).

Последующие шаги 2 и 3 алгоритма выполняются последовательного для каждого блока исходных данных в порядке их следования.

  1. Выполняется расширение очередного блока Ti данных с помощью функции расширения P до размера ключа шифра.
  2. Выполняется зашифрование текущего значения MDC на ключе, полученном на шаге 2, результат становится новым текущим значением MDC.
  3. Результатом работы алгоритма (т.е. MDC для всего входного массива данных) является последнее текущее значение MDC, полученное на шаге 3.

Рассмотренный алгоритм также может быть использован для выработки хэшкода в схемах цифровой подписи.

  1. Цифровая подпись на основе традиционных блочных шифров.

На первый взгляд, сама эта идея может показаться абсурдом. Действительно, общеизвестно, что так называемая современная, она же двухключевая криптография возникла и стала быстро развиваться в последние десятилетия именно потому, что ряд новых криптографических протоколов типа протокола цифровой подписи, в которых возникла острая необходимость в связи с проникновением электронных технологий в новые сферы, не удалось реализовать на базе традиционных криптоалгоритмов, широко известных и хорошо изученных к тому времени. Тем не менее, это возможно. И первые, кто обратил внимание на такую возможность, были … родоначальники криптографии с открытым ключом У.Диффи (W.Diffie) и М.Е.Хеллман (M.E.Hellman). В своей работе [8] они опубликовали описание подхода, позволяющего выполнять процедуру цифровой подписи одного бита с помощью блочного шифра. Прежде чем изложить эту изящную идею, сделаем несколько замечаний о сути и реализациях цифровой подписи.

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

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

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

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

KC ключ проверки подписи,