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);

}

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

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


 

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

62899. Внеклассное мероприятие, посвященное дню 8 марта: «Вечернее ТВ» 24 KB
  Цели: Развитие творческой инициативы, активности и самостоятельности учащихся; Формирование чувства ответственности за порученное дело, умения доводить его до конца; Воспитание уважительного отношения к девочкам, развития чувства доброты, желания дарить людям радость.
62900. Внеклассное мероприятие для учащихся 9–11-х классов, посвященное 8 Марта "Все для милой…" 20.44 KB
  Цель: развивать чувство уважения друг к другу, творческие способности учащихся, их индивидуальность, фантазию и изобретательность. Оформление, оборудование, инвентарь: бумага, фломастеры, канцелярские скрепки; предметы для проведения конкурсов...
62902. Внеклассное мероприятие, посвященное 23 февраля: А ну-ка, мальчики! 19.22 KB
  Ребята а вы знаете как делали книги раньше Сначала их писали на глине на коре деревьев на шкурах животных. Писали на бумаге вручную поэтому переписывание одной книги занимало не один год. Книги в то время считались роскошью.
62904. Игра «Поле чудес»: «Лекарственные растения» 23.11 KB
  Цели занятия: расширить знания учащихся о лекарственных растениях; развивать внимание память любознательность самостоятельность суждений; воспитывать бережное отношение к своему здоровью любовь к природе животному и растительному миру планеты.
62905. Косметика и мы 332.29 KB
  Правила нанесения: 1 нанести на лицо и шею увлажняющий крем; 2 увлажнить губку и нанести на нее тональный крем подходящий по цвету вашей коже; 3 немного румян нанести на скулы и растереть в направлении к ушам...