Die folgende Antwort wurde ursprünglich als Kommentar in Gils Blog gepostet
(1) Sei ein Zahlenfeld , wobei angenommen wird, dass ein monisches Minimalpolynom . Man kann dann Elemente des Ringes von ganzen Zahlen als Polynome in oder auf integraler Basis darstellen - die beiden sind äquivalent.agr ; ) & agr ; f ≤ Z [ x ] O K & agr;K=Q(α)αf∈Z[x]OKα
Wenn Sie nun wie in (1) korrigieren, gibt es eine Reduzierung der Polynomzeit vom Problem über zum Problem in . Um zu überprüfen, ob die Berechnungen (z. B. Schnittmenge eines Ideals mit oder Faktorisierung eines Polynoms ) in polynomieller Zeit durchgeführt werden können, siehe das Buch von Cohen, auf das in der vorherigen Antwort Bezug genommen wurde.K QKKQ pZp
Als Vorberechnung für jede rationale Primzahl die die Diskriminante von ( dh die Diskriminante von ) dividiert , werden alle Primzahlen von die über .α f O K ppαfOKp
(2) Für primality Tests gegeben ideal lassen so sein , dass (dies kann in Polynomzeit berechnet werden und die Anzahl der Bits von ist in der Eingabe polynomiell). Überprüfen Sie in der Polynomzeit, ob eine Primzahl ist. Wenn nicht, dann ist keine Primzahl. Wenn ja, dann finden Sie die Primzahlen von die über entweder aus der Vorberechnung oder durch Faktorisierung von mod . Wenn eine Primzahl ist, muss es sich in jedem Fall um eine dieser Primzahlen handeln. p ∈ Za◃OKp∈Z p p a O K p f p aa∩Z=pZppaOKpfpa
(3a), (6a) Für die Zerlegung in Primzahlen wird bei gegebenem idealen die Norm . Auch dies kann in der Polynomzeit gefunden werden und ist folglich nicht zu groß. Faktor in (entweder klassisch oder mit Shors Algorithmus, abhängig von der gewünschten Reduzierung). Dies gibt eine Liste von rationalen Primzahlen, die teilen , und daher können wir wie in 2 die Liste von Primzahlen von die teilen . Da Dies gibt die Liste der Primzahlen, die teilen. y = N K Q ( a ) = [ O K : a ] y Z y O K y a | y O K aa◃OKy=NKQ(a)=[OK:a]yZyOKya|yOKa. Schließlich ist es einfach, den Exponenten zu bestimmen, in den eine Primzahl ein gegebenes Ideal teilt.
(3b), (6b) Aber Gil will die Faktorisierung nicht in Primzahlen, sondern in Irreduzible. Es stellt sich heraus, dass es bei gegebener Primfaktorisierung von möglich ist, eine Faktorisierung von effizient in irreduzible Elemente von zu konstruieren . Dazu sei die Klassennummer und man beachte, dass es möglich ist, die ideale Klasse eines gegebenen Ideals effizient zu berechnen. nun einen irreduziblen Teiler von wählen Sie Primideale (möglicherweise mit Wiederholung) aus der Faktorisierung von x O K h K x hxOKxOKhKx x x h KhKx. Nach dem Pigeon-Hole-Prinzip multipliziert eine Teilmenge dieser Werte mit der Identität in der Klassengruppe. finde eine minimale solche Teilmenge. Sein Produkt ist dann ein Hauptideal, das durch ein nicht reduzierbares Element erzeugt wird. Teilen Sie durch dieses Element, entfernen Sie die relevanten Ideale aus der Faktorisierung und wiederholen Sie. Wenn die Faktorisierung weniger als Elemente enthält, nehmen Sie einfach eine minimale Teilmenge aller Faktoren.xhK
(4) Ich denke, es ist möglich, die Faktorisierungen in irreduzible zu zählen, aber dies ist ein bisschen mehr Kombinatorik - bitte geben Sie mir Zeit, es auszuarbeiten. Andererseits ist es im Zusammenhang mit subexponentiellen Faktorisierungsalgorithmen nicht interessant, alle zu bestimmen, da es im Allgemeinen exponentiell viele solcher Faktorisierungen gibt.
(5) Ich habe keine Ahnung.