<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[modulo inverse]]></title><description><![CDATA[<pre><code>void mod_state()
{
	state[0][0] = (state[0][0] * state[1][0]) % 256;
	state[1][1] = (state[1][1] * state[2][1]) % 256;
	state[2][2] = (state[2][2] * state[3][2]) % 256;
	state[3][3] = (state[3][3] * state[1][3]) % 256;
}

void inv_mod_state()
{
	state[0][0] = inv_mod_256(state[0][0], state[1][0]);
	state[1][1] = inv_mod_256(state[1][1], state[2][1]);
	state[2][2] = inv_mod_256(state[2][2], state[3][2]);
	state[3][3] = inv_mod_256(state[3][3], state[1][3]);
}

int inv_mod_256(int remainder, int quotient)
{	
	short value = 0;
	while(((value * quotient) % 256) != remainder) value++;
	return value-1;
}
</code></pre>
<p>hey... ich bin grad dabei nen bisschen zu basteln und da bin ich auf was gestoßen...</p>
<p>also ich mach immer a * b mod 256 = x...<br />
danach beim &quot;inv_mod_256&quot; versuch ich anhand x und a, nach b umzustellen.<br />
aber wenn ich a * b mod 256 = x mache und dann wieder nach b umzustellen kann er bei manchen zahlen b nicht finden... aber wieso?? ich hab sie vorher doch mit a * b mod 256 = x gebildet??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272056/modulo-inverse</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 03:32:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272056.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Aug 2010 17:16:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to modulo inverse on Mon, 09 Aug 2010 17:16:54 GMT]]></title><description><![CDATA[<pre><code>void mod_state()
{
	state[0][0] = (state[0][0] * state[1][0]) % 256;
	state[1][1] = (state[1][1] * state[2][1]) % 256;
	state[2][2] = (state[2][2] * state[3][2]) % 256;
	state[3][3] = (state[3][3] * state[1][3]) % 256;
}

void inv_mod_state()
{
	state[0][0] = inv_mod_256(state[0][0], state[1][0]);
	state[1][1] = inv_mod_256(state[1][1], state[2][1]);
	state[2][2] = inv_mod_256(state[2][2], state[3][2]);
	state[3][3] = inv_mod_256(state[3][3], state[1][3]);
}

int inv_mod_256(int remainder, int quotient)
{	
	short value = 0;
	while(((value * quotient) % 256) != remainder) value++;
	return value-1;
}
</code></pre>
<p>hey... ich bin grad dabei nen bisschen zu basteln und da bin ich auf was gestoßen...</p>
<p>also ich mach immer a * b mod 256 = x...<br />
danach beim &quot;inv_mod_256&quot; versuch ich anhand x und a, nach b umzustellen.<br />
aber wenn ich a * b mod 256 = x mache und dann wieder nach b umzustellen kann er bei manchen zahlen b nicht finden... aber wieso?? ich hab sie vorher doch mit a * b mod 256 = x gebildet??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1938009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1938009</guid><dc:creator><![CDATA[detlef1231125125]]></dc:creator><pubDate>Mon, 09 Aug 2010 17:16:54 GMT</pubDate></item><item><title><![CDATA[Reply to modulo inverse on Mon, 09 Aug 2010 17:40:31 GMT]]></title><description><![CDATA[<p>a) Bist vermutlich schneller, wenn Du den erweiterten Euklidischen Algorithmus implementiertst. Der sagt Dir außerdem nebenbei, OB ein Inverses existiert.<br />
b) Wenn ggt(a,256)!=1, dann exisitiert kein modulares Inverses von a bezüglich 256. Da 256 eine Zweierpotenz ist, ist es hier sogar einfacher, wenn a ungerade ist, gips keins.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1938013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1938013</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 09 Aug 2010 17:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to modulo inverse on Mon, 09 Aug 2010 17:43:10 GMT]]></title><description><![CDATA[<p>Werde konkreter! Von welchen Werten reden wir denn? Was kommt raus?</p>
<p>Und dir ist schon klar, dass die Umkehrung nicht eindeutig ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1938015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1938015</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 Aug 2010 17:43:10 GMT</pubDate></item></channel></rss>