> а зачем это, зачем делать константой количество циклов, Чтобы не утекать никакой полезной информации атакующему. А вы что подумали?
> в вашем примере главное не останавливаться при первом же несоответствии,
В том примере главное - не утекать никакой полезной информации атакуюшему через тайминги операций. Чтобы атакующий занимался угадайкой на множестве порядка 256^100.
Этот маневр придумал не я, crypto_memcmp и проч примерно так делают.
> а это вы решили путем прохода по всем битам и применения битовых операций.
> Остается только доказать, что эти битовые операции не коррелируют, то есть:
> (0^0), (0^1), (1^0), (1^1) - константны по времени исполнения.
Проца у которого скорость XOR зависела бы от операндов в регистрах я еще не встречал. А доступ к памяти у этой штуки всегда одинаковый и никакой особой новой информации атакующему не утекает.
Судя по современному крипто - регистровая математика наиболее безопасная по части постоянных времянок штука в целом. Ну я и откосплеил известный мне маневр в стиле тех граждан.
> Они могут быть константны по времени, а по всяким там энергетическим параметрам
> они будут такими же?
Это уже другой аспект. Energy-aware coding != timing attack. От атакующего который может измерять потребление защититься куда сложнее, но это подразумевает другой уровень интрузива и доступа к системе, против него уже мало что удержится.
А времянки можно иной раз померять даже по сетевым или RF протоколам, ремотно. Или там сидючи на соседней VM с нужной. Поэтому фикс timing attacks намного приоритетнее, подставляет юзерей в довольно большом количестве сценариев на самом деле.
> Разве переходной процес из 0 -> 1 и 1 -> 0 константен?
Нет, однако прецизионный замер потребления проца - это уже довольно интрузивная и нишевая атака.
Я даже знаю кто это делает на коммерческой основе. Но они это делают в тепличных условиях, с специфичным недешевым шмотом, по специфичным поводам. Их полторы фирмы на всю планету с недешевыми расценками, и так вскрывают только очень некоторые вещи в довольно узком диапазоне допущений. А вон тот сервак к ним в лабу утащить на скоростной анализатор? Ну, это как минимум довольно неудобное требование для атакуюшего. Иногда - таки это опция. Но - именно иногда. Там где это реально важно, например, смарткарты, вообще-то этому уделяют внимание на уровне дизайна чипа. И то - с переменным успехом.