Randomness

From Maze

(Difference between revisions)
Jump to: navigation, search
(→Randomness in Contemporary Computing)
(→Randomness in Contemporary Computing)
Line 87:Line 87:
=== Randomness in Contemporary Computing ===
=== Randomness in Contemporary Computing ===
−
Randomness is not always visible to the everyday user of computers, but is often used in ordinary computing tasks. Randomness plays an essential role in the security and networking systems of networked computers, for instance.
+
Randomness is not always visible to the everyday user of computers, but is often used in ordinary computing tasks. Randomness plays an essential role in the security and networking systems of networked computers, for instance, and is also seen in popular computer games. There are certain uses of randomness that lie farther behind the computing experience - the use of random number generators for hashing, the simulation and testing of systems using randomness - but security, networking, and gaming are a few of the ones that are closest at hand.
When a computer needs to generate a new password for a user, a URL that will let someone in to reset a password, or a CAPTCHA that will help to keep automated spammers out and allow access to legitimate users, randomness is employed. A regular password would allow for a password, URL, or distorted word that could be guessed. But randomness also plays a role behind the scenes of protocols such as SSH (Secure Shell) and SSL (Secure Sockets Layer). Random values are used in a few ways, including the generation of keys for encryption and to pad out the rest of a block when the plaintext message is too short to complete it. Without randomness, it wouldn't be possible to complete a secure credit card transaction on the Web, which is protected by an SSL connection. In fact, early versions of SSL as implemented in the Netscape browser suffered from being insufficiently random. The seeds for random number generation were the the current time, the process ID, and the parent process ID, which left the browser vulnerable to attack. The solution was better randomness.
When a computer needs to generate a new password for a user, a URL that will let someone in to reset a password, or a CAPTCHA that will help to keep automated spammers out and allow access to legitimate users, randomness is employed. A regular password would allow for a password, URL, or distorted word that could be guessed. But randomness also plays a role behind the scenes of protocols such as SSH (Secure Shell) and SSL (Secure Sockets Layer). Random values are used in a few ways, including the generation of keys for encryption and to pad out the rest of a block when the plaintext message is too short to complete it. Without randomness, it wouldn't be possible to complete a secure credit card transaction on the Web, which is protected by an SSL connection. In fact, early versions of SSL as implemented in the Netscape browser suffered from being insufficiently random. The seeds for random number generation were the the current time, the process ID, and the parent process ID, which left the browser vulnerable to attack. The solution was better randomness.
Line 93:Line 93:
Computers using Ethernet - almost all of those that are plugged into wired networks - communicate with one another thanks to randomness, too. All systems on a single local area network send information over the same wire. If two of them start sending at the same time, what is known as a "collision" occurs; the data being sent is not intelligible to the intended recipients. When a collision happens, a sending computer that detects it sends a jamming signal and tries to restart. But instead of restarting immediately, it chooses at random to start or wait - and the other computer that was trying to send does the same. If there is another collision, the computers either send immediately or wait for one of three intervals. The increasing number of intervals is part of "exponential backoff," but the selection of one of them at random is also an essential part of this method of avoiding network congestion.
Computers using Ethernet - almost all of those that are plugged into wired networks - communicate with one another thanks to randomness, too. All systems on a single local area network send information over the same wire. If two of them start sending at the same time, what is known as a "collision" occurs; the data being sent is not intelligible to the intended recipients. When a collision happens, a sending computer that detects it sends a jamming signal and tries to restart. But instead of restarting immediately, it chooses at random to start or wait - and the other computer that was trying to send does the same. If there is another collision, the computers either send immediately or wait for one of three intervals. The increasing number of intervals is part of "exponential backoff," but the selection of one of them at random is also an essential part of this method of avoiding network congestion.
−
[Hashing? Simulation? Fault tolerance?]
+
A typical computer user of the 2010s will also encounter randomness when playing certain computer games. Certainly, randomness will be used when playing card games such as poker or solitaire, to shuffle the deck, and in arranging jewels and tiles in casual games. Randomness may also be used to determine the behavior of computer opponents, whether one is playing poker or chess. And some action, arcade-style, open-world and other games incorporate randomness in other ways as they determine what happens. Many early games and certain contemporary ones are entirely deterministic, however. As the discoverers and exploiters of <i>Pac-Man</i> patterns know, that game is deterministic; <i>Ms. Pac-Man,</i> in contrast, did use randomness.
−
 
−
[Games (of chance)]
 
=== The C64 and the RND Function ===
=== The C64 and the RND Function ===

Revision as of 16:00, 16 June 2011

View this revision of Randomness.

Personal tools