Способ формирования ключа шифрования/дешифрования

Иллюстрации

Показать все

Изобретение относится к области криптографии, может быть использовано в качестве отдельного элемента при построении симметричных криптографических систем, предназначенных для передачи шифрованных речевых, звуковых, телевизионных и др. сообщений. Технический результат - снижение времени формирования ключа шифрования/дешифрования и повышение стойкости сформированного ключа шифрования/дешифрования к компрометации со стороны нарушителя. Для этого на передающей стороне направления связи формируют случайную последовательность в виде трех блоков 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, где m≥3. При формировании зашумляющего блока двоичных символов (ЗБДС) на передающей стороне направления связи каждый 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, где m≥3. Функцию хеширования последовательностей на передающей стороне направления связи формируют в виде двоичной матрицы 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)<w(V)пор на приемной стороне направления связи из принятого сообщения выделяют блоки проверочных символов С1 и С2, путем разбиения принятого сообщения на две равные части. На приемной стороне направления связи из ранее принятых по каналу связи с ошибками блоков Y1, Y2 и блоков проверочных символов C1 и С2 формируют декодированные блоки После чего формируют ключи шифрования/дешифрования на приемной и передающей сторонах направления связи путем хэширования блока X1 на передающей стороне направления связи и декодированного блока на приемной стороне направления связи.

Для формирования блока проверочных символов С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, где m≥3, как описано, например, в книге Р.Блейхут, "Теория и практика кодов, контролирующих ошибки", М., Мир, 1986, стр.71. Для кодирования блока X1