Randomness

From Maze

(Difference between revisions)
Jump to: navigation, search
Line 97:Line 97:
Randomness is not always visible to everyday computer users, though it 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. Certain uses of randomness lie farther behind the computing experience -- the use of pseudo-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.
Randomness is not always visible to everyday computer users, though it 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. Certain uses of randomness lie farther behind the computing experience -- the use of pseudo-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 legitimate users access, randomness is invoked. A regular password would allow for a password, URL, or distorted word that could be predicted. 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 happens over 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 were predictable enough to loeave the browser vulnerable to attack. The solution to this problem 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 legitimate users access, randomness is invoked. A regular password would allow for a password, URL, or distorted word that could be predicted. 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 plain-text 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 happens over 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 current time, the process ID, and the parent process ID, which were sufficiently predictable to leave the browser vulnerable to attack. Better randomness was the solution to this problem.
−
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 the problem, sending a jamming signal and trying to restart the transmission. 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 the technique of exponential backoff; the selection of one of these intervals at random is 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 sent is not intelligible to the intended recipients. When a collision happens, a sending computer that detects the problem, sending a jamming signal and trying to restart the transmission. 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 the technique of exponential backoff; the selection of one of these intervals at random is an essential part of this method of avoiding network congestion.
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 will be invoked to arrange 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 those who discovered and exploited <i>Pac-Man</i> patterns know, that game is deterministic; <i>Ms. Pac-Man,</i> in contrast, uses randomness.
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 will be invoked to arrange 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 those who discovered and exploited <i>Pac-Man</i> patterns know, that game is deterministic; <i>Ms. Pac-Man,</i> in contrast, uses randomness.

Revision as of 17:40, 16 July 2011

View this revision of Randomness.

Personal tools