Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Електронно-цифровий підпис за методом Шнорр

Реферат Електронно-цифровий підпис за методом Шнорр





Flag ;//за допомогою цього циклі ми представляємо число Ch-1 = 2 ^ pow_2 * coef

{/ = 2; _2 + = 1;

} while (! (coef & 1)); (int i = 0; i <100; i + +)// для достатньої точності вибрак параметр до = 100, тоді ймовірність помилки = (1/4 ) ^ 100

{//тупо за алгоритмом:

{= ((rand () <<16) | rand ())% (Ch-1);// вибираємо випадкове а

} while (! a); (a, coef, rez, Ch);// зводимо в ступінь, отриману раніше ((rez == 1) | | (rez == Ch-1) )// і якщо результат порівнянний з 1 або -1, то число ймовірно просте, йдемо на слід ітерацію; = 1; (int j = 0; j <(pow_2-1); j + +)// інакше має знайтися хоча б одне таке i Є (1, pow +2-1), що a ^ (2 ^ i) == 1 по модулю Р.

{(rez, 2, rez, Ch); (rez == 1) 1; (rez == (Ch-1))

{= 0;;

}

} (Flag)// якщо таке i жодного разу не зустрілося, то число составное1;

} 0;

} InversElem (unsigned int Fn, unsigned int E, unsigned int & D)// ф-ція обчислює зворотний ел-т (D) для (E) методом ланцюгових дробів

{int r, s, a = Fn, b = E, ai [3] = {0,1}; M (-1);// кількість ітерацій

{= a/b; = a% b; [2] = r * ai [1] + ai [0];// знаходимо поточне а [0] = ai [1];//записуємо попереднє а в пре-попереднє [1] = ai [2]; = b;// записуємо чисельник = s;// записуємо знаменаткль

+ + M;// нарощуємо ітерації

} while (s);// до тих пір, поки є залишок (a! = 1)// якщо останній знаменник НЕ 1 (тобто НСД (Fn, D)! = 1 ) 1; (M% 2 == 0) = ai [0]; = Fn-ai [0]; 0;

}

unsigned int NOD (unsigned int m, unsigned int n, int temp = 1)// # "justify"> {(! m && m) n * temp; if (m & ; &! n) m * temp; if (m == n) m * temp; if ((m == 1) && n) 1 * temp; if (m && (n == 1)) 1 * temp; if (! (m & 1) &&! (n & 1))

{* = 2 ;/ = 2; n/= 2; (m, n, temp);

} if (! (m & 1) && (n & 1))

{/ = 2; (m, n, temp);

} if ((m & 1) &&! (n & 1))

{/ = 2; (m, n, temp);

} if ((m & 1) && (n & 1))

{(n> m)

{= m;

}

{= n;

} (m, n, temp);

}

}

unsigned int Sravn (unsigned int x, unsigned int c, unsigned int Mod)// y = x ^ 2 + c (mod Mod)

{//це порівняння потрібно для оригінального методу факторизації р-Поллардаint y; __int64 temp; = x * x;% = Mod; + = c;% = Mod; = temp; y;

}

bool Factor (unsigned int Mod, unsigned int & P, unsigned int & Q)// якщо помилка, повертає 1, інакше 0

Назад | сторінка 9 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Електронно-цифровий підпис як засіб захисту електронного документа
  • Реферат на тему: Електронно-цифровий підпис як засіб захисту електронного документа
  • Реферат на тему: Цифровий підпис
  • Реферат на тему: Електронний цифровий підпис
  • Реферат на тему: Електронний цифровий підпис