<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS: Алгоритм RSA]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=8250</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8250&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS: Алгоритм RSA».]]></description>
		<lastBuildDate>Fri, 26 Apr 2013 00:21:06 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71676#p71676</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p><a href="http://www.ohdave.com/rsa/">Вот пример реализации RSA на JS.</a></p></blockquote></div><p>Спасибо</p>]]></description>
			<author><![CDATA[null@example.com (im2002)]]></author>
			<pubDate>Fri, 26 Apr 2013 00:21:06 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71676#p71676</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71666#p71666</link>
			<description><![CDATA[<p><a href="http://www.ohdave.com/rsa/">Вот пример реализации RSA на JS.</a></p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Thu, 25 Apr 2013 16:42:46 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71666#p71666</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71661#p71661</link>
			<description><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>До бесконечности не получится. Ряд натуральных чисел ограничен 32 битами. Максимальное доступное число 0xFFFFFFFF, или 4294967295. Дальше - вещественные числа.</p></blockquote></div><p> Не знал про такое! Тогда пусть будет целые и положительные, сути это не меняет. решение таких уравнений это только малая часть задачи в алгоритме RSA, если читаешь какой-либо материал по теме, там даже непонятно как они находят эти &quot;приватные&quot; ключи, поэтому вопрос заинтересовал, научился находить &quot;руками&quot;, потом попытался на JS, доведу &quot;до ума&quot; потом попробую экспериментировать непосредственно с шифрованием...</p>]]></description>
			<author><![CDATA[null@example.com (im2002)]]></author>
			<pubDate>Thu, 25 Apr 2013 09:11:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71661#p71661</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71660#p71660</link>
			<description><![CDATA[<p>До бесконечности не получится. Ряд натуральных чисел ограничен 32 битами. Максимальное доступное число 0xFFFFFFFF, или 4294967295. Дальше - вещественные числа.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 25 Apr 2013 08:46:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71660#p71660</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71659#p71659</link>
			<description><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>Замечания общего характера</p><p>И напоследок. <br /></p><div class="quotebox"><blockquote><p>d*7927 = k*215836540 + 1.<br />Надо решить это уравнение найдя такое НАТУРАЛЬНОЕ значение d &lt; 215836540, что для некоторого НАТУРАЛЬНОГО k&nbsp; вышеприведённое равенство справедливо.</p></blockquote></div><p>Это не является решением?<br /></p><div class="codebox"><pre><code>d = (k * 215836540  + 1) / 7927</code></pre></div></blockquote></div><p>Само собой является, если знать натуральное k, которое даст в приведённой выше формуле натуральное d. Как k найти-то?! Подбором? при k = 1&nbsp; d = (1* 215836540&nbsp; + 1) / 7927 -&gt; НЕ Целое, и так можно &quot;до бесконечности&quot; подбирать... а если числа скажем порядка 1024 бит? В остальном согласен с замечаниями.</p>]]></description>
			<author><![CDATA[null@example.com (im2002)]]></author>
			<pubDate>Thu, 25 Apr 2013 08:33:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71659#p71659</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71658#p71658</link>
			<description><![CDATA[<p>Замечания общего характера<br />1. объявление переменных обязательно оператором var<br /></p><div class="codebox"><pre><code>
// переменная объявлена, но неинициализирована
var a;
// переменная объявлена и инициализирована
var b = 10;
</code></pre></div><p>2. не используйте конструктор для инициализации массива. Массивы инициализируйте так<br /></p><div class="codebox"><pre><code>
// пустой массив
var arr = [];
// массив из трех эдементов
var arr2 = [1, 2, 3];
</code></pre></div><p>3. parseInt это функция для перевода СТРОКИ в ЧИСЛО. В Вашем случае она используется не по назначению.<br />4. получите остаток от деления<br /></p><div class="codebox"><pre><code>
var a = 7;
var b = 3;
var c = a % b; // с == 1
</code></pre></div><p>5. Если комментируете код, то давайте осмысленные комментарии. В данном случае совершенно не ясно, что является чем. В идеале хорошо составленный алгоритм не требует комментариев. <br /></p><div class="codebox"><pre><code>
    en = y;                            // запоминаем начальные значения d и f(n)
    fn = x;
</code></pre></div><p>И напоследок. <br /></p><div class="quotebox"><blockquote><p>d*7927 = k*215836540 + 1.<br />Надо решить это уравнение найдя такое НАТУРАЛЬНОЕ значение d &lt; 215836540, что для некоторого НАТУРАЛЬНОГО k&nbsp; вышеприведённое равенство справедливо.</p></blockquote></div><p>Это не является решением?<br /></p><div class="codebox"><pre><code>d = (k * 215836540  + 1) / 7927</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 25 Apr 2013 08:11:22 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71658#p71658</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71654#p71654</link>
			<description><![CDATA[<div class="codebox"><pre><code>function input_Z(x, y)
    {
    i = 0, d1 = 0, d = 0; 
    Zel = new Array();                    // массив неопределённой длины для целых
    Ost = new Array();                    // массив неопределённой длины для остатков от деления
    k = new Array();
    en = y;                            // запоминаем начальные значения d и f(n)
    fn = x;
    define_D(x, y);
    return WScript.Echo(d);
    }
                    

function define_D(f, e)                        // ОБЪЯВЛЕНИЕ Ф-ЦИИ
    {        
    
    ost = f - parseInt(f/e)*e;                // остаток от деления
    Ost[i] = ost;
    Zel[i] = parseInt(f/e);
    
    
    if((ost == 1) &amp;&amp; (parseFloat(i/2) != parseInt(i/2)) &amp;&amp; i != 0)
        {
        for(j = (Zel.length - 1), k[j+1] = 1 ; j &gt; 0; j--) 
            {
            k[j] = Zel[j]*k[j+1] + (Ost[j]*k[j+1] + Math.pow(-1, j))/Ost[j-1];
            d1 = Zel[0]*k[1] + (Ost[0]*k[1]+1)/en;
            ost_1 = (parseFloat(d1*en/fn) - parseInt(d1*en/fn)).toFixed(11);            // для проверки
            ost_2 = (1/fn).toFixed(11);
            }
        }
    else
        {
        if((ost == 1) &amp;&amp; (parseFloat(i/2) == parseInt(i/2)) &amp;&amp; i != 0)
            {
            for(j = (Zel.length - 1), k[j+1] = Ost[j-1] - 1 ; j &gt; 0; j--) 
                {
                k[j] = Zel[j]*k[j+1] + (Ost[j]*k[j+1] + Math.pow(-1, j))/Ost[j-1];
                d1 = Zel[0]*k[1] + (Ost[0]*k[1]+1)/en;
                ost_1 = (parseFloat(d1*en/fn) - parseInt(d1*en/fn)).toFixed(11);        // для проверки
                ost_2 = (1/fn).toFixed(11);
                }
            }
        else
            {
            if((ost == 1) &amp;&amp; (parseFloat(i/2) == parseInt(i/2)) &amp;&amp; i == 0)
                {
                d1 = (e - 1)*parseInt(f/e) + 1;
                ost_1 = (parseFloat(d1*en/fn) - parseInt(d1*en/fn)).toFixed(11);        // для проверки
                ost_2 = (1/fn).toFixed(11);
                }
            else
                {
                f = e;
                e = Ost[i];
                i++;
                define_D(f, e)
                }
            }    
        }

    d = d1 + &quot;\n&quot; + ost_1 + &quot;\n&quot; + ost_2;
    return d;
    }

input_Z(215836540, 7927);

input_Z(62869032, 7993);

input_Z(9167368, 3);

input_Z(96, 5);

</code></pre></div><p>Вроде работает, но наверное можно &quot;подсократить&quot; его.</p>]]></description>
			<author><![CDATA[null@example.com (im2002)]]></author>
			<pubDate>Thu, 25 Apr 2013 07:44:31 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71654#p71654</guid>
		</item>
		<item>
			<title><![CDATA[JS: Алгоритм RSA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=71578#p71578</link>
			<description><![CDATA[<p>никак не получается написать написать функцию для определения d по известным e и f(n). в инете также не могу найти на js. т.е. что-то типа:</p><div class="codebox"><pre><code>function define_D(e, f)              // объявление ф-ии
   {
   .........
   алгоритм вычисления
   .........
   return d;
    }

define_D(7927, 215836540);     // вызов функции
WScript.Echo(d);                        //  отображение результата</code></pre></div><p>Здесь произведение d*7927 при делении на 215836540 даёт такой же остаток, что и 1 при делении на 215836540.<br />т.е. d*7927 = 1 mod(215836540).</p><p>Можно также переформулировать задачу таким образом:<br />d*7927 = k*215836540 + 1.<br />Надо решить это уравнение найдя такое НАТУРАЛЬНОЕ значение d &lt; 215836540, что для некоторого НАТУРАЛЬНОГО k&nbsp; вышеприведённое равенство справедливо.</p>]]></description>
			<author><![CDATA[null@example.com (im2002)]]></author>
			<pubDate>Sat, 20 Apr 2013 12:30:53 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=71578#p71578</guid>
		</item>
	</channel>
</rss>
