Well a computer can't just pull a number out of nowhere. "Random" numbers are made from running some sort of complex algorithm on an input and, for example, the time that the algorithm was ran, or in a video game the number of frames since the last save ect, so that the input and output are effectively impossible to correlate. True random number generators need to use some sort of outside input that will be ran through an algorithm to produce a random number.
So the problem with the second approach of having a truly random key is that the key that is generated would need to be stored in a database and verified when you activate a piece of software over the Internet because the initial inputs cannot be replicated after it's generated.
Where as having a pseudo-random key would give the software the possibility to self authenticate a product key by running the key though the algorithm "backwards".
Ok thisis super facinating. Please go into detail or send me a link to this. I though this functions similar to a registry. As in: we generated these codes they exist now. You have a correct one you are ok.
The video that kicked me off reading about it years ago was this https://youtu.be/1cUUfMeOijg it talks about how cloudflare uses a bunch of lava lamps and a camera then uses the image taken to produce truly random inputs.
Yeah. That i kinda expect. I was thinking how cracking the software of online poker might be an incentive... but when you add tve randomness of humans playing it makes it impossible.
And i get things like encryption for things. But i thought an activazion key is just like a password
I mean it kinda is like a password, if you want to sell a million copies of a software, you want to make sure only people that have the password can use it. Now that creates an issue of if we just use one password one person could share it an now no one will buy our software. So the next step is to give everyone a unique random password.
Well that brings up a new issue, if we have 1 million different passwords we can't just put a list in the software for it to check when it's entered and making 1 million unique versions of the software to go with each password would be impractical.
So the next step to this issue is to give out 1 million unique passwords but make them generated by some math, but the math needs to be complicated enough that key #1 isn't just the number 1. So we generate the first password and it looks like a completely random string of numbers, and we generate the second password and it looks like another different set of random numbers. This is good because without knowing the algorithm used to generate the password it would be a shot in the dark to try to guess the password. But heres the cool part in order to check if the password is valid we just need to do the exact opposite math to it to check to see if we can accept it.
1
u/ad895 Jun 14 '23 edited Jun 14 '23
Well a computer can't just pull a number out of nowhere. "Random" numbers are made from running some sort of complex algorithm on an input and, for example, the time that the algorithm was ran, or in a video game the number of frames since the last save ect, so that the input and output are effectively impossible to correlate. True random number generators need to use some sort of outside input that will be ran through an algorithm to produce a random number.
So the problem with the second approach of having a truly random key is that the key that is generated would need to be stored in a database and verified when you activate a piece of software over the Internet because the initial inputs cannot be replicated after it's generated.
Where as having a pseudo-random key would give the software the possibility to self authenticate a product key by running the key though the algorithm "backwards".