Data Encryption Standard

Ο **Data Encryption Standard** είναι κρυπταλγόριθμος ο  οποίος ξεκίνησε από τις ΗΠΑ ως επίσημο ομοσπονδιακό πρότυπο.

## Ιστορικά
Ο DES είναι ο κρυπταλγόριθμος ο οποίος είχε επιλεγεί ως επίσημο Ομοσπονδιακό Πρότυπο Επεξεργασίας Πληροφοριών (Federal Information Processing Standard - FIPS) για τις Ηνωμένες Πολιτείες το 1976. Ο DES στη συνέχεια χρησιμοποιήθηκε διεθνώς. Ο αλγόριθμος αρχικά ήταν αμφισβητούμενος, με απόρρητα τα στοιχεία του σχεδιασμού του και ένα σχετικά μικρού μήκους κλειδί. Υπήρχαν υποψίες πως η δημιουργία του DES αποσκοπούσε στη δημουργία backdoor (κερκόπορτας) για την παραβίαση της ασφάλειας της Υπηρεσίας Εθνικής Ασφάλειας (NSA) των Ηνωμένων Πολιτειών. Ο DES υπέστη  έντονη ακαδημαϊκή διερεύνηση και αποτέλεσε το κίνητρο για την κατανόηση των κρυπταλγόριθμων συμμετρικού κλειδιού (block ciphers) και την ανάλυσή τους.

Ο DES θεωρείται πλέον ανασφαλής για πολλές εφαρμογές. Αυτό οφείλεται κυρίως στο μικρό μέγεθος του κλειδιού του, που έχει μήκος 64 μπιτ. Τον Ιανουάριο του 1999 οι εταιρείες "Distributed.net" και "Electronic Frontier Foundation", κατόπιν συνεργασίας, “έσπασαν” δημοσίως ένα κλειδί του DES μέσα σε 22 ώρες και 15 λεπτά. Υπάρχουν, επίσης, ορισμένα αναλυτικά αποτελέσματα που καταδεικνύουν θεωρητικές αδυναμίες στον κρυπταλγόριθμο, αν και είναι ανέφικτο να υλοποιηθούν στην πράξη. Θεωρείται πως ο αλγόριθμος είναι πρακτικά ασφαλής υπό τη μορφή του τριπλού DES (triple DES), αν και υπάρχουν θεωρητικές αμφισβητήσεις. Τα τελευταία χρόνια ο κρυπταλγόριθμος DES έχει εκτοπιστεί από τo Προηγμένo Πρότυπo Κρυπτογράφησης (Advanced Encryption Standard - AES).

Η προέλευση του DES βρίσκεται στις αρχές της δεκαετίας του 1970. Το 1972, μετά την ολοκλήρωση μελέτης για την ασφάλεια των υπολογιστών της κυβέρνησης, το σώμα προτύπων των Η.Π.Α., γνωστό ως NBS (National Bureau of Standards) – που τώρα ονομάζεται NIST (National Institute of Standards and Technology) - επισήμανε την ανάγκη για ένα Κυβερνητικό πρότυπο με το οποίο θα μπορούσαν να κρυπτογραφηθούν μη απόρρητες, ευαίσθητες πληροφορίες. Στις 15 Μαΐου του 1973, μετά από διαβούλευση με την NSA, η NBS κάνει προτάσεις για έναν κρυπταλγόριθμο που θα ανταποκρίνεται σe κριτήρια αυστηρού σχεδιασμού. Εντούτοις, καμία από τις προτάσεις που υποβλήθηκαν δεν αποδείχθηκε κατάλληλη. Δημοσιεύθηκε μια δεύτερη πρόταση εκδήλωσης ενδιαφέροντος στις 27 Αυγούστου του 1974. Αυτή τη φορά, η IBM υπέβαλε έναν αλγόριθμο, ο οποίος κρίθηκε αποδεκτός: Ήταν κρυπταλγόριθμος που αναπτύχθηκε κατά τη διάρκεια της περιόδου 1973-1974 βασιζόμένος σε προϋπάρχοντα. Αυτός ήταν ο κρυπταλγόριθμος "Lucifer", τον οποίο δημιούργησε ο Χορστ Φάιστελ (Horst Feistel). Η ομάδα της ΙΒΜ συνέχισε τον σχεδιασμό και την ανάλυση κρυπταλγόριθμων με τη βοήθεια των Feistel, Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith και Bryart Tuckerman.

## Η ανάμειξη της NSA στον σχεδιασμό
Στις 17 Μαρτίου του 1975 ο προτεινόμενος DES δημοσιεύθηκε στον Ομοσπονδιακό κατάλογο (Federal Register). Ζητήθηκαν δημόσια σχόλια και, στο έτος που ακολούθησε, δύο ανοικτά εργαστήρια κλήθηκαν για να συζητήσουν τα προτεινόμενα πρότυπα. Υπήρξε κριτική από διάφορα μέλη, ανάμεσα στους οποίους ήταν και οι πρωτοπόροι στην κρυπτογραφία δημοσίου κλειδιού Μάρτιν Χέλμαν (Martin Hellman) και Ουίτφιλντ Ντίφι (Whitfield Diffie), οι οποίοι ανέφεραν  μικρότερο μήκος κλειδιού για τον DES καθώς και τα μυστήρια "S-boxes" ως στοιχεία ανάρμοστης παρέμβασης από την NSA. Η υποψία ήταν ότι ο αλγόριθμος ήταν συγκεκαλυμμένα αποδυναμωμένος από την Κεντρική Υπηρεσία Πληροφοριών (CIA) έτσι, ώστε μόνον αυτή να μπορεί εύκολα να διαβάσει τα κρυπτογραφημένα μηνύματα. Ο Άλαν Κόνχαϊμ (Alan Konheim), ένας από τους σχεδιαστές του DES, ανέφερε στα σχόλιά του:

Η Επιτροπή Αντικατασκοπείας της Γερουσίας των ΗΠΑ (United States Senate Select Committee on Intelligence) αναθεώρησε τις ενέργειες της NSA, ώστε να καθορίσει εάν υπήρξε οποιαδήποτε ανάρμοστη συμμετοχή. Στην αταξινόμητη περίληψη των συμπερασμάτων της, που δημοσιεύθηκε το 1978, η Επιτροπή έγραψε:

Εν τούτοις, η Επιτροπή ανακάλυψε και ανέφερε, επίσης, ότι:

Ένα άλλο μέλος της ομάδας DES, ο Walter Tuchman, αναφέρεται πως είπε:

Ορισμένες από τις υποψίες σχετικά με τις κρυφές αδυναμίες στα S-boxes είχαν εξαλειφθεί το 1990, με την ανεξάρτητη ανακάλυψη και την ανοικτή δημοσίευση της Διαφορικής Κρυπτανάλυσης από τους Eli Biham και Adi Shamir. Τα S-boxes του DES ήταν πολύ πιο ανθεκτικά στην επίθεση απ' ό,τι αν είχαν επιλεγεί τυχαία, γεγονός που υποδηλώνει έντονα ότι η IBM γνώριζε για την τεχνική που εφαρμόζονταν στη δεκαετία του 1970. Αυτή ήταν πράγματι η υπόθεση, το 1994, όταν ο Don Coppersmith δημοσίευσε τον αυθεντικό σχεδιασμό των κριτηρίων για τα S-boxes.  Σύμφωνα με τον Steven Levi, οι ερευνητές της IBM Watson ανακάλυψαν διαφορικές κρυπταναλυτικές επιθέσεις το 1974 και ζητήθηκε από την NSA να κρατήσει την τεχνική μυστική. Ο Coppersmith εξηγεί την απόρρητη απόφαση της ΙΒΜ λέγοντας πως:
 

Ο Levy ανέφερε στον Walter Tuchman:

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

Η άλλη κριτική - ότι το μήκος του κλειδιού ήταν πολύ μικρό - ενισχύεται από το γεγονός ότι η αιτιολογία που δόθηκε από την NSA για τη μείωση του μήκους του κλειδιού από τα 64 bits στα 56 bits ήταν ότι τα υπόλοιπα 8 bits θα μπορούσαν να χρησιμεύσουν ως bits ισοτιμίας (parity), πράγμα που έμοιαζε αληθοφανές. Ήταν ευρέως πιστευτό ότι η απόφαση της NSA τροποποιήθηκε λόγω της πιθανότητας να είναι σε θέση (η NSA) να κάνει επιτυχείς επιθέσεις τύπου "brute force" σε κλειδί της τάξης μεγέθους των 56 bits αρκετά χρόνια πριν από τον υπόλοιπο κόσμο.

## Ο αλγόριθμος DES ως πρότυπο

Παρά τις επικρίσεις, ο DES εγκρίθηκε ως ομοσπονδιακό πρότυπο τον Νοέμβριο του 1976 και δημοσιεύθηκε στις 15 Ιανουαρίου του 1977 ως FIPS PUB 46 και η χρήση του ήταν επιτρεπτή σε όλα τα μη απόρρητα δεδομένα. Στη συνέχεια επιβεβαιώθηκε ως πρότυπο το 1983, το 1988 (αναθεωρήθηκε ως FIPS-46-1), το 1993 (ως FIPS-46-2) και πάλι το 1999  (ως FIPS-46-3). Ο τελευταίος ορισμός  ήταν ο Triple DES. Στις 26 Μαΐου του 2002 ο DES τελικά εκτοπίστηκε από τον Advanced Encryption Standard (AES) κατόπιν δημόσιου διαγωνισμού. Στις 19 Μαΐου του 2005 ο FIPS 46-3 είχε επισήμως αποσυρθεί, αλλά το Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας (National Institute of Standards and Technology - NIST) ενέκρινε τον Triple DES στο έτος 2003 για τις ευαίσθητες πληροφορίες της κυβέρνησης.
Μια άλλη θεωρητική επίθεση, η γραμμική κρυπτανάλυση, δημοσιεύθηκε το 1994, αλλά ήταν μια επίθεση brute force το 1998 που αναπαράστησε/απέδειξε ότι μπορεί κάποιος θα μπορούσε πρακτικά να επιτεθεί στον DES και τονίστηκε η ανάγκη για αντικατάσταση του αλγόριθμου. Αυτές και άλλες μέθοδοι κρυπτανάλυσης εξετάζονται λεπτομερώς.

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

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

## Χρονολογικά

Αρχείο:Data Encryption Standard in Greek.png

## Περιγραφή του DES
 
Η Data Encryption Standard (DES), είναι το όνομα της Federal Information Processing Standard (FIPS) 46-3, το οποίο περιγράφει τον αλγόριθμο κρυπτογράφησης δεδομένων (DEA). Ο DEA επίσης ορίζεται με το πρότυπο ANSI X3.92. επίσης είναι μια βελτίωση του αλγορίθμου Lucifer που αναπτύχθηκε από την IBM στις αρχές του 1970. Η IBM, η Υπηρεσία Εθνικής Ασφάλειας (NSA) και το Εθνικό Γραφείο Προτύπων (NBS ,σήμερα Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας NIST) ήταν οι υπηρεσίες που ανέπτυξαν τον αλγόριθμο. Το DES έχει μελετηθεί εκτενώς από τη δημοσίευσή του και είναι ο πιο ευρέως χρησιμοποιούμενος Συμμετρικός αλγόριθμος στον κόσμο.
Το DES είναι 64-bit και χρησιμοποιεί ένα 56-bit κλειδί κατά τη διάρκεια της εκτέλεσης (έχει 8 bits ισοτιμίας από το πλήρες κλειδί 64-bit).Ο DES είναι ένα συμμετρικό κρυπτογραφικό σύστημα, και συγκεκριμένα ένα 16-γύρο cipher Feistel. Όταν χρησιμοποιείται για την επικοινωνία, τόσο αποστολέας και ο παραλήπτης πρέπει να γνωρίζει το ίδιο μυστικό κλειδί, το οποίο μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση και την αποκρυπτογράφηση του μηνύματος, ή για τη δημιουργία και την επαλήθευση ενός κώδικα ταυτότητας μηνυμάτων (MAC). Ο DES μπορεί επίσης να χρησιμοποιηθεί για μεμονωμένους χρήστες κρυπτογράφησης, όπως για την αποθήκευση αρχείων σε έναν σκληρό δίσκο σε κρυπτογραφημένη μορφή.

 
Ο DES είναι αρχετυπικός block cipher, δηλαδή, ένας πρωτότυπος κρυπταλγόριθμος συμμετρικού κλειδιού, που λαμβάνει μια σειρά από bits απλού κειμένου (plaintext bits) σταθερού μήκους και την μετατρέπει, μέσω μιας σειράς πολύπλοκων ενεργειών, σε μια άλλη σειρά bits, το κρυπτοκείμενο (chiphertext) με το ίδιο μήκος. Στην περίπτωση του DES το μέγεθος μπλοκ (block size: Η σειρά των bits σταθερού μήκους) είναι 64 bits. Ο DES χρησιμοποιεί, επίσης, ένα κλειδί για να προσαρμόσει την μετατροπή, ώστε η αποκρυπτογράφηση να μπορεί, υποθετικά, να πραγματοποιηθεί μόνο από εκείνους που γνωρίζουν το συγκεκριμένο κλειδί που χρησιμοποιήθηκε για την κρυπτογράφηση. Το κλειδί φαινομενικά αποτελείται από 64 bits. Ωστόσο, στην πραγματικότητα μόνο 56 από αυτά χρησιμοποιήθηκαν από τον αλγόριθμο. Τα υπόλοιπα 8 bits χρησιμοποιούνται αποκλειστικά για τον έλεγχο της ισοτιμίας (parity) και στη συνέχεια απορρίπτονται (αυτά καλούνται parity bits), εξ ου και αναφέρεται συνήθως ως κλειδί μήκους 56 bits. Όπως οι άλλοι block αλγόριθμοι κρυπτογράφησης, έτσι και ο DES από μόνος του δεν είναι ασφαλής τρόπος κρυπτογράφησης αλλά, αντίθετα, πρέπει να χρησιμοποιηθεί με ειδικό τρόπο λειτουργίας (mode of operation). Ο FIPS-81 ορίζει πολλούς τρόπους χρήσης του DES. Περαιτέρω παρατηρήσεις σχετικά με τη χρήση του DES περιέχονται στο FIPS-74.

## Γενική δομή
 
•	ΕCB (Electronic Code Book)
o	Αυτή είναι η τακτική του αλγορίθμου DES.
o	Τα δεδομένα είναι χωρισμένα σε 64-bit μπλοκ και κάθε μπλοκ είναι κρυπτογραφημένο, ένα κάθε φορά.
o	Ξεχωριστή κρυπτογράφηση με διαφορετικά μπλοκ είναι εντελώς ανεξάρτητα μεταξύ τους.
o	Αυτό σημαίνει ότι εάν τα δεδομένα μεταδίδονται μέσω δικτύου ή τηλεφωνικής γραμμής, σφάλματα μετάδοσης θα επηρεάσουν μόνο το μπλοκ που περιέχει το σφάλμα.
o	Αυτό σημαίνει επίσης, ωστόσο, ότι το μπλοκ μπορεί να τροποποιηθεί, και η δράση αυτή θα περνάει απαρατήρητη.
o	ΕΚΤ είναι ο πιο αδύναμος των διαφόρων μέσων, επειδή δεν απαιτούνται πρόσθετα μέτρα ασφαλείας που εφαρμόζονται, εκτός από το βασικό αλγόριθμο DES.
o	Ωστόσο, η ΕΚΤ είναι ο γρηγορότερος και ευκολότερος για την εφαρμογή, καθιστώντας την πιο κοινή λειτουργία του DES.

•	CBC (Cipher Block Chaining)
o	Σε αυτόν τον τρόπο λειτουργίας του, κάθε μπλοκ της ΕΚΤ κρυπτογραφημένη ciphertext είναι XORed με το επόμενο μπλοκ plaintext είναι κρυπτογραφημένη, έτσι ώστε όλα τα μπλοκ εξαρτώνται από όλα τα προηγούμενα μπλοκ.
o	Αυτό σημαίνει ότι για να βρει το plaintext ενός συγκεκριμένου μπλοκ, θα πρέπει να γνωρίζει το ciphertext, το κλειδί, και το κρυπτογράφημα του προηγούμενου μπλοκ.
o	Το πρώτο μπλοκ για να είναι κρυπτογραφημένο δεν έχει προηγούμενο ciphertext, έτσι ώστε το plaintext είναι XORed με έναν αριθμό 64-bit που ονομάζεται Initialization Vector ή IV για συντομία.
o	Έτσι, αν τα δεδομένα μεταδίδονται μια γραμμή δικτύου ή τηλεφώνου και υπάρχει ένα σφάλμα μετάδοσης, το σφάλμα θα μεταφερθεί σε όλα τα επόμενα μπλοκ από το κάθε μπλοκ εξαρτάται από το τελευταίο.
o	Αυτός ο τρόπος λειτουργίας είναι πιο ασφαλής από ΕΚΤ, διότι το επιπλέον βήμα XOR προσθέτει ένα ακόμη στρώμα στη διαδικασία κρυπτογράφησης.

•	CFB (Cipher Feedback)
o	Σε αυτή τη λειτουργία, μπλοκ plaintext που είναι λιγότερο από 64 bits μήκος μπορεί να είναι κρυπτογραφημένα.
o	Κανονικά, ειδική επεξεργασία, πρέπει να χρησιμοποιηθεί για να χειριστεί τα αρχεία των οποίων το μέγεθος δεν είναι ένα τέλειο πολλαπλάσιο των 8 bytes, αλλά αυτή η λειτουργία αφαιρεί ότι η αναγκαιότητα (Stealth χειρίζεται αυτή την περίπτωση, με την προσθήκη πολλών bytes ομοίωμα στο τέλος ενός αρχείου πριν την κρυπτογράφηση αυτού).
o	Η plaintext από μόνη της δεν είναι στην πραγματικότητα αλλά πέρασε μέσω του αλγορίθμου DES, απλώς XORed με ένα μπλοκ εξόδου από αυτήν, με τον ακόλουθο τρόπο: Ένας 64-bit μπλοκ που ονομάζεται Μητρώο Shift χρησιμοποιείται ως plaintext συμβολή DES. Αυτό έχει αρχικά οριστεί σε κάποια αυθαίρετη τιμή, και κρυπτογραφημένη με τον αλγόριθμο DES. Η ciphertext  στη συνέχεια διέρχεται από ένα επιπλέον στοιχείο που ονομάζεται Μ-box, το οποίο απλά επιλέγει την άκρως αριστερή M bits του ciphertext, όπου m είναι ο αριθμός των bits στο μπλοκ που θέλουμε για την κρυπτογράφηση. Η τιμή αυτή είναι XORed με το πραγματικό απλό, και η έξοδος του ότι είναι ο τελικός ciphertext. Τέλος, το ciphertext  ανατροφοδοτεί το Μητρώο Shift, και χρησιμοποιείται ως σπόρος plaintext για το επόμενο μπλοκ ώστε να είναι κρυπτογραφημένα.
o	Όπως και με τρόπο CBC, ένα λάθος σε ένα μπλοκ επηρεάζει όλες τις επόμενες μπλοκ κατά τη διάρκεια της μετάδοσης δεδομένων.
o	Αυτός ο τρόπος λειτουργίας είναι παρόμοια με τη διασυνοριακή συνεργασία και είναι πολύ ασφαλές, αλλά είναι πιο αργή από ότι ΕΚΤ χάρη στην επιπλέον πολυπλοκότητα.

•	OFB (Output Feedback)
o	Αυτό είναι παρόμοιο σε λειτουργία CFB, εκτός από το ότι η παραγωγή του ciphertext DES είναι για να ανατροφοδοτεί το Μητρώο Shift, και όχι η πραγματική τελική ciphertext.
o	Το μητρώο Shift έχει οριστεί σε μια αυθαίρετη αρχική τιμή, και πέρασε μέσα από τον αλγόριθμο DES.
o	Η έξοδος από την DES διέρχεται μέσα από το M-box και στη συνέχεια να ανατροφοδοτεί το Shift  για να προετοιμαστεί για το επόμενο μπλοκ.
o	Η τιμή αυτή είναι συνέχεια XORed με το πραγματικό απλό (το οποίο μπορεί να είναι μικρότερο των 64 bits σε μήκος, όπως η λειτουργία CFB), και το αποτέλεσμα είναι το τελικό ciphertext.
o	Σημειώστε ότι σε αντίθεση με CFB και CBC, ένα σφάλμα μετάδοσης σε ένα μπλοκ δεν θα επηρεάσει τα επόμενα μπλοκ γιατί από τη στιγμή που ο παραλήπτης έχει την αρχική τιμή Εγγραφή Shift, θα συνεχίσει να παράγει νέα Shift Εγγραφή, απλό κείμενο χωρίς καμία περαιτέρω εισαγωγή δεδομένων.
o	Αυτός ο τρόπος λειτουργίας είναι λιγότερο ασφαλής από ότι CFB λειτουργία, επειδή μόνο το πραγματικό προϊόν ciphertext και DES ciphertext είναι απαραίτητο για να βρείτε το απλό κείμενο του πιο πρόσφατου μπλοκ.
o	Η γνώση του κλειδιού δεν είναι απαραίτητη.
Ενσωματωμένο λογισμικό βιβλιοθηκών VOCAL περιλαμβάνουν μια πλήρη γκάμα ETSI / ITU / IEEE αλγορίθμων συμβατό, εκτός από πολλά άλλα τυποποιημένα και αλγορίθμους. Το λογισμικό μας έχει βελτιστοποιηθεί για εκτέλεση σε ANSI C και οδηγώντας αρχιτεκτονικών DSP (TI, ADI, AMD, ARM, MIPS, CEVA, LSI Logic ZSP, κλπ.). Οι βιβλιοθήκες αυτές είναι ευέλικτες και μπορούν να εκτελεστούν ως ένα ενιαίο έργο κάτω από μια ποικιλία λειτουργικών συστημάτων ή αυτόνομα με δικό του μικρο πυρήνα.

Η γενική δομή του αλγορίθμου παρουσιάζεται στην Εικόνα 1: Υπάρχουν 16 πανομοιότυπα στάδια επεξεργασίας, που καλούνται Γύροι. Υπάρχει, επίσης ,μια αρχική και μια τελική μεταλλαγή που καλούνται IP και FP (ή IP-1) αντίστοιχα, οι οποίες είναι Αντίστροφες Συναρτήσεις (η IP "ανατρέπει" τη δράση του FP και αντίστροφα). Η IP και η FP δεν έχουν σχεδόν καμία κρυπτογραφική σημασία, αλλά συμπεριλήφθηκαν, προφανώς, προκειμένου να διευκολύνουν τα block φόρτωσης μέσα και έξω από το υλικό των μέσων της δεκαετίας του 1970, καθώς επίσης και για να κάνουν τον DES να "τρέχει" πιο αργά σε λογισμικό.

Πριν από τους κύριους γύρους, το block είναι διηρημένο σε δύο 32bit ήμισυ και επεξεργασμένο διαδοχικά. Αυτή η σταυροειδής διάταξη είναι γνωστή ως σχήμα Feistel (Feistel scheme). Η δομή Feistel εξασφαλίζει ότι η αποκρυπτογράφηση και η κρυπτογράφηση είναι παρόμοιες διαδικασίες. Η μόνη διαφορά είναι ότι τα υποκλείδια ή δευτερεύοντα κλειδιά (subkeys) εφαρμόζονται σε αντίστροφη διάταξη, όταν εκτελείται η πράξη της αποκρυπτογράφησης. Το υπόλοιπο του αλγορίθμου είναι ίδιο. Αυτό απλοποιεί πολύ την εφαρμογή, ιδιαίτερα στο υλικό, δεδομένου ότι δεν υπάρχει καμία ανάγκη για ξέχωρους αλγορίθμους κρυπτογράφησης και αποκρυπτογράφησης.
Το κόκκινο το σύμβολο       δείχνει την αποκλειστική OR (XOR) λειτουργία. Η F συνάρτηση αναμιγνύει το μισό τμήμα του block μαζί με ένα μέρος από το κλειδί. Η έξοδος από την συνάρτηση F συνδυάζεται έπειτα με το άλλο μισό του block και τα ήμισυ ανταλλάσσονται πριν από τον επόμενο κύκλο. Μετά από τον τελικό γύρο, τα μισά δεν ανταλλάσσονται, αυτό είναι ένα χαρακτηριστικό γνώρισμα της δομής Feistel που κάνει την κρυπτογράφηση και την αποκρυπτογράφηση παρόμοιες διαδικασίες.

## Η συνάρτηση Feistel (F)

Η συνάρτηση F, που απεικονίζεται στην Εικόνα 2, λειτουργεί με μισό block (32 μπιτ) τη φορά και αποτελείται από τέσσερα στάδια:

**Επέκταση** → Το μισό block των 32 bits έχει επεκταθεί σε 48 bits χρησιμοποιώντας την επεκτατική μεταλλαγή (expansion permutation) – η οποία υπάρχει με την ονομασία Ε (γαλάζιο ορθογώνιο) στην Εικόνα 2 – αντιγράφοντας ορισμένα από τα μπιτ.

**Ανάμειξη κλειδιών** → Το αποτέλεσμα αναμιγνύεται με ένα υποκλειδί με τη χρήση μιας XOR πράξης. Δεκαέξι κλειδιά, μεγέθους 48 bits το καθένα – ένα για κάθε γύρο -, προέρχονται από το κύριο κλειδί χρησιμοποιώντας το χρονοδιάγραμμα /  πρόγραμμα κλειδιού (key schedule)  το οποίο θα περιγραφεί παρακάτω.

**Αντικατάσταση** → Μετά την ανάμειξη με το υποκλειδί, το block διαιρείται σε οκτώ τμήματα των 6 bits  πριν να τύχει επεξεργασίας από τα S-boxes (Substitution boxes – κουτιά αντικατάστασης). Κάθε ένα από τα οκτώ S-boxes αντικαθιστά τις εξάμπιτες εισόδους του με εξόδους των τεσσάρων μπιτ σύμφωνα με ένα μη γραμμικό μετασχηματισμό, που παρέχεται με τη μορφή ενός πίνακα αναζήτησης (lookup table). Τα S-boxes παρέχουν τον πυρήνα της ασφάλειας του DES – χωρίς αυτά, ο κρυπταλγόριθμος θα ήταν γραμμικός και κοινότοπα εύθραυστος.

**Μεταλλαγή** → Τέλος, οι 32 έξοδοι από τα S-boxes διακανονίζονται σύμφωνα με μια σταθερή μεταλλαγή, το P-box.

Η εναλλαγή της αντικατάστασης από τα S-boxes και τη μεταλλαγή των bits από το P-box και την E-επέκταση (expansion ), παρέχει τη λεγόμενη “σύγχυσηκαι διάχυση”  αντίστοιχα, μια έννοια που προσδιορίστηκε από τον Κλοντ Σάνον (Claude Shannon) τη δεκαετία του 1940 ως απαραίτητη προϋπόθεση για ασφαλή και πρακτικό πλέον κρυπταλγόριθμο.

## Το πρόγραμμα κλειδιού

Η Εικόνα 3 απεικονίζει το πρόγραμμα κλειδιού για την κρυπτογράφηση —  ο αλγόριθμος που δημιουργεί τα υποκλειδιά. Αρχικά, 56 μπιτ του κλειδιού επιλέγονται από τα αρχικά 64 από τη μεταλλαγμένη επιλογή 1 (Permuted Choice 1 : PC-1)  — τα υπόλοιπα οκτώ μπιτ είτε απορρίπτονται είτε χρησιμοποιούνται ως parity bits (για τον έλεγχο ισοτιμίας). Τα 56 μπιτ διαιρούνται έπειτα σε δύο τμήματα των 28 και κάθε μισό αντιμετωπίζεται έκτοτε χωριστά. Στους διαδοχικούς γύρους και τα δύο μισά περιστρέφονται αριστερά κατά ένα ή δύο μπιτ (που διευκρινίζονται για κάθε γύρο) και έπειτα, 48 μπιτ του υποκλειδιού επιλέγονται από τη μεταλλαγμένη επιλογή 2 (Permuted Choice 2 : PC-2) — 24 μπιτ από το αριστερό μισό και 24 από το μπιτ μισό. Οι περιστροφές (που δείχνονται από το 
## Εξωτερικοί σύνδεσμοι

Κατηγορία:Κρυπτογραφικοί αλγόριθμοι