Интернет магазин китайских планшетных компьютеров



Компьютеры - Источник энтропии - Необходимый объём энтропии

23 января 2011


Оглавление:
1. Источник энтропии
2. Необходимый объём энтропии
3. Неаппаратные источники и некоторые выводы



«Непредсказуемости» нужно не так много. Например, в AES длина ключа 128 бит и даже очень защищённые системы редко используют материал свыше 200 бит. Если нужен набор ключей, они могут быть сгенерированы криптографически сильной последовательностью, используя хорошее случайное начальное значение. Нескольких сотен случайных бит, получаемых при запуске компьютера раз в день, достаточно, если используются подобные последовательности.

Оборудование в качестве источника

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

Видео- и аудио- входы

Многие компьютерные системы построены таким образом, что уже имеют входы, способные оцифровывать некие аналоговые источники реального мира, такие как звук из микрофона или видеосигнал с камеры. Качество этого метода очень зависит от аппаратной реализации. Например, входные данные с звукового оцифровщика без помещённого рядом источника звука или с камеры с закрытой крышкой будет по существу представлять тепловой шум. Однако, если система имеет некоторый усилитель и средства для обнаружения чего-либо, то входные данные могут обеспечить достаточно высокое качество случайных бит. Например, на некоторых системах на платформе UNIX можно считать данные с устройства /dev/audio без помещённого у микрофона источника звука, либо считывать лишь низкий уровень фонового шума. Такие данные по существу являются случайным шумом, хотя им не стоит доверять без некоторой проверки. Таким образом, с помощью /dev/audio можно получить огромное количество случайных данных среднего качества.

Дисковые накопители

Дисковые накопители имеют небольшие случайные колебания скорости вращения из-за хаотической турбулентности воздуха. Если к этому добавить инструмент поиска данных на дисках, время которого очень мало, можно получить серии измерений, содержащих в себя нужную хаотичность. Такие данные, как правило, сильно взаимозависимы, поэтому необходима значительная обработка. Тем не менее, эксперименты, проводимые в своё время, показали, что с надлежащей обработкой даже медленные дисковые накопители на медленных компьютерах тех дней могли без проблем производить 100 или более бит превосходных случайных данных в минуту. Лет 5 назад на современном оборудовании получали степень генерации случайных бит свыше 10 тыс. в секунду. Эта техника используется в генераторах случайных чисел, имеющихся во многих библиотеках операционных систем. Стоит отдельно отметить, что использование кеша в этой технике не представляет проблем из-за того, что обращение в кеш выполняется в течение короткого времени и таким образом может быть просто проигнорировано.

Часы и серийные номера

Компьютерные часы и подобные величины, относящиеся к операционной системе и оборудованию, обеспечивают гораздо меньшее число необходимых случайных, непредсказуемых бит, нежели ожидается от их спецификации. Были проведены тесты часов огромного числа систем и было обнаружено, что поведение часов может сильно меняться, причём непредсказуемым образом. Одна версия операционной системы, запущенная на одном наборе оборудования, может, скажем, предоставить разрешение часов в микросекунды, в то время как другая конфигурация этой же операционной системы может выдавать одни и те же младшие биты. Это значит, что последовательные считывания с часов могут выдать одинаковые значения, даже если прошло достаточное время, за которое величина должна была бы измениться, основываясь на номинальном разрешении часов. Также существуют случаи, когда быстрые считывания с часов могут произвести искусственные последовательные величины, потому что дополнительный код проверяет часы, которые, в свою очередь, не изменились между двумя считываниями, и увеличивает их на 1. Разработка портативных приложений, использующих системные часы для генерации непредсказуемых случайных величин — всегда особенно сложная задача, потому что разработчик приложения не всегда знает свойства системных часов.

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

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

Время и величины внешних событий

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

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

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

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



Просмотров: 2726


<<< История криптографии
Ключ (криптография) >>>