Πέμπτη, 18 Νοεμβρίου 2010

Κρυπτογράφηση

Οι γενικές έννοιες ανταλλαγής κρυπτογραφημένων μηνυμάτων είναι οι εξής.
Έχουμε δύο μέρη που επικοινωνούν, αλλά θέλουν κάποια μηνύματά τους να είναι κρυπτογραφημένα.
Η κρυπτογράφηση του μηνύματος γίνεται με χρήση ενός μόνο Κλειδιού (Συμμετρική Κρυπτογράφηση), ή ενός Δημόσιου κλειδιού και ενός Ιδιωτικού κλειδιού (Μη Συμμετρική Κρυπτογράφηση).

Συμμετρική Κρυπτογράφηση (Symmetric Cryptography)

Υπάρχει μόνο ένα Κλειδί Key, που ανταλλάσσουν τα δύο άκρα της επικοινωνίας (ας πούμε ο Πελάτης Cust και η Τράπεζα Bank), το οποίο ισχύει μόνο για την διάρκεια μιάς σύνδεσης (session).
Το Μήνυμα Mesg κρυπτογραφείται με απλή εφαρμογή του κλειδιού, αλλά η δεύτερη εφαρμογή το επαναφέρει, ισχύει δηλαδή Mesg = { { Mesg * Key } * Key }.
Ο αποστολέας στέλνει κρυπτογραφημένο μήνυμα CryptoMesg = { Mesg * Key }, και
ο παραλήπτης το αποκρυπτογραφεί με εφαρμογή του ίδιου κλειδιού Mesg = { CryptoMesg * Key }.

Μη Συμμετρική Κρυπτογράφηση (Asymmetric Cryptography)

Υπάρχουν δύο είδη κλειδιών, το Δημόσιο Κλειδί ΔημΚλ και το ιδιωτικό Κλειδί ΙδιΚλ, που διαθέτουν το καθένα από τα δύο άκρα της επικοινωνίας (ας πούμε ο Πελάτης Πελ και η Τράπεζα Τρα), (δηλαδή υπάρχουν τέσσερα κλειδιά ΔημΚλΠελ, ΙδιΚλΠελ, ΔημΚλΤρα, ΙδιΚλΤρα).

Ο Πελάτης στέλνει (πιθανόν με συμμετρική κρυπτογράφηση) το δημόσιο κλειδί του ΔημΚλΠελ.
Η Τράπεζα στέλνει (πιθανόν με συμμετρική κρυπτογράφηση) το δημόσιο κλειδί της ΔημΚλΤρα.

Η Τράπεζα στέλνει το μήνυμά της ΜηνΤρα, κρυπτογραφώντας το με το ιδιωτικό κλειδί της ΙδιΚλΤρα, ως κρυπτογραφημένο μήνυμα ΚρυπτοΜηνΤρα = { ΜηνΤρα * ΙδιΚλΤρα }, και
ο Πελάτης το αποκρυπτογραφεί χρησιμοποιώντας το δημόσιο κλειδί της Τράπεζας ΔημΚλΤρα
και παίρνει το ΜηνΤρα = { ΚρυπτοΜηνΤρα * ΔημΚλΤρα }.

Ο Πελάτης στέλνει το μήνυμά του ΜηνΠελ, κρυπτογραφώντας το με το ιδιωτικό κλειδί του ΙδιΚλΠελ, ως κρυπτογραφημένο μήνυμα ΚρυπτοΜηνΠελ = { ΜηνΠελ * ΙδιΚλΠελ }, και
η Τράπεζα το αποκρυπτογραφεί χρησιμοποιώντας το δημόσιο κλειδί του Πελάτη ΔημΚλΠελ
και παίρνει το μήνυμα του Πελάτη ΜηνΠελ = { ΚρυπτοΜηνΠελ * ΔημΚλΠελ }.


Τα κλειδιά έχουν μήκος κάποια δυαδικά ψηφία (bits), ας πούμε 128 ή 256 bits. Όσο περισσότερα είναι, τόσο δυκολότερα σπάει η κρυπτογράφηση.
Τα κλειδιά και οι μέθοδοι κρυπτογράφησης θεωρούνται από μερικές χώρες σαν οπλικά συστήματα και απαγορεύεται δια νόμου η δημοσίευσή τους.
Αν θέλει κάποιος να βρει ιδιωτική (όχι κρατική) μέθοδο κρυπτογράφησης, να ψάξει στο διαδίκτυο για pgp (pretty good privacy).

2 σχόλια:

Ανώνυμος είπε...

Ένα καλό, εισαγωγικό βιβλίο στην επιστήμη της κρυπτογραφίας, είναι το
«Κώδικες και Μυστικά» του Simon Singh, Εκδ. Τραυλός.
(http://www.protoporia.gr/product_info.php/products_id/119669)

Για πιο τεχνικές αναφορές στο θέμα της μη συμμετρικής κρυπτογραφίας, μπορείτε να διαβάσετε στο :
http://mathworld.wolfram.com/topics/Encryption.html

Μπορείτε να δοκιμάσετε να κρυπτογραφήσετε με τη μέθοδο RSA στο παρακάτω :
http://cisnet.baruch.cuny.edu/holowczak/classes/9444/rsademo/

Θ.

alkinoos είπε...

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