I am not well versed in the field but I believe I know the basics.

All encryption algorithms that I know of utilize direct data manipulation to encrypt a message (string of bits) such as shifting, cycling, etc. in specific patterns utilizing the encryption key.

Is there any algorithm that instead of touching the data-to-be-encrypted in any way instead generates a secure one time pad using a reasonably short key?

I suppose technically in this scenario you would call the key a seed for a pseudo-random number generator.

So my question is this, does such a generator exist in a secure form and with an algorithm that can turn a phrase into a key or just generate such a key.

If there is such a generator I suppose you will point out the weakness of a one time pad on changing/multiple data, but suppose it isn't a concern due to pad use markers or simply because there is no other data or changes.


There is an entire class of ciphers that do exactly this. They're called stream ciphers. At their most basic, they pretend to be a one-time pad. You give them a small key and they generate a stream of seemingly random bits. You then XOR these bits with your plain-text to make ciphertext.

You can add bells and whistles to this basic behaviour but what I've described is the essence of the stream-cipher.

The most famous of these stream ciphers is probably RC4. If you ever used SSL at all then you will have used this steam cipher.

Equally, if you've ever used a mobile phone you've probably had your voice traffic "protected" with A5/1.

There are people who are experts in just this area of cipher design.

There's nothing more to say really other than that this is a well established branch of cryptography with a very well developed body of research and many fielded designs.

  • $\begingroup$ Agreed. I've deliberately picked old designs because they're closer to the essence of a stream cipher. In turn, it more closely matches the focus of the question. I thought introducing more sophisticated designs with nonce and/or AEAD support would have been confusing for question posed at this level. That's the purpose of the paragraph on "bells and whistles" paragraph, as sort of a dog whistle to people who would pounce on my choice of ciphers :) $\endgroup$ – Simon Johnson Oct 8 '13 at 21:10

Not the answer you're looking for? Browse other questions tagged or ask your own question.