ES2376818T3 - Métodos de aleatorización y desaleatorización de unidades de datos. - Google Patents
Métodos de aleatorización y desaleatorización de unidades de datos. Download PDFInfo
- Publication number
- ES2376818T3 ES2376818T3 ES05110495T ES05110495T ES2376818T3 ES 2376818 T3 ES2376818 T3 ES 2376818T3 ES 05110495 T ES05110495 T ES 05110495T ES 05110495 T ES05110495 T ES 05110495T ES 2376818 T3 ES2376818 T3 ES 2376818T3
- Authority
- ES
- Spain
- Prior art keywords
- blocks
- data
- block
- sequence
- randomized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4408—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/601—Broadcast encryption
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Storage Device Security (AREA)
- Error Detection And Correction (AREA)
- Mobile Radio Communication Systems (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
- Time-Division Multiplex Systems (AREA)
- Radar Systems Or Details Thereof (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Método de aleatorización de un flujo de datos, que incluye obtener a partir de la sucesión de las primeras secuencias (29, 30) de bloques (Pi) de datos, invertir el orden de los bloques (Pi) en cada una de las primeras secuencias (29, 30) de los bloques para formar segundas secuencias respectivas de bloques de datos, y y codificar los bloques en cada segunda secuencia (31, 37) de bloques usando una cifra (Ek) en el bloque a modo de encadenamiento, inicializado con un vector de inicialización respectivo (IV3, IVN) para cada segunda secuencia (31, 37) de bloques, caracterizado por el hecho de que, para una sucesión de primeras secuencias (29, 30) de bloques incluida en una unidad (26) de datos en el flujo, al menos un vector de inicialización (IVN) usado para codificar una segunda secuencia (37) de bloques formados a partir de una primera secuencia (30) de bloques en la unidad de datos es generado en función de al menos un bloque en una primera secuencia precedente (29) de los bloques de la unidad.
Description
Métodos de aleatorización y desaleatorización de
unidades de datos.
\global\parskip0.920000\baselineskip
La invención se refiere a un método de
aleatorización de un flujo de datos, que incluye el hecho de
obtener del flujo una sucesión de primeras
secuencias de bloques de datos,
invertir el orden de los bloques en cada una de
las primeras secuencias de bloques para formar segundas secuencias
respectivas de bloques de datos, y codificar los bloques en cada
segunda secuencia de bloques usando un modo de encadenamiento de
cifra en bloque, iniciado con un vector de inicialización respectivo
para cada segunda secuencia de bloques.
\vskip1.000000\baselineskip
La invención también se refiere a un sistema
para codificar un flujo de datos, que incluye
una entrada para recibir el flujo en una
sucesión de primeras secuencias de bloques de datos,
una pluralidad de registros y al menos una
unidad lógica para la inversión del orden de los bloques en cada una
de las primeras secuencias de bloques para formar segundas
frecuencias respectivas de bloques de datos, y
una disposición de tratamiento para la
codificación de los bloques en cada segunda secuencia de bloques que
usa un modo de encadenamiento de cifra en bloque, iniciado con un
vector de inicialización respectivo para cada segunda secuencia de
bloques.
\vskip1.000000\baselineskip
La invención también se refiere a un método de
descodificación de un flujo de datos aleatorizados para formar un
flujo de datos, que incluye el hecho de
obtener del flujo de datos aleatorizados una
sucesión de secuencias de bloques de datos aleatorizados, y
descodificar cada secuencia de bloques de datos aleatorizados para
formar una secuencia asociada de bloques de datos desaleatorizados,
mediante el uso de una cifra de descifrado en modo de encadenamiento
inverso, donde, para descodificar una secuencia de bloques de datos
aleatorizados,
un bloque final en la secuencia de bloques de
datos desaleatorizados se obtiene mediante la aplicación de la cifra
de descifrado a un bloque final en la secuencia asociada de bloques
de datos aleatorizados y por aplicación de un operador que tiene
como operandos al menos el resultado de la cifra de descifrado y un
vector de inicialización, y donde cada bloque que precede el bloque
final en la secuencia de bloques de datos desaleatorizados se
obtiene mediante la aplicación de la cifra de descifrado a un bloque
en la secuencia de bloques de datos aleatorizados en una posición
correspondiente y por aplicación de un operador que tiene como
operandos al menos el resultado de la cifra de descodificación y un
bloque de datos aleatorizados en una posición contigua en la
secuencia de bloques de datos aleatorizados.
\vskip1.000000\baselineskip
La invención también se refiere a un sistema
para descodificar un flujo de datos aleatorizados para formar un
flujo de datos, que incluye
una entrada para recibir el flujo de datos
aleatorizados como una sucesión de secuencias de bloques de datos
aleatorizados, y una disposición de tratamiento para descodificar
cada secuencia de bloques de datos aleatorizados para formar una
secuencia asociada de bloques de datos desaleatorizados, usando un
cifra de descifrado en modo de encadenamiento inverso, donde, para
descodificar una secuencia de bloques de datos aleatorizados, se
obtiene un bloque final de datos desaleatorizados en la secuencia
por aplicación de la cifra de descifrado a un bloque final en la
secuencia asociada de bloques de datos aleatorizados y la aplicación
de un operador que tiene como operandos al menos el resultado de la
cifra de descifrado y un vector de inicialización, y donde cada
bloque precedente de datos desaleatorizados en la secuencia se
obtiene por aplicación de la cifra de descifrado a un bloque en la
secuencia de bloques de datos aleatorizados en una posición
correspondiente y por aplicación de un operador que tiene como
operandos al menos el resultado de la cifra de descifrado y un
bloque de datos desaleatorizados en una posición siguiente en la
secuencia de bloques de datos aleatorizados.
\vskip1.000000\baselineskip
La invención también se refiere a un aparato
para el envío y la recepción de datos.
La invención también se refiere a un programa
informático.
\global\parskip1.000000\baselineskip
Ejemplos respectivos de tales métodos y sistemas
son conocidos gracias a la WO 95/10906. En el método conocido, los
datos digitales se dividen en paquetes de N bloques, X(1),
X(2), ... X(N), donde cada bloque tiene 2^{m} bits.
La secuencia de bloques se invierte antes de la operación de
encriptación en X(N), X(N-1), ...,
X(1). Esta secuencia de bloques se codifica por el algoritmo
de encriptación E de la siguiente manera (donde ^ se utiliza para
indica un operador OR (XOR) exclusivo).
La secuencia de estos bloques codificados se
invierte de nuevo, de tal modo que la secuencia Y(N),
Y(N-1), ...
Y(1) se transfiere al receptor.
Y(1) se transfiere al receptor.
En el lado de receptor, los bloques de datos
originales se obtienen mediante el algoritmo de descodificación D de
la siguiente manera:
El método usado en el sistema conocido se indica
como encadenamiento de bloque de cifra inversa o método RCBC.
Muestra la ventaja de que se requiere una memoria tampón en el
receptor para almacenar sólo dos bloques de datos.
Un problema del método y sistema conocidos es
que requiere un tampón en el lado emisor con la capacidad de
almacenar N bloques para implementar la inversión de la secuencia de
bloques. Esto llega a ser un problema cuando hay muchos remitentes
de datos aleatorizados en un sistema de comunicación de datos, o
cuando un dispositivo tiene que funcionar como emisor y receptor de
datos.
Es un objeto de la presente invención
proporcionar métodos, sistemas, un aparato y programa informático de
los tipos indicado en los párrafos iniciales que se puedan
implementar más eficazmente mientras proporcionan un nivel aceptable
de protección de contenido.
Este objeto se consigue por el método de
codificación de un flujo de datos según la invención, que se
caracteriza en que, para una sucesión de primeras secuencias de
bloques incluidos en una unidad de datos en el flujo, al menos un
vector de inicialización para la codificación de una segunda
secuencia de bloques formados a partir de una primera secuencia de
bloques en la unidad se genera en dependencia de al menos un bloque
en una primera secuencia precedente de bloques de la unidad.
Debido a que la unidad de datos incluye una
sucesión de primeras secuencias de bloques, cada primera secuencia
de bloques está formada por bloques menores, lo que significa que se
requiere menos memoria tampón para invertir el orden de los bloques.
Esto es posible con un nivel aceptable de seguridad ya que al menos
dos de las segundas secuencias de bloques son efectivamente
encadenadas. Este encadenamiento se debe al hecho de que al menos un
vector de inicialización -cada uno excepto el primero en caso de
seguridad máxima- es requerido para codificar una segunda secuencia
de bloques formados a partir de una primera secuencia de bloques y
se genera en función de al menos un bloque en una primera secuencia
precedente de bloques de la unidad.
En una forma de realización, los vectores de
inicialización respectivos para la codificación de los bloques en
cada segunda secuencia de bloques formados a partir de una primera
secuencia de bloques se generan en función de al menos un bloque de
datos anterior a un último bloque en la misma primera secuencia.
Esto tiene como efecto el hecho de conseguir una
mayor variación en los vectores de inicialización. Incluso los
bloques de una primera de las primeras secuencias de bloques en la
sucesión incluida en una unidad se aleatorizan usando un vector de
inicialización que tiene una gran probabilidad de ser único. La
variación se asegura mediante la generación del vector de
inicialización en dependencia de al menos un bloque de datos
precedente a un último bloque de datos en la misma primera
secuencia. Debido a la inversión del orden de los bloques en cada
primera secuencia, uno o más bloques de datos en dependencia del
cual se genera el vector de inicialización se vuelve disponible
durante la descodificación antes de que el descodificador requiera
el vector de inicialización. Así, la singularidad del vector de
inicialización para cada primera secuencia en la sucesión de
primeras secuencias incluidas en la unidad es alcanzable con una
probabilidad relativamente alta sin tener que proveer para el
receptor un vector de inicialización nuevo para cada primera
secuencia.
En una forma de realización, cada vector de
inicialización para codificar una segunda secuencia de bloques
formados a partir de una primera secuencia de bloques en la unidad
se genera en dependencia de al menos un bloque en cada una de
cualquiera de las primeras secuencias precedentes de los bloques de
la unidad.
Así, el encadenamiento entre las segundas
secuencias se maximiza, en la medida en que la última primera
secuencia de bloques de datos no se puede obtener en claro sin haber
obtenido previamente cualquiera de las primeras secuencias de
bloques precedentes en la sucesión de las primeras secuencias
incluidas en la unidad.
Una forma de realización incluye la recepción un
paquete de datos comprendiendo un membrete y una carga útil, donde
la unidad es formada por la carga útil.
Esta forma de realización es ventajosa debido a
que la carga útil puede ser aleatorizada sin tener que tamponarla
completamente primero.
En una forma de realización, la cifra es una
cifra de bloque configurada para funcionar en bloques básicos de un
tamaño predeterminado, donde los bloques en al menos las segundas
secuencias de datos corresponden en tamaño al tamaño de bloque
básico.
En una forma de realización, si la unidad se
constituye de la sucesión de primeras secuencias de bloques y de una
cantidad de sucesión de datos del mismo tamaño que al menos un
múltiple del tamaño del bloque básico, la cantidad de datos es
rellenada en un tamaño igual a un múltiple del tamaño de un bloque
básico para formar una primera secuencia final de al menos dos
bloques,
los últimos dos bloques de la primera secuencia
final de bloques son intercambiados y la orden de los bloques en la
primera secuencia final de bloques se reserva para formar una
segunda secuencia final de bloques de datos, los bloques de la
segunda secuencia final de bloques se codifican usando la cifra del
modo de encadenamiento de bloques, inicializado por un vector de
inicialización generado en función de al menos un bloque en una
primera secuencia precedente de bloques de la unidad.
\vskip1.000000\baselineskip
El método se adapta así para implementar una
forma de robo de texto cifrado. Esta es una forma relativamente
segura de asegurar que la unidad entera está aleatorizada. Además,
permite el uso de primeras secuencias formadas por un número
predeterminado de bloques para codificar una primera sección de la
unidad.
En una forma de realización, si una unidad
siguiente en el flujo se constituye por cero o más primeras
secuencias de un número predeterminado de bloques y por una cantidad
de datos del mismo tamaño o inferior al tamaño de un bloque
básico,
la cantidad de datos es rellenada hasta un
tamaño igual al tamaño de un bloque básico para formar un bloque
final, el bloque final es cifrado usando el modo de encadenamiento
de cifra en bloque, iniciado por un vector de inicialización
generado en función de al menos un bloque en una primera secuencia
precedente de bloques de la unidad.
\vskip1.000000\baselineskip
Así, no se necesita transmitir la cantidad de
sucesión de datos en claro, incluso si es más pequeño que el tamaño
de bloque básico para el cual se configura la cifra.
En una variante de esta forma de realización, el
vector de inicialización se genera mediante la realización de una
operación criptográfica, preferiblemente una descodificación que es
una inversión de la cifra, en un vector basado en al menos un vector
que es independiente de cualquier bloque en cualquier primera
secuencia precedente de bloques de la unidad.
El efecto es que una variación en el vector de
inicialización se puede conseguir usando el mismo vector usado para
generar un vector de inicialización para bloques aleatorizados de
datos en una unidad precedente. Así, una cantidad inferior de
vectores se debe transmitir al descodificador, mientras que la
seguridad sigue siendo relativamente buena. El uso de un descifrado
que es una inversión de la cifra tiene como efecto de que se utiliza
la configuración del hardware y/o software del desaleatorizador que
ya está presente para la descodificación.
Según otro aspecto, el sistema para la
codificación de un flujo de datos según la invención se
caracteriza en que el sistema se instala, para una sucesión de
primeras secuencias de bloques incluidas en una unidad de datos en
el flujo, para generar al menos un vector de inicialización para
codificar una segunda secuencia de bloques formados a partir de una
primera secuencia de bloques en la unidad que depende de al menos un
bloque en una primera secuencia precedente de bloques de la
unidad.
Debido a su eficiencia, el sistema se adapta muy
bien para ser incluido en un procesador dedicado a la
codificación.
Preferiblemente, el sistema se configura para
ejecutar un método según la invención.
Según otro aspecto, el método de
desaleatorización de un flujo de datos aleatorizados según la
invención se caracteriza en que, para una sucesión de
secuencias de bloques de datos aleatorizados incluidos en una unidad
de datos en el flujo de datos aleatorizados, al menos un vector de
inicialización para la desaleatorización de una secuencia de bloques
de datos aleatorizados se genera en función de al menos un bloque de
datos desaleatorizados en una secuencia de bloques de datos
desaleatorizados obtenidos por desaleatorización de una secuencia
precedente de bloques de datos aleatorizados de la unidad.
El método es apropiado para desaleatorizar un
flujo de datos aleatorizados que se puede obtener por aplicación de
un método de aleatorización de un flujo de datos según la invención.
Debido a que las secuencias de bloques de datos en una sucesión se
descodifican separadamente y en orden, no es tan grave si los
bloques dentro de una secuencia se reciben desordenados (p. ej. en
orden inverso), ya que las secuencias son más cortas que toda la
sucesión de secuencias. Porque al menos un vector de inicialización
para descodificar una secuencia de bloques de datos aleatorizados se
genera en función de al menos un bloque de datos desaleatorizados en
una secuencia de bloques de datos desaleatorizados obtenidos por la
descodificación de una secuencia precedente de bloques de datos
aleatorizados de la unidad, al menos dos secuencias de bloques de
datos aleatorizados son encadenados, haciendo que la descodificación
ilícita sea más difícil.
En una forma de realización, vectores de
inicialización respectivos para descodificar cada secuencia de
bloques de datos aleatorizados se generan en función de al menos un
bloque de datos obtenidos aplicando la cifra de descifrado a un
bloque en la secuencia de bloques de datos aleatorizados precedente
al bloque final de datos aleatorizados en la misma secuencia y
aplicando un operador que tiene como operandos al menos el resultado
de la cifra de descifrado y un bloque de datos aleatorizados en una
posición siguiente en la misma secuencia de bloques de datos
aleatorizados.
Esto tiene la ventaja de que un flujo de muchas
unidades no requiere transferir muchos vectores de inicialización
del codificador al descodificador para lograr una variedad
suficiente en los vectores de inicialización.
En una forma de realización, cada vector de
inicialización para descodificar una secuencia de bloques de datos
aleatorizados en la unidad se genera en función de al menos un
bloque de datos desaleatorizados de cada una de cualquier secuencia
de bloques de datos desaleatorizados obtenidos por desaleatorización
de una secuencia precedente de bloques de datos aleatorizados en la
unidad.
Así, en efecto, todas las secuencias en la
sucesión incluida en la unidad son encadenadas.
Una forma de realización incluye recibir un
paquete de datos que comprende una cabecera y una carga, donde la
unidad es formada por el flujo.
En una forma de realización, la cifra de
descifrado es un bloque configurado para operar en bloques básicos
de un tamaño predeterminado, donde los bloques de las secuencias de
bloques de datos aleatorizados corresponde en tamaño al tamaño de
bloque básico.
En una forma de realización, si la unidad se
constituye de la sucesión de secuencias de bloques de datos
aleatorizados y de una cantidad de sucesión de datos de igual tamaño
a un múltiple entero del tamaño del bloque básico y una fracción del
tamaño del bloque básico, la cantidad de datos se rellena con datos
predeterminados del mismo tamaño que un múltiple del tamaño del
bloque básico para formar una secuencia final de bloques de datos
desaleatorizados, una final de la secuencia final de bloques de
datos desaleatorizados se forma aplicando la cifra de descifrado a
un bloque que precede inmediatamente un bloque final de la secuencia
final de datos aleatorizados, aplicando un operador XOR que tiene
como operandos el resultado de una cifra de descifrado y el bloque
final de la secuencia final de bloques de datos cifrados, y
eliminando una parte del resultado del operador XOR que corresponde
en tamaño a los datos predeterminados, cada uno de cualquiera de los
bloques que preceden los dos bloques finales de cada secuencia de
bloques de datos desaleatorizados se forma aplicando la cifra de
descifrado a un bloque en una posición correspondiente en la primera
secuencia final de bloques de datos aleatorizados y aplicando un
operador XOR que tiene como operandos el resultado de la cifra de
descifrado y un bloque de datos desaleatorizados en una posición
siguiente en la secuencia final de bloques de datos aleatorizados,
y
un bloque precedente al bloque final en la
secuencia final de bloques de datos desaleatorizados se obtiene
mediante la aplicación de la cifra de descifrado a un bloque formado
por concatenación de la parte eliminada cuyo tamaño corresponde a
los datos predeterminados y al bloque final de la secuencia final de
bloques de datos aleatorizados, y por aplicación de un operador XOR
que tiene como operandos el resultado de la cifra de descifrado y un
vector de inicialización generado en función de al menos un bloque
de datos desaleatorizados obtenidos por desaleatorización de la
secuencia precedente de bloques de datos aleatorizados en la
unidad.
\vskip1.000000\baselineskip
Esto es una implementación de robo de texto
cifrado por el lado de descodificador.
En una forma de realización, si una unidad
siguiente está constituida por cero o más secuencias de un número de
bloques predeterminado y por una sucesión de una cantidad de datos
cuyo tamaño es inferior al tamaño de un bloque básico,
la cantidad de datos se rellena hasta un tamaño
igual al tamaño de un bloque básico para formar un bloque final,
el bloque final se descifra usando la cifra en
modo de encadenamiento de bloque, inicializada por el vector de
inicialización generado dependiendo de al menos un bloque en al
menos una de cualquiera de las secuencias de bloques de datos
desaleatorizados obtenidos por desaleatorización de una secuencia de
bloques precedente de datos aleatorizados en la unidad.
\vskip1.000000\baselineskip
El uso de una secuencia de número de bloques
predeterminado tiene el efecto el hecho de que el número de bloques
por secuencia no necesita estar en comunicación con el
descodificador. En el lugar donde los límites de la unidad también
están predeterminados, por ejemplo en el caso de que la unidad esté
formada por la carga útil de un paquete, cualquier cantidad restante
de datos de tamaño inferior al tamaño del bloque básico de la cifra,
puede ser enviada aún al desaleatorizador en forma encriptada. No es
necesario aumentar el tamaño de la unidad aleatorizada en
comparación con la unidad desaleatorizada.
En una variante, el vector de inicialización se
genera creando una operación criptográfica, preferiblemente la cifra
de descodificación, en un vector basado en al menos un vector
independiente de cualquier bloque en cualquier bloque precedente de
datos desaleatorizados que se puede obtener por desaleatorización de
una secuencia precedente de bloques de datos aleatorizados en la
unidad.
Esto significa que el desaleatorizador no
necesita recibir ni almacenar muchos vectores de los cuales derivan
los vectores de inicialización. El vector del que derivan los
vectores de inicialización puede mantenerse constante con respecto
al número de unidades de datos del flujo. La operación criptográfica
asegura que nunca se usa directamente en forma de operando para un
operador lógico, tal como un operador OR exclusivo.
Según otro aspecto, el sistema de
desaleatorización de un flujo de datos aleatorizados para formar un
flujo de datos según la invención se caracteriza en que el
sistema está configurado, para una sucesión de secuencias de bloques
de datos aleatorizados incluidos en una unidad de datos que están en
el flujo de datos aleatorizados, para generar al menos un vector de
inicialización para descodificar una secuencia de bloques de datos
aleatorizados que depende de al menos un bloque de datos
desaleatorizados en una secuencia de bloques de datos
desaleatorizados obtenida por desaleatorización de una secuencia
precedente de bloques de datos desaleatorizados de la unidad.
Preferiblemente, el sistema se configura para
llevar a cabo un método de desaleatorización según la invención.
Según otro aspecto de la invención, se provee un
aparato proporcionado para enviar y recibir datos, incluyendo un
dispositivo dispuesto para aplicar un método de aleatorización de un
flujo de datos según la invención y un método de desaleatorización
de un flujo de datos aleatorizados según la invención.
Debido a que los métodos complementarios de
aleatorización y desaleatorización pueden ser implementados con los
mismos requisitos de memoria tampón, este aparato no necesita tener
registros para almacenar bloques que no sean usados en una de las
dos operaciones. Así, una implementación económica en el hardware es
posible, siendo especialmente útil para un dispositivo dispuesto
para funcionar enviando y recibiendo datos, por ejemplo una entrada
entre dos redes.
Según otro aspecto de la invención, se
proporciona un programa informático que incluye un conjunto de
instrucciones capaces, cuando se incorporan en una máquina legible
media, de hacer que un sistema que tiene capacidades de
procesamiento de información aplique un método para codificar un
flujo de datos según la invención o un método de desaleatorización
de un flujo de datos aleatorizados según la invención.
La invención será explicada ahora con más
detalle en referencia a los dibujos anexos, donde
La fig. 1 ilustra un sistema para implementar
métodos de aleatorización y desaleatorización de flujos de datos
emitidos,
la fig. 2 ilustra una forma de realización de
un método para aleatorizar un flujo de datos,
la fig. 3 ilustra un método para implementar el
robo de textos de cifrado en un método de aleatorización de flujo de
datos,
la fig. 4 ilustra cómo se manipulan bloques
parciales individuales que forman finilla extremidad de un paquete
de carga útil de Flujo de Transporte MPEG-2,
La fig. 5 ilustra una forma de realización de
un método de desaleatorización de un flujo de datos,
La fig. 6 ilustra una implementación de robo de
datos de texto cifrado en un desaleatorizador, y
La fig. 7 ilustra cómo se manipulan bloques
parciales individuales que forman la extremidad de un paquete de
carga de Flujo de Transporte MPEG-2 en un
desaleatorizador,
La fig. 1 ilustra la aplicación de un método de
aleatorización de transmisión de datos. Al menos parte del sistema
ilustrado usa técnicas conocidas per se a partir del
"Digital Video Broadcasting (DVB); Implementation Guidelines of
the DVB Simulcrypt Standard", Informe Técnico
ETSI-TR 102 035 v. 1.1.1, European Telecommunication
Standards Institute, 2002.
Un proveedor de contenidos 1 proporciona un
flujo de paquetes de transporte de texto común, es decir
desaleatorizado, datos de contenido, a una unidad de multiplexación
2. Un generador 3 de mensaje de control de derechos (ECM)
proporciona a la unidad multiplexada 2 un flujo de soporte de
paquetes ECMs. Un generador 4 de mensaje de gestión de derechos
(EMM) proporciona a la unidad multiplexada 2 un flujo de soporte de
paquetes EMMs. Los flujos son multiplexados en un único flujo de
MPEG-2 de paquetes de Flujo de transporte (TS), y
proporcionados a un aleatorizador 5. La sintaxis de los paquetes
MPEG-2 TS se describe de manera más completa en el
estándar internacional ISO/IEC 13818-1. El
aleatorizador 5 implementa un método de aleatorización de las cargas
de los paquetes MPEG-2 TS que se describirán más
detalladamente a continuación. Éste recibe las palabras de control
(CWs) de un generador CW 6, que se usan como claves para una cifra
de bloque.
El generador CW 6 proporciona los CWs al
generador ECM 3, que las codifica bajo una clave de sesión obtenida
a partir de un Sistema de Autorización de Suscriptor (SAS) 7. El SAS
proporciona claves de sesión con autorizaciones para suscritores
individuales al generador EMM 4. El generador EMM incluye estas
claves de información de autorización en el EMMs destinada a
asegurar testigos provistos para suscritores individuales. Tales
testigos de seguridad pueden incluir agentes de software
implementados usando características tales como el oscurecimiento de
código para el análisis de prevención de las rutinas contenidos en
éstos. Otros ejemplos de testigos de seguridad incluyen dispositivos
que incluyen procesadores provistos con características protectoras
para prevenir el acceso a datos almacenados y/o análisis de rutinas
cableadas en éstos.
El flujo aleatorizado de datos pasa del
codificador 5 a un modulador 8, y desde ahí al transmisor 9. El
transmisor 9 emite el flujo de datos aleatorizados en una red de
emisión 10, por ejemplo un satélite, un cable o red terrestre, o una
red comprendiendo una cantidad de estas redes. En una forma de
realización alternativa, el flujo de paquetes codificados
MPEG-2 TS se encapsula en otros paquetes de datos, y
emite, multidifunde o unidifunde una red de datos, tal como una red
de datos basada en el Protocolo Internet.
Con fines ilustrativos, un Descodificador
Integrado de Recepción (IRD) primario 11 se muestra en la Fig 1. El
IRD primario 11 incluye un adaptador de red 12 para recibir los
datos transmitidos por la red de emisión 10. Un demodulador 14 hace
que el flujo de datos aleatorizados esté disponible para un
aleatorizador/desaleatorizador 14. Esta unidad se configura para
llevar a cabo un método de desaleatorización de un flujo de datos y
un método de aleatorización de un flujo de datos. Un procesador 15
controla la operación del IRD primario 11. Puede dirigir un flujo de
datos aleatorizados generado por el codificador/descodificador 14
hacia un segundo adaptador de red 16 conectando el IRD primario 11 a
una red local 17. La red local 17 puede ser una red de hogar, por
ejemplo basada en el estándar IEEE 1394. Se provee un receptor
secundario 18 con un adaptador de red correspondiente y un chip
desaleatorizador. Otros componentes no se muestran en detalle. El
chip desaleatorizador20 opera de la misma manera que el
aleatorizador/desaleatorizador14. Por esta razón, no se describirá
más detalladamente.
Volviendo al aleatorizador/desaleatorizador 14,
este componente desaleatorizará paquetes MPEG-2TS
aleatorizados usando CWs provistos por un Subsistema de Acceso
Condicional (CASS) 21. El CASS 21 se conecta con un dispositivo de
procesamiento seguro 22, por ejemplo una tarjeta electrónica, que
proporciona las claves para descifrar ECMs para un primer
descodificador 23. El primer descodificador 23 obtiene los CWs
pasados al aleatorizador/desaleatorizador 14. Los EMMS se descifran
con un segundo descodificador 24, para proporcionar al dispositivo
de procesamiento seguro 22 la información necesaria para obtener las
claves de servicio. El procesador dirige una unidad desmultiplexada
25 para salvar los paquetes MPEG-2 TS que
transportan los ECMs y los que transportan los EMMs para
proporcionarlos al CASS 21.
La fig. 2 ilustra una forma de realización de
un método de aleatorización de un flujo de datos tales como los que
son obtenidos por el aleatorizador 5 y/o
aleatorizador/desaleatorizador 14. En la forma de realización
ilustrada, el método es realizado por una unidad de datos formada
por una carga útil 26 de un paquete MPEG-2 TS 27,
que comprende un membrete 28. El membrete 28 no está aleatorizado,
sino dejado en claro. Se observa que el método puede ser realizado
en otro tipo de paquetes, que no son definidos necesariamente por un
protocolo de red de capa de transporte. Por ejemplo, el método
también puede realizarse en paquetes de Flujo de Programa Elemental
(PES) transportados en paquetes MPEG-2 TS 27.
Aunque el paquete MPEG-2 TS 27
tiene una longitud fija, 188 bites, no es el caso de la carga útil
26. Esto se debe a la longitud variable del membrete 28. En el
ejemplo ilustrado en la fig. 2, el flujo 26 tiene este tamaño que
puede ser dividido en un número entero de bloques básicos P_{i} de
tamaño fijo, y también en un número entero de los denominados super
bloques. Cada super bloque está formado por una primera secuencia de
bloques básicos P_{i}. Una primera secuencia inicial 29 y una
última primera secuencia 30 se ilustran explícitamente. Una sucesión
de super bloques constituye el flujo 26. En el ejemplo, cada super
bloque está formado por una primera secuencia 29, 30 de los tres
bloques básicos P_{i}. En otra forma de realización, estaban
presentes dos bloques básicos P_{i} por cada super bloque. Puede
haber más de tres, por ejemplo, cuatro, cinco o diez bloques básicos
por super bloque. Un número mayor requiere más registros en el
aleatorizador 5 y/o aleatorizador/desaleatorizador 14.
Las etapas realizadas donde la carga útil 26 no
tiene el mismo tamaño que un número entero de super bloques formado
por un número entero de bloques básicos P_{i} se tratarán más
abajo.
En otra variante del método (no ilustrada), la
carga útil 26 se divide en dos super bloques de tamaño variable, por
ejemplo, que contiene un número variable de bloques básicos
P_{i}.
El tamaño del bloque básico se determina
preferiblemente por una cifra de bloque E_{k}, una clave de cifra
simétrica que opera en grupos de bits de tamaño fijo, los bloques
básicos, con una transformación invariable. En la forma de
realización ilustrada, la cifra de bloque E_{k} se usa para
codificar bloques básicos individuales P_{i} bajo una CW. Algunos
ejemplos de cifras adecuadas incluyen, DES, triple DES, y
AES/Rijndael. De esta manera, el tamaño del bloque básico será
generalmente de 128 bits.
En una primera etapa del método, el orden de los
bloques básicos P_{1}-P_{3} en la primera
secuencia inicial 29 se invierte para formar una segunda secuencia
31.
En un segundo paso, la cifra de bloque E_{k}
se usa en un modo de encadenamiento de bloque de cifra para
codificar los tres bloques básicos P_{1}-P_{3}
en la primera segunda secuencia 31, que se inicializa con un vector
de inicialización IV_{3} asociado a la primera segunda secuencia.
El índice usado para referirse al vector de inicialización IV_{3}
asociado a la primera segunda secuencia 31 de bloques básicos es el
índice del último bloque básico P_{3} de la secuencia, como será
el caso a través del presente texto. El vector de inicialización
IV_{3} usado para codificar la primera segunda secuencia asociada
31 de los bloques básicos se forma por aplicación de un operador
exclusivo OR que tiene como operando un vector de inicialización
fijado a largo plazo IV_{0} y el OR exclusivo o ambos bloques
básicos P_{1}-P_{2} que preceden el último
bloque básico P_{3} en la primera secuencia inicial 29 de los
bloques básicos P_{1}-P_{3}.
El método de codificación de las cargas 26 está
configurado para que el vector de inicialización fijado a largo
plazo IV_{0} no sea utilizado nunca directamente como un vector de
inicialización. Nunca se usa en una operación XOR inmediatamente
precedente a la operación de la cifra de bloque de E_{k} en un
primer bloque básico P_{i} en una segunda (es decir, invertida)
secuencia de bloques. Por esta razón, se puede usar en paquetes
múltiples MPEG-2 TS sin que el criptoanálisis sea
sustancialmente más fácil. No es necesario mantener en secreto el
vector de inicialización fijado a largo plazo IV_{0}. Se conocerá
cuando los métodos de aleatorización y desaleatorización de unidades
de datos aquí resumidos en la presente se usen en comunicaciones
P2P. En la situación ilustrada en la fig. 1 donde un único
proveedor controla los envíos y las recepciones, el vector de
inicialización fijado a largo plazo IV_{0}, puede ser guardado en
secreto. Puede ser provisto de un ECM o un EMM, por ejemplo. En una
forma de realización alternativa, un vector del que derivan los
vectores de inicialización independiente de los bloques de datos a
aleatorizar se obtiene aplicando un algoritmo predeterminado en los
datos incluidos en el membrete 28.
Debido a que el vector de inicialización
IV_{3} usado para cifrar los bloques
P_{1}-P_{3} en la primera segunda secuencia
asociada 31 de los bloques se genera dependiendo de al menos un
bloque de datos precedente al último bloque P_{3} en la primera
secuencia inicial 29 a partir de la cual se obtuvo, se consiguen más
variantes de los vectores de inicialización.
El resultado de la codificación de la primera
segunda secuencia 31 es una primera secuencia inicial 32 de los
bloques aleatorizados C_{3}-C_{1}. En la forma
de realización ilustrada, el orden de los bloques aleatorizados
C_{3}-C_{1} se invierte para formar una primera
segunda secuencia 33 de bloques aleatorizados
C_{1}-C_{3}. La primera segunda secuencia 33 de
bloques aleatorizados C_{1}-C_{3} se inserta en
un paquete aleatorizado MPEG-2 TS 34, que comprende
un membrete no codificado 35 y una carga útil aleatorizada 36.
Así, para la primera secuencia inicial 29 de los
bloques básicos P_{i}, i = 1...m, los bloques básicos C_{i}
codificados se obtienen de la manera siguiente:
En general, los bloques básicos codificados se
determinan de la manera siguiente:
El símbolo "\" se refiere al cociente o a
parte de un número entero de una proporción.
En la forma de realización ilustrada, el vector
de inicialización IV_{j\text{*}M} para cifrar los bloques en la
segunda secuencia j-th se obtiene de la siguiente
manera:
Así, los respectivos vectores de inicialización
para codificar los bloques en cada segunda secuencia de bloques
formada a partir de una primera secuencia de bloques mediante la
inversión del orden de los bloques se genera dependiendo de al menos
un bloque de datos precedente a un último bloque en esa misma
primera secuencia. En esta forma de realización, éstos se generan
dependiendo de todos los bloques de datos precedentes a un último
bloque en esa misma primera secuencia.
No solo cada vector de inicialización para
codificar una segunda secuencia de bloques formada por una primera
secuencia de bloques en el flujo de paquete 26 se genera dependiendo
de al menos un bloque, sino que en este caso todos los bloques, en
cada uno de cualquiera de las primeras secuencias que preceden
bloque básicos o super
bloques.
bloques.
Para codificar los bloques
P_{N-2}-P_{N} en una última
segunda secuencia 37, obtenida por inversión del orden de los
bloques básicos en la última primera secuencia 30 de bloques
básicos, la cifra de encriptación E_{k} es de nuevo operada en un
modo de encadenamiento de bloque de cifra. Un vector de
inicialización IV_{N} asociado con la última segunda secuencia 37
de los bloques básicos se genera realizando la operación XOR del
vector de inicialización fijado a largo plazo IV_{0} y cada uno de
los bloques básicos que preceden el último bloque básico P_{N}. El
resultado es una última secuencia 38 de bloques de datos
aleatorizados. El orden de los bloques se invierte para obtener una
última segunda secuencia 39 de los bloques de datos
aleatorizados.
La fig. 3 ilustra cómo el procedimiento del
método de desaleatorización, cuando el paquete de carga
MPEG-2 TS 26 se constituye de un número entero de
primera secuencia N\M de bloques básicos y una cantidad sucesiva de
datos de tamaño inferior igual al de los bloques básicos M. En las
formas de realización ilustradas, la cantidad sucesiva de datos
puede dividirse en dos bloques básicos completos
P_{N-2}, P_{N-1} y un bloque
parcial P_{N}. El último bloque P_{N} se rellena con ceros del
mismo tamaño que un bloque básico completo. Así, una primera
secuencia final se forma por los bloques P_{N-2},
P_{N-2} y el bloque rellenado P_{N}
N-th. Las posiciones de los últimos dos bloques de
la primera secuencia final de bloques se intercambia para formar una
segunda secuencia final 40 de bloques (mostrada en la fig. 3). Los
bloques de la segunda secuencia final 40 de bloques son codificados
usando la cifra de cifrado E_{k} en el modo de encadenamiento de
bloque. Como el vector de inicialización IV_{N}, un vector de
inicialización se genera aplicando una operación XOR que tiene como
operando el vector de inicialización fijado a largo plazo IV_{0},
y cada uno de los bloques básicos completos que preceden el último
bloque completo P_{N-1} precedente al bloque
parcial P_{N} en el paquete de carga MPEG-2 TS 26.
El resultado es una primera secuencia final 41 de bloques de datos
aleatorizados. Una cantidad de datos aleatorizados C' que
corresponde en tamaño y posición a los datos añadidos por el relleno
se extrae del primer bloque en la primera secuencia 41 de bloques, y
el orden de los bloques es invertida después para obtener una
segunda secuencia final de bloques aleatorizados (no mostrada), que
se inserta en el flujo codificado 36. Por supuesto, los datos
aleatorizados C' pueden ser extraídos después para invertir el orden
de los bloques.
Si el paquete de carga MPEG-2 TS
26 se constituye por un número entero de primeras secuencias N\M de
bloques básicos y una cantidad sucesiva de datos cuyo tamaño es
inferior al de un bloque básico, la operación descrita en la fig. 4
se realiza. Un bloque parcial P_{N} se rellena con ceros para un
bloque final de tamaño completo 42. Un vector de inicialización
IV_{N} se genera en función del vector de inicialización fijado a
largo plazo IV_{0} y de al menos un bloque en cualquier primera
secuencia de bloque que precede el paquete de carga 26. Podría
ocurrir que no haya primeras secuencias precedentes. Por lo que,
para no utilizar el vector de inicialización fijado a largo plazo
IV_{0} directamente como operando en una operación XOR, el vector
de inicialización IV_{N} asociado con el bloque final de tamaño
completo 39 se descodifica primero, utilizando una cifra de
descifrado que es inversa a la cifra de cifrado E_{k} y al CW como
clave. El OR exclusivo del resultado y el bloque final de tamaño
completo 42 se obtienen, y son codificados aplicando el bloque de
cifra E_{k}. El resultado es un bloque aleatorizado de tamaño
completo 43, que está truncado por eliminación de una parte
correspondiente al tamaño y posición a los datos añadidos rellenando
el bloque parcial P_{N}. La parte restante C_{N} se inserta en
una carga útil aleatorizada 36.
Las cargas útiles de una sucesión de paquetes
MPEG-2 TS 27 se codifican de esta manera, formando
así un flujo aleatorizado de datos. El robo de texto cifrado y el
método para manipular bloques parciales únicos aseguran que la carga
aleatorizada 36 es igual en tamaño a la carga 26 del paquete de
texto común original MPEG-2 TS 27. Así, el membrete
35 del paquete aleatorizado MPEG-2 TS 34 no necesita
ser alterado substancialmente en relación con el texto común del
paquete MPEG-2 TS 27, excepto para indicar que se ha
aleatorizado y, opcionalmente, de un CW par e impar que se han
utilizado para la cifra de bloques E_{k}.
La fig. 5 ilustra la operación de
desaleatorización que corresponde a la operación de aleatorización
ilustrada en la fig. 2. Como en la fig. 2, la fig. 5 está basada en
la suposición de que existen exactamente N\M super bloques en la
carga útil aleatorizada 36. La carga útil aleatorizada 36 forma una
sucesión de secuencias de bloques C_{i} de datos aleatorizados,
cada secuencia corresponde a un super bloque. Se muestra una primera
secuencia 44 de bloques C_{1}-C_{3} de datos
aleatorizados y una última secuencia 45 de bloques
C_{N-2}-C_{N}.
Cada secuencia de bloques de datos aleatorizados
se desaleatoriza por separado para formar una secuencia asociada de
bloques de datos desaleatorizados. Así, la primera secuencia 44 de
los bloques C_{1}-C_{3} se desaleatoriza para
formar una primera secuencia 46 de bloques de texto
P_{1}-P_{3}. La última secuencia 45 de bloques
C_{N-2}-C_{N} se desaleatoriza
para formar una última secuencia 47 de bloques de texto
P_{N-2}-P_{N}. Las secuencias de
bloque de texto se usan para formar un texto de paquete de carga
MPEG-2 TS 48, precedido por un membrete 49, y formar
así un paquete de texto común reconstituido MPEG-2
TS 50.
Un primer bloque P_{1} de datos
desaleatorizados en la primera secuencia 46 de los bloques de texto
se obtiene aplicando una cifra de descripción D_{k} que es la
inversa de la cifra de cifrado E_{k} a un primer bloque C_{1} de
datos aleatorizados y aplicando un operador XOR que tiene como
operando el resultado de la cifra de descifrado D_{k} y un bloque
aleatorizado siguiente C_{2} en la secuencia 44 de bloques de
datos aleatorizados. Un segundo bloque P_{2} se obtiene de la
misma manera. El CW obtenido de una ECM se usa como clave para la
cifra de descifrado D_{k}.
Un bloque final P_{3} de datos
desaleatorizados en la primera secuencia 46 de bloques de texto se
obtiene aplicando la cifra de descifrado D_{k} a un bloque final
C_{3} en la primera secuencia 44 de bloques
C_{1}-C_{3} de datos aleatorizados. El resultado
es XOR-ed con un vector de inicialización IV_{3}
asociado con el primer super bloque. Este vector de inicialización
IV_{3} se genera en función de al menos un bloque de datos
obtenidos aplicando la cifra de descifrado a un bloque en la primera
secuencia 44 de bloques de datos aleatorizados que precede al bloque
final C_{3} de datos aleatorizados en la misma secuencia aplicando
un operador, el operados XOR, que tiene de operando al menos el
resultado de la cifra de descifrado D_{k} y bloque de datos
desaleatorizados en una posición siguiente en la secuencia de
bloques de datos aleatorizados. En la forma de realización
ilustrada, el vector de inicialización IV_{3} es el XOR del vector
de inicialización fijado a largo plazo IV_{0} y todos los bloques
de la primera secuencia 46 de bloques de texto que precede el bloque
de texto final P_{3}. Dado que estos bloques de texto precedentes
se obtienen antes de que se tenga que obtener el bloque de texto
final P_{3}, el método de desaleatorización es relativamente
eficiente.
En general, en una forma de realización que usa
un número fijo M de bloques de datos aleatorizados para cada una de
las sucesiones de secuencias de bloques de datos aleatorizados
incluidas en la carga útil aleatorizada 35, los bloques de texto se
determinan de la siguiente manera:
En la forma de realización ilustrada, el vector
de inicialización IV_{j\text{*}M} para descodificar los bloques en
la secuencia j-th se obtiene de la siguiente
manera:
De esta manera, el vector de inicialización
utilizado para descodificar la segunda y otras secuencias de bloques
de datos aleatorizados se generan en función de al menos un bloque
de datos desaleatorizados en una secuencia de bloques de datos
desaleatorizados obtenidos por desaleatorización de una secuencia
precedente de bloques de datos desaleatorizados en la carga útil
aleatorizada 36.
La fig, 6 ilustra el procedimiento del método de
aleatorización cuando la carga útil aleatorizada 36 está constituida
por un número entero de las primeras secuencias N\M de bloques
básicos y la cantidad sucesiva de datos del mismo tamaño que un
múltiple entero del tamaño del bloque básico y una fracción del
tamaño del bloque básico. En la forma de realización ilustrada, la
cantidad sucesiva de datos puede ser dividida en dos bloques
codificados completos C_{N-2},
C_{N-1} y en un bloque parcial C_{N}. Así, se
forma una secuencia final con los bloques C_{N-2}.
C_{N-1} y el último bloque básico completo. Un
bloque de texto final P_{N} se forma aplicando la cifra de cifrado
D_{k} al bloque C_{N-1} que precede
inmediatamente al bloque final del final de la secuencia de bloques
de datos aleatorizados, aplicando un operador XOR al resultado de la
cifra de cifrado y el último bloque básico completo 51 y extrayendo
una parte C' del resultado del operador XOR que corresponde en
tamaño y posición al de los datos añadidos rellenando el último
bloque codificado C_{N}. Cada uno de cualquiera de los bloques que
preceden los últimos dos bloques de texto P_{N-1},
P_{N} - en este caso, el primer bloque P_{N-2}
de la secuencia es solo dicho bloque- formado aplicando la cifra de
cifrado D_{k} a un bloque en una posición correspondiente en el
final de la secuencia de bloques de datos aleatorizados y aplicando
un operador XOR al resultado de la cifra de cifrado D_{k} y un
bloque de datos aleatorizados lindando en la secuencia final de
bloques de datos aleatorizados.
El bloque P_{N-1} precede el
último bloque en la secuencia final de bloques de texto que se
obtiene aplicando la cifra de descifrado a un bloque 52 formado por
concatenación del último bloque aleatorizado C_{N} y la parte
extraída C' que corresponde en tamaño y posición a los ceros usados
para el relleno, y luego por aplicación de un operador XOR que tiene
como operando el resultado de la cifra de cifrado D_{k} y un
vector de inicialización IV_{N}. Como vector de inicialización
IV_{N}, un vector de inicialización se genera por aplicación de
una operación XOR que tienen como operando un vector de
inicialización fijado a largo plazo IV_{0} y cada uno de los
últimos dos bloques P_{N-1}, P_{N} en el paquete
de carga útil 48 de texto común MPEG-2 TS.
Si la carga útil aleatorizada 36 se constituye
por una secuencia de número entero de N\M bloques aleatorizados y la
cantidad sucesiva de datos de tamaño inferior al de un bloque
básico, la operación descrita en la fig. 7 se realiza. Un bloque
parcial aleatorizado C_{N} se rellena con ceros hasta obtener un
bloque aleatorizado final 53 de tamaño completo. Un vector de
inicialización IV_{N} se genera en función del vector de
inicialización fijado a largo plazo IV_{0} y al menos un bloque en
cualquier secuencia que lo precede de los bloques aleatorizados de
la carga útil aleatorizada 36. Puede ocurrir que no haya secuencias
precedentes de bloques aleatorizados. Para no usar el vector de
inicialización fijado a largo plazo IV_{0} directamente como
operando en una operación XOR, el vector de inicialización asociado
con el bloque codificado final a tamaño completo 53 se descifra
primero, utilizando la misma cifra de descifrado D_{k} utilizada
en el modo de encadenamiento de bloque, con el CW usado como clave.
El OR exclusivo o el resultado y el bloque descodificador final a
tamaño completo 50 es obtenido. El resultado es un bloque de tamaño
completo 54, que está truncado por eliminación de una parte C' cuyo
tamaño y posición corresponden a los datos añadidos por relleno del
bloque aleatorizado parcial C_{N}. La parte restante P_{N} se
inserta en la carga útil de paquete del texto común
MPEG-2 TS.
Así, un método en el que los super bloques
tienen un tamaño predeterminado, pero que pueden asociarse con
cargas útiles de paquetes de diferentes tamaños incluyendo las que
no son un múltiple entero del tamaño seleccionado del super bloque
se han descrito en detalle. El vector de inicialización para cada
super bloque no se usa nunca directamente como máscara para un
operador XOR. Éste depende al máximo de bloques de texto común
precedentes en la carga útil del paquete, para que se pueda obtener
toda la variedad posible en el vector de inicialización. Los
requisitos de memoria para almacenar los resultados de las
operaciones son sustancialmente los mismos para el aleatorizador y
desaleatorizador y se pueden mantener tan bajos como se considere
aceptable por motivos de seguridad escogiendo un tamaño inferior de
super bloque.
La invención no se limita a las formas de
realización descritas, las cuales pueden variar en el campo de las
reivindicaciones anexas. En particular, se puede tener una forma de
realización en la que la primera secuencia de los bloques
aleatorizados no se convierte en una segunda secuencia de datos
aleatorizados mediante la inversión del orden de los bloques en el
aleatorizador, sino donde la inversión se realiza en el
desaleatorizador antes de realizar el método de desaleatorización de
un flujo de datos aleatorizados ilustrado en la presente.
Claims (22)
-
\global\parskip0.950000\baselineskip
1. Método de aleatorización de un flujo de datos, que incluye obtener a partir de la sucesión de las primeras secuencias (29, 30) de bloques (P_{i}) de datos,invertir el orden de los bloques (P_{i}) en cada una de las primeras secuencias (29, 30) de los bloques para formar segundas secuencias respectivas de bloques de datos, yy codificar los bloques en cada segunda secuencia (31, 37) de bloques usando una cifra (E_{k}) en el bloque a modo de encadenamiento, inicializado con un vector de inicialización respectivo (IV_{3}, IV_{N}) para cada segunda secuencia (31, 37) de bloques,caracterizado por el hecho de que,para una sucesión de primeras secuencias (29, 30) de bloques incluida en una unidad (26) de datos en el flujo, al menos un vector de inicialización (IV_{N}) usado para codificar una segunda secuencia (37) de bloques formados a partir de una primera secuencia (30) de bloques en la unidad de datos es generado en función de al menos un bloque en una primera secuencia precedente (29) de los bloques de la unidad.\vskip1.000000\baselineskip
- 2. Método según la reivindicación 1, donde vectores de inicialización respectivos (IV_{3}, IV_{N}) para codificar los bloques en cada segunda secuencia (31, 37) de bloques formado por una primera secuencia (29, 30) de bloques generado en función de al menos un bloque de datos que precede el último bloque de la misma secuencia (29, 30).
- 3. Método según la reivindicación 1 o 2, donde cada vector de inicialización (IV_{N}) se genera en función de al menos un bloque en cada una de cualquiera de las primeras secuencias precedentes (29) de bloques de la unidad (26).
- 4. Método según cualquiera de las reivindicaciones 1 a 3, que incluye la recepción de un paquete de datos (27) que comprende un membrete (28) y una carga útil (26), donde la unidad es formada por el la carga útil.
- 5. Método según cualquiera de las reivindicaciones 1 a 4, donde la cifra (E_{k}) es una cifra de bloque configurado para funcionar en bloques básicos de tamaño predeterminado, donde los bloques (P_{i}) en al menos las segundas secuencias (31, 37) de datos corresponden en tamaño al tamaño de bloque básico.
- 6. Método según la reivindicación 5, donde, si la unidad (26) se constituye de la sucesión de primeras secuencias (29, 30) de bloques y la cantidad sucesiva de datos cuyo tamaño es inferior a un múltiple del tamaño del bloque básico,la cantidad de datos se completa en un tamaño igual al múltiple del tamaño de un bloque básico para formar una primera secuencia final de al menos dos bloques,los dos últimos bloques de la primera secuencia final de bloques se intercambian y el orden de los bloques en la primera secuencia final de bloques se invierte para formar una segunda secuencia final (40) de bloque de datos, los bloques de la segunda secuencia final (40) de bloques se codifican utilizando la cifra (E_{k}) a modo de encadenamiento de bloques, inicializado por un vector de inicialización (IV_{N}) generado en función de al menos un bloque en una primera secuencia precedente (29, 30) de bloques de la unidad.
\vskip1.000000\baselineskip
- 7. Método según la reivindicación 5, donde, si la unidad está constituida por cero o más primeras secuencias de un número predeterminado de bloques y por una cantidad de datos (P_{N}) cuyo tamaño es igual a menos del tamaño del bloque básico,la cantidad de datos se completa hasta un tamaño igual al tamaño de un bloque básico para formar un bloque final (42), la cantidad de datos se completa hasta alcanzar un tamaño igual al tamaño de un bloque básico para formar un bloque final (42), el bloque final (42) se codifica usando la cifra (E_{k}) a modo de encadenamiento de bloques, inicializado por un vector de inicialización generado en función de al menos un bloque en al menos una de cualquiera de las secuencias precedentes de bloques de la unidad.
\vskip1.000000\baselineskip
- 8. Método según la reivindicación 7, donde el vector de inicialización se genera aplicando una operación criptográfica (D_{k}), preferiblemente una descodificación que es la inversa de la cifra, en un vector (IV_{N}) basado en al menos un vector (IV_{0}) que es independiente de cualquier bloque en cualquier primera secuencia precedente de bloques de la unidad.
- 9. Sistema de aleatorización de un flujo de datos, que incluyeuna entrada para recibir el flujo a modo de sucesión de primeras secuencias (29, 30) de bloques (P_{i}) de datos, una pluralidad de registros y al menos una unidad lógica para invertir el orden de los bloques en cada una de las primeras secuencias (29, 39) de bloques (P_{i}) para formar segundas secuencias respectivas (31, 37) de bloques de datos, y
\global\parskip1.000000\baselineskip
una disposición de procesamiento para codificar los bloques en cada segunda secuencia (31, 37) de bloques usando una cifra (E_{k}) a modo de encadenamiento de bloques, inicializado con un vector de inicialización respectivo (IV_{3}, IV_{N}) para cada segunda secuencia (31, 37) de bloques,caracterizado por el hecho de que,el sistema se dispone, para una sucesión de primeras secuencias (29, 30) de bloques incluidos en una unidad (26) de datos en el flujo, para generar al menos un vector de inicialización (IV_{N}) usado para codificar una segunda secuencia (37) de bloques formada a partir de una primera secuencia (30) de bloques en la unidad de datos en función de al menos un bloque en una primera secuencia precedente (29) de bloques de la unidad (26).\vskip1.000000\baselineskip
- 10. Sistema según la reivindicación 9, configurado para ejecutar un método según cualquiera de las reivindicaciones 1 a 8.
- 11. Método de desaleatorización de un flujo de datos aleatorizados para formar un flujo de datos, que incluye el hecho de:obtener del flujo de datos aleatorizados una sucesión de secuencias (44, 45) de bloques (C_{i}) de datos aleatorizados, ydesaleatorizar cada secuencia (44, 45) de bloques de datos aleatorizados para formar una secuencia asociada (46, 47) de bloques (P_{i}) de datos desaleatorizados, usando una cifra de descifrado (D_{k}) en modo de encadenamiento inverso, donde, para descifrar una secuencia (46, 47) de bloques de datos aleatorizados,un bloque final (P_{3}, P_{N}) en la secuencia (46, 47) de bloques de datos desaleatorizados se obtiene aplicando la cifra de descifrado (D_{k}) a un bloque final (C_{3}, C_{N}) en la secuencia asociada (44, 45) de bloques de datos aleatorizados y aplicando un operador que tenga como operando al menos el resultado de la cifra de descifrado (D_{k}) y un vector de inicialización (IV_{3}, IV_{N}), y donde cada bloque que precede el bloque final (P_{3}, P_{N}) en la secuencia (46, 47) de bloques de datos desaleatorizados se obtiene aplicando la cifra de descifrado (D_{k}) en un bloque en la secuencia de un bloque (44, 45) de datos aleatorizados en una posición correspondiente y aplicando un operador que tiene como operando al menos el resultado de la cifra de descifrado (D_{k}) y un bloque de datos codificados en una posición sucesiva en la secuencia (44, 45) de bloques de datos aleatorizados,caracterizado por el hecho de que,para una sucesión de secuencia (44, 45) de bloques de datos aleatorizados incluida en una unidad (36) de datos en el flujo de datos aleatorizados, al menos un vector de inicialización (IV_{N}) usado para desaleatorizar una secuencia (45) de bloques de datos aleatorizados se genera en función de al menos un bloque de datos desaleatorizados en una secuencia (46) de bloques de datos desaleatorizados obtenidos por desaleatorización de una secuencia precedente (44) de bloques de datos aleatorizados de la unidad (36).
\vskip1.000000\baselineskip
- 12. Método según la reivindicación 11, donde los respectivos vectores de inicialización (IV_{3}, IV_{N}) para desaleatorizar cada secuencia (44, 45) de bloques (C_{i}) de datos aleatorizados se generan en función de al menos un bloque de datos desaleatorizados obtenido aplicando la cifra de descifrado (D_{k}) a un bloque en la secuencia (44, 45) de bloques de datos aleatorizados que precede el bloque final (C_{3}, C_{N}) de datos aleatorizados en la misma secuencia (44, 45) y aplicando un operador que tiene como operando al menos el resultado de la cifra de descifrado y un bloque de datos aleatorizados en una posición siguiente en la misma secuencia (44, 45) de bloques de datos aleatorizados.
- 13. Método según la reivindicación 11 o 12, donde cada vector de inicialización (IV_{N}) para desaleatorizar una secuencia (45) de bloques de datos aleatorizados en la unidad (36) se genera en función de al menos un bloque de datos desaleatorizados de cada una de cualquiera de las secuencias (46) de bloques de datos desaleatorizados obtenidos por desaleatorización de una secuencia precedente (44) de bloques de datos aleatorizados en la unidad (36).
- 14. Método según las reivindicaciones 11 a 13, que incluye la recepción de un paquete de datos (34) comprendiendo un membrete (35) y una carga útil (36), donde la unidad es formada por la carga útil.
- 15. Método según cualquiera de las reivindicaciones 11 a 14, donde la cifra de descifrado (D_{k}) es una cifra de bloque configurada para funcionar en bloques básicos de tamaño predeterminado, donde los bloques (C_{i}) en las secuencias (44, 45) de bloques de datos aleatorizados corresponden en tamaño al tamaño del bloque básico.
- 16. Método según la reivindicación 15, donde, si la unidad (36) se constituye de la sucesión de secuencias de bloques de datos aleatorizados y una cantidad sucesiva de datos del mismo tamaño que un múltiple entero del tamaño del bloque básico y una fracción (C_{N}) del tamaño del bloque básico,la cantidad de datos se completa con datos predeterminados de tamaño igual a un múltiple del tamaño de bloques básicos para formar una secuencia final de bloques de datos aleatorizados,una final (P_{N}) de una secuencia final de bloques de datos desaleatorizados se forma aplicando la cifra de descifrado a un bloque que precede inmediatamente el bloque final de la secuencia final de datos aleatorizados, aplicando un operador XOR que tiene como operando el resultado de la cifra de descifrado y el bloque final de la secuencia final de bloques de datos aleatorizados, y eliminando una parte (C') del resultado del operador XOR que corresponde en tamaño a los datos predeterminados,cada uno de cualquier bloque que precede los dos bloques finales (P_{N-1}, P_{N}) de la secuencia final de bloques de datos desaleatorizados se forma aplicando la cifra de descifrado (D_{k}) para un bloque en una posición correspondiente en la primera secuencia final de bloques de datos aleatorizados y aplicando un operador XOR que tiene como operando el resultado de la cifra de descifrado y un bloque de datos aleatorizados en una posición siguiente en la secuencia final de bloques de datos aleatorizados, yun bloque (P_{N-1}) que precede el bloque final (P_{N}) en la secuencia final de bloques de datos desaleatorizados se obtiene aplicando la cifra de descifrado a un bloque (52) formado por concatenación de la parte eliminada (C') que corresponde en tamaño al tamaño de los datos predeterminados y el bloque final de la secuencia final de bloques de datos aleatorizados, y aplicando un operador XOR que tiene como operando el resultado de la cifra de descifrado y un vector de inicialización (IV_{N}) generado en función de al menos un bloque en al menos una de cualquiera de las secuencias de bloques de los datos desaleatorizados obtenidos por desaleatorización de una secuencia precedente de bloques de datos aleatorizados en la unidad (36).
\vskip1.000000\baselineskip
- 17. Método según la reivindicación 15, donde, si una unidad sucesiva está constituida por cero o más secuencias de un número predeterminado de bloques y por una cantidad sucesiva (C_{N}) de datos del tamaño igual a menos del tamaño de un bloque básico, la cantidad de datos se completa hasta un tamaño igual al tamaño de un bloque básico para formar un bloque final (53),el bloque final (53) se descodifica utilizando la cifra (D_{k}) a modo de encadenamiento de bloque, inicializado por un vector de inicialización generado en función de al menos un bloque en al menos una de cualquiera de las secuencias de bloques de los datos desaleatorizados obtenidos por desaleatorización de una secuencia precedente de bloques aleatorizados en la unidad.
\vskip1.000000\baselineskip
- 18. Método según la reivindicación 17, donde el vector de inicialización se genera aplicando una operación criptográfica (D_{k}), preferiblemente la cifra de descifrado, en un vector basado en al menos un vector independiente de cualquier bloque en cualquier bloque precedente de datos desaleatorizados obtenibles por desaleatorización de una secuencia precedente de bloques de datos cifrados en la unidad.
- 19. Sistema para desaleatorizar un flujo de datos aleatorizados para formar un flujo de datos, que incluye:una entrada para recibir el flujo de datos aleatorizados en forma de sucesión de secuencias (44, 45) de bloques (C_{i}) de datos aleatorizados, yuna disposición del procesador para desaleatorizar cada secuencia (44, 45) de bloques (C_{i}) de datos aleatorizados para formar una secuencia asociada (46, 47) de bloques de datos desaleatorizados, usando una cifra de descifrado (DK) en un modo de encadenamiento inverso, donde para desaleatorizar una secuencia (44, 45) de bloques de datos aleatorizados,se obtiene un bloque final (P_{3}, P_{N}) de datos desaleatorizados en la secuencia (46, 47) aplicando la cifra de descifrado (D_{k}) a un bloque final (C_{3}, C_{N}) en la secuencia asociada (44, 45) de bloques de datos aleatorizados y aplicando un operador que tiene como operando al menos el resultado de la cifra de descifrado (D_{k}) y un vector de inicialización (IV_{3}, IV_{N}), y donde cada bloque precedente de datos desaleatorizados en la secuencia (46, 47) se obtiene aplicando la cifra de descifrado a un bloque en la secuencia de bloques de datos aleatorizados en una posición correspondiente y aplicando un operador que tiene como operando al menos el resultado de la cifra de descifrado y un bloque de datos aleatorizados en la posición siguiente en la secuencia (44, 45) de bloques de datos aleatorizados,caracterizado por el hecho de que,el sistema se configura, para una sucesión de secuencias (44, 45) de bloques de datos aleatorizados incluidas en una unidad (36) de datos del flujo de datos aleatorizados, para generar al menos un vector de inicialización (IV_{N}) usado para descodificar una secuencia (45) de bloques de datos aleatorizados en función de al menos un bloque de datos desaleatorizados en una secuencia de bloques de datos desaleatorizados obtenidos por desaleatorización de una secuencia precedente (44) de bloques de datos aleatorizados de la unidad (36).
\vskip1.000000\baselineskip
- 20. Sistema según la reivindicación 19, configurado para realizar un método según cualquiera de las reivindicaciones 11 a 18.
\newpage
- 21. Aparato para enviar y recibir datos, incluyendo un dispositivo (14) dispuesto para aplicar un método según cualquiera de las reivindicaciones 1 a 9 y un método según cualquiera de las reivindicaciones 11 a 18.
- 22. Programa informático comprendiendo un conjunto de instrucciones capaces, cuando se incorporan en una medio legible por máquina, de dirigir un sistema para procesar información para realizar un método según cualquiera de las reivindicaciones 1 a 9 o cualquiera de las reivindicaciones 11 a 18.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP05110495A EP1783948B1 (en) | 2005-11-08 | 2005-11-08 | Methods of scrambling and descrambling units of data |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2376818T3 true ES2376818T3 (es) | 2012-03-20 |
Family
ID=36204375
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES05110495T Expired - Lifetime ES2376818T3 (es) | 2005-11-08 | 2005-11-08 | Métodos de aleatorización y desaleatorización de unidades de datos. |
Country Status (16)
| Country | Link |
|---|---|
| US (1) | US8300812B2 (es) |
| EP (2) | EP2015506B1 (es) |
| JP (1) | JP4976107B2 (es) |
| KR (1) | KR101345569B1 (es) |
| CN (1) | CN1992589B (es) |
| AT (2) | ATE472212T1 (es) |
| AU (1) | AU2006235899B2 (es) |
| BR (1) | BRPI0604544A (es) |
| CA (1) | CA2567229C (es) |
| DE (2) | DE602005022001D1 (es) |
| ES (1) | ES2376818T3 (es) |
| MX (1) | MXPA06012926A (es) |
| MY (1) | MY146334A (es) |
| RU (1) | RU2439668C2 (es) |
| TW (1) | TW200835340A (es) |
| ZA (1) | ZA200608879B (es) |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8538012B2 (en) * | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
| EP2192773A1 (en) * | 2008-12-01 | 2010-06-02 | Irdeto Access B.V. | Content decryption device and encryption system using an additional key layer |
| KR101066661B1 (ko) * | 2009-10-27 | 2011-09-22 | 한국조폐공사 | 스마트 카드 데이터 암호화 방법 |
| US8938619B2 (en) | 2010-12-29 | 2015-01-20 | Adobe Systems Incorporated | System and method for decrypting content samples including distinct encryption chains |
| JP2013011702A (ja) * | 2011-06-28 | 2013-01-17 | Dainippon Printing Co Ltd | 暗号化方法、暗号化プログラム、暗号化装置、復号方法、復号プログラム、復号装置 |
| US9038194B2 (en) * | 2011-11-30 | 2015-05-19 | Red Hat, Inc. | Client-side encryption in a distributed environment |
| US8879731B2 (en) * | 2011-12-02 | 2014-11-04 | Adobe Systems Incorporated | Binding of protected video content to video player with block cipher hash |
| US8903088B2 (en) | 2011-12-02 | 2014-12-02 | Adobe Systems Incorporated | Binding of protected video content to video player with encryption key |
| CN104335522A (zh) * | 2012-03-21 | 2015-02-04 | 爱迪德加拿大公司 | 用于链变换的方法和系统 |
| US9425959B1 (en) * | 2012-10-03 | 2016-08-23 | Altera Corporation | Security variable scrambling |
| US9064318B2 (en) | 2012-10-25 | 2015-06-23 | Adobe Systems Incorporated | Image matting and alpha value techniques |
| US9355649B2 (en) | 2012-11-13 | 2016-05-31 | Adobe Systems Incorporated | Sound alignment using timing information |
| US9201580B2 (en) | 2012-11-13 | 2015-12-01 | Adobe Systems Incorporated | Sound alignment user interface |
| US10638221B2 (en) | 2012-11-13 | 2020-04-28 | Adobe Inc. | Time interval sound alignment |
| US9076205B2 (en) | 2012-11-19 | 2015-07-07 | Adobe Systems Incorporated | Edge direction and curve based image de-blurring |
| US10249321B2 (en) | 2012-11-20 | 2019-04-02 | Adobe Inc. | Sound rate modification |
| US8897588B2 (en) | 2012-11-20 | 2014-11-25 | Adobe Systems Incorporated | Data-driven edge-based image de-blurring |
| US9451304B2 (en) | 2012-11-29 | 2016-09-20 | Adobe Systems Incorporated | Sound feature priority alignment |
| US9135710B2 (en) | 2012-11-30 | 2015-09-15 | Adobe Systems Incorporated | Depth map stereo correspondence techniques |
| US10455219B2 (en) | 2012-11-30 | 2019-10-22 | Adobe Inc. | Stereo correspondence and depth sensors |
| US9208547B2 (en) | 2012-12-19 | 2015-12-08 | Adobe Systems Incorporated | Stereo correspondence smoothness tool |
| US10249052B2 (en) | 2012-12-19 | 2019-04-02 | Adobe Systems Incorporated | Stereo correspondence model fitting |
| US9214026B2 (en) | 2012-12-20 | 2015-12-15 | Adobe Systems Incorporated | Belief propagation and affinity measures |
| CN104637039B (zh) * | 2013-11-07 | 2020-07-07 | 深圳市腾讯计算机系统有限公司 | 一种图片处理的方法及装置 |
| US9386067B2 (en) * | 2013-12-30 | 2016-07-05 | Sonic Ip, Inc. | Systems and methods for playing adaptive bitrate streaming content by multicast |
| TWI554908B (zh) | 2015-11-03 | 2016-10-21 | 澧達科技股份有限公司 | 資料加密系統 |
| SG10202010720VA (en) * | 2016-04-29 | 2020-12-30 | Nchain Holdings Ltd | Implementing logic gate functionality using a blockchain |
| US11330465B2 (en) | 2016-05-11 | 2022-05-10 | Huawei Technologies Co., Ltd. | Method and apparatus for indicating control information in a wireless frame |
| JP7198012B2 (ja) * | 2018-07-31 | 2022-12-28 | キヤノン株式会社 | 通信装置、制御方法、及びプログラム |
| EP4000294B1 (en) * | 2019-07-16 | 2024-12-11 | Nokia Technologies Oy | Apparatus, method, and computer program for scrambling a transport blocked based on whether a previous transport block was successfully received |
| US11646804B2 (en) | 2019-08-06 | 2023-05-09 | John C. S. Koo | Light-based data encoding and/or decoding device |
| CN111031322B (zh) * | 2019-10-24 | 2021-09-28 | 五邑大学 | 自同步混沌流密码的bmp图像加解密方法和设备 |
| CN114095153B (zh) * | 2020-08-05 | 2024-12-17 | 迈络思科技有限公司 | 密码数据通信装置 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| NL9301784A (nl) | 1993-10-14 | 1995-05-01 | Irdeto Bv | Systeem voor het versleutelen en ontsleutelen van digitale informatie. |
| US5673319A (en) * | 1995-02-06 | 1997-09-30 | International Business Machines Corporation | Block cipher mode of operation for secure, length-preserving encryption |
| RU2103829C1 (ru) * | 1997-04-02 | 1998-01-27 | Государственное унитарное предприятие "Специализированный центр программных систем "Спектр" | Способ шифрования информации, представленной двоичным кодом |
| US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
| US6055316A (en) * | 1997-12-26 | 2000-04-25 | Sun Microsystems, Inc. | System and method for deriving an appropriate initialization vector for secure communications |
| JP2002287619A (ja) * | 2001-03-23 | 2002-10-04 | Victor Co Of Japan Ltd | 記録再生装置 |
| US7099469B2 (en) * | 2001-10-17 | 2006-08-29 | Motorola, Inc. | Method of scrambling and descrambling data in a communication system |
| BR0207375A (pt) * | 2001-12-19 | 2004-06-15 | Irdeto Access Bv | Sistema de distribuição de conteúdo digital |
| US6950517B2 (en) * | 2002-07-24 | 2005-09-27 | Qualcomm, Inc. | Efficient encryption and authentication for data processing systems |
| US7471795B2 (en) * | 2003-09-12 | 2008-12-30 | Victor Company Of Japan, Ltd. | Information transmission system |
| JP2005167635A (ja) * | 2003-12-02 | 2005-06-23 | Ntt Docomo Inc | 装置、及び、データ送受信方法 |
-
2005
- 2005-11-08 DE DE602005022001T patent/DE602005022001D1/de not_active Expired - Lifetime
- 2005-11-08 DE DE602005025891T patent/DE602005025891D1/de not_active Expired - Lifetime
- 2005-11-08 AT AT08161104T patent/ATE472212T1/de not_active IP Right Cessation
- 2005-11-08 AT AT05110495T patent/ATE495600T1/de not_active IP Right Cessation
- 2005-11-08 ES ES05110495T patent/ES2376818T3/es not_active Expired - Lifetime
- 2005-11-08 EP EP08161104A patent/EP2015506B1/en not_active Expired - Lifetime
- 2005-11-08 EP EP05110495A patent/EP1783948B1/en not_active Expired - Lifetime
-
2006
- 2006-10-25 ZA ZA200608879A patent/ZA200608879B/xx unknown
- 2006-10-30 MY MYPI20064400A patent/MY146334A/en unknown
- 2006-11-02 US US11/592,788 patent/US8300812B2/en not_active Expired - Fee Related
- 2006-11-07 JP JP2006301913A patent/JP4976107B2/ja not_active Expired - Fee Related
- 2006-11-07 RU RU2006139126/08A patent/RU2439668C2/ru not_active IP Right Cessation
- 2006-11-07 MX MXPA06012926A patent/MXPA06012926A/es active IP Right Grant
- 2006-11-07 AU AU2006235899A patent/AU2006235899B2/en not_active Ceased
- 2006-11-07 CA CA2567229A patent/CA2567229C/en not_active Expired - Fee Related
- 2006-11-08 BR BRPI0604544-8A patent/BRPI0604544A/pt not_active IP Right Cessation
- 2006-11-08 KR KR1020060110039A patent/KR101345569B1/ko not_active Expired - Fee Related
- 2006-11-08 CN CN2006101439774A patent/CN1992589B/zh not_active Expired - Fee Related
-
2007
- 2007-02-13 TW TW095139089A patent/TW200835340A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| ATE495600T1 (de) | 2011-01-15 |
| EP2015506B1 (en) | 2010-06-23 |
| MXPA06012926A (es) | 2007-05-07 |
| KR101345569B1 (ko) | 2014-01-15 |
| CN1992589A (zh) | 2007-07-04 |
| RU2439668C2 (ru) | 2012-01-10 |
| EP2015506A1 (en) | 2009-01-14 |
| JP4976107B2 (ja) | 2012-07-18 |
| US20080025509A1 (en) | 2008-01-31 |
| MY146334A (en) | 2012-07-31 |
| DE602005025891D1 (de) | 2011-02-24 |
| ZA200608879B (en) | 2009-02-25 |
| EP1783948B1 (en) | 2011-01-12 |
| HK1104134A1 (en) | 2008-01-04 |
| EP1783948A1 (en) | 2007-05-09 |
| RU2006139126A (ru) | 2008-05-20 |
| CA2567229A1 (en) | 2007-05-08 |
| CA2567229C (en) | 2015-01-06 |
| ATE472212T1 (de) | 2010-07-15 |
| US8300812B2 (en) | 2012-10-30 |
| TW200835340A (en) | 2008-08-16 |
| KR20070049592A (ko) | 2007-05-11 |
| CN1992589B (zh) | 2011-09-07 |
| BRPI0604544A (pt) | 2007-08-28 |
| JP2007133400A (ja) | 2007-05-31 |
| AU2006235899B2 (en) | 2011-01-27 |
| DE602005022001D1 (de) | 2010-08-05 |
| AU2006235899A1 (en) | 2007-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2376818T3 (es) | Métodos de aleatorización y desaleatorización de unidades de datos. | |
| ES2337920T3 (es) | Metodo de descifrado de un objeto de datos de contenido cifrado. | |
| US9706259B2 (en) | Elementary bitstream cryptographic material transport systems and methods | |
| CN103329500A (zh) | 控制字保护 | |
| JP2005505170A (ja) | 条件付アクセスモジュールと、集積受信機およびデコーダの対動作を制御する方法および装置 | |
| KR20110096056A (ko) | 추가적인 키 층들을 이용하는 콘텐트 복호화 디바이스 및 암호화 시스템 | |
| WO2011120901A1 (en) | Secure descrambling of an audio / video data stream | |
| EP2487829A1 (en) | Method and device for generating control words | |
| EP2403244A1 (en) | Secure encryption method for electronic content distribution | |
| CN101204037A (zh) | 用于有效加密与解密drm权利对象的系统和方法 | |
| HK1104134B (en) | Methods of scrambling and descrambling units of data | |
| CN105446926A (zh) | 用于执行传输i/o的usb接口 |