Μετάβαση στο περιεχόμενο

Αλγόριθμος του Μπέρλεκαμπ

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Στα μαθηματικά, ιδίως στην υπολογιστική άλγεβρα, ο αλγόριθμος του Μπέρλεκαμπ[1][2] είναι μια γνωστή μέθοδος για την παραγοντοποίηση πολυωνύμων πάνω σε πεπερασμένα σώματα (επίσης γνωστά ως σώματα Γκαλουά). Ο αλγόριθμος αποτελείται κυρίως από αναγωγή πινάκων και υπολογισμούς πολυωνυμικών GCD. Εφευρέθηκε από τον Έλγουιν Μπέρλεκαμπ το 1967. Ήταν ο κυρίαρχος αλγόριθμος για την επίλυση του προβλήματος μέχρι τον αλγόριθμο Κάντορ-Ζάσενχαους του 1981. Σήμερα υλοποιείται σε πολλά γνωστά συστήματα υπολογιστικής άλγεβρας.

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

Όλοι οι πιθανοί παράγοντες της περιέχονται στον δακτύλιο παραγόντων

Ο αλγόριθμος επικεντρώνεται σε πολυώνυμα που ικανοποιούν την ισοτιμία:

Αυτά τα πολυώνυμα σχηματίζουν μια υποάλγεβρα του R (η οποία μπορεί να θεωρηθεί ως ένας διανυσματικός χώρος διαστάσεων πάνω από το , που ονομάζεται υποάλγεβρα Μπέρλεκαμπ. Η υποάλγεβρα Μπέρλεκαμπ παρουσιάζει ενδιαφέρον επειδή τα πολυώνυμα που περιέχει ικανοποιούν

Γενικά, δεν θα είναι κάθε GCD στο παραπάνω γινόμενο ένας μη τετριμμένος παράγοντας του , αλλά μερικοί είναι, παρέχοντας τους παράγοντες που αναζητάμε.

Ο αλγόριθμος του Μπέρλεκαμπ βρίσκει πολυώνυμα κατάλληλα για χρήση με το παραπάνω αποτέλεσμα υπολογίζοντας μια βάση για την υποάλγεβρα Μπέρλεκαμπ. Αυτό επιτυγχάνεται μέσω της παρατήρησης ότι η υποάλγεβρα Μπέρλεκαμπ είναι στην πραγματικότητα ο πυρήνας ενός συγκεκριμένου πίνακα πάνω από το , ο οποίος προκύπτει από τον λεγόμενο πίνακα Μπέρλεκαμπ του πολυωνύμου, που συμβολίζεται . Αν τότε είναι ο συντελεστής του -th δυναμικού όρου στην αναγωγή του modulo , δηλ:

Με ένα συγκεκριμένο πολυώνυμο , ας πούμε:

μπορούμε να συσχετίσουμε το γραμμικό διάνυσμα:

Είναι σχετικά απλό να δούμε ότι το γραμμικό διάνυσμα αντιστοιχεί, με τον ίδιο τρόπο, στην αναγωγή του modulo . Συνεπώς, ένα πολυώνυμο βρίσκεται στην υποάλγεβρα Μπέρλεκαμπ αν και μόνο αν (όπου είναι ο ταυτοτικός πίνακας), δηλ. αν και μόνο αν βρίσκεται στο μηδενικό χώρο του .

Υπολογίζοντας τον πίνακα και ανάγοντάς τον σε μορφή μειωμένης γραμμής echelon και στη συνέχεια διαβάζοντας εύκολα μια βάση για τον μηδενικό χώρο, μπορούμε να βρούμε μια βάση για την υποάλγεβρα Μπέρλεκαμπ και συνεπώς να κατασκευάσουμε πολυώνυμα σε αυτόν. Στη συνέχεια πρέπει να υπολογίσουμε διαδοχικά GCDs της παραπάνω μορφής μέχρι να βρούμε έναν μη τετριμμένο παράγοντα. Δεδομένου ότι ο δακτύλιος των πολυωνύμων πάνω από ένα σώμα είναι μια ευκλείδεια περιοχή, μπορούμε να υπολογίσουμε αυτά τα GCD χρησιμοποιώντας τον ευκλείδειο αλγόριθμο.

Εννοιολογική αλγεβρική εξήγηση

[Επεξεργασία | επεξεργασία κώδικα]

Με λίγη αφηρημένη άλγεβρα, η ιδέα πίσω από τον αλγόριθμο του Μπέρλεκαμπ γίνεται εννοιολογικά σαφής. Παρουσιάζουμε ένα πεπερασμένο σώμα , όπου για κάποιο πρώτο , ως . Μπορούμε να υποθέσουμε ότι είναι χωρίς τετράγωνα, με τη λήψη όλων των πιθανών pth ριζών και στη συνέχεια τον υπολογισμό του gcd με την παράγωγο του. .

Τώρα, ας υποθέσουμε ότι είναι η παραγοντοποίηση σε μη αναγώγιμα. Τότε έχουμε έναν ισομορφισμό δακτυλίου ,δίνεται από το κινεζικό θεώρημα υπολοίπων. Η κρίσιμη παρατήρηση είναι ότι ο αυτομορφισμός Φρομπένιους αντιμετατίθεται με , έτσι ώστε αν συμβολίσουμε , τότε περιορίζεται σε έναν ισομορφισμό. Με τη θεωρία πεπερασμένων σωμάτων, είναι πάντα το πρώτο υποσώμα της επέκτασης αυτού του σώματος. Συνεπώς, έχει στοιχεία αν και μόνο αν είναι μη αναγωγίσιμη.

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

Ο αλγόριθμος αναλύεται τώρα σε δύο περιπτώσεις:

  • Στην περίπτωση μικρών μπορούμε να κατασκευάσουμε οποιοδήποτε , και στη συνέχεια παρατηρούμε ότι για κάποιο υπάρχουν έτσι ώστε και . Ένα τέτοιο έχει έναν μη τετριμμένο παράγοντα κοινό με την , ο οποίος μπορεί να υπολογιστεί μέσω του gcd. Καθώς το είναι μικρό, μπορούμε να διατρέξουμε κυκλικά όλα τα πιθανά .
  • Για την περίπτωση των μεγάλων πρώτων αριθμών, οι οποίοι είναι αναγκαστικά περιττοί, μπορεί κανείς να εκμεταλλευτεί το γεγονός ότι ένα τυχαίο μη μηδενικό στοιχείο του είναι ένα τετράγωνο με πιθανότητα , και ότι ο χάρτης απεικονίζει το σύνολο των μη μηδενικών τετραγώνων στο , και το σύνολο των μη τετραγώνων στο . Έτσι, αν πάρουμε ένα τυχαίο στοιχείο , τότε με καλή πιθανότητα θα έχει έναν μη τετριμμένο παράγοντα κοινό με την .

Για περισσότερες λεπτομέρειες μπορείτε να συμβουλευτείτε.[3]

Μια σημαντική εφαρμογή του αλγορίθμου του Μπέρλεκαμπ είναι ο υπολογισμός διακριτών λογαρίθμων πάνω σε πεπερασμένα σώματα , όπου είναι πρώτος αριθμός και . Ο υπολογισμός των διακριτών λογαρίθμων αποτελεί σημαντικό πρόβλημα στην κρυπτογραφία δημόσιου κλειδιού και στην κωδικοποίηση ελέγχου σφαλμάτων. Για ένα πεπερασμένο σώμα, η ταχύτερη γνωστή μέθοδος είναι η μέθοδος του υπολογισμού των δεικτών, η οποία περιλαμβάνει την παραγοντοποίηση των στοιχείων του σώματος. Αν αναπαραστήσουμε το σώμα με τον συνήθη τρόπο - δηλαδή ως πολυώνυμα πάνω στο βασικό σώμα , αναγόμενα modulo ένα μη αναγώγιμο πολυώνυμο βαθμού - τότε πρόκειται απλώς για πολυωνυμική παραγοντοποίηση, όπως προβλέπεται από τον αλγόριθμο του Μπέρλεκαμπ.

Εφαρμογή στην υπολογιστική άλγεβρα

[Επεξεργασία | επεξεργασία κώδικα]

Ο αλγόριθμος του Μπέρλεκαμπ είναι προσβάσιμος στο πακέτο PARI/GP χρησιμοποιώντας την εντολή factormod και στον ιστότοπο WolframAlpha [4].

Εξωτερικοί σύνδεσμοι

[Επεξεργασία | επεξεργασία κώδικα]
  1. «The Berlekamp algorithm - University of Arizona Department of Mathematics» (PDF).
  2. Tilborg, Henk C. A. van· Jajodia, Sushil (8 Ιουλίου 2014). Encyclopedia of Cryptography and Security. Springer Science & Business Media. ISBN 978-1-4419-5906-5.
  3. Theory of Computation - Dexter Kozen. Springer. Ανακτήθηκε στις 19 Σεπτεμβρίου 2020.
  4. «factor x^5 + x mod 17 - Wolfram|Alpha». www.wolframalpha.com (στα Αγγλικά). Ανακτήθηκε στις 24 Μαΐου 2025.