Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters > Algorithms
Register

Reply
 
LinkBack Thread Tools
Old 22.12.2008, 13:31   #1
Moderator
 
acid's Avatar
 
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Downloads: 102
Uploads: 34
Blog Entries: 16
Reputation: 561 | 6
Default Дешифровка Zip-архива

Процедура дешифрует файл зашифрованный архиватором zip. Следует заметить, что zip добавляет к каждому зашифрованному файлу заголовок шифровки состоящий из 12 байт, который представляет из себя набор случайных байт. Известно что последние два байта данного заголовка ни что иное как старшее слово контрольной суммы незашифрованного файла.
Структурно процедура состоит из четырех частей. Первая часть, имеет вспомогательное значение, в ней создается CRC-таблица, используемая в дальнейшем для преобразования ключей дешифрации, а так же непосредственно инициализируются три 32-байтных ключа. Во второй части ключи преобразуются, используя пароль. В третий части происходит преобразование ключей с одновременной расшифровкой 12-байтного заголовка файла, на этом этапе можно осуществить проверку пароля, если известна контрольная сумма дешифруемого файла (zip хранит ее в незакодированном виде). И наконец последняя, четвертая часть в которой происходит непосредственно побайтная дешифрация данных, при этом дешифрованный байт замещает соответстующий байт в исходном массиве.
На вход процедуры подаются следующие данные: n - длина пароля, P - массив содержащий пароль, buffer - 12-байтный заголовок, m - длина дешифруемого массива, stream - массив байт, который необходимо расшифровать. На выходе получаем расшифрованные данные в массиве stream при этом размер массива остается тем же m.
Как и при шифровке Blowfish-ем следует понимать, что не смотря на то, что алгоритм можно использовать без каких-либо изменений, скорость его работы может быть существенно оптимизирована при непосредственном кодировании на одном из языков программирования. Но я не ставлю себе такую задачу, и представляю этот алгоритм только в образовательных целях, конкретную же реализацию как и в большинстве случаев оставляя Вам.



alglib.sources.ru
Reply With Quote
Old 23.12.2008, 00:44   #2
Скромный ученый
 
Professor's Avatar
 
Join Date: 06 2006
Location: В мягком удобном кресле...
Age: 45
Posts: 7,375
Downloads: 20
Uploads: 3
Reputation: 1086 | 6
Default

А для RAR-а?
Reply With Quote
Old 23.12.2008, 03:04   #3
Moderator
 
acid's Avatar
 
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Downloads: 102
Uploads: 34
Blog Entries: 16
Reputation: 561 | 6
Default

Для RAR-a могу сейчас только посоветовать исходники.
http://www.rarlab.com/rar/unrarsrc-3.1.2.tar.gz
Reply With Quote
Sponsored Links
Reply

Tags
algorithm, rar, sources, zip

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 14:04.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.