The first is that I am a lazy bum. When I first received the router and installed the system, I did not spend any time checking the manual to change the code. I reasoned that my PC would remember it and that my time was better spent elsewhere. Wrong - I ended up typing it in several devices, multiple times, and writing it out on pieces of sheet whenever a guest would come and visit us. But this is the kind of evil unknown to Shakespeare - it will not outlive me (check Antonio's speech in Julius Caesar to make sure you see what I mean).
The second thing is that Fastweb must be run by people who do not have a clue, and employ software developers who either do not give a damn about the sanity of Fastweb customers or who like a prank every now and then. For come on, a code with upper- and lowercase letters plus numbers, 24 characters long ???
I realized this had to be a Fastweb thing when I received the new code of the wireless service I am getting through the new router I got from Tre.it, my new provider in Padova. It is 8 characters long, and uses only uppercase letters and numbers. Is it weak ? For sure it is weaker than the Fastweb one, but which one is commensurate to the task at hand (protecting me from somebody stealing my bandwidth, the horror, the horror) ?
24 characters totally uncorrelated with one another make up for a bunch of possible combinations. I remember a sci-fi tale when tibetan monks were spelling out all 9 billions of possible God's names, after which the Universe would come to a stop. Those monks would have to grow longer beards if they had to work it out with Fastweb codes, as the 62 characters (26+26+10) can be arranged in 24-long strings in a total of 62^24 ways. How big is that number ?
I imagine every reader of this post know that it must be a pretty large number of combinations, but I wonder how many can actually turn it into a scientific notation by heart, within a reasonable approximation. So here is my way of doing it, typed while I'm traveling on a train with no aids. I first consider the first digit in the base, 6. I reckon that 6^3 is about 200, so 62^3 must be close to 200,000. Now, since 62^24 is (62^3)^8, this now becomes 200,000^8, which is easy: 2^8 is 256, hereafter 2*10^2; and (10^5)^8 is 10^40. All in all, 62^24 is therefore very close to 2*10^42.
2 times 10^42 is a ginormic number. If we used all the computers in the world in parallel to try and crack the code, each checking a billion codes a second, we would crack about 10^20 codes per second. It would take them 10^22 seconds to get halfway through the job; on the other hand, the Universe itself is only 1.4*10^10 years old, or 3*10^17 seconds old. In other words, all the computing power on Earth would require a testing time of 30,000 times the Universe's lifetime, to get halfway done! Isn't this perhaps a bit too much on the safe side, you cunning Fastweb developers?
On the other hand, take the new tre.it code: just eight characters, chosen among 26+10. That is 36^8 combinations. Since 36^2 is not too much larger than 1000 we take that approximation, from which we immediately infer that 36^8 is larger than 10^12. This is a trillion combinations (the exact number is larger, about 3 trillions). A single PC cracking a billion codes per second would take about half an hour to get it, on average. Is it weak ? I don't think so. First of all, 10^9 codes per second are a lot. Second, who would bother cracking my code anyway ?
In summary: thanks, tre.it developers. Go fistf*** yourselves, Fastweb nerds. And I hope that, besides allowing me to download some frustration here by having a chance to send insults around, you have realized how easy it is to work with large exponentials - you need third-grader math to manage them, not more than that!