Способ обеспечения передачи зашифрованных данных со сменой ключей шифрования и имитозащиты в цифровой системе передачи данных
METHOD OF PROVIDING TRANSMISSION OF ENCRYPTED DATA WITH CHANGE OF ENCRYPTION KEYS AND IMITATION PROTECTION IN DIGITAL DATA TRANSMISSION SYSTEM

Область техники, к которой относится изобретение
Предлагаемое изобретение относится к вычислительной технике и, в частности, к способам обеспечения правильности расшифрования данных, передаваемых через цифровую систему передачи данных.
Уровень техники
Криптографическая защита сообщений находит широкое применение в системах связи. Она используется для обеспечения конфиденциальности сообщений, идентификации отправителя сообщений, обеспечения безошибочности передачи данных. В области коммерции криптографическая защита данных используется для предотвращения мошенничества и верификации транзакций.
Для защиты конфиденциальности данных используют шифрование. Шифрование скрывает содержимое сообщений от доступа третьих лиц, позволяя прочесть сообщение только тем, у кого есть соответствующий ключ шифрования.
Для защиты целостности данных используют имитозащиту сообщений с помощью протоколов аутентификации (установления подлинности сообщения). Данные протоколы позволяют получателю проверить, что данное сообщение действительно отправлено именно тем отправителем, от которого ожидается получение сообщения, и что данное сообщение не было искажено третьими лицами во время передачи.
Имитозащита представляет собой процесс формирования специального набора символов, называемого имитовставкой, который вычисляется компьютером, отправляющий защищенные сообщения, с использованием пересылаемого сообщения и секретного ключа имитозащиты. Имитовставка пересылается вместе с защищаемым сообщением.
Компьютер, принимающий защищенные сообщения, проверяет имитовставку сообщения с помощью своей копии ключа имитозащиты. Если сообщение было сформировано с помощью другого ключа имитозащиты или если оно было изменено во время передачи, то это будет обнаружено во время проверки имитовставки.
Использование неверного ключа для вычисления или проверки имитовставки приводит к тому, что сообщение идентифицируется как неподлинное.
Шифрование и имитозащита могут проводиться как раздельные операции с использованием различных ключей для шифрования и имитозащиты, как это описано в ГОСТ Р 34.13-2015. Также существуют так называемые совмещенные режимы шифрования с аутентификацией (AEAD режимы), в которых один и тот же ключ используется и для обеспечения конфиденциальности и для обеспечения имитозащиты данных. Примером такого совмещенного режима шифрования является режим AES-GCM.
Для обеспечения работы алгоритмов шифрования и имитозащиты требуется, чтобы и компьютер, отправляющий защищенные сообщения, и компьютер, принимающий защищенные сообщения, использовали соответствующие пары ключей. Использование неверных ключей приводит к тому, что сообщение расшифровывается неверно, а проверка имитовставки показывает, что сообщение является неверным.
Для обеспечения более высокого уровня безопасности передачи данных следует менять ключи шифрования и имитозащиты через определенное время или после отправки определенного объема данных.
Списки ключей для шифрования и имитозащиты могут быть как непосредственно загружены на компьютеры, отправляющие защищенные сообщения, и компьютеры, принимающие защищенные сообщения, так и получены непосредственно на компьютерах, отправляющие защищенные сообщения, и компьютерах, принимающие защищенные сообщения, с помощью так называемого ключа генерации ключей. Ключ генерации ключей предварительно загружается на компьютеры, отправляющие защищенные сообщения, и компьютеры, принимающие защищенные сообщения, либо формируется из еще одного ключа генерации ключей, либо формируется с помощью одного из известных протоколов формирования общего секрета, например протокола Диффи-Хеллмана.
Необходимость смены ключей приводит к тому, что у компьютера, отправляющий защищенные сообщения, и компьютера, принимающего защищенные сообщения, есть несколько ключей, и получателю нужно знать, какой из ключей следует использовать для обработки каждого сообщения.
В условиях, когда соображения безопасности требуют, чтобы ключи менялись по истечении определенного времени или после обработки определенного объема информации на данном ключе (что наступит раньше), и при этом существует вероятность потери сообщений в канале передачи данных, компьютер, принимающий защищенные сообщения, требует наличия метода определения ключа, на котором каждое сообщение было обработано компьютером, отправляющим защищенные сообщения.
Известны способы смены ключей шифрования, в которых ключам шифрования и имитозащиты соответствуют идентификаторы ключей и данные идентификаторы передаются вместе с сообщениями. Данные идентификаторы позволяют компьютеру, принимающему защищенные сообщения, определить, какой ключ использовать для обработки данного сообщения. Однако, передача данных идентификаторов ключей создает дополнительную нагрузку на каналы передачи данных и снижают количество полезной информации, которую можно передать по данным каналам связи.
Известен способ и устройство для передачи параметров шифрования, в которых идентификаторы ключей передаются вместо наименее значащих бит кадра вокодера голосового суперкадра (патент РФ №2469485, приоритет от 05.10.2009 г.). Очевидно, что замена бит кадра вокодера голосового суперкадра на идентификатор ключа снижает качество декодированного звука, причем искажения звука будут тем больше, чем длиннее идентификатор ключа.
Также известен способ защищенной передачи сообщения (патент РФ №2333608, приоритет от 08.10.2002 г.) в котором
• определяют краткосрочный ключ для передаваемого сообщения, причем краткосрочный ключ имеет идентификатор краткосрочного ключа, содержащий значение индекса параметров защиты;
• определяют ключ доступа для сообщения, причем ключ доступа имеет идентификатор ключа доступа, при этом краткосрочный ключ вычисляют как функцию идентификатора краткосрочного ключа и ключа доступа;
• шифруют сообщение с помощью краткосрочного ключа;
• формируют заголовок Интернет-протокола (IP), содержащий идентификатор краткосрочного ключа; и
• передают зашифрованное сообщение вместе с заголовком Интернет-протокола.
Затем, после передачи,
• принимают пакет протокола защиты трафика на уровне Интернет-протокола (IPSec), включающий в себя зашифрованный контент и индекс параметров защиты, относящийся к краткосрочному ключу,
• восстанавливают ключ доступа с использованием индекса параметров защиты,
• вычисляют краткосрочный ключ с использованием индекса параметров защиты и ключа доступа и
• дешифруют контент с использованием краткосрочного ключа.
В этом способе пропускная способность канала передачи данных также расходуется на передачу идентификаторов ключей. При частой смене ключей, которая может производиться из соображений безопасности, расходы на передачу идентификаторов ключей могут достигать существенных значений.
Известный способ выбран в качестве прототипа.
Недостатком известного способа является необходимость передачи идентификатора ключа для определения ключа, необходимого для расшифрования кадров данных, что увеличивает нагрузку на канал передачи данных и снижает количество полезных данных, которое можно передать по этому каналу.
Раскрытие изобретения
Техническим результатом является снижение объема служебных данных, которые требуется передавать для обеспечения расшифрования данных и проверки подлинности сообщений.
Для этого предлагается способ обеспечения передачи зашифрованных данных со сменой ключей шифрования и имитозащиты в цифровой системе передачи данных, содержащей
• по крайней мере, один компьютер, отправляющий защищенные сообщения в виде последовательности кадров цифровых данных через сеть передачи данных и выполненный с возможностью
формировать кадры данных, содержащие поле данных, служебное поле В размером 1 бит и поле имитовставки кадра,
зашифровывать кадры,
вычислять имитовставку для кадров;
• по крайней мере, один компьютер, принимающий защищенные сообщения через сеть передачи данных и выполненный с возможностью
расшифровывать кадры,
проверять имитовставку для кадров;
способ, заключающийся в том, что
• выбирают количество N>0 кадров данных, шифруемых на одном ключе;
• выбирают количество K>0 ключей для шифрования кадров данных;
• (А) формируют на компьютере, отправляющем защищенные сообщения, и на компьютере, принимающем защищенные сообщения, идентичные списки ключей шифрования, количество ключей в которых составляет K, причем каждому ключу ставят в соответствие его порядковый номер, начиная с 0;
• обнуляют значение номера K1 используемого ключа на компьютере, отправляющем защищенные сообщения;
• обнуляют значение номера K2 используемого ключа на компьютере, принимающем защищенные сообщения;
• обнуляют на компьютере, отправляющем защищенные сообщения, количество D зашифрованных на данном ключе кадров;
• (Б) обрабатывают очередной кадр данных на компьютере, отправляющем защищенные сообщения, для этого:
на компьютере, отправляющем защищенные сообщения, сравнивают N c D,
если D=N, то
увеличивают значение K1 на 1,
обнуляют D;
иначе увеличивают значение D на 1;
на компьютере, отправляющем защищенные сообщения, формируют очередной кадр данных, записывая в служебное поле В младший бит двоичного представления значения K1;
зашифровывают кадр данных на ключе с номером K1 и вычисляют имитовставку на ключе с номером K1;
записывают имитовставку в поле имитовставки кадра;
отправляют кадр компьютерам, принимающим защищенные сообщения;
если K1<K-1 или D не равно N, то переходят к этапу Б;
• если K1=K-1 и D=N, то, при необходимости, переходят к этапу А;
• (В) на каждом из компьютеров, принимающих защищенные сообщения, выполняют обработку приходящих кадров данных:
принимают очередной кадр;
сравнивают значение поля В принятого кадра со значением младшего бита двоичного представления значения K2, если они равны, то
расшифровывают кадр данных с помощью ключа с номером K2 и проверяют имитовставку с помощью ключа номер K2,
если имитовставка не совпала, то удаляют кадр;
если имитовставка совпала, то передают кадр данных по назначению;
если значение поля В принятого кадра не равно значению младшего бита двоичного представления значения K2, то
вычисляют Т=K2+1;
если Т= K, то удаляют кадр;
расшифровывают кадр данных с помощью ключа с номером Т и проверяют имитовставку с помощью ключа номер Т,
если имитовставка не совпала, то удаляют кадр;
если имитовставка совпала, то
присваивают K2=Т,
передают кадр данных по назначению;
при необходимости, переходят к этапу В.
Следует отметить, что действия, выполняемые на компьютере, отправляющем защищенные сообщения и действия на компьютере, принимающем защищенные сообщения, выполняются независимо друг от друга, и данные компьютеры не требуют дополнительной координации действий, кроме этапа формирования списков ключей, и координации действий, производимых с помощью информационных сообщений, отправляемых согласно действиям способа.
Также следует отметить, что в одной сети передачи данных может одновременно работать множество компьютеров, отправляющих защищенные сообщения, а каждый из компьютеров, отправляющий защищенные сообщения, может отправлять защищенные сообщения сразу на множество компьютеров, принимающих защищенные сообщения.
Использование всего одного бита для определения ключей шифрования и имитозащиты позволяет снизить количество служебных данных, передаваемых в канале передачи данных и, тем самым, повысить количество полезных данных, которые можно передать через этот канал передачи данных, по сравнению со случаем передачи всего идентификатора или номера ключа шифрования и имитозащиты.
Одним из действий предлагаемого способа является выбор количества кадров данных N>0, шифруемых на одном ключе. Данный параметр ограничен сверху соображениями безопасности, а снизу - затратами ресурсов на смену ключей в компьютерах, отправляющих защищенные сообщения, и компьютерах, принимающих защищенные сообщения.
Формирование на компьютере, отправляющем защищенные сообщения, и на компьютере, принимающем защищенные сообщения, идентичных списков ключей шифрования, может быть произведено одним из известных методов. Например, списки ключей для шифрования и имитозащиты могут быть как непосредственно загружены на компьютеры, отправляющие защищенные сообщения, и компьютеры, принимающие защищенные сообщения, так и получены непосредственно на компьютерах, отправляющие защищенные сообщения, и компьютерах, принимающие защищенные сообщения, с помощью так называемого ключа генерации ключей. Ключ генерации ключей может предварительно загружаться на компьютеры, отправляющие защищенные сообщения, и компьютеры, принимающие защищенные сообщения, либо формироваться из еще одного ключа генерации ключей, либо формироваться с помощью одного из известных протоколов формирования общего секрета, например протокола Диффи-Хеллмана.
Дополнительно, в случае использования в ходе реализации способа режимов шифрования, требующих отдельного ключа для аутентификации сообщений, на этапе формировании списков ключей на компьютерах, отправляющих и принимающих защищенные сообщения, формируют списки ключей, в которых каждому номеру ключа соответствуют два различных ключа - один ключ шифрования и один ключ вычисления имитовставки, а операции шифрования/расшифрования производят с соответствующим ключом шифрования, в свою очередь операции вычисления и проверки имитовставки производят с соответствующим ключом вычисления имитовставки.
В этом случае можно использовать различные ключи для операций шифрования и вычисления имитовставки. Для этого каждому номеру ключа соответствуют один ключ шифрования и один ключ вычисления имитовставки, которые используют совместно для шифрования/расшифрования и вычисления и проверки имитовставки соответственно. В этом случае также можно использовать режимы шифрования и аутентификации, требующие различных ключей для данных операций.
Следует заметить, что во всех случаях реализации предложенного способа обеспечивается также защита от использования неверного ключа в связи с приемом компьютером, принимающим защищенные сообщения, неподлинных кадров, поскольку перед изменением номера K2 на компьютере, принимающий защищенные сообщения, проверяют подлинность кадра данных, на основании которого меняют значение K2.
Способ может использоваться для поддержания связи между компьютерами до тех пор, пока на них присутствуют очередные ключи шифрования и имитозащиты. Способ может быть использован для непрерывного поддержания связи между компьютерами, если ключи шифрования и имитозащиты периодически генерируются по мере исчерпания в компьютерах, отправляющих защищенные сообщения, и компьютерах, принимающих защищенные сообщения. Другим методом непрерывного поддержания защищенной связи между компьютерами с использованием предлагаемого способа является регулярное добавление новых ключей шифрования и имитозащиты по мере их исчерпания.
Осуществление изобретения
Рассмотрим осуществление предложенного способа.
Способ допускает реализацию как на компьютере, являющимся источником кадров данных, так и на внешнем по отношению к нему устройстве, выполняющем, таким образом, функции криптошлюза. В последнем случае устройство, осуществляющее предложенный способ, может содержать два сетевых интерфейса и принимать кадры данных на один интерфейс, обрабатывать их в соответствии с предложенным способом и отправлять их через другой интерфейс.
В общем случае, в цифровой системе передачи данных может быть несколько компьютеров, одновременно отправляющих разные защищенные сообщения по разным сетевым адресам, и несколько компьютеров, одновременно принимающих разные защищенные сообщения от разных сетевых адресов.
Устройство, реализующее способ, может обслуживать несколько источников кадров данных, подключенных к интерфейсу, принимающему незашифрованные кадры данных.
Для реализации всех вычислений и операций, обеспечивающих возможность
• зашифровывать кадры,
• вычислять имитовставку для кадров,
в компьютере, отправляющем защищенные сообщения, необходимо предварительно сформировать программу (комплекс программ). Такую программу может сформировать специалист по программированию (программист) на любом известном универсальном языке программирования (например, языке С) на основе знания выполняемых функций. Затем эта программа устанавливается на компьютере.
Также для реализации всех вычислений и операций способа возможно создание специализированной микросхемы или конфигурации для программируемой логической интегральной схемы (ПЛИС). Такую микросхему или конфигурацию ПЛИС может спроектировать специалист в области микроэлектроники.
Для обеспечения работы по передаче данных, на основе известных характеристик используемой сети передачи данных и требований безопасности, определяют максимальное количество N>0 кадров данных, которые могут быть зашифрованы на одном ключе. Данный параметр ограничен сверху соображениями безопасности, а снизу - затратами на смену ключей в компьютерах, отправляющих защищенные сообщения, и компьютерах, принимающих защищенные сообщения. Исходя из опыта, для N можно устанавливать значения от 100 до 100000.
Параметр N и списки ключей заносят в память компьютеров, отправляющих защищенные сообщения, списки ключей также заносят в память компьютеров, принимающих защищенные сообщения.
Компьютеры, отправляющий защищенные сообщения, работают независимо от компьютеров, принимающих защищенные сообщения, и могут не иметь информации о том, происходит ли прием отправленных кадров данных. При этом компьютер, отправляющий защищенные сообщения, может отправлять кадры по нескольким адресам, если в системе передачи данных присутствует несколько компьютеров, принимающих защищенные сообщения. Кроме того, компьютер, отправляющий защищенные сообщения, может отправлять широковещательные кадры, если количество компьютеров, принимающих защищенные сообщения в системе передачи данных неизвестно или их адреса неизвестны. В этом случае каждый из компьютеров, принимающих защищенные сообщения, должен независимо выполнять действия способа, относящиеся к компьютеру, принимающему защищенные сообщения.
Затем запускают программы в компьютерах, отправляющих и принимающих защищенные сообщения, и начинают выполнение действий способа, заключающийся в том, что
• выбирают количество N>0 кадров данных, шифруемых на одном ключе;
• выбирают количество K>0 ключей для шифрования кадров данных;
• (А) формируют на компьютере, отправляющем защищенные сообщения, и на компьютере, принимающем защищенные сообщения, идентичные списки ключей шифрования, количество ключей в которых составляет K, причем каждому ключу ставят в соответствие его порядковый номер начиная с 0;
• обнуляют значение номера K1 используемого ключа на компьютере, отправляющем защищенные сообщения;
• обнуляют значение номера K2 используемого ключа на компьютере, принимающем защищенные сообщения;
• обнуляют на компьютере, отправляющем защищенные сообщения, количество D зашифрованных на данном ключе кадров;
• (Б) обрабатывают очередной кадр данных на компьютере, отправляющем защищенные сообщения, для этого:
на компьютере, отправляющем защищенные сообщения, сравнивают N с D, если D=N, то:
увеличивают значение K1 на 1,
обнуляют D,
иначе:
увеличивают значение D на 1;
на компьютере, отправляющем защищенные сообщения, формируют очередной кадр данных, записывая в служебное поле В младший бит двоичного представления значения K1;
зашифровывают кадр данных на ключе с номером K1 и вычисляют имитовставку на ключе с номером K1;
записывают имитовставку в поле имитовставки кадра;
отправляют кадр компьютерам, принимающим защищенные сообщения;
если K1<K-1 или D не равно N, то переходят к этапу Б;
• если K1=K-1 и D=N, то, при необходимости, переходят к этапу А;
• (В) на каждом из компьютеров, принимающих защищенные сообщения, выполняют обработку приходящих кадров данных:
принимают очередной кадр;
сравнивают значение поля В принятого кадра со значением младшего бита двоичного представления значения K2, если они равны, то
расшифровывают кадр данных с помощью ключа с номером K2 и проверяют имитовставку с помощью ключа номер K2, если имитовставка не совпала, то
удаляют кадр;
если имитовставка совпала
передают кадр данных по назначению;
если значение поля В принятого кадра не равно значению младшего бита двоичного представления значения K2, то:
вычисляют Т=K2+1;
если Т=K, то удаляют кадр;
расшифровывают кадр данных с помощью ключа с номером Т и проверяют имитовставку с помощью ключа номер Т, если имитовставка не совпала, то
удаляют кадр;
если имитовставка совпала, то:
присваивают K2=Т,
передают кадр данных по назначению;
при необходимости, переходят к этапу В;
При использовании раздельно режима шифрования и режима имитозащиты с различными ключами на компьютерах, отправляющих и принимающих защищенные сообщения, формируют списки ключей шифрования и ключей вычисления имитовставки, при этом каждому номеру ключа соответствует один ключ шифрования и один ключ вычисления имитовставки.
Затем выполняют действия способа, но операции шифрования/расшифрования производят с соответствующим ключом шифрования, в свою очередь операции вычисления и проверки имитовставки производят с соответствующим ключом вычисления имитовставки.
Реализовать предложенный способ с помощью устройства в виде специализированного компьютера, выполняющего данный способ, или в виде интегральной схемы, выполняющей данный способ в составе специализированного компьютера, или в виде блока, выполненного на базе программируемой логической интегральной схемы (ПЛИС), может специалист в области вычислительной техники и/или проектирования цифровых интегральных схем.
Необходимо отметить, что возможны и другие реализации предложенного способа, отличающиеся от описанной выше и зависящие от доступности электронных компонентов, требований к исполнению устройства с точки зрения устойчивости к внешним воздействиям и предпочтений разработчиков.