Изобретение относится к способу скремблирования потока данных, включающему в себя этапы, на которых:
получают из потока последовательность первых рядов блоков данных,
реверсируют порядок блоков в каждом из первых рядов блоков, чтобы сформировать соответствующие вторые ряды блоков данных, и
шифруют блоки в каждом втором ряду блоков с использованием шифра в режиме сцепления блоков, инициализируемом соответствующим вектором инициализации для каждого второго ряда блоков.
Изобретение также относится к системе скремблирования потока данных, включающей в себя:
вход для приема потока как последовательности первых рядов блоков данных,
множество регистров и, по меньшей мере, один логический блок для реверсирования порядка блоков в каждом из первых рядов блоков, чтобы сформировать соответствующие вторые ряды блоков данных, и
средство обработки для шифрования блоков в каждом втором ряду блоков с использованием шифра в режиме сцепления блоков, инициализируемом с помощью соответствующего вектора инициализации для каждого второго ряда блоков.
Изобретение также относится к способу дескремблирования потока скремблированных данных, чтобы сформировать поток данных, при этом способ включает в себя этапы, на которых:
получают из потока скремблированных данных последовательность рядов блоков скремблированных данных, и
дескремблируют каждый ряд блоков скремблированных данных, чтобы сформировать связанный ряд блоков дескремблированных данных с использованием шифра дешифрования в режиме обратного сцепления, при этом, чтобы дескремблировать ряд блоков скремблированных данных,
последний блок в ряду блоков дескремблированных данных получается посредством применения шифра дешифрования к последнему блоку в связанном ряду блоков скремблированных данных и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и вектор инициализации, и при этом каждый блок, предшествующий последнему блоку в ряду блоков дескремблированных данных, получается посредством применения шифра дешифрования к блоку в ряду блоков скремблированных данных в соответствующей позиции и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и блок скремблированных данных в следующей позиции ряда блоков скремблированных данных.
Изобретение также относится к системе дескремблирования потока скремблированных данных, чтобы сформировать поток данных, при этом система включает в себя:
вход для приема потока скремблированных данных как последовательности рядов блоков скремблированных данных, и
- средство обработки для дескремблирования каждого ряда блоков скремблированных данных, чтобы сформировать связанный ряд блоков дескремблированных данных, посредством шифра дешифрования в режиме обратного сцепления, при этом, чтобы дескремблировать ряд блоков скремблированных данных,
последний блок дескремблированных данных в ряду получается посредством применения шифра дешифрования к последнему блоку в связанном ряду блоков скремблированных данных и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и вектор инициализации, и при этом каждый предшествующий блок дескремблированных данных в ряду получается посредством применения шифра дешифрования к блоку в ряду блоков скремблированных данных в соответствующей позиции и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и блок дескремблированных данных в следующей позиции ряда блоков скремблированных данных.
Изобретение также относится к устройству отправки и приема данных.
Изобретение также относится к вычислительной программе.
Соответствующие примеры этих способов и систем известны из WO 95/10906. В известном способе цифровые данные делятся на пакеты из N блоков, X(1), X(2),..., X (N), причем каждый блок имеет 2m битов. Ряд блоков реверсируется перед операцией шифрования для получения ряда блоков X(N), X(N-1),..., X(1). Этот ряд блоков шифруется посредством алгоритма шифрования E следующим образом (где ^ используется для обозначения оператора «исключающее ИЛИ» (XOR)):
Y(1)=E[X(N)^IV]
Y(i)=E[X(N-i+1)^Y(i-1)] для i>1 и i< N.
Ряд этих зашифрованных блоков снова реверсируется, так что ряд Y(N), Y(N-1),..., Y(1) передается в приемное устройство.
На стороне приемного устройства исходные блоки данных получаются посредством алгоритма шифрования D следующим образом:
X(i)=D[Y(N-i+1)^Y(N-i)] для i=1, 2,..., N-1
X(N)=D[Y(1)]^IV.
Способ, используемый в известной системе, указывается как обратное сцепление блоков шифра, или способ RCBC. Его преимущество состоит в том, что буферная память в приемном устройстве требуется для сохранения только двух блоков данных.
Проблема известного способа и системы заключается в том, что она требует буфера на стороне отправителя с емкостью для сохранения N блоков, чтобы реализовать реверсирование ряда блоков. Это становится проблемой, если имеется множество отправителей зашифрованных данных в системе для обмена данными или если устройство должно функционировать как отправитель и получатель данных.
Целью настоящего изобретения является создание способов, систем, устройства и вычислительной программы типов, указанных во вступлении, которые могут быть реализованы более эффективно при обеспечении допустимого уровня защиты содержимого.
Эта цель достигается посредством способа скремблирования потока данных согласно изобретению, который отличается тем, что для последовательности первых рядов блоков, включенных в единицу данных в потоке, по меньшей мере, один вектор инициализации для шифрования второго ряда блоков, сформированного из первого ряда блоков в единице данных, генерируется в зависимости от, по меньшей мере, одного блока в предшествующем первом ряду блоков единицы данных.
Поскольку единица данных включает в себя последовательность первых рядов блоков, каждый первый ряд блоков формируется из меньшего числа блоков, что означает, что меньшая буферная память требуется для того, чтобы реверсировать порядок блоков. Это возможно с допустимым уровнем защиты, поскольку, по меньшей мере, два из вторых рядов блоков фактически сцеплены. Это сцепление обусловлено тем фактом, что, по меньшей мере, один вектор инициализации (за исключением первого в случае, когда требуется максимальная защита) для шифрования второго ряда блоков, сформированного из первого ряда блоков, генерируется в зависимости от, по меньшей мере, одного блока в предыдущем первом ряде блоков единицы.
В варианте осуществления соответствующие векторы инициализации для шифрования блоков в каждом втором ряду блоков, сформированном из первого ряда блоков, генерируются в зависимости, по меньшей мере, от одного блока данных, предшествующего последнему блоку в том же первом ряду.
Следствием этого является то, что реализуется большая вариация векторов инициализации. Даже блоки первого из первых рядов блока в последовательности, включенной в единицу данных, скремблируются с помощью вектора инициализации с высокой вероятностью уникальности. Вариация обеспечивается посредством генерирования вектора инициализации в зависимости, по меньшей мере, от одного блока данных, предшествующего последнему блоку в том же первом ряду. Вследствие реверсирования порядка блоков в каждом первом ряду один или более блоков данных, в зависимости от которых генерируется вектор инициализации, становятся доступными в ходе дескремблирования, прежде чем вектор инициализации потребуется дескремблеру. Таким образом, уникальность вектора инициализации для каждого первого ряда в последовательности первых рядов, включенных в единицу данных, достигается с относительно высокой вероятностью, без необходимости предоставлять приемному устройству новый вектор инициализации для каждого первого ряда.
В варианте осуществления каждый вектор инициализации для шифрования второго ряда блоков, сформированного из первого ряда блоков в единице данных, генерируется в зависимости, по меньшей мере, от одного блока данных в каждом из любых предшествующих первых рядов блоков единицы.
Таким образом, сцепление между вторыми рядами максимизируется тем, что последний первый ряд блоков данных не может быть получен в открытом виде без ранее полученных всех из любых предшествующих первых рядов блоков в последовательности первых рядов, включенных в единицу данных.
Вариант осуществления включает в себя прием пакета данных, содержащего заголовок и полезную нагрузку, в котором единица данных образована полезной нагрузкой.
Этот вариант осуществления является выгодным, поскольку полезная нагрузка может скремблироваться без необходимости сначала полностью буферизовать ее.
В варианте осуществления шифр представляет собой блочный шифр, сконфигурированный для работы на основе базовых блоков заранее определенного размера, при этом блоки в, по меньшей мере, вторых рядах данных соответствуют по размеру базовому блоку.
В варианте осуществления, если единица данных состоит из последовательности первых рядов блоков и последующего объема данных по размеру, равного величине, меньшей величины, кратной размеру базового блока, то:
- объем данных дополняется до размера, равного величине, кратной размеру базового блока, чтобы сформировать первый конечный ряд из, по меньшей мере, двух блоков,
- последние два блока первого конечного ряда блоков переставляются, и порядок блоков в первом конечном ряду блоков реверсируется, чтобы сформировать второй конечный ряд блоков данных,
- блоки во втором конечном ряду блоков шифруются с помощью шифра в режиме сцепления блоков, инициализируемом посредством вектора инициализации, генерируемого в зависимости от, по меньшей мере, одного блока в предыдущем первом ряду блоков единицы данных.
Таким образом, способ адаптирован для реализации некоторой форму передачи шифрованного текста. Это относительно защищенный способ обеспечения того, что скремблируется вся единица данных. Помимо этого, это обеспечивает возможность использования первых рядов, сформированных из заранее определенного числа блоков, чтобы скремблировать первый раздел единицы данных.
В варианте осуществления, если следующая единица данных в потоке состоит из нуля или более первых рядов заранее определенного числа блоков и по объему данных равна величине, меньшей размера одного базового блока, то:
- объем данных дополняется до размера, равного размеру одного базового блока, чтобы сформировать последний блок,
- последний блок шифруется с помощью шифра в режиме сцепления блоков, инициализируемом посредством вектора инициализации, генерируемого в зависимости от, по меньшей мере, одного блока в предыдущем первом ряду блоков единицы данных.
Таким образом, последующий объем данных не должен передаваться в открытом виде, даже если он меньше размера базового блока, под который сконфигурирован шифр.
В разновидности этого варианта осуществления вектор инициализации генерируется посредством выполнения криптографической операции, предпочтительно, дешифрования, которое является инверсией шифра, для вектора на основе, по меньшей мере, одного вектора, который не зависит ни от одного блока в любом предшествующем первом ряду блоков единицы данных.
Следствием этого является то, что вариация вектора инициализации может быть реализована с использованием того же вектора, который использовался для генерации вектора инициализации для скремблирования блоков данных в предыдущей единице данных. Таким образом, требуется передавать дескремблеру меньшее число векторов, и при этом защита остается относительно надежной. С использованием дешифрования, которое является инверсией шифра, достигается то, что обеспечивается использование конфигурации аппаратных средств и/или программного обеспечения дескремблера, которая уже имеется для целей шифрования.
Согласно другому аспекту, система скремблирования потока данных согласно изобретению отличается тем, что система выполнена, для последовательности первых рядов блоков, включенных в единицу данных в потоке, с возможностью генерировать, по меньшей мере, один вектор инициализации для шифрования второго ряда блоков, сформированного из первого ряда блоков в единице данных, в зависимости от, по меньшей мере, одного блока в предшествующем первом ряду блоков единицы данных.
Благодаря своей эффективности система очень хорошо подходит для включения в специализированный процессор шифрования.
Предпочтительно, система сконфигурирована для выполнения способа согласно изобретению.
Согласно другому аспекту, способ дескремблирования потока скремблированных данных согласно изобретению отличается тем, что для последовательности рядов блоков скремблированных данных, включенных в единицу данных в потоке скремблированных данных, генерируется, по меньшей мере, один вектор инициализации для дескремблирования ряда блоков скремблированных данных в зависимости от, по меньшей мере, одного блока дескремблированных данных в ряду блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице данных.
Способ подходит для дескремблирования потока скремблированных данных, получаемого посредством применения способа скремблирования потока данных согласно изобретению. Поскольку ряды блоков данных в последовательности дескремблируются по отдельности и по порядку, не так уж важно, если блоки в ряду принимаются не по порядку (к примеру, в обратном порядке), поскольку ряды короче всей последовательности рядов. Поскольку, по меньшей мере, один вектор инициализации для дескремблирования ряда блоков скремблированных данных генерируется в зависимости от, по меньшей мере, одного блока дескремблированных данных в ряду блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице, по меньшей мере, два ряда блоков скремблированных данных сцепляются, затрудняя несанкционированное дескремблирование.
В варианте осуществления соответствующие векторы инициализации для дескремблирования каждого ряда блоков скремблированных данных генерируются в зависимости от, по меньшей мере, одного блока, полученного посредством применения шифра дешифрования к блоку в ряду блоков скремблированных данных, предшествующему последнему блоку скремблированных данных в том же ряду, и посредством применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и блок скремблированных данных в следующей позиции того же ряда блоков скремблированных данных.
Преимущество этого заключается в том, что поток из множества единиц данных не требует передачи множества векторов инициализации из скремблера в дескремблер, чтобы добиться достаточной вариативности векторов инициализации.
В варианте осуществления каждый вектор инициализации для дескремблирования ряда блоков скремблированных данных в единице данных генерируется в зависимости от, по меньшей мере, одного блока дескремблированных данных из каждого любого ряда блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице данных.
Таким образом, по сути, сцепляются все ряды в последовательности, включенной в единицу данных.
Вариант осуществления включает в себя прием пакета данных, содержащего заголовок и полезную нагрузку, в котором единица данных образована полезной нагрузкой.
В варианте осуществления шифр дешифрования представляет собой шифр блока, сконфигурированный для работы на основе базовых блоков заранее определенного размера, при этом блоки в рядах блоков скремблированных данных соответствуют по размеру базовому блоку.
В варианте осуществления, если единица данных состоит из последовательности рядов блоков скремблированных данных и последующего объема данных, по размеру, равного величине, составляющей целое кратное размера базового блока и часть размера базового блока, то:
объем данных дополняется заранее определенными данными до размера, равного величине, кратной размеру базового блока, чтобы сформировать конечный ряд блоков скремблированных данных,
последний из конечного ряда блоков дескремблированных данных формируется посредством применения шифра дешифрования к блоку, непосредственно предшествующему последнему блоку конечного ряда скремблированных данных, применения XOR-оператора, имеющего в качестве операндов результат шифра дешифрования и последний блок конечного ряда блоков скремблированных данных, и удаления части результата XOR-оператора, соответствующей по размеру заранее определенным данным,
каждый из любых блоков, предшествующих двум последним блокам конечного ряда блоков дескремблированных данных, формируется посредством применения шифра дешифрования к блоку в соответствующей позиции в первом конечном ряду блоков скремблированных данных и применения XOR-оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и блок дескремблированных данных в следующей позиции конечного ряда блоков скремблированных данных, и
блок, предшествующий последнему блоку в конечном ряду блоков дескремблированных данных, получается посредством применения шифра дешифрования к блоку, сформированному посредством конкатенации удаленной части, соответствующей по размеру заранее определенным данным, и последнего блока конечного ряда скремблированных данных, и посредством применения XOR-оператора, имеющего в качестве операндов результат шифра дешифрования и вектор инициализации, сгенерированный в зависимости от, по меньшей мере, одного блока дескремблированных данных, полученного посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице данных.
Это является реализацией передачи шифрованного текста на стороне дескремблера.
В варианте осуществления, если следующая единица данных состоит из нуля или более рядов заранее определенного числа блоков и последующего объема данных, равного величине, меньшей размера одного базового блока, то:
- объем данных дополняется до размера, равного размеру одного базового блока, чтобы сформировать последний блок,
- последний блок дешифруется с помощью шифра в режиме сцепления блоков, инициализируемом посредством вектора инициализации, сгенерированного в зависимости от, по меньшей мере, одного блока в, по меньшей мере, одном из любых рядов блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице данных.
Следствием использования рядов заранее определенного числа блоков является то, что число блоков на ряд не требуется передаваться дескремблеру. Когда границы единицы данных заранее определены таким образом, например, в случае, если единица данных образована полезной нагрузкой пакета, любой оставшийся объем данных, который имеет меньший размер, чем размер базового блока шифра, по-прежнему может быть передан дескремблеру в зашифрованной форме. Необязательно увеличивать размер скремблированной единицы данных в сравнении с не скремблированной единицей данных.
В одном из вариантов вектор инициализации генерируется посредством выполнения криптографической операции, предпочтительно, шифра дешифрования, для вектора на основе, по меньшей мере, одного вектора, который не зависит ни от одного блока в любом предшествующем блоке дескремблированных данных, полученном посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице данных.
Это означает, что дескремблеру не требуется принимать и сохранять множество векторов, из которых нужно извлекать векторы инициализации. Вектор, из которого извлекаются векторы инициализации, может оставаться постоянным в течение ряда единиц данных в потоке. Криптографическая операция обеспечивает, что он никогда не используется непосредственно в качестве операнда для логического оператора, такого как оператор «исключающее ИЛИ».
Согласно другому аспекту система дескремблирования потока скремблированных данных, чтобы сформировать поток данных, согласно изобретению отличается тем, что система сконфигурирована, для последовательности рядов блоков скремблированных данных, включенных в единицу данных в рамках потока скремблированных данных, чтобы генерировать, по меньшей мере, один вектор инициализации для дескремблирования ряда блоков скремблированных данных в зависимости от, по меньшей мере, одного блока дескремблированных данных в ряду блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда блоков скремблированных данных единицы данных.
Предпочтительно, система сконфигурирована для выполнения способа дескремблирования согласно изобретению.
Согласно другому аспекту изобретения предусмотрено устройство для передачи и приема данных, включающее в себя устройство, предназначенное для применения способа скремблирования потока данных согласно изобретению и способа дескремблирования потока скремблированных данных согласно изобретению.
Поскольку дополняющие друг друга способы скремблирования и дескремблирования могут быть реализованы с одинаковыми требованиями к буферу, этому устройству не требуется иметь регистры для сохранения блоков, которые не используются в одной из двух операций. Таким образом, возможна экономичная реализация в аппаратных средствах, особенно подходящая для устройства, которое выполнено с возможностью функционировать как отправитель и получатель данных, например, шлюза между двумя сетями.
Согласно другому аспекту изобретения предусмотрена компьютерная программа, включающая в себя набор инструкций, обеспечивающая, при реализации ее на машиночитаемом носителе, выполнение системой, имеющей возможности обработки информации, способа скремблирования потока данных согласно изобретению или способа дескремблирования потока скремблированных данных согласно изобретению.
Далее изобретение подробнее описывается со ссылкой на прилагаемые чертежи, из которых:
Фиг. 1 иллюстрирует систему для реализации способов скремблирования и дескремблирования потоков транслируемых данных,
Фиг. 2 иллюстрирует вариант осуществления способа скремблирования потока данных,
Фиг. 3 иллюстрирует способ реализации передачи шифрованного текста в способе скремблирования потока данных,
Фиг. 4 иллюстрирует обработку одиночных частичных блоков, формирующих конец пакетной полезной нагрузки транспортного потока MPEG-2,
Фиг. 5 иллюстрирует вариант осуществления способа дескремблирования потока данных,
Фиг. 6 иллюстрирует реализацию передачи шифрованного текста в дескремблере, и
Фиг. 7 иллюстрирует обработку одиночных частичных блоков, формирующих конец пакетной полезной нагрузки транспортного потока MPEG-2, в дескремблере.
Фиг. 1 иллюстрирует применение способа скремблирования к транслируемым данным. По меньшей мере, часть проиллюстрированной системы использует, по сути, известные методы, описанные в документе "Digital Video Broadcasting (DVB); Implementation Guidelines of the DVB Simulcrypt Standard", ETSI Technical Report TR 102 03 5 v.1.1.1, European Telecommunication Standards Institute, 2002.
Поставщик 1 содержимого подает поток пакетов, содержащих простой текст, т.е. не скремблированные данные содержимого, на блок 2 мультиплексирования. Генератор 3 сообщений управления доступом (ECM) подает на блок 2 мультиплексирования поток пакетов, содержащих сообщения ECM. Генератор 4 сообщений управления доступом (EMM) подает на блок 2 мультиплексирования поток пакетов, содержащих сообщения EMM. Потоки мультиплексируются в один поток пакетов транспортного потока (TS) MPEG-2 и подаются на скремблер 5. Синтаксис TS-пакетов MPEG-2 более полно описан в международном стандарте ISO/IEC 13818-1. Скремблер 5 реализует способ скремблирования полезных нагрузок TS-пакетов MPEG-2, который подробнее описан ниже. Он принимает управляющие слова (CW) от CW-генератора 6, которые используются в качестве ключей шифра блоков.
CW-генератор 6 выдает слова CW на ECM-генератор 3, который шифрует их сеансовым ключом, полученным от системы авторизации абонентов (SAS) 7. SAS выдает сеансовые ключи с авторизациями для отдельных абонентов на EMM-генератор 4. EMM-генератор включает в себя этот ключ и авторизационную информацию в сообщения EMM, адресованные на защищенные маркеры, предоставленные отдельным абонентам. Эти защищенные маркеры могут включать в себя программные агенты, реализованные с использованием таких признаков, как скрытие кода, для предотвращения анализа подпрограмм, содержащихся в них. Другие примеры защищенных маркеров включают в себя устройства, включающие в себя процессоры, оснащенные защитными признаками, чтобы не допустить доступа к данным, сохраненным в них, и/или анализа подпрограмм, аппаратно реализованных в них.
Скремблированный поток данных передается от скремблера 5 модулятору 8 и от него - передатчику 9. Передатчик 9 транслирует в поток скремблированных данных по широковещательной сети 10, например спутниковой, кабельной или наземной сети или сети, содержащей ряд таких сетей. В альтернативном варианте осуществления поток скремблированных TS-пакетов MPEG-2 инкапсулируется в другие пакеты данных, и передается как широковещательная, многоадресная или одноадресная передача по сети данных, такой как основанная на Интернет-протоколе.
Для целей иллюстрации на фиг. 1 показан один первичный интегрированный приемник-декодер (IRD) 11. Первичный IRD 11 включает в себя сетевой адаптер 12 для приема данных, передаваемых по широковещательной сети 10. Демодулятор 13 выдает поток скремблированных данных на скремблер/дескремблер 14. Этот блок сконфигурирован для выполнения способа дескремблирования потока данных и способа скремблирования потока данных. Процессор 15 управляет работой первичного IRD 11. Он может направлять поток скремблированных данных, сгенерированный скремблером/дескремблером 14, ко второму сетевому адаптеру 16, соединяющему первичный IRD 11 с локальной сетью 17. Локальной сетью 17 может быть домашняя сеть, например, основанная на стандарте IEEE 1394. Вторичный приемник 18 оснащен соответствующим сетевым адаптером 19 и микросхемой 20 скремблера. Дополнительные компоненты не показаны подробно. Микросхема 20 дескремблера работает аналогичным образом, как и скремблер/дескремблер 14. По этой причине ее подробное описание опущено.
Скремблер/дескремблер 14 дескремблирует скремблированные TS-пакеты MPEG-2 с помощью CW-слов, предоставленных подсистемой условного доступа (CASS) 21. CASS 21 соединяется с устройством 22 защищенной обработки, например смарт-картой, которая предоставляет ключи для дешифрования сообщений ECM первому дешифратору 23. Первый дешифратор 23 получает CW-слова, переданные скремблеру/дескремблеру 14. Сообщения EMM дешифруются посредством второго дешифратора 24, чтобы предоставить устройству 22 защищенной обработки информацию, необходимую ему для получения ключей услуг. Процессор управляет блоком 25 демультиплексирования для извлечения TS-пакетов MPEG-2, содержащих сообщения ECM, и пакеты, содержащие сообщения EMM, для выдачи их в CASS 21.
Фиг. 2 иллюстрирует вариант осуществления способа скремблирования потока данных, такого как выполняемый скремблером 5 или скремблером/дескремблером 14. В проиллюстрированном варианте осуществления способ выполняется над единицей данных, образованной полезной нагрузкой 26 TS-пакета 27 MPEG-2, который дополнительно содержит заголовок 28. Заголовок 28 не скремблируется, а оставляется в открытом виде. Следует отметить, что способ может быть выполнен с другими типами пакетов, необязательно определяемыми сетевым протоколом транспортного уровня. Например, способ может выполняться для пакетов элементарных программных потоков (PES) в составе TS-пакетов 27 MPEG-2.
Хотя TS-пакет 27 MPEG-2 имеет фиксированную длину 188 байт, полезная нагрузка 26 имеют другую длину. Это обусловлено переменной длиной заголовка 28. В примере, проиллюстрированном на фиг. 2, полезная нагрузка 26 имеет такой размер, что она может быть разделена на целое число базовых блоков Pi фиксированного размера и в равной степени на целое число так называемых суперблоков. Каждый суперблок сформирован посредством первого ряда базовых блоков Pi. Первый из первых рядов 29 и последний из первых рядов 30 проиллюстрированы в явном виде. Последовательность суперблоков составляет полезную нагрузку 26. В данном примере каждый суперблок сформирован посредством первого ряда 29, 30 из трех базовых блоков Pi. В другом варианте осуществления предусмотрено два базовых блока Pi на суперблок. Может быть более трех, например, четыре, пять или десять базовых блоков на суперблок. Большее число требует большего количества регистров в скремблере 5 и/или скремблере/дескремблере 14.
Этапы, которые осуществляются, когда размер полезной нагрузки 26 не равен целому числу суперблоков, сформированному целым числом базовых блоков Pi, описаны ниже более подробно.
В другом варианте способа (не проиллюстрирован) полезная нагрузка 26 делится на суперблоки переменного размера, к примеру, содержащие различное число базовых блоков Pi.
Размер базового блока, предпочтительно, определяется посредством блочного шифра Ek, шифра симметричного ключа, который оперирует с группами битов фиксированной длины, базовыми блоками, с постоянным преобразованием. В проиллюстрированном варианте осуществления блочный шифр Ek используется для шифрования отдельных базовых блоков Pi с использованием CW-слова. Примеры подходящих шифров включают в себя DES, тройной DES и AES/Rijndael. Таким образом, размер базового блока, в общем, составляет 128 бит.
На первом этапе этого способа порядок базовых блоков P1-P3 в первом из первых рядов, 29, реверсируется, чтобы сформировать первый из вторых рядов, 31.
На втором этапе блочный шифр Ek используется в режиме сцепления блоков шифра, чтобы зашифровать три базовых блока P1-P3 в первом из вторых рядов, 31, который инициализируется с помощью вектора инициализации IV3, связанного с первым из вторых рядов. Индекс, используемый для обращения к вектору инициализации IV3, связанный с первым из вторых рядов, 31, базовых блоков, является индексом последнего базового блока P3 в ряду, что верно для всего последующего текста. Вектор инициализации IV3, используемый для того, чтобы зашифровать связанный первый из вторых рядов, 31, базовых блоков, формируется применением оператора «исключающее ИЛИ», имеющего в качестве операндов долгосрочный фиксированный вектор инициализации IV0 и «исключающее ИЛИ» обоих базовых блоков P1, P2, предшествующих последнему базовому блоку P3 в первом из первых рядов, 29, базовых блоков P1-P3.
Способ скремблирования полезной нагрузки 26 сконфигурирован таким образом, чтобы долгосрочный фиксированный вектор инициализации IV0 никогда не использовался непосредственно как вектор инициализации. Он никогда не используется в XOR-операции, непосредственно предшествующей операции блочного шифра Ek для первого базового блока Pi во втором (т.е. реверсированном) ряду блоков. По этой причине он может быть использован по множеству TS-пакетов 27 MPEG-2 без проведения криптоанализа существенно более простым способом. Долгосрочный фиксированный вектор инициализации IV0 не требуется хранить секретным. Он известен, когда способы скремблирования и дескремблирования единиц данных, изложенные в данном документе, используются при передаче данных между равноправными узлами. В случае, проиллюстрированном на фиг. 1, когда один поставщик управляет отправителями и получателями, долгосрочный фиксированный вектор инициализации IV0 может храниться секретным. Он может быть предоставлен, например, в сообщении ECM или EMM. В альтернативном варианте осуществления вектор, из которого должны извлекаться векторы инициализации, который зависит от блоков данных, которые должны скремблироваться, получается посредством применения заранее определенного алгоритма к данным, включенным в заголовок 28.
Поскольку вектор инициализации IV3, используемый для шифрования блоков P1-P3 связанным первым из вторых рядов, 31, блоков, генерируется в зависимости от, по меньшей мере, одного блока данных, предшествующего последнему блоку P3 в первом из первых рядов, 29, из которого он получен, реализуется большая вариативность в векторах инициализации.
Результатом шифрования первого из вторых рядов, 31, является первый из первых рядов, 32, скремблированных блоков C3-C1. В проиллюстрированном варианте осуществления порядок скремблированных блоков C3-C1 реверсируется, чтобы сформировать первый из вторых рядов, 33, скремблированных блоков C1-C3. Первый из вторых рядов, 33, скремблированных блоков C1-C3, вставляется в скремблированный TS-пакет 34 MPEG-2, содержащий незашифрованный заголовок 35 и скремблированную полезную нагрузку 36.
Таким образом, для первого из первых рядов, 29, базовых блоков Pi, i=1...M, зашифрованные базовые блоки Ci получаются следующим образом:
CM = Ek[PM^IVM]
Ci = Ek[Pi^Ci+1], i = M-1...1.
В общем, зашифрованные базовые блоки находятся следующим образом:
Cj*M = Ek[Pj*M^IVj*M],
C(j-1)*M+i = Ek[P(j-i)*M+i^C(j-1)*M+i+1], i =M-1...1, j = 1...N\M.
Символ "\" означает частное или целую часть отношения.
В проиллюстрированном варианте осуществления вектор инициализации IVj*M для шифрования блоков в j-том из вторых рядов получается следующим образом:
IVj*M = IV0 ^ P1 ^...Pi ^ Pj*M-1.
Таким образом, соответствующие векторы инициализации для шифрования блоков в каждом втором ряду блоков, сформированном из первого ряда блоков посредством реверсирования порядка блоков, генерируются в зависимости, по меньшей мере, от одного блока данных, предшествующего последнему блоку в том же первом ряду. В этом варианте осуществления они генерируются в зависимости от всех блоков данных, предшествующих последнему блоку в том же первом ряду.
Кроме того, каждый вектор инициализации для шифрования второго ряда блоков, сформированного из первого ряда блоков в полезной нагрузке 26 пакета, генерируется в зависимости, по меньшей мере, от одного блока, в данном случае всех блоков, в каждом из любых предшествующих первых рядов базовых блоков, или "суперблоков".
Чтобы зашифровать блоки PN-2-PN в последнем из вторых рядов, 37, полученном посредством реверсирования порядка базовых блоков в последнем из первых рядов, 30, базовых блоков, шифр шифрования Ek снова применяется в режиме сцепления блоков шифра. Вектор инициализации IVN, связанный со вторым из последних рядов, 37, базовых блоков, генерируется посредством выполнения XOR-операции с долгосрочным фиксированным вектором инициализации IV0 и каждым из базовых блоков, предшествующих последнему базовому блоку PN. Результатом является последний из первых рядов, 38, блоков скремблированных данных. Порядок блоков реверсируется, чтобы получить последний из вторых рядов 39 блоков скремблированных данных.
Фиг. 3 иллюстрирует, каким образом способ скремблирования выполняется, если полезная нагрузка 26 TS-пакета MPEG-2 образована целым числом N\M первых рядов базовых блоков и последующим объемом данных, равным величине, меньшей размера M базовых блоков. В проиллюстрированных вариантах осуществления последующий объем данных может быть поделен на два полных базовых блока PN-2, PN-1 и один частичный блок PN. Последний блок PN заполняется нулями до размера, равного полному базовому блоку. Таким образом, первый конечный ряд образован блоками PN-2, PN-1 и дополненным N-ным блоком PN. Позиции первых двух блоков первого конечного ряда блоков меняются для формирования второго конечного ряда 40 блоков (показан на фиг. 3). Блоки во втором конечном ряду 40 блоков шифруются с помощью шифра шифрования Ek в режиме сцепления блоков. В качестве вектора инициализации IVN генерируется вектор инициализации посредством применения XOR-операции, имеющей в качестве операндов долгосрочный фиксированный вектор инициализации IV0 и каждый из полных базовых блоков, предшествующих последнему полному блоку PN-1, предшествующему частичному блоку PN в полезной нагрузке 26 TS-пакета MPEG-2. Результатом является первый конечный ряд 41 блоков скремблированных данных. Объем скремблированных данных C', соответствующий по размеру и позиции данным, добавленным посредством заполнения, удаляется из первого блока в первом конечном ряду 41 блоков, и порядок блоков затем реверсируется для получения второго конечного ряда скремблированных блоков (не показан), который вводится в скремблированную полезную нагрузку 36. Разумеется, скремблированные данные C' могут быть удалены после реверсирования порядка блоков.
Если полезная нагрузка 26 TS-пакета MPEG-2 образована целым числом N\M первых рядов базовых блоков и последующим объемом данных, равным величине, меньшей размера одного базового блока, то выполняется операция, показанная на фиг. 4. Частичный блок PN заполняется нулями до полноразмерного последнего блока 42. Вектор инициализации IVN генерируется в зависимости от долгосрочного фиксированного вектора инициализации IV0 и, по меньшей мере, одного блока в любом предшествующем ряду блоков пакетной полезной нагрузки 26. Может так случиться, что предшествующие первые ряды отсутствуют. Для того чтобы не использовать долгосрочный фиксированный вектор инициализации IV0 непосредственно в качестве операнда в XOR-операции, вектор инициализации IVN, связанный с полноразмерным последним блоком 39, дешифруется первым с использованием шифра дешифрования, который является инверсией шифра EK шифрования, и CW-слова в качестве ключа. Получается «исключающее ИЛИ» результата полноразмерного последнего блока 42, которое шифруется посредством применения блочного шифра EK. Результатом является полноразмерный скремблированный блок 43, который усекается посредством удаления части, соответствующей по размеру и позиции данным, добавленным посредством заполнения частичного блока PN. Оставшаяся часть CN вставляется в скремблированную полезную нагрузку 36.
Полезные нагрузки последовательности TS-пакетов 27 MPEG-2, скремблируются таким образом, тем самым формируя скремблированный поток данных. Передача шифрованного текста и способ обработки одиночных частичных блоков обеспечивают то, что скремблированная полезная нагрузка 36 равна по размеру полезной нагрузке 26 исходного TS-пакета 27 MPEG-2 нешифрованного текста. Таким образом, заголовок 35 скремблированного TS-пакета 34 MPEG-2 не требуется существенно изменять относительно TS-пакета 27 MPEG-2 нешифрованного текста, за исключением того, чтобы указать, что он скремблирован и, необязательно, какое из четного и нечетного CW-слов использовано для блочного шифра EK.
Фиг. 5 иллюстрирует операцию дескремблирования, соответствующую операции скремблирования, проиллюстрированной на фиг. 2. Как в случае фиг. 2, представление на фиг. 5 основано на допущении, что в скремблированной полезной нагрузке 36 ровно N\M "суперблоков" 36. Скремблированная полезная нагрузка 36 формирует последовательность рядов блоков Ci скремблированных данных, причем каждый ряд соответствует "суперблоку". Показаны первый ряд 44 блоков C1-C3 скремблированных данных и последний ряд 45 блоков CN-2-CN.
Каждый ряд блоков скремблированных данных дескремблируется отдельно, чтобы сформировать связанный ряд блоков дескремблированных данных. Таким образом, первый ряд 44 блоков C1-C3 дескремблируется, чтобы сформировать первый ряд 46 нешифрованных блоков P1-P3. Последний ряд 45 блоков CN-2-CN дескремблируется, чтобы сформировать последний ряд 47 нешифрованных блоков PN-2-PN. Ряды нешифрованных блоков используются для формирования полезной нагрузки 48 TS-пакета MPEG-2 нешифрованного текста с предшествующим заголовком 49, и таким образом, для формирования восстановленного TS-пакета MPEG-2 нешифрованного текста.
Первый блок P1 дескремблированных данных в первом ряду 46 нешифрованных блоков получается посредством применения шифра DK дешифрования, который является инверсией шифра EK шифрования, к первому блоку C1 скремблированных данных и применения XOR-оператора, имеющего в качестве операндов результат шифра DK дешифрования и следующий скремблированный блок C2 в ряду 44 блоков скремблированных данных. Второй блок P2 получается аналогичным способом. CW-слово, полученное из сообщения ECM, используется в качестве ключа шифра DK дешифрования.
Последний блок P3 дескремблированных данных в первом ряду 46 нешифрованных блоков получается посредством применения шифра DK дешифрования к последнему блоку C3 в первом ряду 44 блоков C1-C3 скремблированных данных. Результат подвергается XOR-операции с помощью вектора инициализации IV3, связанного с первым "суперблоком". Этот вектор инициализации IV3 генерируется в зависимости от, по меньшей мере, одного блока данных, полученного посредством применения шифра DK дешифрования к блоку в первом ряду 44 блоков скремблированных данных, предшествующему последнему блоку C3 скремблированных данных в том же ряду, и посредством применения, XOR-оператора, имеющего в качестве операндов, по меньшей мере, результат шифра DK дешифрования и блок дескремблированных данных в следующей позиции в ряду блоков скремблированных данных. В проиллюстрированном варианте осуществления вектор инициализации IV3 - это XOR фиксированного долгосрочного вектора инициализации IV0 и всех блоков в первом ряду 46 нешифрованных блоков, предшествующих последнему нешифрованному блоку P3. Поскольку эти предшествующие нешифрованные блоки получены до того, как должен быть получен последний нешифрованный блок P3, способ дескремблирования является относительно эффективным.
В общем, в варианте осуществления, использующем фиксированное число M блоков скремблированных данных для каждой последовательности рядов блоков скремблированных данных, включенных в скремблированную полезную нагрузку 35, нескремблированные блоки находятся следующим образом:
Pj*M = Dk[Pj*M^IVj*M],
P(j-1)*M+i = C(j-i)*M+i+1^Dk[C(j-i)*M+i], i=M-1...1, j = 1...N\M.
В проиллюстрированном варианте осуществления вектор инициализации IVj*M для дешифрования блоков в j-том ряду получается следующим образом:
IVj*M=IV0^ P1 ^...Pi ^ Pj*M-1.
Таким образом, вектор инициализации, используемый для того, чтобы дескремблировать второй и дополнительные ряды блоков скремблированных данных, генерируется в зависимости от, по меньшей мере, одного блока дескремблированных данных в ряду блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда блоков дескремблированных данных в скремблированной полезной нагрузке 36.
Фиг. 6 иллюстрирует, каким образом осуществляется способ скремблирования, если скремблированная полезная нагрузка 36 образована целым числом N\M первых рядов базовых блоков и последующим объемом данных, по размеру равным величине, составляющей целое кратное размера базового блока и часть размера базового блока. В проиллюстрированном варианте осуществления последующий объем данных может быть поделен на два полных скремблированных блока CN-2, CN-1 и один частичный блок CN. Последний блок CN заполняется нулями до размера, равному последнему полному базовому блоку 51. Таким образом, конечный ряд формируется посредством блоков CN-2, CN-1 и последнего полного базового блока 51. Последний нешифрованный блок PN формируется посредством применения шифра DK дешифрования к блоку CN-1, непосредственно предшествующему последнему блоку конечного ряда блоков скремблированных данных, применения XOR-оператора к результату шифра дешифрования и последнему полному базовому блоку 51 и удаления части C' результата XOR-оператора, соответствующей по размеру и позиции данным, добавленным посредством заполнения последнего скремблированного блока CN. Каждый из всех блоков, предшествующих двум последним нешифрованным блокам PN-1, PN (в данном случае, первый блок PN-2 ряда является единственным таким блоком), формируется посредством применения шифра DK дешифрования к блоку в соответствующей позиции конечного ряда блоков скремблированных данных и применения XOR-оператора к результату шифра DK дешифрования и блоку скремблированных данных в следующей позиции конечного ряда блоков скремблированных данных.
Блок PN-1, предшествующий последнему блоку в конечном ряду нешифрованных блоков, получается посредством применения шифра дешифрования к блоку 52, сформированному посредством конкатенации последнего скремблированного блока CN и удаленной части C', соответствующей по размеру и позиции нулям, использованным для заполнения, и последующего применения XOR-оператора, имеющего в качестве операндов результат шифра DK дешифрования и вектора инициализации IVN. В качестве вектора инициализации IVN генерируется вектор инициализации посредством применения XOR-операции, имеющей в качестве операндов долгосрочный фиксированный вектор инициализации IV0 и каждый из последних двух блоков PN-1, PN в не шифрованной полезной нагрузке 48 TS-пакета MPEG-2.
Если скремблированная полезная нагрузка 36 образована целым числом N\M рядов скремблированных блоков и последующим объемом данных, равным величине, меньшей размера одного базового блока, выполняется операция, показанная на фиг. 7. Частичный скремблированный блок CN заполняется нулями до полноразмерного последнего скремблированного блока 53. Вектор инициализации IVN генерируется в зависимости от долгосрочного фиксированного вектора инициализации IV0 и, по меньшей мере, одного блока в любом предшествующем ряду скремблированных блоков скремблированной полезной нагрузки. Может случиться, что предшествующие ряды скремблированных блоков отсутствуют. Для того чтобы не использовать долгосрочный фиксированный вектор инициализации IV0 непосредственно в качестве операнда в XOR-операции, вектор инициализации IVN, связанный с полноразмерным последним скремблированным блоком 53, дешифруется первым с помощью того же шифра DK дешифрования, что использовался в режиме сцепления блоков, при этом CW-слово используется в качестве ключа. Выполняется операция «исключающее ИЛИ» результата и полноразмерного последнего скремблированного блока 50. Результатом является полноразмерный блок 54, который усекается посредством удаления части C', соответствующей по размеру и позиции данным, добавленным посредством заполнения частичного скремблированного блока CN. Оставшаяся часть PN вставляется в не шифрованную полезную нагрузку TS-пакета MPEG-2.
Таким образом, описан способ, при котором "суперблоки" имеют заранее определенный размер, но который обеспечивает обработку пакетной полезной нагрузки различного размера, в том числе не равной целому кратному выбранного размера "суперблока". Вектор инициализации для каждого "суперблока" никогда не используется непосредственно в качестве маски XOR-оператора. Он зависит в максимальной степени от предшествующих нешифрованных блоков пакетной полезной нагрузки, чтобы обеспечивалась максимально возможная вариативность вектора инициализации. Требования к памяти для сохранения результатов операций, по существу, одинаковы для скремблера и дескремблера и могут поддерживаться на таком низком уровне, который считается допустимым по соображениям безопасности, посредством выбора меньшего размера "суперблока".
Изобретение не ограничено описанными вариантами осуществления, которые могут варьироваться в объеме формулы изобретения. В частности, возможен вариант осуществления, в котором первый ряд скремблированных блоков не преобразуется ко второму ряду скремблированных блоков посредством реверсирования порядка блоков в скремблере, а реверсирование осуществляется в дескремблере до выполнения описанного способа дескремблирования потока скремблированных данных.
Изобретение относится к передаче данных, а именно, к способу скремблирования потока данных. Техническим результатом является уменьшение требуемой оперативной памяти на стороне отправителя. Технический результат достигается тем, что способ содержит этапы, на которых принимают из потока последовательность первых рядов (29, 30) блоков (Рi) данных, реверсируют порядок блоков (Рi) в каждом из первых рядов (29, 30) блоков, чтобы сформировать соответствующие вторые ряды (31, 37) блоков данных, и шифруют блоки в каждом втором ряду (31, 37) блоков с помощью шифра (ЕK) в режиме сцепления блоков, инициализируемом с помощью соответствующего вектора инициализации (IV3, IVN) для каждого второго ряда (31, 37) блоков. Для последовательности первых рядов (29, 30) блоков, включенных в единицу (26) данных в рамках потока, генерируется, по меньшей мере, один вектор инициализации (IVN) для шифрования второго ряда (37) блоков, сформированного из первого ряда (30) блоков в единице данных, в зависимости от, по меньшей мере, одного блока в предшествующем первом ряду (29) блоков единицы данных. 8 н. и 16 з.п. ф-лы, 7 ил.
1. Способ скремблирования потока данных, при этом способ включает в себя этапы, на которых:
получают из потока последовательность первых рядов (29, 30) блоков (Рi) данных,
реверсируют порядок блоков (Рi) в каждом из первых рядов (29, 30) блоков, чтобы сформировать соответствующие вторые ряды (31, 37) блоков данных, и
шифруют блоки в каждом втором ряду (31, 37) блоков с использованием шифра (ЕK) в режиме сцепления блоков, инициализируемом соответствующим вектором инициализации (IV3, IVN) для каждого второго ряда (31, 37) блоков,
отличающийся тем, что
для последовательности первых рядов (29, 30) блоков, включенных в единицу (26) данных в рамках потока, генерируется, по меньшей мере, один вектор инициализации (IVN) для шифрования второго ряда (37) блоков, сформированного из первого ряда (30) блоков в единице данных, в зависимости от, по меньшей мере, одного блока в предшествующем первом ряду (29) блоков единицы данных.
2. Способ по п.1, в котором соответствующие векторы инициализации (IV3, IVN) для шифрования блоков в каждом втором ряду (31, 37) блоков, сформированном из первого ряда (29, 30) блоков, генерируются в зависимости, по меньшей мере, от одного блока данных, предшествующего последнему блоку в том же первом ряду (29, 30).
3. Способ по п.1 или 2, в котором каждый вектор инициализации (IVN) для шифрования второго ряда (37) блоков, сформированного из первого ряда (30) блоков в единице (26) данных, генерируется в зависимости, по меньшей мере, от одного блока данных в каждом из любых предшествующих первых рядов (29) блоков единицы (26) данных.
4. Способ по п.1, при этом способ включает в себя этап, на котором принимают пакет (27) данных, содержащий поток данных, при этом пакет данных включает в себя заголовок (28) и полезную нагрузку (26), причем единица данных образована полезной нагрузкой.
5. Способ по п.1, в котором шифр (ЕK) представляет собой блочный шифр, сконфигурированный для работы на основе базовых блоков заранее определенного размера, при этом блоки (Рi) в, по меньшей мере, вторых рядах (31, 37) данных соответствуют по размеру базового блока.
6. Способ по п.5, в котором, если единица (26) данных состоит из последовательности первых рядов (29, 30) блоков и последующего объема данных, по размеру равного величине, меньшей величины, кратной размеру базового блока, то:
объем данных дополняется до размера, равного величине, кратной размеру базового блока, чтобы сформировать первый конечный ряд из, по меньшей мере, двух блоков,
последние два блока первого конечного ряда блоков переставляются, и порядок блоков в первом конечном ряду блоков реверсируется, чтобы сформировать второй конечный ряд (40) блоков данных,
блоки во втором конечном ряду (40) блоков шифруются с помощью шифра (ЕK) в режиме сцепления блоков, инициализируемом посредством вектора инициализации (IVN), генерируемого в зависимости от, по меньшей мере, одного блока в предыдущем первом ряду (29, 30) блоков единицы данных.
7. Способ по п.5, в котором, если единица данных состоит из нуля или более первых рядов заранее определенного числа блоков и по объему данных (РN) равна величине, меньшей размера одного базового блока, то: объем данных дополняется до размера, равного размеру одного базового блока, чтобы сформировать последний блок (42), последний блок (42) шифруется с помощью шифра (ЕK) в режиме сцепления блоков, инициализируемом посредством вектора инициализации, генерируемого в зависимости от, по меньшей мере, одного блока в, по меньшей мере, одном из всех предыдущих первых рядов блоков единицы данных.
8. Способ по п.7, в котором вектор инициализации генерируется посредством выполнения криптографической операции (DK), предпочтительно дешифрования, которое является инверсией шифра, для вектора (IVN) на основе, по меньшей мере, одного вектора (IV0), который не зависит ни от одного блока в любом предшествующем первом ряду блоков единицы данных.
9. Система скремблирования потока данных, содержащая:
вход для приема потока как последовательности первых рядов (29, 30) блоков (Pi) данных,
множество регистров и, по меньшей мере, один логический блок для реверсирования порядка блоков в каждом из первых рядов (29, 30) блоков (Рi), чтобы сформировать соответствующие вторые ряды (31, 37) блоков данных, и
средство обработки для шифрования блоков в каждом втором ряду (31, 37) блоков с использованием шифра (ЕK) в режиме сцепления блоков, инициализируемом с помощью соответствующего вектора инициализации (IV3, IVN) для каждого второго ряда (31, 37) блоков,
отличающийся тем, что
система выполнена с возможностью для последовательности первых рядов (29, 30) блоков, включенных в единицу (26) данных в рамках потока, генерировать, по меньшей мере, один вектор инициализации (IVN) для шифрования второго ряда (37) блоков, сформированного из первого ряда (30) блоков в единице данных, в зависимости от, по меньшей мере, одного блока в предшествующем первом ряду (29) блоков единицы (26) данных.
10. Система по п.9, сконфигурированная для выполнения способа по любому из пп.1-8.
11. Способ дескремблирования потока скремблированных данных, чтобы сформировать поток данных, при этом способ включает в себя этапы, на которых:
получают из потока скремблированных данных последовательность рядов (44, 45) блоков (Сi) скремблированных данных, и
дескремблируют каждый ряд (44, 45) блоков скремблированных данных, чтобы сформировать связанный ряд (46, 47) блоков (Рi) дескремблированных данных, с использованием шифра (DK) дешифрования в режиме обратного сцепления, при этом, чтобы дескремблировать ряд (46, 47) блоков скремблированных данных,
последний блок (Р3, РN) в ряду (46, 47) блоков дескремблированных данных получается посредством применения шифра дешифрования (DK) к последнему блоку (С3, СN) в связанном ряду (44, 45) блоков скремблированных данных и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования (DK) и вектор инициализации (IV3, IVN), и при этом каждый блок, предшествующий последнему блоку (Р3, РN) в ряду (46, 47) блоков дескремблированных данных, получается посредством применения шифра дешифрования (DK) к блоку в ряду блоков (44, 45) скремблированных данных в соответствующей позиции и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования (DK) и блок скремблированных данных в следующей позиции ряда (44, 45) блоков скремблированных данных, отличающийся тем, что
для последовательности рядов (44, 45) блоков скремблированных данных, включенных в единицу (36) данных в потоке скремблированных данных, генерируют, по меньшей мере, один вектор инициализации (IVN) для дескремблирования ряда (45) блоков скремблированных данных в зависимости от, по меньшей мере, одного блока дескремблированных данных в ряду (46) блоков дескремблированных данных, полученном посредством дескремблирования предыдущего ряда (44) блоков скремблированных данных в единице (36) данных.
12. Способ по п.11, в котором соответствующие векторы инициализации (IV3, IVN) для дескремблирования каждого ряда (44, 45) блоков (Сi) скремблированных данных генерируются в зависимости от, по меньшей мере, одного блока, полученного посредством применения шифра дешифрования (DK) к блоку в ряду (44, 45) блоков скремблированных данных, предшествующему последнему блоку (С3, СN) скремблированных данных в том же ряду (44, 45), и посредством применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и блок скремблированных данных в следующей позиции того же ряда (44, 45) блоков скремблированных данных.
13. Способ по п.11 или 12, в котором каждый вектор инициализации (IVN) для дескремблирования ряда (45) блоков скремблированных данных в единице (36) данных генерируется в зависимости от, по меньшей мере, одного блока дескремблированных данных из каждого любого ряда (46) блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда (44) блоков скремблированных данных в единице (36) данных.
14. Способ по п.11, включающий в себя этап, на котором принимают пакет (34) данных, содержащий поток данных, при этом пакет данных включает в себя заголовок (35) и полезную нагрузку (36), причем единица данных образована полезной нагрузкой.
15. Способ по п.11, в котором шифр (DK) дешифрования представляет собой блочный шифр, сконфигурированный для работы на основе базовых блоков заранее определенного размера, при этом блоки (Ci) в рядах (44, 45) блоков скремблированных данных соответствуют по размеру базовому блоку.
16. Способ по п.15, в котором, если единица (36) данных состоит из последовательности рядов блоков скремблированных данных и последующего объема данных по размеру равного величине, составляющей целое кратное размера базового блока и часть (СN) размера базового блока, то:
объем данных дополняется заранее определенными данными до размера, равного величине, кратной размеру базового блока, чтобы сформировать конечный ряд блоков скремблированных данных,
последний (РN) из конечного ряда блоков дескремблированных данных формируется посредством применения шифра дешифрования к блоку, непосредственно предшествующему последнему блоку конечного ряда скремблированных данных, применения XOR-оператора, имеющего в качестве операндов результат шифра дешифрования и последний блок конечного ряда блоков скремблированных данных, и удаления части (С') результата XOR-оператора, соответствующей по размеру заранее определенным данным,
каждый из любых блоков, предшествующих двум последним блокам (РN-1, РN) конечного ряда блоков дескремблированных данных, формируется посредством применения шифра (DK) дешифрования к блоку в соответствующей позиции в первом конечном ряду блоков скремблированных данных и применения XOR-оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и блок скремблированных данных в следующей позиции конечного ряда блоков скремблированных данных, и
блок (PN-1), предшествующий последнему блоку (РN) в конечном ряду блоков дескремблированных данных, получается посредством применения шифра дешифрования к блоку (52), сформированному посредством конкатенации удаленной части (C'), соответствующей по размеру заранее определенным данным, и последнего блока конечного ряда скремблированных данных, и посредством применения XOR-оператора, имеющего в качестве операндов результат шифра дешифрования и вектора инициализации (IVN), сгенерированного в зависимости от, по меньшей мере, одного блока дескремблированных данных, полученного посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице (36) данных.
17. Способ по п.15, в котором, если единица данных состоит из нуля или более рядов заранее определенного числа блоков и последующего объема (СN) данных, равного величине, меньшей размера одного базового блока, то:
объем данных дополняется до размера, равного размеру одного базового блока, чтобы сформировать последний блок (53),
последний блок (53) дешифруется с помощью шифра (DK) в режиме сцепления блоков, инициализируемом посредством вектора инициализации, сгенерированного в зависимости от, по меньшей мере, одного блока в, по меньшей мере, одном из любых рядов блоков дескремблированных данных, полученных посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице данных.
18. Способ по п.17, в котором вектор инициализации генерируется посредством выполнения криптографической операции (DK), предпочтительно шифра дешифрования, для вектора на основе, по меньшей мере, одного вектора, который не зависит ни от одного блока в любом предшествующем блоке дескремблированных данных, полученном посредством дескремблирования предыдущего ряда блоков скремблированных данных в единице данных.
19. Система дескремблирования потока скремблированных данных, чтобы сформировать поток данных, содержащая:
вход для приема потока скремблированных данных как последовательности рядов (44, 45) блоков (Сi) скремблированных данных, и
средство обработки для дескремблирования каждого ряда (44, 45) блоков (Сi) скремблированных данных, чтобы сформировать связанный ряд (46, 47) блоков дескремблированных данных, посредством шифра дешифрования (DK) в режиме обратного сцепления, при этом, чтобы дескремблировать ряд (44, 45) блоков скремблированных данных,
последний блок (Р3, PN) дескремблированных данных в ряду (46, 47) получается посредством применения шифра (DK) дешифрования к последнему блоку (С3, СN) в связанном ряду (44, 45) блоков скремблированных данных и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра (DK) дешифрования и вектор инициализации (IV3, IVN), и при этом каждый предшествующий блок дескремблированных данных в ряду (46, 47) получается посредством применения шифра дешифрования к блоку в ряду блоков скремблированных данных в соответствующей позиции и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования и блок скремблированных данных в следующей позиции ряда (44, 45) блоков скремблированных данных,
отличающаяся тем, что
система сконфигурирована для последовательности рядов (44, 45) блоков скремблированных данных, включенных в единицу (36) данных в рамках потока скремблированных данных, чтобы генерировать, по меньшей мере, один вектор инициализации (IVN) для дескремблирования ряда (45) блоков скремблированных данных в зависимости от, по меньшей мере, одного блока дескремблированных данных в ряду блоков дескремблированных данных, полученном посредством дескремблирования предыдущего ряда (44) блоков скремблированных данных в единице (36) данных.
20. Система по п.19, сконфигурированная для выполнения способа по любому из пп.11-18.
21. Устройство для передачи и приема данных, содержащее:
средство для получения из потока последовательности первых рядов (29, 30) блоков (Pi) данных,
средство для реверсирования порядка блоков (Рi) в каждом из первых рядов (29, 30) блоков, чтобы сформировать соответствующие вторые ряды (31, 37) блоков данных, и
средство для шифрования блоков в каждом втором ряду (31, 37) блоков с использованием шифра (ЕK) в режиме сцепления блоков, инициализируемом соответствующим вектором инициализации (IV3, IVN) для каждого второго ряда (31, 37) блоков,
отличающееся тем, что содержит:
средство для генерирования для последовательности первых рядов (29, 30) блоков, включенных в единицу (26) данных в рамках потока, по меньшей мере, одного вектора инициализации (IVN) для шифрования второго ряда (37) блоков, сформированного из первого ряда (30) блоков в единице данных, в зависимости от, по меньшей мере, одного блока в предшествующем первом ряду (29) блоков единицы данных.
22. Устройство для передачи и приема данных, содержащее:
средство для получения из потока скремблированных данных последовательности рядов (44, 45) блоков (Сi) скремблированных данных,
и
средство для дескремблирования каждого ряда (44, 45) блоков скремблированных данных, чтобы сформировать связанный ряд (46, 47) блоков (Pi) дескремблированных данных, с использованием шифра (DK) дешифрования в режиме обратного сцепления,
средство для применения шифра (DK) дешифрования к последнему блоку (С3, СN) в связанном ряду (44, 45) блоков скремблированных данных и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования (DK) и вектор инициализации (IV3, IVN), для получения последнего блока (Р3, PN) в ряду (46, 47) блоков дескремблированных данных для дескремблирования ряда (46, 47) блоков скремблированных данных, и
средство для применения шифра дешифрования (DK) к блоку в ряду блоков (44, 45) скремблированных данных в соответствующей позиции и применения оператора, имеющего в качестве операндов, по меньшей мере, результат шифра дешифрования (DK) и блок скремблированных данных в следующей позиции ряда (44, 45) блоков скремблированных данных, для получения каждого блока, предшествующего последнему блоку (Р3, PN) в ряду (46, 47) блоков дескремблированных данных, отличающееся тем, что содержит:
средство для генерирования для последовательности рядов (44, 45) блоков скремблированных данных, включенных в единицу (36) данных в потоке скремблированных данных, по меньшей мере, одного вектора инициализации (IVN) для дескремблирования ряда (45) блоков скремблированных данных в зависимости от, по меньшей мере, одного блока дескремблированных данных в ряду (46) блоков дескремблированных данных, полученном посредством дескремблирования предыдущего ряда (44) блоков скремблированных данных в единице (36) данных.
23. Компьютерочитаемый носитель, содержащий компьютерную программу, включающую в себя набор инструкций, обеспечивающих при реализации на машиночитаемом носителе выполнение системой, имеющей возможности обработки информации, способа по любому из пп.1-8.
24. Компьютерочитаемый носитель, содержащий компьютерную программу, включающую в себя набор инструкций, обеспечивающих при реализации на машиночитаемом носителе выполнение системой, имеющей возможности обработки информации, способа по любому из пп.11-18.
US 2005053232 A1, 10.03.2005 | |||
WO 9510906 A1, 20.04.1995 | |||
Воздушная фурма доменной печи | 1979 |
|
SU908810A1 |
RU 2004100277 A, 27.03.2005 | |||
RU 2005104945 A, 20.07.2005. |
Авторы
Даты
2012-01-10—Публикация
2006-11-07—Подача