ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
237491
Evgeny_CD, Архитектор (08.02.2011 08:04, просмотров: 5299)
[Приснилось сегодня ночью. Даже не знаю, не открылся ли мне ящик пандоры....] Алгоритмические яды. Все жизнь вокруг нас построена на информации. Все эффективные системы обработки используют статистику информации для собственной оптимизации. Эта статистика обусловлена естеством той отрасли, где этот алгоритм работает. Кеш процессора расчитан под определенную статистику кода и обращений к данным. Его ассоциативность не бесконечна, размер тоже. Но работает на практике очень эффективно, кажется, что он бесконечен. Есть алгоритмы построения кода, которые позволяют определить ассоциативность кеша, размер кеш лайна и самого кеша. Они построены, по сути, на отравлении кеша специальным набором данных, и резком падении его эффективности после этого. Добавляя яда, народ смотрит на график пропускной способности подсистемы памяти, и по резкому ее падению понимает - ага, ассоциативность 8. Аналогично отравляется предсказатель ветвления, и становится возможным оценка глубины конвейера проца. Очевидно, можно синтезировать набор пикселей, на которых производительность MPEG* сжимателя резко упадет. Или у него вообще кончится память – ибо, с точки зрения создателей, таких картинок в природе не бывает. Некоторые разработки CD наивно предположили, что последовательность синхронизации CD тоже не должна встречаться в данных, записываемых на CD. Но они облажались. В 37 их бы заслуженно расстреляли «за закладку». http://www.ixbt.co …cal/magia-chisel.shtml Современные компиляторы делают все для оптимизации кода. Но «злой гений» может написать антиоптимальный компилятор. Который сбросит пару порядков производительности с любого современного проца. Если у Вас на экране порнуха начнет тормозить – Вы (вероятно) не умрете. А если это проц маршрутизатора бекбона (пусть там даже сама маршрутизация выполняется аппаратно. Управляет ею все равно проц.)? Операция «Березино» - это тоже «алгоритмический яд» для разведки фрицев. http://www.rau.su/ …ver/N7-8_02/7-8_16.HTM Урод, взрывающий себя в аэропорту – это «алгоритмический яд» для аэропорта. Не рассчитан аэропорт на «обслуживание» террористов!!! Пробуем строить защиту на входе – пропускная способность резко падает. Как у отравленного кеша… Рассмотрим произвольную сложную систему на этапе ее проектирования. Проще всего ее представить в виде графа, в узлах которого находятся сущности системы, а ребра – это некие логические связи. Теперь пусть Создатель такой системы переводит ее в код – код ДНК, код на С, чертежи металлоконструкций для какого-то сооружения… Если он попытается материализовать все сущности и логические связи – у него ничего не получится. Можно считать это самым фундаментальным законом, что вся прибыль от реализации всех продаваемых экземпляров совершенной системы не покроет затрат на ее создание. Что сделает Создатель, с которого Начальство всегда спросит за отсутствие результата в срок? Пошлет слишком умных на юх, и упростит систему. Тем самым оставив ее в ней бекдоры… Вирус гриппа – это «алгоритмический яд» для организма человека (и не только). Чтобы его творение не загнулось раньше срока, Создатель предусмотрел некую защиту от «хака через бэкдоры» - иммунную систему. Но эта система также очень сложна… В общем, Вы поняли… Выводы: 1. Всякая сущность несет в себе инструмент саморазрушения. Философы это давно знают. 2. Абсолютная информационная безопасность не существует. Как и безопасность вообще. Тривиальное следствие п1. 3. Природа построена на жесточайшей конкуренции. Почему? Потому что у нее есть только один критерий эффективности – эффективность алгоритмов упрощения сложных систем. Неэффективные алгоритмы удостаиваются премии Дарвина. Посмертно. Мы с вами живем внутри большой системы перебора. Да, на нас, на всем видимом и осознаваемом нами постоянно ставят эксперименты по совершенствованию алгоритмов упрощения. Аминь.