# Can this modified 'Many' Time Pad be made 'stronger' by using an extrememly long key?

Starting with a one time pad say you want to encrypt some small strings like the words in this sentence but you want to reuse the same OTP key for each string so that when you encounter the same word the ciphered text comes out the same.

But say you modify the OTP algorithm in some way, say by jumping around on an extremely long key according to some special calculation that places you on different positions along the key (for the same word you end up at the same position each time) So different words end up at different positions.

Would making the key very long and alternating positions along its entire length make any difference in decrypting the resulting message?

• As a general rule with all encryption technologies, if you build it yourself its fundamentally broken There are certain people that are the exception to this rule, but if you have to ask then you are not one of them. And on that note, when something like that is being built the algorithm is going to take more than 6 months (full time) to write. Commented Feb 28, 2015 at 3:16

As others have said, this is not a One-Time Pad algorithm. Your proposed algorithm is actually called a "code book"; the primary difference being that you are substituting one word for a random set of letters of the same length.

Code books have a long, well-documented history, and are still in limited use today. If you look at some of the books on cryptography, you'll see how they've fared with respect to their security.

• Thank you for pointing out the correct name of the algorithm. Commented Feb 28, 2015 at 16:25

It's not a "one time pad" if you reuse the key.

You lose the perfect security properties of a one time pad with any key reuse, period. Your scheme just reduces the security level of the algorithm to your "special calculation", which is simply security by obscurity.

• Is it possible to create an algorithm that no one can ever know? Not even the developer? Like it gets created at runtime. Say by imbedding some instruction in the key itself. Of course that requires it's own algorithm to decode. Commented Feb 28, 2015 at 2:54
• @erotavlas Generally no.
– user10211
Commented Feb 28, 2015 at 4:37