Twofish
Στην κρυπτογραφία, το Twofish είναι ένας κρυπτογράφος μπλοκ συμμετρικού κλειδιού με μέγεθος μπλοκ 128 bit και μήκος κλειδιού έως 256 bit.
Το 1997, το NIST ανακοίνωσε διαγωνισμό για την επιλογή ενός διαδόχου του DES, γνωστού ως AES, το Twofish ήταν ένας από τους πέντε φιναλίστ του διαγωνισμού Advanced Encryption Standard, αλλά δεν επιλέχθηκε ως πρότυπο.
Το Twofish σχετίζεται με το προηγούμενο block cipher Blowfish. Τα κύρια χαρακτηριστικά του Twofish είναι η χρήση προ-υπολογισμένων S-boxes που εξαρτώνται από το κλειδί και ένα σχετικά πολύπλοκο πρόγραμμα κλειδιών. Το ένα μισό ενός κλειδιού n-bit χρησιμοποιείται ως το πραγματικό κλειδί κρυπτογράφησης και το άλλο μισό του κλειδιού n-bit χρησιμοποιείται για την τροποποίηση του αλγορίθμου κρυπτογράφησης (εξαρτώμενα από το κλειδί S-boxes). Το Twofish χρησιμοποιεί ορισμένα στοιχεία από άλλα σχέδια- για παράδειγμα, τον μετασχηματισμό ψευδο-Hadamard (PHT) από την οικογένεια κρυπτογραφήσεων SAFER. Ο Twofish χρησιμοποιεί την ίδια δομή Feistel με τον DES.
Στις περισσότερες πλατφόρμες λογισμικού το Twofish είναι ελαφρώς πιο αργό από το Rijndael (ο αλγόριθμος που επιλέχθηκε για το Advanced Encryption Standard) για κλειδιά 128-bit, αλλά κάπως πιο γρήγορο για κλειδιά 256-bit.
Το Twofish σχεδιάστηκε από τους Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall και Niels Ferguson.Η "διευρυμένη ομάδα Twofish" που συναντήθηκε για να κάνει περαιτέρω κρυπτανάλυση του Twofish και άλλων ανταγωνιστών του AES περιελάμβανε τους Stefan Lucks, Tadayoshi Kohno και Mike Stay.
Ο αλγόριθμος Twofish είναι ελεύθερος για χρήση από οποιονδήποτε χωρίς κανέναν περιορισμό. Ο αλγόριθμος Twofish δεν έχει κατοχυρωθεί με δίπλωμα ευρεσιτεχνίας και το παράδειγμα λογισμικού των προδιαγραφών του έχει διατεθεί στο δημόσιο τομέα. Ωστόσο, το Twofish δεν χρησιμοποιείται ευρέως όπως το Blowfish, το οποίο είναι διαθέσιμο για μεγαλύτερο χρονικό διάστημα.
Cryptanalysis
Από το 2008, η καλύτερη δημοσιευμένη κρυπτανάλυση του κρυπτογραφήματος μπλοκ Twofish είναι μια περικομμένη διαφορική κρυπτανάλυση της πλήρους έκδοσης 16 γύρων. Το έγγραφο υποστηρίζει ότι η πιθανότητα επιθέσεων με περικομμένες διαφορικές είναι 2-57,3 ανά μπλοκ και ότι θα χρειαστούν περίπου 251 επιλεγμένα πλασματικά κείμενα (δεδομένα αξίας 32 PiB) για να βρεθεί ένα καλό ζεύγος περικομμένων διαφορικών.
Ο Bruce Schneier απαντά σε μια καταχώρηση στο ιστολόγιο του 2005 ότι το έγγραφο αυτό δεν παρουσιάζει μια πλήρη κρυπταναλυτική επίθεση, αλλά μόνο κάποια υποθετικά διαφορικά χαρακτηριστικά: "Αλλά ακόμη και από θεωρητική άποψη, το Twofish δεν είναι ούτε κατά διάνοια σπασμένο. Δεν έχουν υπάρξει επεκτάσεις σε αυτά τα αποτελέσματα από τότε που δημοσιεύτηκαν" το 2000.
Σχετικές σελίδες
- Blowfish (κρυπτογράφηση)
- Σύνθετο πρότυπο κρυπτογράφησης
- Πρότυπο κρυπτογράφησης δεδομένων
Ερωτήσεις και απαντήσεις
Q: Τι είναι το Twofish;
A: Το Twofish είναι ένας κρυπτογράφος μπλοκ συμμετρικού κλειδιού με μέγεθος μπλοκ 128 bit και μήκος κλειδιού έως 256 bit.
Ερ: Πώς σχετίζεται το Twofish με τον προηγούμενο κρυπτογράφο μπλοκ Blowfish;
Α: Τα κύρια χαρακτηριστικά του Twofish είναι η χρήση προ-υπολογισμένων εξαρτώμενων από το κλειδί S-boxes και ένα σχετικά πολύπλοκο πρόγραμμα κλειδιών. Το ένα μισό ενός κλειδιού n-bit χρησιμοποιείται ως το πραγματικό κλειδί κρυπτογράφησης και το άλλο μισό του κλειδιού n-bit χρησιμοποιείται για την τροποποίηση του αλγορίθμου κρυπτογράφησης (key-dependent S-boxes).
Ερ: Επιλέχθηκε το Twofish ως προηγμένο πρότυπο κρυπτογράφησης;
Α: Όχι, το 1997, το NIST ανακοίνωσε διαγωνισμό για την επιλογή ενός διαδόχου του DES που θα ήταν γνωστός ως AES, ωστόσο το Twofish δεν επιλέχθηκε ως πρότυπο.
Ε: Ποια στοιχεία χρησιμοποιεί το Twofish από άλλα σχέδια;
Α: Το Twofish χρησιμοποιεί ορισμένα στοιχεία από άλλα σχέδια- για παράδειγμα, τον μετασχηματισμό pseudo-Hadamard (PHT) από την οικογένεια κρυπτογράφησης SAFER.
Ε: Χρησιμοποιεί τη δομή Feistel όπως το DES;
Α: Ναι, χρησιμοποιεί τη δομή Feistel όπως ο DES.
Ε: Είναι ταχύτερο από το Rijndael για κλειδιά 128 bit;
Α: Στις περισσότερες πλατφόρμες λογισμικού, το Twofish είναι ελαφρώς πιο αργό από το Rijndael για κλειδιά 128 bit.
Ε: Είναι ταχύτερο από το Rijndael για κλειδιά 256 bit;
Α: Είναι κάπως ταχύτερο από τον Rijndael για κλειδιά 256 bit.