Τεχνολογίες Ενίσχυσης Ιδιωτικότητας για Διαχείριση Προσωπικών Δεδομένων

Σχετικά έγγραφα
8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

Αλγόριθµοι δηµόσιου κλειδιού

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Ασφάλεια Υπολογιστικών Συστηµάτων

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Εφαρμοσμένη Κρυπτογραφία Ι

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Εφαρμοσμένη Κρυπτογραφία Ι

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

Κρυπτογραφία. Εργαστηριακό μάθημα 1

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού

Ασφάλεια ικτύων (Computer Security)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Ιδιωτικότητα)

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

Ασφάλεια Πληροφοριακών Συστημάτων

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Security & Privacy. Overview

Αννα Νταγιου ΑΕΜ: 432. Εξαμηνο 8. Ερώτηση 1. Πληκτρολογήστε την εντολή: openssl help Παρατηρήστε τις πληροφορίες που λαµβάνετε.

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Συμμετρική Κρυπτογραφία

Ασφάλεια Πληροφοριακών Συστηµάτων

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφικά Πρωτόκολλα

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

8.3 Ασφάλεια ικτύων. Ερωτήσεις

Συμμετρικά κρυπτοσυστήματα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

7. O κβαντικός αλγόριθμος του Shor

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Διδάσκουσα: Χάλκου Χαρά,

ΑΣΦΑΛΕΙΑ ΚΑΤΑ ΤΗ ΙΑΚΙΝΗΣΗ ΠΟΛΥΜΕΣΙΚΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων SSL/TLS

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Βασικές Έννοιες Κρυπτογραφίας

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων

Αλγόριθµοι συµµετρικού κλειδιού

Ασφάλεια Στο Ηλεκτρονικό Εμπόριο. Λάζος Αλέξανδρος Α.Μ. 3530

Πρόβληµα 2 (15 µονάδες)

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

ΣΕΜΙΝΑΡΙΟ. ΠΑΡΟΥΣΙΑΣΗ 19/5/11 Αµφιθέατρο

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να

Εφαρμοσμένη Κρυπτογραφία Ι

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ

Λειτουργικά Συστήματα (ΗΥ321)

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ. Απόστολος Πλεξίδας Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Ασφάλεια Πληροφοριακών Συστημάτων

ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους

Transcript:

ΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΞΑΝΘΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΛΟΓΙΣΜΙΚΟΥ ΚΑΙ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ Τεχνολογίες Ενίσχυσης Ιδιωτικότητας για Διαχείριση Προσωπικών Δεδομένων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: ΓΕΩΡΓΑΚΟΠΟΥΛΟΣ ΙΩΑΝΝΗΣ ΕΠΙΒΛΕΠΩΝ: κ. ΕΦΡΑΙΜΙ ΗΣ ΠΑΥΛΟΣ ΞΑΝΘΗ 2008

Ευχαριστίες Ευχαριστίες Θα ήθελα να ευχαριστήσω ιδιαίτερα τον επιβλέποντα καθηγητή κ. Παύλο Εφραιµίδη για την υποστήριξη κατά τη συγγραφή και την έκδοση της παρούσας διπλωµατικής εργασίας, καθώς και για τη γενικότερη συµβολή και άρτια καθοδήγησή του. Επίσης, θα ήθελα να ευχαριστήσω όλα τα µέλη της ερευνητικής οµάδας του Εργαστηρίου Προγραµµατισµού και Επεξεργασίας Πληροφοριών του τµήµατος Ηλεκτρολόγων Μηχανικών και Μηχανικών Ηλεκτρονικών Υπολογιστών του ηµοκρίτειου Πανεπιστηµίου Θράκης για την πολύτιµη συνεργασία τους. Τέλος, ευχαριστώ την οικογένειά µου για την αµέριστη και συνεχή συµπαράστασή τους, όπως, επίσης, τους φίλους µου, που ήταν κοντά µου όλα αυτά τα χρόνια, σωµατικά και ψυχικά, για την υποµονή τους, τη στήριξη τους και τις όµορφες στιγµές που µου χάρισαν και µου χαρίζουν καθηµερινά

Περίληψη Περίληψη Το αντικείµενο της παρούσας διπλωµατικής εργασίας είναι τα συστήµατα µικροπληρωµών. ηλαδή, συστήµατα ηλεκτρονικών πληρωµών, που αφορούν ποσά µικρής αξίας. Αυτό που πραγµατοποιήθηκε είναι η υλοποίηση των συστηµάτων µικροπληρωµών PayWord και ipay. Η υλοποίηση και των δύο συστηµάτων έγινε σε γλώσσα Java. Το αρχείο «PayWord.jar» αποτελεί την τελική υλοποίηση του συστήµατος PayWord. Επικοινωνούν δηλαδή, οι τρεις οντότητες του πρωτοκόλλου και πραγµατοποιούν τοπικά, µεταφορές ηλεκτρονικών νοµισµάτων πολύ µικρής αξίας. Το αρχείο «ipay.jar», µε τη σειρά του, αποτελεί την υλοποίηση του συστήµατος ipay. Σ αυτή την περίπτωση γίνεται πάλι ένα σύνολο ηλεκτρονικών πληρωµών µικρής αξίας, µε πρωτόκολλο βασισµένο σ αυτό του PayWord, αλλά βελτιωµένο σε ορισµένα θέµατα ασφάλειας. Υλοποιώντας τα δύο παραπάνω συστήµατα µικροπληρωµών, γίνεται φανερή η δυνατότητα δηµιουργίας πραγµατικών ηλεκτρονικών εφαρµογών που αφορούν το εµπόριο και το χρήµα. Γίνονται επίσης κατανοητά τα πλεονεκτήµατα και τα µειονεκτήµατα των δύο συστηµάτων. Και οι δύο υλοποιήσεις µπορούν να εκτελεστούν εύκολα από χρήστες που κατέχουν βασικές γνώσεις προγραµµατισµού. 1

Περίληψη Abstract This work is about micropayment systems, systems of electronic payments that concern sums of small value. In particular, this work describes the implementation of the micropayment systems PayWord and ipay. Both of the systems were implemented in Java language. The file Payword.jar constitutes the final implementation of system PayWord. Τhe three entities of the protocol (user, vendor and broker) communicate and transport, locally, electronic coins of very small value. The file ipay.jar constitutes the implementation of the system ipay. In this case, the operations of the protocol are based in the protocol of PayWord, but they are improved on certain subjects of safety. By implementing the both micropayment systems, we can determine its feasibility for real commercial applications, and identify advantages and disadvantages inherit in different systems. Both implementations can be executed easily by users who have basic programming knowledge. 2

Περιεχόµενα ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ... 5 ΚΕΦΑΛΑΙΟ 2: ΥΠΟΒΑΘΡΟ... 8 2.1 Βασικές έννοιες της κρυπτογραφίας... 8 2.1.1 Η κρυπτογραφία στο χρόνο... 8 2.1.2 Η κρυπτογραφία σήµερα... 8 2.1.3 Οι έννοιες της Εµπιστευτικότητα, της Αυθεντικοποίησης, της Ακεραιότητας και της Μη-Αποποίησης... 9 2.1.4 Αλγόριθµοι και κλειδιά κρυπτογραφίας... 10 2.2 Συµµετρική κρυπτογραφία... 12 2.2.1 Κανόνες... 12 2.3 Ασύµµετρη Κρυπτογραφία Κρυπτογραφία δηµοσίου-κλειδιού... 14 2.4 Αλγόριθµος κρυπτογραφίας ΑΕS (Advanced Encryption Standard)... 16 2.4.1 Εισαγωγή... 16 2.4.2 Ο αλγόριθµος AES... 16 2.4.3 Αλγόριθµος αποκρυπτογράφησης AES... 17 2.4.4 Ασφάλεια AES... 17 2.5 Αλγόριθµος κρυπτογραφίας RSA... 18 2.5.1 Αλγόριθµος RSA... 18 2.5.2 Ασφάλεια του RSA... 18 2.6 Αλγόριθµοι κρυπτογραφίας Hash και SHA... 19 2.6.1 Μονόδροµες Hash συναρτήσεις... 19 2.6.2 SHA hash συναρτήσεις... 20 2.6.3 Ασφάλεια του SHA... 21 2.2 Ηλεκτρονικό χρήµα... 21 2.2.1 Συστήµατα Ηλεκτρονικών Μετρητών... 24 2.2.2 Συστήµατα Μικροπληρωµών... 27 2.3 Κρυπτογραφικά Εργαλεία για την Java... 29 2.3.1 Java Cryptography Architecture (JCA) Java Cryptography Extensions (JCE)... 29 2.3.2 Βασικά εργαλεία κρυπτογραφίας... 31 2.3.2.1 Συµµετρική Κρυπτογραφία... 31 2.3.2.2 Ασύµµετρη Κρυπτογραφία Κρυπτογραφία ηµοσίου κλειδιού... 35 2.3.2.3 Message Digest... 42 ΚΕΦΑΛΑΙΟ 3: ΥΛΟΠΟΙΗΣΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΙΚΡΟΠΛΗΡΩΜΩΝ PayWord ΚΑΙ ipay... 44 3.1 PayWord... 44 3.1.1 Το Πρωτόκολλο... 44 3.1.1.1 Η σχέση του χρήστη µε τον µεσίτη και τα certificates (πιστοποιητικά).45 3.1.1.2 Η σχέση του χρήστη µε τον έµπορο και οι πληρωµές... 46 3.1.1.3 Σχέση µεταξύ εµπόρου και µεσίτη... 48 3.1.2 Η Υλοποίηση... 48 3

Περιεχόµενα 3.1.2.1 Χρήστης U: Σύνδεση µε τον Β. Αίτηση και παραλαβή του certificate.. 49 3.1.2.2 Χρήστης U: ηµιουργία αλυσίδας payword... 55 3.1.2.3 Χρήστης U: ηµιουργία και υπογραφή του commitment... 56 3.1.2.4 Χρήστης U: Αποστολή του commitment - Έµπορος V: Παραλαβή του commitment... 57 3.1.2.5 Έµπορος V: Έλεγχος του commitment... 58 3.1.2.6 Χρήσης U: Η πληρωµή... 59 3.1.2.7 Έµπορος V: Έλεγχος της πληρωµής... 59 3.1.2.8 Έµπορος V και µεσίτης Β: Επικοινωνία και η τελική πληρωµή... 60 3.2 ipay... 61 3.2.2 Το Πρωτόκολλο... 62 3.2.2 Η Υλοποίηση... 65 3.2.2.1 Βήµα 1 ο : Ο χρήστης και ο µεσίτης ξεκινάνε µια επικοινωνία... 66 3.2.2.2 Βήµα 2 ο : Ο Β στέλνει την C στον U... 66 3.2.2.3 Βήµα 3 ο : Ο U επικοινωνεί µε τον V και του στέλνει την C... 67 3.2.2.4 Βήµα 4 ο : Ο V στέλνει στον U ένα NONCE (N 1 )... 68 3.2.2.5 Βήµα 5 ο : Ο U υπογράφει µε το ιδιωτικό του κλειδί τα C, N 1 και l, και τα στέλνει στον V... 68 3.2.2.6 Βήµα 6 ο : Ο V πιστοποιεί την υπογραφή του U... 68 3.2.2.7 Βήµα 7 ο : Ο U στέλνει στον V το NONCE (N 2 )... 69 3.2.2.8 Βήµα 8 ο : Ο V υπογράφει το N 2 και το C και τα στέλνει στον U... 69 3.2.2.9 Βήµα 9 ο : Ο U πιστοποιεί την υπογραφή του V... 70 3.2.2.10 Βήµα 10 ο : Ο U στέλνει την πληρωµή στον V... 70 3.2.2.11 Βήµα 11 ο : Ο V ελέγχει την εγκυρότητα της πληρωµής... 70 3.2.2.12 Βήµα 12 ο : Ο V αποθηκεύει την µεγαλύτερη πληρωµή που έλαβε (w l, l), µαζί µε το αρχικό token w 0 και το C... 71 3.2.2.14 Βήµα 14 ο : Ο Β αποκρυπτογραφεί το C µε το ιδωτικό του κλειδί:... 71 3.2.2.15 Βήµα 15 ο : O B υπολογίζει το w l... 72 ΚΕΦΑΛΑΙΟ 4: ΣΥΜΠΕΡΑΣΜΑΤΑ... 73 ΠΑΡΑΡΤΗΜΑ... 77 Α. Βήµατα εισαγωγής στο Eclipse του project PayWord και του project ipay... 77 Β. Βήµατα εισαγωγής στο Eclipse των κατάλληλων βιβλιοθηκών... 77 Γ. Εκτέλεση του PayWord... 78. Εκτέλεση του ipay... 79 ΒΙΒΛΙΟΓΡΑΦΙΑ... 80 4

Κεφάλαιο 1: Εισαγωγή ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Στις πρωτόγονες ανθρώπινες κοινότητες η ανταλλαγή προϊόντων ήταν ο βασικός τρόπος συναλλαγής. Όσο πιο πολύπλοκη γίνονταν η κοινωνική οργάνωση, τόσο µεγαλύτερη ήταν και η ανάγκη καθορισµού κάποιων συγκεκριµένων αξιών ανταλλαγής. Με αυτές τις αξίες µπορούσαν να γίνουν ανταλλαγές ανάµεσα σε διαφορετικά προϊόντα και υπηρεσίες. Οι πρώτες σταθερές αξίες ήταν τα πολύτιµα µέταλλα, τα εργαλεία και τα σιτηρά που αποτελούσαν βασικό προϊόν διατροφής. Τα πρώτα αντικείµενα, των οποίων η αξία ήταν εικονική και χρησιµοποιήθηκαν ως χρήµατα ήταν τα κοχύλια και σ αυτά οφείλεται το στρογγυλό σχήµα των νοµισµάτων. Η αρχή έγινε στην αρχαία Κίνα. Εκεί, δηµιουργήθηκαν τα πρώτα µεταλλικά νοµίσµατα από µέταλλα χωρίς ιδιαίτερη αξία, τα οποία είχαν τρύπες στη µέση, έτσι ώστε να µπορεί κανείς να τα δέσει µεταξύ τους. Στην αρχαία Ιωνία κόπηκαν τα πρώτα νοµίσµατα από πολύτιµα µέταλλα, χρυσό, ασήµι και χαλκό διακοσµηµένα µε παραστάσεις θεών και βασιλιάδων. Σε αντίθεση µε τα κινέζικα νοµίσµατα που ήταν από µέταλλα χωρίς ιδιαίτερη αξία, αυτά τα πρώτα ελληνικά νοµίσµατα ήταν τα ίδια πολύτιµα. Από εκεί και πέρα όλες οι πόλεις κράτη, τα ελληνιστικά βασίλεια και οι αυτοκρατορίες, όπως η περσική και η ρωµαϊκή έδωσαν µεγάλη σηµασία στην κοπή των νοµισµάτων τους [28]. Έτσι, φτάσαµε στη σηµερινή εποχή όπου το χρήµα αποτελείται από ένα κοµµάτι χαρτί (χαρτονόµισµα) ή ένα τµήµα φτηνού µετάλλου τα οποία δεν µπορούν να πλαστογραφηθούν. Η µορφή του χρήµατος είναι η ίδια σε όλες σχεδόν τις χώρες παρά τις τεράστιες πολιτισµικές, γεωγραφικές και ανθρωπολογικές διαφορές τους. Όλα τα κράτη έχουν ένα κοινό σύστηµα εθνικού νοµίσµατος και τραπεζικών επιταγών. Η τραπεζική υποδοµή αποτελείται από εµπορικές τράπεζες µε πολλά παραρτήµατα που βασίζονται σε έναν κεντρικά ελεγχόµενο φορέα, όπως είναι η Ευρωπαϊκή Κεντρική Τράπεζα για το Ευρώ, που είναι ο αποκλειστικός υπεύθυνος για την παραγωγή, διάθεση και απόσυρση τραπεζογραµµατίων και κερµάτων. Με την εµφάνιση του ηλεκτρονικού εµπορίου, οι ανάγκες για ευκολότερη ροή χρήµατος πολλαπλασιάστηκαν. Οι συµβατικές µέθοδοι πληρωµών και εισπράξεων δεν επαρκούν για τον νέο τρόπο συναλλαγών, αγορών και πωλήσεων. Οι πραγµατικές ηλεκτρονικές συναλλαγές άρχισαν µε την εµφάνιση του λεγόµενου «πλαστικού χρήµατος», των πιστωτικών καρτών. Οι «πελάτες» και κάτοχοι των πιστωτικών καρτών δεν είχαν παρά να ενηµερώσουν τον «έµπορο» για τον αριθµό της κάρτας τους και η χρέωσή τους γίνονταν χειροκίνητα, ηµιαυτόµατα ή αυτόµατα. Με µια συνεχή, λοιπόν, εξέλιξη του χρήµατος, φτάνουµε στα ηλεκτρονικά µετρητά και το ηλεκτρονικό χρήµα. Το ηλεκτρονικό χρήµα αποτελεί την µεγαλύτερη επανάσταση στον τοµέα των συναλλαγών από τότε που χρησιµοποιήθηκε ο χρυσός. Το ηλεκτρονικό χρήµα σύµφωνα µε τους Holland και Cortese (1995) είναι το αποκλειστικό και αναπόφευκτο µέσο συναλλαγών για έναν αυξανόµενα δικτυωµένο κόσµο. 5

Κεφάλαιο 1: Εισαγωγή Τα µετρητά αρχίζουν να γίνονται πρόβληµα. Είναι επικίνδυνο να τα µεταφέρεις, µιας και είναι πολύ εύκολο να κλαπούν, και σύµφωνα µε έρευνες αποτελούν τεράστια πηγή µικροβίων. Επίσης, µε την ανάπτυξη του ηλεκτρονικού εµπορίου και των ηλεκτρονικών συναλλαγών, τα µετρητά χάνουν τη λειτουργικότητά τους. Οι επιταγές και οι πιστωτικές κάρτες έχουν µειώσει το ποσό των φυσικών µετρητών που κινούνται στην ανθρώπινη κοινωνία, αλλά η ολοκληρωτική τους εξάλειψη πλέον είναι αδύνατη. Επίσης, οι επιταγές και οι πιστωτικές κάρτες δεν διατηρούν την ανωνυµία των χρηστών. Με άλλα λόγια φαίνεται ποιος πλήρωσε και ποιον. Τέλος, η ανάπτυξη του ηλεκτρονικού εµπορίου και όλων των ηλεκτρονικών συναλλαγών επιτάσσει την χρήση του ψηφιακού χρήµατος. Οι επιταγές και οι πιστωτικές κάρτες επιτρέπουν σε τρίτους για να εισβάλουν στην ιδιωτικότητα (privacy) των χρηστών πολιτών σε έναν πολύ µεγάλο βαθµό (η ιδιωτικότητα ορίζεται στην παράγραφο 2.2). Για παράδειγµα, κάποιος χρήστης απαιτεί το προνόµιο να µην παρακολουθείται η προσωπική του ζωή, ωστόσο, µε τους παραπάνω τρόπους πληρωµής, δίνεται η δυνατότητα σε τρίτους να παρακολουθούν όλες τις οικονοµικές συναλλαγές του. Είναι, λοιπόν, απαραίτητη η προστασία της ανωνυµίας των ανθρώπων, και κατ επέκταση η προστασία της ιδιωτικότητας τους. Η διαρκώς αυξανόµενη χρήση του ιαδικτύου για τις εµπορικές συναλλαγές, έκανε µεγαλύτερη την ανάγκη για πληρωµές ψηφιακής µορφής, που να υποστηρίζουν την ανωνυµία και την ιδιωτικότητα των χρηστών. Η λύση των πιστωτικών καρτών δεν επαρκεί, γιατί αφ ενός καταπατείται η ιδιωτικότητα του χρήστη, και αφετέρου η συναλλαγή µέσω αποστολής του αριθµού της πιστωτικής κάρτας είναι ριψοκίνδυνη. Είναι µονόδροµος, εποµένως, η χρήση και η εδραίωση των ψηφιακών µετρητών στην ηλεκτρονική αγορά. Αρχικός στόχος αυτής της διπλωµατικής εργασίας ήταν η υλοποίηση ενός συστήµατος ηλεκτρονικών πληρωµών το οποίο θα µπορούσε να χρησιµοποιηθεί κατά την αγοραπωλησία προσωπικών δεδοµένων. Η εργαστηριακή οµάδα του επιβλέποντος καθηγητή Π. Εφραιµίδη, έχει δηµιουργήσει έναν agent προσωπικών δεδοµένων, το πόλις [30]. Με τη βοήθεια του πόλις, ο χρήστης έχει τη δυνατότητα να κάνει σωστή χρήση και διανοµή των προσωπικών του δεδοµένων. Ο agent του χρήστη καθορίζει αν θα επιτρέπει ή όχι σε µια άλλη οντότητα να διαβάσει (όχι να αποθηκεύσει) επιλεγµένα στοιχεία προσωπικών δεδοµένων. Εποµένως, η αγοραπωλησία προσωπικών δεδοµένων, θα γίνεται µε τη βοήθεια του πόλις. Παρακάτω αναλύεται ένα παράδειγµα σχετικό µε τη λειτουργία του πόλις: Έστω ότι ο χρήστης έχει ανοίξει τον πόλις agent του και τον έχει ενηµερώσει για τον τρόπο διαχείρισης των προσωπικών του δεδοµένων. Όταν µια άλλη οντότητα (π.χ. στατιστική εταιρία) συνδεθεί στον agent του χρήστη, θα πρέπει να δηλώσει τον σκοπό χρήσης των προσωπικών δεδοµένων που θέλει. Ο agent µε τη σειρά του αποφασίζει αν θα επιτρέψει να δώσει προς ανάγνωση τα δεδοµένα, δωρεάν ή µε κάποιο χρηµατικό αντίτιµο είτε ακόµα να µην επιτρέψει την ανάγνωσή τους. Όµως, τα προσωπικά δεδοµένα θα κοστίζουν πολύ µικρά ποσά, γι αυτό το λόγο ασχοληθήκαµε µε τις µικροπληρωµές (οι µικροπληρωµές αναλύονται παρακάτω στην παράγραφο 2.2.2). 6

Κεφάλαιο 1: Εισαγωγή Ορισµός: Μικροπληρωµές είναι οι ηλεκτρονικές πληρωµές κατά τις οποίες µεταφέρονται µικρά χρηµατικά ποσά, σε καταστάσεις όπου το να συλλέγει κανείς τόσο µικρά χρηµατικά ποσά δεν είναι πρακτικό, ή ακόµα και οικονοµικά ασύµφορο[19]. Σ αυτή λοιπόν τη διπλωµατική εργασία ασχοληθήκαµε µε την υλοποίηση του συστήµατος µικροπληρωµών PayWord των R. Rivest και A. Shamir και το ipay, το οποίο προτάθηκε από τον Ilan Azbel ως µια καλύτερη εκδοχή του PayWord. 7

Κεφάλαιο 2: Υπόβαθρο ΚΕΦΑΛΑΙΟ 2: ΥΠΟΒΑΘΡΟ 2.1 Βασικές έννοιες της κρυπτογραφίας 2.1.1 Η κρυπτογραφία στο χρόνο Η λέξη κρυπτογραφία (cryptography) είναι σύνθετη. Το πρώτο συνθετικό της είναι το κρύπτω και στην αρχαία αλλά και στη νέα Ελληνική γλώσσα σηµαίνει κρύβω. Το δεύτερο συνθετικό είναι το γράφω. Εποµένως η κρυπτογραφία αρχικά ορίστηκε ως η τέχνη ή η επιστήµη της απόκρυψης του γραπτού λόγου από ανεπιθύµητους αναγνώστες. Η κρυπτογραφία αρχικά είχε τη µορφή τέχνης που τα µυστικά της γνώριζαν λίγοι και εκλεκτοί. Η ιστορία της κρυπτογραφίας ξεκινά περίπου στα 4000π.Χ. στην αρχαία Αίγυπτο και στη συνέχεια πέρασε σε όλο τον υπόλοιπο κόσµο. Από τους πιο γνωστούς αλγόριθµους κρυπτογραφίας της αρχαίας εποχής, είναι ο αλγόριθµος που χρησιµοποιούσε ο Ιούλιος Καίσαρας κυρίως για στρατιωτικούς σκοπούς (γνωστός ως ο αλγόριθµος του Καίσαρα ). Στις µέρες µας πλέον, η κρυπτογραφία θεωρείται επιστήµη και πάνω σ αυτή βασίζονται υψίστης σηµασίας θέµατα. Η κρυπτογραφία πλέον ασχολείται και µε την κρυπτογράφηση ηλεκτρονικών δεδοµένων (bytes) και όχι µόνο µε κείµενα. Ένας τοµέας λοιπόν που η κρυπτογραφία αποτελεί ένα σηµαντικό του κοµµάτι είναι και τα ηλεκτρονικά µετρητά (ορίζονται παρακάτω), που αποτελούν το κύριο τµήµα της διπλωµατικής αυτής. 2.1.2 Η κρυπτογραφία σήµερα Το αρχικό µήνυµα είναι το plaintext ( ή cleartext, δηλαδή καθαρό κείµενο). Η διαδικασία µε την οποία στο µήνυµα αυτό αποκρύβεται η ουσία του περιεχοµένου του, ονοµάζεται κρυπτογράφηση (encryption). Το κρυπτογραφηµένο µήνυµα είναι το ciphertext. Η διαδικασία της αλλαγής του ciphertext πίσω στο plaintext ονοµάζεται αποκρυπτογράφηση. ( Σηµείωση: Σύµφωνα µε το πρότυπο ISO 7498-2, χρησιµοποιούνται οι όροι encipher και decipher αντί για τους όρους encrypt και decrypt αντίστοιχα). Όλα αυτά παρουσιάζονται στο σχήµα 2.1. 8

Κεφάλαιο 2: Υπόβαθρο Σχήµα 2.1: Κρυπτογράφηση και Αποκρυπτογράφηση Η επιστήµη που έχει ως αντικείµενο την ασφάλεια των µηνυµάτων είναι η κρυπτογραφία (cryptography), και πραγµατοποιείται από τους cryptographers (κρυπτογράφους). Οι Cryptanalysts ασχολούνται µε την κρυπτανάλυση (cryptanalysis), το σπάσιµο του ciphertext, δηλαδή τη δυνατότητα να µπορέσουν να δουν µέσα από τα κρυπτογραφηµένα δεδοµένα. Ο κλάδος της επιστήµης που ασχολείται µε την κρυπτογραφία και την κρυπτανάλυση, είναι η κρυπτολογία (cryptology) και αυτοί που ασκούν το επάγγελµα αυτό είναι οι cryptologists. Οι σύγχρονοι cryptologists εκπαιδεύονται γενικά σε θεωρητικό µαθηµατικό επίπεδο [1]. Το plaintext συνήθως δηλώνεται µε το γράµµα M, από τη λέξη µήνυµα (message), ή µε το γράµµα Ρ, από τη λέξη plaintext. Το plaintext µπορεί να είναι µια ροή (stream) από bits, ένα αρχείο κειµένου, ένα αρχείο εικόνας, µια ροή ψηφιακής φωνής, µια ψηφιακή βίντεο εικόνα κτλ. Όσον αφορά έναν υπολογιστή, το Μ είναι απλά δυαδικά δεδοµένα. Το plaintext µπορεί να αποτελεί είτε τη µεταφορά είτε την αποθήκευση δεδοµένων. Ουσιαστικά δηλαδή το Μ είναι το µήνυµα που κρυπτογραφείται. Ας υποθέσουµε τώρα ότι το ciphertext δηλώνεται µε το γράµµα C. Είναι επίσης δυαδικά δεδοµένα, µερικές φορές του ίδιου µεγέθους µε το Μ και κάποιες άλλες µπορεί και µεγαλύτερου (Η κρυπτογράφηση όµως σε συνδυασµό µε τη συµπίεση, µπορεί να οδηγήσει ώστε το C να είναι µικρότερο από το Μ, χωρίς όµως η κρυπτογράφηση να µπορεί να εκτελέσει αυτό απευθείας). Η µαθηµατική αυτή σχέση είναι: E(M) = C Στην αντίστροφη διαδικασία, η συνάρτηση αποκρυπτογράφησης D επιδρά πάνω στο C για να παράγει το Μ: D(C) = M εδοµένου ότι η ουσία της κρυπτογράφησης και έπειτα της αποκρυπτογράφησης ενός µηνύµατος είναι να ανακτηθεί το αρχικό plaintext, η ακόλουθη σχέση αποδεικνύει αυτό: D(E(M)) = M 2.1.3 Οι έννοιες της Εµπιστευτικότητα, της Αυθεντικοποίησης, της Ακεραιότητας και της Μη-Αποποίησης Οι βασικές υπηρεσίες που παρέχει η κρυπτογραφία είναι [1]: 9

Κεφάλαιο 2: Υπόβαθρο Εµπιστευτικότητα. Η πληροφορία που µεταδίδεται πρέπει να είναι προσβάσιµη µόνο από τα εξουσιοδοτηµένα µέλη. Η πληροφορία πρέπει να µη µπορεί να γίνει κατανοητή από οποιοδήποτε τρίτο. Authentication (Αυθεντικοποίηση). Πρέπει να είναι σε θέση ο δέκτης να εξακριβώνει αν το µήνυµα ανήκει πράγµατι στον αποστολέα ή ότι ο αποστολέας είναι αυτός που ισχυρίζεται ότι είναι. Integrity (Ακεραιότητα). Πρέπει να είναι σε θέση ο δέκτης να ελέγχει αν το µήνυµα δεν έχει τροποποιηθεί κατά τη µεταφορά, ώστε να µην µπορεί κάποιος εισβολέας να αντικαταστήσει το µήνυµα µε ένα ψεύτικο το οποίο να φαίνεται αληθινό. Non repudiation. Ένας αποστολέας δεν µπορεί να αρνηθεί ψευδώς ότι έστειλε το µήνυµα. Αυτές οι έννοιες είναι ζωτικής σηµασίας για την κοινωνική αλληλεπίδραση µε την χρήση υπολογιστών, και είναι ανάλογες µε τις διαπροσωπικές αλληλεπιδράσεις. Οι έννοιες αυτές παρέχουν µερικές από τις παρακάτω λειτουργίες: Ότι ο αποστολέας και ο παραλήπτης ενός µηνύµατος είναι βέβαιοι ότι δεν το έχει διαβάσει κάποιος τρίτος (Εµπιστευτικότητα). Ότι κάποιος είναι αυτός που λέει ότι είναι (Αυθεντικοποίηση). Ότι η άδεια ενός οδηγού, το ιατρικό δίπλωµα, και το διαβατήριό του είναι έγκυρα (Υπογραφή). Ότι ένα έγγραφο είναι απόλυτα βέβαιο ότι έχει προέλθει από κάποιο πρόσωπο ( Non repudiation). Ότι ένα έγγραφο δεν έχει αλλοιωθεί ή τροποποιηθεί (Ακεραιότητα). 2.1.4 Αλγόριθµοι και κλειδιά κρυπτογραφίας Ένας κρυπτογραφικός αλγόριθµος (αποκαλείται και ως cipher), είναι η µαθηµατική συνάρτηση που χρησιµοποιείται για την κρυπτογράφηση και την αποκρυπτογράφηση [1]. Γενικά υπάρχουν δύο σχετικές συναρτήσεις: µια για την κρυπτογράφηση και µια για την αποκρυπτογράφηση. Αν η ασφάλεια ενός αλγορίθµου είναι βασισµένη στο µυστικό τρόπο λειτουργίας του αλγόριθµου, τότε ένας τέτοιος αλγόριθµος είναι περιορισµένος (restricted). Τέτοιοι περιορισµένοι αλγόριθµοι έχουν µόνο ιστορικό ενδιαφέρον και θεωρούνται ανεπαρκείς για τα σηµερινά πρότυπα. Μια µεγάλη ή µεταβαλλόµενη οµάδα χρηστών δεν µπορεί να τους χρησιµοποιήσει, επειδή κάθε φορά που ένας χρήστης αλλάζει οµάδα θα πρέπει να χρησιµοποιήσει και έναν διαφορετικό αλγόριθµο. Επίσης αν κάποιος αποκαλύψει τυχαία το µυστικό, τότε ο καθένας θα πρέπει να αλλάξει τον αλγόριθµο. Επιπλέον, οι περιορισµένοι αυτοί αλγόριθµοι δεν επιτρέπουν κανέναν ποιοτικό έλεγχο ή τυποποίηση. Κάθε οµάδα χρηστών πρέπει να έχει ένα µοναδικό αλγόριθµο. Μια τέτοια οµάδα δεν µπορεί να χρησιµοποιήσει έτοιµα προϊόντα υλικού λογισµικού, επειδή οποιοσδήποτε θα µπορούσε να αγοράσει το ίδιο προϊόν και να µάθει τον αλγόριθµο, οπότε θα πρέπει να γράψουν οι ίδιοι τους αλγορίθµους και τις εφαρµογές τους. Αν 10

Κεφάλαιο 2: Υπόβαθρο κανένας στην οµάδα δεν είναι καλός cryptographer, δεν θα µπορούν να ξέρουν αν ο αλγόριθµός τους είναι ασφαλής. Παρ όλα αυτά τα σηµαντικά µειονεκτήµατα, οι περιορισµένοι αλγόριθµοι είναι πάρα πολύ δηµοφιλείς για εφαρµογές χαµηλής ασφάλειας. Στις περιπτώσεις αυτές οι χρήστες είτε δεν αντιλαµβάνονται είτε δεν ενδιαφέρονται για τα προβλήµατα ασφάλειας που υπάρχουν στο σύστηµά τους. Τα σύγχρονα συστήµατα κρυπτογραφίας λύνουν αυτό το πρόβληµα µε τη χρήση ενός κλειδιού, που δηλώνεται αν υποθέσουµε µε το γράµµα Κ. Αυτό το κλειδί µπορεί να είναι οποιοδήποτε από ένα µεγάλο αριθµό τιµών. Η περιοχή των πιθανών τιµών του κλειδιού καλείται keyspace. Οπότε τώρα οι διαδικασίες της κρυπτογράφησης και της αποκρυπτογράφησης χρησιµοποιούν αυτό το κλειδί (δηλαδή εξαρτώνται από αυτό το κλειδί και αυτό το γεγονός δηλώνεται από το δείκτη Κ), έτσι οι συναρτήσεις τώρα γίνονται όπως παρακάτω [1]: Ε Κ (Μ) = C D K (C) = M D K (E K (M)) = M Σχήµα 2.2: Κρυπτογράφηση και Αποκρυπτογράφηση µε ένα κλειδί. Μερικοί αλγόριθµοι χρησιµοποιούν διαφορετικά κλειδιά στην κρυπτογράφηση και στην αποκρυπτογράφηση (βλ. σχήµα 3). ηλαδή το κλειδί κρυπτογράφησης Κ1 είναι διαφορετικό από το κλειδί αποκρυπτογράφησης, Κ2. Σε αυτή την περίπτωση οι συναρτήσεις γίνονται: Ε Κ1 (Μ) = C D K2 (C) = M D K2 (E K1 (M)) = M 11

Κεφάλαιο 2: Υπόβαθρο Σχήµα 2.3: Κρυπτογράφηση και αποκρυπτογράφηση µε δύο διαφορετικά κλειδιά. Όλη η ασφάλεια σε αυτούς τους αλγόριθµους είναι βασισµένη στο κλειδί (ή τα κλειδιά) και όχι στις λεπτοµέρειες του αλγορίθµου. Αυτό σηµαίνει ότι ο αλγόριθµος µπορεί να δηµοσιευθεί και να αναλυθεί, οπότε και τα προϊόντα που χρησιµοποιούν τον αλγόριθµο µπορούν να παραχθούν µαζικά. Επίσης, δεν πειράζει αν ο αλγόριθµος που χρησιµοποιείται είναι γνωστός, γιατί το ιδιαίτερο κλειδί είναι κρυφό, και εποµένως και το µήνυµα δεν είναι δυνατό να αναγνωσθεί. Έτσι λοιπόν, ένα σύγχρονο κρυπτογραφικό σύστηµα αποτελείται πλέον από τον αλγόριθµο, όλα τα πιθανά plaintexts, τα ciphertexts και τα κλειδιά [1]. 2.2 Συµµετρική κρυπτογραφία 2.2.1 Κανόνες Η συµβατική κρυπτογραφία (conventional cryptography) αναφέρεται στη βιβλιογραφία και ως συµµετρική κρυπτογραφία (symmetric cryptography) ή κρυπτογραφία µυστικού κλειδιού (secret key cryptography) [2]. Με άλλα λόγια είναι η κρυπτογραφία που αποτελείται από αλγόριθµους κρυπτογράφησης ενός µυστικού κλειδιού. Ένα σχήµα συµβατικής κρυπτογραφίας αποτελείται από πέντε επιµέρους οντότητες (Σχήµα 2.2): Αρχικό κείµενο (plaintext): Αποτελεί το αρχικό µήνυµα ή τα αρχικά δεδοµένα που εισάγονται στον αλγόριθµο κρυπτογράφησης. Αλγόριθµος κρυπτογράφησης (encryption algorithm): Πραγµατοποιεί τους απαραίτητους µετασχηµατισµούς του αρχικού κειµένου για την επίτευξη κρυπτογράφησης ενός µηνύµατος. Μυστικό κλειδί (secret key): Αποτελεί το µυστικό κλειδί, το οποίο εισάγεται επίσης στον αλγόριθµο κρυπτογράφησης. Οι ακριβείς αντικαταστάσεις και τα 12

Κεφάλαιο 2: Υπόβαθρο αποτελέσµατα των µετασχηµατισµών που επιτελούνται από τον αλγόριθµο εξαρτώνται από αυτό το µυστικό κλειδί. Κρυπτογράφηµα ή κρυπτογραφηµένο µήνυµα (ciphertext): Είναι το µετασχηµατισµένο µήνυµα που παράγεται ως έξοδος από τον αλγόριθµο κρυπτογράφησης. Το κρυπτογράφηµα αυτό εξαρτάται τόσο από το αρχικό µήνυµα όσο και από το µυστικό κλειδί, συνεπώς δοθέντος ενός µηνύµατος διαφορετικά κλειδιά παράγουν διαφορετικά κρυπτογραφήµατα. Αλγόριθµος αποκρυπτογράφησης (decryption algorithm): Πρόκειται για τον αλγόριθµο που πραγµατοποιεί την αντίστροφη διαδικασία, δηλαδή λαµβάνει το κρυπτογράφηµα και το ίδιο µυστικό κλειδί που χρησιµοποιήθηκε στη διαδικασία της κρυπτογράφησης και παράγει το αρχικό κείµενο. Για την ασφαλή χρήση της συµβατικής κρυπτογραφίας πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις: Απαιτείται η ύπαρξη ενός ισχυρού (strong) αλγορίθµου κρυπτογράφησης. Ως ελάχιστη απαίτηση αναφέρεται η ύπαρξη αλγορίθµου για τον οποίο ακόµη κι αν κάποιος τρίτος γνωρίζει τον αλγόριθµο, και µπορεί να έχει πρόσβαση στο κρυπτογράφηµα, να µην µπορεί να διαβάσει το αρχικό κείµενο, δηλαδή να µην έχει τη δυνατότητα να κρυπταναλύσει το κρυπτογράφηµα. Αυτή η απαίτηση δηλώνεται αυστηρότερα ως ακολούθως: ο επιτιθέµενος πρέπει να είναι αδύνατο να κρυπταναλύσει το κρυπτογράφηµα ή να ανακαλύψει το κλειδί, ακόµη και αν κατέχει κάποια κρυπτογραφήµατα µαζί µε τα αντίστοιχα αρχικά µηνύµατα. Ο αποστολέας και ο παραλήπτης πρέπει να έχουν παραλάβει τα αντίγραφα του µυστικού κλειδιού µε ασφαλή τρόπο και να διαφυλάσσουν αυτό το µυστικό κλειδί σε ασφαλές µέρος. Αν κάποιος γνωρίζει τον αλγόριθµο και ανακαλύψει το κλειδί, τότε όλη η επικοινωνία που χρησιµοποιεί αυτό το κλειδί είναι αναγνώσιµη, συνεπώς παραβιάζεται η εµπιστευτικότητα. Σηµειώνεται ότι αδύναµο κρίκο στην ασφάλεια της συµβατικής κρυπτογραφίας αποτελεί µόνο η µυστικότητα του κλειδιού και όχι η µυστικότητα του αλγορίθµου κρυπτογράφησης που χρησιµοποιείται. Αυτό θεωρείται δεδοµένο αν υποτεθεί ότι για τον επιλεγέντα αλγόριθµο ισχύει η προφανής σχεδιαστική απαίτηση να είναι αδύνατο να αποκρυπτογραφηθεί ένα µήνυµα µόνο µε τη γνώση του κρυπτογραφήµατος και του αλγορίθµου κρυπτογράφησης. Συνεπώς, δε χρειάζεται να παραµένει µυστικός ο αλγόριθµος, αλλά µόνο το µυστικό κλειδί. Το χαρακτηριστικό αυτό γνώρισµα της συµβατικής κρυπτογραφίας την καθιστά κατάλληλη για ευρεία χρήση. Το γεγονός ότι δε χρειάζεται να παραµένει µυστικός ο αλγόριθµος επιτρέπει στους κατασκευαστές να αναπτύσσουν χαµηλού κόστους υλοποιήσεις, τόσο σε λογισµικό όσο και σε υλικό, για εφαρµογές κρυπτογράφησης δεδοµένων. Οι ευρύτερα χρησιµοποιούµενοι συµβατικοί αλγόριθµοι κρυπτογραφίας ακολουθούν τη λογική της κρυπτογράφησης τµηµάτων και αποκαλούνται κωδικοποιητές τµηµάτων (block ciphers): η κρυπτογράφηση τµηµάτων επεξεργάζεται την είσοδο του αρχικού κειµένου σε σταθερού µεγέθους τµήµατα και παράγει κρυπτογραφήµατα ίδιου µεγέθους για οποιοδήποτε τµήµα αρχικού κειµένου. Οι πιο βασικοί αλγόριθµοι, που 13

Κεφάλαιο 2: Υπόβαθρο ακολουθούν τη λογική της κρυπτογράφησης τµηµάτων, έχουν οδηγήσει στην ανάπτυξη του DES και του Triple DES ή 3DES. Επίσης σηµαντικός συµβατικός αλγόριθµος είναι και ο AES (Advanced Encryption Standard). Άλλοι συµβατικοί αλγόριθµοι είναι οι IDEA (International Data Encryption Algorithm), Blowfish, RC5 και CAST-128. 2.3 Ασύµµετρη Κρυπτογραφία Κρυπτογραφία δηµοσίουκλειδιού Η κρυπτογράφηση δηµοσίου κλειδιού (public-key encryption) προτάθηκε το 1976 από τους W.Diffie και M.Hellman και υπήρξε ένα εξόχως σηµαντικό βήµα στην περαιτέρω διάδοση της κρυπτογραφίας. Οι αλγόριθµοι κρυπτογραφίας δηµοσίου κλειδιού βασίζονται σε µαθηµατικές συναρτήσεις και όχι σε απλές πράξεις µε bit. Επιπλέον, η κρυπτογραφία δηµοσίου κλειδιού είναι ασύµµετρη (asymmetric) συµπεριλαµβάνοντας τη χρήση ενός ζεύγους ξεχωριστών κλειδιών (key pair), σε αντίθεση µε τη συµµετρική που χρησιµοποιεί µόνον ένα κλειδί. Η χρήση δύο κλειδιών επιφέρει σηµαντικές τροποποιήσεις σε θέµατα που σχετίζονται µε την εµπιστευτικότητα, την αυθεντικότητα και τη διανοµή των κλειδιών. Αρχικά πρέπει να σχολιαστούν κάποιες εσφαλµένες αντιλήψεις όσον αφορά την κρυπτογράφηση µε δηµόσιο κλειδί. Η πρώτη εσφαλµένη αντίληψη σχετίζεται µε την εντύπωση ότι η κρυπτογράφηση δηµοσίου κλειδιού είναι ασφαλέστερη µέθοδος σχετικά µε τη συµµετρική κρυπτογράφηση, ως ανθεκτικότερη σε κρυπταναλυκές επιθέσεις. Στην πραγµατικότητα η ασφάλεια οποιουδήποτε συστήµατος κρυπτογράφησης εξαρτάται από το µήκος κλειδιού και, σε κάθε περίπτωση, από την απαιτούµενη υπολογιστική ισχύ από έναν κρυπταναλυτή για να κατορθώσει να κρυπταναλύσει και αποκαλύψει µε επιτυχία ένα κρυπτογραφηµένο µήνυµα. Μια δεύτερη λανθασµένη αντίληψη αφορά την επικράτηση του ασύµµετρου κρυπτοσυστήµατος σε βάρος του συµµετρικού. Και τα δύο συστήµατα χρησιµοποιούνται ισόρροπα και κατ ουδένα τρόπο δεν προβλέπεται η εγκατάλειψη του συµµετρικού συστήµατος, ειδικά όταν γίνεται ολοκλήρωση των εκτελούµενων λειτουργιών σε περιβάλλον ασύµµετρου κρυπτοσυστήµατος. Επιπλέον, υπάρχει η άποψη ότι η διανοµή κλειδιών είναι εύκολη όταν χρησιµοποιείται κρυπτογραφία δηµοσίου κλειδιού σε σύγκριση µε τις επιπλέον χειραψίες (handshaking) που απαιτούνται µε τα κέντρα διανοµής κλειδιών (key distribution centers) για τη συµµετρική κρυπτογράφηση. Μια δοµή δηµοσίου κλειδιού αποτελείται από τις ακόλουθες συνιστώσες: Αλγόριθµος κρυπτογράφησης (encryption algorithm): ο αλγόριθµος µε τον οποίο πραγµατοποιούνται οι διάφοροι µετασχηµατισµοί στο αρχικό µήνυµα. Αρχικό κείµενο (plaintext): είναι το µη κρυπτογραφηµένο µήνυµα που αποτελεί στοιχείο εισόδου στον αλγόριθµο κρυπτογράφησης. Ζεύγος δηµοσίου (public) και ιδιωτικού (private) κλειδιού: Ζεύγος κλειδιών, που έχει επιλεγεί µε τρόπο ώστε, το δηµόσιο κλειδί του παραλήπτη να χρησιµοποιηθεί για κρυπτογράφηση και το ιδιωτικό κλειδί του παραλήπτη για 14

Κεφάλαιο 2: Υπόβαθρο αποκρυπτογράφηση. Οι ακριβείς µετασχηµατισµοί πραγµατοποιούνται από τον αλγόριθµο κρυπτογράφησης/αποκρυπτογράφησης, εξαρτώµενοι από τις τιµές του δηµοσίου και του ιδιωτικού κλειδιού που παρέχονται ως είσοδοι. Κρυπτογράφηµα ή κρυπτογραφηµένο µήνυµα (ciphertext): Είναι το µήνυµα που παράγεται από τον αλγόριθµο κρυπτογράφησης ως έξοδος. Εξαρτάται από το αρχικό µήνυµα και το δηµόσιο κλειδί του παραλήπτη. Για ένα συγκεκριµένο µήνυµα από δύο διαφορετικά κλειδιά παράγονται από τη συνάρτηση κρυπτογράφησης δύο διαφορετικά κρυπτογραφηµένα κείµενα. Αλγόριθµος αποκρυπτογράφησης (decryption algorithm): Είναι ο αλγόριθµος που δέχεται ως είσοδο το κρυπτογραφηµένο µήνυµα και το ιδιωτικό κλειδί του παραλήπτη και παράγει το πρωτότυπο αρχικό µήνυµα. Όπως υποδεικνύει και το όνοµά τους, το δηµόσιο κλειδί αποσκοπεί σε δηµόσια χρήση, ενώ το ιδιωτικό κλειδί το χρησιµοποιεί αποκλειστικά και µόνο ο κάτοχός του. Ένας γενικής χρήσης αλγόριθµος κρυπτογράφησης βασίζεται σε ένα δηµόσιο κλειδί για κρυπτογράφηση και σε ένα άλλο, διαφορετικό αλλά µοναδικά συσχετιζόµενο κλειδί, το ιδιωτικό κλειδί, για αποκρυπτογράφηση. Τα βήµατα που ακολουθούνται είναι τα ακόλουθα: Για κάθε χρήστη παράγεται ένα ζεύγος κλειδιών, το οποίο θα χρησιµοποιηθεί για την κρυπτογράφηση και αποκρυπτογράφηση των µηνυµάτων. Κάθε χρήστης τοποθετεί το δηµόσιο κλειδί σε µία βάση δεδοµένων ενός φορέα ή σε κάποιο άλλο προσβάσιµο αρχείο. Το άλλο κλειδί, το ιδιωτικό, διαφυλάσσεται διατηρώντας τη µυστικότητά του. Για επίτευξη στοιχειώδους λειτουργικότητας, απαιτείται κάθε χρήστης να είναι σε θέση µε ευκολία να ανακτήσει τα δηµόσια κλειδιά των άλλων. Αν κάποιος χρήστης Bob επιθυµεί να στείλει ένα µήνυµα στην Alice και αποτελεί τεθείσα απαίτηση (requirement) η διασφάλιση της εµπιστευτικότητας του µηνύµατος, τότε ο Bob κρυπτογραφεί το µήνυµα µε το δηµόσιο κλειδί της Alice. Η Alice λαµβάνει το µήνυµα και το αποκρυπτογραφεί µε το ιδιωτικό της κλειδί. Κανένας άλλος δεν µπορεί να αποκρυπτογραφήσει το µήνυµα, αφού µόνο η Alice γνωρίζει το ιδιωτικό της κλειδί, που σχετίζεται µοναδικά µε το αντίστοιχο δηµόσιο κλειδί που χρησιµοποιήθηκε για την κρυπτογράφηση. Προϋπόθεση αυτής της προσέγγισης είναι όλοι οι συµµετέχοντες να έχουν πρόσβαση στα δηµόσια κλειδιά, ενώ τα ιδιωτικά κλειδιά να παράγονται τοπικά για τον κάθε συµµετέχοντα ώστε να διασφαλίζεται αυστηρά η µυστικότητα. Οποιαδήποτε στιγµή, ένας χρήστης µπορεί να τροποποιήσει το ιδιωτικό του κλειδί και ταυτοχρόνως να δηµοσιεύσει το αντίστοιχο νέο δηµόσιο κλειδί, έτσι ώστε να αντικατασταθεί το προηγούµενο µη ισχύον πλέον δηµόσιο κλειδί. Το κλειδί που χρησιµοποιείται στη συµµετρική κρυπτογραφία τυπικά αναφέρεται ως µυστικό κλειδί (secret). Το ζεύγος κλειδιών (key pair) που χρησιµοποιείται στην ασύµµετρη κρυπτογραφία περιλαµβάνει δηµόσιο κλειδί (public key) και ιδιωτικό κλειδί (private key). Το ιδιωτικό κλειδί παραµένει µυστικό, αλλά αναφέρεται ως ιδιωτικό αντί 15

Κεφάλαιο 2: Υπόβαθρο µυστικό κλειδί, ώστε να αποφευχθεί εννοιολογική σύγχυση µε τη συµµετρική κρυπτογραφία. 2.4 Αλγόριθµος κρυπτογραφίας ΑΕS (Advanced Encryption Standard) 2.4.1 Εισαγωγή Ο AES (Advanced Encryption Standard) είναι ένας block cipher συµµετρικός αλγόριθµος κρυπτογραφίας, που υιοθετήθηκε από το Εθνικό Ίδρυµα Προτύπων και Τεχνολογίας (NIST : National Institute of Standards and Technology) τον Νοέµβριο του 2001 ύστερα από µια πενταετή διαδικασία τυποποίησης. Ο AES είναι επίσης γνωστός και σαν Rijndael, λόγω του γεγονότος ότι ο AES είναι ουσιαστικά ο αλγόριθµος κρυπτογραφίας Rijndael. Ο Rijndael ήταν ο αλγόριθµος που εγκρίθηκε στο NIST ως ο Advanced Encryption Standard (AES) [3]. Στον πίνακα 1 συνοψίζονται οι τρεις επίσηµες εκδόσεις του AES. Το Ν p αναφέρεται στο µήκος των blocks (σε αριθµό 32- bit λέξεων), το Ν k στο µήκος των κλειδιών (σε αριθµό 32- bit λέξεων) και το Ν r στον αριθµό των κύκλων (rounds) [4]. Ν p Ν k Ν r ΑΕS-128 4 4 10 ΑΕS-192 4 6 12 ΑΕS-256 4 8 14 Πίνακας 2.1: Οι τρεις επίσηµες εκδόσεις του AES 2.4.2 Ο αλγόριθµος AES Οι µετασχηµατισµοί που χρησιµοποιούνται στον αλγόριθµο κρυπτογράφησης AES καλούνται ShiftRows(), MixColumns() και AddRoundKey(). Στην αρχή του αλγορίθµου κρυπτογράφησης AES αντιγράφονται 16 bytes (128 bits 1 block) σε έναν 4x4 πίνακα S που ονοµάζεται State. Μετά από µια αρχική εφαρµογή του µετασχηµατισµού AddRoundKey(), ο State µετασχηµατίζεται σε Ν r = 10,12 ή 14 κύκλους (ανάλογα µε το µήκος του κλειδιού που χρησιµοποιείται), µε τον τελικό κύκλο να διαφέρει ελαφρώς από τους προηγούµενους Ν r -1 κύκλους (δηλαδή ο τελικός κύκλος δεν περιλαµβάνει το µετασχηµατισµό MixColumns(). Το περιεχόµενο του State που λαµβάνεται τελικά, αντιπροσωπεύει την κρυπτογράφηση του AES [3]. Ο κάθε κύκλος αποτελείται από τους ακόλουθους τέσσερις µετασχηµατισµούς: 16

Κεφάλαιο 2: Υπόβαθρο 1. Τα bytes του State αντικαθιστώνται σύµφωνα µε ένα δεδοµένο πίνακα αντικατάστασης (αυτός ο µετασχηµατισµός καλείται SubBytes() σύµφωνα µε τις προδιαγραφές AES). 2. Οι σειρές του State µετατοπίζονται αριστερά από τα διαφορετικά offset (αυτός ο µετασχηµατισµός καλείται ShiftRows() σύµφωνα µε τις προδιαγραφές AES). 3. Τα δεδοµένα µέσα σε κάθε στήλη του State ανακατεύονται (αυτός ο µετασχηµατισµός καλείται MixColumns() σύµφωνα µε τις προδιαγραφές AES). 4. Το κλειδί του κύκλου προστίθεται στο State (αυτός ο µετασχηµατισµός καλείται AddRoundKey() σύµφωνα µε τις προδιαγραφές AES). 2.4.3 Αλγόριθµος αποκρυπτογράφησης AES Οι µετασχηµατισµοί που χρησιµοποιούνται από τον αλγόριθµο κρυπτογράφησης AES µπορούν να αναστραφούν και να εφαρµοστούν σε αντίστροφη διάταξη για να παραχθεί ο αλγόριθµος αποκρυπτογράφησης AES. Οι µετασχηµατισµοί χρησιµοποιούνται στον αλγόριθµο αποκρυπτογράφησης AES καλούνται InvShiftRows(), InvSubBytes(), InvMixColumns() και AddRoundKey(). Ο µετασχηµατισµός AddRoundKey() είναι ο αντίστροφος της κρυπτογράφησης µε την προσθήκη µόνο του modulo 2. Επίσης οι αντίστροφοι µετασχηµατισµοί InvSubBytes() και InvShiftRows() εναλλάσσουν θέσεις σε σύγκριση µε τους µετασχηµατισµούς SubBytes() και ShiftRows() της κρυπτογράφησης [4]. 2.4.4 Ασφάλεια AES Ο AES όσον αφορά την ασφάλειά του, παρουσιάζει τόσο θετικά όσο και αρνητικά σηµεία. Τα θετικά είναι ότι το σύστηµα κρυπτογράφησης σχεδιάστηκε σε χαµηλό επίπεδο για να παρουσιάζει υψηλή πολυπλοκότητα απέναντι στη διαφορική κρυπτολογική ανάλυση, στη γραµµική κρυπτολογική ανάλυση και µερικών άλλων σχετικών επιθέσεων που µπορούν να χρησιµοποιηθούν. Συνεπώς το σύστηµα κρυπτογράφησης AES είναι ανθεκτικό ενάντια σε αυτές τις επιθέσεις. Τα αρνητικά είναι ότι πολλές νέες κρυπτολογικές τεχνικές έχουν αναπτυχθεί (και θα συνεχίσουν πιθανότατα να αναπτύσσονται) για να σπάσουν το συµµετρικό σύστηµα κρυπτογράφησης AES. Στην πραγµατικότητα, ο AES είναι ένας ενεργός τοµέας µελέτης, και θα ήταν ενδιαφέρον να µάθουµε για πιθανές µελλοντικές εκδόσεις του. Από µια άλλη άποψη οι Cryptologists, θεωρούν τον AES ελκυστικό, επειδή θα είναι ευρέως χρησιµοποιούµενος στο µέλλον και επειδή το συµµετρικό σύστηµα κρυπτογράφησης έχει µια απλή µαθηµατική δοµή [4]. 17

Κεφάλαιο 2: Υπόβαθρο 2.5 Αλγόριθµος κρυπτογραφίας RSA 2.5.1 Αλγόριθµος RSA Ένα από τα πιο επιτυχηµένα κρυπτογραφικά συστήµατα είναι το κρυπτογραφικό σύστηµα RSA, που επινοήθηκε το 1978 από τους Ronald Rivest, Adi Shamir και Leonard Adelman και πήρε το όνοµά του από τα αρχικά των επίθετών τους. Το RSA είναι ένα κρυπτογραφικό σύστηµα µε δηµόσιο κλειδί και µέχρι σήµερα θεωρείται αδύνατο να σπάσει µε τη χρήση σύγχρονων υπολογιστών. Σήµερα χρησιµοποιείται ευρύτατα κυρίως στις οικονοµικές και τραπεζικές συναλλαγές [5]. Η βασική δοµή του RSA είναι η εξής: 1. Επιλέγουµε δύο ακέραιους πρώτους αριθµούς τον p και τον q και υπολογίζουµε το γινόµενό τους n = p*q. 2. Επιλέγουµε ένα τυχαίο αριθµό, τον d, ο οποίος είναι πρώτος ως προς τους (p-1) και (q-1), δηλαδή ο µέγιστος κοινός διαιρέτης των d, (p-1) και (q-1) είναι το ένα. 3. Υπολογίζουµε τον αριθµό e από τη σχέση e*d mod(p-1)(q-1) = 1. ηλαδή ο e είναι ο αντίστροφος του d, mod(p-1)(q-1). 4. Το ζεύγος των αριθµών (e, n) είναι το δηµόσιο κλειδί. 5. Το ζεύγος των αριθµών (d, n) είναι το ιδιωτικό κλειδί. Το δηµόσιο κλειδί στέλνεται στον αποστολέα του µηνύµατος (π.χ. στον πελάτη της τράπεζας που θέλει να κάνει µια συναλλαγή µέσω του διαδικτύου). Το ιδιωτικό κλειδί το κρατά ο παραλήπτης του µηνύµατος (π.χ. η τράπεζα). Ο αποστολέας κρυπτογραφεί το µήνυµα (π.χ. τα στοιχεία της συναλλαγής) µε το δηµόσιο κλειδί του παραλήπτη και το στέλνει στον παραλήπτη. Για να αποκρυπτογραφηθεί το µήνυµα, χρειάζεται και το δηµόσιο και το ιδιωτικό κλειδί. Μια καλή παραστατική ερµηνεία του κρυπτογραφικού συστήµατος RSA είναι η εξής: ο παραλήπτης του µηνύµατος (η τράπεζα) στέλνει στον αποστολέα (τον πελάτη) ένα κιβώτιο που κλειδώνει µε ένα λουκέτο. Το λουκέτο είναι ανοιχτό και ο παραλήπτης κρατάει το κλειδί του. Ο αποστολέας παραλαµβάνει το κιβώτιο µε το λουκέτο ανοιχτό, βάζει µέσα το µήνυµά του και κλειδώνει το λουκέτο. Τώρα δεν µπορεί κανείς, ούτε ο ίδιος ο αποστολέας να το ανοίξει. Στη συνέχεια στέλνει το κλειδωµένο κιβώτιο στον παραλήπτη ο οποίος µε το κλειδί ανοίγει το λουκέτο και βγάζει το µήνυµα από το κιβώτιο. Στο ερµηνευτικό αυτό µοντέλο το λουκέτο είναι το ζεύγος των αριθµών (e, n) και το κλειδί του λουκέτου είναι το ζεύγος των αριθµών (d, n) [5]. 2.5.2 Ασφάλεια του RSA Για να καταλάβουµε καλύτερα την ασφάλεια που µας παρέχει το κρυπτογραφικό σύστηµα RSA θα αναφέρουµε πρώτα πως µπορούµε να το σπάσουµε, δηλαδή τι πρέπει 18

Κεφάλαιο 2: Υπόβαθρο να κάνουµε για να αποκρυπτογραφήσουµε ένα µήνυµα που κρυπτογραφήθηκε µε το σύστηµα RSA. Μπορούµε πολύ εύκολα να βρούµε το δηµόσιο κλειδί, δηλαδή το ζεύγος των αριθµών (e, n). Αφού τώρα γνωρίζουµε τον αριθµό n, δεν έχουµε παρά να τον αναλύσουµε σε γινόµενο δύο πρώτων αριθµών για να βρούµε τους αριθµούς p και q. Μόλις τους βρούµε, η αποκρυπτογράφηση γίνεται αµέσως, αφού η µέθοδος του συστήµατος RSA είναι γνωστή [5]. Ενώ είναι πολύ εύκολο να πολλαπλασιάσουµε δύο πρώτους αριθµούς για να βρούµε το γινόµενό τους, είναι πάρα πολύ δύσκολο να αναλύσουµε έναν αριθµό σε γινόµενο δύο πρώτων αριθµών και είναι πρακτικά αδύνατον αν ο αριθµός έχει πολλά ψηφία. Για να αποδείξουν ότι το κρυπτογραφικό τους σύστηµα δεν µπορεί να σπάσει, οι Rivest Shamir και Adelman ζήτησαν από όποιον νοµίζει ότι µπορεί, να αναλύσει σε γινόµενο δύο πρώτων αριθµών έναν ακέραιο µε 129 ψηφία. Μετά από 17 χρόνια ο αριθµός αναλύθηκε σε ένα δίκτυο 1600 υπολογιστών. Έτσι λοιπόν µε τα σηµερινά τεχνολογικά δεδοµένα, το πρόβληµα της ανάλυσης ενός αριθµού σε γινόµενο δύο πρώτων αριθµών είναι αδύνατον να λυθεί µε τη χρήση σύγχρονων υπολογιστών και πόσο µάλλον όταν ο αριθµός έχει πολλά ψηφία [5]. 2.6 Αλγόριθµοι κρυπτογραφίας Hash και SHA 2.6.1 Μονόδροµες Hash συναρτήσεις Η Hash συνάρτηση είναι µια συνάρτηση που δέχεται σαν είσοδο δεδοµένα αυθαίρετου µήκους και τα µετατρέπει σε µονόδροµα δεδοµένα (χωρίς να υπάρχει δυνατότητα επαναφοράς στην αρχική τους µορφή). Στην πραγµατικότητα, οι µονόδροµες Hash συναρτήσεις στηρίζονται στην ιδέα µιας συνάρτησης συµπίεσης. Αποτελέσµατα αυτής της µονόδροµης συνάρτησης είναι µια µεταβλητή hash µε µήκος n, για δεδοµένη είσοδο µεγαλύτερου µήκους m. Οι είσοδοι της συνάρτησης συµπίεσης είναι ένα block µηνύµατος και η έξοδος του προηγούµενου block από το κείµενο[1] (Σχήµα 2.4). Η έξοδος της συνάρτησης είναι το hash όλων των blocks µέχρι εκείνο το σηµείο. ηλαδή το hash του block M i θα είναι: h i = f(m i, h i-1 ) Σχήµα 2.4: Μονόδροµη Hash συνάρτηση 19

Κεφάλαιο 2: Υπόβαθρο Αυτή η hash µεταβλητή, µαζί µε το επόµενο block µήνυµα, γίνεται η επόµενη είσοδος της συνάρτησης συµπίεσης. To Hash ολόκληρου του µηνύµατος είναι το hash του τελευταίου block. Η προ-εικόνα (pre-image, δηλαδή, πριν ξεκινήσει ακόµη η διαδικασία) πρέπει να περιέχει κάποια δυαδική αντιπροσώπευση του µήκους ολόκληρου του µηνύµατος. Αυτή η τεχνική ξεπερνά ένα πιθανό πρόβληµα ασφάλειας σε µηνύµατα που έχουν ενδεχοµένως διαφορετικά µήκη hashing για την ίδια µεταβλητή. Αυτή η τεχνική µερικές φορές καλείται και ως MD-strengthening. ιάφοροι ερευνητές έχουν εξετάσει σε θεωρητικό επίπεδο ότι αν η συνάρτηση συµπίεσης είναι ασφαλής, τότε και η µέθοδος hashing αυθαίρετου-µήκους µε προ-εικόνα είναι επίσης ασφαλή, αλλά τίποτα δεν έχει αποδειχθεί [1]. 2.6.2 SHA hash συναρτήσεις Η οικογένεια του SHA ( Secure Hash Algorithm = Ασφαλής Αλγόριθµος) είναι ένα σύνολο σχετικών κρυπτογραφικών hash συναρτήσεων. Η συνηθέστερα χρησιµοποιούµενη συνάρτηση της οικογένειας αυτής, ο SHA-1, υιοθετείται σε µια µεγάλη ποικιλία δηµοφιλών εφαρµογών και πρωτοκόλλων ασφάλειας, συµπεριλαµβανοµένων των TSL, SSL, PGP, SSH, S/MIME και IPsec. Ο SHA-1 θεωρείται ο διάδοχος του MD5, µια προηγούµενη, ευρέως χρησιµοποιούµενη hash συνάρτηση. Σε µερικές περιπτώσεις, µε ιδιαίτερες απαιτήσεις ασφαλείας, προτείνεται η χρήση του SHA-256 ή µεγαλύτερου. Οι αλγόριθµοι SHA σχεδιάστηκαν από την NSA (National Security Agency) και δηµοσιεύθηκαν ως πρότυπα της αµερικανικής κυβέρνησης. Το πρώτο µέλος της οικογένειας, δηµοσιεύθηκες το 1993 και ονοµάζεται επίσηµα SHA. Εντούτοις, καλείται συχνά ως SHA-0 για να αποφευχθεί η σύγχυση µε τους διαδόχους του. ύο έτη αργότερα δηµοσιεύθηκε ο SHA-1, που είναι ο πρώτος διάδοχος του SHA. Από τότε, τέσσερις παραλλαγές του SHA έχουν δηµοσιευθεί για να καλύψουν τις αυξανόµενες ανάγκες ασφαλείας: SHA-224, SHA-256, SHA-384 και SHA-512 (µερικές φορές συλλογικά αναφέρονται ως SHA-2). Στον πίνακα 2.2 φαίνονται τα διάφορα είδη του SHA[6]. Algorithm Output size Internal state size Βlock size Length size Word size Passes Operations Collisi on SΗΑ 0 160 160 512 64 32 80 +,and, or, xor, rotl Yes 5ΗΑ 1 160 160 512 64 32 80 +,and, or, xor, rotl With Flaws Ε Α 256/224 256/224 256 512 64 32 64 +,and, or, xor, shr, rotr No SHΑ 512/384 512/384 512 1024 128 64 80 +,and, or, xor, shr, rotr Πίνακας 2.2: Τα διάφορα µεγέθη του SHA. Νο 20

Κεφάλαιο 2: Υπόβαθρο 2.6.3 Ασφάλεια του SHA Οι επιθέσεις έχουν βρεθεί για τον SHA-0 και τον SHA-1. Καµία επίθεση δεν έχει αναφερθεί ακόµα για τις διάφορες παραλλαγές του SHA-2, αλλά δεδοµένου ότι είναι παρόµοιοι µε τον SHA-1 οι ερευνητές ανησυχούν. Για αυτό τον λόγο αναπτύσσουν νέα καλύτερα hashing πρότυπα του SHA, όπως φαίνεται άλλωστε και στη στήλη «Collision» του πίνακα 2.2 [6]. 2.2 Ηλεκτρονικό χρήµα Στην αρχαιότητα οι συναλλαγές γίνονταν µε την ανταλλαγή των αγαθών. Στη συνέχεια, ο άνθρωπος για να διευκολύνει τις συναλλαγές του, εφεύρε το χρήµα. Καθώς το εµπόριο γινόταν ολοένα και περισσότερο πολύπλοκο, επινοήθηκαν όλο και περισσότερο αφαιρετικά σχήµατα για την αναπαράσταση µιας αξίας. Έτσι, υπάρχει σωρευτικά διαρκώς αυξανόµενη εµπειρία στην πρόοδο των συστηµάτων µεταφοράς αξίας, µε τυπικά παραδείγµατα τις εµπορικές συναλλαγές µέσω χρηµατικών ειδών, νοµισµάτων και χαρτονοµισµάτων, διατακτικών πληρωµών, επιταγών και πιστωτικών καρτών. Προσφάτως, η πρόοδος των συστηµάτων µεταφοράς αξίας κορυφώθηκε µε τα συστήµατα ηλεκτρονικών πληρωµών (electronic payment systems). Στην πραγµατικότητα, η σπουδαιότητα του ηλεκτρονικού εµπορίου και των αντίστοιχων εφαρµογών έχει ως αποτέλεσµα την εισαγωγή ποικιλίας διαφορετικών και µερικά ανταγωνιστικών συστηµάτων ηλεκτρονικών πληρωµών. Στα τρέχοντα διαθέσιµα συστήµατα ηλεκτρονικών πληρωµών οι πληρωµές πραγµατοποιούνται ηλεκτρονικά, αλλά η σχεδίαση ανάµεσα στις ηλεκτρονικές πληρωµές και στη µεταφορά της «αληθινής αξίας» είναι ακόµη εγγυηµένη από τις τράπεζες, µέσω καθαρά οικονοµικών συστηµάτων. Τα συστήµατα αυτά οικοδοµούνται αξιοποιώντας τα κλειστά δίκτυα των οικονοµικών οργανισµών, τα οποία θεωρούνται ασφαλέστερα από τα ανοιχτά δίκτυα, όπως το Internet. Ορισµός: Τα συστήµατα ηλεκτρονικών πληρωµών είναι συστήµατα πληρωµών στα οποία τα χρηµατικά κεφάλαια µεταφέρονται µέσω ανταλλαγής ηλεκτρονικών σηµάτων διαµέσου δικτύου που συνδέει τους χρηµατοδοτικούς οργανισµούς, χωρίς καµία ανταλλαγή φυσικού χρήµατος ή χρηµατικών επιταγών κτλ [35]. Tα υπάρχοντα συστήµατα ηλεκτρονικών πληρωµών µπορεί να διαφέρουν στον τρόπο λειτουργίας και τις λεπτοµέρειες υλοποίησης, αλλά έχουν ως κοινό βασικό σκοπό τη διευκόλυνση της µεταφοράς χρηµατικής αξίας µεταξύ πολλαπλών µερών. Γενικά, οι ηλεκτρονικές πληρωµές εµπλέκουν έναν αγοραστή, την οντότητα που θέλει να αγοράσει αγαθά ή υπηρεσίες και έναν έµπορο που αποτελεί την οντότητα που θέλει να πουλήσει 21

Κεφάλαιο 2: Υπόβαθρο αγαθά ή υπηρεσίες. Στην ορολογία των συστηµάτων ηλεκτρονικών πληρωµών, ο αγοραστής συχνά καλείται πληρωτής (payer) και ο έµπορος συχνά καλείται αποδέκτης πληρωµής (payee). Σκοπός ενός συστήµατος ηλεκτρονικών πληρωµών είναι να µεταφέρει µε ασφάλεια και εµπιστοσύνη κάποια χρηµατική αξία από τον πληρωτή στον αποδέκτη πληρωµής. Η µεταφορά αυτή πραγµατοποιείται µε πρωτόκολλα ηλεκτρονικών πληρωµών. Τα πρωτόκολλα αυτά είναι γενικά ως προς τη φύση τους και δεν πρέπει να εξαρτώνται από το µέσο που χρησιµοποιείται για τη µεταφορά. Στην πραγµατικότητα, ένα πρωτόκολλο πληρωµών µπορεί να υλοποιηθεί είτε ως µέρος µιας εφαρµογής παγκόσµιου ιστού χρησιµοποιώντας HTTP, είτε ως µέρος µιας εφαρµογής ηλεκτρονικού ταχυδροµείου χρησιµοποιώντας SMTP, είτε ως µέρος οποιουδήποτε άλλου πρωτοκόλλου εφαρµογής. Σε κάθε περίπτωση, θα πρέπει να εξασφαλίσει ότι η πληροφορία που περιέχεται στην εκτέλεση ενός πρωτοκόλλου ηλεκτρονικών πληρωµών είναι ασφαλής ακόµη και αν το µέσο µετάδοσης δεν είναι. Στην περίπτωση που το µέσο δεχτεί επίθεση, δεν πρέπει να αποκοµιστεί από τον εισβολέα τίποτα παραπάνω από µια ροή δεδοµένων χωρίς απολύτως καµία χρησιµότητα. Για την παροχή αυτού του είδους ασφάλειας, τα περισσότερα συστήµατα χρησιµοποιούν τεχνικές κρυπτογράφησης. Γενικά, τα συστήµατα ηλεκτρονικών πληρωµών ταξινοµούνται σύµφωνα µε τη σχέση που υπάρχει ανάµεσα στο χρόνο που ο πελάτης, το πρόσωπο που εισάγει την πληρωµή, θεωρεί την αγορά ως ολοκληρωµένη και το χρόνο που η αντίστοιχη χρηµατική αξία λαµβάνεται πραγµατικά από το λογαριασµό του. Μπορεί κανείς να διακρίνει: Συστήµατα Προπληρωµής (Prepaid payment systems) Συστήµατα Άµεσης Πληρωµής (Pay-now payment systems) Συστήµατα Μεταπληρωµής (Pay-after payment systems) Πιο συγκεκριµένα: Σε ένα σύστηµα Προπληρωµής, ένα συγκεκριµένο ποσό χρηµάτων αφαιρείται από τον πελάτη, για παράδειγµα χρεώνοντας τον τραπεζικό του λογαριασµό, πριν γίνει οποιαδήποτε αγορά. Αυτό το χρηµατικό ποσό µπορεί αργότερα να χρησιµοποιηθεί για πληρωµές. Στην κατηγορία αυτή εµπίπτουν οι έξυπνες κάρτες (smart cards) που στηρίζονται σε ηλεκτρονικά πορτοφόλια, ηλεκτρονικά µετρητά και συγκεκριµένες τραπεζικές επιταγές, όπως πιστοποιηµένες επιταγές. Σε ένα σύστηµα Άµεσης Πληρωµής, ο λογαριασµός του πελάτη χρεώνεται ακριβώς τη στιγµή της αγοράς. Στην κατηγορία αυτή ανήκουν συγκεκριµένες χρεωστικές κάρτες. Σε ένα σύστηµα Μεταπληρωµής, ο λογαριασµός του εµπόρου πιστώνεται µε το ποσό της αγοράς πριν χρεωθεί ο λογαριασµός του πελάτη. Σε αυτή την κατηγορία ανήκουν οι πιστωτικές κάρτες. Σηµειώνεται ότι οποιοδήποτε σύστηµα Προπληρωµής είναι εννοιολογικά όµοιο µε τα φυσικά µετρητά. Συνεπώς τα συστήµατα αυτά χαρακτηρίζονται ορισµένες φορές ως ηλεκτρονικά συστήµατα που µοιάζουν µε πληρωµή µετρητών (cashlike payment systems). 22

Κεφάλαιο 2: Υπόβαθρο Τα συστήµατα Άµεσης Πληρωµής και τα συστήµατα Μεταπληρωµής είναι όµοια ως προς τη διαδικασία που ακολουθείται: Ο πελάτης πρέπει να έχει ένα λογαριασµό σε τράπεζα και η πληρωµή γίνεται πάντοτε στέλνοντας ένα είδος φόρµας, όπως επιταγή ή απόδειξη πιστωτικής κάρτας, από τον πελάτη προς τον έµπορο. Αυτές οι δύο κατηγορίες συστηµάτων πληρωµής αναφέρονται συλλογικά ως ηλεκτρονικά συστήµατα που προσοµοιάζουν µε πληρωµή επιταγών (checklike payment systems). Σηµειώνεται µία σηµαντική διαφορά µεταξύ των δύο αυτών συστηµάτων πληρωµών, εξαιτίας του γεγονότος ότι σε ένα ηλεκτρονικό σύστηµα που προσοµοιάζει µε πληρωµή µετρητών η παροχή της ανωνυµίας του πελάτη η οποία προστατεύει την αρχή της ιδιωτικότητας του είναι απολύτως εφικτή. Αντίθετα, σε ένα ηλεκτρονικό σύστηµα που προσοµοιάζει µε πληρωµή επιταγών η ανωνυµία είναι δύσκολο ως αδύνατο να επιτευχθεί. Ανωνυµία: Η ανωνυµία είναι δικαίωµα των χρηστών που διασφαλίζει περιβάλλον στο οποίο η ταυτότητα του χρήστη παραµένει κρυφή, αλλά, σε κάθε περίπτωση, η χρήση της για την αποποίηση ευθύνης για παράνοµες πράξεις είναι καταχρηστική. H αποκάλυψη πληροφοριών από τις οποίες µπορεί να προσδιοριστεί η ταυτότητα ενός προσώπου (π.χ. επάγγελµα, διεύθυνση, χαρακτηριστικά, οικογενειακή κατάσταση, παλαιότερο ή παράλληλο ψευδώνυµο, θρησκευτικές ή πολιτικές πεποιθήσεις, σεξουαλικός προσανατολισµός, καταγωγή κλπ) αποτελεί παραβίαση της επιλογής του για ανωνυµία [24]. Ορισµοί Ιδιωτικότητας [29]: Οι Warren και Brandeis (1890): «Το δικαίωµα του να είναι κανείς µόνος του» Ο Alen Westin (1967): «Το δικαίωµα του κάθε ανθρώπου ή οµάδας ατόµων ή οργανισµών, να καθορίζουν από µόνοι τους, πότε, πώς και σε ποιό βαθµό οι προσωπικές τους πληροφορίες θα γίνονται γνωστές σε τρίτους» Ο Rosenberg (1992) προσέγγισε την ιδιωτικότητα ορίζοντας τρεις έννοιες: o Χωρική Ιδιωτικότητα (territorial privacy): Αναφέρεται στην προστασία του στενού φυσικού χώρου που περιβάλει ένα άτοµο π.χ. χώρος εργασίας o Ιδιωτικότητα του ατόµου (privacy of the person): Αναφέρεται στην προστασία του ατόµου από αναίτιες παρεµβάσεις τρίτων σε αυτό, π.χ. φυσική έρευνα χωρίς δικαιολογία, έλεγχο για κατοχή φαρµάκων, ανήθικη και παράνοµη έρευνα για την απόκτηση προσωπικών πληροφοριών κλπ. o Ιδιωτικότητα της πληροφορίας (informational privacy): Αναφέρεται στο δικαίωµα του κάθε ατόµου να ελέγχει αν και µε ποιο τρόπο τα προσωπικά του δεδοµένα συλλέγονται, αποθηκεύονται επεξεργάζονται και διαµοιράζονται σε τρίτους Η Fischer-Hubner (2001) αναφέρει επίσης: 23

Κεφάλαιο 2: Υπόβαθρο o Προσωπικά δεδοµένα (personal data) θεωρείται κάθε πληροφορία που προσδιορίζει την προσωπικότητα ενός ατόµου. o Η προστασία δεδοµένων (data protection) αναφέρεται στην προστασία των προσωπικών δεδοµένων µε σκοπό τη διαφύλαξη της ιδιωτικότητας και αποτελεί µέρος της γενικής έννοιας της ιδιωτικότητας. Στο πεδίο των συστηµάτων ηλεκτρονικών πληρωµών, οι έννοιες on line (άµεσα συνδεδεµένος) και off line (µη συνδεδεµένος) αναφέρονται σε µία συγκεκριµένη ιδιότητα του αντίστοιχου πρωτοκόλλου πληρωµών. Αν και το πρωτόκολλο πληρωµών είναι πρωτόκολλο ανάµεσα σε δύο οντότητες, τον πελάτη και τον έµπορο, πολλά συστήµατα πληρωµών απατούν ο έµπορος να επικοινωνήσει µε µια Έµπιστη Τρίτη Οντότητα που ενεργεί ως κεντρική υπηρεσία, για παράδειγµα εταιρεία πιστωτικής κάρτας, πριν αυτός αποδεχτεί τη συναλλαγή. Στην περίπτωση αυτή, το σύστηµα ονοµάζεται άµεσα συνδεδεµένο σύστηµα πληρωµών (online payment system) και η επικοινωνία µεταξύ του εµπόρου και της οντότητας που ενεργεί ως κεντρική υπηρεσία µπορεί να υλοποιηθεί χρησιµοποιώντας οποιοδήποτε δίαυλο επικοινωνίας. Αν δεν απαιτείται µία τέτοια επικοινωνία µε Έµπιστη Τρίτη Οντότητα κατά τη διάρκεια του πρωτοκόλλου πληρωµής, το σύστηµα καλείται µη συνδεδεµένο σύστηµα πληρωµών (offline payment system). Σε ένα τέτοιο σύστηµα, οι έµποροι πρέπει να επικοινωνούν µε τον εγγυητή τους σε τακτική βάση για να ολοκληρώνουν όλες τις πληρωµές που έχουν λάβει. Γενικά, τα online payment systems είναι κατάλληλα για να προστατεύσουν τον έµπορο και την τράπεζα από µια απάτη του πελάτη, αφού κάθε πληρωµή πρέπει να εγκριθεί. Το βασικό µειονέκτηµα των online εξουσιοδοτήσεων είναι το αναλογούν κόστος ανά συναλλαγή, το οποίο επιβάλλεται από την απαίτηση για υψηλά αξιόπιστο και αποτελεσµατικό σύστηµα εκκαθάρισης στην τράπεζα του πελάτη. Για το λόγο αυτό, τα offline payment systems έχουν σχεδιαστεί για να επιτύχουν µείωση του κόστους των συναλλαγών, επιβραδύνοντας την εκκαθάριση µιας διαδικασίας κατά δεσµίδες (batch process). Τα µη συνδεδεµένα συστήµατα, όµως, υποφέρουν από το ενδεχόµενο της διπλής χρήσης µε την οποία το ηλεκτρονικό συνάλλαγµα αντιγράφεται και εξαργυρώνεται επανειληµµένα. Έτσι, τα συστήµατα αυτά εστιάζουν στην πρόληψη ή τον εντοπισµό και τον περιορισµό της απάτης. Τα συστήµατα που εντοπίζουν και περιορίζουν την απάτη είναι γενικώς κατάλληλα για χαµηλής αξίας συναλλαγές, όπου θεωρητικά η ευθύνη (accountability) µετά το γεγονός είναι αρκετή να αποτρέψει κατάχρηση. 2.2.1 Συστήµατα Ηλεκτρονικών Μετρητών Είναι γνωστό ότι, παρά την επέκταση της χρήσης πιστωτικών καρτών, οι καταναλωτές κάνουν εκτεταµένη χρήση µετρητών. Όπως αναφέρθηκε προηγουµένως, τα συστήµατα προπληρωµής παρέχουν ηλεκτρονικό ανάλογο των φυσικών µετρητών. 24