| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Помогите!!! |
| Автор: kleoy 1.5.2004, 13:08 |
| Есть зашифрованный текст: “ -виэпгб-ьжюъни-п-хещэнягэи-гявэнпеяижт-е-йихещэнягэи-вгжюъняижт-еьвгжскюияьт-гйеа-е-ягя-ли-зжуъ#-Хещэнягэ-гмэнкюия-хещэяизья!-згягэцд-тпжтияьт-щюазыеид-гязэцягог-яизьян!-згазэияацд-пей-щюазыее-хещэгпнает-гвэийижтияьт-ьизэияацб-зжуъгб#” Есть генератор псевдослучайных чисел: Хn = (аХn-15 + bXn-14 + сХn-13 + d Хn-12+e Хn-1+f) mod m Есть ключ: X0=111, a=3, b=5, c=7, d=9, e=11, f=13 и m=256 Есть алгоритм расшифровки: Организуем цикл для посимвольной обработки зашифрованного сообщения a. Символ переводим в ASCII, а затем в двоичный код b. С помощью генератора получаем очередной элемент гаммы, который переводим в двоичный код c. В цикле складываем операцией XOR соответственные разряды двоичных кодов d. Результат (двоичный код) переводим в десятичное число, а затем в символ из ASCII У меня в итоге получилась какая-то белеберда. Последовательность из первых четырех символов для проверки расшифровала вручную в Excel - тоже самое. Если кому-то не лень, расшифруйте этот чертов текст, а то я не могу найти, где ошибка. Программка не большая, так что это много времени не займет. Пожа-а-а-а-а-луйста. |
| Автор: kleoy 1.5.2004, 18:13 |
| Вышла запутка с формулой. Вот как она выглядит на самом деле: Хn = (а*(Хn-1)^5 + b*(Xn-1)^4 + с*(Хn-1)^3 + d*(Хn-1)^2+e*(Хn-1)+f) mod m |
| Автор: cardinal 1.5.2004, 19:09 | ||
то есть первый элемент гаммы равен: x = (3 * (111- 1) ^ 5 + 5 * (111- 1) ^ 4 + 7 * (111- 1) ^ 3 + 9 * (111- 1) ^ 2 + 11 * (111- 1) + 13) mod 256 Число то большое какое-то, тебе не кажется? Ascii буквы "a" русской равен 224? |
| Автор: kleoy 1.5.2004, 22:43 |
| Да число не маленькое Нет, первый элемент гаммы равен: x = (3 * 111 ^ 5 + 5 * 111 ^ 4 + 7 * 111 ^ 3 + 9 * 111 ^ 2 + 11 * 111 + 13) mod 256 n - это индекс элемента, соответственно Xn считается на основе X(n-1), т.е. предыдущего элемента гаммы. Да, ascii код буквы "а" - 224 |
| Автор: cardinal 2.5.2004, 03:17 |
| первый: x = (3 * 111 ^ 5 + 5 * 111 ^ 4 + 7 * 111 ^ 3 + 9 * 111 ^ 2 + 11 * 111 + 13) mod 256 => 246 второй: x = (3 * 246 ^ 5 + 5 * 246 ^ 4 + 7 * 246 ^ 3 + 9 * 246 ^ 2 + 11 * 246 + 13) mod 256 => 59 и т.д. Элементы гаммы в таком порядке идут? 246, 59, 34, 143... Посчитай на всякий случай. Может я ошибаюсь. Чему равен первый расшифрованый символ? Напиши пошагово выполнение твоего выше описанного алгоритма до второго символа. Главное чтобы у меня было несколько правильных цифр, которые я бы мог сравнить и сделать выводы. |
| Автор: kleoy 2.5.2004, 11:47 |
| Буква Ascii Двоич Xn-1 Xn Двоич XOR Ascii Буква Space 32 100000 111 246 11110110 11010110 214 Ц - 45 101101 246 59 111011 010110 22 | - 45 101101 59 34 100010 001111 15 | в 226 11100010 34 143 10001111 01101101 109 m и 232 11101000 143 22 10110 11111110 254 ю и т.д. |
| Автор: cardinal 2.5.2004, 12:29 | ||||
Бред получается. Где-то у тебя ошибка. Может с кодировкой что не так? Откуда у тебя исходник:
Он был в файле? Присоедини этот файл сюда целиком. Проверь еще раз все что ты написал до сих пор. Пока как ты видишь ничего не получается |
| Автор: kleoy 2.5.2004, 23:36 |
| Вот, скопировала с Word без каких-либо изменений. Задание 25 Линейные конгруэнтные генераторы Линейными конгруэнтными генераторами называются генераторы псевдослучайных последовательностей следующего вида: Хn = (аХn-15 + bXn-14 + сХn-13 + d Хn-12+e Хn-1+f) mod m где Хn - это n-ый член последовательности, а Хn-1 - предыдущий член последовательности. Параметры а, b, с, d, e, f и m представляют собой константы: а, b, c, d, e - это множители, f -приращение, и m - модуль. Ключом, или начальным числом, служит значение X0. Задание: Зашифрованный текст : “ -виэпгб-ьжюъни-п-хещэнягэи-гявэнпеяижт-е-йихещэнягэи-вгжюъняижт-еьвгжскюияьт-гйеа-е-ягя-ли-зжуъ#-Хещэнягэ-гмэнкюия-хещэяизья!-згягэцд-тпжтияьт-щюазыеид-гязэцягог-яизьян!-згазэияацд-пей-щюазыее-хещэгпнает-гвэийижтияьт-ьизэияацб-зжуъгб#” Секретный ключ: X0=111, a=3, b=5, c=7, d=9, e=11, f=13 и m=256 Решение: 1.Организуем цикл для посимвольной обработки зашифрованного сообщения a. Символ переводим в ASCII, а затем в двоичный код b. С помощью генератора получаем очередной элемент гаммы, который переводим в двоичный код c. В цикле складываем операцией XOR соответственные разряды двоичных кодов d. Результат (двоичный код) переводим в десятичное число, а затем в символ из ASCII Может быть он зашифрован с ошибкой. Такое уже было, но мой препод (автор этого задания) свои ошибки не признает. На самом деле ты уже четвертый или пятый, кто пытается его расшифровать, но безуспешно |
| Автор: cardinal 3.5.2004, 00:01 | ||||
Может тут все так что-то не так?
Ну тогда долго можно сидеть и гадать: ты что-то не так делаешь или препод опять лоханулся. Как будут какие новости напиши, чтобы я в курсе был. Интерес распирает, что же там зашифровано? |
| Автор: Guest 3.5.2004, 08:28 |
| Очень хочу научиться программированию, но не могу достать программу и нужна помощь!!! |
| Автор: cardinal 3.5.2004, 12:09 |
| Модератор: Пожалуйста, один топик - один вопрос. |
| Автор: kleoy 3.5.2004, 13:36 |
| Ок, узнаю что за текст, сразу же напишу |
| Автор: cardinal 3.5.2004, 16:48 |
| Кстати с текстом можно потом будет баловаться в обратную сторону - пытаться понять как ключи сделаны |
| Автор: kleoy 7.5.2004, 16:39 |
| Ты просил сообщать о новостях. Так вот: ошибка судя по всему в самом генераторе псевдослучайных чисел. Сегодня сделала другой вариант, заменив только генератор (там он совсем простой (a*X+b)mod m), ну и шифрованный текст соответсвенно. Все нормально заработало. Придется идти к преподу, и "кровь из носа" доказывать, что лоханулся он. Расшифрую расскажу. |
| Автор: cardinal 7.5.2004, 16:55 |
| А ты зарегистроваться не хочешь? |
| Автор: kleoy 11.5.2004, 04:12 |
| Свершилось!!! Несколько часов занималась простым перебором различных формул и вариаций параметров. Все оказалось гораздо проще. Вместо того навороченного генератора при шифровании использовался совсем другой, а именно: XN=(256*X+13) mod 256. Надо же было так наколоть! Сейчас зарегистрируюсь |
| Автор: kleoy 11.5.2004, 04:17 |
| Ну вот, теперь я не гость Еще раз спасибо за участие. |
| Автор: kleoy 11.5.2004, 11:07 |
| Можно даже было просто написать XN=13 и все |
| Автор: cardinal 11.5.2004, 23:19 |
| Ясно |