|
(21), (22) Заявка: 2005126661/09, 23.08.2005
(24) Дата начала отсчета срока действия патента:
23.08.2005
(46) Опубликовано: 10.03.2007
(56) Список документов, цитированных в отчете о поиске:
RU 2183051 С2, 27.05.2005. RU 2090006 С1, 10.09.1997. RU 2180469 С2, 10.03.2002. RU 2180770 С2, 20.03.2002. US 5930362 А, 27.07.1999. US 5416841 А, 16.05.1995. ЕР 0534419 А2, 31.03.1993. WO 95/28784 A1, 25.10.1995.
Адрес для переписки:
194064, Санкт-Петербург, Тихорецкий пр-т, 3, Военная академия связи, Бюро изобретательства
|
(72) Автор(ы):
Бакаев Михаил Васильевич (RU), Яковлев Виктор Алексеевич (RU)
(73) Патентообладатель(и):
Военная академия связи им. С.М. Буденого (RU)
|
(54) СПОСОБ ФОРМИРОВАНИЯ КЛЮЧА ШИФРОВАНИЯ/ДЕШИФРОВАНИЯ
(57) Реферат:
Изобретение относится к области криптографии, может быть использовано в качестве отдельного элемента при построении симметричных криптографических систем, предназначенных для передачи шифрованных речевых, звуковых, телевизионных и др. сообщений. Технический результат – снижение времени формирования ключа шифрования/дешифрования и повышение стойкости сформированного ключа шифрования/дешифрования к компрометации со стороны нарушителя. Для этого на передающей стороне направления связи формируют случайную последовательность в виде трех блоков X1, X2, Х3 с длинами k1, k2, k3 соответственно. Передают ее по каналу связи с ошибками на приемную сторону направления связи (Y1, Y2, Y3 – принятые блоки). Формируют блоки проверочных символов C1 и С2 для блоков X1 и Х2. Формируют сообщение путем конкатенации блоков C1 и С2. Формируют аутентификатор w для полученного сообщения, используя АП-код и блок Х3. Передают сообщение и аутентификатор w по каналу связи без ошибок на приемную сторону направления связи. На приемной стороне направления связи проверяют подлинность принятого сообщения , используя АП-код и блок Y3. Выделяют блоки проверочных символов C1 и С2 из принятого сообщения . Из ранее принятых по каналу связи с ошибками блоков Y1, Y2 и блоков проверочных символов C1 и C2 формируют декодированные блоки Формируют ключи шифрования/дешифрования на приемной и передающей сторонах направления связи путем хэширования блока X1 на передающей стороне направления связи и декодированного блока 1 на приемной стороне направления связи. 5 з.п. ф-лы, 37 ил.
Изобретение относится к области криптографии, а именно к формированию ключа шифрования/дешифрования (КлШД), и может быть использовано в качестве отдельного элемента при построении симметричных криптографических систем, предназначенных для передачи шифрованных речевых, звуковых, телевизионных и др. сообщений.
Предлагаемый способ формирования КлШД может использоваться в криптографических системах в случае отсутствия или потери криптосвязности (Криптосвязность – наличие у законных сторон одинакового КлШД.) между законными сторонами направления связи (Законные стороны НС – т.е. санкционированные участники обмена информации) (НС) или установления криптосвязности между новыми законными сторонами НС (ЗСНС) при ведении нарушителем перехвата, модификации и подмены информации, передаваемой по открытым каналам связи.
Известен способ формирования КлШД, описанный в книге У.Диффи “Первые десять лет криптографии с открытым ключом”, ТИИЭР, 1988, т.76, №5, с.57-58. Известный способ заключается в предварительном распределении между законными сторонами направления связи чисел и , где – простое число и 1-1. Передающая сторона НС (ПерСНС) и приемная сторона НС (ПрСНС), независимо друг от друга, выбирают случайные числа ХА и ХB соответственно, которые хранят в секрете и затем формируют числа на основе ХA, , на ПерСНС и ХB, , на ПрСНС. ЗСНС обмениваются полученными числами по каналам связи без ошибок. После получения чисел корреспондентов законные стороны преобразовывают полученные числа с использованием своих секретных чисел в единый КлШД. Способ позволяет шифровать информацию во время каждого сеанса связи на новых КлШД (т.е. исключает хранение ключевой информации на носителях) и сравнительно быстро сформировать КлШД при использовании одного незащищенного канала связи.
Однако известный способ обладает низкой стойкостью КлШД к компрометации (Стойкость КлШД к компрометации – способность криптографической системы противостоять попыткам нарушителя получить КлШД, который сформирован и используется законными сторонами НС, при использовании нарушителем информации о КлШД, полученной в результате перехвата, хищения и утраты носителей, разглашения, анализа и т.д.), время действия КлШД ограничено продолжительностью одного сеанса связи или его части, некорректное распределение чисел и приводит к невозможности формирования КлШД.
Известен также способ формирования КлШД при использовании квантового канала связи [Патент US №5515438, H 04 L 9/00 от 07.05.96], который позволяет автоматически сформировать КлШД без дополнительных мер по рассылке (доставке) предварительной последовательности. Известный способ заключается в использовании принципа неопределенности квантовой физики и формирует КлШД, посредством передачи фотонов по квантовому каналу. Способ обеспечивает получение КлШД с высокой стойкостью к компрометации, осуществляет гарантированный контроль наличия и степени перехвата КлШД.
Однако реализация известного способа требует высокоточной аппаратуры, что обуславливает высокую стоимость его реализации. Кроме этого, КлШД по данному способу может быть сформирован при использовании волоконно-оптических линий связи ограниченной длины, что существенно ограничивает область применение его на практике.
Наиболее близким по технической сущности к заявляемому способу формирования КлШД является способ формирования КлШД на основе информационного различия [Патент РФ №2183051, H 04 L 9/00 от 27.05.02].
Способ-прототип заключается в формировании исходной последовательности (ИП), кодировании ее, выделении из кодированной исходной последовательности блока проверочных символов, передаче его по каналу связи без ошибок и формировании декодированной последовательности, а из исходной и декодированной последовательностей формируют ключ шифрования/дешифрования.
Для формирования ИП L раз, где L>104 – выбранная первичная длина исходной последовательности, на передающей стороне направления связи формируют зашумляющий блок двоичных символов. Передают зашумляющий блок двоичных символов по каналу связи с ошибками на приемную сторону направления связи. На приемной стороне направления связи генерируют случайный бит. Формируют из случайного бита кодовое слово. Формируют зашумленное кодовое слово (ЗКС) путем поразрядного суммирования по модулю 2 принятого зашумляющего блока двоичных символов и сформированного кодового слова. Передают зашумленное кодовое слово по обратному каналу связи без ошибок на передающую сторону направления связи. На передающей стороне направления связи из зашумленного кодового слова формируют принятое кодовое слово путем поразрядного суммирования по модулю 2 зашумляющего блока двоичных символов и зашумленного кодового слова. Формируют из принятого кодового слова принятый бит и бит подтверждения F. Передают бит подтверждения по прямому каналу без ошибок на приемную сторону направления связи. При бите подтверждения F, равном нулю, сгенерированный случайный бит и принятый бит стирают соответственно на приемной и передающей сторонах направления связи. При бите подтверждения F, равном единице, сгенерированный случайный бит и принятый бит запоминают соответственно на приемной и передающей сторонах направления связи в качестве i-х элементов, где i=1, 2, 3,…, L-U, исходной и предварительной последовательностей, где U – количество стертых символов при формировании исходной и предварительной последовательностей. Декодированную последовательность на передающей стороне направления связи формируют из предварительной последовательности. После формирования исходной и декодированной последовательностей на передающей стороне направления связи формируют функцию хеширования последовательностей. Передают функцию хеширования последовательностей по прямому каналу связи без ошибок на приемную сторону направления связи. Ключи шифрования/дешифрования на приемной и передающей сторонах направления связи формируют путем хеширования исходной и декодированной последовательностей по сформированной на передающей стороне направления связи функции хеширования последовательностей. Затем на приемной стороне направления связи стирают исходную последовательность. На передающей стороне направления связи стирают декодированную и предварительную последовательности. Исходную последовательность на приемной стороне направления связи кодируют линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом, порождающая матрица которого имеет размерность К×N, причем N>К. При кодировании исходной последовательности предварительно разделяют ее на Y подблоков длиной К двоичных символов, где Y=(L-U)/К. Затем, последовательно, начиная с 1-го до Y-го из каждого j-го подблока, где j=1, 2, 3,…, Y, формируют j-й кодовый блок длиной N двоичных символов перемножением j-го подблока на порождающую матрицу. Из j-го кодового блока выделяют j-й подблок проверочных символов длиной N- К двоичных символов. Запоминают j-й подблок проверочных символов в качестве j-го подблока блока проверочных символов кодированной исходной последовательности. Размеры К и N порождающей матрицы линейного блокового систематического двоичного помехоустойчивого (N, К) кода выбирают К=2m-1-m и N=2m-1, где m3. При формировании зашумляющего блока двоичных символов (ЗБДС) на передающей стороне направления связи каждый i-й бит зашумляющего блока двоичных символов, где i=1, 2, 3,…, М+1, генерируют случайным образом, где М1. Для формирования кодового слова сгенерированный случайный бит повторяют М раз, где М1. Принятому биту присваивают значение первого бита принятого кодового слова. Для формирования бита подтверждения F первый бит принятого кодового слова сравнивают с последующими М битами принятого кодового слова. Затем при наличии М совпадений первого бита принятого кодового слова с М битами принятого кодового слова биту подтверждения F присваивают значение единица. При наличии хотя бы одного несовпадения первого бита принятого кодового слова с М битами принятого кодового слова биту подтверждения F присваивают значение ноль. Для формирования декодированной последовательности на передающей стороне направления связи предварительную последовательность декодируют линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом, проверочная матрица которого имеет размерность (N-К)×N, причем N>К. При формировании декодированной последовательности предварительную последовательность и блок проверочных символов кодированной исходной последовательности разделяют на Y соответствующих пар декодируемых подблоков и подблоков проверочных символов, где Y=(L-U)/K. Длины декодируемых подблоков и подблоков проверочных символов выбирают равными соответственно К и N-К двоичных символов. Затем формируют Y принятых кодовых блоков длиной N двоичных символов путем конкатенации справа к j-му декодируемому подблоку j-го подблока проверочных символов, где j=1, 2, 3,…, Y. Затем последовательно, начиная с 1-го до Y-го, вычисляют j-и синдром S длины N- К двоичных символов перемножением j-го принятого кодового блока на транспонированную проверочную матрицу. По полученному j-му синдрому S исправляют ошибки в j-м декодируемом подблоке. Затем j-й декодируемый подблок запоминают в качестве j-го подблока декодированной последовательности. Выбирают размеры К и N проверочной матрицы линейного блокового систематического двоичного помехоустойчивого (N, К) кода K=2m-1-m и N=2m-1, где m3. Функцию хеширования последовательностей на передающей стороне направления связи формируют в виде двоичной матрицы G размерности (L-U)×Т, где Т64 – длина формируемого ключа шифрования/дешифрования. Каждый из элементов двоичной матрицы G генерируют случайным образом. Функцию хеширования последовательностей передают последовательно, начиная с 1-й по (L-U)-ю строки двоичной матрицы G. При формировании ключа шифрования/дешифрования предварительно на приемной стороне направления связи двоичную матрицу G и исходную последовательность разделяют на W соответствующих пар подматриц размерности Р×Т, где Р=(L-U)/W, и подблоков исходной последовательности длиной Р двоичных символов. При формировании ключа шифрования/дешифрования предварительно на передающей стороне направления связи двоичную матрицу G и декодированную последовательность разделяют на W соответствующих пар подматриц размерности Р×Т, где Р=(L-U)/W, и подблоков декодированной последовательности длиной Р двоичных символов. Затем, начиная с 1-го до W-й, вычисляют z-й первичный ключ длины T двоичных символов, где z=1, 2, 3,…, W, перемножением z-го подблока исходной последовательности на z-ю подматрицу Сz на приемной стороне направления связи и z-го подблока декодированной последовательности на z-ю подматрицу Gz на передающей стороне направления связи. Формируют ключ шифрования/дешифрования путем поразрядного суммирования по модулю два W первичных ключей на приемной и передающей сторонах направления связи.
Недостатком прототипа заявленного способа является большое время формирования КлШД, что объясняется необходимостью передачи функции хэширования по каналу связи без ошибок. Известный способ имеет относительно высокую вероятность навязывания нарушителем ложных сообщений, что объясняется использованием дополнительной процедуры аутентификации. Каналы без ошибок, используемые в способе-прототипе, считаются защищенными методами аутентификации принимаемых сообщений (Аутентификация сообщений – процесс подтверждения подлинности (отсутствия фальсификации или искажения) произвольных сообщений, принятых из канала связи.), что требует наличия ключей аутентификации у корреспондентов до начала реализации способа формирования КлШД. По этой причине корреспонденты, не имеющие ключей аутентификации, не могут сформировать КлШД, обеспечивающий стойкость к компрометации, из-за высокой вероятности навязывания нарушителем ложных сообщений.
Целью заявленного технического решения является разработка способа формирования КлШД, обеспечивающего снижение времени, необходимого для формирования КлШД, и повышение стойкости сформированного КлШД к компрометации со стороны нарушителя.
Поставленная цель достигается тем, что в известном способе формирования КлШД, заключающемся в том, что формируют случайную последовательность на передающей стороне направления связи, передают ее по каналу связи с ошибками на приемную сторону направления связи, формируют блок проверочных символов для сформированной случайной последовательности, передают его по каналу связи без ошибок на приемную сторону направления связи, где формируют декодированную последовательность, а из случайной и декодированной последовательностей формируют ключ шифрования/дешифрования, случайную последовательность на передающей стороне направления связи формируют в виде трех блоков Х1, Х2, Х3, с длинами k1, k2, k3 соответственно. Причем k1>l, k1=k2, , где l – длина формируемого ключа шифрования/дешифрования, (N, К) и (Na, Ka) – предварительно заданные на передающей и приемной сторонах направления связи линейные блоковые систематические двоичные помехоустойчивые коды, порождающие матрицы которых имеют соответственно размерности К×N и Кa×Na, причем N>К и Na>Ка. Передают по каналу связи с ошибками три блока Х1, Х2, Х3, которые принимают на приемной стороне направления связи в виде блоков Y1, Y2, Y3. Формируют на передающей стороне направления связи для первого Х1 и второго X2 блоков блоки проверочных символов С1 и С2 с длинами r1 и r2 соответственно, где и . Затем формируют сообщение длиной (r1+r2) путем конкатенации блоков проверочных символов C1 и С2. После чего формируют аутентификатор w для сообщения . Передают сообщение и его аутентификатор w по каналу связи без ошибок на приемную сторону направления связи. На приемной стороне направления связи формируют аутентификатор w’ для принятого сообщения. А также формируют вектор V путем суммирования по модулю два принятого w и сформированного w’ аутентификаторов. Вычисляют вес w(V) вектора V путем подсчета его ненулевых элементов и сравнивают полученный вес w(V) с предварительно заданным пороговым значением веса w(V)пор. При w(V)>w(V)пор процесс формирования ключа шифрования/дешифрования прерывают, а при w(V)пор на приемной стороне направления связи из принятого сообщения выделяют блоки проверочных символов С1 и С2, путем разбиения принятого сообщения на две равные части. На приемной стороне направления связи из ранее принятых по каналу связи с ошибками блоков Y1, Y2 и блоков проверочных символов C1 и С2 формируют декодированные блоки После чего формируют ключи шифрования/дешифрования на приемной и передающей сторонах направления связи путем хэширования блока X1 на передающей стороне направления связи и декодированного блока на приемной стороне направления связи.(v)
Для формирования блока проверочных символов С1 длиной r1 для блока X1 кодируют блок Х1 линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом. Для чего разделяют блок Х1 на Т1=k1/K подблоков по К символов в каждом. Формируют из каждого i-го подблока, где i=1, 2,…, T1, i-й кодовый подблок длиной N символов, перемножением i-го подблока на порождающую матрицу размерности К×N линейного блокового систематического двоичного помехоустойчивого (N, К) кода. Затем выделяют из i-го кодового подблока i-й подблок проверочных символов длиной (N-К) символов. Совокупность из T1 подблоков проверочных символов образует блок проверочных символов С1 для блока X1.
Для формирования блока проверочных символов С2 длиной r2 для блока Х2, кодируют блок Х2 линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом. Для чего разделяют блок Х2 на Т2=k2/K подблоков по К символов в каждом. Формируют из каждого i-го подблока, где i=1, 2,…, T2, i-й кодовый подблок длиной N символов, перемножением i-го подблока на порождающую матрицу размерности К×N линейного блокового систематического двоичного помехоустойчивого (N, К) кода. Затем выделяют из i-го кодового подблока i-й подблок проверочных символов длиной (N-К) символов. Совокупность из T2 подблоков проверочных символов образует блок проверочных символов C2 для блока X2.
Для формирования на передающей стороне аутентификатора w сообщения , кодируют сообщение линейным блоковым систематическим двоичным помехоустойчивым (Na, Ка) кодом. Для чего разделяют сообщение на Tа=(r1+r2)/Ка блоков по Кa символов в каждом. Формируют из каждого j-го блока, где j=1, 2,…, Tа, j-й кодовый блок длиной Na символов, перемножением j-го блока на порождающую матрицу размерности Кa×Na линейного блокового систематического двоичного помехоустойчивого (Na, Кa) кода. Формируют кодовое слово для сообщения , в виде последовательности, состоящей из Tа кодовых блоков. Затем преобразуют кодовое слово для сообщения путем замены в нем символов “0” на “01”, а символов “1” на “10”. Присваивают каждому символу преобразованного кодового слова и соответствующему символу блока X3 порядковые номера s, где s=1, 2,…, 2NaTa. Запоминают s-й символ блока X3, если в преобразованном кодовом слове, s-й символ равен 1. Последовательность запомненных символов блока Х3 образует аутентификатор w.
Для формирования на приемной стороне направления связи декодированного блока из принятого блока Y1 и блока проверочных символов С1 декодируют принятый блок Y1 линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом. Для чего разделяют принятый блок Y1 и блок проверочных символов С1 на T1 соответствующих пар декодируемых и проверочных подблоков, где Т1=k1/K. Длины декодируемых подблоков и проверочных подблоков выбирают равными соответственно К и (N-К) двоичных символов. Формируют Т1 принятых кодовых подблоков длиной N двоичных символов путем конкатенации справа к t-му декодируемому подблоку t-го проверочного подблока, где t=1, 2, 3,…, Т1. Вычисляют последовательно, начиная с t-го до T1-го, t-й синдром S длины (N-К) двоичных символов перемножением t-го принятого кодового подблока на транспонированную проверочную матрицу. Исправляют по полученному t-му синдрому S ошибки в t-м декодируемом подблоке. Запоминают t-й декодируемый подблок в качестве t-го подблока декодированного блока .
Для формирования ключа шифрования/дешифрования путем хеширования на передающей стороне направления связи перемножают блоки Х1 и Х2. На приемной стороне перемножают декодированные блоки После чего из полученных после перемножения последовательностей выделяют l младших разрядов.
Указанная новая совокупность существенных признаков обеспечивает возможность аутентификации передаваемых сообщений по открытым каналам связи, на основе случайно сформированного блока Х3 и соответствующего ему блока Y3, принятого по каналу с ошибками, что позволит повысить стойкость формируемого КлШД к компрометации по отношению к нарушителю. И снижение времени формирования КлШД, путем применения нового класса хэш-функций и передачи их по каналам с ошибками.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности “новизна”.
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного способа, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения преобразований на достижение указанного технического результата. Следовательно, заявленное изобретение соответствует условию патентоспособности “изобретательский уровень”.
Заявленный способ поясняется фигурами, на которых показаны:
– на фигуре 1 – обобщенная структурная схема НС, применяемого в заявленном способе;
– на фигуре 2 – временная диаграмма сформированной случайной последовательности в виде блоков Х1, Х2, Х3;
– на фигуре 3 – временная диаграмма вектора ошибок в канале связи с ошибками;
– на фигуре 4 – временная диаграмма принятой по каналу с ошибками случайной последовательности в виде блоков Y1, Y2, Y3;
– на фигуре 5 – вид порождающей матрицы линейного блокового систематического двоичного помехоустойчивого (N, К) кода;
– на фигуре 6 – временная диаграмма сформированного блока X1, разделенного на Т1 подблоков по К символов;
– на фигуре 7 – временная диаграмма выделенного i-го подблока блока Х1;
– на фигуре 8 – временная диаграмма формирования i-го кодового подблока длиной N двоичных символов;
– на фигуре 9 – временная диаграмма выделения i-го подблока проверочных символов длиной N-К двоичных символов;
– на фигуре 10 – временная диаграмма формирования блока проверочных символов C1;
– на фигуре 11 – временная диаграмма сформированного блока проверочных символов С2;
– на фигуре 12 – временная диаграмма формирования сообщения ;
– на фигуре 13 – вид порождающей матрицы линейного блокового систематического двоичного помехоустойчивого (Na, Кa) кода;
– на фигуре 14 – временная диаграмма сформированного сообщения , разделенного на Тa блоков по Ка символов;
– на фигуре 15 – временная диаграмма выделенного j-го блока сообщения ;
– на фигуре 16 – временная диаграмма формирования j-го кодового блока длиной Na двоичных символов;
– на фигуре 17 – временная диаграмма сформированного кодового слова для сообщения , разделенного на Ta блоков по Na символов;
– на фигуре 18 – временная диаграмма сформированного кодового слова для сообщения;
– на фигуре 19 – временная диаграмма формирования преобразованного кодового слова;
– на фигуре 20 – временная диаграмма сформированного блока Х3,
– на фигуре 21 – временная диаграмма формирования аутентификатора w;
– на фигуре 22 – временная диаграмма конкатенации справа аутентификатора w к сообщению ;
– на фигуре 23 – временная диаграмма принятого на ПрСНС сообщения и его аутентификатора w;
– на фигуре 24 – временная диаграмма сформированного кодового слова для сообщения;
– на фигуре 25 – временная диаграмма принятого блока Y3;
– на фигуре 26 – временная диаграмма формирования аутентификатора w’;
– на фигуре 27 – временная диаграмма формирования вектора V;
– на фигуре 28 – временная диаграмма выделения блоков проверочных символов С1 и С2 из сообщения ;
– на фигуре 29 – временная диаграмма блока проверочных символов С1, разделенного на Т1 подблоков проверочных символов длиной N-К двоичных символов, и выделение из него t-го подблока проверочных символов;
– на фигуре 30 – временная диаграмма принятого по каналу с ошибками блока Y1, разделенного на T1 декодируемых подблоков по К символов, и выделение из него t-го декодируемого подблока;
– на фигуре 31 – временная диаграмма конкатенации справа t-го декодируемого подблока и t-го подблока проверочных символов;
– на фигуре 32 – временная диаграмма вычисления t-го синдрома S длиной N-К двоичных символов;
– на фигуре 33 – временная диаграмма исправления ошибки в t-м декодируемом подблоке по полученному t-му синдрому S;
– на фигуре 34 – временная диаграмма формирования декодированной последовательности из Т1 декодируемых подблоков;
– на фигуре 35 – временная диаграмма сформированного блока X1;
– на фигуре 36 – временная диаграмма сформированного блока Х2;
– на фигуре 37 – временная диаграмма формирования КлШД Ка.
На представленных фигурах буквой “А” обозначены действия, происходящие на передающей стороне НС, буквой “В” – на приемной стороне НС. На фигурах заштрихованный импульс представляет собой двоичный символ “1”, а не заштрихованный – двоичный символ “0”. Знаки “+” и “×” обозначают соответственно сложение и умножение в поле Галуа GF(2). Верхние буквенные индексы обозначают длину последовательности (блока), нижние буквенные индексы обозначают номер элемента в последовательности (блоке).
Реализация заявленного способа заключается в следующем. Современные криптосистемы построены по принципу Керкхоффа, описанного, например, в книге Д.Месси, “Введение в современную криптологию”, ТИИЭР, т.76, №5, май 1988, с.24, согласно которому полное знание нарушителя включает, кроме, информации, полученной с помощью перехвата, полную информацию о алгоритме взаимодействия законных сторон НС и процессе формирования КлШД. Формирование общего КлШД можно разделить на три основных этапа. Первый этап – обеспечение наличия предварительно сформированных коррелированных последовательностей двоичных символов у законных сторон НС, как исходного материала для формирования КлШД. Предполагается, что у нарушителя имеется своя предварительно сформированная коррелированная последовательность (ПСКП), коррелированная с ПСКП-ми законных сторон НС. Второй этап предназначен для обеспечения формирования КлШД с высокой надежностью. Формирование КлШД с высокой надежностью достигается устранением (исправлением) несовпадающих символов (ошибок) в ПСКП одной законной стороны НС (ПСКП на ПрСНС) относительно ПСКП другой законной стороны НС (ПСКП на ПерСНС), при использовании ЗСНС дополнительной информации о ПСКП (ПСКП на ПрСНС), переданной по каналу связи без ошибок. Предполагается, что нарушитель использует дополнительную информацию для устранения несовпадений в ПСКП-тях ЗСНС для устранения несовпадений в своей ПСКП с последовательностями ЗСНС. Третий этап предназначен для обеспечения формирования КлШД с низким уровнем информации нарушителя о КлШД путем сжатия тождественных последовательностей законных сторон НС, которые были получены ЗСНС после окончания второго этапа. Предполагается, что нарушителю известен алгоритм сжатия последовательностей, который используют ЗСНС. Хранение законными сторонами НС на первом этапе ПСКП-тей приводит к уменьшению стойкости формируемого КлШД к компрометации, т.к. возможно получение нарушителем информации о ПСКП хотя бы одной из законных сторон НС в результате хищения носителей информации, несанкционированного доступа, разглашения информации и др. Это требует выполнения мероприятий по обеспечению надежного хранения полной информации о ПСКП-тях ЗСНС. С другой стороны, при выполнении действий законными сторонами НС второго и третьего этапов для получения КлШД на одних и тех же коротких последовательностях, выделенных из ПСКП-тей ЗСНС, увеличивается вероятность достоверного знания нарушителем сформированного КлШД. Это, также, приводит к уменьшению стойкости формируемого КлШД к компрометации. Кроме этого, при выполнении действий законными сторонами НС по обмену информацией по открытым каналам связи, нарушитель может навязать ЗСНС свой КлШД (или часть КлШД), что приводит к уменьшению стойкости формируемого КлШД к компрометации. Поэтому для формирования КлШД необходимо исключить хранение ПСКП-тей у ЗСНС путем их одновременного формирования, при использовании ЗСНС канала связи с ошибками (возможность формирования КлШД основывается на независимости ошибок, возникающих в канале связи с ошибками законных сторон НС, и ошибок, возникающих в канале перехвата нарушителя), формировать КлШД путем хеширования полученных тождественных последовательностей полной длины.
В заявленном способе формирования ключа шифрования/дешифрования для обеспечения повышенной стойкости сформированного КлШД к компрометации реализуется следующая последовательность действий.
Нарушитель имеет свой канал перехвата, с помощью которого он получает информацию о переданных блоках Х1, Х2, Х3 по каналу связи с ошибками законных сторон НС (см. фиг.1). Для формирования КлШД с высокой стойкостью к компрометации необходимо создание условий, при которых качество приема в канале связи с ошибками законных сторон НС (т.е. основного канала) будет превосходить качество приема в канале перехвата, т.е. необходимо создать условия, при которых основной канал будет иметь преимущество (лучшее качество приема) по отношению к каналу перехвата. Способы создания таких условий не входят в область, которую рассматривает предлагаемый способ. Известные способы улучшения качества передачи в основном канале по сравнению с качеством канала перехвата описаны, например, в работе В.Коржик, В.Яковлев, А.Синюк, “Протокол выработки ключа с помехами”. Проблемы информационной безопасности, Компьютерные системы, №1, СПб: СПбГТУ, 2000, с.52-63.
На ПерСНС формируют СП в виде трех блоков Х1, Х2, Х3 (см. фиг.2). Известные способы генерирования случайных чисел описаны, например, в книге Д.Кнут, “Искусство программирования для ЭВМ”, М., Мир, 1977, т.2, стр.22. Передают блоки Х1, Х2, X3 по каналу связи с ошибками на приемную сторону направления связи (ПрСНС). Временная диаграмма вектора ошибок в канале связи с ошибками показана на фигуре 3. Под термином “вектор ошибок” понимают поразрядную разность между переданным и принятым блоками двоичных символов, как описано, например, в книге А.Зюко, Д.Кловский, М.Назаров, Л.Финк, “Теория передачи сигналов”, М., Радио и связь, 1986, стр.93. Принятые по каналу с ошибками блоки Y1, Y2, Y3 показаны на фигуре 4. Известные способы передачи последовательностей по каналам связи с ошибками описаны, например, в книге А.Зюко, Д.Кловский, М.Назаров, Л.Финк, “Теория передачи сигналов”, М., Радио и связь, 1986, стр.11.
Между сформированными блоками Х1, Х2 на ПерСНС и принятыми блоками Y1, Y2 на ПрСНС остаются несовпадающие символы, что не позволяет ЗСНС приступить к непосредственному формированию КлШД. Устранение этих несовпадений может быть реализовано на основе использования помехоустойчивого кодирования. Однако известные помехоустойчивые коды позволяют кодировать последовательности значительно меньшей длины, чем длины блоков, равные k1, k2 двоичных символов. Для этого применяют последовательное кодирование, т.е. если длины блоков Х1, Х2 велики, например, 105-107 двоичных символов, их разделяют соответственно на T1, T2 подблоков длиной по К символов (см. фиг.6), где
Каждый подблок длиной К символов кодируется линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом, где К – длина блока информационных символов кода и N – длина кодового блока (см. фиг.7). Линейным двоичным кодом называется код, который построен на основе использования линейных операций в поле GF(2), как описано, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, М., Мир, 1986, стр.61. Под термином “блоковый код” понимают код, в котором действия производятся над блоками символов, как описано, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, М., Мир, 1986, стр.13. Систематическим называется код, в котором кодовое слово начинается с информационных символов, оставшиеся символы кодового слова являются проверочными символами к информационным символам, как описано, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, М., Мир, 1986, стр.66. Затем формируемые подблоки проверочных символов длиной N – К двоичных символов (см. фиг.8) объединяют в единые блоки проверочных символов C1 и С2 соответственно, с длинами T1(N-К) и T2(N-К) двоичных символов (см. фиг.10). При передаче блоков проверочных символов на ПрСНС и использовании их для устранения несовпадений в блоках Y1 и Y2 то отношению к блокам Х1 и X2 получают декодированные блоки Тогда вероятность ошибочного декодирования блоков Y1 и Y2 может быть определена по формулам
где Ре – вероятность ошибочного декодирования подблока длиной К двоичных символов, определяемая, как описано, например, в работе Korjik V., Moralis-Luna G., Balakirsky V. “Privacy amplification theorem for noisy main channel”. Lecture notes in computer science, 2001, №2200, pp.18-26. Если информационная часть кодового слова длиной К символов передается по ДСК с вероятностью ошибки рm, а проверочная часть длиной N-К символов передается по бесшумному каналу, то средняя вероятность ошибки по ансамблю (N, К) – кодов может быть оценена сверху модифицированной границей Галлагера
где
– функция Галлагера для ДСК с вероятностью ошибки рm,
скорость кода.
В качестве помехоустойчивых кодов могут использоваться широкий класс кодов Боуза-Чоудхури-Хоквингема, коды Хемминга, Рида-Малера, Рида – Соломона и другие линейные блоковые коды, характеризующиеся своими параметрами N, К. Передача блоков проверочных символов C1 и С2 по обратному каналу связи без ошибок дает возможность нарушителю получить дополнительную информацию о КлШД, путем перехвата блоков проверочных символов С1 и С2. Используя их, нарушитель также исправляет часть несовпадений в своей версии перехваченных блоков СП относительно блоков Х1 и Х2.
Кодирование блока Х1 на ПерСНС заключается в следующем. Предварительно блок Х1 разделяют на Т1 подблоков длиной К двоичных символов, где Т1=k1/K, как показано на фиг.6. Известные способы разбиения последовательности на блоки фиксированной длины описаны, например, в книге В.Васильев, В.Свириденко, “Системы связи”, М., Высшая школа, 1987, стр.208. Последовательно, начиная с 1-го до T1-го, каждый i-й подблок блока Х1, где i=1, 2, 3,…, T1, кодируют линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом (см. фиг.7). Порождающая матрица кода имеет размерность К×N, причем N>К. Размеры К и N порождающей матрицы линейного блочного систематического двоичного помехоустойчивого (N, К) кода выбирают К=2m-1-m и N=2m-1, где m3, как описано, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, М., Мир, 1986, стр.71. Для кодирования блока X1 каждый i-й подблок длиной К двоичных символов перемножают на порождающую матрицу кода и получают i-й кодовый блок длиной N двоичных символов, как показано на фиг.8. Известные способы помехоустойчивого кодирования блоков символов описаны, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, М., Мир, 1986, стр.63. Из i-го кодового блока выделяют i-й подблок проверочных символов длиной N-К двоичных символов (см. фиг.9). Известные способы выделения блоков фиксированной длины описаны, например, в книге В.Васильев, В.Свириденко, “Системы связи”, М., Высшая школа, 1987, стр.208. Запоминают i-й подблок проверочных символов в качестве i-го подблока блока проверочных символов кодированного блока X1. Временная диаграмма формирования блока проверочных символов C1 кодированного блока Х1 показана на фигуре 10. Известные способы хранения последовательности бит описаны, например, в книге Л.Мальцев, Э.Фломберг, В.Ямпольский, “Основы цифровой техники”, М., Радио и связь, 1986, стр.38. Аналогичным образом кодируют линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом блок Х2 на ПерСНС, разделяя его на T2 подблоков длиной К двоичных символов, где T2=k2/K. Известные способы разбиения последовательности на блоки фиксированной длины описаны, например, в книге В.Васильев, В.Свириденко, “Системы связи”, М., Высшая школа, 1987, стр.208. Временная диаграмма сформированного блока проверочных символов С2 кодированного блока Х2 показана на фигуре 11.
Нарушитель может подменять или имитировать сообщения, передаваемые в канале связи без ошибок, с целью формирования КлШД общего с одним или обоими корреспондентами. Поэтому информация, передаваемая корреспондентами по каналу связи без ошибок, должна быть аутентифицирована. Для достижения этой цели на ПерСНС формируют сообщение путем конкатенации блоков проверочных символов С1 и С2 (см. фиг.12). Затем разделяют сформированное сообщение на Ta блоков длиной по Ка символов (см. фиг.14), где
Каждый блок длиной Ка символов кодируют линейным блоковым систематическим двоичным помехоустойчивым (Na, Кa) кодом, где Ка – длина блока информационных символов кода и Na – длина кодового блока (см. фиг.15). Сформированные кодовые блоки (см. фиг.16) образуют кодовое слово для сообщения (см. фиг.17).
Кодирование сообщения на ПерСНС заключается в следующем. Предварительно сообщение разделяют на Та блоков длиной Ка двоичных символов, где Та=(N-К)(Т1+Т2)/Ka, как показано на фиг.14. Известные способы разбиения последовательности на блоки фиксированной длины описаны, например, в книге В.Васильев, В.Свириденко, “Системы связи”, М., Высшая школа, 1987, стр.208. Последовательно, начиная с 1-го до Та-го, каждый j-й блок сообщения , где j=1, 2, 3,…, Та, кодируют линейным блоковым систематическим двоичным помехоустойчивым (Na, Кa) кодом (см. фиг.15). Порождающая матрица кода имеет размерность Ка×Na, причем Na>Кa. Размеры Ка и Na порождающей матрицы линейного блочного систематического двоичного помехоустойчивого (Na, Кa) кода выбирают Ка=2m-1-m и Na=2m-1, где m3, как описано, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, M., Мир, 1986, стр.71. Для кодирования сообщения , каждый j-й блок длиной Ка двоичных символов перемножают на порождающую матрицу кода и получают j-й кодовый блок длиной Na двоичных символов, как показано на фиг.16. Известные способы помехоустойчивого кодирования блоков символов описаны, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, M., Мир, 1986, стр.63. Запоминают j-й кодовый блок в качестве j-го блока кодового слова для сообщения . Временная диаграмма формирования кодового слова для сообщения показана на фигуре 17. Известные способы хранения последовательности бит описаны, например, в книге Л.Мальцев, Э.Фломберг, В.Ямпольский, “Основы цифровой техники”, M., Радио и связь, 1986, стр.38. Затем преобразуют сформированное кодовое слово для сообщения путем замены в нем символов “0” на “01”, а символов “1” на “10” (см. фиг.19). Каждому символу преобразованного кодового слова присваивают порядковый номер s, где s=1, 2,…, NaTa. Аналогичным образом каждому символу блока X3 присваивают порядковый номер s, где, s=1, 2,…, NaTa. Запоминают s-й символ блока Х3, если в преобразованном кодовом слове на s-м месте стоит символ “1”. Аутентификатор w образуют как последовательность сохраненных символов блока X3 (см. фиг.21). Далее сообщение и его аутентификатор w передают по открытому каналу связи без ошибок на ПрСНС (см. фиг.22).
Например, преобразованное кодовое слово для сообщения представим в виде вектора , где i(0, 1), а блок Х3 в виде вектора , где xi(0, 1). Тогда аутентификатор , в котором для всех ja, wij=xj, если ij=1, в противном случае wij не формируется.
На ПрСНС, получив сообщение и его аутентификатор w (см. фиг.23), формируют аутентификатор w’. Для чего формируют кодовое слово для принятого сообщения , используя линейный блоковый систематический двоичный помехоустойчивый (Na, Kа) код. Преобразуют сформированное кодовое слово для сообщения путем замены в нем символов “0” на “01”, а символов “1” на “10”. Каждому символу преобразованного кодового слова присваивают порядковый номер s, где s=1, 2,…, 2NaTa. Аналогичным образом каждому символу блока Y3 присваивают порядковый номер s, где s=1, 2,…, 2NaTa. Запоминают s-й символ блока Y3, если в преобразованном кодовом слове на s-м месте стоит символ “1”. Аутентификатор w’ образуют как последовательность сохраненных символов блока Y3 (см. фиг.26).
Для проверки подлинности принятого сообщения, на ПрСНС формируют вектор V путем суммирования по модулю два (как описано, например, в книге У.Питерсон, Э.Уэлдон, “Коды, исправляющие ошибки”, М.: Мир, 1976. 34 с.) принятого w и сформированного w’ аутентификаторов (см. фиг.27). Вычисляют вес w(V) сформированного вектора V, как, например, описано в книге Мак-Вильямс Ф., Слоэн Н., “Теория кодов, исправляющих ошибки”, М., Связь, 1979, 19 с. Затем сравнивают полученное значение веса w(V) с предварительно заданным пороговым значением w(V)пор. Если вес w(V) равен или меньше порогового значения w(V)пор, то сообщение считается подлинным, если больше, сообщение отвергается как ложное.
Описанная процедура аутентификации впервые была предложена в работе Maurer U., “Information-theoretically secure secret-key agreement by NOT authenticated public discussion”, Advances in Cryptology – EUROCRYPT 97, Berlin, Germany: Springer-Verlag, 1997, vol.1233, pp.209-225, и получила название аутентифицирующих помехоустойчивых кодов (АП-код).
Основными характеристиками АП-кода являются:
Рло – вероятность ложного отклонения переданного сообщения, когда нарушитель не вмешивался в процесс передачи.
Pн – вероятность успешного навязывания ложного сообщения.
Устойчивость к навязыванию ложных сообщений зависит от так называемого асимметричного кодового расстояния d01, которое определяется числом переходов из 0 в 1 между кодовыми словами, соответствующими истинному и ложному сообщениям.
Если (nа, ka) – код имеет постоянный вес и асимметричное кодовое расстояние d01, то характеристики АП-кода определяются соотношениями (см. работу Korjik V., Bakin M. “Information theoretically secure keyless authentication”, IEEE on Information Theory Symposium 2000, Sorrento, Italy, July):
В описанном выше способе построения АП-кода (кодирование сообщения линейным блоковым систематическим двоичным помехоустойчивым (Na, Ka) кодом и замены в нем символов “0” на “01”, а символов “1” на “10”) асимметричное кодовое расстояние d01 совпадает с минимальным расстоянием кода d, которое может быть найдено, например, с помощью границы Варшамова-Гильберта, как описано в книге Мак-Вильямс Ф., Слоэн Н. “Теория кодов, исправляющих ошибки”, M.: Связь, 1979, 539 с.
где g(p)=-plog(p)-(1-p)log(1-p) – энтропийная функция.
Вес всех преобразованных кодовых слов постоянен и равен длине кодового слова для сообщения .
При подлинности сообщения на ПрСНС выделяют блоки проверочных символов C1 и C2, путем разбиения принятого сообщения на две равные части (см. фиг.28). Затем, используя полученные блоки проверочных символов С1 и С2, производят исправление ошибок в принятых ранее по каналу с ошибками блоков Y1, Y2 путем их декодирования. Процедуру декодирования осуществляют следующим образом.
Блок Y1 и блок проверочных символов С1 разделяют на T1 соответствующих пар декодируемых подблоков (см. фиг.30) и подблоков проверочных символов (см. фиг.29), где Т1=k1/K. Длины декодируемых подблоков и подблоков проверочных символов выбирают равными соответственно К и N-К двоичных символов. Известные способы разбиения последовательности на блоки фиксированной длины описаны, например, в книге В.Васильев, В.Свириденко, “Системы связи”, M., Высшая школа, 1987, стр.208. Формируют Т1 принятых кодовых блоков длиной N двоичных символов путем конкатенации справа к t-му декодируемому подблоку t-го подблока проверочных символов, где t=1, 2, 3,…, T1, как показано на фиг.31. Каждый из T1 принятых кодовых блоков декодируют линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом (см. фиг.31). Проверочная матрица кода имеет размерность (N-К)×N, причем N>К. Выбирают размеры К и N проверочной матрицы линейного блокового систематического двоичного помехоустойчивого (N, К) кода К=2m-1-m и N=2m-1, где m3, как описано, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, M., Мир, 1986, стр.71. Последовательно, начиная с 1-го до Т1-го, вычисляют t-й синдром S длины N-К двоичных символов перемножением t-го принятого кодового блока на транспонированную проверочную матрицу. Временная диаграмма вычисления t-го синдрома S длиной N-К двоичных символов показана на фигуре 32. По полученному t-му синдрому S исправляют ошибки в t-м декодируемом подблоке (см. фиг.33). Известные способы синдромного декодирования блоков символов описаны, например, в книге Р.Блейхут, “Теория и практика кодов, контролирующих ошибки”, M., Мир, 1986, стр.70. Затем t-й декодируемый подблок запоминают в качестве t-го подблока декодированного блока как показано на фиг.34. Известные способы хранения последовательности бит описаны, например, в книге Л.Мальцев, Э.Фломберг, В.Ямпольский, “Основы цифровой техники”, M., Радио и связь, 1986, стр.38. Аналогичным образом производят исправления ошибок в блоке Y2 и получают декодированный блок
Нарушитель, также, может перехватить сообщение и выделить блоки проверочных символов С1 и С2. Используя их, он исправляет часть несовпадений в своей версии перехваченных блоков случайной последовательности. Это обстоятельство ЗСНС учитывают при формировании из блока Х1 и декодированного блока КлШД.
ЗСНС должны сформировать КлШД с малым количеством информации нарушителя о КлШД. Для обеспечения малого количества информации нарушителя о КлШД в предлагаемом способе формирования КлШД используют метод “усиления секретности” блока Х1 и декодированного блока основанный на универсальном хешировании, как описано, например, в книге Bennett С., Brassard G., Crepeau С., Maurer U. “Generalized privacy amplification”, IEEE Trans. on IT, vol.41, no.6, pp.1915-1923, 1995, стр.1920. Сущность метода “усиления секретности” заключается в следующем. На ПерСНС выбирают в качестве функции хеширования блок Х2, а на ПрСНС декодированный блок Затем хешируют блок Х1 на ПерСНС и декодированный блок на ПрСНС. Результатом хеширования будет сформированный КлШД ЗСНС.С вероятностью, близкой к единице и равной 1-P, происходит событие, при котором информация (информация Шеннона) нарушителя о КлШД не превысит определенной малой величины I0 и с малой вероятностью сбоя P возможно событие, при котором информация нарушителя о КлШД будет более I0. При хешировании блока Х1 (блок Х1 длиной k1 двоичных символов) отображается в последовательность Ка длиной l двоичных символов формируемого КлШД на ПерСНС. Аналогично, при хешировании декодированный блок (декодированный блок длиной k1 двоичных символов) отображается в последовательность Кb длиной l двоичных символов формируемого КлШД на ПрСНС. Функция хеширования последовательностей должна удовлетворять ряду требований, как описано, например, в книге Ю.Романец, П.Тимофеев, В.Шаньгин, “Защита информации в компьютерных системах и сетях”, М., Радио и связь, 1999, с.156:
– функция хеширования должна быть чувствительна к всевозможным изменениям в последовательности, таким как, вставки, выбросы, перестановки и т.п.;
– функция хеширования должна обладать свойством необратимости, т.е. задача подбора другой последовательности, которая обладала требуемым значением функции хеширования, должна быть вычислительно не разрешима;
– вероятность коллизии, т.е. вероятность события, при котором значения функции хеширования двух различных последовательностей совпадают, должна быть ничтожно мала.
Кроме этого, функция хеширования должна принадлежать универсальному множеству функций хеширования. Универсальное множество функций хеширования определяется следующим образом. Пусть n и r два положительных целых числа, причем n>r. Множество функций G2, отображающих множество двоичных последовательностей длиной n в множество двоичных последовательностей длиной r, называется универсальным, если для любых различных последовательностей х1 и х2 из множества двоичных последовательностей длины n вероятность (коллизии) того, что значение функции хеширования от х1 равно значению функции хеширования от х2(g(x1)=g(x2)), не больше 2-r, при случайном выборе функции хеширования g, в соответствии с равновероятным распределением, из G2, как описано, например, в книге Carter J., Wegman M., “Universal classes of hash functions”. Journal of Computer and System Sciences, 1979, Vol.18, pp.143-154, стр.145. Все линейные функции, отображающие множество двоичных последовательностей длиной n в множество двоичных последовательностей длиной r, принадлежат универсальному множеству, как описано, например, в книге Carter J., Wegman M., “Universal classes of hash functions”. Journal of Computer and System Sciences, 1979, Vol.18, pp.143-154, стр.150.
Хэширование блока Х1 может быть осуществлено как умножение двоичного числа, представленного блоком Х1, на двоичное число, представленное блоком Х2, и выделения из полученного произведения l младших разрядов (см. фиг.37). После формирования ЗСНС КлШД путем хеширования блока Х1 на ПерСНС и декодированного блока на ПрСНС количество информации Шеннона, получаемое нарушителем о КлШД, сформированном ЗСНС, не больше (как показано в работе Яковлев В., Коржик В., Бакаев M. “Протоколы формирования ключа с использованием открытых каналов связи с шумом в условиях активного перехвата. Часть 1. Постановка задачи, основные процедуры, протокол Маурера-Вольфа”, Проблемы информационной безопасности. Компьютерные системы. №3 СПб.: СПбГТУ, 2004, с.80), чем
Информация Реньи t определяется через выражение для энтропии Реньи на символ (энтропия Реньи на символ зависит от вероятности ошибки на бит рw в канале перехвата), которая характеризует неопределенность нарушителя о КлШД, при знании нарушителем информации, полученной с помощью канала перехвата, полной информации о алгоритме взаимодействия законных сторон НС и их действиям по формированию КлШД, как описано, например, в книге Bennett С., Brassard G., Crepeau С., Maurer U. “Generalized privacy amplification”, IEEE Trans. on IT. vol.41. no.6. pp.1915-1923, 1995, стр.1919. Энтропия Реньи равна
Тогда информация Реньи t, полученная нарушителем при перехвате блока Х1 длиной k1 символов, определяется выражением
Количество информации Шеннона, получаемое нарушителем о сформированном ЗСНС КлШД, при использовании ЗСНС метода “усиления секретности”, может быть больше ограничения I0 (определенного в (12)) с малой вероятностью сбоя.
У нарушителя остается возможность получения полной информации о КлШД ЗСНС в результате хищения носителей информации о блоках Х1, Х2, Х3 несанкционированного доступа к информации о блоках Х1, Х2, Х3 (блоках Y1, Y2, Y3), разглашения информации о блоках X1, X2, Х3 (блоках Y1, Y2, Y3) и др. хотя бы одной из законных сторон НС. Для исключения этой возможности нарушителя ЗСНС после формирования КлШД стирают блоки X1, X2, X3 () на передающей стороне направления связи и блоки Y1, Y2, Y3, на приемной стороне направления связи. Действия по передаче и приему последовательностей по каналу связи с ошибками, прямому и обратному каналам связи без ошибок засинхронизированы. Известные способы синхронизации описаны, например, в книге Е.Мартынов, “Синхронизация в системах передачи дискретных сообщений”, М., Связь, 1972, стр.186.
Формула изобретения
1. Способ формирования ключа шифрования/дешифрования, заключающийся в том, что формируют случайную последовательность на передающей стороне направления связи, передают ее по каналу связи с ошибками на приемную сторону направления связи, формируют блок проверочных символов для сформированной случайной последовательности, передают его по каналу связи без ошибок на приемную сторону направления связи, где формируют декодированную последовательность, а из случайной и декодированной последовательностей формируют ключ шифрования/дешифрования, отличающийся тем, что случайную последовательность на передающей стороне направления связи формируют в виде трех блоков X1, Х2, Х3 с длинами k1, k2, k3 соответственно, причем k1>l, k1=k2, , где l – длина формируемого ключа шифрования/дешифрования, (N, К) и (Na, Ка) – предварительно заданные на передающей и приемной сторонах направления связи линейные блоковые систематические двоичные помехоустойчивые коды, порождающие матрицы которых имеют соответственно размерности K×N и Ka×Na, причем N>K и Na>Ka, и передают по каналу связи с ошибками три блока X1, Х2, Х3, которые принимают на приемной стороне направления связи в виде блоков Y1, Y2, Y3, формируют на передающей стороне направления связи для первого X1 и второго Х2 блоков блоки проверочных символов C1 и C2 с длинами r1 и r2 соответственно, где и , затем формируют сообщение длиной (r1+r2) путем конкатенации блоков проверочных символов C1 и С2, после чего формируют аутентификатор w для сообщения , передают сообщение и его аутентификатор w по каналу связи без ошибок на приемную сторону направления связи, где формируют аутентификатор w’ для принятого сообщения, а также формируют вектор V путем суммирования по модулю два принятого w и сформированного w’ аутентификаторов, вычисляют вес w(V) вектора V путем подсчета его ненулевых элементов и сравнивают полученный вес w(V) с предварительно заданным пороговым значением веса w(V)пор и при w(V)>w(V)пор процесс формирования ключа шифрования/дешифрования прерывают, а при w(V)пор на приемной стороне направления связи из принятого сообщения выделяют блоки проверочных символов C1 и C2 путем разбиения принятого сообщения на две равные части, на приемной стороне направления связи из ранее принятых по каналу связи с ошибками блоков Y1, Y2 и блоков проверочных символов C1 и C2 формируют декодированные блоки после чего формируют ключи шифрования/дешифрования на приемной и передающей сторонах направления связи путем хэширования блока X1 на передающей стороне направления связи и декодированного блока на приемной стороне направления связи.(f)
2. Способ по п.1, отличающийся тем, что для формирования блока проверочных символов C1 длиной r1 для блока X1, кодируют блок X1 линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом, для чего разделяют блок X1 на T1=k1/K подблоков по К символов в каждом, формируют из каждого i-го подблока, где i=1, 2,…, T1, i-ый кодовый подблок длиной N символов, перемножением i-го подблока на порождающую матрицу размерности K×N линейного блокового систематического двоичного помехоустойчивого (N, К) кода, затем выделяют из i-го кодового подблока i-ый подблок проверочных символов длиной (N-K) символов, а совокупность из T1 подблоков проверочных символов образует блок проверочных символов для блока X1.
3. Способ по п.1, отличающийся тем, что для формирования блока проверочных символов С2 длиной r2 для блока Х2 кодируют блок Х2 линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом, для чего разделяют блок X2 на Т2=k2/К подблоков по К символов в каждом, формируют из каждого i-го подблока, где i=1, 2,…, T2, i-ый кодовый подблок длиной N символов, перемножением i-го подблока на порождающую матрицу размерности K×N линейного блокового систематического двоичного помехоустойчивого (N, К) кода, затем выделяют из i-го кодового подблока i-ый подблок проверочных символов длиной (N-K) символов, а совокупность из Т2 подблоков проверочных символов образует блок проверочных символов для блока Х2.
4. Способ по п.1, отличающийся тем, что для формирования на передающей стороне аутентификатора w сообщения кодируют сообщение линейным блоковым систематическим двоичным помехоустойчивым (Na, Ка) кодом, для чего разделяют сообщение на Ta=(r1+r2)/Ka блоков по Ка символов в каждом, формируют из каждого j-го блока, где j=1, 2,…, Та, j-ый кодовый блок длиной Na символов, перемножением j-го блока на порождающую матрицу размерности Ka×Na линейного блокового систематического двоичного помехоустойчивого (Na, Ка) кода, формируют кодовое слово для сообщения , в виде последовательности состоящей из Та кодовых блоков, затем преобразуют кодовое слово для сообщения путем замены в нем символов “0” на “01”, а символов “1” на “10”, присваивают каждому символу преобразованного кодового слова и соответствующему символу блока Х3 порядковые номера s, где s=1, 2…, 2NaTa, запоминают s-ый символ блока Х3, если в преобразованном кодовом слове на s-ом месте стоит 1, последовательность запомненных символов блокад образует аутентификатор w.
5. Способ по п.1, отличающийся тем, что для формирования на приемной стороне направления связи декодированного блока из принятого блока Y1 и блока проверочных символов C1 декодируют принятый блок Y1 линейным блоковым систематическим двоичным помехоустойчивым (N, К) кодом, для чего разделяют принятый блок Y1 и блок проверочных символов C1 на T1 соответствующих пар декодируемых и проверочных подблоков, где T1=k1/K, длины декодируемых подблоков и проверочных подблоков выбирают равными соответственно К и (N-K) двоичных символов, формируют T1 принятых кодовых подблоков длиной N двоичных символов путем конкатенации справа к t-му декодируемому подблоку t-го проверочного подблока, где t=1, 2, 3,…, T1, вычисляют последовательно, начиная с 1-го до T1-го, t-й синдром S длины (N-K) двоичных символов перемножением t-го принятого кодового подблока на транспонированную проверочную матрицу, исправляют по полученному t-му синдрому S ошибки в t-ом декодируемом подблоке, запоминают t-й декодируемый подблок в качестве t-го подблока декодированного блока.
6. Способ по п.1, отличающийся тем, что для формирования ключа шифрования/дешифрования путем хеширования на передающей стороне направления связи перемножают блоки X1 и X2, а на приемной стороне перемножают декодированные блоки после чего из полученных после перемножения последовательностей выделяют l младших разрядов.
РИСУНКИ
MM4A – Досрочное прекращение действия патента СССР или патента Российской Федерации на изобретение из-за неуплаты в установленный срок пошлины за поддержание патента в силе
Дата прекращения действия патента: 24.08.2007
Извещение опубликовано: 10.03.2009 БИ: 07/2009
|
|