20700

Генерування випадкових чисел

Лабораторная работа

Информатика, кибернетика и программирование

1КІ08 Морозов Артем Мета роботи: Усвідомити важливість проблеми генерування випадкових чисел під час вирішення задач захисту інформації ознайомитися з деякими способами генерування псевдовипадкових чисел усвідомити сильні і слабкі сторони алгоритмічних методів генерування випадкових чисел. Генератор випадкових чисел англ. Широко використовуються комп'ютерні системи для генерації випадкових чисел але часто вони малоефективні.

Украинкский

2013-07-31

89.26 KB

3 чел.

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

ВІННИЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

Кафедра ОТ

Лабораторна робота №9

«Генерування випадкових чисел»

Виконав ст..гр.1КІ-08

Морозов Артем

Мета роботи: Усвідомити важливість проблеми генерування випадкових чисел під час вирішення задач захисту інформації, ознайомитися з деякими способами генерування псевдовипадкових чисел, усвідомити сильні і слабкі сторони алгоритмічних методів генерування випадкових чисел.

Генератор випадкових чисел (англ. Random number generator; часто скорочується як RNG, ГВЧ) — обчислювальний або фізичний пристрій, спроектований для генерації послідовності номерів чи символів, які не відповідають будь-якому шаблону, тобто є випадковими. Широко використовуються комп'ютерні системи для генерації випадкових чисел, але часто вони малоефективні. Ці функції, можливо, забезпечують достатньо випадковості для певних завдань (наприклад, для відеоігор), але є непридатними в тих випадках, коли потрібна «високоякісна випадковість», як, наприклад, у криптографічних програмах, статистиці або чисельному аналізі. Методи добування випадкових результатів існували здавна, зокрема, використання гральних костей, підкидання монети, тасування ігрових карт та ін.

Реалізація ГВЧ

Приклад роботи програми генератора випадкових чисел

Напишимо програму «Генератор випадкових чисел» на С++

#include<iostream>

#include<windows.h>

#pragmacomment(lib, "advapi32.lib")

intmain()

{

HCRYPTPROV hProvider = 0;

if (!::CryptAcquireContextW(&hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_SILENT))

 return 1;

const DWORD dwLength = 8;

BYTE pbBuffer[dwLength] = {};

if (!::CryptGenRandom(hProvider, dwLength, pbBuffer))

{

 ::CryptReleaseContext(hProvider, 0);

 return 1;

}

for (DWORD i = 0; i <dwLength; ++i)

 std::cout<<std::hex<<static_cast<unsigned int>(pbBuffer[i]) <<std::endl;

if (!::CryptReleaseContext(hProvider, 0))

 return 1;

}

Також покажимоКриптографічне забезпечення випадкових чисел в Windows з використаннямCryptoAPI (фрагмент , для виклику функції).

HMODULE hLib=LoadLibrary("ADVAPI32.DLL");

if (hLib) {

BOOLEAN (APIENTRY *pfn)(void*, ULONG) =

     (BOOLEAN (APIENTRY *)(void*,ULONG))GetProcAddress(hLib,"SystemFunction036");

if (pfn) {

charbuff[32];

 ULONG ulCbBuff = sizeof(buff);

if(pfn(buff,ulCbBuff)) {

// usebufffullofrandomgoop

 }

}

FreeLibrary(hLib);

}

Генерування випадкових чисел

Висновки В даній лабораторній роботі було  ознайомлено з деякими способами генерування псевдовипадкових чисел, усвідомлено сильні і слабкі сторони алгоритмічних методів генерування випадкових чисел. Написано програму генерування випадкових чисел.


 

А также другие работы, которые могут Вас заинтересовать

6817. The SELECT statement in SQL Oracle. Basic features 287 KB
  The SELECT statement in SQL Oracle. Basic features Purpose of the lab To study general SQL Oracle possibilities in searching data in database tables. To acquire practical skills in searching data in database tables by using SQL*Plu...
6818. Базова VTP конфігурація 200 KB
  Базова VTP конфігурація Мета роботи Після виконання цієї лабораторної роботи ви зможете: Створити мережу відповідно до діаграми топології Видалити стартову конфігурацію і перезавантажити комутатор у режим по замовчуванню Налаштуват...
6819. Вивчення роботи протокольного стеку ТСР/ІР 162.5 KB
  Вивчення роботи протокольного стеку ТСР/ІР. Мета роботи: ознайомитись з роботою протокольного стеку ТСР/ІР. Навчитись здійснювати конфігурування ТСР/ІР протоколу. Порядок виконання роботи. Ознайомитись з короткими теоретичними відомостями...
6820. Контроль целостности файловой системы Linux с помощью утилиты Tripwire 122.5 KB
  Контроль целостности файловой системы Linux с помощью утилиты Tripwire Путем вычисления контрольной суммы можно не только определить подлинность дистрибутива перед установкой, но и регулярно проверять целостность системных файлов в процессе работы в...
6821. SQL Oracle functions. Additional clauses of SELECT statement 272 KB
  SQL Oracle functions. Additional clauses of SELECT statement Purpose of the lab To study SQL Oracle functions and SGROUPBY, HAVING, ORDERBY clauses of SELECT statement. To acquire practical skills in SQL Oracle function...
6822. Исследование организации переходов в программе 213.5 KB
  Исследование организации переходов в программе Контрольные вопросы Назовите три типа команды безусловного перехода. JMP - переход безусловный: переход типа short (короткий переход) - если адрес перехода находится в пределах от...
6823. Базовий Spanning Tree Protocol 266 KB
  Базовий Spanning Tree Protocol Мета роботи Після виконання цієї лабораторної роботи ви зможете: Створити мережу відповідно до діаграми топології Видалити стартову конфігурацію і перезавантажити комутатор у режим по замовчуванню...
6824. Функции SQL Oracle. Дополнительные фразы предложения SELECT 370 KB
  Функции SQL Oracle. Дополнительные фразы предложения SELECT Цели лабораторной работы Изучить функции SQL Oracle, а также фразы GROUPBY, HAVING, ORDERBY предложения SELECT. Приобрести практический опыт по использованию ф...