ES2684846B1 - Dispositivo y procedimiento para la identificación unívoca de un circuito integrado - Google Patents

Dispositivo y procedimiento para la identificación unívoca de un circuito integrado Download PDF

Info

Publication number
ES2684846B1
ES2684846B1 ES201730535A ES201730535A ES2684846B1 ES 2684846 B1 ES2684846 B1 ES 2684846B1 ES 201730535 A ES201730535 A ES 201730535A ES 201730535 A ES201730535 A ES 201730535A ES 2684846 B1 ES2684846 B1 ES 2684846B1
Authority
ES
Spain
Prior art keywords
circuit
output
input
signal
question
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES201730535A
Other languages
English (en)
Other versions
ES2684846A1 (es
Inventor
Arrontes Luis Alfonso Entrena
Gonzalez Honorio Martin
Millan Heredia Enrique San
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universidad Carlos III de Madrid
Original Assignee
Universidad Carlos III de Madrid
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universidad Carlos III de Madrid filed Critical Universidad Carlos III de Madrid
Priority to ES201730535A priority Critical patent/ES2684846B1/es
Publication of ES2684846A1 publication Critical patent/ES2684846A1/es
Application granted granted Critical
Publication of ES2684846B1 publication Critical patent/ES2684846B1/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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/3278Cryptographic 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]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/01Details
    • H03K3/011Modifications of generator to compensate for variations in physical values, e.g. voltage, temperature
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0377Bistables with hysteresis, e.g. Schmitt trigger
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Manipulation Of Pulses (AREA)
  • Image Processing (AREA)

Description

DESCRIPCION
Dispositivo y procedimiento para la identification umvoca de un circuito integrado
OBJETO DE LA INVENCION
La presente invention pertenece en general al campo de la electronica, y mas particularmente a las tecnicas utilizadas para la identificacion utivoca de circuitos integrados con el proposito de impedir su falsification.
Un primer objeto de la presente invencion es un novedoso dispositivo que contiene un circuito del tipo denominado Funcion Fisica Inclonable (PUF, Physically Unclonable Function) que proporciona una huella electronica inclonable para un circuito integrado.
Un segundo objeto de la presente invencion esta dirigido al procedimiento que lleva a cabo el dispositivo anterior para obtener una huella electronica inclonable para un circuito integrado.
ANTECEDENTES DE LA INVENCION
La falsificacion y reutilizacion de circuitos integrados constituye actualmente uno de los mayores desafios de la industria electronica. Segun la empresa de analisis criticos IHS, estos problemas pueden suponer una perdida potencial para la industria de hasta 169 billones de dolares cada ano. Es por ello que la identificacion univoca de cada circuito integrado se ha convertido en uno de los mayores retos tecnologicos en estos dias.
En este contexto, es conocido que los procesos de fabrication submicrometricos estan sujetos a variaciones incontrolables que provocan la existencia de pequenas diferencias en las caracteristicas de cada transistor contenido en un circuito integrado. En efecto, pequenas variaciones durante la fabricacion de un circuito integrado provocan diferencias minusculas en la velocidad del circuito y no hay nada que pueda hacerse para evitarlo. Actualmente, se estan utilizando estas imperfecciones inevitables para crear una huella electronica inclonable conocida como Funcion Fisica Inclonable (PUF, Physically Unclonable Function). En primer lugar, a un circuito integrado o chip que se desea identificar se le anade durante la fabricacion un circuito de identificacion adicional o circuito PUF. Como consecuencia de las mencionadas diferencias incontrolables inherentes al proceso de fabricacion, este circuito PUF presenta unas caracteristicas fisicas unicas e inclonables. Por tan to, basta con identificar de manera umvoca el circuito PUF para poder determinar de manera segura la identidad del circuito integrado o chip en su conjunto. Este procedimiento se ha convertido en una de las formas mas sencillas de certificar que un circuito integrado es quien dice ser.
Dentro de este campo, merecen especial atencion los denominados circuitos PUF de retardo o Arbiter PUF. Los circuitos Arbiter PUF se basan en la aleatoriedad de los retardos de los cables y puertas logicas del circuito integrado, y son los mas extendidos debido a su facil implementation. En los ultimos anos, se han presentado diversas propuestas y solicitudes de patente sobre este tipo de circuitos denominados Arbiter PUF.
Un circuito PUF de retardo actualmente muy extendido es el denominado circuito PUF de anillos oscilantes descrito por G.E. Suh et al en “Physical unclonable functions for device authentication and secret key generation”, Proc. Design Automation Conference (DAC 2007), pp9-14, Junio 2007. Este circuito, mostrado en la Fig. 1, incluye varios anillos oscilantes identicos excepto por las variaciones incontrolables debidas al proceso de fabrication que estan conectados a un par de multiplexores. Una senal de entrada denominada “pregunta” permite seleccionar 2 anillos oscilantes particulares (anillos oscilantes A y B). Se compara entonces la frecuencia de oscilacion de estos dos anillos durante un periodo determinado: si el anillo oscilante A tiene una mayor frecuencia, la respuesta sera ‘1’; en caso contrario, la respuesta sera ‘0’.
Otro tipo de circuito PUF actualmente conocido es el denominado Glitch-PUF. Este tipo de circuito PUF se basa en el muestreo de los pulsos transitorios (denominados “glitches”) que se producen durante el tiempo anterior al instante en el que un circuito alcanza un estado estable. Al igual que en el circuito PUF descrito anteriormente, los circuitos Glitch-PUF tipicamente usan un esquema de pregunta/respuesta en el que cada respuesta depende exclusivamente de la pregunta y de la variation unica de los retardos debidos a las tolerancias introducidas en los procesos de fabricacion.
Para explicar mejor el modo de funcionamiento de los circuitos Glitch-PUF, supongamos un circuito Glitch-PUF que incluye como parte integrante un circuito sencillo como el mostrado en la Fig. 2, formado por una puerta XOR cuya salida constituye la entrada a una puerta AND. Las entradas a la puerta XOR son (x1, x2) y su salida se denomina x12. Las entradas a la puerta AND son (x12, x3) y su salida se denomina y. Supongamos que a este circuito llega una entrada (x1, x2, x3) = (1, 1, 1). Es evidente que, en regimen permanente, la salida de la puerta XOR seria x12 = 0 y por lo tanto la respuesta seria y = 0. Idealmente, la llegada hasta el valor de la respuesta y = 0 se produciria de acuerdo con el diagrama de la Fig. 3a: todas las senales (x1, x2, x3) adoptan su valor ‘1’ de manera simultanea, y como consecuencia la salida y adopta el valor ‘0’ en todo momento. Sin embargo, la realidad es que, debido a las pequenas variaciones en los retardos de los diferentes transistores del circuito Glitch-PUF, la llegada al circuito de la Fig. 2 de los flancos de subida de las senales de entrada (x1, x2, x3) no se produce simultaneamente. Concretamente, como se muestra en la Fig. 3b, la senal x1 llega antes que la senal x2, y por tanto durante un pequeno intervalo de tiempo la salida x12 de la puerta XOR adopta un valor ‘1’. Como la llegada del valor de x3 = 1 se produce durante este pequeno intervalo, en la salida aparece un pulso transitorio de valor ‘1’ antes de que esta adopte el valor permanente de ‘0’. Puede deducirse facilmente que para diferentes senales de entrada en el circuito Glitch-PUF, tanto los valores como los retardos de las diferentes senales de entrada (x1, x2, x3) serian diferentes. Como consecuencia, se obtiene una pluralidad de pares pregunta-respuesta umvocos donde la pregunta esta formada por el conjunto de senales de entrada al circuito Glitch-PUF y respuesta es la configuration de los diferentes pulsos transitorios que aparecen en la salida. Ademas, si bien en este ejemplo sencillo unicamente se produce un unico pulso transitorio, es necesario tener en cuenta que para circuitos mas complejos la respuesta transitoria realmente incluye un tren de pulsos transitorios de diferentes duraciones y retardos que corresponden de manera univoca a cada pregunta particular.
Un inconveniente de los circuitos Glitch-PUF es que la duration de los pulsos transitorios es arbitrariamente pequena, lo que puede hacerlos eventualmente dificiles de detectar. En efecto, la senal de salida del circuito Glitch-PUF se detecta a traves de un muestreo de acuerdo con una determinada frecuencia de muestreo proporcionada por un reloj. Cuando un pulso en la salida y es muy estrecho, puede ocurrir que la frecuencia de muestreo no sea lo suficientemente alta como para detectarlo. Esta situation se muestra en la Fig. 3c, donde se supone que el valor de la salida se muestrea en cada flanco de subida de unos pulsos de un reloj CLK. Como se puede apreciar, un pulso en la senal de salida como el que aparece en esta figura no sena detectado.
Para solucionar este problema, se han propuesto diversas soluciones. Algunas de ellas estan basadas en incrementar la frecuencia de muestreo de la respuesta del circuito Glitch-PUF, por ejemplo utilizando una pluralidad de senales de reloj desfasadas escalonadamente unas con respecto a otras. Otra solution se propone en el documento de D. Suzuki et al “The glitch PUF: a new delay-PUF architecture exploiting glitch shapes”, Proceedings of the 12th international conference on Cryptographic hardawre and embedded systems (CHES’10), Springer-Verlag, Berlin, Heidelberg, 366-382. Este documento describe un circuito Glich-PUF cuya salida es desfasada un pequeno periodo y muestreada con el mismo reloj. La Fig.4 muestra un ejemplo del esquema descrito por Suzuki.
Un problema adicional de los circuitos Glitch-PUF actualmente conocidos esta relacionado con las condiciones cambiantes del entorno, lo que hace que la repetitividad sea baja.
DESCRIPCION DE LA INVENCION
La presente invencion resuelve los problemas anteriores gracias a una nueva arquitectura en la que las salidas de dos circuitos generadores de pulsos transitorios, identicos excepto por las diferencias inherentes al proceso de fabrication y en los que se ha introducido una determinada senal simultaneamente, se introducen en un denominado circuito arbitro. El circuito arbitro esta configurado para determinar cual de dos pulsos emitidos por los dos circuitos generadores ha llegado antes y para emitir una correspondiente senal de salida. Por ejemplo, si ha llegado antes el pulso de uno de los circuitos generadores de pulsos transitorios, el circuito arbitro emite un "1”, mientras que si ha llegado antes el pulso del otro circuito generador de pulsos transitorios, el circuito arbitro emite un "0”. De ese modo, para cada pulso individual producido como respuesta a una determinada senal “pregunta” formada por varios bits que se introduce en dichos circuitos generadores de pulsos transitorios, el arbitro emite un pulso de valor “1” o “0”.
Es decir, para cada senal “pregunta” de varios bits introducida simultaneamente en los dos circuitos generadores de pulsos transitorios, la salida de cada uno de dichos circuitos producira un tren de pulsos durante un periodo de tiempo transitorio hasta que dicha salida queda estabilizada. Puesto que los dos circuitos generadores de pulsos transitorios son esencialmente identicos, estas senales de salida estaran formadas por parejas de pulsos casi simultaneos en ambos circuitos. Consecuentemente, la senal emitida por el circuito arbitro tambien estara formada por un tren de pulsos de valor “1” o “0” que indican que pulso concreto de cada pareja de pulsos del tren de pulsos de respuesta de dichos circuitos llego antes al circuito arbitro.
De ese modo, cada “pregunta” formada por varios bits introducida en los circuitos generadores de pulsos transitorios produce la generation de al menos un tren de pulsos de salida del circuito arbitro que conforma una “respuesta” formada por varios bits, donde la senal “respuesta” esta relacionada de manera univoca con cada senal “pregunta”. Notese que, en este contexto, cada circuito generador de pulsos transitorios puede emitir una respuesta formada por uno o por varios bits. Es mas, en el segundo caso, cada circuito generador de pulsos transitorios puede estar formado por una pluralidad de bus-circuitos generadores de pulsos transitorios, cada uno de los cuales emite una respuesta de un bit, de modo que la respuesta del circuito generador de pulsos transitorios sean varios bits. El propio circuito arbitro puede incluir ademas medios de almacenamiento de la senal “respuesta”.
Una importante ventaja de este dispositivo es que es resistente a variaciones en las condiciones del entorno de operacion. En efecto, es conocido que variaciones en las condiciones de operacion, como por ejemplo la temperatura, pueden provocar variaciones en los retardos de los diferentes transistores que conforman un circuito generador de pulsos transitorios. Como consecuencia, pueden variar las caracteristicas de las senales de salida de dicho circuito en el sentido de que puede variar la anchura de los pulsos o su ubicacion temporal. Sin embargo, las variaciones provocadas por las condiciones de operacion son esencialmente iguales en dos circuitos iguales. Gracias al funcionamiento diferencial del presente dispositivo, que esta basado en la comparacion de las senales de salida de dos circuitos identicos, se consigue que los resultados obtenidos sean independientes de las condiciones del entorno de operacion.
Segun un primer aspecto de la presente invencion, se describe un dispositivo para la identification umvoca de un circuito integrado que comprende fundamentalmente un primer circuito generador de pulsos transitorios, un segundo circuito generador de pulsos transitorios, y un circuito arbitro. A continuation, se describen dichos elementos con mayor detalle:
a) Primer circuito generador de pulsos transitorios
Se trata de un circuito generador de pulsos transitorios que tiene una entrada de primer circuito de varios bits y una salida de primer circuito. Como se ha comentado, la salida puede ser de un bit o bien de varios bits. En el segundo caso, este primer circuito puede estar formado por una pluralidad de sub-circuitos generadores de pulsos transitorios, cada uno de los cuales emite una respuesta de un bit.
Un circuito generador de pulsos transitorios es un circuito que consiste normalmente en una funcion logica combinacional que, para maximizar el numero de pulsos transitorios generados, presenta un elevado numero de caminos distintos de propagation. Ademas, es deseable la interconexion de caminos para aumentar la complejidad y evitar asi ataques predictivos.
b) Segundo circuito generador de pulsos transitorios
Se trata tambien de un circuito generador de pulsos transitorios que tiene una entrada de segundo circuito de varios bits y una salida de segundo circuito. Similarmente, la salida puede ser de un bit o bien de varios bits. En el segundo caso, este segundo circuito tambien puede estar formado por una pluralidad de sub-circuitos generadores de pulsos transitorios, cada uno de los cuales emite una respuesta de un bit.
El primer circuito y el segundo circuito son identicos excepto por las diferencias inherentes al proceso de fabrication. Estas diferencias, como se ha comentado con anterioridad en este documento, provocan que los retardos en los diferentes elementos que componen los circuitos presenten pequenas diferencias que son unicas e inclonables.
La entrada de primer circuito y la entrada de segundo circuito pueden estar configuradas para permitir la introduction de una misma senal “pregunta” formada por varios bits de manera simultanea en ambas. Por ejemplo, la entrada de primer circuito puede estar conectada a la entrada de segundo circuito. De ese modo, el dispositivo en conjunto tendria una unica entrada a traves de la cual se introduciria la senal “pregunta”, la cual se transmitiria simultaneamente a las respectivas entradas de primer circuito y de segundo circuito. Esto, sin embargo, no es limitante y seria posible que la entrada de primer circuito y la entrada de segundo circuito no estuvieran conectadas.
c) Circuito arbitro
El circuito arbitro tiene unas primera y segunda entradas de circuito arbitro, respectivamente conectadas a la salida del primer circuito generador de pulsos transitorios y a la salida del segundo circuito generador de pulsos transitorios, y una salida de circuito arbitro. Estas primera y segunda entradas de circuito arbitro podran ser de uno o de varios bits, dependiendo del tipo de circuitos generadores de pulsos transitorios elegidos. El circuito arbitro esta configurado para determinar si cada pulso de respuesta a una senal de entrada “pregunta" introducida simultaneamente en la entrada de primer circuito y en la entrada de segundo circuito llega antes a la salida de primer circuito o a la salida de segundo circuito y para emitir un pulso de salida en funcion de ello a traves de la salida de circuito arbitro.
Con esta configuration, para cada senal “pregunta” formada por varios bits introducida simultaneamente en la entrada de primer circuito y la entrada de segundo circuito, las diferencias entre el primer y segundo circuitos inherentes al proceso de fabrication provocan diferencias en la temporizacion de los pulsos obtenidos respectivamente en la salida de primer circuito y la salida de segundo circuito, de manera que si el flanco de subida de un pulso aparece antes en la salida de primer circuito el circuito arbitro emite un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida de segundo circuito el circuito arbitro emite un ‘0’, obteniendose en la salida de circuito arbitro una senal de salida que conforma una senal “respuesta” umvoca. Es decir, para cada senal “pregunta” formada por varios bits se obtiene una senal “respuesta” tambien formada por varios bits y utivocamente relacionada con aquella. De ese modo, para un numero elevado de senales “pregunta” diferentes se obtendra un correspondiente numero de senales “respuesta” correspondientes y umvocas, lo que permite identificar de manera inequivoca el dispositivo de la invention.
Por tanto, este circuito resuelve los problemas anteriores, emitiendo una senal “respuesta” umvocamente relacionada con cada senal “pregunta”. El circuito arbitro puede implementarse de diferentes modos siempre que sea capaz de determinar cual de los pulsos de entrada llega antes y de emitir un pulso de salida en funcion de ello.
En una realization preferida de la invencion, el circuito arbitro puede ser simplemente un registro de desplazamiento. A continuation se describe esta realizacion preferida.
c1) Registro de desplazamiento
El registro de desplazamiento tiene una entrada de datos que constituye la primera entrada de circuito arbitro, una entrada de reloj que constituye la segunda entrada de circuito arbitro, y una salida de registro de desplazamiento que constituye la salida de circuito arbitro. De este modo, el registro de desplazamiento captara la senal presente en la salida de primer circuito en aquellos momentos en que se produzca un flanco de subida en la senal presente en la salida de segundo circuito. El funcionamiento del registro de desplazamiento en este contexto se describira con mayor detalle mas adelante en este documento con ayuda de las figuras adjuntas.
Con esta configuration, para cada senal “pregunta” de varios bits introducida simultaneamente en la entrada de primer circuito y la entrada de segundo circuito, si el flanco de subida de un pulso aparece antes en la salida de primer circuito el primer biestable del registro de desplazamiento recoge un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida de segundo circuito el primer biestable del registro de desplazamiento recoge un ‘0’. Como consecuencia, a la salida del registro de desplazamiento se obtiene una senal de salida que constituye una senal “respuesta” umvoca para cada “pregunta”. La pluralidad de pulsos de salida obtenidos en respuesta a una senal “pregunta” se transmite por el registro de desplazamiento y se recoge a la salida del mismo.
En otra realization preferida alternativa a la anterior, el circuito arbitro puede ser un circuito basado en un circuito conocido denominado circuito C-element. Un circuito C-element es un dispositivo digital ampliamente utilizado en circuitos asmcronos. El funcionamiento de un circuito C-element de 2 entradas (x1,x2) como el utilizado en esta invention viene descrito por la siguiente ecuacion: yn=x1*x2+(x1+x2)*yn-1. A modo de ejemplo, se puede mencionar ademas como referencia el documento de S.L. Lu, "Improved design of CMOS multiple-input Muller-C-elements", Electronic Letters, Pag.1680-1682, Vol.29, N°19, 16 de Septiembre de 1993, que describe como disenar un circuito C-element y sus caracteristicas principales.
c2) Circuito basado en C-element
El circuito basado en C-element comprende un biestable de tipo RS, un registro de desplazamiento formado por biestables tipo D, y un circuito C-element de dos entradas. La entrada R del biestable RS constituye la primera entrada de circuito arbitro y la entrada S del biestable RS constituye la segunda entrada de circuito arbitro, y la salida del biestable RS esta conectada a la entrada de datos del registro de desplazamiento.
Por otra parte, las dos entradas del circuito C-element estan conectadas a las dos entradas de circuito arbitro, y la salida del circuito C-element esta conectadas a las entradas de reloj del biestable RS y del registro de desplazamiento. Por ultimo, la salida del registro de desplazamiento constituye la salida de circuito arbitro.
En este circuito arbitro, el biestable RS y los biestables D que conforman el registro de desplazamiento son usados en este circuito segun una configuration maestro-esclavo para capturar los pulsos transitorios y enviar la senal de salida.
En una realization preferida de la invention, el dispositivo comprende ademas un medio de post-procesado para eliminar de la senal “respuesta” obtenida en la salida del circuito arbitro aquellos bits correspondientes a pulsos afectados por meta-estabilidad.
d) Un modulo de post-procesado
El modulo de post-procesado esta conectado a la salida de primer circuito, a la salida de segundo circuito, y a la salida de circuito arbitro, y esta configurado para detectar pulsos de la senal de salida de primer circuito y la senal de salida de segundo circuito cuya distancia temporal en los flancos de subida este por debajo de un valor umbral y para eliminar de la senal “respuesta” recibida de la salida de circuito arbitro los bits correspondientes a dichos pulsos. La salida del modulo de post-procesado es por tanto una senal “respuesta optimizada" donde se ha eliminado toda aleatoriedad causada por bits procedentes de pulsos con meta-estabilidad.
En efecto, dentro de los correspondientes trenes de pulsos obtenidos como senal de respuesta de los circuitos generadores de pulsos transitorios a la senal de entrada “pregunta”, pulsos cuya distancia temporal en los flancos de subida este por debajo del valor umbral son pulsos afectados por metaestabilidad en el sentido de que, al ser los flancos de subida casi simultaneos, puede ocurrir que en algunos casos el circuito arbitro considere que ha llegado antes el flanco de subida de la salida de primer circuito y en otros casos considere que ha llegado antes el flanco de subida de la salida de segundo circuito. Como consecuencia, se produciria una incongruencia en el correspondiente bit de la senal “respuesta” emitida por el circuito arbitro, que alternaria entre ‘1’ y ‘0’ aleatoriamente a pesar de que la pregunta fuese la misma en todos los casos. Esto no es admisible en este contexto, y por tanto el modulo de post-procesado descrito detecta flancos de subida de pulsos de la salida de primer circuito y la salida de segundo circuito que estan excesivamente cercanos y eliminan el bit correspondiente a ese pulso de la senal “respuesta”. De este modo, en esta realization particular se genera una senal “respuesta optimizada".
Preferentemente, la detection de pulsos de la salida de primer circuito y la salida de segundo circuito cuya distancia temporal en los flancos de subida este por debajo de un valor umbral se realiza por medio de un muestreador multifase configurado para muestrear las senales recibidas a traves de la salida de primer circuito y la salida de segundo circuito
En otra realizacion preferida de la invention, el modulo de post-procesado comprende ademas un contador de flancos configurado para contar los flancos recibidos a traves de la salida de primer circuito y la salida de segundo circuito, determinandose que la senal en la salida de circuito arbitro solo es valida si el numero de flancos es el mismo. De ese modo se eliminan ademas de la senal “respuesta” pulsos espurios generados por las condiciones cambiantes del entorno de operacion.
En otra realizacion preferida de la invencion, el modulo de post-procesado comprende ademas un comparador iterativo de respuesta configurado para comparar una pluralidad de senales “respuesta” obtenidas a partir de la misma senal “pregunta”, repitiendose la “pregunta” en caso de que el numero de senales “respuesta” iguales sea menor que un valor umbral prestablecido.
En otra realizacion preferida de la invencion, el modulo de post-procesado comprende ademas un circuito de compactacion configurado para calcular la salida final del modulo de post-procesado una vez se ha dado como valida la respuesta generada. Para ello, se pueden utilizar circuitos compactadores tales como un MISR (Multiple Input Signature Register) o LFSR (Linear Feedback Shift Register).
Segun un segundo aspecto de la invencion, se describe un procedimiento para la identification umvoca de un circuito integrado configurado para ser llevado a cabo por el dispositivo descrito anteriormente. Este procedimiento comprende los siguientes pasos: 1) Introducir simultaneamente una misma senal “pregunta" en una entrada de varios bits de un primer circuito generador de pulsos transitorios que tiene una salida de primer circuito de un bit, y en una entrada de varios bits de un segundo circuito generador de pulsos transitorios que tiene una salida de segundo circuito de un bit, donde el primer circuito y el segundo circuito son identicos excepto por las diferencias inherentes al proceso de fabricacion;
2) Introducir la salida de primer circuito en una primera entrada de un circuito arbitro y la salida de segundo circuito en la segunda entrada del circuito arbitro; y
3) Obtener en una salida del circuito arbitro una senal de salida que constituye una senal “respuesta” umvoca para dicha senal “pregunta” introducida simultaneamente en la entrada de primer circuito y la entrada de segundo circuito, debido a las diferencias entre el primer y segundo circuitos inherentes al proceso de fabricacion que provocan diferencias en la temporizacion de los pulsos obtenidos respectivamente en la salida de primer circuito y la salida de segundo circuito, de manera que si el flanco de subida de un pulso aparece antes en la salida de primer circuito, el circuito arbitro emite un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida de segundo circuito, el circuito arbitro recoge un ‘0’.
En una realization preferida de la invention, el circuito arbitro es un registro de desplazamiento que tiene una entrada de datos que constituye la primera entrada de circuito arbitro, una entrada de reloj que constituye la segunda entrada de circuito arbitro, y una salida de registro de desplazamiento que constituye la salida de circuito arbitro. De ese modo, para cada senal “pregunta”, si el flanco de subida de un pulso aparece antes en la salida de primer circuito un primer biestable del registro de desplazamiento recoge un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida de segundo circuito el primer biestable del registro de desplazamiento recoge un ‘0’, obteniendose en la salida de registro de desplazamiento una senal de salida que conforma una senal “respuesta” umvoca.
En otra realizacion preferida de la invencion el procedimiento comprende ademas los pasos de detectar pulsos de la salida de primer circuito y la salida de segundo circuito cuya distancia temporal en los flancos de subida este por debajo de un valor umbral, y eliminar de la senal “respuesta” recibida en la salida de circuito arbitro los bits correspondientes a dichos pul sos.
En otra realizacion preferida de la invencion, el procedimiento comprende ademas los pasos de contar los flancos de los pulsos recibidos a traves de la salida de primer circuito y la salida de segundo circuito, y determinar que la senal en la salida de circuito arbitro es valida solo si el numero de flancos es el mismo.
En otra realizacion preferida de la invencion, el procedimiento comprende ademas el paso de comparar una pluralidad de senales “respuesta” obtenidas a partir de la misma senal “pregunta”, repitiendose la “pregunta” en caso de que el numero de senales “respuesta” iguales sea menor que un valor umbral prestablecido.
En otra realizacion preferida de la invencion, el procedimiento comprende ademas el paso de calcular la salida final de dicho modulo de post-procesado una vez se ha dado como valida la respuesta generada. Esto se puede hacer, por ejemplo, utilizando un modulo de compactacion tal como un MISR o LFSR.
BREVE DESCRIPCION DE LAS FIGURAS
La Fig. 1 muestra un ejemplo de circuito PUF de acuerdo con la tecnica anterior.
La Fig. 2 muestra un ejemplo de circuito sencillo que ilustra los principios de los Glitch-PUF.
Las Figs. 3a-3c muestran varios diagramas temporales que ilustran el funcionamiento del circuito de la Fig. 2.
La Fig. 4 muestra un ejemplo de circuito Glitch-PUF de acuerdo con la tecnica anterior.
La Fig. 5 muestra un ejemplo de dispositivo de acuerdo con la presente invencion.
La Fig. 6 muestra un ejemplo de dispositivo segun la presente invencion donde el circuito arbitro es un registro de desplazamiento.
La Fig. 7 muestra un ejemplo de dispositivo segun la presente invencion donde el circuito arbitro es un circuito que incluye un circuito C-element.
La Fig. 8 muestra un ejemplo de circuito generador de pulsos transitorios segun la presente invencion.
La Fig. 9 muestra un diagrama temporal que ilustra el funcionamiento del dispositivo de la presente invencion cuando el circuito arbitro es un registro de desplazamiento.
La Fig. 10 muestra un diagrama temporal que ilustra el funcionamiento del dispositivo de la presente invencion cuando el circuito arbitro es un circuito basado en C-element.
REALIZACION PREFERENTE DE LA INVENCION
Se describe a continuation un ejemplo particular de acuerdo con la presente invencion donde se aprecian los diferentes elementos que componen el sistema y los diferentes pasos del procedimiento propuesto.
La Fig. 5 muestra un ejemplo de dispositivo (1) de acuerdo con la presente invencion donde se aprecian las diferentes partes que lo componen. Concretamente, el dispositivo (1) comprende un primer circuito (2) generador de pulsos transitorios que tiene una entrada (2e) de primer circuito de n bits y una salida (2s) de primer circuito, y un segundo circuito (3) generador de pulsos transitorios que tiene una entrada (3e) de segundo circuito de n bits y una salida (3s) de segundo circuito. En este ejemplo, las dos entradas (2e, 3e) estan conectadas entre si.
Por motivos de simplicidad de la description, en este ejemplo particular las salidas (2s, 3s) de los primer y segundo circuitos (2, 3) son de un unico bit, y en consecuencia las entradas (4e1, 4e2) del circuito (4) arbitro son tambien de un unico bit. Sin embargo, es facil extrapolar este ejemplo a una configuration en que dichas salidas (2s, 3s) tengan varios bits, y por tanto tambien las entradas (4e1, 4e2) tengan varios bits. En ese caso, el circuito arbitro (4) incluiria los elementos necesarios para gestionar la comparacion entre los pulsos transitorios que se producen en cada pareja de bits correspondientes del primer y segundo circuitos (2, 3), de modo que a la salida del circuito (4) arbitro se obtendrian varias senales “respuesta” para cada senal “pregunta”.
Los circuitos (2, 3) generadores de pulsos transitorios son conocidos en la tecnica. Por ejemplo, puede utilizarse una funcion logica combinacional de n bits de entrada y 1 bit de salida. La Fig. 8 muestra un ejemplo de circuito multiplicador de este tipo en el que el bit mas significativo (dependiente de todas las etapas) se toma como salida. La senal de entrada esta formada por la palabra de 8 bits (A0, A1, A2, A3, B0, B1, B2, B3) y la salida esta formada por palabra de 1 bit ‘s’. Ambos circuitos (2, 3) seran identicos excepto por las minusculas diferencias inherentes al proceso de fabrication.
La salida (2s) de primer circuito esta conectada a una primera entrada (4e1) de un circuito (4) arbitro y la salida (3s) de segundo circuito esta conectada a una segunda entrada (4e2) del circuito (4) arbitro. Como se ha comentado, el circuito (4) arbitro esta configurado de modo que emite un ‘1’ cuando el flanco de subida de un pulso aparece antes en la primera salida (2s), y recogera un ‘0’ cuando el flanco de subida de un pulso aparece antes en la segunda salida (3s).
Para describir esto con mas detalle, la Fig. 6 muestra un ejemplo de dispositivo (1) segun la invention donde el circuito (4) arbitro es un registro de desplazamiento. En este caso, la salida (2s) de primer circuito esta conectada a la entrada (4e1) de datos del registro (4) de desplazamiento, y la salida (3s) de segundo circuito esta conectada a la entrada (4e2) de reloj del registro (4) de desplazamiento.
El diagrama de la Fig. 9 muestra claramente el funcionamiento del dispositivo mostrado en la Fig. 6. En la Fig. 9 se representa la senal de la salida (2s) de primer circuito, la senal de la salida (3s) de segundo circuito, y los datos que se van almacenando en el registro (4) de desplazamiento y que constituyen senal “respuesta” que posteriormente se emite a traves de la salida (4s) de registro de desplazamiento. El diagrama muestra un primer pulso cuyo flanco de subida llega mas tarde a la salida (3s) de segundo circuito. Esta salida (3s) de segundo circuito constituye la entrada (4e2) de reloj del registro (4) de desplazamiento, y por tanto provoca la adquisicion del dato que en ese momento este presente en la salida (2s) de primer circuito. Puesto que la salida (2s) de primer circuito ya ha adoptado el valor ‘1’ cuando llega el flanco de subida de este primer pulso a la salida (3s) de segundo circuito, el primer bit que adquiere el registro (4) de desplazamiento es un ‘1’. Cuando llega el flanco de subida del segundo pulso a la salida (3s) de segundo circuito, la senal de la salida (2s) de primer circuito tambien ha adoptado ya el valor ‘1’, y por tanto el registro (4) de desplazamiento vuelve a adquirir un ‘1’. Sin embargo, cuando llega el flanco de subida del tercer pulso a la salida (3s) de segundo circuito, la senal de la salida (2s) de primer circuito aun esta en el valor ‘0’. Es decir, el tercer pulso llega antes a la salida (3s) de segundo circuito. Por tanto, en este caso el registro (4) de desplazamiento adquiere un ‘0’. Este proceso continua todo el tiempo que dura la respuesta transitoria a la pregunta que se ha introducido en el dispositivo, obteniendose asi una senal “respuesta” de varios bits a la salida (4s) del registro (4) de desplazamiento que esta univocamente relacionada con la “pregunta” realizada. Se puede realizar una pluralidad de “preguntas” diferentes para obtener una correspondiente pluralidad de “respuestas" udvocamente relacionadas, lo que permite identificar de manera ineqdvoca un dispositivo particular.
Ahora bien, como se menciono con anterioridad en este documento, existen pulsos que presentan meta-estabilidad que pueden introducir incongruencias en los resultados obtenidos. Por ejemplo, el cuarto pulso representado en la Fig. 7 llega de manera simultanea a la salida (2s) de primer circuito y a la salida (3s) de segundo circuito. Como consecuencia, puede ocurrir que algunas veces el registro (4) de desplazamiento considere que ha llegado antes el flanco de subida del pulso en la salida (2s) de primer circuito y adquiera un ‘1’, y otras veces considere que ha llegado antes el flanco de subida del pulso en la salida (3s) de segundo circuito y adquiera un ‘0’. Es decir, para la misma “pregunta” existirian en este ejemplo dos “respuestas” diferentes.
Para evitar esto, el circuito de que se muestra en el ejemplo de la Fig. 5 comprende un modulo (7) de post-procesado destinado a eliminar de la “respuesta” obtenida a la salida (4s) del registro (4) de desplazamiento los bits correspondientes a pulsos con metaestabilidad. El modulo (7) de post-procesado esta conectado a la salida (2s) de primer circuito, a la salida (3s) de segundo circuito, y a la salida (4s) del registro de desplazamiento. Este modulo (7) de post-procesado recibe las senales de la salida (2s) de primer circuito y de la salida (3s) de segundo circuito y busca en ambas pulsos correspondientes cuyos flancos de subida sean casi simultaneos. Por ejemplo, se puede considerar que los flancos de subida de un determinado pulso de la senal de la salida (2s) de primer circuito y la senal de la salida (3s) de segundo circuito son simultaneos cuando estan separados por menos de un numero de nanosegundos determinado. Cuando el modulo (7) de post-procesado encuentra un pulso de este tipo, busca en la senal obtenida del registro (4) de desplazamiento el bit correspondiente a este pulso y lo elimina. Se obtiene asi a la salida (7s) del modulo (7) de post-procesado una senal “respuesta optimizada” donde los bits correspondientes a pulsos con meta-estabilidad han sido eliminados.
La Fig. 7 muestra otro ejemplo de dispositivo (1) segun la invencion donde el circuito (4) arbitro esta implementado basandose en un circuito C-element, un biestable tipo RS y un registro de desplazamiento formado por biestables tipo D. El circuito C-element sera el encargado de generar las senales de reloj para los 2 biestables que funcionan en modo maestro-esclavo. Espedficamente, el biestable RS actualizara su salida cuando las entradas (4e1,4e2) del C-element valgan 0 y el estado anterior del C-element fuera 1. Por el contrario, el registro de desplazamiento formado por biestables D actualizara su salida cuando las entradas (4e1,4e2) del C-element valgan 1 y el estado anterior del C-element fuera 1. Con esta implementation, se consigue reducir la metaestabilidad y filtrar los pulsos espurios aparecidos por variaciones en el entorno de operation.
La Fig. 10 muestra una diagrama temporal que ilustra el funcionamiento del dispositivo (1) de la Fig. 7. En esta figura se pueden distinguir 4 casos hasta que se alcanza el regimen permanente, los cuatro casos se marcan en la parte superior del diagrama.
En el primer caso, un pulso transitorio es propagado por el primer circuito (2) generador de pulsos transitorios hasta alcanzar el arbitro (4). Se ve como el pulso de la primera entrada (4e1) llega y termina antes que el pulso de la entrada (4e2) correspondiente al segundo circuito (3) generador de pulsos transitorios. En este caso, cuando ambas entradas estan a 1, el circuito C-element hace que el registro de desplazamiento guarde el valor previo almacenado en el biestable RS, en este caso un ‘0’. Cuando ambas entradas (4e1, 4e2) vuelven a 0, el circuito C-element hace que el biestable RS actualice su valor, en este caso a 1, ya que las entradas del biestable justo antes del flanco de bajada son 01.
En el segundo caso, la situation es la opuesta, es decir, llega y termina antes el pulso de la entrada (4e2) del segundo circuito (3) generador de pulsos transitorios. Por ello, siguiendo un proceso analogo al anterior, el registro de desplazamiento captura el valor previo almacenado en el biestable RS (‘1’) y, en el flanco de bajada generado en el C-element, el biestable RS actualiza su valor, en este caso a ‘0’.E
En el tercer caso, se produce un pulso espurio se produce en la entrada (4e2) sin que ello afecte a la salida final.
Por ultimo, en el cuarto caso, ambos pulsos a traves de las senales (4e1, 4e2) llegan a la vez generando un flanco de subida a la salida del circuito C-element que hace que el registro de desplazamiento se actualice con el ultimo valor del biestable RS. Como la entrada (4e2) se ha propagado mas rapido que la entrada (4e1), el valor almacenado por el biestable RS en el flanco de bajada del circuito C-element sera ‘1’.

Claims (16)

REIVINDICACIONES
1. Dispositivo (1) para la identification utivoca de un circuito integrado, caracterizado por que comprende:
- un primer circuito (2) generador de pulsos transitorios, que comprende una funcion logica combinacional con un elevado numero de caminos distintos de propagation, y que exclusivamente tiene una entrada (2e) de primer circuito de varios bits y una salida (2s) de primer circuito que, para cada senal “pregunta”, emite un tren de pulsos durante un periodo de tiempo transitorio hasta que dicha salida (2s) queda estabilizada;
- un segundo circuito (3) generador de pulsos transitorios, que comprende una funcion logica combinacional con un elevado numero de caminos distintos de propagacion, que exclusivamente tiene una entrada (3e) de segundo circuito de varios bits y una salida (3s) de segundo circuito que, para cada senal “pregunta”, emite un tren de pulsos durante un periodo de tiempo transitorio hasta que dicha salida (3s) queda estabilizada, y donde el primer circuito (2) y el segundo circuito (3) son identicos excepto por las diferencias inherentes al proceso de fabricacion;
- un circuito (4) arbitro que tiene unas primera y segunda entradas (4e1, 4e2) de circuito arbitro, respectivamente conectadas a la salida (2s) de primer circuito y a la salida (3s) de segundo circuito, y una salida (4s) de circuito arbitro, donde el circuito (4) arbitro esta configurado para determinar si cada pulso de respuesta a una senal de entrada “pregunta” introducida simultaneamente en la entrada (2e) de primer circuito y en la entrada (3e) de segundo circuito llega antes a la salida (2s) de primer circuito o a la salida (3s) de segundo circuito y para emitir un pulso de salida en funcion de ello a traves de la salida (4s) de circuito arbitro,
de modo que, para cada senal “pregunta” introducida simultaneamente en la entrada (2e) de primer circuito y la entrada (3e) de segundo circuito, las diferencias entre el primer y segundo circuitos (2, 3) inherentes al proceso de fabrication provocan diferencias en la temporizacion de los pulsos obtenidos respectivamente en la salida (2s) de primer circuito y la salida (3s) de segundo circuito, de manera que si el flanco de subida de un pulso aparece antes en la salida (2s) de primer circuito el circuito (4) arbitro emite un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida (3s) de segundo circuito el circuito (4) arbitro emite un ‘0’, obteniendose en la salida (4s) de circuito (4) arbitro una senal de salida que conforma una senal “respuesta” umvoca.
2. Dispositivo (1) de acuerdo con la revindication 1, donde la salida (2s) del primer circuito (2) generador de pulsos transitorios, la salida (3s) del segundo circuito (3) generador de pulsos transitorios, y las primera y segunda entradas (4e1, 4e2) de circuito arbitro tienen un bit.
3. Dispositivo (1) de acuerdo con la reivindicacion 2, donde el circuito (4) arbitro es un registro (4) de desplazamiento que tiene una entrada de datos que constituye la primera entrada (4e1) de circuito arbitro, una entrada de reloj que constituye la segunda entrada (4e2) de circuito arbitro, y una salida de registro de desplazamiento que constituye la salida (4s) de circuito arbitro, de modo que, para cada senal “pregunta”, si el flanco de subida de un pulso aparece antes en la salida (2s) de primer circuito un primer biestable del registro (4) de desplazamiento recoge un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida (3s) de segundo circuito el primer biestable del registro (4) de desplazamiento recoge un ‘0’, obteniendose en la salida (4s) de registro de desplazamiento una senal de salida que conforma una senal “respuesta” univoca.
4. Dispositivo (1) de acuerdo con la reivindicacion 2, donde el circuito (4) arbitro es un circuito basado en un circuito C-element que comprende: un biestable de tipo RS, un registro de desplazamiento formado por biestables tipo D, y un circuito C-element de dos entradas, donde la entrada R del biestable RS constituye la primera entrada de circuito arbitro y la entrada S del biestable RS constituye la segunda entrada de circuito arbitro, y donde la salida del biestable RS esta conectada a la entrada de datos del registro de desplazamiento, y donde las dos entradas del circuito C-element estan conectadas a las dos entradas de circuito arbitro, y donde la salida del circuito C-element esta conectada a las entradas de reloj del biestable RS y del registro de desplazamiento, y donde la salida del registro de desplazamiento constituye la salida de circuito arbitro.
5. Dispositivo (1) de acuerdo con cualquiera de las reivindicaciones anteriores, que ademas comprende un modulo (7) de post-procesado conectado a la salida (2s) de primer circuito, a la salida (3s) de segundo circuito, y a la salida (4s) de circuito (4) arbitro, donde el modulo (7) de post-procesado esta configurado para detectar pulsos de la salida (2s) de primer circuito y la salida (3s) de segundo circuito cuya distancia temporal en los flancos de subida este por debajo de un valor umbral y para eliminar de la senal “respuesta” recibida en la salida (4s) de circuito arbitro los bits correspondientes a dichos pulsos.
6. Dispositivo (1) de acuerdo con la reivindicacion 5, donde la deteccion de pulsos de la salida (2s) de primer circuito y la salida (3s) de segundo circuito cuya distancia temporal en los flancos de subida este por debajo de un valor umbral se realiza por medio de un muestreador multifase configurado para muestrear las senales recibidas a traves de la salida (2s) de primer circuito y la salida (3s) de segundo circuito.
7. Dispositivo (1) de acuerdo con cualquiera de las reivindicaciones 5-6, donde el modulo (7) de post-procesado comprende ademas un contador de flancos configurado para contar los flancos recibidos a traves de la salida (2s) de primer circuito y la salida (3s) de segundo circuito, determinandose que la senal en la salida (4s) de circuito arbitro solo es valida si el numero de flancos es el mismo.
8. Dispositivo (1) de acuerdo con cualquiera de las reivindicaciones 5-7, donde el modulo (7) de post-procesado comprende ademas un comparador iterativo de respuesta configurado para comparar una pluralidad de senales “respuesta” obtenidas a partir de la misma senal “pregunta”, repitiendose la “pregunta” en caso de que el numero de senales “respuesta” iguales sea menor que un valor umbral prestablecido.
9. Dispositivo (1) de acuerdo con cualquiera de las reivindicaciones 5-8, donde el modulo (7) de post-procesado comprende ademas un circuito de compactacion configurado para calcular la salida final de dicho modulo (7) de post-procesado una vez se ha dado como valida la respuesta generada.
10. Procedimiento para la identification univoca de un circuito integrado, caracterizado por que comprende los siguientes pasos:
- introducir simultaneamente una misma senal “pregunta” en una entrada (2e) de varios bits de un primer circuito (2) generador de pulsos transitorios, que comprende una funcion logica combinacional con un elevado numero de caminos distintos de propagation y que tiene una salida (2s) de primer circuito que, para cada senal “pregunta”, emite un tren de pulsos durante un periodo de tiempo transitorio hasta que dicha salida (2s) queda estabilizada, y en una entrada (3e) de varios bits de un segundo circuito (3) generador de pulsos transitorios, que comprende una funcion logica combinacional con un elevado numero de caminos distintos de propagacion y que tiene una salida (3s) de segundo circuito que, para cada senal “pregunta”, emite un tren de pulsos durante un periodo de tiempo transitorio hasta que dicha salida (3s) queda estabilizada, donde el primer circuito (2) y el segundo circuito (3) son identicos excepto por las diferencias inherentes al proceso de fabrication, y donde el primer circuito (2) y el segundo circuito (3) tienen exclusivamente las entradas (2e, 3e) y las salidas (2s, 3s);
- introducir la salida (2s) de primer circuito en una primera entrada (4e1) de un circuito (4) arbitro y la salida (3s) de segundo circuito en la segunda entrada (4e2) del circuito (4) arbitro; y
- obtener en una salida (4s) del circuito (4) arbitro una senal de salida que constituye una senal “respuesta” umvoca para dicha senal “pregunta” introducida simultaneamente en la entrada (2e) de primer circuito y la entrada (3e) de segundo circuito, debido a las diferencias entre el primer y segundo circuitos (2, 3) inherentes al proceso de fabrication que provocan diferencias en la temporizacion de los pulsos obtenidos respectivamente en la salida (2s) de primer circuito y la salida (3s) de segundo circuito, de manera que si el flanco de subida de un pulso aparece antes en la salida (2s) de primer circuito, el circuito (4) arbitro emite un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida (3s) de segundo circuito, el circuito (4) arbitro recoge un ‘0’.
11. Procedimiento de acuerdo con la reivindicacion 10, donde la salida (2s) del primer circuito (2) generador de pulsos transitorios, la salida (3s) del segundo circuito (3) generador de pulsos transitorios, y las primera y segunda entradas (4e1, 4e2) de circuito arbitro tienen un bit.
12. Procedimiento de acuerdo con la reivindicacion 11, donde el circuito (4) arbitro es un registro (4) de desplazamiento que tiene una entrada de datos que constituye la primera entrada (4e1) de circuito arbitro conectada a la salida (2s) de primer circuito, una entrada de reloj que constituye la segunda entrada (4e2) de circuito arbitro conectada a la salida (3s) de segundo circuito, y una salida de registro de desplazamiento que constituye la salida (4s) de circuito arbitro, de modo que, para cada senal “pregunta”, si el flanco de subida de un pulso aparece antes en la salida (2s) de primer circuito un primer biestable del registro (4) de desplazamiento recoge un ‘1’, mientras que si el flanco de subida de un pulso aparece antes en la salida (3s) de segundo circuito el primer biestable del registro (4) de desplazamiento recoge un ‘0’, obteniendose en la salida (4s) de registro de desplazamiento una senal de salida que conforma una senal “respuesta” umvoca.
13. Procedimiento de acuerdo con cualquiera de las reivindicaciones 10-12, que ademas comprende los pasos de detectar pulsos de la salida (2s) de primer circuito y la salida (3s) de segundo circuito cuya distancia temporal en los flancos de subida este por debajo de un valor umbral, y eliminar de la senal “respuesta” recibida en la salida (4s) de circuito arbitro los bits correspondientes a dichos pulsos.
14. Procedimiento de acuerdo con cualquiera de las reivindicaciones 10-13, que ademas comprende los pasos de contar los flancos de los pulsos recibidos a traves de la salida (2s) de primer circuito y la salida (3s) de segundo circuito, y determinar que la senal en la salida (4s) de circuito arbitro es valida solo si el numero de flancos es el mismo.
15. Procedimiento de acuerdo con cualquiera de las reivindicaciones 10-14, que ademas comprende el paso de comparar una pluralidad de senales “respuesta” obtenidas a partir de la misma senal “pregunta”, repitiendose la “pregunta” en caso de que el numero de senales “respuesta” iguales sea menor que un valor umbral prestablecido.
16. Procedimiento de acuerdo con cualquiera de las reivindicaciones 10-15, que ademas comprende el paso de calcular la salida final de dicho modulo (7) de post-procesado una vez se ha dado como valida la respuesta generada.
ES201730535A 2017-03-31 2017-03-31 Dispositivo y procedimiento para la identificación unívoca de un circuito integrado Active ES2684846B1 (es)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ES201730535A ES2684846B1 (es) 2017-03-31 2017-03-31 Dispositivo y procedimiento para la identificación unívoca de un circuito integrado

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES201730535A ES2684846B1 (es) 2017-03-31 2017-03-31 Dispositivo y procedimiento para la identificación unívoca de un circuito integrado

Publications (2)

Publication Number Publication Date
ES2684846A1 ES2684846A1 (es) 2018-10-04
ES2684846B1 true ES2684846B1 (es) 2019-05-10

Family

ID=63683313

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201730535A Active ES2684846B1 (es) 2017-03-31 2017-03-31 Dispositivo y procedimiento para la identificación unívoca de un circuito integrado

Country Status (1)

Country Link
ES (1) ES2684846B1 (es)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
CN103299576B (zh) * 2011-01-13 2016-05-25 三菱电机株式会社 比特生成装置以及比特生成方法
US20140041040A1 (en) * 2012-08-01 2014-02-06 The Regents Of The University Of California Creating secure multiparty communication primitives using transistor delay quantization in public physically unclonable functions
US9088278B2 (en) * 2013-05-03 2015-07-21 International Business Machines Corporation Physical unclonable function generation and management
CN106470024A (zh) * 2015-08-18 2017-03-01 飞思卡尔半导体公司 使用穆勒c元件的无假信号时钟切换电路

Also Published As

Publication number Publication date
ES2684846A1 (es) 2018-10-04

Similar Documents

Publication Publication Date Title
Alam et al. RAM-Jam: Remote temperature and voltage fault attack on FPGAs using memory collisions
EP3403209B1 (en) A privacy-preserving, mutual puf-based authentication protocol
Majzoobi et al. Testing techniques for hardware security
Majzoobi et al. Techniques for design and implementation of secure reconfigurable PUFs
KR102709350B1 (ko) 물리적 복제방지 기능 비트스트링 생성에 대한 신뢰성 향상 방법
Rozic et al. Highly efficient entropy extraction for true random number generators on FPGAs
Tyndall et al. A High-Throughput Time-Resolved Mini-Silicon Photomultiplier With Embedded Fluorescence Lifetime Estimation in 0.13$\mu $ m CMOS
Kalanadhabhatta et al. PUF-based secure chaotic random number generator design methodology
US10069635B2 (en) Methods and systems for achieving system-level counterfeit protection in integrated chips
Ju et al. Stability analysis of a physical unclonable function based on metal resistance variations
ES2340720T3 (es) Sistema de tratamiento de datos redundante de alta velocidad.
ES2684846B1 (es) Dispositivo y procedimiento para la identificación unívoca de un circuito integrado
Yang True random number generators for FPGAs
Soybali et al. Implementation of a PUF circuit on a FPGA
US20230315960A1 (en) Spuf based on combinational logic and scan chain
Bellizia et al. Learning parity with physical noise: Imperfections, reductions and fpga prototype
Aysu et al. PASC: Physically authenticated stable-clocked soc platform on low-cost FPGAs
Tebelmann Side-Channel Analysis and Countermeasures for Physical Unclonable Functions
Shiny et al. Trustworthy Scan Design and Testability Using Obfuscation and Logic Locking Scheme for Wireless Network Application
Muttaki et al. FTC—a universal low-overhead fault injection attack detection solution
Sima et al. PUF Evaluation Metrics on 7 Series FPGA: Comparative Analysis of Arbiter, XOR Arbiter, and Double Arbiter PUFs for Uniqueness, Randomness, and Stability
Herkle Techniques to enhance the reliability of delay-based physical unclonable functions
Kiran et al. Implementing delay based physically unclonable functions on FPGA
Ruiz Design of a hardware Root-of-Trust on embedded systems
Sanadhya et al. Design, implementation and analysis of efficient hardware-based security primitives

Legal Events

Date Code Title Description
BA2A Patent application published

Ref document number: 2684846

Country of ref document: ES

Kind code of ref document: A1

Effective date: 20181004

FG2A Definitive protection

Ref document number: 2684846

Country of ref document: ES

Kind code of ref document: B1

Effective date: 20190510