Τι είναι η κρυπτογράφηση με δημόσιο κλειδί;
Αρχική σελίδα
Άρθρα
Τι είναι η κρυπτογράφηση με δημόσιο κλειδί;

Τι είναι η κρυπτογράφηση με δημόσιο κλειδί;

Έχει δημοσιευτεί Jan 31, 2019Έχει ενημερωθεί Nov 8, 2022
5m

Εισαγωγή

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


Πώς λειτουργεί η κρυπτογράφηση με δημόσιο κλειδί;

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

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

Στο πλαίσιο RSA, τα κλειδιά δημιουργούνται χρησιμοποιώντας ένα υπόλοιπο διαίρεσης που προκύπτει από τον πολλαπλασιασμό δύο αριθμών (συχνά δύο μεγάλων πρώτων αριθμών). Με απλά λόγια, το υπόλοιπο διαίρεσης χρησιμοποιεί δύο κλειδιά (ένα δημόσιο που μπορεί να κοινοποιηθεί και ένα ιδιωτικό που πρέπει να παραμείνει μυστικό). Ο αλγόριθμος RSA περιγράφηκε για πρώτη φορά το 1977 από τους Rivest, Shamir και Adleman (γι' αυτό πήρε το όνομα RSA) και παραμένει ένα σημαντικό στοιχείο των συστημάτων κρυπτογράφησης δημόσιου κλειδιού.


Το PKC ως εργαλείο κρυπτογράφησης

Η κρυπτογράφηση δημόσιου κλειδιού λύνει ένα από τα μακροχρόνια προβλήματα των συμμετρικών αλγορίθμων, το οποίο είναι η κοινοποίηση του κλειδιού που χρησιμοποιείται τόσο για την κρυπτογράφηση όσο και για την αποκρυπτογράφηση. Η αποστολή αυτού του κλειδιού μέσω μιας μη ασφαλούς σύνδεσης, ενέχει τον κίνδυνο να το εκθέσει σε τρίτους, οι οποίοι στη συνέχεια μπορούν να διαβάσουν τυχόν μηνύματα που είναι κρυπτογραφημένα με το κλειδί που κοινοποιήθηκε. Παρόλο που υπάρχουν τεχνικές κρυπτογράφησης (όπως το πρωτόκολλο ανταλλαγής κλειδιών Diffie-Hellman-Merkle) για την επίλυση αυτού του προβλήματος, εξακολουθούν να είναι ευάλωτες σε επιθέσεις. Αντίθετα, στην κρυπτογράφηση δημόσιου κλειδιού, το κλειδί που χρησιμοποιείται για την κρυπτογράφηση μπορεί να κοινοποιηθεί με ασφάλεια σε οποιαδήποτε σύνδεση. Ως αποτέλεσμα, οι ασύμμετροι αλγόριθμοι προσφέρουν υψηλότερο επίπεδο προστασίας σε σύγκριση με τους συμμετρικούς.


Δημιουργία ψηφιακών υπογραφών

Μια άλλη εφαρμογή των ασύμμετρων αλγορίθμων κρυπτογράφησης είναι ο έλεγχος ταυτότητας δεδομένων μέσω της χρήσης ψηφιακών υπογραφών. Βασικά, μια ψηφιακή υπογραφή είναι ένα hash που δημιουργείται χρησιμοποιώντας τα δεδομένα ενός μηνύματος. Όταν αυτό το μήνυμα αποστέλλεται, ο παραλήπτης μπορεί να ελέγξει την υπογραφή χρησιμοποιώντας το δημόσιο κλειδί του αποστολέα. Με αυτόν τον τρόπο, μπορεί να πιστοποιήσει την πηγή του μηνύματος και να διασφαλίσει ότι δεν έχει αλλοιωθεί. Σε ορισμένες περιπτώσεις, οι ψηφιακές υπογραφές και η κρυπτογράφηση εφαρμόζονται μαζί, πράγμα που σημαίνει ότι το ίδιο το hash μπορεί να κρυπτογραφηθεί ως μέρος του μηνύματος. Ωστόσο, πρέπει να σημειωθεί ότι δεν χρησιμοποιούν τεχνικές κρυπτογράφησης όλα τα πλαίσια ψηφιακών υπογραφών.


Περιορισμοί

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


Εφαρμογές κρυπτογράφησης δημόσιου κλειδιού

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

Το πρωτόκολλο ασφαλούς στρώματος υποδοχών (secure sockets layer, SSL) που επιτρέπει τις ασφαλείς συνδέσεις σε ιστότοπους χρησιμοποιεί επίσης ασύμμετρη κρυπτογράφηση. Τα συστήματα PKC έχουν εξεταστεί ακόμη και ως μέσο για την παροχή ενός ασφαλούς περιβάλλοντος ηλεκτρονικής ψηφοφορίας που θα επέτρεπε ενδεχομένως στους ψηφοφόρους να συμμετέχουν στις εκλογές από τους υπολογιστές τους.

Το PKC έχει σημαντική θέση και στην τεχνολογία blockchain και κρυπτονομισμάτων. Όταν διαμορφώνεται ένα νέο πορτοφόλι κρυπτονομισμάτων, δημιουργείται ένα ζεύγος κλειδιών (δημόσια και ιδιωτικά κλειδιά). Η διεύθυνση του πορτοφολιού δημιουργείται χρησιμοποιώντας το δημόσιο κλειδί και μπορεί να κοινοποιηθεί με ασφάλεια σε άλλους. Αντιθέτως, το ιδιωτικό κλειδί χρησιμοποιείται για τη δημιουργία ψηφιακών υπογραφών και την επαλήθευση συναλλαγών, και επομένως, πρέπει να διατηρηθεί μυστικό. 

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

Θα πρέπει να σημειωθεί ότι η ασύμμετρη κρυπτογράφηση που χρησιμοποιείται σε εφαρμογές κρυπτονομισμάτων διαφέρει από αυτές που χρησιμοποιούνται για την ασφάλεια υπολογιστών. Για παράδειγμα, το Bitcoin και το Ethereum, χρησιμοποιούν έναν συγκεκριμένο αλγόριθμο για την επαλήθευση συναλλαγών που είναι γνωστός ως Αλγόριθμος ψηφιακής υπογραφής ελλειπτικής καμπύλης (Elliptic Curve Digital Signature Algorithm ή ECDSA). Επίσης, ο αλγόριθμος ECDSA δημιουργεί ψηφιακές υπογραφές χωρίς τη χρήση κρυπτογράφησης. Αυτό σημαίνει ότι το blockchain δεν χρειάζεται κρυπτογράφηση, σε αντίθεση με αυτό που πιστεύουν πολλοί.


Συμπεράσματα

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