Skip to content

MinisculeGirraffe/Sanity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Sanity

A vanity ED25519 SSH Key Generator

The last 43 characters of an ED25519 SSH key are Base64 encode, meaning they can contain arbitrary text.

Each Base64 character represents 6 bits. To brute force an arbitrary 6 character string, we would have a 2^36 address space to search through. Or in other terms a 1 in 68,719,476,736 chance of generating a key that matched our desired text.

My M1 MacBook can generate about 380,000 keys per second. Meaning to find one key it would take 181,343 seconds or 50 hours.

This search space also scales linearly with compute. Below are the speeds calculating

Max Threads

CPU Speed
Apple M1 (8 threads) 380,000 keys/s
Xeon E5-2683 v4 (32 threads) 400,000 keys/s
c7.16xlarge (64 threads) 960,000 keys/s

Single Threaded

CPU Speed
Xeon E5-2683 42,500 keys/s
c7.16xlarge 52,916 keys/s
Apple M1 * 79,200 keys/s

* The M1 has 4 Performance cores, and 4 Efficiency cores, which is why it doesn't scale linearly when utilizing all CPU cores.

Time needed to brute force arbitrary characters at various lengths at 380k/keys/s

Base64 Chars Address Space Time Needed
5 chars 2^30 47 Minutes
6 chars 2^36 2 Days
7 chars 2^42 4.5 Months

About

Vanity ED25519 SSH Key Bruteforcer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages