Κοινή χρήση τεχνολογίας

[Βασικά στοιχεία της κρυπτογραφίας] Πλήρως ομομορφικό σχήμα κρυπτογράφησης βασισμένο σε LWE (Μάθηση με σφάλματα)

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. ,

KeyGen:

Εισαγάγετε την περιγραφή της εικόνας εδώ
Κατασκευάστε πρώτα την παραπάνω εξίσωση, s ⋅ A + e = s A + e scdot A + e = sA+eμικρόΕΝΑ+μι=μικρόΕΝΑ+μικαι, στη συνέχεια, λάβετε το δημόσιο κλειδί pk ( − Α -ΑΕΝΑκαι s A + e sA+eμικρόΕΝΑ+μιμάτισμα), και το ιδιωτικό κλειδί sk ( σσμικρό και 1 μάτισμα). Επομένως, προκύπτει ότι το αποτέλεσμα του πολλαπλασιασμού μεταξύ pk και sk είναι τυχαίος θόρυβος e (κοντά στο 0).

Enc:

Το δημόσιο κλειδί 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).

Eval (προσθετικός ομομορφισμός και πολλαπλασιαστικός ομομορφισμός):

Εισαγάγετε την περιγραφή της εικόνας εδώ
Σημειώστε ότι η ομομορφική προσθήκη ή πολλαπλασιασμός θα επιφέρει σημαντική συσσώρευση θορύβου και ο πολλαπλασιασμός έχει τετραγωνική τάση ανάπτυξης.
Στη συνέχεια, ας μιλήσουμε για το πώς να αποκρυπτογραφήσουμε το αποτέλεσμα του ομομορφικού πολλαπλασιασμού. Μπορείτε να δείτε τον ακόλουθο τύπο: Ο πολλαπλασιασμός δύο κρυπτογραφημένων κειμένων ισοδυναμεί με την εκτέλεση του τανυστικού γινόμενου του κρυπτογραφημένου κειμένου και του ιδιωτικού κλειδιού αντίστοιχα. Προφανώς, τόσο το κρυπτογραφημένο κείμενο όσο και το ιδιωτικό κλειδί έχουν διπλασιαστεί σε μέγεθος. Παράδειγμα είναι μια απόδειξη ισοδυναμίας.

Εισαγάγετε την περιγραφή της εικόνας εδώ

Το ερώτημα λοιπόν είναι, πώς να επαναφέρετε το μέγεθος κρυπτογραφημένου κειμένου και το μέγεθος του ιδιωτικού κλειδιού μετά από ομομορφικό πολλαπλασιασμό; Αυτό είναι το πρόβλημα που λύνει το 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.

Εισαγάγετε την περιγραφή της εικόνας εδώ