Line 3: Line 3:
  
 
=== Introduction ===
 
=== Introduction ===
Randomness is not something that truly exists very often in the natural world. Things tend to obey laws that make interactions predictable. However, sometimes it is important to be able to create a random number. Take online gambling as an example, blackjack is dependent on what numbers the dealer draws for the player. If the numbers are predictable, the game doesn't work and the player could figure out if they are going to win or lose. For this reason, it is important to create randomness in the game. Math and numbers are typically thought of as anything but random, and follow strict rules around changing them. For this reason creating randomness is a unique challenge seen in modern mathematics that has been approached with several different strategies.  
+
Randomness is not something that truly exists very often in the natural world. Things tend to obey laws that make interactions predictable. However, sometimes it is important to be able to create a random number. In fact, humans have been interested in generating randomness for thousands of years. Ancient dice have been dug up and discovered that belonged to civilizations long ago. Things like dice or coins have been used by people to make decisions randomly as long as we have been around it seems. Random numbers are only something we have recently begun to understand and even more recently really began to need. Random numbers are constantly being used now in everyday life. Take online gambling as an example, blackjack is dependent on what numbers the dealer draws for the player. If the numbers are predictable, the game doesn't work and the player could figure out if they are going to win or lose. For this reason, it is important to create randomness in the game. Random numbers are also used all the time in modern video games, offering a way to generate new and unique worlds for a player. Random numbers also have uses outside of just entertainment. For example, they are vitally important in the world of cybersecurity and keeping electronic information safe. Math and numbers are typically thought of as anything but random, and follow strict rules around changing them. For this reason creating randomness is a unique challenge seen in modern mathematics that has been approached with several different unique strategies.
 +
 
 +
===Method===
 +
 
 +
Almost all random number generation involves the use of some sort of seed in order to create the number. A seed is a number that is taken from somewhere and put into an algorithm to generate the random number. Then, the newly generated number is used as the seed for the next generation. Getting the initial seed is what makes this random. This can be done by using the current time, atmospheric noise, or some other source that can provide an unpredictable value. To give an example of how this might work, we will use time to generate a seed. If you were to call on a random number generator at 11:38, the random number generator could use the current time to the millionth decimal place as a seed in order to create an unpredictable value that could not be replicated.
 +
 
 +
There are two main types of RNG: pseudo RNG, and true RNG. Pseudo RNG means that the numbers generated follow some sort of pattern, and could theoretically be predicted. In most scenarios, this isn’t a big deal. For example in a video game like Mario Kart, if the item a player is going to get from a mystery box is technically predictable or follows a pattern, it doesn’t matter too much as long as the player doesn’t catch on and is having fun. In something like online gambling however, any sort of predictability is very dangerous. If a person could predict when to bet big and make millions of dollars, that would obviously create problems. For this reason, sometimes true RNG is needed. True RNG is more complicated and difficult to do as it requires more instruments, but is more effective than pseudo RNG at creating unpredictable numbers.
  
Almost all random number generation involves the use of some sort of seed in order to create the number. A seed is a number that is taken from somewhere and put into an algorithm to generate the random number. Then, the newly generated number is used as the seed for the next generation. Getting the initial seed, is what makes this random. This can be done by using the current time, atmospheric noise, or some other source that can provide an unpredictable value. To give an example of how this might work, we will use time to generate a seed. If you were to call on a random number generator at 11:38, the random number generator could use the current time to the millionth decimal place as a seed in order to create an unpredictable value that could not be replicated
 
  
 
=== True Random Generation In Computer ===
 
=== True Random Generation In Computer ===
Line 25: Line 30:
 
===== Linear Congruential Algorithm =====
 
===== Linear Congruential Algorithm =====
  
 
+
One example of an algorithm used for pseudo-RNG is the linear congruential algorithm shown below.
 +
[[File:/Users/kenny liu/Desktop/0*mQDq7K37Lnh-066J.webp|thumbnail]]
 
===== Middle-Square algorithm =====
 
===== Middle-Square algorithm =====
 +
  
 
=== Comparison between True and Pseudo random generation, conclusion===
 
=== Comparison between True and Pseudo random generation, conclusion===
  
 
PRNG have higher convenience, since all you need is a computer and an algorithm, but a TRNG requires an external device that is costly and may need to maintain the working condition consecutively to avoid damage. However, for the cyber security part, the TRNG takes the cake. For a sequence of true random numbers, there is no relation between subsequent values besides the fact that they come from the same source of entropy, which make TRNG numbers nearly impossible to predict, and therefore much safer defenses against cyber attacks. Another disadvantage for PRNGs is that they are deterministic; because each number in the sequence relies on previous ones, they are much easier to decrypt.
 
PRNG have higher convenience, since all you need is a computer and an algorithm, but a TRNG requires an external device that is costly and may need to maintain the working condition consecutively to avoid damage. However, for the cyber security part, the TRNG takes the cake. For a sequence of true random numbers, there is no relation between subsequent values besides the fact that they come from the same source of entropy, which make TRNG numbers nearly impossible to predict, and therefore much safer defenses against cyber attacks. Another disadvantage for PRNGs is that they are deterministic; because each number in the sequence relies on previous ones, they are much easier to decrypt.

Revision as of 10:39, 29 November 2022

Random Number Generation In Modern Computer

Introduction

Randomness is not something that truly exists very often in the natural world. Things tend to obey laws that make interactions predictable. However, sometimes it is important to be able to create a random number. In fact, humans have been interested in generating randomness for thousands of years. Ancient dice have been dug up and discovered that belonged to civilizations long ago. Things like dice or coins have been used by people to make decisions randomly as long as we have been around it seems. Random numbers are only something we have recently begun to understand and even more recently really began to need. Random numbers are constantly being used now in everyday life. Take online gambling as an example, blackjack is dependent on what numbers the dealer draws for the player. If the numbers are predictable, the game doesn't work and the player could figure out if they are going to win or lose. For this reason, it is important to create randomness in the game. Random numbers are also used all the time in modern video games, offering a way to generate new and unique worlds for a player. Random numbers also have uses outside of just entertainment. For example, they are vitally important in the world of cybersecurity and keeping electronic information safe. Math and numbers are typically thought of as anything but random, and follow strict rules around changing them. For this reason creating randomness is a unique challenge seen in modern mathematics that has been approached with several different unique strategies.

Method

Almost all random number generation involves the use of some sort of seed in order to create the number. A seed is a number that is taken from somewhere and put into an algorithm to generate the random number. Then, the newly generated number is used as the seed for the next generation. Getting the initial seed is what makes this random. This can be done by using the current time, atmospheric noise, or some other source that can provide an unpredictable value. To give an example of how this might work, we will use time to generate a seed. If you were to call on a random number generator at 11:38, the random number generator could use the current time to the millionth decimal place as a seed in order to create an unpredictable value that could not be replicated.

There are two main types of RNG: pseudo RNG, and true RNG. Pseudo RNG means that the numbers generated follow some sort of pattern, and could theoretically be predicted. In most scenarios, this isn’t a big deal. For example in a video game like Mario Kart, if the item a player is going to get from a mystery box is technically predictable or follows a pattern, it doesn’t matter too much as long as the player doesn’t catch on and is having fun. In something like online gambling however, any sort of predictability is very dangerous. If a person could predict when to bet big and make millions of dollars, that would obviously create problems. For this reason, sometimes true RNG is needed. True RNG is more complicated and difficult to do as it requires more instruments, but is more effective than pseudo RNG at creating unpredictable numbers.


True Random Generation In Computer

A truly random generator could provide a random number that is barely impossible to predict. we will not explore the true random generation in detail, because it actually is not highly relative with math. Generally, a traditional computer that has the basic component cannot generate a True random number, it has to be obtained by a specific device. These devices will convert some phenomenon into a number. Some examples of TRNG sources include atmospheric noise, time, and radioactive decay.

atmospheric noise uses processes occurring in the atmosphere for its RNG. Most often, it’ll capture the static generated by lighting flashes, which occur roughly 40 times per second. (Random.org is known to use atmospheric noise to generate random outcomes for all kinds of different scenarios). For times, the device will take the exact nano second when you click the mouse as a random number, just pick one from the sequence. There is also one kind of device that uses a method called Harvest Entropy to obtain a random number using radioactivity, because the nuclear decay is not predictable.

Psedo random number generation

The PRNG relies on algorithms and programs to generate a number sequence that seems to be random. but since it is using a fixed way to produce those numbers, it could actually be reproduced and predicted. This is because computer hardware is purely logical, which means it cannot provide an output without input and processing, however that is exactly what random numbers obtain from, no source and reason. so, As suggested by the prefix “pseudo”, the sequence isn’t actually random, it just looks like it. The two main components of a PRNG are an initial value or seed, and a pre-set algorithm. it following the next several step:

  1. receive a seed as the input;
  2. Generating a number according to the preset algorithm;
  3. take the output as the input for the next computation;
  4. repeat the process until specific time or required length is achieved

Pseudo random generators are deterministic and periodic. deterministic means that the number generated is fixed whatsoever as long as the seed and the algorithm is set, periodic means after a certain amount of recursion, the algorithm will start to provide a repeated number. A good generator should last a long period.

Here is two examples of popular random generation algorithm that is currently used:

Linear Congruential Algorithm

One example of an algorithm used for pseudo-RNG is the linear congruential algorithm shown below.

Middle-Square algorithm

Comparison between True and Pseudo random generation, conclusion

PRNG have higher convenience, since all you need is a computer and an algorithm, but a TRNG requires an external device that is costly and may need to maintain the working condition consecutively to avoid damage. However, for the cyber security part, the TRNG takes the cake. For a sequence of true random numbers, there is no relation between subsequent values besides the fact that they come from the same source of entropy, which make TRNG numbers nearly impossible to predict, and therefore much safer defenses against cyber attacks. Another disadvantage for PRNGs is that they are deterministic; because each number in the sequence relies on previous ones, they are much easier to decrypt.

Alumni Liaison

Followed her dream after having raised her family.

Ruth Enoch, PhD Mathematics