рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Модификация схемы Диффи-Хеллмана для подписи битовых групп

Работа сделанна в 1995 году

Модификация схемы Диффи-Хеллмана для подписи битовых групп - раздел Программирование, - 1995 год - Проблема аутентификации данных и блочные шифры Модификация Схемы Диффи-Хеллмана Для Подписи Битовых Групп. В Данном Разделе ...

Модификация схемы Диффи-Хеллмана для подписи битовых групп. В данном разделе изложены идеи авторов 7 , позволившие перейти от подписи отдельных битов в исходной схемы Диффи-Хеллмана к подписи битовых групп.

Центральным в этом подходе является алгоритм односторонней криптографической прокрутки, который в некотором роде может служить аналогом операции возведения в степень.

Как обычно, предположим, что в нашем распоряжении имеется криптографический алгоритм EK с размером блока данных и ключа соответственно n и nK битов, причем размер блока данных не превышает размера ключа nnK. Пусть в нашем распоряжении также имеется некоторая функция расширения n-битовых блоков данных в nK-битовые Y PnnK X , X n, Y nK. Определим функцию Rk односторонней прокрутки блока данных T размером n бит k раз k0 с помощью следующей рекурсивной формулы где X - произвольный несекретный n-битовый блок данных, являющийся параметром процедуры прокрутки.

По своей идее функция односторонней прокрутки чрезвычайно проста, надо всего лишь нужное количество раз k выполнить следующие действия расширить n-битовый блок данных T до размера ключа использованного криптоалгоритма nK , на полученном расширенном блоке как на ключе зашифровать блок данных X, результат зашифрования занести на место исходного блока данных T . В силу определения операция Rk T обладает двумя крайне важными для нас свойствами 1. Аддитивность по числу прокручиваний Rk k T Rk Rk T . 2. Односторонность или необратимость прокрутки если известно только некоторое значение функции Rk T , то вычислительно невозможно найти значение Rk T для любого k k - если бы это было возможно, в нашем распоряжении был бы способ определить ключ шифрования по известному входному и выходному блоку криптоалгоритма EK. что противоречит предположению о стойкости шифра. Теперь покажем, как указанную операцию можно использовать для подписи группы битов изложим описание схемы подписи блока T, состоящего из nT битов, по точно такой же схеме, по которой в предыдущем разделе описывается схема подписи одного бита. секретный ключ подписи KS выбирается как произвольная пара блоков K0, K1, имеющих размер блока данных используемого блочного шифра KS K0,K1 Таким образом, размер ключа подписи равен удвоенному размеру блока данных использованного блочного шифра KS 2n ключ проверки вычисляется как пара блоков, имеющих размер блоков данных использованного криптоалгоритма по следующим формулам KC C0,C1 , где C0 R2nT-1 K0 , C1 R2nT-1 K1 . В этих вычислениях также используются несекретные блоки данных X0 и X1, являющиеся параметрами функции односторонней прокрутки, они обязательно должны быть различными.

Таким образом, размер ключа проверки подписи равен удвоенному размеру блока данных использованного блочного шифра KC 2n. Алгоритмы модифицированной авторами 7 схемы цифровой подписи Диффи и Хеллмана следующие 1. Алгоритм G выработки ключевой пары Берем случайный блок данных подходящего размера 2n, это и будет секретный ключ подписи KS K0,K1 R. Ключ проверки подписи вычисляем как результат односторонней прокрутки двух соответствующих половин секретного ключа подписи на число, равное максимальному возможному числовому значению nT-битового блока данных, то есть на 2nT-1. KC C0,C1 R2nT-1 K0 , R2nT-1 K1 . 2. Алгоритм SnT выработки цифровой подписи для nT-битового блока T, ограниченного, по своему значению, условием 0T2nT-1, заключается в выполнении односторонней прокрутки обеих половин ключа подписи T и 2nT-1-T раз соответственно s SnT T s0,s1 RT K0 , R2nT-1-T K1 . 3. Алгоритм VnT проверки подписи состоит в проверке истинности соотношений R2nT-1-T s0 C0, RT s1 C1, которые, очевидно, должны выполняться для подлинного блока данных T R2nT-1-T s0 R2nT-1-T RT K0 R2nT-1-T T K0 R2nT-1 K0 C0, RT s1 RT R2nT-1-T K1 RT 2nT-1-T K1 R2nT-1 K1 C1. Таким образом, функция проверки подписи будет следующей Покажем, что для данной схемы выполняются необходимые условия работоспособности схемы подписи 1. Предположим, что в распоряжении злоумышленника есть nT-битовый блок T, его подпись s s0,s1 , и ключ проверки KC C0,C1 . Пользуясь этой информацией, злоумышленник пытается найти правильную подпись s s 0,s 1 для другого nT-битового блока T . Для этого ему надо решить следующие уравнения относительно s 0 и s 1 R2nT-1-T s 0 C0, RT s 1 C1. В распоряжении злоумышленника есть блок данных T с подписью s s0,s1 , и это позволяет ему вычислить одно из значений s 0,s 1, даже не владея ключом подписи a если T T , то s 0 RT K0 RT -T RT K0 RT -T s0 , b если T T , то s 1 R2nT-1-T K1 RT-T R2nT-1-T K1 RT-T s1 . Однако для нахождения второй половины подписи s 1 в случае a и s 0 в случае b ему необходимо выполнить прокрутку в обратную сторону, т.е. найти Rk X , располагая только значением для большего k Rk X , k k, что является вычислительно невозможным.

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

Действительно, пусть цифровая подпись блоков T и T совпадает.

Тогда подписи обоих блоков будут равны соответственно s SnT T s0,s1 RT K0 , R2nT-1-T K1 , s SnT T s 0,s 1 RT K0 , R2nT-1-T K1 , s s, следовательно RT K0 RT K0 R2nT-1-T K1 R2nT-1-T K1 . Положим для определенности TT , тогда справедливо следующее RT -T K0 K0 ,RT -T K1 K1 ,где K0 RT K0 , K1 R2nT-1-T K1 Последнее условие означает, что прокручивание двух различных блоков данных одно и то же число раз оставляет их значения неизменными.

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

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

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

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

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

Тогда размеры ключей подписи проверки и самой подписи совпадают и равны следующей величине бит, где x обозначает округление числа x до ближайшего целого в сторону возрастания. Число операций шифрования EK X , требуемое для реализации процедур схемы, определяются нижеследующими соотношениями при выработке ключевой информации оно равно, при подписи и проверке подписи оно вдвое меньше. В следующей ниже таблице 2 приведены рассчитанные значения размеров ключей и подписи, и числа требуемых операций шифрования в зависимости от размера подписываемых битовых групп при условии использования блочного криптоалгоритма с размером блока n 64 бита Таблица 2. Числовые показатели схемы подписи в зависимости от размера битовых групп. nT Число бит. Размер подписи и ключей, байт Число операций шифрования групп KS KC s WK WS WC 1 64 1024 128 64 2 32 512 192 96 3 22 352 308 154 4 16 256 480 240 5 13 208 806 403 6 11 176 1386 693 7 10 160 2540 1270 8 8 128 4080 2040 9 8 128 8176 4088 10 7 112 14322 7161 11 6 96 24564 12282 12 6 96 49140 24570 13 5 80 81910 40955 14 5 80 163830 81915 15 5 80 327670 163835 16 4 64 524280 262140 Размер ключа подписи и проверки подписи можно дополнительно уменьшить следующими приемами 1. Нет необходимости хранить ключи подписи отдельных битовых групп, их можно динамически вырабатывать в нужный момент времени с помощью генератора криптостойкой гаммы.

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

Для ГОСТа 28147-89 этот размер равен 256 битам, поэтому если схема подписи будет построена на ГОСТе, размер ключа подписи будет равен тем же 256 битам. 2. Точно так же, нет необходимости хранить массив ключей проверки подписи отдельных битовых групп блока, достаточно хранить его хэш-комбинацию.

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

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

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

Однако эта проблема может быть решена в точности так же, как была решена проблема ключей для множественных битовых групп - генерацией ключей подписи для всех N сообщений из одного мастер-ключа и свертывание всех проверочных комбинаций в одну контрольную комбинацию с помощью алгоритма выработки хэш-кода. Такой подход решил бы проблему размера хранимых ключей, однако привел бы к необходимости вместе подписью каждого сообщения высылать недостающие N-1 проверочных комбинаций, необходимых для вычисления хэш-кода от массива всех контрольных комбинаций отдельных сообщений.

Ясно, что такой вариант не обладает преимуществами по сравнению с исходным.

Однако в 7 был предложен механизм, позволяющий значительно снизить остроту проблемы. Его основная идея - вычислять контрольную комбинацию ключ проверки подписи не как хэш от линейного массива проверочных комбинаций всех сообщений, а попарно - с помощью бинарного дерева. На каждом уровне проверочная комбинация вычисляется как хэш от двух проверочных комбинаций младшего уровня. Чем выше уровень комбинации, тем больше отдельных ключей проверки в ней учтено. Предположим, что наша схема рассчитана на 2L сообщений.

Обозначим через Ci l i-тую комбинацию l-того уровня. Если нумерацию комбинаций и уровней начинать с нуля, то справедливо следующее условие 0i 2L-l, а i-тая проверочная комбинация l-того уровня рассчитана на 2l сообщений с номерами от i2l до i 1 2l-1 включительно. Число комбинаций нижнего, нулевого уровня равно 2L, а самого верхнего, L-того уровня - одна, она и является контрольной комбинацией всех 2L сообщений, на которые рассчитана схема.

На каждом уровне, начиная с первого, проверочные комбинации рассчитываются по следующей формуле Ci l 1 H C2 il C2 il 1 , где через A B обозначен результат конкатенации двух блоков данных - A и B, а через H X - процедура вычисления хэш-кода блока данных X. При использовании указанного подхода вместе с подписью сообщения необходимо передать не N-1, как в исходном варианте, а только log2N контрольных комбинаций. Передаваться должны комбинации, соответствующие смежным ветвям дерева на пути от конечной вершины, соответствующей номеру использованной подписи, к корню.

Уровень 3 C0 3 2 C0 2 C1 2 1 C0 1 C1 1 C2 1 C3 1 0 C0 0 C1 0 C2 0 C3 0 C4 0 C5 0 C6 0 C7 0 Рис. 3. Схема попарного хеширования проверочных комбинаций при выработке общего ключа проверки подписи. Схема попарного хеширования проверочных комбинаций при выработке общего ключа проверки подписи на восемь сообщений приведена на рисунке 3. Так, в схеме на 8 сообщений при передаче сообщения 5 контрольная комбинация выделена рамкой вместе с его подписью должны быть переданы контрольная комбинация сообщения 4 C4 0 , общая для сообщений 6-7 C3 1 и общая для сообщений 0-3 C0 2 , все они выделены на рисунке другим фоном.

При проверке подписи значение C5 0 будет вычислено из сообщения и его подписи, а итоговая контрольная комбинация, подлежащая сравнению с эталонной, по следующей формуле C C0 3 H C0 2 H H C4 0 C5 0 C3 1 . Номера контрольных комбинаций каждого уровня, которые должны быть переданы вместе с подписью сообщения с номером i 0i 2L , вычисляются по следующей формуле C il 2l1, l 0, ,L-1, где x1 означает число, получающееся в результате инвертирования младшего бита в числе x. Необходимость отправлять вместе с подписью сообщения дополнительную информацию, нужную для проверки подписи, на самом деле не очень обременительна.

Действительно, в системе на 1024 210 подписей вместе с сообщением и его подписью необходимо дополнительно передавать 10 контрольных комбинаций, а в системе на 1048576 220 подписей - всего 20 комбинаций.

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

Первый подход предполагает затраты дисковой памяти, так как необходимо хранить 2L 1-2 хэш-комбинаций всех уровней, а второй требует большого объема вычислений в момент формирования подписи. Можно использовать и компромиссный подход - хранить все хэш-комбинации начиная с некоторого уровня l, а комбинации меньшего уровня вычислять при формировании подписи. В рассмотренной выше схеме подписи на 8 сообщений можно хранить все 14 контрольных комбинаций, используемых при проверки всего их 15, но самая верхняя не используется, тогда при проверке подписи их не надо будет вычислять заново.

Можно хранить 6 комбинаций начиная с уровня 1 C0 1 , C1 1 , C2 1 , C3 1 , C0 2 , C1 2 , тогда при проверке подписи сообщения 5 необходимо будет заново вычислить комбинацию C4 0 , а остальные C0 2 ,C3 1 взять из хранилища, и т.д Указанный подход позволяет достичь компромисса между быстродействием и требованиям к занимаемому количеству дискового пространства.

Надо отметить, что отказ от хранения комбинаций одного уровня приводит к экономии памяти и росту вычислительных затрат примерно вдвое, то есть зависимость носит экспоненциальный характер. 3.4. Схема цифровой подписи на основе блочного шифра. Ниже приведены числовые параметры и используемые вспомогательные алгоритмы рассматриваемой схемы цифровой подписи EK - алгоритм зашифрования с размером блока данных и ключа n и nK битов соответственно Гm s,K - алгоритм выработки m битов криптостойкой гаммы с использованием n-битового вектора начальных параметров синхропосылки s и nK-битового ключа K, представляет собой рекуррентный алгоритм выработки n-битовых блоков данных и их последующего зашифрования по алгоритму EK PmnK - набор функций расширения m-битовых блоков данных до nK-битовых для различных m типично - для кратных n, меньших nK L - фактор количества подписей система рассчитана на N 2L подписей nT - число битов в подписываемых битовых группах, тогда число групп равно. Ниже изложены алгоритмы схемы подписи 1. Алгоритм формирования ключей подписи и проверки подписи. a Формирования ключа подписи.

Ключ подписи формируется как nK-битовый блок данных с помощью аппаратного генератора случайных кодов или криптостойкого программного генератора псевдослучайных кодов KS GnT . Биты ключа должны быть независимы и с равной вероятностью принимать оба возможных значения - 0 и 1. b Формирования ключа проверки подписи.

Схема алгоритма формирования ключа проверки подписи изображена на рисунке 4. Шаг 0. Исходные данные алгоритма - nK-битовый массив данных KS - ключ подписи.

Шаг 1. Вычисляем nG - количество nT-битовых групп в подписываемых блоках. Следующие шаги 2-9 выполняются столько раз, на сколько подписей рассчитана схема, т.е. для каждого номера подписи системы. Рис. 4. Алгоритм выработки ключа проверки подписи. Шаг 2. Выработать блок гаммы размером 2nnG бит с помощью генератора криптостойкой гаммы на ключе KS с начальным заполнением i номером подписи и поместить его в 2nnG-битовый массив X. Шаг 3. 2nnG-битовый массив X интерпретируется как массив из 2nG n-битовых элементов Xj, X X1,X2, ,X2nG , Xj n, затем для каждого элемента этого массива вычисляется результат его односторонней прокрутки 2nT-1 раз. Шаг 4. Для массива X вычисляется и записывается в блок данных S его хэш-код, который является индивидуальной проверочной комбинацией для подписи номер i. Следующие шаги 5,6 выполняются количество раз, равное фактору количества подписей L. Шаг 5. Если l младших бит номера подписи - единицы, переход к шагу 6, иначе - выполнение цикла прекращается и управление передается на шаг 7. Шаг 6. Текущая хэш-комбинация S объединяется c текущей хэш-комбинацией Dl уровня l, и для полученного массива вычисляется хэш-значение, которое становится новой текущей хэш-комбинацией.

Шаг 7. Текущая хэш-комбинация S заменяет хэш-комбинацию Dl уровня l. Шаг 8. Последняя вычисленная при выполнении алгоритма текущая хэш-комбинация S и будет являться результатом работы алгоритма - ключом проверки подписи.

Кроме того, в ходе выполнения алгоритма будут последовательно выработаны хэш-комбинации всех уровней от 0 до L , 0lL, 0i 2L-l, которые могут храниться в системе и использоваться при формировании подписи. 2. Алгоритм подписи хэш-блока массива данных.

Схема алгоритма подписи хэш-блока массива данных изображена на рисунке 5. Шаг 0. Исходные данные алгоритма T - подписываемый - n-битовый хэш-блок массива данных KS - ключ подписи - nK-битовый массив данных i - порядковый номер подписи.

Шаг 1. Вычисляем nG - число nT-битовых групп в подписываемом n-битном хэш-блоке. Шаг 2. Выработать блок гаммы размером 2nnG бит с помощью генератора криптостойкой гаммы на ключе KS с начальным заполнением i номером подписи и поместить его в 2nnG-битовый массив X. Шаг 3. 2nnG-битовый массив X интерпретируется как массив из nG пар n-битовых элементов X X1,X2 X2nG-1,X2nG , Xj n, затем для каждой составляющей каждого элемента этого массива, соответствующего определенной битовой группе хэш-блока, нужное число раз выполняется процедура односторонней прокрутки. Рис. 5. Алгоритм подписи хэш-кода сообщения.

Шаг 4. К индивидуальной проверочной комбинации последовательно добавляется попарные хэш-комбинации, по одной комбинации с каждого уровня от 0 до L-1, которые необходимы при вычислении проверочной комбинации самого верхнего уровня L , общей для всех сообщений.

Номер добавляемой комбинации каждого уровня определяется отбрасыванием количества последних бит в номере подписи, равного номеру уровня, и в инвертировании младшего бита полученного числа. Шаг 5. В результате получаем цифровую подпись хэш-блока сообщения S X,D , состоящую из массива подписей битовых групп блока X X1,X2, ,X2nG и из массива дополнительных проверочных комбинаций D D0,D1, ,DL-1 , необходимых для выполнения процедуры проверки подписи и используемых при вычислении попарных проверочных комбинаций. 3. Алгоритм проверки под

– Конец работы –

Эта тема принадлежит разделу:

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

Информация, представленная в самых различных формах, подобно другим товарам производится, хранится, транспортируется к потребителю, продается,… Так как информация имеет нематериальный характер, массивы данных не несут на… Модификация информационного массива не оставляет осязаемых следов на нем и не может быть обнаружена обычными…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Модификация схемы Диффи-Хеллмана для подписи битовых групп

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

Задача имитозащиты данных
Задача имитозащиты данных. Под имитозащитой данных в системах их обработки понимают защиту от навязывания ложных данных. Как мы уже выяснили, практически всегда на некоторых этапах своего жизненног

Подходы к контролю неизменности данных
Подходы к контролю неизменности данных. В настоящее время известны два подхода к решению задачи защиты данных от несанкционированного изменения, базирующихся на двух изложенных выше подходах к выра

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

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

Что такое цифровая подпись
Что такое цифровая подпись. Итак, схема цифровой подписи или электронно-цифровой подписи - это набор алгоритмов и протоколов Протоколов в криптографии называется набор правил и алгоритмов более выс

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги