Oscilador de anillo: Generador de números aleatorios verdaderos (TRNG) versus función físicamente inclonable (PUF)

4

Los osciladores en anillo se pueden usar en hardware verdadero generador de números aleatorios (TRNG), y también en funciones físicamente inclonables (PUFs).

Los diseños parecen bastante similares:

TRNG basado en osciladores de anillo:

anilloosciladorPUF:

La idea de una PUF es que crea la misma respuesta predefinida (pero aparentemente aleatoria) para cada desafío, mientras que la idea de un TRNG es que crea una salida verdaderamente aleatoria.

Mis preguntas son:

  • ¿Cómo puede un oscilador en anillo ser el elemento principal para estas dos funcionalidades? Uno parece confiar en el hecho de que el estado del oscilador puede predecirse, mientras que el otro se basa en lo contrario. Esto me parece contradictorio.
  • ¿Tiene algo que ver con el XOR, que combina (semi) aleatoriamente las salidas en el caso del TRNG, mientras que el multiplexor en la PUF regula la salida? ¿O tiene que ver con el tiempo de funcionamiento de los osciladores?
  • Si esto es así, ¿es realmente aleatorio un TRNG de oscilador en anillo?
pregunta tim 17.02.2015 - 15:02
fuente

2 respuestas

3

En la construcción TRNG, los anillos no tienen una señal de habilitación común, el único momento en el que se sincronizan es en el encendido. Luego corren libremente, cada uno a su propio ritmo. Esto no crea una gran cantidad de aleatoriedad per se, pero sí genera una gran cantidad de fallas en las entradas del flipflop. La esperanza es crear más aleatoriedad a partir de la metaestabilidad. Para la PUF hay una habilitación común, por lo que los osciladores en anillo compiten entre sí con un punto de sincronización común al comienzo. La entrada de desafío selecciona qué instancias compiten. Para un desafío dado y un chip dado, el resultado de la carrera tiende a tener siempre el mismo resultado, ya que la frecuencia precisa de cada anillo depende de las características físicas precisas de cada una de sus etapas.

No se relaciona con la duración del funcionamiento del RO, así es como se usan las salidas lo que marca la diferencia. Incluso puede eliminar la señal de habilitación en la PUF, que aún funcionará porque lo que cuenta es la diferencia en las frecuencias, mientras que para TRNG son los valores de salida reales en el momento del muestreo lo que importa.

Ese TRNG puede ser verdaderamente aleatorio, pero es difícil hacerlo bien (para obtener una alta velocidad de datos). Otras construcciones basadas en anillos asíncronos o mapas caóticos son una apuesta segura.

    
respondido por el acapola 16.06.2015 - 15:19
fuente
2

La PUF mide la frecuencia del oscilador, que depende de cómo se organizaron los átomos durante la fabricación del dispositivo. El RNG utiliza la aleatoriedad de la frecuencia y la fase del oscilador en períodos de tiempo cortos.

De dónde viene la aleatoriedad

Cualquier dispositivo de temporización (péndulo, resonador de cuarzo, oscilador RC, etc.) tiene algún "ruido" o "jitter" inherente, tal como lo conocen los diseñadores. Si construimos un oscilador cuya salida es un flujo de pulsos, el tiempo entre pulsos no es perfectamente consistente. Este ruido tiene propiedades y comportamiento similares a los tipos de ruido más familiares y es igual de aleatorio.

EnunosciladorenanilloTRNG,lafasedecadaosciladorrelativaalrelojdemuestrasedesplazaconeltiempo.Lamayorpartedeladerivasedebealadiferenciaentreelosciladorylasfrecuenciasdemuestreo,peroalgunassoncausadasporjitter.

Enotraspalabras,imagineunosciladordeanilloúnicoconunaentradadehabilitación.SeenciendeyluegosemuestreadespuésdealgúntiempoT.Cadaperiododura(1/f)+jitter.Despuésdeunlargotiempo,seagregaungrannúmerodevaloresdejitteralafase.Lasalidapodríaser1o0conigualprobabilidad.Desafortunadamente,paraeljittergaussiano,losvaloresdeNjitterjuntossolotienenunN^0.5dedesviaciónestándarmásamplia.

LosRNGcapturandemaneraeficientelaaleatoriedad

Esteesquemaesineficiente,yaquerequieremuchasmuestrasdejitterporbit.Ladistribucióndefasedebesertanampliaqueseacasiuniforme.ElmuestreodelasalidadelososciladoresenanilloNXORedjuntospermitelaproduccióndemásbitsaleatoriosqueelmuestreodelosmismososciladoresenanillodelNenF/N.Existeunanálisisestadísticoquemuestraporqué,perosepuedeentenderdeformaintuitivaconsiderandolacantidaddeoportunidadesquetienenlosvaloresdefluctuaciónparamoverlafasedeunosciladorsololosuficientecomoparaprovocaruncambiodeposición.Elsobremuestreoproducemuchosbitsensumayoríacorrelacionadosporoscilador.Xoringloscombinaparacrearunflujodesalidablanqueado.

LosPUFreducenelimpactodelaaleatoriedad

LosPUFestándiseñadosparareducirelefectodelasfuentesderuidoaleatoriasensusresultados.UnPUFidealdependesolodelaformaenquelosátomosaterrizarondurantelafabricacióndeldispositivo.EldiseñoPUFquehamostradonoestá"prediciendo" el valor de salida del oscilador en anillo en algún momento T . Cuenta los pulsos de salida. La salida es aproximadamente: "Is the frequency of the first selected ring oscillator higher than that of the second selected ring oscillator?" . Para tiempos de ejecución razonablemente largos, esto no se ve afectado significativamente por los valores de jitter. Los efectos de jitter se escalan con la potencia 0.5, mientras que el número de conteos aumenta linealmente. Los tiempos de ejecución más largos convergen hacia una comparación de frecuencia perfecta. Para osciladores con frecuencias muy cercanas, el jitter puede jugar un papel importante en el resultado. Es por esto que algunos valores de desafío de PUF pueden no tener una respuesta definitiva 1 o 0 en un dispositivo determinado.

    
respondido por el Richard Thiessen 08.01.2017 - 05:05
fuente

Lea otras preguntas en las etiquetas