Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
2023-01-02 | 32 |
5.00
из
|
Заказать работу |
|
|
Чтобы ответить на этот вопрос, попробуем прояснить, что означает слово “случайный”. Чтобы сделать интуитивное представление более точным, можно поставить вопрос следующим образом: “Если известны текущие значения чисел, можно ли Предсказать последующие значения чисел?”. Криптографы предпочитают следующее определение: случайные значения представляют собой наборы чисел, которые прошли статистические тесты на случайность и являются неповторяющимися.
Рис. 24. Проверка чисел на случайность Здесь фрагмент 011 появляется слишком часто, поэтому тест не проходит.
Предположим, что вы выбрали несколько тысяч чисел и задали вопрос математику, являются ли эти числа случайными. Чтобы упростить задачу для компьютеров, пусть это будут двоичные числа, т.е. каждое число представляется в виде последовательности 1 и 0. Математик выдаст заключение, основываясь на наборе тестов. При выполнении этих тестов (см. рис. 24) задаются такие вопросы: совпадает ли приблизительно количество 1 и 0? Не появляются ли некоторые фрагменты последовательностей 1 и 0 “слишком часто”? Есть ли некоторые фрагменты последовательностей 1 и 0, которые появляются “недостаточно часто”? Если числа выдерживают тесты, мы говорим, что числа, вероятно, являются случайными. Но мы не можем утверждать, что числа “определенно” являются случайными.
Если у вас есть несколько тысяч чисел, можно проверить их на случайность. Но откуда взять эти несколько тысяч чисел? Одним из источников является генераторы случайных чисел (RNG — random number generator), Такие устройства работают, получая числа из различного вида непредсказуемых входных данных, например, измеряя параметры радиоактивного распада, изучая окружающие атмосферные условия либо вычисляя незначительные изменения электрического тока. Эти последовательности чисел проходят тесты на случайность.
|
Если вы запросите вторую последовательность чисел, то практически никогда не получите ту же самую последовательность снова. Дело в том, что выходной результат основывается на входных данных, которые всегда меняются. Числа являются неповторяющимися.
Итак, возвращаясь к нашему исходному определению, мы можем спросить: “Способен ли кто-либо предсказать, каким будет следующее число?” Для этого нужно иметь возможность предсказать малейшие вариации в процессе радиоактивного распада, в атмосферных условиях или в изменениях электрического тока. Предполагается, что этого никто не в состоянии сделать.
Компания Intel создала генератор случайных чисел, который использует тепловой шум системы в качестве источника непредсказуемых входных значений. В настоящий момент это устройство еще не П9ставляется с каждым ПК на базе процессора Pentium, хотя это вполне возможно в будущем. Другие компании (такие как nCipher, Chrysalis и Rainbow) продают устройства, известные как криптографические акселераторы. Эти устройства имеют в своем составе генераторы случайных чисел.
Как можно получить случайные числа, если нет аппаратного генератора случайных чисел? Тут помогут алгоритмы, которые называются генераторами псевдослучайных чисел (PRNG —pseudo-random number generators). Наряду с алгоритмами, которые преобразуют открытый текст в шифротекст, имеются алгоритмы, которые генерируют так называемые псевдослучайные числа.
Если вы воспользуетесь одним из таких алгоритмов для генерирования нескольких тысяч чисел и примените статистические тесты, числа пройдут тесты. Эти числа являются псевдослучайными, а не случайными, поскольку они повторяющиеся. Если вы установите ту же программу-генератор псевдослучайных чисел на другой компьютер, то получите те же самые результаты. Если вы запустите программу двумя неделями позже, результаты все равно будут такими же.
|
Это одна из причин, по которой мы говорим, что числа, прошедшие статистические тесты на случайность, являются “возможно” случайными. Даже если числа выдержали тесты, можем ли мы знать, являются ли они повторяющимися? Тесты на случайность дают только часть ответа.
Если числа являются повторяющимися, чем же хороши генераторы псевдослучайных чисел? Дело в том, что можно изменять выходные результаты с помощью начального множества значений. Подобно тому, как генераторы случайных чисел используют входные данные (характеристики радиоактивного распада, атмосферные условия, флуктуации электрического тока), генераторы псевдослучайных чисел также используют входные данные (начальное множество значений). Если вы измените входные данные, выходные данные также изменятся. При использовании генераторов случайных чисел входные данные постоянно изменяются сами по себе непредсказуемым образом. При использовании генераторов псевдослучайных чисел нужно обеспечить, чтобы входные данные изменялись каждый раз, когда нужно сформировать новую последовательность чисел.
Что представляет собой начальное множество? В реальном мире в качестве начального множества могут быть использованы различные характеристики: время суток, измеренное в миллисекундах, некоторые постоянно меняющиеся параметры состояния компьютера, ввод данных пользователем и другие значения. Возможно, вы сталкивались с программой получения начального множества значений на основе ввода пользователя. Приложение может предложить вам подвигать мышью. Через определенные интервалы времени программа определяет, где на экране находится указатель мыши. Это значение представляется парой чисел: число пикселов от верхнего и левого края экрана. Один отдельно взятый ввод не имеет какого-либо значения, но если объединить их вместе, то получится результат, который является непредсказуемым (см. рис. 25).
Рис. 25. Генератор случайных чисел (слева) использует непредсказуемые данные и преобразует их в случайные числа Генератор псевдослучайных чисел (справа) берет информацию из начального множества и преобразует ее в числа, которые выдерживают статистические тесты на случайность, но могут повторяться
|
Зачем применять генератор псевдослучайных чисел и почему бы просто не использовать начальное множество чисел? На это есть две основные причины. Первая связана с производительностью. Получение начального множества требует сравнительно больших затрат времени. Предположим, что нужно получить несколько тысяч битов случайных данных. Программе для получения начального множества может потребоваться несколько минут, чтобы получить необходимые числа. Чтобы сэкономить время, можно получить 160 или около этого битов начального множества (что займет совсем немного времени), передать их генератору псевдослучайных чисел и получить требуемые тысячи битов за несколько миллисекунд.
Второй причиной, по которой следует использовать генератор псевдослучайных чисел, является энтропия — термин, который описывает меру хаоса. Чем выше энтропия, тем больше хаос. Иначе говоря, чем выше энтропия, тем более случайным является результат. Предположим, вьх хотите получить 128 битов данных с высокой энтропией. Начальное множество может это обеспечить, но для этого потребуется более 2400 битов. Например, время дня в миллисекундах представляется 64 битами. Но год, месяц, день и даже час и минуту можно легко угадать. Миллисекунды — несколько битов в значении являются случайными. Аналогичная проблема имеет место и для других способов задания начального множества. Генератор псевдослучайных чисел принимает 2400.битов начального множества и сжимает их до 128 битов.
Почему бы тогда не взять начальное множество и не отбросить биты с низкой энтропией? В известном смысле именно это и делает генератор псевдослучайных чисел. Вы можете сделать это сами, либо поручить генератору псевдослучайных чисел, что избавляет вас от лишней работы.
Между прочим, большинство генераторов псевдослучайных чисел используют вычисление дайджестов сообщений, чтобы сделать эту работу. Дайджесты сообщений (см. также параграф, посвященный электронной подписи) в криптографии являются своеобразными “смесителями”. Подобно тому, как смеситель принимает вполне распознаваемую пищу и превращает ее в случайным образом перемешанную массу, программа, формирующая дайджест сообщения, принимает биты и байты и смешивает их в случайную “кашу”. Именно это нам и нужно от генератора псевдослучайных чисел.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!