ES2875583T3 - Actualización de claves criptográficas almacenadas en la memoria no volátil - Google Patents
Actualización de claves criptográficas almacenadas en la memoria no volátil Download PDFInfo
- Publication number
- ES2875583T3 ES2875583T3 ES19151678T ES19151678T ES2875583T3 ES 2875583 T3 ES2875583 T3 ES 2875583T3 ES 19151678 T ES19151678 T ES 19151678T ES 19151678 T ES19151678 T ES 19151678T ES 2875583 T3 ES2875583 T3 ES 2875583T3
- Authority
- ES
- Spain
- Prior art keywords
- bit
- cryptographic key
- bits
- update
- sequence
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Aparato (26b) para generar una nueva instancia de una clave criptográfica de N bits (Ki+1) para su almacenamiento en una memoria no volátil (38), NVM, perteneciente a un dispositivo (22), en la que las celdas no programadas tienen un valor binario particular, el aparato (26b) caracterizado porque comprende: una interfaz de red (32); y un procesador (30), configurado para: generar una secuencia aleatoria de actualización de N bits (si), generar la nueva instancia de la clave criptográfica de N bits (Ki+i) negando cada bit en una instancia actual de la clave criptográfica de N bits (Ki) que tenga el valor binario particular y difiera de un bit posicionado correspondientemente en la secuencia de actualización aleatoria de N bits (Si), sin negar ningún bit en la instancia actual de la clave criptográfica de N bits (Ki) que no tenga el valor binario particular, y posteriormente a la generación de la nueva instancia de la clave criptográfica de N bits (Ki+1), mediante la interfaz de red (32), comunicar la nueva instancia de la clave criptográfica de N bits (Ki+i) al dispositivo (22) para su almacenamiento en la NVM (38).
Description
DESCRIPCIÓN
Actualización de claves criptográficas almacenadas en la memoria no volátil
Campo de la invención
La presente invención se refiere al campo de la ciberseguridad, y especialmente a las claves criptográficas utilizadas para cifrar la comunicación.
Antecedentes
La entropía H(N,p) = H(N,1-p) de una clave criptográfica de N bits, donde p es la probabilidad de que uno de los bits de la clave sea 0 o 1, cuantifica la aleatoriedad de la clave. Una clave con mayor entropía es más segura que una clave con menor entropía. Para claves con bits que son aleatorios, independientes e idénticamente distribuidos (iid), H(N,p) = NH(p) bits, donde H(p) = -(plog2p (1-p)log2(1-p)). Por ejemplo, para los bits iid insesgados (para los que p = 0,5), H(p) alcanza su valor máximo de uno, tal que H(N,p) = N.
Una memoria no volátil (NVM) contiene una pluralidad de celdas de memoria de un solo bit, cada una de las cuales puede estar en un estado programado o en un estado no programado. Normalmente, por convención, una celda no programada tiene el valor binario 1, mientras que una celda programada tiene el valor binario 0. En las NVM programables de un solo uso (OTP NVM), una operación de programación no puede deshacerse, es decir, una celda programada no puede desprogramarse (o "borrarse") posteriormente.
Sumario de la invención
Se proporciona, de acuerdo con algunas realizaciones de la presente invención, un aparato para generar una nueva instancia de una clave criptográfica de N bits para su almacenamiento en una memoria no volátil (NVM), perteneciente a un dispositivo, en el que las celdas no programadas tienen un valor binario particular. El aparato incluye una interfaz de red y un procesador. El procesador está configurado para generar una secuencia de actualización aleatoria de N bits. El procesador está configurado además para generar la nueva instancia de la clave criptográfica de N bits negando cada bit en una instancia actual de la clave criptográfica de N bits que tiene el valor binario particular y difiere de un bit correspondientemente posicionado en la secuencia de actualización aleatoria de N bits, sin negar ningún bit en la instancia actual de la clave criptográfica de N bits que no tiene el valor binario particular. El procesador está configurado además para, posteriormente a la generación de la nueva instancia de la clave criptográfica de N bits, utilizando la interfaz de red, comunicar la nueva instancia de la clave criptográfica de N bits al dispositivo para su almacenamiento en la NVM.
En algunas realizaciones, el valor binario particular es 1, y el procesador está configurado para negar cada bit en la instancia actual de la clave criptográfica de N bits que tiene el valor binario particular y difiere del bit correspondientemente posicionado en la secuencia de actualización aleatoria de N bits ejecutando una operación AND a nivel de bits entre la instancia actual de la clave criptográfica de N bits y la secuencia de actualización aleatoria de N bits.
En algunas realizaciones, el valor binario particular es 0, y el procesador está configurado para negar cada bit en la instancia actual de la clave criptográfica de N bits que tiene el valor binario particular y difiere del bit correspondientemente posicionado en la secuencia de actualización aleatoria de N bits ejecutando una operación OR a nivel de bits entre la instancia actual de la clave criptográfica de N bits y la secuencia de actualización aleatoria de N bits.
En algunas realizaciones, el procesador está configurado para generar cada bit en la secuencia de actualización aleatoria de N bits con una probabilidad de tener el valor binario particular que es mayor que 0,5.
En algunas realizaciones, la probabilidad es igual a n/2m para un número entero predeterminado m y un número entero variable n, y el procesador está configurado para generar la secuencia aleatoria de actualización de N bits:
expandiendo una semilla aleatoria insesgada, que tiene E bits, a N secuencias de m bits que corresponden a los bits de la secuencia aleatoria de actualización de N bits, respectivamente, y
para cada bit de la secuencia de actualización aleatoria de N bits, establecer el bit en el valor binario particular en respuesta a un valor de la secuencia de m bits correspondiente que sea menor que n.
En algunas realizaciones, el procesador está configurado además para, posteriormente a la comunicación de la nueva instancia de la clave criptográfica de N bits al dispositivo, utilizar la nueva instancia de la clave criptográfica de N bits para cifrar y descifrar la comunicación con el dispositivo.
En algunas realizaciones, el procesador está configurado además para, antes de comunicar la nueva instancia de la clave criptográfica de N bits al dispositivo, cifrar la nueva instancia de la clave criptográfica de N bits utilizando la instancia actual de la clave criptográfica de N bits.
Se proporciona además, de acuerdo con algunas realizaciones de la presente invención, un aparato que incluye una memoria no volátil (NVM), que incluye una pluralidad de celdas de un solo bit, configurada para almacenar una clave criptográfica de N bits, donde las celdas no programadas tienen un valor binario particular, y un procesador. El procesador está configurado para generar una secuencia de actualización aleatoria de N bits. El procesador está configurado además para generar una nueva instancia de la clave criptográfica de N bits negando un bit de caché en una instancia actual de la clave criptográfica de N bits que tiene el valor binario particular y difiere de un bit correspondientemente posicionado en la secuencia de actualización aleatoria de N bits, sin negar ningún bit en la instancia actual de la clave criptográfica de N bits que no tiene el valor binario particular. El procesador está configurado además para, posteriormente a la generación de la nueva instancia de la clave criptográfica de N bits, reemplazar la instancia actual de la clave criptográfica de N bits con la nueva instancia de la clave criptográfica de N bits en la NVM.
En algunas realizaciones, el procesador está configurado para generar cada bit en la secuencia de actualización aleatoria de N bits con una probabilidad particular de tener el valor binario particular, y el procesador está configurado además para calcular la probabilidad particular, antes de generar la secuencia de actualización aleatoria de N bits, de tal manera que una entropía esperada de la nueva instancia de la clave con respecto a la instancia actual de la clave no es menor que un umbral predefinido E que es menor que N.
En algunas realizaciones, la probabilidad particular es superior a 0,5.
Se proporciona además, de acuerdo con algunas realizaciones de la presente invención, un procedimiento para generar una nueva instancia de una clave criptográfica de N bits para su almacenamiento en una memoria no volátil (NVM) en la que las celdas no programadas tienen un valor binario particular. El procedimiento incluye la generación de una secuencia aleatoria de actualización de N bits, y la generación de la nueva instancia de la clave criptográfica de N bits mediante la negación de cada bit en una instancia actual de la clave criptográfica de N bits que tiene el valor binario particular y difiere de un bit correspondientemente posicionado en la secuencia aleatoria de actualización de N bits, sin negar ningún bit en la instancia actual de la clave criptográfica de N bits que no tiene el valor binario particular.
En algunas realizaciones, la generación de la secuencia de actualización aleatoria de N bits incluye la generación de cada bit en la secuencia de actualización aleatoria de N bits con una probabilidad de tener el valor binario particular que es mayor que 0,5.
En algunas realizaciones, el procedimiento incluye además, antes de generar la secuencia aleatoria de actualización de N bits:
identificar un número N1 de bits en la instancia actual de la clave criptográfica de N bits que tienen el valor binario particular;
resolver -(qlog2q (1-q)log2(1-q)) = E/N1 para q, siendo E un umbral de entropía predefinido; y
derivar la probabilidad de q.
En algunas realizaciones, derivar la probabilidad de q incluye derivar la probabilidad de q estableciendo la probabilidad en q.
En algunas realizaciones, derivar la probabilidad de q incluye derivar la probabilidad de q estableciendo la probabilidad a un valor más alto n/2m que no es mayor que q, siendo m un número entero predeterminado y n un número entero variable.
En algunas realizaciones, el procedimiento incluye además, antes de generar la secuencia aleatoria de actualización de N bits:
identificar un número N1 de bits en la instancia actual de la clave criptográfica de N bits que tiene el valor binario particular; y
establecer la probabilidad a un máximo de múltiples valores predefinidos de q para los cuales - (qlog2q (1-q)log2(1-q)) no es menor que E/N1, siendo E un umbral de entropía predefinido.
Se proporciona además, de acuerdo con algunas realizaciones de la presente invención, un procedimiento para facilitar múltiples actualizaciones de una clave criptográfica de N bits en una memoria no volátil (NVM) en la que las celdas no programadas tienen un valor binario particular. El procedimiento incluye el cálculo de diferentes probabilidades respectivas {qi}, i = 1...U, para las actualizaciones tales que, para cada i-ésima de las actualizaciones, una entropía esperada de una nueva instancia de la clave criptográfica de N bits con respecto a una instancia actual de la clave criptográfica de N bits no es menor que un umbral predefinido E que es menor que N, siempre que (i) la nueva instancia de la clave criptográfica de N bits se genere negando cada bit de la instancia actual de la clave criptográfica de N bits que tenga el valor binario particular y difiera de un bit posicionado correspondientemente en una secuencia de actualización aleatoria de N bits, sin negar ningún bit de la instancia actual de la clave criptográfica
de N bits que no tenga el valor binario particular, y (ii) cada bit de la secuencia de actualización aleatoria de N bits se genere con la probabilidad qi de tener el valor binario particular. El procedimiento incluye además, posteriormente al cálculo de las probabilidades, proporcionar las probabilidades para su uso en la realización de las actualizaciones. En algunas realizaciones, cada una de las probabilidades es mayor que 0,5.
En algunas realizaciones, el cálculo de las probabilidades incluye, para cada i-ésima de las actualizaciones:
resolver
para q, siendo q01; y
derivando qi de q.
En algunas realizaciones, derivar qi de q incluye derivar qi de q estableciendo qi en q.
En algunas realizaciones, derivar qi de q incluye derivar qi de q estableciendo qi en un valor más alto n/2m que no es mayor que q, siendo m un número entero predeterminado y n un número entero variable.
En algunas realizaciones, el cálculo de las probabilidades incluye, para cada i-ésima de las actualizaciones, establecer q¡ en un máximo de múltiples valores predefinidos de q para los cuales -(qlog2q (1 -q)log2(1 -q)) no es menor que E/osrnjr1? J/), si .end .o qo1 ,.
La presente invención se comprenderá mejor a partir de la siguiente descripción detallada de las realizaciones de la misma, tomada junto con los dibujos, en los que:
Breve descripción de los dibujos
La Fig. 1 es una ilustración esquemática de un sistema para actualizar una clave criptográfica, de acuerdo con algunas realizaciones de la presente invención;
La Fig. 2 es una ilustración esquemática de la generación de una nueva instancia de una clave criptográfica, de acuerdo con algunas realizaciones de la presente invención;
La Fig. 3 es una ilustración esquemática de una técnica para generar una secuencia aleatoria, de acuerdo con algunas realizaciones de la presente invención;
La Fig. 4 es una ilustración esquemática de una técnica para calcular una probabilidad de encrucijada de bits, de acuerdo con algunas realizaciones de la presente invención; y
La Fig. 5 es un diagrama de flujo de un procedimiento para facilitar múltiples actualizaciones de una clave criptográfica, de acuerdo con algunas realizaciones de la presente invención.
Descripción detallada de las realizaciones
INTRODUCCIÓN
En el contexto de la presente solicitud, incluidas las reivindicaciones, la "actualización" de una clave criptográfica puede referirse a (i) el cálculo de una nueva instancia de la clave, (ii) la sustitución de la instancia actual de la clave por la nueva instancia de la clave en una memoria, o (iii) ambos (i) y (ii).
La presente descripción en general asume que, en una NVM, las celdas no programadas tienen el valor binario 1, mientras que las celdas programadas tienen el valor binario 0. Sin embargo, como se indica explícitamente a continuación con referencia a la Fig. 2, las técnicas descritas en el presente documento también pueden utilizarse con las NVM que utilizan la convención inversa.
VISIÓN GENERAL
Actualizar una clave criptográfica almacenada en una memoria no volátil puede ser un reto. Por ejemplo, como se ha descrito anteriormente en los Antecedentes, NVM OTP no permite el borrado. Además, incluso para otros tipos de memoria no volátil que permiten el borrado, una operación de actualización puede ser insegura, en el sentido de que un atacante puede terminar la operación después del borrado del valor actual de la clave y antes de la escritura del nuevo valor de la clave, "congelando" así la clave en su estado no programado conocido.
Para hacer frente a este reto, las realizaciones de la presente invención actualizan la clave cambiando sólo los bits 1 (no programados) de la clave, sin cambiar ningún bit 0 (programado). En particular, dada la instancia actual de N bits
Ki de la clave (en lo sucesivo denominada “K¡"), se genera una secuencia aleatoria de N bits Si (en lo sucesivo denominada "Si"), y la nueva instancia K¡+1 de la clave (en lo sucesivo denominada "Ki+1") se calcula ejecutando una operación AND entre Ki y Si, o cualquier operación equivalente. Para garantizar que la nueva instancia de la clave tiene suficiente entropía con respecto a la instancia actual (es decir, para garantizar que un atacante con conocimiento de Ki tendría suficiente dificultad para adivinar K¡+i ), la longitud N de la clave se hace más larga de lo que sería necesario si se actualizaran tanto los bits 0 como los bits 1.
(Se observa que, utilizando una convención descriptiva alternativa, se puede hacer referencia a Ki y Ki+1 como claves diferentes, en lugar de como instancias o valores diferentes de la misma clave. Así, por ejemplo, se puede decir que K¡+i es una nueva clave que sustituye a K¡)
Típicamente, para permitir el mayor número de actualizaciones posible, S¡ se genera de forma sesgada, en el sentido de que la probabilidad q¡ (en lo sucesivo denominada "q¡") de que cada bit de S¡ sea igual a 1 es mayor que 0,5. (En algunos casos, para la actualización final de la clave, q¡ puede ser exactamente 0,5) En concreto, se calcula numéricamente el valor máximo de q¡ que da la entropía requerida, y este valor máximo se utiliza para generar S¡. En algunas realizaciones, cada valor q¡ se calcula inmediatamente antes de la i-ésima actualización, teniendo en cuenta la clave actual K¡. A modo de introducción, se observa que la entropía de K¡+ i, dada K¡, es igual a N1¡*H(q¡), donde N1¡ es el número de bits de 1 en K¡, y H(q¡) = -(q¡log2q¡ + (1-q¡)log2(1-q¡)). Para que esta entropía sea mayor o igual que un determinado umbral E (en adelante denominado "E"), H(q¡) debe ser mayor o igual que E/ N1¡ Por lo tanto, antes de la i-ésima actualización, se puede calcular la cantidad E/N1 ¡. Posteriormente, siempre que E/N1¡ sea menor o igual que uno (el máximo valor posible de H(q)), la ecuación H(q) = E/N1¡ puede resolverse numéricamente para q. (Cabe señalar que la precisión con la que se calcula esta solución puede depender del procedimiento numérico que se utilice y de la forma en que se implemente el procedimiento) La solución q¡* de esta ecuación -o el valor adecuado más cercano que sea menor que q¡*- puede utilizarse entonces como valor de q¡.
En otras realizaciones, un conjunto de valores q¡ {q¡, q2, ... qu}, para su uso en la ejecución de actualizaciones U de la clave, se calcula por adelantado, antes de ejecutar cualquier actualización. Para este cálculo, el valor esperado de N1 ¡, N^ 6 (donde qo es 1), se utiliza para estimar la entropía de K¡+1 dada K¡, de manera que, para alcanzar la E/fNTTÍ ^ ^
entropía requerida E, H(q¡) debe ser mayor o igual a v 0 . (Esta cantidad puede escribirse más 1 / T T Í - l _
sucintamente como B donde A = E/N) Así, los valores de q¡ pueden resolverse de forma iterativa, empezando E / í N i i r 15 ¡)
por q-i, hasta comprobar (para i = U+1) que b J es mayor que uno.
Típicamente, para facilitar la generación de S¡, q¡ es de la forma n/2m para un entero predeterminado m y un entero variable n. Para generar Si, se genera u obtiene una semilla aleatoria insesgada X¡ (en lo sucesivo denominada " X¡"), que comprende E bits. A continuación, X¡ se expande -por ejemplo, utilizando una función hash- a N secuencias de m bits que corresponden, respectivamente, a los N bits de Si. A continuación, el valor de cada secuencia de m bits se compara con n. Si el valor es inferior a n, el bit correspondiente de Si se establece en 1; en caso contrario, el bit se establece en 0.
DESCRIPCION DEL SISTEMA
Se hace referencia inicialmente a la Fig. 1, que es una ilustración esquemática de un sistema 20 para actualizar una clave criptográfica, de acuerdo con algunas realizaciones de la presente invención. En la realización particular ilustrada en la Fig. 1, se utiliza una clave criptográfica "K" de N bits para cifrar la comunicación entre un dispositivo 22 de la Internet de las cosas (loT) y un proveedor de servicios de Internet (ISP) a través de Internet 24.
En general, siempre que el dispositivo 22 permanezca con el mismo ISP, y que la seguridad de la clave no se vea comprometida, no es necesario actualizar la clave. Sin embargo, en el caso de que el dispositivo 22 cambie a un ISP diferente, o si la seguridad de la clave se ve comprometida, puede ser necesario actualizar la clave.
Por ejemplo, la Fig. 1 representa un escenario en el que el dispositivo 22 ha recibido servicio de un primer ISP 26a, pero en adelante recibirá servicio de un segundo ISP 26b. En este escenario, el segundo ISP 26b solicita la instancia actual de la clave, K¡, al primer ISP 26a. En respuesta a esta solicitud, el primer ISP 26a comunica K¡, a través de Internet 24, al segundo ISP 26b. El primer ISP 26a puede comunicar además el valor de i al segundo ISP 26b, es decir, el primer ISP 26a puede especificar el número de actualizaciones de la clave criptográfica que ya se han realizado. Posteriormente, el segundo ISP 26b genera una nueva instancia K¡+1 de la clave, y luego comunica K¡+1, a través de Internet 24, al dispositivo 22, por ejemplo, a través de un router 28 que da servicio a una red WiFi a la que pertenece el dispositivo 22. (Típicamente, el segundo ISP 26b encripta Ki+i, por ejemplo, utilizando K¡, antes de comunicar K¡+1 al dispositivo 22) Posteriormente, el dispositivo 22 y el segundo ISP 26b pueden comenzar a comunicarse entre sí, utilizando K¡+1 para cifrar y descifrar la comunicación.
El segundo ISP 26b comprende un procesador 30 y una interfaz de red 32, que comprende, por ejemplo, un controlador de interfaz de red (NIC). El procesador 30 está configurado para intercambiar comunicación con el primer ISP 26a y el dispositivo 22 (junto con otros dispositivos) a través de la interfaz de red 32. El procesador 30
está configurado además para actualizar la clave criptográfica utilizada para cifrar la comunicación con el dispositivo 22. Por ejemplo, como se ha descrito anteriormente, el procesador 30 puede actualizar la clave al iniciar la comunicación con el dispositivo 22. Alternativa o adicionalmente, el procesador 30 puede actualizar la clave en respuesta a que el procesador 30 (o un sistema de ciberseguridad externo) identifique que la clave puede haber sido robada por un atacante.
Del mismo modo, el dispositivo 22 comprende un procesador 34 y una interfaz de comunicación 36. El procesador 34 está configurado para intercambiar comunicación con el segundo ISP 26b (junto con otros dispositivos) a través de la interfaz de comunicación 36. Por ejemplo, la interfaz de comunicación 36 puede comprender una tarjeta WiFi, que el procesador 34 puede utilizar para intercambiar comunicación a través del router 28.
El dispositivo 22 comprende además una memoria 38, en la que el procesador 34 almacena la clave criptográfica. Así, por ejemplo, la memoria 38 puede contener inicialmente Ki. Después de recibir Ki+1 del segundo iSp 26b, el procesador 34 puede sobrescribir Ki con Ki+1.
Típicamente, la memoria 38 es no volátil; por ejemplo, la memoria 38 puede ser una NVM OTP, una memoria flash, o una memoria de sólo lectura programable eléctricamente borrable (EEPROM). Ventajosamente, sin embargo, como se describe más adelante con referencia a la Fig. 2, la actualización de la clave criptográfica no necesita desprogramar ninguna celda de memoria en la memoria 38.
En algunas realizaciones, como se describe más adelante con referencia a la Fig. 5, el segundo ISP 26b genera Ki+1 utilizando un parámetro (específicamente, una probabilidad de generación de bits qi) que está contenido en una hoja de datos proporcionada por un servidor 40. Por ejemplo, utilizando la interfaz de red 44, el servidor 40 puede publicar la hoja de datos en un sitio web. Inmediatamente antes de generar Ki+1, el segundo ISP 26b puede recuperar la hoja de datos del sitio web y buscar, en la hoja de datos, el parámetro que se necesita para generar Ki+1. Alternativamente, en cualquier momento antes de la generación de Ki+1, el servidor 40 puede comunicar la hoja de datos (por ejemplo, a través de Internet 24) al segundo ISP 26b, y el segundo ISP 26b puede entonces almacenar la hoja de datos en una memoria volátil o no volátil (no mostrada). Posteriormente, inmediatamente antes de generar Ki+1, el segundo ISP 26b puede recuperar la hoja de datos de la memoria y, a continuación, buscar el parámetro correspondiente.
En otras realizaciones, el procesador 34 del dispositivo 22 genera Ki+1, y luego comunica Ki+1 al segundo ISP 26b. En tales realizaciones, el procesador 34 puede recibir la mencionada hoja de datos del servidor 40. Como otra alternativa, el servidor 40, o cualquier otro tercero adecuado, puede generar Ki+1, y puede entonces comunicar Ki+1 tanto al dispositivo 22 como al segundo ISP 26b.
El servidor 40 comprende un procesador 42 y una interfaz de red 44, que comprende, por ejemplo, una NIC. El procesador 42 está configurado para intercambiar comunicación con el segundo ISP 26b (y/o con el dispositivo 22) a través de la interfaz de red 44.
Se enfatiza que los componentes y la configuración del sistema 20 se proporcionan sólo a modo de ejemplo. En general, cada una de las diversas técnicas descritas aquí puede ser practicada por cualquier procesador adecuado perteneciente a cualquier sistema adecuado. Por ejemplo, las técnicas descritas en el presente documento pueden utilizarse para actualizar una clave criptográfica almacenada en un módulo de identificación de abonado integrado (eSIM) o un elemento seguro integrado (eSE) perteneciente a un teléfono móvil. Por ejemplo, el proveedor de servicios para el teléfono móvil puede generar Ki+1 y comunicar Ki+1 al teléfono móvil, y éste puede almacenar Ki+1 en una memoria no volátil perteneciente al teléfono.
En general, cada uno de los procesadores descritos en el presente documento puede ser incorporado como un único procesador, o como un conjunto de procesadores conectados en red o agrupados de forma cooperativa. En algunas realizaciones, la funcionalidad de al menos uno de los procesadores descritos en el presente documento se implementa únicamente en hardware, por ejemplo, utilizando uno o más Circuitos Integrados de Aplicación Específica (ASICs) o Matrices de Puertas Programables en Campo (FPGAs). En otras realizaciones, la funcionalidad de cada uno de los procesadores descritos en el presente documento se implementa al menos parcialmente en software. Por ejemplo, en algunas realizaciones, cada uno de los procesadores descritos en el presente documento se encarna como un dispositivo informático digital programado que comprende al menos una unidad central de procesamiento (CPU) y una memoria de acceso aleatorio (RAM). El código del programa, incluidos los programas de software, y/o los datos se cargan en la memoria RAM para su ejecución y procesamiento por la CPU. El código del programa y/o los datos pueden descargarse al procesador en forma electrónica, a través de una red, por ejemplo. Alternativa o adicionalmente, el código de programa y/o los datos pueden ser proporcionados y/o almacenados en medios tangibles no transitorios, tales como memoria magnética, óptica o electrónica. Dicho código de programa y/o datos, cuando se proporcionan al procesador, producen una máquina u ordenador de propósito especial, configurado para ejecutar las tareas descritas en el presente documento.
GENERACIÓN DE LA NUEVA INSTANCIA DE LA CLAVE
Se hace referencia ahora a la Fig. 2, que es una ilustración esquemática de la generación de una nueva instancia de una clave criptográfica, de acuerdo con algunas realizaciones de la presente invención.
La Fig. 2 se refiere al escenario representado en la Fig. 1, en el que el procesador 30 (o, como se ha descrito anteriormente, cualquier otro procesador) genera una nueva instancia K¡+1 de una clave criptográfica de N bits, dada la instancia actual Ki de la clave. Como se ha descrito anteriormente en la descripción general y con referencia a la Fig. 1, Ki+i se genera de manera que la sustitución de Ki por K¡+1 en una NVM no requiere la desprogramación de ninguna celda de memoria. No obstante, como se describe con más detalle a continuación con referencia a la Fig. 4, la entropía esperada de K¡+i con respecto a Ki no es inferior a un umbral de entropía E predefinido. (El umbral E, que es inferior al número de bits N de la clave criptográfica, puede ser definido, por ejemplo, por un arquitecto de seguridad del sistema 20)
En particular, para generar K¡+1, el procesador genera primero una secuencia aleatoria de actualización de N bits Si. A continuación, el procesador genera K¡+i negando cada bit de K¡ que tiene el valor binario 1 y que difiere del bit correspondiente de Si, sin negar ningún bit de K¡ que no tenga el valor binario 1. La Fig. 2 muestra dos de estos bits negados, marcados por las respectivas flechas que apuntan hacia arriba.
Típicamente, como se representa en la Fig. 2, el procesador genera K¡+1 ejecutando una operación AND a nivel de bits entre K¡ y Si. Por lo tanto, algunos bits de 1 en K¡ se sustituyen por bits de 0 en K¡+1, pero ningún bit de 0 en K¡ se sustituye por bits de 1, de manera que la clave puede actualizarse en una NVM sin necesidad de desprogramar ninguna celda.
El procesador genera cada bit en Si con una probabilidad q¡ de ser 1, siendo q¡ típicamente mayor que 0,5. (Como se indica en la descripción general, en algunos casos, q¡ puede ser exactamente 0,5 para la actualización final de la clave) En algunas realizaciones, q¡ se especifica en una hoja de datos, que se proporciona, como se ha descrito anteriormente con referencia a la Fig. 1, por el servidor 40. Dicha hoja de datos puede incluir, por ejemplo, una tabla de búsqueda que especifica q¡ para varios valores de i, uno o más valores de N, y uno o más valores de E. En otras realizaciones, el procesador calcula q¡. A continuación se describen más detalles sobre el cálculo de q¡ con referencia a la Fig. 4.
Para la convención de NVM inversa, en la que las celdas de memoria no programadas tienen el valor binario 0, el procesador genera cada bit en Si con una probabilidad qi de ser 0. A continuación, el procesador niega cada bit 0 en K¡ que difiere del bit correspondiente en S¡, por ejemplo, ejecutando una operación OR a nivel de bits entre K¡ y Si. GENERACIÓN DE LA SECUENCIA ALEATORIA
Se hace referencia ahora a la Fig. 3, que es una ilustración esquemática de una técnica para generar la secuencia aleatoria Si, de acuerdo con algunas realizaciones de la presente invención. Esta técnica supone que q¡ es igual a n/2m para un número entero predeterminado m y un número entero variable n. (Por ejemplo, m puede ser 10, de manera que q¡ = n/1024)
Para generar Si, el procesador primero genera, u obtiene de una fuente externa, una semilla aleatoria insesgada Xi que tiene E bits. (Xi es insesgado en el sentido de que cada bit en Xi tiene una probabilidad de 0,5 de ser 1) El procesador busca o calcula además qi = n/2m. Posteriormente, el procesador expande Xi a N secuencias de m bits {Z¡j}, j = 1...N, que corresponden a los bits de Si, respectivamente. Por ejemplo, el procesador puede aplicar una función hash f(X, c) a Xi con N contadores respectivos diferentes c, de manera que, por ejemplo, la primera secuencia de m bits Z¡1, correspondiente al primer bit de Si, sea igual a f(X¡, 1), la segunda secuencia de m bits Z¡2, correspondiente al segundo bit de Si, sea igual a f(Xi, 2), etc. Entre los ejemplos de funciones hash adecuadas se encuentran las funciones del algoritmo hash seguro (SHA), como SHA-2, SHA-256, SHA-512 y SHA-3.
A continuación, para cada bit en Si, el procesador establece el bit en 1 en respuesta a que el valor de la correspondiente secuencia de m bits sea menor que n. Por ejemplo, si Zi1 es menor que n, el primer bit en Si se establece en 1; de lo contrario, el bit se establece en 0.
A pesar de la técnica particular ilustrada en la Fig. 3, se observa que Si puede generarse utilizando cualquier otra técnica adecuada (incluso si q¡ no es de la forma n/2m), siempre que cada bit en Si tenga una probabilidad q¡ de ser 1.
CÁLCULO DE LA PROBABILIDAD DE GENERACIÓN DE BITS PARA UNA ÚNICA ACTUALIZACIÓN
Se hace referencia ahora a la Fig. 4, que es una ilustración esquemática de una técnica para calcular la probabilidad de generación de bits qi, de acuerdo con algunas realizaciones de la presente invención.
En algunas realizaciones, el procesador que genera Ki+1 calcula qi, antes de generar Si. Típicamente, en tales realizaciones, el procesador identifica primero el número N1i de 1 bits en Ki. A continuación, como se muestra en la Fig. 4, el procesador resuelve H(q) = -(qlog2q (1-q)log2(1-q)) = E/N1¡ para q, indicándose esta solución en la Fig. 4 con la notación q¡* (En la mayoría de los casos, hay dos soluciones para la ecuación; el procesador elige la mayor de las dos soluciones) El procesador deriva entonces q¡ de q¡* Por ejemplo, el procesador puede establecer q¡ en q¡*,
o en el valor más alto n/2m que sea menor o igual a q¡* (En otras palabras, el procesador encuentra el mayor número entero n para el que n/2 m es menor o igual que q¡*)
Como se ha descrito anteriormente en el Resumen, la entropía de K¡+1, dada Ki, es igual a N1¡*H(q;). Por lo tanto, al establecer qi en q¡*, o en el valor adecuado más cercano que sea menor que q¡*, el procesador elige efectivamente el mayor valor adecuado de qi que proporciona una entropía de al menos E.
Como alternativa a la resolución de qi*, el procesador puede definir múltiples valores de q, y luego establecer qi en el máximo de estos valores para los cuales H(q) no es menor que E/Nli. Por ejemplo, el procesador puede generar una matriz de valores [2m-1/2m, (2m-1 + 1)/2m, ... (2m-1)/2m], y luego establecer qi en el máximo de estos valores para el que H(q) no es menor que E/N li.
En caso de que E/Nli sea mayor que 1, el procesador no genera K¡+i , ya que no se puede alcanzar la entropía E requerida. En este caso, el procesador puede generar un mensaje de error apropiado indicando, por ejemplo, que la memoria 38 del dispositivo 22 (Fig. 1) necesita ser reemplazada o borrada.
PRECÁLCULO DE LAS PROBABILIDADES DE GENERACIÓN DE BITS PARA LAS ACTUALIZACIONES MÚLTIPLES
En algunas realizaciones, el procesador que genera Ki+i no utiliza N l i para calcular qi. Más bien, el procesador calcula, por adelantado, una secuencia de valores qi para múltiples actualizaciones de la clave, basándose en el valor esperado de N l i, N1* en cada actualización. Alternativamente, el servidor 40 (Fig. 1) puede generar una hoja de datos que especifica las respectivas secuencias de valores qi para uno o más pares de valores N y E. Posteriormente, como se ha descrito anteriormente con referencia a la Fig. 1, el servidor 40 puede proporcionar la hoja de datos a cualquier parte (como el segundo ISP 26b) que desee actualizar una clave criptográfica de la manera descrita anteriormente con referencia a las Figs. 2-3.
A este respecto, se hace referencia ahora a la Fig. 5, que es un diagrama de flujo para un procedimiento 46 para facilitar múltiples actualizaciones de una clave criptográfica, de acuerdo con algunas realizaciones de la presente invención. En particular, en el procedimiento 46, se genera y proporciona una hoja de datos que especifica secuencias {qi} para uno o más pares diferentes (N,E), es decir, uno o más pares diferentes de valores que consisten en (i) N, el número de bits de la clave criptográfica, y (ii) E, el umbral de entropía. El procedimiento 46 es ejecutado típicamente por el procesador 42 del servidor 40, como se ha descrito anteriormente. Alternativamente, un subconjunto de las etapas del procedimiento 46 - por ejemplo, el cálculo de {qi} para un único par (N,E) - puede ser ejecutado por el procesador, como el procesador 30 del segundo ISP 26b, que actualiza la clave.
El procedimiento 46 comienza con una etapa de selección 47, en la que el procesador 42 selecciona el siguiente par predefinido (N,E) para el que se va a calcular la secuencia de probabilidades de generación de bits. (Cada par (N,E) puede ser proporcionado al procesador 42, por ejemplo, por un experto en seguridad) A continuación, el procesador calcula diferentes probabilidades respectivas {qi}, i = 1...U, para U actualizaciones de la clave. Cada valor qi se calcula de forma que la entropía esperada de la nueva instancia de la clave (K¡+i ) con respecto a la instancia actual de la clave (Ki) no sea inferior a E, siempre que la nueva instancia de la clave se genere como se ha descrito anteriormente con referencia a las Figs. 2-3. En otras palabras, qi se calcula generalmente como se ha descrito anteriormente con referencia a la Fig. 4, con la entropía esperada de K¡+i con respecto a Ki (H(q*N1¡*) en lugar de la entropía real (que no puede conocerse de antemano).
Más específicamente, tras la etapa de selección 47, el procesador, en una etapa de inicialización 48, establece qo en 1 e inicializa el índice i en 1. Posteriormente, el procesador calcula iterativamente q¡ e incrementa el índice, hasta que la entropía esperada de la nueva instancia de la clave sea menor que E. Para calcular q¡, el procesador calcula primero ^ en una etapa de cálculo 50. A continuación, en una primera etapa de comprobación 52, el procesador comprueba si E/N1¡* es menor o igual que uno. En caso afirmativo, el procesador, en una etapa de establecimiento 54, establece q¡ en el valor máximo adecuado de q para el que H(q) no es menor que E/N1¡*. Por ejemplo, como se ha descrito anteriormente con referencia a la Fig. 4, el procesador puede establecer q¡ en q¡* (donde H(q¡*) = E/N1 ¡*), o en el valor adecuado más cercano inferior a q¡. Posteriormente, en una etapa de incremento 56, el procesador incrementa el índice i.
Al comprobar, en la primera etapa de comprobación 52, que E/N1¡* es mayor que uno, el procesador no calcula q¡ para el índice actual i. En su lugar, la secuencia {q-i , q2, ... qu} que se ha calculado hasta ahora, donde U (que es uno menos que el índice actual) es el número máximo de actualizaciones permitidas de la clave, se añade a la hoja de datos bajo (N,E), en una etapa de actualización de la hoja de datos 58.
Tras la etapa de actualización de la hoja de datos 58, el procesador comprueba, en una segunda etapa de comprobación 60, si quedan más pares (N,E). En caso afirmativo, el procesador vuelve a la etapa de selección 47, calcula {qi} para el par (N,E) seleccionado y luego actualiza la hoja de datos. De lo contrario, el procesador, en una etapa de provisión 62, proporciona la hoja de datos completada para su uso en la actualización de una clave criptográfica. Por ejemplo, como se ha descrito anteriormente con referencia a la Fig. 1, el procesador puede cargar la hoja de datos en un sitio web, o comunicar la hoja de datos a otro dispositivo.
Como se ha descrito anteriormente con referencia a la Fig. 2, cada valor de qi es típicamente mayor que 0,5 (aunque, en algunos casos, qU puede ser exactamente 0,5) Como se puede ver observando el gráfico de H(q) que se muestra en la Fig. 4, los valores de qi* (y por tanto, de qi) disminuyen a medida que aumenta i, dado que E/N1* aumenta con i. Por ejemplo, para E=80 y N=256, el procedimiento 46 devuelve una secuencia decreciente de 11 valores de qi*: 0.943, 0,938, 0,933, 0,926, 0,918, 0,907, 0,893, 0,872, 0,841, 0,785 y 0,623. (En lo anterior está implícito que una clave de 256 bits puede actualizarse 11 veces mediante la técnica aquí descrita, siempre que la entropía requerida no sea superior a 80 bits)
Dada la hoja de datos, el procesador que genera la nueva instancia de la clave, como el procesador 30 del segundo ISP 26b, busca el valor qi apropiado, dados N, E e i. (Como se ha descrito anteriormente con referencia a la Fig. 1, el primer ISP 26a puede especificar i al segundo ISP 26b) Posteriormente, como se ha descrito anteriormente con referencia a las Figs. 2-3, el procesador utiliza qi para generar la secuencia de actualización Si, y luego utiliza Si para generar K¡+1 a partir de Ki.
Claims (15)
1. Aparato (26b) para generar una nueva instancia de una clave criptográfica de N bits (K m) para su almacenamiento en una memoria no volátil (38), NVM, perteneciente a un dispositivo (22), en la que las celdas no programadas tienen un valor binario particular, el aparato (26b) caracterizado porque comprende:
una interfaz de red (32); y
un procesador (30), configurado para:
generar una secuencia aleatoria de actualización de N bits (si),
generar la nueva instancia de la clave criptográfica de N bits (Ki+i) negando cada bit en una instancia actual de la clave criptográfica de N bits (Ki) que tenga el valor binario particular y difiera de un bit posicionado correspondientemente en la secuencia de actualización aleatoria de N bits (Si), sin negar ningún bit en la instancia actual de la clave criptográfica de N bits (Ki) que no tenga el valor binario particular, y
posteriormente a la generación de la nueva instancia de la clave criptográfica de N bits (K m ), mediante la interfaz de red (32), comunicar la nueva instancia de la clave criptográfica de N bits (Ki+i) al dispositivo (22) para su almacenamiento en la NVM (38).
2. El aparato (26b) según la reivindicación 1, en el que el procesador (30) está configurado para negar cada bit en la instancia actual de la clave criptográfica de N bits (Ki) que tiene el valor binario particular y difiere del bit correspondientemente posicionado en la secuencia de actualización aleatoria de N bits (Si) ejecutando una operación AND a nivel de bits entre la instancia actual de la clave criptográfica de N bits (Ki) y la secuencia de actualización aleatoria de N bits (Si).
3. El aparato (26b) según la reivindicación 1, en el que el procesador (30) está configurado para generar cada bit en la secuencia de actualización aleatoria de N bits (Si) con una probabilidad de tener el valor binario particular que es mayor que 0,5.
4. El aparato (26b) según la reivindicación 3, en el que la probabilidad es igual a n/2m para un número entero predeterminado m y un número entero variable n, y en el que el procesador (30) está configurado para generar la secuencia aleatoria de actualización de N bits (Si):
expandiendo una semilla aleatoria insesgada (Xi), que tiene E bits, a N secuencias de m bits ({Zy}) que corresponden a los bits de la secuencia aleatoria de actualización de N bits (Si), respectivamente, y para cada bit de la secuencia aleatoria de actualización de N bits (Si), establecer el bit al valor binario particular en respuesta a un valor de la secuencia de m bits correspondiente ({Zij}) que sea menor que n.
5. Aparato (22), caracterizado porque comprende:
una memoria no volátil (38), NVM, que comprende una pluralidad de celdas de un solo bit, configuradas para almacenar una clave criptográfica de N bits (Ki, Ki+1), las celdas no programadas tienen un valor binario particular; y
un procesador (34), configurado para:
generar una secuencia aleatoria de actualización de N bits (Si),
generar una nueva instancia de la clave criptográfica de N bits (K m ) negando cada bit en una instancia actual de la clave criptográfica de N bits (Ki) que tenga el valor binario particular y difiera de un bit posicionado correspondientemente en la secuencia de actualización aleatoria de N bits (s í), sin negar ningún bit en la instancia actual de la clave criptográfica de N bits (Ki) que no tenga el valor binario particular, y
posteriormente a la generación de la nueva instancia de la clave criptográfica de N bits (K m ), sustituir la instancia actual de la clave criptográfica de N bits (Ki) por la nueva instancia de la clave criptográfica de N bits (Ki+i) en la NVM (38).
6. El aparato (22) según la reivindicación 5, en el que el procesador (34) está configurado para generar cada bit en la secuencia aleatoria de actualización de N bits (Si) con una probabilidad particular de tener el valor binario particular, y en el que el procesador (34) está configurado además para calcular la probabilidad particular, antes de generar la secuencia aleatoria de actualización de N bits (Si), de tal manera que una entropía esperada de la nueva instancia de la clave criptográfica de N bits (Ki+ i) con respecto a la instancia actual de la clave criptográfica de N bits (Ki) no es menor que un umbral predefinido E que es menor que N.
7. El aparato (22) según la reivindicación 6, en el que la probabilidad particular es superior a 0,5.
8. Un procedimiento para generar una nueva instancia de una clave criptográfica de N bits (K m) para su almacenamiento en una memoria no volátil (38), NVM, en la que las celdas no programadas tienen un valor binario particular, el procedimiento caracterizado por comprender:
generar una secuencia aleatoria de actualización de N bits (Sí); y
generar la nueva instancia de la clave criptográfica de N bits (K¡+i ) negando cada bit en una instancia actual de la clave criptográfica de N bits (K¡) que tenga el valor binario particular y difiera de un bit posicionado correspondientemente en la secuencia de actualización aleatoria de N bits (s ¡), sin negar ningún bit en la instancia actual de la clave criptográfica de N bits (K¡) que no tenga el valor binario particular.
9. El procedimiento según la reivindicación 8, en el que la negación comprende ejecutar una operación AND a nivel de bits entre la instancia actual de la clave criptográfica de N bits (K¡) y la secuencia aleatoria de actualización de N bits (S¡).
10. El procedimiento según la reivindicación 8, en el que la generación de la secuencia aleatoria de actualización de N bits (S¡) comprende la generación de cada bit en la secuencia aleatoria de actualización de N bits (S¡) con una probabilidad de tener el valor binario particular que es mayor que 0,5.
11. El procedimiento según la reivindicación 10, comprende además, antes de generar la secuencia aleatoria de actualización de N bits (S¡):
identificar un número N1 de bits en la instancia actual de la clave criptográfica de N bits (K¡) que tienen el valor binario particular;
resolver -(qlog2q (1-q)log2(1-q)) = E/N1 para q, siendo E un umbral de entropía predefinido; y derivar la probabilidad de q.
12. El procedimiento según la reivindicación 11, en el que derivar la probabilidad de q comprende derivar la probabilidad de q estableciendo la probabilidad en q.
13. El procedimiento según la reivindicación 11, en el que derivar la probabilidad a partir de q comprende derivar la probabilidad a partir de q estableciendo la probabilidad en un valor más alto n/2m que no sea mayor que q, siendo m un número entero predeterminado y n un número entero variable.
14. El procedimiento según la reivindicación 10, en el que la probabilidad es igual a n/2m para un número entero predeterminado m y un número entero variable n, y en el que la generación de la secuencia aleatoria de actualización de N bits (S¡) comprende:
expandir una semilla aleatoria insesgada (Xí), que tiene E bits, a N secuencias de m bits ({Z¡j}) que corresponden a los bits de la secuencia aleatoria de actualización de N bits (S¡), respectivamente, y para cada bit de la secuencia de actualización aleatoria de N bits (S¡), establecer el bit al valor binario particular en respuesta a un valor de la secuencia de m bits correspondiente que sea menor que n.
15. Un procedimiento para facilitar múltiples actualizaciones de una clave criptográfica de N bits (K¡, K¡+1) en una memoria no volátil (38), NVM, en la que las celdas no programadas tienen un valor binario particular, el procedimiento se caracteriza por comprender:
calcular diferentes probabilidades respectivas {q¡}, i = 1...U, para las actualizaciones, de manera que, para cada i-ésima de las actualizaciones, una entropía esperada de una nueva instancia de la clave criptográfica de N bits (Ki+1) con respecto a una instancia actual de la clave criptográfica de N bits (K¡) no sea inferior a un umbral predefinido E que sea inferior a N, siempre que:
la nueva instancia de la clave criptográfica de N bits (K¡+1) se genere negando cada bit de la instancia actual de la clave criptográfica de N bits (K¡) que tiene el valor binario particular y difiera de un bit posicionado correspondientemente en una secuencia de actualización aleatoria de N bits (Sí), sin negar ningún bit de la instancia actual de la clave criptográfica de N bits (K¡) que no tenga el valor binario particular, y
cada bit de la secuencia de actualización aleatoria de N bits (S¡) se genere con la probabilidad q¡ de tener el valor binario concreto; y
posteriormente al cálculo de las probabilidades, proporcionar las probabilidades para su uso en la realización de las actualizaciones.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19151678.0A EP3681100B1 (en) | 2019-01-14 | 2019-01-14 | Updating cryptographic keys stored in non-volatile memory |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2875583T3 true ES2875583T3 (es) | 2021-11-10 |
Family
ID=65023815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES19151678T Active ES2875583T3 (es) | 2019-01-14 | 2019-01-14 | Actualización de claves criptográficas almacenadas en la memoria no volátil |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3681100B1 (es) |
ES (1) | ES2875583T3 (es) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9768957B2 (en) * | 2014-04-23 | 2017-09-19 | Cryptography Research, Inc. | Generation and management of multiple base keys based on a device generated key |
-
2019
- 2019-01-14 EP EP19151678.0A patent/EP3681100B1/en active Active
- 2019-01-14 ES ES19151678T patent/ES2875583T3/es active Active
Also Published As
Publication number | Publication date |
---|---|
EP3681100A1 (en) | 2020-07-15 |
EP3681100B1 (en) | 2021-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6789222B2 (ja) | 物理的複製不可能関数を備える暗号デバイス | |
CN104751079B (zh) | 在物理上不可克隆的函数冗余位 | |
US10910079B2 (en) | Programming device arranged to obtain and store a random bit string in a memory device | |
US11183083B2 (en) | Cryptographic device and memory based PUF | |
CA2637986C (en) | Signal generator based device security | |
US10353638B2 (en) | Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
US20160006570A1 (en) | Generating a key derived from a cryptographic key using a physically unclonable function | |
US10715321B2 (en) | Physical unclonable function using message authentication code | |
US10742406B2 (en) | Key generation and secure storage in a noisy environment | |
CN105007157B (zh) | 基于设备生成的密钥来生成和管理多个基密钥 | |
US9830479B2 (en) | Key storage and revocation in a secure memory system | |
JP2018504827A (ja) | 物理的複製不可能関数からの暗号鍵生成 | |
JP2017504267A (ja) | セキュアブート中のキー抽出 | |
US11818249B2 (en) | Nodes and methods of operating the same | |
WO2017194335A2 (en) | Programming device arranged to obtain and store a random bit string in a memory device | |
EP3214567B1 (en) | Secure external update of memory content for a certain system on chip | |
ES2875583T3 (es) | Actualización de claves criptográficas almacenadas en la memoria no volátil | |
US10951403B2 (en) | Updating cryptographic keys stored in non-volatile memory | |
JP6874042B2 (ja) | 不揮発性メモリに保存された暗号鍵の更新 | |
ES2825774T3 (es) | Método para generar un valor inherente a un circuito electrónico, circuito electrónico que genera este valor y método para usar dicho valor | |
KR102313584B1 (ko) | 비-휘발성 메모리에 저장된 암호키 업데이트 | |
Delvaux et al. | Secure Sketch Metamorphosis: Tight Unified Bounds. |