Randomness

From Maze

(Difference between revisions)
Jump to: navigation, search
(→Randomness in Contemporary Computing)
(→Randomness in Contemporary Computing (Sidebar))
Line 97:Line 97:
In the many examples of randomness given here, the random element of the process -- whether computational, literary, or aesthetic -- is often foregrounded, or at least obvious. Randomness is not always visible, however, even though it is often used in ordinary computing tasks. Randomness plays an essential role in the security of networked computers, for instance, and is also a part of popular computer games. Other uses of randomness lie beyond the everyday computing experience, but security, networking, and gaming are a few of the ones that are closest at hand.
In the many examples of randomness given here, the random element of the process -- whether computational, literary, or aesthetic -- is often foregrounded, or at least obvious. Randomness is not always visible, however, even though it is often used in ordinary computing tasks. Randomness plays an essential role in the security of networked computers, for instance, and is also a part of popular computer games. Other uses of randomness lie beyond the everyday computing experience, 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 reset a password, or a CAPTCHA to keep automated spammers at bay, randomness is invoked. A non-random regular password could easily be predicted, but a random password, URL, or distorted word is much harder to crack through guessing or brute force. Randomness also plays a role behind-the-scenes of protocols such as SSH (Secure Shell) and SSL (Secure Sockets Layer) in a few ways, including the generation of keys for encryption and padding out the rest of a block when a plain-text message is too short to complete it. Without randomness, it would not 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.
+
When a computer needs to generate a new password for a user, a URL that will let someone reset a password, or a CAPTCHA to keep automated spammers at bay, randomness is invoked. A non-random password could easily be predicted, but a random password, URL, or distorted word is much harder to crack through guessing or brute force. Randomness also plays a role behind-the-scenes of protocols such as SSH (Secure Shell) and SSL (Secure Sockets Layer) in a few ways, including the generation of keys for encryption and padding out the rest of a block when a plain-text message is too short to complete it. Without randomness, it would not 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 sent is not intelligible to the intended recipients. When a collision happens, a sending computer detects the problem, sends a jamming signal, and tries to restart the transmission. But instead of restarting immediately, the computer 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, the computer that detects the problem sends a jamming signal and tries to restart the transmission. But rather than restarting immediately, the computer 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 encounter randomness in many computer games. Randomness will shuffle the cards in poker or solitaire, for example, and will be invoked to arrange jewels and tiles in casual games. Randomness may used to determine the behavior of computer opponents, whether in poker or chess. Some action, arcade-style, open-world, and other games incorporate randomness in other ways to determine what happens. Many early games and certain contemporary ones, however, are entirely deterministic. As those who discovered and exploited <i>Pac-Man</i> patterns know, it is deterministic; <i>Ms. Pac-Man,</i> in contrast, uses randomness.
A typical computer user of the 2010s will encounter randomness in many computer games. Randomness will shuffle the cards in poker or solitaire, for example, and will be invoked to arrange jewels and tiles in casual games. Randomness may used to determine the behavior of computer opponents, whether in poker or chess. Some action, arcade-style, open-world, and other games incorporate randomness in other ways to determine what happens. Many early games and certain contemporary ones, however, are entirely deterministic. As those who discovered and exploited <i>Pac-Man</i> patterns know, it is deterministic; <i>Ms. Pac-Man,</i> in contrast, uses randomness.

Revision as of 11:06, 18 July 2011

View this revision of Randomness.

Personal tools