Les horloges courantes, comme les montres-bracelets, ont une précision limitée. Elles nécessitent donc un ajustement pour rester exactes. La vitesse de dérive dépend de la qualité de l'horloge, parfois de la stabilité de l'alimentation électrique, de la température ambiante et d'autres variables environnementales subtiles. Ainsi, une même horloge peut présenter des vitesses de dérive différentes selon les circonstances.
Les horloges plus modernes et les anciennes horloges mécaniques sont souvent équipées d'un dispositif de réglage de la vitesse permettant d'ajuster leur mouvement et ainsi de corriger leur dérive. Par exemple, dans les horloges à pendule, la dérive peut être corrigée en modifiant légèrement la longueur du pendule .
Un oscillateur à quartz est moins sensible à la dérive due aux variations de fabrication que le pendule d'une horloge mécanique. C'est pourquoi la plupart des horloges à quartz courantes ne possèdent pas de système de correction de dérive réglable.
Horloges atomiques
Les horloges atomiques sont extrêmement précises et leur dérive est quasi inexistante. Même la vitesse de rotation de la Terre présente une dérive et une variation de dérive supérieures à celles d'une horloge atomique, en raison de l'accélération des marées et d'autres phénomènes. Le principe de l'horloge atomique a permis aux scientifiques de redéfinir la seconde, unité du Système international d'unités (SI), en termes de seconde exacte .9 192 631 770 oscillations de l’ atome de césium 133. La précision de ces oscillations permet aux horloges atomiques de ne dériver que d’environ une seconde tous les cent millions d’années ; en 2015, l’horloge atomique la plus précise perdait une seconde tous les 15 milliards d’années. Le Temps atomique international (TAI) et ses dérivés, comme le Temps universel coordonné (UTC), sont basés sur des moyennes pondérées des horloges atomiques du monde entier.
Relativité
Les programmes informatiques ont souvent besoin de nombres aléatoires de haute qualité, notamment pour la cryptographie . Il existe plusieurs façons similaires d'utiliser la dérive d'horloge pour construire des générateurs de nombres aléatoires (GNA).
Une méthode pour construire un générateur de nombres aléatoires matériel consiste à utiliser deux cristaux d'horloge indépendants : l'un oscillant par exemple à 100 Hz et l'autre à 1 million de Hz. En moyenne, le cristal le plus rapide effectuera alors 10 000 oscillations pour chaque oscillation du plus lent. Cependant, la précision des cristaux d'horloge étant limitée, le nombre exact d'oscillations variera. Cette variation peut être exploitée pour générer des bits aléatoires. Par exemple, si le nombre d'oscillations rapides est pair, un 0 est généré ; s'il est impair, un 1 est généré. Ainsi, un tel circuit de générateur de nombres aléatoires 100/1 000 000 peut produire 100 bits plus ou moins aléatoires par seconde. Généralement, un tel système présente un biais (il peut par exemple produire plus de zéros que de uns) ; c'est pourquoi des centaines de bits plus ou moins aléatoires sont « blanchis » pour produire quelques bits non biaisés.
Il existe une méthode similaire pour créer une sorte de « générateur de nombres aléatoires logiciel ». Elle consiste à comparer la fréquence d'horloge du système d'exploitation (généralement de 100 à 1 000 impulsions par seconde) et la fréquence du processeur . Si l'horloge du système d'exploitation et le processeur fonctionnent avec deux cristaux d'horloge indépendants, la situation est idéale et comparable à l'exemple précédent. Cependant, même s'ils utilisent le même cristal d'horloge, le processus /programme effectuant la mesure de la dérive d'horloge est perturbé par de nombreux événements plus ou moins imprévisibles au sein du processeur, tels que les interruptions et les autres processus et programmes exécutés simultanément. La mesure produira donc tout de même des nombres aléatoires relativement bons.
La plupart des générateurs de nombres aléatoires matériels, comme ceux décrits précédemment, sont relativement lents. Par conséquent, la plupart des programmes ne les utilisent que pour générer une bonne graine qu'ils fournissent ensuite à un générateur de nombres pseudo-aléatoires ou à un générateur de nombres pseudo-aléatoires cryptographiquement sécurisé afin de produire rapidement de nombreux nombres aléatoires.
Attaque temporelle
En 2006, une attaque par canal auxiliaire a été publiée , exploitant un décalage d'horloge basé sur la surchauffe du processeur. L'attaquant provoque une forte charge du processeur sur un serveur pseudonyme ( service caché Tor ), entraînant ainsi une surchauffe. Cette surchauffe est corrélée au décalage d'horloge, détectable par l'observation des horodatages (sous l'identité réelle du serveur).