As announced earlier, GNU Radio and Openwall offered some project ideas related to Parallella under Google Summer of Code 2013. Well, at Openwall we ended up accepting two great students to work on tasks related to Parallella (we’ve accepted a total of four students this year).
As part of her qualification task, Katja Malvoni has ported our implementation of bcrypt password hashing to Epiphany, using one core for now. The code passes validation per a test vector. During the summer, Katja is to work on getting this bcrypt implementation to run on all Epiphany cores and with greater efficiency, and having it integrated with John the Ripper password cracker. Further, she may also work on making use of the Xilinx Zynq FPGA fabric to achieve (much) greater combined performance at bcrypt. (Did you know that it’s trivial to reprogram the FPGA on ZedBoard / Parallella board from a running Linux system, in only 85 ms? This should enable us to use specialized FPGA bitstreams for different JtR formats.)
The other student accepted for Parallella related tasks is Rafael Waldo Delgado Doblas, also known as lordrafa. Rafael’s tasks include addition of scrypt support to John the Ripper using host CPU, experimenting with scrypt time-memory tradeoff, and then implementing scrypt cracking on Epiphany making use of the tradeoff (to fit in each Epiphany core’s 32 KB of local memory regardless of scrypt’s actual settings). Considering that scrypt on Epiphany makes little sense except at very low memory settings (where having to use the tradeoff doesn’t result in too much of a slowdown), the likely next task for Rafael is to implement Litecoin mining on Epiphany. Luckily (for this task), Litecoin uses scrypt at as low as 128 KB, which translates into only a ~2x expected slowdown when we reduce the memory needs to below 32 KB.
A further task potentially available to either student, if time permits – or to a non-GSoC contributor (please feel free to contact us if interested!) – is implementation of traditional DES-based crypt(3) aka descrypt cracking on both chips (Epiphany and Zynq). So far, we have descrypt cracking on Zynq’s two ARM cores, making use of NEON SIMD extensions and of both ARM cores at once (with OpenMP), but indeed that’s still only making use of a small fraction of the board’s processing power.
We’re looking forward to working with our GSoC students and with anyone else interested.
Alexander (better known as Solar Designer, @solardiz)
Openwall Project (@Openwall)