|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.10.2008, 22:45 | #1 |
The IT Crowd
Пользователь
Регистрация: 10.10.2008
Сообщений: 41
|
Алгорим RSA
Приветствую Вас. Вот прошу Вашей помощи в следующей проблеме: Алгорим RSA.
Генерация ключей у меня есть, написал: Код:
Знаю формулы шифрования C = M (в степени) e mod n, расшифровывания M = C (в степени) d mod n. Это если я правильно понял просто формулы вбить, или что-то еще необходимо? Если не затруднит, можно с пояснениями. Заранее благодарю.
"Одни наслаждаются дождём, другие просто промокают." - Роджер Миллер
|
22.10.2008, 13:58 | #2 |
The IT Crowd
Пользователь
Регистрация: 10.10.2008
Сообщений: 41
|
Сам алгоритм понятен:
Зашифруем и расшифруем сообщение "САВ" по алгоритму 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(В); но как реализовать его в коде?
"Одни наслаждаются дождём, другие просто промокают." - Роджер Миллер
|
10.01.2009, 14:25 | #3 |
Регистрация: 08.01.2009
Сообщений: 6
|
И у меня таже проблемка. Только вот программу, касающуюся ключей я сделала так:
Код:
«Мое поражение не будет означать, что нельзя было победить.Многие потерпели поражение,стараясь достичь вершины Эвереста,и в конце концов Эверест был побежден». (Эрнесто Че Гевара)
|
05.06.2009, 20:50 | #4 |
Пользователь
Регистрация: 03.06.2009
Сообщений: 16
|
Учти то что p и q должны быть взаимно простыми числами а не просто простыми. И их необходимо генерировать самому, иначе если это делать руками то раньше мозг сломается. ведь если будет ошибка в числах то сообщение если даже зашифруется то не факт что правильно расшифруется. Учитывай тот факт что бываю ложные взаимно простые числа. Они не дадут верно расшифровать. Пока всё. как изучишь данный пункт объясню дальше. Либо жди когда я напишу это. Я сейчас как раз это делаю. Мне в универе это сдать надо.
|
05.06.2009, 22:36 | #5 |
Регистрация: 08.01.2009
Сообщений: 6
|
Я сдала эту работу именно вот так.....или преподаватель плохо смотрела или она проканала
Код:
Код:
«Мое поражение не будет означать, что нельзя было победить.Многие потерпели поражение,стараясь достичь вершины Эвереста,и в конце концов Эверест был побежден». (Эрнесто Че Гевара)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
RSA шифрование. Требуется пример. | Hakman | Помощь студентам | 5 | 22.02.2008 16:05 |
вычисление больших степеней по модулю - Rsa | Студент | Общие вопросы C/C++ | 2 | 19.10.2007 18:28 |