ES2826985T3 - Aparato de protección de datos y procedimiento del mismo - Google Patents

Aparato de protección de datos y procedimiento del mismo Download PDF

Info

Publication number
ES2826985T3
ES2826985T3 ES14185186T ES14185186T ES2826985T3 ES 2826985 T3 ES2826985 T3 ES 2826985T3 ES 14185186 T ES14185186 T ES 14185186T ES 14185186 T ES14185186 T ES 14185186T ES 2826985 T3 ES2826985 T3 ES 2826985T3
Authority
ES
Spain
Prior art keywords
key
mix
bits
mixing
stage
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
ES14185186T
Other languages
English (en)
Inventor
Uri Kaluzhny
Nir Tasher
Moshe Alon
Valery Teper
Ziv Hershman
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.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
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 Winbond Electronics Corp filed Critical Winbond Electronics Corp
Application granted granted Critical
Publication of ES2826985T3 publication Critical patent/ES2826985T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

Un aparato de protección de datos (24) que comprende: una interfaz, que se configura para comunicarse a través de un enlace de comunicación (34); y caracterizado por un circuito lógico, que se configura para convertir entre un primer flujo de bits de texto plano(DX) y un segundo flujo de bits cifrados (CX) que se intercambian a través del enlace de comunicación (34), aplicando una cascada de una operación de cifrado de flujo y una operación de mezcla que mapea criptográficamente bits de entrada a bits de salida, en el que el enlace de comunicación (34) se conecta entre un dispositivo de memoria (24) y un procesador, y los bits cifrados intercambiados a través del enlace de comunicación (34) comprenden un código de software que se ejecuta en tiempo real en el procesador, en el que el circuito lógico se configura para aplicar la operación de mezcla multiplicando los bits de entrada por una clave de mezcla no constante respectiva en un campo de Galois, GF, y en el que el circuito lógico se configura para actualizar iterativamente la clave de mezcla (K) en coordinación con un aparato remoto (28) en un lado opuesto del enlace de comunicación (34), multiplicando la clave de mezcla (K) en el respectivo GF por un elemento constante o por el inverso multiplicativo GF del elemento constante, de modo que en cualquier momento dado la clave de mezcla es el inverso multiplicativo GF de una clave de mezcla correspondiente (K-1) usada por el aparato remoto (28).

Description

DESCRIPCIÓN
Aparato de protección de datos y procedimiento del mismo
Antecedentes de la invención
Campo de la invención
La presente invención se refiere, en general, a la seguridad de los datos y, particularmente, a los procedimientos y sistemas para proteger datos cifrados en flujo.
Descripción de la técnica relacionada
En varios sistemas de almacenamiento seguro, un anfitrión intercambia datos con uno o más dispositivos de almacenamiento. Los procedimientos para asegurar la interfaz entre el anfitrión y los dispositivos de almacenamiento son conocidos en la técnica. Por ejemplo, la Publicación de Solicitud de Patente de Estados Unidos 2013/0262880 describe un circuito de acceso a la memoria y un procedimiento correspondiente. El circuito de acceso a la memoria incluye un bloque criptográfico en comunicación con una memoria que cifra los datos de un bloque de datos sobre una base de bloques. El circuito de acceso a la memoria también incluye un bloque de inyección de fallas configurado para inyectar fallas a los datos en el bloque de datos. El circuito de acceso a la memoria incluye además un codificador de datos y un codificador de direcciones. El codificador de datos se configura para codificar datos en la memoria mezclando bits de datos dentro del bloque de datos en una pluralidad de rondas y mezclando los bits de datos mezclados con datos aleatorios. El codificador de direcciones se configura para distribuir los datos codificados por la memoria. También se divulga un sistema de memoria que incluye el circuito de acceso a la memoria para implementar el procedimiento correspondiente.
Como otro ejemplo, la Publicación de Solicitud de Patente de Estados Unidos 2011/0283115, describe un procedimiento para generar código de software final, que es resistente al análisis de ingeniería inversa, a partir de un código de software inicial, que es ejecutado por un procesador que maneja directamente datos de tamaño máximo de M bits. La generación del código de software final comprende los pasos de: (i) construir una tabla de conversión cuya entrada comprenda una instrucción y su salida comprenda una pluralidad de instrucciones equivalentes o conjuntos de instrucciones, (ii) dividir los datos de entrada en una pluralidad de segmentos, teniendo cada segmento una longitud aleatoria que no exceda M, y (iii) para cada instrucción de un bloque de instrucciones, seleccionar seudoaleatoriamente una instrucción equivalente o un conjunto de instrucciones mediante el uso de la tabla de conversión para obtener un bloque de instrucciones equivalente, y agregar la pluralidad de bloques de instrucciones equivalentes para obtener el código de software final.
El documento EP 2566096 divulga la aleatorización de texto plano para el canal de control asociado lento (SACCH) del sistema global para comunicaciones móviles (GSM).
El documento US 2001/003540 A1 muestra la protección de los bits de datos intercambiados entre un dispositivo de memoria y un procesador mediante una operación de cifrado de flujo.
Sumario de la invención
Una realización de la presente invención que se divulga en la presente memoria proporciona un aparato que incluye una interfaz y un circuito lógico. La interfaz se configura para comunicarse a través de un enlace de comunicación. El circuito lógico se configura para convertir entre un primer flujo de bits de texto plano y un segundo flujo de bits cifrados que se intercambian a través del enlace de comunicación, aplicando una cascada de una operación de cifrado de flujo y una operación de mezcla que mapea criptográficamente bits de entrada a bits de salida. Los bits cifrados se intercambian a través del enlace de comunicación entre un dispositivo de memoria y un procesador. Los bits cifrados intercambiados a través del enlace de comunicación comprenden un código de software que se ejecuta en tiempo real en el procesador.
En una realización, el circuito lógico incluye dos o más etapas de mezcla interconectadas, que incluyen al menos la primera y la última etapa de mezcla, cada etapa de mezcla incluye múltiples multiplicadores del campo Galois (GF), y el circuito lógico se configura para aplicar la operación de mezcla dividiendo el bits de entrada entre los multiplicadores GF de la primera etapa de mezcla, y resultados de combinación de la última etapa de mezcla para producir los bits de salida. En otra realización, cada uno de los multiplicadores GF en una o más etapas de mezcla se configura para aceptar bits del multiplicando de los bits de entrada o de una etapa de mezcla previa, y para aceptar además una clave de mezcla respectiva, en la que la clave de mezcla es el inverso multiplicativo GF de una clave de mezcla correspondiente en un aparato remoto en un lado opuesto del enlace de comunicación, y el circuito lógico se configura para aplicar la operación de mezcla multiplicando los bits del multiplicando por la clave de mezcla respectiva en cada uno de los múltiples multiplicadores GF.
En algunas realizaciones, los circuitos lógicos se configuran para aplicar la operación de mezcla multiplicando los bits de entrada por una clave de mezcla no constante respectiva en un campo de Galois (GF). En otras realizaciones, los circuitos lógicos se configuran para actualizar iterativamente la clave de mezcla en coordinación con un aparato remoto en un lado opuesto del enlace de comunicación, multiplicando la clave de mezcla en el respectivo GF por un elemento constante o por un inverso multiplicativo GF del elemento constante, de modo que en cualquier momento dado la clave de mezcla es el inverso multiplicativo GF de una clave de mezcla correspondiente usada por el aparato remoto. En otras realizaciones más, el elemento constante y el inverso multiplicativo Gf son 2 y 2-1 respectivamente, y el circuito lógico se configura para generar la clave de mezcla mediante el uso de un Registro de Cambio de Retroalimentación Lineal (LFSR) que implementa una operación de multiplicación GF mediante el uso de una operación de cambio. En otras realizaciones más, el circuito lógico se configura para inicializar la clave de mezcla a un número que es una potencia entera de 2 o 2-1 en el respectivo GF de modo que una clave de mezcla inicial es el inverso multiplicativo de GF de una clave de mezcla inicial correspondiente usada por el aparato remoto.
Se proporciona adicionalmente, de acuerdo con una realización de la presente invención, un procedimiento, que incluye el intercambio de bits cifrados a través de un enlace de comunicación. Se lleva a cabo una conversión entre un primer flujo de bits de texto plano y un segundo flujo de bits cifrados que se intercambian a través del enlace de comunicación, aplicando una cascada de una operación de cifrado de flujo y una operación de mezcla que mapea criptográficamente bits de entrada a bits de salida. Los bits cifrados se intercambian a través del enlace de comunicación entre un dispositivo de memoria y un procesador. Los bits cifrados intercambiados a través del enlace de comunicación comprenden un código de software que se ejecuta en tiempo real en el procesador.
Con el fin de hacer más comprensibles las características y ventajas antes mencionadas y otras de la invención, a continuación, se describen en detalle las realizaciones que acompañan a las figuras.
Breve descripción de los dibujos
Los dibujos acompañantes se incluyen para proporcionar una comprensión adicional de la invención, y se incorporan y constituyen una parte de esta memoria descriptiva. Los dibujos ilustran las realizaciones de la invención y junto con la descripción sirven para explicar los principios de la invención.
La Figura 1 es un diagrama de bloques que ilustra esquemáticamente un sistema de almacenamiento seguro, de acuerdo con una realización de la presente invención.
La Figura 2 es un diagrama que ilustra esquemáticamente un procedimiento de mezcla criptográfica, de acuerdo con una realización de la presente invención.
La Figura 3 y 4 son diagramas que ilustran esquemáticamente realizaciones alternativas para la mezcla criptográfica, de acuerdo con una realización de la presente invención.
Descripción de las realizaciones
Descripción general
En muchos sistemas de almacenamiento seguro, un anfitrión se comunica con un dispositivo de memoria a través de un enlace o bus de comunicación que puede ser vulnerable a varios ataques criptográficos. Las realizaciones de la presente invención que se describen en la presente memoria proporcionan procedimientos y sistemas mejorados para proteger la interfaz de un dispositivo de memoria contra ataques criptográficos.
El enlace entre el anfitrión y el dispositivo de memoria se puede asegurar, en principio, cifrando los datos intercambiados a través del enlace, en ambas direcciones. En la dirección de lectura, el dispositivo de memoria envía datos cifrados al anfitrión, y en la dirección de escritura, el dispositivo de memoria recibe datos cifrados del anfitrión. En cada dirección de comunicación, uno del dispositivo de memoria y el anfitrión sirve como parte emisora y el otro como parte receptora.
La baja latencia para acceder a la memoria es importante, por ejemplo, cuando la Unidad Central de Procesamiento (CPU) del anfitrión ejecuta el código que se obtiene en tiempo real desde el dispositivo de memoria. Para reducir la latencia y la complejidad, los datos que se comunican a través del enlace típicamente se cifran mediante el uso de técnicas de cifrado de flujo, en contraposición al cifrado de bloques de alta latencia. En la parte emisora, un cifrado de flujo cifra los datos de texto sin formato con una secuencia seudoaleatoria (por ejemplo, mediante el uso de una operación XOR bit a bit) para producir el texto cifrado, y en la parte receptora, un descifrador descifra el texto cifrado con la misma secuencia para recuperar los datos de texto sin formato.
El cifrado de flujo es ventajoso en términos de baja complejidad y latencia, pero puede ser vulnerable a ataques criptográficos, como ataques basados en posiciones de bits. Por ejemplo, un atacante no autorizado puede monitorear o cambiar el valor de los datos cifrados en flujo de acuerdo con un cierto patrón periódico correspondiente a uno o más bits fijos de la interfaz del dispositivo de memoria, en un intento de romper la seguridad del sistema. Las realizaciones que se describen en la presente memoria protegen contra esta vulnerabilidad del cifrado de flujo.
En la dirección de lectura, el dispositivo de memoria sirve como un extremo de envío y el anfitrión como un extremo de recepción. En algunas realizaciones, antes del enmascaramiento por el cifrado de flujo, el dispositivo de memoria aplica una operación de mezcla criptográfica al texto sin formato mediante el uso de una clave de mapeo secreta. La operación de mezcla mapea los bits de datos de texto sin formato en bits mixtos, de modo que sería imposible para un usuario no autorizado, que no conoce la clave de mapeo, adivinar los valores y/o posiciones de los bits de datos de texto sin formato. El anfitrión, después de descifrar, aplica un mapeo inverso (con respecto al mapeo de mezcla) para desmezclar los bits mezclados y recuperar los datos de texto sin formato. En la dirección de escritura, el anfitrión y el dispositivo de memoria sirven respectivamente como extremos de envío y recepción, aplicando un flujo de procesamiento similar.
En una realización, la mezcla criptográfica se basa en la aritmética de Galois-Field (GF). En la descripción que sigue, asumimos que las operaciones aritméticas se aplican a los elementos de un campo de Galois dado (GF) que se puede generar mediante el uso de algún polinomio generador subyacente. Dado que las técnicas divulgadas se aplican a cualquier polinomio generador válido, típicamente se omiten los detalles relacionados con el polinomio generador subyacente. El término "multiplicación" se refiere a la multiplicación entre elementos en el g F dado, y el término "inverso multiplicativo" de un elemento dado se refiere a un elemento en el GF que, cuando se multiplica por el elemento dado (mediante el uso de aritmética GF), da como resultado el elemento de unidad definido en ese GF. De manera similar, el término "potencia" se refiere a multiplicaciones repetidas de un elemento en el GF dado por sí mismo.
Suponga, por ejemplo, una unidad de mezcla en el extremo de envío, que recibe datos de texto plano DX de N bits. En una realización de ejemplo N = 32 bits, pero en realizaciones alternativas N puede comprender cualquier número entero positivo adecuado. La unidad de mezcla comprende un multiplicador GF de N bits que multiplica DX por una clave de mapeo secreta de N bits K, y genera datos mixtos de N bits MX = DX*K, en el que el operador * denota multiplicación en el respectivo GF.
El extremo receptor comprende una unidad de desmezcla que acepta el MX de N bits, y mediante el uso de un multiplicador GF de N bits similar, multiplica MX por una clave de mapeo inverso que es igual al inverso multiplicativo de la clave de mapeo K, es decir, DX = MX*K-1.
En algunas realizaciones, cada una de las partes emisoras y receptoras actualiza iterativamente la clave de mezcla en coordinación con la otra parte en el lado opuesto del enlace de comunicación, de modo que en cualquier momento dado la clave de mezcla usada por una parte es el inverso multiplicativo GF de la clave de mezcla correspondiente usada por la otra parte.
En algunas realizaciones, la unidad de mezcla genera la clave de mapeo secreta K mediante el uso de un registro de desplazamiento de retroalimentación lineal (LFSR), y la unidad de desmezcla genera la clave de mapeo inverso K-1 mediante el uso de otro LFSR. Los LFSR usados para mezclar y desmezclar se inicializan a los valores secretos respectivos R y R-1, y se desplazan en sincronización entre sí de modo que las respectivas claves de mapeo (en el extremo de envío y en el extremo de recepción) sean iguales a la inversa multiplicativa entre sí.
Calcular el inverso multiplicativo de GF de un elemento arbitrario en el GF implica considerables recursos computacionales. En una realización, para reducir la complejidad de calcular el valor inverso inicial R-1 en la unidad de desmezcla, el valor inicial R está restringido a ser una potencia entera no negativa r de 2, es decir, R = 2r. La unidad de desmezcla tiene un valor precalculado fijo de 2-1, y calcula el valor inverso inicial como una potencia r de 2-1, es decir, R-1 = (2-1)r. La complejidad de calcular R-1 a través de operaciones de potencia es significativamente menor en comparación con los cálculos inversos multiplicativos generales.
No es obligatorio generar las claves de mezcla mediante el uso de LFSR. En realizaciones alternativas, puede usarse cualquier otro medio adecuado para inicializar y actualizar las claves de mezcla en los extremos de envío y recepción para que sean la inversa multiplicativa de GF entre sí en cualquier momento dado. Adicionalmente o alternativamente, las claves de mezcla se pueden configurar para que sean una potencia entera de un número constante en el respectivo GF distinto de 2 y 2-1.
En algunas realizaciones, la unidad de mezcla de mezcla de datos de texto sin formato de 32 bits aplicando dos etapas de mezcla, cada una de las cuales comprende cuatro multiplicadores GF de 8 bits. En la primera etapa, cada uno de los cuatro multiplicadores GF multiplica los datos de entrada de 8 bits extraídos de los datos de texto sin formato de 32 bits, por una clave de mapeo de 8 bits respectiva. Mediante el uso de multiplicadores de 8 bits (en lugar de un multiplicador de 32 bits) es ventajoso en términos de tamaño físico, complejidad de implementación y latencia.
Un esquema de interconexión mapea la salida de 32 bits de la primera etapa en cuatro de 8 bits que ingresan los cuatro multiplicadores GF de la segunda etapa. Cada uno de los multiplicadores GF de la segunda etapa multiplica su respectiva entrada de 8 bits por una respectiva clave de mapeo de 8 bits para producir una salida mixta de 8 bits. Las cuatro salidas de 8 bits de la segunda etapa se combinan para producir una salida de datos mixtos de 32 bits.
En algunas realizaciones, la unidad de mezcla genera las ocho claves de mapeo para la primera y la segunda etapas de mezcla mediante el uso de un LFSR de 64 bits. La unidad de mezcla divide la salida LFSR de 64 bits en dos claves de 32 bits, cada una de las cuales se divide en cuatro claves de asignación de 8 bits.
En el extremo de recepción, una unidad de desmezcla comprende dos etapas de desmezcla que cada una comprende cuatro multiplicadores GF de 8 bits. La unidad de desmezcla comprende además un LFSR de 64 bits que funciona en sincronización con el LFSR de la unidad de mezcla, y que genera ocho claves de mapeo inverso de 8 bits, cada una es igual a la inversa multiplicativa de una clave de mapeo respectiva de la unidad de mezcla. En una realización, los LFSR en ambos lados generan la misma secuencia seudoaleatoria, y en el lado de desmezcla cada subgrupo de 8 bits de la salida LFSR de 32 bits se invierte por separado en el GF respectivo, por ejemplo, mediante el uso de una tabla de búsqueda. El tamaño de las tablas y el espacio de memoria necesarios para invertir cuatro elementos GF de 8 bits (1Kx8bit) es significativamente más pequeño que una tabla de búsqueda necesaria para invertir un elemento GF de 32 bits (4Gx32bit).
La unidad de desmezcla aplica las multiplicaciones de GF en las dos etapas de desmezcla y, además, aplica un esquema de interconexión inverso entre la primera y la segunda etapas de desmezcla, para recuperar los datos de texto sin formato.
En las técnicas divulgadas, la mezcla criptográfica se realiza antes del cifrado de flujo. La operación de mezcla mapea bits de datos de texto sin formato en bits mixtos que disfrazan los valores y posiciones verdaderos de los bits de texto sin formato. La implementación de la operación de mezcla mediante el uso de multiplicadores GF solo implica un pequeño aumento en complejidad y latencia.
Descripción del sistema
La Figura 1 es un diagrama de bloques que ilustra esquemáticamente un sistema de almacenamiento seguro 20, de acuerdo con una realización de la presente invención. El sistema de almacenamiento seguro 20 comprende un dispositivo de memoria 24 que almacena datos para un anfitrión 28 en una matriz de memoria 32. El dispositivo de memoria 24 puede almacenar cualquier tipo de datos adecuado, como, por ejemplo, datos de usuario, código ejecutable y estados del sistema seguro. Los estados del sistema incluyen información como, por ejemplo, el tiempo de funcionamiento del sistema, información de registro de errores y eventos del sistema y resultados de la autocomprobación. Los datos pueden almacenarse en la matriz de memoria 32 en forma cifrada o no cifrada.
En el ejemplo de la Figura 1, el dispositivo de memoria 24 comprende una memoria no volátil (NVM). En realizaciones alternativas, el dispositivo de memoria 24 puede comprender cualquier memoria adecuada de cualquier tipo adecuado, tal como memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM) o cualquier tipo de NVM, tal como memoria Flash. El anfitrión 28 se comunica con el dispositivo de memoria 24 a través de un enlace 34 mediante el uso de una interfaz de comunicación respectiva (no mostrada).
Los comandos de almacenamiento para el dispositivo de memoria 24 incluyen al menos datos de lectura, escritura, modificación y borrado. El anfitrión ejecuta operaciones de almacenamiento aplicando señales de comunicación respectivas sobre el enlace 34. Adicionalmente o alternativamente, una CPU 36 del anfitrión 28 puede ejecutar código que se obtiene en tiempo real del dispositivo de memoria 24 leyendo instrucciones de código y datos a través del enlace 34.
En algunas realizaciones, el enlace 34 comprende un enlace o bus paralelo, que tiene líneas de control, dirección y datos independientes. En otras realizaciones, el enlace 34 comprende un enlace en serie, en el que los datos, la dirección y la información de control se transfieren en serie en una conexión física común. Ejemplos de tales interfaces en serie incluyen Interfaz de periférico en serie (SPI), Circuito interintegrado (I2C), interfaz de bus serie universal (USB), tarjeta multimedia (MMC) e interfaz de Seguro Digital (SD).
En el presente ejemplo, se supone que cada uno de los dispositivos de memoria 24 y de anfitrión 28 comprenden un molde de semiconductores separado, y que los dos moldes residen en un envase común o en envases separados. Suponemos además que un atacante no autorizado no tiene acceso directo a información secreta dentro de cada molde, pero puede abrir el envase para obtener acceso a las señales del enlace 34 en un intento de romper la seguridad del sistema. Los principales ataques criptográficos que un usuario no autorizado puede intentar a través del enlace 34 incluyen:
Modifique la información transmitida sobre la marcha en un intento de realizar un ataque criptográfico en posiciones de bit específicas.
Obtenga información secreta que se almacena en el dispositivo de memoria.
Modifique la información almacenada en el dispositivo de memoria.
Obligue al dispositivo de memoria a ejecutar comandos no autorizados.
Obtenga conocimiento sobre los estados del sistema.
Cambie el estado del sistema sobre la marcha.
Realice ingeniería inversa para conocer la funcionalidad del sistema.
En las realizaciones divulgadas, la comunicación entre el anfitrión 28 y el dispositivo de memoria 24 se asegura manipulando los datos que se expondrán a través del enlace 34 de manera secreta. La manipulación de datos comprende una cascada de mezcla de datos criptográficos y cifrado de flujo, como se describirá en detalle a continuación. Como resultado, incluso si un atacante no autorizado obtiene acceso a las señales del enlace 34, sería difícil o imposible para el atacante realizar ataques criptográficos, por ejemplo, como se enumera anteriormente. La manipulación de datos debe tener una penalización de rendimiento mínima en términos de retraso de acceso hacia/desde el dispositivo de memoria y complejidad computacional. En algunas realizaciones, la manipulación de datos incluye cifrado de datos y mezcla de datos criptográficos como se describe en detalle a continuación.
Cada uno de los dispositivos de memoria 24 y el anfitrión 28 comprende una clave de enlace secreta respectiva 40 y 44. El anfitrión 28 y el dispositivo de memoria 24 usan las claves de enlace 44, 40 para autenticarse mutuamente y para evitar el acceso no autorizado a información secreta cuando falla la autenticación. El tamaño de las claves de enlace 40 y 44 debe ser lo suficientemente grande para proporcionar suficiente resistencia criptográfica, como claves de 128 bits o más. En algunas realizaciones, el anfitrión 28, el dispositivo de memoria 24, o ambos, generan las claves de enlace 44, 40 mediante el uso de protocolos de intercambio de claves simétricas, que dan como resultado claves de enlace idénticas 40 y 44. En otras realizaciones, el anfitrión 28 y el dispositivo de memoria 24 emplean protocolos de intercambio de claves asimétricos (también denominados protocolos de intercambio de claves público-privadas), en los que las claves de enlace 40 y 44 son típicamente diferentes.
En algunas realizaciones, las claves de enlace 40 y 44 son constantes durante la vida útil del sistema. Alternativamente, la configuración de las claves 40 y 44 se puede reemplazar ocasionalmente borrando primero las claves vinculantes 40, 44, así como también cualquier otra información secreta, del anfitrión 28 y el dispositivo de memoria 24, y luego reconfigurar las claves vinculantes 40 y 44 a nuevos valores secretos.
En algunas realizaciones, el anfitrión 28 genera localmente la clave de enlace 40 y entrega la clave de enlace 40 para ser almacenada en una ubicación no volátil del dispositivo de memoria 24. Por ejemplo, en una realización, el anfitrión 28 mide alguna propiedad física dentro del molde del anfitrión y convierte el resultado de la medición en una secuencia de bits respectiva para ser usada como un valor secreto para vincular la clave 40 (y/u otra información secreta). Tales propiedades físicas pueden comprender, por ejemplo, ciertas trayectorias de retardo dentro del molde, tensión umbral para cambiar los estados de las compuertas semiconductoras dentro del molde y frecuencia de autooscilación de un oscilador de anillo en el molde.
En una realización, el anfitrión 28, el dispositivo de memoria 24, o ambos, verifican la validez de la clave de enlace 40 (por ejemplo, al encender) mediante el uso de un resumen criptográfico calculado sobre la clave de enlace 40 y almacenado junto con la clave de enlace 40 en el dispositivo de memoria 24. El anfitrión 28 y/o el dispositivo de memoria 24 pueden verificar de manera similar la validez de la clave de enlace 44 mediante el uso de un resumen criptográfico calculado respectivo que se almacena en el anfitrión 28 junto con la clave de enlace 44.
Como se describió anteriormente, los datos se intercambian de forma segura a través del enlace 34, manipulando los datos que se exponen a través del enlace 34 de manera secreta. En aras de la claridad, la Figura 1 representa solo la dirección de lectura, en la que el anfitrión 28 lee los datos almacenados en la matriz de memoria 32. La manipulación de datos en la dirección opuesta, desde el anfitrión 28 al dispositivo de memoria 24, se implementa típicamente de una manera similar. Los datos almacenados en la matriz de memoria 32 pueden estar cifrados o no cifrados.
Suponga que el dispositivo de memoria 24 almacena datos en la matriz de memoria 32 en una unidad de datos dada, tal como, por ejemplo, una unidad de 32 bits, o cualquier otro tamaño de unidad de datos adecuado. En la dirección de lectura, el dispositivo de memoria 24 recupera una unidad de datos de texto plano DX de la matriz de memoria 32. DX introduce una unidad de mezcla 48, que mapea criptográficamente los bits DX para producir datos mixtos MX. A continuación, un cifrado de flujo 52 cifra Mx , y el dispositivo de memoria 24 envía los datos cifrados CX por el enlace 34. En la descripción que sigue, el término "mezcla" se refiere al mapeo criptográfico de bits de entrada a bits de salida mediante el uso de una clave de mapeo secreta, de modo que adivinar los bits de entrada a partir de los bits de salida sin conocer la clave de mapeo es computacionalmente inviable. La operación de mapeo en la unidad de mezcla 48 y la operación de cifrado en el cifrado de flujo 52 dependen de la clave de sesión secreta 56 como se describe en detalle a continuación.
En la dirección de lectura, el anfitrión 28 recibe los datos cifrados CX y recupera los datos de texto plano DX. El anfitrión 28 primero descifra CX para recuperar MX mediante el uso de un descifrador de flujo 60, y luego invierte la operación de la unidad de mezcla 48 desmezclando MX de nuevo a DX mediante el uso de la unidad de desmezcla 64. Las operaciones en el descifrador de flujo 60 y la unidad de desmezcla 64 dependen de una clave de sesión secreta 68, que debe estar alineada con la clave de sesión 56 para asegurar la inversión adecuada de las respectivas operaciones de mezcla y cifrado que fueron realizadas por el dispositivo de memoria 24.
En la dirección de escritura (no mostrada en la figura), el anfitrión 28 escribe datos en el dispositivo de memoria 24. En este caso, el anfitrión 28 aplica la mezcla y el cifrado de datos antes de enviar los datos a través del enlace 34, mientras que el dispositivo de memoria 24 recupera los datos de texto sin formato aplicando descifrado y luego desmezcla.
Para una determinada dirección de lectura o escritura, el flujo de datos de extremo a extremo incluye la eliminación de la mezcla que invierte la operación de mezcla y el descifrado que invierte la operación de cifrado. En algunas realizaciones, sin embargo, las operaciones de mezcla y cifrado en la dirección de escritura pueden ser diferentes de las operaciones de mezcla y cifrado en la dirección de lectura.
Las claves de sesión secretas 56 y 68 sirven para manipular los datos que se exponen a través del enlace 34 de una manera secreta. El anfitrión 28 puede reconfigurar las claves de sesión 56 y 68 ocasionalmente, como, por ejemplo, al encender. En algunas realizaciones, el anfitrión 28 envía al dispositivo de memoria 24 un secreto de sesión que comprende una versión encriptada de la clave de sesión 56, que fue encriptada mediante el uso de la clave de enlace 44. El dispositivo de memoria 24 recupera la clave de sesión 56 descifrando el secreto de sesión mediante el uso de la clave de enlace 40.
En otras realizaciones, el anfitrión 28 envía una semilla de sesión sin cifrar al dispositivo de memoria 24. Cada uno de los dispositivos de memoria 24 y el anfitrión 28 genera una clave de sesión respectiva 56 o 68 mediante el uso de tanto la semilla de sesión como la clave de enlace respectiva 40 o 44 mediante el uso de cualquier algoritmo o procedimiento criptográfico adecuado como, por ejemplo, SHA o AES.
El anfitrión 28 y el dispositivo de memoria 24 comprenden además los respectivos generadores de secuencia criptográfica 72 y 76. El cifrado de flujo 52 aplica XOR bit a bit entre la secuencia de bits generada por el generador de secuencia criptográfica 72 y MX para generar la salida cifrada CX. De manera similar, el descifrador 60 de flujo aplica XOR bit a bit entre la secuencia generada por el generador de secuencia criptográfica 76 y CX para recuperar MX.
Cada uno de los generadores de secuencia criptográfica 72 y 76 genera una secuencia seudoaleatoria basada en la clave de sesión respectiva 56 o 68, por lo que sería inviable para un usuario no autorizado que no tiene acceso a las claves de sesión y al estado del sistema para predecir las secuencias seudoaleatorias reales. Los generadores de secuencias criptográficas 72 y 76 están sincronizados para generar una nueva secuencia para cada transacción a través del enlace 34, o una vez por varias transacciones de comunicación.
Los generadores de secuencias criptográficas 72 y 76 pueden generar la secuencia seudoaleatoria mediante el uso de cualquier procedimiento adecuado. En una realización, el generador de secuencias criptográficas 72 comprende una función hash, tal como SHA-2, y un contador (no mostrado) que se incrementa por transacción (o por varias transacciones). El generador de secuencia criptográfica 72 genera la secuencia de salida calculando la función hash sobre la clave de sesión 56 y el valor del contador.
En otra realización, el generador de secuencia criptográfica 72 calcula la función hash sobre la clave de sesión, el valor del contador y los datos de texto sin formato (o parte de los mismos) que se transmitieron en una transacción anterior y, por lo tanto, ambos lados lo conocen. En otra realización más, por ejemplo, cuando el tamaño de la salida de la función hash es criptográficamente insuficiente, el generador de secuencia criptográfica 72 introduce además el resultado de la función hash en un Registro de Cambio de Retroalimentación Lineal (LFSR) cuya salida sirve como secuencia seudoaleatoria.
Las configuraciones del sistema de almacenamiento seguro 20, el dispositivo de memoria 24 y el anfitrión 28 en la Figura 1 son configuraciones de ejemplo, que se eligen únicamente por motivos de claridad conceptual. En realizaciones alternativas, también se puede usar cualquier otra configuración adecuada de un sistema de almacenamiento seguro, dispositivo de memoria y anfitrión. Por ejemplo, en una realización, el anfitrión se comunica con el dispositivo de memoria a través de un controlador de memoria adicional. En esta forma de realización, cada uno de los enlaces entre el anfitrión y el controlador de memoria, y entre el controlador de memoria y el dispositivo de memoria, se puede asegurar mediante el uso de las técnicas divulgadas. En otra realización, el propio anfitrión sirve como controlador de memoria que gestiona el dispositivo de memoria.
Los diferentes elementos del dispositivo de memoria 24 y el anfitrión 28, tales como la unidad de mezcla 48, el cifrado de flujo 52, el generador de secuencia criptográfica 72, el descifrador 60, la unidad de desmezcla 64 y el generador de secuencia criptográfica 76 pueden implementarse mediante el uso de cualquier hardware adecuado, como en un circuito integrado de aplicación específica (ASIC) o una matriz de puerta programable en campo (FPGA). En algunas realizaciones, algunos elementos del dispositivo de memoria 24 y el anfitrión 28 pueden implementarse mediante el uso de software o mediante el uso de una combinación de elementos de hardware y software.
En algunas realizaciones, ciertos elementos del dispositivo de memoria 24 y/o el anfitrión 28, como la unidad de mezcla 48 y/o la unidad de desmezcla 64, pueden comprender un procesador de propósito general, que está programado en software para llevar a cabo las funciones descritas en la presente memoria. El software puede descargarse al procesador en forma electrónica, a través de una red, por ejemplo, o puede, alternativamente o adicionalmente, proporcionarse y/o almacenarse en medios tangibles no transitorios, como una memoria magnética, óptica o electrónica.
En el ejemplo de la Figura 1, un anfitrión 28 se comunica con un único dispositivo de memoria 24. En realizaciones alternativas, el anfitrión, tal como un controlador de memoria, puede comunicarse con múltiples dispositivos de memoria, cada uno con sus respectivas claves de enlace y sesión. En tales realizaciones, el anfitrión o controlador de memoria debe comunicarse con cada dispositivo de memoria mediante el uso de claves secretas respectivas coincidentes.
En el ejemplo de la Figura 1 anterior, el lado de envío aplica el cifrado después de la mezcla de datos y el lado de recepción aplica el descifrado y luego la desmezcla. En realizaciones alternativas, se puede aplicar la mezcla después de cifrar en el lado de envío y descifrar después de desmezclar en el lado de recepción.
En la descripción que sigue y en las reivindicaciones, los diversos elementos del dispositivo de memoria 24 y/o el anfitrión 28 se denominan colectivamente circuitos lógicos.
Ejemplos de realizaciones para la mezcla criptográfica de datos
La Figura 2 es un diagrama que ilustra esquemáticamente un procedimiento para la mezcla criptográfica, de acuerdo con una realización de la presente invención. La mezcla criptográfica corresponde a un mapeo reversible de bits de entrada a bits de salida mediante el uso de una clave de mezcla secreta.
En el presente ejemplo, el procedimiento incluye la mezcla criptográfica y las partes de desmezcla que se llevan a cabo mediante la respectiva unidad de mezcla 48 y la unidad de desmezcla 64. Como se muestra en la Figura 1 anterior, la salida de la unidad de mezcla 48 se cifra en el lado NVM y se descifra en el lado del anfitrión, de modo que efectivamente los datos mixtos MX generados por la unidad de mezcla 48 se introducen en la unidad de desmezcla 64. Por lo tanto, aunque en la práctica el flujo de datos incluye típicamente cifrado y descifrado de datos, estos elementos se omiten en aras de la claridad, y el procedimiento de la Figura 2 se describe con la salida de la unidad de mezcla 48 que ingresa directamente a la unidad de desmezcla 64.
En el ejemplo de la Figura 2, la operación de mezcla se basa en la multiplicación de Galois-Field (GF). La unidad de mezcla 48 comprende un multiplicador GF de 32 bits 90_1 y un LFSR 94. El multiplicador GF 90_1 acepta un DX de datos de texto plano de 32 bits y una clave de mapeo secreta K de 32 bits de LFSr 94. El multiplicador de GF 90_1 multiplica DX por K en el GF respectivo para producir la salida de 32 bits MX = DX*K.
La unidad de mezcla 48 inicializa el LFSR 94 a un valor secreto inicial denominado R. El valor inicial R se deriva típicamente de la clave de sesión y, por lo tanto, es conocido tanto por la parte emisora como por la receptora. El desplazamiento de LFSR 94 corresponde a la multiplicación por 2 en el campo GF respectivo. Para cada nueva entrada DX (o por varias de estas entradas), LFSR 94 cambia para producir una nueva clave de mapeo K respectiva, logrando así el mapeo criptográfico de DX a MX.
La unidad de desmezcla 64 realiza un mapeo inverso criptográfico con respecto a la unidad de mezcla 48. La unidad de desmezcla 64 comprende un multiplicador GF de 32 bits 90_2 (similar al multiplicador GF en el lado del dispositivo de memoria) y un Lf Sr 98 denominado LFSR_INV. Cuando LFSR 94 se inicializa a R, LFSR_INV 98 se inicializa a la inversa multiplicativa R-1. Además, cambiar LFSR_INV 98 equivale a multiplicar por 2-1. Como resultado, al sincronizar entre el desplazamiento de LFSR 94 y LFSR_INV 98, la salida de LFSR_INV 98 es igual a la inversa multiplicativa R-1 de la salida de LFSR 94 en todo momento. En otras palabras, cuando LFSR 94 genera un secreto K de 32 bits, LFSR_INV 98 genera un secreto K respectivo de 32 bits.-1. Multiplicando MX por K-1, GF multiplicador 90_2 recupera DX de MX.
En una realización, R puede comprender cualquier valor, y el anfitrión 28 calcula el inverso multiplicativo R-1 mediante el uso de cualquier procedimiento adecuado. En otra realización, en la que los recursos computacionales para encontrar el inverso multiplicativo R-1 están limitados, R está restringido a la forma R = 2r, siendo r un número entero no negativo. De manera similar, el inverso multiplicativo está restringido a la forma R-1= (2-1)r, en el que el valor 2-1 en el respectivo campo GF se puede determinar de antemano, por ejemplo, en el momento del diseño del molde. Calculando R-1 mediante el uso de operaciones de potencia es significativamente menos complejo que calcular la inversión multiplicativa para un número general.
Las figuras 3 y 4 son diagramas que ilustran esquemáticamente procedimientos alternativos para la mezcla criptográfica, de acuerdo con una realización de la presente invención. En la descripción que sigue, asumimos que las unidades de mezcla y desmezcla 48 y 64 de la Figura 1 se implementan mediante el uso de las respectivas realizaciones representadas en las figuras 3 y 4, respectivamente.
En la Figura 3, la operación de mezcla criptográfica se implementa mediante el uso de dos etapas de mezcla denominadas ETAPA_1 y ETAPA_2, cada una de las cuales comprende cuatro multiplicadores de g F 100 de 8 bits. Los multiplicadores GF de ETAPA_1 y ETAPA_2 se numeran 100_1~100_4 (#1~#4) y 100_5~100_8 (#5~#8), respectivamente. Un LFSR 104 de 64 bits genera dos secretos K1 y K2 de 32 bits para ser usados en las respectivas etapas ETAPA_1 y ETAPA_2.
En ETAPA_1, la entrada DX de 32 bits se divide en cuatro subentradas de 8 bits denominadas X1 ~X4. Adicionalmente, K1 se divide en cuatro subclaves de 8 bits denominadas K11-K14. El multiplicador de GF 100_1 multiplica X1 por K11 y genera los datos Y1. De manera similar, los multiplicadores de GF 100_2~100_4, calcular respectivamente Y2 = X2*K12, Y3 = X3*K13y Y4=X4*K14.
En ETAPA_2, K2 se divide en cuatro subclaves de 8 bits denominadas K21-K24 que se ingresan respectivamente a los multiplicadores GF 100_5~100_8 (#5~#8). Cada uno de los multiplicadores de GF 100_5~100_8 (#5~#8) acepta una segunda entrada Z1 de 8 bits respectiva~Z4. Un esquema de interconexión mapea Y1-Y4 a Z1-Z4.
En el presente ejemplo, el esquema de interconexión divide cada uno de Y1-Y4 en cuatro grupos de 2 bits. Cada uno de Z1-Z4 se construye combinando cuatro grupos de 2 bits, cada uno de los cuales se origina en un Y1 diferente-resultado de Y4. Multiplicadores de GF 100_5~100_8 (#5~#8) calcular respectivamente las salidas de 8 bits W1 = Z1 *K21, W2 = Z2*K22, W3 = Z3*K23 y W4 = Z4*K24, que luego se combinan en una salida de datos mixtos MX de 32 bits.
La Figura 4 representa una realización de la unidad de desmezcla 64 que es compatible con la realización de la unidad de mezcla 48 representada en la Figura 3 anterior. La realización representada en la Figura 4 comprende dos etapas de desmezcla ETAPA_3 y ETAPA_4, cada una de las cuales comprende cuatro multiplicadores de GF 100 de 8 bits que están numerados 100_9~100_12 (#9~#12) y 100_13~100_16 (#13~#16), respectivamente. ETAPA_3 y ETAPA 4 aplican mezcla inversa con respecto a las respectivas operaciones de mezcla de ETAPA 2 y ETAPA_1.
Un LFSR 108 de 64 bits (denominado LFSR_INV) genera dos claves de asignación de 32 bits denominadas K1_INV y K2_INV. En ETAPA_3, K2_INV se divide en cuatro subclaves K21-1~K24-1, que cada uno es igual al inverso multiplicativo de K21-K24, respectivamente. De manera similar, en ETAPA_4, K1_ iNv se divide en cuatro subsecretos K11-1~K14-1, que cada uno es igual al inverso multiplicativo de K11-K14, respectivamente.
LFSR 104 y LFSR_INV 108 se inicializan a los valores iniciales respectivos, y luego se cambian en sincronización, de modo que las ocho subclaves usadas en ETAPA_3 y ETAPA_4 para la desmezcla sean iguales al inverso multiplicativo de las respectivas ocho subclaves usadas para mezclar en ETAPA_2 y ETAPA_1.
En una realización, tanto LFSR 104 como LFSR_INV 108 se inicializan de forma idéntica y se desplazan en sincronización de modo que ambos emiten valores idénticos de 32 bits. Las claves inversas de 8 bits de la Figura 4 se derivan de los respectivos grupos de 8 bits de la salida LFSR 104, mediante el uso de tablas de consulta que convierten los elementos GF en su inverso multiplicativo GF.
En ETAPA_3, MX de 32 bits se divide en las cuatro entradas de 8 bits W1-W4. ETAPA_3 recupera los datos Z1-Z4 calculando Z1=W1*K21-1,..., Z4=W4*K24-1. La unidad de desmezcla 64 recupera Y1-Y4 desde Z1-Z4 aplicando un esquema de interconexión entre ETAPA_3 y ETAPA_4 que invierte el mapeo de Y1-Y4 a Z1-Z4 usado en la unidad de mezcla 48 de la Figura 3 anterior. ETAPA_4 recupera X1-X4 calculando X1=Y1*K11-1,..., X4=Y4*K14-1. DX de 32 bits se recupera luego combinando los cuatro X1 de 8 bits-resultados X4.
En las técnicas divulgadas, un anfitrión y un dispositivo de memoria se comunican a través de un enlace seguro. Sin embargo, las técnicas presentadas son aplicables para asegurar cualquier otro enlace de comunicación adecuado a través del cual se comuniquen otras partes adecuadas.
Aunque las realizaciones descritas en la presente memoria se refieren principalmente a aplicaciones de memoria segura, los procedimientos y sistemas descritos en la presente memoria también se pueden usar en otras aplicaciones, como en varias otras aplicaciones de transmisión de datos. Por ejemplo, las técnicas divulgadas son aplicables para asegurar cualquier enlace de comunicación por cable o inalámbrico, así como también para asegurar la interfaz de un almacenamiento de archivos.

Claims (10)

REIVINDICACIONES
1. Un aparato de protección de datos (24) que comprende:
una interfaz, que se configura para comunicarse a través de un enlace de comunicación (34); y
caracterizado por un circuito lógico, que se configura para convertir entre un primer flujo de bits de texto plano (DX) y un segundo flujo de bits cifrados (CX) que se intercambian a través del enlace de comunicación (34), aplicando una cascada de una operación de cifrado de flujo y una operación de mezcla que mapea criptográficamente bits de entrada a bits de salida,
en el que el enlace de comunicación (34) se conecta entre un dispositivo de memoria (24) y un procesador, y los bits cifrados intercambiados a través del enlace de comunicación (34) comprenden un código de software que se ejecuta en tiempo real en el procesador,
en el que el circuito lógico se configura para aplicar la operación de mezcla multiplicando los bits de entrada por una clave de mezcla no constante respectiva en un campo de Galois, GF, y
en el que el circuito lógico se configura para actualizar iterativamente la clave de mezcla (K) en coordinación con un aparato remoto (28) en un lado opuesto del enlace de comunicación (34), multiplicando la clave de mezcla (K) en el respectivo GF por un elemento constante o por el inverso multiplicativo GF del elemento constante, de modo que en cualquier momento dado la clave de mezcla es el inverso multiplicativo GF de una clave de mezcla correspondiente (K-1) usada por el aparato remoto (28).
2. El aparato de protección de datos (24) de acuerdo con la reivindicación 1, en el que el circuito lógico comprende:
dos o más etapas de mezclado interconectadas, que comprenden al menos la primera y la última etapa de mezclado (ETAPA_1, ETAPA 2), cada una de las etapas de mezclado comprende múltiples multiplicadores de campo de Galois, GF (100_1~100_4, 100_5~100_8), y en el que el circuito lógico se configura para aplicar la operación de mezcla dividiendo los bits de entrada entre los multiplicadores GF (100_1 ~100_4) de la primera etapa de mezcla (ETAPA_1) y la combinación de los resultados de la última etapa de mezcla (ETAPA 2) para producir los bits de salida.
3. El aparato de protección de datos (24) de acuerdo con la reivindicación 2, en el que cada uno de los multiplicadores GF (100_1~100_4, 100_5—100_8) en una o más etapas de mezcla (ETApA_1, ETAPA_2) se configura para aceptar bits del multiplicando de los bits de entrada o de una etapa de mezcla previa, y para aceptar además una clave de mezcla respectiva (K11—K14, K21—K24), en el que la clave de mezcla (K11—K14, K21—K24) es el inverso multiplicativo GF de una clave de mezcla correspondiente (K11-1—K14-1, K21-1—K24-1) en un aparato remoto (28) en un lado opuesto del enlace de comunicación (34), y en el que el circuito lógico se configura para aplicar la operación de mezcla al multiplicar los bits del multiplicando por la respectiva clave de mezcla (K11—K14, K21—K24) en cada uno de los múltiples multiplicadores de GF (100_1—100_4, 100_5—100_8).
4. El aparato de protección de datos (24) de acuerdo con la reivindicación 1, en el que un elemento constante y un inverso multiplicativo GF de la operación de mezcla son 2 y 2-1 respectivamente, y en el que el circuito lógico se configura para generar una clave de mezcla (K) mediante el uso de un Registro de Cambio de Retroalimentación Lineal, LFSR (94), que implementa una operación de multiplicación GF mediante el uso de una operación de cambio.
5. El aparato de protección de datos (24) de acuerdo con la reivindicación 4, en el que el circuito lógico se configura para inicializar la clave de mezcla (K) a un número (R) que es una potencia entera de 2 o 2-1 en el respectivo GF de modo que una clave de mezcla inicial es el inverso multiplicativo GF de una clave de mezcla inicial correspondiente usada por el aparato remoto (28).
6. Un procedimiento de protección de datos que comprende:
intercambiar bits cifrados a través de un enlace de comunicación (34),
caracterizado porque el enlace de comunicación (34) se conecta entre un dispositivo de memoria (24) y un procesador, e intercambiar los bits cifrados comprende intercambiar el código de software que se ejecuta en tiempo real en el procesador; y
convertir entre un primer flujo de bits de texto plano (DX) y un segundo flujo de bits cifrados (CX) que se intercambian a través del enlace de comunicación (34), aplicando una cascada de una operación de cifrado de flujo y una operación de mezcla que mapea criptográficamente bits de entrada a bits de salida,
en el que la aplicación de la operación de mezcla comprende:
multiplicar los bits de entrada por una clave de mezcla no constante respectiva en un campo de Galois, GF y
actualizar iterativamente la clave de mezcla (K) en coordinación con un aparato remoto (28) en un lado opuesto del enlace de comunicación (34), multiplicando la clave de mezcla (K) en el respectivo GF por un elemento constante o por el inverso multiplicativo GF del elemento constante, de modo que en un momento dado la clave de mezcla (K) es el inverso multiplicativo GF de una clave de mezcla correspondiente (K-1) usada por el aparato remoto (28).
7. El procedimiento de protección de datos de acuerdo con la reivindicación 6, y que comprende proporcionar dos o más etapas de mezcla interconectadas, que comprenden al menos la primera y la última etapas de mezcla (ETAPA_1, ETAPA 2), comprendiendo cada una de las etapas de mezcla múltiples multiplicadores de campo de Galois, GF (100_1~100_4, 100_5~100_8), en el que la aplicación de la operación de mezcla comprende: dividir los bits de entrada entre los multiplicadores GF (100_1~100_4) de la primera etapa de mezcla (ETAPA_1) y la combinación de los resultados de la última etapa de mezcla (ETAPA 2) para producir los bits de salida.
8. El procedimiento de protección de datos de acuerdo con la reivindicación 7, en el que la aplicación de la operación de mezcla comprende:
proporcionar cada uno de los multiplicadores GF (100_1~100_4, 100_5~100_8) en una o más etapas de mezcla (ETAPA_1, ETAPA_2) bits del multiplicando de los bits de entrada o de una etapa de mezcla previa, y una clave de mezcla respectiva (K11-K14, K21-K24), en el que la clave de mezcla (M 1-K 14 , K21-K24) es el inverso multiplicativo GF de una clave de mezcla correspondiente (K11-1~K14-1, K21-1~K24-1) en un aparato remoto (28) en un lado opuesto del enlace de comunicación (34); y
multiplicar los bits del multiplicando por la clave de mezcla respectiva (K11-K14, K21-K24) en cada uno de los múltiples multiplicadores de GF (100_1~100_4, 100_5~100_8).
9. El procedimiento de protección de datos de acuerdo con la reivindicación 6, en el que un elemento constante y un inverso multiplicativo GF de la operación de mezcla son 2 y 2-1 respectivamente, y en el que la aplicación de la operación de mezcla comprende:
generar una clave de mezcla (K) mediante el uso de un registro de desplazamiento de retroalimentación lineal, LFSR (94), que implementa una operación de multiplicación GF mediante el uso de una operación de desplazamiento.
10. El procedimiento de protección de datos de acuerdo con la reivindicación 9, en el que la actualización de la clave de mezcla (K) comprende:
inicializar la clave de mezcla (K) a un número (R) que es una potencia entera de 2 o 2-1 en el respectivo GF de modo que una clave de mezcla inicial es el inverso multiplicativo GF de una clave de mezcla inicial correspondiente usada por el aparato remoto (28).
ES14185186T 2013-09-22 2014-09-17 Aparato de protección de datos y procedimiento del mismo Active ES2826985T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361880932P 2013-09-22 2013-09-22

Publications (1)

Publication Number Publication Date
ES2826985T3 true ES2826985T3 (es) 2021-05-19

Family

ID=51570277

Family Applications (2)

Application Number Title Priority Date Filing Date
ES14184824T Active ES2709124T3 (es) 2013-09-22 2014-09-15 Procedimiento de autentificación de datos y aparato para el mismo
ES14185186T Active ES2826985T3 (es) 2013-09-22 2014-09-17 Aparato de protección de datos y procedimiento del mismo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES14184824T Active ES2709124T3 (es) 2013-09-22 2014-09-15 Procedimiento de autentificación de datos y aparato para el mismo

Country Status (7)

Country Link
US (3) US9455962B2 (es)
EP (2) EP2852090B1 (es)
JP (2) JP6277101B2 (es)
KR (2) KR101669157B1 (es)
CN (2) CN104468089B (es)
ES (2) ES2709124T3 (es)
TW (2) TWI531925B (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
EP3082290A1 (en) * 2015-04-17 2016-10-19 Gemalto Sa Device for managing multiple accesses to a secure module of a system on chip of an apparatus
US10104048B2 (en) * 2015-07-17 2018-10-16 Robert Bosch Gmbh Method and system for secure key generation over an insecure shared communication medium
JP2017076854A (ja) 2015-10-14 2017-04-20 富士通株式会社 電子装置、及びデータ検証方法
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
US10438022B2 (en) * 2016-12-16 2019-10-08 Arm Limited Logic encryption using on-chip memory cells
CN106936819B (zh) * 2017-03-01 2019-11-01 无锡紫光存储系统有限公司 云存储子系统及安全存储系统
US20180270205A1 (en) * 2017-03-15 2018-09-20 Image Match Design Inc. Fingerprint-sensing integrated circuit and scrambling encryption method thereof
ES2685123B1 (es) * 2017-03-31 2019-07-18 Gruprex S L Dispositivo de cifrado individual con mecanismo de protección de credenciales de usuario
TWI666569B (zh) * 2017-04-19 2019-07-21 映智科技股份有限公司 應用在指紋感測器及主控端之間的橋接晶片及指紋加密方法、指紋偵測及加密電路及方法
CN107392063B (zh) * 2017-07-11 2019-05-28 深圳大普微电子科技有限公司 存储设备和主机的绑定、验证方法及系统
WO2019079890A1 (en) * 2017-10-27 2019-05-02 Quantropi Inc. METHODS AND SYSTEMS FOR SECURE DATA COMMUNICATION
US10476664B2 (en) 2017-10-27 2019-11-12 Quantropi Inc. Methods and systems for data protection
US11323247B2 (en) 2017-10-27 2022-05-03 Quantropi Inc. Methods and systems for secure data communication
DE102018208851A1 (de) * 2018-06-05 2019-12-05 Infineon Technologies Ag Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
KR20200016777A (ko) * 2018-08-07 2020-02-17 삼성전자주식회사 안전 로직을 포함하는 장치
US10951415B2 (en) * 2019-03-13 2021-03-16 Digital 14 Llc System, method, and computer program product for implementing zero round trip secure communications based on noisy secrets with a polynomial secret sharing scheme
WO2020186125A1 (en) 2019-03-13 2020-09-17 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
US10892891B2 (en) * 2019-03-13 2021-01-12 Digital 14 Llc System, method, and computer program product for zero round trip secure communications based on two noisy secrets
CN110909375B (zh) * 2019-10-12 2022-04-08 浙江工业大学 一种保留分布特征的地址脱敏方法
US11449601B2 (en) * 2020-01-08 2022-09-20 Red Hat, Inc. Proof of code compliance and protected integrity using a trusted execution environment
US11329797B2 (en) 2020-02-25 2022-05-10 Quantropi Inc. Method and system for secure phase-encoded digital communication over optical channels
US11693733B2 (en) 2021-01-21 2023-07-04 Kioxia Corporation Soft error detection and correction for data storage devices
WO2024015079A1 (en) * 2022-07-15 2024-01-18 Hewlett-Packard Development Company, L.P. Digital signature

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521853A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Secure microprocessor/microcomputer with secured memory
EP0681768B1 (en) 1992-12-30 2001-03-28 Telstra Corporation Limited A method and apparatus for generating a cipher stream
US5799088A (en) * 1993-12-01 1998-08-25 Raike; William Michael Non-deterministic public key encrypton system
US5671283A (en) 1995-06-08 1997-09-23 Wave Systems Corp. Secure communication system with cross linked cryptographic codes
US6272637B1 (en) 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
WO2000057290A1 (fr) 1999-03-19 2000-09-28 Hitachi, Ltd. Processeur d'informations
EP1063811B1 (en) 1999-06-22 2008-08-06 Hitachi, Ltd. Cryptographic apparatus and method
JP2003506750A (ja) * 1999-08-09 2003-02-18 クゥアルコム・インコーポレイテッド メッセージ認証コードを発生するための方法および装置
FR2801751B1 (fr) 1999-11-30 2002-01-18 St Microelectronics Sa Composant electronique de securite
CA2365236A1 (en) 2000-01-21 2001-07-26 Sony Corporation Data authentication system
US7242772B1 (en) * 2000-09-07 2007-07-10 Eastman Kodak Company Encryption apparatus and method for synchronizing multiple encryption keys with a data stream
US6934389B2 (en) 2001-03-02 2005-08-23 Ati International Srl Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus
KR100385228B1 (ko) 2001-04-18 2003-05-27 삼성전자주식회사 불휘발성 메모리를 프로그램하는 방법 및 장치
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US6760918B2 (en) * 2001-06-29 2004-07-06 Scientific-Atlanta, Inc. Method and apparatus for recordable media content distribution
EP1293856A1 (fr) 2001-09-18 2003-03-19 EM Microelectronic-Marin SA Circuit Intégré sécurisé comprenant des parties à caractère confidentiel, et procédé pour sa mise en action
US7490250B2 (en) 2001-10-26 2009-02-10 Lenovo (Singapore) Pte Ltd. Method and system for detecting a tamper event in a trusted computing environment
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7137004B2 (en) 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
WO2003053001A1 (en) 2001-12-18 2003-06-26 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US6768943B2 (en) 2002-04-18 2004-07-27 Aviation Communication & Surveillance Systems, Llc System and method using environment memory having signatures
US7248696B2 (en) 2002-09-12 2007-07-24 International Business Machines Corporation Dynamic system bus encryption using improved differential transitional encoding
US7194626B2 (en) 2002-11-21 2007-03-20 International Business Machines Corporation Hardware-based secure code authentication
US8140824B2 (en) 2002-11-21 2012-03-20 International Business Machines Corporation Secure code authentication
US7269747B2 (en) 2003-04-10 2007-09-11 Lenovo (Singapore) Pte. Ltd. Physical presence determination in a trusted platform
US6965521B2 (en) 2003-07-31 2005-11-15 Bae Systems, Information And Electronics Systems Integration, Inc. Read/write circuit for accessing chalcogenide non-volatile memory cells
US7533262B2 (en) 2003-08-01 2009-05-12 Microsoft Corporation Media data protection
US7421076B2 (en) * 2003-09-17 2008-09-02 Analog Devices, Inc. Advanced encryption standard (AES) engine with real time S-box generation
DE10345385B4 (de) 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
US20050114687A1 (en) 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
CN1981527A (zh) 2003-12-05 2007-06-13 美国电影协会 显示适配器的保密视频系统
ATE522994T1 (de) 2004-07-05 2011-09-15 Abb Research Ltd Authentifizierung von kurznachrichten.
WO2006014554A2 (en) 2004-07-07 2006-02-09 University Of Maryland Method and system for monitoring system memory integrity
US20060026418A1 (en) 2004-07-29 2006-02-02 International Business Machines Corporation Method, apparatus, and product for providing a multi-tiered trust architecture
US7484099B2 (en) 2004-07-29 2009-01-27 International Business Machines Corporation Method, apparatus, and product for asserting physical presence with a trusted platform module in a hypervisor environment
US7822993B2 (en) 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US20060107054A1 (en) 2004-11-16 2006-05-18 Young David W Method, apparatus and system to authenticate chipset patches with cryptographic signatures
WO2006092753A1 (en) 2005-03-01 2006-09-08 Nxp B.V. Generator for generating a message authentication code, method of generating a message authentication code, program element and computer-readable medium
JP4537908B2 (ja) 2005-03-29 2010-09-08 株式会社東芝 プロセッサ、メモリ、コンピュータシステムおよびシステムlsi
FR2885709A1 (fr) 2005-05-10 2006-11-17 St Microelectronics Sa Controle d'integrite d'une memoire externe a un processeur
US20070101424A1 (en) 2005-07-25 2007-05-03 Nec Laboratories America, Inc. Apparatus and Method for Improving Security of a Bus Based System Through Communication Architecture Enhancements
US8041032B2 (en) 2005-08-19 2011-10-18 Cardiac Pacemakers, Inc. Symmetric key encryption system with synchronously updating expanded key
US20070133437A1 (en) 2005-12-13 2007-06-14 Wengrovitz Michael S System and methods for enabling applications of who-is-speaking (WIS) signals
US8452981B1 (en) 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US8997255B2 (en) 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
US20080155273A1 (en) 2006-12-21 2008-06-26 Texas Instruments, Inc. Automatic Bus Encryption And Decryption
US7882365B2 (en) 2006-12-22 2011-02-01 Spansion Llc Systems and methods for distinguishing between actual data and erased/blank memory with regard to encrypted data
US7836269B2 (en) 2006-12-29 2010-11-16 Spansion Llc Systems and methods for access violation management of secured memory
US8781111B2 (en) 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US7739565B1 (en) 2007-07-19 2010-06-15 Xilinx, Inc. Detecting corruption of configuration data of a programmable logic device
KR101321472B1 (ko) 2007-07-23 2013-10-25 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 프로그램 방법
US8578179B2 (en) 2007-10-19 2013-11-05 Samsung Electronics Co., Ltd Safe command execution and error recovery for storage devices
US8180055B2 (en) 2008-02-05 2012-05-15 Harris Corporation Cryptographic system incorporating a digitally generated chaotic numerical sequence
US8549246B2 (en) 2008-04-30 2013-10-01 Micron Technology, Inc. SPI NAND protected mode entry methodology
US7826271B2 (en) 2008-06-12 2010-11-02 Sandisk Corporation Nonvolatile memory with index programming and reduced verify
JP4620146B2 (ja) 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
EP2166696B1 (fr) 2008-08-27 2016-10-05 STMicroelectronics (Rousset) SAS Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
US20100098247A1 (en) 2008-10-20 2010-04-22 Nokia Corporation Method, Apparatus And Computer Program Product For Generating An Encryption Key And An Authentication Code Key Utilizing A Generic Key Counter
US9117094B2 (en) 2008-10-29 2015-08-25 Microsoft Technology Licensing, Llc Data location obfuscation
US7881094B2 (en) 2008-11-12 2011-02-01 Seagate Technology Llc Voltage reference generation for resistive sense memory cells
TWI393143B (zh) 2008-12-05 2013-04-11 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
US8649509B2 (en) 2008-12-18 2014-02-11 At&T Intellectual Property I, L.P. Systems and computer program products for generating and verifying randomized hash values
US20100235689A1 (en) * 2009-03-16 2010-09-16 Qualcomm Incorporated Apparatus and method for employing codes for telecommunications
US8429513B2 (en) 2009-07-02 2013-04-23 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory
US20110022916A1 (en) 2009-07-24 2011-01-27 Prasanna Desai Method and system for saving power for packet re-transmission in an encrypted bluetooth low power link layer connection
US8756439B1 (en) 2009-08-28 2014-06-17 Physical Optics Corporation Encryption key management for secured access
US8225182B2 (en) 2009-10-04 2012-07-17 Mellanox Technologies Ltd. Processing of block and transaction signatures
US8693683B2 (en) 2009-11-25 2014-04-08 Aclara Technologies Llc Cryptographically secure authentication device, system and method
TWI436372B (zh) 2010-01-28 2014-05-01 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
EP2388730A1 (en) 2010-05-17 2011-11-23 Nagravision S.A. Method for generating software code
US20110285421A1 (en) 2010-05-24 2011-11-24 Alexander Roger Deas Synchronous logic system secured against side-channel attack
US8427194B2 (en) 2010-05-24 2013-04-23 Alexander Roger Deas Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US20120124374A1 (en) * 2010-11-12 2012-05-17 Nxp B.V. Secured acknowledge protocol for automotive remote keyless entry systems and for networked sensor devices
KR101792868B1 (ko) 2010-11-25 2017-11-02 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
GB2487901B (en) 2011-02-03 2019-12-04 Advanced Risc Mach Ltd Power signature obfuscation
US8745408B2 (en) 2011-04-08 2014-06-03 Infineon Technologies Ag Instruction encryption/decryption arrangement and method with iterative encryption/decryption key update
US8699712B2 (en) 2011-09-02 2014-04-15 Blackberry Limited Randomization of plain text for GSM SACCH
GB2494731B (en) 2011-09-06 2013-11-20 Nds Ltd Preventing data extraction by sidechannel attack
US8832455B1 (en) 2011-09-21 2014-09-09 Google Inc. Verified boot path retry
US9128876B2 (en) 2011-12-06 2015-09-08 Honeywell International Inc. Memory location specific data encryption key
US9304944B2 (en) 2012-03-29 2016-04-05 Broadcom Corporation Secure memory access controller
WO2013175642A1 (ja) 2012-05-25 2013-11-28 株式会社東芝 メモリデバイスおよびメモリシステム
US8650398B2 (en) 2012-06-14 2014-02-11 Kabushiki Kaisha Toshiba Device authentication using restricted memory
US8751814B2 (en) 2012-06-14 2014-06-10 Kabushiki Kaisha Toshiba Device
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US20140281564A1 (en) 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Method of authenticating access to memory device
TWI620094B (zh) 2013-05-31 2018-04-01 凱爾拉吉克斯股份有限公司 電荷分布控制系統、加密系統和藉由操作其防止以旁通道攻擊之方法

Also Published As

Publication number Publication date
EP2852089B1 (en) 2020-08-26
KR20150033557A (ko) 2015-04-01
CN104463007B (zh) 2018-10-16
JP6277101B2 (ja) 2018-02-07
JP6030103B2 (ja) 2016-11-24
JP2015062286A (ja) 2015-04-02
CN104468089A (zh) 2015-03-25
TW201512892A (zh) 2015-04-01
EP2852090B1 (en) 2018-11-07
CN104468089B (zh) 2018-11-13
US9641491B2 (en) 2017-05-02
CN104463007A (zh) 2015-03-25
JP2015062064A (ja) 2015-04-02
TWI531925B (zh) 2016-05-01
US9455962B2 (en) 2016-09-27
US20150089223A1 (en) 2015-03-26
KR101702545B1 (ko) 2017-02-13
KR20150033558A (ko) 2015-04-01
US9819657B2 (en) 2017-11-14
US20150089234A1 (en) 2015-03-26
TWI533653B (zh) 2016-05-11
TW201513626A (zh) 2015-04-01
ES2709124T3 (es) 2019-04-15
KR101669157B1 (ko) 2016-10-25
EP2852090A1 (en) 2015-03-25
EP2852089A1 (en) 2015-03-25
US20160294792A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
ES2826985T3 (es) Aparato de protección de datos y procedimiento del mismo
US9973334B2 (en) Homomorphically-created symmetric key
JP6138333B2 (ja) 鍵回復攻撃を妨害する対抗手段としての送信機および受信機のペアリングのためのマスタ鍵暗号化関数
ES2717999T3 (es) Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
KR101328618B1 (ko) 보안성을 향상시키는 순열 데이터 변환
JP5954030B2 (ja) 暗号処理装置および方法
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
Abbas et al. An efficient implementation of PBKDF2 with RIPEMD-160 on multiple FPGAs
JP6348273B2 (ja) 情報処理システム
CN111181906A (zh) 一种数据共享方法、装置、设备、系统及存储介质
US10341089B2 (en) High-speed AES with transformed keys
Sasongko et al. Architecture for the secret-key BC3 cryptography algorithm
Leon et al. Performance analysis of the confidentiality security service in the IEEE 802.11 using WEP, AES-CCM, and ECC
KR100933312B1 (ko) 데이터 암호화와 인증이 가능한 아리아 암호화 방법 및이를 수행하기 위한 시스템
Landge et al. VHDL based Blowfish implementation for secured embedded system design
Abbas et al. Dictionary Attack on TRUECRYPT with RIVYERA S3-5000
Harba Secure Data Encryption by Combination AES, RSA and HMAC
KR20070063713A (ko) 아리아 알고리즘을 이용한 블록 암호화 장치
RU2199826C2 (ru) Способ итеративного шифрования блоков цифровых данных
Fitzgerald An Introduction to Authenticated Encryption