Защищенный канал с аутентификацией
Изобретение относится к области криптографии, в основном к защищенному каналу с аутентификацией, в частности, для вычисления сеансовых ключей для создания таких каналов для защиты цифрового контента. Технический результат - повышение криптостойкости канала с аутентификацией. Имеются два одноранговых устройства со сведениями об общем постоянном ключе Kperm Диффи-Хеллмана, идентификации и открытом ключе другого однорангового устройства. Первое одноранговое устройство выбирает первый кратковременный секретный ключ x и вычисляет первый соответствующий кратковременный открытый ключ gx, который посылает второму одноранговому устройству. Второе одноранговое устройство вычисляет второй кратковременный открытый ключ gy аналогичным способом и кратковременный ключ (Keph) коллективного пользования, определяет хэш-значение для gy, Keph, Kperm и своего идентификатора и посылает gy и хэш-значение первому из одноранговых устройств. Первое одноранговое устройство вычисляет Keph, верифицирует хэш-значение и определяет хэш-значение для gx, Keph, Kperm и своего идентификатора и посылает его второму одноранговому устройству, чтобы оно верифицировало это хэш-значение. После этого оба одноранговых устройства получают сеансовый ключ с помощью хэширования Keph. Устройства могут затем использовать сеансовый ключ для установления защищенного канала с аутентификацией (SAC). 4 н. и 1 з.п. ф-лы, 1 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится в основном к защищенному каналу с аутентификацией и, в частности, для вычисления сеансовых ключей для создания таких каналов для защиты цифрового контента, например, в цифровой телевизионной системе.
УРОВЕНЬ ТЕХНИКИ
Защищенные каналы с аутентификацией, хорошо известные в области криптографии, устанавливаются, чтобы разрешить двум устройствам со взаимной аутентификацией (часто называемыми одноранговыми) конфиденциально обмениваться информацией. Защищенный канал с аутентификацией должен предпочтительно иметь следующие характеристики:
- взаимная аутентификация одноранговых устройств;
- подтверждение ключа, то есть устанавливается общий секрет и, по меньшей мере, одно одноранговое устройство способно удостоверить, что секрет действительно является общим;
- перспективная секретность, то есть старые сеансовые ключи не могут быть вычислены, даже когда известны долговременные секретные ключи (например, секретные ключи сертификата).
Эти характеристики могут быть формально доказаны математически, и доказано, что если существует путь для обхода одной из описанных выше характеристик для данного криптографического протокола, то весь протокол может быть с относительной легкостью взломан.
С годами криптографическое сообщество предложило множество протоколов для защищенных каналов с аутентификацией. Доказано, что только некоторые из этих каналов реализуют описанные выше характеристики.
Все протоколы, которые обеспечивают каналы с требуемыми характеристиками, используют несколько различных криптографических базисных элементов: по меньшей мере, один асимметричный базисный элемент (например, асимметричное шифрование или цифровая подпись), хэш-функции, код аутентификации сообщения (КАС) (MAC) и в некоторых из них - другие базисные элементы, например, симметричное шифрование. Проблема с этими протоколами заключается в том, что они в значительной степени потребляют ресурсы и как таковые трудны для осуществления в устройстве с ограниченными вычислительными способностями, например, в портативном модуле защиты, подобном смарт-карте. Другая проблема заключается в том, что использование множества криптографических базисных элементов создает сложности для подтверждения того, что протокол защищен.
Настоящее изобретение обеспечивает протокол защищенного доступа к каналу, который имеет требуемые характеристики и который, в частности, пригоден для воплощения в устройстве с ограниченными вычислительными способностями.
По всему описанию принято, что, поскольку криптография представляет собой развитый уровень техники, ее основные принципы общеизвестны. Эти принципы по причине ясности и краткости не будут описаны более, чем это необходимо для понимания изобретения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В первом аспекте изобретение направлено на способ вычисления сеансового ключа, общего для первого и второго устройства (11, 21). Первое устройство имеет сертификат (Са), содержащий открытый ключ (ga) и соответствующий ему идентификатор (IDa) и сведения соответствующего ему идентификатора (IDa), секретный ключ (а) и открытый ключ (ga). Второе устройство имеет соответствующий сертификат и сведения. Первое устройство выбирает первый кратковременный секретный ключ (х), вычисляет первый кратковременный открытый ключ (gx) и посылает свой сертификат (Са) и первый кратковременный открытый ключ (gx) второму устройству. При приеме сертификата первого устройства (Са) и первого кратковременного открытого ключа (gx) второе устройство верифицирует сертификат первого устройства (Са), выбирает второй кратковременный секретный ключ (y), вычисляет второй кратковременный открытый ключ (gy), вычисляет кратковременный ключ (Keph) коллективного пользования из первого кратковременного открытого ключа (gx) и второго кратковременного секретного ключа (y), вычисляет постоянный ключ (Kperm) из открытого ключа (ga) первого устройства и своего собственного секретного ключа (b), вычисляет первое значение (H(gy, Keph, Kperm, IDb)) из второго кратковременного открытого ключа (gy), кратковременного ключа (Keph) коллективного пользования, кратковременного постоянного ключа (Kperm) и соответствующего ему идентификатора (IDb), и посылает первому устройству свой сертификат (Cb), второй кратковременный открытый ключ (gy) и первое значение (H(gy, Keph, Kperm, IDb)). При приеме сертификата (Cb) второго устройства, второго кратковременного открытого ключа (gy) и первого значения (H(gy, Keph, Kperm, IDb)) от второго устройства первое устройство верифицирует сертификат (Cb) второго устройства, вычисляет кратковременный ключ (Keph) коллективного пользования из второго кратковременного открытого ключа (gy) и первого кратковременного секретного ключа (х), вычисляет постоянный ключ (Kperm) из открытого ключа (gb) второго устройства и своего собственного секретного ключа (а), верифицирует первое значение (H(gy, Keph, Kperm, IDb)), вычисляет второе значение (H(gx, Keph, Kperm, IDa)) из первого кратковременного открытого ключа (gx), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и соответствующего ему идентификатора (IDa), и посылает второе значение (H(gx, Keph, Kperm, IDa)) второму устройству. При приеме второго значения (H(gx, Keph, Kperm, IDa)) второе устройство верифицирует второе значение (H(gx, Keph, Kperm, IDa)) и вычисляет сеансовый ключ (Ksess) как функцию кратковременного ключа (Keph) коллективного пользования. Первое устройство также вычисляет сеансовый ключ (Ksess) как функцию кратковременного ключа (Keph) коллективного пользования.
Во втором аспекте изобретение направлено на первое устройство (11) для участия вместе со вторым устройством (21) в вычислении сеансового ключа. Первое устройство имеет сертификат (Са), содержащий открытый ключ (ga) и соответствующий ему идентификатор (IDa) и сведения соответствующего ему идентификатора (IDa), секретный ключ (а) и открытый ключ (ga). Первое устройство содержит процессор (12) для выбора кратковременного секретного ключа (х); для вычисления первого кратковременного открытого ключа (gx); для посылки своего сертификата (Са) и первого кратковременного открытого ключа (gx) второму устройству; для приема сертификата (Cb) второго устройства, второго кратковременного открытого ключа (gy) и первого значения (H(gy, Keph, Kperm, IDb)) от второго устройства, при этом сертификат (Cb) содержит открытый ключ (gb) и идентификатор (IDb) второго устройства, и первое значение (H(gy, Keph, Kperm, IDb)) вычислено из второго кратковременного открытого ключа (gy), кратковременного ключа (Keph) коллективного пользования и идентификатора (IDb), соответствующего второму устройству; для верификации сертификата (Cb) второго устройства; для вычисления кратковременного ключа (Keph) коллективного пользования из второго кратковременного открытого ключа (gy) и кратковременного секретного ключа (х); для вычисления постоянного ключа (Keph) из открытого ключа второго устройства (gb) и своего собственного секретного ключа (а); для верификации первого значения (H(gy, Keph, Kperm, IDb)); для вычисления второго значения (H(gx, Keph, Kperm, IDa)) из первого кратковременного открытого ключа (gx), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и идентификатора (IDa); для посылки второго значения (H(gx, Keph, Kperm, IDa)) второму устройству и для вычисления сеансового ключа (Ksess) как функцию кратковременного ключа (Keph) коллективного пользования.
В третьем аспекте изобретение направлено на второе устройство (21) для участия вместе с первым устройством (11) в вычислении сеансового ключа. Второе устройство имеет сертификат (Cb), содержащий открытый ключ (gb) и соответствующий ему идентификатор (IDb), и сведения соответствующего ему идентификатора (IDb), секретный ключ (b) и открытый ключ (gb). Второе устройство содержит процессор (22) для приема сертификата (Са) первого устройства и первого кратковременного открытого ключа (gx), при этом сертификат (Са) содержит открытый ключ (ga) и идентификатор (IDa) первого устройства; для верификации сертификата (Са) первого устройства; для выбора кратковременного секретного ключа (y); для вычисления второго кратковременного открытого ключа (gy); для вычисления кратковременного ключа (Keph) коллективного пользования из первого кратковременного открытого ключа (gx) и кратковременного секретного ключа (y); для вычисления постоянного ключа (Kperm) из открытого ключа (ga) первого устройства и своего собственного секретного ключа (b); для вычисления первого значения (H(gy, Keph, Kperm, IDb)) из второго кратковременного открытого ключа (gy), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и соответствующего ему идентификатора (IDb); для посылки первому устройству своего сертификата (Cb), второго кратковременного открытого ключа (gy) и первого значения (H(gy, Keph, Kperm, IDb)); для приема второго значения (H(gx, Keph, Kperm, IDa)) от первого устройства, причем второе значение вычисляется из первого кратковременного открытого ключа (gx), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и идентификатора (IDa), соответствующего первому устройству; для верификации второго значения (H(gx, Keph, Kperm, IDa)); и для вычисления сеансового ключа (Ksess) как функции кратковременного ключа (Keph) коллективного пользования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 иллюстрирует обмен сеансовыми ключами согласно варианту осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
Фиг.1 иллюстрирует обмен сеансовыми ключами согласно варианту осуществления настоящего изобретения.
До начала выполнения способа первое устройство 11 знает свой идентификатор IDa, свой собственный секретный ключ и открытый ключ ga. Открытый ключ ga представляет собой короткую запись для ga mod р, как общеизвестно из уровня техники, где а является секретным ключом первого устройства, g является известным генератором и р является известным простым числом. Второе устройство 21 имеет соответствующие сведения: IDb, b, gb. Сертификаты для устройств содержат открытый ключ и идентификатор: Са (ga, IDa) и Cb (gb, IDb), соответственно. Устройства 11, 12 также имеют процессоры (CPU) 12, 22, приспособленные для выполнения шагов способа.
На шаге 252 первое устройство 11 выбирает, предпочтительно случайно, первый кратковременный секретный ключ х и вычисляет кратковременный открытый ключ gx, который оно посылает вместе со своим сертификатом Са (ga, IDa) второму устройству 21 в сообщении 254.
При приеме сообщения 254 на шаге 256 второе устройство 21 верифицирует сертификат Са (ga, IDa) первого устройства 11. Если верификация безуспешна, то второе устройство прекращает способ. Однако если верификация успешна, то на шаге 258 второе устройство выбирает, предпочтительно случайно, второй кратковременный секретный ключ y и вычисляет второй кратковременный открытый ключ gy, кратковременный ключ Keph=gxy коллективного пользования и постоянный ключ Kperm=gab Диффи-Хеллмана.
На шаге 260 второе устройство 21 затем вычисляет первое хэш-значение H(gy, Keph, Kperm, IDb) с помощью второго кратковременного открытого ключа gy, кратковременного ключа Keph коллективного пользования, постоянного ключа Kperm Диффи-Хеллмана и собственного идентификатора IDb, и подходящую хэш-функцию, например, одну из множества функций, известных в уровне техники. Понятно, что другие доступные функции, кроме хэш-функций, могут быть использованы для этого и последующих вычислений хэш-значения согласно варианту осуществления. Второе устройство 21 затем посылает второй кратковременный открытый ключ gy, свой сертификат Cb (gb, IDb) и первое хэш-значение H(gy, Keph, Kperm, IDb) первому устройству 11 в сообщении 262.
При приеме сообщения 262 на шаге 264 первое устройство 11 верифицирует сертификат Cb (gb, IDb) второго устройства 21. Если верификация безуспешна, то первое устройство 11 прекращает способ. Однако если верификация успешна, то первое устройство 11 на шаге 266 вычисляет кратковременный ключ Keph коллективного пользования и постоянный ключ Kperm Диффи-Хеллмана. На шаге 268 первое устройство 11 верифицирует первое хэш-значение с помощью той же самой хэш-функции, которую использовало второе устройство на шаге 260. Если первое хэш-значение не верифицировано, то первое устройство прекращает способ, но если первое хэш-значение верифицировано, то первое устройство 11 вычисляет второе хэш-значение H(gx, Keph, Kperm, IDa) на шаге 270 с помощью первого кратковременного открытого ключа gx, кратковременного ключа Keph коллективного пользования, постоянного ключа Kperm Диффи-Хеллмана и собственного идентификатора IDa. Первое устройство 11 посылает второе хэш-значение H(gx, Keph, Kperm, IDa) второму устройству 21 в сообщении 272.
При приеме сообщения 272 второе устройство 21 на шаге 274 верифицирует второе хэш-значение H(gx, Keph, Kperm, IDa) с помощью той же самой хэш-функции, которую использовало первое устройство на шаге 270. Если второе хэш-значение не верифицировано, то второе устройство 21 прекращает протокол, но если второе хэш-значение верифицировано, то второе устройство 21 вычисляет на шаге 276 сеансовый ключ Ksess путем вычисления хэш-значения кратковременного ключа Keph коллективного пользования. Затем оно посылает сообщение 278 «готов» первому устройству 11 для указания, что второе хэш-значение H(gx, Keph, Kperm, IDa) успешно верифицировано, а сеансовый ключ Ksess вычислен.
При приеме сообщения 278 «готов» от второго устройства 21 первое устройство 11 вычисляет на шаге 280 тот же самый сеансовый ключ Ksess путем вычисления хэш-значения кратковременного ключа Keph коллективного пользования с помощью той же самой хэш-функции, которую использовало второе устройство 21 на шаге 276. Затем первое устройство 11 посылает сообщение 282 «готов» второму устройству 21 для указания того, что оно также вычислило сеансовый ключ Ksess.
В этот момент как первое устройство 11, так и второе устройство 21 обладают сеансовым ключом Ksess, который может быть использован для защиты информации, пересылаемой между ними. Протоколом согласно изобретению гарантируется конфиденциальность секретных ключей, а аутентификация и подтверждение ключа являются взаимными. Более того, гарантируются также перспективная секретность и устойчивость против утечки предыдущего сеансового ключа. Специалисту будет понятно, что три хэш-функции, описанные в связи с шагами 212, 220 и 226, могут быть различными, одинаковыми или две из них одинаковы, а третья отличной.
Понятно, что там, где в описании даются ссылки на случайные числа, эти числа являются часто на практике псевдослучайными.
Выражение «модуль защиты» охватывает любой вид модулей защиты, портативный или стационарный, который содержит процессор и может быть использован для установления защищенного канала с аутентификацией согласно изобретению, например, смарт-карты, PC-карты (ранее известные как PCMCIA-карты) и интегральные схемы, припаянные к печатной плате устройства, такого как телевизор.
Описанный вариант осуществления особенно подходит для осуществления в цифровом телевизоре и модуле защиты. Однако специалисту будет понятно, что изобретение может быть осуществлено и использовано любым видом устройства с необходимыми ресурсами, т.е. процессором и предпочтительно памятью, хранящей необходимую информацию. Не ограничивающими примерами других устройств являются DVD-плееры, компьютеры, взаимодействующие с внешними устройствами, банкоматы (ATM) и банковские карты.
1. Первое устройство (11), адаптированное для верификации хэш-значения, причем первое устройство имеет сертификат (Ca), содержащий открытый ключ (ga) и соответствующий ему идентификатор (IDa), и сведения соответствующего ему идентификатора (IDa), секретный ключ (a) и открытый ключ (ga),при этом первое устройство содержит процессор (12) для:- выбора кратковременного секретного ключа (x);- вычисления первого кратковременного открытого ключа (gx);- посылки своего сертификата (Ca) и первого кратковременного открытого ключа (gx) второму устройству (21);приема сертификата (Cb) второго устройства, второго кратковременного открытого ключа (gy) и первого хэш-значения (H(gy, Keph, Kperm, IDb)) от второго устройства, причем сертификат (Сb) содержит открытый ключ (gb) и идентификатор (IDb) второго устройства, и первое хэш-значение (H(gy, Keph, Kperm, IDb)) вычислено из второго кратковременного открытого ключа (gy), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и идентификатора (IDb), соответствующего второму устройству;- верификации сертификата (Cb) второго устройства;- вычисления кратковременного ключа (Keph) коллективного пользования из второго кратковременного открытого ключа (gy) и кратковременного секретного ключа (x);- вычисления постоянного ключа (Kperm) из открытого ключа (gb) второго устройства и своего собственного секретного ключа (a); и- верификации первого хэш-значения (H(gy, Keph, Kperm, IDb)).
2. Первое устройство по п.1, в котором процессор (12) дополнительно предназначен для:- вычисления второго хэш-значения (H(gx, Keph, Kperm, IDa)) из первого кратковременного открытого ключа (gx), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и соответствующего ему идентификатора (IDa);- посылки второго хэш-значения (H(gx, Keph, Kperm, IDa)) второму устройству.
3. Второе устройство (21), адаптированное для верификации хэш-значения, причем второе устройство имеет сертификат (Cb), содержащий открытый ключ (gb) и соответствующий ему идентификатор (IDb), и сведения соответствующего ему идентификатора (IDb), секретный ключ (b) и открытый ключ (gb),при этом второе устройство (21) содержит процессор (22) для:- приема от первого устройства (11) сертификата (Ca) первого устройства и первого кратковременного открытого ключа (gx), причем сертификат содержит открытый ключ (ga) и идентификатор (IDa) первого устройства;- верификации сертификата (Са) первого устройства;- выбора кратковременного секретного ключа (y);- вычисления второго кратковременного открытого ключа (gy);- вычисления кратковременного ключа (Keph) коллективного пользования из первого кратковременного открытого ключа (gx) и кратковременного секретного ключа (y);- вычисления постоянного ключа (Kperm) из открытого ключа (ga) первого устройства и своего собственного секретного ключа (b);- вычисления первого хэш-значения (H(gy, Keph, Kperm, IDb)) из второго кратковременного открытого ключа (gy), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и соответствующего ему идентификатора (IDb);- посылки первому устройству своего сертификата (Cb), второго кратковременного открытого ключа (gy) и первого хэш-значения (H(gy, Keph, Kperm, IDb));- приема второго хэш-значения (H(gx, Keph, Kperm, IDa)) от первого устройства, причем второе значение вычислено из первого кратковременного открытого ключа (gx), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и идентификатора (IDa), соответствующего первому устройству; и- верификации второго хэш-значения (H(gx, Keph, Kperm, IDa)).
4. Способ для верификации хеш-значения, причем способ выполняется первым устройством (11), имеющим сертификат (Ca), содержащий открытый ключ (ga) и соответствующий ему идентификатор (IDa), и сведения соответствующего ему идентификатора (IDa), секретный ключ (a) и открытый ключ (ga),при этом способ содержит этапы- выбора (252) кратковременного секретного ключа (x);- вычисления (252) первого кратковременного открытого ключа (gx);- посылки (254) своего сертификата (Ca) и первого кратковременного открытого ключа (gx) второму устройству (21);- приема (262) сертификата (Cb) второго устройства, второго кратковременного открытого ключа (gy) и первого хэш-значения (H(gy, Keph, Kperm, IDb)) от второго устройства, причем сертификат (Cb) содержит открытый ключ (gb) и идентификатор (IDb) второго устройства, и первое хэш-значение (H(gy, Keph, Kperm, IDb)) вычислено из второго кратковременного открытого ключа (gy), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и идентификатора (IDb), соответствующего второму устройству;- верификации (264) сертификата (Cb) второго устройства;- вычисления (266) кратковременного ключа (Keph) коллективного пользования из второго кратковременного открытого ключа (gy) и кратковременного секретного ключа (x);- вычисления (266) постоянного ключа (Kperm) из открытого ключа (gb) второго устройства и своего собственного секретного ключа (a); и- верификации (268) первого хэш-значения (H(gy, Keph, Kperm, IDb)).
5. Способ для верификации хеш-значения, причем способ выполняется вторым устройством (21), имеющим сертификат (Cb), содержащий открытый ключ (gb) и соответствующий ему идентификатор (IDb), и сведения соответствующего ему идентификатора (IDb), секретный ключ (b) и открытый ключ (gb),при этом способ содержит этапы- приема (254) от первого устройства (11) сертификата (Ca) первого устройства и первого кратковременного открытого ключа (gx), причем сертификат (Ca) содержит открытый ключ (ga) и идентификатор (IDa) первого устройства;- верификации (256) сертификата (Ca) первого устройства;- выбора (258) кратковременного секретного ключа (y);- вычисления (258) второго кратковременного открытого ключа (gy);- вычисления (258) кратковременного ключа (Keph) коллективного пользования из первого кратковременного открытого ключа (gx) и кратковременного секретного ключа (y);- вычисления (258) постоянного ключа (Kperm) из открытого ключа (ga) первого устройства и своего собственного секретного ключа (b);- вычисления (260) первого хэш-значения (H(gy, Keph, Kperm, IDb)) из второго кратковременного открытого ключа (gy), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и соответствующего ему идентификатора (IDb);- посылки (262) первому устройству своего сертификата (Cb), второго кратковременного открытого ключа (gy) и первого хэш-значения (H(gy, Keph, Kperm, IDb));- приема (272) второго хэш-значения (H(gx, Keph, Kperm, IDa)) от первого устройства, причем второе значение вычислено из первого кратковременного открытого ключа (gx), кратковременного ключа (Keph) коллективного пользования, постоянного ключа (Kperm) и идентификатора (IDa), соответствующего первому устройству; и- верификации (274) второго хэш-значения (H(gx, Keph, Kperm, IDa)).