1safe.h(3)                  Library Functions Manual                  safe.h(3)
2
3
4

NAME

6       safe.h - Регулярные вычисления
7
8

SYNOPSIS

10       #include 'bee2/defs.h'
11
12

Подробное описание

14       Если в криптографических программах имеются условные переходы и условия
15       этих переходов определяются обрабатываемыми данными (но не их
16       размерностями), то эти программы подвержены атакам, основанным на
17       замерах времени или питания. Даже если условных переходов нет,
18       флуктуации времени выполнения могут быть индуцированы различными
19       задержками при загрузке данных из массивов в связи с логикой работы
20       кэш-памяти современных процессоров.
21
22       Регулярные вычисления -- это 'равномерные' вычисления, всегда одни и те
23       же при обработке различных данных определенных размерностей.
24
25       Комментарии о регулярности даются в окружении \safe. В этом окружении
26       указываются источники нерегулярности и причины, по которым регулярность
27       подерржать невозмножно / нецелесообразно:
28
29       • условные переходы (условия определяются входными данными);
30
31       • цикл с переменным числом шагов (условие выхода из цикла определяется
32         входными данными);
33
34       • нерегулярные композиционные блоки (например, вызываемые функции);
35
36       • обрабатываемыt данные не могут быть секретными;
37
38       • логика работы функции противоречит регулярности (например, функция
39         рассчитывает характеристики данных).
40
41       Функция f() может быть представлена в двух редакциях: регулярной и
42       ускоренной нерегулярной. Имена редакциям назначаются с помощью макросов
43       SAFE и FAST соответственно: если директива SAFE_FAST не включена, то
44       SAFE(f) == f && FAST(f) == f_fast, если включена, то SAFE(f) == f_safe
45       && FAST(f) == f. Базовое имя f всегда поддержано и является именем по
46       умолчанию.
47
48       Директива SAFE_FAST дополнительно используется для нерегулярного
49       ускорения обычных (одноредакционных) функций. Основное назначение
50       директивы -- анализ падения производительности при регуляризации.
51       Директиву следует включать только тогда, когда регулярность библиотеки
52       не имеет значения.
53
54       Предупреждения
55           Директива включена вплоть до завершения регуляризации bee2.
56
57       Прим.
58           Длины строк, размерности массивов не считаются критическими
59           данными.
60
61           Флуктуации при загрузке данных из массивов пока не считаются
62           факторами нерегулярности.
63
64           Отладочные версии заведомо нерегулярны.
65

Автор

67       Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.
68
69
70
71Библиотека Bee2                 Пт 23 Июн 2023                       safe.h(3)
Impressum