<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Algebraic-group_factorisation_algorithm</id>
	<title>Algebraic-group factorisation algorithm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Algebraic-group_factorisation_algorithm"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Algebraic-group_factorisation_algorithm&amp;action=history"/>
	<updated>2026-04-30T21:17:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Algebraic-group_factorisation_algorithm&amp;diff=5880229&amp;oldid=prev</id>
		<title>imported&gt;Ixfd64: /* Methods corresponding to particular algebraic groups */ update dead link</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Algebraic-group_factorisation_algorithm&amp;diff=5880229&amp;oldid=prev"/>
		<updated>2024-02-04T20:21:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Methods corresponding to particular algebraic groups: &lt;/span&gt; update dead link&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{unreferenced|date=January 2015}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Algebraic-group factorisation algorithms&amp;#039;&amp;#039;&amp;#039; are algorithms for [[Integer factorization|factoring an integer]] &amp;#039;&amp;#039;N&amp;#039;&amp;#039; by working in an [[algebraic group]] defined [[modular arithmetic|modulo]] &amp;#039;&amp;#039;N&amp;#039;&amp;#039; whose group structure is the direct sum of the &amp;#039;reduced groups&amp;#039; obtained by performing the equations defining the group arithmetic modulo the unknown prime factors &amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, &amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, ...  By the [[Chinese remainder theorem]], arithmetic modulo &amp;#039;&amp;#039;N&amp;#039;&amp;#039; corresponds to arithmetic in all the reduced groups simultaneously.&lt;br /&gt;
&lt;br /&gt;
The aim is to find an element which is not the identity of the group modulo &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, but is the identity modulo one of the factors, so a method for recognising such &amp;#039;&amp;#039;one-sided identities&amp;#039;&amp;#039; is required. In general, one finds them by performing operations that move elements around and leave the identities in the reduced groups unchanged. Once the algorithm finds a one-sided identity all future terms will also be one-sided identities, so checking periodically suffices.&lt;br /&gt;
&lt;br /&gt;
Computation proceeds by picking an arbitrary element &amp;#039;&amp;#039;x&amp;#039;&amp;#039; of the group modulo &amp;#039;&amp;#039;N&amp;#039;&amp;#039; and computing a large and [[smooth number|smooth]] multiple &amp;#039;&amp;#039;Ax&amp;#039;&amp;#039; of it; if the order of at least one but not all of the reduced groups is a divisor of A, this yields a factorisation. It need not be a prime factorisation, as the element might be an identity in more than one of the reduced groups.&lt;br /&gt;
&lt;br /&gt;
Generally, A is taken as a product of the primes below some limit K, and &amp;#039;&amp;#039;Ax&amp;#039;&amp;#039; is computed by successive multiplication of &amp;#039;&amp;#039;x&amp;#039;&amp;#039; by these primes; after each multiplication, or every few multiplications, the check is made for a one-sided identity.&lt;br /&gt;
&lt;br /&gt;
== The two-step procedure ==&lt;br /&gt;
It is often possible to multiply a group element by several small integers more quickly than by their product, generally by difference-based methods; one calculates differences between consecutive primes and adds consecutively by the &amp;lt;math&amp;gt;d_i r&amp;lt;/math&amp;gt;. This means that a two-step procedure becomes sensible, first computing &amp;#039;&amp;#039;Ax&amp;#039;&amp;#039; by multiplying &amp;#039;&amp;#039;x&amp;#039;&amp;#039; by all the primes below a limit B1, and then examining &amp;#039;&amp;#039;p Ax&amp;#039;&amp;#039; for all the primes between B1 and a larger limit B2.&lt;br /&gt;
&lt;br /&gt;
== Methods corresponding to particular algebraic groups ==&lt;br /&gt;
&lt;br /&gt;
If the algebraic group is the [[multiplicative group]] mod &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, the one-sided identities are recognised by computing [[greatest common divisor]]s with &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, and the result is the [[Pollard&amp;#039;s p-1 algorithm|&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;amp;nbsp;&amp;amp;minus;&amp;amp;nbsp;1 method]].&lt;br /&gt;
&lt;br /&gt;
If the algebraic group is the multiplicative group of a quadratic extension of &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, the result is the [[Williams&amp;#039; p + 1 algorithm|&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;amp;nbsp;+&amp;amp;nbsp;1 method]]; the calculation involves pairs of numbers modulo &amp;#039;&amp;#039;N&amp;#039;&amp;#039;.  It is not possible to tell whether &amp;lt;math&amp;gt;\mathbb Z/N\mathbb Z [ \sqrt t]&amp;lt;/math&amp;gt; is actually a quadratic extension of &amp;lt;math&amp;gt;\mathbb Z/N\mathbb Z &amp;lt;/math&amp;gt; without knowing the factorisation of &amp;#039;&amp;#039;N&amp;#039;&amp;#039;. This requires knowing whether &amp;#039;&amp;#039;t&amp;#039;&amp;#039; is a [[quadratic residue]] modulo &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, and there are no known methods for doing this without knowledge of the factorisation. However, provided &amp;#039;&amp;#039;N&amp;#039;&amp;#039; does not have a very large number of factors, in which case another method should be used first, picking random &amp;#039;&amp;#039;t&amp;#039;&amp;#039; (or rather picking &amp;#039;&amp;#039;A&amp;#039;&amp;#039; with &amp;#039;&amp;#039;t&amp;#039;&amp;#039; = &amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;amp;nbsp;&amp;amp;minus;&amp;amp;nbsp;4) will accidentally hit a quadratic non-residue fairly quickly. If &amp;#039;&amp;#039;t&amp;#039;&amp;#039; is a quadratic residue, the p+1 method degenerates to a slower form of the &amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;amp;nbsp;&amp;amp;minus;&amp;amp;nbsp;1 method.&lt;br /&gt;
&lt;br /&gt;
If the algebraic group is an [[elliptic curve]], the one-sided identities can be recognised by failure of [[inverse function|inversion]] in the elliptic-curve point addition procedure, and the result is the [[elliptic curve method]]; [[Hasse&amp;#039;s theorem on elliptic curves|Hasse&amp;#039;s theorem]] states that the number of points on an elliptic curve modulo &amp;#039;&amp;#039;p&amp;#039;&amp;#039; is always within &amp;lt;math&amp;gt;2 \sqrt p&amp;lt;/math&amp;gt; of &amp;#039;&amp;#039;p&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
All three of the above algebraic groups are used by the [https://gitlab.inria.fr/zimmerma/ecm  GMP-ECM] package, which includes efficient implementations of the two-stage procedure, and an implementation of the PRAC group-exponentiation algorithm which is rather more efficient than the standard [[binary exponentiation]] approach.&lt;br /&gt;
&lt;br /&gt;
The use of other algebraic groups—higher-order extensions of &amp;#039;&amp;#039;N&amp;#039;&amp;#039; or groups corresponding to algebraic curves of higher genus—is occasionally proposed, but almost always impractical. These methods end up with smoothness constraints on numbers of the order of &amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; for some &amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;amp;nbsp;&amp;gt;&amp;amp;nbsp;1, which are much less likely to be smooth than numbers of the order of &amp;#039;&amp;#039;p&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Integer factorization algorithms]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ixfd64</name></author>
	</entry>
</feed>