LINUX.ORG.RU
ФорумTalks

мегаархиватор.


0

0

Есть идея что на алгоритме поиска хэш коллизий можно сделать архиватор с неоднозначной распаковкой. это даже не архивация с потерями, а вообще не понять что. зато сжимает очень круто.

но. на некоторых данных разархивирование может стать однозначным. например если добавить условие что нужно на выходе получить корректный mp3 файл.

или если есть кусочек данных. например можно восстанавливать торренты где полного источника нет.

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

эх, где мой мегакластер для экспериментов.

★★★

Иными словами, ты предлагаешь архиватор, который из группы файлов/директорий делает кучу-малу, которую не разберешь при первом просмотре, причем куча-мала будет занимать предельно мало места.
Но! Если этому архиватору при разархивировании передать соответствующий ключ, можно разархивировать или все данные или какие-то конкретные, на которые будет указывать ключ.
Правильно?

Terrens
()

"Вот уже четвертый год Васисуалий Пупкин пытается получить по хешу MD5 архив установочной версии Windows XP. Хотя его попытки пока так и не увенчались успехом, среди коллизий этого года обнаружено несколько существующих и работающих версий OpenBSD и Plan 9, заархивированное полное собрание всех сочинений Энгельса, Маркса и Ленина, а также никому до сих пор неизвестная версия ядра Linux, в которой исправлены все существующие на данный момент ошибки.

Казалось бы, можно удовлетвориться и таким результатом. Но энтузиаст не сдается и упорно продолжает перебор. "У меня есть одна конечная цель, и я ее достигну, пусть даже на это уйдет вся моя жизнь",-- утверждает он.

Напоминаем, что среди коллизий прошлых лет был случайно обнаружен The GIMP с полной поддержкой 48-битового цвета и CMYK. Не обошлось без трагедий -- в тот день несколько сотен анонимных пользователей сайта linux.org.ru совершили коллективное самоубийство, расшибя себя насмерть о бетонную стену."

-- Агенция Анонимных Корреспондентов ЛОРа.

shimon (*) (18.12.2005 10:33:00) (Источник)

EmStudio
()

Держи песенку.

1c7752de21aa1763cc580efc2b8cf0d6 Звезда_и_Смерть_Хоакина_Мурьеты_-_Ария_Смерти.mp3

Учачи тебе в распаковке.

melkor217 ★★★★★
()

Теперь на ЛОРе можно будет выкладывать картинки, музыку, и даже фильмы. Ура, товарищи!

7f7e0238cc0327808e6e4696d4e8a439 Улькиорра и помидорки.flv

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

блин, я знал что ничего нового не придумал.

vasaka ★★★
() автор топика

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

и алгоритм поиска коллизий у них самый эффективный на сегодня.

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

ну есть слабенькая надежда что при условии получения корректного файла все же обратимость получится.

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

md5 не оптимально для такого. А вообще идея ИМХО стоющая. Вот только вероятность ошибочной коллизии при корректном файле хз как просчитать

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

> md5 не оптимально для такого. А вообще идея ИМХО стоющая.

В полку прибыло, первый человек воспринял идею всерьёз %)

Всем: настоятельно советую почитать про алгоритмы сжатия. Нельзя ведь так перед людьми-то.

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

Возможно, я туплю. Но он просто предлагает сжимать сильнее за счёт коллизий. Для этого можно приспособить _нормальные_ алгоритмы, а не использовать md5.

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

а что принципиально мешает такой штуке работать при условии что есть дикие мощности и какой-нибудь приличный алгоритм хэширования?

ну и допущении что корректный файл восстанавливается однозначно.

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

не сжимать за счет коллизий, а восстанавливать файл из хэша за счет того что при некоторых условий коллизий нет.

можно еще при архивации пробовать подбирать такие условия.

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

Я просто подумал, что ты иронизируешь. :)

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

Другой вопрос если бить файл на куски уже с учётом его типа и зашивать эту информацию в архив.

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

и да, не хватает тега Вещества

и да, ВЕРНИТЕ АНОНИМУСА!

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

Конечно же, работать будет. Но тупняк будет ещё тот. Почитай про хеш-таблицы, у алгоритмов хеширования есть разные умные характеристики. md5 как бы не очень подходит, можно написать что-то получше.

Пример простого сжатия: сначала выделяем самые часто встречаемые и длинные слова (в данном файле или вообще). Допустим, таблица генерируется из файла и хранится вместе с архивом. А затем архивируем: переходим к более мощному алфавиту, допустим, двухбайтовому. И строится таблица соответствия символов нового алфавита и последовательностей символов старого. Чтобы сжать сильнее, можно попробывать заменять похожие последовательности одним и тем символом, на мультимедии это не очень скажется. Тем самым мы сами задаём коллизии, а не гадаем, где же они будут. Правило определения старых символов по новым будет хеш-функцией, то есть, будет играть ту же роль, что и md5 у тебя. Вот, как-то так =)

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

Вы, вероятно, не имеете представления, сколько будет коллизий md5, и как весело будет проверять полным перебором...

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

И самое важное. Посмотрите, как равномерно коллизии распределены. Красота %)

melkor217 ★★★★★
()

Эх, молодёжь...

Каждому хешу соответствует бесконечное множество входных массивов данных. Дальше продолжать или всё уже понятно?

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

Они хотят брать блоки фиксированного размера. Так что можешь продолжить, а то мне лениво )

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

В определённых кругах за такое бьют. А я пытаюсь спасти вас от безумия, ибо желаю вам всем добра и здоровья ^^

p.s. зря пытаюсь. это клиника.

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

>Каждому хешу соответствует бесконечное множество входных массивов >данных. Дальше продолжать или всё уже понятно?

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

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

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

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

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

Если знать изначальный размер файла и, например, заголовок, то лишь бы были мощности) Но что-то мне подсказывает, что на том компе, где гиг подберётся за месяц, кризис будет летать

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

Согласен, про md5 говорил не ты. Но уменьшение размера вообщем-то прямо пропорционально потерям качества. Так что ничего у тебя не получится.

[злобный смех]

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

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

ну той же музыки. если добавить в критерий осмысленности дополнением к валидному mp3 потоку непохожесть результата на белый шум.

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

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

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

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

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

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

Хватит трепаться, иди пиши, отечество тебя не забудет)

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

Да, "прикольный генератор" получится, "прикольность" зависит от функции.

А мультимедия пострадает гораздо меньше, если уменьшить битрейт/разрешение. Тут этот чудо-генератор будет сильно шуметь.

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

терминатора 15 так и снимут. просто будут очень долго считать на том что станет скайнетом.

и будут проверять получающийся видеопоток на наличие рожи швацнеггера.

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

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

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

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

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

vasaka ★★★
() автор топика

Эээээм. Я как бы не хочу вмешиваться в дискуссию, но может быть стоит почитать труды Шеннона?

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

> ну даже если осмысленность информации не будет гарантировать однозначность восстановления - есть шанс получить прикольный генератор чего-то.

чёрт, это гениально. Текстовой композитор

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

Не припомню его трудов, имеющих отношение к вопросу.

А вообще, всё это реализуемо. Но они не представляют, насколько неэффективно. Ведь всё это уже изобретено до них, а они идут по пути ненужного усложнения, вставляя везде этот хеш..

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

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

и, например, опровергнуть мою догадку про логарифм.

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

правда я не встречал мер разумности информации, кроме энтропии.

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

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