СПОСОБ ГЕНЕРИРОВАНИЯ СЕКРЕТНОГО КРИПТОГРАФИЧЕСКОГО КЛЮЧА В СЕТИ
METHOD OF GENERATING A SECRET CRYPTOGRAPHIC KEY IN A NETWORK

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу генерирования в сети секрета, например секретного криптографического ключа, в частности к способу генерирования общего секретного ключа в двух абонентах сети. К сетям также обычно относят двухточечные соединения, которые в контексте изобретения подпадают под понятие "сеть". Оба абонента при этом осуществляют связь, т.е. обмен данными, иначе говоря - взаимодействуют друг с другом, посредством совместно используемой среды передачи. При этом последовательности логических двоичных значений, т.е. битов (или в обобщенном случае - последовательности значений), передаются физически с использованием соответствующих методов передачи в виде сигналов или последовательностей сигналов. Соответствующей системой передачи данных может быть, например, шина CAN (локальная контроллерная сеть). В ней предусмотрена передача доминантных и рецессивных битов, т.е. соответственно, доминантных и рецессивных сигналов, причем доминантный сигнал или бит абонента сети преобладает над рецессивными сигналами или битами. Соответствующее рецессивному сигналу состояние устанавливается в среде передачи только тогда, когда все участвующие абоненты собираются послать рецессивный сигнал, т.е. когда все одновременно передающие абоненты передают рецессивный уровень сигнала.
Уровень техники
Во все более сетевом мире особую важность приобретает безопасность связи между различными устройствами, которая во многих областях применения становится предпосылкой для признания соответствующих приложений, а значит, и для их коммерческого успеха. В зависимости от конкретного применения, при обеспечении безопасности связи преследуются различные цели, например соблюдение конфиденциальности передаваемых данных, взаимная аутентификация участвующих в работе сети узлов или обеспечение целостности данных.
Для достижения этих связанных с защитой связи целей обычно используются соответствующие криптографические методы, которые в целом можно разделить на две разные категории: во-первых - методы симметричного шифрования, при реализации которых отправитель и получатель обладают одним и тем криптографическим ключом, а во-вторых - методы асимметричного шифрования, при реализации которых отправитель зашифровывает передаваемые данные открытым (т.е. возможно известным и потенциальному злоумышленнику) ключом получателя, но расшифрование может осуществляться только соответствующим закрытым ключом, который в идеале известен только получателю.
Методы асимметричного шифрования имеют, среди прочего, тот недостаток, что им, как правило, свойственна очень высокая вычислительная сложность. По этой причине такие методы лишь условно подходят для узлов с ограниченными ресурсами, таких, например, как датчики, исполнительные механизмы и т.п., которые обычно располагают относительно малой вычислительной мощностью и объемом памяти и должны работать с высокой энергоэффективностью, например, в силу того, что они питаются от аккумуляторной батареи или аккумулируют энергию из окружающей среды. Кроме того, располагаемая пропускная способность для передачи данных часто весьма ограничена, что делает малопривлекательным обмен асимметричными ключами длиной 2048 бит или более.
В случае же методов симметричного шифрования необходимо гарантировать, чтобы и получатель, и отправитель обладали одним и тем же ключом. При этом соответствующее управление ключами обычно представляет собой очень сложную задачу. Например, в сфере мобильной связи ключи вводятся в мобильный телефон посредством SIM-карт (карт-модулей идентификации абонента), и тогда соответствующая сеть может назначить уникальному идентификатору SIM-карты соответствующий ключ. В случае беспроводных локальных сетей используемый ключ обычно вводят на соответствующем устройстве сети вручную (как правило, путем ввода пароля). Однако такое управление ключами быстро становится очень сложным и нерациональным в случае очень большого числа узлов, например, в сети датчиков или других системах межмашинной связи, в том числе, например, в используемых в транспортных средствах сетях передачи данных на основе протокола CAN. Кроме того, изменение используемых ключей часто вообще невозможно или крайне затруднительно.
Способы защиты от манипуляции данными от датчиков, а также обеспечения аутентификации транзакций, например, в автомобильной сети, с помощью обычных методов шифрования раскрыты, например, в публикациях DE 102009002396 А1 и DE 102009045133 А1.
Кроме того, с некоторых пор исследуются и разрабатываются новые подходы под общим названием "безопасность физического уровня", позволяющие автоматически генерировать ключи для методов симметричного шифрования на основе физических свойств каналов передачи данных между узлами, участвующими в обмене данными. При этом используется взаимность и случайность, присущая этим каналам передачи данных. Однако в некоторых системах, в частности проводных или оптических, такой подход часто применим лишь условно, поскольку соответствующие каналы обычно имеют довольно ограниченную изменчивость параметров во времени, так что злоумышленник, например, построив модель, может сделать относительно достоверные выводы о параметрах канала между отправителем и получателем.
Раскрытие изобретения
Предлагаемые способы генерирования секретного криптографического ключа, охарактеризованные в независимых пунктах формулы изобретения, не требуют ручного вмешательства и таким образом обеспечивают возможность автоматизированного установления безопасных связей или соединений между двумя узлами. Кроме того, предлагаемые способы обладают весьма небольшой сложностью, в частности, что касается требуемой аппаратной конфигурации, например необходимых ресурсов памяти и вычислительной мощности, и характеризуются малым потреблением энергии и малыми затратами времени.
Кроме того, предлагаемые способы обеспечивают очень высокие скорости генерирования ключей при одновременно очень малой вероятности появления ошибок.
При этом предлагаемые способы исходят из того, что абоненты в сети осуществляют связь, т.е. взаимодействуют друг с другом, по одному каналу связи. При этом они передают, в частности, последовательности логических значений (в частности, битовые последовательности, если речь идет о двоичной логике, т.е. двоичных значениях) с помощью физических сигналов в канале передачи. Даже если в канале передачи происходят возможные наложения сигналов, т.е. наложения на физическом уровне, ниже в описании рассматривается преимущественно логический уровень. Таким образом, рассматриваются передаваемые последовательности логических, прежде всего двоичных, значений, а также их логическое наложение. Ниже по тексту описания вместо термина "двоичное значение" сокращенно используется в том же смысле термин "значение", а последовательность двоичных значений также называется битовой последовательностью.
Соответственно, абоненты сети могут выдавать в канал связи первые сигналы (например, соответствующие логической единице) и вторые сигналы (например, соответствующие логическому нулю) и обнаруживать в канале связи результирующие сигналы. В этом случае, если два абонента передадут (практически) одновременно соответствующие последовательности сигналов, эти абоненты смогут обнаружить в канале связи результат наложения сигналов. Тогда эффективный сигнал в канале связи, являющийся результатом (практически) одновременной передачи двух (независимых) сигналов, можно, в свою очередь, соотнести с определенным логическим значением или несколькими логическими значениями.
При этом синхронность передачи должна быть такой, чтобы в среде передачи происходило наложение отдельных входящих в последовательность сигналов, в частности, чтобы сигнал, соответствующий n-ому логическому значению, или двоичному разряду (биту), первого абонента, по меньшей мере частично накладывался на сигнал, соответствующий n-ому логическому значению, или двоичному разряду, второго абонента. Для этого указанное наложение должно быть в каждом случае достаточно длительным, чтобы
абоненты могли его зарегистрировать, т.е. определить соответствующее значение наложения.
При этом результат наложения можно определить с использованием механизмов арбитража или через физическое наложение сигналов. Под использованием механизма арбитража понимается, например, случай, когда тот или иной узел желает послать рецессивный уровень, но обнаруживает на шине доминантный уровень и потому передачу не выполняет. В этом случае физического наложения двух сигналов не происходит, а в канале передачи виден только доминантный сигнал.
Затем на основании результирующей, т.е. возникшей вследствие наложения, последовательности значений и собственной последовательности значений абоненты могут сгенерировать ключ, который остается тайным для находящегося вне сети злоумышленника. Причина этого состоит в том, что находящийся вне сети злоумышленник, способный подслушивать, например, эффективные суммарные сигналы в совместно используемой среде передачи, видит только результат наложения последовательностей значений, но не имеет информации об индивидуальных последовательностях значений абонентов. Таким образом, абоненты владеют дополнительной информацией, которую они, в отличие от злоумышленника, могут использовать для генерирования секретного ключа.
Применение предлагаемого способа является особенно рациональным в сети, в которой имеется доминантное значение (физически: доминантный сигнал), которое преобладает в канале, если только один абонент выдаст его в канал передачи, и рецессивное значение (физически: рецессивный сигнал), проявляющееся в канале передачи только тогда, когда рецессивное значение передают оба абонента, или все абоненты. Благодаря четко заданным таким образом правилам наложения значений абоненты подобной сети могут особенно просто выводить из последовательностей, возникающих вследствие наложения, информацию для генерирования ключей. В качестве альтернативы, передачу по меньшей мере одним из абонентов рецессивного значения можно заменить тем, что в этом месте последовательности значений или в качестве одного из по меньшей мере двух возможных значений не передается вообще ничего.
Абонентские последовательности значений, выдаваемые абонентами в канал передачи практически одновременно, формируются заранее в самих соответствующих абонентах с помощью генератора случайных или псевдослучайных значений. Поскольку последовательность, возникающая в канале передачи вследствие наложения этих последовательностей, может быть доступна потенциальному злоумышленнику, для обеспечения безопасности последующей связи особенно выгодно, чтобы злоумышленнику было как можно труднее сделать вывод об индивидуальных последовательностях значений абонентов, для чего эти последовательности целесообразно генерировать в абонентах локально, а также случайным или, по крайней мере, псевдослучайным образом.
В предпочтительном варианте осуществления изобретения абоненты передают подпоследовательности значений, представляющие собой первую часть и вторую часть абонентской последовательности значений, причем вторая часть соответствует инвертированной первой части. Если для злоумышленника обе этих части в наложении (по меньшей мере на логическом уровне) выглядят одинаковыми в тех местах, в которых оба абонента передают разные значения, то абоненты извлекают из этого дополнительную информацию о подпоследовательностях значений другого абонента. Эта дополнительная информация, в свою очередь, может использоваться для генерирования ключей и может сделать этот процесс более надежным. При этом не является существенным то, примыкают ли подпоследовательности значений друг к другу непосредственно. В последовательностях могут существовать разрывы, например, между подпоследовательностями значений, соответствующими неинвертированной и инвертированной частям последовательности значений, если только оба абонента возобновляют передачу после такого разрыва (практически) одновременно друг с другом. Таким образом, подпоследовательности значений могут передаваться как в отдельных сообщениях, так и одном сообщении (например, первые 32 бита - первоначальная подпоследовательность, вторые 32 бита - инвертированная подпоследовательность). Дополнительную информацию, получаемую из передачи таких инвертированных относительно друг друга последовательностей значений, абоненты могут извлекать путем логического комбинирования обеих частей последовательности, возникшей вследствие наложения, т.е. подпоследовательностей значений наложения, в частности путем комбинирования с помощью функции логического "ИЛИ".
В этом предпочтительном варианте осуществления изобретения абоненты могут удалять те места своих абонентских последовательностей значений, в которых значение идентично значению в том же месте абонентской последовательности значений другого абонента, тем самым получая соответствующие сокращенные последовательности значений. Необходимую для этого информацию абоненты могут выводить из дополнительной информации, предоставляемой переданными инвертированными подпоследовательностями значений. Удаляемые таким образом места соответствуют информации, которую злоумышленник может при необходимости относительно легко вывести из последовательности, возникшей вследствие наложения (по крайней мере, если он знает схему передачи сообщений абонентами), т.е. информации, которая понизила бы надежность ключа, сгенерированного на основании последовательности значений. Инвертировав сокращенную таким образом последовательность значений, один из абонентов может получить последовательность значений, соответствующую сокращенной последовательности значений другого абонента. Теперь абоненты могут взять эту общую секретную последовательность значений за основу для генерирования общего секретного ключа.
Описываемые способы особенно хорошо подходят для реализации в шинной системе CAN, TTCAN (синхровременной протокол на основе CAN) или CAN-FD (протокол CAN с гибкой скоростью передачи данных). В таких системах рецессивный уровень шины вытесняется доминантным. Таким образом, наложение значений или сигналов абонентов происходит по установленным правилам, которые абоненты могут использовать для вывода информации из полученного при наложении значения или сигнала и переданного ими значения или сигнала. Хорошо подходят для применения этих способов и другие системы передачи данных, такие как LIN и I2C.
В качестве альтернативы, предлагаемый способ также может применяться в сети с амплитудной манипуляцией. В этом случае наложение также определяется тем, что абоненты могут выбирать между сигналами "передача" и "нет передачи", причем сигнал наложения соответствует сигналу "передача", если передачу ведут один абонент или оба абонента, и соответствует сигналу "нет передачи", если оба абонента не ведут передачу.
Если оба абонента показывают характеристики своей передачи, например, различные амплитуды сигналов или различные моменты начала передачи сигналов, то злоумышленник при помощи чувствительных измерений в канале передачи при известных условиях может вывести информацию об отдельных последовательностях значений соответствующих абонентов. Поскольку эта информация является основой для секретного ключа, в еще одном предпочтительном варианте осуществления предлагаемого в изобретении способа преследуется цель затруднить злоумышленнику вывод такой информации. Для этого по меньшей мере один из абонентов во время передачи изменяет параметры передачи. Например, при передаче последовательности значений от одного значения к другому может выбираться иная амплитуда, или в пределах последовательности значений от одного значения к другому может изменяться момент начала или конца передачи. При этом речь может идти, например, о нерегулярном (случайном) изменении. Таким образом, для злоумышленника затрудняется вывод информации из характеристик передачи индивидуальных абонентских последовательностей значений.
Хотя способ был описан для двух абонентов в сети, секретный ключ может быть сгенерирован уже одним абонентом сети на основе его собственной последовательности сигналов и результата ее наложения на последовательность сигналов второго абонента. Сеть или абонент сети выполнены с возможностью осуществления всех шагов соответствующего способа за счет наличия у них соответствующих электронных ресурсов памяти и вычислительных ресурсов. В машиночитаемом носителе данных такого абонента или в распределенных ресурсах памяти сети также может храниться компьютерная программа, обеспечивающая осуществление всех шагов соответствующего способа при ее выполнении в абоненте или в сети.
Краткое описание чертежей
Ниже изобретение подробнее описывается на примерах его осуществления со ссылкой на прилагаемые чертежи, на которых показано:
на фиг. 1 - схема рассматриваемой в качестве примера системы передачи данных, в которой может быть осуществлено изобретение,
на фиг. 2 - схема линейной шины как примера системы передачи данных, в которой может быть осуществлено изобретение,
на фиг. 3 - схематическое представление рассматриваемых в качестве примера последовательностей сигналов двух абонентов сети, а также последовательности значений, возникающей в канале передачи между абонентами вследствие наложения указанных последовательностей сигналов, и
на фиг. 4 - блок-схема рассматриваемого в качестве примера способа генерирования ключей между двумя абонентами сети.
Описание примеров осуществления изобретения
Настоящее изобретение относится к способу генерирования секрета, например, (секретных) симметричных криптографических ключей, между двумя узлами системы передачи данных (абоненты сети), осуществляющими связь, т.е. взаимодействующими друг с другом, посредством совместно используемой среды (канал передачи сети). При этом генерирование и согласование секрета, в частности криптографических ключей, основывается на открытом обмене данными между двумя абонентами, однако третьему лицу, который может прослушивать канал связи и рассматривается в качестве злоумышленника, невозможно либо очень сложно сделать выводы о сгенерированном ключе. Таким образом, изобретение обеспечивает возможность полностью автоматизированного и безопасного создания соответствующих симметричных криптографических ключей между двумя разными абонентами сети, чтобы затем на их основе реализовать определенные функции обеспечения безопасности, например, шифрование данных. Как подробнее описывается ниже, для этого сначала создается общий секрет, который может использоваться для генерирования ключей. В принципе же такой общий секрет может использоваться и в иных целях, нежели для криптографических ключей в более узком смысле, например в качестве одноразового кода.
Изобретение подходит для множества проводных или беспроводных, а также оптических сетей или систем связи (передачи данных), в частности и таких, в которых разные абоненты осуществляют связь друг с другом по линейной шине, а доступ к такой шине как среде передачи реализован с помощью побитового арбитража шины. Этот принцип положен в основу функционирования, например, широко распространенной шины CAN. Соответственно этому, к возможным областям применения изобретения относятся, в частности, также сети транспортных средств, а также сети систем автоматизации, работающие на основе протокола CAN.
В настоящем изобретении предложен подход, обеспечивающий возможность автоматизированного генерирования симметричных криптографических ключей в узле сети или, в особенности, между двумя узлами сети. При этом генерирование ключей осуществляется с использованием свойств соответствующего уровня передачи. Однако в отличие от получивших распространение подходов концепции "безопасности физического уровня", для генерирования ключей не анализируются физические параметры канала передачи, такие как мощность передачи и т.д. Напротив, для этого между участвующими узлами предусмотрен открытый обмен данными, который, благодаря свойствам системы передачи данных и/или используемого метода модуляции, не позволяет возможному злоумышленнику, прослушивающему канал, делать выводы вообще или делать выводы в достаточной мере о согласованном между сторонами ключе.
Ниже рассматривается система, условно представленная на фиг. 1. При этом различные абоненты 1, 2 и 3 могут осуществлять связь, т.е. взаимодействовать или обмениваться данными, между собой посредством так называемой совместно используемой среды передачи ("разделяемая среда") 10. В предпочтительном варианте осуществления изобретения эта совместно используемая среда передачи соответствует линейной шине (проводной или оптической) 30, пример которой представлен на фиг. 2. Сеть 20 на фиг. 2 состоит именно из такой линейной шины 30 как совместно используемой среды передачи (например, проводного канала передачи), абонентов, т.е. узлов 21, 22 и 23, а также (опциональных) оконечных нагрузок 31 и 32 шины.
Далее при рассмотрении связи между различными узлами 21, 22 и 23 принимается допущение, что она характеризуется проведением различия между доминантными и рецессивными значениями. В данном примере в качестве возможного значения принимаются биты нуль ("0") и единица ("1"). При этом доминантный бит (например, логический бит "0") способен как бы вытеснять, или перезаписывать, одновременно переданный рецессивный бит (например, логический бит "1").
Примером такого метода передачи является так называемая амплитудная манипуляция, при которой различают ровно два состояния передачи: в одном случае (значение "вкл." или "0") передается некоторый сигнал, например, в виде простого несущего сигнала, а в другом случае (значение "выкл." или "1") сигнал не передается. При этом состояние "вкл." является доминантным, а состояние "выкл." - рецессивным.
Еще одним примером соответствующей системы передачи данных, поддерживающим такое проведение различия между доминантными и рецессивными битами, является система (проводная или оптическая), основанная на побитовом арбитраже шины, например, используемая в шине CAN. При этом основная идея также заключается в том, что, если, например, два узла хотят одновременно передать сигнал, причем один узел передает единицу, а другой - нуль, "победит" нуль (т.е. доминантный бит), т.е. уровень сигнала, который можно будет измерить на шине, будет соответствовать логическому нулю. В протоколе CAN этот механизм используется, в частности, для разрешения возможных коллизий. При этом сообщения с более высоким приоритетом, т.е. с более ранним, доминантным уровнем сигнала, передаются в первую очередь за счет того, что каждый узел при передаче своего CAN-идентификатора одновременно, бит за битом, следит за уровнем шины. Если сам узел передает рецессивный бит, но на шине обнаруживается доминантный бит, соответствующий узел отменяет свою попытку передать сообщение в пользу сообщения с более высоким приоритетом (с более ранним доминантным битом).
Проведение различия между доминантными и рецессивными битами позволяет рассматривать совместно используемую среду передачи как своего рода бинарный оператор, комбинирующий друг с другом разные входные биты (т.е. любые одновременно передаваемые биты) с помощью функции логического "И".
На фиг. 3, например, показано, что первый абонент (Т1) приготовил битовую последовательность 0, 1, 1, 0, 1 для ее отправки по каналу передачи между моментами времени t0 и t5. Второй абонент (Т2) приготовил битовую последовательность 0, 1, 0, 1, 1 для ее отправки по каналу передачи между моментами времени t0 и t5. В случае описанных выше свойств системы передачи данных и при допущении, что в данном примере уровень бита "0" соответствует доминантному биту, на шине (В) будет видна битовая последовательность 0, 1, 0, 0, 1. Лишь между моментами времени t1 и t2, а также между моментами времени t4 и t5 как первый абонент (Т1), так и второй абонент (Т2) предусматривают для передачи рецессивный бит "1", так что только в этих промежутках результатом логической комбинации "И" будет уровень бита "1" на шине (В).
Используя эти свойства метода передачи в системе связи, теперь можно генерировать ключи между двумя абонентами соответствующей сети, для чего абоненты обнаруживают результат наложения битовых последовательностей обоих абонентов в среде передачи и на основе этой информации в сочетании с информацией о собственно посланной битовой последовательности генерируют общий (симметричный) секретный ключ.
Ниже со ссылкой на фиг. 4 в качестве примера осуществления изобретения рассматривается особенно предпочтительный вариант его реализации.
Процесс генерирования симметричной пары ключей запускается на шаге 41 участвующими узлами, в данном примере - двумя узлами (первый абонент и второй абонент). Для этого, например, может быть послано специальное сообщение или специальный заголовок сообщения.
На шаге 42 как первый абонент, так и второй абонент сначала генерируют локально (т.е. внутри себя и независимо друг от друга) битовую последовательность. Предпочтительно, чтобы эта битовая последовательность была по меньшей мере два раза, в частности - по меньшей мере в три раза, длиннее общего ключа, который требуется сгенерировать в результате осуществления способа. Битовую последовательность предпочтительно генерировать в виде случайной или псевдослучайной последовательности битов, например, с помощью подходящего генератора случайных или псевдослучайных чисел.
Пример локальных битовых последовательностей длиной 20 битов:
- Битовая последовательность, сгенерированная первым абонентом:
- Битовая последовательность, сгенерированная вторым абонентом:
На шаге 43 первый абонент и второй абонент передают (практически) синхронно друг с другом сгенерированные ими битовые последовательности посредством совместно используемой среды передачи (с применением метода передачи, в котором имеются доминантные и рецессивные биты, как поясняется выше). При этом существуют различные возможности синхронизации соответствующих передач. Так, например, либо первый абонент, либо второй абонент сначала может послать соответственно другому узлу подходящее синхронизирующее сообщение и спустя определенное время после полной передачи этого сообщения начать передачу собственно битовых последовательностей. Вместе с тем, также возможен вариант, в котором одним из двух узлов передается только соответствующий заголовок сообщения (например, заголовок кадра CAN, состоящий из поля арбитража и поля управления), а затем, во время соответствующей фазы передачи полезных данных, одновременно оба узла (практически) синхронно передают сгенерированные ими битовые последовательности. В одном варианте способа битовые последовательности, сгенерированные на шаге 42 одним абонентом, могут передаваться на шаге 43 с их распределением по нескольким сообщениям, например, если это обусловливается (максимальными) размерами соответствующих сообщений. В этом варианте другой абонент, в свою очередь, передает битовые последовательности, распределенные по соответствующему числу сообщений соответствующего размера, также (практически) синхронно с сообщениями от первого абонента.
В совместно используемой среде передачи обе битовые последовательности накладываются друг на друга, причем в силу описанного выше свойства системы с проведением различия между доминантными и рецессивными битами наложение отдельных битов первого абонента и второго абонента дает результат, который в названном примере фактически соответствует результату комбинирования с помощью логического "И". Таким образом, в канале передачи возникает соответствующие наложение битов, которое может быть обнаружено, например, прослушивающим канал третьим абонентом.
Пример битовой последовательности, возникшей вследствие наложения приведенных выше локальных битовых последовательностей:
- Эффективная битовая последовательность в канале передачи:
eff
Как первый абонент, так и второй абонент, передавая свои битовые последовательности на шаге 43, обнаруживают на параллельном шаге 44 эффективные (возникающие при наложении) битовые последовательности S в совместно используемой среде передачи. Для примера, в котором используется шина CAN, эти действия обычно и так выполняются в существующих системах в фазе арбитража.
Для систем с амплитудной манипуляцией (беспроводных, проводных или оптических) эти действия соответственно также возможны. При этом для практической реализуемости изобретения выгодно, в частности, то, что в такой системе состояние "вкл." является доминантным, а состояние "выкл." - рецессивным (как пояснялось выше). Следовательно, узел и без измерения знает, что эффективное состояние в "разделяемой", т.е. совместно используемой, среде является доминантным, если этот узел сам послал доминантный бит. Если же узел послал рецессивный бит, ему сложно сразу определить состояние в совместно используемой среде передачи, однако в этом случае он может определить то, как выглядит эта среда, при помощи подходящего измерения. Поскольку в этом случае узел сам ничего не передает, при этом не возникает проблем с так называемой самоинтерференцией, которая в частном случае беспроводных систем потребовала бы выполнения сложной эхокомпенсации.
T1
T2
eff
На следующем шаге 45 как первый абонент, так и второй абонент передают, опять же (практически) синхронно, свои первоначальные битовые последовательности S и S, но в этот раз передают их инвертированными. При этом синхронизация соответствующих передач снова может быть реализована точно таким же образом, как это описано выше. Затем в совместно используемой среде передачи обе эти последовательности снова комбинируются друг с другом с помощью логического "И". При этом первый и второй абоненты снова определяют в совместно используемой среде передачи эффективные битовые последовательности S, возникшие вследствие наложения.
Пример описанных выше битовых последовательностей:
- Инвертированная битовая последовательность первого абонента:
- Инвертированная битовая последовательность второго абонента:
- Эффективная битовая последовательность, возникшая вследствие наложения в канале:
eff
eff
T1
T2
Передавая свои битовые последовательности, теперь инвертированные, как первый абонент, так и второй абонент опять же определяют в совместно используемой среде передачи эффективные битовые последовательности, возникшие вследствие наложения. В этот момент времени оба узла (первый абонент и второй абонент), а также возможный злоумышленник (например, третий абонент), прослушивающий связь в совместно используемой среде передачи, знают эффективные битовые последовательности S и S', возникшие вследствие наложения. Однако, в отличие от злоумышленника, или третьего абонента, первый абонент еще знает свою первоначально сгенерированную локальную битовую последовательность S, а второй абонент - свою первоначально сгенерированную локальную битовую последовательность S. Но первый абонент при этом не знает первоначально сгенерированной локальной битовой последовательности второго абонента, а второй абонент не знает первоначально сгенерированной локальной битовой последовательности первого абонента. Обнаружение битовой последовательности, возникшей вследствие наложения, выполняется на шаге 46 опять же во время передачи.
В качестве альтернативы этому примеру осуществления изобретения, первый абонент и второй абонент также могут посылать свои инвертированные локальные битовые последовательности сразу, т.е. непосредственно вместе со своими первоначальными локальными битовыми последовательностями, и в этом случае шаги 45 и 46 выполняются вместе с шагами 43 и 44. При этом первоначальная и инвертированная битовые последовательности могут передаваться в одном сообщении или в виде битовых подпоследовательностей в отдельных сообщениях.
eff
eff
На шаге 47 первый абонент и второй абонент локально (т.е. внутри себя) комбинируют эффективные битовые последовательности, возникшие вследствие наложения (S и S'), в частности с помощью функции логического "ИЛИ".
Пример описанных выше битовых последовательностей:
ges
T1
T2
ges
T1
T2
ges
Alice
Bob
Теперь отдельные биты в битовой последовательности (S), полученной в результате комбинирования с помощью функции логического "ИЛИ", указывают, являются ли соответствующие (т.е. находящиеся в соответствующих разрядах) биты последовательностей S и S одинаковыми или разными. Если, например, n-ый бит в последовательности S имеет значение "0", это означает, что этот n-ый бит в последовательности S является инверсным (обратным) соответствующему биту в последовательности S. Аналогичным образом, если n-ый бит в последовательности S имеет значение "1", то соответствующие биты в последовательностях S и S одинаковы.
ges
T1
T2
Затем на шаге 48 первый абонент и второй абонент на основании битовой последовательности S, полученной в результате комбинирования с помощью функции логического "ИЛИ", удаляют из своих первоначальных битовых последовательностей S и S все биты, которые в этих двух последовательностях одинаковы. В результате получаются соответственно сокращенные битовые последовательности.
Пример описанных выше битовых последовательностей:
- Сокращенная битовая последовательность первого абонента:
- Сокращенная битовая последовательность второго абонента:
T1,V
T2,V
Полученные таким образом сокращенные битовые последовательности S и S инверсны друг другу. Следовательно, один из двух абонентов, инвертировав свою сокращенную битовую последовательность, может определить именно ту сокращенную битовую последовательность, что имеется у другого абонента.
Далее, первый абонент и второй абонент локально выполняют на шаге 49 подготовку (предварительную обработку) сокращенной битовой последовательности, имеющейся в их общем распоряжении, т.е. известной обоим абонентам, чтобы сгенерировать собственно требуемый ключ требуемой длины N. При этом для выполнения указанной подготовки также существует множество возможностей. Одна возможность предусматривает выбор N битов из сокращенной битовой последовательности, имеющейся в общем распоряжении абонентов, причем должно быть четко определено, какие именно N битов должны выбираться: например, можно выбирать всегда просто первые N битов последовательности. Также в отношении сокращенной битовой последовательности, имеющейся в общем распоряжении абонентов, может выполняться вычисление хэш-функции, дающее N-разрядное, т.е. имеющее длину N бит, хэш-значение. Вообще подготовка последовательности может выполняться с помощью любой линейной и нелинейной функции, которая в приложении к сокращенной битовой последовательности, имеющейся в общем распоряжении абонентов, выдает N-разрядную битовую последовательность. В первом и втором абонентах механизмы генерирования ключей на основе сокращенной битовой последовательности, имеющейся в общем распоряжении абонентов, предпочтительно одинаковы и соответственно выполняются одинаковым образом.
После генерирования ключей при необходимости может быть проведена проверка на предмет того, что ключи, сгенерированные первым и вторым абонентами, действительно одинаковы. Для этого, например, в отношении сгенерированных ключей могут вычисляться контрольные суммы, которыми обмениваются первый и второй абоненты. Если выявлено несовпадение двух контрольных сумм, это явно указывает на неудачное завершение какой-то операции. В этом случае описанный способ генерирования ключей может быть выполнен повторно.
В предпочтительном варианте способа генерирования ключей сначала можно за несколько разных прогонов сгенерировать целый ряд имеющихся у первого и второго абонентов сокращенных битовых последовательностей, которые затем комбинируются в одну большую последовательность, прежде чем из битовых последовательностей будет сформирован собственно ключ. При необходимости может быть предусмотрено адаптивное выполнение этого процесса. Например, если после одного прогона описанной процедуры длина общей сокращенной битовой последовательности окажется, например, меньше требуемой длины N ключа, то, например, перед собственно формированием ключа можно сгенерировать на повторном прогоне, например, дополнительные биты.
Теперь сгенерированная пара симметричных ключей может использоваться первым и вторым абонентами в сочетании с существующими (симметричными) криптографическими методами, например, для шифрования данных.
Цель комбинирования двух подпоследовательностей значений наложения, в частности с помощью функции логического "ИЛИ", заключается в том, чтобы обеспечить возможность удаления тех битов, которые пассивный злоумышленник, наблюдающий за передачей данных, также сможет без проблем определить на основе своих наблюдений. Альтернативой этому решению может быть сохранение этих битов, но тогда сначала нужно генерировать значительно больше битов, чем необходимо (т.е. при необходимости генерирования, например, 128-битного секрета или ключа сначала нужно сгенерировать 300 битов), после чего число битов может быть сокращено, например, с помощью хэш-функции и т.п., до требуемой длины.
eff
eff
Возможный злоумышленник (например, третий абонент) может подслушивать открытую передачу данных между первым абонентом и вторым абонентом, а значит, может узнать, как это описано выше, эффективные битовые последовательности (S и S'), возникшие вследствие наложения. Однако таким образом злоумышленник узнает только то, какие биты в локально сгенерированных битовых последовательностях первого и второго абонентов одинаковы, а какие - нет. В случае одинаковых битов злоумышленник даже может определить, идет ли речь о единицах или нулях. Для полного же знания получаемой в результате сокращенной битовой последовательности (а значит, и основы для генерирования ключей) у него нет информации о неодинаковых битах. Чтобы еще более затруднить совершение злоумышленником возможных атак, предпочтительный вариант осуществления изобретения дополнительно предусматривает удаление одинаковых значений битов в первоначальных битовых последовательностях, локально сгенерированных первым и вторым абонентами. Таким образом, третий абонент будет обладать только информацией, которую невозможно использовать для генерирования ключа. Хотя он и будет знать, что соответственно сокращенные битовые последовательности образованы битами, различающимися для локальных битовых последовательностей первого абонента и второго абонента, он не узнает, какие биты послал первый абонент, а какие - второй абонент.
Помимо информации о суммарной битовой последовательности, возникшей вследствие наложения, у первого абонента и второго абонента также есть информация о битовых последовательностях, локально сгенерированных и посланных каждым из них. Благодаря этому информационному преимуществу перед третьим абонентом, отслеживающим лишь открытую передачу данных, ключи, сгенерированные в первом и втором абонентах, несмотря на открытую передачу данных, в основном остаются секретными.
Злоумышленник (например, третий абонент), также может целенаправленно попытаться воспрепятствовать согласованию криптографического ключа между первым абонентом и вторым абонентом, передавая для этого помеховые сигналы. Подобная ситуация, например, может быть распознана первым абонентом или вторым абонентом, если генерирование ключа (неоднократно) завершилось неудачей. В этом случае первый абонент или второй абонент могут инициировать отмену генерирования ключей и при необходимости выдать сообщение об ошибке.
T1
T2
T1
T2
T1
T2
В реальных системах передачи данных, прибегнув к точным измерениям в совместно используемой среде передачи, можно делать выводы об индивидуальных битовых последовательностях S и S первого и второго абонентов. Ввиду разностей времен прохождения сигналов, злоумышленник (например, третий абонент), несмотря на (практически) синхронное ведение передачи, может принять сначала последовательность S, затем через короткое время последовательность S или наложение/комбинацию с последовательностью S и затем S). Так злоумышленник может делать дополнительные выводы об обеих последовательностях. Однако для этого понадобилась бы, в зависимости от протяженности и вида совместно используемой среды передачи, очень точная, а значит, и дорогая аппаратура. Например, при допущении распространения волн со скоростью света, на участке шины CAN длиной 4 м максимальная разность времен прохождения сигналов составляет примерно 13 нс.
Чтобы еще более затруднить такие атаки, в предпочтительном варианте описанных выше способов генерирования ключей в качестве меры противодействия предлагается, чтобы по меньшей мере один из двух абонентов, в частности оба абонента, слегка изменяли моменты передачи своих отдельных сигналов или отдельных битов в битовых последовательностях. Такое изменение моментов передачи может выполняться, например, стохастически. Создание такого джиттера (дрожания) существенно затрудняет возможному злоумышленнику, способному прослушивать открытую передачу в канале передачи между первым и вторым абонентами, выводы о различных моментах начала и окончания передачи соответствующих абонентов. Под легким изменением моментов передачи понимается изменение, при котором гарантируется то, что в предусмотренные моменты считывания сигналов результаты наложения, используемые в описанном способе генерирования ключей, будут четко выражены. Также можно изменять длительность передачи определенных сигналов или битов.
Выводы о происхождении определенных сигналов злоумышленник (третий абонент) может делать при передаче данных и по различным, характерным для соответствующего абонента амплитудам сигналов, проходящих между первым и вторым абонентами, таким образом получая информацию о битовых последовательностях, локально генерируемых первым и вторым абонентами. В еще одном предпочтительном варианте с той же целью можно слегка изменять амплитуды передаваемых сигналов (в рамках допустимых отклонений). Это затрудняет соотнесение злоумышленником (третьим абонентом) сигналов с одним из первого и второго абонентов по различным амплитудам сигналов, проходящих между первым и вторым абонентами.
Предлагаемые способы отражают подход к генерированию симметричных криптографических ключей между двумя узлами, предполагающий использование свойств уровня передачи битов. Этот подход подходит, в частности, для проводных и оптических систем передачи данных (систем связи) при условии, что они поддерживают амплитудную манипуляцию или побитовый арбитраж шины (как, например, сетевые протоколы CAN, TTCAN, CAN-FD, LIN, I2C). Вместе с тем, данный подход может найти применение и в беспроводных (построенных на основе радиосвязи) системах связи, предпочтительно с очень малым расстоянием между отправителем и получателем и возможным действием в пределах прямой видимости.
В принципе, для осуществления изобретения подходят любые системы передачи данных, позволяющие различать доминантные и рецессивные биты (как этот описано выше). Таким образом, описанные способы могут использоваться во множестве беспроводных, проводных и оптических систем передачи данных. При этом описанный подход представляет особый интерес для систем межмашинной связи, т.е. для передачи данных между различными датчиками, исполнительными механизмами и т.д., которые, как правило, располагают весьма ограниченными ресурсами и которые могут не настраиваться вручную в условиях эксплуатации при оправданных затратах.
К другим возможным областям использования изобретения относятся, например, бытовая автоматизация и автоматизация зданий, телемедицина, системы коммуникаций Car-to-X или техника промышленной автоматизации. Использование изобретения также представляет особый интерес в отношении перспективных микро- и нанодатчиков с радиоинтерфейсом, а также в любых областях применения шины CAN, в частности в сетях транспортных средств или технике автоматизации.