Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Вниз

Кто-то раздолбит этот шифровщик?   Найти похожие ветки 

 
AL2002   (2002-08-09 23:09) [0]

Я не знаю, писать эту программу или нет, но я уверен, что расшифровать зашифрованные ею файлы можно лишь путём перебора паролей. Если хотите попробовать свои силы, качайте отсюда:
http://www.adelavida.com.ua/Downloads/DeltaCrypt/DeltaCrypt.zip

Нужно открыть файл (желательно небольшой), ввести пароль и нажать кнопку Crypt. Получится тот же файл, только с расширением adc. Там есть зашифрованный файл "TryToDecriptThisFile.txt.adc".
В нём анекдот.
Расскажите, что за анекдот (если взломаете, конечно).


 
AL2002   (2002-08-10 00:57) [1]

Наверно, спят мастера. Пойду и я. Нехрен в монитор пялиться.


 
Sir Alex   (2002-08-10 01:32) [2]

2 AL2002
По моему, тут сидят мастера Дельфи, а не мастера "Крякеры". Хотя многие могут и использовать свои силы на взлом программ. Тут главное $. Чем их больше -> тем больше вероятность взлома твоей "крипталки".


 
VEG   (2002-08-10 09:10) [3]

А так это НИКОМУ не надо!


 
AL2002   (2002-08-12 10:04) [4]

Есть люди, которые это делают ради удовольствия.
Это я к ним с этой веткой.
Но, думаю, эту никто не ломанёт.


 
McSimm   (2002-08-12 17:27) [5]

Посмотрел из любопытства. Тратить время на взлом не хочу, однако могу сказать - взломать легко.
Даже поверхностое знакомство показало очень низкую криптостойкость алгоритма.
Это значит что простой перебор паролей имеет много шансов.

Например прилагаемый тестовый пример с паролем "ABC" корректно раскодируется 35ю двухбуквенными паролями (трехбуквенных - немеряно).

Разумеется при достаточно большом ключе у перебора меньше шансов. Однако простой XOR с большим ключом подобрать несравнимо сложнее.


 
AL2002   (2002-08-12 17:41) [6]

>простой перебор паролей имеет много шансов
Это будет единственный способ взлома.
Будет несколько (наверное 10) полей для паролей. Чем больше паролей, тем выше стойкость.

>Например прилагаемый тестовый пример с паролем "ABC" корректно
>раскодируется 35ю двухбуквенными паролями (трехбуквенных -
>немеряно).
Верно. Я планирую сделать так, чтобы шифровался сначала пароль, а уже потом файлы.
Надо будет решить эту слабость. Может, кто и заметил – подойдёт как ABC, так и BCA и ACB и т.д.

McSimm, Thanxx.
Спасибо, что нашёл время посмотреть, а главное, отclickнуться.


 
McSimm   (2002-08-12 17:56) [7]

Все же не рекомендую использовать этот алгоритм.

Как я и предполагал перебор паролей дал результаты. И дополнительные навороты мало изменят ситуацию.

Поиск пароля занял в общем 20 минут - из них 19 минут на написание программы, остальное - поиск пароля.

Добавлю что я так же пробовал шифровать еще более длинными ключами - тоже ломается быстро.

А в прилагаемом тексте -
СпидИнфо (отрывки из писем).
- После того, как.......
.....
- Многие считают, что я....


 
AL2002   (2002-08-12 18:03) [8]

>McSimm
Вот видите, всё в перебор упирается. Мне нужно только сделать, чтобы рабочим был только один пароль, без перетасовок символов.
Т.е. чтобы ABC и BCA не имели ничего общего.


 
Delirium   (2002-08-12 18:06) [9]

Про такие шифровалки один кино-герой сказал: "...Гигобайт оперативной памяти и все дела..." - имею ввиду следущее, один и тот-же текст одним и тем-же паролем шифруется в одну и ту-же комбинацию символов. Нет вариативности - нет проблем, мощная машина + словарь паролей, вот и всё собственно. Статистика - жутко скучная, но работающая штука. Подумай над более изящным алгоритмом.


 
AL2002   (2002-08-12 18:17) [10]

>Delirium
Не, ну можно, конечно, чтобы учитывались еще ФИО пользователя и куча лабуды. Можно ваще сделать, если на другой машине, чтоб она ещё и спрашивала: вы Вася? Вася. А вот и нет.
Но чтобы не было одной и той же комбинации символов, нужно же тогда ещё чего-то учитывать? От чего-то отталкиваться?


 
McSimm   (2002-08-12 18:18) [11]

>Вот видите, всё в перебор упирается
Нет, просто в данной ситуации это более простой путь.

>Т.е. чтобы ABC и BCA не имели ничего общего.
В данном случае ситуация гораздо хуже. Подходящие пароли почти равномерно распределены по пространству перебора и не связаны с перетасовкой символов.

Например, найденный мной пароль - "tLGeAi2N1SNEB xW5TCEl3QHx"
Думаю что он совершенно не похож на оригинал.

Кстати. Есть всеми нелюбимый алгоритм XOR. Незаслужено.
Его реализацию можно посмотреть в библиотеке RX.
Скажу, что открыть текст закодированный XOR с таким ключом как выше мне перебором не удалось бы.

Кроме того есть большое количество "промышленных" алгоритмов. С очень высокой криптостойкостью. За эти я и не брался бы.
Зачем изобретать новый?

>Delirium © (12.08.02 18:06)
Словарь не понадобился :)


 
AL2002   (2002-08-12 18:18) [12]

Но! Всё таки в любом случае нужен перебор паролей ? Ведь так?


 
AL2002   (2002-08-12 18:22) [13]

2McSimm
>Например, найденный мной пароль - "tLGeAi2N1SNEB xW5TCEl3QHx"
>Думаю что он совершенно не похож на оригинал.
Это только глядя на эти буквы не похож. Просуммируйте кода того и другого и всё станет на свои места.


 
ZrenBy   (2002-08-12 18:25) [14]

>Delirium
У нас в конторе с 98 года используется самопальная шифровалка.
Один и тот-же текст одним и тем-же паролем шифруется не только
в разную комбинацию символов, но и размер получившегося файла
- разный.
Расшифровываются всегда корректно.
Может кто встречал такие ?


 
AL2002   (2002-08-12 18:35) [15]

>ZrenBy
А это интересно. Внедрю.


 
RV   (2002-08-12 18:35) [16]

ZrenBy © (12.08.02 18:25)
>Delirium
У нас в конторе с 98 года используется самопальная шифровалка.
Один и тот-же текст одним и тем-же паролем шифруется не только
в разную комбинацию символов, но и размер получившегося файла
- разный.


сколько вариантов выхода?


 
ZrenBy   (2002-08-12 18:39) [17]

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


 
Delirium   (2002-08-12 18:54) [18]

Я тут набросал тупой проект, результат работы которого - на порядок сложнее разобрать, чем у AL2002. Кому нужны исходники - дайте мыло...


 
RV   (2002-08-12 18:56) [19]

исходники?
мне


 
AL2002   (2002-08-12 19:09) [20]

>Delirium
adelavida2002@mail.ru


 
DenKop   (2002-08-12 22:36) [21]

Мой совет, не ломать голову, если нужен стойкий алгоритм. Юзай RSA с 1024 битным ключом. Во всём мире ещё нашлось умельцев разломать такую защиту. Читал на официальном сайте, что взлом данного ключа платят не одну штуку баков.


 
Nikolay   (2002-08-12 23:50) [22]


> расшифровать зашифрованные ею файлы можно лишь путём перебора
> паролей.


если это можно то зачем пытаться получить доступ по другому?)))


 
AL2002   (2002-08-13 00:02) [23]

>если это можно то зачем пытаться получить доступ по другому?)))
Пару десятков лет подбирать пароль – это способ?



 
ZZ   (2002-08-13 00:07) [24]

AL2002 ©
Сколько, сколько??


 
Nikolay   (2002-08-13 00:10) [25]


> Пару десятков лет подбирать пароль – это способ?

???
хм... Возник вопрос: вы для себя пишете эту криптографию или это работа?

1. если для себя, то можно ввести десятка два полей и тем самым более менее обезопасить себя от перебора. но имхо это не выход

2. если по работе. то может не надо два десятка полей? это будет напрягать сотрудников которые вынуждены будут криптовать(хотя это не совсем мое дело) а воспользоваться
> Юзай RSA с 1024 битным ключом.



 
AL2002   (2002-08-13 00:16) [26]

>???
Сколько вариантов 10 символов A-Z (например). Если не вру, то 10^26. Разве этого мало? Плюс возможность использования нескольких паролей.


 
ZZ   (2002-08-13 00:21) [27]

А не наоборот ли 26^10 (совсем немного)


 
Nikolay   (2002-08-13 00:22) [28]


> Если не вру, то 10^26. Разве этого мало?

Да нет хватит. Просто при желании можно и их подобрать. Но:
> Про такие шифровалки один кино-герой сказал: "...Гигобайт
> оперативной памяти и все дела..."

Это есть правда :(


 
AL2002   (2002-08-13 00:26) [29]

>Это есть правда :(
Но это как минимум. Должно быть где-то 200^50^10
при максимальной защите.



 
Nikolay   (2002-08-13 00:31) [30]


> Но это как минимум. Должно быть где-то 200^50^10

хм...вот вот это подрузамевает несколько полей. или не так? я не совем понял. можно расшифровать состовляющие?


 
AL2002   (2002-08-13 00:38) [31]

>я не совем понял. можно расшифровать состовляющие?
Я тоже не совсем. Имеется в виду какой-то отдельный пароль? Нет. Гарантированно. Только все вместе.


 
Nikolay   (2002-08-13 00:43) [32]

200^50^10 что есть что?


 
AL2002   (2002-08-13 00:48) [33]

>200^50^10 что есть что?
Количество вариантов перебора.



 
Kaban   (2002-08-13 10:09) [34]

Очевидно, что человек эти цифры взял от балды


 
McSimm   (2002-08-13 10:27) [35]

>Сколько вариантов 10 символов A-Z (например). Если не вру, то 10^26. Разве этого мало? Плюс возможность использования нескольких паролей.

Возможно это твое рассуждение и было бы верным. Но при условии достаточной криптостойкости алгоритма.

Повторюсь,- исследуемый алгоритм страдает полным ее отсутствием.

Обрати внимание, я вскрыл твой текст при помощи ключа в 25 символов из множества [A-Z,a-z," ",0-9]. Попробуй посчитать. А ключ нашелся меньше чем за минуту. И нашелся бы за малое время при длине 200 символов на множестве #0-#255.(запомнишь такой ключ?)

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

?А какое практическое применение может быть у алгоритма шифрования, если для (де)шифрования необходимо иметь 10 ключей, да и еще немалых размеров. Если любой архиватор может зашифровать с бОльшей надежностью ключом вроде "12345A"?



 
AL2002   (2002-08-13 10:44) [36]

>Обрати внимание, я вскрыл твой текст при помощи ключа в 25
>символов из множества [A-Z,a-z," ",0-9]. Попробуй посчитать. А
>ключ нашелся меньше чем за минуту. И нашелся бы за малое время
>при длине 200 символов на множестве #0-#255.(запомнишь такой
>ключ?)
В этом случае – да. Но я уже могу сделать так, чтобы все ключи были уникальными. Но тут вылазит другая проблема: чем длиннее пароль, тем дольше будет процесс шифровки. Не в прогрессии, конечно, но будет заметно. Это не страшно?


 
Delirium   (2002-08-13 12:16) [37]

Немного усовершенствовал вчерашний вариант:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
Edit1: TEdit;
Memo3: TMemo;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

var A:array[0..9, 0..9, 0..9, 0..9] of byte;

procedure InitMatrix;
var i,j,k,n,c:integer;
begin
// Заполняю матрицу символами
c:=0;
for i:=0 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
for n:=0 to 9 do
begin
A[i,j,k,n]:=c;
Inc(c);
if c>255 then c:=0;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
InitMatrix;
end;

procedure Disturb(S:String);
var i,j,k,n,o:integer;
tmp:byte;
l:String;
begin
l:="";
for i:=1 to Length(S) do l:=l+IntToStr(Ord(S[i]));
for o:=1 to Length(l) do
for i:=0 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
for n:=0 to 9 do
case StrToInt(l[o]) of
0:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[j,i,k,n];
A[j,i,k,n]:=tmp;
end;
1:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[j,k,i,n];
A[j,k,i,n]:=tmp;
end;
2:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[j,k,n,i];
A[j,k,n,i]:=tmp;
end;
3:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[k,j,i,n];
A[k,j,i,n]:=tmp;
end;
4:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[k,j,n,i];
A[k,j,n,i]:=tmp;
end;
5:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[k,n,j,i];
A[k,n,j,i]:=tmp;
end;
6:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[k,n,i,j];
A[k,n,i,j]:=tmp;
end;
7:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[n,k,j,i];
A[n,k,j,i]:=tmp;
end;
8:begin
tmp:=A[i,j,k,n];
A[i,j,k,n]:=A[n,k,j,i];
A[n,k,j,i]:=tmp;
end;
end;
end;

function Crypt(C:Char):String;
var i,j,k,n:integer;
begin
repeat
i:=Random(10);
j:=Random(10);
k:=Random(10);
n:=Random(10);
until (A[i,j,k,n]=Ord(C));
Result:=IntToStr(i)+IntToStr(j)+IntToStr(k)+IntToStr(n);
end;

function UnCrypt(S:String):Char;
var i,j,k,n:integer;
begin
i:=StrToInt(S[1]);
j:=StrToInt(S[2]);
k:=StrToInt(S[3]);
n:=StrToInt(S[4]);
Result:=Chr(A[i,j,k,n]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var S,S2:String;
i:integer;
begin
// Инициализация матрицы
InitMatrix;
// Перестановка в соответствии с паролем
Disturb(Edit1.Text);
//Шифрование
S:=Memo1.Text;
S2:="";
for i:=1 to Length(S) do
begin
S2:=S2+Crypt(S[i]);
end;
Memo2.Text:=S2;
end;

procedure TForm1.Button2Click(Sender: TObject);
var S2,S3:String;
begin
// Инициализация матрицы
InitMatrix;
// Перестановка в соответствии с паролем
Disturb(Edit1.Text);
//Шифрование
S2:=Memo2.Text;
S3:="";
while Length(S2)>0 do
begin
S3:=S3+UnCrypt(Copy(S2,1,4));
Delete(S2,1,4);
end;
Memo3.Text:=S3;
end;

end.


 
Delirium   (2002-08-13 13:19) [38]

> AL2002

Обрати внимание, каждая буква шифруется, при одном и том же пароле, в среднем 50-ю вариантами :)


 
AL2002   (2002-08-13 14:00) [39]

>Обрати внимание, каждая буква шифруется, при одном и том же
>пароле, в среднем 50-ю вариантами :)
А тормозить не будет?


 
Delirium   (2002-08-13 14:04) [40]

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



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.008 c
1-26963
dolea
2002-08-29 13:30
2002.09.09
ПРОВЕРКА НАЛИЧИЯ ДИСКЕТЫ В ДИСКОВОДЕ


3-26857
Макс 2
2002-08-19 11:41
2002.09.09
Перевод символьной строки в string


1-27105
IL-2
2002-08-28 21:34
2002.09.09
Sound


1-27011
Yaro
2002-08-30 03:37
2002.09.09
Выравнивание в ячейке StringGrid a


14-27179
MEgor
2002-08-13 06:58
2002.09.09
Вращение трехмерной фигуры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский