Thank you, decondx, for responding. I actually read your response with interest and everything you said I actually agreed with. So at the very least I do understand what you are saying.
I want to continue the conversation using your exaggerated small numbers to re-phrase my question in a way that maybe everyone will understand what I am trying to get at. So the attacker figured out how the firmware generated the random numbers and basically re-generated the list of them, let's use the 1,000 figure that you used. He checks those 1,000 seeds and takes any bitcoin he finds. Now in this same non-existent universe I, Kresp Rowland, am getting ready to launch a Hardware Wallet company. I'm about to go live with my marketing campaign and the Coldcard wallet exploit takes place. I decide even though you did say it was "Technically, possible. But highly unlikely." that my Hardware Wallet should "CHECK for those numbers" when generating the random seed number and if one is accidentally picked I would have my Hardware Wallet re-pick another number. I have a confab with my engineers and they write a whole additional subroutine in my Hardware Wallet code to specifically skip around the 1,000 numbers that the Coldcard wallet was using. Would that not be a prudent thing for a Wallet Hardware manufacturer to do?
Sticking with the 1,000 number (To keep the conversation sane even though we both know the numbers we're working with are larger in our actual universe) let's say my engineers find that the Coldcard was generating all of its seeds between 67,500 and 68,500. Let's say for the sake of conversation that the entire ECDSA space that all bitcoin seeds are being generated from is 100,000. (I know in our universe it's 1.15^77). So the chances of randomly picking a number that falls within the 67,500 thru 68,500 space is unlikely as you stated earlier. But technically possible. It seems like it would be a trivial thing to exclude these 1,000 numbers from a seed picking subroutine. Unless the numbers are not neatly grouped together like I have described. Perhaps their are 10 of them in 100 groups. For example maybe 935 - 944 represent the first 10 of the 1,000 numbers. Then 1,935 - 1,944 represent the 2nd 10, 2,935 - 2,944 represent the 3rd 10, all the way to 99,935 - 99,944 representing the last 10. Ten numbers occurring in each of the 100 sets of a thousand throughout the ECDSA space. If this is how the Coldcard distributed its weak entropy then writing a subroutine to exclude those numbers would be more difficult. And posting a list of them on your office wall so that you could make sure that any of your coin flips did not pick one would be difficult since the list would be over a trillion numbers in size. With 40 binary bits set to 1 you get 1 trillion 99 billion etc. It was also my understanding that one of the other models generated closer to 72 bits of entropy. So that would be an even larger pool of numbers. But if the numbers were grouped into a tight subset as in the first half of my example. i.e. 67,500 thru 68,500. If this is the case then I would like to know what that range is?
I am not getting ready to launch a Hardware Wallet company. I simply used that as an example. But I have been working on a security project relating to the Seed Phrase and the Private Key. I would love to have some of this information regarding the actual seed numbers the Coldcard wallet was picking to include in my project. So besides the attacker, has no one bothered to re-create the attack? Has no one bothered to create the set of seed numbers that the attacker created? This is what I am interested in doing. But I am a bit unsure on how to get started. This is where I have been running into a bit of a wall. But perhaps it's not as simple as I'm trying to make it out to be? I assume the firmware code is complicated? If anyone can help me in this endeavor I would definately be interested. If anyone can offer to sell me a Coldcard wallet with the flawed firmware still installed on it I would definately be interested.
RE: LoyceV's response. So after getting my 128 bits or 256 bits of entropy, what I'm hearing you say is that as long as it looks random it's probably O.K.? As long as I don't have long runs of 1's or 0's over 20 or 30 in a row then the number is most likely acceptable? I agree it is highly unlikely that a coin would land on heads or tails over 100 times in a row. Or that you would roll boxcars or snake eyes on a pair of dice over 50 times in a row.
The frustrating part for me is that you can't look at the entropy and determine if it's secure or not just by looking? But I guess at the end of the day you're really just picking a number between 1 and 1.15^77. As long as you don't select a small number under a few quadrillion and as long as you don't pick one of the Coldcard's numbers you should be good?
Thank you for your time.
Kresp
Your worry is a simple misunderstanding of math.
Let's say the full field is 256 bit
Lets say the short field is 40 bit
The odds of you picking at random from a correctly done 256 bit are about 256-40 = 216 bit
Ie 1 trillion is 40 bits.
So 1 trillion x 1 trillion x 1 trillion x 1 trillion x 1 trillion x 1 trillion is only 240 bits.
1trillion x 1trillion x 1trillion x 1 trillion x 1 trillion x 1 trillion x 1 million is 262 bits
So you are asking if
1 trillion x 1 trillion x 1 trillion x 1 trillion x 1 trillion x 1 million is unsafe. The answer is no it is perfectly or very close to perfectly safe.
Here's is another way to understand a trillion .
If the entire human race counts to 125 we have 1 trillion it takes a minute which is possible and why the hack happened.
But now have us do it 1 trillion times each and that is 1 trillion minutes. Or about 1,900,000 million years.
You only cover 1 trillion x 1 trillion in the human race example and time gets long. Square 1,900,000 years and you are at a number longer than the age of the universe..
And you are only at 1 trillion to the fourth. So in practicality your fear won't happen.