It’s 3 AM. Do you know what your computer is doing?

Some years ago, a cryptographer proposed a “Chinese Lottery” in which some consumer good such as televisions sold in a particular country (e.g., China) would have an embedded chip that would be used by the government for brute-force cryptanalysis. The television that successfully decrypted a message would indicate to the user that they had won the lottery, and to contact the authorities with a special code in order to claim their prize. This gives the government a huge amount of computing power “for free”, by making consumers pay for it when they purchase the television, and by motivating them to return the results.

Of course, personal computers are now ubiquitous in many parts of the world, generally have more spare computing power than the hypothetical chip in the television, and have two-way communications via the internet. SETI@home started in 1999 as a way to take advantage of this excess computing power to further scientific research. It was followed by Folding@home, and now there are a whole slew of widely distributed computing projects, also known as “grid computing“. There are now general-purpose volunteer grid computing platforms, such as Fedora Nightlife, so that you don’t even have to choose a specific project to which to donate your spare cycles.

One might question whether donating “spare” cycles is really a net benefit; no matter how worthy the project taking advantage of the cycles, it is using more electric power and thus in most cases harming the environment in various ways. There may be other, less obvious reasons to question the benefits of donating compute cycles.

Volunteer grid computing power can reasonably be anticipated to grow substantially in the near future, as more PCs are equipped with graphics cards having GPUs supporting general-purpose computing (e.g., OpenCL, Brook+/CAL, and CUDA), and the grid clients start taking advantage of them. It is reported that the Folding@home client already is able to use Brook.

The volunteer grid computing platforms generally select only certain projects based on their merits, but there are also commercial grid computing platforms, where projects pay for use of the grid, and grid participants get paid for the computing they perform. In the commercial scenario, presumably the grid administration and grid participants don’t care what the computation is used for, as long as it is purchased.

The government has long been the primary user of supercomputers for various military purposes such as weapons design and cryptanalysis. One of the most recently purchased supercomputers, the IBM Roadrunner, sold for US$133 million and achieves sustained performance of just over 1 teraflop. By comparison, the Folding@home volunteer grid has sustained performance slightly under 2 teraflops, and yet cost the project very little since the equipment costs are borne by the volunteers.

Provided that they decompose problems into work units that don’t in and of themselves reveal any classified information, the government might be able to use a commercial grid rather than purchasing a supercomputer. The main advantage would be paying for the computing power only on demand, rather than as a fixed asset.

But could they do that using a volunteer grid?

Here’s the thought experiment: if the nature of the work units can be made sufficiently abstract, they could perhaps be disguised as serving some other purpose that is supported by a volunteer grid. When you’re contributing to a volunteer grid, how do you know that your work units are really serving the project you expect? Perhaps you’re actually running NSA@home or Nukes@home, without even knowing it.

Note that this type of clandestine grid computing is most plausible with general-purpose grids or with grids that use closed-source clients. Although the major dedicated grid computing projects have resisted the idea of releasing their client code as open source software, concern over this possibility might influence their position in the future.

[The basic idea came out of a conversation with a friend who probably prefers to remain nameless. "NSA@home" is in reference to a hypothetical clandestine project, not to this.]

This entry was posted in Computing, Cryptography. Bookmark the permalink.

Leave a Reply