The future of cryptography (it's only my opinion) lies in one time pads (the quantic computer does, in theory at least, have a mean to securely transmit the keys). As one time pad is a perfectly secure encryption (provided the key is truely unpredictable) I hoped there also was a way to generate keys for them [...]"
There's all kinds of ways to get a one-time pad. You can have someone flip a coin or roll a dice, really. (Indeed, you could even design a
machine to flip the coin/roll the dice and record the results, as long as you don't make it
so perfect that it introduces its own predictable patterns[1]!) But if you're generating
actual one-time pads with an algorithm, you're doing it wrong.
The insecurity of one-time-pads is in the transmission/couriering of the information. If Eve gets a copy of the OTP, then she can listen to Alice and Bob freely. But a OTP with sufficient length to be useful for extensive communication
could, if captured, be analysed and
may have its underlying generating algorithm exposed... Thus (even if some key input elements to the algorithm in the next generation of the OTP) the pad that Alice and Bob share need not even be intercepted by Eve, because she's got a copy (or several possible copies), that can be used without having made any further attempts to temporarily 'borrow' the pad being used. This would never (or, as stated elsewhere, practically) be impossible using a true random source for each subsequent generation of pad.
Cryptographically, just use the algorithms straight. Let Alice encode using the algorithm and whatever key-settings are being used, and let Bob decode using the algorithm and whatever key-settings are being used. Best practice is that although you don't shout the algorithm to the world (when not making something like PGP which is
intended to be used by anyone), you still start off with the assumption that the enemy knows the method of encoding. The key/parameters used to initialise/control the algorithm are the main secret. Also, it's easier for Alice to let Bob know that she's no longer using "123456" as the main key to the algorithm, and instead using "654321", if she suspects that Eve has gamed knowledge of that first key, rather than having to give Bob a new decoding process to adopt.
Also, all PRNGs start from
some seed state, even if it's in-built and unalterable. Functionally, there's quite a lot of equivalence between a key for a cryptographic algorithm (which may even be the first few characters of the plaintext itself, although that seriously falls foul of the "assume they know the algorithm!" rule) and the seed for a PRNG that you're using to generate OTP-like sequences at each end (independently creating the same OTP based upon the same seed... that you can only hope is secure and not known by Eve Strupper herself).
The /dev/random solution, by the way, is generally very good, but eventually you may run out of 'entropy', in systems that do not have sufficient activity from which to derive the non-computed items of randomness used to fuel the /dev/random process. The /dev/urandom alternative actually (although it may depend on your system) allows that a (complex, and usually unpredictable, as long as you're not hammering it) re-use of the initial randomising sources can be used for far longer. So instead of saying "I can't help you", it presents previously-given random data in a new format. Like I said, it's not perfect (require it to be so for 1000 consecutive cycles, and a villain with enough patience or ability to make requests of her own might be able to work out what you're going to get next time, or at least the time after she has sought her
own output set!), but it might help pad thngs out.
Alternatively, it's not unknown to take a given (small, but significant) amount of true-random data and use it to seed a PRNG function (in a process not
that different from urandom operation) that can return (say) a length of data that is double or quadruple the original data in size but is highly-non-trivially predictable in itself. Although as your maths would
clearly show, feeding a single byte into such an algorithm would never produce more than 256 different 4-byte 'hashes' in the final output, if that is how it set up. But each result
may be intrinsically unpredictable in nature, in and of itself (at least until the 'byte-expander' algorithm is understood, in which case what might have been a 4-byte brute-forcing process becomes a 1-byte brute-forcing one.)
I have no direct experience of macchanger, BTW, but given the entropy contained in a MAC address, I'm not sure that a bit of randomness-extraction from a pure /dev/random-like source would cause concern, as long as you aren't tying to enact thousands of examples at once, or something. But from what I know of the uses of that tool, I can't see that being an issue. And any non-trivial algorithm will probably do you well enough.
Forgive me if I say so, but I've a feeling that you've launched yourself into a technical environment with a set of handy scripts and such that you're learning to use, and are yet attempting to be taken seriously as the kind of person who professionally works at codebreaking/codemaking. Hell, I'm paraphrasing half the things I'm saying, and yet do not pretend to understand
all the subtleties of comparative effectiveness between (say) one hashing method and another. And someone's discovered that for certain inputs to a given encryption algorithm the solving difficulty has been reduced from O(!N) to O(Nē)? Well, bully for them, but I couldn't necessarily follow their workings out...
We've also strayed
well off the beaten track insofar as Dwarf Fortress discussion is concerned. As far as
that is concerned, a random geographic seed (or the one for history-calculation, or for the naming of entities, or creature creation) is a number that has, say, somewhere in the magnitude of 2^32 different possibilities (four bytes'-worth, although in reality some of those numbers may well produce essentially identical worlds due to entropy lost in rejects, or specifically-calculated gem-veins being eroded out of existence as if they'd never been there in the first place), which means that you've got a
lot of different worlds to play with. And who cares if you can look at a world and derive the seed without taking the specifically exported information about that, into account? Because there's no secrecy about the end-result, and if there's
anything propriety about the algorithm in use it's more akin to an artistic technique. Nothing can
really stop a forger working out how to plant the paint
just so on their own copy (or upon a 'new, undiscovered piece' of their own fabrication that they wish to get officially attributed) to look genuine, but for most purposes using ones
own artistic prowess in making a piece of art
that is your own is going to be far more rewarding in the long-run, given the chance to make your own name. (Time-scales may be different between those who do Old-Master-pretence and those that would work in the software-equivalents, and when compared to life-spans and the relative speed and magnitude of rewards I can't see the latter finding it worthwhile to work this form of duplicity, even while the former still apparently is a viable earner...)
But I don't think you're even wanting to talk about
that, and so maybe I waffle.
[1] If you consider the universe to be deterministic, all you
are doing is using an incredibly complex and hard-to-analyse 'algorithm' to generate the pad. Should the pads owned by Alice and Bob have been derived from something "universally random" and yet Eve has access to some sufficiently complex subset of the Theory Of Everything that exactly predicts how the coin-flips have happened while
generating that pad, then it's not secure. Of course, that 'algorithm' has so much hidden information that might be vital to knowing the next coin-flip's end-state (e.g. whereabouts on the the table the coin landed, so that the hand reaching for it grasps it in a
particular way just prior to setting it up for the following flip, and so many other things) that the cracking-algorithm that had been shown to predict the first 100 flips (or, by elimination is the cracking-algorithm (or one of the few!) that has been successful in all prior (testable!) cases, is as likely to be wrong as right upon the 101st flip. Unless you're running an identical universe! Anyway, I diverge from my originally intended message.