Карта сайта

Это автоматически сохраненная страница от 24.02.2013. Оригинал был здесь: http://2ch.hk/b/res/43927114.html
Сайт a2ch.ru не связан с авторами и содержимым страницы
жалоба / abuse: admin@a2ch.ru

Вск 24 Фев 2013 02:16:35
Минсканон
Сап, минсканон. Хочу обсудить с вами наш замечательный город. Возможно устроить сходку.


Вск 24 Фев 2013 02:19:00
На следующей неделе буду в Минске. Гомельанон

Вск 24 Фев 2013 02:19:51
>>43927274
Допустим места, в которых можно развлечься. С рождения тут живу. Дальше двух улиц от своего дома не знаю.

Вск 24 Фев 2013 02:21:28
>>43927114

Хочешь я съезжу к тебе на задний двор?

Вск 24 Фев 2013 02:21:41
>>43927114
мудак извращёный позову на сходку и с пацанами тебя там отпиздим пидор!

Вск 24 Фев 2013 02:21:48
>>43927378
Довай)))

Вск 24 Фев 2013 02:22:09
>>43927114
>замечательный город

Слишком толсто. Абсолютно скучная серая хуита. Тот же Гродно в разы лучше.

Вск 24 Фев 2013 02:22:19
>>43927357
блять в каком районе живёшь?

Вск 24 Фев 2013 02:22:28
>>43927389
всигда хотел шоп миня пистили поцоны с роёна)))00

Вск 24 Фев 2013 02:22:34
>>43927357

комната твоей мамки же.

Вск 24 Фев 2013 02:22:50
>>43927423
мудак блять ГРОДНО лучше нахуй съебал, Гроднечанин

Вск 24 Фев 2013 02:22:51
ПИЗДУЙ ОТСЮДА НАХЕР,
>>43927114
>наш замечательный город.
Говно. По меркам России - максимум унылый областной центр.
>Возможно устроить сходку.
Ебаное рачье и пидарас.

Вск 24 Фев 2013 02:23:13
>>43927423
Не пизди. Спизданул - поясняй.



Тут есть макдоналдс)))

Вск 24 Фев 2013 02:23:14
>>43927357
Хикка? Чем же ты занимаешься в свободное время?
Это же интересно, ходить по музям, кинопоказам, кафешкам и т.п. Развивает кругозор же. и не только

Вск 24 Фев 2013 02:23:16
>>43927445
номер тогда скажи свой

Вск 24 Фев 2013 02:23:25
>>43927423
Двачую.

Вск 24 Фев 2013 02:23:29
У себя вконтактике сходочку собирай, долобоёб.

Вск 24 Фев 2013 02:24:03
>>43927500
ещё один пидр

Вск 24 Фев 2013 02:24:14
>>43927436
Партизанский

Вск 24 Фев 2013 02:24:24
>>43927114
Как у вас там, в совке бульбашляндии относятся к фуррям, кстати?

Вск 24 Фев 2013 02:24:47
>>43927423

Гродно-петушиная параша.
Гомель самое норм. И Могилёв ещё.

Вск 24 Фев 2013 02:24:50
>>43927547
улица дом и подъезд завтр подъедем

Вск 24 Фев 2013 02:25:39
Удачи ОП, желаю тебе лучших маркеров страны.

Вск 24 Фев 2013 02:26:06
>>43927560
>фурям
>лошадееб
Ну ты и мудила.

Вск 24 Фев 2013 02:26:07
Хватит устраивать срачи. Я тут пытаюсь с опом говорить нормально.

Вск 24 Фев 2013 02:26:32
>>43927491
Хикка. Сижу за компьютером.
Ну вот и спрашиваю, куда пойти.

Вск 24 Фев 2013 02:26:39
>>43927577
могилев- говно. унылая быдляцкая помойка

мимо-могилев-кун

Вск 24 Фев 2013 02:26:50
>>43927656
Ну так съебите оба в одноклассники и беседуйте там.

Вск 24 Фев 2013 02:26:52
>>43927489
Хули тут пояснять, если был и там и там, сам все должен понимать. Конкретно Минск говно, так как исторический центр и большинство теплых ламповых зданий были проебаны, а вместо них понастроили уебищной совковой хуиты, посмотри хотя бы на главный проспект.

Вск 24 Фев 2013 02:27:19
>>43927400

Доставь фоточек

Вск 24 Фев 2013 02:27:29
>>43927494
3793773(велком)

Вск 24 Фев 2013 02:27:54
>>43927698
красиво же на проспекте мудак ты ебливый

Вск 24 Фев 2013 02:28:02
>>43927687
двачую
другой могилев-кун

Вск 24 Фев 2013 02:28:24
>>43927726
Белорусский выучи мудило

Вск 24 Фев 2013 02:28:35
>>43927687

Хуй знает. Жил там на вписке пару недель. Доставило.

Вск 24 Фев 2013 02:28:46
>>43927722
СРАКА.ЖПГ

Пойдет?

Вск 24 Фев 2013 02:28:57
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:29:16
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdj123123sdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:29:24
>>43927726
>ПрывiтанЬне.
Продолжай.

Вск 24 Фев 2013 02:29:34
Думаю из Смоленска понаехать на недельку в туристических целях. А правда у вас можно в клубнички безнаказанно играть?

Вск 24 Фев 2013 02:29:35
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdf000000sdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:29:41
>>43927785
Руззссский!

Вск 24 Фев 2013 02:30:01
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfj567567dfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:30:15
>>43927654
ДАЛАДНА

Вск 24 Фев 2013 02:30:33
В музее современного изобразительного искусства, это возле ЯКа, сейчас годнота - выставка Цесслера. Еще можешь заехать в галерею "университет культуры" - там какая-то фотоэкспозиция. Попробуй очертить свой круг интересов, мб постараюсь помочь.

Вск 24 Фев 2013 02:30:33
>>43927858
Можно и с анусом безнаказанно играть

Вск 24 Фев 2013 02:30:33
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjk444djfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:31:18
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfas1123jfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:31:23
>>43927893
КОНИ ТОЖЫ ЛОШАДИ!!!!11

Вск 24 Фев 2013 02:31:32
>>43927809
MOAR.жпг

Вск 24 Фев 2013 02:31:36
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf234234jkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:31:49
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfas88888kalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:32:15
>>43927971
ДЕРЖЫ.ЖПГ
Ну как?

Вск 24 Фев 2013 02:32:17
Ручной вайп? Это ж надо же, как кому-то припекло!

Вск 24 Фев 2013 02:32:53
>>43928024
Моксемум ботруда))0

Вск 24 Фев 2013 02:32:55
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkal555sdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:33:15
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsd6767dfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:33:30
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjka123kalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:33:57
>>43928017

Дай айдишечку этой няши. У тебя есть, я знаю.

Вск 24 Фев 2013 02:33:59
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkarrrrrrrdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:34:19
ОП, перекатываемся в соц. Местное быдлецо запустило свои говнометы

Вск 24 Фев 2013 02:34:42
>>43928121
/id22814880
Держи.

Вск 24 Фев 2013 02:34:54
>>43928142
Сидим тут, вся суть в этом.

Вск 24 Фев 2013 02:35:21
>>43927962
МОЯР!

Вск 24 Фев 2013 02:35:36
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasd123123asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:35:44
>>43927687
Внезапно,поддерживаю.
Другой Могилев-кун.

Вск 24 Фев 2013 02:35:49
Завтра зайду в соц. Надеюсь сходачка питордов удастся.

Вск 24 Фев 2013 02:36:05
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsd534534fjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 24 Фев 2013 02:37:20
>>43928211
На тебе.

Вск 24 Фев 2013 02:38:02
>>43928249
Сходочка фурриебов же.

Вск 24 Фев 2013 02:38:24
>>43928164

ты щенок врать мне удумал?

Вск 24 Фев 2013 02:38:28
>>43927909
Сколько за свой анус просишь? Ну, реально, у вас же автоматы не под запретом?

Вск 24 Фев 2013 02:39:13
>>43928386
ТЫ ШО НИДУМАЛ!!!11

Вск 24 Фев 2013 02:39:38
>>43928386
Солнцеликий!

Вск 24 Фев 2013 02:39:51
>>43928392
Миллиона два пойдет. Как раз куплю звуковуху. Анус-то у меня недолбаный.

Вск 24 Фев 2013 02:39:51
>>43928392

Сколько дашь за анус?

Вск 24 Фев 2013 02:40:03
>>43928324
Продолжай, я заинтересован.

Вск 24 Фев 2013 02:40:20
Ещё одного пидараса с Витебска увижу у себя на вокзале познакомлюсь

Вск 24 Фев 2013 02:40:52
http://2ch.hk/soc/res/826580.html

Можем перекатится сюда, а можем продолжить жечь сраки в /б/

Вск 24 Фев 2013 02:42:36
Первый раз вижу такой раковый бульбаш тред.

Вск 24 Фев 2013 02:42:39
>>43928481
Блин, не думал, что у вас всё так плохо.

Вск 24 Фев 2013 02:43:04
>>43928607
DA TY OHUEL?

Вск 24 Фев 2013 02:43:32
>>43928632
Пиздит же. Что за звукавуха за два ляма?

Вск 24 Фев 2013 02:44:23
Как вы там вообще живёте при диктатуре. Ужас, просто ужас.

Вск 24 Фев 2013 02:45:12
>>43928734
Пидорашка?

Вск 24 Фев 2013 02:45:32
>>43928734
Вот так.

Вск 24 Фев 2013 02:45:49
>>43928699
Почти 230 баксов.
Жируют они там.

Вск 24 Фев 2013 02:46:08
>>43928823
Рашкапроблемы.

Вск 24 Фев 2013 02:46:53
>>43928734

Заебись живём. Пидорашек поёбываем и газ на халяву сжигаем.

Вск 24 Фев 2013 02:47:07
>>43928809
А где здесь Батько?

Вск 24 Фев 2013 02:47:58
>>43928886
А ещё долги не отдаем, лол.

Вск 24 Фев 2013 02:48:14
>>43928895

Тут не батька. А метафорическое изображение братской россеи в пассивной роли

Вск 24 Фев 2013 02:49:04
>>43928943
Зато новых набираем. Красота!

Вск 24 Фев 2013 02:49:12
>>43928895
Тот, что едет тебя в анус, анон.

Вск 24 Фев 2013 02:49:18
>>43928886
Скоро вас демократия разбомбит. Будете как чурки партизанить.

Вск 24 Фев 2013 02:50:02
>>43929022

Нахуй мы нужны кому-то?

Вск 24 Фев 2013 02:50:49
>>43929022
Если будут такие куны, пускай бомбят.

Вск 24 Фев 2013 02:50:52
>>43929006
Похуй же. Пидорашки простят.

Вск 24 Фев 2013 02:52:04
>>43928886
Жаль, что ты такого мнения о нас. А я вас всегда братьями считал. Но такой толстый пост не изменит моего мнения о вас.

Вск 24 Фев 2013 02:52:22
>>43929108
Что-то мне подсказывает, что прощать в сотый раз не будут.

Вск 24 Фев 2013 02:53:22
>>43929095
Мало демократии и много диктатуры.

Вск 24 Фев 2013 02:54:25
>>43929170

Не злись, няша. Сам работаю на Рашку. По сути говно и там и там.

Вск 24 Фев 2013 02:54:33
>>43927114
Какую сходку??? Пиздуй ВВП страны поднимать!

Вск 24 Фев 2013 02:54:53
>>43929287

И что?

Вск 24 Фев 2013 02:55:16
>>43927357
Недалеко от стеллы есть например парк. А ещё там есть остров. И там охуенно оставаться на ночь. Тихо, ни души. Лампота.
Летом так с братишками делали

Вск 24 Фев 2013 02:55:56
>>43929326
Надо бомбить. Надо ставить демократичного правителя. Вот что.

Вск 24 Фев 2013 02:56:19
с каких хуёв пидорашки считают картошка-мэнов б/ратьями? я в рот вас ибал, москали ебаные! Слава лiцвiнам!!!

Вск 24 Фев 2013 02:56:54
>>43929170
>Жаль, что ты такого мнения о нас. А я вас всегда братьями считал. Но такой толстый пост не изменит моего мнения о вас.
Не брат ты нам. Уберите свои города от мусора, для начала. А уж потом лезь брататься

Вск 24 Фев 2013 02:57:29
>>43929384

Ты либо петросян, либо долбаёб

Вск 24 Фев 2013 02:57:40
>>43929343
в пукан долбились?

Вск 24 Фев 2013 02:58:06
ЖИТЬ В БЕЛОРУССИИ И РАБОТАТЬ НА ЗАВОДЕ

Вск 24 Фев 2013 02:58:24
>>43929187
Ну тогда за нас уплатит нато.

Вск 24 Фев 2013 02:58:44
>>43929402
Давай яшчэ "Жыве Беларусь" пакрычы

Вск 24 Фев 2013 02:58:52
>>43929402

Гляньте-ка кто на ночной залетел! А что, в курятнике не спалось?

Вск 24 Фев 2013 02:58:57
>>43927114
Парни, можно я с вами потусую?
Я вообще мимохуй, но в Минске бывал.

Вск 24 Фев 2013 02:59:02
>>43929435
Жир начал сочиться с утра. txt

Вск 24 Фев 2013 02:59:34
>>43929402
Уебал, пидорашка.

Вск 24 Фев 2013 03:00:06
>>43929538
пидорашки должны сосать

Вск 24 Фев 2013 03:00:20
сегодня на плеханова путин был. такие дела. http://news.tut.by/accidents/336243.html

Вск 24 Фев 2013 03:00:38
>>43929476
Ах да, забыл что я на АиБ.

Вск 24 Фев 2013 03:00:56
>>43929515
Всё равно по долгам платить нужно. Кто бы это не делал, всё равно будет хуёво. Лучше не доводить ситуацию до кредита.

Вск 24 Фев 2013 03:01:36
>>43929625

а я все проспал. обидно

Вск 24 Фев 2013 03:03:20
>>43929608
Таки да. Двачую отчасти. Среди пидорашек заметно больше быдла вижу я. Тем мерзее видеть быдло среди наших бульбмэнов.

Вск 24 Фев 2013 03:03:34
Анон, а есть вообще в природе годное инструментальное музло со скрипкой, женским вокалом, и при этом какое-нибудь энергичное?

Вск 24 Фев 2013 03:04:18
>>43929776

А ты откуда будешь?

Вск 24 Фев 2013 03:05:53
>>43929558
Я серьезно. У меня от Культурной Столицы случился бугурд когда увидел бу прокладку посреди невского, или разбитые окна на первом этаже там же, или горы мусора во дворах. Пиздец свиньи.

Вск 24 Фев 2013 03:08:31
>>43929913

неистово двачую. Приехав в ДС гастарбайтером ахуел от количество трюкачей, мусора, и бомжей спящих прям под балконами.

Вск 24 Фев 2013 03:09:04
>>43929656
Мы и так в кредитах. И берем новые, но пидорашка не осмелишься перестать.

Вск 24 Фев 2013 03:09:05
>>43929553
Сам с Бобруйска?
шутка 00х годов

Вск 24 Фев 2013 03:09:58
>>43929913
Школьник, судящий о стране по одному впечатлению.

Вск 24 Фев 2013 03:10:42
Да ладно, сколько там этих белорусов живёт, пусть берут кредиты. Прокормим. Один хуй меньше чурок сосут.

Вск 24 Фев 2013 03:11:27
>>43927423
двачую адеквата
минск - нагромождение спальных районов, с местами понатыканными архитектурными инвалидствами
минск-кун

Вск 24 Фев 2013 03:11:48
>>43930038
Русские все такие. Я окурок в мусорку бросил, так меня дебилом назвали. А потом КОКОКО БРАТСКОЙ НАРОД. Свиньи, блядь.

Вск 24 Фев 2013 03:12:53
>>43930110

Лол. Рашка ущербна в плане мусора. У нас любой город чист и ухожен. Только сцаные мухосрански, да и то далеко не все в мусоре. А у вас прям в столице помойка. так что ты хуй.

Вск 24 Фев 2013 03:14:03
>>43930110
В питере прожил неделю, потом пару дней в москве, потом две недели в зато. 24лвл. Сосни, пидораха.

Вск 24 Фев 2013 03:14:29
>>43930236
Нам похуй на москвабад, мы не считаем их столицей. У нас чисто, почти.

Вск 24 Фев 2013 03:15:54
в рашке так грязно,потому как поубирали мусорки после какого-то терракта, где бомба была в мусорке
так-то

Вск 24 Фев 2013 03:16:21
>>43930306
Это где? В НСК утром и днем говно вокруг, мусор, чурки. А к вечеру узбеки вылизывают улицы. Но говно в центре повсюду.

Вск 24 Фев 2013 03:17:31
>>43930306

Где ты живёшь, пиздабол? Я в Гомеле. Иногда бываю в Брянске.Параша ещё та. Особенно по сравнению с чистым Гомелем. То что ты живёшь в чистом районе ещё не значит что у вас везде чисто. Скорее у вас местами чисто. У нас же почти везде.

Вск 24 Фев 2013 03:19:35
>>43930372
В Минске тоже чего-то взрывают.

Вск 24 Фев 2013 03:21:56
>>43930440
Вы южане, у вас всегда грязно. Вам кажется, что у вас чисто, а на самом деле грязно. Грязные южане.
А ещё вы наверное не ели ничего заграничного, только белорусское. У вас как в 80х в СССР, за жвачку можно поебаться.

Вск 24 Фев 2013 03:23:10
>>43927785
Русский выучи, мудило.

Вск 24 Фев 2013 03:23:15
>>43930526

>В Минске тоже чего-то взрывают.

Вск 24 Фев 2013 03:31:20
>>43930604
>Вы южане, у вас всегда грязно. Вам кажется, что у вас чисто, а на самом деле грязно. Грязные южане.
Дайте этому дебилу глобус.
>А ещё вы наверное не ели ничего заграничного, только белорусское. У вас как в 80х в СССР, за жвачку можно поебаться.
Да вы за банку нашей сметаны готовы хуй сосать.

Вск 24 Фев 2013 03:35:00
>>43930959
>Да вы за банку нашей сметаны готовы хуй сосать.
Пока я видел только как белорусы ездят за тридевять земель на целых автобусах продавать свои поделия. У нас осенью ярмарка открывается, так вечно приезжают полные грузовики и автобусы из Белоруссии.

Вск 24 Фев 2013 03:39:03
>>43931103
Которые вы покупаете с накруткой овер9000. Откуда ты?

Вск 24 Фев 2013 03:40:48
>>43931249
>с накруткой овер9000
Копейки стоит, было бы дорого никто бы и не покупал. Я из Карелии

Вск 24 Фев 2013 03:43:37
>>43931320
Пиздюк, у меня дед по отцу с Карелии. Фамилию скажешь? инбифо: дианон@травля

Вск 24 Фев 2013 03:46:37
>>43931437
Зачем тебе моя фамилия? У меня нет родственников в странах третьего мира. В Финляндии есть. Смирнов.

Вск 24 Фев 2013 03:47:42
Блин, ребят. Я русский и на четверть белорус. Никогда не думал, что из-за всяких пидоров могут возникнуть такие разногласия. Хотя, с другой стороны, я на дваче, и здесь не стоит всем верить.

Вск 24 Фев 2013 03:48:35
>>43931604
1,25 человека.

Вск 24 Фев 2013 03:49:13
>>43931604
Надо было писать я наполовину человек, наполовину беларус.

Вск 24 Фев 2013 03:51:59
>>43931654
я не человек?

Вск 24 Фев 2013 03:52:30
>>43931557
> У меня нет родственников в странах третьего мира.
А у меня есть, к сожалению.
> В Финляндии есть.
Как будто у меня нет.
> Смирнов.
Нет.

Вск 24 Фев 2013 03:54:32
>>43931633
Пидорашка не может в дроби. 1/4 человека.

Вск 24 Фев 2013 03:55:57
>>43927114
Аноны, а посоветуйте годную гостиницу в Минске мне буквально сутки переконтаваться с тян. Чтоб тепло, лампово и не очень дорого.

Вск 24 Фев 2013 03:56:17
>>43931756
Да как вам сказать.

Вск 24 Фев 2013 03:59:31
>>43931914
НЕТ АНАЛОГОВ
Вы слышали как это было сказано?

Вск 24 Фев 2013 03:59:39
>>43927547
Гена?

Вск 24 Фев 2013 03:59:50
>>43931900
А у тебя прописка есть?

Вск 24 Фев 2013 04:00:05
>>43931900
Спортивная или спорт возле академии искусств. Не очень отличная, но дешевая. А вообще гугли.

Вск 24 Фев 2013 04:00:32
>>43931776
Откуда у тебя там родственники если ты вообще на грядке живёшь?

Вск 24 Фев 2013 04:02:44
>>43932052
Дед после войны тут остался жить.

Вск 24 Фев 2013 04:04:00
>>43932039
Ок, погуглю. Но мне главное всё не чтобы дёшево, а чтобы удобно, чистенько, без хуйни и тараканов, с тянкой всё таки ночевать там, хочется чтобы норм всё было.

Вск 24 Фев 2013 04:04:27
>>43932104
Ганите шлюху, яна бульбу падавиць!

Вск 24 Фев 2013 04:05:05
>>43932152
В Партизанском РОВД мжешь остановиться. Пейсак очень доволен.

Вск 24 Фев 2013 04:06:40
>>43932152
Тогда спорт не вариант. Есть сайт годный - белхотел, как-то так.

Вск 24 Фев 2013 04:08:36
>>43932118
Какой дед, бля, после какой войны, бля? Ты поехавший что ли? Когда там Финляндия с Белоруссией воевали? Что твой дед делает в Белоруссии, если он финн и наоборот?

Вск 24 Фев 2013 04:09:36
>>43932171
Хорошая картошка кстати качеством или не очень?

Вск 24 Фев 2013 04:10:43
>>43932339
Харошая.

Вск 24 Фев 2013 04:13:07
>>43932370
Почему у вас нет нормальной упаковки для продукции? Когда салаты в банке покупаю, то если банка как из жопы, значит это белорусская продукция.

Вск 24 Фев 2013 04:13:21
>>43932299
Дед карел. Воевал за совок. После берлина остался в белорашке. Ты тупой?

Вск 24 Фев 2013 04:15:27
>>43932451
Ну и родственники в Финляндии откуда? В совке с ними было не связаться, если они и жили там, если что. Мои уехали в 90х и начале 00х, я тоже могу уехать, но не хочу, там делать нехуй
, колхоз сплошной. Вот если бы я был фермером, то лучше Финляндии страны нет.

Вск 24 Фев 2013 04:15:42
>>43927114
15 минут назад откупился от НЕКРАВАВАЙГЭБНИ ста тысячами.

Вск 24 Фев 2013 04:17:50
>>43932152
Не будь долбоебом, сними квартиру. У нас же дешего, пиздец.

Вск 24 Фев 2013 04:18:50
>>43932537
У вас же взяток не берут. Вот у нас менты, кстати, теперь вообще не берут. Не знаю как там за серьёзные дела, но по мелочи нереально впарить за какой-нибудь косяк, типа распития в неположенном месте, только по знакомству если.

Вск 24 Фев 2013 04:19:27
>>43932530
Родственники со стороны деда. Я наоборот, после универа планирую понаехать в суоми. Незнаю, выйдет ли, поэтому заранее шлю тебе лучи поноса, пидораха.

Вск 24 Фев 2013 04:19:57
>>43932447
>салаты в банке
>банка как из жопы
Быдло должно страдать же.

Вск 24 Фев 2013 04:20:25
>>43932627
hahaha/.ohwow

Вск 24 Фев 2013 04:22:01
>>43932627
>У вас же взяток не берут
В милиции работают только Васи из отдаленных деревенью
>У вас же взяток не берут
Ох, ю.
>У вас же взяток не берут
Обосралсяю

Вск 24 Фев 2013 04:22:30
>>43932659
Ну хочется же качества за заплаченные деньги, а не какашку. Просто приличные банки с этикетками, вот и всё, а то как привет из 70-х с кривыми этикетками БЕЛПЛОДОВОЩПРОМ.

Вск 24 Фев 2013 04:24:33
>>43932725
>хочется же качества
Беларашкотред
>хочется же качества
Продал проигрыватель, купил выигрыватель.жпг

Вск 24 Фев 2013 04:25:20
>>43932599
а есть что-нить, чтобы через интернеты снять хату на сутки?

Вск 24 Фев 2013 04:26:03
>>43932639
Твой универ там не нужен, если хочешь ехать, то едь так, не теряй времени. Там можешь переучиваться на нужные профессии.
Профессором тебе не стать, а вот жить вполне можно, но скучно шопиздец.
Но это правда для тех, кто гражданство получает, там они и хату оплачивают, можно даже в Хельсинки жить, и учёбу. Но всё равно, блять, это колхоз а не страна.

Вск 24 Фев 2013 04:28:30
>>43932791
А что, нямка у них вкусная, только вот с упаковкой беда. Говорят ещё шмотки неплохие выпускают, но этого я не знаю, не покупал никогда. Бабская косметика туда же что-то слышал.

Вск 24 Фев 2013 04:28:32
НУ ладно уж, побуду АДЫКВАТНЫМ человеком в треде.
Минск = Москва, только в 5 раз меньше. Абсолютно все тоже самоеЮ просто в 5 раз меньше.
Квартиры в 5 раз дешевле, хачей в 5 раз меньше, нормальных людей в 5 раз меньше. Только вокзальные башни ничемне отличаются, а так. Тот же понос, только поменьше.

Вск 24 Фев 2013 04:29:12
>>43932837
Универ не нужен, а ит специальность пригодится. Там переатистую диплом и норм. И не видел ты колхозов, дружок.

Вск 24 Фев 2013 04:29:41
Кто был в Бобруйске? Хочу туда съездить.

Вск 24 Фев 2013 04:29:56
>>43932814
Ты совсем ебанутый? Мудило, напиши в гугле: "квартира на сутки минск".

Вск 24 Фев 2013 04:30:41
>>43932919
Нет же. У нас нахуй не шлют, если время спросишь.

Вск 24 Фев 2013 04:30:47
Все побежали к светлому будущему я сказал.

Вск 24 Фев 2013 04:31:17
>>43932955
В анус себе съезди, пес. ПГТ 2 на 2 километра тебе нахуй нужен?

Вск 24 Фев 2013 04:31:21
>>43932962
И тут же соснет.

Вск 24 Фев 2013 04:32:22
>>43932986
Кому ты пиздишь? У нас СТАБИЛЬНО на хуй шлют, если не находишься в центральном районе.

Вск 24 Фев 2013 04:32:22
>>43932937
Ну не знаю насколько нужны ИТ специалисты в Финляндии. И колхозы я видел, у нас тоже есть. Развалили правда уже всё.

Вск 24 Фев 2013 04:34:21
>>43933002
Название знаменитое. Хочу пофоткаться на фоне всяких бобруйских вывесок. У нас таких нет.

Вск 24 Фев 2013 04:38:44
>>43933096
Там есть только одна вывеска на въезде и один кастел. Офкорсе, у вас кастелов нет и для тебя это будет вновинку, но гораздо проще съездить в минск. Тут и костелов побольше, и шаболд можно найти, и куна себе подыскать, и на все беларуские достопремичательности посмотреть.

Вск 24 Фев 2013 04:39:39
>>43933041
Нужны.

Вск 24 Фев 2013 04:46:34
>>43932707
>В милиции работают только Васи из отдаленных деревенью
И вот с таким шаблонно мыслящим быдлом я сижу на одной борде.

Вск 24 Фев 2013 04:46:47
>>43933212
Нахуй мне Минск? Вот я что скажу, я ездил в Минск и покажу им какую-нибудь хуйню. Это никому неинтересно. А вот я скажу Я БЫЛ В БОБРУЙСКЕ, ВОТ, СМОТРИТЕ. Вот это будет серьёзный успех.
К тому же интересно бобруйских дам пощупать.

Вск 24 Фев 2013 04:48:30
Бобруйск должно быть милый городок. Трубы дымят, домики стоят.

Вск 24 Фев 2013 04:49:03
>>43932917
>с упаковкой беда
Еще какая. Вот, например, продается безе. Небольшая упаковочка стоит 4000 рублей (50 центов), а продавщица на кассе еще дополнительно пробивает цену упаковки из этого ебаного твердого пластика, в которой безешки и лежат в 1500 рублей. Ну не охуеть ли?

Вск 24 Фев 2013 04:50:28
Вот клуб какой-то есть, казино целое. У нас нет казино.

Вск 24 Фев 2013 04:52:55
И ещё хочется себя миллионером почувствовать. Разменяю на зайчики пару тысяч.

Вск 24 Фев 2013 04:55:18
>>43933415
В том-то и дело, что в Минске есть все, что только может быть особенного в Беларуси. А вот остальные города отличаются своими особенностями. Где больше еврейского, где больше старого, etc. А вот в Минске это все собрано и для ебаного туриста подготовлено. Тут ты найдешь именно то, что тебе нужно и даже немножко больше. У нас даже главный кастел для свободного доступа открыт, хоть церковные выблядки и не любят гостей.

Вск 24 Фев 2013 04:57:43
>>43927423
Двачую
Жил в Гродно около 4х месяцев. Понравилось. Еще хочу туда.
мимо владивосток-кун

Вск 24 Фев 2013 04:58:08
>>43933618
Вот ты доебался со своими церквями. У нас вообще Кижи есть, у вас от них жопа загорится, как увидите.
Я не говорю, что я туристом поеду в Белоруссию, ннахуй туда вообще ехать туристом? Я хочу съездить конкретно в Бобруйск, сфоткаться на фоне бобруйских вывесок и пощупать бобруйчанок.

Вск 24 Фев 2013 05:08:51
>>43933665
Ох, ю. Я ведь говорил уже, что если ты едешь в Беларусь, то едь в Минск. У тебя просто нет выбора. Тут тебе не Россия нихуя, тут нет выбора. Либо Минск, либо вообще сюда не приезжай. В Бобруйск захотел? Совсем дебил? Ебать, как минимум 1000км только для того чтобы сфотографироваться с надписью БОБРУЙСК? И где ты найдешь шлюх себе в городе на 200т жителей? Совсем ебанулся? Блять, я специально для тебя готов отжать у знакомых магнитик, с надписью "Бобруйск", только бы ты не терял время зря. В Беларуси есть только один город в который можно заехать - Минск. Это все.

Вск 24 Фев 2013 05:11:48
>>43933886
200к жителей, это нормально. На недельку, больше не надо.
Иди в жопу со своим Минском, я за Бобруйск. И если поеду в Белоруссию, то только в Бобруйск.

Вск 24 Фев 2013 05:15:56
>>43933935
Ну и ладно. Только когда ты разочаруешься в своей поездке, не пизди, что тебя не предупреждали.
Я конечно желаю тебе удачи и хорошо провести время. Но я в этой стране живу, я во всех этих городах был и я знаю что там происходит.
Добра тебе и хорошо провести время.

Вск 24 Фев 2013 05:22:55
>>43934027
Чего разочаровываться. Я в Бобруйск еду, я знаю, что там будет. Это люди Дубаями разочаровываются когда понимают, что там всего одна улица с небоскрёбами и больше ничего нет.


← К списку тредов