Puncte:2

Implementarea de prag a cifrurilor

drapel za

Care este principiul din spatele implementării de prag a cifrurilor bloc și cum protejează aceasta împotriva atacurilor pe canale laterale?

kodlu avatar
drapel sa
Bună întrebare Puteți oferi o referință care discută acest subiect?
Evgeni Vaknin avatar
drapel za
uitați-vă la: „Implementări de prag împotriva atacurilor și erorilor pe canale laterale” , @ https://www.esat.kuleuven.be/cosic/publications/article-847.pdf
Puncte:3
drapel my

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”

Evgeni Vaknin avatar
drapel za
Mulțumiri! Trebuie să recunosc că am semănat câteva răspunsuri, dar niciunul dintre ele nu a fost acel cristal clar
Evgeni Vaknin avatar
drapel za
Așadar, vă rog să mă corectați dacă greșesc, pentru a implementa, să zicem, AES S-BOX cu logica de prag, pot adăuga masca în intrare și apoi să creez un nou S-BOX, să spunem T-BOX, cum ar fi că T(x+s) = S(x) și generează noi s și noi T de fiecare dată când trebuie să calculez S(x). Este corect?
poncho avatar
drapel my
@EvgeniVaknin: ar fi costisitor - crearea unui SBox proaspăt de fiecare dată ar fi costisitoare. O modalitate pe care am văzut-o este să implementez o implementare a pragului de $x^{254}$ (partea neliniară a sbox-ului) bazată pe identitatea de multiplicare a pragului $(s_0 + s_1)\times(t_0 + t_1) = (s_0) \times t_0) + (s_0 \times t_1) + (s_1 \times t_0) + (s_1 \times t_1)$ (unde $+, \times$ sunt operații $GF(256)$); încă destul de costisitor, dar mai bine decât reconstruirea sbox-ului de fiecare dată...
poncho avatar
drapel my
@EvgeniVaknin: de fapt, deoarece pătrarea în $GF(256)$ este liniară, puteți implementa $x^{254}$ cu 7 pătraturi (ieftine) și 4 înmulțiri de prag...
kodlu avatar
drapel sa
Puteți oferi o referință pentru a pune această întrebare și răspunsul dvs. frumos în context? Am intrebat si OP.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.