Twofish

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Twofish
Twofishalgo.svg
Schema Twofish
General
Designeri Bruce Schneier , John Kelsey , Doug Whiting , David A. Wagner , Chris Hall și Niels Ferguson
Prima publicație 1997
Provin de la Blowfish , SAFER , Square
Detalii
Dimensiunea cheii 128, 192 sau 256 biți
Dimensiunea blocului 128 biți
Structura Rețeaua Feistel
Criptanaliză mai bună
Atac cu forță brută

Twofish , în contextul criptografiei , este un algoritm de cifrare a blocului de chei simetric , cu o dimensiune a blocului de 128 biți și o dimensiune a cheii de 128, 192 sau 256 biți.

Istorie

Prezentat de Counterpane Labs de Bruce Schneier , el a fost unul dintre cei cinci finaliști în procesul de standardizare a Standardului de criptare avansată întreprins de NIST în 1997 pentru a înlocui Triple DES .

Echipa de dezvoltare, pe lângă Schneier (creatorul predecesorului Blowfish ), a inclus și John Kelsey, Doug Whiting, David Wagner, Chris Hall și Niels Ferguson. [1] O echipă extinsă care ulterior a continuat să facă analize suplimentare despre Twofish și ceilalți candidați AES a inclus Stefan Lucks (creatorul atacului Triple DES), Tadayoshi Kohno și Mike Stay. [2]

Algoritmul nu a fost brevetat și implementarea de referință a fost lansată în domeniul public . Datorită acestui fapt, Twofish este de exemplu utilizat în standardul OpenPGP ( RFC 4880 ), deși în acest moment este chiar mai puțin răspândit decât Blowfish .

Caracteristici

Twofish folosește o structură de plasă Feistel , ca DES, repetată pentru 16 runde în versiunea completă, cu o albire în interior și în exterior. Algoritmul distribuie blocuri de text simplu pe 128 de biți în cuvinte pe 32 de biți pe care efectuează majoritatea operațiunilor de criptare. [3] Funcția bijectivă F (pătratul întrerupt din centrul diagramei) este compusă din două copii ale funcției g , compuse la rândul lor din patru cutii S și o matrice fixă ​​4x4 Distanță maximă separabilă (MDS), urmată de o transformare Pseudo-Hadamard (PHT) care derivă din familia de cifre SAFER și un punct de intrare subcheie , adică material derivat din cheie prin programul cheii (sau managerul de chei).

S-Box-urile Twofish ( Substitution-boxes ), precomputate și dependente de biții cheii, mai degrabă decât constante ca la ceilalți candidați AES, [3] și proiectarea atentă a algoritmului de programare a cheilor sunt cele două trăsături distinctive ale Twofish.

Testele pe platformele software au descoperit că Twofish este puțin mai lent decât Rijndael (algoritmul selectat în cele din urmă pentru a implementa AES) pentru tastele de 128 de biți, dar oarecum mai rapid pentru tastele de 256 de biți. [4]

În prezent nu se cunoaște niciun atac asupra Twofish care să fie mai eficient decât forța brută , în ciuda mai multor încercări făcute. [5]

Notă

  1. ^ AES Runda 2 Informații la nist.gov
  2. ^ (EN) Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson, Tadayoshi Kohno, Mike Stay, The Two fi sh Team's Final Comments on AES Selection (PDF) on schneier.com, 15 mai 2000. URL accesat la 16 august 2010 (arhivat din original la 2 ianuarie 2010) .
  3. ^ a b Ferguson și Schneier, 2005 , pp . 47-49 .
  4. ^ (EN) Bruce Schneier, Doug Whiting, A Performance Comparison of the Five Finalists AES , of schneier.com, 7 aprilie 2000. Accesat la 16 august 2010.
  5. ^ comentariu de Schneier pe blogul său - 23 noiembrie 2005

Bibliografie

linkuri externe