ГЕНЕРАЦИЯ КРИПТОГРАФИЧЕСКОГО КЛЮЧА
GENERATION OF CRYPTOGRAPHIC KEY

Область техники, к которой относится изобретение
Настоящее изобретение в целом относится к способу генерации криптографического ключа. Конкретно, изобретение относится к способу генерации криптографического ключа, обеспечивающему высокий уровень безопасности.
Предшествующий уровень техники
Протокол согласования аутентификации и распределения ключей (АКА) является основанным на ответе на вызов протоколом, который использует симметричную криптографию. Основные цели протокола АКА включают в себя взаимную аутентификацию двумя объектами, связывающимися друг с другом, и ввод в действие криптографических ключей для защиты осуществляемой между ними связи. Вариантом протокола АКА является UMTS AKA, включенный в архитектуру безопасности, стандартизованную консорциумом 3GPP для мобильных систем связи третьего поколения (3G) в технической спецификации 3G TS 33.102.
Основная концепция протокола UMTS AKA представлена на фиг. 3. Согласно этому рисунку протокол UMTS AKA выполняется между пользовательским оборудованием (UE) и сетевым объектом (NE). Сетевой объект инициирует протокол АКА, посылая в UE запрос на аутентификацию пользователя. Вместе с запросом в UE посылаются случайный вызов или случайный код (RAND) и маркер аутентификации (AUTN). После того как будут приняты RAND и AUTN, то среди прочего UE вычисляет ключ шифрования (СК) и ключ целостности (IK) и затем использует их для функций шифрования и целостности.
3GPP предпринимает стандартизацию так называемых сетей связи "свыше 3G". "Развитие архитектуры системы" (SAE) и "Долгосрочное развитие" (LTE) являются двумя тесно связанными аспектами сети "свыше 3G". По сравнению с обычными сетями 3G сеть, основанная на стандарте SAE/LTE, может налагать более высокие и более безопасные требования. Например, может потребоваться больше криптографических ключей для обеспечения безопасности связи на разных уровнях. 3GPP рекомендовал в другом, относящемся к стандартам документе, 3GPP TR 33.821, иерархию ключей с целью получения большего числа криптографических ключей для использования в SAE/LTE.
ASME
ASME
На фиг. 2 показана эта иерархия ключей. На самом верху иерархии располагается ключ К, долгосрочный криптографический ключ, совместно используемый универсальным модулем идентификации абонента (USIM) в UE и центром аутентификации (AuC), находящимся в сети. Одним уровнем ниже располагается пара криптографических ключей СК и IK, которые выводятся оборудованием UE, конкретно модулем USIM в нем, таким же или подобным образом, как и в вышеупомянутой операции UMTS AKA. Еще ниже в иерархии находится ключ K, который выводится оборудованием UE из СК, IK и, если необходимо, из некоторых других параметров. Будучи выведенным, K передается из AuC в сеть доступа, конкретно в объект управления безопасностью доступа (ASME) сети SAE/LTE и затем совместно используется UE и сетью. Когда сеть доступа основана на технологии LTE, функциональные свойства ASME обслуживаются объектом управления мобильностью (ММЕ).
ASME
Ключ K и ключи, располагающиеся "ниже" по иерархии, могут быть выведены за счет применения определенной криптографической функции. Например,
ASME
-
K = KDF(CK||IK, 0x02||PLMNID||<другой_параметр>),
где KDF является функцией выведения ключа (KDF), основанной на стандартной архитектуре загрузки (GBA). Одна GBA KDF определена в 3G TS 33.220.
-
GBA KDF может позволить использовать криптографические хеш-функции, такие как хеш-функции алгоритма безопасного хеширования (SHA). Среди многих других SHA хеш-функций SHA-256 является в высшей степени безопасным вариантом, поскольку она задумана как устойчивая к конфликтным ситуациям и действует подобно псевдослучайной функции. Как подсказывает ее наименование, SHA-256 является хеш-функцией алгоритма безопасного хеширования с длиной дайджеста (выхода) в 256 битов. PLMNID является идентификатором сети, обслуживающей UE.
ASME
Было осознано, что для достижения высокого уровня безопасности недостаточно основывать GBA KDF функцию преимущественно только на СК и IK. Основной причиной этого является риск, что данное UE может дважды получить один и тот же СК или два разных UE могут получить один и тот же СК. В таких случаях подрывается "уникальность" входов в KDF, и может возникнуть конфликт между различными UE (использующими один и тот же K).
Следует отметить, что тогда как несомненно, что KDF(x) производит тот же ключ, что и KDF(y), если x=y, обратное утверждение не всегда справедливо. То есть если даже x≠y, может по-прежнему случиться, что KDF(x)=KDF(y). Однако это является маловероятным событием, поскольку рекомендуется, чтобы KDF основывалась на SNA-256, которая, как упоминалось выше, была задумана как устойчивая к конфликтам функция. Таким образом, применительно к описываемому здесь способу можно без риска предположить, что KDF(x)=KDF(y), тогда и только тогда, когда x=y. Такое предположение позволяет сосредоточить описываемый здесь способ на утверждении "уникальности" входов в KDF.
Стандартизующий орган спецификации GBA KDF (ETSI/SAGE, Группа экспертов специальных алгоритмов) отметил вышеупомянутую проблему и рекомендовал включить идентификатор индивидуального пользователя UE (IMPI) в <другой_параметр> (<other parameters>), чтобы устранить конфликты между различными UE. В качестве дополнительной рекомендации случайный код, такой как RAND, может быть также включен в <другой_параметр>. Это описано в информационном сообщении от ETSI/SAGE в 3GPP SA3 (в документе 3GPP за номером S3-030219).
Однако было обнаружено, что вышеупомянутые рекомендации по-прежнему не гарантируют "уникальность" входов в KDF. Это можно увидеть из приведенного ниже анализа свойств безопасности функции GBA KDF и ее использования в SAE/LTE для одного и того же UE (например, одного и того же IMPI).
Во-первых, рассматривается следующая базовая конструкция:
KDF (CK, IMPI).
Так как было предположено, что IMPI=IMPI' (когда UE фиксировано), эта базовая конструкция приведет к конфликту для двух входов (СК, IMPI), (CK',IMPI'), тогда и только тогда, когда CK=CK'.
Во-вторых, рассматривается другая конструкция, которая ближе к реальной GBA KDF:
KDF(CK||IK,IMPI).
Однако включение IK во входы не изменяет вышеупомянутой природы конфликта, как может показаться сначала. То есть KDF(CK||IK,IMPI) будет равна KDF(CK'||IK',IMPI), тогда и только тогда, когда CK=CK'. Для того чтобы понять, почему включение IK не должно помочь, необходимо рассмотреть, как создаются СК и IK криптографическим алгоритмом, выполняемом на UE.
4
Типовым криптографическим алгоритмом со стороны UE является алгоритм Milenage, который показан на фиг. 9. На фиг. 9 Ek означает алгоритм улучшенного стандарта шифрования (AES), известный также как алгоритм Rijndael, использующий ключ К (запомненный в AuC и USIM оборудования UE). Рассмотрим теперь, что происходит, если CK=CK'. Поскольку AES является перестановкой (отображением "один к одному"), это означает, что промежуточное значение (указываемое жирной стрелкой) однозначно определяется выходом f3, который оказывается равным СК. Но из этого следует, что значение в точке, указываемой жирной стрелкой, при генерации СК должно быть таким же, каким было значение в той же точке при генерации CK'. Это в свою очередь означает, что значения на входе в f4 должны быть одинаковыми, а следовательно, должны быть одинаковыми и результирующие значения f. Когда это происходит, значение f4 равно IK. Таким образом, было показано, что CK=CK' тогда и только тогда, когда IK=IK'.
Затем рассмотрим "улучшенную" конструкцию, соответствующую рекомендации стандартизующего органа (SAGE), то есть включающую в себя RAND на входах:
KDF (CK||IK, RAND||IMPI).
входы
Предположим, что CK=CK' (и, таким образом, IK=IK'). Хочется надеяться, что использование RAND будет гарантировать уникальность. Однако это не так. Снова рассмотрим "уместную" часть алгоритма Milenage, которая создает СК и IK из RAND. Как показано на фиг. 9, существует ситуация, при которой значение у жирной стрелки, соответствующее RAND, является таким же, что и значение, соответствующее RAND'. Но опять AES(Ek) является перестановкой, так что  должны быть также равны, то есть RAND=RAND'. (Тот факт, что AES зависит от К, не помогает, так как предполагается фиксированное UE, и, таким образом, один и тот же К будет иметь место в обоих случаях).
-
-
Другими словами, было показано, что (CK||IK, RAND||IMPI)=(CK'||IK',RAND'||IMPI) тогда и только тогда, когда RAND=RAND'. В случае SAE/LTE идентификатор PLMNID может быть также включен во входы, но так как вполне вероятно, что UE находится в одной и той же сети несколько раз, на этот параметр PLMNID нельзя надеяться в смысле обеспечения гарантии уникальности.
Другим подходом к попытке устранения конфликта может быть использование алгоритма, отличающегося от AES, для криптографической обработки алгоритмов f3 и f4. Дело в том, что проведенный выше анализ был основан на том факте, что AES является перестановкой. Поэтому было бы возможно использовать алгоритм, не являющийся перестановкой (отображение "многие к одному"), вместо AES. Это проблематично по двум причинам. Во-первых, существующие USIM должны быть приспособлены к тому, чтобы стать подходящими для 3GPP SAE архитектуры. Во-вторых, при выборе отличающейся от перестановки функции реально возрастает возможность того, что два выхода, например, f3 будут вступать в противоречие.
Отсутствие уникальности входов может стать серьезной проблемой безопасности. Поскольку конфликт может возникнуть тогда и только тогда, когда RAND=RAND', и поскольку RAND составляет 128 битов, возникновение конфликта ожидается после около 2^(128/2)=2^64 аутентификаций (это так называемый "парадокс дней рождения"). Очевидно, что это ниже чем целевой уровень безопасности для GBA (который составляет 128 битов). Для LTE ситуация даже хуже, так как для LTE требуется обеспечить уровень безопасности в 256 битов. Таким образом, высокая вероятность конфликта является значительным препятствием к обеспечению требуемого уровня безопасности в SAE/LTE.
Сущность изобретения
В соответствии с этим существует необходимость в решении, которое исключает вышеупомянутые конфликты. Это решение должно также идеально работать с уже введенными в действие USIM и не требовать замены всех USIM.
Согласно первому аспекту обеспечен способ генерации криптографического ключа. Криптографический ключ используется, среди прочего, для защиты связи между двумя объектами. Способ выполняется первым объектом. Способ составляет часть распределенной операции безопасности, которая инициируется вторым объектом. Способ содержит обеспечение по меньшей мере двух параметров, причем первый параметр либо содержит в себе, либо выводится из ряда криптографических ключей, которые были вычислены первым объектом при выполнении операции безопасности, а второй параметр либо содержит в себе, либо выводится из маркера, имеющего разное значение при каждой инициации операции безопасности вторым объектом для первого объекта (другими словами, значение маркера никогда не бывает одинаковым для двух операций безопасности); и применение функции выведения ключа для генерации криптографического ключа на основе обеспеченных параметров.
Выражение "параметр содержит Х" может означать, что переменная Х, в ее строковом формате, образует параметр или его часть. Выражение "параметр выводится из Х" может означать, что параметр является результатом применения определенных функций, таких как математические функции, по меньшей мере к переменной Х. Примеры функций включают в себя, но не ограничиваются ими, арифметические операции, логические операции, строковые операции или любые их сочетания. Арифметическая операция может быть сложением, вычитанием, умножением и т.п., и любыми их значащими сочетаниями. Логическая операция может быть операцией AND, OR, исключающего ИЛИ (xOR), NOT и т.п., и любыми их значащими сочетаниями. Строковая операция может быть операцией объединения, реверсирования, замены и т.п., и любыми их значащими сочетаниями. Дополнительно арифметическая операция, логическая операция и строковая операция могут быть объединены.
В частности, вышеупомянутый маркер может содержать в себе или быть выведен из порядкового номера (SQN), указывающего число раз, когда была инициирована безопасная операция вторым объектом для первого объекта. При каждой инициации SCN может дискретно увеличиваться вторым активным объектом. Такой механизм обеспечивает, что маркер будет иметь другое значение для каждой инициированной операции безопасности.
Маркер может принимать много форм. В одном случае сам SQN может быть маркером. Альтернативно маркер может выводиться из SQN, используя алгоритм, включающий в себя определенные математические операции, такие как по меньшей мере одна из арифметической операции, логической операции и строковой операции. Например, маркер может содержать в себе или выводиться из маркера аутентификации (AUNT), созданного вторым объектом на основе SCN и доставленного в первый объект. Такое создание и доставка могут быть частью операции безопасности.
В частности, маркер может содержать операцию исключающего ИЛИ для SQN и ключа анонимности (АК). Более конкретно, маркер может быть объединением исключающего ИЛИ для SQN и ключа анонимности (АК), поля управления аутентификацией и ключами (AMF) и кода аутентификации сообщения (МАС). Объединение может быть выражено следующим образом:
маркер = AUTN = (SQN xOR AK)||AMF||MAC
или
маркер = функция (AUTN) = функция ((SQN xOR AK)||AMF||MAC).
-
Второй параметр может дополнительно содержать в себе или выводиться из случайного вызова или случайного кода (RAND). RAND может создаваться вторым объектом и доставляться первому объекту как часть операции безопасности. Второй параметр может еще дополнительно содержать в себе или выводиться из идентификатора первого объекта. Этот идентификатор может быть идентификатором индивидуального пользователя (IMPI) или международным идентификатором абонента мобильной связи (IMSI). Более того, второй параметр может содержать в себе или выводиться из идентификатора сети связи и, конкретно, обслуживающей сети первого объекта. Например, этот идентификатор может быть идентификатором наземной сети мобильной связи общего пользования (PLMNID).
-
В частности, второй параметр может содержать в себе или выводиться из объединения 0х02, PLMNID, RAND, IMPI или IMSI и маркера. Это может быть выражено следующим образом:
-
0x02||PLMNID||RAND||IMPI||маркер.
Когда маркером является сам SQN, вышеприведенное выражение принимает вид:
-
0x02||PLMNID||RAND||IMPI||SQN,
а когда маркером является AUTN, это выражение принимает вид:
-
0x02||PLMNID||RAND||IMPI||AUTN.
Что касается первого параметра, используемого в этом способе, то этот параметр содержит в себе или выводится из ряда криптографических ключей, которые были получены первым объектом при выполнении операции безопасности. Ряд криптографических ключей может содержать в себе или выводиться из ключа шифрования (СК) и ключа целостности (IK).
СК и IK могут быть ключом шифрования и ключом целостности, вычисленными первым объектом на основе AUTN и RAND. AUTN и RAND могут быть доставлены от второго объекта. Вычисление, так же как и доставка AUTN и RAND, могут быть частями операции безопасности.
В одном варианте реализации первый параметр может содержать в себе или выводиться из объединения СК и IK. Математически это может быть выражено следующим образом:
CK||IK.
ASME
Описанный здесь способ генерирует криптографический ключ. Этот ключ может совместно использоваться по меньшей мере первым объектом и вторым объектом в любой последующей операции связи между ними. В определенных вариантах реализации этот ключ может быть ключом K, который показан в "иерархии ключей" на фиг. 2 и который может совместно использоваться первым объектом и объектом управления безопасным доступом (ASME) во втором объекте.
ASME
Этот способ может быть расширен, чтобы содержать применение одной или более дополнительных функций выведения ключа с целью генерации большего числа криптографических ключей. Такая генерация основана на криптографическом ключе или использует криптографический ключ, созданный в базовом, нерасширенном способе, описанном выше, например, K.
eNB
Криптографические ключи, созданные по расширенному способу, могут включать в себя по меньшей мере один из ряда криптографических ключей для защиты трафика на уровне не связанном с предоставлением доступа (NAS); ряда криптографических ключей для защиты трафика на уровне, управления радиоресурсами (RRC); ряда криптографических ключей для защиты трафика в плоскости пользователя (UP); и промежуточного криптографического ключа, такого как K, для выведения криптографических ключей для защиты RRC трафика и/или криптографических ключей для защиты UP трафика. Чтобы облегчить понимание этих ключей, сделана ссылка на фиг. 2, на которой представлена иерархия ключей, используемых в SAE/LTE.
NASenc
NASint
RRCenc
RRCint
UPenc
В частности, ряд криптографических ключей для защиты NAS трафика может содержать ключ для защиты NAS трафика алгоритмом шифрования (K) и/или другой ключ для защиты NAS трафика алгоритмом целостности (K). Подобным образом ряд криптографических ключей для защиты RRC трафика может содержать ключ для защиты RRC трафика алгоритмом шифрования (K) и/или другой ключ для защиты RRC трафика алгоритмом целостности (K). Далее ряд криптографических ключей для защиты UP трафика может содержать ключ для защиты UP трафика алгоритмом шифрования (K).
Применительно к описываемому здесь способу "первый объект" может быть пользовательским оборудованием, таким как мобильная станция. "Второй объект" может быть объектом, расположенным внутри сети связи, то есть "сетевым объектом". В частности, второй объект может быть расположен в SAE/LTE сети.
Второй объект может содержать центр аутентификации (AuC)/сервер данных собственных абонентов (HSS) и объект управления мобильностью (ММЕ). MME может быть ответственен за инициацию операции безопасности для первого объекта. Генерируемые криптографические ключи могут создаваться AuC/HSS и совместно использоваться первым объектом и ММЕ. AuC/HSS может дискретно увеличивать SQN, конкретно при каждой инициации операции безопасности для первого объекта. Дополнительно AuC/HSS может также создавать AUTN на основе SQN.
Упоминаемая здесь операция безопасности может выполняться первым и вторым объектами совместно. Например, операция безопасности может быть основана на процедуре АКА, такой как протокол UMTS АКА.
Функция выведения ключа, рассматриваемая в этом способе, может быть функцией выведения ключа в архитектуре стандартной загрузки (GBA). Функция вывода ключа в архитектуре стандартной загрузки может использовать хеш-функцию алгоритма безопасного хеширования (SHA). В частности, может использоваться хеш-функция алгоритма безопасного хеширования с дайджестом длиной в 256 битов (SHA-256).
Согласно другому аспекту обеспечен компьютерный программный продукт. Компьютерный программный продукт содержит программные кодовые участки для выполнения этапов описанного здесь способа, когда компьютерный программный продукт исполняется в компьютерной системе для вычислительного устройства. Компьютерный программный продукт может запоминаться на машиночитаемом носителе записи.
В общем случае решение может быть реализовано на практике посредством аппаратного оборудования, программного обеспечения или подхода с сочетанием аппаратного оборудования и программного обеспечения.
Что касается реализации посредством аппаратного оборудования, обеспечивается устройство, выполненное с возможностью генерации криптографического ключа для объекта связи. Устройство может выполнять операцию безопасности, в которой генерация криптографического ключа может быть ее частью. Устройство содержит первый компонент, выполненный с возможностью обеспечения по меньшей мере двух параметров, при этом первый параметр может содержать в себе или выводиться из ряда криптографических ключей, вычисленных объектом связи при выполнении операции безопасности, а второй параметр может содержать в себе или выводиться из маркера, принимающего другое значение при каждой инициации операции безопасности для объекта связи. Устройство дополнительно содержит второй компонент, выполненный с возможностью выполнения функции выведения ключа с целью генерации криптографического ключа на основе обеспеченных параметров. Как было сказано выше, маркер может принимать многие возможные формы.
Маркер может содержать в себе или выводиться из SQN, указывающего число раз, когда была инициирована операция безопасности для объекта связи. В одном варианте реализации сам SQN является маркером. Альтернативно, маркер может выводиться из SQN, используя алгоритм, включающий в себя по меньшей мере одну из арифметической операции, логической операции и строковой операции. Например, маркер может содержать в себе или выводиться из AUTN, который создан на основе SQN и доставлен в объект связи, причем это создание и доставка являются частями операции безопасности. Например, маркер может быть объединением исключающего ИЛИ для SQN и ключа анонимности (АК), поля управления аутентификацией и ключами (AMF) и кода аутентификации сообщения (МАС). Конкретно это может быть выражено следующим образом:
маркер = AUTN = (SQN xOR AK)||AMF||MAC.
-
В дополнение к маркеру второй параметр может также содержать в себе или выводиться из RAND. RAND может доставляться в объект связи как часть операции безопасности. Дополнительно второй параметр может содержать в себе или выводиться из идентификатора объекта связи. Примером идентификатора является идентификатор индивидуального пользователя (IMPI) объекта связи. Более того, второй параметр может содержать в себе или выводиться из идентификатора обслуживающей сети объекта связи. Такой идентификатор может быть идентификатором наземной сети мобильной связи общего пользования (PLMNID).
В конкретном примере второй параметр может содержать в себе или выводиться из объединения 0х02, PLMN_ID, RAND, IMPI или IMSI и маркера. Например, второй параметр может быть выражен как:
0x02||PLMN_ID||RAND||IMPI||маркер.
Когда маркером является SQN, приведенное выше выражение принимает вид:
0x02||PLMN_ID||RAND||IMPI||SQN,
а когда маркером является AUTN, это выражение становится следующим:
0x02||PLMN_ID||RAND||IMPI||AUTN.
Как было сказано выше, первый параметр может содержать в себе или выводиться из ряда криптографических ключей. В частности, этот ряд криптографических ключей может содержать ключ шифрования (СК) и ключ целостности (IK), которые были вычислены объектом связи как часть операции безопасности. Альтернативно ряд криптографических ключей может быть выведен из ключа шифрования и ключа целостности.
В конкретном варианте реализации первый параметр может содержать в себе или быть выведен из объединения СК и IK, что может быть выражено как:
CK||IK.
Устройство может генерировать не только криптографический ключ на основе предоставленных первого и второго параметров, но и большее число криптографических ключей на основе созданного криптографического ключа. Для того чтобы сделать это, устройство может быть выполнено с возможностью применения одной или более дополнительных функций вывода ключа для генерации большего числа криптографических ключей на основе уже созданного криптографического ключа.
eNB
Это "большее число криптографических ключей" может содержать один из ряда криптографических ключей для защиты трафика на уровне, не связанном с предоставлением доступа (NAS), ряда криптографических ключей для защиты трафика на уровне радиоресурсов (RRC), ряда криптографических ключей для защиты трафика в плоскости пользователя (UP) и промежуточного ключа K с целью вывода криптографических ключей для защиты RRC трафика и/или криптографических ключей для защиты UP трафика.
Упомянутый выше объект связи может быть пользовательским оборудованием, таким как мобильная станция (например, мобильный телефон или сетевая карта).
Согласно следующему аспекту обеспечено пользовательское оборудование, содержащее представленное выше устройство. Пользовательское оборудование может быть мобильной станцией.
Согласно еще одному аспекту обеспечена система, содержащая вышеупомянутое пользовательское оборудование. Система содержит также сетевой объект. Сетевой объект может быть использован внутри SAE/LTE сети. Сетевой объект может содержать AuC/HSS и ММЕ. ММЕ может нести ответственность за инициацию операции безопасности для пользовательского оборудования. AuC/HSS может генерировать криптографический ключ. Созданные криптографические ключи могут совместно использоваться пользовательским оборудованием и ММЕ. AuC/HSS может дискретно увеличивать SQN, конкретно при каждой инициации операции безопасности для пользовательского оборудования. Дополнительно AuC/HSS может также создавать AUTN на основе SQN.
Краткое описание чертежей
В дальнейшем способ генерации криптографических ключей будет описан со ссылкой на приведенные в качестве примера варианты реализации, представленные на следующих чертежах:
ФИГ.1 - диаграмма, иллюстрирующая основную концепцию UMTS AKA протокола;
ФИГ.2 - блок-схема, иллюстрирующая иерархию ключей, предложенную системой SAE/LTE;
ФИГ.3 - блок-схема, представляющая вариант реализации устройства;
ФИГ.4 - блок-схема, представляющая вариант реализации системы;
ФИГ.5 - блок-схема, представляющая вариант реализации способа;
ФИГ.6 - блок-схема, представляющая последовательность выполнения операции UMTS AKA, генерацию вектора аутентификации сетевым объектом.
ФИГ.7 - диаграмма, представляющая другую последовательность выполнения операции UMTS AKA, аутентификацию и ввод в действие ключа.
ФИГ.8 - блок-схема, представляющая в общем виде функцию аутентификации, выполняемую UE как часть операции UMTS AKA;
ФИГ.9 - блок-схема, представляющая конкретный криптографический алгоритм для выполнения вышеупомянутой функции аутентификации в UE; и
ФИГ.10 - блок-схема, представляющая конкретные детали вышеупомянутого криптографического алгоритма
Подробное описание
В последующем описании в целях пояснения, а не ограничения, представлены конкретные детали, такие как конкретная последовательность этапов, интерфейсы и конфигурации, для того чтобы обеспечить полное понимание способа генерации криптографического ключа. Для специалистов в данной области техники должно быть очевидно, что способ может быть осуществлен на практике в других вариантах реализации, имеющих отличия от этих конкретных деталей. Например, хотя этот способ будет главным образом описан в контексте UMTS AKA протокола и сетевой среды SAE/LTE, специалистам в данной области техники будет понятно, что этот способ может быть также практически применим в сочетании с другими протоколами безопасности, архитектурами или средами.
Более того, специалисты в данной области техники оценят, что функции, поясняемые ниже, могут быть реализованы за счет использования программного обеспечения, действующего в сочетании с программируемым микропроцессором или компьютером общего назначения. Должно быть также понятно, что хотя техническое воплощение описывается в форме способов и устройств, техническое воплощение может быть также встроенным в компьютерный программный продукт, а также в систему, содержащую процессор компьютера и память, подсоединенную к компьютеру, причем эта память имеет одну или более закодированных программ, способных выполнять описанные здесь функции.
На фиг. 3 показан пример реализации устройства 100, выполненного с возможностью генерации криптографического ключа для объекта связи (не показан на фиг. 3). Объект связи выполнен с возможностью выполнения операции безопасности. Устройство 100 содержит первый компонент 102 и второй компонент 104. Первый компонент 102 выполнен с возможностью обеспечения по меньшей мере двух параметров, условно обозначенных стрелками 106 и 108.
Первый параметр 106 содержит в себе или вводится из ряда криптографических ключей 110 и 112. (Хотя на рисунке показаны два ключа, ряд криптографических ключей может включать в себя любое число ключей). Ряд криптографических ключей был вычислен объектом связи при выполнении операции безопасности. Вывод ряда криптографических ключей 110 и 112 в первый параметр 106 условно показан как блок 114. Второй параметр 108 содержит в себе или выводится из маркера 116. Маркер 116 принимает другое значение при каждой инициации операции безопасности для объекта связи. Вывод маркера 116 во второй параметр 108 условно показан как блок 118. Второй компонент 104 устройства 100 выполнен с возможностью выполнения функции вывода ключа для генерации криптографического ключа 120 на основе обеспеченных параметров 106 и 108.
На фиг. 4 представлен вариант реализации системы 200, содержащей вышеупомянутое устройство 100. Устройство 100 может содержаться в объекте 202 связи, которое может быть UE, таким как мобильная станция. Конечно, объект 202 связи может быть любым подходящим типом объекта связи, способным включать в себя устройство 100. Дополнительно система содержит сетевой объект 204, который может находиться в сети SAE/LTE. Сетевой объект 204 может содержать AuC или HSS и ММЕ. Может быть также другой объект связи в сети SAE/LTE.
В соответствии с устройством 100 генерации криптографического ключа, показанным на фиг. 3 и 4, блок-схема 300, иллюстрирующая вариант реализации способа генерации криптографического ключа, показана на фиг. 5. Созданный ключ используется для защиты связи между двумя объектами. Первый объект 302 может соответствовать объекту 202 связи, изображенному на фиг. 4, а второй объект 304 связи может соответствовать сетевому объекту 204 на фиг. 4. Первый объект может представлять собой UE. Однако вариант реализации не ограничивается сценарием "UE-сетевой объект". Напротив, он может быть применен в общем случае к любым двум объектам связи.
ММЕ может нести ответственность за инициацию операции безопасности для объекта 202 связи. Созданные криптографические ключи могут совместно использоваться ММЕ и объектом 202 связи.
Конкретно вариант реализации способа выполняется первым объектом 302 связи как часть операции безопасности, условно обозначенной стрелкой 300', которая инициируется вторым объектом 304 (конкретно ММЕ в нем) для первого объекта 302. Сам вариант реализации содержит два этапа 306 и 308. На этапе 306 обеспечиваются по меньшей мере два параметра (106 и 108 на фиг. 3). Первый параметр содержит в себе или выводится из ряда криптографических ключей (110 и 112 на фиг. 3), которые были вычислены первым объектом 302 при выполнении операции 300' безопасности. Второй параметр содержит в себе или выводится из маркера (116 на фиг. 3), который принимает другое значение при каждой инициации операции 300' безопасности вторым объектом 304 для первого объекта 302. На втором этапе 308 применяется функция выведения ключа для генерации криптографического ключа (120 на фиг. 3) на основе обеспеченных параметров (106 и 108 на фиг. 3).
Ниже приведены существенные подробности для пояснения способа генерации криптографического ключа с особым акцентом на то, как этот способ может успешно устранить связанные с ключами конфликты между двумя UE или, что более важно, между двумя отдельными исполнениями операции безопасности для одного и того же UE.
UE
HE
HE
Генерация криптографического ключа может быть частью UMTS AKA операции. UMTS AKA основывается на реализации, при которой UE, конкретно USIM в нем, и AuC/HSS в домашней среде (НЕ) UE совместно используют конкретный секретный ключ К, определенные функции f1, f2 аутентификации сообщений и определенные функции f3, f4, f5 генерации криптографических ключей. В дополнение к этому USIM и AuC/HSS отслеживают показания счетчиков или порядковые номера SQN и SQN, соответственно, чтобы поддержать аутентификацию сети. Например, AuC/HSS может дискретно увеличивать SQN конкретно при каждой инициации операции безопасности для первого объекта. UMTS AKA операция содержит ряд процедур, включая генерацию вектора аутентификации (AV) и аутентификацию и ввод в действие ключа.
Назначение процедуры AV заключается в том, чтобы обеспечить SN/VLR (или ММЕ) набором свежих AV от UE НЕ для выполнения ряда аутентификаций пользователя. Генерация векторов аутентификации НЕ-средой иллюстрируется на фиг. 6. На этом рисунке показано, что по приему запроса от SN/VLR, AUC/HSS посылает заказанный набор векторов аутентификации, AV (1…N), в SN/VLR. Каждый AV содержит случайное число (или случайный вызов) RAND, ожидаемый ответ XRES, ключ СК шифрования, ключ IK целостности и маркер AUTN аутентификации.
AuC/HSS начинает с генерации свежего порядкового номера SQN и непредсказуемого вызова RAND. Затем вычисляются следующие значения:
1
- код аутентификации сообщений MAC = f1(SQN||RAND||AMF), где f - функция аутентификации сообщений;
- ожидаемый ответ XRES = f2(RAND), где f2 - (возможно, усеченная) функция аутентификации сообщений;
- ключ шифрования CK = f3(RAND), где f3 - функция генерации ключа;
- ключ целостности IK = f4(RAND), где f4 - функция генерации ключа; и
- ключ анонимности AK = f5(RAND), где f5 - функция генерации ключа.
Наконец, создается маркер аутентификации AUTN=(SQN xOR AK||AMF||MAC). Он может быть создан AuC/HSS. Здесь АК - ключ анонимности, используемый для сокрытия SQN, так как тот может раскрыть подлинность и местоположение UE. Сокрытие SQN должно защитить от пассивных атак. Использование АК может осуществляться по желанию. Когда АК не используется, может условно использоваться значение АК=000…0.
Набор векторов AV посылается обратно запрашивающему SN/VLR в ответе на запрос аутентификации. Каждый AV действителен для одного (и только для одного) согласования аутентификации и ключей между SN/VLR и USIM.
Следующая процедура в UMTS AKA операции, аутентификация и ввод в действие ключа, должна взаимно аутентифицировать и вводить в действие новые ключи шифрования и целостности между SN/VLR и UE. Этот процесс иллюстрируется на фиг. 7. На этом рисунке показано, что когда SN/VLR инициирует согласование аутентификации и ключей, он выбирает следующий AV из набора и посылает параметры RAND и AUTN в UE. USIM проверяет, может ли быть принят AUTN и, если да, вырабатывает ответ RES, который посылается обратно в SN/VLR. Конкретно процедуры в UE показаны на фиг. 8.
отказ в аутентификации пользователя
Как следует из фиг. 8, по приему RAND и AUTN в первую очередь UE вычисляет ключ анонимности AK=f5(RAND) (или использует АК=000…0) и извлекает порядковый номер SQN=(SQN xOR AK)xOR AK. Затем UE вычисляет XMAC=f1(SQN||RAND||AMF) и сравнивает его с МАС, который включен в AUTN. Если они различаются, UE посылает  обратно в SN/VLR с указанием причины, и UE прекращает процедуру. Кроме того, UE проверяет, что принятый SQN находится в правильном диапазоне.
ответ на запрос аутентификации пользователя,
Если окажется, что SQN находится в правильном диапазоне, UE вычисляет RES=f2(RAND) и включает этот параметр в  посылаемый обратно в SN/VLR. Наконец, UE вычисляет ключ шифрования CK=f3(RAND) и ключ целостности IK=f4(RAND). Для того чтобы повысить эффективность, RES, СК и IK могут быть также вычислены раньше, в любой момент времени после приема RAND. UE может запомнить RAND в целях ресинхронизации.
После приема ответа на запрос аутентификации пользователя SN/VLR сравнивает RES с ожидаемым ответом XRES от выбранного вектора аутентификации. Если XRES равен RES, то аутентификация пользователя была принята. Заново вычисляемые ключи СК и IK будут затем передаваться USIM и SN/VLR в объекты, которые выполняют функции шифрования и целостности.
Из вышесказанного можно понять, что UMTS AKA операция основана на паре (RAND, AUTN), и AUTN содержит в себе или выводится из порядкового номера, SQN, как
AUTN=(SQN xOR AK)||AMF||MAC,
где АК - ключ анонимности, который может вырабатываться алгоритмом Milenage (см. фиг. 8) из вышеупомянутого выхода “f5”.
Следующая функция является первым решением вышеупомянутой проблемы конфликта:
KDF(CK||IK, RAND||IMPI||SQN),
где SQN, таким образом, включен во входы. Теперь, даже если два RAND одинаковы, то есть RAND=RAND', тот факт, что SQN всегда возрастает (например, на единицу), обеспечивает, что входы являются разными, уникальными или отличающимися друг от друга.
Альтернативное решение должно использовать:
KDF(CK||IK, RAND||IMPI||AUTN).
Это решение может быть проще в реализации, так как AUTN может использоваться по принципу "как есть" из сигнализации АКА. Однако "уникальность" входов в этом случае может быть не очевидной, поскольку
AUTN=(SQN xOR AK)||AMF||MAK,
и даже если SQN≠SQN', не может быть тотчас же ясно, что (SQN xOR AK) и (SQN' xOR AK)' будут разными, так как АК может потенциально "аннулировать" различия. Однако ниже может быть доказана различительная способность (SQN xOR AK).
Предположим, что
(CK||IK, RAND||IMPI||AUTN)=(CK'||IK', RAND'||IMPI||AUTN').
Было уже показано, что из этого следует, что CK=CK', IK=IK' и RAND=RAND'. Таким образом, остается проверить, может ли быть, что AUTN=AUTN'. Такая проверка может быть преобразована в проверку того, справедливо ли равенство:
(SQN xOR AK)||AMF||MAC=(SQN' xOR AK')||AMF'||MAC'.
Предположим без потери общности, что AMF=AMF' и MAC=MAC'. Тогда необходимо только проверить, может ли выполняться следующее условие:
SQN xOR AK=SQN' xOR AK'.
Напомним, что ожидается, что RAND=RAND'. Из алгоритма Milenage на фиг. 9 следует, что при этом AK=AK' (так как они были произведены из одинаковых RAND). Таким образом, должно быть:
SQN=SQN',
что является противоречием, поскольку, как ранее отмечалось, SQN всегда "дискретно возрастает", и поэтому SQN≠SQN'.
Тем самым доказано, что второе решение всегда гарантирует уникальность входов в KDF функцию.
В качестве решения в общем виде, вместо использования SQN или AUTN для достижения уникальности, подходит любой маркер, принимающий другое значение при каждой инициации сетью операции UMTS AKA для UE. Например, может быть использовано SQN xOR AK (образующее часть AUTN), поскольку оно (согласно проведенному выше анализу) обладает требуемым свойством уникальности.
Описанный выше способ генерации криптографических ключей предоставляет многочисленные преимущества. Например, он гарантирует уникальность KDF входов. Следовательно, он успешно устраняет хлопоты, обусловленные возможными идентичными входами. При этом способе созданный криптографический ключ сможет удовлетворять, например, высоким требованиям безопасности в SAE/LTE системах. Дополнительным преимуществом является то, что способ может быть реализован на основе уже действующих USIM, не требуя какой-либо замены USIM. Другое конкретное преимущество при использовании AUTN взамен SQN заключается в том, что изобретение может быть осуществлено в мобильном терминале (вне USIM).
Хотя варианты способа генерации криптографических ключей были проиллюстрированы прилагаемыми чертежами и раскрыты в вышеприведенном описании, должно быть понятно, что способ не ограничивается изложенными здесь вариантами реализации. Способ допускает многочисленные изменения, модификации и замены без отклонения от объема изобретения.