LINUX.ORG.RU

Расшифровать текст

 , ,


2

3

У меня есть самопальный скриптик на Perl (Сам писал), который шифрует текст. Принцип простой до безобразия - каждая буква обрабатывается в циферное свое представление, сверху присыпается солью, перцем, возводится в квадрат и прочее. Ну и пишется назад в файл. Расшифровка происходит обратным способом по все той же формуле. Кому интересно, могу подкинуть скриптик. И вот на днях посеял флешку с паролями. (Дурак, балбес). Насколько велика вероятность что ее расшифруют. И, собственно чем? От простого обывателя и такая шифровка поможет, а кто задастся целью разобраться в наборе бессвязных цифр.... В общем, чем это можно сделать?



Последнее исправление: asid (всего исправлений: 1)

а кто задастся целью разобраться в наборе бессвязных цифр

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

Reinar
()
Ответ на: комментарий от edigaryev
#!/usr/bin/perl

#Вариант под виндовс несколько урезаннее, так как им не ползуюсь и
#вообще его нет, но он рабочий
#Вариант под виндовс
if ($^O eq 'MSWin32')
{
	print "Šà¨¯â®£à ä¨ç¥áª ï ®¡à ¡®âª  ä ©« .
	“ª ¦¨â¥ ¯ãâì ª ä ©«ã: ";
	chomp ($put = <STDIN>);
	if ($put !~ /kr$/)
	{
		open (FILE, "$put") || die $! && <>;
		@text_file = <FILE>;
		close (FILE);
		foreach $str (@text_file)
		{
			@el_str = split (//, $str);
			foreach $znak (@el_str)
			{
				#Тут оставьте сво. формулу
				$znak_sch = (ord($znak) -1);
				$znak_sch_pr = $znak_sch." ";
				@el_str_sch = (@el_str_sch, $znak_sch_pr);
			}
			@el_str_sch = (@el_str_sch, "\n");
		}
		unlink $put;
		open (FILE, ">$put.kr") || die $! && <>;
		print FILE @el_str_sch;
		close (FILE);
	} 
	else
	{
		open (FILE, "$put") || die $! && <>;
		@text_file = <FILE>;
		close (FILE);
		foreach $str (@text_file)
		{
			@el_str = split (/\n/, $str);
			foreach $znak (@el_str)
			{
				@znak_sch = split (/ /,$znak);
				foreach $zn (@znak_sch)
				{
					$znak_ras = chr($zn +1);
					@el_str_ras = (@el_str_ras, $znak_ras);
				}
				@el_srt_ras = (@el_str_ras, "\n");
			}
		}
	
		$im_f = substr ($put,0, -3);
		unlink $put;
		open (FILE, ">$im_f") || die $! && <>;
		print FILE @el_str_ras ;
		close (FILE);
	}
} else
{
	print "Криптографическая обработка файла.
Укажите путь к файлу: ";
	chomp ($put = <STDIN>);
	while (1)
	{
		if ($put !~ /kr$/)
		{
			open (FILE, "$put") || die $!;
			@text_file = <FILE>;
			close (FILE);
			foreach $str (@text_file)
			{
				@el_str = split (//, $str);
				foreach $znak (@el_str)
				{
					$znak_sch = ord($znak) - 1);
					$znak_sch_pr = $znak_sch." ";
					@el_str_sch = (@el_str_sch, $znak_sch_pr);
				}
				@el_str_sch = (@el_str_sch, "\n");
			}
			unlink $put;
			open (FILE, ">$put.kr") || die $!;
			print FILE @el_str_sch;
			close (FILE);
			exit;
		} 
		else
		{
			open (FILE, "$put") || die $!;
			@text_file = <FILE>;
			close (FILE);
			foreach $str (@text_file)
			{
				@el_str = split (/\n/, $str);
				foreach $znak (@el_str)
				{
					@znak_sch = split (/ /,$znak);
					foreach $zn (@znak_sch)
					{
						$znak_ras = chr($zn + 1);
						@el_str_ras = (@el_str_ras, $znak_ras);
					}
					@el_srt_ras = (@el_str_ras, "\n");
				}
			}
	
			$im_f = substr ($put,0, -3);
			unlink $put;
			open (FILE, ">$im_f") || die $!;
			print FILE @el_str_ras ;
			close (FILE);
			`gedit $im_f`;		
		}
		$put = $im_f;
		next;
	}
}
asid
() автор топика
Ответ на: комментарий от edigaryev

В общем происходит расшифровка,открывается блокнот с текстом. После его изменения, сохранения и закрытия, скрипт обратно все кодирует...... Формулу подставьте свою, если надо,моя в тайне. Ну там идет n-действий с тем же арифметич принципом:)

asid
() автор топика
Ответ на: комментарий от asid

Расценивай как легкую попытку троллинга.
И да, чего ты хотел узнать этим топиком? С твоими паролями вряд ли что-то случится - даже если на флешке есть файл, мудро названный pass.txt, то подавляющая часть народу дальше попытки открыть его notepad'ом не пойдут. А остальные подумают, что он пошифрован чем-то толковым и смысла нет пытаться.
Вероятность того, что найдётся упоротый упорный, который увидит этот файл и засядет делать криптоанализ - прикинь сам.

Reinar
()
Ответ на: комментарий от Reinar

Уфффффф! Утешил. А вообще такие программы по расшифровке есть или файлы расшифровываются, как бы это выразиться, вручную??? Вооще, как такие вещи происходят, сам принцип какой?

asid
() автор топика

Откуда нашедшему знать алгоритм шифровки и расшифровки? Он может расшифровать твой текст в что-нибудь совсем другое, чем то, что ты имел в виду.

KendovNorok
()
Ответ на: комментарий от KendovNorok

Ну, тогда можно считать абсолютно лююбой алгоритм надежным на 100%. Гм.... Надо взять файл, перевести его в двоичный вид, так же обработать..... Добавить не много для веса лишнего... Тогда пожалуй, можно не только текст, но и изображения, pdf спрятать...

asid
() автор топика

флешку с паролями

Ну если у тебя пароли хорошие (типа malaeJ7iey2yishaevei), то не расшифруют.

В смысле если у тебя в файле и так высокая энтропия и мало поясняющих строк (типа Моё мыло и т.д.) то это нереально.

ziemin ★★
()
Ответ на: комментарий от ziemin

Да я про нее и не знал. К тому же мне просто было интересно написать скрипт самому, а не пользоваться чужими трудами. Кто знает, вдруг автор оставил там где лазейку?!

asid
() автор топика
Ответ на: комментарий от ziemin

И? Когда я его писал, у меня еще в то время винда стояла. Не просто же так она в тексте предусмотрена. А тогда фраза «Open source» мне еще ни о чем не говорила. От линукса глаза были как уличный фонарь. Вот и пользовался тем что сам делал. И вообще виндовс веры нет, никаким ее программам ни открытым, ни закрытым. Вобщем, можно сильно не париться. Всем спасибо.

asid
() автор топика
Ответ на: комментарий от asid

Руками - алгоритм свой, и не думаю, что какая-то волшебная тулза что-то подберёт. В твоём случае (я надеюсь) доступен только 1 шифротекст с паролями. Основной способ атаковать шифротексты (с неизвестным исходным текстом) - частотный анализ.
//Посмотрел скрипт
Страшно слабенький скрипт, и вряд ли кто-то примет твой шифротекст за что-то серьёзное (потому как шифровать надо в бинарном виде и тогда файл будет хотя бы минимально похож на мусор). В данном случае спасает только то, что шифротекст только один. Впрочем, не сильно, поскольку исходное форматирование текста и переносы строк остаются и можно выделить зависимости.

Reinar
()
Ответ на: комментарий от asid

Вот представь, есть какое-то число. Даже зная, что оно представляет из себя по какой-то логике измененные числовые значения букв (допустим, пароль только из букв), можно будет нарасшифровывать из этого числа дофига разных буквенных паролей.

KendovNorok
()
Ответ на: комментарий от asid

Это не шифрование. Это полная хрень.

Формулу подставьте свою, если надо,моя в тайне.

Расшифровывается крайне легко какая-бы хитровывернутая формула там не была.

Все пароли менять в срочном порядке.

anonymous
()
Ответ на: комментарий от anonymous

… Даже если файл называется на pass.txt, а что-нибудь вроде level3.save.

anonymous
()

Насколько велика вероятность что ее расшифруют.

100% для тех, кто хоть немного умеет в криптоанализ.

каждая буква обрабатывается одинаково

У, да у вас там шифр простой замены (только неэффективный), смотрю. Частотного криптоанализа достаточно, а его могут проделать даже простые программисты (да даже в книгах для программистов его дают как задание: http://demin.ws/blog/russian/2009/02/26/etudes-for-programmers/).

quantum-troll ★★★★★
()
Ответ на: комментарий от quantum-troll

Все. Расстроили. Спать не буду. Спасибо)).

asid
() автор топика
Ответ на: комментарий от AITap

Не хотите изучить модули Encode, Path::Class, прагму encoding? Дублирование кода - плохо.

Хочу, но как то руки не доходят, ла и времени нет особо

asid
() автор топика
Ответ на: комментарий от quantum-troll

Да? А выглядит как поная абракадара. Только в толк все равно не могу взять, это ж вариантов можно подобрать бесчисленное множество, как можно утверждать что какой то верен на 100%??

asid
() автор топика

По единичному примеру без алгоритма расшифровать пароли нельзя. Спи спокойно. Ну или поменяй, лишним не будет в любом случае.

Legioner ★★★★★
()
Ответ на: комментарий от asid

Смотри: у тебя каждая буква обрабатывается f():
XYZ → f(X)f(Y)f(Z)
Но так как буквы обрабатываются независимо, то если X=Z:
XYX → f(X)f(Y)f(Z)
Разные буквы встречаются с разной частотой (http://security-zone.ru/0000000020/), так что если в тексте есть хоть какие-то закономерности, можно легко восстановить сообщение из шифротекста.
Кроме того, по нескольким буквам можно даже угадать f(), если она достаточно проста.

quantum-troll ★★★★★
()
Ответ на: комментарий от quantum-troll

Смотри: у тебя каждая буква обрабатывается f():

Угу. Но, смотря на скрипт (на его простоту), мне кажется у ТС конечный результат будет = изначальный_ascii_код * X.

Считывание/запись построчные, и даже chomp на строках не делается, поэтому X ну слишком легко находится только по анализу переводов строк.

ТС. Вот тебе следующий уровень «шифрования» под названием — Пароль. Сдвигай/меняй символы по паролю.

Далее — ключи. Например сдвиг ключа по паролю, а текст файла по сдвинутому ключу.

И уже потом, чтение всего и вся по криптографии. Но главное не увлекайся, может возникнуть паранойя :). Помни что всё уже изучено и сделано за нас — A-ES, B-lowfish, C-RYPTON, D-и-так-далее... :)

anonymous
()
Ответ на: комментарий от anonymous

Спасибо. Не увлекаюсь. Теперь и gpg пользуюсь и truecrypt. Кстати, как понимать аббревиатуру «TC»?

asid
() автор топика
Ответ на: комментарий от asid

Не увлекаюсь.

Ну не скажи :) . Есть в тебе что-то такое. Почитай, посмотри.

Кстати, как понимать аббревиатуру «TC»?

TC — Topic Starter (в данном случае, это ты). Если задумаешься задержаться на этом форуме, то привыкай. Часто, многие (но не эта) непонятные аббревиатуры хорошо гуглятся.

Теперь и gpg пользуюсь и truecrypt.

truecrypt — это правильно. Самый простой способ защитить данные если совсем не хочется ничего изучать. Но вот упомянутый выше keepassx — как раз для твоих целей был сделан. Плюс у него, в отличии от truecrypt, более чем свободная лицензия (удовлетворяющая даже критериям Debian).

anonymous
()

Еще один, путающий шифрование с обфускацией...

segfault ★★★★★
()
Ответ на: комментарий от Reinar

Вероятность того, что найдётся упоротый упорный, который увидит этот файл и засядет делать

зато есть вероятность чуть побольше, что нашедший выложит шифротекст в интернеты и попросит расшифровать :)

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от Harald

...И вполне возможно что забредёт сюда. И увидит твоё поделие...

Вообщем, меняй пароли, и спи спокойно.

anonymous
()
Ответ на: комментарий от anonymous

действительно, почему бы просто не сменить пароли?

вот допустим, потерял ты ключи от квартиры. можно конечно забить и решив что адрес то на ключах не указан, а можно и замок в двери поменять.

slash
()
Ответ на: комментарий от slash

Да ладно уж. Должен же нашедший получить хоть какое-то вознаграждение за находку.

KivApple ★★★★★
()

В общем, чем это можно сделать?

в следующий раз шифруй простым симметричным алгоритмом.

dikiy ★★☆☆☆
()

могу подкинуть скриптик

Могу подкинуть man gpg

Насколько велика вероятность что ее расшифруют

Она пренебрежимо мала.

посеял флешку с паролями

Поменяй пароли.

shahid ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.