Κρυπτογράφηση δημόσιου κλειδιού: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ r2.7.2) (Ρομπότ: Τροποποίηση: hu:Nyilvános kulcsú rejtjelezés
μΧωρίς σύνοψη επεξεργασίας
Γραμμή 1:
Η '''κρυπτογράφηση δημοσίου κλειδιού (Public Key Cryptography) ή ασύμμετρου κλειδιού (Asymmetric Cryptography)''' επινοήθηκε στο τέλος της δεκαετίας του 1970 από τους [[Whitfield Diffie]] και [[Martin Hellman]] και παρέχει έναν εντελώς διαφορετικό μοντέλο διαχείρισης των κλειδιών κρυπτογράφησης. Η βασική ιδέα είναι ότι ο αποστολέας και ο παραλήπτης δεν μοιράζονται ένα κοινό μυστικό κλειδί όπως στην περίπτωση της [[Κρυπτογράφηση Συμμετρικού Κλειδιού|κρυπτογράφησης συμμετρικού κλειδιού]], αλλά διαθέτουν διαφορετικά κλειδιά για διαφορετικές λειτουργίες.
[[Εικόνα:Δημόσιο Κλειδί.png|right|thumb|300px|Ένα δημόσιο κλειδί 1024 bits το οποίο αναπαρίσταται ως μία ακολουθία αλφαριθμητικών χαρακτήρων.]]
Συγκεκριμένα κάθε χρήστης διαθέτει δύο κλειδιά κρυπτογράφησης: το ένα ονομάζεται '''ιδιωτικό κλειδί (private key)''' και το άλλο '''δημόσιο κλειδί (public key)'''. Το ιδιωτικό κλειδί θα πρέπει ο κάθε χρήστης να το προφυλάσσει και να το κρατάει κρυφό, ενώ αντιθέτως το δημόσιο κλειδί μπορεί να το ανακοινώνει σε όλη τηντη διαδικτυακή κοινότητα ή σε συγκεκριμένους παραλήπτες. Υπάρχουν δε και ειδικοί εξυπηρετητές δημοσίων κλειδιών (public key servers) στους οποίους μπορεί κανείς να απευθυνθεί για να βρει το δημόσιο κλειδί του χρήστη που τον ενδιαφέρει ή να ανεβάσει το δικό του δημόσιο κλειδί για να είναι διαθέσιμο στο κοινό.
 
Τα δύο αυτά κλειδιά (ιδιωτικό και δημόσιο) έχουν μαθηματική σχέση μεταξύ τους. Εάν το ένα χρησιμοποιηθεί για την κρυπτογράφηση κάποιου μηνύματος, τότε το άλλο χρησιμοποιείται για την αποκρυπτογράφηση αυτού. Η επιτυχία αυτού του είδους κρυπτογραφικών αλγορίθμων βασίζεται στο γεγονός ότι η γνώση του δημόσιου κλειδιού κρυπτογράφησης δεν επιτρέπει με κανέναν τρόπο τον υπολογισμό του ιδιωτικού κλειδιού κρυπτογράφησης.
 
Η κρυπτογράφηση δημοσίου κλειδιού λύνει ένα σημαντικότατο πρόβλημα που υπήρχε στους κρυπτογραφικούς αλγόριθμους συμμετρικού κλειδιού. Συγκεκριμένα, οι κρυπτογραφικοί αλγόριθμοι συμμετρικού κλειδιού χρησιμοποιούν ένα κοινό μυστικό κλειδί, το οποίο το γνωρίζουν τόσο ο αποστολέας του κρυπτογραφημένου μηνύματος όσο και ο παραλήπτης. Αυτό το κοινό μυστικό κλειδί χρησιμοποιείται κατά τηντη διαδικασία κρυπτογράφησης και αποκρυπτογράφησης του μηνύματος. Προκύπτει όμως το εξής πρόβλημα: Εάν υποθέσουμε ότι το κανάλι επικοινωνίας δεν είναι ασφαλές, τότε πως γίνεται ο αποστολέας να στείλει το κλειδί κρυπτογράφησης στον παραλήπτη για να μπορέσει αυτός με τηντη σειρά του να αποκρυπτογραφήσει το μήνυμα; Αυτό το πρόβλημα είναι ιδιαίτερα έντονο στις σύγχρονες ψηφιακές επικοινωνίες όπου σε πολλές περιπτώσεις ο αποστολέας δεν γνωρίζει καν τον παραλήπτη και απέχει από αυτόν αρκετές χιλιάδες χιλιόμετρα. Οι κρυπτογραφικοί αλγόριθμοι δημοσίου κλειδιού λύνουν αυτό το πρόβλημα και ανοίγουν νέους δρόμους για εφαρμογές της κρυπτογράφησης (ηλεκτρονικά μηνύματα, διαδικτυακές αγορές κοκ).
 
=Τρόπος Λειτουργίας=
==Δημιουργία κλειδιών==
[[Εικόνα:Γεννήτρια Κλειδιών.png|right|thumb|400px|Τρόπος λειτουργίας της γεννήτριας κλειδιών.]]
Η δημιουργία του δημόσιου και του ιδιωτικού κλειδιού γίνεται από ειδικές συναρτήσεις οι οποίες δέχονται ως είσοδο έναν μεγάλο τυχαίο αριθμό και στην έξοδο παράγουν το ζεύγος των κλειδιών. Είναι προφανές ότι όσο πιο τυχαίος είναι ο αριθμός που παρέχεται ως είσοδος στηνστη γεννήτρια κλειδιών τόσο πιο ασφαλή είναι τα κλειδιά που παράγονται. Σε σύγχρονα προγράμματα κρυπτογράφησης ο τυχαίος αριθμός παράγεται ως εξής: Κατά τηντη διαδικασία κατασκευής των κλειδιών, το πρόγραμμα σταματάει για 5 λεπτά και καλεί τον χρήστη να συνεχίσει να εργάζεται με τον υπολογιστή. ΣτηνΣτη συνέχεια για να παράξει τον τυχαίο αριθμό συλλέγει στα 5 αυτά λεπτά τυχαία δεδομένα που εξαρτώνται από τηντη συμπεριφορά του χρήστη (κινήσεις ποντικιού, πλήκτρα του πληκτρολογίου που πατήθηκαν, κύκλοι μηχανής που καταναλώθηκαν κοκ). Με βάση αυτά τα πραγματικά τυχαία δεδομένα υπολογίζεται ο τυχαίος αριθμός και εισάγεται στηνστη γεννήτρια κλειδιών για να κατασκευαστεί το δημόσιο και το ιδιωτικό κλειδί του χρήστη.
 
==Εμπιστευτικότητα==
Οι κρυπτογραφικοί αλγόριθμοι δημοσίου κλειδιού μπορούν να εγγυηθούν εμπιστευτικότητα (confidentiality), δηλαδή ότι το κρυπτογραφημενο μήνυμα που θα στείλει ο αποστολέας μέσω του διαδικτύου στον παραλήπτη θα είναι αναγνώσιμο από αυτόν και μόνο. Για να επιτευχθεί η εμπιστευτικότητα, ο αποστολέας θα πρέπει να χρησιμοποιήσει το δημόσιο κλειδί του παραλήπτη για να κρυπτογραφήσει το μήνυμα. ΣτηνΣτη συνέχεια στέλνει το κρυπτογραφημένο μήνυμα στον παραλήπτη και ο τελευταίος μπορεί να το αποκρυπτογραφήσει με το ιδιωτικό κλειδί του. Δεδομένου ότι το ιδιωτικό κλειδί του παραλήπτη είναι γνωστό μονάχα στον ίδιο και σε κανέναν άλλον, μονάχα ο παραλήπτης μπορεί να αποκρυπτογραφήσει το μήνυμα και να το διαβάσει. Άρα λοιπόν με αυτόν τον τρόπο ο αποστολέας γνωρίζει ότι το κρυπτογραφημένο μήνυμα μπορεί να αποκρυπτογραφηθεί μονάχα από τον παραλήπτη και έτσι διασφαλίζεται η εμπιστευτικότητα του μηνύματος.
[[Εικόνα:Κρυπτογράφηση Δημόσιου Κλειδιού - Εμπιστευτικότητα.png|center|thumb|800px|Επίτευξη εμπιστευτικότητας αλλά όχι πιστοποίησης χρησιμοποιώντας κρυπτογραφικούς αλγόριθμους δημοσίου κλειδιού.]]
 
Γραμμή 19:
 
==Πιστοποίηση==
Χρησιμοποιώντας κατάλληλα τους κρυπτογραφικούς αλγορίθμους δημοσίου κλειδιού μπορεί να επιτευχθεί πιστοποίηση (authentication), δηλαδή ο παραλήπτης να γνωρίζει με ασφάλεια την ταυτότητα του αποστολέα. Για να επιτευχθεί αυτό θα πρέπει ο αποστολέας να χρησιμοποιήσει το ιδιωτικό του κλειδί για την κρυπτογράφηση του μηνύματος. ΣτηνΣτη συνέχεια στέλνει το μήνυμα στον παραλήπτη και ο τελευταίος χρησιμοποιεί το δημόσιο κλειδί του αποστολέα για την αποκρυπτογράφησή του. Δεδομένου ότι το ιδιωτικό κλειδί του αποστολέα είναι γνωστό μονάχα στον ίδιο, ο παραλήπτης μπορεί να είναι σίγουρος για την ταυτότητα του αποστολέα.
[[Εικόνα:Κρυπτογράφηση Δημόσιου Κλειδιού - Αυθεντικοποίηση.png|center|thumb|800px|Επίτευξη αυθεντικοποίησης αλλά όχι εμπιστευτικότητας χρησιμοποιώντας κρυπτογραφικούς αλγόριθμους δημοσίου κλειδιού.]]
Παρόλο που η παραπάνω μέθοδος εγγυάται την ταυτοποίηση του αποστολέα, δεν δύναται να εγγυηθεί την εμπιστευτικότητα του μηνύματος. Πράγματι, το μήνυμα μπορεί να το αποκρυπτογραφήσει οποιοσδήποτε διαθέτει το δημόσιο κλειδί του αποστολέα. Όπως έχει ήδη ειπωθεί, το δημόσιο κλειδί είναι γνωστό σε όλη τηντη διαδικτυακή κοινότητα, άρα πρακτικά ο οποιοσδήποτε μπορεί να διαβάσει το περιεχόμενο του μηνύματος.
 
==Εμπιστευτικότητα και Πιστοποίηση==
Συνδυάζοντας τις δύο τεχνικές που παρουσιάστηκαν παραπάνω είναι εφικτό να επιτύχουμε εμπιστευτικότητα του μηνύματος και πιστοποίηση του αποστολέα. Δηλαδή αφενός το μήνυμα παραμένει γνωστό μονάχα στον αποστολέα και τον παραλήπτη και αφετέρου ο παραλήπτης γνωρίζει με ασφάλεια ποιος του έστειλε το μήνυμα. Για να επιτευχθεί αυτό ο αποστολέας μπορεί να κρυπτογραφήσει το μήνυμα πρώτα με το δικό του ιδιωτικό κλειδί και στηνστη συνέχεια με το δημόσιο κλειδί του παραλήπτη. Όταν ο παραλήπτης λάβει το μήνυμα θα πρέπει να χρησιμοποιήσει το ιδιωτικό του κλειδί για να το αποκρυπτογραφήσει (εμπιστευτικότητα) και στηνστη συνέχεια να αποκρυπτογραφήσει το αποτέλεσμα χρησιμοποιώντας το δημόσιο κλειδί του αποστολέα (πιστοποίηση).
 
==Παράδειγμα από καθημερινή ζωή==
Γραμμή 34:
Το πρόβλημα εδώ είναι ότι το κλειδί για το λουκέτο είναι κοινό και για την Alice και για τον Bob και για να δώσει αντίγραφο του κλειδιού ο ένας με τον άλλον θα πρέπει να συναντηθούν γιατί δεν είναι ασφαλές να το στείλουν με το δημόσιο ταχυδρομείο (ίσως τότε κάποια διεφθαρμένη υπάλληλος του ταχυδρομείου, π.χ. η [[Alice και Bob|Mallory]] θα μπορούσε να υποκλέψει το κλειδί και να δημιουργήσει ένα αντίγραφο ώστε στο μέλλον να υποκλέπτει ή να παραποιεί τα μηνύματα που ανταλλάσσονται στο κουτί).
 
Στην πράξη της ασυμμετρικής κρυπτογραφίας, ο Bob και η Alice έχουν ξεχωριστές κλειδαριές. Πρώτα η Alice βάζει το μυστικό μήνυμα στο κουτί, το κλειδώνει με το λουκέτο που έχει μόνο αυτή κλειδί. Το στέλνει το κουτί στον Bob με απλό δημόσιο ταχυδρομείο. Όταν ο Bob λαμβάνει το κουτί, προσθέτει το δικό του λουκέτο στο κουτί και στο στέλνει πίσω στην Alice. Η Alice λαμβάνει το κουτί με δύο λουκέτα, αφαιρεί το δικό της λουκέτο και το στέλνει πίσω στον Bob. Όταν ο Bob λαμβάνει το κουτί έχει πάνω μόνο το δικό του λουκέτο, το οποίο μπορεί να ξεκλειδώσει και να δει το μήνυμα της Alice. Σε αυτό το παράδειγμα η διαδικασία της αποκρυπτογραφίας είναι ίδια με τηντη διαδικασία της κρυπτογραφίας.
 
Η κρίσιμη διαφορά στο κλειδί ασυμμετρικής κρυπτογράφησης είναι ότι η Alice και ο Bob ποτέ δεν χρειάζεται να στείλουν αντίγραφο του κλειδιού ο ένας στον άλλον. Σε αυτό την περίπτωση αποφεύγουμε την περίπτωση της διεφθαρμένης υπάλληλου στο ταχυδρομείο, την Mallory η οποία ενδέχεται να υποκλέψει το κλειδί κατά τηντη μεταφορά. Σε αυτή την περίπτωση η Alice και ο Bob δεν χρειάζεται να εμπιστευτούν το δημόσιο ταχυδρομείο. Επιπρόσθετα ο Bob επιτρέπει σε όποιον επιθυμεί να αντιγράψει το κλειδί του και τα μηνύματα της Alice προς τον Bob θα είναι εκτεθειμένα σε κίνδυνο υποκλοπής. Όμως όλα τα μηνύματα της Alice προς άλλους θα είναι μυστικά, αφού οι υπόλοιποι θα παρέχουν διαφορετικά λουκέτα για να κλειδώσει η Alice το μήνυμα στο κουτί πριν το στείλει σε αυτούς.
 
==Ψηφιακές Υπογραφές==
{{Κύριο|Ψηφιακή υπογραφή}}
[[Image:Digital_Signature_diagram_el.svg|thumb|500px|right|Διάγραμμα χρήσης ψηφιακής υπογραφής.]]
Η κρυπτογράφηση δημόσιου κλειδιού μαζί με την [[Κρυπτογραφική Συνάρτηση Κατατεμαχισμού|συνάρτηση κατατεμαχισμού (hash function)]] βρίσκει εφαρμογή στις [[Ψηφιακή υπογραφή|ψηφιακές υπογραφές]]. Υπολογίζεται με την [[Κρυπτογραφική Συνάρτηση Κατατεμαχισμού|συνάρτηση κατεμαχισμού, η σύνοψη (digest)]] του μηνύματος/εγγράφου.Στην Στη συνέχεια η σύνοψη κρυπτογραφείται με το ιδιωτικό κλειδί του αποστολέα (ο οποίος με αυτήν την ενέργεια υπογράφει ψηφιακά το μήνυμα έγγραφο). Η κρυπτογραφημένη σύνοψη είναι η [[Ψηφιακή υπογραφή|ψηφιακή υπογραφή]] η οποία επισυνάπτεται στο μήνυμα/έγγραφο. Μαζί με την ψηφιακή υπογραφή μπορεί να επισυναφθεί και ένα πιστοποιητικό του δημόσιου κλειδιού (το οποίο έχει εκδοθεί από κάποιο αξιόπιστο πάροχο/οργανισμό υπηρεσιών πιστοποίησης: το πιστοποιητικό ταυτοποιεί ένα δημόσιο κλειδί με τον δικαιούχο του). ΣτηνΣτη διαδικασία ελέγχου της ψηφιακής υπογραφής, ξεχωρίζεται η ψηφιακή υπογραφή από το μήνυμα/έγγραφο. Η ψηφιακή υπογραφή αποκρυπτογραφείται με το δημόσιο κλειδί του αποστολέα και εξάγεται η σύνοψη. Παράλληλα υπολογίζεται η σύνοψη του ληφθέντος μηνύματος/εγγράφου. Αν οι δύο συνόψεις είναι ίδιες σημαίνει ότι το μήνυμα/έγγραφο έχει την υπογραφή του αποστολέα (που ανήκει το δημόσιο κλειδί) και ότι το μήνυμα/έγγραφο δεν έχει παραποιηθεί κατά τηντη μεταφορά.
 
=Δείτε Επίσης=