Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 5

Программа для расшифровки текста из двузначных чисел

30.11.2018, 14:05. Показов 7282. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, у кого есть такая прога?
Каждой букве русского алфавита соответствует двузначное число:
Кликните здесь для просмотра всего текста
48 84 13 33 94 13 48 42 33 46 82, 84 13 82 48 94 82 46 84 33 42 13 88 82 84 16 46 16 25
82 50 17 48 13 42 61 37 78 50 51 16 82 42 13 82 84 16 46 16 50 48 17 34 13 76 82
25 82 16 72 82 46 48 69 17 82 28 82, 28 84 48 51 75 48 75 84 33 46 16 46 33 84 33 17,
75 33 37 82 13 17 34 16 38 48 37 17 16 46 33. 82 17 13 58 94 25 33 69 58 13 33 46 76 82
75 48 46 33 17 16 34, 16 34 76 82 25 33 69 58 13 33 46 48 50 51 13 94 48, 38 42 82
17 16 48 94 42 78 13 50 16 37 48. 13 76 37 16 28 82 37 64 17 48 17 48 17 33 13 16 94
42 17 82 28 82 72 58 46 82 94 82 72 37 33 17 82 13 94 48, 38 42 82 84 82 13 48 46 82 94
78 76 82 13 16 84 33 42 78 51 75 48 51 94 82 76 64 16 50 16 38 42 82 69 37 34 42
17 58 17 48 69 84 37 33 13 94 42 13 51 61 21 16 48: 28 82 37 82 84 33, 75 33 37 25 16 48
16 88 82 46 82 84 17 58 48 94 42 37 33 17 58, 94 82 25 37 82 13 16 21 33, 94 25 37 58 42
58 48 13 69 48 50 17 58 88 28 46 51 72 16 17 33 88, 72 82 37 82 69 84 34 21 16 48 50 82
37 34 25 82 37 33 72 46 16, 82 37 51 84 16 34 13 82 91 17 58, 16 17 94 42 37 51 50 48 17
42 58 13 37 33 38 48 13 33 17 16 34 16 50 51 69 58 25 16, 76 46 48 17 16 42 48 46 78 17
58 88 75 48 17 21 16 17, 17 48 76 82 84 13 16 75 17 58 48 69 13 48 69 84 58 16 76 46 33
17 48 42 58, 25 37 33 94 25 16, 25 82 42 82 37 58 50 16 76 82 46 78 69 51 61 42 94 34 17
48 13 48 37 17 58 48, 25 82 28 84 33 76 16 64 51 42 94 13 82 16 50 48 37 69 25 16 48 25
33 37 42 16 17 58, 37 33 94 42 48 17 16 34 16 50 16 17 48 37 334 65 8 94 82 13 94 48 50
16 16 88 94 82 25 37 82 13 48 17 17 58 50 16 69 33 50 48 38 33 42 48 46 78 17 58 50 16
94 13 82 91 94 42 13 33 50 16, 94 48 37 48 72 37 34 17 58 88 33 17 28 48 46 82 13, 38 48 91
88 46 48 72 - 88 13 33 46 33 16 76 37 48 13 82 69 17 48 94 48 17 16 48 28 82 94 76 82
84 33, 37 33 69 84 33 38 51 17 33 28 37 33 84 13 64 25 82 46 33 88, 19 16 28 51 37 58
76 42 16 98 16 98 33 37 48 91, 88 37 33 17 34 21 16 48 94 34 13 94 33 50 82 50 94 48
37 84 98 48 76 16 37 33 50 16 84, 42 48 17 78 72 58 25 33, 17 33 25 82 42 82 37 82 50
76 82 25 82 16 42 94 34 69 48 50 46 34, 16 37 58 72 58, 17 33 25 82 42 82 37 82 91 94
42 82 16 42 72 58 25, 76 51 94 42 58 17 16 13 94 48 50 16 46 82 94 42 16 13 82 28 82 72 82
28 33. 82 17 51 13 16 84 48 46 13 48 21 16 17 48 82 76 16 94 51 48 50 58 48, 42 33 25
16 48, 25 33 25 51 46 16 98 58, 82 94 13 48 21 48 17 17 58 48 28 33 69 82 13 58 50 16
37 82 75 25 33 50 16, 16 25 16 42 33, 25 82 42 82 37 58 91 51 50 16 37 33 48 42 76 37
16 69 13 51 25 33 88 38 48 46 82 13 48 38 48 94 25 82 28 82 28 82 46 82 94 33.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.11.2018, 14:05
Ответы с готовыми решениями:

Программа для шифровки-расшифровки текста
Здравствуйте, в институте задали написать программу для шифровки-расшифровки текста. Алгоритм шифрования - "символ заменяется на два...

Программа для расшифровки текста
для расшифровки текста... ну то есть вставляешь в сидиром диск, там человек чего-то говорить, а эта умная програма распознает его голос и в...

Найти сумму всех различных двузначных чисел из этого текста и вывести список этих чисел
Дан текст, состоящий из строк. Каждая строка состоит из слов и чисел, разделенных пробелами. Найти сумму всех различных двузначных чисел...

5
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,824
30.11.2018, 14:38
Лучший ответ Сообщение было отмечено kazikpazik как решение

Решение

Если предположить, что кодировалась таблица ASCII, то коду 48 никак не может соответствовать буква русского алфавита. Поэтому это какой-то шифр. Чтобы его разгадать, можно применять частотный анализ.

Добавлено через 17 минут
Самые частые символы:
16 - 73 раза
82 - 82 раза
48 - 75 раз

Добавлено через 22 секунды
https://ru.wikipedia.org/wiki/... 1%82%D1%8C

Добавлено через 6 минут
В шифротексте есть число 334 это ошибка?

Добавлено через 4 минуты
В шифротексте есть одно интересное место, а именно 17 48 17 48 17. Мы наверняка не знаем, где стоят пробелы, но я полагаю, но по этому куску методом подстановок можно получить букву, соответствующую коду 17. Например, это может быть слово мама (пробел) и слово, начинающееся на м.
1
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 5
30.11.2018, 15:01  [ТС]
Спасибо за ответ!
Видимо число 334 это ошибка.

Прислали новые символы для расшифровки (знаки препинания ни к чему не относятся):

Кликните здесь для просмотра всего текста
81 49 86 49 12 73 92 50 81 50 15 50 62 47 49 15 56 50 51 76 73 33 94 76 15 94 65 81
47 76. 94 76 47 49 81 47 76, 15 76 62 47 76 26 28 16 51 62 76 26 28 76 51 70 58 76 26
73 86 65 84 76 94, 47 76 15 94 65 81 47 76 15 56 50 51 76. 24 16 51 70 62 76 49 26 94
76 86 76 28 94 33 62 49 47 17 65 84 49 15 76 92 15 49 62 47 49 24 86 49 51 70 96 50 51
50. 56 76 31 73 50 47 49 62 47 76 31 76 24 76 73 65 62 50 51 33 86 49 58 33 51 15 56
50 567 0 65 62 47 16 62. 47 65, 47 50 73 76 84 49 43 76 56 70 81 56 76-56 76 73 49
51 50 56 70… 17 24 76 58 49 51 92 94 76 51 51 49 73 84. 76 94 50 12 50 92 58 33 15 70
92 94 50 28 33 47 49 56 49 65 86 49 94 56 76 86 50, 17 73 49 86 84 50 51 15 17 65 92
49 86 49 47 47 76. 86 49 94 56 76 86 76 62 28 16 51 50 62 76 51 76 73 50 17 84 49 47 96
33 47 50 28 50 51 70 12 50 94 76 92 15 94 76 31 76 92 76 12 86 50 15 56 50. 94 76 31 73 50
17 92 76 58 49 51, 76 47 50 81 56 76-56 76 15 76 15 86 49 73 76 56 76 81 49 47 47 76 24
33 15 50 51 50, 62 76 84 49 56 47 76 92 16 26 65 94 50 12.


И задание, в котором сказано для криптоанализа использовать:

1) таблицу частот биграмм русского языка:
часть 1: https://prnt.sc/loxhy4
часть 2: https://prnt.sc/loxi3y
часть 3: https://prnt.sc/loxi78

2) таблицу сопряженности букв русского языка: https://prnt.sc/loxgd9

3) диаграмму частотности букв русского языка: https://prnt.sc/loxh4g

Программа не нужна, необходимо только расшифровать.
0
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,824
30.11.2018, 15:04
Цитата Сообщение от kazikpazik Посмотреть сообщение
Программа не нужна, необходимо только расшифровать.
Тогда тебе не нужно было сюда писать, а остаться в ветке "Криптография". Мне интересна эта тема, если до вечера ждёт, то я посмотрю.

Добавлено через 1 минуту
Вся информация, которую ты дал в виде скриншотов есть на этом сайте: http://statistica.ru/local-por... z-tekstov/
1
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 5
30.11.2018, 20:47  [ТС]
Цитата Сообщение от Nishen Посмотреть сообщение
Тогда тебе не нужно было сюда писать, а остаться в ветке "Криптография". Мне интересна эта тема, если до вечера ждёт, то я посмотрю.
Вопрос срочный, но буду рад помощи в любое время. Большое спасибо!

Добавлено через 5 часов 32 минуты
Нашел решение тут
Тему можно закрывать
0
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,824
02.12.2018, 04:41
Лучший ответ Сообщение было отмечено kazikpazik как решение

Решение

Цитата Сообщение от kazikpazik Посмотреть сообщение
Нашел решение тут
Извини, конечно, но никакого решения там нет. Там есть ответ, но вот способ расшифровки там не указан. Любой заинтересованный человек выведет тебя на чистую воду менее, чем за минуту.
Далее я выкладываю способ расшифровки второго текста.
Итак, нам дан следующий шифр-текст (странно, что Google Chrome подсвечивает слово шифротекст).
Исходный шифротекст
81 49 86 49 12 73 92 50 81 50 15 50 62 47 49 15 56 50 51 76 73 33 94 76 15 94 65 81
47 76. 94 76 47 49 81 47 76, 15 76 62 47 76 26 28 16 51 62 76 26 28 76 51 70 58 76 26
73 86 65 84 76 94, 47 76 15 94 65 81 47 76 15 56 50 51 76. 24 16 51 70 62 76 49 26 94
76 86 76 28 94 33 62 49 47 17 65 84 49 15 76 92 15 49 62 47 49 24 86 49 51 70 96 50 51
50. 56 76 31 73 50 47 49 62 47 76 31 76 24 76 73 65 62 50 51 33 86 49 58 33 51 15 56
50 567 0 65 62 47 16 62. 47 65, 47 50 73 76 84 49 43 76 56 70 81 56 76-56 76 73 49
51 50 56 70… 17 24 76 58 49 51 92 94 76 51 51 49 73 84. 76 94 50 12 50 92 58 33 15 70
92 94 50 28 33 47 49 56 49 65 86 49 94 56 76 86 50, 17 73 49 86 84 50 51 15 17 65 92
49 86 49 47 47 76. 86 49 94 56 76 86 76 62 28 16 51 50 62 76 51 76 73 50 17 84 49 47 96
33 47 50 28 50 51 70 12 50 94 76 92 15 94 76 31 76 92 76 12 86 50 15 56 50. 94 76 31 73 50
17 92 76 58 49 51, 76 47 50 81 56 76-56 76 15 76 15 86 49 73 76 56 76 81 49 47 47 76 24
33 15 50 51 50, 62 76 84 49 56 47 76 92 16 26 65 94 50 12.

Про данный шифр нам известно то, что каждому коду соответствует одна буква русского алфавита, а так же то, что пунктуация в шифротексте сохранена, что является, по сути, ключевой особенностью для расшифровки данного шифротекста. Прежде чем проводить частотный анализ зашифрованного текста, необходимо внимательно его изучить. Первое, что бросается в глаза - следующая последовательность кодов:
Code
1
56 76-56 76
Она говорит нам о том, что в оригинальном тексте имеется некоторая биграмма, которая повторяется через дефис. Это может быть, например, частица "то-то". При дальнейшем изучении шифротекста находим повтор указанной выше последовательности, но так же замечаем, что повторяется не просто 56 76-56 76, а
Code
1
81 56 76-56 76
Данная последовательность может означать либо "кто-то", либо "что-то". Предположим, что данная последовательность кодов означает "что-то", тогда 81 = "ч", 56 = "т", 76 = "о". Проведем частотный анализ шифр-текста.
Код для частотного анализа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <fstream>
#include <iostream>
#include <map>
 
int main() {
 
    std::ifstream iFile("codes_second.txt");
 
    if (!iFile) {
 
        std::cerr << "The program can not to open file with ciphertext\n";
        
        system("PAUSE");
        return 1;
 
    }
 
    char ch;
    std::size_t value;
    std::map<std::size_t, std::size_t> codes;
 
    while (iFile.get(ch)) {
 
        if (::isdigit(ch)) {
 
            iFile.putback(ch);
            iFile >> value;
 
            if (codes.find(value) != codes.end())
                ++codes[value];
            else
                codes.insert({ value, 1 });
 
        }
 
    }
 
    for (const auto &code : codes) {
 
        std::cout << code.first << ": " << code.second << '\n';
 
    }
 
    system("PAUSE");
    return 0;
 
}


Результаты частотного анализа
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
0: 1
12: 5
15: 16
16: 5
17: 6
24: 5
26: 5
28: 6
31: 4
33: 8
43: 1
47: 23
49: 28
50: 29
51: 19
56: 16
58: 5
62: 13
65: 10
70: 7
73: 12
76: 50
81: 8
84: 7
86: 13
92: 10
94: 16
96: 2
567: 1

Как видим, самым часто встречающимся кодом в шифротексте является 76. В русском языке самая часто встречающая буква в текстах, является буква "о", поэтому пока что всё сходится как нельзя лучше: 76 = "о". Попробуем заменить в шифротексте коды буквами, которые мы уже определили, или на чей счёт мы имеем догадки.

Добавлено через 1 минуту
Код замены кодов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <fstream>
#include <iostream>
#include <map>
 
int main() {
 
    std::ifstream iFile("codes_second.txt");
    std::ofstream oFile("result.txt");
 
    if (!iFile) {
 
        std::cerr << "The program can not to open file with ciphertext\n";
        
        system("PAUSE");
        return 1;
 
    }
 
    char ch;
    std::size_t value;
 
    while (iFile.get(ch)) {
 
        if (::isdigit(ch)) {
 
            iFile.putback(ch);
            iFile >> value;
 
            switch (value) {
 
                case 56: oFile << 'т'; break;
                case 76: oFile << 'о'; break;
                case 81: oFile << 'ч'; break;
                default: oFile << value;
 
            }
 
        } else {
 
            oFile << ch;
 
        }
 
    }
 
    system("PAUSE");
    return 0;
 
}

Результатом данного кода будет файл, содержащий следующий код:
Результат замены
ч 49 86 49 12 73 92 50 ч 50 15 50 62 47 49 15 т 50 51 о 73 33 94 о 15 94 65 ч
47 о. 94 о 47 49 ч 47 о, 15 о 62 47 о 26 28 16 51 62 о 26 28 о 51 70 58 о 26
73 86 65 84 о 94, 47 о 15 94 65 ч 47 о 15 т 50 51 о. 24 16 51 70 62 о 49 26 94
о 86 о 28 94 33 62 49 47 17 65 84 49 15 о 92 15 49 62 47 49 24 86 49 51 70 96 50 51
50. т о 31 73 50 47 49 62 47 о 31 о 24 о 73 65 62 50 51 33 86 49 58 33 51 15 т
50 567 0 65 62 47 16 62. 47 65, 47 50 73 о 84 49 43 о т 70 ч т о-т о 73 49
51 50 т 70… 17 24 о 58 49 51 92 94 о 51 51 49 73 84. о 94 50 12 50 92 58 33 15 70
92 94 50 28 33 47 49 т 49 65 86 49 94 т о 86 50, 17 73 49 86 84 50 51 15 17 65 92
49 86 49 47 47 о. 86 49 94 т о 86 о 62 28 16 51 50 62 о 51 о 73 50 17 84 49 47 96
33 47 50 28 50 51 70 12 50 94 о 92 15 94 о 31 о 92 о 12 86 50 15 т 50. 94 о 31 73 50
17 92 о 58 49 51, о 47 50 ч т о-т о 15 о 15 86 49 73 о т о ч 49 47 47 о 24
33 15 50 51 50, 62 о 84 49 т 47 о 92 16 26 65 94 50 12.

Обратим внимание на первые коды шифротекста. Из наших догадок следует, что первой буквой текста является "ч". После нее идет код 49, который повторяется через один код 86. Пытаемся вспомнить как можно больше слов на "ч", при этом это не может быть "что", т.к. "т" = 56, и в искомом слове 2 и 4 буквы должны повторяться. Итак: человек, чубурек, через, чрезмерно, чукча, чело, чучело, через. Слово "через" подходит под шифрокод
Code
1
ч 49 86 49 12
. Предположим, что 49 = "е", 86 = "р", 12 = "з", и произведем замену эти кодов буквами. Получим следующую последовательность:
Результат замены
ч е р е з 73 92 50 ч 50 15 50 62 47 е 15 т 50 51 о 73 33 94 о 15 94 65 ч
47 о. 94 о 47 е ч 47 о, 15 о 62 47 о 26 28 16 51 62 о 26 28 о 51 70 58 о 26
73 р 65 84 о 94, 47 о 15 94 65 ч 47 о 15 т 50 51 о. 24 16 51 70 62 о е 26 94
о р о 28 94 33 62 е 47 17 65 84 е 15 о 92 15 е 62 47 е 24 р е 51 70 96 50 51
50. т о 31 73 50 47 е 62 47 о 31 о 24 о 73 65 62 50 51 33 р е 58 33 51 15 т
50 567 0 65 62 47 16 62. 47 65, 47 50 73 о 84 е 43 о т 70 ч т о-т о 73 е
51 50 т 70… 17 24 о 58 е 51 92 94 о 51 51 е 73 84. о 94 50 з 50 92 58 33 15 70
92 94 50 28 33 47 е т е 65 р е 94 т о р 50, 17 73 е р 84 50 51 15 17 65 92
е р е 47 47 о. р е 94 т о р о 62 28 16 51 50 62 о 51 о 73 50 17 84 е 47 96
33 47 50 28 50 51 70 з 50 94 о 92 15 94 о 31 о 92 о з р 50 15 т 50. 94 о 31 73 50
17 92 о 58 е 51, о 47 50 ч т о-т о 15 о 15 р е 73 о т о ч е 47 47 о 24
33 15 50 51 50, 62 о 84 е т 47 о 92 16 26 65 94 50 з.


Добавлено через 1 минуту
Обратим внимание на 2 следующих куска:
Code
1
73 о т о ч е 47 47 о 24
Code
1
о. 94 о 47 е ч 47 о, 15
В русском языке распространена биграмма, состоящая из одной и тоже буквы - "нн". Предположим, что два подряд идущих кода 47 - это "нн". Тогда во второй последовательности получается
Code
1
о. 94 о н е ч н о, 15
, откуда не трудно догадаться, что 94 может быть буквой "к". Итак, проверим наши догадки: 47 = "н", 94 = "к". Получаем следующий результат:
Результат замены
ч е р е з 73 92 50 ч 50 15 50 62 н е 15 т 50 51 о 73 33 к о 15 к 65 ч
н о. к о н е ч н о, 15 о 62 н о 26 28 16 51 62 о 26 28 о 51 70 58 о 26
73 р 65 84 о к, н о 15 к 65 ч н о 15 т 50 51 о. 24 16 51 70 62 о е 26 к
о р о 28 к 33 62 е н 17 65 84 е 15 о 92 15 е 62 н е 24 р е 51 70 96 50 51
50. т о 31 73 50 н е 62 н о 31 о 24 о 73 65 62 50 51 33 р е 58 33 51 15 т
50 567 0 65 62 н 16 62. н 65, н 50 73 о 84 е 43 о т 70 ч т о-т о 73 е
51 50 т 70… 17 24 о 58 е 51 92 к о 51 51 е 73 84. о к 50 з 50 92 58 33 15 70
92 к 50 28 33 н е т е 65 р е к т о р 50, 17 73 е р 84 50 51 15 17 65 92
е р е н н о. р е к т о р о 62 28 16 51 50 62 о 51 о 73 50 17 84 е н 96
33 н 50 28 50 51 70 з 50 к о 92 15 к о 31 о 92 о з р 50 15 т 50. к о 31 73 50
17 92 о 58 е 51, о н 50 ч т о-т о 15 о 15 р е 73 о т о ч е н н о 24
33 15 50 51 50, 62 о 84 е т н о 92 16 26 65 к 50 з.

Обратим внимание на данную последовательность
Code
1
62. н 65,
В русском языке имеется междометие и частица, которая в некоторых случаях обособляется в начале предложений - "ну". Исходя из этого предположим, что 65 = "у" и внесем догадку в шифрокод:
Результат замены
ч е р е з 73 92 50 ч 50 15 50 62 н е 15 т 50 51 о 73 33 к о 15 к у ч
н о. к о н е ч н о, 15 о 62 н о 26 28 16 51 62 о 26 28 о 51 70 58 о 26
73 р у 84 о к, н о 15 к у ч н о 15 т 50 51 о. 24 16 51 70 62 о е 26 к
о р о 28 к 33 62 е н 17 у 84 е 15 о 92 15 е 62 н е 24 р е 51 70 96 50 51
50. т о 31 73 50 н е 62 н о 31 о 24 о 73 у 62 50 51 33 р е 58 33 51 15 т
50 567 0 у 62 н 16 62. н у, н 50 73 о 84 е 43 о т 70 ч т о-т о 73 е
51 50 т 70… 17 24 о 58 е 51 92 к о 51 51 е 73 84. о к 50 з 50 92 58 33 15 70
92 к 50 28 33 н е т е у р е к т о р 50, 17 73 е р 84 50 51 15 17 у 92
е р е н н о. р е к т о р о 62 28 16 51 50 62 о 51 о 73 50 17 84 е н 96
33 н 50 28 50 51 70 з 50 к о 92 15 к о 31 о 92 о з р 50 15 т 50. к о 31 73 50
17 92 о 58 е 51, о н 50 ч т о-т о 15 о 15 р е 73 о т о ч е н н о 24
33 15 50 51 50, 62 о 84 е т н о 92 16 26 у к 50 з.


Добавлено через 1 минуту
В данном случае инетерес представляют сразу несколько последовательностей
Code
1
к о 15 к у ч н о.
Code
1
о к, н о 15 к у ч н о 15 т 50 51 о.
Очевидно, что для кода 15 напрашивается буква "с". Итак, 15 = "с".
Результат подстановки
ч е р е з 73 92 50 ч 50 c 50 62 н е c т 50 51 о 73 33 к о c к у ч
н о. к о н е ч н о, c о 62 н о 26 28 16 51 62 о 26 28 о 51 70 58 о 26
73 р у 84 о к, н о c к у ч н о c т 50 51 о. 24 16 51 70 62 о е 26 к
о р о 28 к 33 62 е н 17 у 84 е c о 92 c е 62 н е 24 р е 51 70 96 50 51
50. т о 31 73 50 н е 62 н о 31 о 24 о 73 у 62 50 51 33 р е 58 33 51 c т
50 567 0 у 62 н 16 62. н у, н 50 73 о 84 е 43 о т 70 ч т о-т о 73 е
51 50 т 70… 17 24 о 58 е 51 92 к о 51 51 е 73 84. о к 50 з 50 92 58 33 c 70
92 к 50 28 33 н е т е у р е к т о р 50, 17 73 е р 84 50 51 c 17 у 92
е р е н н о. р е к т о р о 62 28 16 51 50 62 о 51 о 73 50 17 84 е н 96
33 н 50 28 50 51 70 з 50 к о 92 c к о 31 о 92 о з р 50 c т 50. к о 31 73 50
17 92 о 58 е 51, о н 50 ч т о-т о c о c р е 73 о т о ч е н н о 24
33 c 50 51 50, 62 о 84 е т н о 92 16 26 у к 50 з.

Code
1
ч т о-т о c о c р е 73 о т о ч е н н о
Делаем вполне очевидный вывод: 73 = "д".
Предположим, что в данной последовательности
Code
1
51, о н 50 ч т о-т о c о c р е д о т о ч е н н о 24 33 c 50 51 50,
код 50 = "и", тогда в данной последовательности
Code
1
ч е р е з д 92 50 ч 50 c 50 62 н е c т 50 51 о д 33
после замены кода 50 получаем
Code
1
ч е р е з д 92 и ч и c и 62 н е c т и 51 о д 33
. Слово "нести" имеется в русском языке, но вот что-то содержащее "ичиси", "чиси" - вряд ли, поэтому предположим, что 50 = "а". Попробуем сделать замену:
Результат подставноки
ч е р е з д 92 а ч а c а 62 н е c т а 51 о д 33 к о c к у ч
н о. к о н е ч н о, c о 62 н о 26 28 16 51 62 о 26 28 о 51 70 58 о 26
д р у 84 о к, н о c к у ч н о c т а 51 о. 24 16 51 70 62 о е 26 к
о р о 28 к 33 62 е н 17 у 84 е c о 92 c е 62 н е 24 р е 51 70 96 а 51
а. т о 31 д а н е 62 н о 31 о 24 о д у 62 а 51 33 р е 58 33 51 c т
а 567 0 у 62 н 16 62. н у, н а д о 84 е 43 о т 70 ч т о-т о д е
51 а т 70… 17 24 о 58 е 51 92 к о 51 51 е д 84. о к а з а 92 58 33 c 70
92 к а 28 33 н е т е у р е к т о р а, 17 д е р 84 а 51 c 17 у 92
е р е н н о. р е к т о р о 62 28 16 51 а 62 о 51 о д а 17 84 е н 96
33 н а 28 а 51 70 з а к о 92 c к о 31 о 92 о з р а c т а. к о 31 д а
17 92 о 58 е 51, о н а ч т о-т о c о c р е д о т о ч е н н о 24
33 c а 51 а, 62 о 84 е т н о 92 16 26 у к а з.

Очевидно, утверждение, что 50 = "и" было ошибочным. 50 = "а".
Далее, с помощью подобного изучения текста и поэтапной замены кодов мы приходим к конечному тексту, который был зашифрован:
Результат
ч е р е з д в а ч а c а м н е c т а л о д и к о c к у ч
н о. к о н е ч н о, c о м н о й б ы л м о й б о л ь ш о й
д р у ж о к, н о c к у ч н о c т а л о. п ы л ь м о е й к
о р о б к и м е н я у ж е c о в c е м н е п р е л ь щ а л
а. т о г д а н е м н о г о п о д у м а л и р е ш и л c т
а 567 ь у м н ы м. н у, н а д о ж е х о т ь ч т о-т о д е
л а т ь… я п о ш е л в к о л л е д ж. о к а з а в ш и c ь
в к а б и н е т е у р е к т о р а, я д е р ж а л c я у в
е р е н н о. р е к т о р о м б ы л а м о л о д а я ж е н щ
и н а б а л ь з а к о в c к о г о в о з р а c т а. к о г д а
я в о ш е л, о н а ч т о-т о c о c р е д о т о ч е н н о п
и c а л а, м о ж е т н о в ы й у к а з.

Очевидным является, что код 567 - ошибка и имелся в виду код 56.

Добавлено через 2 минуты
Итак, для того, чтобы расшифровать данный шифр, не понадобились глубокие знания криптоанализа, анализа текстов или чего-то подобного. Все, чем нужно было вооружиться - вниманием. Внимательно изучить шифротекст, найти в нем "уязвимость" и отталкиваться от неё. Желаю удачи в изучении криптоанализа!

Добавлено через 46 секунд
Конечный код замены (там же можно выписать все соответствия кодов буквам):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <fstream>
#include <iostream>
#include <map>
 
int main() {
 
    std::ifstream iFile("codes_second.txt");
    std::ofstream oFile("result.txt");
 
    if (!iFile) {
 
        std::cerr << "The program can not to open file with ciphertext\n";
        
        system("PAUSE");
        return 1;
 
    }
 
    char ch;
    std::size_t value;
 
    while (iFile.get(ch)) {
 
        if (::isdigit(ch)) {
 
            iFile.putback(ch);
            iFile >> value;
 
            switch (value) {
 
                case 0: oFile << 'ь'; break;
                case 12: oFile << 'з'; break;
                case 15: oFile << 'c'; break;
                case 16: oFile << 'ы'; break;
                case 17: oFile << 'я'; break;
                case 24: oFile << 'п'; break;
                case 26: oFile << 'й'; break;
                case 28: oFile << 'б'; break;
                case 31: oFile << 'г'; break;
                case 33: oFile << 'и'; break;
                case 43: oFile << 'х'; break;
                case 47: oFile << 'н'; break;
                case 49: oFile << 'е'; break;
                case 50: oFile << 'а'; break;
                case 51: oFile << 'л'; break;
                case 56: oFile << 'т'; break;
                case 58: oFile << 'ш'; break;
                case 62: oFile << 'м'; break;
                case 65: oFile << 'у'; break;
                case 70: oFile << 'ь'; break;
                case 73: oFile << 'д'; break;
                case 76: oFile << 'о'; break;
                case 81: oFile << 'ч'; break;
                case 84: oFile << 'ж'; break;
                case 86: oFile << 'р'; break;
                case 92: oFile << 'в'; break;
                case 94: oFile << 'к'; break;
                case 96: oFile << 'щ'; break;
                default: oFile << value;
 
            }
 
        } else {
 
            oFile << ch;
 
        }
 
    }
 
    system("PAUSE");
    return 0;
 
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.12.2018, 04:41
Помогаю со студенческими работами здесь

Написать подпрограмму для расшифровки текста
Написать программу для расшифровки текста. Русский текст содержит зашифрованные слова, каждое из которых записано наоборот. Подпрограмма...

Написать программу для создания и расшифровки стенографического текста
Доброго времени суток уважаемые форумчане , очень нужна ваша помощь , требуется написать программу для создания и расшифровки...

Программа для расшифровки пароля
Напишите программу для расшифровки паролей, которые зашифрованы с помощью шифровальной решетки. Шифрорешетка - это ...

Простой перестановочный шифр составить программу для зашифровки-расшифровки текста
Задание&quot;Выполняется переворот текста и замена каждой нечетной буквы на ее номер&quot;

Программа для шифрования и расшифровки текстовых файлов
программа для шифрования и расшифровки текстовых файлов.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru