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 PDF

Info

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
Application number
ES05110495T
Other languages
English (en)
Inventor
Antonius Johannes Petrus Maria Van De Ven
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Irdeto Access BV
Original Assignee
Irdeto Access BV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Irdeto Access BV filed Critical Irdeto Access BV
Application granted granted Critical
Publication of ES2376818T3 publication Critical patent/ES2376818T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/4405Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/4408Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/601Broadcast 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).
1
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.
En el lado de receptor, los bloques de datos originales se obtienen mediante el algoritmo de descodificación D de la siguiente manera:
2
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:
3
En general, los bloques básicos codificados se determinan de la manera siguiente:
4
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:
5
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.
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:
6
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:
7
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)

  1. \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, y
    y 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. 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. 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. 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. 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. 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. 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. 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. 9. Sistema de aleatorización de un flujo de datos, que incluye
    una 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. 10. Sistema según la reivindicación 9, configurado para ejecutar un método según cualquiera de las reivindicaciones 1 a 8.
  11. 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, y
    desaleatorizar 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. 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. 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. 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. 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. 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, y
    un 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. 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. 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. 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, y
    una 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. 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. 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. 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.
ES05110495T 2005-11-08 2005-11-08 Métodos de aleatorización y desaleatorización de unidades de datos. Expired - Lifetime ES2376818T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 装置、及び、データ送受信方法

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接口