Are Your Passwords Safe: Energy-Efficient Bcrypt Cracking with Low-Cost Parallel Hardware
Katja Malvoni, Solar Designer, Josip Knezović · 2014
Bcrypt is a password hashing scheme based on the Blowfish block cipher. It was designed to be resistant to brute force attacks and to remain secure despite of hard-ware improvements [13]. Expensive key setup with user-defined cost setting makes this hash slow while rapid ran-dom 32-bit lookups using Blowfish’s variable S-boxes require 4 KB of local memory per instance. This mem-ory access pattern makes bcrypt moderately unfriendly to parallel implementation on modern CPUs, where on one hand gather addressing is required in order to exploit the CPUs ’ SIMD capabilities, and on the other even when gather addressing is in fact available the L1 data cache size becomes the limiting factor. Despite of this (and due to it), it is possible to achieve much better perfor-mance per Watt with bcrypt implementations on homo-geneous and heterogeneous multiprocessing platforms: Parallella board with 16- or 64-core Epiphany accelera-tor and ZedBoard with Zynq reconfigurable logic [16, 2]. Proposed implementations were integrated into John the Ripper password cracker resulting in improved energy efficiency by a factor of 35+ compared to heavily opti-mized implementations on modern CPUs. 1