vanity openpgp key ids by the gpu
keysmith generates an ed25519 openpgp primary key on the cpu, then has an opencl gpu walk the key creation timestamp backwards until the long key id matches a hex pattern
on an amd 9070 xt / gfx1201, this currently does about 20 billion attempts/sec, so ~3s for 9 chars, ~30s for 10, and ~4h for 12
install an opencl runtime for your gpu, then:
cargo build --releaseprefix match, the default:
./target/release/keysmith c0ffee --uid "alice <alice@example.com>"suffix match:
./target/release/keysmith c0ffee --mode suffix --uid "alice <alice@example.com>"write keys somewhere else:
./target/release/keysmith 000000000 --uid "alice <alice@example.com>" -o keyspick a gpu:
./target/release/keysmith c0ffee --uid "alice <alice@example.com>" --device 1fingerprint: 0123456789ABCDEF0123456789ABCDEF00C0FFEE
key id: 0x89ABCDEF00C0FFEE
public: ./0123456789ABCDEF0123456789ABCDEF00C0FFEE.public.asc
secret: ./0123456789ABCDEF0123456789ABCDEF00C0FFEE.secret.asc
import it with:
gpg --import ./0123456789ABCDEF0123456789ABCDEF00C0FFEE.secret.ascthese are the same:
c0ffee
0xC0FFEE
C0:FF:EE
the expected work is 16^n attempts for n hex chars
prefix: 0xC0FFEE..........
suffix: 0x..........C0FFEE