RU2686005C1 - Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты) - Google Patents

Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты) Download PDF

Info

Publication number
RU2686005C1
RU2686005C1 RU2018106405A RU2018106405A RU2686005C1 RU 2686005 C1 RU2686005 C1 RU 2686005C1 RU 2018106405 A RU2018106405 A RU 2018106405A RU 2018106405 A RU2018106405 A RU 2018106405A RU 2686005 C1 RU2686005 C1 RU 2686005C1
Authority
RU
Russia
Prior art keywords
frame
value
data
service
frames
Prior art date
Application number
RU2018106405A
Other languages
English (en)
Inventor
Илья Иванович Калистру
Original Assignee
Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" filed Critical Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы"
Priority to RU2018106405A priority Critical patent/RU2686005C1/ru
Application granted granted Critical
Publication of RU2686005C1 publication Critical patent/RU2686005C1/ru

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

Область техники, к которой относится изобретение
Предполагаемое изобретение относится к вычислительной технике и, в частности, к способам обеспечения правильности расшифрования данных, передающихся через цифровую систему передачи данных.
Уровень техники
Широко используемые режимы шифрования, такие как режим простой замены с зацеплением, режим гаммирования с обратной связью по шифротексту, режим обратной связи по выходу и режим счетчика с аутентификацией Галуа (GCM) требуют знания синхропосылки для правильного расшифрования сообщения. Синхропосылку также называют начальным значением, значением криптосинхронизации или инициализационным вектором. Синхропосылка используется для инициализации начального состояния шифратора, и использование неправильного значения синхропосылки при расшифровании приводит к тому, что данные будут расшифрованы неправильно. В случае совмещенных режимов, например, GCM, при использовании неправильной синхропосылки сообщение будет неправильно расшифровано, и у него не сойдется имитовставка. Сообщения, у которых не совпали имитовставки, должны быть удалены как не прошедшие проверку на аутентичность.
При этом синхропосылка не является секретной информацией и может передаваться по открытым каналам связи, поскольку знание синхропосылки не дает атакующему возможности расшифровать сообщение без знания ключа шифрования.
Передача синхропосылки вместе с зашифрованным сообщением занимает ресурс канала передачи данных и снижает объем полезных данных, который можно передать по этому каналу.
Известен способ передачи переменных параметров аутентификации от передающей стороны к принимающей стороне (патент РФ №2273102, приоритет от 30.09.1999 г.), включающий
Figure 00000001
генерирование значения криптосинхронизации на передающей стороне,
Figure 00000002
генерирование первой сигнатуры для аутентификации из значения криптосинхронизации и ключа шифрования на передающей стороне,
Figure 00000003
передачу значения криптосинхронизации и первой сигнатуры для аутентификации к принимающей стороне,
Figure 00000004
генерирование второй сигнатуры для аутентификации из значения криптосинхронизации и ключа шифрования на принимающей стороне,
Figure 00000005
приращение значения криптосинхронизации на принимающей стороне, если первая сигнатура для аутентификации и вторая сигнатура для аутентификации совпадают, и
Figure 00000006
запрос обмена ключами шифрования, если первая сигнатура для аутентификации и вторая сигнатура для аутентификации не совпадают.
В соответствии с известным способом требуется передача значения криптосинхронизации для ее проверки на принимающей стороне, что приводит к увеличению объема данных, передаваемых с каждым кадром.
Некоторым видоизменением описанного выше является способ синхронизации значений криптосинхронизации алгоритма шифрования на передающей стороне и на принимающей стороне, включающий
Figure 00000007
передачу кадра зашифрованного сообщения к принимающей стороне,
Figure 00000008
проверку текущего значения криптосинхронизации, связанного с кадром зашифрованного сообщения, на принимающей стороне,
Figure 00000009
приращение текущего значения криптосинхронизации на передающей стороне и принимающей стороне, если текущее значение криптосинхронизации прошло проверку, и
Figure 00000010
передачу от принимающей стороны к передающей стороне сообщения отказа, если текущее значение криптосинхронизации не прошло проверку.
При этом этап проверки текущего значения криптосинхронизации может содержать
Figure 00000011
декодирование множества битов проверки циклическим избыточным кодом (ЦИК) передачи, где биты ЦИК передачи предназначены для определения ошибок передачи, и
Figure 00000012
декодирование множества кодированных битов ЦИК, где закодированные биты ЦИК предназначены для определения, совпадает ли текущее значение криптосинхронизации, генерированное на принимающей стороне со значением криптосинхронизации, генерированным на передающей стороне.
В этом способе к каждому кадру данных необходимо добавлять дополнительное поле, содержащее биты ЦИК, что тоже увеличивает объем передаваемых данных.
Также оба описанных способа требуют отправки сообщения отказа, если значение криптосинхронизации не прошло проверку, поскольку значение криптосинхронизации может быть увеличено, только если текущее значение криптосинхронизации прошло проверку на приемной стороне. Это накладывает ограничение на возможную скорость передачи данных, поскольку передающая сторона должна убедиться в отсутствии сообщения отказа на предыдущее посланное сообщение перед посылкой следующего сообщения и является еще одним недостатком известных способов.
Известен также способ передачи сигнала в системе связи (патент РФ №2384000, приоритет от 11.01.2005 г.), содержащий этапы
Figure 00000013
генерации второй информации шифрования с использованием первой информации шифрования, когда генерируются данные для передачи; шифрования данных с использованием второй информации шифрования и третьей информации шифрования; и
Figure 00000014
генерации и передачи сигнала, который включает в себя зашифрованные данные и первую информацию шифрования, при этом первая информация шифрования соответствует счетчику прокрутки, причем счетчик прокрутки получает приращение при увеличении номера кадра системы связи, и третья информация шифрования представляет собой ключ шифрования трафика (МТК) услуги групповой и широковещательной передачи (MBS).
Известный способ неустойчив к потере кадров данных во время передачи по системе связи, а также к добавлению кадров данных в канал передачи данных другими устройствами.
При потере кадра данных счетчик прокрутки увеличивается на передающей стороне после передачи кадра, но не увеличивается на принимающей стороне, поскольку кадр данных переданный передающей стороной не дошел до принимающей стороны. Во время передачи следующего кадра данных счетчики прокрутки на принимающей стороне и на передающей стороне будут отличаться, и кадр данных будет расшифрован неверно.
Также возможна ситуация, когда в системе связи, через которую производится передача зашифрованных кадров, работают другие устройства. В этом случае если принимающая сторона примет кадр данных, предназначенный не ей, или широковещательный кадр, или специально сформированный атакующей стороной кадр данных, который не был послан передающей стороной, то на принимающей стороне счетчик прокрутки будет увеличен, в то время как на передающей стороне счетчик прокрутки останется прежним. В этом случае принимающая сторона неверно расшифрует следующий кадр данных, отправленный передающей стороной, поскольку счетчики прокрутки на принимающей и передающей сторонах отличаются, что является еще одним недостатком известного способа.
Известный способ принимается за прототип.
Раскрытие изобретения
Техническим результатом является
1) отсутствие необходимости передавать дополнительные биты данных с каждым кадром данных для обеспечения правильности расшифрования кадров данных,
2) сохранение устойчивости компьютера, принимающего зашифрованные кадры, к приему посторонних кадров, не являющихся кадрами, отправленными компьютером, отправляющим защищенные сообщения,
3) возможность восстановления правильности приема кадров после потери кадра в системе передачи данных.
Дополнительным техническим результатом для второго варианта предложенного способа является повышение производительности при обработке принятых кадров.
Для этого предлагается способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных.
Согласно первому варианту способа обеспечения передачи зашифрованных данных в цифровой системе передачи данных, содержащей
Figure 00000015
по крайней мере, один компьютер, отправляющий защищенные сообщения в виде последовательности кадров цифровых данных через сеть передачи данных, содержащий таймер для формирования значений текущего времени и выполненный с возможностью
Figure 00000016
считывать из таймера текущее значение времени,
Figure 00000017
зашифровывать кадры,
Figure 00000018
вычислять имитовставку для кадров;
Figure 00000019
по крайней мере, один компьютер, принимающий защищенные сообщения через сеть передачи данных, содержащий таймер для формирования значений текущего времени и выполненный с возможностью
Figure 00000020
считывают из таймера текущее значение времени,
Figure 00000021
расшифровывать кадры,
Figure 00000022
проверять имитовставку для кадров; при этом размер кадров данных не может быть меньше определенного ненулевого значения L;
способ, заключающийся в том, что
Figure 00000023
если в компьютере, отправляющем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия
Figure 00000024
выбирают начальное значение синхропосылки М;
Figure 00000025
присваивают текущему значению синхропосылки служебного кадра IVsf значение М;
Figure 00000026
присваивают текущему значению синхропосылки кадра данных IVdf значение М;
Figure 00000027
обнуляют значение С счетчика объема отправленных данных;
Figure 00000028
задают значение промежутка времени Tm между служебными кадрами;
Figure 00000029
считывают из таймера текущее значение времени Тс;
Figure 00000030
вычисляют время отправки предыдущего служебного кадра Ts=Тс - Tm;
Figure 00000031
выбирают максимальный объем данных Cmax между посылками служебных кадров;
Figure 00000032
вычисляют максимально возможное количество Z0 кадров данных между служебными кадрами
Z0=max(s*Tm/L, Cmax/L),
где s - максимальная скорость передачи данных через сеть;
Figure 00000033
вычисляют
Z=Z0+1;
Figure 00000034
считывают текущее значение времени Тс из таймера компьютера, отправляющего защищенные сообщения;
Figure 00000035
если
Тс≥Ts+Tm или С≥Cmax,
то отправляют служебный кадр, выполняя следующие действия:
Figure 00000036
увеличивают значение IVsf на величину Z;
Figure 00000037
присваивают IVdf значение IVsf;
Figure 00000038
формируют служебный кадр, содержащий значение IVsf;
Figure 00000039
вычисляют имитовставку для служебного кадра, используя IVsf в качестве синхропосылки;
Figure 00000040
добавляют имитовставку к служебному кадру;
Figure 00000041
передают по назначению служебный кадр через сеть передачи данных;
Figure 00000042
присваивают Ts=Тс;
Figure 00000043
обнуляют С;
Figure 00000044
иначе, если присутствует кадр данных требующий отправки, то обрабатывают этот кадр, выполняя следующие действия
Figure 00000045
увеличивают значение IVdf на единицу;
Figure 00000046
зашифровывают кадр данных с использованием IVdf в качестве синхропосылки;
Figure 00000047
вычисляют имитовставку с использованием IVdf в качестве синхропосылки;
Figure 00000048
добавляют имитовставку к кадру данных;
Figure 00000049
увеличивают значение С на объем данных в кадре данных;
Figure 00000050
передают по назначению зашифрованный кадр данных через сеть передачи данных;
Figure 00000051
если в компьютере, принимающем защищенные сообщения, инициализация переменных не проведена, то сбрасывают флаг S;
Figure 00000052
принимают очередной кадр от компьютера, отправляющего защищенные сообщения;
Figure 00000053
определяют тип кадра;
Figure 00000054
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром, то
Figure 00000055
извлекают из служебного кадра значение синхропосылки IVe;
Figure 00000056
проверяют имитовставку служебного кадра, используя IVe;
Figure 00000057
если имитовставка служебного кадра совпала, то
Figure 00000058
присваивают текущему значению синхропосылки служебных кадров IVsr значение IVe;
Figure 00000059
присваивают текущему значению синхропосылки кадров данных IVdr значение IVsr;
Figure 00000060
устанавливают флаг S;
Figure 00000061
удаляют служебный кадр;
Figure 00000062
иначе, если кадр на входе компьютера, принимающего защищенные сообщения, не является служебным кадром и S=0, то удаляют кадр;
Figure 00000063
иначе проверяют имитовставку кадра, используя в качестве синхропосылки значение IVx=IVdr+1 и выполняя следующие действия:
Figure 00000064
если имитовставка не совпала, то удаляют кадр;
Figure 00000065
иначе, если имитовставка совпала, то
Figure 00000066
присваивают IVdr значение IVx;
Figure 00000067
расшифровывают кадр данных с использованием IVdr в качестве синхропосылки;
Figure 00000068
передают по назначению расшифрованный кадр из компьютера, принимающего защищенные сообщения. Согласно этому способу компьютер, отправляющий защищенные сообщения, отправляет компьютеру, принимающему защищенные сообщения, служебные кадры, содержащие значение синхропосылки для этого служебного кадра, при этом служебные кадры посылаются после отправки определенного объема данных или по истечении определенного времени с отправки предыдущего служебного кадра.
При этом служебные кадры, как и кадры с данными, защищены имитовставкой, обеспечивающей аутентичность этих кадров.
Поскольку компьютер, принимающий защищенные сообщения в соответствии с описанным способом, может вычислить значение синхропосылки для следующего кадра, то он может принять следующий кадр без необходимости передавать дополнительные данные о синхропосылке в каждом кадре данных. Компьютер, принимающий защищенные сообщения, проверяет имитовставки принимаемых кадров, и, поскольку правильную имитовставку можно вычислить, только зная правильный ключ, то при приеме кадра, который был отправлен не компьютером, отправляющим защищенные сообщения, у этого кадра не совпадет имитовставка, и данный кадр будет удален без увеличения значения ожидаемой синхропосылки. Таким образом, обеспечивается устойчивость к приему кадров, отправленным не компьютером, отправляющим защищенные сообщения, и такие кадры не нарушают приема аутентичных кадров.
Предлагаемый способ позволяет восстановить возможность принимать кадры данных после потери одного из них. После потери кадра данных компьютер, принимающий защищенные сообщения, будет использовать неверные синхропосылки при проверке имитовставки у последующих кадров данных и отбрасывать их, поскольку у них не будет совпадать имитовставка. По истечении определенного времени или после передачи определенного объема данных компьютер, отправляющий защищенные сообщения, пошлет очередной служебный кадр, и компьютер, принимающий защищенные сообщения, сможет принять его, поскольку в служебном кадре содержится значение синхропосылки. После этого компьютер, принимающий защищенные сообщения, сможет принимать последующие кадры.
Предложенный способ позволяет не добавлять данные в каждый кадр данных и поэтому позволяет увеличить пропускную способность системы передачи данных по сравнению со способами, требующими добавления дополнительной информации в каждый кадр данных. При этом компьютеру, отправляющему защищенные сообщения, не нужно ожидать в течении установленного промежутка времени подтверждения приема предыдущего кадра или сообщения об отказе, что позволяет повысить скорость передачи данных.
Поскольку после потери кадра компьютер, принимающий защищенные сообщения, может неправильно принять еще некоторое количество кадров, то данный способ предпочтительно применять в системах передачи данных, в которых потеря кадра данных маловероятна.
Согласно второму варианту, предлагается способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных, содержащей
Figure 00000069
по крайней мере, один компьютер, отправляющий защищенные сообщения в виде последовательности кадров цифровых данных через сеть передачи данных, содержащий таймер для формирования значений текущего времени и выполненный с возможностью
Figure 00000070
считывать из таймера текущее значение времени,
Figure 00000071
зашифровывать кадры с использованием режима GCM,
Figure 00000072
вычислять имитовставку для кадров с использованием режима GCM;
Figure 00000073
по крайней мере, один компьютер, принимающий защищенные сообщения через сеть передачи данных, содержащий
Figure 00000074
таймер для формирования значений текущего времени,
Figure 00000075
блок вычисления хэш-функции GHASH
Figure 00000076
блок шифрования, выполненный в виде многоступенчатого конвейера;
Figure 00000077
регистр Q типа FIFO; и выполненный с возможностью
Figure 00000078
считывают из таймера текущее значение времени,
Figure 00000079
расшифровывать кадры; при этом размер кадров данных не может быть меньше определенного ненулевого значения L;
способ, заключающийся в том, что
Figure 00000080
если в компьютере, отправляющем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия:
Figure 00000081
вычисляют А=U+1, где U - максимально возможное количество кадров минимально возможного размера, одновременно находящихся на обработке в блоке шифрования;
Figure 00000082
выбирают начальное значение синхропосылки М;
Figure 00000083
присваивают текущему значению синхропосылки служебного кадра IVsf значение М;
Figure 00000084
присваивают текущему значению синхропосылки кадра данных IVdf значение М;
Figure 00000085
обнуляют значение С счетчика объема отправленных данных;
Figure 00000086
задают значение промежутка времени Tm между служебными кадрами;
Figure 00000087
считывают из таймера текущее значение времени Тс;
Figure 00000088
вычисляют время отправки предыдущего служебного кадра
Ts=Тс - Tm;
Figure 00000089
выбирают максимальный объем данных Cmax между посылками служебных кадров;
Figure 00000090
вычисляют максимально возможное количество Z0 кадров данных между служебными кадрами
Z0 = max(s*Tm/L, Cmax/L),
где s - максимальная скорость передачи данных через сеть;
Figure 00000091
вычисляют
Z=Z0+1;
Figure 00000092
считывают текущее значение времени Тс из таймера компьютера, отправляющего защищенные сообщения;
Figure 00000093
если
Тс≥Ts+Tm или С≥Cmax,
то отправляют служебный кадр, выполняя следующие действия:
Figure 00000094
увеличивают значение IVsf на величину Z;
Figure 00000095
присваивают IVdf значение IVsf;
Figure 00000096
формируют служебный кадр, содержащий значение IVsf;
Figure 00000097
вычисляют имитовставку для служебного кадра, используя IVsf в качестве синхропосылки;
Figure 00000098
добавляют имитовставку к служебному кадру;
Figure 00000099
передают по назначению служебный кадр через сеть передачи данных;
Figure 00000100
присваивают Ts=Тс;
Figure 00000101
обнуляют С;
Figure 00000102
иначе, если присутствует кадр данных, требующий отправки, то обрабатывают этот кадр, выполняя следующие действия:
Figure 00000103
увеличивают значение IVdf на единицу;
Figure 00000104
зашифровывают кадр данных с использованием IVdf в качестве синхропосылки;
Figure 00000105
вычисляют имитовставку с использованием IVdf в качестве синхропосылки;
Figure 00000106
добавляют имитовставку к кадру данных;
Figure 00000107
увеличивают значение С на объем данных в кадре данных;
Figure 00000108
передают по назначению зашифрованный кадр данных через сеть передачи данных;
Figure 00000109
если в компьютере, принимающем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия:
Figure 00000110
считывают из таймера текущее значение времени Тс;
Figure 00000111
присваивают значению времени приема предыдущего служебного кадра Tr значение Тс;
Figure 00000112
выбирают значение промежутка времени Tw;
Figure 00000113
сбрасывают флаг G;
Figure 00000114
сбрасывают флаг Р;
Figure 00000115
считывают из таймера текущее значение времени Тс;
Figure 00000116
присваивают Tr=Тс;
Figure 00000117
если Tr≥Tw и G=1, то сбрасывают флаг G;
Figure 00000118
иначе, если на входе компьютера, принимающего защищенные сообщения, имеется кадр данных, то
Figure 00000119
определяют тип кадра;
Figure 00000120
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром и G=0, то
Figure 00000121
извлекают значение синхропосылки IVe из служебного кадра;
Figure 00000122
присваивают IVsr значение IVe;
Figure 00000123
вычисляют
IVsn=IVsr+Z;
Figure 00000124
устанавливают флаг G;
Figure 00000125
сбрасывают флаг Р;
Figure 00000126
вычисляют
Es=Е (IVsn || 032),
где Е () - функция зашифрования,
|| - операция конкатенации, причем нижний индекс означает разрядность двоичной записи значения;
Figure 00000127
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром и G=1, то
Figure 00000128
вычисляют значение хэш-функции GHASH для служебного кадра;
Figure 00000129
вычисляют
R=GHASH XOR Ir,
где Ir - значение имитовставки, принятого вместе с кадром,
XOR - операция побитового исключающего "или";
Figure 00000130
если R=Es, то
Figure 00000131
присваивают IVsr значение IVsn;
Figure 00000132
присваивают IVdr значение IVsr;
Figure 00000133
вычисляют
IVsn=IVsr+Z;
Figure 00000134
вычисляют
Es=Е (IVsn || 032);
Figure 00000135
если флаг Р сброшен, то
Figure 00000136
вычисляют
Qi=Е (IVdr+i || 032),
где i=1…А;
Figure 00000137
записывают Qi в регистр Q типа FIFO по мере вычисления;
Figure 00000138
устанавливают флаг Р;
Figure 00000139
удаляют служебный кадр;
Figure 00000140
иначе если кадр на входе компьютера, принимающего защищенные сообщения, не является служебным кадром и при этом G=0 или Р=0, то удаляют кадр;
Figure 00000141
иначе
Figure 00000142
вычисляют значение хэш-функции GHASH для кадра;
Figure 00000143
вычисляют
R=GHASH XOR Ir;
Figure 00000144
если значение R не равно значению, содержащемуся в начале регистра Q, то удаляют кадр;
Figure 00000145
иначе
Figure 00000146
удаляют значение из начала регистра Q;
Figure 00000147
увеличивают значение IVdr на 1;
Figure 00000148
вычисляют
B=E(IVdr+A || 032);
Figure 00000149
записывают В в конец регистра Q;
Figure 00000150
расшифровывают кадр, используя значение IVdr в качестве синхропосылки;
Figure 00000151
передают по назначению расшифрованный кадр из компьютера, принимающего защищенные сообщения.
Предложенный второй вариант способа предпочтительно применять в случае использования режима шифрования GSM (Morris Dworkin Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC, 2007, URL: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf) и при наличии блока шифрования, выполненного в виде многоступенчатого конвейера (Shylashree N., Nagarjun Bhat and V. Shridhar. FPGA implementations of advanced encryption standard: A survey. International Journal of Advances in Engineering & Technology, May 2012).
Согласно второму варианту предлагаемого способа, компьютер, принимающий защищенные сообщения, после приема служебного кадра вычисляет значение синхропосылки для следующего служебного кадра и использует его для вычисления значения Es, которое потребуется для проверки имитовставки следующего служебного кадра. Компьютер, принимающий защищенные сообщения, после приема кадра данных проверяет имитовставку этого кадра, используя заранее вычисленное значение, хранящееся в регистре Q, и вычисляет синхропосылку одного из следующих кадров данных в соответствии с действиями способа и значение, которое потребуется для проверки имитовставки этого кадра данных. Вычисленное значение записывается в регистр Q.
Для проверки имитовставки в режиме GCM над синхропосылкой необходимо произвести преобразования, включающие вычислительно сложную операцию зашифрования, которая занимает значительное время. При этом для обеспечения устойчивости к приему кадров, отправленных не компьютером, отправляющим защищенные сообщения, необходимо проверять аутентичность каждого принятого кадра данных до того, как увеличивать значение синхропосылки и использовать ее для обработки следующего кадра.
Согласно этому варианту предлагаемого способа, компьютер, принимающий защищенные сообщения, проверяет имитовставку принятого кадра, используя вычисленные заранее значения. Предварительные вычисления позволяют быстро принимать решение об аутентичности принятого кадра и вычислять значение синхропосылки для следующего кадра сразу после этого, избавляя от необходимости ждать окончания процесса шифрования перед началом обработки следующего кадра. Такой прием повышает производительность способа при реализации его в многопроцессорных компьютерах или компьютерах с блоком шифрования в виде многоступенчатого конвейера, где обработка следующего кадра может начаться до полного окончания обработки предыдущего кадра.
Таким образом, второй вариант предложенного способа имеет дополнительный технический результат - повышенная производительность способа при реализации его в многопроцессорных компьютерах или компьютерах с блоком шифрования в виде многоступенчатого конвейера, где обработку следующего кадра можно начать до полного окончания обработки предыдущего кадра.
Осуществление изобретения
Рассмотрим осуществление вариантов предложенного способа.
Способ в первом варианте допускает реализацию как на компьютере, являющимся источником кадров данных, так и на внешнем по отношению к нему устройстве, выполняющем, таким образом, функции криптошлюза. В последнем случае устройство, осуществляющее предложенный способ, может содержать два сетевых интерфейса и принимать кадры данных на один интерфейс, обрабатывать их в соответствии с предложенным способом и отправлять их через другой интерфейс.
В общем случае, в цифровой системе передачи данных может быть несколько компьютеров, одновременно отправляющих разные защищенные сообщения по разным сетевым адресам, и несколько компьютеров, одновременно принимающих разные защищенные сообщения от разных сетевых адресов.
Устройство, реализующее способ, в любом варианте может обслуживать несколько источников кадров данных, подключенных к интерфейсу, принимающему незашифрованные кадры данных.
Компьютер, отправляющий защищенные сообщения, должен содержать таймер для формирования значений текущего времени, что обычно выполняется в любом современном компьютере.
Для реализации всех вычислений и операций, обеспечивающих возможность
Figure 00000152
считывать из таймера текущее значение времени,
Figure 00000153
зашифровывать кадры,
Figure 00000154
вычислять имитовставку для кадров;
в компьютере, отправляющем защищенные сообщения, необходимо предварительно сформировать программу (комплекс программ). Такую программу может сформировать специалист по программированию (программист) на любом известном универсальном языке программирования (например, языке С) на основе приведенных выше соотношений. Затем эта программа устанавливается на компьютере.
Для обеспечения работы по передаче данных, на основе известных характеристик используемой сети передачи данных, определяют максимальную скорость s передачи данных через сеть и минимальный размер L>0 кадров данных, которые могут быть переданы через систему передачи данных. Определяют начальное значение синхропосылки М, задают значение промежутка времени Tm между служебными кадрами и выбирают максимальный объем данных Cmax между посылками служебных кадров в соответствии с желаемым балансом между дополнительной нагрузкой на канал передачи данных и скоростью восстановления приема данных после потери кадра.
Значение промежутка времени Tm и объема данных Cmax между служебными кадрами выбирают в зависимости от вероятности потери кадра в системе передачи данных и в соответствии с требуемым соотношением между возможным количеством потерянных кадров и объемом служебных данных, передаваемом по системе передачи данных. При этом необходимо учитывать, что увеличение значений Tm и Cmax приводит к снижению объема служебных данных, передаваемого по системе передачи данных, однако, при потере кадра в системе передачи данных, это может приводить к потере большего количества кадров данных до восстановления нормального приема кадров. Для оценки можно исходить из того, что при потере кадра данных прием кадров нарушатся в среднем на Tm/2 при низкой занятости системы передачи данных или на Cmax/(2s) при высокой занятости системы передачи данных. Также учитывают, что значение Tm не следует выбирать меньше разброса времени доставки кадров в системе передачи данных, поскольку иначе возможны сбои передачи, вызванные преждевременным сбросом флага S.
При осуществлении второго варианта способа не следует выбирать Tm меньше, чем время прохождения блока данных через блок шифрования, а выбирать Cmax следует таким образом, что бы Cmax/s было больше, чем время прохождения блока данных через блок шифрования.
Например, если планируется передача защищенных данных через локальную сеть типа Ethernet, то могут быть выбраны значения L=86 байта (64 байта - минимальный кадр Ethernet, 8 байт - преамбула кадра, 12 байт - минимальный промежуток между кадрами), М=0, Cmax=262144 байта, Tm=20 мс при максимальной скорости передачи данных s=10 Гбит/с. Значение L выбрано в соответствии со спецификацией Ethernet, причем учитываются все байты, занятые в системе передачи данных кадром, включая обязательный промежуток между кадрами и преамбулу кадра. Значение М выбрано равным нулю, это значение допустимо, но важно, чтобы оно было выбрано одинаковым для компьютера, передающего защищенные сообщения, и компьютера принимающего защищенные сообщения. Значение Cmax выбрано опытным путем, значение Tm выбрано равным 20 мс, потому что передача данных с задержкой кадров больше 20 мс оценивается как маловероятная, и при этом данное время является приемлемым временем восстановления приема кадров.
Выбранные значения заносятся в программу определенного компьютера, отправляющего защищенные сообщения. Для другого компьютера, отправляющего защищенные сообщения, в системе, в зависимости от планируемой передачи защищенных данных, начальные значения могут быть другими.
Компьютеры, отправляющий защищенные сообщения, работают независимо от компьютеров, принимающих защищенные сообщения, и могут не иметь информации о том, происходит ли прием отправленных кадров данных. При этом компьютер, отправляющий защищенные сообщения, может отправлять кадры по нескольким адресам, если в системе передачи данных присутствует несколько компьютеров, принимающих защищенные сообщения. Кроме того, компьютер, отправляющий защищенные сообщения, может отправлять широковещательные кадры, если количество компьютеров, принимающих защищенные сообщения в системе передачи данных неизвестно или неизвестны их адреса. В этом случае каждый из компьютеров, принимающих защищенные сообщения, должен независимо выполнять действия способа, относящиеся к компьютеру, принимающему защищенные сообщения.
Для реализации всех вычислений и операций, обеспечивающих возможность
Figure 00000155
считывать из таймера текущее значение времени,
Figure 00000156
зашифровывать кадры,
Figure 00000157
расшифровывать кадры,
Figure 00000158
вычислять имитовставку для кадров,
Figure 00000159
проверять имитовставку для кадров,
в компьютере, принимающем защищенные сообщения, необходимо также предварительно сформировать программу (комплекс программ). Такую программу может сформировать специалист по программированию (программист) на любом известном универсальном языке программирования (например, языке С) на основе приведенных выше соотношений. Затем эта программа устанавливается на компьютере.
Также для обеспечения работы по передаче данных в компьютере, принимающем защищенные сообщения, при инициализации сбрасывают флаг S. Флаг представляет собой, в самом простом случае, значение единицы (если флаг установлен) или нуля (если флаг сброшен).
Затем запускают программы в компьютерах, отправляющих и принимающих защищенные сообщения, и начинают выполнение действий способа, заключающегося в том, что
Figure 00000160
если в компьютере, отправляющем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия
Figure 00000161
выбирают начальное значение синхропосылки М;
Figure 00000162
присваивают текущему значению синхропосылки служебного кадра IVsf значение М;
Figure 00000163
присваивают текущему значению синхропосылки кадра данных IVdf значение М;
Figure 00000164
обнуляют значение С счетчика объема отправленных данных;
Figure 00000165
задают значение промежутка времени Tm между служебными кадрами;
Figure 00000166
считывают из таймера текущее значение времени Тс, при этом таймер компьютера отправляющего защищенные сообщения может быть не синхронизирован с таймером компьютера принимающего защищенные сообщения, поскольку таймеры используются не для определения времени, а для определения промежутков времени;
Figure 00000167
вычисляют время отправки предыдущего служебного кадра
Ts=Тс - Tm;
Figure 00000168
выбирают максимальный объем данных Cmax между посылками служебных кадров;
Figure 00000169
вычисляют максимально возможное количество Z0 кадров данных между служебными кадрами
Z0=max(s*Tm/L, Cmax/L),
где s - максимальная скорость передачи данных через сеть;
Figure 00000170
вычисляют
Z=Z0+1;
Figure 00000171
считывают текущее значение времени Тс из таймера компьютера, отправляющего защищенные сообщения;
Figure 00000172
если
Тс≥Ts+Tm или С≥Cmax,
то отправляют служебный кадр, выполняя следующие действия:
Figure 00000173
увеличивают значение IVsf на величину Z, при этом увеличение IVsf на Z гарантирует, что ни один из предыдущих кадров данных не использовал синхропосылку, равную увеличенному значению IVsf, поскольку Z выбрано большим, чем максимально возможное количество кадров между двумя служебными кадрами;
Figure 00000174
присваивают IVdf значение IVsf, при этом данное действие обеспечивает то, что синхропосылки кадров данных, следующих за данным служебным кадром, будут больше, чем IVsf;
Figure 00000175
формируют служебный кадр, содержащий значение IVsf;
Figure 00000176
вычисляют имитовставку для служебного кадра, используя IVsf в качестве синхропосылки;
Figure 00000177
добавляют имитовставку к служебному кадру, при этом предпочтительно добавлять имитовставку к концу служебного кадра;
Figure 00000178
передают по назначению служебный кадр через сеть передачи данных;
Figure 00000179
присваивают Ts=Тс;
Figure 00000180
обнуляют С;
Figure 00000181
иначе, если присутствует кадр данных требующий отправки, то обрабатывают этот кадр, выполняя следующие действия
Figure 00000182
увеличивают значение IVdf на единицу, что обеспечивает уникальность синхропосылок и их предсказуемость;
Figure 00000183
зашифровывают кадр данных с использованием IVdf в качестве синхропосылки;
Figure 00000184
вычисляют имитовставку с использованием IVdf в качестве синхропосылки;
Figure 00000185
добавляют имитовставку к кадру данных, при этом предпочтительно добавлять имитовставку к концу кадра данных;
Figure 00000186
увеличивают значение С на объем данных в кадре данных;
Figure 00000187
передают по назначению зашифрованный кадр данных через сеть передачи данных.
В компьютере, принимающем защищенные сообщения, независимо от компьютера, отправляющего защищенные сообщения, производят следующие действия:
Figure 00000188
если в компьютере, принимающем защищенные сообщения, инициализация переменных не проведена, то сбрасывают флаг S, при этом сброшенный флаг S гарантирует, что кадры данных будут отбрасываться до тех пор, пока компьютер, принимающий защищенные сообщения, не будет полностью готов к приему кадров;
Figure 00000189
принимают очередной кадр от компьютера, отправляющего защищенные сообщения;
Figure 00000190
определяют тип кадра;
Figure 00000191
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром, то
Figure 00000192
извлекают из служебного кадра значение синхропосылки IVe;
Figure 00000193
проверяют имитовставку служебного кадра, используя IVe;
Figure 00000194
если имитовставка служебного кадра совпала, то
Figure 00000195
присваивают текущему значению синхропосылки служебных кадров IVsr значение IVe;
Figure 00000196
присваивают текущему значению синхропосылки кадров данных IVdr значение IVsr;
Figure 00000197
устанавливают флаг S;
Figure 00000198
удаляют служебный кадр;
Figure 00000199
иначе, если кадр на входе компьютера, принимающего защищенные сообщения, не является служебным кадром и S=0, то удаляют кадр;
Figure 00000200
иначе проверяют имитовставку кадра, используя в качестве синхропосылки значение IVx=IVdr+1 и выполняя следующие действия:
Figure 00000201
если имитовставка не совпала, то удаляют кадр;
Figure 00000202
иначе, если имитовставка совпала, то
Figure 00000203
присваивают IVdr значение IVx;
Figure 00000204
расшифровывают кадр данных с использованием IVdr в качестве синхропосылки;
Figure 00000205
передают по назначению расшифрованный кадр из компьютера, принимающего защищенные сообщения.
Способ во втором варианте предпочтительно реализовать на специализированном компьютере, содержащего блок вычисления функции GHASH (Morris Dworkin Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC, 2007,
URL: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf), таймер, блок шифрования, выполненный в виде многоступенчатого конвейера, регистр Q типа FIFO.
Блок шифрования реализован в виде многоступенчатого конвейера с возможностью подавать в него блоки данных для зашифровывания на каждый такт. Данное устройство блока шифрования позволяет зашифровывать в данном блоке шифрования одновременно Z блоков данных, где Z - количество ступеней в конвейере блока шифрования. Блок шифрования реализован таким образом, что бы в нем одновременно могли обрабатываться блоки данных различных кадров. Для этого можно, например, снабжать блоки данных метаинформацией о принадлежности данного блока данных к конкретному кадру данных или реализовать внешний по отношению к блоку шифрования блок, ведущий учет блоков данных, переданных в блок шифрования, и определяющий на основе этой информации принадлежность блоков данных, выходящих из блока шифрования.
Предложенный способ во втором варианте не использует для проверки имитовставки принятого кадра значений, полученных путем зашифрования данных, извлеченных из проверяемого кадра. Вместо этого используются заранее вычисленные и хранящиеся в регистре Q значения. Это снижает требования к времени зашифрования блоков данных в блоке шифрования и позволяет использовать блок шифрования, выполненный в виде многоступенчатого конвейера, что, в свою очередь, позволяет повысить производительность блока шифрования за счет конвейеризации и одновременного зашифрования нескольких блоков данных на различных ступенях конвейера.
Для реализации всех вычислений и операций, обеспечивающих возможность
Figure 00000206
считывать из таймера текущее значение времени,
Figure 00000207
зашифровывать кадры с использованием режима GCM,
Figure 00000208
вычислять имитовставку для кадров с использованием режима GCM;
Figure 00000209
зашифровывать кадры
Figure 00000210
расшифровывать кадры,
Figure 00000211
вычислять хэш-функцию GHASH выбирают компьютер, содержащий
Figure 00000212
таймер для формирования значений текущего времени,
Figure 00000213
блок вычисления хэш-функции GHASH
Figure 00000214
блок шифрования, выполненный в виде многоступенчатого конвейера,
Figure 00000215
регистр Q типа FIFO;
в компьютере, принимающем защищенные сообщения, необходимо также предварительно сформировать программу (комплекс программ). Такую программу может сформировать специалист по программированию (программист) на любом известном универсальном языке программирования (например, языке С) на основе приведенных выше соотношений. Затем эта программа устанавливается на специализированном компьютере.
Затем запускают программы в компьютерах, отправляющих и принимающих защищенные сообщения, и начинают выполнение действий способа, заключающегося в том, что
Figure 00000216
если в компьютере, отправляющем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия:
Figure 00000217
вычисляют А=U+1, где U - максимально возможное количество кадров минимально возможного размера, одновременно находящихся на обработке в блоке шифрования;
Figure 00000218
выбирают начальное значение синхропосылки М;
Figure 00000219
присваивают текущему значению синхропосылки служебного кадра IVsf значение М;
Figure 00000220
присваивают текущему значению синхропосылки кадра данных IVdf значение М;
Figure 00000221
обнуляют значение С счетчика объема отправленных данных;
Figure 00000222
задают значение промежутка времени Tm между служебными кадрами;
Figure 00000223
считывают из таймера текущее значение времени Тс;
Figure 00000224
вычисляют время отправки предыдущего служебного кадра
Ts=Тс - Tm;
Figure 00000225
выбирают максимальный объем данных Cmax между посылками служебных кадров;
Figure 00000226
вычисляют максимально возможное количество Z0 кадров данных между служебными кадрами
Z0=max(s*Tm/L, Cmax/L),
где s - максимальная скорость передачи данных через сеть;
Figure 00000227
вычисляют
Z=Z0+1;
Figure 00000228
считывают текущее значение времени Тс из таймера компьютера, отправляющего защищенные сообщения;
Figure 00000229
если
Тс≥Ts+Tm или С≥Cmax,
то отправляют служебный кадр, выполняя следующие действия:
Figure 00000230
увеличивают значение IVsf на величину Z;
Figure 00000231
присваивают IVdf значение IVsf;
Figure 00000232
формируют служебный кадр, содержащий значение IVsf;
Figure 00000233
вычисляют имитовставку для служебного кадра, используя IVsf в качестве синхропосылки;
Figure 00000234
добавляют имитовставку к служебному кадру;
Figure 00000235
передают по назначению служебный кадр через сеть передачи данных;
Figure 00000236
присваивают Ts=Тс;
Figure 00000237
обнуляют С;
Figure 00000238
иначе, если присутствует кадр данных, требующий отправки, то обрабатывают этот кадр, выполняя следующие действия:
Figure 00000239
увеличивают значение IVdf на единицу;
Figure 00000240
зашифровывают кадр данных с использованием IVdf в качестве синхропосылки;
Figure 00000241
вычисляют имитовставку с использованием IVdf в качестве синхропосылки;
Figure 00000242
добавляют имитовставку к кадру данных;
Figure 00000243
увеличивают значение С на объем данных в кадре данных;
Figure 00000244
передают по назначению зашифрованный кадр данных через сеть передачи данных;
В компьютере, принимающем защищенные сообщения, независимо от компьютера, отправляющего защищенные сообщения, производят следующие действия:
Figure 00000245
если в компьютере, принимающем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия:
Figure 00000246
считывают из таймера текущее значение времени Тс;
Figure 00000247
присваивают значению времени приема предыдущего служебного кадра Tr значение Тс;
Figure 00000248
выбирают значение промежутка времени Tw;
Figure 00000249
сбрасывают флаг G;
Figure 00000250
сбрасывают флаг Р;
Figure 00000251
считывают из таймера текущее значение времени Тс;
Figure 00000252
присваивают Tr=Тс;
Figure 00000253
если Tr≥Tw и G=1, то сбрасывают флаг G;
Figure 00000254
иначе, если на входе компьютера, принимающего защищенные сообщения, имеется кадр данных, то
Figure 00000255
определяют тип кадра;
Figure 00000256
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром и G=0, то
Figure 00000257
извлекают значение синхропосылки IVe из служебного кадра;
Figure 00000258
присваивают IVsr значение IVe;
Figure 00000259
вычисляют IVsn=IVsr+Z;
Figure 00000260
устанавливают флаг G;
Figure 00000261
сбрасывают флаг Р;
Figure 00000262
вычисляют
Es=E(IVsn || 032),
где Е () - функция зашифрования,
|| - операция конкатенации, причем нижний индекс означает разрядность двоичной записи значения.
При этом значение Es не используется для обработки данного служебного кадра, а будет использовано при обработке следующего служебного кадра, при этом блок шифрования успеет зашифровать значение IVsn || 032, поскольку компьютер, отправляющий защищенные сообщения, отправляет служебные кадры только по истечению времени Tm с момента отправки предыдущего служебного кадра или после отправки Cmax байт данных.
Затем
Figure 00000263
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром и G=1, то
Figure 00000264
вычисляют значение хэш-функции GHASH для служебного кадра, при этом хэш-функция может вычисляться на отдельном процессоре или специализированном блоке вычисления функции GHASH;
Figure 00000265
вычисляют
R=GHASH XOR Ir,
где Ir - значение имитовставки, принятого вместе с кадром,
XOR - операция побитового исключающего "или";
Figure 00000266
если R=Es, то данный кадр прошел проверку имитовставки и данные из этого кадра используются следующим образом:
Figure 00000267
присваивают IVsr значение IVsn;
Figure 00000268
присваивают IVdr значение IVsr;
Figure 00000269
вычисляют значение синхропосылки для следующего ожидаемого служебного кадра
IVsn=IVsr+Z;
Figure 00000270
вычисляют
Es=Е (IVsn || 032)
(при этом значение Es не используется для обработки данного служебного кадра, что позволяет обработать данный кадр и начать обработку следующих кадров данных до того, как блок шифрования закончит вычисление значения Es; далее Es будет использовано при обработке следующего служебного кадра, при этом блок шифрования успеет зашифровать значение IVsn || 032 к тому времени);
Figure 00000271
если флаг Р сброшен, то
Figure 00000272
вычисляют
Qi=Е (IVdr+i || 032),
где i=1…А;
Figure 00000273
записывают Qi в регистр Q типа FIFO по мере вычисления (при этом значения из регистра Q не используются для обработки данного служебного кадра, что позволяет обработать данный кадр и начать обработку следующих кадров данных до того, как блок шифрования закончит вычисление значения Qi; значения, хранящиеся в регистре Q, являются «запасом» значений, которые понадобятся для проверки имитовставок следующих А кадров данных);
Figure 00000274
устанавливают флаг Р;
Figure 00000275
удаляют служебный кадр;
Figure 00000276
иначе если кадр на входе компьютера, принимающего защищенные сообщения, не является служебным кадром и при этом G=0 или Р=0, то удаляют кадр (данное действие гарантирует, что кадры данных не будут приняты, если компьютер, принимающий защищенные сообщения, не готов проверить аутентичность кадров и правильно их расшифровать);
Figure 00000277
иначе
Figure 00000278
вычисляют значение хэш-функции GHASH для кадра;
Figure 00000279
вычисляют R=GHASH XOR Ir;
Figure 00000280
если значение R не равно значению, содержащемуся в начале регистра Q, то удаляют кадр;
Figure 00000281
иначе
Figure 00000282
удаляют значение из начала регистра Q;
Figure 00000283
увеличивают значение IVdr на 1;
Figure 00000284
вычисляют
B=E(IVdr+A || 032);
Figure 00000285
записывают В в конец регистра Q (при этом значения В не используются для обработки данного кадра данных, что позволяет обработать данный кадр и начать обработку следующих кадров данных до того, как блок шифрования закончит вычисление значения В; значения В являются значением, которое понадобятся в будущем, для проверки имитовставки кадра данных, следующего через А-1 кадров данных);
Figure 00000286
расшифровывают кадр, используя значение IVdr в качестве синхропосылки;
Figure 00000287
передают по назначению расшифрованный кадр из компьютера, принимающего защищенные сообщения.
Реализовать предложенный способ с помощью устройства в виде специализированного компьютера, выполняющего данный способ, или в виде интегральной схемы, выполняющей данный способ в составе специализированного компьютера, или в виде блока, выполненного на базе программируемой логической интегральной схемы (ПЛИС), может специалист в области вычислительной техники и/или проектирования цифровых интегральных схем.
Необходимо отметить, что возможны и другие варианты реализации предложенного способа, отличающиеся от описанной выше и зависящие от экономических соображений, доступности электронных компонентов, требований к исполнению устройства с точки зрения устойчивости к внешним воздействиям и предпочтений разработчиков.

Claims (167)

1. Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных, содержащей
Figure 00000288
по крайней мере, один компьютер, отправляющий защищенные сообщения в виде последовательности кадров цифровых данных через сеть передачи данных, содержащий таймер для формирования значений текущего времени и выполненный с возможностью
Figure 00000289
считывать из таймера текущее значение времени,
Figure 00000289
зашифровывать кадры,
Figure 00000289
вычислять имитовставку для кадров;
Figure 00000288
по крайней мере, один компьютер, принимающий защищенные сообщения через сеть передачи данных, содержащий таймер для формирования значений текущего времени и выполненный с возможностью
Figure 00000289
считывать из таймера текущее значение времени,
Figure 00000289
расшифровывать кадры,
Figure 00000289
проверять имитовставку для кадров;
при этом размер кадров данных не может быть меньше определенного ненулевого значения L;
способ, заключающийся в том, что
Figure 00000288
если в компьютере, отправляющем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия:
Figure 00000289
выбирают начальное значение синхропосылки М;
Figure 00000289
присваивают текущему значению синхропосылки служебного кадра IVsf значение М;
Figure 00000289
присваивают текущему значению синхропосылки кадра данных IVdf значение М;
Figure 00000289
обнуляют значение С счетчика объема отправленных данных;
Figure 00000289
задают значение промежутка времени Tm между служебными кадрами;
Figure 00000289
считывают из таймера текущее значение времени Тс;
Figure 00000289
вычисляют время отправки предыдущего служебного кадра Ts=Tc-Tm;
Figure 00000289
выбирают максимальный объем данных Cmax между посылками служебных кадров;
Figure 00000289
вычисляют максимально возможное количество Z0 кадров данных между служебными кадрами
Z0=max(s*Tm/L, Cmax/L),
где s - максимальная скорость передачи данных через сеть;
Figure 00000289
вычисляют
Z=Z0+1;
Figure 00000288
считывают текущее значение времени Tc из таймера компьютера, отправляющего защищенные сообщения;
Figure 00000288
если
Тс≥Ts+Tm или С≥Cmax,
то отправляют служебный кадр, выполняя следующие действия:
Figure 00000289
увеличивают значение IVsf на величину Z;
Figure 00000289
присваивают IVdf значение IVsf;
Figure 00000289
формируют служебный кадр, содержащий значение IVsf;
Figure 00000289
вычисляют имитовставку для служебного кадра, используя IVsf в качестве синхропосылки;
Figure 00000289
добавляют имитовставку к служебному кадру;
Figure 00000289
передают по назначению служебный кадр через сеть передачи данных;
Figure 00000289
присваивают Ts=Тс;
Figure 00000289
обнуляют С;
Figure 00000288
иначе, если присутствует кадр данных требующий отправки, то обрабатывают этот кадр, выполняя следующие действия:
Figure 00000289
увеличивают значение IVdf на единицу;
Figure 00000289
зашифровывают кадр данных с использованием IVdf в качестве синхропосылки;
Figure 00000289
вычисляют имитовставку с использованием IVdf в качестве синхропосылки;
Figure 00000289
добавляют имитовставку к кадру данных;
Figure 00000289
увеличивают значение С на объем данных в кадре данных;
Figure 00000289
передают по назначению зашифрованный кадр данных через сеть передачи данных;
Figure 00000288
если в компьютере, принимающем защищенные сообщения, инициализация переменных не проведена, то сбрасывают флаг S;
Figure 00000288
принимают очередной кадр от компьютера, отправляющего защищенные сообщения;
Figure 00000288
определяют тип кадра;
Figure 00000288
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром, то
Figure 00000289
извлекают из служебного кадра значение синхропосылки IVe;
Figure 00000289
проверяют имитовставку служебного кадра, используя IVe;
Figure 00000289
если имитовставка служебного кадра совпала, то
Figure 00000290
присваивают текущему значению синхропосылки служебных кадров IVsr значение IVe;
Figure 00000290
присваивают текущему значению синхропосылки кадров данных IVdr значение IVsr;
Figure 00000290
устанавливают флаг S;
Figure 00000289
удаляют служебный кадр;
Figure 00000288
иначе, если кадр на входе компьютера, принимающего защищенные сообщения, не является служебным кадром и S=0, то удаляют кадр;
Figure 00000288
иначе проверяют имитовставку кадра, используя в качестве синхропосылки значение IVx=IVdr+1 и выполняя следующие действия:
Figure 00000289
если имитовставка не совпала, то удаляют кадр;
Figure 00000289
иначе, если имитовставка совпала, то
Figure 00000290
присваивают IVdr значение IVx;
Figure 00000290
расшифровывают кадр данных с использованием IVdr в качестве синхропосылки;
Figure 00000290
передают по назначению расшифрованный кадр из компьютера, принимающего защищенные сообщения.
2. Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных, содержащей
Figure 00000288
по крайней мере, один компьютер, отправляющий защищенные сообщения в виде последовательности кадров цифровых данных через сеть передачи данных, содержащий таймер для формирования значений текущего времени и выполненный с возможностью
Figure 00000289
считывать из таймера текущее значение времени,
Figure 00000289
зашифровывать кадры с использованием режима GCM,
Figure 00000289
вычислять имитовставку для кадров с использованием режима GCM;
Figure 00000288
по крайней мере, один компьютер, принимающий защищенные сообщения через сеть передачи данных, содержащий
Figure 00000289
таймер для формирования значений текущего времени,
Figure 00000289
блок вычисления хэш-функции GHASH,
Figure 00000289
блок шифрования, выполненный в виде многоступенчатого конвейера,
Figure 00000289
регистр Q типа FIFO
и выполненный с возможностью
Figure 00000289
считывать из таймера текущее значение времени,
Figure 00000289
расшифровывать кадры;
при этом размер кадров данных не может быть меньше определенного ненулевого значения L;
способ, заключающийся в том, что
Figure 00000288
если в компьютере, отправляющем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия:
Figure 00000289
вычисляют A=U+1, где U - максимально возможное количество кадров минимально возможного размера, одновременно находящихся на обработке в блоке шифрования;
Figure 00000289
выбирают начальное значение синхропосылки М;
Figure 00000289
присваивают текущему значению синхропосылки служебного кадра IVsf значение М;
Figure 00000289
присваивают текущему значению синхропосылки кадра данных IVdf значение М;
Figure 00000289
обнуляют значение С счетчика объема отправленных данных;
Figure 00000289
задают значение промежутка времени Tm между служебными кадрами;
Figure 00000289
считывают из таймера текущее значение времени Тс;
Figure 00000289
вычисляют время отправки предыдущего служебного кадра Ts=Tc-Tm;
Figure 00000289
выбирают максимальный объем данных Cmax между посылками служебных кадров;
Figure 00000289
вычисляют максимально возможное количество Z0 кадров данных между служебными кадрами
Z0=max(s*Tm/L, Cmax/L),
где s - максимальная скорость передачи данных через сеть;
Figure 00000289
вычисляют
Z=Z0+1;
Figure 00000288
считывают текущее значение времени Тс из таймера компьютера, отправляющего защищенные сообщения;
Figure 00000288
если
Тс≥Ts+Tm или С≥Cmax,
то отправляют служебный кадр, выполняя следующие действия:
Figure 00000289
увеличивают значение IVsf на величину Z;
Figure 00000289
присваивают IVdf значение IVsf;
Figure 00000289
формируют служебный кадр, содержащий значение IVsf;
Figure 00000289
вычисляют имитовставку для служебного кадра, используя IVsf в качестве синхропосылки;
Figure 00000289
добавляют имитовставку к служебному кадру;
Figure 00000289
передают по назначению служебный кадр через сеть передачи данных;
Figure 00000289
присваивают Ts=Тс;
Figure 00000289
обнуляют С;
Figure 00000288
иначе, если присутствует кадр данных, требующий отправки, то обрабатывают этот кадр, выполняя следующие действия:
Figure 00000289
увеличивают значение IVdf на единицу;
Figure 00000289
зашифровывают кадр данных с использованием IVdf в качестве синхропосылки;
Figure 00000289
вычисляют имитовставку с использованием IVdf в качестве синхропосылки;
Figure 00000289
добавляют имитовставку к кадру данных;
Figure 00000289
увеличивают значение С на объем данных в кадре данных;
Figure 00000289
передают по назначению зашифрованный кадр данных через сеть передачи данных;
Figure 00000288
если в компьютере, принимающем защищенные сообщения, инициализация переменных не проведена, то инициализируют переменные, выполняя следующие действия:
Figure 00000289
считывают из таймера текущее значение времени Тс;
Figure 00000289
присваивают значению времени приема предыдущего служебного кадра Tr значение Тс;
Figure 00000289
выбирают значение промежутка времени Tw;
Figure 00000289
сбрасывают флаг G;
Figure 00000289
сбрасывают флаг Р;
Figure 00000288
считывают из таймера текущее значение времени Тс;
Figure 00000288
присваивают Tr=Тс;
Figure 00000288
если Tr≥Tw и G=1, то сбрасывают флаг G;
Figure 00000288
иначе, если на входе компьютера, принимающего защищенные сообщения, имеется кадр данных, то
Figure 00000289
определяют тип кадра;
Figure 00000289
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром и G=0, то
Figure 00000290
извлекают значение синхропосылки IVe из служебного кадра;
Figure 00000290
присваивают IVsr значение IVe;
Figure 00000290
вычисляют
IVsn=IVsr+Z;
Figure 00000290
устанавливают флаг G;
Figure 00000290
сбрасывают флаг Р;
Figure 00000290
вычисляют
Figure 00000291
,
где Е () - функция зашифрования,
Figure 00000292
- операция конкатенации,
причем нижний индекс означает разрядность двоичной записи значения;
Figure 00000289
если кадр на входе компьютера, принимающего защищенные сообщения, является служебным кадром и G=1, то
Figure 00000290
вычисляют значение хэш-функции GHASH для служебного кадра;
Figure 00000290
вычисляют
R=GHASH XOR Ir,
где Ir - значение имитовставки, принятое вместе с кадром,
XOR - операция побитового исключающего "или";
Figure 00000290
если R=Es, то
Figure 00000293
присваивают IVsr значение IVsn;
Figure 00000293
присваивают IVdr значение IVsr;
Figure 00000293
вычисляют
IVsn=IVsr+Z;
Figure 00000293
вычисляют
Figure 00000294
;
Figure 00000293
если флаг Р сброшен, то
Figure 00000295
вычисляют
Figure 00000296
,
где i=1…А;
Figure 00000295
записывают Qi в регистр Q типа FIFO по мере вычисления;
Figure 00000295
устанавливают флаг P;
Figure 00000290
удаляют служебный кадр;
Figure 00000289
иначе, если кадр на входе компьютера, принимающего защищенные сообщения, не является служебным кадром и при этом G=0 или Р=0, то удаляют кадр;
Figure 00000289
иначе
Figure 00000290
вычисляют значение хэш-функции GHASH для кадра;
Figure 00000290
вычисляют R=GHASH XOR Ir;
Figure 00000290
если значение R не равно значению, содержащемуся в начале регистра Q, то удаляют кадр;
Figure 00000290
иначе
Figure 00000293
удаляют значение из начала регистра Q;
Figure 00000293
увеличивают значение IVdr на 1;
Figure 00000293
вычисляют
Figure 00000297
;
Figure 00000293
записывают В в конец регистра Q;
Figure 00000293
расшифровывают кадр, используя значение IVdr в качестве синхропосылки;
Figure 00000293
передают по назначению расшифрованный кадр из компьютера, принимающего защищенные сообщения.
RU2018106405A 2018-02-21 2018-02-21 Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты) RU2686005C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2018106405A RU2686005C1 (ru) 2018-02-21 2018-02-21 Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018106405A RU2686005C1 (ru) 2018-02-21 2018-02-21 Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты)

Publications (1)

Publication Number Publication Date
RU2686005C1 true RU2686005C1 (ru) 2019-04-23

Family

ID=66314707

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018106405A RU2686005C1 (ru) 2018-02-21 2018-02-21 Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты)

Country Status (1)

Country Link
RU (1) RU2686005C1 (ru)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2384000C2 (ru) * 2005-01-11 2010-03-10 Самсунг Электроникс Ко., Лтд. Устройство и способ для шифрования/дешифрования сигнала в системе связи
RU2433547C1 (ru) * 2010-03-24 2011-11-10 Федеральное государственное унитарное предприятие "Научно-технический центр "Атлас" (ФГУП "НТЦ "Атлас") Способ, устройство и система абонентского шифрования речевой информации и ее передачи по сетям связи общего пользования
US8983069B2 (en) * 2013-03-14 2015-03-17 Robert Bosch Gmbh System and method for counter mode encrypted communication with reduced bandwidth
RU2584504C2 (ru) * 2011-09-19 2016-05-20 Телеспацио С.П.А. Управление синхронизированными симметричными ключами для защиты данных, которыми обмениваются узлы связи

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2384000C2 (ru) * 2005-01-11 2010-03-10 Самсунг Электроникс Ко., Лтд. Устройство и способ для шифрования/дешифрования сигнала в системе связи
RU2433547C1 (ru) * 2010-03-24 2011-11-10 Федеральное государственное унитарное предприятие "Научно-технический центр "Атлас" (ФГУП "НТЦ "Атлас") Способ, устройство и система абонентского шифрования речевой информации и ее передачи по сетям связи общего пользования
RU2584504C2 (ru) * 2011-09-19 2016-05-20 Телеспацио С.П.А. Управление синхронизированными симметричными ключами для защиты данных, которыми обмениваются узлы связи
US8983069B2 (en) * 2013-03-14 2015-03-17 Robert Bosch Gmbh System and method for counter mode encrypted communication with reduced bandwidth

Similar Documents

Publication Publication Date Title
CN107196763B (zh) Sm2算法协同签名及解密方法、装置与系统
US9596075B2 (en) Transparent serial encryption
US8989385B2 (en) Data encryption method, data verification method and electronic apparatus
US5345507A (en) Secure message authentication for binary additive stream cipher systems
CN108768927B (zh) 保密通信方法和装置
KR20090133109A (ko) 데이터 블록의 암호화를 위한 방법 및 시스템
CN112738051B (zh) 数据信息加密方法、系统及计算机可读存储介质
KR101608815B1 (ko) 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법
KR20190024729A (ko) 데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치
US20170264596A1 (en) Systems and methods for securing electronic data with embedded security engines
TW201628379A (zh) 封包傳送裝置、封包接收裝置、封包傳送程式產品以及封包接收程式產品
CN117640256B (zh) 一种无线网卡的数据加密方法、推荐装置和存储介质
US7260222B2 (en) Shared data refining device and shared data refining method
US11012230B2 (en) Communication apparatus and cryptographic processing system
US10726161B2 (en) Information processing device and malicious message detection method
US11720693B2 (en) System and method for securely transferring data
CN108199836B (zh) 一种密钥与设备绑定、解绑定的方法及装置
CN101808100B (zh) 一种解决信息安全设备远程升级重放性的方法和系统
US10200356B2 (en) Information processing system, information processing apparatus, information processing method, and recording medium
CN112600838A (zh) 一种can总线数据的加密方法、装置、存储介质及电子设备
RU2686005C1 (ru) Способ обеспечения передачи зашифрованных данных в цифровой системе передачи данных (варианты)
RU2481715C1 (ru) Способ блочного шифрования сообщений и передачи шифрованных данных с закрытым ключом
CN112350920A (zh) 基于区块链的即时通讯系统
RU2718217C1 (ru) Способ обеспечения передачи зашифрованных данных со сменой ключей шифрования и имитозащиты в цифровой системе передачи данных
US11909893B2 (en) Composite encryption across cryptographic algorithms