Tuesday, April 7, 2020

Distributed Computing Essays (1426 words) - Distributed.net

Distributed Computing Distributed Computing Chapter 1 As the technology we use today increases in speed and usability, there are those that are happy with the fastest computer. But then there are those that either want or need to go faster than the fastest. The solution lies in and around the Internet, the solution has been rightfully termed Distributed Computing. Put simply, distributed computing is the splitting of a task among multiple computers. Hence using the power of many computers that people already have, thus sparing the cost of buying a supercomputer of equal proportions, which in some cases is impossible. Distributed Computing isn't all that hard of a concept to grasp. The first thing that would be done when setting up a distributed computing operation is the selection of the problem that you to tackle. This allows you to decide what the basic architecture of the network is going to be. To help describe the process better, I will step through the process of setting up an imaginary distributed computing project. I am bored one day, and surfing the web, and I run into RSA's homepage, were they had just announced a new competition in which they have put up an offer to give ten thousand dollars to the person that successfully cracks any one of their encryption standards under the RC5 brand. You know that RC5-56 has been cracked, and RC5-64 is being cracked using brute force distributed computing. So you decide to take on RSA most secure encryption standard, tackling the challenge to take on RC5-128, officially called RC5-32/12/16. Tackling this problem with brute force is probably the easiest method, but this cipher is 2^64 times stronger than RC5-64, so we are going to need quite the backing for this. Seeing how money is only a slight problem, we go out and buy a web server, a key server, and a so-called stats server. We also buy a copy Visual Studios 6.0, (for coding the clients). I introduced some possibly foreign terms in the last paragraph, so let me explain. A key server is possibly the most important part of a distributed computing project. Its only purpose is to keep the clients supplied with blocks of keys. The stats server being a part of the network that isn't critical to the project, but to get the amount of people we will need to crack this code, we want to make sure their happy, and geeks love stats. The client is a program that runs on a workstation, in our case, it will be testing a key against the encrypted message that was supplied to us by RSA, for this project, the encrypted message is: d9 3b 27 72 11 8a 65 cb ef 5b 06 74 63 76 22 16 84 f9 ec 21 56 3b 1c 1c 02 e1 70 10 50 d1 71 00 06 aa bf c1 38 e1 f1 f8 2d 63 57 bb 24 a9 7d 5d All the client needs to know is the first line or so, this is for speed issues, as it takes less time to test against one line, than it does to test against three, if the client thinks it has a possible code, it will put a flag on that key and send it back to the key server, which sees the flag, and tests the key against the rest of message, if it works, we send it off to RSA, and they make it official and send us our check. To reduce the load on the key server we send the keys over the internet in blocks, with somewhere between 2^34 and 2^64 keys, the bigger blocks containing 1,844,674,407,000,000,000 keys, roughly .000000003 percent of the total 33,402,823,669,000,000,000,000,000,000,000,000,000 keys, just to give you an idea of how big of a project this is. We send the keys over the Internet for the simple reason that we need lots of people and the Internet provides the perfect medium for communicating with all these people. So, we have all the hardware we need to take on this project, and now we have to code the client. We follow all basic procedures in making any program, including beta testing. After the client is ready to be released, we start