levant's cyberspace

/blogposts/20220821.html

MENU

mkp224o


mkp224o is a tool that generates onion v3 links by bruteforcing keys.
i have used this tools various times, for example to create one of my tor mirrors: levant7s4d2n2guooxi6sjyw55fhowbaq4xvj4xh44ph6kyecvk2yxid.onion.

some informations about it:
github page:https://github.com/cathugger/mkp224o

syntax: ./mkp224o filter(s) [options]
you decide which filter to use and the tool will try and bruteforce keys that match the filter you gave it. the longer the filter is, the longer it will take.

there is quite a difference between trying to bruteforce a 4 character long filter and an 8 character long filter. the latter takes so much longer.
because of the variety of hardware and the luck factor it's impossible to pinpoint how much time mkp224o needs to find an address. but there is a formula for it.

t = log(1-p) / log(1-(1/32^n))

taking all of these into considerations, the amount of tries the tool must do to have a 25% chance of finding a 5 character long filter is:

t = log(1-25%) / log(1-(1/32^5))
t = 9653008

so it would take any computer that amount of tries before having a 25% chance of having found a 5 character long filter.
you can know how many times your computer has tried to bruteforce it by using the -s argument with mkp224o which prints statistics every 10 seconds.
the first statistic should be calculations per second and the last should be how many seconds have passed.
multiply the calculations per second and the seconds elapsed and you get the amount of tries.

here is a table for filters that are long 5 to 10 characters.

50% 80% 90% 95% 99%
5 23258160 54003775 77261934 100520094 154523868
6 744261118 1728120799 2472381917 3216643035 4944763834
7 23816355775 55299865590 79116221365 102932577139 158232442729
8 762123384785 1769595698904 2531719083689 3293842468474 5063438167378
9 24387948313145 56627062364953 81015010678099 105402958991244 162030021356198
10 780414346020669 1812065995678540 2592480341699209 3372894687719879 5184960683398419

and, just for shits and giggles, it is expected that you will find at least one match for a 26 character search (abcdefghijklmnopqrstuvwxyz) after 943,463,052,902,053,176,551,776,571,056,617,937,596 trials 50% of the time.

that number is: nine hundred forty-three undecillion four hundred sixty-three decillion fifty-two nonillion nine hundred two octillion fifty-three septillion one hundred seventy-six sextillion five hundred fifty-one quintillion seven hundred seventy-six quadrillion five hundred seventy-one trillion fifty-six billion six hundred seventeen million nine hundred thirty-seven thousand five hundred ninety-six.

my pc does 30,000,000 calculations per second, so it would take me 31448768430068439218392552368553 seconds to have a 50% chance of finding a match. that's 996571799141705422576697 years. (nine hundred ninety-six sextillion five hundred seventy-one quintillion seven hundred ninety-nine quadrillion one hundred forty-one trillion seven hundred five billion four hundred twenty-two million five hundred seventy-six thousand six hundred ninety-seven).

to put that into perspective, the universe is about 13.8 billion years old.

or, if you really get lucky and hit the 0.00000000000000000000000000001% chance of finding one, you will find it after approximately 137 million tries.