Función física no clonable.
Una función física no clonable (100) que comprende:
- una pluralidad de bucles de acoplamiento cruzado de dos inversores (110),
estando cada bucle de acoplamiento cruzado de la pluralidad de bucles de acoplamiento cruzado configurado para asentarse en uno de al menos dos estados estables diferentes tras el encendido, siendo el estado estable específico en el que se asienta un bucle de acoplamiento cruzado específico de la pluralidad de bucles de acoplamiento cruzado dependiente al menos en parte de las características físicas al menos parcialmente aleatorias del bucle de acoplamiento cruzado específico, y
- un circuito de lectura (120) para leer la pluralidad de estados estables en los que se asienta la pluralidad de bucles de acoplamiento cruzado (110) después de un encendido, estando la función física no clonable para la pluralidad de bucles de acoplamiento cruzado configurada para ser de solo lectura, caracterizada por
- un dominio de alimentación conmutable, estando la pluralidad de bucles de acoplamiento cruzado (110) comprendida en el dominio de alimentación y estando al menos una parte de la función física no clonable fuera del dominio de alimentación, estando el dominio de alimentación configurado para conectar y desconectar de manera selectiva la pluralidad de bucles de acoplamiento cruzado (110) de la fuente de alimentación mientras que la al menos una parte de la función física no clonable está conectada a la fuente de alimentación.
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2011/070831.
Solicitante: INTRINSIC ID B.V.
Nacionalidad solicitante: Países Bajos.
Dirección: HIGH TECH CAMPUS 9 5656 AE EINDHOVEN PAISES BAJOS.
Inventor/es: VAN DER SLUIS,ERIK, SIMONS,PETRUS WIJNANDUS.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F7/58 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 7/00 Métodos o disposiciones para el procesamiento de datos actuando sobre el orden o el contenido de los datos tratados (circuitos lógicos H03K 19/00). › Generadores de números aleatorios o seudoaleatorios.
PDF original: ES-2534403_T3.pdf
Fragmento de la descripción:
Función física no clonable Antecedentes de la invención Las funciones físicas no clonables (PUF) han demostrado ser alternativas ventajosas para muchas formas de identificación segura, incluyendo el almacenamiento de claves, identificadores y similares en las memorias seguras.
Una función física no clonable explota las variaciones de fabricación para derivar un identificador digital. El identificador digital se liga de este modo a un medio físico. Dado que la función física no clonable depende de la variación del proceso aleatorio, es fácil crear una PUF pero es muy difícil, si no totalmente imposible, crear una PUF que diese lugar a un identificador predeterminado específico. Las variaciones de fabricación conducen a diferentes características físicas del elemento de memoria. Por ejemplo, las características físicas pueden incluir: concentraciones de dopaje, espesor de óxido, longitudes de canal, ancho estructural (por ejemplo, de una capa de metal) , parasitarias (por ejemplo, resistencia, capacitancia) . Cuando un diseño de circuito digital se fabrica múltiples veces, estas características físicas variarán ligeramente y juntas provocarán el comportamiento de un elemento de CI, por ejemplo, un elemento de memoria, se comporta de forma diferente en algunas situaciones. Por ejemplo, el comportamiento de encendido está determinado por las variaciones de fabricación en las características físicas.
Esta propiedad de las PUF las hace adecuadas para una gama de aplicaciones. Por ejemplo, las PUF pueden usarse para combatir la falsificación. Aunque, puede ser posible copiar de manera fraudulenta un dispositivo específico u otro artículo manufacturado, no sería posible duplicar una PUF que pudiese integrarse en el mismo con suficiente precisión de manera que diese lugar al mismo identificador digital como el original. Como un ejemplo adicional, las PUF se usan para crear claves criptográficas. Usando una PUF, se elude la necesidad de una memoria segura para almacenar una clave. Una PUF proporciona además una protección natural contra los intentos ilegales para obtener la clave criptográfica mediante ingeniería inversa, ya que el daño que podría infligirse a la PUF durante el intento cambiaría el identificador digital. Preferentemente, el identificador digital es único para el dispositivo electrónico en el que está integrada la función física no clonable.
Las PUF se han aplicado de manera ventajosa en dispositivos electrónicos. Incluso pequeñas variaciones en la fabricación que son inevitables durante la fabricación de un CI conducen a diferentes propiedades del CI. Estas propiedades diferentes se suprimen normalmente, en un esfuerzo para obtener un lote de CI que funcionen de la misma manera. Sin embargo, para crear una PUF se explotan las diferencias entre los CI individuales en un lote de CI.
Por ejemplo, se ha observado que el comportamiento inicial de algunos elementos de memoria, demuestra un comportamiento similar a una PUF. Cuando se enciende tal memoria, tiende a contener un contenido, es decir, comprender una secuencia de valores de datos, que depende de las características físicas al menos parcialmente aleatorias de los componentes, por ejemplo, puertas o transistores, que componen la memoria, por ejemplo, su disposición física relativa entre sí. Si la memoria se enciende múltiples veces, contendría, hasta un porcentaje grande, el mismo contenido. Desafortunadamente, ya que el comportamiento de la PUF depende de pequeñas fluctuaciones, es inevitable un cierto porcentaje de error. Un procedimiento de corrección de errores, que usan los llamados datos auxiliares, puede usarse para corregir estas fluctuaciones, y asegurarse de que se deriva un identificador digital idéntico cada vez que se usa la PUF.
Por lo tanto, es deseable que el contenido de una memoria, cuando se compara después de múltiples secuencias de encendido y apagado, sea idéntico en una gran parte. Al mismo tiempo es deseable, que cuando el contenido de la memoria se compara con otras memorias del mismo tipo sea diferente en un gran porcentaje.
Se hace referencia al documento "Extended abstract: The butterfly PUF protecting IP on ever y FPGAâ?? por Kumar, SS; Guajardo, J.; Maes, R.; Schrijen, G. J.; Tuyls, P, que divulga una PUF de mariposa que comprende unos biestables de acoplamiento cruzado.
Sumario de la invención Se proporciona una función física no clonable, que comprende una pluralidad de bus keepers, estando cada bus keeper de la pluralidad de bus keepers configurado para asentarse en uno de al menos dos estados estables diferentes tras el encendido, siendo el estado estable específico en el que se asienta un bus keeper específico de la pluralidad de bus keepers dependiente al menos en parte de las características físicas al menos parcialmente aleatorias del bus keeper específico, y un circuito de lectura para leer la pluralidad de estados estables en los que se asienta la pluralidad de bus keepers después de un encendido, siendo la pluralidad bus keepers de solo lectura.
Teniendo el bus keeper de solo lectura, es decir, solo se puede leer un valor de los mismos, no un nuevo valor, puede omitirse escribir la lógica de escritura. Esto hace más pequeño el número de puertas, y el diseño más barato. Una ventaja importante es que puede usarse un dominio de alimentación.
En una realización, el circuito de lectura comprende una pluralidad de multiplexores para seleccionar los bus keepers de la pluralidad de bus keepers.
Usar multiplexores para seleccionar los bus keepers de la pluralidad de bus keepers tiene la ventaja de que no es necesario ningún decodificador de dirección para seleccionar los bus keepers. Esto tiene la ventaja de que la pluralidad de bus keepers es más pequeña en tamaño en un circuito integrado y en requisitos de energía que lo que sería una memoria comparable.
Un multiplexor o MUX es un componente electrónico que realiza la multiplexación; éste selecciona una de una pluralidad de señales digitales de entrada y remite la entrada seleccionada a una sola línea. Un multiplexor de n entradas puede tener log_2 (n) líneas de selección, que se usan para seleccionar qué línea de entrada enviar a la salida. En una realización de la invención se usan los multiplexores que tienen dos entradas y una línea de selección.
En una realización, la función física no clonable comprende una fuente de alimentación y un dominio de alimentación, estando la pluralidad de bus keepers comprendida en el dominio de alimentación y estando al menos una parte de la función física no clonable fuera del dominio de alimentación, estando el dominio de alimentación configurado para conectar y desconectar de manera selectiva la pluralidad de bus keepers de la fuente de alimentación mientras que al menos una parte de la función física no clonable está conectada a la fuente de alimentación.
A pesar de que son muy pequeños los requisitos de alimentación de un bus keeper, todavía hay varias ventajas conectadas para tener un dominio de alimentación.
Debido a que los bus keepers se seleccionan usando multiplexores, puede separarse el circuito de lectura de los bus keepers. Esto permite que el dominio de alimentación sea más pequeño. Como resultado puede usarse un pequeño conmutador para el dominio de alimentación.
Debido al dominio de alimentación, la pluralidad de bus keepers solo necesita alimentarse durante la lectura de los bus keepers. Se ha descubierto que esto reduce el efecto de envejecimiento problemático que puede ocurrir en las PUF basado en la lógica CMOS.
Por otra parte, el tener un dominio de alimentación permite al circuito de lectura leer los bus keepers más de una vez realizando múltiples ciclos de encendido, lectura, apagado de la pluralidad de bus keepers. En una realización, el circuito de lectura está configurado para múltiples ciclos de encendido, lectura, apagado de la pluralidad de bus keepers. Procesando la múltiple pluralidad de lecturas de estados estables puede reducirse el ruido. Por ejemplo, puede promediarse y redondearse la múltiple pluralidad de lecturas de estados estables.
Por ejemplo, después de cada lectura de la pluralidad de bus keepers, la pluralidad de estados estables puede convertirse en una matriz de valores de bits. Leyendo múltiples veces se obtienen múltiples matrices de valores de bits. Las múltiples matrices se suman, añadiendo los componentes correspondientes juntos, para obtener una matriz sumada. Cada componente de la matriz sumada se divide por el número de lecturas. Finalmente, cada uno de los componentes se redondea a 0 o 1. Si se obtiene un valor de 0, 5 puede redondearse a 1, o puede reemplazarse por una elección aleatoria de 0... [Seguir leyendo]
Reivindicaciones:
1. Una función física no clonable (100) que comprende:
-una pluralidad de bucles de acoplamiento cruzado de dos inversores (110) , estando cada bucle de acoplamiento cruzado de la pluralidad de bucles de acoplamiento cruzado configurado para asentarse en uno de al menos dos estados estables diferentes tras el encendido, siendo el estado estable específico en el que se asienta un bucle de acoplamiento cruzado específico de la pluralidad de bucles de acoplamiento cruzado dependiente al menos en parte de las características físicas al menos parcialmente aleatorias del bucle de acoplamiento cruzado específico, y -un circuito de lectura (120) para leer la pluralidad de estados estables en los que se asienta la pluralidad de bucles de acoplamiento cruzado (110) después de un encendido, estando la función física no clonable para la pluralidad de bucles de acoplamiento cruzado configurada para ser de solo lectura, caracterizada por -un dominio de alimentación conmutable, estando la pluralidad de bucles de acoplamiento cruzado (110)
comprendida en el dominio de alimentación y estando al menos una parte de la función física no clonable fuera del dominio de alimentación, estando el dominio de alimentación configurado para conectar y desconectar de manera selectiva la pluralidad de bucles de acoplamiento cruzado (110) de la fuente de alimentación mientras que la al menos una parte de la función física no clonable está conectada a la fuente de alimentación.
2. Una función física no clonable (100) como en la reivindicación 1, en la que la pluralidad de bucles de acoplamiento cruzado de dos inversores (110) son una pluralidad de bus keepers.
3. Una función física no clonable (100) como en las reivindicaciones 1 o 2, en la que al menos una parte del circuito de lectura está fuera del dominio de alimentación. 25
4. Una función física no clonable (100) como en una cualquiera de las reivindicaciones anteriores, en la que el dominio de alimentación se alimenta solo durante la lectura de los bucles de acoplamiento cruzado.
5. Una función física no clonable (100) como en las reivindicaciones 1, 2, 3 o 4, en la que la pluralidad de bucles de
acoplamiento cruzado (110) , el dominio de alimentación, el conmutador de alimentación y la al menos una parte de la función física no clonable están implementados en un único circuito integrado.
6. Una función física no clonable (100) como en las reivindicaciones 1, 2, 3, 4 o 5 que comprende un circuito de aislamiento para aislar la pluralidad de bucles de acoplamiento cruzado (110) de la al menos una parte de la función física no clonable, mientras que la pluralidad de bucles de acoplamiento cruzado (110) está desconectada de la fuente de alimentación.
7. Una función física no clonable (100) como en una cualquiera de las reivindicaciones anteriores, en la que al menos un bucle de acoplamiento cruzado comprende exactamente una conexión de datos, y en la que la exactamente una conexión de datos está configurada solo para leer el estado estable en el que el al menos un bucle de acoplamiento cruzado se ha asentado tras el encendido.
8. Una función física no clonable (100) como en una cualquiera de las reivindicaciones anteriores, en la que el circuito de lectura (120) comprende una pluralidad de multiplexores para seleccionar los bucles de acoplamiento 45 cruzado de la pluralidad de bucles de acoplamiento cruzado.
9. Una función física no clonable (100) como en la reivindicación 8, en la que cada bucle de acoplamiento cruzado de la pluralidad de bucles de acoplamiento cruzado está conectado a un multiplexor de la pluralidad de multiplexores.
10. Una función física no clonable (100) como en una cualquiera de las reivindicaciones 8 y 9, en la que al menos dos bucles de acoplamiento cruzado de la pluralidad de bucles de acoplamiento cruzado están conectados al mismo multiplexor de la pluralidad de multiplexores.
11. Una función física no clonable (100) como en una cualquiera de las reivindicaciones 8, 9, y 10, en la que la pluralidad de multiplexores está dispuesta como un árbol de multiplexores, estando el circuito de lectura dispuesto para leer la pluralidad de estados estables a través del árbol de multiplexores.
12. Una función física no clonable (100) como en una cualquiera de las reivindicaciones 8 y 9, en la que cada bucle 60 de acoplamiento cruzado diferente de la pluralidad de bucles de acoplamiento cruzado está conectado a un multiplexor diferente de la pluralidad de multiplexores.
13. Una función física no clonable (100) como en una cualquiera de las reivindicaciones anteriores, que comprende una lógica de control PUF para derivar un identificador de la pluralidad de estados estables. 65
14. Una función física no clonable (100) como en la reivindicación 13, en la que la lógica de control PUF está configurada para aplicar un algoritmo de corrección de errores a la pluralidad de estados estables y a los datos auxiliares para derivar el identificador.
15. Una función física no clonable (100) como en la reivindicación 13, en la que la lógica de control PUF está configurada para derivar un número aleatorio de la pluralidad de estados estables.
16. Una función física no clonable (100) como en la reivindicación 13, en la que la lógica de control PUF está configurada para un ciclo de lectura que comprende:
- apagar la pluralidad de bucles de acoplamiento cruzado, -encender la pluralidad de bucles de acoplamiento cruzado, y -leer la pluralidad de bucles de acoplamiento cruzado.
17. Un método para obtener datos PUF que comprende -encender una pluralidad de bucles de acoplamiento cruzado de dos inversores (110) comprendidos en un dominio de alimentación conmutable configurado para conectar y desconectar de manera selectiva la pluralidad de bucles de acoplamiento cruzado de dos inversores (110) de la fuente de alimentación, -permitir que cada uno de la pluralidad de bucles de acoplamiento cruzado de dos inversores (110) se asiente en uno de al menos dos estados estables diferentes, siendo el estado estable específico en el que se asienta un bucle de acoplamiento cruzado específico de la pluralidad de bucles de acoplamiento cruzado dependiente al menos en parte de las características físicas al menos parcialmente aleatorias del bucle de acoplamiento cruzado específico, -leer la pluralidad de estados estables en los que se asienta la pluralidad de bucles de acoplamiento cruzado de dos inversores (110) después de un encendido a través de un circuito de lectura, siendo la pluralidad de bucles de acoplamiento cruzado de dos inversores de solo lectura.
18. Un ordenador que comprende una función física no clonable como en la reivindicación 1, programado con un programa informático que comprende unos medios de código de programa informático adaptados para realizar todas las etapas de la reivindicación 17 cuando el programa informático se ejecuta en un ordenador.
Patentes similares o relacionadas:
Método para generar números aleatorios y generador de número aleatorio asociado, del 19 de Febrero de 2020, de Quantum Numbers Corp: Un método para generar al menos un número aleatorio, el método comprende los pasos de: generar una corriente de tunelización de cargas desde […]
Procedimiento y sistema de generación de bits cuánticos aleatorios, del 17 de Julio de 2019, de Quantum Numbers Corp: Un procedimiento para generar una muestra de bits aleatorios mediante el uso de una barrera de tunelización cuántica que comprende un aislante intercalado […]
PROCESO PARA LA GENERACIÓN FÍSICA DE NÚMEROS ALEATORIOS UTILIZANDO UN LÁSER EMISOR DE SUPERFICIE DE CAVIDAD VERTICAL, del 9 de Mayo de 2019, de FUNDACIÓ INSTITUT DE CIÈNCIES FOTÒNIQUES: Procedimiento para la generación física de números aleatorios que comprende los pasos de: - modular la ganancia de un láser emisor de superficie de cavidad vertical periódicamente […]
Generador de números aleatorios verdaderos, del 13 de Marzo de 2019, de Trentino Sviluppo S.p.A: Un generador de números aleatorios del tipo que comprende: - una fuente de fotones; - uno o más detectores de fotones del tipo SPAD configurados […]
Dispositivo y método para generar una clave de identificación, del 9 de Enero de 2019, de ICTK Holdings Co., Ltd: Un aparato para generar una clave de identificación, el aparato comprende: un generador de claves configurado para generar un bit digital basado en si […]
Autenticación de suministro de a través de respuesta al desafío de temporización, del 11 de Diciembre de 2018, de HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.: Un dispositivo de suministro reemplazable que incluye una CPU y una memoria , la memoria almacenando una clave de base , […]
Procedimiento y aparato para generador de números aleatorios, del 13 de Septiembre de 2017, de QUALCOMM INCORPORATED: Un procedimiento para generar números aleatorios para su uso en un dispositivo de comunicación inalámbrica, generándose los números aleatorios en un generador […]
Procedimiento y equipo para generar números aleatorios utilizando la arquitectura de un doble oscilador y caos de tiempo continuo, del 19 de Julio de 2017, de TUBITAK: Generador de bits aleatorios que incluye una arquitectura de doble oscilador que comprende un oscilador rápido con frecuencia rápida f(fast) […]