Способ загрузки кода по меньшей мере одного программного модуля

Иллюстрации

Показать все

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

Реферат

Настоящее изобретение относится к способу загрузки кода по меньшей мере одного программного модуля в главную память посредством процессора системы безопасности.

Целью настоящего изобретения также является:

- способ приема скремблированного контента мультимедиа,

- носитель записи информации для реализации указанных способов,

- терминал для реализации указанных способов.

Главная память известна также как «запоминающее устройство с произвольной выборкой» ("random-access memory"), обозначаемое также сокращением ЗУПВ (RAM). Обычно это энергозависимая память, т.е. память, в которой происходит стирание элементов информации при выключении питания. Главная память обеспечивает быстрый доступ для считывания и записи информации. Именно поэтому команды программы, которую должен выполнить процессор системы безопасности, загружают в эту память из одного или более запоминающих устройств большой емкости, где эти команды первоначально записаны. Запоминающие устройства большой емкости обычно являются энергонезависимыми запоминающими устройствами, обладающими большой емкостью для хранения информации, но работающими медленно в режимах считывания и записи. Поэтому невозможно выполнять программу путем считывания команд прямо из запоминающих устройств большой емкости.

Настоящее изобретение может быть применено в особенности в области управления доступом при предоставлении оплачиваемых программ мультимедиа, таких как платное телевидение.

В настоящем описании термин «контент мультимедиа» ("multimedia content") более конкретно обозначает аудио- и/или видеоконтент, подлежащий отобразить в форме, непосредственно воспринимаемой и понятной для человека. Обычно контент мультимедиа соответствует последовательности изображений, составляющей кинофильм, программе телевизионного вещания или рекламе. Контент мультимедиа может также представлять собой интерактивный контент, такой как игра.

Для защиты контентов мультимедиа и наложения на возможность просмотра некоторых условий, таких как, например, платная подписка, такие контенты мультимедиа передают по каналам вещания в скремблированном виде, а не в незашифрованной или открытой форме. В настоящем описании канал называется «скремблированным», когда передаваемый в этом канале контент мультимедиа скремблирован.

Более конкретно, каждый контент мультимедиа разбит на последовательность криптопериодов. На протяжении всего криптопериода условия доступа к скремблированному контенту мультимедиа остаются неизменными. В частности, на протяжении всего криптопериода контент мультимедиа скремблирован одним и тем же управляющим словом. В общем случае при переходе от одного криптопериода к другому происходит смена управляющего слова.

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

Здесь термины «скремблировать» и «шифровать» считаются синонимами. То же самое относится к терминам «дескремблировать» и «расшифровать».

Открытый контент мультимедиа соответствует контенту мультимедиа до его скремблирования. Этот контент может быть сделан непосредственно понятным для человека, не прибегая к операциям дескремблирования и не ограничивая просмотр определенными условиями.

Управляющие слова, необходимые для дескремблирования контентов мультимедиа, передают синхронно с этими контентами мультимедиа. Например, управляющие слова, необходимые для дескремблирования t-го криптопериода, каждый терминал принимает во время (t-1)-го криптопериода. С этой целью, например, управляющие слова мультиплексируют со скремблированным контентом мультимедиа.

Для защиты передачи управляющих слов эти слова передают терминалу в виде криптограмм, заключенных в сообщении управления правами (ЕСМ (entitlement control message)).

Здесь ниже термин «криптограмма» сегмента данных обозначает сегмент информации, которого самого по себе недостаточно для извлечения этого сегмента данных в незашифрованной или открытой форме. Для извлечения сегмента открытых данных, например управляющего слова, которое может быть использовано для непосредственного дескремблирования контента мультимедиа, криптограмму этого сегмента необходимо соединить с сегментом секретной информации. Например, криптограмма сегмента данных может быть получена путем шифрования сегмента открытых данных с применением криптографического ключа. В таком случае указанный сегмент секретной информации представляет собой криптографический ключ, используемый для расшифровки этой криптограммы. Криптограмма может быть также ссылкой на сегмент данных, записанный в таблице, содержащей множество возможных элементов данных. В таком случае указанный сегмент секретной информации представляет собой таблицу, устанавливающую соответствие между сегментом открытых данных и каждой ссылкой.

Такой сегмент секретной информации необходимо хранить в безопасном месте. Для этого уже было предложено сохранять сегмент секретной информации в процессорах системы безопасности, таких как смарт-карты, непосредственно соединенные с каждым терминалом.

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

Для преодоления этого недостатка было предложено заменить терминалы, оснащенные смарт-картами, бескарточными терминалами.

В этих терминалах смарт-карта может быть заменена программным модулем, выполняемым процессором системы безопасности в составе терминала. Такие известные терминалы могут быть оснащены:

- главной памятью,

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

- кодом многозадачной операционной системы, способной планировать одновременное выполнение нескольких пользовательских программ, когда эта операционная система исполняется процессором,

- кодом главного загрузчика, способным загружать код указанной многозадачной операционной системы в главную память и затем запускать выполнение этой операционной системы из главной памяти, когда главный загрузчик исполняется процессором,

- командами кода загрузки, который загружает код главного загрузчика в главную память, когда эти команды выполняет процессор, эти команды записаны в энергонезависимое запоминающее устройство сопроцессора, начиная с первого адреса, на который указывает порядковый счетчик процессора сразу же после каждой начальной установки этого процессора,

- одним или несколькими энергонезависимыми запоминающими устройствами, содержащими код программного модуля.

Таким образом, подобные терминалы имеют архитектуру, близкую к обычному компьютеру. В частности, для того чтобы программный модуль можно было выполнить, код программного модуля необходимо загрузить в главную память терминала. Термин «код» обозначает код, исполняемый или интерпретируемый либо собственным интерпретатором, либо виртуальной машиной низкого уровня, реализованной в процессоре системы безопасности.

Для этого в соответствии с известными технологиями процессор системы безопасности выполняет:

- указанный код загрузки, который загружает код главного загрузчика в главную память и затем запускает выполнение главного загрузчика из главной памяти, далее

- код главного загрузчика для загрузки кода многозадачной операционной системы в главную память, так что эта операционная система конфигурирована для использования только одной сокращенной области адресов в главной памяти и затем для запуска выполнения операционной системы из главной памяти,

- операционную систему для планирования одновременного выполнения нескольких пользовательских программ указанным процессором.

Затем операционная система запускает выполнение программного модуля и настраивает механизмы безопасности, чтобы предотвратить повреждение или фальсификацию кода программного модуля.

Операционные системы становятся все более сложными. Поэтому имеется большая вероятность нарушений и аномалий в работе этих операционных систем. Эти нарушения и аномалии известны под названием «серьезные ошибки» или «жучки» (bugs). Такие дефекты могут быть использованы для удаления механизмов безопасности, защищающих программный модуль. Поэтому при загрузке программного модуля средствами операционной системы трудно гарантировать, что в его системе безопасности нет брешей. Такие гарантии предоставить тем труднее, поскольку операционные системы с одной стороны и программный модуль с другой стороны разрабатывают разные люди.

Состояние дел в этой области известно из следующих документов-заявок на выдачу патентов: US 2009/257595 A1, ЕР 1868127 А1, US 2009/193230 A1, US 2007/113088 A1.

Настоящее изобретение направлено на устранение по меньшей мере одного из перечисленных недостатков. Целью настоящего изобретения является способ загрузки кода по меньшей мере одного программного модуля в главную память, отличающийся тем, что:

- главный загрузчик осуществляет загрузку, также в главную память, кода программного модуля перед тем, как запустить выполнение операционной системы, в диапазон адресов главной памяти, находящийся вне диапазона адресов, используемого операционной системой, и

- после запуска операционная система переадресует вызов программного модуля из пользовательской программы по адресу главной памяти, куда был загружен код программного модуля перед запуском выполнения операционной системы, с использованием особой файловой системы операционной системы, которая автоматически ассоциирует адрес программного модуля в виртуальном пространстве памяти пользовательской программы с физическим адресом программного модуля в главной памяти.

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

Более того, программный модуль записывают в диапазоне адресов, который не может быть использован операционной системой. Это означает, что никакая пользовательская программа не сможет получить доступ к коду программного модуля, не проходя через указанную особую файловую систему. Действительно, если пользовательская программа пытается осуществить чтение или запись за пределами диапазона адресов, используемых файловой системой без использования особой файловой системы, это просто вызовет ошибку, препятствующую такому считыванию или записи. В результате доступ к коду рассматриваемого программного модуля оказывается защищен самой операционной системой. В частности, ошибки («жучки») в операционной системе уже невозможно эксплуатировать для доступа к коду программного модуля. Таким образом, криптоанализ кода программного модуля сделан более затруднительным.

Варианты рассматриваемого способа загрузки могут иметь одну или несколько следующих характеристик:

- перед запуском выполнения главного загрузчика код загрузки, исполняемый процессором, проверяет аутентичность кода главного загрузчика на основе сигнатуры этого кода и криптографического ключа и запускает выполнение этого главного загрузчика, только если код оказался аутентичным;

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

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

- способ содержит запись исполняемого кода программного модуля в зашифрованном виде с использованием ключа Koc1 в энергонезависимом запоминающем устройстве, а главный загрузчик осуществляет загрузку этого кода программного модуля, зашифрованного с применением Koc1, непосредственно в главную память;

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

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

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

- главный загрузчик осуществляет загрузку кода программного модуля в непрерывный диапазон адресов главной памяти, не разбитый на страницы операционной системой;

- после запуска операционной системы исполнение кода главного загрузчика более не происходит, и это остается в силе до тех пор, пока не произойдет начальная установка (сброс) процессора системы безопасности;

- операционная система после запуска настраивает механизм виртуальной памяти для взаимодействия между используемой пользователем подсекцией главной памяти и одним или несколькими запоминающими устройствами большой емкости;

- программный модуль включает сегменты данных или код библиотеки условного доступа, так что эти сегменты данных или этот код позволяют расшифровать криптограмму управляющего слова, присутствующего в составе ЕСМ (сообщения управления правами).

Эти варианты способа загрузки обладают следующими преимуществами:

- то, что код загрузки, записанный в неизменяемой памяти, осуществляет аутентификацию главного загрузчика, делает затруднительными любые попытки изменить главный загрузчик;

- то, что главный загрузчик, который был сам предварительно аутентифицирован кодом загрузки, активизирует аутентификацию программного модуля, очень затрудняет осуществление любых злонамеренных модификаций кода этого программного модуля;

- то, что расшифровка команд кода программного модуля, записанного в главной памяти, происходит только внутри интегральной схемы процессора, защищает конфиденциальность этого кода;

- факт записи, в запоминающем устройстве большой емкости, программного модуля непосредственно в зашифрованном виде с ключом, используемым для сокрытия кода этого программного модуля, предотвращает осуществление операции расшифровки во время загрузки этого кода программного модуля из запоминающего устройства большой емкости в главную память;

- то, что сегменты данных, генерируемые программным модулем в процессе его выполнения, записывают в главной памяти в диапазоне адресов, скрываемом сопроцессором, защищает конфиденциальность этих данных;

- то, что главный загрузчик, который был сам предварительно аутентифицирован кодом загрузки, активизирует аутентификацию кода операционной системы, очень затрудняет осуществление любых злонамеренных модификаций кода этой операционной системы, чтобы заменить обращения к рассматриваемому программному модулю обращениями к другой программе;

- загрузка кода программного модуля в непрерывный диапазон адресов способствует проверке аутентичности этого кода и сокрытию кода программного модуля в главной памяти.

Целью настоящего изобретения является также способ приема контента мультимедиа, скремблированного с использованием управляющего слова CWi,t, этот способ содержит:

- прием сообщения ЕСМ (сообщение управления правами), содержащего криптограмму C W i , t ∗ управляющего слова CWi,t;

- загрузку программного модуля в главную память приемного терминала, причем приемный модуль выполнен с возможностью расшифровать C W i , t ∗ для получения управляющего слова, при выполнении этого программного модуля процессором, соединенным с главной памятью посредством шины данных;

- выполнение программного модуля процессором для расшифровки криптограммы C W i , t ∗ ;

- дескремблирование контентов мультимедиа, скремблированных с использованием управляющего слова CWi,t в открытой форме;

этот способ содержит загрузку указанного выше программного модуля с использованием приведенного выше способа загрузки.

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

Целью настоящего изобретения является также терминал, снабженный:

- главной памятью,

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

- кодом многозадачной операционной системы, выполненной с возможностью, когда эту операционную систему выполняет процессор, планировать одновременное выполнение нескольких пользовательских программ,

- кодом главного загрузчика, выполненного с возможностью при выполнении указанным процессором загружать в главную память код многозадачной операционной системы, а затем запускать выполнение этой операционной системы из главной памяти,

- командами кода загрузки, который, когда эти команды выполняет процессор, осуществляет загрузку кода главного загрузчика в главную память, причем эти команды записаны в энергонезависимом запоминающем устройстве сопроцессора, начиная с первого адреса, на который указывает порядковый счетчик процессора непосредственно после каждой начальной установки этого процессора,

- одним или несколькими энергонезависимыми запоминающими устройствами, содержащими код программного модуля,

при этом

- главный загрузчик также выполнен с возможностью, когда главный загрузчик исполняется процессором, загружать код программного модуля в главную память до запуска выполнения операционной системы, а

- после запуска операционная система, при выполнении операционной системы микропроцессором, выполнена с возможностью переадресовывать вызов программному модулю от пользовательской программы по адресу в главной памяти, куда был загружен код программного модуля до запуска операционной системы.

Варианты исполнения такого терминала могут иметь следующие характеристики:

- терминал содержит приемник сообщений ЕСМ,

- программный модуль выполнен с возможностью, при выполнении программного модуля процессором, принимать сообщения ЕСМ, расшифровывать криптограмму C W i , t ∗ для получения управляющего слова CWi,t, содержащегося в сообщении ЕСМ, и

- терминал содержит блок демкремблирования, выполненный с возможностью дескремблирования контента мультимедиа, скремблированного с использованием управляющего слова CWi,t, расшифрованного программным модулем.

Другие признаки и преимущества настоящего изобретения станут ясны из последующего описания, приведенного исключительно в качестве иллюстрации, никоим образом не являющегося исчерпывающим и составленного со ссылками на прилагаемые чертежи, на которых:

фиг.1 представляет упрощенную схему, иллюстрирующую систему для передачи и приема 1 скремблированного контента мультимедиа;

фиг.2 представляет упрощенную схему, иллюстрирующую блок центрального процессора, выполненный в системе, показанной на фиг.1;

фиг.3 представляет логическую схему способа загрузки кода программного модуля в главную память блока центрального процессора, показанного на фиг.2;

фиг.4 представляет логическую схему способа приема скремблированного контента мультимедиа; и

фиг.5 представляет логическую схему варианта способа, показанного на фиг.3.

На этих чертежах одинаковые позиционные обозначения указывают одинаковые элементы.

В остальной части настоящего описания характеристики и функции, хорошо известные специалистам в рассматриваемой области, подробно не обсуждаются. Кроме того, используемая здесь терминология представляет собой обычную терминологию, применяемую для систем условного доступа к контентам мультимедиа. За дополнительной информацией относительно этой терминологии читатель может обратиться к следующему документу:

«Функциональная модель системы условного доступа» ("Functional Model of Conditional Access System", EBU Review, Technical European Broadcasting Union, Brussels, BE, n° 266, 21 December 1995).

На фиг.1 представлена система 2 для передачи и приема скремблированных контентов мультимедиа. Передаваемые контенты мультимедиа представляют собой линеаризованные контенты мультимедиа. Например, такой контент мультимедиа соответствует последовательности аудиовизуальной программы, такой как программа телевизионного вещания или кинофильм.

Один или несколько источников 4 генерируют открытые контенты мультимедиа и передают вещательному устройству. Это устройство 6 передает полученные им контенты мультимедиа одновременно множеству приемных терминалов через сеть 8 передачи информации. Передаваемые в таком режиме вещания контенты мультимедиа синхронизированы во времени один с другими таким образом, чтобы, например, соответствовать заранее составленной программе передач.

Сеть 8 обычно представляет собой сеть передачи информации на большие расстояния, такую как Интернет или сеть спутниковой связи или какая-либо другая сеть вещания, такая как сеть, используемая для передачи сигналов цифрового наземного телевидения (digital terrestrial television (DTTV)).

На фиг.1 для простоты показаны только три приемных терминала с 10 по 12.

Устройство 6 содержит блок 16 кодирования, который сжимает получаемые им контенты мультимедиа. Этот блок 16 кодирования обрабатывает цифровые контенты мультимедиа. Например, такой блок кодирования работает в соответствии со стандартом MPEG2 (группа экспертов по кинематографии - 2) или стандартом UIT-T Н264.

Сжатые контенты мультимедиа направляют на вход 20 блока 22 скремблирования. Этот блок 22 скремблирования осуществляет скремблирование каждого сжатого контента мультимедиа, чтобы сделать его просмотр обусловленным определенными условиями, такими как приобретение права доступа пользователями приемных терминалов. Полученные скремблированные контенты мультимедиа передают на выход 24, соединенный с входом мультиплексора 26.

Указанный блок 22 скремблирования осуществляет скремблирование каждого сжатого контента мультимедиа с применением управляющего слова CWi,t, предоставленного этому блоку, равно как и системе 28 условного доступа, генератором 32 ключа. Такая система 28 условного доступа известна также под сокращенным названием CAS. Здесь индекс i представляет собой идентификатор канала, в котором происходит вещание скремблированного контента мультимедиа, а индекс t представляет собой порядковый номер, идентифицирующий криптопериод, скремблированный с использованием этого управляющего слова.

Обычно этот блок скремблирования соответствует стандарту, такому как DVB-CSA (цифровое видеовещание - обобщенный алгоритм скремблирования), ISMA Cryp (Internet streaming media alliance Cryp (Альянс по разработке решений потоковой передачи данных в Интернет)), SRTP (secure real-time transport protocol (протокол защищенной передачи данных в реальном времени)), AES (передовой стандарт шифрования), … и т.п.

Для каждого канала i система 28 генерирует сообщения ЕСМ (сообщения управления правами), обозначенные ECMi,t и содержащие по меньшей мере одну предварительно вычисленную криптограмму C W i , t ∗ управляющего слова CWi,t, сформированного генератором 32 и используемого блоком 22 скремблирования для осуществления скремблирования криптопериода t в канале i. Эти сообщения и скремблированные контенты мультимедиа мультиплексируют посредством мультиплексора 26, получающего указанные входные данные от системы 28 условного доступа и от блока 22 скремблирования, и затем передают в сеть 8.

Система 28 вставляет также в каждое сообщение ЕСМ следующие данные:

- криптограммы C W i , t ∗ и C W i , t + 1 ∗ , вычисленные системой 28, для управляющих слов CWi,t и CWi,t+1, позволяющих дескремблировать следующие сразу один за другим криптопериоды t и t+1 в канале i,

- условия СА доступа для сравнения с правами доступа, приобретенными пользователем, и

- криптографическую сигнатуру MAC (код аутентификации сообщения) или избыточность, используемые для проверки целостности сообщения ЕСМ.

Сообщение ЕСМ, содержащее пару управляющих слов CWi,t/CWi,t+1, в остальной части описания обозначено как сообщение ECMi,t.

Здесь индекс t идентифицирует также криптопериод CPi,t, который может быть дескремблирован посредством управляющего слова CWi,t, содержащегося в сообщении ECMi,t. Этот индекс t является уникальным для каждого криптопериода CPi,t.

В качестве иллюстрации, здесь скремблирование и мультиплексирование контентов мультимедиа осуществляется в соответствии с протоколом DVB-Simulcrypt (ETSI TS 103197).

В рассматриваемом примере терминалы с 10 по 12 идентичны. Поэтому здесь ниже только терминал 10 описан более подробно.

Терминал 10 здесь описан для конкретного случая, когда он может одновременно дескремблировать только один канал i. Для этой цели терминал 10 содержит:

- блок 60 центрального процессора для дескремблирования канала i и

- приемник 70 вещательных контентов мультимедиа.

Блок 60 дескремблирует сигнал канала i для представления его на экране дисплейного устройства 84.

Таким дисплейным устройством 84 может быть, например, телевизор, компьютер или снова стационарный телефон или сотовый телефон. Здесь в качестве дисплейного устройства используется телевизор.

На фиг.1 различные функции блока 60 представлены в виде функциональных блоков. Архитектура аппаратуры блока 60, используемая для реализации этих различных функциональных блоков, описана со ссылками на фиг.2. Блок 60 содержит демультиплексор 70, который передает, с одной стороны, контент мультимедиа в блок 74 дескремблирования и, с другой стороны, сообщения ECMi,t и EMM (сообщение о санкционировании приема (entitlement management message)) в блок 76 для обеспечения условного доступа к контенту мультимедиа.

Указанный блок 74 дескремблирования осуществляет дескремблирование скремблированного контента мультимедиа с использованием управляющего слова, переданного блоком 76. Полученный дескремблированный контент мультимедиа передают в декодер 80, который осуществляет декодирование контента. Расширенный или декодированный контент мультимедиа передают графической карте 82, которая управляет представлением этого контента мультимедиа на дисплейном устройстве 84, оснащенном экраном 86.

Дисплейное устройство 84 представляет контент мультимедиа в открытой форме на экране 86.

Блок 76 обрабатывает помимо всего прочего конфиденциальную информацию, такую как криптографические ключи. Для сохранения конфиденциальности этой информации такой блок конструируют таким образом, чтобы он был насколько возможно устойчивым против атак, предпринимаемых компьютерными хакерами.

Блок 60 соединен с запоминающим устройством 78 большой емкости, в котором записаны, в энергонезависимой форме, конкретные данные и коды различных программ, которые необходимо выполнить, чтобы расшифровать криптограммы C W i , t ∗ .

На фиг.2 представлена более подробная схема блока 60. Здесь этот блок 60 содержит:

- электронный процессор 90 системы безопасности,

- главную память 92,

- энергонезависимое запоминающее устройство 94,

- шину 96 для передачи данных и адресов, соединяющую процессор 90 с запоминающими устройствами 78, 92, 94 и с приемником 70.

Указанный процессор 90 представляет собой программируемый процессор, способный выполнять команды, записанные в запоминающем устройстве 78. С этой целью процессор 90 содержит главный микропроцессор 19 и различные сопроцессоры, каждый из которых специально предназначен для решения своей конкретной задачи.

В рассматриваемом варианте в качестве иллюстрации процессор 90 содержит свой специальный сопроцессор для каждого из функциональных блоков 72, 74, 80 и 82, показанных на фиг.1. На фиг.2 каждый из сопроцессоров имеет такое же цифровое позиционное обозначение, как и соответствующий функциональный блок, показанный на фиг.1. Таким образом, процессор 90 содержит:

- сопроцессор 72 для мультиплексирования потоков мультимедиа, принимаемых посредством приемника 70,

- сопроцессор 74 для дескремблирования контентов мультимедиа,

- сопроцессор 80 для декодирования контентов мультимедиа и

- сопроцессор 82 для видеодисплея.

Каждый их этих сопроцессоров способен выполнять команды параллельно с командами, выполняемыми микропроцессором 99. В результате такие сопроцессоры позволяют выполнять задачи более быстро, чем при использовании только одного микропроцессора 99.

Здесь процессор 90 имеет вид одной интегральной схемы, в которой выполнены микропроцессор 99, равно как различные сопроцессоры. Эта интегральная схема смонтирована в одном корпусе. Обычно микропроцессор 99 и различные сопроцессоры формируют в одном и том же кремниевом кристалле. Такой сопроцессор известен также под названием «система на кристалле» ("system on chip") или SoC.

Рассматриваемый микропроцессор 99 имеет все элементы классического микропроцессора. В частности, микропроцессор 99 содержит арифметическо-логическое устройство и различные регистры для выполнения команд, записанных в главной памяти 92. Один из этих регистров содержит адрес следующей команды, которую нужно выполнить. Этот регистр известен также как порядковый счетчик.

Процессор 90 классифицирован здесь в качестве процессора системы безопасности, поскольку он содержит также сопроцессор 100 безопасности. Пример сопроцессора безопасности описан в заявке на выдачу патента США US 20050169468.

Указанный сопроцессор 100 может быть конфигурирован для автономного выполнения некоторого числа задач, таких как осуществление криптографических функций. Например, рассматриваемый сопроцессор 100 оснащен для этой цели следующим:

- своим собственным арифметическо-логическим устройством,

- энергонезависимым запоминающим устройством 102, доступным только в режиме считывания, и

- и запоминающим устройством 103 с произвольной выборкой.

Запоминающие устройства 102 и 103 доступны исключительно для сопроцессора 100. В частности, ни одна из выполняемых процессором 90 программ, код которой загружен