Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
27.11.2024
Размер:
247.55 Кб
Скачать

Лабораторная работа 3 ГЕНЕРАЦИЯ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ

Задание

Изучить процедуру генерации случайных чисел методом Блюм — Блюма — Шуба.

Технология выполнения задания

Задание 1. Сгенерировать 8-битовую псевдослучайную последовательность.

1. Выбрать значения параметров BBS-генератора р, q и случайное число s из табл.1 согласно номеру варианта (от 1 до 5). Сформировать псевдослучайную последовательность аналогично рассмотренному ниже примеру.

Таблица 1 - Варианты задания

Номер варианта

р

q

s

1

431

719

98 907

2

151

191

20 302

3

71

127

3517

4

127

239

14 930

5

359

607

166 646

6

407

588

3164

7

276

439

12034

8

321

503

17809

9

134

736

12067

10

632

840

400036

Пример 1.

Заданы параметры BBS-генератора р = 407, q = 599, выбрано случайное число s=3612. Сформировать псевдослучайную 8-битовую последовательность, используя один младший бит чисел xi, формируемых BBS-генератором.

2. В приложении MS Excel создать новую книгу, на первом листе ввести значения р, q, вычислить число Блюма n как их произведение, например =В1*В2 (рис. 1). Ниже ввести значение случайного числа s.

Рис.1. Вычисление последовательности xi BBS-генератора

3. Рассчитать элементы ряда хi.

• пронумеровать ячейки первого столбца от 0 до 7;

• в первую ячейку второго столбца ввести формулу для вычисления х0 по формуле х0 = s2 mod n, например =ОСТАТ(В4^2;$В$3) (см. рис.1);

• скопировать формулу на весь ряд.

4. Вычислить младшие биты чисел хi. Значение младшего бита определяется остатком от деления числа на 2, поэтому для вычисления можно использовать функцию ОСТАТ (рис.2), например =ОСТАТ(В5;2) для числа х0. Скопировать формулу на все ячейки диапазона.

Рис.2. Вычисление значений младших битов

5. Сформировать результирующую битовую псевдослучайную последовательность с помощью операции &, например =С5&С6&С7&С8&С9&С10&С11&С12, или функции СЦЕПИТЬ из группы Текстовые, например =СЦЕПИТЬ(С5;С6;С7;С8;С9;С10;С11;С12). Значение результирующей последовательности: 11101111 (см. рис. 2).

Задание 2. Расшифровать криптограмму, полученную наложением на шифруемый текст псевдослучайной последовательности, сформированной эффективной реализацией BBS-генератора.

6. Выбрать из табл. 2 согласно номеру варианта (от 1 до 5) значения числа Блюма n, секретного ключа — случайного числа s и шифротекста, представленного последовательностью ASCII-кодов символов. Провести расшифрование (получить открытый текст) аналогично рассмотренному ниже примеру.

Таблица 2 - Варианты задания

Номер варианта

п

s

Криптограмма Y

1

309 889

281 812

69, 47, 119,91

2

28 841

782

2,133,58

3

9017

1116

62, 89, 4

4

30 353

17 849

214, 190, 100

5

217 913

4815

151, 195, 144, 53

Пример 2.

С помощью BBS-генератора получена псевдослучайная последовательность, которая затем наложена на открытый текст. Известно, что использована аффективная реализация BBS-генератора, т.е. при формировании псевдослучайной последовательности используется максимально возможное число младших битов чисел xi не нарушающее стойкости последовательности. Известны числа Блюма n = 243 793 и случайное число s = 48 914, использованные для генерации. Требуется расшифровать текст, заданный последовательностью ASCII-кодов: 16, 182,219, 83.

7. Занести значения n и s на лист MS Excel, ниже в столбец занести значения ASCII-кодов, составляющих криптограмму (рис.3). Перевести десятичные значения ASCII-кодов в двоичный вид, используя функцию ДЕС.В.ДВ из группы Инженерные. Поскольку символы в таблице ASCII кодируются одним байтом (восемью битами), указать разрядность 8. Например, =ДЕС.В.ДВ(А4;8).

Рис.3. Перевод десятичных кодов в двоичный вид

8. Ниже с помощью операции & или функции СЦЕПИТЬ (например, =СЦЕПИТЬ(В4;В5;В6;В7)) сформировать соответствующую шифротексту битовую последовательность (см. рис.3).

9. Определить максимально допустимое для использования в BBS-гене- раторе число младших битов (рис. 4):

• определить минимальное число битов, необходимое для кодирования n. Рядом со значением п вычислить двоичный логарифм значения n + 1. Для этого следует использовать функцию LOG, задав значение второго параметра равным двум, например =LOG(Bl+l;2). Получено значение 17,8953;

• округлить полученное значение вверх до целого, для чего следует использовать функцию ОКРУГЛВВЕРХ, задав число десятичных разрядов равным нулю, например =ОКРУГЛВВЕРХ(С1;0). Получено значение 18;

Рис.4. Расчет максимально допустимого числа младших битов

Таким образом, для кодирования числа n = 243 793 требуется не менее 18 двоичных разрядов.

Замечание: округление вверх можно произвести также с помощью функций ОКРВВЕРХ или ОКРВВЕРХ.ТОЧН, в этом случае значение второго параметра (точность) следует установить равным единице;

• взять двоичный логарифм от полученного значения, например =LOG(Dl;2). Получено значение 4,1699;

• округлить полученное значение вниз с помощью функции ОКРУГЛВНИЗ, задав число десятичных разрядов равным нулю, например =ОКРУГЛВНИЗ(Е1;0). Получено значение «4», таким образом, в BBS-генераторе допустимо использовать не более четырех младших битов.

Замечание: округление вниз можно также произвести с помощью функций ОКРВНИЗ или ОКРВНИЗ.ТОЧН, в этом случае значение второго параметра (точность) следует установить равным единице.

Соседние файлы в папке Лабы