La deriva del reloj se refiere a varios fenómenos relacionados en los que un reloj no funciona exactamente a la misma velocidad que un reloj de referencia. Es decir, después de un tiempo, el reloj "se desvía" o se desincroniza gradualmente del otro reloj. Todos los relojes están sujetos a la deriva, lo que provoca una eventual divergencia a menos que se vuelvan a sincronizar. En particular, la deriva de los relojes basados en cristales que se utilizan en las computadoras requiere algún mecanismo de sincronización para cualquier comunicación de alta velocidad. La deriva del reloj de la computadora se puede utilizar para construir generadores de números aleatorios . Sin embargo, estos pueden ser explotados por ataques de temporización .
Los relojes de uso diario, como los de pulsera, tienen una precisión finita. Con el tiempo, es necesario corregirlos para mantener su precisión. La velocidad de desviación depende de la calidad del reloj, a veces de la estabilidad de la fuente de alimentación, de la temperatura ambiente y de otras variables ambientales sutiles. Por lo tanto, el mismo reloj puede tener diferentes velocidades de desviación en diferentes ocasiones.
Los relojes más avanzados y los relojes mecánicos antiguos suelen tener algún tipo de regulador de velocidad que permite ajustar la velocidad del reloj y, de este modo, corregir la desviación del reloj. Por ejemplo, en los relojes de péndulo, la desviación del reloj se puede manipular modificando ligeramente la longitud del péndulo .
Un oscilador de cuarzo está menos sujeto a desviaciones debidas a variaciones de fabricación que el péndulo de un reloj mecánico. Por lo tanto, la mayoría de los relojes de cuarzo de uso diario no tienen una corrección de desviaciones ajustable.
Los relojes atómicos son muy precisos y prácticamente no tienen deriva horaria. Incluso la velocidad de rotación de la Tierra tiene más deriva y variación en la deriva que un reloj atómico debido a la aceleración de las mareas y otros efectos. El principio detrás del reloj atómico ha permitido a los científicos redefinir la unidad del SI segundo en términos de9 192 631 770 oscilaciones del átomo de cesio -133. La precisión de estas oscilaciones permite que los relojes atómicos se desvíen aproximadamente solo un segundo en cien millones de años; a partir de 2015, el reloj atómico más preciso pierde un segundo cada 15 mil millones de años. [1] [2] El estándar de tiempo del Tiempo Atómico Internacional (TAI) y sus derivados (como el Tiempo Universal Coordinado (UTC)) se basan en promedios ponderados de relojes atómicos de todo el mundo.
Como predijo Einstein , los efectos relativistas también pueden causar desfases en los relojes debido a la dilatación del tiempo . Esto se debe a que no existe un tiempo universal fijo, ya que el tiempo es relativo al observador. La relatividad especial describe cómo dos relojes sostenidos por observadores en diferentes marcos inerciales (es decir, que se mueven uno con respecto al otro pero no aceleran ni desaceleran) parecerán funcionar a ritmos diferentes para cada observador.
Además de esto, la relatividad general nos da la dilatación del tiempo gravitacional . En pocas palabras, un reloj en un campo gravitacional más fuerte (por ejemplo, más cerca de un planeta) parecerá funcionar más lentamente. Las personas que tengan estos relojes en sus manos (es decir, las que están dentro y fuera del campo más fuerte) estarían de acuerdo en qué relojes parecen funcionar más rápido.
Es el tiempo en sí mismo, más que el funcionamiento del reloj, lo que se ve afectado. Ambos efectos se han observado experimentalmente. [ cita requerida ]
La dilatación del tiempo tiene importancia práctica. Por ejemplo, los relojes de los satélites GPS experimentan este efecto debido a la gravedad reducida que experimentan (lo que hace que sus relojes parezcan funcionar más rápido que los de la Tierra) y, por lo tanto, deben incorporar cálculos corregidos relativísticamente al informar las ubicaciones a los usuarios. Si no se tuviera en cuenta la relatividad general, una posición de navegación basada en los satélites GPS sería falsa después de solo 2 minutos, y los errores en las posiciones globales continuarían acumulándose a un ritmo de aproximadamente 10 kilómetros cada día. [3]
Los programas de computadora a menudo necesitan números aleatorios de alta calidad, especialmente para criptografía . [4] Hay varias formas similares en las que se puede utilizar la deriva del reloj para construir generadores de números aleatorios (RNG).
Una forma de construir un generador de números aleatorios de hardware es usar dos cristales de reloj independientes , uno que, por ejemplo, haga tictac 100 veces por segundo y otro que haga tictac 1 millón de veces por segundo. En promedio, el cristal más rápido hará tictac 10 000 veces por cada vez que lo haga el más lento. Pero como los cristales de reloj no son precisos, el número exacto de tictacs variará. Esa variación se puede usar para crear bits aleatorios. Por ejemplo, si el número de tictacs rápidos es par, se elige un 0, y si el número de tictacs es impar, se elige un 1. Por lo tanto, un circuito RNG 100/1000000 puede producir 100 bits algo aleatorios por segundo. Por lo general, un sistema de este tipo está sesgado (por ejemplo, podría producir más ceros que unos) y, por lo tanto, cientos de bits algo aleatorios se "blanquean" para producir unos pocos bits no sesgados.
También existe una forma similar de construir una especie de "generador de números aleatorios de software". Esto implica comparar el tictac del temporizador del sistema operativo (el tictac que normalmente es de 100 a 1000 veces por segundo) y la velocidad de la CPU . Si el temporizador del SO y la CPU funcionan en dos cristales de reloj independientes, la situación es ideal y más o menos la misma que en el ejemplo anterior. Pero incluso si ambos utilizan el mismo cristal de reloj, el proceso /programa que realiza la medición de la deriva del reloj se ve "perturbado" por muchos eventos más o menos impredecibles en la CPU, como interrupciones y otros procesos y programas que se ejecutan al mismo tiempo. Por lo tanto, la medición seguirá produciendo números aleatorios bastante buenos.
La mayoría de los generadores de números aleatorios de hardware, como los descritos anteriormente, son bastante lentos. Por lo tanto, la mayoría de los programas solo los utilizan para crear una buena semilla que luego alimentan a un generador de números pseudoaleatorios o a un generador de números pseudoaleatorios criptográficamente seguro para producir muchos números aleatorios rápidamente.
En 2006, se publicó un ataque de canal lateral [5] que explotaba el desfase de reloj basado en el calentamiento de la CPU. El atacante provoca una gran carga de CPU en un servidor seudónimo ( servicio oculto de Tor ), lo que provoca el calentamiento de la CPU. El calentamiento de la CPU está correlacionado con el desfase de reloj, que se puede detectar observando las marcas de tiempo (bajo la identidad real del servidor).