

You really shouldn't call it OTP unless the key material is as long as the message. Anyone who captures encrypted messages can start trying the same. Anyone who captures some pad material can start trying to reverse engineer the PRNG. Anybody who knows the PRNG algorithm can start guessing keys to try to decrypt messages. However, using a pseudorandom pad means that only certain pads are possible (maybe there's no key at all that encrypts the kitten message to "nsmklmfmwnfmngner", so you can rule that out). You have zero knowledge of whether it is maketrumpthepotusĮncoded with one pad, or ensureclintonwinsĮncoded with a different pad. If you intercept the 17-character message nsmklmfmwnfmngner An actual OTP gives perfect security, as long as the pad is kept secret. However, note that this is a massive, massive weakening of OTP. Then, they both initialize the PRNG with the same seed and it is guaranteed to produce the same sequence of "random" numbers for each of them. For OTP, the key is the entire pad and, if two people wish to encrypt some message using OTP, they must ensure beforehand that they have a long enough pad to do that.įor your proposed "efficient" OTP, the key is the PRNG seed: both parties must ensure beforehand that they know it. In the context of symmetric encryption, the key is a shared secret: something that is known to both the sender and receiver. You seem to have misunderstood what the key is.
