Fragen? Antworten! Siehe auch: Alternativlos
Weil man über solche Seitenkanäle in Krypto-Code gerne mal Schlüsseldaten extrahieren kann, haben ordentliche Libraries auf Code umgestellt, der unabhängig von den Daten immer konstant viel Zeit braucht.
Dabei gehen dann z.B. datenabhängige Table-Lookups nicht mehr, weil das den Cache involviert, und das ist ein Seitenkanal. Viele Algorithmen werden dadurch deutlich langsamer, aber das ist eine Kröte, die man dann halt frisst.
Und jetzt stellt sich raus, dass selbst bei bislang als risikolos geltenden Instruktionen wie Additionen und XOR plötzlich die Laufzeit von den konkreten Werten abhängt.
Schlimmer noch: Die AES-Instruktionen sind bei Intel plötzlich nicht mehr constant time. Da gibt es nun echt GAR keine Ausrede. Es gibt kein Szenario, in dem man die AES-Instruktionen nicht constant time haben will.
Update: Was an der Meldung besonders bemerkenswert ist: Addition und XOR sind bereits jetzt maximal schnell, zumindest auf x86. Die haben laut Handbuch eine Latenz von einem Takt. Nicht nur das: Bei XOR ist nicht mal offensichtlich, wie das schneller gehen soll, wenn man etwas über den Operanden weiß. Das ist schon die einfachste Operation, die man auf einer CPU durchführen kann, und sie läuft bereits mit maximalem Durchsatz und minimaler Latenz. Was kann da noch wegoptimiert werden?