ES2825774T3 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- ES2825774T3 ES2825774T3 ES16727355T ES16727355T ES2825774T3 ES 2825774 T3 ES2825774 T3 ES 2825774T3 ES 16727355 T ES16727355 T ES 16727355T ES 16727355 T ES16727355 T ES 16727355T ES 2825774 T3 ES2825774 T3 ES 2825774T3
- Authority
- ES
- Spain
- Prior art keywords
- value
- electronic circuit
- components
- values
- inherent
- 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/32—Cryptographic 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/3271—Cryptographic 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 challenge-response
- H04L9/3278—Cryptographic 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 challenge-response using physically unclonable functions [PUF]
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/84—Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
Método para generar un valor (19) inherente a un circuito electrónico (10) por medio de medidas de una magnitud física realizada en los componentes (11) de este circuito electrónico (10), caracterizado por el hecho de que incluye: - calcular y asociar a cada componente (11) al menos un valor (V) derivado de una serie de medidas (f1, f2, ... fi) llevadas a cabo en dicho componente (11), donde el cálculo de dicho valor (V) comprende: - determinar un valor estadístico a partir de dicha serie de medidas (f1, f2, ... fi), - definir dicho valor (V) derivado de la serie de medidas como dicho valor estadístico o un rango de incertidumbre calculado a partir de este valor estadístico, - formar una colección (13) de pares invariables de componentes (11), - seleccionar, en dicha colección (13), pares (16) para que dichos valores (V) asociados a los componentes (11) de cada uno de estos pares (16) estén separados entre sí por al menos un valor consigna (Vc), - generar dicho valor (19) inherente al circuito electrónico (10) concatenando los resultados de comparaciones basadas en al menos una de las siguientes enumeraciones: - los valores (V) asociados a los componentes (11) de cada par seleccionado (16), - datos de los cuales al menos uno se deriva de estos valores (V), donde dichos resultados se procesan en un orden invariable, como dichos valores (V) o datos relativos a estos pares (16) durante dichas comparaciones.
Description
DESCRIPCIÓN
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
DOMINIO TÉCNICO
[0001] La presente descripción se refiere a un método que permite generar un valor inherente a un circuito electrónico, como, por ejemplo, un chip o un conjunto de chips. Más particularmente, este método implica el uso de funciones físicamente imposibles de clonar, es decir, el uso de funciones que no se pueden reproducir, copiar o clonar. La presente descripción también se refiere a un circuito electrónico, para la implementación del método, así como a un método que usa un valor inherente a dicho circuito.
ESTADO DE LA TÉCNICA
[0002] Las funciones no clonables físicamente (PUF, por sus siglas en inglés, para acortar) se están estudiando actualmente en el mundo académico e industrial como fuentes de identificador únicas, conectadas físicamente a componentes electrónicos incorporados o asociados a circuitos integrados. La idea principal pretende explotar variaciones de proceso de fabricación de estos componentes que hacen que los circuitos electrónicos (tales como los chips o los conjuntos de chips) sean únicos gracias a sus propiedades intrínsecas.
[0003] Esta tecnología se basa en las particularidades que suelen tener todos los procesos de fabricación de componentes electrónicos. Como dichos procesos no pueden ser perfectos, pero aseguran una producción con un determinado margen de exactitud, dentro de este margen crean pequeñas diferencias entre los componentes que producen. En otras palabras, aunque estos componentes provienen de la misma línea de producción y se producen en las mismas condiciones, existen, sin embargo, diferencias que, de manera intrínseca, personalizan involuntariamente estos componentes. El truco consiste en transformar estas diferencias, resultantes de las tolerancias del proceso de fabricación, en información explotable. Esta información se puede cualificar como casi única, dado que la probabilidad de obtener, al final de una línea de producción, dos circuitos integrados provistos de componentes que tengan exactamente las mismas características físicas es extremadamente baja. Además, esta información tiene la particularidad de no ser previsible ni reproducible por el proceso de fabricación. De este modo, es posible identificar un componente o un conjunto de componentes electrónicos, entre otros.
[0004] Una función física o clonable, de ahora en adelante llamada función PUF, es una función que aprovecha las variaciones aleatorias propias de los componentes de un circuito integrado determinando, mediante medidas exactas, uno o más parámetros físicos de estos componentes electrónicos. Por lo tanto, es fácil crear dicha función PUF para obtener un identificador o un valor particular, de ahora en adelante llamado valor PUF, pero es muy difícil, si no imposible, clonar esta función para recuperar este valor. Esto se debe principalmente a que el valor PUF de dicha función es, desde un punto de vista práctico, imposible de predecir y/o reproducir, ya que no se pueden controlar las minúsculas diferencias que personalizan los componentes electrónicos en lo que se basa la función PUF. La información de estas pequeñas diferencias se puede representar mediante una secuencia de bits pseudoaleatoria. Esta información o este valor único tiene, por lo tanto, todas las características esperadas de un secreto que podría usarse ventajosamente con fines criptográficos, por ejemplo.
[0005] La mayoría de aplicaciones consideradas hasta el momento se puede reagrupar en tres categorías principales, es decir, generación de chips identificables por medio de un único identificador definido por dicha función PUF, autenticación de chips mediante un proceso que conlleva desafíos y respuestas asociadas (de tipo desafío/respuesta), así como la generación de claves criptográficas. Actualmente, cabe señalar que la mayoría de aplicaciones se refieren a la última categoría y tienen como objetivo cubrir soluciones donde el valor PUF se usa como una clave criptográfica en los intercambios de mensajes seguros.
[0006] La desventaja de estos chips radica en el hecho de que el valor PUF que crean puede variar. De hecho, dado que este valor depende de los componentes electrónicos, solo podría definirse como inmutable en condiciones teóricas ideales correspondientes a una ausencia de ruido parásito. Ahora, en realidad, este valor PUF puede fluctuar ligeramente dependiendo de las condiciones de uso. Estas fluctuaciones pueden referirse típicamente a variaciones de temperatura operativas de componentes electrónicos o a ligeras variaciones en el suministro de energía. También puede originarse de un ruido aleatorio producido por el propio circuito (por ejemplo, en el caso de un circuito antiguo) o por el entorno en el que se encuentra. Estas inestabilidades implican respuestas erróneas, es decir, respuestas que, en determinadas condiciones de uso, ya no corresponden a las obtenidas en un entorno controlado, como las de una línea de producción.
[0007] Con el objetivo de poder obtener un valor PUF que sea constante a partir de dicho chip, existen varias soluciones conocidas.
[0008] La primera solución es generar un valor por medio de una función PUF y almacenar este valor PUF en una memoria del chip. Por lo tanto, cada vez que este valor PUF tenga que usarse, por ejemplo, como una clave
criptográfica o un identificador, será recuperable de esta memoria. Ahora bien, almacenar un valor que puede ser confidencial en una memoria no impide que una persona malintencionada lo lea.
[0009] Una segunda solución es comprobar la precisión del valor procedente de la función PUF, o al menos detectar si este valor está viciado por un error. Para este fin, el valor PUF se puede comparar con un valor de referencia. Este valor de referencia puede ser el valor producido con mayor frecuencia por la función PUF. Ahora bien, esta comparación implica el almacenamiento en la memoria del valor de referencia que, como se ha visto, no es una solución que se puede considerar como suficientemente segura. Para detectar si el valor producido por la función PUF es un valor plausible, otra solución es usar una indicación complementaria que caracterice el valor PUF. Esta indicación se usa generalmente en determinadas transmisiones de datos a través de canales de comunicación que no son totalmente fiables. Dicha indicación puede consistir típicamente en un bit de paridad, puesto a cero si la suma de bits del valor PUF es par, y puesto a uno si es impar. La primera desventaja de dicha indicación es que no permite garantizar la exactitud del valor PUF y solo ofrece una indicación de la probabilidad de que este valor sea correcto. La segunda desventaja es que dicha indicación surge de un cálculo basado en el valor de la función PUF y, por lo tanto, proporciona información sobre este valor. Ahora bien, cualquier información sobre este valor podría ser útil para cualquier persona malintencionada que intente identificar el valor de la función PUF. Para evitar esta primera desventaja, se conoce el uso de códigos de corrección de errores, tales como los códigos de Hamming que pueden detectar tanto la presencia de un error como corregirlo. Sin embargo, dichos códigos también proporcionan información sobre el valor PUF y tienen la misma desventaja que la segunda desventaja mencionada con anterioridad. Adicionalmente, estos códigos de corrección no pueden corregir todo tipo de errores. Por ejemplo, algunos de estos códigos solo pueden corregir errores debido a inversiones de bits simples.
[0010] Una tercera solución consiste en generar este valor PUF varias veces seguidas, en rondas sucesivas, cada vez que necesitemos obtener este valor, luego comparar los valores PUF generados de esta manera antes de devolver finalmente el valor mostrado con mayor frecuencia. Sin embargo, este proceso requiere que las probabilidades de error sean débiles para que el valor real PUF se pueda identificar claramente entre todos los valores calculados durante cada ronda. Además, la realización de un número no despreciable de rondas requiere un tiempo de ejecución importante que monopoliza los recursos de cálculo del chip e impide que este último acceda a otros procesos que pretenden, en particular, usar el valor PUF para una aplicación particular.
[0011] Una cuarta solución se describe en la publicación EP2816757 y consiste en establecer una función PUF mediante un dato de consigna que, durante una operación de configuración inicial, permite personalizar aun más el circuito electrónico que aloja la función PUF. Esta personalización se obtiene, por ejemplo, seleccionando los componentes que formarán la base de esta función. En otras palabras, este dato de consigna permite elegir, entre los componentes electrónicos del chip útil para la función PUF, un subconjunto de componentes electrónicos sobre los que se realizarán medidas de una o varias magnitudes físicas. Esta operación de inicialización puede ocurrir típicamente durante la producción de chips o posteriormente durante una fase de prueba o inicialización del chip. La desventaja de esta solución radica en el hecho de que, durante esta inicialización, fase de prueba o personalización, el chip está en un "estado abierto" que da acceso a sus características físicas, por lo que al valor PUF que se supone que debe generar, o al menos a información valiosa que permite identificar este valor. Por lo tanto, cualquier "estado abierto" del chip, incluso en un entorno restringido, representa entonces un problema de confidencialidad.
[0012] La EP 2081170 describe un dispositivo de seguridad que proporciona una estabilidad y una confidencialidad mejoradas de una clave procedente de una función hash. Este dispositivo incluye una unidad PUF que ofrece resistencia a los ataques mediante el uso de características físicas para generar una clave predefinida procedente de dicha función hash. También incluye una unidad para memorizar información de corrección de errores parciales, una unidad de corrección de la función PUF que produce información de corrección PUF, así como varias otras unidades de corrección.
[0013] El documento XP031183294 (Edward Suh G et al., titulado "Physical Unclonable Functions for Device Authentication and Secret Key Generation") describe diseños basados en funciones PUF que explotan características de retardo inherentes a los transistores que difieren de un circuito integrado a otro. Este documento describe cómo las funciones PUF pueden permitir la autenticación de circuitos integrados a bajo coste y generar claves secretas volátiles para operaciones criptográficas.
BREVE DESCRIPCIÓN
[0014] El objeto de la presente descripción es solucionar al menos parcialmente los problemas anteriormente mencionados proponiendo un circuito electrónico que sea capaz, por medio de una función física no clonable, de generar un valor constante sin intervención externa. También se propone como otro objeto un método que permita generar dicho valor en dicho circuito, así como un método particular de uso de este valor. La invención se define como se establece en las reivindicaciones independientes 1 y 9.
[0015] El circuito electrónico anteriormente mencionado se refiere a cualquier circuito o parte de circuito. En particular, puede ser el de un chip, un conjunto de chips o una porción de un chip.
[0016] El adjetivo "constante" anteriormente mencionado significa que este valor puede ser reproducido sin divergencia y de manera duradera por el circuito electrónico. Por lo tanto, este adjetivo describe la estabilidad y la fiabilidad del valor producido.
[0017] El uso de la función PUF tiene como objetivo especificar que este valor está íntimamente conectado al circuito electrónico, en especial conectado material o físicamente a los componentes de este circuito. El nombre "valor PUF" se deriva de esta conexión. Como se mencionó previamente, dado que este valor depende de los componentes únicos del circuito electrónico del que proviene, podría ser ventajosamente un carácter casi único que calificaría su existencia en una sola copia. De hecho, las probabilidades que ya son muy escasas de obtener dos circuitos integrados provistos de componentes que tienen exactamente las mismas características físicas se pueden reducir a proporciones insignificantes diseñando el circuito electrónico provisto de una función PUF de manera inteligente. La singularidad del valor PUF en comparación con el mismo lote de circuitos electrónicos no solo dependerá del número de circuitos electrónicos considerados, sino también de diferentes parámetros, como el número de componentes usados para calcular el valor PUF, así como el número de bits que componen el valor PUF.
[0018] En su forma general, el método está destinado a generar un valor PUF, es decir, un valor inherente a un circuito electrónico a través de medidas de una magnitud física, donde estas medidas se llevan a cabo en componentes de este circuito. Este método incluye los siguientes pasos:
- calcular y asociar a cada componente al menos un valor derivado de una serie de medidas realizadas en dicho componente,
- formar una colección de pares invariables de componentes,
- seleccionar pares de dicha colección para que los valores asociados a los componentes de cada uno de estos pares estén separados entre sí, es decir, separados o alejados entre sí, por al menos un valor consigna que sea, en particular, invariable y preferiblemente predefinido,
- generar dicho valor inherente al circuito electrónico concatenando los resultados de las comparaciones de los valores asociados a los componentes de cada par seleccionado y/o los resultados de las comparaciones de datos, donde al menos uno de estos datos se derivada de estos valores; para ello, dichos resultados se tratan en un orden invariable, preferiblemente predefinido, al igual que dichos valores o datos con respecto a estos pares durante dichas comparaciones.
[0019] Según la invención, el cálculo del valor derivado de la serie de medidas es un cálculo estadístico. Aun preferiblemente, este cálculo pretende determinar un valor promedio a partir de dicha serie de medidas. El valor derivado de la serie de medidas puede ser el valor promedio determinado. Alternativamente, también se podría calcular un rango de incertidumbre para cada valor promedio antes de definir el valor derivado de la serie de medidas como el rango de incertidumbre calculado.
[0020] Según la invención, el cálculo del valor derivado de la serie de medidas incluirá los siguientes pasos:
- determinar un valor estadístico a partir de dicha serie de medidas,
- definir dicho valor derivado de la serie de medidas como dicho valor estadístico o un rango de incertidumbre calculado a partir de este valor estadístico;
donde dicho valor estadístico es preferiblemente un valor promedio, como el valor promedio de las medidas de la serie.
[0021] El criterio de selección de los pares de la colección puede ser, por ejemplo, la ausencia de superposición del rango de incertidumbre asociado a los componentes de los pares de esta colección. La aplicación de este criterio se realiza sobre los rangos de incertidumbre asociadas a cada par examinado durante esta selección.
[0022] El valor PUF inherente al circuito electrónico puede ser, por ejemplo, generado comparando los rangos de incertidumbre asociados a los componentes de cada par previamente seleccionado. Por lo tanto, preferiblemente, de cada par seleccionado se puede obtener un bit, que tiene el valor 1 o 0, como resultado de la comparación. Como estas comparaciones se realizan en valores que han sido seleccionados para estar suficientemente separados entre sí, y como los valores o datos comparados se toman en un orden invariable, entonces los resultados de estas comparaciones son ventajosamente constantes, independientemente de cuántas veces se repita n.
[0023] Además, como los resultados de estas comparaciones también se tratan en un orden invariable, el valor PUF resultante es un valor constante, es decir, estable a lo largo del tiempo, independientemente de cualquier perturbación. De hecho, este valor no depende ventajosamente de variaciones inoportunas debidas, por ejemplo, a fluctuaciones de temperatura o tensión de alimentación y no está influenciado por inestabilidades provocadas por ruidos parásitos. Como consecuencia, el proceso de generar este valor PUF puede repetirse ventajosamente
de una sesión a otra, en particular cada vez que el circuito electrónico necesite este valor para ser usado en cualquier aplicación. Esta característica permite evitar que este valor se almacene en una memoria (por ejemplo, una memoria no volátil), para un uso adicional de esta aplicación. Además, la reproducibilidad de este valor no depende de ninguna intervención externa al circuito electrónico que lo produjo.
[0024] En cualquier momento, este circuito se puede mantener ventajosamente en un "estado cerrado". Desde este circuito electrónico no se emite ninguna información que permita proporcionar una indicación capaz de descubrir el valor PUF, preferiblemente, ni se almacena en él de forma permanente. Por consiguiente, este circuito es capaz de generar, por sus propios medios, un valor secreto específico de él y que no se puede descubrir.
[0025] También se presentarán otras ventajas y formas de realización en la siguiente descripción detallada.
BREVE DESCRIPCIÓN DE LAS FIGURAS
[0026] La descripción se entenderá mejor gracias a los dibujos esquemáticos adjuntos, dados como ejemplos no limitativos, en los que:
La figura 1 es una representación esquemática de un circuito electrónico, típicamente un circuito integrado, que opera una función física no clonable (PUF).
La figura 2 es una ilustración de un ejemplo de datos estadísticos procedentes de las medidas realizadas en los componentes del circuito electrónico.
La figura 3 es una ilustración de los pasos principales del método según una primera forma de realización.
DESCRIPCIÓN DETALLADA
[0027] Con referencia a la figura 1, representa un circuito electrónico 10, que puede ser típicamente un circuito integrado, un conjunto de chips, un chip electrónico, una parte de un chip o cualquier otro elemento que integre un circuito electrónico o una porción de circuito. Este circuito 10 incluye varios elementos electrónicos, incluida una pluralidad de componentes 11 usados como elementos fuente para proporcionar medidas útiles para crear una función física no clonable, la denominada función PUF. Como se representa esquemáticamente en esta figura, estos componentes 11 consisten, por ejemplo, en osciladores diferentes, en particular osciladores de anillo, cuyo número es típicamente alrededor de varias docenas, por ejemplo, alrededor de 64 o 128 piezas. Estos osciladores 11 están preferiblemente cada uno acoplados a un elemento de medición 12 para determinar un valor físico específico de cada oscilador. En este caso, el(los) elemento(s) de medición 12 puede(n) medir precisamente las frecuencias f de los osciladores a las que está(n) dedicado(s). Alternativamente, uno o un número restringido de elementos de medición 12 podría ser compartido por varios osciladores para determinar dicho valor físico específico de cada oscilador. Aunque a continuación nos referiremos esencialmente a los osciladores como ejemplos de componentes 11, está claro que esta forma de realización no es en modo alguno limitante y que podrían usarse otros componentes 11, a partir de los cuales podrían ser medidas otras magnitudes físicas (por el(los) elemento(s) de medición 12), como corriente, tensión, energía, resistencia, temperatura, tiempo, intensidad de luz, etc. El(Los) elemento(s) de medición 12 será(n) típicamente dispositivos electrónicos equipados en consecuencia para medir una o más magnitudes físicas.
[0028] Como primer método, se puede considerar que los osciladores que componen el circuito electrónico 10 son idénticos y no difieren de un circuito 10 a otro, en particular si proceden de la misma línea de producción. Sin embargo, como segundo método, se puede ver que cada oscilador tiene una frecuencia específica a él y que las frecuencias de los osciladores no son exactamente idénticas, pero fluctúan ligeramente de un oscilador a otro. En las tecnologías submicrométricas profundas, la pequeña variación de frecuencia, dentro de osciladores del mismo tipo producidos, por ejemplo, mediante el mismo proceso de fabricación en una o más líneas de producción idénticas, es suficiente para crear una función física no clonable. Por lo tanto, esta función PUF aprovechará el hecho de que cada oscilador tenga una frecuencia intrínseca que sea esencialmente un resultado de las pequeñas variaciones a las que se ha sometido durante la fabricación.
[0029] El método se describirá ahora usando los dibujos adjuntos.
[0030] Uno de los objetivos de este método es generar un valor 19, inherente al circuito electrónico 10, mediante medidas de una magnitud física, en este caso una frecuencia, por ejemplo. Como se muestra esquemáticamente en las figuras 1 y 3, estas medidas se realizan en componentes 11 de este circuito 10. Más específicamente, se llevarán a cabo una serie de medidas f 1, f2, ... fi, por ejemplo, en todos los componentes 11 provistos para este fin en el circuito electrónico 10.
[0031] En base a cada serie de medidas, podremos calcular, para cada componente 11 usado, al menos un valor estadístico derivado de las medidas realizadas en este componente. Por ejemplo, y como se muestra en la figura 2, determinaremos el valor promedio V de cada serie de medidas f 1, f2, ... fi. Además, el rango de incertidumbre p también podría determinarse en torno a cada valor promedio. Este rango de incertidumbre corresponde a una estimación del error de valor promedio y puede ser determinado por fórmulas estadísticas, tales como las usadas
para calcular la desviación estándar o la incertidumbre sobre el promedio. Cuanto mayor sea el número de medidas realizadas, mejor será la estimación del promedio porque se reducirá el error. Sin embargo, habrá que encontrar un compromiso, ya que cuanto mayor sea el número de medidas realizadas, mayor será el tiempo hasta los valores estadísticos derivados de estas medidas. Como se muestra en la figura 2, se puede observar que el rango de incertidumbre p se puede expresar de diferentes formas. Este puede ser determinado, por ejemplo, por dos valores extremos a, b, por ejemplo, por dos frecuencias en una escala de frecuencia f. En otro ejemplo, este rango p podría ser definido por la estimación del error y en torno al valor promedio (por ejemplo, K1±e1).
[0032] Al menos un valor V (por ejemplo, el valor promedio V y/o el rango de incertidumbre p) derivado de las medidas fi, f2, ... fi se asociará al componente del que proceden estas medidas. Esta asociación se puede obtener, por ejemplo, por medio de un registro o una tabla que asocia este/estos valor(es) V a un identificador del componente 11 en cuestión. Dicha asociación se muestra en la figura 1 mediante los valores Vi, V2, ... Vn que se refieren respectivamente a los componentes identificados por los identificadores ID1, ID2, ... IDn. Una unidad de cálculo 15, como un microprocesador o un conjunto de componentes electrónicos, podría ejecutar esta tarea, por ejemplo, después de haber realizado los cálculos de estos valores V 1, V2, ... Vn.
[0033] Siguiendo este primer paso mostrado en el lado izquierdo de la figura 3 hay un segundo paso principal destinado a formar una colección 13 (es decir, un conjunto) de pares invariables de componentes 11, preferiblemente de todos los componentes cuyos valores estadísticos se han determinado previamente. Esta colección 13 se muestra en el lado izquierdo central de la figura 3, donde los pares invariables de componentes se indican por pares de letras entre paréntesis (Vx -Vy). Por lo tanto, el primero de estos pares podría ser determinado por la pareja (V1 - V2), el segundo por la pareja (V1 - V3) y así sucesivamente hasta que se hayan determinado todas las posibles combinaciones o un determinado número de estas combinaciones. En este ejemplo, las indicaciones de los valores V se refieren a los identificadores ID de los componentes de los que se derivan los valores V. Además, mediante este ejemplo se puede entender que los componentes de cada par se pueden identificar mediante estos valores. El orden que conduce a la formación de estos pares podría definirse en una rutina, por ejemplo, por medio de pasos de programación ejecutados, por ejemplo, por la unidad de cálculo 15. Lo importante es que este orden, una vez definido, tiene que ser inmutable para obtener pares de componentes invariables y, por lo tanto, contribuir a la reproducibilidad del valor PUF 19.
[0034] Como alternativa, los pares invariables de la colección 13 podrían generarse por medio de una tabla o una lista preestablecida que defina pares predefinidos de componentes. Dicha lista o tabla podría implicar ubicaciones referenciadas (por ejemplo, la ubicación n° 3 asignada al componente ID3) en las que los valores V asociados a los componentes correspondientes pueden almacenarse sucesivamente de forma temporal. Por ejemplo, estos valores podrían almacenarse una vez que se hayan determinado y hasta que se hayan usado en el siguiente paso para seleccionar pares de componentes 11 entre los de la colección 13.
[0035] En vez de considerar todos los componentes 11 disponibles en el circuito electrónico 10, también podría considerarse solo un subconjunto de estos componentes, siempre que este subconjunto esté perfectamente definido y sea invariable.
[0036] Hay entonces un tercer paso principal para seleccionar, en esta colección 13, pares 16 para que los valores V asociados a los componentes de cada uno de estos pares cumplan al menos un criterio de selección 14. Como se muestra en la parte central derecha de la figura 3, el criterio de selección 14 aplicado en este paso puede definir, por ejemplo, que estos valores V deben estar separados, entre sí, por al menos un valor consigna Vc. Por ejemplo, si consideramos que los valores V asociados a los componentes 11 de cada par son los rangos de incertidumbre p previamente calculados, esta selección podría consistir entonces en elegir un par cuyos rangos de incertidumbre no se superpongan. Este caso se muestra como un ejemplo en la figura 2 por la desviación O entre los rangos p? y p2 resultantes del par del componente (1-2), que se refiere a los identificadores ID1; ID2. En este caso, el valor consigna Vc que cuantifica la distancia mínima entre los rangos sería un valor nulo. Podría ser mayor que cero si queremos aumentar el grado de seguridad y asegurarnos de que ni siquiera los valores extremos más cercanos (b1 y a2 en la figura 2) de dos rangos se puedan confundir.
[0037] El valor consigna Vc se puede considerar como un valor a alcanzar o un umbral (valor mínimo) a alcanzar. Puede ser un valor predeterminado o depender de las medidas tomadas. En cualquier caso, este valor será una constante en el sentido de que será invariable. Esto contribuirá al carácter reproducible del valor PUF 19, que tiene que ser siempre idéntico cada vez al final del proceso que lo genera en el mismo circuito electrónico 10 para garantizar una perfecta fiabilidad.
[0038] Como alternativa y sabiendo que los valores promedio (por ejemplo, K1, y 2) asociados a los componentes de un par tienen rangos de incertidumbre (pi, P2) que no se superponen si estos valores promedio están lo suficientemente separados entre sí, también sería posible considerar estos valores promedio en vez de su rango de incertidumbre. En este caso, el valor consigna Vc que cuantifica la desviación mínima entre los valores promedio (K1, y 2) sería un valor al menos igual al promedio de los dos rangos considerados (pi, p2), preferiblemente al menos
igual al promedio de los dos rangos más grandes entre todos los rangos de incertidumbre determinados, o incluso igual a la extensión p del rango de incertidumbre más grande determinada.
[0039] Como se muestra en la figura 3, la realización de esta operación de selección permite obtener pares llamados pares seleccionados 16. A medida que se seleccionan, los pares seleccionados 16 se pueden almacenar temporalmente, por ejemplo, en una lista o una tabla, hasta que se hayan usado para generar el valor PUF 19. Para hacer esto, por ejemplo, pueden colocarse sucesivamente en una lista tras la selección o se les puede asignar un índice, por ejemplo, un identificador cronológico que define un orden invariable. También podrían ser colocados en una lista o en una tabla en posiciones referenciadas por un índice (no cronológico).
[0040] Como hemos visto, el establecimiento de la colección 13 de pares invariables puede surgir de un orden de procesamiento particular. Este orden de procesamiento también será invariable. Por ejemplo, dicho orden podría tener como objetivo considerar sucesivamente el primer componente 11 y todos los otros componentes, luego repetir sucesivamente este proceso con el segundo componente, el tercer componente, el cuarto componente y así sucesivamente al menos hasta que se procesen los n componentes. Durante el paso de selección, es decir, el tercer paso principal anteriormente descrito, se observará que probar los pares en dicho orden de procesamiento para saber si cumplen el criterio de selección 14 y, si es apropiado, colocar sucesivamente los pares seleccionados 16 en una lista una vez que se establece que cumplen este criterio de selección 14, permite obtener automáticamente una secuenciación de los pares seleccionados 16. Además, esta secuenciación es inmutable, ya que depende del orden de procesamiento invariable según el cual se han probado los pares que se van a seleccionar.
[0041] Por lo tanto, los pares 16 que han sido seleccionados se pueden ordenar indirectamente a través del orden de procesamiento impuesto que, sucesivamente, se siguió para formarlos o directamente por medio de un índice o cualquier medio de referencia.
[0042] También se observará que, durante este paso de selección, no es necesario examinar todos los pares de la colección 13, aunque podría ser parte de una forma de realización preferida. De hecho, podríamos examinar los diferentes pares de esta colección hasta llegar a un cierto número de pares seleccionados 16. Sin embargo, en este caso, los pares de la colección 13 tendrán que ser examinados en un orden invariable, como el orden de procesamiento invariable anteriormente mencionado, mientras que el carácter invariable de dicho orden no se requiere si, durante este paso de selección, se examinan todos los pares de la colección 13 o todos los pares de un subconjunto invariable de esta colección. Nuevamente, lo que importa es que podemos identificar u ordenar (directa o indirectamente) cada par seleccionado 16 para que los resultados de las comparaciones con respecto a los valores o datos relativos a estos pares se puedan procesar en un orden invariable durante el siguiente paso. Todas las formas de realización que permitan realizar este paso de selección pueden ser implementadas ventajosamente por la unidad de cálculo 15 o por cualquier otra unidad electrónica (procesador, conjunto de chips, etc.), por ejemplo, leyendo y llevando a cabo una rutina que se pueda preprogramar típicamente en esta unidad. La ejecución de esta rutina puede, por supuesto, hacer uso de otros dispositivos de almacenamiento, como, por ejemplo, memorias temporales o registros de cálculo.
[0043] Una vez realizado el paso de selección, será posible generar el valor 19 inherente al circuito electrónico en un cuarto paso principal, a partir de los resultados de comparaciones de los valores V asociados a los componentes 11 de cada par seleccionado 16. Como se describirá con más detalle posteriormente, estas comparaciones también podrían relacionarse con datos donde al menos uno de estos datos se deriva de estos valores V.
[0044] Con referencia a la parte derecha de la figura 3, este paso de comparación está simbolizado por la prueba de expresión "Vx>Vy?". Los valores o datos de cada par seleccionado 16 están indicados por los pares de dígitos entre paréntesis, donde cada dígito se refiere simbólicamente a un componente (por ejemplo, a su identificador) y contiene un valor asociado a este componente o un dato derivado de dicho valor. Por lo tanto, en el ejemplo de la figura 3, el primer par seleccionado 16 es la pareja (1-3), el segundo es la pareja (2-4), el tercero es la pareja (3-n) y así sucesivamente. Los valores o datos de estos pares deben ser comparados por un comparador 17, o por una pluralidad de comparadores 17, como se esquematiza en la figura 1. Cada comparador 17 tiene como objetivo determinar cuál de los dos valores V o datos de la pareja que recibe es, por ejemplo, el mayor o el menor (sin excluir otros operadores relacionales, como "mayor o igual" o "menor o igual"). En respuesta, el comparador 17 producirá un valor binario elemental 18 en su salida, es decir, un bit 1 si, en el caso del par (X-Y), el valor Vx es, por ejemplo, mayor que el valor Vy y un bit 0 en el caso opuesto. Se observará que los datos o valores Vx, Vy de un par se procesarán en un orden constante (es decir, invariable) y preferiblemente se predefinirán durante estas comparaciones. Esto se deriva del hecho de que, si el operador usado en esta comparación es, por ejemplo, "mayor que", el resultado de la expresión Vx > Vy difiere, por supuesto, del resultado que proviene de la expresión opuesta Vy > Vx.
[0045] El siguiente caso hipotético podría considerarse como valores o datos que se pueden comparar.
[0046] En un primer caso, los valores comparados podrían ser rangos de incertidumbre, en particular si, como se muestra en la figura 2, cada rango pi, p2 está definido por dos valores extremos ai, bi, respectivamente a2, b2.
Para verificar que los dos rangos del mismo par no se superponen, es fácilmente posible, por ejemplo, controlar que cada uno de los dos valores extremos ai, b i de un primer rango p1 sea mayor o menor que los otros dos valores extremos a2, b2 del segundo rango p2.
[0047] En un segundo caso, esta comparación puede ser, como ya se ha mencionado, sobre la comparación de los valores promedio asociados a los componentes del par, ya que se ha determinado (durante el tercer paso principal dirigido a seleccionar los pares 16) que los rangos de incertidumbre en torno a estos valores promedio no se superponen o no pueden superponerse.
[0048] En un tercer caso, esta comparación podría ser, al mismo tiempo, sobre los rangos de incertidumbre y los valores promedio en el centro de estos rangos. En realidad, esto depende de cómo se expresen los rangos en cuestión. En este caso hipotético, los rangos estarían expresados por la estimación del error e en torno al valor promedio V (figura 2).
[0049] En un cuarto caso, esta comparación podría ser sobre datos, al menos uno de los cuales se derivaría de los valores V asociados a los componentes del par. Por ejemplo, podríamos considerar la brecha entre los rangos, es decir, la distancia D que separa los dos rangos (por ejemplo p?, P2) del par en cuestión (véase la figura 2). Esta brecha, o distancia entre rangos, corresponde a un dato derivado de los valores (los rangos de incertidumbre) asociados a los componentes del par. Esta brecha D podría compararse luego con otro dato, como un valor de referencia que sería un segundo valor consigna, por ejemplo, un valor que define una brecha mínima (□ m¡n). Como alternativa de este segundo valor consigna, también podríamos considerar un rango de consigna. Por ejemplo, podríamos verificar si la brecha entre los valores promedio Vx y Vy de un par está entre dos valores que determinan un rango de consigna, como un rango mínimo que se debe alcanzar.
[0050] Independientemente del caso hipotético elegido, el resultado de cada comparación siempre conduce a una respuesta binaria, como lo muestran los valores binarios elementales 18 de las figuras 1 y 3. Sobre la base de los resultados de estas comparaciones, es decir, sobre la base de estos valores binarios elementales 18, se determinará el valor PUF 19 en el paso último. Para contribuir a la reproducibilidad de este valor PUF, es importantes que estos resultados también se procesen en un orden invariable. Este orden invariable se puede obtener, por ejemplo, respetando un orden cronológico o señalando cada uno de los resultados. Esta colocación se puede obtener, por ejemplo, por medio de ubicaciones o posiciones ocupadas por estos resultados en una lista cronológica, se puede obtener por medio de índices que identifiquen estas posiciones (en particular, si esta lista no es cronológica), o finalmente se puede obtener mediante parejas de coordenadas que colocan los resultados en una tabla (o cuadrícula) de dos dimensiones. Según este orden invariable, los valores binarios elementales 18 (resultados de las comparaciones) se colocarán sucesivamente uno tras otro para formar el valor PUF 19, tal y como se ilustra en las figuras 1 y 3. Este cuarto paso principal destinado a generar el valor PUF 19 puede ser llevado a cabo, por ejemplo, por la unidad de cálculo 15 o por cualquier otra unidad electrónica (procesador, conjunto de chips, memorias, registros de cálculo, etc.), tal y como se describe anteriormente con referencia a los pasos precedentes.
[0051] Se pueden considerar diferentes ejemplos de realización de los pasos principales previamente descritos, como a veces ya se mencionó.
[0052] Según una forma de realización preferida y con referencia a la ilustración dada en la figura 2, el proceso para calcular al menos un valor (valor estadístico V) derivado de la serie de medidas f f2, ... fi) llevadas a cabo en cada componente en cuestión incluirá los siguientes pasos:
- determinar un valor promedio V de esta serie de medidas,
- calcular un rango de incertidumbre p para cada valor promedio V,
- definir el valor V derivado de la serie de medidas como el rango de incertidumbre p calculado de esta manera o el valor promedio V determinado de esta manera.
[0053] Debe observarse que, en caso de que el valor V se defina como el valor promedio V determinado de esta manera, el paso anteriormente mencionado para calcular el rango de incertidumbre p para cada valor promedio V se convierte en un paso opcional.
[0054] En particular, la selección de pares entre los de la colección 13 se realizará, par a par, comparando los rangos de incertidumbre p asociados a los componentes del par, luego seleccionando los pares cuyos componentes tienen rangos de incertidumbre p que no se superponen. En otras palabras y con referencia a la figura 2, el último paso determina la brecha D entre los rangos de incertidumbre p?, P2 del par y verifica que esta brecha O es mayor o igual a cero, dado que la superposición de dos rangos da como resultado una brecha O menor que cero.
[0055] Según una forma de realización, el rango de incertidumbre p de cada valor promedio V se calcula en base a un intervalo de confianza que se da como una constante de cálculo. Este intervalo de confianza puede ser de aproximadamente el 68 % o el 95 %, por ejemplo. En estadística, dicho intervalo permite cuantificar el grado de exactitud del valor promedio V.
[0056] Como se ilustra en las figuras 1 y 3, el valor PUF 19 está formado por una secuencia ordenada de valores binarios elementales 18. Como se ha mencionado anteriormente, estos valores corresponden a los resultados de las comparaciones de valores (o datos) asociados a los componentes de los pares seleccionados 16. Estos resultados se procesan en un orden invariable para obtener la secuenciación de la serie de bits del valor PUF. Para obtener un valor PUF fuerte (que es, un valor seguro), es importante que el número de bits que contiene sea lo suficientemente alto para que no se pueda adivinar este valor, por ejemplo, probando todas las posibles combinaciones de un número finito de 1 y 0.
[0057] Sin embargo, un valor PUF provisto de un número muy grande de bits es incómodo de manipular, en particular en aplicaciones posteriores destinadas a él. Por esta razón, se sugiere una forma de realización en la que el valor p Uf es el resultado de una función hash aplicada a un valor intermedio; donde este valor intermedio viene determinado por el procesamiento ordenado de los resultados anteriormente mencionados. En otras palabras, en vez de obtener el valor PUF directamente después de secuenciar los resultados (valores binarios elementales 18), como se muestra en figuras 1 y 3, esta secuenciación conduce a obtener un valor intermedio. Luego se aplica una función hash (invariable) a este valor intermedio para obtener el valor PUF 19 que, ventajosamente, será de longitud más corta que el valor intermedio. La longitud de este valor PUF 19 puede ser definida, por ejemplo, por la función hash.
[0058] El objeto de la presente descripción también se refiere a un circuito electrónico 10 (figura 1) configurado para generar un valor 19 (valor PUF) inherente a este circuito. Este último incluye una pluralidad de componentes 11, en cada uno de los cuales, o en una parte de los cuales, se puede medir al menos una magnitud física. Esta magnitud física se mide mediante al menos un elemento de medición 12. Si el número de elementos de medición 12 es igual al número de componentes 11, cada componente tendrá su elemento de medición 12. Si el número de elementos de medición 12 es inferior al número de componentes 11, los elementos de medición 12 serán compartidos por varios componentes 11. En cualquier caso, de cada componente 11 se obtendrá una serie de medidas f f2, ... fi) de la magnitud física en cuestión. Esta magnitud dependerá principalmente del tipo de componente 11. Preferiblemente, estos componentes serán osciladores, en particular osciladores de anillo. Este circuito electrónico 10 incluye además al menos un comparador 17 adaptado para comparar dos valores y, preferiblemente, una interfaz 20 que permite intercambiar información con un entorno externo al circuito electrónico 10.
[0059] Este circuito electrónico 10 incluye una unidad de cálculo 15 configurada para ejecutar los pasos del método descrito anteriormente, en particular los pasos de cualquier forma de realización de este método.
[0060] En su versión básica, esta unidad de cálculo 15 se configurará entonces para:
- calcular y asociar a cada componente 11 al menos un valor V derivado de una serie de medidas f 1, f2, ... fi realizadas en este componente 11,
- formar una colección 13 de pares invariables de componentes 11,
- seleccionar, en esta colección 13, pares 16 para que los valores V asociados a los componentes 11 de cada uno de estos pares 16 estén separados por al menos un valor consigna Vc,
- generar el valor 19 (valor PUF) inherente al circuito electrónico 10 en base a los resultados de las comparaciones de los valores V asociados a los componentes 11 de cada par y/o de los resultados de las comparaciones de datos, uno de lo cuales al menos se deriva de estos valores V; donde estos resultados se procesan en un orden invariable, al igual que dichos valores V o datos relativos a estos pares durante dichas comparaciones.
[0061] Preferiblemente, el cálculo del valor V derivado de la serie de medidas tendrá como objetivo, por ejemplo:
- determinar un valor estadístico a partir de dicha serie de medidas,
- definir dicho valor que deriva de la serie de medidas como dicho valor estadístico o un rango de incertidumbre calculado a partir de este valor estadístico;
donde dicho valor estadístico es posiblemente un valor promedio, como el valor promedio de las medidas de la serie.
[0062] Como ya se mencionó en la descripción del método, el almacenamiento temporal de las medidas f1, f2, ... fi y otros datos calculados se pueden hacer por medio de una o más memorias, por ejemplo de tipo volátil, donde posiblemente está típicamente integrado en la unidad de cálculo 15 o conectado a ella. Esta unidad de cálculo se puede configurar para eliminar estas memorias, preferiblemente tan pronto como el almacenamiento de los datos
recogidos o calculados se vuelva obsoleto. Por ejemplo, la eliminación de estos datos podría programarse y ejecutarse tan pronto como estos datos se hayan usado y, por lo tanto, ya no es necesario tenerlos almacenados.
[0063] Como también se mencionó durante la descripción del método, la formación de la colección 13 de pares invariables podría originarse de una rutina preprogramada, por ejemplo, en la unidad central 15.
[0064] La implementación del método, según cualquiera de las formas de realización anteriormente descritas, se puede llevar a cabo por medio de un algoritmo implementado, por ejemplo, en la unidad de cálculo 15. Esta implementación se puede llevar a cabo típicamente durante la fabricación del circuito electrónico 10.
[0065] El conjunto de algoritmos y/o rutinas necesarios para la implementación de al menos uno de cualquiera de los pasos del método, según cualquiera de las formas de realización anteriormente descritas, se esquematiza en la figura 1 mediante el número de referencia 15' en la unidad de cálculo 15.
[0066] Como se muestra en figura 1, los comparadores 17 pueden estar situados fuera de la unidad de cálculo 15 o pueden ser parte de ella, como se representa mediante la línea discontinua que esquematiza la extensión de esta unidad de cálculo.
[0067] Una vez implementado el algoritmo o el conjunto de algoritmos 15' en el circuito electrónico 10, preferiblemente con todas las constantes (es decir, datos invariables) que son necesarios, este circuito tiene la ventaja de que es autónomo y no tiene que usar ningún paso de inicialización o personalización para ser explotable. Por lo tanto, este circuito 10 aparece completamente cerrado, sin ninguna posibilidad de acceder a ninguna información que pueda proporcionar alguna información en el valor PUF 19 que genera. Entonces es capaz de generar este valor PUF 19 con total autonomía. Aun ventajosamente, este circuito electrónico 10 está configurado para que el valor PUF 19, o cualquier información que pueda dar alguna información sobre este valor, nunca se transmita fuera de este circuito (por ejemplo, a través de la interfaz 20) y, preferiblemente, nunca se almacene permanentemente en él. Esto significa que a los recursos (memorias, registros, tablas u otros medios) configurados para almacenar temporalmente datos calculados y valores medidos se les elimina, preferiblemente, su contenido a más tardar tan pronto como dicho valor PUF 19 inherente al circuito electrónico 10 se haya usado por primera vez. Por lo tanto, borrar temporalmente los datos y valores almacenados en estos medios de almacenamiento obliga al circuito electrónico 10 a recalcular el valor PUF después de cada uso de este valor por una aplicación implementada en este circuito.
[0068] En otras palabras, el circuito electrónico 10 es capaz, por mismo, de generar un valor PUF 19 que ningún otro dispositivo o circuito o nadie puede conocer. Solo el circuito 10 que genera este valor PUF es capaz de conocerlo.
[0069] Aun ventajosamente, dado que este circuito electrónico 10 no tiene, preferiblemente, ninguna memoria o medio que permita almacenar este valor PUF permanentemente, se ve obligado a recalcularlo cada vez que este valor deba ser usado para una de sus aplicaciones. Aunque esto requiere más tiempo y recursos de cálculo, esta restricción es una garantía de seguridad. De hecho, aparte del momento en que se calcula este valor PUF, el circuito electrónico 10 aparece ventajosamente como inerte e inútil para cualquiera que intente hackearlo para obtener este valor secreto.
[0070] Como el valor PUF no se puede exportar fuera del circuito electrónico 10, preferiblemente este último también incluirá una unidad de aplicación 25 que puede alojar al menos una aplicación dirigida a usar el valor PUF 19 para un propósito particular. Se entenderá que la palabra solicitud significa, en este caso, un programa (o un conjunto de software) usado directamente para el circuito electrónico 10 (en particular, por la unidad de aplicación 25) para ejecutar una tarea o un conjunto de tareas que involucran el valor PUF 19.
[0071] La unidad de aplicación 25 podría consistir en una unidad criptográfica capaz de generar una clave pública de encriptación a partir del valor PUF usado como clave privada en un sistema de criptografía asimétrica. Ventajosamente, dicho circuito 10 provisto de dicha aplicación permite garantizar perfectamente el secreto de la clave privada, ya que está confinada en el circuito electrónico 10 y solo podría ser generada por este último, sin ninguna intervención externa. Por otro lado, la clave pública podría transmitirse a través de la interfaz 20. Dicha unidad criptográfica también se usaría para desencriptar mensajes, donde estos mensajes habrían sido codificados por la clave pública. Estos mensajes posiblemente se reciban, por ejemplo, a través de la interfaz 20. Evidentemente podrían implementarse otras aplicaciones que requieran la generación y el uso de valores secretos en la unidad de aplicación 25 durante la fabricación del circuito electrónico 10.
[0072] Preferiblemente, el circuito electrónico 10 se puede construir en forma monolítica para que sea imposible separar sus componentes sin destruir el circuito.
[0073] La presente descripción también se refiere a un método para usar el valor 19 inherente al circuito electrónico 10. Este método de uso tiene la característica particular de requerir que cada vez se genere este valor PUF 19 para su uso. Por lo tanto, este método obliga a generar el valor PUF 19, por el método previamente descrito para
este propósito y, en particular por cualquiera de las formas de realización de este método, con el fin de usar este valor 19 inherente al circuito electrónico 10.
[0074] En una forma de realización más específica, se observará que el valor 19 es usado exclusivamente por el circuito electrónico 10 que lo genera. Más particularmente, este valor será usado, por ejemplo, por una aplicación implementada en la unidad de aplicación 25 de este circuito electrónico 10. Además, el valor 19 inherente a este circuito electrónico 10 se genera preferiblemente cuando una aplicación implementada en este circuito electrónico 10 requiere el uso de este valor 19. En otras palabras, significa que este valor PUF no se genera y luego se almacena de antemano, sin necesidad real de usar este valor.
[0075] Aunque se ha descrito una descripción general del objeto inventivo con referencia a formas de realización ejemplares específicas, se pueden realizar diversas modificaciones y diversos cambios de estas formas de realización sin apartarse del alcance más amplio de formas de realización de la presente invención. Por ejemplo, un experto en la técnica puede mezclar y combinar o hacer opcionales varias formas de realización o características de las mismas. Dichas formas de realización del objeto inventivo pueden ser referidas en este caso, individual o colectivamente, por el término "invención" simplemente por conveniencia y sin la intención de limitar voluntariamente el alcance de esta aplicación en cualquier invención o concepto inventivo individual si más de uno es, de hecho, divulgado.
[0076] Se cree que las formas de realización ilustradas aquí se describen con detalle suficiente para permitir a los expertos en la técnica poner en práctica las instrucciones descritas. Se pueden usar y derivar de las mismas otras formas de realización, de manera que se pueden realizar sustituciones y cambios estructurales y lógicos sin apartarse del alcance de esta divulgación. La descripción detallada, por lo tanto, no debe tomarse en un sentido limitativo, y el alcance de varias formas de realización está definido únicamente por las reivindicaciones adjuntas.
Claims (15)
1. Método para generar un valor (19) inherente a un circuito electrónico (10) por medio de medidas de una magnitud física realizada en los componentes (11) de este circuito electrónico (10), caracterizado por el hecho de que incluye:
- calcular y asociar a cada componente (11) al menos un valor (V) derivado de una serie de medidas f f2, ...
fi) llevadas a cabo en dicho componente (11), donde el cálculo de dicho valor (V) comprende:
- determinar un valor estadístico a partir de dicha serie de medidas f f2, ... fi),
- definir dicho valor (V) derivado de la serie de medidas como dicho valor estadístico o un rango de incertidumbre calculado a partir de este valor estadístico,
- formar una colección (13) de pares invariables de componentes (11),
- seleccionar, en dicha colección (13), pares (16) para que dichos valores (V) asociados a los componentes (11) de cada uno de estos pares (16) estén separados entre sí por al menos un valor consigna (Vc), - generar dicho valor (19) inherente al circuito electrónico (10) concatenando los resultados de comparaciones basadas en al menos una de las siguientes enumeraciones:
- los valores (V) asociados a los componentes (11) de cada par seleccionado (16),
- datos de los cuales al menos uno se deriva de estos valores (V),
donde dichos resultados se procesan en un orden invariable, como dichos valores (V) o datos relativos a estos pares (16) durante dichas comparaciones.
2. Método según la reivindicación 1, caracterizado por el hecho de que dicho valor estadístico es un valor promedio.
3. Método según la reivindicación 1 o 2, caracterizado por el hecho de que la selección de los pares (16) se realiza entre los de dicha colección (13), par tras par, comparando los rangos de incertidumbre asociados a los componentes del par, luego seleccionando los pares (16) cuyos componentes tienen rangos de incertidumbre que no se superponen.
4. Método según cualquiera de las reivindicaciones precedentes, caracterizado por el hecho de que dicho valor consigna (Vc) depende de las medidas realizadas.
5. Método según cualquiera de las reivindicaciones 2 a 4, caracterizado por el hecho de que dicho rango de incertidumbre se determina mediante dos valores extremos que delimitan dicho rango de incertidumbre o estimando un error en torno a dicho valor promedio.
6. Método según cualquiera de las reivindicaciones precedentes, caracterizado por el hecho de que dichos datos comparados para generar el valor (19) inherente al circuito electrónico (10) son al menos un valor de referencia y un valor que cuantifica un intervalo entre los rangos asociados a los componentes de dicho par seleccionado (16).
7. Método según cualquiera de las reivindicaciones precedentes, caracterizado por el hecho de que dicho rango de incertidumbre se calcula en base a un intervalo de confianza dado.
8. Método según cualquiera de las reivindicaciones precedentes, caracterizado por el hecho de que dicho valor (19) inherente al circuito electrónico (10) se deriva de una función hash aplicada a un valor intermedio determinado por el procesamiento ordenado de dichos resultados.
9. Circuito electrónico (10) configurado para generar un valor (19) inherente a este circuito, que comprende: - una unidad de cálculo (15) configurada para llevar a cabo el método según cualquiera de las reivindicaciones 1 a 8,
- los componentes (11) en cada uno de los cuales se puede medir al menos una magnitud física,
- al menos un elemento de medición (12) que permite ejecutar medidas f f2, ... fi) de esta magnitud física, - al menos un comparador (17) adaptado para comparar dos valores para llevar a cabo dichas comparaciones, y
- una interfaz (20) que permite intercambiar información con un entorno externo a dicho circuito electrónico (10), y
- una unidad de aplicación (25) que puede alojar al menos una aplicación destinada a usar dicho valor (19) inherente al circuito electrónico (10).
10. Circuito electrónico (10) según la reivindicación 9, caracterizado por el hecho de que también está configurado para evitar cualquier transmisión, a través de dicha interfaz (20), de dicho valor (19) inherente a este circuito electrónico (10).
11. Circuito electrónico (10) según la reivindicación 9 o 10, caracterizado por el hecho de que incluye medios configurados para memorizar temporalmente datos calculados y valores medidos, y de que está configurado para eliminar estos datos y estos valores de dichos medios de almacenamiento a más tardar tan pronto como dicho valor (19) inherente al circuito electrónico (10) se haya usado por primera vez.
12. Circuito electrónico (10) según cualquiera de las reivindicaciones 9 a 11, caracterizado por el hecho de que dicha unidad de aplicación (25) es una unidad criptográfica configurada para generar una clave pública de dicho valor (19) inherente al circuito electrónico (10), donde este valor (19) se usa como clave privada asociada a dicha clave pública en un sistema de criptografía asimétrica, donde esta unidad criptográfica también está configurada para desencriptar mensajes codificados por medio de dicha clave pública.
13. Método para usar un valor (19) inherente a un circuito electrónico (10), caracterizado por el hecho de que este valor (19) es generado cada vez, por el método según cualquiera de reivindicaciones 1 a 8, para ser usado.
14. Método según la reivindicación 13, caracterizado por el hecho de que dicho valor (19) es usado exclusivamente por dicho circuito electrónico (10).
15. Método según la reivindicación 13 o 14, caracterizado por el hecho de que dicho valor (19) se genera cuando una aplicación implementada en este circuito electrónico (10) requiere el uso de este valor (19).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15169422 | 2015-05-27 | ||
PCT/EP2016/061867 WO2016189070A1 (en) | 2015-05-27 | 2016-05-26 | Method for generating a value inherent to an electronic circuit, electronic circuit generating this value and method for using such a value |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2825774T3 true ES2825774T3 (es) | 2021-05-17 |
Family
ID=53434203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES16727355T Active ES2825774T3 (es) | 2015-05-27 | 2016-05-26 | 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 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20180123807A1 (es) |
EP (1) | EP3304737B1 (es) |
JP (1) | JP6899778B2 (es) |
KR (1) | KR102503366B1 (es) |
CN (1) | CN107646130B (es) |
ES (1) | ES2825774T3 (es) |
WO (1) | WO2016189070A1 (es) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919216A (zh) * | 2017-03-01 | 2017-07-04 | 深圳大学 | 一种基于Cascode电流镜结构的物理不可克隆电路 |
CN109428712B (zh) * | 2017-08-24 | 2022-01-07 | 上海复旦微电子集团股份有限公司 | 数据加、解密方法及数据加、解密系统 |
US11190336B2 (en) * | 2019-05-10 | 2021-11-30 | Sap Se | Privacy-preserving benchmarking with interval statistics reducing leakage |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176106B2 (en) * | 2005-12-14 | 2012-05-08 | Nxp B.V. | On-chip estimation of key-extraction parameters for physical tokens |
EP2081170A1 (en) * | 2006-11-06 | 2009-07-22 | Panasonic Corporation | Information security apparatus |
US8290150B2 (en) * | 2007-05-11 | 2012-10-16 | Validity Sensors, Inc. | Method and system for electronically securing an electronic device using physically unclonable functions |
JP2011526113A (ja) * | 2008-06-27 | 2011-09-29 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | アイテムの真正性、完全性、及び/又は物理的状態を検証するための装置、システム、及び方法 |
US8468186B2 (en) * | 2009-08-05 | 2013-06-18 | Verayo, Inc. | Combination of values from a pseudo-random source |
FR2955394B1 (fr) * | 2010-01-18 | 2012-01-06 | Inst Telecom Telecom Paristech | Circuit integre en silicium comportant une fonction physiquement non copiable, procede et systeme de test d'un tel circuit |
WO2011138823A1 (ja) * | 2010-05-06 | 2011-11-10 | 三菱電機株式会社 | ビット列生成装置及びビット列生成方法 |
US8619979B2 (en) * | 2010-06-25 | 2013-12-31 | International Business Machines Corporation | Physically unclonable function implemented through threshold voltage comparison |
US8848905B1 (en) * | 2010-07-28 | 2014-09-30 | Sandia Corporation | Deterrence of device counterfeiting, cloning, and subversion by substitution using hardware fingerprinting |
WO2012122309A2 (en) * | 2011-03-07 | 2012-09-13 | University Of Connecticut | Embedded ring oscillator network for integrated circuit security and threat detection |
KR101359783B1 (ko) * | 2012-07-24 | 2014-02-10 | (주)농업전자 | 부정합 부하 저항 소자 기반 물리적 복제 불가 함수 시스템 |
US9208355B1 (en) * | 2013-05-28 | 2015-12-08 | Sandia Corporation | Apparatus, system and method for providing cryptographic key information with physically unclonable function circuitry |
EP2816756A1 (fr) | 2013-06-18 | 2014-12-24 | Nagravision S.A. | Procédé et dispositif cryptographique unique à fonction physiquement induplicable |
DE102013013047B4 (de) * | 2013-08-06 | 2015-05-07 | Infineon Technologies Ag | Bestimmung einer Kennung |
CN105849701B (zh) * | 2013-08-28 | 2019-07-23 | Stc.Unm公司 | 采用金属电阻变化分析稳定性的系统和方法 |
JP2015065495A (ja) * | 2013-09-24 | 2015-04-09 | ルネサスエレクトロニクス株式会社 | 暗号鍵供給方法、半導体集積回路および暗号鍵管理装置 |
US20150134966A1 (en) * | 2013-11-10 | 2015-05-14 | Sypris Electronics, Llc | Authentication System |
US9485094B1 (en) * | 2014-04-21 | 2016-11-01 | Maxim Integrated Products, Inc. | Systems and methods for stable physically unclonable functions |
-
2016
- 2016-05-26 ES ES16727355T patent/ES2825774T3/es active Active
- 2016-05-26 KR KR1020177033900A patent/KR102503366B1/ko active IP Right Grant
- 2016-05-26 US US15/575,651 patent/US20180123807A1/en not_active Abandoned
- 2016-05-26 WO PCT/EP2016/061867 patent/WO2016189070A1/en active Application Filing
- 2016-05-26 EP EP16727355.6A patent/EP3304737B1/en active Active
- 2016-05-26 JP JP2017558684A patent/JP6899778B2/ja active Active
- 2016-05-26 CN CN201680030256.4A patent/CN107646130B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP6899778B2 (ja) | 2021-07-07 |
EP3304737B1 (en) | 2020-09-02 |
EP3304737A1 (en) | 2018-04-11 |
KR102503366B1 (ko) | 2023-02-23 |
CN107646130A (zh) | 2018-01-30 |
CN107646130B (zh) | 2021-03-19 |
KR20180012761A (ko) | 2018-02-06 |
WO2016189070A1 (en) | 2016-12-01 |
US20180123807A1 (en) | 2018-05-03 |
JP2018517347A (ja) | 2018-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102656990B1 (ko) | 물리적 복제 방지 기능을 갖는 암호화 디바이스 | |
US9992031B2 (en) | Dark bits to reduce physically unclonable function error rates | |
JP6789222B2 (ja) | 物理的複製不可能関数を備える暗号デバイス | |
Delvaux et al. | Helper data algorithms for PUF-based key generation: Overview and analysis | |
US20160006570A1 (en) | Generating a key derived from a cryptographic key using a physically unclonable function | |
JP2018504827A (ja) | 物理的複製不可能関数からの暗号鍵生成 | |
Ravi et al. | Drop by Drop you break the rock-Exploiting generic vulnerabilities in Lattice-based PKE/KEMs using EM-based Physical Attacks. | |
US12095904B2 (en) | Method for role-based data transmission using physically unclonable function (PUF)-based keys | |
JP2015532549A (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 | |
JP2013031151A (ja) | 暗号通信システムおよび暗号通信方法 | |
US11245680B2 (en) | Garbled circuit for device authentication | |
Prada-Delgado et al. | Trustworthy firmware update for Internet-of-Thing Devices using physical unclonable functions | |
WO2019011607A1 (en) | GENERATION OF A SECURE KEY FROM AN UNCONCLABLE PHYSICAL FUNCTION SOLICITED | |
Bruneau et al. | Development of the unified security requirements of PUFs during the standardization process | |
JP5831203B2 (ja) | 個体別情報生成装置、暗号化装置、認証システム、及び個体別情報生成方法 | |
TWI716685B (zh) | 電子系統及其操作方法 | |
Müller et al. | Enabling secure boot functionality by using physical unclonable functions | |
Tebelmann et al. | Analysis and protection of the two-metric helper data scheme | |
US10892890B2 (en) | Hash offset based key version embedding | |
WO2019241007A1 (en) | Generating a target data based on a function associated with a physical variation of a device | |
JP6014214B2 (ja) | 暗号通信システムおよび暗号通信方法 | |
CN112395561B (zh) | 数据库指纹的生成及验证方法、装置、存储介质及设备 | |
TWI782540B (zh) | 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法 | |
ES2875583T3 (es) | Actualización de claves criptográficas almacenadas en la memoria no volátil |