Αλγόριθμοι κρυπτογράφησης DES και AES. Πρότυπο κρυπτογράφησης δεδομένων (DES)

Σχόλιο: Ένα από τα πιο διάσημα κρυπτογραφικά συστήματα ιδιωτικού κλειδιού είναι το DES – Data Encryption Standard. Αυτό το σύστημα ήταν το πρώτο που έλαβε την κατάσταση ενός κρατικού προτύπου στον τομέα της κρυπτογράφησης δεδομένων. Και παρόλο που το παλιό αμερικανικό πρότυπο DES έχει πλέον χάσει την επίσημη κατάστασή του, αυτός ο αλγόριθμος εξακολουθεί να αξίζει προσοχής κατά τη μελέτη της κρυπτογραφίας. Αυτή η διάλεξη εξηγεί επίσης τι είναι το διπλό DES, μια επίθεση συνάντησης στη μέση και πώς να το μετριάσεις. Αυτή η διάλεξη εξετάζει επίσης εν συντομία το νέο πρότυπο των ΗΠΑ για κρυπτογράφηση μπλοκ, τον αλγόριθμο Rijndael.

Σκοπός της διάλεξης: εισάγει τον μαθητή στις βασικές πληροφορίες για τον αλγόριθμο κρυπτογράφησης DES.

Βασικές πληροφορίες

Ένα από τα πιο διάσημα κρυπτογραφικά συστήματα ιδιωτικού κλειδιού είναι DES – Πρότυπο κρυπτογράφησης δεδομένων. Αυτό το σύστημα ήταν το πρώτο που έλαβε την κατάσταση ενός κρατικού προτύπου στον τομέα της κρυπτογράφησης δεδομένων. Αναπτύχθηκε από ειδικούς της IBM και τέθηκε σε ισχύ στις ΗΠΑ το 1977. Αλγόριθμος DESχρησιμοποιείται ευρέως για την αποθήκευση και τη μετάδοση δεδομένων μεταξύ διαφόρων συστημάτων υπολογιστών. σε ταχυδρομικά συστήματα, ηλεκτρονικά συστήματα σχεδίασης και ηλεκτρονική ανταλλαγή εμπορικές πληροφορίες. Πρότυπο DESυλοποιήθηκε τόσο σε λογισμικό όσο και σε υλικό. Επιχειρήσεις από διάφορες χώρες έχουν ξεκινήσει μαζική παραγωγή ψηφιακών συσκευών χρησιμοποιώντας DESγια κρυπτογράφηση δεδομένων. Όλες οι συσκευές υποβλήθηκαν σε υποχρεωτική πιστοποίηση για συμμόρφωση με το πρότυπο.

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

Μήκος κλειδιού στον αλγόριθμο DESείναι 56 bit. Είναι με αυτό το γεγονός ότι η κύρια διαμάχη σχετικά με την ικανότητα να DESαντιστέκονται σε διάφορες επιθέσεις. Όπως γνωρίζετε, κάθε μπλοκ κρυπτογράφησης με ιδιωτικό κλειδί μπορεί να σπάσει δοκιμάζοντας όλους τους πιθανούς συνδυασμούς πλήκτρων. Με μήκος κλειδιού 56 bit, είναι δυνατά 2 56 διαφορετικά πλήκτρα. Εάν ένας υπολογιστής πραγματοποιήσει αναζήτηση σε 1.000.000 κλειδιά σε ένα δευτερόλεπτο (που είναι περίπου ίσο με 2 20), τότε θα χρειαστούν 2 36 δευτερόλεπτα ή λίγο περισσότερο από δύο χιλιάδες χρόνια για να αναζητήσει και τα 2 56 κλειδιά, κάτι που, φυσικά, είναι απαράδεκτο. επιτιθέμενοι.

Ωστόσο, είναι δυνατά πιο ακριβά και ταχύτερα υπολογιστικά συστήματα από ό Προσωπικός υπολογιστής. Για παράδειγμα, εάν είναι δυνατός ο συνδυασμός ενός εκατομμυρίου επεξεργαστών για παράλληλους υπολογισμούς, τότε ο μέγιστος χρόνος επιλογής κλειδιού μειώνεται σε περίπου 18 ώρες. Αυτός ο χρόνος δεν είναι πολύ μεγάλος και ένας κρυπτοαναλυτής εξοπλισμένος με τόσο ακριβό εξοπλισμό μπορεί εύκολα να σπάσει δεδομένα κρυπτογραφημένα με DES σε εύλογο χρονικό διάστημα.

Ταυτόχρονα, μπορεί να σημειωθεί ότι το σύστημα DESΜπορεί να χρησιμοποιηθεί σε εφαρμογές μικρού έως μεσαίου μεγέθους για την κρυπτογράφηση δεδομένων μικρής αξίας. Για την κρυπτογράφηση δεδομένων εθνικής σημασίας ή σημαντικής εμπορικής αξίας, το σύστημα DESφυσικά δεν θα πρέπει να χρησιμοποιείται προς το παρόν. Το 2001, μετά από έναν ειδικά προκηρυχθεί διαγωνισμό, ένα νέο πρότυπο κρυπτογράφησης μπλοκ υιοθετήθηκε στις Ηνωμένες Πολιτείες, που ονομάζεται AES (Advanced Encryption Standard), το οποίο βασίστηκε στην κρυπτογράφηση Rijndael, που αναπτύχθηκε από Βέλγους ειδικούς. Αυτός ο κρυπτογράφηση συζητείται στο τέλος της διάλεξης.

Βασικές ρυθμίσεις DES: μέγεθος μπλοκ 64 bit, μήκος κλειδιού 56 bit, αριθμός γύρων – 16. DESείναι ένα κλασικό δίκτυο Feishtel με δύο υποκαταστήματα. Ο αλγόριθμος μετατρέπει ένα μπλοκ δεδομένων εισόδου 64-bit σε ένα μπλοκ εξόδου 64-bit σε πολλούς γύρους. Πρότυπο DESβασίζεται στη συνδυασμένη χρήση μετάθεσης, αντικατάστασης και γάμμα. Τα κρυπτογραφημένα δεδομένα πρέπει να είναι σε δυαδική μορφή.

Κρυπτογράφηση

Γενική δομή DESφαίνεται στο Σχ. 4.1. Η διαδικασία κρυπτογράφησης κάθε μπλοκ 64-bit ακατέργαστων δεδομένων μπορεί να χωριστεί σε τρία στάδια:

  1. αρχική προετοιμασία ενός μπλοκ δεδομένων·
  2. 16 γύροι του "κύριου κύκλου"?
  3. τελική επεξεργασία ενός μπλοκ δεδομένων.

Στο πρώτο στάδιο πραγματοποιείται αρχική μετάθεσηΠηγαίο μπλοκ κειμένου 64 bit, κατά το οποίο τα bit αναδιατάσσονται με συγκεκριμένο τρόπο.

Στο επόμενο (κύριο) στάδιο, το μπλοκ χωρίζεται σε δύο μέρη (κλαδιά) των 32 bit το καθένα. Ο δεξιός κλάδος μετασχηματίζεται χρησιμοποιώντας κάποια συνάρτηση F και την αντίστοιχη μερικό κλειδί, που λαμβάνεται από το κύριο κλειδί κρυπτογράφησης χρησιμοποιώντας έναν ειδικό αλγόριθμο μετατροπής κλειδιού. Στη συνέχεια ανταλλάσσονται δεδομένα μεταξύ του αριστερού και του δεξιού κλάδου του μπλοκ. Αυτό επαναλαμβάνεται σε έναν κύκλο 16 φορές.

Τέλος, το τρίτο στάδιο αναδιατάσσει το αποτέλεσμα που προκύπτει μετά από δεκαέξι βήματα του κύριου βρόχου. Αυτή η μετάθεση είναι το αντίστροφο της αρχικής μετάθεσης.


Ρύζι. 4.1.

Ας ρίξουμε μια πιο προσεκτική ματιά σε όλα τα στάδια της κρυπτογραφικής μετατροπής σύμφωνα με το πρότυπο DES.

Στο πρώτο στάδιο, το μπλοκ δεδομένων πηγής 64-bit υφίσταται μια αρχική μετάθεση. Στη βιβλιογραφία, αυτή η λειτουργία μερικές φορές ονομάζεται "λεύκανση". Κατά την αρχική μετάθεση, τα bit του μπλοκ δεδομένων αναδιατάσσονται με συγκεκριμένο τρόπο. Αυτή η λειτουργία προσθέτει κάποιο «χάος» στο αρχικό μήνυμα, μειώνοντας τη δυνατότητα χρήσης κρυπτανάλυσης χρησιμοποιώντας στατιστικές μεθόδους.

Ταυτόχρονα με την αρχική μετάθεση του μπλοκ δεδομένων, εκτελείται μια αρχική μετάθεση των 56 bit του κλειδιού. Από το Σχ. 4.1. Μπορεί να φανεί ότι σε κάθε έναν από τους γύρους χρησιμοποιείται το αντίστοιχο μερικό κλειδί 48-bit K i. Τα πλήκτρα K i λαμβάνονται χρησιμοποιώντας έναν συγκεκριμένο αλγόριθμο, χρησιμοποιώντας κάθε bit του αρχικού κλειδιού πολλές φορές. Σε κάθε γύρο, το κλειδί των 56 bit χωρίζεται σε δύο μισά 28 bit. Τα μισά στη συνέχεια μετατοπίζονται αριστερά ένα ή δύο bit ανάλογα με τον αριθμό του κύκλου. Μετά τη μετατόπιση, τα 48 από τα 56 bit επιλέγονται με συγκεκριμένο τρόπο. Δεδομένου ότι αυτό όχι μόνο επιλέγει ένα υποσύνολο bit, αλλά αλλάζει και τη σειρά τους, αυτή η λειτουργία ονομάζεται "συμπίεση μετάθεσης". Το αποτέλεσμα είναι ένα σύνολο 48 bit. Κατά μέσο όρο, κάθε bit του αρχικού κλειδιού 56 bit χρησιμοποιείται σε 14 από τα 16 δευτερεύοντα κλειδιά, αν και δεν χρησιμοποιούνται όλα τα bit τον ίδιο αριθμό φορές.

Στη συνέχεια, εκτελείται ο κύριος κύκλος μετασχηματισμού, οργανωμένος χρησιμοποιώντας το δίκτυο Feishtel και αποτελείται από 16 πανομοιότυπους γύρους. Σε αυτή την περίπτωση, σε κάθε γύρο (Εικ. 4.2) προκύπτει μια ενδιάμεση τιμή 64-bit, η οποία στη συνέχεια υποβάλλεται σε επεξεργασία στον επόμενο γύρο.


Ρύζι. 4.2.

Ο αριστερός και ο δεξιός κλάδος κάθε ενδιάμεσης τιμής αντιμετωπίζονται ως ξεχωριστές τιμές 32-bit, που συμβολίζονται με L και R .

Πρώτον, η δεξιά πλευρά του μπλοκ R i επεκτείνεται στα 48 bit χρησιμοποιώντας έναν πίνακα που καθορίζει τη μετάθεση συν την επέκταση κατά 16 bit. Αυτή η λειτουργία ταιριάζει με το μέγεθος του δεξιού μισού με το μέγεθος του κλειδιού για την εκτέλεση μιας λειτουργίας XOR. Επιπλέον, με την εκτέλεση αυτής της λειτουργίας, η εξάρτηση όλων των bits του αποτελέσματος από τα bit των δεδομένων πηγής και του κλειδιού αυξάνεται γρηγορότερα (αυτό ονομάζεται "φαινόμενο χιονοστιβάδας"). Όσο ισχυρότερο είναι το φαινόμενο χιονοστιβάδας κατά τη χρήση ενός ή άλλου αλγόριθμου κρυπτογράφησης, τόσο το καλύτερο.

Μετά την εκτέλεση της μετάθεσης επέκτασης, η τιμή των 48 bit που προκύπτει XOR με το δευτερεύον κλειδί 48 bit K i . Στη συνέχεια, η προκύπτουσα τιμή 48-bit τροφοδοτείται στην είσοδο του μπλοκ αντικατάστασης S (από τα αγγλικά. Υποκατάσταση - αντικατάσταση), αποτέλεσμαπου είναι μια τιμή 32-bit. Η αντικατάσταση εκτελείται σε οκτώ μπλοκ αντικατάστασης ή οκτώ κουτιά S. Όταν εκτελείται, το DES φαίνεται αρκετά περίπλοκο στα χαρτιά, πόσο μάλλον η εφαρμογή λογισμικού του! Αναπτύξτε ένα πρόγραμμα που λειτουργεί σωστά και βέλτιστα, πλήρως σύμφωνα με DES, πιθανώς, μόνο έμπειροι προγραμματιστές μπορούν να το κάνουν. Ορισμένες δυσκολίες προκύπτουν κατά την εφαρμογή λογισμικού, για παράδειγμα, αρχική μετάθεση ή μετάθεση με επέκταση. Αυτές οι δυσκολίες σχετίζονται με αυτό που αρχικά είχε προγραμματιστεί να εφαρμοστεί DESμόνο υλικό. Όλες οι λειτουργίες που χρησιμοποιούνται στο πρότυπο εκτελούνται εύκολα από μονάδες υλικού και δεν προκύπτουν δυσκολίες υλοποίησης. Ωστόσο, λίγο καιρό μετά τη δημοσίευση του προτύπου, οι προγραμματιστές λογισμικού αποφάσισαν να μην παραμείνουν και να αναλάβουν επίσης τη δημιουργία συστημάτων κρυπτογράφησης. Περαιτέρω DESυλοποιήθηκε τόσο σε υλικό όσο και σε λογισμικό.

  • Φροντιστήριο

Γεια σας %username%!
Πολλοί άνθρωποι γνωρίζουν ότι ο αλγόριθμος DES θεωρείται από καιρό το προεπιλεγμένο πρότυπο στον τομέα της συμμετρικής κρυπτογράφησης. Η πρώτη επιτυχημένη επίθεση σε αυτόν τον ακαταμάχητο αλγόριθμο δημοσιεύτηκε το 1993, 16 χρόνια μετά την υιοθέτησή του ως πρότυπο. Η μέθοδος, την οποία ο συγγραφέας ονόμασε γραμμική κρυπτανάλυση, παρουσία 2 47 ζευγών απλού/κρυπτογραφικού κειμένου, επιτρέπει σε κάποιον να ανοίξει το μυστικό κλειδί του κρυπτογράφησης DES σε 2 43 πράξεις.
Κάτω από την περικοπή θα προσπαθήσω να περιγράψω συνοπτικά τα κύρια σημεία αυτής της επίθεσης.

Γραμμική κρυπτανάλυση

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

Γενικά, μια επίθεση που βασίζεται σε γραμμική κρυπτανάλυση συνοψίζεται στις ακόλουθες συνθήκες. Ο εισβολέας έχει μεγάλο αριθμό ζευγών απλού κειμένου/κρυπτογραφημένου κειμένου που λαμβάνονται χρησιμοποιώντας το ίδιο κλειδί κρυπτογράφησης Κ. Ο στόχος του εισβολέα είναι να ανακτήσει μέρος ή ολόκληρο το κλειδί Κ.

Πρώτα απ 'όλα, ο εισβολέας εξετάζει τον κρυπτογράφηση και βρίσκει το λεγόμενο στατιστικό ανάλογο, δηλ. μια εξίσωση της ακόλουθης μορφής, η οποία ισχύει με πιθανότητα P ≠ 1/2 για ένα αυθαίρετο ζεύγος κειμένου δημόσιου/ιδιωτικού και ένα σταθερό κλειδί:
P I1 ⊕ P I2 ⊕… ⊕ P Ia ⊕ C I1 ⊕ C I2 ⊕… ⊕ C Ib = K I1 ⊕ K I2 ⊕… ⊕ K Ic (1) ,
όπου P n, C n, K n είναι τα ν-οτά bit του κειμένου, το κρυπτογραφημένο κείμενο και το κλειδί.
Μόλις βρεθεί μια τέτοια εξίσωση, ο εισβολέας μπορεί να ανακτήσει 1 bit βασικών πληροφοριών χρησιμοποιώντας τον ακόλουθο αλγόριθμο

Αλγόριθμος 1
Έστω T ο αριθμός των κειμένων για τα οποία η αριστερή πλευρά της εξίσωσης (1) είναι ίση με 0, τότε
Αν T>N/2, όπου N είναι ο αριθμός των γνωστών απλών κειμένων.
Ας υποθέσουμε ότι K I1 ⊕ K I2 ⊕… ⊕ K Ic = 0 (όταν P>1/2) ή 1 (όταν P<1/2).
Σε διαφορετική περίπτωση
Ας υποθέσουμε ότι K I1 ⊕ K I2 ⊕… ⊕ K Ic = 1 (όταν P>1/2) ή 0 (όταν P<1/2).
Είναι προφανές ότι η επιτυχία του αλγορίθμου εξαρτάται άμεσα από την τιμή του |P-1/2| και στον αριθμό των διαθέσιμων ζευγών ανοιχτού/κλειστού κειμένου N. Όσο περισσότερο η πιθανότητα P της ισότητας (1) διαφέρει από το 1/2, τόσο λιγότερος αριθμός ανοιχτών κειμένων N χρειάζεται για την επίθεση.

Υπάρχουν δύο προβλήματα που πρέπει να λυθούν για να είναι επιτυχής η επίθεση:

  • Πώς να βρείτε μια αποτελεσματική εξίσωση της μορφής (1).
  • Πώς να χρησιμοποιήσετε αυτήν την εξίσωση για να λάβετε περισσότερα από ένα bit πληροφοριών σχετικά με το κλειδί.
Ας εξετάσουμε τη λύση σε αυτά τα ζητήματα χρησιμοποιώντας τον κρυπτογράφηση DES ως παράδειγμα.

Περιγραφή του DES

Αλλά πρώτα, ας περιγράψουμε εν συντομία πώς λειτουργεί ο αλγόριθμος. Έχουν ήδη ειπωθεί αρκετά για το DES. Μια πλήρης περιγραφή του κρυπτογράφησης βρίσκεται στη Wikipedia. Ωστόσο, για να εξηγήσουμε περαιτέρω την επίθεση θα χρειαστούμε έναν αριθμό ορισμών που είναι καλύτερα να εισαχθούν εκ των προτέρων.

Έτσι, το DES είναι ένας κρυπτογράφησης μπλοκ που βασίζεται στο δίκτυο Feistel. Ο κρυπτογράφηση έχει μέγεθος μπλοκ 64 bit και μέγεθος κλειδιού 56 bit. Ας εξετάσουμε το σχήμα κρυπτογράφησης του αλγορίθμου DES.

Όπως φαίνεται από το σχήμα, κατά την κρυπτογράφηση κειμένου, εκτελούνται οι ακόλουθες λειτουργίες:

  1. Αρχική μετάθεση bit. Σε αυτό το στάδιο, τα bit του μπλοκ εισόδου ανακατεύονται με μια συγκεκριμένη σειρά.
  2. Μετά από αυτό, τα μικτά bit χωρίζονται σε δύο μισά, τα οποία τροφοδοτούνται στην είσοδο της συνάρτησης Feistel. Για το τυπικό DES, το δίκτυο Feistel περιλαμβάνει 16 γύρους, αλλά υπάρχουν και άλλες παραλλαγές του αλγορίθμου.
  3. Τα δύο μπλοκ που ελήφθησαν στον τελευταίο γύρο μετασχηματισμού συνδυάζονται και μια άλλη μετάθεση εκτελείται στο μπλοκ που προκύπτει.

Σε κάθε γύρο του δικτύου Feistel, τα λιγότερο σημαντικά 32 bit του μηνύματος περνούν μέσω της συνάρτησης f:

Ας δούμε τις λειτουργίες που έγιναν σε αυτό το στάδιο:

  1. Το μπλοκ εισόδου διέρχεται από τη συνάρτηση επέκτασης Ε, η οποία μετατρέπει ένα μπλοκ 32 bit σε μπλοκ 48 bit.
  2. Το μπλοκ που προκύπτει προστίθεται στο στρογγυλό κλειδί K i .
  3. Το αποτέλεσμα του προηγούμενου βήματος χωρίζεται σε 8 μπλοκ των 6 bit το καθένα.
  4. Κάθε ένα από τα ληφθέντα μπλοκ B i διέρχεται από τη συνάρτηση αντικατάστασης S-Box i, η οποία αντικαθιστά την ακολουθία των 6 bit με ένα μπλοκ 4 bit.
  5. Το προκύπτον μπλοκ 32 bit διέρχεται μέσω της μετάθεσης P και επιστρέφεται ως αποτέλεσμα της συνάρτησης f.

Το μεγαλύτερο ενδιαφέρον για εμάς από την άποψη της κρυπτανάλυσης κρυπτογράφησης είναι τα μπλοκ S, σχεδιασμένα να κρύβουν τη σύνδεση μεταξύ των δεδομένων εισόδου και εξόδου της συνάρτησης f. Για να επιτεθούμε με επιτυχία στο DES, θα κατασκευάσουμε πρώτα στατιστικά ανάλογα για καθένα από τα S-box και στη συνέχεια θα τα επεκτείνουμε σε ολόκληρο τον κρυπτογράφηση.

Ανάλυση μπλοκ S

Κάθε S-box παίρνει μια ακολουθία 6-bit ως είσοδο και για κάθε τέτοια ακολουθία επιστρέφεται μια σταθερή τιμή 4-bit. Εκείνοι. υπάρχουν συνολικά 64 επιλογές εισόδου και εξόδου. Το καθήκον μας είναι να δείξουμε τη σχέση μεταξύ των δεδομένων εισόδου και εξόδου των μπλοκ S. Για παράδειγμα, για το τρίτο πλαίσιο S του κρυπτογράφησης DES, το 3ο bit της ακολουθίας εισόδου είναι ίσο με το 3ο bit της ακολουθίας εξόδου σε 38 από τις 64 περιπτώσεις, επομένως, βρήκαμε το ακόλουθο στατιστικό ανάλογο για το τρίτο S -κουτί:
S 3 (x) = x, το οποίο εκπληρώνεται με πιθανότητα P=38/64.
Και οι δύο πλευρές της εξίσωσης αντιπροσωπεύουν 1 bit πληροφορίας. Επομένως, εάν η αριστερή και η δεξιά πλευρά ήταν ανεξάρτητες μεταξύ τους, η εξίσωση θα έπρεπε να ικανοποιηθεί με πιθανότητα 1/2. Έτσι, μόλις δείξαμε τη σχέση μεταξύ της εισόδου και της εξόδου του 3ου S-box του αλγορίθμου DES.

Ας εξετάσουμε πώς μπορούμε να βρούμε ένα στατιστικό ανάλογο του S-box στη γενική περίπτωση.

Για ένα S-box S a , 1 ≤ α ≤ 63 και 1 ≤ β ≤ 15, η τιμή NS a (α, β) περιγράφει πόσες φορές από τα 64 πιθανά μπιτ εισόδου XOR S a που υπερτίθενται στα α bit είναι ίση με τα bit εξόδου XOR που υπερτίθενται στα bit α β, δηλαδή:
όπου το σύμβολο είναι λογικό ΚΑΙ.
Οι τιμές των α και β για τις οποίες το NS a (α, β) διαφέρει περισσότερο από το 32 περιγράφουν το πιο αποτελεσματικό στατιστικό ανάλογο του S-box S a .

Το πιο αποτελεσματικό ανάλογο βρέθηκε στο 5ο S-box του κρυπτογράφησης DES για α = 16 και β = 15 NS 5 (16, 15) = 12. Αυτό σημαίνει ότι ισχύει η ακόλουθη εξίσωση: Z=Y ⊕ Y ⊕ Y ⊕ Y, όπου Z είναι η ακολουθία εισόδου του S-box και Y είναι η ακολουθία εξόδου.
Ή λαμβάνοντας υπόψη το γεγονός ότι στον αλγόριθμο DES, πριν την είσοδο στο S-box, τα δεδομένα προστίθενται modulo 2 με ένα στρογγυλό κλειδί, π.χ. Z = X ⊕ K παίρνουμε
X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, όπου X και Y είναι τα δεδομένα εισόδου και εξόδου της συνάρτησης f χωρίς να λαμβάνονται υπόψη οι μεταθέσεις.
Η εξίσωση που προκύπτει εκτελείται σε όλους τους γύρους του αλγορίθμου DES με την ίδια πιθανότητα P=12/64.
Ο παρακάτω πίνακας δείχνει μια λίστα αποτελεσματικών, δηλ. έχοντας τη μεγαλύτερη απόκλιση από το P=1/2, στατιστικά ανάλογα για κάθε s-block του αλγορίθμου DES.

Κατασκευή στατιστικών αναλόγων για πολλαπλούς γύρους DES

Ας δείξουμε τώρα πώς μπορούμε να συνδυάσουμε τα στατιστικά ανάλογα αρκετών γύρων του DES και τελικά να λάβουμε ένα στατιστικό ανάλογο για ολόκληρη την κρυπτογράφηση.
Για να το κάνετε αυτό, εξετάστε μια έκδοση τριών γύρων του αλγορίθμου:

Ας χρησιμοποιήσουμε ένα αποτελεσματικό στατιστικό ανάλογο του 5ου s-box για να υπολογίσουμε ορισμένα bits της τιμής X(2).
Γνωρίζουμε ότι με πιθανότητα 12/64 η ισότητα ισχύει στη συνάρτηση f X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K,όπου το X είναι το δεύτερο bit εισόδου του 5ου S-box, είναι ουσιαστικά το 26ο bit της ακολουθίας που λαμβάνεται μετά την επέκταση των bit εισόδου. Αναλύοντας τη συνάρτηση επέκτασης, μπορούμε να διαπιστώσουμε ότι το 26ο bit αντικαθίσταται από το 17ο bit της ακολουθίας X(1).
Ομοίως, τα Y,..., Y είναι ουσιαστικά το 17ο, 18ο, 19ο και 20ο bit της ακολουθίας που ελήφθη πριν από τη μετάθεση P. Εξετάζοντας τη μετάθεση P, διαπιστώνουμε ότι τα bit Y,..., Y είναι στην πραγματικότητα bit Y (1), Υ(1), Υ(1), Υ(1).
Το bit κλειδιού K που εμπλέκεται στις εξισώσεις είναι το 26ο bit του πρώτου κύκλου δευτερεύοντος κλειδιού K1 και στη συνέχεια το στατιστικό ανάλογο παίρνει την ακόλουθη μορφή:
X(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y1 ⊕ Y(1) = K1.
Ως εκ τούτου, X(1) ⊕ K1 = Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1)(2) με πιθανότητα P=12/64.
Γνωρίζοντας 3, 8, 14, 25 bit της ακολουθίας Y(1), μπορείτε να βρείτε 3, 8, 14, 25 bit της ακολουθίας X(2):
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1)ή λαμβάνοντας υπόψη την εξίσωση (2)
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 (3) με πιθανότητα 12/64.

Ας βρούμε μια παρόμοια έκφραση χρησιμοποιώντας τον τελευταίο γύρο. Αυτή τη φορά έχουμε την εξίσωση
X(3) ⊕ K3 = Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3).
Επειδή
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3)
το καταλαβαίνουμε
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3(4) με πιθανότητα 12/64.

Εξισώνοντας τις δεξιές πλευρές των εξισώσεων (3) και (4) παίρνουμε
CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3 = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1με πιθανότητα (12/64) 2 +(1-12/64) 2 .
Λαμβάνοντας υπόψη το γεγονός ότι X(1) = PR και X(3) = CR λαμβάνουμε ένα στατιστικό ανάλογο
СL ⊕ CR ⊕ PL ⊕ PR = K1 ⊕ K3 (5) ,
που εκτελείται με πιθανότητα (12/64) 2 + (1-12/64) 2 =0,7.
Το στατιστικό ανάλογο που περιγράφεται παραπάνω μπορεί να αναπαρασταθεί γραφικά ως εξής (τα bit στο σχήμα αριθμούνται από δεξιά προς τα αριστερά και ξεκινούν από το μηδέν):

Όλα τα bit στην αριστερή πλευρά της εξίσωσης είναι γνωστά στον εισβολέα, επομένως μπορεί να εφαρμόσει τον Αλγόριθμο 1 και να ανακαλύψει την τιμή του K1 ⊕ K3. Ας δείξουμε πώς, χρησιμοποιώντας αυτό το στατιστικό ανάλογο, μπορείτε να ανοίξετε όχι 1, αλλά 12 bit του κλειδιού κρυπτογράφησης K.

Γνωστή επίθεση απλού κειμένου στο DES

Ας παρουσιάσουμε μια μέθοδο με την οποία μπορείτε να επεκτείνετε την επίθεση και να αποκτήσετε αμέσως 6 bit του πρώτου γύρου σύνδεσης.
Κατά τη σύνθεση της εξίσωσης (5), λάβαμε υπόψη το γεγονός ότι δεν γνωρίζουμε την τιμή του F1(PR, K1). Ως εκ τούτου, χρησιμοποιήσαμε το στατιστικό του ανάλογο K1 ⊕ PR.
Ας επιστρέψουμε την τιμή F1(PR, K1) αντί της έκφρασης K1 ⊕ PR και λάβουμε την ακόλουθη εξίσωση:
СL ⊕ CR ⊕ PL ⊕ F1(PR, K1) = K3 (6) , που θα εκτελεστεί με πιθανότητα 12/64. Η πιθανότητα άλλαξε αφού αφήσαμε μόνο το στατιστικό ανάλογο από τον τρίτο γύρο, όλες οι άλλες τιμές είναι σταθερές.

Έχουμε ήδη καθορίσει παραπάνω ότι η τιμή του F1(PR, K1) επηρεάζεται από τα bit εισόδου του 5ου S-box, δηλαδή τα μπιτ κλειδιών K1 και τα bit του μπλοκ PR. Ας δείξουμε πώς, έχοντας μόνο ένα σύνολο ανοιχτών/κλειστών κειμένων, μπορείτε να επαναφέρετε την τιμή του K1. Για να γίνει αυτό, θα χρησιμοποιήσουμε τον Αλγόριθμο 2.

Αλγόριθμος 2
Έστω N ο αριθμός των ανοιχτών/κλειστών ζευγών κειμένου που ήταν γνωστά πριν από την επίθεση. Στη συνέχεια, για να ανοίξετε το κλειδί, πρέπει να ακολουθήσετε τα παρακάτω βήματα.
Για (i=0; i<64; i++) do
{
Για(j=0; j {
αν(СL j ⊕ CR j ⊕ PL j ⊕ F1(PR j , i)=0) τότε
T i =T i +1
}
}
Ως πιθανή ακολουθία K1, λαμβάνεται μια τιμή i έτσι ώστε η έκφραση |T i -N/2| έχει τη μέγιστη τιμή.

Δεδομένου επαρκούς αριθμού γνωστών απλών κειμένων, ο αλγόριθμος θα έχει μεγάλη πιθανότητα να επιστρέψει τη σωστή τιμή των έξι bit του πρώτου κύκλου δευτερεύοντος κλειδιού K1. Αυτό εξηγείται από το γεγονός ότι εάν η μεταβλητή i δεν είναι ίση με K1, τότε η τιμή της συνάρτησης F1(PR j, K) θα είναι τυχαία και ο αριθμός των εξισώσεων για μια τέτοια τιμή του i για την οποία η αριστερή πλευρά είναι ίσο με μηδέν θα τείνει σε Ν/2. Εάν το δευτερεύον κλειδί μαντευτεί σωστά, η αριστερή πλευρά θα είναι ίση με το σταθερό bit K3 με πιθανότητα 12/64. Εκείνοι. θα υπάρχει σημαντική απόκλιση από το Ν/2.

Έχοντας λάβει 6 bit του δευτερεύοντος κλειδιού K1, μπορείτε ομοίως να ανοίξετε 6 bit του δευτερεύοντος κλειδιού K3. Το μόνο που χρειάζεται να κάνετε είναι να αντικαταστήσετε το C με το P και το K1 με το K3 στην εξίσωση (6):
PL ⊕ PR ⊕ CL ⊕ F3(CR, K3) = K1.
Ο αλγόριθμος 2 θα επιστρέψει τη σωστή τιμή K3 επειδή η διαδικασία αποκρυπτογράφησης του αλγόριθμου DES είναι πανομοιότυπη με τη διαδικασία κρυπτογράφησης, απλώς η ακολουθία κλειδιών αντιστρέφεται. Έτσι στον πρώτο γύρο αποκρυπτογράφησης χρησιμοποιείται το κλειδί K3 και στον τελευταίο γύρο χρησιμοποιείται το κλειδί K1.

Έχοντας λάβει 6 bit δευτερευόντων κλειδιών K1 και K3, ο εισβολέας ανακτά 12 bit του κοινού κλειδιού του κρυπτογράφησης K, επειδή Τα στρογγυλά πλήκτρα είναι η συνήθης μετάθεση του κλειδιού K. Ο αριθμός των απλών κειμένων που απαιτούνται για μια επιτυχημένη επίθεση εξαρτάται από την πιθανότητα του στατιστικού αναλόγου. Για να σπάσετε ένα κλειδί DES 3-στρογγυλών 12 bit, αρκούν 100 δημόσια/ιδιωτικά ζεύγη κειμένου. Για να ανοίξετε 12 bit ενός κλειδιού DES 16 στρογγυλών, θα απαιτηθούν περίπου 2 44 ζεύγη κειμένων. Τα υπόλοιπα 44 bit του κλειδιού ανοίγουν χρησιμοποιώντας κανονική ωμή δύναμη.

DES(Πρότυπο κρυπτογράφησης δεδομένων) - Ένας συμμετρικός αλγόριθμος κρυπτογράφησης στον οποίο χρησιμοποιείται ένα κλειδί τόσο για την κρυπτογράφηση όσο και για την αποκρυπτογράφηση δεδομένων. Το DES αναπτύχθηκε από την IBM και εγκρίθηκε από την κυβέρνηση των ΗΠΑ το 1977 ως επίσημο πρότυπο (FTPS 46-3). Το DES έχει μπλοκ 64 bit και δομή δικτύου Feistel 16 κύκλων και χρησιμοποιεί ένα κλειδί 56 bit για κρυπτογράφηση. Ο αλγόριθμος χρησιμοποιεί έναν συνδυασμό μη γραμμικών (S-boxes) και γραμμικών (μεταθέσεις E, IP, IP-1) μετασχηματισμών. Για το DES προτείνονται διάφορες λειτουργίες:
  • λειτουργία ηλεκτρονικού βιβλίου κωδικών (ΕΚΤ - Ηλεκτρονικό βιβλίο κωδικών),
  • λειτουργία αλυσίδας μπλοκ (CBC - Αλυσίδα μπλοκ κρυπτογράφησης),
  • λειτουργία ανάδρασης κρυπτογράφησης (CFB - Επιστροφή κρυπτογράφησης),
  • λειτουργία ανάδρασης εξόδου (OFB - Output Feed Back).

    Αποκλεισμός κρυπτογράφησης

    Τα δεδομένα εισόδου για έναν κρυπτογράφηση μπλοκ είναι ένα μπλοκ n bit και ένα κλειδί k-bit. Η έξοδος, μετά την εφαρμογή του μετασχηματισμού κρυπτογράφησης, είναι ένα κρυπτογραφημένο μπλοκ n-bit και μικρές διαφορές στα δεδομένα εισόδου συνήθως οδηγούν σε σημαντική αλλαγή στο αποτέλεσμα. Οι κρυπτογράφηση μπλοκ υλοποιούνται με την επανειλημμένη εφαρμογή ορισμένων βασικών μετασχηματισμών σε μπλοκ κειμένου προέλευσης.
    Βασικές μετατροπές:
  • Πολύπλοκος μετασχηματισμός σε ένα τοπικό τμήμα του μπλοκ.
  • Εύκολη μετατροπή μεταξύ τμημάτων μπλοκ. Εφόσον η μετατροπή πραγματοποιείται μπλοκ προς μπλοκ, ένα ξεχωριστό βήμα απαιτεί τη διαίρεση των δεδομένων προέλευσης σε μπλοκ του απαιτούμενου μεγέθους. Επιπλέον, ανεξάρτητα από τη μορφή των δεδομένων προέλευσης, είτε πρόκειται για έγγραφα κειμένου, εικόνες ή άλλα αρχεία, πρέπει να ερμηνεύονται σε δυαδική μορφή και μόνο τότε να χωρίζονται σε μπλοκ. Όλα τα παραπάνω μπορούν να γίνουν με λογισμικό ή υλικό.

    Μεταμορφώσεις από το Feistel Network

    Αυτός είναι ένας μετασχηματισμός σε διανύσματα (μπλοκ) που αντιπροσωπεύουν το αριστερό και το δεξί μισό του καταχωρητή μετατόπισης. Ο αλγόριθμος DES χρησιμοποιεί έναν μετασχηματισμό δικτύου Feistel προς τα εμπρός στην κρυπτογράφηση (βλ. Εικ. 1) και έναν αντίστροφο μετασχηματισμό δικτύου Feistel στην αποκρυπτογράφηση (βλ. Εικ. 2).

    Σχέδιο κρυπτογράφησης αλγόριθμου DES


    Το κείμενο προέλευσης είναι ένα μπλοκ 64-bit.
    Το κείμενο κρυπτογράφησης είναι ένα μπλοκ 64-bit.

    Η διαδικασία κρυπτογράφησης αποτελείται από μια αρχική μετάθεση, 16 κύκλους κρυπτογράφησης και μια τελική μετάθεση.
    Ας δούμε το αναλυτικό διάγραμμα του αλγορίθμου DES:
    L i R i =1,2\ldots.αριστερό και δεξί μισό του μπλοκ 64-bit L i R i
    k i - πλήκτρα 48 bit
    f - λειτουργία κρυπτογράφησης
    IP - αρχική μετάθεση
    IP -1 - τελική μετάθεση. Σύμφωνα με τον πίνακα, τα πρώτα 3 bit του μπλοκ IP(T) που προκύπτει μετά την αρχική μετάθεση του IP είναι τα bit 58, 50, 42 του μπλοκ εισόδου T και τα τελευταία 3 bit του είναι τα bit 23, 15, 7 του μπλοκ εισόδου. Στη συνέχεια, το μπλοκ IP(T) των 64 bit συμμετέχει σε 16 κύκλους του μετασχηματισμού Feistel.

    16 κύκλοι μετασχηματισμού Feistel:

    Διαχωρίστε το IP(T) σε δύο μέρη L 0 , R 0 , όπου τα L 0 , R 0 είναι τα 32 πιο σημαντικά bit και τα 32 λιγότερο σημαντικά bit του μπλοκ T0 IP(T) = L 0 R 0, αντίστοιχα.

    Έστω T i -1 = L i -1 R i -1 το αποτέλεσμα της επανάληψης (i-1), τότε προσδιορίζεται το αποτέλεσμα της i-ης επανάληψης T i = L i R i:

    L i = R i - 1Το αριστερό μισό του L i είναι ίσο με το δεξί μισό του προηγούμενου διανύσματος L i - 1 R i - 1 . Και το δεξί μισό του R i είναι η προσθήκη bit του L i - 1 και του f(R i - 1, k i) modulo 2.

    Στον μετασχηματισμό Feistel 16 κύκλων, η συνάρτηση f παίζει το ρόλο της κρυπτογράφησης. Ας δούμε αναλυτικά τη συνάρτηση f.

    Τα ορίσματα για τη συνάρτηση f είναι το διάνυσμα 32 bit R i - 1 , το κλειδί 48 bit k i , τα οποία είναι το αποτέλεσμα της μετατροπής του αρχικού κλειδιού κρυπτογράφησης 56 bit k.

    Για τον υπολογισμό της συνάρτησης f, χρησιμοποιείται η συνάρτηση επέκτασης E, ο μετασχηματισμός S, που αποτελείται από 8 μετασχηματισμούς S-box και η μετάθεση P.

    Η συνάρτηση Ε επεκτείνει το διάνυσμα 32 bit R i - 1 στο διάνυσμα 48 bit E(R i - 1) αντιγράφοντας μερικά bit από το R i - 1, ενώ η σειρά των bit του διανύσματος E(R i - 1 ) υποδεικνύεται στον Πίνακα 2. Τα πρώτα τρία δυαδικά ψηφία του διανύσματος Ε(Ri-1) είναι τα μπιτ 32, 1, 2 του διανύσματος Ri-1. Ο Πίνακας 2 δείχνει ότι τα bit 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29, 32 είναι διπλά. Τα τελευταία 3 bit του διανύσματος E(Ri - 1) είναι τα bit 31, 32, 1 του διανύσματος Ri - 1. Το μπλοκ E(R i-1) που λαμβάνεται μετά την αναδιάταξη προστίθεται modulo 2 με τα πλήκτρα k i και στη συνέχεια παρουσιάζεται με τη μορφή οκτώ διαδοχικών μπλοκ B 1 , B 2 ,...B 8 .
    E(R i - 1) = B 1 B 2 ...B 8
    Κάθε B j είναι ένα μπλοκ 6-bit. Στη συνέχεια, καθένα από τα μπλοκ B j μετατρέπεται σε μπλοκ 4 bit B" j χρησιμοποιώντας μετασχηματισμούς S j. Οι μετασχηματισμοί S j καθορίζονται από τον Πίνακα 3. Ας υποθέσουμε ότι B 3 = 101111 και θέλουμε να βρούμε το B" 3. Το πρώτο και το τελευταίο bit του B 3 είναι η δυαδική αναπαράσταση του αριθμού a, 0. Η τιμή της συνάρτησης f(R i - 1,k i) (32 bit) προκύπτει από τη μετάθεση P που εφαρμόζεται στο μπλοκ 32 bit B " 1 B" 2 ...B" 8. Η μετάθεση P δίνεται από τον Πίνακα 4.
    f(R i - 1 ,k i) = P(B" 1 B" 2 ...B" 8)
    Σύμφωνα με τον Πίνακα 4, τα πρώτα τέσσερα bit του διανύσματος που προκύπτει μετά την δράση της συνάρτησης f είναι bit 16, 7, 20, 21 του διανύσματος B" 1 B" 2 ...B" 8

    Δημιουργία κλειδιών k i .
    Τα πλήκτρα k i λαμβάνονται από το αρχικό κλειδί k (56 bit = 7 byte ή 7 χαρακτήρες ASCII) με αυτόν τον τρόπο. Οκτώ bit, που βρίσκονται στις θέσεις 8, 16, 24, 32, 40, 48, 56, 64, προστίθενται στο κλειδί k έτσι ώστε κάθε byte να περιέχει έναν περιττό αριθμό μονάδων. Χρησιμοποιείται για τον εντοπισμό σφαλμάτων στην ανταλλαγή και αποθήκευση κλειδιών. Στη συνέχεια γίνεται μια μετάθεση για το εκτεταμένο κλειδί (εκτός από τα προστιθέμενα bit 8, 16, 24, 32, 40, 48, 56, 64). Αυτή η μετάθεση ορίζεται όπως στον Πίνακα 5.

    Αυτή η μετάθεση ορίζεται από δύο μπλοκ C 0 και D 0 των 28 bit το καθένα. Τα πρώτα 3 bit του C0 είναι τα bit 57, 49, 41 του εκτεταμένου κλειδιού. Και τα τρία πρώτα bit του D 0 είναι τα bit 63, 55, 47 του εκτεταμένου κλειδιού. Τα C i , D i i=1,2,3… λαμβάνονται από τα C i - 1 , D i - 1 με μία ή δύο αριστερές κυκλικές μετατοπίσεις σύμφωνα με τον Πίνακα 6.

    Το κλειδί k i , i=1,…16 αποτελείται από 48 bit που επιλέγονται από τα bit του διανύσματος C i D i (56 bit) σύμφωνα με τον Πίνακα 7. Το πρώτο και το δεύτερο bit k i είναι bit 14, 17 του διανύσματος C i D i

    Η τελική μετάθεση IP - 1 δρα στο T 16 και χρησιμοποιείται για την αποκατάσταση της θέσης. Είναι το αντίστροφο της μετάθεσης IP. Η τελική μετάθεση καθορίζεται από τον Πίνακα 8.
    Λειτουργίες χρήσης DESΤο DES μπορεί να χρησιμοποιηθεί σε τέσσερις λειτουργίες.

  • Λειτουργία Ηλεκτρονικού Βιβλίου Κωδικών (ECB): η συνήθης χρήση του DES ως κρυπτογράφησης μπλοκ (βλ. Εικ. 7).
  • Λειτουργία αλυσίδας μπλοκ (CBC - Cipher Block Chaining) (βλ. Εικ. 8). Κάθε επόμενο μπλοκ C i i>=1, πριν από την κρυπτογράφηση, προστίθεται modulo 2 με το επόμενο μπλοκ απλού κειμένου M i + 1. Το διάνυσμα C 0 είναι το αρχικό διάνυσμα, αλλάζει καθημερινά και παραμένει μυστικό.
  • Λειτουργία Κρυπτογράφησης (CFB - Cipher Feed Back) (βλ. Εικ. 9). Στη λειτουργία CFB, δημιουργείται ένα μπλοκ "γάμα" Z 0 ,Z 1 ,...Z i = DESk(C i - 1). Το αρχικό διάνυσμα C 0 διατηρείται μυστικό.
  • Λειτουργία ανάδρασης εξόδου (OFB - Output Feed Back) (βλ. Εικ. 10). Στη λειτουργία OFB, δημιουργείται ένα μπλοκ "γάμα" Z 0 ,Z 1 ,... , i>=1
  • Η λειτουργία ΕΚΤ είναι εύκολη στην εφαρμογή, αλλά είναι δυνατή η κριτική ανάλυση
  • Στις λειτουργίες ECB και OFB, η παραμόρφωση κατά τη μετάδοση ενός μπλοκ κρυπτογραφημένου κειμένου 64 bit C i οδηγεί σε παραμόρφωση μετά την αποκρυπτογράφηση μόνο του αντίστοιχου ανοιχτού μπλοκ M i , επομένως τέτοιοι τρόποι χρησιμοποιούνται για μετάδοση μέσω καναλιών επικοινωνίας με μεγάλο αριθμό παραμορφώσεων.
  • Στις λειτουργίες CBC και CFB, η παραμόρφωση κατά τη μετάδοση ενός μπλοκ κρυπτογραφημένου κειμένου C i οδηγεί σε παραμόρφωση στον δέκτη όχι περισσότερων από δύο μπλοκ απλού κειμένου M i, M i + 1. Η αλλαγή του Mi οδηγεί στην αλλαγή όλων των άλλων μπλοκ M i + 1 , M i + 2 ... Αυτή η ιδιότητα χρησιμοποιείται για τη δημιουργία ενός κωδικού ελέγχου ταυτότητας μηνύματος.
  • Αλγόριθμος DES

    Τα κύρια πλεονεκτήματα του αλγορίθμου DES:

    · Χρησιμοποιείται μόνο ένα κλειδί με μήκος 56 bit.

    · Έχοντας κρυπτογραφήσει ένα μήνυμα χρησιμοποιώντας ένα πακέτο, μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο για να το αποκρυπτογραφήσετε.

    · Η σχετική απλότητα του αλγορίθμου εξασφαλίζει υψηλή ταχύτητα επεξεργασίας πληροφοριών.

    · επαρκώς υψηλή σταθερότητα του αλγορίθμου.

    Το DES κρυπτογραφεί μπλοκ δεδομένων 64-bit χρησιμοποιώντας ένα κλειδί 56-bit. Η αποκρυπτογράφηση στο DES είναι η αντίστροφη λειτουργία της κρυπτογράφησης και πραγματοποιείται με την επανάληψη των πράξεων κρυπτογράφησης με αντίστροφη σειρά (παρά το προφανές, αυτό δεν γίνεται πάντα. Αργότερα θα δούμε κρυπτογράφηση στους οποίους η κρυπτογράφηση και η αποκρυπτογράφηση εκτελούνται χρησιμοποιώντας διαφορετικούς αλγόριθμους) .

    Η διαδικασία κρυπτογράφησης αποτελείται από μια αρχική μετάθεση των bit ενός μπλοκ 64-bit, δεκαέξι κύκλους κρυπτογράφησης και, τέλος, μια αντίστροφη μετάθεση των bit (Εικ. 1).

    Θα πρέπει αμέσως να σημειωθεί ότι ΟΛΟΙ οι πίνακες που δίνονται σε αυτό το άρθρο είναι ΠΡΟΤΥΠΟΙ και επομένως θα πρέπει να συμπεριληφθούν στην εφαρμογή του αλγόριθμου χωρίς αλλαγές. Όλες οι μεταθέσεις και οι κωδικοί στους πίνακες επιλέγονται από τους προγραμματιστές με τέτοιο τρόπο ώστε η διαδικασία αποκρυπτογράφησης να γίνεται όσο το δυνατόν πιο δύσκολη επιλέγοντας ένα κλειδί. Η δομή του αλγορίθμου DES φαίνεται στο Σχ. 2.

    Εικ.2. Δομή του αλγορίθμου κρυπτογράφησης DES

    Αφήστε το επόμενο μπλοκ T 8 byte να διαβαστεί από το αρχείο, το οποίο μετασχηματίζεται χρησιμοποιώντας την αρχική μήτρα μετάθεσης IP (Πίνακας 1) ως εξής: το bit 58 του μπλοκ T γίνεται bit 1, το bit 50 γίνεται bit 2, κ.λπ. έχει ως αποτέλεσμα : T(0) = IP(T).

    Η προκύπτουσα ακολουθία δυαδικών ψηφίων T(0) χωρίζεται σε δύο ακολουθίες των 32 bit η καθεμία: L(0) - αριστερά ή bit υψηλής τάξης, R(0) - δεξιά ή bit χαμηλής τάξης.

    Πίνακας 1: Πίνακας αρχικής μετάθεσης IP

    58 50 42 34 26 18 10 02

    60 52 44 36 28 20 12 04

    62 54 46 38 30 22 14 06

    64 56 48 40 32 24 16 08

    57 49 41 33 25 17 09 01

    59 51 43 35 27 19 11 03

    61 53 45 37 29 21 13 05

    63 55 47 39 31 23 15 07

    Στη συνέχεια πραγματοποιείται κρυπτογράφηση, που αποτελείται από 16 επαναλήψεις. Το αποτέλεσμα της i-ης επανάληψης περιγράφεται από τους ακόλουθους τύπους:

    R(i) = L(i-1) xor f(R(i-1), K(i)) ,

    όπου xor είναι η λειτουργία ΑΠΟΚΛΕΙΣΤΙΚΟ Ή.

    Η συνάρτηση f ονομάζεται συνάρτηση κρυπτογράφησης. Τα ορίσματά του είναι η ακολουθία 32 bit R(i-1), που λήφθηκε κατά την επανάληψη (i-1) και το κλειδί 48 bit K(i), το οποίο είναι το αποτέλεσμα της μετατροπής του κλειδιού 64 bit K. Αναλυτικά, η συνάρτηση κρυπτογράφησης και ο αλγόριθμος για τη λήψη των κλειδιών K(i) περιγράφονται παρακάτω.

    Στη 16η επανάληψη, λαμβάνονται οι αλληλουχίες R(16) και L(16) (χωρίς μετάθεση), οι οποίες συνενώνονται σε μια ακολουθία 64-bit R(16)L(16).

    Στη συνέχεια, οι θέσεις των δυαδικών ψηφίων αυτής της ακολουθίας αναδιατάσσονται σύμφωνα με τον πίνακα IP -1 (Πίνακας 2).

    Πίνακας 2: Πίνακας αντίστροφης μετάθεσης IP -1

    40 08 48 16 56 24 64 32

    39 07 47 15 55 23 63 31

    38 06 46 14 54 22 62 30

    37 05 45 13 53 21 61 29

    36 04 44 12 52 20 60 28

    35 03 43 11 51 19 59 27

    34 02 42 10 50 18 58 26

    33 01 41 09 49 17 57 25

    Οι πίνακες IP -1 και IP σχετίζονται ως εξής: η τιμή του 1ου στοιχείου του πίνακα IP -1 είναι 40 και η τιμή του 40ου στοιχείου του πίνακα IP είναι 1, η τιμή του 2ου Το στοιχείο του πίνακα IP -1 είναι 8 και η τιμή του 8ου στοιχείου πίνακα IP είναι ίση με 2, κ.λπ.

    Η διαδικασία αποκρυπτογράφησης δεδομένων είναι αντίστροφη από τη διαδικασία κρυπτογράφησης. Όλα τα βήματα πρέπει να εκτελούνται με αντίστροφη σειρά. Αυτό σημαίνει ότι τα αποκρυπτογραφημένα δεδομένα αναδιατάσσονται πρώτα σύμφωνα με τη μήτρα IP-1 και στη συνέχεια εκτελούνται οι ίδιες ενέργειες στην ακολουθία των bits R(16)L(16) όπως στη διαδικασία κρυπτογράφησης, αλλά με αντίστροφη σειρά.

    Η επαναληπτική διαδικασία αποκρυπτογράφησης μπορεί να περιγραφεί με τους ακόλουθους τύπους:

    R(i-1) = L(i), i = 1, 2, ..., 16;

    L(i-1) = R(i) xor f(L(i), K(i)), i = 1, 2, ..., 16 .

    Στη 16η επανάληψη, λαμβάνονται οι αλληλουχίες L(0) και R(0), οι οποίες συνδέονται σε μια ακολουθία 64-bit L(0)R(0).

    Στη συνέχεια, οι θέσεις bit αυτής της ακολουθίας αναδιατάσσονται σύμφωνα με τον πίνακα IP. Το αποτέλεσμα μιας τέτοιας μετάθεσης είναι η αρχική ακολουθία 64-bit.

    Τώρα εξετάστε τη συνάρτηση κρυπτογράφησης f(R(i-1),K(i)). Φαίνεται σχηματικά στο Σχ. 3.


    Εικ.3. Υπολογισμός της συνάρτησης f(R(i-1), K(i))

    Για τον υπολογισμό της τιμής της συνάρτησης f, χρησιμοποιούνται οι ακόλουθες συναρτήσεις πίνακα:

    E - επέκταση μιας ακολουθίας 32-bit σε 48-bit,

    S1, S2, ..., S8 - μετατροπή μπλοκ 6 bit σε 4 bit,

    P - μετάθεση bit σε ακολουθία 32 bit.

    Η συνάρτηση επέκτασης Ε ορίζεται στον Πίνακα 3. Σύμφωνα με αυτόν τον πίνακα, τα πρώτα 3 bit του E(R(i-1)) είναι τα bit 32, 1 και 2, και τα τελευταία είναι τα 31, 32 και 1.

    Πίνακας 3: Συνάρτηση επέκτασης Ε

    32 01 02 03 04 05

    04 05 06 07 08 09

    08 09 10 11 12 13

    12 13 14 15 16 17

    16 17 18 19 20 21

    20 21 22 23 24 25

    24 25 26 27 28 29

    28 29 30 31 32 01

    Το αποτέλεσμα της συνάρτησης E(R(i-1)) είναι μια ακολουθία 48 bit που προστίθεται modulo 2 (λειτουργία xor) με το κλειδί 48 bit K(i). Η προκύπτουσα ακολουθία 48 bit χωρίζεται σε οκτώ μπλοκ 6 bit B(1)B(2)B(3)B(4)B(5)B(6)B(7)B(8). Αυτό είναι:

    E(R(i-1)) xor K(i) = B(1)B(2)...B(8) .

    Οι συναρτήσεις S1, S2, ..., S8 ορίζονται στον Πίνακα 4.

    Πίνακας 4

    Στον πίνακα 4. απαιτείται περαιτέρω διευκρίνιση. Έστω ότι η είσοδος της συνάρτησης μήτρας Sj είναι ένα μπλοκ 6 bit B(j) = b1b2b3b4b5b6, τότε ο αριθμός δύο bit b1b6 υποδεικνύει τον αριθμό σειράς του πίνακα και b2b3b4b5 τον αριθμό της στήλης. Το αποτέλεσμα του Sj(B(j)) θα είναι ένα στοιχείο 4 bit που βρίσκεται στη διασταύρωση της καθορισμένης γραμμής και στήλης.

    Για παράδειγμα, B(1)=011011. Τότε το S1(B(1)) βρίσκεται στην τομή της σειράς 1 και της στήλης 13. Στη στήλη 13 της σειράς 1 η τιμή είναι 5. Αυτό σημαίνει S1(011011)=0101.

    Εφαρμόζοντας τη λειτουργία επιλογής σε καθένα από τα μπλοκ 6-bit B(1), B(2), ..., B(8), λαμβάνουμε την ακολουθία 32-bit S1(B(1))S2(B(2 ))S3( B(3))...S8(B(8)).

    Τέλος, για να ληφθεί το αποτέλεσμα της συνάρτησης κρυπτογράφησης, τα bit αυτής της ακολουθίας πρέπει να αναδιαταχθούν. Για το σκοπό αυτό χρησιμοποιείται η συνάρτηση μετάθεσης P (Πίνακας 5). Στην ακολουθία εισόδου, τα bit αναδιατάσσονται έτσι ώστε το bit 16 να γίνεται bit 1, το bit 7 να γίνεται bit 2 και ούτω καθεξής.

    Πίνακας 5: Συνάρτηση μετάθεσης P

    Ετσι,

    f(R(i-1), K(i)) = P(S1(B(1)),...S8(B(8)))

    Για να ολοκληρωθεί η περιγραφή του αλγόριθμου κρυπτογράφησης δεδομένων, μένει να παρουσιαστεί ο αλγόριθμος για τη λήψη κλειδιών 48-bit K(i), i=1...16. Σε κάθε επανάληψη, χρησιμοποιείται μια νέα τιμή κλειδιού K(i), η οποία υπολογίζεται από το αρχικό κλειδί K. Το K είναι ένα μπλοκ 64-bit με οκτώ bit ισοτιμίας που βρίσκονται στις θέσεις 8,16,24,32,40,48, 56. 64.

    Για να αφαιρέσετε τα bits ελέγχου και να αναδιατάξετε τα υπόλοιπα, χρησιμοποιείται η συνάρτηση G της αρχικής προετοιμασίας κλειδιού (Πίνακας 6).

    Πίνακας 6

    Πίνακας G αρχικής προετοιμασίας κλειδιού

    57 49 41 33 25 17 09

    01 58 50 42 34 26 18

    10 02 59 51 43 35 27

    19 11 03 60 52 44 36

    63 55 47 39 31 23 15

    07 62 54 46 38 30 22

    14 06 61 53 45 37 29

    21 13 05 28 20 12 04

    Το αποτέλεσμα του μετασχηματισμού G(K) χωρίζεται σε δύο μπλοκ 28-bit C(0) και D(0), και το C(0) θα αποτελείται από τα bit 57, 49, ..., 44, 36 του κλειδιού Τα K, και D(0 ) θα αποτελούνται από τα bit 63, 55, ..., 12, 4 του κλειδιού K. Αφού ορίσουμε C(0) και D(0), C(i) και D(i), i= 1...16, προσδιορίζονται αναδρομικά. Για να το κάνετε αυτό, εφαρμόστε μια κυκλική μετατόπιση προς τα αριστερά κατά ένα ή δύο bit, ανάλογα με τον αριθμό επανάληψης, όπως φαίνεται στον Πίνακα 7.

    Πίνακας 7

    Shift πίνακα για υπολογισμό κλειδιού

    Αριθμός επανάληψης Shift (bits)
    01 1
    02 1
    03 2
    04 2
    05 2
    06 2
    07 2
    08 2
    09 1
    10 2
    11 2
    12 2
    13 2
    14 2
    15 2
    16 1

    Η τιμή που προκύπτει "αναμιγνύεται" και πάλι σύμφωνα με τον πίνακα H (Πίνακας 8).

    Πίνακας 8: Πίνακας ολοκλήρωσης κλειδιού H

    14 17 11 24 01 05

    03 28 15 06 21 10

    23 19 12 04 26 08

    16 07 27 20 13 02

    41 52 31 37 47 55

    30 40 51 45 33 48

    44 49 39 56 34 53

    46 42 50 36 29 32

    Το κλειδί K(i) θα αποτελείται από τα bit 14, 17, ..., 29, 32 της ακολουθίας C(i)D(i). Ετσι:

    K(i) = H(C(i)D(i))

    Το μπλοκ διάγραμμα του αλγόριθμου υπολογισμού κλειδιού φαίνεται στην Εικ. 4.

    Εικ.4. Μπλοκ διάγραμμα του αλγορίθμου για τον υπολογισμό του κλειδιού K(i)

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

    K(15), μετά K(14) και ούτω καθεξής. Τώρα θα πρέπει να καταλάβετε γιατί ο συγγραφέας συνιστά επίμονα τη χρήση των δεδομένων πινάκων. Εάν κάνετε απατεώνες, μπορεί να καταλήξετε με έναν πολύ μυστικό κωδικό, αλλά δεν θα μπορείτε να τον σπάσετε μόνοι σας!

    Τρόποι λειτουργίας του αλγορίθμου DES

    Για να πληρούνται πλήρως όλες οι απαιτήσεις για εμπορικά συστήματα κρυπτογράφησης, εφαρμόζονται αρκετοί τρόποι λειτουργίας του αλγόριθμου DES. Οι πιο ευρέως χρησιμοποιούμενοι τρόποι λειτουργίας είναι:

    · ηλεκτρονικό βιβλίο κωδικών (Electronic Codebook) - ΕΚΤ;

    · αλυσίδα ψηφιακών μπλοκ (Cipher Block Chaining) - CBC;

    · ψηφιακή ανατροφοδότηση (Cipher Feedback) - CFB;

    · εξωτερική ανάδραση (Output Feedback) - OFB.

    Σε αυτή τη λειτουργία, το αρχείο προέλευσης M χωρίζεται σε μπλοκ 64-bit (8 byte το καθένα): M = M(1)M(2)...M(n). Κάθε ένα από αυτά τα μπλοκ κρυπτογραφείται ανεξάρτητα χρησιμοποιώντας το ίδιο κλειδί κρυπτογράφησης (Εικ. 5). Το κύριο πλεονέκτημα αυτού του αλγορίθμου είναι η ευκολία εφαρμογής του. Το μειονέκτημα είναι ότι είναι σχετικά αδύναμο έναντι των ειδικευμένων κρυπτοαναλυτών.

    Ο αλγόριθμος DES είναι αρκετά κατάλληλος τόσο για κρυπτογράφηση όσο και για έλεγχο ταυτότητας δεδομένων. Επιτρέπει την απευθείας μετατροπή της εισόδου απλού κειμένου 64-bit σε έξοδο κρυπτογραφημένου κειμένου 64-bit, αλλά τα δεδομένα σπάνια περιορίζονται στα 64 bit.

    Για τη χρήση του αλγόριθμου DES για την επίλυση ποικίλων κρυπτογραφικών προβλημάτων, έχουν αναπτυχθεί τέσσερις τρόποι λειτουργίας:

    · Ηλεκτρονικό βιβλίο κωδικών ECB (Ηλεκτρονικό βιβλίο κωδικών).

    · Συνένωση μπλοκ κρυπτογράφησης CBC (Cipher Block Chaining).

    · Ανατροφοδότηση κρυπτογραφημένου κειμένου CFB (Cipher Feed Back).

    · ανατροφοδότηση για την έξοδο OFB (Output Feed Back).

    Λειτουργία "Ηλεκτρονικό βιβλίο κωδικών".

    Ένα μεγάλο αρχείο χωρίζεται σε τμήματα (μπλοκ) 64 bit των 8 byte. Κάθε ένα από αυτά τα μπλοκ κρυπτογραφείται ανεξάρτητα χρησιμοποιώντας το ίδιο κλειδί κρυπτογράφησης (Εικ. 3.6).

    Το κύριο πλεονέκτημα είναι η ευκολία εφαρμογής. Μειονέκτημα: Σχετικά ασθενής αντίσταση ενάντια σε ειδικευμένους κρυπτοαναλυτές. Λόγω της σταθερής φύσης της κρυπτογράφησης, με περιορισμένο μήκος μπλοκ 64 bit, είναι δυνατή η κρυπτανάλυση «λεξικού». Ένα μπλοκ αυτού του μεγέθους μπορεί να επαναληφθεί σε ένα μήνυμα λόγω του μεγάλου πλεονασμού σε κείμενο φυσικής γλώσσας.

    Εικόνα 3.6 – Σχέδιο του αλγορίθμου DES σε λειτουργία ηλεκτρονικού βιβλίου κωδίκων

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

    Λειτουργία "Chaining Cipher Blocks".

    Σε αυτή τη λειτουργία, το αρχείο προέλευσης M χωρίζεται σε μπλοκ 64-bit: M = M 1 M 2 ...M n. Στο πρώτο μπλοκ M 1 προστίθεται modulo 2 με ένα αρχικό διάνυσμα IV 64 bit, το οποίο αλλάζει καθημερινά και διατηρείται μυστικό (Εικ. 3.7). Στη συνέχεια, το ληφθέν ποσό κρυπτογραφείται χρησιμοποιώντας ένα κλειδί DES που είναι γνωστό τόσο στον αποστολέα όσο και στον παραλήπτη των πληροφοριών. Ο προκύπτων κρυπτογράφηση 64 bit C 1 προστίθεται modulo 2 με το δεύτερο μπλοκ κειμένου, το αποτέλεσμα κρυπτογραφείται και λαμβάνεται ένας δεύτερος κρυπτογράφηση 64 bit C 2, κ.λπ. Η διαδικασία επαναλαμβάνεται έως ότου υποβληθούν σε επεξεργασία όλα τα μπλοκ κειμένου.

    Έτσι, για όλα τα i = 1…n (n είναι ο αριθμός των μπλοκ), το αποτέλεσμα κρυπτογράφησης C i προσδιορίζεται ως εξής: C i =

    DES (М i  C i –1), όπου С 0 = IV είναι η αρχική τιμή του κρυπτογράφησης, ίση με το αρχικό διάνυσμα (διάνυσμα αρχικοποίησης).

    Προφανώς, το τελευταίο μπλοκ κρυπτογραφημένου κειμένου των 64 bit είναι συνάρτηση του μυστικού κλειδιού, του διανύσματος σποράς και κάθε bit

    Σχήμα 3.7 – Σχέδιο του αλγορίθμου DES σε λειτουργία αλυσίδας μπλοκ κρυπτογράφησης

    απλό κείμενο ανεξάρτητα από το μήκος του. Αυτό το μπλοκ κρυπτογραφημένου κειμένου ονομάζεται κωδικός ελέγχου ταυτότητας μηνύματος (MAC).


    Ο κωδικός CAS μπορεί εύκολα να επαληθευτεί από τον παραλήπτη, ο οποίος έχει το μυστικό κλειδί και το seed vector, επαναλαμβάνοντας τη διαδικασία που εκτελείται από τον αποστολέα. Ωστόσο, ένας εξωτερικός χρήστης δεν μπορεί να δημιουργήσει ένα UAS που εκλαμβάνεται ως γνήσιο από τον παραλήπτη για να το προσθέσει σε ένα ψευδές μήνυμα ή να διαχωρίσει το UAS από ένα αληθινό μήνυμα για χρήση με ένα τροποποιημένο ή ψευδές μήνυμα.

    Το πλεονέκτημα αυτής της λειτουργίας είναι ότι δεν επιτρέπει τη συσσώρευση σφαλμάτων κατά τη μετάδοση.

    Το μπλοκ M i είναι συνάρτηση μόνο των C i –1 και C i . Επομένως, ένα σφάλμα μετάδοσης θα έχει ως αποτέλεσμα την απώλεια μόνο δύο μπλοκ κειμένου προέλευσης.

    Λειτουργία "Σχόλια κρυπτογράφησης".

    Σε αυτήν τη λειτουργία, το μέγεθος του μπλοκ μπορεί να διαφέρει από 64 bit (Εικ. 3.8). Το αρχείο που πρόκειται να κρυπτογραφηθεί (αποκρυπτογραφηθεί) διαβάζεται σε διαδοχικά μπλοκ μήκους k bit (k=1...64).

    Το μπλοκ εισόδου (καταχωρητής μετατόπισης 64 bit) περιέχει πρώτα ένα διάνυσμα αρχικοποίησης με ευθυγράμμιση δεξιά.

    Ας υποθέσουμε ότι ως αποτέλεσμα της διαίρεσης σε μπλοκ, λάβαμε n μπλοκ μήκους k bits το καθένα (το υπόλοιπο επισυνάπτεται με μηδενικά ή κενά). Στη συνέχεια, για οποιοδήποτε μπλοκ κρυπτογραφημένου κειμένου i=1…n

    С i = M i  P i –1,

    όπου το P i–1 υποδηλώνει τα k πιο σημαντικά bit του προηγούμενου κρυπτογραφημένου μπλοκ.

    Ο καταχωρητής shift ενημερώνεται αφαιρώντας τα υψηλότερα k bit του και γράφοντας το C i στον καταχωρητή. Η ανάκτηση κρυπτογραφημένων δεδομένων είναι επίσης σχετικά απλή: τα P i –1 και C i υπολογίζονται με παρόμοιο τρόπο και

    М i = С i  Р i –1 .


    Εικόνα 3.8 – Σχέδιο του αλγορίθμου DES σε λειτουργία ανάδρασης κρυπτογραφημένου κειμένου

    Λειτουργία ανάδρασης εξόδου

    Αυτή η λειτουργία χρησιμοποιεί επίσης ένα μεταβλητό μέγεθος μπλοκ και έναν καταχωρητή μετατόπισης που αρχικοποιείται με τον ίδιο τρόπο όπως στη λειτουργία CFB, δηλαδή, το μπλοκ εισόδου περιέχει πρώτα ένα διάνυσμα αρχικοποίησης IV, ευθυγραμμισμένο προς τα δεξιά (Εικ. 3.9). Σε αυτήν την περίπτωση, για κάθε συνεδρία κρυπτογράφησης δεδομένων, είναι απαραίτητο να χρησιμοποιηθεί μια νέα αρχική κατάσταση του καταχωρητή, η οποία πρέπει να αποσταλεί μέσω του καναλιού σε καθαρό κείμενο.

    M = M 1 M 2 ... M n.

    Για όλα i = 1… n

    C i = M i  P i ,

    όπου Р i είναι τα υψηλότερα k bit της λειτουργίας DES (С i –1).

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

    Αυτό γίνεται με την απόρριψη των υψηλότερων k bits και την προσθήκη P i στα δεξιά.

    Εικόνα 3.9 – Σχέδιο του αλγορίθμου DES σε λειτουργία ανάδρασης εξόδου

    3.3. Τομείς εφαρμογής του αλγορίθμου DES

    Κάθε ένας από τους εξεταζόμενους τρόπους λειτουργίας (ECB, CBC, CFB, OFB) έχει τα δικά του πλεονεκτήματα και μειονεκτήματα, τα οποία καθορίζουν τους τομείς εφαρμογής τους.

    Η λειτουργία ECB είναι κατάλληλη για κρυπτογράφηση κλειδιού: η λειτουργία CFB προορίζεται συνήθως για κρυπτογράφηση μεμονωμένων χαρακτήρων και η λειτουργία OFB χρησιμοποιείται συχνά για κρυπτογράφηση σε συστήματα δορυφορικών επικοινωνιών.

    Οι λειτουργίες CBC και CFB είναι κατάλληλες για έλεγχο ταυτότητας δεδομένων. Αυτές οι λειτουργίες σάς επιτρέπουν να χρησιμοποιήσετε τον αλγόριθμο DES για:

    · Διαδραστική κρυπτογράφηση κατά την ανταλλαγή δεδομένων μεταξύ του τερματικού και του κεντρικού υπολογιστή.

    · κρυπτογράφηση ενός κρυπτογραφικού κλειδιού στην πρακτική της αυτοματοποιημένης διανομής κλειδιών.

    · κρυπτογράφηση αρχείων, αλληλογραφίας, δορυφορικών δεδομένων και άλλων πρακτικών εργασιών.

    Αρχικά, το πρότυπο DES προοριζόταν για κρυπτογράφηση και αποκρυπτογράφηση δεδομένων υπολογιστή. Ωστόσο, η εφαρμογή του έχει γενικευθεί στον έλεγχο ταυτότητας.

    Στα συστήματα αυτόματης επεξεργασίας δεδομένων, δεν υπάρχει τρόπος για έναν άνθρωπο να επανεξετάσει τα δεδομένα για να προσδιορίσει εάν έχουν γίνει αλλαγές σε αυτά. Με τις τεράστιες ποσότητες δεδομένων που ρέουν μέσω των σύγχρονων συστημάτων επεξεργασίας, η περιήγηση θα έπαιρνε πολύ χρόνο. Επιπλέον, ο πλεονασμός δεδομένων μπορεί να μην επαρκεί για τον εντοπισμό σφαλμάτων. Ακόμη και σε περιπτώσεις όπου είναι δυνατή η επανεξέταση από τον άνθρωπο, τα δεδομένα ενδέχεται να αλλάξουν με τρόπους που καθιστούν πολύ δύσκολο για τον άνθρωπο να ανιχνεύσει τις αλλαγές. Για παράδειγμα, το "do" μπορεί να αντικατασταθεί με το "do not", το "$1900" με το "$9100". Χωρίς πρόσθετες πληροφορίες, ένα άτομο που το βλέπει μπορεί εύκολα να μπερδέψει τα τροποποιημένα δεδομένα ως γνήσια δεδομένα. Τέτοιοι κίνδυνοι μπορεί να υπάρχουν ακόμη και όταν χρησιμοποιείται κρυπτογράφηση δεδομένων. Επομένως, είναι επιθυμητό να υπάρχει ένα αυτόματο μέσο ανίχνευσης σκόπιμων και ακούσιων αλλαγών δεδομένων.

    Οι συνηθισμένοι κωδικοί ανίχνευσης σφαλμάτων είναι ακατάλληλοι γιατί εάν είναι γνωστός ο αλγόριθμος για τη δημιουργία του κώδικα, ο αντίπαλος μπορεί να δημιουργήσει τον σωστό κώδικα αφού κάνει αλλαγές στα δεδομένα. Ωστόσο, χρησιμοποιώντας τον αλγόριθμο DES, είναι δυνατό να δημιουργηθεί ένα κρυπτογραφικό άθροισμα ελέγχου που μπορεί να προστατεύσει τόσο από τυχαίες όσο και από σκόπιμες αλλά μη εξουσιοδοτημένες αλλαγές στα δεδομένα.

    Αυτή η διαδικασία περιγράφει το πρότυπο για τον έλεγχο ταυτότητας δεδομένων υπολογιστή (FIPS 113). Η ουσία του προτύπου είναι ότι τα δεδομένα κρυπτογραφούνται σε λειτουργία ανάδρασης κρυπτογραφημένου κειμένου (λειτουργία CFB) ή σε λειτουργία σύνδεσης μπλοκ κρυπτογράφησης (λειτουργία CBC), με αποτέλεσμα ένα τελικό μπλοκ κρυπτογράφησης που είναι συνάρτηση όλων των bit απλού κειμένου. Το μήνυμα, το οποίο περιέχει το απλό κείμενο, μπορεί στη συνέχεια να μεταδοθεί χρησιμοποιώντας το υπολογισμένο τελικό μπλοκ κρυπτογράφησης, το οποίο χρησιμεύει ως κρυπτογραφικό άθροισμα ελέγχου.

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

    μου κείμενο.

    Η κρυπτογράφηση και ο έλεγχος ταυτότητας χρησιμοποιούνται για την προστασία των δεδομένων που είναι αποθηκευμένα σε έναν υπολογιστή. Σε πολλούς υπολογιστές, οι κωδικοί πρόσβασης κρυπτογραφούνται μη αναστρέψιμα και αποθηκεύονται στη μνήμη του μηχανήματος. Όταν ένας χρήστης αποκτά πρόσβαση στον υπολογιστή και εισάγει έναν κωδικό πρόσβασης, ο τελευταίος κρυπτογραφείται και συγκρίνεται με την αποθηκευμένη τιμή. Εάν και οι δύο κρυπτογραφημένες τιμές είναι ίδιες, ο χρήστης αποκτά πρόσβαση στο μηχάνημα, διαφορετικά απορρίπτεται.

    Συχνά, δημιουργείται ένας κρυπτογραφημένος κωδικός πρόσβασης χρησιμοποιώντας τον αλγόριθμο DES, με το κλειδί ίσο με τον κωδικό πρόσβασης και το απλό κείμενο ίσο με τον κωδικό αναγνώρισης χρήστη.

    Χρησιμοποιώντας τον αλγόριθμο DES, μπορείτε επίσης να κρυπτογραφήσετε αρχεία υπολογιστή για αποθήκευση.

    Ενας από πιο σημαντικές εφαρμογέςαλγόριθμος DESείναι προστασία των μηνυμάτων του συστήματος ηλεκτρονικών πληρωμών (EPS) κατά τις συναλλαγές με ευρύ πελατολόγιο και μεταξύ τραπεζών.

    Ο αλγόριθμος DES υλοποιείται σε ΑΤΜ, τερματικά σημείων πώλησης, σταθμούς εργασίας και υπολογιστές mainframe. Το εύρος των δεδομένων που προστατεύει είναι πολύ ευρύ - από πληρωμές 50 $ έως μεταφορές πολλών εκατομμυρίων δολαρίων. Η ευελιξία του βασικού αλγορίθμου DES επιτρέπει τη χρήση του σε μια μεγάλη ποικιλία εφαρμογών συστημάτων ηλεκτρονικών πληρωμών.