Care este principiul din spatele implementării de prag a cifrurilor bloc
Ideea este că luăm fiecare stare secretă a cifrului (fie ea însăși cheia sau o valoare de stare internă) și o transformăm într-o reprezentare „prag”, unde valoarea logică a stării secrete $s$ este de fapt implementat de $t$ valori fizice diferite $s_0, s_1, \dots, s_{t-1}$, în felul în care cunoașterea $t-1$ a valorilor fizice nu oferă nicio informație despre valoarea logică $s$.
Cel mai comun mod de a implementa acest lucru este cu xor-sharing; dacă $t=2$, apoi fiecare stare logică $s$ este reprezentat de $s = s_0 \oplus s_1$; dacă $s_0, s_1$ poate ambele 1 cu probabilitate $0.5$, apoi învățarea doar a unuia dintre ele nu oferă nicio informație despre $s$.
Întrebarea evidentă este „cum faci operațiuni cu aceste reprezentări de prag?”. Operațiile liniare/afine sunt ușoare: pentru a anula, trebuie doar să răsturnați una dintre componentele fizice. Pentru a xor, xor cele două valori din punct de vedere al componentelor: $(s_0, s_1) \oplus (t_0, t_1) = (s_0 \oplus t_0, s_1 \oplus t_1$)
Operațiile neliniare sunt puțin mai complicate; pentru a efectua o operație AND, ceea ce putem face este să alegem o nouă valoare aleatorie $r$, și calculați $(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))$. Acest lucru funcționează deoarece avem teorema lui DeMorgan: $(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)$ (care se generalizează la valori de prag arbitrare. Și, amestecăm într-o nouă aleatorie $r$ deoarece altfel valorile fizice nu ar mai fi echidistribuite.
Cu operațiunile NOT, XOR și AND, orice cifru bloc poate fi construit.
Cum protejează acest lucru împotriva atacurilor pe canale laterale?
Ideea este că, chiar dacă atacatorul poate obține unele informații despre starea $t-1$ valori secrete simultan dintr-un atac pe canal lateral, care nu-i spune nimic despre ce se întâmplă cu cifrul în sine.
Mi s-a cerut să pun o referință; cea mai veche referință generală pe care o cunosc este Către abordări solide pentru a contracara atacurile de analiză de putere de Chari et al; în special, vezi secțiunea 3.3 „Codificare”