Επεκτάσεις εντολών SHA
Ονομάζεται επίσης SHA
Η αρχική επέκταση x86 SHA επιταχύνει επιλεγμένες λειτουργίες που χρησιμοποιούνται στους αλγορίθμους SHA-1 και SHA-256. Μια γενική ένδειξη δυνατότητας SHA δεν θεμελιώνει υποστήριξη υλικού για κάθε αλγόριθμο SHA.
Τι πρέπει να γνωρίζετε
Η αρχική επέκταση x86 SHA επιταχύνει επιλεγμένες λειτουργίες που χρησιμοποιούνται στους αλγορίθμους SHA-1 και SHA-256. Μια γενική ένδειξη δυνατότητας SHA δεν θεμελιώνει υποστήριξη υλικού για κάθε αλγόριθμο SHA.
Πώς λειτουργεί
Η αρχική επέκταση παρέχει εντολές για το χρονοδιάγραμμα μηνυμάτων (message-schedule) και την επεξεργασία γύρων για τους SHA-1 και SHA-256. Το λογισμικό εξακολουθεί να εκτελεί την προσθήκη πλήρωσης (padding), τη διαχείριση μπλοκ και την πλήρη κατασκευή του κατακερματισμού. Ο SHA-256 ανήκει στην οικογένεια SHA-2, αλλά οι SHA-512 και SHA-3 έχουν διαφορετικούς αλγορίθμους και δεν πρέπει να συνάγονται από το αρχικό bit δυνατότητας.
Πού είναι χρήσιμο
Μια βιβλιοθήκη κατακερματισμού μπορεί να επιλέξει μια εξειδικευμένη ρουτίνα συμπίεσης SHA-256 όταν η επέκταση είναι αξιοποιήσιμη. Τα μικρά μηνύματα ενδέχεται να αφιερώνουν σημαντικό χρόνο στην προετοιμασία και στον περιβάλλοντα κώδικα, ενώ οι μεγαλύτεροι φόρτοι εργασίας εξαρτώνται επίσης από τη μνήμη και τον παραλληλισμό.
Πώς να ελέγξετε την υποστήριξη και την ενεργοποίηση
Για την αρχική επέκταση SHA, ελέγξτε το CPUID.07H.00H:EBX bit 29 μετά την επικύρωση της υποστήριξης του leaf. Επαληθεύστε τον αλγόριθμο και την ακριβή οικογένεια εντολών που ζητούνται από τη βιβλιοθήκη, και όχι απλώς μια γενική ετικέτα sha που εμφανίζεται από ένα βοηθητικό πρόγραμμα.
Χρησιμοποιήστε μια συντηρούμενη κρυπτογραφική υλοποίηση που χειρίζεται την επιλογή δυνατοτήτων, τις συνθήκες αποτυχίας και τον πλήρη αλγόριθμο. Η επιτάχυνση υλικού παρέχει πρωταρχικά στοιχεία (primitives)· η διαχείριση κλειδιών, ο έλεγχος ταυτότητας, οι κανόνες nonce και οι επιλογές πρωτοκόλλου παραμένουν ευθύνες του λογισμικού.
Τι δεν καθορίζει η δυνατότητα
Η ύπαρξη μιας εντολής δεν καθιστά τον SHA-1 κατάλληλο για ένα νέο πρωτόκολλο ασφαλείας. Η επιτάχυνση υλικού δεν μεταβάλλει την αντοχή ενός αλγορίθμου σε συγκρούσεις ούτε διορθώνει τον μη ασφαλή σχεδιασμό πρωτοκόλλων. Οι μεταγενέστερες επεκτάσεις SHA512 έχουν ξεχωριστή απαρίθμηση.
Συμβατότητα και απόδοση στην πράξη
Ένα πεδίο δυνατότητας δεν αποτελεί πιστοποίηση προϊόντος ούτε απόδειξη ότι μια συγκεκριμένη εφαρμογή είναι ασφαλής. Η απόδοση εξαρτάται από τα μεγέθη των μηνυμάτων, τη λειτουργία (mode), την ομαδοποίηση (batching) και το υπόλοιπο πρωτόκολλο. Ελέγξτε τον πραγματικό πάροχο και διατηρείτε ενημερωμένες τις ενημερώσεις ασφαλείας του.
Μια πρακτική λίστα ελέγχου επαλήθευσης
- Καταγράψτε το ακριβές μοντέλο επεξεργαστή ή πλατφόρμας και τις εμπλεκόμενες εκδόσεις εφαρμογής, λειτουργικού συστήματος και περιβάλλοντος εκτέλεσης (runtime). Διατηρήστε τη διατύπωση του πραγματικού σφάλματος ή της απαίτησης.
- Ελέγξτε τις αναφορές του κατασκευαστή για το συγκεκριμένο μοντέλο και, στη συνέχεια, εξετάστε την πραγματική δυνατότητα και την ενεργοποιημένη κατάσταση στο περιβάλλον όπου εκτελείται το πρόγραμμα.
- Συγκρίνετε κάθε απαίτηση του επιλεγμένου εκτελέσιμου αρχείου (binary) ή του backend. Μια δυνατότητα με παρόμοιο όνομα, ένα ψευδώνυμο ή μια ευρεία ετικέτα τεχνολογίας δεν επαρκεί.
- Επιβεβαιώστε ότι η εφαρμογή επέλεξε την προβλεπόμενη υλοποίηση. Χρησιμοποιήστε τα τεκμηριωμένα διαγνωστικά της και μια υποστηριζόμενη εναλλακτική λύση (fallback) όταν δεν πληρούνται οι απαιτήσεις.
- Κάντε μία υποστηριζόμενη αλλαγή τη φορά και επαναλάβετε τον ίδιο φόρτο εργασίας. Διατηρήστε διαθέσιμη την αρχική διαμόρφωση και τη διαδρομή επαναφοράς.
Εάν η δυνατότητα αναφέρεται αλλά το λογισμικό δεν μπορεί να τη χρησιμοποιήσει
Ξεκινήστε με το ακριβές στοιχείο που αποτυγχάνει. Μια βάση δεδομένων υλικού περιγράφει την καταγεγραμμένη δυνατότητα· το λειτουργικό σύστημα ή ο hypervisor μπορεί να εκθέσει ένα διαφορετικό πραγματικό περιβάλλον. Ένα σφάλμα μη έγκυρης εντολής (illegal-instruction error) απαιτεί επίσης διερεύνηση της πραγματικής εντολής που προκάλεσε το σφάλμα και της έκδοσης του εκτελέσιμου (binary build), καθώς η αλλοίωση δεδομένων ή μια άσχετη μη υποστηριζόμενη εντολή μπορεί να προκαλέσει παρόμοιο σύμπτωμα.
Εγκαταστήστε την έκδοση της εφαρμογής, του προγράμματος οδήγησης ή του περιβάλλοντος εκτέλεσης που υποστηρίζεται για την ακριβή πλατφόρμα και χρησιμοποιήστε τη βασική γραμμή (baseline) ή την εναλλακτική έκδοση (fallback build) που τεκμηριώνει ο κατασκευαστής, εάν χρειάζεται. Μια ενημέρωση λογισμικού δεν μπορεί να δημιουργήσει μια εντολή που λείπει από τον επεξεργαστή. Οι αλλαγές στο υλικολογισμικό (firmware) και στην πολιτική ασφαλείας θα πρέπει να ακολουθούν τη διαδικασία του κατασκευαστή του συστήματος και ένα σχέδιο επαναφοράς και όχι μια γενική συνταγή βελτιστοποίησης.
Πηγές και πεδίο εφαρμογής αυτής της επεξήγησης
Intel 64 and IA-32 Architectures Software Developer's Manual · NIST Secure Hash Standard, FIPS 180-4
Αυτές οι αναφορές καθορίζουν την αρχιτεκτονική συμπεριφορά και τις απαιτήσεις λογισμικού. Δεν επαληθεύουν ανεξάρτητα κάθε τιμή δυνατότητας σε μια συνδεδεμένη σελίδα μοντέλου υλικού. Για την υποστήριξη του μοντέλου, χρησιμοποιήστε τα στοιχεία τεκμηρίωσης του κατασκευαστή αυτής της σελίδας και ελέγξτε την πραγματική διαμόρφωση του συστήματος. Αυτό το άρθρο δεν παρέχει ημερομηνία δοκιμής επιδόσεων (benchmark), πιστοποίησης ή ανεξάρτητης αξιολόγησης.
Πηγές και επαλήθευση
Συντακτική ιδιοκτησία: Feex. Δεν έχει καταγραφεί ημερομηνία ανεξάρτητης αναθεώρησης. Πώς ερευνούμε.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Οι τόμοι 1 και 2 περιγράφουν τις κατονομαζόμενες οικογένειες εντολών και το CPUID· ο τόμος 3 περιγράφει την κατάσταση, τη σελιδοποίηση, το VMX και τους ελέγχους προστασίας. Η τεκμηρίωση αρχιτεκτονικής δεν καθορίζει την υποστήριξη για ένα συγκεκριμένο μοντέλο.
- NIST Secure Hash Standard, FIPS 180-4 · Ορίζει τους επώνυμους αλγορίθμους SHA. Οι ορισμοί των αλγορίθμων δεν υποδηλώνουν ότι η αρχική επέκταση x86 SHA επιταχύνει κάθε μέλος.
Ήταν χρήσιμο αυτό το άρθρο;
Ένα ναι ή όχι είναι αρκετό. Επιλέξτε έναν λόγο εάν θέλετε ή προσθέστε μια σύντομη σημείωση.
Ευχαριστούμε. Αυτό μας βοηθά να βελτιώσουμε αυτή τη σελίδα.