<<<предыдущий список следующий>>>

Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer.


20 июля 1998 года 

Спасибо. Вы написали мне в гостевую книгу столько добрых слов, что нельзя не начать этот номер с ответных любезностей. :-) Практика показала, что писать в гостевую народ любит больше, чем по почте. :-) Я получил e-mail-ом гораздо меньше информации, чем в книгу. Теоретические выводы из этого пусть делают психологи :-),  а я просто порадуюсь тому, что обратная связь стала более эффективной.

des_stone_sm.GIF (14005 bytes)17-е июля 1998-го года можно считать официальной датой смерти алгоритма DES. В этот день EFF (Electronic Frontier Foundation) Опубликовал пресс-релиз, в котором сообщается, что сломать DES незначительно труднее, чем отобрать леденец у (правда, шустрого и упрямого) ребенка. Несколько дней - и дело в шляпе.

Показательное выступление было исполнено с помощбю специально сделанного "доказывателя несостоятельностей правительственных алгоритмов шифровки" - машины, которая способна перебирать по 88 миллиардов ключей в секунду. За 56 часов 56-битный (вот совпадение:-) ключ был взломан.

Надо отметить, что вся эта мышиная возня с DES-ом призвана еще раз доказать то, что безусловно очевидно - американское правительство вздрючило свою родную страну по полной программе со всей этой шифровкой. Экспортируемая штатами шифровальная технология не просто несостоятельна, она смешна. Ведь на экспорт вот уже много лет разрешено продавать только системы с 40-битным DES-овским ключом.

Все это объяснялось тем, что, мол, нельзя давать гадам и террористам в руки хорошую технологию. Вот на то, чтобы доказать глупость подобных ограничений EFF и потратил четверть миллиона долларов. Хотя и без того известно, что любой террорист может скачать с любого из тысяч сайтов PGP и закодировать им сообщение, не покупая у США ни грана ейных крутых технологиев.

Вернемся, впрочем, к крекеру. Взламывательная машина EFF довольно проста, и, что важно, легко масшабируема. То есть увеличив ее в 10 раз можно ломать коды за часы. А в 1000 - за полчаса. А можно и быстрее - были б деньги.

deep_crack_chip_cut_sm.jpg (31450 bytes)

1500 таких тараканов загрызли DES до смерти

Принцип действия таков. Есть железная и программная части. Железная состоит из вагона специальных чипов, которые перебирают ключи и отбрасывают заведомо негодные. В этом - самый момент и есть. На железном уровне трудно сказать точно - этот ли ключ и есть правильный. Зато заведомую неправильность ключа выяснить возможно. Матрица чипов занимается именно этим - отбрасывает ключи непригодные. Те же, которые вызвали подозрение - идут на досмотр программной части. Она уже применяет весь свой интеллект, чтобы найти правильный ключ из числа подозреваемых. Фокус в том, что до программной части доходит очень небольшое число вариантов. Столь малое, что с окончательным поиском справился всего один компьютер. А вот отделяли зерна от плевел для него 1500 чипов DEEP CRACK.

Следует отметить, что схожесть названия чипа с знаменитым DEEP BLUE вряд ли случайна. Идея построения взламывательной системы подозрительно смахивает на ту, что лежала в основе машины, обыгравшей Каспарова.

Практические выводы.

EFF рекомендует (сюрприз, сюрприз) либо отказаться от DES, либо использовать наложенное шифрование. Методика взлома DEEP CRACK не может осилить такие вещи, как PGP-шный IDEA (128 бит) или 168-битный тройной DES. Зато GSM-овский A5, а так же варианты RC2 и RC4 с короткими ключами потенциально взламывабельны с применением подобной техники, по утверждениям EFF.

У машин на базе Intel-овских процессоров появился разум.

"Server RASUM is directly impacted by the accuracy of the parameters chosen to monitoring and manage the processors’ operating environment." - Intel, Xeon tech. info.

Я все собирался поинтересоваться, что там у Xeon-а за мониторная шина появилась. Разобрался. Все красиво и просто. Кроме стандартных выводов, которые наличествуют у любого второго пентиума, Xeon располагает еще одним интерфейсом. Он называется SMB (System Management Bus). Электрически шина представляет собой старую добрую I2C - двухпроводную последовательную шину, разработанную для управляющих компьютеров бытовой техники - телевизоров, например.

С точки зрения SMB процессор Xeon - три периферийных устройства. Processor Information ROM, Scratch EPROM и порт датчика температуры.

Processor Information ROM - ПЗУ, которое хранит персональную информацию о поцессоре. Xeon - продукт буквально штучный. Каждый экземпляр снабжается серийным номером, индивидуально тестируется и информация, полученная при заводском тестировании пишется в означеный ROM. Это, к примеру, позволяет системе температурного слежения выключать процессор не тогда, когда температура приблизилась к граничной по спецификации, а за несколько градусов до того, как данный экземпляр процессора начнет сбоить.

Scratch EPROM - просто энергонезависимая память, которую система может использовать в своих целях. Например, чтобы отслеживать ошибки в работе процессора и детектировать регулярно сбоящие узлы. Дело в том, что Xeon, как и полагается процессорам такого класса, использует коды контроля данных с возможностью восстановления. Это дает возможность при единичных сбоях памяти продолжать работать. Однако мониторное обеспечение компьютера, по хорошему, должно следить за сбоями и засекать тенденции. Если, к примеру, сбои группируются вокруг некоторого адреса, вероятно, что одна из микросхем памяти начинает отказывать. Есть смысл заранее заменить дефектный модуль, не дожидаясь неприятностей с ним.

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

Предполагается, что шина эта будет подключена к внешнему процессору системы мониторинга машины. Интересно, что питается SMB отдельно от самого Xeon-а, так что выключить CPU можно без потери возможности его мониторить или обращаться к хранящейся в ROM/EPROM информации.

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

Как быстро идет время. Еще не так давно Intel расширил адресуемое адресное пространство 8080 (64К) до мегабайта, добавив в 8088 сегментные регистры. Идея была простой - есть много кода для 8080, который знает только про 64К памяти. Сделаем же расширение памяти невидимым для него. Пусть адрес так и останется 16-битным, но при этом к нему будет добавляться сегмент. Вместе (20 бит) они смогут адресовать мегабайт. Позже, кстати, заметили, что получается не 20, а 21 бит - еще один бит набегает из-за переносов. Но это детали.

Так поначалу все и было. Код с 8080 на 8086 переносился чрезвычайно легко, а 640К памяти выглядели манной небесной.

Некоторое время.

Потом как-то захотелось большего. Потом что-то приспичило обращаться к более, чем 64К за раз. (А это архитектура позволяла только с шаманскими плясками вокруг регистров). И вообще, стало очевидно, что заплата хороша на короткое время, а вообще бы некисло архитектурку-то подправить.

Признаться, подправлена она была довольно быстро. 80286 в родном режиме был вполне себе приличный процессор. Но при его проектировании допустили глупость. Из эмуляции 8086 в свою систему команд он переходил легко, а обратно - с трудом. То есть вообще никак. Предполагалось, что ежли ты запустил приличную ОС, которая знает про возможности 80286, то нечего тебе делать в режиме 8086.

А делать было что. Очень хотелось иметь возможность гонять старые программы, для 8086 которые. Поэтому научились пихать 286-й обратно в режим 86-го. Путем полного сброса процессора. Нажатия на reset, то есть. И все программы, которые поддерживали в то время защищенный режим, фактически тысячи раз в секунду то переключали процессор в режим 80286, то давили ему на "сброс", чтобы вернуться в "реальный", древний, убогий, мерзкий 8086-й режим.

Кстати, аналогичную штуку недавно вытворили и с Windows NT. Ей научились подсовывать такой HAL, который берет на себя основное управление процессором и памятью, а NT держит на коротком поводке и использует для совместимости с "индустриальным стандартом". Задачи же, требующие качественного управления процессором гоняет самостоятельно. Микрософт на это обижается. А чего обижаться - была бы хорошая ОС - не подвинули бы ее в сторону со словами "дай-ка я сам"...

Для поддержки 286-го написали OS/2 1.0, на него портанули Юникс, да все не в прок. Все пожрал ДОС. ДОСу дали HIMEM.SYS, и ДОС научился лазить в верхнюю память. Потом верхняя память подмяла под себя ДОС, и задачи смогли работать в защищенном режиме, а реальный включали только чтобы обратиться к ДОС-у, который в защищенном не мог. Надо сказать, что ни одна ОС до MS DOS, кажется, такого унижения от задач не испытывала. Такого заслуженного унижения.

Да, бишь, о чем я... а, ну так вот. С тех пор прошло не так уж много лет. Адресное пространство Intel-овских процессоров росло шаг за шагом. 16 бит (8080), 20 (8086), 24 (80286) и 32 (80386).

Тут развитие притормозилось. Во-первых, память была очень дорога и даже все 32 бита адреса, казалось, использовать почти невозможно. Четыре гигабайта памяти - это кто ж столько укупит... Во-вторых, 386-й оказался удачным процессором. После двух не совсем удачных заходов (iAPX 432, да будет славен в веках его создатель, и 286) это было весьма кстати. Идея, заложенная в 386-м пошла дальше. Собственно, 486 и Пентиум - это быстрые 386-е, за мелкими исключениями. Они достаточно сильно отличаются структурно, но с точки зрения программиста - близнецы.

Аналогично и Pentium II. Принципиально иной изнутри он опять являет собой быстрый 386. Со всеми вытекающими.

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

Intel обеспечил. У современных Pentium II-х есть даже два режима, которые расширяют адресное пространство процессора до 36 бит. Именно процессора. Каждая отдельная задача по-прежнему располагает только 32-битным пространством. Смотрится это все довольно похоже на развитие адресации 8080-го в 8086-м. Но. Есть пара тонких различий. Во-первых, многогиговая память не нуждается в прямой и полной адресации. Основное ее применение - кеширование записей базы данных. А это применение вполне удовлетворяется фрагментарным доступом. Во-вторых, 36-битные заплатки не предлагаются в качестве основы будущего существования. На будущее - IA-64, Мерсед. Архитектура, разработанная почти с нуля, с чистого листа.

По словам Георгия Кузнецова, бывшего главного редактора еженедельника "Компьютерра", он "16 июля 1998 во время заседания редколлегии уволен за отказ выполнять распоряжение нанимателя."

Слухи, впрочем, гласят, что наниматель предъявил претензии к работе Георгия, на что Георгий сказал, что может и уйти. На что у Мендрелюка ответ, обычно, короткий.

На личном сайте Георгия по этому поводу лежит резюме, и рядом с ним - интересный материал о мюзикле "Кошки". "К настоящему времени по официальным данным, сборы "Кошек" составили 2 миллиарда долларов, а посетило их 48 миллионов человек". Прочтите, оно того стоит. Я про кошек, а не про резюме, конечно. :-)

Чтобы напомнить вам, что такое "Кошки", дам две ссылки на МИДИ-файлы на сайте Георгия. Обе - на самую известную композицию из нее - Memory. Вещь удивительную по красоте. Передать ее во всей полноте мидяшка не может, конечно, но при наличии воображения... В общем, вот и вот. Первая сделана как-то чище, но в ней самый главный ход в композиции исполнен, мягко говоря, условно. Вторая богаче, но сработана неровно.