15 49.0138 8.38624 1 0 4000 1 https://www.frank-gehry.com 300 0
theme-sticky-logo-alt
theme-logo-alt

Όλα για αλγόριθμους κατακερματισμού και πώς λειτουργούν

Σήμερα, θα εξηγήσουμε πώς λειτουργούν οι αλγόριθμοι κατακερματισμού και ποια είναι η λειτουργία τους σε κρυπτογράφηση.

Τι είναι κατακερματισμός?

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

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

Αποτέλεσμα εικόνας για bitcoin αξία κατακερματισμούΠηγή: επάνδρωση

Λειτουργία κατακερματισμού

Η μαθηματική συνάρτηση που μετατρέπει τα δεδομένα εισόδου, τα οποία είναι αυθαίρετου μήκους, σε μια συμπιεσμένη αριθμητική τιμή, που είναι η έξοδος ενός σταθερού μήκους, ονομάζεται συνάρτηση κατακερματισμού. Η αριθμητική έξοδος ονομάζεται τιμή κατακερματισμού ή κατακερματισμός.

Αποτέλεσμα εικόνας για κρυπτογράφηση hash valueΠηγή: ResearchGate

Το μήκος εξόδου ή κατακερματισμού υπαγορεύεται από τον αλγόριθμο κατακερματισμού που χρησιμοποιείται. Το κοινό εύρος μήκους για αλγόριθμους κατακερματισμού ή συναρτήσεις κυμαίνεται μεταξύ 160 και 512 bit.

Τιμή κατακερματισμού

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

Αρχείο: Πίνακας κατακερματισμού 4 1 1 0 0 1 0 LL.svgΠηγή: Wikipedia

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

Τι είναι οι αλγόριθμοι κατακερματισμού; Πώς λειτουργούν οι αλγόριθμοι κατακερματισμού?

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

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

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

Αρχείο: Cryptographic Hash Function.svgΠηγή: wikipedia

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

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

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

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

Μια καλή λειτουργία κατακερματισμού πρέπει να είναι σε θέση:

  • Υπολογίστε με γρήγορες ταχύτητες την τιμή κατακερματισμού οποιουδήποτε είδους δεδομένων.
  • Να είναι αδύνατο να αναδρομήσετε ή να υπολογίσετε οποιοδήποτε μήνυμα από αυτό (η επίθεση brute force είναι η μόνη επιλογή).
  • Να είστε ανθεκτικοί έναντι των «επιθέσεων πριν από την εικόνα» (στις οποίες οι χάκερ προσπαθούν να αναπαράγουν την τιμή που δημιούργησε το κατακερματισμό).
  • Αποφύγετε τις συγκρούσεις κατακερματισμού. κάθε μήνυμα πρέπει να έχει το δικό του μοναδικό κατακερματισμό.
  • Αποτέλεσμα σε μια χιονοστιβάδα όταν πραγματοποιείται μια αλλαγή οπουδήποτε στο μήνυμα.

Κοινοί αλγόριθμοι κατακερματισμού

MD5

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

SHA-οικογένεια

Αναπτύχθηκε από την NSA, ο αλγόριθμος Secure Hash είναι μια οικογένεια συναρτήσεων κρυπτογραφικού κατακερματισμού. Ο πρώτος αλγόριθμος τους, SHA-0 (κυκλοφόρησε το 1993), είναι πλέον παρωχημένος εδώ και δεκαετίες.

Το SHA-1 (1995) δημιούργησε μια τιμή κατακερματισμού 160-bit (20-byte) και έφερε μόνο μια μικρή βελτίωση στο MD5, το οποίο έκανε την έξοδο έναν δεκαεξαδικό αριθμό μήκους 40 ψηφίων. Επίσης, λόγω των θεωρητικών συγκρούσεων, ο αλγόριθμος διακυβεύτηκε το 2005, αλλά η μαζική αντικατάστασή του έγινε το 2010.

Το SHA-2 είναι η έκδοση αλγορίθμου που εξακολουθεί να χρησιμοποιείται και θεωρείται ασφαλής. Η οικογένεια SHA-2 αποτελείται από έξι λειτουργίες κατακερματισμού: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.

Το 2006 διαγωνισμός που διοργάνωσε η Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας (NIST), Το SHA-3, αναπτύχθηκε. Το SHA-3 έγινε πρότυπο το 2015 και ακόμη και αν ονομάστηκε ως οι υπόλοιποι αλγόριθμοι NSA, ανήκει στην πραγματικότητα σε μια οικογένεια αλγορίθμων κατακερματισμού γνωστών ως KECCAK (προφέρεται ketch-ak).

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

Κατακερματισμός και πώς χρησιμοποιείται στο Blockchain

Προκειμένου να κατακερματιστούν τα δεδομένα, το Bitcoin χρησιμοποιεί το SHA256, ενώ το Ethereum χρησιμοποιεί επί του παρόντος μια παραλλαγή του SHA-3 (KECCAK256). Ο αλγόριθμος απόδειξης εργασίας του Ethereum, Dagger-Hashimoto, υπολογίστηκε ότι είναι σκληρός στη μνήμη για υπολογισμό υλικού.

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

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

συμπέρασμα

Ελπίζουμε ότι τώρα γνωρίζετε πώς λειτουργούν οι αλγόριθμοι κατακερματισμού και πώς αυτός ο τύπος κρυπτογράφησης σχετίζεται με το crypto και το blockchain.

Προτεινόμενη εικόνα: Steemit

Previous Post
קזינו DuckDice: משחק קוביות ביטקוין חדש עם ברז ביטקוין!
Next Post
أفضل 10 طرق لشراء Bitcoin ببطاقة مسبقة الدفع