Konstanttidsprogrammering
Att skriva kryptokod vars körtid och minnesåtkomster inte beror på hemliga värden, så att ett stoppur inte kan ersätta nyckeln.
Reglerna är få men obekväma: inga villkorshopp på hemlig data, inga tabellindex som beror på nyckeln, och inga instruktioner med variabel latens på hemliga operander. Ett klassiskt fel är att jämföra en MAC med memcmp, som slutar vid första skillnaden och därmed berättar hur många byte som var rätt. Rätt sätt är att XOR:a alla byte, samla resultatet och titta först i slutet.
Paul Kocher visade 1996 att tidsattacker mot RSA fungerar på riktigt, och sedan dess har området mest bestått av att hitta nya ställen där tiden läcker. Det svåra är att kompilatorn inte delar ambitionen: en optimerare som ser att resultatet redan är känt gör gärna ett tidigt hopp av den omsorgsfullt grenlösa koden. Därför skrivs kritiska delar ofta i assembler eller verifieras i efterhand med verktyg som letar hemlighetsberoende grenar.