20700

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

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

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

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

Украинкский

2013-07-31

89.26 KB

2 чел.

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

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

Кафедра ОТ

Лабораторна робота №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);

}

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

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


 

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

3999. Імітаційне моделювання інвестиційних ризиків засобами ПК 219.7 KB
  Лабораторна робота. ІМІТАЦІЙНЕ МОДЕЛЮВАННЯ ІНВЕСТИЦІЙНИХ РИЗИКІВ ЗАСОБАМИ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ Вибір та обґрунтування доцільності реалізації того чи іншого інвестиційного проекту пов’язані з аналізом подій, які відбуватимуться в майбу...
4000. Амортизація. Метод рівномірної амортизації 216.18 KB
  Амортизація. Амортизація – це списання частини вартості активу (як правило основних засобів), яке пов’язане з його використанням у процесі отримання доходу. Списання відбувається поступово по мірі зносу активу, в залежності від строку його...
4001. Изучение пакета NetCracker Pro 205.99 KB
  Лабораторная работа № 1 Изучение пакета NetCracker Pro Цель работы: познакомиться с основными возможностями пакета NetCracker Pro и получить навыки построения компьютерных сетей. Краткое руководство по использованию программы NetCracker Pro. Програм...
4002. Изучение центрального соударения двух тел. Проверка второго закона Ньютона 192.98 KB
  ЛАБОРАТОРНАЯ РАБОТА № 2 Изучение центрального соударения двух тел. Проверка второго закона Ньютона Цель работы 1. Экспериментальная проверка законов упругого и неупругого центрального соударения для системы двух тележек, движущихся с малым трением. ...
4003. Термінологія дисципліни Компютерні системи захисту інформації 213.52 KB
  Згідно з нормативним документом системи технічного захисту інформації “Термінологія у галузі захисту інформації в комп’ютерних системах від несанкціонованого доступу” НД ТЗІ 1.1-003-99 : автоматизована система (АС) - це організаційно-технічна система, що реалізує інформаційну технологію і поєднує у собі
4004. ОПРЕДЕЛЕНИЕ МОМЕНТА ИНЕРЦИИ ТВЕРДОГО ТЕЛА 180.84 KB
  Лабораторная работа. ОПРЕДЕЛЕНИЕ МОМЕНТА ИНЕРЦИИ ТВЕРДОГО ТЕЛА. Цель работы: определение опытным путем момента инерции системы, состоящей из массивного металлического диска и шкива, насаженных на об...
4005. Діагностика захворювань шкіри. Гігієна шкіри, медична етика і деонтологія в дерматовенерології 86 KB
  Науково – методичне обґрунтування теми Вивчення теми «Діагностика захворювань шкіри. Гігієна шкіри, медична етика і деонтологія в дерматовенерології. Принципи лікування хворих із шкірними та венеричними захворюваннями. Загальне і зовнішне лікув...
4006. Основи екології. Конспект лекцій 1.43 MB
  Основні екологічні проблеми сучасності Визначення, завдання, значення і структура екології. Основні етапи розвитку екології. Українська екологічна школа. Основні екологічні проблеми сучасності. Джерела екологічної кризи сучасності та її вп...
4007. Педагогическая генетика 598.5 KB
  Педагогическая генетика Генетика и биология развития могут предложить довольно мощный резерв для перестройки современной педагогики – некую новую область знаний, которую мы назовем педагогической генетикой. Это новое направление основано на дву...