SHA-1 Cracking On A Budget
cloude-pottier writes "An enterprising individual went on eBay and found boards with more than half a dozen Virtex II Pro FPGAs, nursed them back to life and build a SHA-1 cracker with two of the boards. This is an excellent example of recycling, as these were originally a part of a Thompson Grass Valley HDTV broadcast system. As a part of the project, the creator wrote tools designed to graph the relationships between components. He also used JTAG to make reverse engineering the organization of the FPGAs on the board more apparent. More details can be seen on the actual project page."
But I have no idea what that summary or TFA are about.
Yeah, except that for "general computing" they are not at all "fairly pointless". Also, the explanation seem to want to indicate that an FPGA can more or less only be programmed to perform number crunching, which is as off-track from the truth as can possibly be.
A more proper description of an FPGA would be "electronics simulator", as you can with an FPGA "program" resistors, caps, transistors, logic gates etc. with these, thus "program" an IC of your choice, or, for example, a Z80 or M68K core with accompanying graphics chips, sound, USB facilities, networking and more, and create an entire computer-on-a-chip. Just an example out of many.
For the record the company is Thomson and that is a peice of equipment known as the Princeton Engine used by the IC developers to quickly verify their software/algorythms. It was lying around in our computer room (known as the Princeton Engine room) for years. Its replacement is from Cadence and is called Palladium and has the power of several hundred of those old fpga boards.
Not really, guys have been reprogramming FPGA for cracking and Crypto work for a long time now. I remember back in the day when they cracked the system first used for DirectTV it was done with a system close to this, Now you can get FTA recievers that recieve all of DirecTV programming for free and you have to update your firmware once every 2-3 months when they change the hash key. The guys releasing the firmwares crack the new key in a matter of 1 hour by using such a setup.
Works great, and that is what FPGA's were designed for number crunching. Unlike what the summary says, video and audio processing were an afterthought.
hmm... you seem to know a lot about FPGAs, so I'll ask you something I've been wondering for a while...
Coming from a traditional software end of things, I'm used to seeing "accelerating co-processors" available to do useful tasks much faster than the main CPU. I'm thinking not only the FPU (when it was a separate chip), but things like a modern GPU and such. Many of these have been slowly integrated back into the CPU as time has gone on, the FPU being the best example, so now it's something you can just call on with a special instruction.
From my understanding, FPGAs are mainly all generic logic blocks, arranged in fancy ways, and therefor are rather "generic" like the general CPU - you have to implement any fancy processing yourself.
My question is has anybody thought about putting fancy co-processing hardware local to the FPGA? I'm thinking some built-in FFT units and such that you could just include anywhere in your pipeline would be really useful, and might help that "timing critical" areas by having some common "higher level" functions computed in full hardware (ASIC?) speed.
Like, as a programmer, it sounds like it'd be cool to be able to buy an FPGA with built-in FFT, CRC/MD5/etc, maybe part of some encryption routines, etc to work with as common things that need to be accelerated.
Is this sane? Does it already exist and I just don't know about it? Is it totally incompatible with how FPGAs work?
Ce n'est pas une signature automatique.
No-one has cracked Ken Thompson's UNIX password yet, and he is a co-inventor of the algorithm...