\section{Κρυπτογραφία ασύμμετρου κλειδιού}

\subsection{Ασύμμετρη κρυπτογραφία}

% TODO

\subsection{OpenPGP}

% Παλιό από Drive
Το Pretty Good Privacy (PGP) αποτελεί λογισμικό κρυπτογράφησης υψηλής ασφαλείας βασισμένο στην τεχνολογία που καλείται κρυπτογράφηση "δημοσίων κλειδιών" (public key). Επιτρέπει την ανταλλαγή αρχείων και μηνυμάτων διασφαλίζοντας το απόρρητο και την ταυτότητα σε συνδυασμό με την ευκολία λειτουργίας.

\begin{itemize}
    \item Διασφάλιση του απορρήτου σημαίνει ότι μόνο αυτός για τον οποίο προορίζεται ένα μήνυμα είναι ικανός να το αποκρυπτογραφήσει και να το διαβάσει.
    \item Πιστοποίηση της ταυτότητας σημαίνει ότι μηνύματα που φαίνεται πως έχουν προέλθει από κάποιο άτομο μπορούν να έχουν προέλθει μόνο από αυτό το άτομο.
    \item Ευκολία σημαίνει ότι η διασφάλιση του απόρρητου και η πιστοποίησης της ταυτότητας παρέχονται χωρίς την πολυπλοκότητα της διαχείρισης κλειδιών η οποία σχετίζεται με τη συμβατική κρυπτογραφία.
\end{itemize}

Στα κρυπτοσυστήματα δημοσίων κλειδιών ο καθένας έχει δυο συμπληρωματικά κλειδιά. Ένα που δίδεται δημόσια (public key) και ένα μυστικό (private key). Βασικά χαρακτηριστικά των δύο κλειδιών είναι ότι: 1) οτιδήποτε κρυπτογραφηθεί με το ένα αποκρυπτογραφείται μόνο από το άλλο και 2) το ένα δεν προκύπτει από το άλλο.

% TODO: insert diagram

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

Επίσης παρέχεται υπηρεσία πιστοποίησης του μηνύματος. Το μυστικό κλειδί του αποστολέα μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση του μηνύματος άρα και για την υπογραφή του. Έτσι δημιουργείται μια ψηφιακή υπογραφή του μηνύματος την οποία ο παραλήπτης ή οποιοσδήποτε άλλος μπορεί να ελέγξει χρησιμοποιώντας το δημόσιο κλειδί του αποστολέα για να την αποκρυπτογραφήσει. Αυτό αποδεικνύει ότι ο αποστολέας ήταν ο πραγματικός δημιουργός του μηνύματος και ότι το μήνυμα δεν αλλοιώθηκε από κάποιον άλλον διότι μόνο ο αποστολέας έχει στην κατοχή του το μυστικό κλειδί που έφτιαξε την υπογραφή.

% TODO: insert diagram

Γίνεται προφανές ότι χρησιμοποιώντας κάποιο hash αντί πραγματικών ονομάτων μπορούμε εγγυηθούμε την ανωνυμία του χρήστη αφού μόνο ένα φαινομενικά τυχαίο string είναι δημόσια διαθέσιμο. Αν ταυτόχρονα συνδέσουμε το hash με ένα PGP public key εγγυόμαστε την ταυτοποίηση του χρήστη καθώς μόνο ο κάτοχος του private κλειδιού μπορεί να υπογράψει ορθά ένα μήνυμα.
