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

Вниз

Шифрование/дешифрование файлов   Найти похожие ветки 

 
kash_d   (2007-09-15 12:05) [0]

Добрый день! проблема у меня такая: есть файл зашифрованый методом XOR известно что файл зашифрован по 4 байта и ключь тоже 4 байта. как мне читать файл кусками по 4 байта + это должно работать быстро? ну и моеж у кого есть соображения как остановить процесс перебора(в смысле проверить что ключь найден и текст расшифрован)
заранее спасибо!


 
S@shka ©   (2007-09-15 15:20) [1]

А ты что знаешь хотя бы косок исходного текста? Чтобы хоть как то определить правильность ключа.


 
S@shka ©   (2007-09-15 15:25) [2]

Что касается чтения...
var
Buf : Integer;
F : File of Inteter;
begin

 assignfile (F,"cripto.file");
 Reset (F);
 while not Eof (F) do
 begin
   read (F,Buf);
   ...
 end;

4 байта - это же Integer;  - поэтому можно так
или
Buf : array [1..4] of Char;
F : File of Char; // of Byte
 ...
Reset (F,4);
..
read (F,Buf[1]);


 
Anatoly Podgoretsky ©   (2007-09-15 15:27) [3]


> А ты что знаешь хотя бы косок исходного текста? Чтобы хоть
> как то определить правильность ключа.

4 миллиарда комбинаций и проверка глазами или ИИ


 
Инс ©   (2007-09-15 15:42) [4]


> 4 миллиарда комбинаций и проверка глазами или ИИ

Если это просто текст (а тем более состоящий только из английских символов) - то гораздо проще.


 
S@shka ©   (2007-09-15 17:48) [5]


> Если это просто текст (а тем более состоящий только из английских
> символов) - то гораздо проще.


гораздо проще но ве равно глазами


 
Anatoly Podgoretsky ©   (2007-09-15 17:51) [6]

> S@shka  (15.09.2007 17:48:05)  [5]

Не обязательно, надо писать ИИ.


 
Инс ©   (2007-09-15 18:56) [7]


> гораздо проще но ве равно глазами

Если длина ключа известна, то делаем так: смещаем шифртекст на величину размера ключа (или кратную ей) и накладываем xor-ом на несмещенный шифртекст. В результате в полученной последовательности ключа уже не будет, он убьет сам себя в результате xor-а с самим собой. Последовательность будет представлять собой исходное сообщение xor оно же, только смещенное на величину ключа. Каждый байт этой последовательности будет представлять собой "буква xor буква". Это сильно упрощает дело, такая последовательность сильно избыточна. На 1 байт приходится примерно полтора бита полезной информации.


 
TUser ©   (2007-09-15 19:59) [8]

Читать надо не по 4 байта, а по 512. Так быстрее.


 
kash_d   (2007-09-15 22:06) [9]

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


 
kash_d   (2007-09-15 22:07) [10]

вся загвоздка в скорости!


 
Сергей М. ©   (2007-09-16 11:30) [11]


> вся загвоздка в скорости


Открывай файл как MMF и работай с его содержимым как с обычным массивом, если конечно же размер файла позволит это.


 
kash_d   (2007-09-16 12:47) [12]

размер файла 40 кб, можно поподробнее, что значит
> Открывай файл как MMF
??? и может кто чего предложит на асемблере туда вставить?


 
Сергей М. ©   (2007-09-16 12:52) [13]


> размер файла 40 кб


Мелочь, одним словом.


> можно поподробнее


Пляши от CreateMappedFile + MapViewOfFile


> может .. на асемблере туда вставить


Это еще зачем ?
И что ты собрался "вставлять" ?)


 
Anatoly Podgoretsky ©   (2007-09-16 12:54) [14]

> Сергей М.  (16.09.2007 12:52:13)  [13]

40 кб и MMF :-)


 
Сергей М. ©   (2007-09-16 12:56) [15]


> Anatoly Podgoretsky ©   (16.09.07 12:54) [14]


Да я и не настаиваю на MMF)


 
kash_d   (2007-09-17 09:05) [16]


> > может .. на асемблере туда вставить
>
>
> Это еще зачем ?
> И что ты собрался "вставлять" ?)

ассемблер для скорости! тот же XOR точно можно на ассемблере замутить, это приличный выйгрыш даст!


 
Сергей М. ©   (2007-09-17 09:11) [17]


> kash_d   (17.09.07 09:05) [16]
>
>


Ну замути)
Кто ж тебе мешает)


 
Anatoly Podgoretsky ©   (2007-09-17 09:14) [18]

> kash_d  (17.09.2007 09:05:16)  [16]

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



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

Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.044 c
2-1190120146
stanislav
2007-09-18 16:55
2007.10.14
Работа с байтом и битами


15-1189598524
Кадровик
2007-09-12 16:02
2007.10.14
Подсчет выходных, предвыходных, праздничных ипредпраздничных дней


15-1189496573
ocean
2007-09-11 11:42
2007.10.14
Очистить фон на фотографии


2-1190044966
ANTPro
2007-09-17 20:02
2007.10.14
procedure RotateX


15-1189725749
delphiForever
2007-09-14 03:22
2007.10.14
и все таки я ее нашел...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский