Предлагаемое изобретение относится к: способу загрузки данных в приемник/декодер MPEG; такому приемнику/декодеру; и системе трансляции MPEG.
Появление систем передачи цифровых данных, предназначенных в первую очередь для сигналов телевизионного вещания, в особенности, но не исключительно, систем спутникового телевидения, открыло возможность использования таких систем для других целей. Одной из них является предоставление пользователю интерактивного режима работы.
Одним из способов его обеспечения является выполнение приложения в приемнике/декодере, с помощью которого принимается телевизионный сигнал. Код этого приложения можно было бы постоянно хранить в приемнике/декодере. Однако это было бы ограничивающим фактором. Предпочтительно приемник/декодер должен быть в состоянии загружать код для требуемого приложения. Таким образом может быть обеспечена большая гибкость, и приложение может быть при необходимости обновлено без какого-либо участия пользователя.
В системе MPEG код приложения может загружаться в MPEG таблицах. Однако существует ограничение на размер фрагмента кода, который может быть загружен с помощью одной MPEG таблицы. К тому же, если перед тем, как приложение может быть выполнено, его необходимо загрузить полностью, это может привести к задержке, которая будет неприемлемой для пользователя. Следовательно, возникает желание иметь возможность загружать приложение в виде набора модулей. Это, однако, в свою очередь, создает проблему обеспечения возможности идентифицирования и выделения из потока битов MPEG модулей, необходимых для данного приложения. Первый аспект данного изобретения направлен на решение этой проблемы.
В соответствии с первым аспектом данного изобретения предлагается способ загрузки в приемник/декодер MPEG хотя бы части приложения, содержащий следующие операции:
разделение приложения на множество модулей;
форматирование каждого модуля в виде соответствующей MPEG таблицы, причем все таблицы имеют одинаковый идентификатор таблицы (TID) и соответствующие разные расширения идентификатора таблицы (TID-расширения), отличные от одного заранее определенного TID-расширения;
генерирование MPEG таблицы каталога для модулей, имеющей тот же упомянутый TID и упомянутое заранее определенное TID-расширение, при этом каталог содержит имена каждого из модулей и соответствующие TID-расширения;
циклическая трансляция MPEG таблицы каталога и MPEG таблиц модулей в потоке битов MPEG; и в приемнике/декодере MPEG:
прием потока битов MPEG;
загрузка той MPEG таблицы, которая имеет упомянутое заранее определенное TID-расширение, с тем чтобы загрузить MPEG таблицу каталога;
определение из содержимого MPEG таблицы каталога TID-расширений MPEG таблиц модулей; и
загрузка хотя бы одной из MPEG таблиц модулей, имеющих тот же самый TID, что и загруженная MPEG таблица каталога, и TID-расширение, определенное из загруженной MPEG таблицы каталога.
Таким образом, приложение создается из нескольких модулей, которые могут быть загружены, и, соответственно, выполняется, если это необходимо. Таблица каталога может быть легко идентифицирована, поскольку она имеет особое TID-расширение, и как только она загружена, она позволяет приемнику/декодеру идентифицировать таблицы модулей по соответствующим TID-расширениям.
Предпочтительно способ содержит дополнительно следующие операции: включение в транслируемую MPEG таблицу каталога идентификации ее версии; и
в приемнике/декодере:
определение того, является ли версия транслируемой в данный момент MPEG таблицы каталога более новой, чем версия загруженной на данный момент MPEG таблицы каталога и, если это так, повторение операций загрузки MPEG таблицы каталога, определения TID-расширений и загрузки хотя бы одной из MPEG таблиц модулей.
Таким образом, если приложение следует изменить, это может быть определено автоматически, и будут загружены обновленный каталог и любые обновленные модули.
Хотя бы одна из MPEG таблиц модулей может быть отформатирована в виде множества секций, которые транслируются отдельно в потоке битов MPEG, при этом каждая из MPEG секций содержит в ее заранее определенной части идентификацию положения этой MPEG секции в упомянутой MPEG таблице и количества секций в упомянутой MPEG таблице.
В соответствии со вторым аспектом данного изобретения предлагается приемник/декодер MPEG для осуществления части способа по любому из предшествующих пунктов, содержащий:
приемник для приема потока битов MPEG;
средство хранения;
и средство обработки, которое программируется таким образом, чтобы инициировать загрузку в средство хранения той из принятых MPEG таблиц, которая имеет заранее определенное ТID-расширение, определять из содержимого MPEG таблицы каталога ТID-расширения MPEG таблиц модулей и инициировать загрузку в средство хранения хотя бы одной из MPEG таблиц модулей, имеющей тот же TID, что и загруженная MPEG таблица каталога, и TID-расширение, определенное из загруженной MPEG таблицы каталога.
Предпочтительно средство обработки запрограммировано определять, является ли версия принимаемой в данный момент MPEG таблицы каталога более новой, чем версии загруженной MPEG таблицы каталога, и, если это так, повторять загрузку MPEG таблицы каталога, определение TID-расширений и загрузку хотя бы одной из MPEG таблиц модулей.
В случае, когда приемник/декодер выполнен с возможностью приема хотя бы одной из таблиц модулей, отформатированной в виде множества отдельно транслируемых секций, предпочтительно средство обработки запрограммировано инициировать циклическую загрузку MPEG секций в средство хранения до тех пор, пока средство обработки не определит по идентификации положения секций и указанию количества секций загруженных секций, что все секции уже загружены.
Предпочтительно приемник/декодер содержит параллельный порт и/или последовательный порт, выполненные с возможностью приема приложения, отформатированного в виде хотя бы одной MPEG таблицы, и в этом случае предпочтительно используется короткий формат MPEG-2, в то время как длинный формат MPEG-2 предпочтительно используется для удаленного приема, например, через спутник или по кабелю.
Это особенно удобно в случае, когда изготовитель желает протестировать конкретные функции приемника/декодера, поскольку приложение может быть загружено без необходимости транслировать его через систему спутникового телевидения.
В соответствии с третьим аспектом данного изобретения предлагается система трансляции MPEG, содержащая:
средство для разделения приложения, подлежащего загрузке в приемник/декодер MPEG, на множество модулей;
средство для форматирования каждого из модулей в виде соответствующей MPEG таблицы, причем все таблицы имеют одинаковый TID и соответствующие различные TID-расширения, отличные от заранее определенного TID-расширения;
средство для генерирования MPEG таблицы каталога для модулей, имеющей тот же упомянутый TID и упомянутое заранее определенное TID-расширение, при этом каталог содержит для каждого модуля имя этого модуля и соответствующее TID-расширение;
средство для генерирования MPEG таблицы каталога для модулей, имеющих одинаковые TID и упомянутые заранее определенные TID-расширения, при этом каталог содержит имена каждого из модулей и соответствующие TID-расширения; и
средство для циклической трансляции MPEG таблицы каталога и MPEG таблиц модулей в потоке битов MPEG.
Предпочтительно система дополнительно содержит средство для генерирования идентификатора версии для MPEG таблицы каталога, и в этой системе средство генерирования MPEG таблицы каталога выполнено с возможностью добавления в MPEG таблицу каталога сгенерированного идентификатора ее версии.
Средства форматирования модулей могут быть выполнены с возможностью форматирования хотя бы одной из MPEG таблиц модулей в виде множества MPEG секций, каждая из которых содержит в ее заранее определенной части идентификацию положения этой MPEG секции в упомянутой MPEG таблице и указание количества секций в упомянутой MPEG таблице.
Желательно, чтобы приемник/декодер был защищен от загрузки несанкционированных приложений, которые могут содержать, например, вирус. В соответствии с этим может быть рассмотрена концепция шифровки и использования подписей для хотя бы части кода приложения.
В соответствии с четвертым аспектом данного изобретения предлагается способ загрузки данных в приемник/декодер MPEG, содержащий следующие операции:
генерирование подписи для данных, подлежащих загрузке;
шифрование подписи с использованием секретного ключа;
форматирование подлежащих загрузке данных, зашифрованной подписи и идентификатора секретного ключа в виде MPEG таблицы;
трансляция MPEG таблицы; и в приемнике/декодере:
прием MPEG таблицы;
выбор одного из множества общедоступных ключей в соответствии с идентификатором ключа в принятой MPEG таблице;
дешифровка зашифрованной подписи в принятой MPEG таблице с использованием выбранного общедоступного ключа для получения дешифрованной подписи;
генерирование подписи для данных в принятой MPEG таблице;
и сравнение дешифрованной подписи и подписи, сгенерированной приемником/декодером для принятых данных.
Таким образом, приемник/декодер может использоваться для загрузки имеющих зашифрованные подписи приложений более чем от одного источника, при этом источникам нет необходимости знать секретные ключи друг друга.
Способ может дополнительно содержать операции загрузки в приемник/декодер приложения, имеющего подпись, зашифрованную с использованием секретного ключа, имеющего заранее определенный идентификатор, выполнения приложения в приемнике/декодере с целью инициирования приема приемником/декодером дополнительного ключа, сохранения дополнительного ключа в область оперативной памяти приемника/декодера. В этом случае при выполнении приложения дополнительный ключ может предоставляться приемнику/декодеру на месте, например, через параллельный порт, последовательный порт или устройство считывания смарт-карты приемника/декодера. Если приемник/декодер имеет подключенный модем, то приемник/декодер предпочтительно выполнен так, чтобы воспрепятствовать получению такого дополнительного ключа через модем.
Эти особенности позволяют производителю, который может пожелать протестировать приемник/декодер, загрузить ключ в приемник/декодер.
Способ может дополнительно содержать операции, в приемнике/декодере, поиска в защищенной области памяти приемника/декодера флага допустимости для выбранного общедоступного ключа и запрета или прекращения загрузки данных, если найденный флаг не установлен.
Соответственно, хотя множество общедоступных ключей может постоянно находиться в памяти приемника/декодера, любые из них могут быть выборочно отключены, что может быть необходимо в случае, например, когда секретность секретного ключа, соответствующего конкретному общедоступному ключу, нарушена, или когда два оператора, использующие одинаковые ключи, решают, что они желают иметь отдельные ключи.
В случае, когда приемник/декодер выполнен с возможностью загрузки приложения, имеющего подпись, зашифрованную с использованием секретного ключа, имеющего заранее определенный идентификатор ключа, как указано выше, в защищенной области памяти приемника/декодера секретный ключ, имеющий заранее заданный идентификатор ключа, имеет флаг проверки допустимости, который может быть изменен упомянутым приложением, а также возможность приема упомянутого дополнительного ключа определяется в зависимости от состояния этого флага проверки допустимости.
Эти дополнительные особенности флага проверки допустимости для общедоступных ключей могут быть предоставлены независимо от четвертого аспекта изобретения. Соответственно, в пятом аспекте данного изобретения предлагается способ загрузки данных в приемник/декодер MPEG, содержащий следующие операции:
генерирование подписи для подлежащих загрузке данных;
шифрование подписи с использованием секретного ключа;
форматирование подлежащих загрузке данных, зашифрованной подписи и идентификатора секретного ключа в виде MPEG таблицы;
трансляция MPEG таблицы; и в приемнике/декодере:
прием MPEG таблицы;
поиск в защищенной области памяти приемника/декодера флага проверки допустимости для выбранного общедоступного ключа, соответствующего идентификатору секретного ключа, указанного в принятой MPEG таблице; и, если найденный флаг установлен:
дешифровка зашифрованной подписи в принятой MPEG таблице с использованием общедоступного ключа, соответствующего идентификатору секретного ключа, указанному в принятой MPEG таблице, для получения дешифрованной подписи;
генерирование подписи для данных в принятой MPEG таблице; и сравнение дешифрованной подписи и подписи, сгенерированной в приемнике/декодере для принятых данных.
Способы четвертого и пятого аспектов настоящего изобретения предпочтительно включают дополнительно следующие операции: генерирование кода допустимости для подлежащих загрузке данных, который зашифровывается вместе с подписью при выполнении операции шифрования и дешифруется вместе с подписью при выполнении операции дешифровки;
поиск сохраненного кода проверки допустимости в защищенной области памяти приемника/декодера; и сравнение найденного кода проверки допустимости и дешифрованного кода проверки допустимости.
Таким образом, приемник/декодер может быть настроен на прием только определенных приложений или типов приложений.
Эти дополнительные особенности могут быть предоставлены независимо от четвертого и пятого аспектов изобретения. В соответствии с этим в шестом аспекте данного изобретения предлагается способ загрузки данных в приемник/декодер MPEG, содержащий следующие операции:
генерирование кода проверки допустимости для подлежащих загрузке данных;
генерирование подписи для подлежащих загрузке данных или их части;
шифрование кода проверки допустимости и подписи с использованием секретного ключа;
форматирование подлежащих загрузке данных и зашифрованных кода проверки допустимости и подписи в виде хотя бы одной MPEG таблицы;
трансляция данной или каждой из MPEG таблиц; и в приемнике/декодере:
прием данной или всех MPEG таблиц;
дешифровка зашифрованных кода проверки допустимости и подписи в принятой(ых) MPEG таблице(ах) с использованием общедоступного ключа, соответствующего указанному секретному ключу;
поиск сохраненного кода проверки допустимости в защищенной области памяти приемника/декодера;
сравнение найденного ключа проверки допустимости и дешифрованного ключа проверки допустимости;
генерирование подписи для данных в принятых(ой) MPEG таблице(ах) или упомянутой их части;
и сравнение расшифрованной подписи и подписи, сгенерированной в приемнике/декодере, для принятых данных.
Предпочтительно способ дополнительно содержит операцию запрета или прекращения загрузки данных в случае, если по результатам сравнения кодов проверки допустимости найденный код проверки допустимости и дешифрованный код проверки допустимости не совпадают друг с другом.
В четвертом-шестом аспектах данного изобретения может быть предусмотрено, что подпись подлежащих загрузке данных зашифровывается в блоке данных, содержащем и другие данные, с некоторым выбранным смещением между началом блока данных и началом подписи, и зашифрованный блок данных дешифруется при выполнении операции дешифровки в приемнике/декодере, и дополнительно включающий операции, в приемнике/декодере, поиска хотя бы одного смещения, хранящегося в защищенной области памяти приемника/декодера, а также извлечения подписи из дешифрованного блока данных с использованием упомянутого одного найденного смещения от начала дешифрованного блока данных.
Таким образом, подпись может быть замаскирована среди фиктивных данных, что затрудняет обнаружение местоположения подписи. Как альтернатива, или дополнительно, эта особенность обеспечивает доступ к данным только одной или нескольким определенным группам приемников/декодеров.
Эти особенности могут быть предоставлены независимо от аспектов изобретения с четвертого по шестой. В соответствии с изложенным выше в седьмом аспекте данного изобретения предлагается способ загрузки данных в приемник/декодер MPEG, содержащий следующие операции:
генерирование подписи для подлежащих загрузке данных;
включение подписи и других данных в блок данных с выбранным смещением между началом блока данных и началом подписи;
шифрование блока данных с использованием секретного ключа;
форматирование подлежащих загрузке данных и зашифрованного блока данных в виде MPEG таблицы;
трансляция MPEG таблицы; и в приемнике/декодере:
и прием MPEG таблицы;
дешифровка зашифрованного блока данных в принятой MPEG таблице с использованием общедоступного ключа, соответствующего упомянутому секретному ключу;
поиск хотя бы одного смещения, хранящегося в защищенной области памяти приемника/декодера;
извлечение подписи из дешифрованного блока данных с использованием упомянутого найденного смещения от начала дешифрованного блока данных;
генерирование подписи для данных в принятой MPEG таблице; и
сравнение подписи, извлеченной из дешифрованного блока данных, и подписи, сгенерированной в приемнике/декодере для принятых данных.
В случае, когда упомянутая защищенная область памяти содержит хотя бы два таких сохраненных смещения и, если по результатам операции сравнения извлеченная подпись и сгенерированная подпись не совпадают, способ предпочтительно включает дополнительную операцию повторения операций поиска, извлечения и сравнения с использованием других сохраненных смещений.
Хотя бы некоторые из остальных данных в блоке данных могут быть фиктивными или произвольными данными, но, если это так, предпочтительно ни один из фрагментов фиктивных данных не совпадает с подписью.
В аспектах изобретения от четвертого до седьмого данные могут загружать в виде множества модулей данных, и способ может содержать следующие операции:
генерирование подписи модуля для каждого модуля данных, подлежащего загрузке;
форматирование модулей данных в виде соответствующих MPEG таблиц модулей;
генерирование каталога, включающего идентификатор каждой MPEG таблицы модуля и соответствующую подпись, причем указанный каталог является объектом операции генерирования подписи по любому из пп.11-24; и в приемнике/декодере:
генерирование соответствующей подписи модуля для каждого из модулей в принятых MPEG таблицах модулей; и
сравнение каждой подписи модуля в принятой MPEG таблице каталога с соответствующей подписью модуля, сгенерированной в приемнике/декодере.
Следовательно, хотя данные, подлежащие загрузке, состоят из множества модулей для зашифровки модулей требуется только один процесс зашифровки; и только один процесс дешифровки требуется для обеспечения проверки подписей.
Эти особенности могут быть предоставлены независимо от аспектов изобретения с четвертого по седьмой. В соответствии с изложенным выше в восьмом аспекте данного изобретения предлагается способ загрузки множества модулей данных в приемник/декодер MPEG, содержащий следующие операции:
генерирование подписи модуля для каждого модуля подлежащих загрузке данных;
форматирование модулей данных в виде соответствующих MPEG таблиц модулей;
генерирование каталога, содержащего идентификатор каждой MPEG таблицы модуля и соответствующую подпись;
генерирование подписи каталога для каталога;
шифрование подписи каталога с использованием секретного ключа;
форматирование каталога и зашифрованной подписи каталога в виде MPEG таблицы каталога;
трансляция MPEG таблиц каталога и модулей; и в приемнике/декодере:
прием MPEG таблиц каталога и модулей;
дешифровка зашифрованной подписи каталога в принятой MPEG таблице каталога с использованием общедоступного ключа, соответствующего указанному секретному ключу;
генерирование подписи каталога для каталога в принятой MPEG таблице каталога;
сравнение дешифрованной подписи каталога и подписи каталога, сгенерированной в приемнике/декодере;
генерирование соответствующей подписи модуля для каждого из модулей в принятых MPEG таблицах модулей; и
сравнение подписи каждого модуля в принятой MPEG таблице каталога с соответствующей подписью модуля, сгенерированной в приемнике/декодере.
Предпочтительно способ дополнительно включает операцию запрета или прекращения загрузки модуля данных, если подпись модуля в принятой MPEG таблице каталога и соответствующая подпись модуля, сгенерированная в приемнике/декодере для данного модуля, не совпадают друг с другом.
Описанный выше способ предпочтительно содержит также операцию запрета или прекращения загрузки данных, если по результатам сравнения указанная или каждая из дешифрованных подписей и сгенерированная подпись не совпадают друг с другом.
В соответствии с девятым аспектом данного изобретения предлагается приемник/декодер MPEG для осуществления части способа по четвертому аспекту изобретения, содержащий:
средство для приема MPEG таблиц;
средство для хранения множества общедоступных ключей и идентификатора для каждого общедоступного ключа; и
средство обработки, которое программируется таким образом, чтобы выбрать один из сохраненных общедоступных ключей в соответствии с идентификатором ключа в принятой MPEG таблице; дешифровывать зашифрованную подпись в принятой MPEG таблице с использованием выбранного общедоступного ключа для получения дешифрованной подписи; генерировать подпись для данных в принятой MPEG таблице; и сравнивать дешифрованную подпись и подпись, сгенерированную в приемнике/декодере для принятых данных.
Предпочтительно в качестве средства хранения ключей используется ПЗУ, и идентификатор для каждого из общедоступных ключей может быть определен через физическое расположение данного общедоступного ключа в средстве хранения ключа.
Приемник/декодер может дополнительно содержать область энергозависимой памяти, и в котором средство обработки выполнено с возможностью загрузки приложения, имеющего подпись, зашифрованную с использованием секретного ключа, имеющего заранее определенный идентификатор, выполнения приложения в приемнике/декодере с целью инициирования приема приемником/декодером дополнительного ключа, и сохранения дополнительного ключа в области энергозависимой памяти приемника/декодера.
Приемник/декодер может дополнительно содержать средство для приема такого дополнительного ключа, который предоставляется в приемник/декодер на месте, например параллельный порт, последовательный порт или устройство считывания смарт-карты приемника/декодера. Предпочтительно энергозависимая память обеспечивается посредством оперативной памяти. Опять-таки, если приемник/декодер имеет соединение с модемом, предпочтительно приемник/декодер выполнен так, чтобы он мог воспрепятствовать поступлению такого дополнительного ключа через модем.
Приемник/декодер может дополнительно содержать защищенную область памяти для хранения флага проверки допустимости для каждого из хотя бы некоторых общедоступных ключей, в котором средство обработки запрограммировано на поиск в защищенной области памяти флага проверки допустимости для выбранного общедоступного ключа, а также на запрет или завершение загрузки данных в случае, если найденный флаг не установлен.
Приемник/декодер может также дополнительно содержать защищенную область памяти для хранения флага проверки допустимости для секретного ключа, имеющего заранее заданный идентификатор ключа, и в котором средство обработки выполнено с возможностью при выполнении упомянутого приложения изменять этот флаг проверки допустимости и разрешать сохранение дополнительного ключа в зависимости от состояния этого флага.
Эта последняя особенность может быть предоставлена независимо от девятого аспекта данного изобретения. Соответственно, в десятом аспекте данного изобретения предлагается приемник/декодер MPEG для осуществления части способа по п.17, содержащий:
средство для приема MPEG таблиц;
средство для хранения общедоступного ключа и идентификатора для указанного общедоступного ключа; и
защищенную область памяти для хранения флага проверки допустимости для общедоступного ключа; и
средство обработки, которое запрограммировано на поиск в защищенной области памяти приемника/декодера флага проверки допустимости для общедоступного ключа, соответствующего секретному ключу, указанному в принятой MPEG таблице, и, если найденный флаг установлен, дешифровку зашифрованной подписи в принятой MPEG таблице с использованием общедоступного ключа, соответствующего секретному ключу, указанному в принятой MPEG таблице, с целью получения дешифрованной подписи, генерирование подписи для данных в принятой MPEG таблице, и сравнение дешифрованной подписи и подписи, сгенерированной в приемнике/декодере для принятых данных.
Предпочтительно память для хранения флага(ов) проверки допустимости является перезаписываемой энергонезависимой памятью.
В случае, когда сохраняется множество таких общедоступных ключей, предпочтительно память для хранения флага(ов) проверки допустимости организована в виде битового массива.
Приемник/декодер в девятом или десятом аспекте данного изобретения может дополнительно содержать защищенную область памяти для хранения кода проверки допустимости, и в котором средство обработки запрограммировано на дешифровку кода проверки допустимости в такой принятой MPEG таблице, поиск сохраненного кода проверки допустимости и сравнение найденного кода проверки допустимости и дешифрованного кода проверки допустимости.
Эта последняя особенность может быть предоставлена независимо от девятого и десятого аспекта данного изобретения. Соответственно, в одиннадцатом аспекте данного изобретения предлагается приемник/декодер MPEG, содержащий:
средство для приема MPEG таблиц;
средство для хранения общедоступного ключа и идентификатора для указанного общедоступного ключа;
защищенную область памяти для хранения кода проверки допустимости; и
средство обработки, запрограммированное на дешифровку зашифрованного кода проверки допустимости и подписи в принятых MPEG таблицах с использованием сохраненного общедоступного ключа, соответствующего секретному ключу; поиск сохраненного кода проверки допустимости в защищенной области памяти; сравнение найденного кода проверки допустимости и дешифрованного кода проверки допустимости; генерирование подписи для данных в принятой MPEG таблице или упомянутой ее части; и сравнение дешифрованной подписи и подписи, сгенерированной в приемнике/декодере для принятых данных.
Предпочтительно средство обработки запрограммировано на запрет или завершение загрузки данных в случае, если найденный код проверки допустимости и дешифрованный код проверки допустимости не совпадают друг с другом.
Предпочтительно память для хранения кодов проверки допустимости обеспечивается перезаписываемой энергонезависимой памятью и организована в виде битового массива.
Приемник/декодер из аспектов данного изобретения с девятого по одиннадцатый может дополнительно содержать защищенную область памяти для хранения хотя бы одного смещения, и в котором средство обработки может быть запрограммировано на дешифровку зашифрованного блока данных в принятой MPEG таблице, поиск упомянутого одного сохраненного смещения в защищенной области памяти и извлечение подписи из дешифрованного блока данных с использованием найденного смещения от начала дешифрованного блока данных.
Эта последняя особенность может быть предоставлена независимо от аспектов данного изобретения с девятого по одиннадцатый. Соответственно, в двенадцатом аспекте данного изобретения предлагается приемник/декодер MPEG, содержащий: средство для приема MPEG таблиц;
средство для хранения общедоступного ключа и идентификатора для указанного общедоступного ключа;
защищенную область памяти для хранения хотя бы одного смещения; и
средство обработки, запрограммированное на дешифровку зашифрованного блока данных в принятой MPEG таблице, используя сохраненный общедоступный ключ, соответствующий секретному ключу; поиск упомянутого сохраненного смещения в защищенной области памяти; извлечение подписи из дешифрованного блока данных с использованием упомянутого смещения от начала дешифрованного блока данных; генерирование подписи для данных в принятой MPEG таблице; и сравнение подписи, извлеченной из дешифрованного блока данных, и подписи, сгенерированной в приемнике/декодере для принятых данных.
Предпочтительно память для хранения смещения обеспечивается перезаписываемой энергонезависимой памятью.
В приемнике/декодере из аспектов данного изобретения с девятого по двенадцатый средство обработки может быть запрограммировано на генерирование соответствующей подписи модуля для каждого из модулей в принятых MPEG таблицах модулей и сравнение каждой подписи модуля в принятой MPEG таблице каталога с соответствующей подписью модуля, сгенерированной приемником/декодером.
Эта последняя особенность может быть предоставлена независимо от аспектов данного изобретения с девятого по двенадцатый. Соответственно, в тринадцатом аспекте данного изобретения предлагается приемник/декодер MPEG, содержащий:
средство для приема MPEG таблиц каталога и модулей;
средство для хранения общедоступного ключа и идентификатора для этого общедоступного ключа; и средство обработки, запрограммированное на дешифровку зашифрованной подписи каталога в принятой MPEG таблице каталога с использованием сохраненного общедоступного ключа, соответствующего секретному ключу; генерирование подписи каталога для каталога в принятой MPEG таблице каталога; сравнение дешифрованной подписи каталога и подписи каталога, сгенерированной приемником/декодером; генерирование соответствующей подписи модуля для каждого из модулей в принятых MPEG таблицах модулей; и сравнение каждой подписи модуля в принятой MPEG таблице каталога и соответствующей подписи модуля, сгенерированной приемником/декодером.
Предпочтительно средство обработки запрограммировано на запрет или аварийное завершение загрузки модуля данных, если подпись модуля в принятой MPEG таблице каталога и соответствующая подпись модуля, сгенерированная в приемнике/декодере, не совпадают друг с другом.
Предпочтительно в приемнике/декодере из аспектов данного изобретения с девятого по тринадцатый средство обработки запрограммировано на запрет или завершение загрузки данных в случае, если одна или каждая из дешифрованных подписей и сгенерированная подпись не совпадают друг с другом.
Теперь предпочтительные особенности данного изобретения будут описаны исключительно на примере с использованием прилагаемых чертежей, на которых:
на фиг.1 представлена общая архитектура системы цифрового телевидения;
на фиг.2 показана архитектура интерактивной системы в системе цифрового телевидения с фиг.1;
на фиг. 3 приведена функциональная схема интерфейса приемника/декодера, являющегося частью системы, представленной на фиг.1 и 2;
на фиг. 4 приведено схематическое изображение устройства дистанционного управления, используемого в системе цифрового телевидения;
фиг. 5 иллюстрирует расположение файлов в загружаемом в приемник/декодер модуле;
фиг.6 иллюстрирует взаимосвязь между компонентами потока битов MPEG;
на фиг.7 показано, как приложение может быть разбито на модули/таблицы, которые, в свою очередь, могут состоять из секций;
фиг.8 иллюстрирует содержимое модуля каталога;
фиг.9 иллюстрирует более подробно часть содержимого модуля каталога;
фиг. 10 иллюстрирует различные области памяти в приемнике/декодере системы телевидения.
Общая структура системы вещания и приема цифрового телевидения 1000 согласно данному изобретению приведена на фиг.1. Изобретение включает самую обычную систему цифрового телевидения 2000, которая использует известную систему сжатия MPEG-2 для передачи сжатых цифровых сигналов. Более подробно, устройство сжатия MPEG-2 2002 в центре вещания принимает поток цифровых сигналов (обычно поток видеосигналов). Устройство сжатия 2002 подключается к мультиплексору и скремблеру 2004 с помощью канала 2006. Мультиплексор 2004 принимает множество входных сигналов, собирает один или несколько несущих потоков и передает сжатые цифровые сигналы в передатчик 2008 центра вещания через канал 2010, тип которого, естественно, может быть различным, включая каналы телекоммуникаций. Передатчик 2008 передает электромагнитные сигналы через канал "земля-спутник" 2012 на спутниковый ретранслятор 2014, где выполняется их обработка электронными средствами и вещание через виртуальный канал "спутник-земля" 2016 на наземный приемник 2018, обычно имеющий форму тарелки, принадлежащий конечному пользователю или арендуемый им. Сигналы, принимаемые приемником 2018, передаются в совмещенный приемник/декодер 2020, принадлежащий конечному пользователю или арендуемый им, и подключенный к телевизору 2022 конечного пользователя. Приемник/декодер 2020 декодирует сжатый MPEG-2 сигнал в телевизионный сигнал для телевизора 2022.
Система условного доступа 3000 подключается к мультиплексору 2004 и приемнику/декодеру 2020 и располагается частично в центре вещания и частично в декодере. Она позволяет конечному пользователю осуществлять доступ к вещательным передачам цифрового телевидения от одного или нескольких операторов вещания. В приемник/декодер 2020 может устанавливаться смарт-карта, которая может декодировать сообщения, относящиеся к коммерческим предложениям (одна или несколько телевизионных программ, продаваемых оператором вещания). С использованием декодера и смарт-карты пользователь может покупать передачи в режиме подписки или оплаты за просмотр (PPV).
Интерактивная система 4000, также подключенная к мультиплексору 2004 и приемнику/декодеру 2020 и также располагающаяся частично в центре вещания и частично в декодере, позволяет конечному пользователю взаимодействовать с различными приложениями через модемный обратный канал 4002.
На фиг. 2 приведена общая структура телевизионной интерактивной системы 4000 системы цифрового телевидения 1000 в соответствии с настоящим изобретением.
Например, интерактивная система 4000 позволяет конечному пользователю покупать товары по экранным каталогам, просматривать локальные новости и карты погоды по запросу и играть в игры, используя свой телевизор.
Интерактивная система 4000 содержит, вообще говоря, четыре основных элемента:
- средство разработки 4004 в центре вещания или в другом месте, позволяющее оператору вещания создавать, разрабатывать, отлаживать и тестировать приложения;
- сервер приложений и данных 4006 в центре вещания, соединенный со средством разработки 4004, для предоставления оператору вещания возможности подготавливать, удостоверять подлинность и форматировать приложения и данные для отправления в мультиплексор и скремблер 2004 для вставки его в несущий поток MPEG-2 (обычно в его приватную секцию), подлежащий вещанию для конечного пользователя;
- виртуальную машину, содержащую подсистему реального времени (RTE - Real Time Engine) 4008, которая представляет собой исполняемый код, инсталлированный в приемнике/декодере 2020, принадлежащем конечному пользователю или арендуемом им, для обеспечения конечному пользователю возможности принимать, удостоверять подлинность, разворачивать и загружать приложения в рабочую память декодера 2020 для выполнения. Подсистема 4008 также выполняет резидентные приложения общего назначения. Подсистема 4008 не зависит от аппаратного обеспечения и операционной системы; и
- обратный модемный канал 4002 между приемником/декодером 2020 и сервером приложений и данных 4006 для подачи сигналов, указывающих серверу 4006 вставлять данные и приложения в несущий поток MPEG-2 по требованию конечного пользователя.
Телевизионная интерактивная система работает с использованием т.н. "приложений", которые управляют функционированием приемника/декодера и различными устройствами, входящими в его состав. Приложения представлены в подсистеме 4008 как т.н. "файлы ресурсов". "Модуль" - это набор файлов ресурсов и данных. "Том памяти" приемника/декодера - это пространство для хранения модулей. Модули могут загружаться в приемник/декодер 2020 из несущего потока MPEG-2.
Для загрузки данных используются физические интерфейсы приемника/декодера 2020. Как показано на фиг.3, декодер 2020 содержит, например, шесть устройств загрузки: тюнер потока MPEG 4028, последовательный интерфейс 4030, параллельный интерфейс 4032, модем 4034 и два устройства считывания карт 4036.
Применительно к данному описанию, приложение - это фрагмент компьютерного кода для управления высокоуровневыми функциями приемника/декодера 2020. Например, когда конечный пользователь позиционирует фокус устройства дистанционного управления 2026 (подробно показанный на фиг.4) на объекте кнопки, видимом на экране телевизора 2022, и нажимает клавишу подтверждения, выполняется последовательность инструкций, соответствующая этой кнопке.
Интерактивное приложение обеспечивает меню и исполняет команды по соответствующему запросу конечного пользователя и предоставляет данные в соответствии с назначением данного приложения. Приложения могут быть либо резидентными приложениями, т.е. хранящимися в ПЗУ (либо в FLASH памяти, либо другой энергонезависимой памяти) приемника/декодера 2020, либо передающимися путем вещания и загружаемыми в ОЗУ (или FLASH) декодера 2020.
Примерами приложений являются:
- Приложение инициализации. Приемник/декодер 2020 снабжен резидентным приложением инициализации, которое является адаптируемым набором модулей (более подробно этот термин поясняется ниже) и позволяет приемнику/декодеру 2020 быть непосредственно готовым к работе в среде MPEG-2. Это приложение предоставляет базовые функции, которые могут быть при необходимости модифицированы оператором вещания. Оно предоставляет также интерфейс между резидентными приложениями и загружаемыми приложениями.
- Приложение запуска. Приложение запуска позволяет выполняться в приемнике/декодере 2020 любому приложению, либо загружаемому, либо резидентному. Это приложение работает как программа начальной загрузки, выполняемая при поступлении услуги для того, чтобы запустить приложение. Приложение запуска загружается в оперативную память и, следовательно, может быть легко обновлено. Оно может быть сконфигурировано таким образом, что интерактивные приложения, доступные по разным каналам, могут быть выбраны и выполнены либо сразу же после загрузки, либо после предварительной загрузки. В случае предварительной загрузки приложение загружается в память 2024 и активируется приложением запуска по необходимости.
- Руководство по программам. Руководство по программам - это интерактивное приложение, которое предоставляет полную информацию по программам. Например, оно может содержать информацию, скажем, о программе телевизионных передач на неделю, предоставляемых каждым каналом из пакета ("букета") каналов цифрового телевидения. Нажатием на клавишу устройства дистанционного управления 2026 конечный пользователь получает доступ к добавочному экрану, который с перекрытием накладывается на передачу, которая демонстрируется в данный момент на экране телевизора 2022. Этот добавочный экран представляет собой средство просмотра, предоставляющее информацию о текущих и последующих передачах каждого канала букета цифрового ТВ. С помощью нажатия на другую клавишу устройства дистанционного управления 2026 конечный пользователь получает доступ к приложению, которое выдает на экран информацию о программе передач на неделю. Конечный пользователь может также производить поиск и сортировку программ по простым и индивидуальным критериям. Конечный пользователь может также получать доступ непосредственно к выбранному каналу.
- Приложение PPV (PPV - Pay Per View, оплата производится за каждую просмотренную передачу). Приложение PPV - это интерактивная услуга, имеющаяся на каждом PPV канале букета цифрового ТВ с системой условного доступа 3000. Конечный пользователь может получать доступ к указанному приложению с использованием ТВ меню или броузера каналов. Кроме того, это приложение запускается автоматически, как только на PPV канале обнаруживается PPV передача. Затем конечный пользователь может купить текущую программу либо с помощью его дочерней смарт-карты 3020, или с помощью сервера связи 3022 (с использованием модема, телефона и DTMF кодов (кодов тонового набора), MINITEL, или другим подобным образом). Это приложение может быть резидентным в ПЗУ приемника/декодера 2020 или загружаться в оперативную память приемника/декодера 2020.
- Приложение загрузки в ПК. Конечный пользователь может по запросу загружать компьютерное программное обеспечение с использованием приложения загрузки в ПК.
- Приложение просмотра журнала. Приложение просмотра журнала обеспечивает периодическое вещание видеоизображений с обеспечением пользователю возможности навигации с помощью кнопок на экране.
- Приложение телевикторины. Приложение телевикторины предпочтительно синхронизируется с вещаемой программой телевикторины. Например, на экран телевизора 2022 выдаются несколько возможных ответов, и пользователь может выбрать ответ с помощью устройства дистанционного управления 2026. Приложение телевикторины может информировать пользователя, правилен его ответ или нет, и может подсчитывать набранные пользователем очки.
- Приложение дистанционных покупок. В одном из примеров приложения дистанционных покупок предложения товаров к продаже транслируются на приемник/декодер 2020 и затем выдаются на экран телевизора 2022. С помощью устройства дистанционного управления пользователь может выбрать для покупки какой-либо конкретный товар. Заказ на этот товар передается через обратный модемный канал 4002 в сервер приложений и данных 4006 или в отдельную систему продаж, номер телефона которой был загружен в приемник/декодер, возможно - с поручением дебетовать счет кредитной карты, которая установлена в одном из устройств считывания карты 4036 приемника/декодера 2020.
- Приложение дистанционных банковских услуг. В одном из примеров приложения дистанционных банковских услуг пользователь устанавливает банковскую карту в одно из устройств считывания карты 4036 приемника/декодера 2020. Приемник/декодер 2020 звонит банку пользователя с использованием номера телефона, записанного в банковской карте пользователя или хранящегося в приемнике/декодере, и затем приложение предоставляет набор средств, которые могут быть выбраны с помощью устройства дистанционного управления 2026, например, для загрузки по телефонной линии отчета о состоянии счета, перевода средств с одного счета на другой, запрашивания чековой книжки и т.д.
- Приложение Интернет-броузера. В одном примере приложения Интернет-броузера инструкции от пользователя, такие как запрос просмотра веб-страницы, имеющей конкретный URL, вводятся с использованием устройства дистанционного управления 2026, и они пересылаются по обратному модемному каналу 4002 в сервер приложений и данных 4006. Соответствующая веб-страница затем включается в транслируемые из центра вещания данные, принимаемые приемником/декодером 2020 через канал "земля-спутник" 2012, ретранслятор 2014 и канал "спутник-земля" 2016, и затем выдается на экран телевизора 2022.
Приложения сохраняются в ячейках памяти приемника/декодера 2020 и представляются в виде файлов ресурсов. Под файлами ресурсов понимают файлы библиотек описаний графических объектов, файлы библиотек блоков переменных, файлы последовательностей команд, файлы приложений и файлы данных.
Файлы библиотек описаний графических объектов описывают экраны, человеко-машинный интерфейс приложения. Файлы библиотек блоков переменных описывают структуры данных, которыми оперирует приложение. Файлы последовательностей команд описывают функциональные действия, выполняемые приложением. Файлы приложений предоставляют точки входа для приложений.
Приложения, составляемые таким способом, могут использовать файлы данных, такие как файлы библиотек пиктограмм, файлы изображений, файлы шрифтов, файлы таблиц цветов и файлы текстов ASCII. Интерактивное приложение может также получать оперативные данные, задействуя входы и/или выходы.
Подсистема 4008 загружает в свою память только те файлы ресурсов, которые необходимы ей в данное время. Эти файлы ресурсов считываются из файлов библиотек описаний графических объектов, файлов последовательностей команд и файлов приложений; файлы библиотек блоков переменных записываются в память после вызова процедуры загрузки модулей и остаются там до тех пор, пока не будет произведен специальный вызов процедуры выгрузки модулей.
Со ссылкой на фиг.5 модуль 4010, как например модуль дистанционных покупок, представляет собой набор файлов ресурсов и данных, содержащий следующее:
один файл приложения 4012;
неопределенное количество файлов библиотек описаний графических объектов 4014;
неопределенное количество файлов библиотек блоков переменных 4016;
неопределенное количество файлов последовательностей команд 4018; и если необходимо, файлы данных 4020, такие как файлы библиотек пиктограмм, файлы изображений, файлы шрифтов, файлы таблиц цветов и файлы текстов ASCII.
Идея использования модулей 4010 вместе с идеей загрузки небольших фрагментов кода обеспечивают легкость наращивания приложений. Они могут загружаться в постоянную флэш-память декодера 2020 как резидентное программное обеспечение или вещаться с целью загрузки в оперативную память декодера 2020 только в случае возникновения потребности в них у пользователя.
Для загрузки модуля 4010 из несущего сигнала сначала загружается каталог, доступный из несущего сигнала. Этот каталог представляет собой просто список имен модулей 4010, которые могут быть загружены из несущего сигнала. Как только каталог загружен, приложение может загрузить один или несколько модулей 4010. В случае MPEG потока каталог передается в одной MPEG таблице. Далее один модуль 4010 передается в одной MPEG таблице. В случае модулей, транслируемых в тюнер MPEG 4028, используется длинный MPEG-2 формат с длинным заголовком и CRC-кодом. Также обстоит ситуация и с пятью
другими интерфейсами (последовательный порт 4030, параллельный порт 4032, модем 4034 и два устройства считывания карты 4036), за исключением случая, когда используется "короткий" MPEG формат с коротким заголовком, и CRC не используется.
Как показано, в частности, на фиг.6, и как является известным, поток битов MPEG-2 включает таблицу доступа к программам (PAT) 10, имеющую идентификатор пакета (PID), равный 0. PAT содержит ссылки на PID таблиц распределения программ (РМТ - Programme Map File) 12 ряда программ. Каждая РМТ содержит ссылки на PID в потоках аудио MPEG таблиц 14 и видео MPEG таблиц 16 для данной программы. Пакет, имеющий идентификатор PID, равный 0, то есть таблица доступа к программам 10, предоставляет точку входа для обращения ко всей MPEG информации.
Для того чтобы загружать приложения и данные для них, определяются два новых типа потоков, и соответствующая РМТ содержит также ссылки на идентификаторы PID в потоках MPEG таблиц приложений 18 (или их секций) и MPEG таблиц данных 20 (или их секций).
Как показано на фиг.7, для загрузки приложения 22 указанное приложение разделяется на модули 24, каждый из которых образуется MPEG-таблицей, причем некоторые из модулей состоят из одной секции 18, и некоторые могут состоять из множества секций 18. Типовая секция 18 имеет заголовок 26, который содержит однобайтовый идентификатор таблицы ("TID") 28, номер секции 30 для данной секции в таблице, общее число секций 32 в данной таблице и двухбайтовое расширение TID 34. Каждая секция содержит также данные 36 и CRC 38. Для конкретного модуля/таблицы 24 все секции 18, образующие эту таблицу 24, имеют одинаковый TID 28 и одинаковое расширение TID 34. Для конкретного приложения 22 все таблицы 24, составляющие это приложение 22, имеют одинаковый TID 28, но разные соответствующие расширения TID.
Для каждого приложения 22 существует одна такая MPEG таблица 24, изображенная более подробно на фиг.8, которая используется в качестве каталога. Таблица каталога 40 содержит заголовок 26, данные каталога 42, идентификатор ключа 44, зашифрованную подпись 46 и CRC 38. Из сказанного выше следует, что таблица каталога 40 имеет в заголовке 26 тот же идентификатор TID 28, что и остальные модули/таблицы 24, образующие приложение. Однако таблица каталога имеет заранее определенное расширение TID 34, равное 0, а все остальные модули 24 имеют ненулевые расширения TID. Заголовок также включает для таблицы каталога 40 номер версии 48. Данные каталога 42 для каждого из остальных модулей/таблиц 24, образующих приложение 22, включают имя 50 данного модуля, расширение TID 34 для данного модуля и подпись 52 данного модуля. Данные каталога 42 могут также включать для каждого из остальных модулей/таблиц 24 размер данного модуля и номер версии модуля.
Возвращаясь к фиг.6, во время работы, PAT 10, РМТ 12 и компоненты потока таблиц приложений и данных 18, 20 периодически транслируются, и, по мере необходимости, обновляются. Каждое приложение, которое транслируется, имеет соответствующий заранее определенный TID 28. Чтобы загрузить приложение, в приемник/декодер 2020 загружается MPEG таблица, имеющая соответствующий TID и расширение TID, равное 0. Это, таким образом, и есть таблица каталога 40 для требуемого приложения. Затем данные каталога обрабатываются приемником/декодером с целью определения расширений TID 34 таблиц модулей, составляющих требуемое приложение, и затем может быть загружена любая необходимая таблица модуля, имеющая тот же TID, что и таблица каталога, и расширение TID, определяемое из данных каталога.
Приемник/декодер 2020 выполнен с возможностью осуществлять проверку таблицы каталога на наличие в ней любых обновлений. Это может быть выполнено путем периодической повторной загрузки таблицы каталога, например, каждые 30 секунд, каждую минуту или пять минут, и сравнения номера версии новой загруженной таблицы каталога с номером версии ранее загруженной таблицы каталога. Если номер новой загруженный версии более поздний, то модули, относящиеся к предыдущей таблице каталога, или любые такие модули, для которых имеются более поздние номера версий, деинсталлируются, и производится загрузка и установка модулей более поздних версий. В альтернативном варианте входной поток битов фильтруется с использованием маски, в которой значения TID задано равным TID приложения, расширения TID - 0, и номера версии - на единицу большим, чем номер версии загруженного в данный момент каталога. В соответствии с этим приращение номера версии может быть обнаружено, и как только оно обнаружено, загружается каталог и приложение обновляется, как описано выше. Подробное описание такой фильтрации содержится в одновременно рассматриваемой заявке (номер дела поверенного PDC/ASB/19716). Если приложение должно быть удалено, транслируется пустой каталог со следующим номером версии, но без указания в каталоге каких-либо модулей. В ответ на прием такого пустого каталога приемник/декодер 2020 запрограммирован деинсталлировать приложение.
Ниже подробно описано использование подписи и шифрования для таблиц приложения.
Как описано выше, запись о каждом модуле в таблице каталога 40 содержит подпись модуля. Подпись модуля генерируется с использованием известного алгоритма генерирования подписи MD5 на основе данных в соответствующей таблице модуля.
Кроме того, таблица каталога 40 содержит зашифрованную подпись 46, которая сгенерирована способом, который будет описан ниже со ссылкой на фиг.9. Формируется блок данных 54 размером 64 байта. Первый байт 56 равен нулю. Следующие три байта 58 могут быть пустыми или содержать произвольные данные. Следующие восемь байтов 60 образуют битовый массив проверки допустимости приложения, который будет описан ниже. Последние четыре байта 62 являются резервными. Оставшиеся 48 байтов содержат 16-байтовую подпись 64, которая начинается со смещения, принимающего значения от 0 до 31 байта после первого байта, следующего после битового массива проверки допустимости 60. Фиктивные данные 66 вставляются между битовым массивом проверки допустимости приложения 60 и подписью 64 и/или между подписью 64 и резервными байтами 62. Подпись 64 получается с использованием известного алгоритма генерирования подписи MD5 на основе данных каталога 42 в таблице каталога 40. Затем блок 54 зашифровывается с использованием известного алгоритма шифрования и некоторого секретного ключа с целью получения зашифрованной подписи и битового массива проверки допустимости приложения 46. Этот блок данных 46 включается в таблицу каталога 40, и в качестве идентификатора ключа 44 в таблицу каталога 40 включается 1-байтовый идентификатор секретного ключа, который использовался для шифрования блока.
В итоге генерирование приложения и его трансляция включают следующие операции:
генерирование приложения в виде множества модулей;
запоминание для приложения заранее заданного TID 28;
назначение имен и ненулевых расширений TID 34 для модулей;
форматирование каждого модуля в виде MPEG таблицы 24 или секций 18 MPEG таблицы;
генерирование подписи MD5 52 для каждого модуля;
генерирование данных каталога 42;
генерирование подписи MD5 64 для каталога;
выбор битового массива проверки допустимости приложения 60;
выбор смещения;
генерирование блока 54;
шифрование блока 54 с использованием шифрования с выбранным секретным ключом;
генерирование MPEG таблицы каталога 40 с назначенным TID 28, нулевым расширением TID, данными каталога 42, идентификатором ключа 44 и зашифрованной подписью 46;
трансляция таблицы каталога 40 и таблиц модулей 24 или секций 18.
Ниже описывается функционирование приемника/декодера 2020 при обработке подписей и дешифровке во время загрузки приложения. Как показано на фиг.10, приемник/декодер 2020 содержит электрически стираемое ППЗУ 68, ПЗУ 70 и оперативную память 72. Электрически стираемое ППЗУ содержит защищенную область 74, которая используется виртуальной машиной, запись в которую может производить только виртуальная машина (но не обычное приложение). Защищенная область 74 содержит битовый массив проверки допустимости ключа 76 размером 16 или 256 битов, битовый массив проверки допустимости приложения 78 из 64 битов и битовый массив смещения 80 из 32 битов. ПЗУ 70 содержит, в одной реализации, шестнадцать общедоступных ключей 82, и в этом случае используется 16-битовый массив проверки допустимости ключа, либо, в другой реализации, 256 общедоступных ключей, и в этом случае используется 256-битовый массив проверки допустимости ключа. Общедоступные ключи идентифицируются по их физическому расположению в ПЗУ 70, или, как альтернатива, они могут быть включены в справочную таблицу, в которой идентификатору конкретного ключа будет соответствовать соответствующий общедоступный ключ. Оперативная память 72 может использоваться для хранения временного ключа 84.
Как упоминалось выше, когда необходимо загрузить приложение, в первую очередь загружается таблица каталога, содержащая заранее заданный TID для этого приложения и нулевое расширение TID. Затем из таблицы каталога извлекается идентификатор ключа 44 и производится проверка битового массива проверки допустимости ключа 76 в защищенной области памяти 74, установлен ли бит, соответствующий извлеченному идентификатору ключа 44. Если нет, то загрузка приложения прекращается. Однако, если соответствующий бит установлен, из ПЗУ 70 выбирается общедоступный ключ 82, соответствующий извлеченному идентификатору ключа 44. Затем для дешифровки зашифрованного блока 46 в таблице каталога 40 для получения блока 54 используется выбранный общедоступный ключ и известный процесс дешифровки. Затем из дешифрованного блока 54 извлекается битовый массив проверки допустимости приложения 60 и над его содержимым и содержимым битового массива проверки допустимости приложения 78, хранящегося в защищенной памяти 74, выполняется операция AND. Если результат выполнения операции AND нулевой, то загрузка приложения прекращается. Однако, если результат выполнения операции AND ненулевой, производится поиск установленного бита смещения, содержащегося в битовом массиве смещения 80 в защищенной памяти 74, или, если установлен более чем один бит смещения, производится поиск каждого бита смещения по очереди, и из дешифрованного блока 54 извлекаются 16 байтов данных, начиная с найденного смещения от первого байта после битового массива проверки допустимости приложения 60. Для одного или каждого найденного смещения эти 16 байтов рассматриваются как подпись, транслируемая с таблицей каталога 40. Подпись данных каталога 42 таблицы каталога 40 вычисляется с использованием известного процесса MD5, и эта вычисленная подпись сравнивается с подписью, извлеченной из блока 54. Если две подписи для одного или каждого найденного смещения не совпадают, то загрузка приложения прекращается. Однако, если одна из подписей подходит, то загрузка модулей, указанных в данных каталога 42, может производиться. Как упомянуто выше, чтобы загрузить конкретный модуль, из данных каталога 42 получают расширение TID для данного модуля и загружается MPEG таблица 24 или секция 18 с тем же TID, что и у таблицы каталога, и с полученным расширением TID. Как только загрузится MPEG таблица модуля, приемник/декодер 2020 вычисляет подпись загруженной таблицы с использованием известного процесса MD5 и затем сравнивает эту вычисленную подпись с подписью, содержащейся в соответствующем элементе данных каталога. Если подписи совпадают, то модуль принимается, если не совпадают - модуль отвергается.
Таким способом могут быть загружены все модули приложения, и приложение может быть выполнено приемником/декодером.
После описания особенностей операции загрузки, обычно используемых в режиме загрузки, опишем теперь некоторые особенности настроек приемника/декодера 2020 и изменения его настроек.
Приемник/декодер программируется так, что защищенная область памяти может быть изменена, но только приложением, которое загружается с использованием одного специального идентификатора ключа, например ключа 15, и специального смещения, например, нуль байтов от первого байта после битового массива проверки допустимости приложения 60. Необходимость в изменении защищенной памяти 74 может возникнуть, например, если два оператора, которые использовали один и тот же общедоступный ключ, принимают решение использовать различные общедоступные ключи, или, если содержимое секретного ключа было открыто, то в этом случае соответствующий общедоступный ключ может быть отмечен как недействительный в битовом массиве проверки допустимости ключа 76.
Приемник/декодер 2020 может быть устроен так, чтобы один из указанных ключей, например ключ 15, был всегда доступен, и в этом случае для такого ключа не требуется бита в битовом массиве проверки допустимости ключа 76. Соответственно, этот бит может быть использован для другой цели. В частности, может быть предусмотрено, что приложение, подлинность которого удостоверяется ключом 15, устанавливает этот конкретный бит в 1, и в этом случае приемник/декодер программируется так, чтобы разрешить загрузку в оперативную память 72 временного ключа 84, но только через последовательный интерфейс 4030, параллельный интерфейс 4032 или одно из двух устройств считывания карты 4036. Эта возможность может использоваться, например, изготовителем приемника/декодера 2020, которому может быть предоставлено для использования приложение с целью разрешить загрузку временного ключа в приемник/декодер 2020, с тем, чтобы он мог быть протестирован.
Описанная выше методика шифрования и подписания обеспечивают ряд важных возможностей. В частности:
приложение может быть загружено только тогда, когда приемник/декодер 2020 имеет сохраненный в памяти общедоступный ключ, соответствующий идентификатору ключа 44 в загруженной таблице каталога;
для всех ключей, за исключением одного, приложение может быть загружено с использованием некоторого ключа только в том случае, если битовый массив проверки допустимости ключа 76 в памяти приемника/декодера 2020 установлен так, чтобы разрешить использование данного ключа;
приложение может быть загружено только тогда, когда установленный бит в битовом массиве смещения 80, хранящемся в памяти приемника/декодера 2020, соответствует смещению, используемому при генерировании таблицы каталога;
приложение может быть загружено только тогда, когда битовый массив проверки допустимости приложения 78 в памяти приемника/декодера 2020 установлен таким образом, что разрешается загрузка приложения;
приложение может быть загружено только если таблица каталога не была повреждена после того, как была первоначально сгенерирована ее подпись;
каждый модуль приложения может быть загружен только если соответствующая таблица модуля не была повреждена после того, как была первоначально сгенерирована ее подпись;
только одна операция шифрования необходима для подготовки приложения к загрузке, даже если приложение состоит из нескольких MPEG таблиц, и в приемнике/декодере для загрузки всего приложения необходима только одна операция дешифровки;
можно использовать несколько ключей, так что различные провайдеры услуг могут иметь разные секретные ключи;
может использоваться временный ключ, например, изготовителем, для целей тестирования.
Очевидно, что настоящее изобретение было описано выше исключительно в виде примера, и возможны различные модификации в пределах данного изобретения.
Каждая особенность, изложенная в описании, а также (где это уместно) пункты формулы и фигуры могут быть предоставлены независимо или в соответствующем сочетании.
В вышеупомянутых предпочтительных вариантах реализации некоторые средства предлагаемого изобретения реализованы с использованием программного обеспечения. Однако опытному специалисту, конечно, понятно, что любые эти средства могут быть реализованы аппаратно. Далее, понятно, что функции, выполняемые аппаратными средствами, программное обеспечение компьютера и тому подобное выполняются на или с использованием электрических и им подобных сигналов.
Перекрестные ссылки выполнены на наши совместно рассматриваемые заявки с той же самой датой подачи и озаглавленные как "Генерирование сигналов и вещание" (номер дела поверенного PC/ASD/19707), "Смарт-карта для использования в приемнике зашифрованных вещательных сигналов и приемник" (номер дела поверенного PC/ASD/19708), "Система вещания и приема и система условного доступа для нее" (номер дела поверенного PC/ASD/19710), "Загрузка компьютерного файла из передатчика через приемник/декодер в компьютер" (номер дела поверенного PC/ASD/19711), "Трансляция и прием телевизионных программ и других данных" (номер дела поверенного PC/ASD/19712), "Загрузка данных" (номер дела поверенного PC/ASD/19713), "Организация памяти компьютера" (номер дела поверенного PC/ASD/19714), "Разработка системы управления телевидением и радио" (номер дела поверенного PC/ASD/19715), "Извлечение разделов данных из потока транслируемых данных" (номер дела дела поверенного PC/ASD/19716), "Система управления доступом" (номер дела поверенного PC/ASD/19717), "Система обработки данных" (номер дела поверенного PC/ASD/19718), "Система вещания и приема, а также приемник/декодер и удаленный контроллер для нее" (номер дела поверенного PC/ASD/19720). Раскрытие содержимого этих документов включено сюда посредством ссылок. Список заявок включает и предлагаемое изобретение.
В системе цифрового телевидения, в которой телевизор принимает ТВ-сигнал через приемник/декодер, например, в виде приставки, в приемник/декодер может загружено и выполнено приложение. Код приложения представлен в виде модулей, и загрузке модулей предшествует поиск модуля каталога в пределах заданного локального адреса. Модули подписываются, и модуль каталога подписывается и зашифровывается так, чтобы для всех модулей, составляющих приложение, используется одна операция шифрования. В ПЗУ приемника/декодера хранится множество общедоступных шифровальных ключей, так что приложения могут создаваться различными источниками, причем этим источникам нет необходимости знать шифровальные ключи друг друга. Предоставляется средство для временного хранения шифровального ключа в оперативной памяти приемника/декодера, так что изготовитель приемника/декодера может проверять его функции. Подпись каталога может быть спрятана в любой позиции блока фиктивных данных в модуле каталога. Подлежащее загрузке приложение может быть проверено с использованием битового массива проверки допустимости, хранящегося в памяти приемника/декодера. 13 с. и 90 з.п.ф-лы, 10 ил.
Преобразователь-код во временной интервал | 1978 |
|
SU752786A1 |
МНОГОПРОГРАММНОЕ УСТРОЙСТВО ПЕРЕДАЧИ ТЕЛЕВИЗИОННОЙ ИНФОРМАЦИИ | 1990 |
|
RU2024213C1 |
Способ гашения пены в процессе непрерывного выращивания микроорганизмов | 1978 |
|
SU687113A1 |
Преобразователь-код во временной интервал | 1978 |
|
SU752786A1 |
US 5365272 А, 15.11.1994 | |||
US 5579317 А, 26.11.1996. |
Авторы
Даты
2002-12-20—Публикация
1997-04-25—Подача