Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата
а*(Хn-1)^5 + b*(Xn-1)^4 + с*(Хn-1)^3 + d*(Хn-1)^2+e*(Хn-1)+f) mod m

то есть первый элемент гаммы равен:
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
Да число не маленькое sad.gif Только выбора мне не дали, к сожалению

Нет, первый элемент гаммы равен:
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
Цитата
Ц???ю????ыв?Ё??????ъ?вяВ????Ц????ЦН?й?????в????????м?у?Н??????????З???????????????????эМ????Ц???????у??????П???????р?озЦ???ЁЦ?В?????л???Д??????????п?азЗ??????В???Б?й?????вП?ё?????п?я?А????????????у??????????????з?йкР????????????????М??П


Бред получается. Где-то у тебя ошибка. Может с кодировкой что не так?
Откуда у тебя исходник:
Цитата
“ ­-виэпгб-ьжюъни-п-хещэнягэи-гявэнпеяижт-е-йихещэнягэи-вгжюъняижт-еьвгжскюияьт-гйеа-е-ягя-ли-зжуъ#-Хещэнягэ-гмэнкюия-хещэяизья!-згягэцд-тпжтияьт-щюазыеид-гязэцягог-яизьян!-згазэияацд-пей-щюазыее-хещэгпнает-гвэийижтияьт-ьизэияацб-зжуъгб#”

Он был в файле? Присоедини этот файл сюда целиком. Проверь еще раз все что ты написал до сих пор.
Пока как ты видишь ничего не получается sad.gif...

Автор: 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




Может быть он зашифрован с ошибкой. Такое уже было, но мой препод (автор этого задания) свои ошибки не признает. На самом деле ты уже четвертый или пятый, кто пытается его расшифровать, но безуспешно sad.gif

Автор: cardinal 3.5.2004, 00:01
Цитата
а*(Хn-1)^5 + b*(Xn-1)^4 + с*(Хn-1)^3 + d*(Хn-1)^2+e*(Хn-1)+f) mod m

Может тут все так что-то не так?
Цитата
Такое уже было...

Ну тогда долго можно сидеть и гадать: ты что-то не так делаешь или препод опять лоханулся. Как будут какие новости напиши, чтобы я в курсе был. Интерес распирает, что же там зашифровано? smile.gif

Автор: Guest 3.5.2004, 08:28
Очень хочу научиться программированию, но не могу достать программу и нужна помощь!!!

Автор: cardinal 3.5.2004, 12:09
Модератор: Пожалуйста, один топик - один вопрос.

Автор: kleoy 3.5.2004, 13:36
Ок, узнаю что за текст, сразу же напишу smile.gif

Автор: cardinal 3.5.2004, 16:48
Кстати с текстом можно потом будет баловаться в обратную сторону - пытаться понять как ключи сделаны smile.gif

Автор: kleoy 7.5.2004, 16:39
Ты просил сообщать о новостях. Так вот: ошибка судя по всему в самом генераторе псевдослучайных чисел. Сегодня сделала другой вариант, заменив только генератор (там он совсем простой (a*X+b)mod m), ну и шифрованный текст соответсвенно. Все нормально заработало.
Придется идти к преподу, и "кровь из носа" доказывать, что лоханулся он.
Расшифрую расскажу. smile.gif

Автор: cardinal 7.5.2004, 16:55
А ты зарегистроваться не хочешь? smile.gif

Автор: kleoy 11.5.2004, 04:12
Свершилось!!! Несколько часов занималась простым перебором различных формул и вариаций параметров. Все оказалось гораздо проще. Вместо того навороченного генератора при шифровании использовался совсем другой, а именно: XN=(256*X+13) mod 256.

Надо же было так наколоть!

Сейчас зарегистрируюсь smile.gif

Автор: kleoy 11.5.2004, 04:17
Ну вот, теперь я не гость smile.gif

Еще раз спасибо за участие.

Автор: kleoy 11.5.2004, 11:07
Можно даже было просто написать XN=13 и все

Автор: cardinal 11.5.2004, 23:19
Ясно smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)