qué ejercicio tiene resultados []
No es un arte exacto. La memoria caché puede ser golpeada para un índice que no es el que fue afectado por victim_function. El umbral puede llevar a resultados límite.
Entonces, el código ejecuta el ataque 999 veces e incrementa los resultados [mix_i] cuando piensa que hay un acierto de caché. A continuación, selecciona el resultado con el valor de resultado más alto (la mayoría de los aciertos de caché esperados) y asume que es el valor correcto para el byte de la víctima.
¿Por qué Mix_i golpea el caché cuando representa el byte en la dirección del hit de caché?
mix_i es solo una forma de barajar i.
for (i = 0; i < 256; i++) {
mix_i = ((i * 167) + 13) & 255;
...
}
Los resultados anteriores hacen que la mezcla_i se inicialice como cada valor entre 0-255 solo una vez, pero no en el orden 0,1,2,3 (como i es). Esto se hace por la razón que se indica en los comentarios: a evitar la predicción de zancadas ;