I've seen someone (I think ryanc) mention before using a combination of a passphrase plus a random (weakish) seed. The seed needs to be printed out and stored somewhere safely. The beauty of this arrangement is that the seed is weak enough to be expendable, but strong enough to add some extra protection against casual hunting. If the seed is lost, you can use a program to brute force it until it finds a match for your brainwallet address. The strength of the seed is chosen so that some time (say one to two days) of brute forcing would be required.
Interesting idea, while it's far less secure than CSPRNG/PRNG, it's acceptable assuming no one know you use this method.
No, that would be security through obscurity. It's fun to have some cool secret way to generate your key, but if it's too complex, you (or your benefactors, say if you suddenly die) could risk losing the funds.
The point is that if you must use a brainwallet, the random seed will at least make it more secure against untargeted privkey hunters. Remember that each ATTEMPT at brute forcing the passphrase+seed takes 2 days, so in theory, even a reasonably common dictionary word as your passphrase could take years to crack. (In practice, a cracker is going to be using multiple cores and possibly optimised cracking methods, so it will take less time.)
Multiple seeds can be used, for example:
1. Seed #0, which is an internal seed that is not disclosed or stored. This must be brute forced when re-generating the private key, so it is quite weak. It is intended as some extra protection against an attack.
2. Seed #1 (stored in one location) which takes ~1 day to brute force if lost.
3. Seed #2 (stored in another location) which takes ~1 day to brute force if lost.
If the user has the passphrase, seed #1, and seed #2, all it takes is (say) 60 seconds to brute force the internal seed, and generate the correct privkey.
If the user loses either of the seeds, it takes 60 seconds + 1 day.
If the user loses both seeds, it takes 60 seconds + 1 day + 1 day.
That is very compicated, really. Also, if noone doesn't know your passphrase you shouldn't afraid seed compomising. Because the fact of knowing your seed can't help to hacker.
If you afraid that your passphrase will be brute forced or social hacked (as we know, people's brain provides very low enthropy) , then i have some interesting algorithm for you:
1. Create easy master passphrase you always will remember.
2. Create your own algorithm of lower passphrase derivation. It can be like:
SHA2/RIPEMD-160(my-master-passphrase-that-I-always-remember + "1")
SHA2/RIPEMD-160(my-master-passphrase-that-I-always-remember + "2")
.......
3. Use result as passphrase (following BIP39) for specific wallet. (for wallet 1 - passphrase1 + 12/24 seed)
That's it. You can use different wallets for different purposes without fear your wallets being linked (like addresses in one wallet).
Also, while only you know derivation algorithm no one can get access to your wallets even seed or/and master-passphrase compomised.
You can store your seed without any protection, you can put it into the bank or write on paper.
To hack all your wallets, hacker needs to know your
seed + master-passphrase + derivation algorithm. It's not so easy to hack such protection.