Πώς λειτουργεί ο αλγόριθμος κρυπτογράφησης Rijndael;

Γνωστός επίσης με το ακρωνύμιο AES

Η ασφαλής μεταφορά άκρως εμπιστευτικών πληροφοριών, χωρίς να αποκτούν πρόσβαση μη εξουσιοδοτημένα άτομα, αποτελεί διαχρονικά μια πρόκληση. Πρώιμες μορφές «μυστικών γλωσσών» – όπως απλές μετατοπίσεις γραμμάτων – σπάνε με τον σημερινό υπολογιστικό φόρτο σχεδόν ακαριαία. Σήμερα προστατεύουμε τα δεδομένα με κρυπτογραφικές μεθόδους, οι οποίες είναι μαθηματικά ακριβώς ορισμένες και των οποίων η ασφάλεια έχει αξιολογηθεί δημόσια.

Τέτοιες μέθοδοι χρησιμοποιούν ένα κλειδί, το οποίο γνωρίζουν μόνο ο αποστολέας και ο παραλήπτης. Η κρυπτογράφηση και η αποκρυπτογράφηση υλοποιούνται από έναν αλγόριθμο κρυπτογράφησης – μια σαφώς περιγεγραμμένη μαθηματική διαδικασία.

Password Depot κρυπτογραφεί τα εμπιστευτικά δεδομένα σας με τον αλγόριθμο Rijndael, ο οποίος έχει τυποποιηθεί ως AES (Advanced Encryption Standard).

Στη συνέχεια εξηγούμε συνοπτικά τον αλγόριθμο και τον εντάσσουμε στο τεχνικό του πλαίσιο.

Advanced Encryption Standard (AES) – η τυποποιημένη παραλλαγή του Rijndael

Το U.S. National Bureau of Standards (σήμερα NIST) τυποποίησε το 1977 τον DES· το πρότυπο αυτό αποσύρθηκε το 2005, επειδή δεν θεωρούνταν πλέον επαρκώς ασφαλές (ανακοίνωση NIST). Ως διάδοχη λύση επέλεξε το NIST το 2001 τον αλγόριθμο Rijndael και βασίστηκε σε αυτόν για να τυποποιήσει τον Advanced Encryption Standard (AES) (FIPS 197).

Σημαντικό: Το AES είναι μια υποομάδα της οικογένειας Rijndael. Το AES καθορίζει μέγεθος μπλοκ 128 bit και επιτρέπει κλειδιά με μήκος 128, 192 ή 256 bit (αναφορά NIST, FIPS 197 (PDF)).

Το AES είναι εγκεκριμένο για την προστασία πληροφοριών αρχών των ΗΠΑ έως και στο επίπεδο TOP SECRET (βλ. CNSSP-15 Fact Sheet καθώς και το τρέχον CNSA 2.0 FAQ της NSA).

Πώς λειτουργεί το Rijndael/AES (σύντομη επισκόπηση)

Το Rijndael είναι μια κρυπτογραφική μέθοδος τύπου substitution-permutation network. Οι βασικές αρχές είναι οι αντικαταστάσεις σε επίπεδο byte, οι γραμμικοί μετασχηματισμοί και οι πράξεις XOR.

Επεξεργασία σε επίπεδο μπλοκ (128-bit «state»)

  • Επέκταση κλειδιού (Key Schedule): Από το αρχικό κλειδί παράγονται Nr + 1 κλειδιά γύρου (π.χ. 11 για AES-128, 13 για AES-192, 15 για AES-256). Πηγή: FIPS 197.
  • Αρχικός γύρος: AddRoundKey – το μπλοκ απλού κειμένου (ως μήτρα 4×4 bytes) συνδυάζεται με XOR με το πρώτο κλειδί γύρου.
  • Γύροι 1 … Nr:
    • SubBytes: Κάθε byte αντικαθίσταται μέσω ενός S-box (πολλαπλασιαστικό αντίστροφο στο GF(28) και στη συνέχεια αφινικός μετασχηματισμός με σταθερά 0x63). Πηγή: FIPS 197.
    • ShiftRows: Οι γραμμές της μήτρας state μετατοπίζονται κυκλικά.
    • MixColumns: Οι στήλες αναμειγνύονται μέσω πολλαπλασιασμού μητρώων στο GF(28).
    • AddRoundKey: Πράξη XOR με το αντίστοιχο κλειδί γύρου.
    Σημείωση: Στον τελευταίο γύρο το βήμα MixColumns παραλείπεται. Ο αριθμός των γύρων είναι 10/12/14 για κλειδιά με μήκος 128/192/256 bit (FIPS 197).

Το AES μπορεί να υλοποιηθεί σε λογισμικό, firmware ή υλικό (FIPS 197). Για πρακτική χρήση εφαρμόζονται διάφοροι τρόποι λειτουργίας, π.χ. CBC, CTR ή GCM (authenticated encryption – αυθεντικοποιημένη κρυπτογράφηση). Συστάσεις υπάρχουν στα έγγραφα NIST SP 800-38A και NIST SP 800-38D (GCM/GMAC).

Σημαντικό ως προς την κατηγοριοποίηση: Το AES είναι συμμετρικό κρυπτοσύστημα για την κρυπτογράφηση δεδομένων. Η ανταλλαγή κλειδιών πραγματοποιείται συνήθως με ασύμμετρες μεθόδους ((EC)DH/RSA). Το AES μπορεί ωστόσο να περιβάλει κλειδιά με ασφαλή τρόπο («Key Wrap») – βλ. NIST SP 800-38F.

Επίσημη προδιαγραφή

Τη βασική προδιαγραφή θα τη βρείτε εδώ: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf

Επιθέσεις Brute-Force

Brute-Force σημαίνει ότι ένας επιτιθέμενος δοκιμάζει όλους τους πιθανούς συνδυασμούς κλειδιών. Κλασικά συστήματα όπως ο DES με κλειδιά μόνο 56 bit μπορούν σήμερα να παραβιαστούν πρακτικά με αυτή τη μέθοδο – για τον λόγο αυτό το NIST απέσυρε επίσημα τον DES το 2005 (NIST).

Σύγχρονα συστήματα όπως το AES με κλειδιά 128/192/256 bit διαθέτουν αντίθετα έναν αστρονομικά μεγάλο χώρο κλειδιών. Στην πράξη είναι συχνά πιο κρίσιμη από τον ίδιο τον αλγόριθμο η παραγωγή κλειδιού από κωδικούς πρόσβασης και η ποιότητα του κύριου κωδικού πρόσβασης (master password).

Το Password Depot δυσκολεύει περαιτέρω τις επιθέσεις Brute-Force μέσω μιας λειτουργίας καθυστέρησης: μετά από εσφαλμένη εισαγωγή του κύριου κωδικού πρόσβασης, το πρόγραμμα παραμένει κλειδωμένο για μερικά δευτερόλεπτα.

Συμπέρασμα: Με σωστή υλοποίηση, κατάλληλους τρόπους λειτουργίας (π.χ. GCM) και επαρκές μήκος κλειδιού, το AES θεωρείται από τη σημερινή σκοπιά μακροπρόθεσμα ιδιαίτερα ασφαλές.

Περισσότερα για τις επιθέσεις Brute-Force.

Περαιτέρω πηγές