1 / 1 / 0
Регистрация: 27.11.2017
Сообщений: 134
1

Имеется шифрованный текст

07.10.2019, 20:36. Показов 1594. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется шифрованный текст:
ТБВРЭФРАВЭЛЕЪАШЯВЮУАРДШЗХБЪШЕБШБВХЬРЕШБЯЮЫМЧГХВБПЮФШЭШВЮВЦХЪЫОЗШФЫПИШДАЮТРЭШПШФЫ ПАРБИШДАЮТЪШ , полученный с помощью шифра Цезаря. Величина используемого при этом сдвига неизвестна. Расшифруйте сообщение.

Прошу помочь хоть чем нибудь. Желательно в delphi, но можно и c++.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2019, 20:36
Ответы с готовыми решениями:

Как отличить шифрованный текст от нешифрованного?
Есть много файлов. Все они содержат китайский текст (+цифры, символы), но некоторые из них...

шифрованный инет
Скачал с инета звуковой драйвер. После его установки перестали открываться страницы веб-сайтов ни в...

Шифрованный канал связи
Доброго времени суток !!!! Я создаю среду для передачи документов через сеть интернет между...

Шифрованный пароль из shell в perl
Здравствуйте Есть shell скрипт, который запускает следующую команду: perl myscript.pl -u admin -p...

6
Модератор
9254 / 6032 / 2379
Регистрация: 21.01.2014
Сообщений: 25,784
Записей в блоге: 3
08.10.2019, 08:16 2
Лучший ответ Сообщение было отмечено Vov4ik_ как решение

Решение

Банальный тупой перебор... Давите на кнопку до тех пор, пока во втором поле не увидите что-то осмысленное, если в первом поле действительно простой шифр Цезаря, а не что-то более сложное или вообще не произвольный набор букв... Но уж частотный анализ - это на любителя заморочек...
Максимальное количество шагов - 31 (число букв русского алфавита без Ё - 1), 32-й шаг вернет ту же зашифрованную строку.
Delphi
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
unit Unit3;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
  TForm3 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private { Private declarations }
    Step: integer;
    Text: String;
  public
    { Public declarations }
  end;
 
var
  Form3: TForm3;
 
implementation
 
{$R *.dfm}
 
function Shift(aText: String): String;
const Alph: String = 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
var i, k: integer;
begin
  result := '';
  for i := 1 to Length(aText) do
    begin
      k := Pos(aText[i], Alph) - 1;
      if k = 0 then result := result + Alph[Length(Alph)] else result := result + Alph[k];
    end;
end;
 
procedure TForm3.Button1Click(Sender: TObject);
begin
  if Step = 33 then Exit;
  Label1.Caption := 'Сдвиг на ' + IntToStr(Step);
  if Step = 1 then Text := Edit1.Text;
  Text := Shift(Text);
  Edit2.Text := Text;
  inc(Step);
end;
 
procedure TForm3.FormCreate(Sender: TObject);
begin
  Step := 1;
  Text := Edit1.Text;
end;
 
end.
Миниатюры
Имеется шифрованный текст  
2
krapotkin
08.10.2019, 13:46
  #3

Не по теме:

просто интересно, насколько повышается стойкость, если сделать циклический сдвиг после каждой буквы на N ?

0
mr-Crocodile
08.10.2019, 14:24
  #4

Не по теме:

Цитата Сообщение от krapotkin Посмотреть сообщение
просто интересно, насколько повышается стойкость, если сделать циклический сдвиг после каждой буквы на N ?
ни на сколько. Вы же тот же Цезарь и получите.
стойкость легко повысить, если каждую букву сдвигать на свою величину, согласно ключа (см. Шифр Цезаря с ключевым словом)

0
Модератор
9254 / 6032 / 2379
Регистрация: 21.01.2014
Сообщений: 25,784
Записей в блоге: 3
08.10.2019, 16:28 5

Не по теме:

Я делал в свое время сдвиг четных символов на N влево, нечетных - на М вправо... Ну и алфавит был расширенный: РУС+ЛАТ+цифры и вся остальная пунктуационная нечисть... - смешно получалось...



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от mr-Crocodile Посмотреть сообщение
если каждую букву сдвигать на свою величину, согласно ключа
но это уже не Цезарь будет, а как бы не Вижинер (но это не точно...)

1
mr-Crocodile
08.10.2019, 17:03
  #6

Не по теме:

Цитата Сообщение от D1973 Посмотреть сообщение
но это уже не Цезарь будет, а как бы не Вижинер (но это не точно...)
точно, точно.
вики - шифр Виженера
для ручной шифровки/расшифровки там используется таблица
Квадрат Виженера, или таблица Виженера, также известная как tabula recta, может быть использована для шифрования и расшифровывания.
но суть в том, что
В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять чаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Для ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание.

0
1 / 1 / 0
Регистрация: 27.11.2017
Сообщений: 134
08.10.2019, 18:10  [ТС] 7
Спасибо большое! Благодарен!
0
08.10.2019, 18:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2019, 18:10
Помогаю со студенческими работами здесь

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

Дана строка, в которой имеется текст в скобках. Удалить часть текста, заключенного в скобки
Дана строка, в которой имеется текст в скобках. Написать программу удаления части текста,...

Как достать файлы с шифрованный раздела
Перестал давать зайти в систему mint 17.2 Выбрасывает к паролю, Перепробовал все варианты какие...

Шифрованный хомяк и своп - что делать?
Каждый раз при запуске убунту 12.04 пишет следующее: "Дисковод /dev/mapper/crypswap1 не готов...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru