Puncte:0

Creșterea paralelizării Triple-DES

drapel in
Jim

Triple-DES criptează cu prima cheie, apoi cu a doua cheie, apoi cu a treia cheie. Două chei stau în jur așteaptă. De ce nu criptați cu toate cele trei chei în același timp?

Luați 192 de biți de text simplu (trei subblocuri de 64 de biți) și rulați toți cei 192 de biți printr-o matrice MDS ca pas prealabil. Ulterior, în paralel, criptați simultan primul bloc cu prima cheie, al doilea bloc cu a doua cheie și al treilea bloc cu a treia cheie.

Repetați matricea MDS pe 192 de biți. Ulterior, în paralel, criptezi al treilea bloc cu prima cheie, primul bloc cu a doua cheie și al doilea bloc cu a treia cheie.

Repetați matricea MDS pe 192 de biți. Ulterior, în paralel, criptezi al doilea bloc cu prima cheie, al treilea bloc cu a doua cheie și primul bloc cu a treia cheie.

Block1 = Key1, Key2, Key3

Block2 = Key2, Key3, Key1

Block3 = Key3, Key1, Key2

Criptarea cu a treia cheie, a doua cheie și apoi prima cheie nu este diferită de criptarea cu prima cheie, a doua cheie și apoi a treia cheie, astfel încât nu ar exista nicio pierdere de securitate. Acest lucru ar fi, de asemenea, rezistent la atacul de dimensiunea blocului de 64 de biți. Cât de mult ar fi creșterea reală a performanței din criptarea cu toate cele trei chei în paralel? Ar complica implementarea într-o măsură în care nu ar merita?

kodlu avatar
drapel sa
Matricea MDS este din designul stratului de amestecare AES, nu are nimic de-a face cu DES, așa că utilizarea sa trebuie să aibă un scop, ce anume? Când spui criptarea k1,k2,k3 (parafrazarea pentru comentariu) nu este diferită de criptarea k2,k3,k1, este o mapare de criptare diferită. te rog explică întrebarea, în loc de „tu faci la fel” etc.
drapel ph
Ce înseamnă ca o cheie să stea în așteptare? Când vorbești despre paralelism, de obicei vrei să spui că nucleele procesorului stau în așteptare. De ce este mai bine decât să rulați 3DES pe mai multe blocuri simultan?
Puncte:0
drapel my

Ei bine, acesta este efectiv un cifru bloc de 192 de biți; modificarea oricărui bit al intrării ar avea un efect imprevizibil asupra tuturor celor 192 de biți de ieșire. Cateva note:

  • 192 este un cifru bloc de dimensiuni impare; dacă aș fi proiectantul, aș fi foarte tentat să adaug o altă bandă și să o fac un cifru bloc de 256 de biți.

  • MDS inițial este inutil din punct de vedere criptografic - este o operațiune publică și, astfel, criptoanalistul o poate descompune mai ușor.

  • La prima vedere, nu s-ar părea că câștigați nimic prin rotirea tastelor între straturi; intrările pentru (să zicem) un anumit DES la nivelul doi este o funcție liniară a tuturor celor trei ieșiri DES de la nivelul anterior. Într-un anumit sens, toate cele trei funcții DES de la un anumit strat sunt echivalente; L-aș simplifica făcând fiecare nivel „key 1, key 2, key 3” (și, eventual, adăugați „key 4” dacă mergeți cu ideea de bloc pe 256 de biți de mai sus).

  • „Criptarea cu a treia cheie, a doua cheie și apoi prima cheie nu este diferită de criptarea cu prima cheie, a doua cheie și apoi cu a treia cheie, astfel încât nu ar exista nicio pierdere de securitate.” - ține-l chiar acolo, bucko - adăugarea de operațiuni la mijloc afectează securitatea și o poate reduce. Poate fi sigur (adică cel puțin la fel de sigur ca 3DES obișnuit), totuși este ceva care ar trebui arătat, nu doar presupus.

  • Cel mai bun atac care mi se întâmplă (nu că aceasta este dovada că nu există una mai bună): o abordare bazată pe saturație (în care țineți constant două dintre blocurile de intrare și parcurgeți toate posibilitățile celui de-al treilea bloc - da , asta e $2^{64}$ blocuri de intrare); după a doua matrice MDS, suma totală $2^{64}$ blocurile de intrări la oricare dintre ultimele blocuri DES din runda vor fi 0 - acest lucru vă va permite să testați o presupunere a unei chei DES, cu prețul de circa $2^{64}$ decriptări de probă, adică $2^{112}$ decriptări pentru a efectua o căutare completă. Nu se știe dacă poți face un atac mai eficient.

În ceea ce privește performanța, ei bine, asta ar depinde destul de mult de hardware (performanța este întotdeauna) - evident, dacă aveți o implementare software care poate face o singură operație DES la un moment dat, nu sunteți mai rapid decât 3DES obișnuit (și de fapt un pic mai lent; atât din cauza operațiunilor IP/FP intermediare, cât și a operațiunilor MDS). Presupunând că aveți hardware care ar putea face mai multe operațiuni DES în paralel, ei bine, s-ar putea obține un câștig - totuși (pentru a face un calcul BOTE) criptarea a 48 de octeți ar necesita 6 (3x paralele) operațiuni DES; criptarea acelorași 48 de octeți cu AES ar necesita 3 operațiuni AES - m-aș aștepta ca acesta din urmă să fie mai rapid.

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.