Randomness

From Maze

(Difference between revisions)
Jump to: navigation, search
Line 95:Line 95:
== Randomness in Contemporary Computing ==
== Randomness in Contemporary Computing ==
−
Randomness is not always visible to the everyday computers user, but is often employed 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 pseudorandom 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 to 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 access to legitimate users, randomness is employed. 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 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.
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 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.

Revision as of 17:35, 16 July 2011

View this revision of Randomness.

Personal tools