τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Πόροι μάθησης:
Πλήρως ομομορφική κρυπτογράφηση I: Θεωρία και θεμελίωση (Δάσκαλος Yu Yu από το Πανεπιστήμιο Shanghai Jiao Tong)
Πλήρως Ομομορφική Κρυπτογράφηση II: Θεωρία και Κατασκευή Πλήρως Ομομορφικής Κρυπτογράφησης (Δάσκαλος Xiang Xie)
Σήμερα, τα σχήματα κρυπτογράφησης δεύτερης γενιάς (όπως BGV και BFV) και τρίτης γενιάς βασίζονται στο LWE.
Πρώτα σκεφτείτε, θέλουμε να κρυπτογραφήσουμε έναν αριθμό σσμικρό, τώρα χρησιμοποιώντας μια σειρά από αι α_ιέναΕγώσωστά σσμικρόΚρυπτογράφηση και λήψη ais a_isέναΕγώμικρό, στην πραγματικότητα, μπορεί να λυθεί λύνοντας τον μεγαλύτερο κοινό διαιρέτη GCD σσμικρό .Ωστόσο, εάν προστεθεί ένας τυχαίος θόρυβος ei e_iμιΕγώ,παίρνω ais + ei a_is+e_iέναΕγώμικρό+μιΕγώ, τότε θα είναι δύσκολο να λυθεί σσμικρό αξία. Αυτή η διαδικασία είναι η απλή κατανόησή μου για το LWE Το λεγόμενο σφάλμα είναι ένας θόρυβος.
Η διαδικασία υπολογισμού της πλήρως ομομορφικής κρυπτογράφησης χωρίζεται σε τρία βήματα: δημιουργία κλειδιού KeyGen, κρυπτογράφηση Enc, ομομορφικός υπολογισμός Eval και αποκρυπτογράφηση Dec. ,
Κατασκευάστε πρώτα την παραπάνω εξίσωση, s ⋅ A + e = s A + e scdot A + e = sA+eμικρό⋅ΕΝΑ+μι=μικρόΕΝΑ+μικαι, στη συνέχεια, λάβετε το δημόσιο κλειδί pk ( − Α -Α−ΕΝΑκαι s A + e sA+eμικρόΕΝΑ+μιμάτισμα), και το ιδιωτικό κλειδί sk ( σσμικρό και 1 μάτισμα). Επομένως, προκύπτει ότι το αποτέλεσμα του πολλαπλασιασμού μεταξύ pk και sk είναι τυχαίος θόρυβος e (κοντά στο 0).
Το δημόσιο κλειδί pk που χρησιμοποιείται για την κρυπτογράφηση, το r είναι ένα τυχαίο διάνυσμα που περιέχει μόνο 0 ή 1, και το m είναι η πληροφορία που πρέπει να κρυπτογραφηθεί (βάλτε το χαμηλότερο bit του διανύσματος).
Αφού υπολογίσετε το εσωτερικό γινόμενο του ιδιωτικού κλειδιού sk που χρησιμοποιείται για την αποκρυπτογράφηση και το ct, βρείτε το mod 2 για να λάβετε το αποτέλεσμα αποκρυπτογράφησης.
Απόδειξη ορθότητας:
Πολλαπλασιάστε το sk και το pk για να λάβετε 2e (η συνθήκη που πληροί το KeyGen) και στη συνέχεια κάντε το εσωτερικό γινόμενο με το r για να λάβετε έναν μικρό ομοιόμορφο θόρυβο. Λάβετε το αποτέλεσμα αποκρυπτογράφησης m. Αυτός είναι ο λόγος για τον οποίο ο κατασκευασμένος θόρυβος είναι 2e, όχι e Καταλαβαίνω ότι με την κατασκευή ζυγού τυχαίου θορύβου, είναι βολικό να χρησιμοποιήσετε το mod 2 για την εξάλειψη του θορύβου κατά την αποκρυπτογράφηση.
Απόδειξη ασφάλειας:
Όταν το pk είναι ψευδοτυχαίο και το r έχει αρκετά υψηλή εντροπία (δηλαδή, η τυχαιότητα είναι ισχυρή;), τόσο το pk όσο και το pk επί r είναι ψευδοτυχαία. Μετά την προσθήκη φυσικών και διανυσμάτων με m, το αποτέλεσμα κρυπτογράφησης είναι επίσης ψευδοτυχαίο.
Ακολουθεί η τυπική περιγραφή του δασκάλου Xiang Xie:
Τύπος κρυπτογράφησης: κρυπτογραφημένο κείμενο c = δημόσιο κλειδί pk ✖️ τυχαίο r + απλό κείμενο m
Τύπος αποκρυπτογράφησης: απλό κείμενο m = <κρυπτογραφημένο κείμενο sk, ιδιωτικό κλειδί sk> mod q mod 2
Σε αυτή τη βάση, το mod 2 μπορεί να χρησιμοποιηθεί για την αποκρυπτογράφηση της τιμής του απλού κειμένου m. Εφόσον ο θόρυβος είναι αρκετά μικρός, η ακρίβεια μπορεί να είναι εγγυημένη.
Εδώ πρέπει να ξεχωρίσουμε κάτι: το παραπάνω PK = ( A , b = A s ′ + 2 e ) PK=(A, b=As'+2e)Πκ=(ΕΝΑ,σι=ΕΝΑμικρό′+2μι)είναι η λύση BGV και το BFV είναι PK = ( A , b = A s ′ + e ) PK=(A, b=As'+e)Πκ=(ΕΝΑ,σι=ΕΝΑμικρό′+μι), η διαφορά είναι ότι το BGV κωδικοποιεί πληροφορίες σε χαμηλά bit, ενώ το BFV κωδικοποιεί μηνύματα σε υψηλά bit (θα εξηγηθεί κατά την εκμάθηση του BFV).
Σημειώστε ότι η ομομορφική προσθήκη ή πολλαπλασιασμός θα επιφέρει σημαντική συσσώρευση θορύβου και ο πολλαπλασιασμός έχει τετραγωνική τάση ανάπτυξης.
Στη συνέχεια, ας μιλήσουμε για το πώς να αποκρυπτογραφήσουμε το αποτέλεσμα του ομομορφικού πολλαπλασιασμού. Μπορείτε να δείτε τον ακόλουθο τύπο: Ο πολλαπλασιασμός δύο κρυπτογραφημένων κειμένων ισοδυναμεί με την εκτέλεση του τανυστικού γινόμενου του κρυπτογραφημένου κειμένου και του ιδιωτικού κλειδιού αντίστοιχα. Προφανώς, τόσο το κρυπτογραφημένο κείμενο όσο και το ιδιωτικό κλειδί έχουν διπλασιαστεί σε μέγεθος. Παράδειγμα είναι μια απόδειξη ισοδυναμίας.
Το ερώτημα λοιπόν είναι, πώς να επαναφέρετε το μέγεθος κρυπτογραφημένου κειμένου και το μέγεθος του ιδιωτικού κλειδιού μετά από ομομορφικό πολλαπλασιασμό; Αυτό είναι το πρόβλημα που λύνει το Key Switching.
Ακολουθεί η περιγραφή του δασκάλου Xiang Xie:
Ο στόχος είναι να επαναφέρετε το μέγεθος του κρυπτογραφημένου κειμένου και του ιδιωτικού κλειδιού σε γραμμικό μέγεθος.
Τώρα βρείτε τον πολλαπλασιασμό των κρυπτογραφημένων κειμένων c1 και c2:
Η παραπάνω διαδικασία βασίζεται στην έννοια της αποσύνθεσης bit:
Ακολουθεί η περιγραφή του δασκάλου Xiang Xie:
Ο στόχος της εναλλαγής κλειδιών: μετατροπή του ιδιωτικού κλειδιού s ~ tilde sμικρό~κάτω c ~ tilde γντο~ Μετατροπή σε ιδιωτικό κλειδί σσμικρόκάτω ccντο,και c ~ tilde γντο~και ccντοΕίναι όλα κρυπτογραφημένα με το ίδιο απλό κείμενο.
Μια βασική ιδέα εδώ είναι το Key Switching Key (KSK), που σημαίνει τη χρήση ιδιωτικού κλειδιού σσμικρόνα κρυπτογραφήσει s ~ tilde sμικρό~。
Μέσω της διαδικασίας Key Switching, το ιδιωτικό κλειδί μπορεί να προέρχεται από s ⊗ s μερικές φορές sμικρό⊗μικρόέγινε γραμμική σσμικρό, ενώ το κρυπτογραφημένο κείμενο αλλάζει από c ~ tilde γντο~έγινε γραμμική ccντο .Και μπορεί να φανεί από την τελευταία γραμμή του τύπου ότι μετά το Key Switching ⟨ c , s ⟩ langle c, srangle⟨ντο,μικρό⟩και το πρωτότυπο ⟨ c ~ , s ⊗ s ⟩ langle tilde c, sometimes srangle⟨ντο~,μικρό⊗μικρό⟩Υπάρχει διαφορά θορύβου μεταξύ 2 c ~ T e ~ 2tilde c^Ttilde e2ντο~Τμι~ , αυτό το μέρος μπορεί να είναι πολύ μεγάλο! Επομένως, δεν υπάρχει ακόμα τρόπος να εφαρμοστεί η εναλλαγή κλειδιών εδώ.
Ένας πίνακας Gadget G παρουσιάζεται εδώ:
Επομένως, η διαδικασία της εναλλαγής κλειδιού γίνεται ως εξής:
Σε αυτό το σημείο, το προστιθέμενο σφάλμα είναι πολύ μικρό.
Για να συνοψίσουμε, μέσω Key Switching, το αρχικό ιδιωτικό κλειδί s ~ = s ⊗ s tilde s=s otimes sμικρό~=μικρό⊗μικρόκάτω c ~ = c ⊗ c tilde c=cotimes cντο~=ντο⊗ντο, μετατρέπεται σε ιδιωτικό κλειδί σσμικρόκάτω ccντο, δώστε προσοχή στο κλειδί μετά την εναλλαγή κλειδιού s , cs, cμικρό,ντοΔεν είναι οι αρχικές τιμές (διπλός έλεγχος).
Για το BGV, ο θόρυβος της πρόσθεσης αυξάνεται γραμμικά και ο θόρυβος του πολλαπλασιασμού αυξάνεται πλήρως είναι επίσης πολύ μεγάλο. Επομένως, αυτός ο θόρυβος πρέπει να μειωθεί περαιτέρω.
Σε αυτό το σημείο, οι υπολογισμοί ομομορφικού πολλαπλασιασμού και πρόσθεσης με μικρό βάθος έχουν εφαρμοστεί μέσω της αλλαγής κλειδιού για κάθε στρώμα, ωστόσο, καθώς το βάθος υπολογισμού βαθαίνει, η επέκταση του θορύβου είναι εκρηκτική. FHE (μπορεί να υπολογίσει FHE σε καθορισμένο βάθος).
Τώρα ελπίζουμε να εφαρμόσουμε ένα FHE που μπορεί να υπολογίσει ένα συγκεκριμένο βάθος χωρίς τη χρήση bootstrapping, το οποίο απαιτεί μετατροπή modulo.
Δεν καταλαβαίνω ακριβώς τη διαδικασία στη μέση, είναι ο μετασχηματισμός του κρυπτογραφημένου κειμένου c από τον τομέα modulo q στον τομέα modulo p (p<.
Εδώ είναι ένα συγκεκριμένο παράδειγμα:
Εάν δεν εκτελεστεί η Μείωση Modulus, ο θόρυβος θα αυξηθεί με διπλή εκθετική τάση καθώς το βάθος βαθαίνει και θα προκύψουν σφάλματα αποκρυπτογράφησης μετά το επίπεδο >= 3.
Εάν εκτελείται μείωση συντελεστή σε κάθε επίπεδο, ο θόρυβος θα διατηρείται επίσης εντός ενός εύρους απόλυτης τιμής, με κόστος συνεχούς μείωσης του συντελεστή.
Έτσι, εάν θέλετε να εφαρμόσετε ένα επίπεδο FHE, μπορείτε να ορίσετε ένα συντελεστή Β δ Β^δσιρε, τότε μπορείτε να υπολογίσετε ένα βάθος δδρεκύκλωμα (όπου ΒΒσι είναι το άνω όριο του θορύβου του ανανεωμένου κρυπτογραφημένου κειμένου).Υπολογίστηκε δδρεΜετά το βάθος, ο συντελεστής πρέπει να μειωθεί σε ΒΒσι , για να βεβαιωθείτε ότι δεν υπάρχει σφάλμα στην αποκρυπτογράφηση αυτή τη στιγμή. Το BGV είναι ένα ισοπεδωμένο FHE.