04-05-2013, 03:10 PM
Parasitic Computing
Parasitic Computing.doc (Size: 167 KB / Downloads: 16)
INTRODUCTION
Parasitic computing is programming technique where a program in normal authorized interactions with another program manages to get the other program to perform computations of a complex nature. It is, in a sense, a security exploit in that the program implementing the parasitic computing has no authority to consume resources made available to the other program.
The example given by the original paper was two computers communicating over the Internet, under disguise of a standard communications session. The first computer is attempting to solve a large and extremely difficult 3-SAT problem; it has decomposed the original 3-SAT problem in a considerable number of smaller problems. Each of these smaller problems is then encoded as a relation between a checksum and a packet such that whether the checksum is accurate or not is also the answer to that smaller problem. The packet/checksum is then sent to another computer. This computer will, as part of receiving the packet and deciding whether it is valid and well-formed, create a checksum of the packet and see whether it is identical to the provided checksum. If the checksum is invalid, it will then request a new packet from the original computer. The original computer now knows the answer to that smaller problem based on the second computer's response, and can transmit a fresh packet embodying a different sub-problem. Eventually, all the sub-problems will be answered and the final answer easily calculated. So in the end, the target computer(s) is unaware that it has performed computation for the benefit of the other computer, or even done anything besides have a normal TCP/IP session.
DETAILS OF PARASITIC COMPUTING
Parasitic computing is a concept by which one can use the resources of machines that are connected on the Internet. This technology exploits open Internet protocols to use the resources of remote machines. As the name suggests, the machine that requires the services of others does not need to be authorized by the latter. Any machine, which is connected to the Internet, has to carry out minimum processing of any packet they receive without any authorization. This concept is exploited by parasitic computing in order to make use of computing powers of remote machines and web servers all around the globe. So one cannot really stop their machines from being utilized in this manner.
Parasitic computing can be a very effective technique when it comes to solve NP complete problems such as Circuit SAT, 3 SAT, etc. These problems are currently considered as some of world’s most complex and time consuming problems. These problems generally have a set of solutions which itself is a subset of a set of possible solutions.
How it differs from cluster computing?
Parasitic computing differs from cluster computing. Cluster computing is an idea in which many computers pool in their resources willingly to create a cumulative power equivalent to that of a supercomputer capable of solving complex computational problems. In contrast, parasitic computing does not require the willingness of any target machine to participate in the problem solving. This way one can make use of many distributed resources across the Internet, which is otherwise remaining idle. Also if one divides the task in such a manner that no computer is overloaded remote machine performance won’t deteriorate much and our task will be also be accomplished.
It is not cracking
Parasitic computing though works without authorization it is entirely different from the concept of cracking. In cracking data is sent to the remote computer with malicious intentions and in order to corrupt some resource of the remote machine whereas in this case we are utilizing those resources for a constructive purpose and also accessing only those parts of remote machines, which are made open on the Internet and that is done without any malicious intentions but it can cause delay of services in the remote machines as resources are being utilized without the knowledge of the owner.
REVIEW OF PARASITIC COMPUTING
Reliable communication on the Internet is guaranteed by a standard set of protocols, used by all computers. Here we show that these protocols can be exploited to compute with the communication infrastructure, transforming the Internet into a distributed computer in which servers unwittingly perform computation on behalf of a remote node. In this model, which we call `parasitic computing', one machine forces target computers to solve a piece of a complex computational problem merely by engaging them in standard communication. Consequently, the target computers are unaware that they have performed computation for the benefit of a commanding node. As experimental evidence of the principle of parasitic computing, we harness the power of several web servers across the globe, which is unknown to them work together to solve an NP complete problem. Sending a message through the Internet is a sophisticated process regulated by layers of complex protocols.
When a user selects a URL (uniform resource locator), requesting a web page, the browser opens a transmission control protocol (TCP) connection to a web server. It then issues a hyper-text transmission protocol (HTTP) request over the TCP connection. The TCP message is carried via the Internet protocol (IP), which might break the message into several packages, that navigate independently through numerous routers between source and destination. When an HTTP request reaches its target web server, a response is returned via the same TCP connection to the user's browser. The original message is reconstructed through a series of consecutive steps, involving IP and TCP; it is finally interpreted at the HTTP level, eliciting the appropriate response (such as sending the requested web page)1. Thus, even a seemingly simple request for a web page involves a significant amount of computation in the network and at the computers at the end points. The success of the Internet rests on the cooperation of and trust between all involved parties.
REVIEW OF PARASITIC COMPUTING
Reliable communication on the Internet is guaranteed by a standard set of protocols, used by all computers. Here we show that these protocols can be exploited to compute with the communication infrastructure, transforming the Internet into a distributed computer in which servers unwittingly perform computation on behalf of a remote node. In this model, which we call `parasitic computing', one machine forces target computers to solve a piece of a complex computational problem merely by engaging them in standard communication. Consequently, the target computers are unaware that they have performed computation for the benefit of a commanding node. As experimental evidence of the principle of parasitic computing, we harness the power of several web servers across the globe, which is unknown to them work together to solve an NP complete problem. Sending a message through the Internet is a sophisticated process regulated by layers of complex protocols.
When a user selects a URL (uniform resource locator), requesting a web page, the browser opens a transmission control protocol (TCP) connection to a web server. It then issues a hyper-text transmission protocol (HTTP) request over the TCP connection. The TCP message is carried via the Internet protocol (IP), which might break the message into several packages, that navigate independently through numerous routers between source and destination. When an HTTP request reaches its target web server, a response is returned via the same TCP connection to the user's browser. The original message is reconstructed through a series of consecutive steps, involving IP and TCP; it is finally interpreted at the HTTP level, eliciting the appropriate response (such as sending the requested web page)1. Thus, even a seemingly simple request for a web page involves a significant amount of computation in the network and at the computers at the end points. The success of the Internet rests on the cooperation of and trust between all involved parties.
HOW PARASITIC COMPUTING WORKS
Although any possible solution to such problems can be verified quickly, there is no known efficient way to identify a solution in the first place. In fact, the most notable characteristic for such problem is that there is no fast solution. The time required to solve such problem is exponentially proportional to the size of the problem. So, as the size of the problem grows, the time required to find all solutions of the problem grows exponentially. In fact, time required to solve a moderately large NP‐Complete problem can easily reach billions if not trillions of years using any kind of modern computing technology we have available today.