LT   EN   RU  
2021 г. май 8 д., суббота Straipsniai.lt - Информационный портал
  
  Компьютеры > Компьютерные технологии > Безопасность > Криптография
Lankomumo reitingas Версия для печати Spausdinti
Алгоритм шифрования данных с открытым ключом RSA

Алгоритм шифрования данных с открытым ключом является наиболее переспективным в настоящий момент (RSA - Rivest, Shamir and Aldeman - его изобретатели).

Понятия:

Простое число - делится только на 1 и на само себя;

Взаимно простым- не имеют ни одного общего делителя, кроме 1;

Результат операции i mod j - остаток от целочисленного деления i на j.

Чтобы использовать алгоритм RSA, надо сначала сгенерировать открытый и секретные ключи выполнив следующие шаги:

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

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

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

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

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

=================================

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

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

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

Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо выполнить следующие вычисления: M(i) = (C(i)^d) mod n. В результате будет получено множество чисел M(i), которые представляют собой исходный текст.

==========================

Hу, чтобы более наглядно представить алгоритм RSA, приведу следующий пример:

Зашифруем и расшифруем сообщение "САВ" по алгоритму RSA. Для простоты буду использовать маленькие числа(на практике - нужно брать намного большие).

1) Выберем p=3 and q=11.

2)Определим n= 3*11=33.

3) Hайдем (p-1)*(q-1)=20. Следовательно, d будет равно, например, 3: (d=3).

4) Выберем число е по следующей формуле: (e*3) mod 20=1. Значит е будет равно, например, 7: (e=7).

5) Представим шифруемое сообщение как последовательность чисел в диапозоне от 0 до 32 (незабывайте, что кончается на n-1). Буква А =1, В=2, С=3.

Теперь зашифруем сообщение, используя открытый ключ {7,33}

C1 = (3^7) mod 33 = 2187 mod 33 = 9;

C2 = (1^7) mod 33 = 1 mod 33 = 1;

C3 = (2^7) mod 33 = 128 mod 33 = 29;

Теперь расшифруем эти данные, используя закрытый ключ {3,33}.

M1=(9^3) mod 33 =729 mod 33 = 3(С);

M2=(1^3) mod 33 =1 mod 33 = 1(А);

M3=(29^3) mod 33 = 24389 mod 33 = 2(В);

Все, данные расшифрованы.

================================

Криптостойкость алгоритма RSA основывается на предположении, что исключительно трудно определить секретный ключь по известному, поскольку для этого необходимо решить задачу о существовании делителей целого числа. Данная задача является NP-полной, и, как следствие этого факта, не допускает cейчас эффективного (полиноминального) решения. Более того, сам вопрос существования эффективных алгоритмов решения NP-полных задач является до настоящего времени открытым. Если Вы используете числа, состоящие из 200 цифр(такие и надо использовать при шифровании данных), для несанкционированной расшифровки придется генерировать огромное число операций (около 10^23).

P.S/ Данные, приведенные выше, не должны быть использованы в незаконных целях!

            

Lankomumo reitingas

Oбсудить на форуме - Oбсудить на форуме

Версия для печати - Версия для печати

Назад
Случайные теги:    Воспитания (3)    Сертификаты SSL (10)    Кулинария (39)    Автомобили (6)    Собаки (6)    Цветоводство (6)    Лов рыбы (11)    Архитектура (3)    Садоводство (12)    Фехтирования (6)    География (4)    Развлечения (26)    Экология (18)    НЛП (18)    Процессоры (7)    Интернет (15)    Азербайджан (7)    Фильмы (10)    Книги (2)    Комплектующие (18)    Набоков В. В. (94)    Настольные игры (17)    Авиация (2)    Военное искусство (3)    Компьютерные игры (26)    Мобильная связь (5)    Безопасность (43)    Психология (27)    Общение (322)    Открытый код (2)    Здаровья ребёнка (2)    Физкультура (3)    Психология (27)    Саентология (10)    Йога (9)    Кошки (11)    Звуковые системы (8)    Музыка (26)    Биология (34)    Технологий (4)    Хоби (27)    Археология (3)    Образование (101)    Астрология (13)    Мама и ребенок (19)    Алкохольные напитки (29)    Анна Ахматова (3)    Память (2)    Медицина (84)    Математика (2)
1. Криптография: зачем это нужно
2. Криптография с открытым ключом: от теории к стандарту
3. Будем шифроваться? или Практикум по домашней криптографии
4. Часто задаваемые вопросы и ответы по парольной защите документов Microsoft Office (FAQ)
5. Надежна ли цифоровая подпись?
6. IBM Выпустил новый алгоритм Signcryption
7. Анализ рынка средств защиты программного обеспечения от несанкционированного копирования. Часть I. StarForce.
8. Как обеспечить подлинность электронных документов?
9. Анализ рынка средств защиты программного обеспечения от несанкционированного копирования. Часть 2. StarForce
10. Практическая криптография: алгоритмы и их программирование
1. Часто задаваемые вопросы и ответы по парольной защите документов Microsoft Office (FAQ)
2. Курс по криптоанализу блочный шифров Брюса Шнаера
3. Криптография: зачем это нужно
4. Криптография с открытым ключом: от теории к стандарту
5. Практическая криптография: алгоритмы и их программирование
6. Будем шифроваться? или Практикум по домашней криптографии
7. Надежна ли цифоровая подпись?
8. Как обеспечить подлинность электронных документов?
9. Анализ рынка средств защиты программного обеспечения от несанкционированного копирования. Часть I. StarForce.
10. Анализ рынка средств защиты программного обеспечения от несанкционированного копирования. Часть 2. StarForce
Map