ДЕШИФРИРОВАНИЕ ПОВТОРНО ПЕРЕДАННЫХ ДАННЫХ В СИСТЕМЕ СВЯЗИ С ШИФРОВАНИЕМ Российский патент 2000 года по МПК H04K1/00 H04L9/00 

Описание патента на изобретение RU2146421C1

Настоящее изобретение относится к коммуникационным системам, включая, без каких-либо ограничений, системы связи с шифрованием. Отсылка делается на заявку на патент США N 08/650071 на "Дешифрирование ретранслируемых данных в системе связи с шифрованием" с той же датой подачи, что и в настоящем изобретении, от имени М. У. Брайта и др., переуступленной правопреемнику настоящего изобретения.

Предшествующий уровень техники
Системы с шифрованием речевых сигналов и сигналов данных хорошо известны. Многие из этих систем обеспечивают засекреченную связь между двумя или более пользователями, с совместным использованием одного или более сегментов информации этими пользователями, тем самым обеспечивая возможность только этим пользователям, которым доступна эта информация, соответствующим образом дешифрировать сообщение. В общем случае для шифрования или дешифрирования речевых сообщений или сообщений данных используется генератор ключа (ГК) шифрования. ГК представляет собой нелинейную математическую функцию, которая генерирует псевдослучайную последовательность, для которой задан исходный начальный вектор и переменная ключа, которая определяет математическую функцию. ГК выдает на выходе ключевой поток, который совместно с незашифрованным текстом обрабатывается в соответствии с логической операцией "исключающее ИЛИ" для генерирования зашифрованного текста. Зашифрованный текст передается к приемнику. В приемнике принятый зашифрованный текст обрабатывается в соответствии с логической операцией "исключающее ИЛИ" совместно с ключевым потоком, определенным в приемнике на основе принятой информации, в результате чего может быть получен расшифрованный текст, переданный передающим устройством.

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

Способ настройки соответствия состояний шифрования в устройствах шифрования/дешифрования описан в патенте США N 4654480. В этом патенте раскрыт способ синхронизации при котором данные разбиты на блоки и код обнаружения ошибки добавляют к каждому блоку. Такой код обнаружения ошибки вычисляют, используя зашифрованный блок данных и уникальное число последовательности. Код обнаружения ошибки передают или сохраняют вместе с зашифрованным блоком данных, но хотя число последовательности и добавлено к блоку данных для целей вычисления кода ошибки, на самом деле его не передают и не сохраняют с зашифрованными данными и кодом исправления ошибки. Когда зашифрованные данные считывают или получают, получающее устройство добавляет к каждому полученному блоку данных число последовательности, полученное от локального счетчика, синхронизированного со счетчиком в устройстве передачи или хранения, и для сравнения со считанным или полученным с зашифрованными данными кодом обнаружения ошибки вычисляют новый код обнаружения ошибки. Несовпадение между кодами обнаружения ошибки указывает на ошибку передачи или синхронизации для такого блока. Блок затем может быть передан повторно.

Устройства шифрования могут работать в одном из различных режимов работы. Режим работы, который использует устройство шифрования, обеспечивает различные способы синхронизации приемного устройства с передающим устройством. Один из режимов работы определяется как "обратная связь по выходу" (ОСВ). ОСВ требует, чтобы один и тот же исходный начальный вектор (или индикатор сообщения - ИС) использовался как в передающем, так и в приемном устройствах для генерирования ключевого потока. В передатчике генератор ключа шифрования (ГК) инициализируется с помощью индикатора сообщения (ИС). Для генерирования ключевого потока выполняется алгоритм шифрования. Ключевой поток затем подается по линии обратной связи на вход ГК для генерирования следующего блока ключевого потока. Тот же самый ключевой поток, который подается по линии обратной связи, также используется для шифрования данных, обеспечивая в результате получение зашифрованного текста. Передатчик передает ИС и зашифрованный текст в приемник. В приемнике ГК инициализируется с помощью индикатора сообщения, который был передан. Выполняется алгоритм шифрования для генерирования ключевого потока. Ключевой поток затем вводится по линии обратной связи на вход ГК. Тот же самый ключевой поток, который был введен по линии обратной связи, используется для дешифрования данных. Данные дешифруются путем обработки в соответствии с логической операцией "исключающее ИЛИ" ключевого потока, генерируемого алгоритмом шифрования, и дешифрируемых данных.

Второй режим работы известен как "адресация счетчика" или линейная регрессия. Начальный способ синхронизации, используемый при адресации счетчика, может быть тем же самым, что и в способе обратной связи по выходу. В способе адресации счетчика используется сдвиговый регистр с линейной обратной связью (СРЛОС) максимальной длины на входе устройства шифрования (ГК). В способе адресации счетчика требуется, чтобы тот же самый исходный начальный вектор (или ИС) использовался для СРЛОС в устройствах шифрования как при передаче, так и при приеме, для генерирования ключевого потока. В передатчике СРЛОС инициализируется посредством ИС и реализует полином генератора. Выходной результат СРЛОС подается на вход алгоритма шифрования. Алгоритм шифрования выполняется для генерирования ключевого потока. Ключевой поток затем обрабатывается в соответствии с логической операцией "исключающее ИЛИ" совместно с незашифрованным открытым текстом для генерирования зашифрованного текста. Передатчик передает индикатор сообщения (ИС) и зашифрованный текст в приемник. В приемнике СРЛОС инициализируется посредством переданного ИС. Выходной результат СРЛОС вводится во входной регистр алгоритма шифрования для генерирования ключевого потока. Ключевой поток затем обрабатывается в соответствии с логической операцией "исключающее ИЛИ" совместно с зашифрованным текстом для дешифрирования данных.

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

Известно, что во многих системах связи запрашивается повторная передача какого-либо блока данных, который был принят с ошибками. Такая повторная передача данных приводит к проблемам в системах с шифрованием данных. Ввиду синхронизированного характера процедуры шифрования, необходимо дешифрировать N-1 блоков при дешифрировании отдельного повторно переданного блока N. Это свойство в значительной степени снижает пропускную способность системы с шифрованием данных, создавая значительные различия между пропускной способностью для зашифрованных и незашифрованных данных. Реализации типовой системы предусматривают ожидание, пока все блоки не будут приняты без ошибок перед дешифрированием сообщения. Такой способ добавляет задержки на обработку после приема последнего блока. Другой способ состоит в дешифрировании предыдущих N-1 блоков при дешифрировании отдельного повторно переданного блока N. Этот способ требует в (N-1) раз больше времени на дешифрирование отдельного повторно переданного блока. По существу данный способ требует повторного дешифрирования возможно всего сообщения, которое уже было дешифрировано, для дешифрирования одного блока.

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

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

Краткое описание чертежей
Фиг. 1 - блочная диаграмма принимаемого сообщения соответственно изобретению.

Фиг. 2 - блок-схема последовательности операций способа более позднего дешифрирования сообщений, когда один или более блоков сообщения передаются повторно в соответствии с изобретением.

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

Фиг. 5 - блок-схема последовательности операций способа более позднего дешифрирования сообщений путем периодического сохранения состояния шифрования в соответствии с изобретением.

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

Описание предпочтительного варианта осуществления изобретения
Далее описывается способ дешифрирования повторных передач зашифрованных данных, причем повторная передача не содержит передачи полного сообщения. После исходного приема зашифрованного сообщения данных, состоящего из множества блоков, определяется, имеются ли ошибки в принятых блоках или нет. Ключевой поток или зашифрованное состояние генерируется и/или запоминается либо для всего сообщения, либо для частей сообщения, в зависимости от располагаемого объема памяти и времени шифрования. Осуществляется запрос о повторной передаче блоков, принятых с ошибками. Если повторно переданные блоки приняты без ошибок, то ключевой поток либо извлекается из памяти, либо генерируется на основе данных, запомненных при первоначальном приеме сообщения зашифрованных данных. Таким образом, нет необходимости ожидать, пока все сообщение будет принято, или повторно дешифрировать данные для дешифрирования всего сообщения. Таким образом, дешифрирование выбранных частей сообщения выполняется без излишних задержек и избыточной работы.

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

Кроме того, если индикатор сообщения содержит вектор инициализации, ключевой поток генерируется путем выполнения алгоритма шифрования, реализуемого в режиме обратной связи по выходу для (N х B) итераций. Если индикатор сообщения содержит вектор сдвигового регистра с линейной обратной связью, то ключевой поток генерируется путем выполнения алгоритма шифрования, реализуемого в режиме адресации счетчика для (N х B) итераций. N и B - положительные целые числа для сообщения из N блоков, где В - число битов данных.

Блочная диаграмма принятого сообщения, включающего ряд принятых с ошибками блоков, показана на фиг. 1. Принятое сообщение 100 в типовом случае содержит индикатор сообщения (ИС) 101 и множество зашифрованных блоков 103 - 111. ИС 101 используется для синхронизации внутренних состояний устройств шифрования, известных как генераторы ключей (ГК). Блок 1 103 принято нулем ошибок. Блок 2 105 принят с 1 ошибкой. Блок 3 107 принят без ошибок. Блок 4 109 принят с 2 ошибками. Блок X 111 принят с нулем ошибок, где X - целое число, обозначающее, сколько зашифрованных блоков принято в сообщении 100. В системе, в которой осуществляется запрос повторной передачи блоков с ошибками, запрос повторной передачи осуществляется для блоков с ошибками, в данном случае для блока 2 (105) и блока 4 (109), в предположении, что все блоки между блоком 4 и блоком X были приняты без ошибок.

Блок-схема последовательности операций способа дешифрирования сообщений, когда один или более блоков сообщения повторно переданы в устройство связи, показана на фиг. 2. Данный способ осуществляется, когда сообщение 100 зашифровано с использованием режима шифрования с обратной связью по выходу или режима шифрования с адресацией счетчика. На этапе 201 принимается сообщение 100, которое содержит индикатор сообщения 101 и множество зашифрованных блоков 103-111. На этапе 203 каждый блок сообщения анализируется для определения того, принят ли блок с ошибками. Функция обнаружения ошибок хорошо известна из предшествующего уровня техники и может использовать различные способы, например с использованием проверок циклического избыточного кода, для проверки приема данных с ошибками или без ошибок. Если на этапе 203 обнаружено, что блок принят с ошибкой, то на этапе 105 блок маркируется как принятый с ошибкой, и процедура обработки переходит к этапу 211. Если на этапе 203 определено, что блок принят без ошибок, то процедура обработки переходит к этапу 207, где определяется, если блоки приняты без ошибок, следует ли их дешифрировать немедленно, т.е. либо перед запросом повторной передачи блоков, принятых с ошибками, либо перед приемом повторной передачи без ошибок блоков, принятых ранее с ошибками. Если на этапе 207 принято решение, что следует предпринимать немедленное дешифрирование, то процедура обработки переходит к этапу 209, где из индикатора сообщения ИС 101 генерируется ключевой поток; блоки, принятые без ошибок, дешифрируются с использованием ключевого потока, сформированного из ИС 101, и процедура переходит к этапу 211.

На этапе 211, если текущий блок является последним блоком в сообщении, то процедура продолжается с этапа 213, в противном случае процедура продолжается с этапа 203. На этапе 215 устройство связи запрашивает повторную передачу любого блока, приятого с ошибкой. Если повторная передача такого блока (блоков) принята с одной или более ошибками на этапе 217, то процедура продолжается с этапа 215. Если повторная передача такого блока (блоков) принята без ошибки на этапе 217, то процедура продолжается с этапа 219, где генерируется ключевой поток и блоки дешифрируются. На этапе 221, при необходимости, этапы 215, 217 и/или 217 повторяются. Если больше повторных передач блоков требуется дешифрировать, то процедура повторяется с этапа 219. Если больше блоков требуется принять, то процедура повторяется с этапа 217. Если немедленное дешифрирование не производилось на этапе 207, то все блоки дешифрируются на этапе 219. Если немедленное дешифрирование производилось на этапе 207, то все блоки, ранее не дешифрированные, т.е. те, которые были повторно переданы устройству связи, дешифрируются на этапе 219.

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

Блок-схема последовательности операций другого варианта процедуры более позднего дешифрирования сообщений, путем сохранения ключевого потока, сформированного для исходной передачи сообщения, показана на фиг. 3. При использовании способа, соответствующего фиг. 3, блоки, принятые без ошибок, дешифрируются немедленно, а те блоки, которые приняты с ошибками, дешифрируются после приема повторной передачи данных, принятых без ошибок, с использованием ключевого потока, сформированного из информации, принятой с первоначально переданным сообщением. На этапе 301 принимается сообщение 100, имеющее индикатор сообщения 101 и множество зашифрованных блоков 103-111. На этапе 303 генерируется ключевой поток для всего сообщения 100 из индикатора сообщения 101, как описано выше, и запоминаемый временно или постоянно, как это необходимо. На этапе 305 инициализируется счетчик блоков N, т.е. N устанавливается на 1. На этапе 307 вызывается блок N. На этапе 309 определяется, был ли принят блок N с ошибкой. Если блок N был принят с ошибкой, то процедура продолжается с этапа 311, причем блок N маркируется как принятый с ошибкой, и процедура продолжается с этапа 315. Если на этапе 309 блок N был принят без ошибки, то процедура продолжается с этапа 313, где блок N дешифрируется и результат запоминается. Процедура продолжается с этапа 315, где счетчик блоков N получает приращение на 1, т.е. N получает значение N+1. Если на этапе 317 определено, что блок N не является последним блоком сообщения 100, то процедура продолжается с этапа 307. Если на этапе 317 определено, что блок N является последним блоком сообщения 100, то процедура продолжается с этапа 319.

На этапе 319, если какой-либо блок был принят с ошибкой на этапе 309, процедура обработки переходит на этап 321, в противном случае процедура обработки заканчивается. На этапе 321 устройство связи запрашивает повторную передачу любого блока (блоков), принятых с ошибкой. Если повторная передача такого блока (блоков) принята с одной или более ошибками на этапе 323, то процедура продолжается с этапа 321. Если повторная передача любого повторного переданного блока (блоков) принята без ошибок на этапе 323, то процедура переходит на этап 325, где вызывается повторно переданный блок. Повторно переданный блок представляет собой блок данных, для которого была запрошена повторная передача данных, причем повторная передача этого блока данных была принята без ошибок. На этапе 327 повторно переданный блок дешифрируется с использованием ключевого потока, генерируемого на этапе 303. Повторно переданный блок включает в себя номер блока из исходной передачи, причем этот номер используется для определения того, какая часть ключевого потока необходима для дешифрирования повторно переданного блока. Например, если повторно переданный блок представляет собой блок 9 и каждый блок содержит 200 битов данных, то 1600 битов данных предшествуют блоку 9, являющемуся повторно переданным блоком. Ключевой поток, используемый для дешифрирования блока 9, представляет собой 1600 битов в ключевом потоке от первого бита ключевого потока, используемого для дешифрирования первого бита блока 1. Если на этапе 329 имеется один или более блоков повторной передачи для дешифрирования, процедура продолжается с этапа 325, в противном случае процедура продолжается с этапа 331. Если на этапе 331 все блоки из сообщения 100 были приняты корректно, то процедура завершается, в противном случае процедура продолжается с этапа 321.

Поскольку ключевой поток уже сформирован, то этапы дешифрирования 313 и 327 представляют собой просто этапы объединения, т.е. в соответствии с логической операцией "исключающее ИЛИ" обрабатывается принятый зашифрованный текст со сформированным/запомненным ключевым потоком для получения незашифрованного текста, который был первоначально зашифрован посредством передающего устройства. Принятый зашифрованный текст не требует ввода в генератор ключа шифрования для дешифрирования, так как процедура обработки в соответствии с логической операцией "исключающее ИЛИ" может быть реализована микропроцессором, цифровым процессором сигналов или иным средством, используемым для реализации блок-схем алгоритмов, представленных на фиг. 2-6. За счет исключения использования генератора ключа шифрования на этом этапе может быть сэкономлено значительное количество времени, так как генератор ключа шифрования функционирует с намного меньшими скоростями (в типовом случае с частотой от 6 до 50 кГц), чем микропроцессоры, которые функционируют при скоростях, соответствующих скоростям свыше 1 МГц.

Блок-схема алгоритма, иллюстрирующая конкретный способ более позднего шифрования сообщений за счет сохранения ключевого потока, генерируемого из первоначальной передачи сообщения, показана на фиг. 4. При использовании способа по фиг. 4 все сообщение дешифрируется при приеме повторной передачи данных, принятых без ошибок с использованием ключевого потока, формируемого из информации, принятой с первоначально переданным сообщением. На этапе 401 принимается сообщение 100, имеющее индикатор сообщения 101 и множество зашифрованных блоков 103-111. На этапе 403 генерируется ключевой поток для всего сообщения 100 из индикатора сообщения 101, как описано выше, и запоминаемый временно или постоянно, как это необходимо. На этапе 405 инициализируется счетчик блоков N, т.е. N устанавливается на 1. На этапе 407 вызывается блок N. На этапе 409 определяется, был ли принят блок N с ошибкой. Если блок N был принят с ошибкой, то процедура продолжается с этапа 411, причем блок N маркируется как принятый с ошибкой, и процедура продолжается с этапа 413. Если на этапе 409 блок N был принят без ошибки, то процедура продолжается с этапа 413, где счетчик блоков N получает приращение на 1, т. е. N получает значение N+1. Если на этапе 415 определено, что блок N не является последним блоком сообщения 100, то процедура продолжается с этапа 407. Если на этапе 415 определено, что блок N является последним блоком сообщения 100, то процедура продолжается с этапа 417.

На этапе 417, если какой-либо блок был принят с ошибкой на этапе 409, процедура обработки переходит на этап 419, в противном случае процедура обработки заканчивается. На этапе 419 устройство связи запрашивает повторную передачу любого блока (блоков), принятых с ошибкой. Если повторная передача такого блока (блоков) принята с одной или более ошибок на этапе 421, то процедура продолжается с этапа 419. Как только повторная передача всех блоков принята без ошибок на этапе 421, процедура продолжается с этапа 423, где все сообщение 100 дешифрируется с использованием ключевого потока, генерируемого на этапе 403. Поскольку ключевой поток уже сформирован, то этап дешифрирования 423 представляет собой просто этап объединения, т.е. в соответствии с логической операцией "исключающее ИЛИ" обрабатывается принятый зашифрованный текст совместно со сформированным/запомненным ключевым потоком для получения незашифрованного текста, который был первоначально зашифрован посредством передающего устройства.

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

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

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

Блок-схема, иллюстрирующая альтернативный способ более позднего дешифрирования сообщений путем периодического сохранения состояния шифрования, показана на фиг. 5. Этот способ характеризует собой компромисс между пространством памяти и временем дешифрирования. Данный способ сохраняет состояние шифрования каждого К-го блока, требуя использования двух буферов: один буфер N блоков для хранения принятых блоков и второй буфер для N/K состояний шифрования. Способ обеспечивает периодическое сохранение состояния шифрования. Сохраненное состояние шифрования используется для повторной инициализации генератора ключа шифрования для части сообщения, содержащего повторно передаваемый блок. Параметр К характеризует собой компромисс между временем дешифрирования и пространством памяти. Чем больше К, тем длительнее может быть время дешифрирования, но тем меньше требуется пространство памяти. При использовании способа по фиг. 5 блоки, принятые без ошибок, дешифрируются немедленно, а те блоки, которые приняты с ошибками, дешифрируются после приема повторной передачи данных, принятой без ошибок. Как вариант, все блоки могут быть сохранены и дешифрированы сразу же после того, как все повторно переданные блоки будут приняты корректно, например, в случае коротких сообщений.

На этапе 501 принимается сообщение 100, имеющее индикатор сообщения 101 и множество зашифрованных блоков 103-111. На этапе 503 индикатор сообщения установлен в качестве состояния шифрования для генератора ключа шифрования. В принципе, состояние шифрования является внутренним фактором генератора ключа шифрования при генерировании им псевдослучайной последовательности, известной как ключевой поток. Состояние шифрования включает всю необходимую информацию для приведения двух различных генераторов ключей шифрования в одну и ту же позицию в потоке данных так, чтобы дешифрирующий генератор ключа шифрования мог надлежащим образом дешифрировать то, что зашифровал зашифровывающий генератор ключа шифрования. Состояние шифрования для режима обратной связи по выходу представляет собой состояние генератора ключа шифрования, которое содержит ряд последних битов в ключевом потоке предыдущего дешифрованного блока, которые необходимы для надлежащей инициализации генератора ключа шифрования для дешифрирования последующего блока. Состояние шифрования для режима адресации счетчика представляет собой состояние сдвигового регистра с линейной обратной связью (СРЛОС), представляющее собой данные в СРЛОС, требуемые для надлежащей инициализации СРЛОС для дешифрирования последующего блока. В предпочтительном варианте осуществления в качестве состояния шифрования в СРЛОС используются 64 бита.

На этапе 505 инициализируется счетчик блоков N, т.е. N устанавливается на 1. На этапе 507 вызывается блок N. На этапе 509 блок N дешифрируется путем ввода данных блока N в генератор ключа шифрования, т.е. путем обычного дешифрирования. На этапе 511 определяется, был ли принят блок N с ошибкой. Если блок N был принят с ошибкой, то процедура продолжается с этапа 513, причем блок N маркируется как принятый с ошибкой, и дешифрированный блок N отбрасывается на этапе 515. Если на этапе 511 блок N был принят без ошибки, то процедура продолжается с этапа 517, где результат дешифрирования блока N запоминается. Если на этапе 519 N по модулю К равно 0, то процедура продолжается с этапа 521, где состояние шифрования после дешифрирования блока N сохраняется. Состояние генератора ключа шифрования после дешифрирования блока N представляет собой начальное состояние для дешифрирования блока N+1. Для режима обратной связи по выходу запоминается состояние генератора ключа шифрования. Для режима адресации счетчика запоминается состояние СРЛОС. Если на этапе 519 значение N по модулю К не равно нулю, то процедура продолжается с этапа 523. На этапе 523 счетчик блоков N получает приращение на 1, т.е. N получает значение N+1. Если на этапе 525 определено, что блок N не является последним блоком сообщения 100, то процедура продолжается с этапа 507. Если на этапе 525 определено, что блок N является последним блоком сообщения 100, то процедура продолжается с этапа 527.

На этапе 527, если какой-либо блок был принят с ошибкой на этапе 511, процедура обработки переходит на этап 529, в противном случае процедура обработки заканчивается. На этапе 529 устройство связи запрашивает повторной передачи любого блока (блоков), принятых с ошибкой. Если повторная передача такого блока (блоков) принята с одной или более ошибок на этапе 531, то процедура продолжается с этапа 529. Если повторная передача всех блоков повторной передачи принята без ошибок на этапе 531, то процедура продолжается с этапа 533, где вызывается блок повторной передачи. На этапе 535 состояние шифрования вызывается из самого последнего сохраненного значения перед номером блока повторной передачи. Иными словами, если состояние генератора ключа шифрования запомнено после каждого К-го блока, то номер состояния генератора ключа шифрования, которое было вызвано для дешифрирования блока N, представляет собой состояние генератора ключа шифрования, которое было запомнено после номера блока в следующем виде:
К • {целая часть (N-1)/K}.

Например, если блок повторной передачи является блоком 30, а К = 4, причем блоки 28 и 32 были сохранены, то состояние шифрования, которое должно быть вызвано для дешифрирования блока 30, получают из блока 4 • {целая часть (30-1)/4} = 4 • 7 = 28, т.е. вызывается состояние дешифрирования блока 28. На этапе 537 состояние шифрования, вызванное на этапе 535, вводится в генератор ключа шифрования и вплоть до К блоков, начиная после блока, соответствующего вызванному состоянию, и заканчивая блоком повторной передачи, дешифрируются обычным образом, т.е. путем ввода принимаемого зашифрованного текста в генератор кода шифрования. При сохранении каждого К-го блока наихудший случай для числа блоков, подлежащих дешифрированию, есть К. Реальное число блоков, которые должны дешифрироваться, определяется соотношением:
К, если N по модулю К равно 0;
N по модулю К, в противном случае.

Если на этапе 539 имеется один или более блоков повторной передачи, подлежащих дешифрированию, то процедура продолжается с этапа 533, в противном случае процедура продолжается с этапа 541. Если на этапе 541 все блоки из сообщения 100 были приняты корректно, то процедура обработки завершается, в противном случае процедура продолжается с этапа 529. В таблице представлена информация, относящаяся к системе, где К = 3, причем вызываемому состоянию соответствует состояние шифрования, запомненное после дешифрирования блока N (см. табл. 1)
Еще один альтернативный способ включает этапы приема сообщения, содержащего индикатор сообщения и множество зашифрованных блоков, в частности, при использовании устройства шифрования, работающего в режиме адресации счетчика. Индикатор сообщения запоминается. Если по меньшей мере один блок из множества зашифрованных блоков принят с ошибкой, то передается второе сообщение, это второе сообщение запрашивает повторную передачу по меньшей мере одного блока. После приема повторной передачи по меньшей мере одного блока без ошибки состояние шифрования вычисляется из запомненного индикатора сообщения; из состояния шифрования генерируется ключевой поток, и этот по меньшей мере один блок дешифрируется с использованием ключевого потока.

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

На этапе 601 принимается сообщение 100, имеющее индикатор сообщения 101 и множество зашифрованных блоков 103-111. На этапе 603 индикатор сообщения 101 устанавливается как состояние шифрования для генератора ключа шифрования, как описано выше для этапа 503 со ссылками на фиг.5.

На этапе 605 инициализируется счетчик блоков N, т.е. N устанавливается на 1. На этапе 607 вызывается блок N. На этапе 609 блок N дешифрируется путем ввода данных блока N в генератор ключа шифрования, т.е. путем обычного дешифрирования. На этапе 611 определяется, был ли принят блок N с ошибкой. Если блок N был принят с ошибкой, то процедура продолжается с этапа 613, причем блок N маркируется как принятый с ошибкой, и дешифрированный блок отбрасывается на этапе 615. Как вариант, функция дешифрирования этапа 609 может быть объединена с этапом 617, в этом случае этап 609 опускается (после этапа 607 процедура продолжается с этапа 611). Если на этапе 611 блок N был принят без ошибки, то процедура продолжается с этапа 617, где результат дешифрирования блока N запоминается. На этапе 619 счетчик блоков N получает приращение на 1, т.е. N получает значение N+1. Если на этапе 621 определено, что блок N не является последним блоком сообщения 100, то процедура продолжается с этапа 607. Если на этапе 621 определено, что блок N является последним блоком сообщения 100, то процедура продолжается с этапа 623.

На этапе 623, если какой-либо блок был принят с ошибкой на этапе 611, процедура обработки переходит на этап 625, в противном случае процедура обработки заканчивается. На этапе 625 устройство связи запрашивает повторную передачу любого блока (блоков), принятых с ошибкой. Если повторная передача такого блока (блоков) принята с одной или более ошибок на этапе 627, то процедура продолжается с этапа 625. Если повторная передача любого повторного переданного блока (блоков) принята без ошибок на этапе 627, то процедура переходит на этап 629, где вызывается повторно переданный блок. На этапе 631 вычисляется состояние шифрования. Для режима адресации счетчика состояние шифрования представляет собой состояние СРЛОС, которое вычисляется с использованием индикатора сообщения, полинома генератора СРЛОС и номера блока. Состояние СРЛОС, используемое для дешифрирования блока N, представляет собой начальное состояние, запомненное, когда дешифрируемый блок представляет собой блок N-1. Для определения состояния СРЛОС необходимо определенное число битов, предшествующих блоку N. Если каждый блок имеет одно и то же число битов В, то N • В есть общее число битов, принятых перед блоком N, а также отражает число итераций полинома генератора СРЛОС, выполненных в промежутке между ИС и блоком N. Состояние СРЛОС есть остаточный член уравнения
XNxB - полином генератора.

Если, например, полином генератора для 64-битового СРЛОС равен
x62+x46+x38+x27+x15+x0
то уравнение имеет вид:
XNxB - (x62+x46+x38+x15+x0)
Выборка остаточного члена от деления полинома
x63+x59+x51+x46+x40+x35 +x31+x26+x19+x14+x8+x0
что будет соответствовать состоянию СРЛОС для блока N.

На этапе 633 состояние шифрования запоминается в генераторе ключа шифрования. На этапе 635 повторно переданный блок дешифрируется обычным образом, т. е. путем ввода принимаемого зашифрованного текста в генератор ключа шифрования. Если на этапе 637 имеется один или более повторно переданных блоков для дешифрирования, то процедура продолжается с этапа 629, в противном случае процедура продолжается с этапа 639. Если на этапе 639 все блоки из сообщения 100 были приняты корректно, то процедура обработки завершается, в противном случае процедура обработки продолжается с этапа 625.

В известных системах шифрования дешифрирование выполняется путем использования потока зашифрованных данных для генератора ключа шифрования, который генерирует ключевой поток, как это необходимо для используемого режима операции шифрования, и немедленно дешифрирует зашифрованное сообщение путем объединения (в типовом случае путем выполнения логической операции "исключающее ИЛИ" для цифровой информации) ключевого потока с зашифрованным сообщением для получения незашифрованного открытого текста. Типовой генератор ключа шифрования дешифрирует сообщение побитовым способом (или посимвольным способом), т.е. один бит (один символ) зашифрованных данных в генераторе ключа шифрования дает один бит (символ) ключевого потока, который комбинируется с введенным битом (символом) для получения одного бита (символа) дешифрированных данных на выходе генератора ключа шифрования. Этап объединения может быть просто и с высоким быстродействием выполнен микропроцессором, тактируемым, например, с частотой 1 МГц. Генерирование ключевого потока, однако, ограничено частотой, с которой работает генератор ключа шифрования, в типовом случае от 6 до 50 кГц.

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

Похожие патенты RU2146421C1

название год авторы номер документа
ДЕШИФРОВАНИЕ ПОВТОРНО ПЕРЕДАВАЕМЫХ ДАННЫХ В СИСТЕМЕ ШИФРОВАННОЙ СВЯЗИ 1997
  • Майкл В.Брайт
  • Скотт Дж. Паппас
  • Кевин Дж.Доберштейн
RU2147793C1
СПОСОБ ШИФРОВАНИЯ, УСТРОЙСТВО ШИФРОВАНИЯ, СПОСОБ ДЕШИФРИРОВАНИЯ И УСТРОЙСТВО ДЕШИФРИРОВАНИЯ 2000
  • Татебаяси Макото
  • Йокота Каору
  • Охмори Мотодзи
  • Сано Фумихико
  • Ендо Наоки
RU2257677C2
ИСПОЛЬЗОВАНИЕ ШИФРОВАЛЬНОГО СЕРВЕРА ДЛЯ ШИФРОВАНИЯ СООБЩЕНИЙ 1997
  • Дэвид Доренбос
RU2147792C1
СПОСОБ ОБЕСПЕЧЕНИЯ ДВУХПУНКТОВОЙ СВЯЗИ В СИСТЕМАХ, ПРЕДНАЗНАЧЕННЫХ ДЛЯ СКРЫТОЙ СВЯЗИ 1994
  • Дин Е.Бэнварт
RU2121231C1
ПОРОЖДЕНИЕ ШИФРОВАЛЬНЫХ КЛЮЧЕЙ В СЕТЯХ РАДИОСВЯЗИ 1996
  • Хассан Амер А.
  • Херши Джон Е.
  • Ченнакешу Сандип
RU2187897C2
ПРОЦЕСС УДОСТОВЕРЕНИЯ ПОДЛИННОСТИ КОМАНД 1992
  • Томас Дж.Михм
  • Роберт Е.Пенни
RU2137303C1
УПРАВЛЕНИЕ ДОСТУПОМ С ИСПОЛЬЗОВАНИЕМ ПАРАМЕТРИЗИРОВАННОЙ ХЭШ-ФУНКЦИИ 1996
  • Дэвид В.Оксмит
  • Роберт К.Науэрхейз
RU2142674C1
БЕЗОПАСНЫЙ ТРАНСПОРТ ЗАШИФРОВАННЫХ ВИРТУАЛЬНЫХ МАШИН С НЕПРЕРЫВНЫМ ДОСТУПОМ ВЛАДЕЛЬЦА 2015
  • Новак Марк Фишел
  • Бен-Зви Нир
  • Фергюсон Нильс Т.
RU2693313C2
ТРАНСПОРТИРОВКА ТРАФИКА УПРАВЛЕНИЯ ЧЕРЕЗ ЯЧЕИСТУЮ СЕТЬ С МНОЖЕСТВОМ СЕТЕВЫХ СЕГМЕНТОВ 2007
  • Эмеотт Стефен П.
  • Баркер Мл. Чарлз Р.
  • Браскич Энтони Дж.
RU2411672C2
СПОСОБ И УСТРОЙСТВО ДЛЯ УСТАНОВЛЕНИЯ АССОЦИАЦИЙ БЕЗОПАСНОСТИ МЕЖДУ УЗЛАМИ БЕСПРОВОДНОЙ САМООРГАНИЗУЮЩЕЙСЯ ОДНОРАНГОВОЙ (ad-hoc) СЕТИ 2007
  • Эмеотт Стефен П.
  • Браскич Энтони Дж.
RU2421922C2

Иллюстрации к изобретению RU 2 146 421 C1

Реферат патента 2000 года ДЕШИФРИРОВАНИЕ ПОВТОРНО ПЕРЕДАННЫХ ДАННЫХ В СИСТЕМЕ СВЯЗИ С ШИФРОВАНИЕМ

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

Формула изобретения RU 2 146 421 C1

1. Способ дешифрования сообщения, содержащего множество зашифрованных блоков, заключающийся в том, что принимают сообщение и, если, по меньшей мере, один блок из множества зашифрованных блоков принят с ошибкой, передают второе сообщение, запрашивающее повторную передачу, по меньшей мере, одного блока, отличающийся тем, что сообщение дополнительно содержит индикатор сообщения, после приема повторной передачи, по меньшей мере, одного блока без ошибки генерируют ключевой поток из индикатора сообщения и дешифруют, по меньшей мере, один блок с использованием ключевого потока. 2. Способ по п.1, отличающийся тем, что индикатор сообщения запоминают, после приема повторной передачи, по меньшей мере, одного блока без ошибки вычисляют состояние шифрования из зопомненного индикатора сообщения и генерируют ключевой поток из состояния шифрования. 3. Способ по п.2, отличающийся тем, что когда первый блок из множества зашифрованных блоков принят без ошибки, первый блок дешифруют с использованием ключевого потока. 4. Способ дешифрования сообщения, содержащего множество зашифрованных блоков, заключающийся в том, что принимают сообщение и, если, по меньшей мере, один блок из множества зашифрованных блоков принят с ошибкой, передают второе сообщение, запрашивающее повторную передачу, по меньшей мере, одного блока, отличающийся тем, что сообщение дополнительно содержит индикатор сообщения, ключевой поток генерируют из индикатора сообщения для использования при дешифровании множества зашифрованных блоков и после приема повторной передачи, по меньшей мере, одного блока без ошибки дешифруют, по меньшей мере, один блок с использованием ключевого потока. 5. Способ по любому из пп.1 - 4, отличающийся тем, что индикатор сообщения содержит вектор сдвигового регистра линейной обратной связи, а ключевой поток генерируют путем выполнения алгоритма шифрования, реализующего в режиме функционирования с адресацией счетчика произведение N на B итераций для N-блочного сообщения, причем N и B являются положительными целыми числами. 6. Способ дешифрования сообщения, содержащего множество зашифрованных блоков, заключающийся в том, что принимают сообщение и, если, по меньшей мере, один блок из множества зашифрованных блоков принят с ошибкой, передают второе сообщение, запрашивающее повторную передачу, по меньшей мере, одного блока, отличающийся тем, что сообщение дополниельно содержит индикатор сообщения, состояние шифрования каждого K-го блока из множества зашифрованных блоков запоминают, после приема повторной передачи, по меньшей мере, одного блока без ошибки генерируют ключевой поток из индикатора сообщения и дешифруют, по меньшей мере, один блок с использованием ключевого потока. 7. Способ по п.1, или 4, или 6, отличающийся тем, что индикатор сообщения содержит вектор инициализации, причем дополнительно выполняют генерирование ключевого потока путем выполнения алгоритма шифрования, реализующего в режиме функционирования с обратной связью по выходу произведение N на B итераций для N-блочного сообщения, причем N и B являются положительными целыми числами.

Документы, цитированные в отчете о поиске Патент 2000 года RU2146421C1

US 4654480 A, 31.03.87
US 5185795 A, 09.02.93
US 5185797 A, 09.02.93
US 5199069 A, 30.03.93
DE 3335672 A1, 04.04.85
DE 3325349 A1, 24.01.85
US 3860907 A, 14.01.75
Дешифратор время-импульсных кодов 1988
  • Столяр Владимир Владимирович
SU1545326A1

RU 2 146 421 C1

Авторы

Кевин Дж. Доберштейн

Скотт Дж. Паппас

Майкл В.Брайт

Даты

2000-03-10Публикация

1997-04-23Подача