Хелпикс

Главная

Контакты

Случайная статья





Метод RSA.. Алгоритм RSA.. Язык для реализации.



Метод RSA.

RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) — криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.

Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений.

 

Алгоритм RSA.

Для начала необходимо сгенерировать открытый и секретные ключи:

1. Возьмем два больших простых числа p and q.

2. Определим n, как результат умножения p on q (n= p*q).

3. Выберем случайное число, которое назовем d. Это число должно быть взаимно простым (не иметь ни одного общего делителя, кроме 1) с результатом умножения (p-1)*(q-1).

4. Определим такое число е, для которого является истинным следующее соотношение (e*d) mod ((p-1)*(q-1))=1.

5. Назовём открытым ключем числа e и n, а секретным - d и n.

Для того, чтобы зашифровать данные по открытому ключу {e, n}, необходимо следующее:

1. разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа M(i)=0, 1, 2..., n-1( т. е. только до n-1).

2. зашифровать текст, рассматриваемый как последовательность чисел M(i) по формуле C(i)=(M(I)^e) mod n.

 

Язык для реализации.

Чтобы реализовать данный метод шифрования и дешифрования информации был выбран язык программирования Python - высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью. Данный язык был выбран по нескольким причинам:

 

· Понятный синтаксис.

· Доступность.

· Огромное количество модулей и пакетов.

· Низкий порог вхождения.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.