Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Ваши программы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.06.2010, 11:37
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию PhoeniX Image Crypt

Описание:
Программа для шифрования Н-ных данных (чисел, текста, даже файлов) в bitmap-изображения. Изображения портятся не сильно, опытным путём доказано, что при преобразовании изображений с зашифрованными данными в JPEG (через фотожабу, с качеством 100), и обратно, данные не теряются.

Скриншоты:


Сама программа (текущая версия: 1.3b):
dump.ru
narod.ru

Возможные ошибки:
-Невозможность шифрации чисел более определённого значения.
-Неверные данные и/или Access Violation при дешифрации с неправильным паролем.
-Невозможность зашифровать текст длиной более 32767 символов.

Планы на следующую версию (1.4b):
-Шифровка чисел любого размера (ограничение только по длине).
-Минимальная проверка данных для исключения AV.
-Сообщение, при "пересечении" границы длины.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 21.06.2010 в 12:25.
Ответить с цитированием
  #2  
Старый 21.06.2010, 12:34
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Большая проблема таких вот программ, что в описании пишут "шифрование данных", но вот каким алгоритмом?)
Инновационным XOR-ом?)
Ответить с цитированием
  #3  
Старый 21.06.2010, 12:36
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

А ты попробуй этот ксор для начала разгадать)
И, более того, сначала вытащить данные из изображения для расшифровки...
К тому же, я немного модифицировал процедуру генерации xor-значения. И в одной из следующих версий порадую собственным алгоритмом.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #4  
Старый 21.06.2010, 12:51
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Цитата:
А ты попробуй этот ксор для начала разгадать)
Ну это не так сложно как кажется, если пройтись через отладчик...OllyDbg например...
Код:
И, более того, сначала вытащить данные из изображения для расшифровки...
И данные можно вытащить, узнав алгоритм записи в катринку...
Если уж шифровать, то серьезным алгоритмом...А данные чаще записывют в последний бит байта цвета...
На мой взгляд суть твоей программы не столько в защите данных сколько в сокрытии самого факта хранения данных...
Например, кто догадается искать бухгалтерские отчеты в папке D:\Фото\Пикник в лесу 9 мая...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #5  
Старый 21.06.2010, 12:57
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Ну это не так сложно как кажется, если пройтись через отладчик...OllyDbg например...
Не так сложно... А если пароль 20-значный, маска ппц какая будет. Попробуешь её получить, не?
Цитата:
суть программы в сокрытии факта хранения данных...
Ну, это да... но и минимальное шифрование не помешает.
А данные я пишу не так уж просто
Цитата:
в последний бит байта цвета
а более запутанно...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 21.06.2010 в 13:00.
Ответить с цитированием
  #6  
Старый 21.06.2010, 13:04
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

XOR это защита от дураков, но если умело его использовать, то можно хорошо спрятать...
Цитата:
В свете последних рассуждений приходим к мысли, что напрямую кодировать простой текст нельзя. Во-первых, число, представляющее пробел, будет по-прежнему разделять слова и в шифротекте. Выделив это часто встречающееся одно и то же число, пользователь догадается, что это закодированный пробел. Во-вторых, короткие часто встречающиеся предлоги и союзы также помогут взломщику в определении ключа. Поэтому самым эффективным способом является использование длинного ключа, покрывающего несколько букв, а лучше равного по длине самому сообщению. Так, если мы кодируем достаточно длинное сообщение (не менее 5-10 предложений) с помощью случайного ключа такой же длины, то такое сообщение очень сложно расшифровать. Еще более высоких результатов по надежности можно достичь, если перед шифрованием произвести, например, сжатие текста каким-либо архиватором. Плюс к тому же, если сообщение имеет малую длину, можно добавить в начало и конец сообщения случайные последовательности символов.
http://axofiber.no-ip.org/inside/xor.ciphering.htm
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #7  
Старый 21.06.2010, 13:11
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Защита от дураков... Окей. Ты, я вижу, не дурак.
Своей программой я зашифровал в изображение номер ICQ (семизнак) и пароль от него. Пароль к расшифровке довольно длинный. Расшифруешь - номерок твой.
Остальные, кто хочет, тоже могут участвовать в лотерее
Вложения
Тип файла: rar ICQ.rar (6.1 Кбайт, 8 просмотров)
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 21.06.2010 в 13:16.
Ответить с цитированием
  #8  
Старый 21.06.2010, 13:37
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Люди новые, а проблемы старые

Принцип Керкгофа хотя бы почитал.

Другими словами - если хочешь чтобы на твою программу посмотрели, криптонули что-то ради прикола и т.д. - то и так сойдет, если же хочешь чтобы в серъез её использовали - то инновационные алгоритмы в виде Ксор лучше не использовать.

П.С.: напиши формулу по которой ты шифруешь, и сразу можно будет сказать о её слабости.

Последний раз редактировалось Konrad, 21.06.2010 в 13:41.
Ответить с цитированием
  #9  
Старый 21.06.2010, 13:41
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Нашёл, прочитал. И что их этого?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 21.06.2010, 13:55
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Код:
var
  i,x,y,NP:integer;
  b:integer;
  Hash: int64;
  HashS,s:string;
............................

s:=edPassword.Text;
Hash:=0;

    for i:=1 to Length(s) do
      Hash:=Hash+ord(s[i])*i;

    HashS:=BaseConvert(IntToStr(Hash),10,2);
    if HashS='' then HashS:='0';

    while Length(HashS)<Length(data) do HashS:=HashS+HashS;

    for i:=0 to Length(data)-1 do 
    begin
      N:=(HashS[i+1]='1');
      Data[i]:=Data[i] xor N;
    end;

Судя с этого куска кода
ключ преобразовывается в число инт64, но

Max значение int64 = 9223372036854775807 (19 цифр)

таким образом при любом пароле значение Hash будет в пределах от 0 до макс значения.
И длиной не более 19 чисел.


Никакого даже намека на стойкость тут нету...
Ответить с цитированием
  #11  
Старый 21.06.2010, 13:57
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Проблем-с: я немного модифицировал этот алгоритм в текущей версии. Тот, что я выкладывал, уже не актуален. Теперь маска может быть любой длины.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #12  
Старый 21.06.2010, 19:19
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от Konrad
напиши формулу по которой ты шифруешь, и сразу можно будет сказать о её слабости.
А ключ от квартиры, где [s]девки[/s] деньги лежат, тебе не нужен?
ЗЫ: Э, админ, сделай тег "зачёркнутый текст"!
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #13  
Старый 21.06.2010, 20:29
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Развитие темы напоминает нечто а-ля "Шифр Infobos" )))
Ответить с цитированием
  #14  
Старый 21.06.2010, 20:38
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Нет, просто некто NIch утверждает, что ксор ОЧЕНЬ легко вскрываем... вот мы и проверим, насколько, на опыте
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #15  
Старый 22.06.2010, 12:18
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
Нет, просто некто NIch утверждает, что ксор ОЧЕНЬ легко вскрываем... вот мы и проверим, насколько, на опыте
К сожалению, уважаемый DJ PhoeniX проверять стойкость xor вы будете без моего участия. Т.к. если бы ты внимательно прочел мой пост №6, ты бы увидел выделенный мной фрагмент
Цитата:
самым эффективным способом является использование длинного ключа
Этим я хотел сказать, что стойкость ксор напрямую зависит от длины ключа, а не от алгоритма шифрования.
Докопал до этого (может тебе это что то скажет):
0 --> 48 --> 110000 (двоичное отображение 48)
1 --> 49 --> 110001 (двоичное отображение 49)
...
9 --> 57 --> 111001
...
11 --> 49 49 --> 100110 1010101 (двоичное отображение 49 и 49)
12 --> 49 50 --> 100110 1010110
...
99 --> 57 57 --> 111001 111001
...
Первые числа это введенный пароль...затем каждая цифра раскладывается от 47 до 57 (почему-то)...из этих чисел 47...57 получаются двоичные коды...вот ими и произходится XOR...
DJ PhoeniX, поправь меня если я не прав...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter