Threshold Cryptography Algorithms Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους
Ορισμός Το σύστημα το οποίο τεμαχίζει ένα κλειδί k σε n τεμάχια έτσι ώστε οποιοσδήποτε συνδυασμός πλήθους έως και m-1 τεμαχίων να μην καθιστά δυνατή την ανασυγκρότηση του κλειδιού, ενώ οποιοσδήποτε συνδυασμός πλήθους m τεμαχίων και άνω να οδηγεί στην ανακατασκευή του κλειδιού, ονομάζεται σχέδιο(m,n)- κατωφλίου. Το κάθε τεμάχιο του κλειδιού ονομάζεται σκιά ή μερίδιο του κλειδιού. Υπάρχει πληθώρα πρακτικών εφαρμογών σχεδίων (m,n)-κατωφλίου. Για παράδειγμα, σε δημοκρατικά συστήματα στα οποία η λήψη και εκτέλεση αποφάσεων εκτελείται με ψηφοφορία, ο κάθε ψηφοφόρος μπορεί να έχει μερίδιο του κλειδιού. Επίσης, σε συστήματα όπου η ψήφος του προέδρου έχει μεγαλύτερη βαρύτητα, ο πρόεδρος μπορεί να έχει δύο ή περισσότερα μερίδια.
Παράδειγμα ασφαλούς vs μη ασφαλούς διαμοιρασμού μυστικών Ένα ασφαλές σχήμα διαμοιρασμού κατανέμει τα μέρη έτσι ώστε κανείς με λιγότερα απο μέρη δεν έχει πρόσβαση στη πληροφορία όπως κάποιος με 0 κομμάτια. Για παράδειγμα το secret sharing scheme στο οποίο η μυστική φράση "password" χωρίζεται στα κομμάτια "pa------," "--ss----," "----wo--," και "------rd,". Το άτομο με 0 κομμάτια γνωρίζει μόνο το μήκος της φράσης (8 ). Επομένως θα μπορούσε να μαντέψει τη φράση απο 26^8 = 208 δισ. πιθανούς συνδυασμούς.το άτομο με 1 μέρος, θα έπρεπε να μαντέψε μονο 6 γράμματα απο 26^6 = 308 εκ. συνδυασμούς κοκ με όσα περισσότερα άτομα αναμειγνύονται.συνεπώς το σύστημα αυτό δεν είναι ασφαλές αφού κάποιος με λιγότερα απο t μυστικά μέρη στη κατοχή του δύναται να ανακαλύψει το μυστικό χωρίς τον απαραίτητο αριθμό μερών.στη συνέχεια, θα εξετάσουμε ένα αντιπροσωπευτικό μοντέλο σχεδίου (m,n)-κατωφλίου.
Σχέδια (m,n)-κατωφλίου πολυωνύμου παρεμβολής Έστω το μυστικό κλειδί k, το οποίο επιθυμούμε να τεμαχίσουμε σε n μερίδια με δυνατότητα ανασυγκρότησης του k, επιλέγοντας οποιαδήποτε μερίδια πλήθους m. Το σχέδιο χρησιμοποιεί πολυώνυμο βαθμού m-1,ως εξής. Επιλέγουμε πρώτο αριθμό p, τέτοιον ώστε να είναι μεγαλύτερος απο τον αριθμό των μεριδίων, n <p.το πολυώνυμο είναι της μορφής : f(x)=c m-1 x m-1 +c m-2 x m-2 +...+c 1 x+k mod p, όπου οι συντελεστές c 1, c 2,, c m-1 είναι μυστικοί, ενώ ο p είναι δημόσιος. Τα μέρη προκύπτουν για x=1,2,...n : f(i)=c m-1 i m-1 +c m-2 i m-2 +...+c 1 i+k mod p,όπου f(i) το i-στό μερίδιο. Εφόσον οι συντελεστές και το μυστικό κλειδί k είναι άγνωστοι, υπάρχουν συνολικά m άγνωστοι.το κάθε μερίδιο αποτελεί μια μερική λύση (i,f(i)). Χρειάζονται επομένως m το πλήθος λύσεις για να είναι δυνατή η λύση ως προς c 1, c 2,, c m-1 και k, φυσικά. Για περισσότερες απο m μερικές λύσεις, έχουμε πλεονασμό πληροφορίας και η επίλυση του k είναι δυνατή.
Shamir s Secret Sharing Scheme Adi-Shamir The S in RSA Ο Shamir περιέγραψε εναν αλγόριθμο βασισμένο στο Secret Sharing,στα πολυώνυμα Lagrange και το (k,n) threshold sharing που θεωρείται πιό αποδοτικό και ασφαλές σε αντίθεση με το απλό secret sharing. Σε αυτό το μοντέλο οποιαδήποτε t από n μέρη μπορούν να χρησιμοποιηθούν για την αποκάλυψη του μυστικού. Το σύστημα βασίζεται στην ιδέα ότι μπορεί ενα μοναδικό πολυώνυμο βαθμού (t-1) να ταιριάξει σε οποιοδήποτε σετ t σημείων που υπάρχουν στο πολυώνυμο.π.χ Χρειάζονται 2 σημεία για τον ορισμό μιας ευθείας, τρία σημεία για το πλήρη ορισμό τετραγώνου, τέσσερα για την κυβική καμπύλη κοκ. Έτσι, χρειάζονται t σημεία για τον ορισμό πολυωνύμου βαθμού t-1. Η μέθοδος που ακολουθείται είναι ο καθορισμός πολυωνύμου βαθμού t-1 με το μυστικό ως πρώτο συντελεστή και οι υπόλοιποι αφήνονται να επιλεχθούν στη τύχη. Ύστερα βρίσκουμε n σημεία στη καμπύλη και δίνουμε απο ένα σε κάθε party. Όταν τουλάχιστον t απο τους n players αποκαλύψουν τα σημεία τους,υπάρχει επαρκής πληροφορία να ταιριάξει σε ένα πολυώνυμο (t-1) βαθμού με το πρώτο συντελεστή να είναι το μυστικό.
Shamir s Secret Sharing - Remarks Ευελιξία Καθώς αυξάνουμε το n μπορούμε να υπολογίσουμε καινούρια μέρη χωρίς να επηρεάζονται τα ήδη υπάρχοντα. Δυνατότητα διαγραφής μερών Τροποποίηση μερών χωρίς απαραίτητη αλλαγή μυστικού : νέο πολυώνυμο f*(x) Ένα party μπορεί να διαθέτει παραπάνω από ένα μέρος
Shamir s Secret Sharing Algorithm -Παράδειγμα Δεδομένου : (k,n) και μυστικού s Z q (3,5) threshold s = 6 Z 22 Τυχαία k-1 : α 1,, α k-1 α 1 = 2 α 2 = 1 Θέτω α 0 := s a 0 =6 f(x) =α 0 +α 1 x+α 2 x 2 +α k-1 x k-1 f(x)=x 2 + 2x + 6 για i = 1,, n υπολογίζω το s =(i,f(i)) mod q i (1,9), (2,14), (3,21), (4,8), (5,19)
Υπάρχουν εκδόσεις κατωφλίου σε πολλά μοντέλα κρυπτογράφησης Ο κύριος σκοπός είναι η διατήρηση του επιπέδου ασφαλείας έτσι ώστε να είναι το ίδιο με το πρωταρχικό μοντέλο. Τέτοιου είδους εκδόσεις κατωφλίου υπάρχουν για αλγορίθμους όπως : RSA Paillier cryptosystem Damgård Jurik cryptosystem ElGamal
RSA Ο RSA είναι απο τους πρώτους αλγόριθμους δημοσίου κλειδιού που δημιουργήθηκαν και χρησιμοποιείται ευρύτερα στην ασφαλή μετάδοση δεδομένων.σε αυτά τα κρυπτοσυστήματα,το κλειδί κρυπτογράφησης είναι δημόσιο και διαφέρει απο το κλειδί αποκρυπτογράφησης το οποίο παραμένει μυστικό.η ασυμμετρία αυτή βασίζεται στη πολυπλοκότητα του αποτελέσματος δύο παραγόντων μεγάλου μήκους,πρώτων αριθμών. Λειτουργία: Ο αλγόριθμος RSA περιλαμβάνει 4 βήματα : 1. Παραγωγή κλειδιού, 2. Κατανομή κλειδιού, 3. Κρυπτογράφηση, 4. Αποκρυπτογράφηση Ένας χρήστης δημιουργεί και μετά μοιράζεται ένα δημόσιο κλειδί βασισμένο σε 2 μεγάλου μήκους πρώτους αριθμούς μαζί με μια τιμή. Οι πρώτοι αριθμοί πρέπει να παραμείνουν μυστικοί. Οποιοσδήποτε μπορεί να χρησιμοποιήσει το δημόσιο κλειδί για να κρυπτογραφήσει ένα μήνυμα.το επόμενο στάδιο χρήσιμοποιεί ενα μυστικό κλειδί.σκοπός είναι οποιοδήποτε μήνυμα που είναι κρυπτογραφημένο με το δημόσιο κλειδί να μπορεί να αποκρυπτογραφηθεί με ενα συγκεκριμένο μυστικό κλειδί.η αρχή του RSA είναι η εύρεση τριών θετικών μεγάλου μήκους ακεραίων e,d και n έτσι ώστε με modular εκθετοποίηση να ισχύει : ( m e ) d m ( mod n ), κι έτσι ακόμη και αν γνωρίζουμε το e,n ή και το m είναι πάρα πολυ δύσκολο να βρούμε το d.
Παράδειγμα Κατανομή κλειδιού Για να είναι σε θέση ο Bob να στείλει το κρυπτογραφημένο μήνυμα στην Alice πρέπει αυτή να μεταδώσει το δημόσιο κλειδί της (n, e)στον Bob μέσω ενός αξιόπιστου αλλά όχι απαραίτητα μυστικού καναλιού. Το μυστικό κλειδί d δεν γνωστοποιείται. Κρυπτογράφηση Εστω ο Bob θέλει να στείλει το μήνυμα M στην Alice. Αρχικά μετατρέπει το M σε ακέραιο m, έτσι ώστε 0 m < n και gcd(m, n) = 1 (αυτό σημαίνει ότι m και n είναι σχετικά πρώτοι ακέραιοι) χρησιμοποιώντας ένα προσυμφωνημένο αντιστρέψιμο πρωτόκολλο γνωστό ως padding scheme {τιμή ενσωματωμένη στο μήνυμα που δίνει την δυνατότητα να κρυπτογραφηθεί το κείμενο τυχαία}.υστερα υπολογίζεται το κρυπτοκείμενο c, χρησιμοποιώντας το δημόσιο κλειδί e της Alice, το οποίο ανταποκρίνεται στο c m e ( mod n ) Στη συνέχεια μεταδίδεται το c στην Alice. Αποκρυπτογράφηση Η Alice μπορεί να επαναφέρει το m απο το c χρησιμοποιώντας το μυστικό κλειδί της, εκθέτη d,υπολογίζοντας το c d ( m e ) d m ( mod n ) δεδομένου του m, μπορεί να προσδιορίσει το αρχικό μήνυμα M αντιστρέφωντας το padding scheme.
TRSA(k,N) Αλγόριθμος RSA όπου τουλάχιστον k απο N συμμετέχουν στην modular εκθετοποίηση μυστικού κλειδιού, ενώ με αριθμό μικρότερο του k-1 δεν έχουν πρόσβαση σε αυτό. Τα συστήματα TRSA έχουν πολλές παραλλαγές όσων αφορά την αποδοτικότητα, την ασφάλεια και την ευρωστία. Κύριες προυποθέσεις είναι ίδιες με άλλα συστήματα κατωφλίου δημοσίου κλειδιού και αποτελούνται απο τις γενικές φάσεις κλειδιού ( παραγωγή μυστικού και δημοσίου), την κατανομή δημόσιας παραμέτρου, τον μερικό υπολογισμό υπογραφής απο κάθε συμμετέχοντα, την αυθεντικοποίηση και τον συνδυασμό των επιμέρους μερών. Κάποια σχήματα απαιτούν προ-υπολογιστική φάση η οποία είναι μέρος της φάσης υπογραφής( signature) βασισμένη κάθε φορά στο υποσύνολο που συμμετέχει. Η φάση της εγκυρότητας και του συνδυασμού ποικίλλουν μεταξύ των σχημάτων.
1985 - Taher Elgamal Κρυπτογράφηση Elgamal Κρυπτογράφηση βασισμένη στην ανταλλαγή κλειδιών Diffie-Hellman Κρυπτογράφηση δημοσίου/μυστικού κλειδιού : Παραγωγή κλειδιών : pub, priv Κρυπτογράφηση : κρυπτοκείμενο = enc pub (m) Αποκρυπτογράφηση: m=dec priv (cipher)
Elgamal Encryption Example Παραγωγή δημόσιου/μυστικού κλειδιού 1. Πρώτος αριθμός μεγάλου μήκους p με παράγοντα g p=23 g=5 2. τυχαίο α {1,, p-1 } α=6 3. υπολογισμός A =g α mod p A =5 6 =8 mod 23 4. pub =(p,g,a) priv = α pub =(23,5,8 ) priv =6
Κρυπτογράφηση Δεδομένο: μήνυμα m {0,, p - 1} m = 12 τυχαίo b {1,, 1 - p } b = 3 υπολογίζω B = g b mod p c = A b m mod p B = 5 3 = 10 md 23 c = 8 3 x12 =3 mod 23 κρυπτοκείμενο cipher = ( B,c ) cipher =(10,3 )
Αποκρυπτογράφηση Δεδομένου cypher = ( B,c ) και priv = α cypher = (10, 3 ) priv = 6 υπολογίζω x = p - 1 - α x = 23-1 - 6 = 16 υπολογίζω m = B x c mod p m = 10 16 x 3 = 12 mod 23 Κρυπτογραφημένο μήνυμα m m = 12
References 1.Threshold Cryptography (Cloud Security Mechanisms)-Björn Groneberg 2. Threshold cryptosystems -wikipedia