В чем принцип пороговой реализации блочных шифров
Идея состоит в том, что мы берем каждое секретное состояние шифра (будь то сам ключ или значение внутреннего состояния) и преобразуем его в «пороговое» представление, где логическое значение секретного состояния $s$ на самом деле реализуется $t$ различные физические значения $s_0, s_1, \dots, s_{t-1}$таким образом, что знание $t-1$ физических значений не дает никакой информации о логическом значении $s$.
Самый распространенный способ реализовать это — совместное использование xor; если $т=2$, то каждое логическое состояние $s$ представлен $s = s_0 \oplus s_1$; если $s_0, s_1$ может оба 1 с вероятностью $0.5$, то изучение только одного из них не дает информации о $s$.
Очевидный вопрос: «Как вы выполняете операции с этими пороговыми представлениями?». Линейные/аффинные операции просты: чтобы инвертировать, вы просто переворачиваете один из физических компонентов. Для xor вы выполняете xor двух значений по компонентам: $(s_0, s_1) \oplus (t_0, t_1) = (s_0 \oplus t_0, s_1 \oplus t_1$)
Нелинейные операции немного сложнее; чтобы выполнить операцию И, мы можем выбрать новое случайное значение $г$, и вычислить $(s_0, s_1) \land (t_0, t_1) = (s_0 \land t_0 \oplus (s_1 \land t_1 \oplus r), s_0 \land t_1 \oplus (s_1 \land t_0 \oplus r))$. Это работает, потому что у нас есть теорема ДеМоргана: $(s_0 \oplus s_1) \land (t_0 \oplus t_1) = (s_0 \land t_0) \oplus (s_0 \land t_1) \land (s_1 \land t_0) \oplus (s_1 \land t_1)$ (что обобщается на произвольные пороговые значения. И мы добавляем новую случайность $г$ потому что в противном случае физические значения больше не были бы равномерно распределены.
С помощью операций NOT, XOR и AND можно построить любой блочный шифр.
как это защищает от атак по сторонним каналам?
Идея состоит в том, что даже если злоумышленник может получить некоторую информацию о состоянии $t-1$ секретные значения одновременно от атаки по побочному каналу, что ничего не говорит ему о том, что происходит с самим шифром.
Меня попросили указать ссылку; самая ранняя общая ссылка, которую я знаю, это На пути к разумным подходам к противодействию атакам анализа мощности Чари и др.; в частности, см. раздел 3.3 "Кодирование"