ES2557008T3 - Procedimiento de detección de un error de lectura de un dato - Google Patents

Procedimiento de detección de un error de lectura de un dato Download PDF

Info

Publication number
ES2557008T3
ES2557008T3 ES12791783.9T ES12791783T ES2557008T3 ES 2557008 T3 ES2557008 T3 ES 2557008T3 ES 12791783 T ES12791783 T ES 12791783T ES 2557008 T3 ES2557008 T3 ES 2557008T3
Authority
ES
Spain
Prior art keywords
data
copies
values
memory
value
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.)
Active
Application number
ES12791783.9T
Other languages
English (en)
Inventor
Emmanuel Barau
Patrick Soquet
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.)
Viaccess SAS
Original Assignee
Viaccess SAS
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 Viaccess SAS filed Critical Viaccess SAS
Application granted granted Critical
Publication of ES2557008T3 publication Critical patent/ES2557008T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Procedimiento de detección de un error de lectura de un dato, incluyendo este procedimiento: a) la grabación (50) de una primera copia del dato en una primera zona de una memoria electrónica y la grabación de una segunda copia del dato en una segunda zona de una memoria electrónica, en respuesta a una solicitud de lectura del dato; b) la lectura (68) de los valores de la primera y segunda copias del dato respectivamente en la primera y segunda zonas, c) la comparación (74) de los valores leídos de la primera y segunda copias del dato, d) si los valores leídos de la primera y segunda copias son idénticos, entonces no es detectado ningún error de lectura de este dato, caracterizado por que: e) si los valores leídos de la primera y segunda copias son diferentes, entonces las operaciones b) y c) precedentes son reiteradas (78, 80), y luego f) si los valores leídos durante la operación e) son idénticos, entonces un error de lectura de este dato es detectado (82) y, si no, ningún error de lectura de este dato es detectado.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Procedimiento de deteccion de un error de lectura de un dato
El invento se refiere a un procedimiento de deteccion de un error de lectura de un dato y a un procedimiento de proteccion de un procesador de seguridad. El invento se refiere igualmente a un soporte de grabacion de informaciones asf como a un procesador de seguridad para la puesta en practica de estos procedimientos.
Los procedimientos conocidos detectan un error de lectura realizando las operaciones siguientes:
a) la grabacion de una primera copia del dato en una primera zona de una memoria electronica y la grabacion de una segunda copia del dato en una segunda zona de una memoria electronica,
en respuesta a una solicitud de lectura del dato;
b) la lectura de los valores de la primera y segunda copias del dato respectivamente en la primera y segunda zonas,
c) la comparacion de los valores lefdos de la primera y segunda copias del dato,
d) si los valores lefdos de la primera y segunda copias son identicos, entonces no es detectado ningun error de lectura de este dato.
Una zona memoria o una zona de memoria es una memoria electronica o una porcion de una memoria electronica dividida en varios bloques de memorias. Cada bloque de memoria esta destinado a contener un dato. Tfpicamente, un bloque de memoria es una pagina o un multiplo entero de una pagina. Una pagina es el menor numero de octetos que pueden ser escrito en una sola operacion de escritura. Asf, incluso si el dato grabado en una pagina tiene un tamano menor que la pagina, se considera como que la totalidad de la pagina esta ocupada por este dato y no es posible grabar en esta pagina un dato suplementario.
El estado de la tecnica relativo a estos procedimientos conocidos esta por ejemplo divulgado en las solicitudes de patentes siguientes: GB 2 404 261, US 2006 053308, WO 2008 23297, US 2007 0033417, US 2005 0160310, US 2008/140962A1 y US 2009/113546A1.
Los procedimientos conocidos se dirigen unicamente a protegerse de las consecuencias de un fallo de un bloque de memoria. Asf, si los valores de la primera y segunda copias son diferentes, entonces un error es senalado y se disparan medidas correctivas. Una de las medidas correctivas clasicas consiste en corregir el valor del dato grabado. Sin embargo, estos procedimientos detectan tambien un error de lectura del dato. En el caso de un error de lectura de datos, la ausencia de igualdad entre los valores de la primera y segunda copias del dato no proviene de una corrupcion de los datos grabados en las zonas de memorias sino de un error durante el proceso de lectura de estos datos. Aqrn, se habla de corrupcion o de datos corrompidos cuando el valor ffsicamente grabado de este dato es erroneo a causa de un fallo de un bloque de memoria. Asf, aunque los valores grabados de la primera y segunda copias sean perfectamente identicos, durante la operacion c) anterior, se constata que los valores son diferentes. Por ejemplo, un error de lectura puede ser provocado por una perturbacion de las senales del bus de lectura o por una corrupcion de los datos copiados en una memoria no volatil despues de haber sido lefdos en una zona de memoria no volatil.
Los procedimientos conocidos no hacen distincion entre estos dos tipos de error y lanzan sistematicamente, despues de la deteccion de un error, la misma medida correctiva. Tfpicamente, la medida correctiva consiste en corregir el valor erroneo. Ahora bien, en el caso de un error de lectura, tal correccion es inutil y se traduce por un desperdicio de recursos informaticos tales como del tiempo de un microprocesador que pone en practica este procedimiento.
En el dominio de los procesadores de seguridad, existen igualmente otra buena razon para distinguir estos dos tipos de error. Un procesador de seguridad es un procesador electronico que esta reforzado para ser lo mas resistente posible frente a ataques de piratas informaticos. Es por tanto generalmente utilizado para almacenar datos confidenciales. Ahora bien, un ataque clasico contra un procesador de seguridad consiste en corromper los datos grabados para provocar un comportamiento no previsto del procesador de seguridad que puede revelar la totalidad o parte de los datos confidenciales que contiene. Sin embargo, es mas simple para los piratas informaticos provocar un error de lectura que corromper los datos grabados. Cuando el pirata informatico provoca voluntariamente errores de lectura utilizando picos de tension o un haz laser u otros, se dice que el procesador de seguridad es vfctima de un ataque en lectura. Asf, en el contexto de los procesadores de seguridad, un error de lectura permite detectar de un modo bastante seguro una tentativa de criptoanalisis mientras que un fallo de un bloque de memoria puede ser un fallo accidental causado, por ejemplo, por el envejecimiento.
El invento pretende remediar este inconveniente. Tiene pues por objeto un procedimiento de deteccion de un error de lectura conforme a la reivindicacion 1.
El procedimiento anterior permite distinguir, y por tanto detectar, un error de lectura causado por la corrupcion de los datos grabados. En efecto, durante la segunda iteracion de las operaciones b) y c) anteriores, los valores de la primera y
5
10
15
20
25
30
35
40
45
segunda copias son necesariamente diferentes si al menos uno de estos valores esta corrompido. A la inversa, la identidad de estos valores durante la segunda iteracion de las operaciones b) y c) identifica de manera cierta un error de lectura del dato.
A partir de entonces, es posible poner en practica medidas apropiadas diferentes para responder a un error de lectura o a una corrupcion de los datos grabados. Por ejemplo, el hecho de detectar un error de lectura permite evitar poner en practica inutilmente medidas que pretenden corregir los datos grabados mientras que estos no estan corrompidos. Ademas, en el caso de un procesador de seguridad, la deteccion de un error del dfa permite disparar la puesta en practica de contramedidas para impedir el criptoanalisis.
Los modos de realizacion de este procedimiento de deteccion pueden incluir una o varias de las caracterfsticas de las reivindicaciones dependientes.
Los modos de realizacion del procedimiento de deteccion anterior presentan ademas las ventajas siguientes,
- la utilizacion de un codigo de correccion de error permite restaurar el funcionamiento del procedimiento de deteccion de error de lectura incluso despues de un fallo de un bloque de memoria,
- la utilizacion del codigo de correccion de error permite restaurar el funcionamiento del procedimiento de deteccion de error de lectura incluso despues de que los valores de la primera y segunda copias del dato hayan sido corrompidos limitando al mismo tiempo el numero de codigos de correccion de error grabados,
- la eleccion de bloques de memorias para grabar en ellos un nuevo dato unicamente entre los bloques de memorias no memorizados como defectuosos permite evitar reutilizar bloques de memorias defectuosos para la grabacion de datos,
- la grabacion de un valor transformado en la primera zona de memoria diferente del valor grabado en la segunda zona de memoria permite aumentar la probabilidad de que los valores lefdos para la primera y segunda copias sean diferentes en caso de ataques en lectura.
El invento tiene igualmente por objeto un procedimiento de proteccion de un procesador de seguridad contra un ataque en lectura conforme a la reivindicacion 6.
El invento tiene igualmente por objeto un soporte de grabacion de informaciones que incluyen instrucciones para la puesta en practica del procedimiento de deteccion o de proteccion anterior cuando estas instrucciones son ejecutadas por un calculador electronico.
Finalmente, el invento tiene igualmente por objeto un procesador de seguridad conforme a la reivindicacion 8.
Los modos de realizacion de este procesador de seguridad pueden incluir una o varias de las caracterfsticas de las reivindicaciones dependientes.
El invento sera mejor comprendido con la lectura de la descripcion que va a seguir, dada unicamente a tftulo de ejemplo no limitativo y hecha con referencia a los dibujos en los que:
La fig. 1 es una ilustracion esquematica de un terminal de recepcion de contenidos multimedia enredados asociado a un procesador de seguridad.
La fig. 2 es una ilustracion esquematica de una organizacion de una memoria del procesador de seguridad de la fig. 1.
La fig. 3 es un organigrama de una fase de escritura de datos en la memoria de la fig. 2.
La fig. 4 es un organigrama de un procedimiento de proteccion del procesador de seguridad de la fig. 1.
La fig. 5 es un organigrama de otro modo de realizacion de un procedimiento de proteccion del procesador de seguridad de la fig. 1.
En estas figuras las mismas referencias son utilizadas para designar los mismos elementos.
En la continuacion de esta descripcion, las caracterfsticas y funciones bien conocidas por el experto en la tecnica no se han descrito en detalle. Ademas, la terminologfa utilizada es la de los sistemas de acceso condicionales a contenidos multimedia. Para mas informaciones sobre esta terminologfa, el lector puede dirigirse al documento siguiente:
« Functional Model of Conditional Access System », EBU Review, Technical European Broadcasting Union, Brussels, BE, n° 266, 21 de diciembre de 1995.
El invento se aplica en particular al dominio del control de acceso para el suministro de contenidos multimedia de pago tales como la television de pago.
Es conocido el hecho de difundir varios contenidos multimedia al mismo tiempo. Para ello, cada contenido multimedia es
3
5
10
15
20
25
30
35
40
45
50
difundido sobre su propio canal o « cadena ». Un canal corresponde tipicamente a una cadena de television.
En esta descripcion, se designa mas espedficamente por « contenido multimedia » un contenido de audio y/o visual destinado a ser restituido en una forma directamente perceptible y comprensible por un ser humano. Tfpicamente, un contenido multimedia corresponde a una sucesion de imagenes que forman una pelfcula, una emision de television o publicidad. Un contenido multimedia puede igualmente ser un contenido interactivo tal como un juego.
Para asegurar y someter la visualizacion de los contenidos multimedia a ciertas condiciones, como la suscripcion de un abono de pago por ejemplo, los contenidos multimedia son difundidos en forma enredada y no libre.
Mas precisamente, cada contenido multimedia es dividido en una sucesion de criptopenodos. Durante la duracion de un criptopenodo, las condiciones de acceso al contenido multimedia enredado permanecen sin cambios. En particular, durante un criptopenodo, el contenido multimedia es enredado con la misma palabra de control. Generalmente, la palabra de control vana de un criptopenodo al otro.
Ademas, la palabra de control es generalmente especfica de un contenido multimedia, siendo este ultimo extrafdo aleatoria o pseudo-aleatoriamente.
Aqrn los terminos « enredar » y « cifrar » son considerados como sinonimos. Lo mismo sucede para los terminos « desenredar » y « descifrar ».
El contenido multimedia libre corresponde al contenido multimedia antes de que este sea enredado. Esto puede ser hecho directamente comprensible por un ser humano sin haber recurrido a operaciones de desenredado y sin que su visualizacion sea sometida a ciertas condiciones.
Las palabras de control necesarios para desenredar los contenidos multimedia son transmitidas de manera sincronizada con los contenidos multimedia. Para ello, por ejemplo, las palabras de control son multiplexadas con el contenido multimedia enredado.
Para asegurar la transmision de las palabras de control, estas son transmitidas a los terminales en forma de criptogramas contenidos en mensajes ECM (Entitlement Control Message). Se designa aqrn por « criptograma » una informacion insuficiente por sf sola para encontrar la palabra de control libre. Asf, si la transmision de la palabra de control es interceptada, tan solo el conocimiento del criptograma de la palabra de control no permite encontrar la palabra de control que permita desenredar el contenido multimedia.
Para encontrar la palabra de control libre, es decir la palabra de control que permite desenredar directamente el contenido multimedia, esta debe ser combinada con una informacion secreta. Por ejemplo, el criptograma de la palabra de control es obtenido cifrando la palabra de control libre con una clave criptografica. En este caso, la informacion secreta es la clave criptografica que permite descifrar el criptograma. El criptograma de la palabra de control puede tambien ser una referencia a una palabra de control almacenada en una tabla que contiene una multitud de palabras de control posibles. En este caso, la informacion secreta es la tabla que asocia a cada referencia una palabra de control libre.
La informacion secreta debe ser preservada en lugar seguro. Para ello, se ha propuesto ya almacenar la informacion secreta en procesadores de seguridad tales como tarjetas con chip directamente conectadas a cada uno de los terminales.
La fig. 1 representa un terminal 8 destinado a ser utilizado en tal sistema de control de acceso condicional. El terminal 8 desenreda un canal para presentar libre sobre un dispositivo de presentacion.
El terminal 8 comprende un receptor 10 de contenidos multimedia difundidos. Este receptor 10 esta conectado a la entrada de un desmultiplexor 12 que transmite el contenido multimedia a un dispositivo de desenredar 14 y los mensajes ECM y EMM (Entitlement Management Message) a un procesador de seguridad 16.
El dispositivo de desenredar 14 desenreda el contenido multimedia enredado a partir de la palabra de control transmitida por el procesador 16. El contenido multimedia desenredado es transmitido a un descodificador 18 que lo descodifica. El contenido multimedia descomprimido o descodificado es transmitido a una tarjeta grafica 20 que pilota la presentacion de este contenido multimedia sobre un dispositivo de presentacion 22 equipado con una pantalla 24. El dispositivo de presentacion 22 presenta en abierto el contenido multimedia sobre la pantalla 24. Por ejemplo, el dispositivo de presentacion 22 es una television, un ordenador o un telefono fijo o movil. Aqrn, el dispositivo de presentacion 22 es una television.
Tfpicamente, la interfaz entre el terminal 8 y el procesador 16 comprende un lector 26 gestionado por un modulo 28 de control de acceso. Aqrn, el lector 26 es un lector de tarjetas con chip. El modulo 28 gestiona en particular:
- la transmision de los mensajes ECM y EMM desmultiplexados al procesador 16, y
- la recepcion de las palabras de control descifradas por el procesador 16 y su transmision al dispositivo para desenredar
5
10
15
20
25
30
35
40
45
El procesador 16 trata informaciones confidenciales tales como claves criptograficas o tftulos de acceso a los contenidos multimedia. Para preservar la confidencialidad de estas informaciones, esta concebido ser lo mas robusto posible frente a tentativas de ataques realizados por piratas informaticos. Es por tanto mas robusto frente a estos ataques que los otros componentes del terminal 8. En particular, las memorias que incluye son unicamente accesibles y utilizadas por este procesador 16. Aqrn, el procesador 16 es el procesador de seguridad de una tarjeta con chip 30.
El procesador 16 comprende en particular un calculador electronico 32 programable conectado por medio de un bus 34 de transmision de informaciones a una memoria electronica volatil 36 y a una memoria electronica no volatil 38.
La memoria 36 es tfpicamente conocida bajo el acronimo de RAM (Random Access Memory) ("Memoria de Acceso Aleatorio"). La memoria 38 conserva los datos que son grabados incluso en ausencia de alimentacion del procesador 16. Ademas la memoria 38 es una memoria sobre la que se puede reescribir. Tfpicamente, se trata de una EEPROM (Electrically Erasable Programmable Read Only Memory) ("Memoria de Solo Lectura Programable y que se Puede Borrar Electricamente") o de una memoria flash. La memoria 38 contienen informaciones confidenciales necesarias para el desenredado de los contenidos multimedia. Aqrn, contiene tambien las instrucciones necesarias para la ejecucion del procedimiento de la fig. 4 o 5.
La fig. 2 representa mas en detalle diferentes zonas de la memoria 38. Aqrn, la memoria 38 comprende las zonas de memoria siguientes:
- una zona 42 de control,
- una primera zona 44 de grabacion de datos, y
- una segunda zona 46 de grabacion de datos.
Cada zona de memoria esta definida por una direccion de comienzo y una direccion de final. Aqrn cada zona ocupa una region de direcciones contiguas en la memoria 38. Cada zona esta dividida en varios bloques de memorias. Por ejemplo, las zonas 42, 44 y 46 contienen cada una mas de 100 o 400 bloques de memorias. El tamano de cada bloque de memoria es de varios octetos. Aqrn, los bloques de memorias de estas zonas tienen todos el mismo tamano. Por ejemplo, este tamano es superior o igual a 64o o 128o. Los tamanos de las zonas 44 y 46 son identicos.
La zona 44 esta dividida en P bloques de memorias B-ij del mismo tamano donde el mdice j identifica la posicion del comienzo del bloque B-y con relacion a la direccion de comienzo de la zona 44.
La zona 46 esta igualmente dividida en P bloques de memorias B2j del mismo tamano de los bloques Bj El mdice j identifica la posicion del comienzo del bloque B2j con relacion a la direccion de comienzo de la zona 46. Aqrn, para simplificar la realizacion, el desplazamiento entre el comienzo del bloque B2j y la direccion de comienzo de la zona 46 es identico al desplazamiento que existe entre el comienzo del bloque B-y y la direccion del comienzo de la zona 44. En estas condiciones, los bloques B-y y B2j son llamados « emparejados ».
La zona 42 comprende 2P bloques de memorias CBy de los mismos tamanos. Cada bloque CBy esta asociado a un bloque Bij de la zona 44 o 46. El mdice i toma el valor « 1 » para identificar la zona 44 y el valor « 2 » para identificar la zona 46.
Aqrn, cada bloque CBij comprende en particular las informaciones siguientes:
- la indicacion de si el bloque Bij asociado esta libre, es decir que puede ser utilizado para grabar un nuevo dato,
- eventualmente, la indicacion del bloque de memoria siguiente unido a este bloque Bij o la indicacion de que este bloque Bij es el ultimo bloque de una cadena de bloques unidos,
- un codigo CDij de deteccion de error,
- una mascara MRij de recubrimiento, y
- una marca MDij que indica si el bloque Bij es defectuoso o no.
El codigo CDij es construido unicamente a partir del valor del dato obtenido en el bloque Bij. Este codigo CDij anade suficiente redundancia al dato contenido en el bloque Bij para que sea posible detectar uno o varios bits erroneos en el valor del dato grabado en este bloque.
Por ejemplo, el codigo CDij es un control de redundancia dclica mas conocido bajo el acronimo CRC (Cyclic Redundancy Check) ("Comprobacion de Redundancia Crolica"). Por ejemplo el codigo CDij es un CRC 32.
La mascara MRij de recubrimiento es un valor utilizado para transformar de manera irreversible el valor Dij del dato
5
5
10
15
20
25
30
35
40
45
grabado en el bloque By en un valor transformado D'y que esta grabado en este bloque By. Esta transformacion es reversible de manera que, a partir del valor de la mascara dMRy y del valor transformado D'y, es posible encontrar el valor Dy del dato.
La marca MDy permiten memorizar si el bloque By es defectuoso o no. Un bloque By defectuoso es por ejemplo un bloque de memoria que incluye bits de informaciones cuyos valores no pueden ya ser reinscritos o modificados, lo que entrana la aparicion de errores en el valor grabado en este bloque de memoria.
La zona 42 comprende igualmente codigos correctores de error CCo, CCi y CC2. El codigo CCo es construido a partir del contenido de las zonas 44 y 46. Anade suficiente redundancia al contenido memorizado en las zonas 44 y 46 para que sea posible no solamente detectar sino igualmente por recibir uno o varios bits erroneos de los datos grabados en estas zonas 44 y 46. De manera similar, los codigos CCi y CC2 anaden suficiente redundancia al contenido, respectivamente, de las zonas 44 y 46, para permitir corregir k bits erroneos en las zonas, respectivamente, 44 y 46, donde k es un numero entero natural superior o igual a uno y, de preferencia, superior o igual a cinco o diez. Contrariamente al codigo CCo los codigos CCi y CC2 permiten unicamente corregir bits erroneos, respectivamente, en las zonas 44 y 46. Por ejemplo, estos codigos de correccion de error son codigos de Reed Solomon.
La fig. 3 representa una fase 50 de grabacion de un dato confidencial en la memoria 38. El dato confidencial es tfpicamente una clave criptografica para descifrar palabras de control o tftulos de acceso que autorizan o no el acceso y el desenredado de contenidos multimedia.
Si el tamano del dato es superior al tamano de un bloque de memoria, entonces este es dividido en primer lugar en varias porciones de tamano inferior cada una al tamano de un bloque de memoria para llegar al caso de un dato cuyo tamano es inferior al tamano de un bloque de memoria. En este caso, las diferentes porciones del mismo dato son por ejemplo encadenadas unas con otras indicando en cada bloque BCy la direccion del bloque de memoria siguiente.
Inicialmente, durante una operacion 52, el calculador 32 elige entre los diferentes bloques de memorias de las zonas 44 y 46 un par de bloques de memorias By que satisfagan las condiciones siguientes:
- los bloques Bij y B2J estan emparejados,
- los bloques Bij y B2J son libres, y
- los bloques Bij y B2J no estan marcados como defectuosos.
El calculado 32 verifica si los bloques Bij y B2J elegidos son libres y no defectuosos a partir de las informaciones contenidas en los bloques BCij y BC2J de la zona de control 42.
A continuacion, el valor del dato a grabar en los bloques Bij y B2J es denominado, respectivamente, Dij y D2J. Estos valores son identicos.
Durante una operacion 54, el calculador 32 calcula el nuevo valor de los codigos CDij y CD2J que permiten detectar un error, respectivamente, en los valores Dij y D2J. Durante esta operacion 54, el calculador 32 calcula igualmente los nuevos valores de los codigos CC0, CCi y CC2 de correccion de error y los graba en la zona 42.
Los nuevos valores de los codigos CDij y CD2J son grabados, respectivamente, en los bloques BCij y BC2J.
El calculador 32 registra igualmente en sus bloques BCij y BC2J una indicacion segun la cual los bloques de memorias Bij y B2J ya no estan libres.
A continuacion, durante una operacion 56, los valores Dij y D2J son transformados, respectivamente, en valor D'ij y D'2j en funcion del valor de las mascaras, respectivamente, MRij y MR2J. El valor de las mascaras MRij y MR2J esta contenido en los bloques BCij y BC2J. Los valores de las mascaras MRij y MR2J son diferentes de manera que los valores transformados D'ij y D'2j sean diferentes.
Por ejemplo, la transformacion es realizada con ayuda de la relacion siguiente:
D'y = Dy © MRy, donde « © » es la operacion XOR.
A continuacion, durante una operacion 58, los valores D'ij y D'2j son ffsicamente grabados, respectivamente, en los bloques de memorias Bij y B2J. La fase 50 se termina entonces.
Durante su utilizacion, el procesador i6 ejecuta un programa por ejemplo para descifrar palabras de control. Durante la ejecucion de este programa, instrucciones requieren la lectura de un dato grabado en la memoria 38, tal como una clave criptografica o un tftulo de acceso. El procedimiento de la fig. 4 es entonces ejecutado.
Inicialmente, durante una operacion 66, la direccion del bloque de memoria a leer es grabada en un registro no volatil de direccion de lectura. Por ejemplo, este registro esta contenido en la memoria 38.
5
10
15
20
25
30
35
40
45
50
A continuacion, se precede a una operacion 68 de lectura del dato en la memoria 38 en la direccion especificada. Mas precisamente, durante una operacion 70, los valores D'1j y D'2j contenidos en los bloques de memorias emparejados, respectivamente, Bij y B2j son lefdos.
A continuacion, durante una operacion 72, el calculador 32 aplica la transformacion inversa a la aplicada durante la operacion 56 del procedimiento de la fig. 3. Para ello, utiliza los valores de las mascaras MRij y MR2j. los valores obtenidos por aplicacion de esta transformacion inversa para los valores D'ij y D'2j son denominados en lo que sigue, respectivamente, valores Dij y D2j. Se observara que en caso de error de lectura o de corrupcion de los datos grabados, los valores Dij y D2j no son necesariamente identicos a los valores Dij y D2j grabados durante la fase 50 de escritura.
Durante una operacion 74, los valores Dij y D2j lefdos son comparados. Si estos valores son iguales, entonces se procede a una operacion 76 durante la cual el programa ejecutado por el procesador i6 trata el valor Dij y prosigue su ejecucion normal. Por ejemplo, el calculador 32 descifra una palabra de control con ayuda del valor Dij. Durante la operacion 76, no se ha detectado ningun error de lectura. Ademas, durante la operacion 76, el registro de direccion de lectura es borrado.
A la inversa, si los valores Dij y D2j lefdos no son identicos, entonces el programa en curso de ejecucion es interrumpido y una rutina de verificacion es ejecutada por el calculador 32. Por ejemplo, el procesador de seguridad es reinicializado y durante la nueva puesta en marcha del procesador de seguridad, la rutina de verificacion es sistematicamente ejecutada si el registro de direccion de lectura no esta vado. La rutina de verificacion puede igualmente ser lanzada para una desviacion o confusion sobre error de la ejecucion del programa.
Una vez lanzada esta rutina de verificacion, durante una operacion 78, el calculador 32 procede a una nueva tentativa de lectura del dato grabado en la memoria 38. La nueva tentativa de lectura consiste en leer el dato correspondiente a la direccion grabada en el registro de direccion de lectura. La operacion 78 es por ejemplo identica a la operacion 68.
A continuacion, durante una operacion 80, el calculador procede a una nueva comparacion de los nuevos valores Dij y D2j lefdos durante la operacion 78.
Si esta vez, los valores Dij y D2j son identicos, durante una operacion 82, es detectado un error de lectura. En efecto, la diferencia entre los valores Dij y D2j lefdos durante la operacion 68 no proviene de una corrupcion de los datos grabados en la memoria 38. De hecho, la deteccion de un error de lectura indica en el caso de un procesador de seguridad, con una probabilidad muy grande, que la primera tentativa de lectura durante la operacion 68 ha fallado a causa de un ataque en lectura.
A partir de entonces, en respuesta, durante una operacion 84, el calculador 32 dispara una contramedida que limita el desenredado de los contenidos multimedia con ayuda del procesador i6. Tfpicamente, para ello el descifrado de las palabras de control es inhibido.
Mas precisamente, la contramedida puede ser una de las contramedidas siguientes:
- el borrado de los datos confidenciales contenidos en la memoria 38 tales como las claves criptograficas y los tftulos de acceso,
- el disparo de la autodestruccion del procesador i6 de manera que le haga definitivamente inutilizable, y
- la detencion del descifrado de las palabras de control temporalmente o definitivo.
Durante la operacion 84, si el procesador i6 es aun utilizable a pesar de la puesta en practica de una contramedida, el registro de direccion de lectura es borrado.
Si los valores Dij y D2j lefdos durante la operacion 78 son diferentes, entonces ello significa que los datos grabados estan ciertamente corrompidos. No se trata por tanto de un error de lectura.
En este caso, durante una operacion 86, el calculador 32 verificar con ayuda del codigo CDij si el valor Dij es erroneo.
Si el valor Dij no es erroneo, entonces se procede a una operacion 88 de grabacion del valor Dij en nuevos bloques de memorias emparejados de las zonas 44 y 46. Por ejemplo, la operacion 88 es realizada de manera similar a la fase 50 de escritura. A partir de entonces, es el valor grabado en estos nuevos bloques el que sera utilizado durante la proxima lectura del mismo dato.
A continuacion, durante una operacion 90, las marcas MDij y MD2j son actualizadas para indicar y memorizar que los bloques precedentes Bij y B2j son defectuosos. Aqrn, el bloque Bij es indicado como defectuoso mientras que el valor que estaba grabado en el era correcto. Ello permite conservar una gestion simple del emparejamiento de los bloques de memorias.
Durante la operacion 90, el registro de direccion de lectura es igualmente borrado. A continuacion, el valor Dij es tratado por el programa que prosigue su ejecucion por la operacion 76.
7
5
10
15
20
25
30
35
40
45
50
Si durante la operacion 86, el valor Dij es erroneo, entonces se procede a una operacion 92 de verificacion con ayuda del codigo CD2j sobre si el valor D2j es erroneo o correcto.
Si el dato D2j es correcto, entonces se procede a una operacion 94 identica a la operacion 88 salvo en que es el valor D2j el que es utilizado en lugar del valor Dij. La operacion 94 se continua igualmente por la operacion 90.
Si los valores Dij y D2j son erroneos, entonces, el calculador procede a una operacion 98 durante la cual efectua una primera tentativa de correccion de estos valores utilizando el codigo CCo. esta operacion 98 permite al calculador 32 corregir k bits erroneos repartidos en las zonas 44 y 46. Si hay menos de k bits erroneos, la correccion es entonces considerada como que ha tenido exito. En este caso, se obtienen los valores Dcij y Dc2j corregidos, respectivamente para los valores Dij y D2j.
En este caso, durante una operacion i00, el calculador 32 comparados valores Dcij y Dc2j.
Si los valores Dcij y Dc2j son identicos, durante una operacion i02, el valor Dcij es grabado en los nuevos bloques de memorias, respectivamente, de las zonas 44 y 46. Esta operacion es por ejemplo identica a la operacion 88 salvo en que es el valor Dcij el que es utilizado el lugar del valor Dij.
A continuacion, se procede a una operacion i04 durante la cual los bloques Bij y B2j son marcados como defectuosos. Esta operacion i04 es por ejemplo identica a la operacion 90. El procedimiento vuelve a continuacion a la operacion 76.
Si los valores Dcij y Dc2j son diferentes o si la correccion de error con el codigo CC0 no ha tenido exito, el calculador 32 procede a una operacion i08 durante la cual trata de corregir los datos de las zonas 44 con ayuda del codigo CCi. si la correccion tiene exito, el calculador 32 obtiene un valor Dcij corregido del valor Dij. Se procede entonces a una operacion ii0 identica a la operacion i02. La operacion ii0 continua por la operacion i04.
Si la operacion i08 es infructuosa y no permite corregir el valor Dij entonces el calculador ejecuta una operacion ii2 durante la cual intenta corregir el valor D2j con ayuda del codigo CC2. Si esta operacion ii2 tiene exito, el calculador 32 obtiene un valor corregido Dc2j. Se procede entonces a una operacion ii4 identica a la operacion 94 salvo en que es el valor Dc2j el que es utilizado en lugar del valor D2j. La operacion ii4 continua por la operacion i04.
Si no ha sido posible corregir ni el valor Dij ni el valor D2j entonces, durante una operacion ii6, el calculador 32 establece que el dato se ha perdido ya que este es erroneo y no puede ser corregido. Durante esta operacion ii6, el calculador 32 marca los bloques de memorias Bij y B2j como defectuosos. Esta operacion es realizada como se ha descrito con relacion a la operacion 90. A continuacion, el programa es capaz de gestionar la ausencia del valor para este dato y en este caso la ejecucion del programa prosigue. Si la ejecucion del programa no puede proseguir sin el valor del dato, entonces la ejecucion del programa es detenida y el procesador de seguridad es por ejemplo reinicializado.
La fig. 5 representa un procedimiento de proteccion del procesador i6 identico al procedimiento de la fig. 4 salvo que los codigos de correccion de error no son utilizados. Asf, en este procedimiento, las operaciones 98 a ii4 son omitidas. Ademas, en el caso entre los valores Dij y D2j son detectados como siendo los dos erroneos, se procede directamente a la operacion ii6.
Son posibles numerosos modos distintos de realizacion. Por ejemplo las operaciones de transformacion del valor grabado pueden ser omitidas. En este caso, las operaciones 56 y 72 son omitidas.
La asignacion de memoria puede ser una asignacion de memoria logica o ffsica.
El algoritmo utilizado para detectar un error en el valor Dij puede ser diferente del algoritmo utilizado para detectar un error en el valor D2j. En este caso, los valores de los codigos CDij y CD2j son diferentes.
En una variante, el codigo de deteccion de un error es tambien utilizado despues de la correccion del valor grabado con ayuda del codigo de correccion de error. Ello permite verificar, si fuera necesario, que el valor corregido es correcto.
En otra variante, el codigo CC0 es omitido, o a la inversa, los codigos CCi y CC2 son omitidos o no es utilizado ningun codigo corrector de error.
En otra variante, un codigo corrector de error es unicamente utilizado para una sola de las zonas de memorias.
El codigo corrector de error no es necesariamente comun para toda una zona de memoria. En una variante, el codigo corrector de error esta construido para un grupo restringido de varios bloques de una zona de memoria. Un codigo corrector de error puede igualmente estar construido para cada bloque de memoria y unicamente para este bloque de memoria. En este caso, de preferencia, el codigo corrector de error reemplaza al codigo de deteccion de error. En efecto, casi todos los codigos de correccion de error permiten igualmente la deteccion de un error.
El codigo corrector de error puede igualmente ser comun a los valores Dij y D2j.
El codigo corrector de error puede ser construido segun otros algoritmos tales como el algoritmo de Hamming o un
8
5
10
15
20
25
30
35
turbo-codigo.
Cuando un bloque de memoria Bij es detectado como defectuoso, no es necesario que el bloque de memoria B2j que le esta emparejado sea igualmente marcado de manera sistematica como siendo igualmente defectuoso. En una variante, el bloque B2j es marcado como defectuoso unicamente si el codigo CD2j asociado a este bloque confirma que el dato que contiene es igualmente erroneo. En caso contrario, una tabla asocia a la direccion de cada bloque Bij la direccion del bloque emparejado B2j. En este caso, esta tabla es modificada para asociar un nuevo bloque B'ij utilizado para reemplazar el bloque precedente Bij en la direccion del bloque B2j.
La zona 42 de control puede ser grabada en los bloques de la zona 44. En estas condiciones, como todos los bloques de esta zona 44 esta duplicada en la zona 46. Ellos permite por tanto proteger la zona de control contra la corrupcion de datos o los errores de lectura de la misma manera que de no importa que otro bloque de estas zonas 44 y 46.
La transformacion del valor Dy en un valor D'ij puede ser omitida o unicamente empleada para una de las zonas 44 o 46.
El orden de ciertas operaciones o etapas de los procedimientos descritos aqrn puede ser modificado. Por ejemplo, el calculo del codigo de deteccion de error es realizado despues de la transformacion del valor Dj en un valor transformado D'ij. En este caso, durante la lectura, la verificacion de que el dato lefdo es correcto o erroneo es realizada a partir del valor D'ij y no del valor Dj.
En una variante, antes de actualizar la marca MDj de un bloque defectuoso, el calculador verifica que el bloque Bij es realmente defectuoso. Por ejemplo realiza las operaciones siguientes:
a) Escritura de un valor Dj en el bloque Bij en cuestion, luego
b) Lectura del valor Dj grabado en este bloque Bij,
c) Comparacion de los valores escrito y lefdo, y luego
d) Si estos valores son iguales, las operaciones a) a c) son reiteradas al menos N veces. Si no, la marca MDj es actualizada para indicar que el bloque Bij es defectuoso.
Tfpicamente, el numero N es superior a dos y, de preferencia superior a diez.
Si las operaciones precedentes a) a d) son a menudo puestas en practica para un mismo bloque Bij pero que la verificacion precedente conduce cada vez a dejar del bloque Bij como siendo utilizable, un valor particular puede ser afectado a la marca MDj indicando que este bloque Bij es poco seguro. En estas condiciones, en tanto que sea posible, el bloque Bij no es elegido para grabar en el nuevos datos. Por el contrario, si no existen otros bloques de memorias mas seguros disponibles, este bloque Bij sera entonces utilizado para grabar un dato.
Cada una de las memorias descritas aqrn puede ser realizada en forma de un solo componente electronico o de una asociacion de varios componentes electronicos conectados independientemente unos de los otros al calculador 32. Por ejemplo, las zonas 44 y 46 pueden corresponder a dos memorias ffsicamente distintas unidas cada una por su propio bus de lectura al calculador 32.
Mas de dos zonas de memorias redundantes pueden ser empleadas. En este caso, el valor del dato copiado en esta memoria es copiado en cada una de estas zonas de memorias. Los procedimientos descritos anteriormente pueden ser adaptados facilmente al caso de W zonas de memorias donde W es un numero entero estrictamente superior a dos.
Lo que se ha descrito precedentemente puede aplicarse igualmente a una memoria no volatil.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    REIVINDICACIONES
    1. Procedimiento de deteccion de un error de lectura de un dato, incluyendo este procedimiento:
    a) la grabacion (50) de una primera copia del dato en una primera zona de una memoria electronica y la grabacion de una segunda copia del dato en una segunda zona de una memoria electronica,
    en respuesta a una solicitud de lectura del dato;
    b) la lectura (68) de los valores de la primera y segunda copias del dato respectivamente en la primera y segunda zonas,
    c) la comparacion (74) de los valores lefdos de la primera y segunda copias del dato,
    d) si los valores lefdos de la primera y segunda copias son identicos, entonces no es detectado ningun error de lectura de este dato,
    caracterizado por que:
    e) si los valores lefdos de la primera y segunda copias son diferentes, entonces las operaciones b) y c) precedentes son reiteradas (78, 80), y luego
    f) si los valores lefdos durante la operacion e) son identicos, entonces un error de lectura de este dato es detectado (82) y, si no, ningun error de lectura de este dato es detectado.
  2. 2. Procedimiento segun la reivindicacion 1 en el que el procedimiento incluye:
    - la asociacion (54) al valor de la primera copia del dato de un codigo de deteccion de error que anade redundancia al dato y que permite detectar un error en el valor de este dato,
    - si durante la operacion f) los valores lefdos de la primera y segunda copias son diferentes, entonces el procedimiento incluye la verificacion (86) de si el valor lefdo de la primera copia es erroneo o al contrario correcto con ayuda del codigo de deteccion de error asociado a este valor, y
    - si el valor lefdo de la primera copia es correcto, la grabacion (88) del valor de la primera copia en un bloque de memoria de la segunda zona de memoria diferente del bloque de memoria donde se encontraba la segunda copia precedente de este dato de manera que forme una nueva segunda copia del dato, y luego
    - la utilizacion de la nueva segunda copia en lugar y en vez de la segundo copia precedente del dato durante toda nueva iteracion de las operaciones b) y c).
  3. 3. Procedimiento segun una cualquiera de las reivindicaciones precedentes, en el que el procedimiento incluye:
    - la asociacion (54) a la primera y segunda copias del dato de un codigo de correccion de error que anade suficiente redundancia a los valores de la primera y segunda copias para permitir corregir uno o varios bits erroneos en el valor de cada una de estas copias del dato,
    - si durante la operacion f) los valores lefdos de la primera y segunda copias son diferentes, entonces el procedimiento incluye:
    • la correccion (98) con ayuda del codigo de correccion de error de los valores de la primera y segunda copias del dato para obtener valores corregidos para estas primera y segunda copias, y luego
    • la comparacion (100) de los valores corregidos de la primera y segunda copias, y
    • si los valores corregidos son identicos, la grabacion (102) del valor corregido de la primera copia del dato en
    nuevos bloques de memorias, respectivamente, de la primera y la segunda zonas de memorias diferentes de los bloques de memorias donde se encontraban las precedentes primera y segunda copias de este dato de manera que formen nuevas primera y segunda copias del dato, y luego
    • la utilizacion de las nuevas primera y segunda copias en lugar y en vez de las precedentes primera y segunda
    copias durante toda nueva iteracion de las operaciones b) y c).
  4. 4. Procedimiento segun la reivindicacion 2 o 3, en el que para cada bloque de memoria en que se encontraba una copia del dato precedente, el procedimiento incluye:
    - la memorizacion (90, 104, 116) de este bloque de memoria como defectuoso, y
    - durante la asignacion de un nuevo bloque de memoria en una de las zonas de memoria para grabar en ella una informacion, la eleccion (52) de este bloque de memoria unicamente entre los bloques de memorias de esta zona no
    10
    5
    10
    15
    20
    25
    30
    35
    40
    memorizados como defectuosos.
  5. 5. Procedimiento segun una cualquiera de las reivindicaciones precedentes, en el que:
    - durante la grabacion de la primera copia del dato, el valor del dato es transformado en primer lugar (56) con ayuda de una funcion de enmascaramiento que puede invertirse para obtener un valor transformado diferente del valor no transformado y diferente del valor grabado de la segunda copia, y luego es este valor transformado el que es grabado en la primera zona, y
    - durante la lectura de la primera copia, la transformacion inversa es aplicada (72) al valor transformado grabado para obtener el valor lefdo de la primera copia.
  6. 6. Procedimiento de proteccion de un procesador de seguridad contra un ataque en lectura, ejecutando este procesador de seguridad (76) una rutina de cifrado o de descifrado de una informacion con la ayuda de un dato confidencial grabado en una primera y segunda zonas de memoria de este procesador de seguridad, caracterizado por que:
    - el procesador de seguridad detecta (82) un error de lectura del dato confidencial poniendo en practica un procedimiento conforme a una cualquiera de las reivindicaciones precedentes,
    - si no se ha detectado ningun error de lectura del dato confidencial, el procesador de seguridad procede al cifrado o al descifrado (76) de la informacion con ayuda del dato confidencial lefdo, si no
    - en respuesta a la deteccion de un error de lectura, el procesador de seguridad dispara (86) automaticamente una contramedida que limita el cifrado o descifrado de la informacion con ayuda del dato confidencial lefdo, con relacion al caso en que no se ha detectado ningun error de lectura de este dato confidencial.
  7. 7. Soporte (38) de grabacion de informaciones, caracterizado por que incluye instrucciones para la puesta en practica de un procedimiento conforme a una cualquiera de las reivindicaciones precedentes, cuando estas instrucciones son ejecutadas por un calculador electronico.
  8. 8. Procesador de seguridad que incluye:
    - una primera (44) y una segunda (46) zonas de una memoria electronica,
    - un calculador electronico (32) programado para:
    a) grabar una primera copia del dato en la primera zona y grabar una segunda copia del dato en la segunda zona, en respuesta a una solicitud de lectura del dato:
    b) leer los valores de la primera y segunda copias del dato, respectivamente, en la primera y segunda zonas,
    c) comparar los valores lefdos de la primera y segunda copias del dato, y
    d) si los valores lefdos de la primera y segunda copias son identicos, entonces no detectar ningun error de lectura de este dato,
    caracterizado por que el calculador electronico esta igualmente programado para:
    e) si los valores lefdos de la primera y segunda copias son diferentes, reiterar las operaciones b) y c) precedentes, y luego
    f) si los valores lefdos durante la operacion e) son identicos, entonces detectar un error de lectura de este dato y, si no, no indicar ningun error de lectura.
  9. 9. Procesador segun la reivindicacion 8, en el que el procesador de seguridad es el procesador de seguridad de una tarjeta con chip (30).
  10. 10. Procesador segun una cualquiera de las reivindicaciones 8 a 9, en el que la memoria electronica (38) llamada primera memoria, es una memoria no volatil y el procesador de seguridad incluye una segunda memoria (36) volatil en la que son sistematicamente copiados los datos requeridos en la primera memoria (38) a fin de ser tratados por el calculador electronico (32).
ES12791783.9T 2011-12-01 2012-11-29 Procedimiento de detección de un error de lectura de un dato Active ES2557008T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1161029 2011-12-01
FR1161029A FR2983597B1 (fr) 2011-12-01 2011-12-01 Procede de detection d'une erreur de lecture d'une donnee
PCT/EP2012/073963 WO2013079593A1 (fr) 2011-12-01 2012-11-29 Procede de detection d'une erreur de lecture d'une donnee

Publications (1)

Publication Number Publication Date
ES2557008T3 true ES2557008T3 (es) 2016-01-21

Family

ID=47257826

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12791783.9T Active ES2557008T3 (es) 2011-12-01 2012-11-29 Procedimiento de detección de un error de lectura de un dato

Country Status (8)

Country Link
US (1) US9734328B2 (es)
EP (1) EP2786253B1 (es)
CN (1) CN103959250B (es)
ES (1) ES2557008T3 (es)
FR (1) FR2983597B1 (es)
PL (1) PL2786253T3 (es)
RU (1) RU2573952C1 (es)
WO (1) WO2013079593A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015011609A (ja) * 2013-07-01 2015-01-19 ラピスセミコンダクタ株式会社 情報処理装置、半導体装置及び情報データのベリファイ方法
CN105988889B (zh) * 2015-02-11 2019-06-14 阿里巴巴集团控股有限公司 一种数据校验方法及装置
AU2016259419B2 (en) 2015-11-30 2020-12-10 Parker-Hannifin Corporation Engine Panel Filter and Housing System
US9952923B2 (en) * 2016-06-30 2018-04-24 Vmware, Inc. Synchronizing replicas with media errors in distributed storage systems
US9904595B1 (en) 2016-08-23 2018-02-27 Texas Instruments Incorporated Error correction hardware with fault detection
KR20180055148A (ko) * 2016-11-16 2018-05-25 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US11095678B2 (en) * 2017-07-12 2021-08-17 The Boeing Company Mobile security countermeasures
US10956401B2 (en) * 2017-11-28 2021-03-23 International Business Machines Corporation Checking a technical document of a software program product
JP2020042868A (ja) * 2018-09-06 2020-03-19 株式会社東芝 磁気ディスク装置及び磁気ディスク装置のデータリード方法
US11483147B2 (en) * 2020-01-23 2022-10-25 Bank Of America Corporation Intelligent encryption based on user and data properties
US11995006B2 (en) * 2021-12-22 2024-05-28 Intel Corporation Algebraic and deterministic memory authentication and correction with coupled cacheline metadata

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE330420T1 (de) * 1997-03-21 2006-07-15 Thomson Licensing Datenfernladung
UA56310C2 (uk) * 2000-11-06 2003-05-15 Олексій Юрійович Шевченко Спосіб ремонтного обслуговування комп'ютерів та система для його здійснення
US7139942B2 (en) 2003-07-21 2006-11-21 Sun Microsystems, Inc. Method and apparatus for memory redundancy and recovery from uncorrectable errors
US7565585B2 (en) 2004-01-13 2009-07-21 International Business Machines Corporation Integrated redundancy architecture and method for providing redundancy allocation to an embedded memory system
US20060053308A1 (en) 2004-09-08 2006-03-09 Raidy 2 Go Ltd. Secured redundant memory subsystem
DE102005028221B4 (de) 2005-06-17 2007-10-11 Infineon Technologies Ag Vorrichtung und Verfahren zum Schutz der Integrität von Daten
WO2008023297A2 (en) 2006-08-21 2008-02-28 Nxp B.V. Circuit arrangement and method for data processing
US7949841B2 (en) * 2006-12-08 2011-05-24 Microsoft Corporation Protection of critical memory using replication
KR20090043823A (ko) * 2007-10-30 2009-05-07 삼성전자주식회사 외부 공격을 감지할 수 있는 메모리 시스템

Also Published As

Publication number Publication date
PL2786253T3 (pl) 2016-02-29
RU2573952C1 (ru) 2016-01-27
EP2786253A1 (fr) 2014-10-08
WO2013079593A1 (fr) 2013-06-06
CN103959250B (zh) 2016-05-04
US20150040226A1 (en) 2015-02-05
FR2983597B1 (fr) 2014-01-24
CN103959250A (zh) 2014-07-30
EP2786253B1 (fr) 2015-10-14
FR2983597A1 (fr) 2013-06-07
US9734328B2 (en) 2017-08-15

Similar Documents

Publication Publication Date Title
ES2557008T3 (es) Procedimiento de detección de un error de lectura de un dato
CN109388975B (zh) 针对安全性和可靠性的存储器组织
JP5624510B2 (ja) 記憶装置、記憶システム及び認証方法
US9311487B2 (en) Tampering monitoring system, management device, protection control module, and detection module
US8855297B2 (en) Device and authentication method therefor
US8127144B2 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
US8732466B2 (en) Semiconductor memory device
TW200822066A (en) Apparatus for writing data to a medium
US11755406B2 (en) Error identification in executed code
EP2568655B1 (en) Method for authenticating a storage device, machine-readable storage medium, and host device
US20140245010A1 (en) Device and authentication method therefor
US8761389B2 (en) Memory
JP2010165206A (ja) メモリコントローラおよび不揮発性記憶装置
US20140245011A1 (en) Device and authentication method therefor
CN110008724A (zh) 固态硬盘控制器安全加载方法、装置及存储介质
KR20190058302A (ko) 반도체 장치, 인증 시스템 및 인증 방법
US20140245024A1 (en) Device and authentication method therefor
CN111143904B (zh) 一种数据解密方法、装置和计算机可读存储介质
BRPI1102918A2 (pt) mÉtodo para ativar pelo menos uma funÇço em um chipset e chipset para a implementaÇço do mÉtodo
US20140245023A1 (en) Device and authentication method therefor
ES2271693T3 (es) Procedimiento y sistema para garantizar la integridad de por lo menos un programa transmitido a un modulo de cifrado/descifrado y soportes de registro para realizar dicho procedimiento.
CN114065218B (zh) 一种SoC系统芯片安全启动方法
US9201811B2 (en) Device and authentication method therefor
CN108632024B (zh) 一种运行引导程序的方法及装置
US20140237258A1 (en) Device and authentication method therefor