stopgp32 uses brute force to create OpenPGP keys with chosen 32-bit key IDs:
$ stopgp32 --help
Usage: stopgp32 [-u USERID] [-p] [-d DIR] [-j N] KEYID [KEYID...]
Options:
-u USERID add this user ID (default: <[email protected]>)
-p only print pem2openpgp(1) commands; don't run them
-d DIR cache RSA keys in DIR (default: ~/.cache/stopgp32)
-j N use N threads (default: 1)
-j auto use as many threads as possible
-h, --help show this help message and exit
$ stopgp32 -j auto DEADF00D
stopgp32: generating new RSA key: ................................... rsa-skt7ywez.pem
stopgp32: searching... 6.24 Mkeys/s
stopgp32: generating new RSA key: ..................... rsa-sgj8j1xb.pem
stopgp32: searching... 5.73 Mkeys/s
⋮
stopgp32: generating new RSA key: ...................... rsa-roxfdhzg.pem
stopgp32: searching... 6.24 Mkeys/s
stopgp32: found DEADF00D
$ gpg --list-packets DEADF00D.pgp | grep -w keyid:
keyid: 1B0273B0DEADF00D
Unlike scallion, it doesn't require any fancy hardware. You should get keys with requested IDs within an hour or two even on a low-end decade-old CPU.
The generated keys are suitable for demonstration purposes only. Do not use them for anything serious.