Η κύρια διαφορά μεταξύ ενός κρυπτογράφου μπλοκ και ενός κρυπτογράφου ρεύματος είναι ότι ο κρυπτογραφητής του μπλοκ κρυπτογραφεί και αποκρυπτογραφεί ένα μπλοκ του κειμένου τη φορά. Από την άλλη πλευρά, ο κρυπτογραφητής ρεύματος κρυπτογραφεί και αποκρυπτογραφεί το κείμενο, λαμβάνοντας το ένα byte του κειμένου τη φορά.
Συγκριτικό διάγραμμα
Βάση σύγκρισης | Αποκλεισμός κρυπτογράφου | Κρυπτογράφημα ρεύματος |
---|---|---|
Βασικός | Μετατρέπει το απλό κείμενο παίρνοντας το μπλοκ του κάθε φορά. | Μετατρέπει το κείμενο λαμβάνοντας ένα byte του απλού κειμένου κάθε φορά. |
Περίπλοκο | Απλός σχεδιασμός | Συγκρότημα συγκριτικά |
Όχι από τα χρησιμοποιούμενα bits | 64 bit ή περισσότερο | 8 Bits |
Σύγχυση και διάχυση | Χρησιμοποιεί τόσο σύγχυση όσο και διάχυση | Αναφέρεται μόνο στη σύγχυση |
Λειτουργίες αλγορίθμου που χρησιμοποιούνται | ΕΚΤ (ηλεκτρονικό βιβλίο κωδικών) CBC (Chain Block Chaining) | CFB (Cipher Feedback) OFB (Feedback εξόδου) |
Αναστρεπτό | Η αντιστροφή κρυπτογραφημένου κειμένου είναι δύσκολη. | Χρησιμοποιεί το XOR για την κρυπτογράφηση, η οποία μπορεί εύκολα να αντιστραφεί στο απλό κείμενο. |
Εκτέλεση | Feistel Cipher | Vernam Cipher |
Ορισμός του κρυπτογράφου μπλοκ
Το Block Cipher παίρνει ένα μήνυμα και το σπάει σε ένα σταθερό μέγεθος μπλοκ και μετατρέπει ένα μπλοκ του μηνύματος σε μια στιγμή. Για παράδειγμα, έχουμε ένα μήνυμα σε απλό κείμενο "STREET_BY_STREET" που απαιτείται να είναι κρυπτογραφημένο. Χρησιμοποιώντας τον κρυπτογραφητή bock, πρέπει πρώτα να κρυπτογραφηθεί το "STREET", ακολουθούμενο από το "_BY_" και τέλος το "STREET".
Στην πράξη, η επικοινωνία πραγματοποιείται μόνο σε bits. Επομένως, το STREET στην πραγματικότητα σημαίνει το δυαδικό ισοδύναμο του χαρακτήρα ASCII του STREET. Στη συνέχεια, οποιοσδήποτε αλγόριθμος κρυπτογραφεί αυτά. τα προκύπτοντα δυφία μετατρέπονται πάλι σε ισοδύναμο ASCII.
Ένα εμφανές πρόβλημα σχετικά με τη χρήση των κρυπτογραφημάτων Block είναι το επαναλαμβανόμενο κείμενο, για το οποίο παράγεται ο ίδιος κωδικός. Ως εκ τούτου, θα έδινε έναν υπαινιγμό στον κρυπτοαναλυτή, ο οποίος καθιστά ευκολότερο να καταλάβουμε τις επαναλαμβανόμενες χορδές απλού κειμένου. Ως αποτέλεσμα, μπορεί να αποκαλύψει ολόκληρο το μήνυμα.
Για να ξεπεραστεί αυτό το πρόβλημα χρησιμοποιείται ο τρόπος αλυσίδας . Στην τεχνική αυτή, το προηγούμενο τεμάχιο του κρυπτογραφικού κειμένου αναμειγνύεται με το τρέχον μπλοκ, έτσι ώστε το κείμενο του κρυπτογράφου να είναι ασαφές, αυτό αποφεύγει τα επαναλαμβανόμενα πρότυπα μπλοκ με το ίδιο περιεχόμενο.
Ορισμός του κρυπτογράφου ροής
Το Stream Cipher συνήθως κρυπτογραφεί ένα byte του μηνύματος εκείνη τη στιγμή αντί να χρησιμοποιεί μπλοκ. Ας πάρουμε ένα παράδειγμα, ας υποθέσουμε ότι το αρχικό μήνυμα (απλό κείμενο) είναι "μπλε ουρανό" στην ASCII (δηλαδή μορφή κειμένου). Όταν μετατρέπετε αυτά τα ASCII σε ισοδύναμες δυαδικές τιμές, θα δώσει την έξοδο σε μορφή 0 και 1. Αφήστε το να μεταφραστεί στο 010111001.
Για την κρυπτογράφηση και την αποκρυπτογράφηση, χρησιμοποιείται μια γεννήτρια δυαδικών ψηφίων ψευδοτυχώς, στην οποία φορτώνεται ένα κλειδί και ένα απλό κείμενο. Μια γεννήτρια δυαδικών ψηφίων δημιουργεί ένα ρεύμα αριθμών 8-bit που φαινομενικά τυχαία είναι γνωστό ως keystream . Αφήστε το πλήκτρο εισόδου να είναι 100101011. Τώρα το κλειδί και το απλό κείμενο είναι XORed. Η λογική XOR είναι απλή στην κατανόηση.
Το XOR παράγει μια έξοδο 1 όταν μία είσοδος είναι 0 και η άλλη είναι 1. Η έξοδος είναι 0 εάν και οι δύο είσοδοι είναι 0 ή και οι δύο είσοδοι είναι 1.
Η σύγχυση είναι μια μέθοδος που εγγυάται ότι ένα κείμενο κρυπτογράφησης δεν δίνει καμιά ένδειξη σχετικά με το αρχικό απλό κείμενο.
Η διάχυση είναι μια στρατηγική που χρησιμοποιείται για να ενισχύσει την πλεονασμό του απλού κειμένου με την εξάπλωσή της σε σειρές και στήλες.
Βασικές διαφορές μεταξύ του κρυπτογραφημένου πεδίου και του κρυπτογράφου ροής
- Η τεχνική κρυπτογραφικής κρυπτογράφησης περιλαμβάνει κρυπτογράφηση ενός μπλοκ κειμένου ταυτόχρονα, δηλαδή μεμονωμένα. Ομοίως, αποκρυπτογραφήστε το κείμενο κάνοντας ένα μπλοκ μετά το άλλο. Αντίθετα, η τεχνική κρυπτογράφησης Stream περιλαμβάνει κρυπτογράφηση και αποκρυπτογράφηση ενός ψηφίου του κειμένου τη φορά.
- Ο αποκλεισμός κρυπτογράφησης χρησιμοποιεί τόσο σύγχυση όσο και διάχυση, ενώ ο ρεύμα κρυπτογράφησης βασίζεται μόνο σε σύγχυση.
- Το συνηθισμένο μέγεθος του μπλοκ θα μπορούσε να είναι 64 ή 128 μπιτ στο κρυπτογραφημένο μπλοκ. Αντίθετα, 1 byte (8 bits) κάθε φορά μετατρέπεται στον κρυπτογραφημένο ρεύμα.
- Ο αποκλεισμός κρυπτογράφησης χρησιμοποιεί τους τρόπους αλγορίθμου της ΕΚΤ (ηλεκτρονικό βιβλίο κωδικών) και CBC (Chipher Block Chaining) . Αντίθετα, ο κρυπτογράφος Stream χρησιμοποιεί τους τρόπους αλγόριθμου CFB (Cipher Feedback) και OFB (Feedback Outback) .
- Ο κρυπτογραφητής ρεύματος χρησιμοποιεί τη λειτουργία XOR για τη μετατροπή του απλού κειμένου σε κείμενο κρυπτογράφησης, γι 'αυτό είναι εύκολο να αντιστρέψετε τα bits XORed. Ενώ το κρυπτογραφημένο κλειδί δεν χρησιμοποιεί το XOR για αυτό το σκοπό.
- Το κρυπτογραφημένο κλειδί χρησιμοποιεί το ίδιο κλειδί για την κρυπτογράφηση κάθε μπλοκ ενώ το ρεύμα κρυπτογράφησης χρησιμοποιεί διαφορετικό κλειδί για κάθε byte.
Συμπέρασμα:
Το Block Cipher και το Stream Cipher διαφέρουν στον τρόπο με τον οποίο το απλό κείμενο κρυπτογραφείται και αποκρυπτογραφείται. Η ιδέα πίσω από τον κρυπτογραφημένο κώδικα είναι να διαιρέσετε το απλό κείμενο σε μπλοκ και να κρυπτογραφήσετε περαιτέρω αυτά τα μπλοκ. Ενώ ο κρυπτογραφητής ρεύματος μετατρέπει bit απλού κειμένου ανά bit παρόμοια με τη ροή.