<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ideawaza.com/index.php?action=history&amp;feed=atom&amp;title=Archive%3APrime_Curve_Standard_Projective_Coordinates</id>
	<title>Archive:Prime Curve Standard Projective Coordinates - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ideawaza.com/index.php?action=history&amp;feed=atom&amp;title=Archive%3APrime_Curve_Standard_Projective_Coordinates"/>
	<link rel="alternate" type="text/html" href="https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;action=history"/>
	<updated>2026-09-30T13:56:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51924&amp;oldid=prev</id>
		<title>wikademia&gt;Wikademia: moved Prime Curve Standard Projective Coordinates to Archive:Prime Curve Standard Projective Coordinates</title>
		<link rel="alternate" type="text/html" href="https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51924&amp;oldid=prev"/>
		<updated>2009-06-07T06:02:33Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/wiki/Prime_Curve_Standard_Projective_Coordinates&quot; class=&quot;mw-redirect&quot; title=&quot;Prime Curve Standard Projective Coordinates&quot;&gt;Prime Curve Standard Projective Coordinates&lt;/a&gt; to &lt;a href=&quot;/wiki/Archive:Prime_Curve_Standard_Projective_Coordinates&quot; title=&quot;Archive:Prime Curve Standard Projective Coordinates&quot;&gt;Archive:Prime Curve Standard Projective Coordinates&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:02, 7 June 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>wikademia&gt;Wikademia</name></author>
	</entry>
	<entry>
		<id>https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51923&amp;oldid=prev</id>
		<title>wikademia&gt;Wikademia at 18:43, 16 May 2009</title>
		<link rel="alternate" type="text/html" href="https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51923&amp;oldid=prev"/>
		<updated>2009-05-16T18:43:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:43, 16 May 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Introduction===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Introduction===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039;&amp;#039; are used to represent elliptic curve points on prime curves y^2 = x^3 + ax + b. Their usage might give a speed benefit over &amp;#039;&amp;#039;Affine Coordinates&amp;#039;&amp;#039; when the cost for field inversions is significantly higher than field multiplications. In &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039; the triple (X, Y, Z) represents the affine point (X / Z, Y / Z).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039;&amp;#039; are used to represent elliptic curve points on prime curves y^2 = x^3 + ax + b. Their usage might give a speed benefit over &amp;#039;&amp;#039;Affine Coordinates&amp;#039;&amp;#039; when the cost for field inversions is significantly higher than field multiplications. In &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039; the triple (X, Y, Z) represents the affine point (X / Z, Y / Z).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{?}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Point Doubling (7M + 5S or 7M + 3S) ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Point Doubling (7M + 5S or 7M + 3S) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let (X, Y, Z) be a point (unequal to the &amp;#039;&amp;#039;point at infinity&amp;#039;&amp;#039;) represented in &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039;. Then its double (X&amp;#039;, Y&amp;#039;, Z&amp;#039;) can be calculated by&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let (X, Y, Z) be a point (unequal to the &amp;#039;&amp;#039;point at infinity&amp;#039;&amp;#039;) represented in &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039;. Then its double (X&amp;#039;, Y&amp;#039;, Z&amp;#039;) can be calculated by&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>wikademia&gt;Wikademia</name></author>
	</entry>
	<entry>
		<id>https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51922&amp;oldid=prev</id>
		<title>wikademia&gt;Wikademia: 2 revisions</title>
		<link rel="alternate" type="text/html" href="https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51922&amp;oldid=prev"/>
		<updated>2009-05-11T20:28:57Z</updated>

		<summary type="html">&lt;p&gt;2 revisions&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:28, 11 May 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>wikademia&gt;Wikademia</name></author>
	</entry>
	<entry>
		<id>https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51921&amp;oldid=prev</id>
		<title>wikademia&gt;Dallas1278 at 04:29, 27 July 2008</title>
		<link rel="alternate" type="text/html" href="https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51921&amp;oldid=prev"/>
		<updated>2008-07-27T04:29:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:29, 27 July 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l44&quot;&gt;Line 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 44:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cryptography]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cryptography]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{alphabetical|P}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>wikademia&gt;Dallas1278</name></author>
	</entry>
	<entry>
		<id>https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51920&amp;oldid=prev</id>
		<title>wikademia&gt;Yann at 10:01, 25 September 2005</title>
		<link rel="alternate" type="text/html" href="https://ideawaza.com/index.php?title=Archive:Prime_Curve_Standard_Projective_Coordinates&amp;diff=51920&amp;oldid=prev"/>
		<updated>2005-09-25T10:01:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;[[Cryptography]]&lt;br /&gt;
&lt;br /&gt;
===Introduction===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039;&amp;#039; are used to represent elliptic curve points on prime curves y^2 = x^3 + ax + b. Their usage might give a speed benefit over &amp;#039;&amp;#039;Affine Coordinates&amp;#039;&amp;#039; when the cost for field inversions is significantly higher than field multiplications. In &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039; the triple (X, Y, Z) represents the affine point (X / Z, Y / Z).&lt;br /&gt;
&lt;br /&gt;
===Point Doubling (7M + 5S or 7M + 3S) ===&lt;br /&gt;
Let (X, Y, Z) be a point (unequal to the &amp;#039;&amp;#039;point at infinity&amp;#039;&amp;#039;) represented in &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039;. Then its double (X&amp;#039;, Y&amp;#039;, Z&amp;#039;) can be calculated by&lt;br /&gt;
 &lt;br /&gt;
 if (Y == 0) &lt;br /&gt;
  return POINT_AT_INFINITY&lt;br /&gt;
 W = a*Z^2 + 3*X^2&lt;br /&gt;
 S = Y*Z&lt;br /&gt;
 B = X*Y*S&lt;br /&gt;
 H = W^2 - 8*B&lt;br /&gt;
 X&amp;#039; = 2*H*S&lt;br /&gt;
 Y&amp;#039; = W*(4*B - H) - 8*Y^2*S^2&lt;br /&gt;
 Z&amp;#039; = 8*S^3&lt;br /&gt;
 return (X&amp;#039;, Y&amp;#039;, Z&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
Note: if a = -3, then W can also be calculated as W = 3*(X + Z)*(X - Z), saving 2 field squarings.&lt;br /&gt;
&lt;br /&gt;
===Point Addition (12M + 2S) ===&lt;br /&gt;
Let (X1, Y1, Z1) and (X2, Y2, Z2) be two points (both unequal to the &amp;#039;&amp;#039;point at infinity&amp;#039;&amp;#039;) represented in &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039;. Then the sum (X3, Y3, Z3) can be calculated by&lt;br /&gt;
 U1 = Y2*Z1&lt;br /&gt;
 U2 = Y1*Z2&lt;br /&gt;
 V1 = X2*Z1&lt;br /&gt;
 V2 = X1*Z2&lt;br /&gt;
 if (V1 == V2)&lt;br /&gt;
   if (U1 != U2)&lt;br /&gt;
     return POINT_AT_INFINITY&lt;br /&gt;
   else&lt;br /&gt;
     return POINT_DOUBLE(X1, Y1, Z1)&lt;br /&gt;
 U = U1 - U2&lt;br /&gt;
 V = V1 - V2&lt;br /&gt;
 W = Z1*Z2&lt;br /&gt;
 A = U^2*W - V^3 - 2*V^2*V2&lt;br /&gt;
 X3 = V*A&lt;br /&gt;
 Y3 = U*(V^2*V2 - A) - V^3*U2&lt;br /&gt;
 Z3 = V^3*W&lt;br /&gt;
 return (X3, Y3, Z3)&lt;br /&gt;
&lt;br /&gt;
=== Mixed Addition (with affine point) (9M + 2S) ===&lt;br /&gt;
Let (X1, Y1, Z1) be a point represented in &amp;#039;&amp;#039;Standard Projective Coordinates&amp;#039;&amp;#039; and (X2, Y2) a point in &amp;#039;&amp;#039;Affine Coordinates&amp;#039;&amp;#039; (both unequal to the &amp;#039;&amp;#039;point at infinity&amp;#039;&amp;#039;). A formula to add those points can be readily derived from the regular standard projective point addition by replacing each occurance of &amp;quot;Z2&amp;quot; by &amp;quot;1&amp;quot; (and thereby dropping three field multiplications).&lt;br /&gt;
&lt;br /&gt;
[[Category:Cryptography]]&lt;/div&gt;</summary>
		<author><name>wikademia&gt;Yann</name></author>
	</entry>
</feed>