SlideShare une entreprise Scribd logo
1  sur  12
Random Number Generation 
Стефан Байчев 
sbaychev@gmail.com 
ТУ-София, ФКСУ - КТПП 
Факултетен Номер 281611007 
Магистър - изравнително обучение
Random Number Generation ©Stefan Baychev 
Въведение 
 в програмирането често се налага използването на 
някакъв набор от случайни стойности под една или 
друга форма 
 професионалистите в областта на софтуерното 
инженерство не са напълно запознати със 
спецификите на тази тематика и често допускат 
грешки в работата си 
 Генераторите на Случайни Числа играят важна 
роля в математиката, криптографията, хазартните 
игри, симулациите чрез метода “Монте Карло” и др.
Random Number Generation ©Stefan Baychev 
Опростено Математическо 
Представяне на ГСЧ 
Математически погледнато ГСЧ могат да бъдат дефинирани като 
структура (S; μ; f; U; g), Където S представлява краен набор от състояния, μ е 
разпределената вероятност (дистрибуция) на S използвана за избирането 
на началното състояние (или сито) s0, в отношението f : S -> S е преходна 
функция, U представлява краен набор от изходни символи, а пък g : S -> U 
е изходящата функция. Състоянието еволюира спрямо броят проявления 
sn = f(sn), където n ≥ 1. Изходът при стъпка n, е un = g(sn)∈U. Всъщност un, 
представлява така наречените случайни числа генерирани от ГСЧ. Понеже 
S е крайно, генераторът ще се върне в един бъдещ момент към състояние, 
което вече е посетил (и.к. si+j = si за някой i ≥ 0 и j > 0). Тогава, sn+j = sn и un+j 
= un за всяко n ≥ i. 
Най-малкото j > 0 за което това се случи се нарича дължина на периода ρ. То 
не може да надвишава кардиналостта на S. А по конкретно, ако b бита 
биват използвани, за да представят състоянието, тогава ρ ≤ 2b. Добрите 
ГСЧ са направени, така че тяхната дължина на периода да бъде възможно 
най-близка до тази горна граница. [1] 
[1] Random Numbers. Pierre L'Ecuyer, Universite de Montreal, Montreal, Quebec, Canada
Random Number Generation ©Stefan Baychev 
Случайност, Случайни Числа 
сред физическите устройства 
 Най-скъпите Хардуерни ГСЧ 
изполват за своите изчисления, 
природни феномени като 
радиоактивен разпад или 
статичен „шум“ 
 Нормалният Компютър запълва 
своят набор от ентропия чрез 
„случайни“ явления като: времето 
между различното клавишно 
натискане, движения на мишката, 
drive seek timing, неизползвана 
RAM памет и др. [2] 
[2] http://blog.cryptographyengineering.com/2012/02/random-number- 
generation-illustrated.html
Random Number Generation ©Stefan Baychev 
Примери 
 Randu: Линейно “Съгласуван” Генератор – Linear 
Congruential Generator - лош ГСЧ 
 Netscape's SSL debacle: лош избор на входни дани за ГСЧ 
 Mrg32k3a: един положителен пример за ГСЧ, който има 
добра „случайност“, относително дълъг период и е лесен 
за внедряване алгоритъм - Комбиниран Много-Рекурсивен 
ГСЧ : Combined Multiple Recursive Generator (CMRG)
Random Number Generation ©Stefan Baychev 
Съвети при Използването и/или 
Създаването на ГСЧ 
 Входните данни за ГСЧ трябва да бъдат предварително 
обработени по определен начин, за да се предотвратят атаки 
чрез заложени входни данни – chosen input attacks 
 Входната предварителна обработка трябва да работи по начин, 
който да предотвратява атаки чрез „познати“ входни данни – 
known input attacks; това да става като се добавят непознати (за 
атакуващият) данни във входният смесителен процес на 
данните 
 ГСЧ трябва да изпозва колкото е възможно повече различни 
източници за входните данни, за да бъде избегната 
вероятността за цялостна грешка идваща от само едно 
жизненоважно място (като източник на входни данни) 
 трябва да има проверки за изходните от ГСЧ данни – дали са 
правилни [6] 
[6] http://www.cypherpunks.to/~peter/06_random.pdf
Random Number Generation ©Stefan Baychev 
Обощение и 
Заключителни Мисли 
 няма такъв всеобхватен ГСЧ, който да гарантира, че не ще 
има каквито и да е дефекти в работата си 
 ГСЧ според специфичната нужда, дали трябва да е бърз, 
“истински” случаен, равномерен и т.н. 
 няма едно решение за всеки проблем 
 съществуват такива, като следните, които имат една доста 
добра теоретична обоснованост: 
 Mersenne Тwister 
 Combined MRGs of L'Ecuyer 
 Combined LCGs of L'Ecuyer and Andres 
 Combined Tausworthe Generators of L'Ecuyer
Random Number Generation ©Stefan Baychev 
Въпроси? 
Благодаря 
Ви 
за 
Вниманието!!
Random Number Generation ©Stefan Baychev 
Триизмерна равнина с 100, 000 стойности, в 
интервала (0, 1), генерирани чрез RANDU. Всяка 
точка представлява 3 последователни псвевдо – 
случайни стойности. Ясно се вижда как стойностите 
попадат в 15 двуизмерни равнини [3] 
[3] http://en.wikipedia.org/wiki/RAND
Random Number Generation ©Stefan Baychev 
a = mixbits( time.tv_usec ); 
b = mixbits( getpid() + time.tv_sec + ( getppid() << 
12 ); 
seed = MD5( a, b ); 
nonce = MD5( seed++ ); 
key = MD5( seed++ )
Random Number Generation ©Stefan Baychev 
Имаме eдин Обектно-ориентиран пакет за ГСЧ, 
реализиран в C на базата на Mrg32k3a на канадският 
професор L'Ecuyer [4]. Той представлява Комбиниран 
Много-Рекурсивен ГСЧ, (осъществен в 64-битова 
архитектура с плаваща десетична запетая) като има 
дължина на периода ρ ≈ 2191. “Ситото”/ The Seeding на ГСЧ 
и състоянието на потока по време на която и да е стъпка е 
6-измерен вектор с 32-битови числа 
[4] Canada Research Chair in Stochastic Simulation and Optimization
Random Number Generation ©Stefan Baychev 
Vector Statistical Library (VSL) Performance Data Intel Math Kernel Library 10.3 
Update 9 
VSL random number generators are optimized for latest Intel(R) processors, including 
Intel(R) Xeon(R) processor X5570, Intel(R) Xeon(R) processor E7-4870, and Intel(R) 
Xeon(R) E5-2690 processor. For earlier Intel processors, VSL generators are fully 
functional, yet not specifically optimized. 
The value of CPE (Clocks Per Element), which is independent from the processor 
clock rate, is selected as a unit of measurement. For example, if the generator 
performance is equal to 10 CPE and the processor rate is 1 GHz, then the generator 
will produce 108 random numbers per second [5] 
[5] http://software.intel.com/sites/products/documentation/hpc/mkl/vsl/vsl_performance_data.htm

Contenu connexe

En vedette

ادارة الفريق البحثي د- مني سعيد - Copy
ادارة الفريق البحثي     د- مني سعيد - Copyادارة الفريق البحثي     د- مني سعيد - Copy
ادارة الفريق البحثي د- مني سعيد - CopyDr. Mona S. El Kutry
 
A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...
A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...
A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...Grace Abraham
 
Design and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiersDesign and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiersGrace Abraham
 
Dr. mona said مهارة حل المشكلات copy
Dr. mona said  مهارة حل المشكلات   copyDr. mona said  مهارة حل المشكلات   copy
Dr. mona said مهارة حل المشكلات copyDr. Mona S. El Kutry
 
Implementation of 1 bit full adder using gate diffusion input (gdi) technique
Implementation of 1 bit full adder using gate diffusion input (gdi) techniqueImplementation of 1 bit full adder using gate diffusion input (gdi) technique
Implementation of 1 bit full adder using gate diffusion input (gdi) techniqueGrace Abraham
 
حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري
حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري
حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري Dr. Mona S. El Kutry
 
MEMS ACCELEROMETER BASED NONSPECIFIC – USER HAND GESTURE RECOGNITION
MEMS  ACCELEROMETER  BASED NONSPECIFIC – USER HAND GESTURE  RECOGNITIONMEMS  ACCELEROMETER  BASED NONSPECIFIC – USER HAND GESTURE  RECOGNITION
MEMS ACCELEROMETER BASED NONSPECIFIC – USER HAND GESTURE RECOGNITIONGrace Abraham
 

En vedette (11)

ادارة الفريق البحثي د- مني سعيد - Copy
ادارة الفريق البحثي     د- مني سعيد - Copyادارة الفريق البحثي     د- مني سعيد - Copy
ادارة الفريق البحثي د- مني سعيد - Copy
 
Your personal computer[1]
Your personal computer[1]Your personal computer[1]
Your personal computer[1]
 
Mapas conceptuales triangulos
Mapas conceptuales triangulosMapas conceptuales triangulos
Mapas conceptuales triangulos
 
A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...
A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...
A 128 kbit sram with an embedded energy monitoring circuit and sense amplifie...
 
Design and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiersDesign and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiers
 
Sweden
SwedenSweden
Sweden
 
Dr. mona said مهارة حل المشكلات copy
Dr. mona said  مهارة حل المشكلات   copyDr. mona said  مهارة حل المشكلات   copy
Dr. mona said مهارة حل المشكلات copy
 
Implementation of 1 bit full adder using gate diffusion input (gdi) technique
Implementation of 1 bit full adder using gate diffusion input (gdi) techniqueImplementation of 1 bit full adder using gate diffusion input (gdi) technique
Implementation of 1 bit full adder using gate diffusion input (gdi) technique
 
حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري
حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري
حقيبة تعزيز الثقة بالنفس اعداد وتقديم د. مني القطري
 
MEMS ACCELEROMETER BASED NONSPECIFIC – USER HAND GESTURE RECOGNITION
MEMS  ACCELEROMETER  BASED NONSPECIFIC – USER HAND GESTURE  RECOGNITIONMEMS  ACCELEROMETER  BASED NONSPECIFIC – USER HAND GESTURE  RECOGNITION
MEMS ACCELEROMETER BASED NONSPECIFIC – USER HAND GESTURE RECOGNITION
 
презентация
презентацияпрезентация
презентация
 

Random number generation

  • 1. Random Number Generation Стефан Байчев sbaychev@gmail.com ТУ-София, ФКСУ - КТПП Факултетен Номер 281611007 Магистър - изравнително обучение
  • 2. Random Number Generation ©Stefan Baychev Въведение  в програмирането често се налага използването на някакъв набор от случайни стойности под една или друга форма  професионалистите в областта на софтуерното инженерство не са напълно запознати със спецификите на тази тематика и често допускат грешки в работата си  Генераторите на Случайни Числа играят важна роля в математиката, криптографията, хазартните игри, симулациите чрез метода “Монте Карло” и др.
  • 3. Random Number Generation ©Stefan Baychev Опростено Математическо Представяне на ГСЧ Математически погледнато ГСЧ могат да бъдат дефинирани като структура (S; μ; f; U; g), Където S представлява краен набор от състояния, μ е разпределената вероятност (дистрибуция) на S използвана за избирането на началното състояние (или сито) s0, в отношението f : S -> S е преходна функция, U представлява краен набор от изходни символи, а пък g : S -> U е изходящата функция. Състоянието еволюира спрямо броят проявления sn = f(sn), където n ≥ 1. Изходът при стъпка n, е un = g(sn)∈U. Всъщност un, представлява така наречените случайни числа генерирани от ГСЧ. Понеже S е крайно, генераторът ще се върне в един бъдещ момент към състояние, което вече е посетил (и.к. si+j = si за някой i ≥ 0 и j > 0). Тогава, sn+j = sn и un+j = un за всяко n ≥ i. Най-малкото j > 0 за което това се случи се нарича дължина на периода ρ. То не може да надвишава кардиналостта на S. А по конкретно, ако b бита биват използвани, за да представят състоянието, тогава ρ ≤ 2b. Добрите ГСЧ са направени, така че тяхната дължина на периода да бъде възможно най-близка до тази горна граница. [1] [1] Random Numbers. Pierre L'Ecuyer, Universite de Montreal, Montreal, Quebec, Canada
  • 4. Random Number Generation ©Stefan Baychev Случайност, Случайни Числа сред физическите устройства  Най-скъпите Хардуерни ГСЧ изполват за своите изчисления, природни феномени като радиоактивен разпад или статичен „шум“  Нормалният Компютър запълва своят набор от ентропия чрез „случайни“ явления като: времето между различното клавишно натискане, движения на мишката, drive seek timing, неизползвана RAM памет и др. [2] [2] http://blog.cryptographyengineering.com/2012/02/random-number- generation-illustrated.html
  • 5. Random Number Generation ©Stefan Baychev Примери  Randu: Линейно “Съгласуван” Генератор – Linear Congruential Generator - лош ГСЧ  Netscape's SSL debacle: лош избор на входни дани за ГСЧ  Mrg32k3a: един положителен пример за ГСЧ, който има добра „случайност“, относително дълъг период и е лесен за внедряване алгоритъм - Комбиниран Много-Рекурсивен ГСЧ : Combined Multiple Recursive Generator (CMRG)
  • 6. Random Number Generation ©Stefan Baychev Съвети при Използването и/или Създаването на ГСЧ  Входните данни за ГСЧ трябва да бъдат предварително обработени по определен начин, за да се предотвратят атаки чрез заложени входни данни – chosen input attacks  Входната предварителна обработка трябва да работи по начин, който да предотвратява атаки чрез „познати“ входни данни – known input attacks; това да става като се добавят непознати (за атакуващият) данни във входният смесителен процес на данните  ГСЧ трябва да изпозва колкото е възможно повече различни източници за входните данни, за да бъде избегната вероятността за цялостна грешка идваща от само едно жизненоважно място (като източник на входни данни)  трябва да има проверки за изходните от ГСЧ данни – дали са правилни [6] [6] http://www.cypherpunks.to/~peter/06_random.pdf
  • 7. Random Number Generation ©Stefan Baychev Обощение и Заключителни Мисли  няма такъв всеобхватен ГСЧ, който да гарантира, че не ще има каквито и да е дефекти в работата си  ГСЧ според специфичната нужда, дали трябва да е бърз, “истински” случаен, равномерен и т.н.  няма едно решение за всеки проблем  съществуват такива, като следните, които имат една доста добра теоретична обоснованост:  Mersenne Тwister  Combined MRGs of L'Ecuyer  Combined LCGs of L'Ecuyer and Andres  Combined Tausworthe Generators of L'Ecuyer
  • 8. Random Number Generation ©Stefan Baychev Въпроси? Благодаря Ви за Вниманието!!
  • 9. Random Number Generation ©Stefan Baychev Триизмерна равнина с 100, 000 стойности, в интервала (0, 1), генерирани чрез RANDU. Всяка точка представлява 3 последователни псвевдо – случайни стойности. Ясно се вижда как стойностите попадат в 15 двуизмерни равнини [3] [3] http://en.wikipedia.org/wiki/RAND
  • 10. Random Number Generation ©Stefan Baychev a = mixbits( time.tv_usec ); b = mixbits( getpid() + time.tv_sec + ( getppid() << 12 ); seed = MD5( a, b ); nonce = MD5( seed++ ); key = MD5( seed++ )
  • 11. Random Number Generation ©Stefan Baychev Имаме eдин Обектно-ориентиран пакет за ГСЧ, реализиран в C на базата на Mrg32k3a на канадският професор L'Ecuyer [4]. Той представлява Комбиниран Много-Рекурсивен ГСЧ, (осъществен в 64-битова архитектура с плаваща десетична запетая) като има дължина на периода ρ ≈ 2191. “Ситото”/ The Seeding на ГСЧ и състоянието на потока по време на която и да е стъпка е 6-измерен вектор с 32-битови числа [4] Canada Research Chair in Stochastic Simulation and Optimization
  • 12. Random Number Generation ©Stefan Baychev Vector Statistical Library (VSL) Performance Data Intel Math Kernel Library 10.3 Update 9 VSL random number generators are optimized for latest Intel(R) processors, including Intel(R) Xeon(R) processor X5570, Intel(R) Xeon(R) processor E7-4870, and Intel(R) Xeon(R) E5-2690 processor. For earlier Intel processors, VSL generators are fully functional, yet not specifically optimized. The value of CPE (Clocks Per Element), which is independent from the processor clock rate, is selected as a unit of measurement. For example, if the generator performance is equal to 10 CPE and the processor rate is 1 GHz, then the generator will produce 108 random numbers per second [5] [5] http://software.intel.com/sites/products/documentation/hpc/mkl/vsl/vsl_performance_data.htm