My idea of the OTP is to generate from 50 letters (5 words, each 10 letters) a new pad of 2000 random letters, then attach user email to the pad end (to make it unique). The keywords and the pad will be based on the Ascii table from 33 to 125. The term of use is to make the message size the same of pad size, so the pad is valid for one use only, and if required, new words can be added.

In contrast, drop the OTP and implement AES 256 CTR, which would be more secure and trustable?

  • 1
    $\begingroup$ This isn't coherent enough to answer, but in general you'll want an AEAD. Your description of how a OTP works is simply wrong, and would be insecure. AES-CTR without authentication is unsafe. Try an existing utility, like age. $\endgroup$ – SAI Peregrinus Apr 24 '20 at 1:32
  • $\begingroup$ Why the OTP won't be secure, enlarging the original OTP then use it to encode the message as normal OTP but with a large pad. $\endgroup$ – Marvix Apr 24 '20 at 1:50
  • $\begingroup$ For an OTP the message and the pad must be exactly the same length. The pad MUST be random. The method of combining message and pad matters. And you still need a way to transmit the pad, which (being the same size as the message) is exactly the problem you had in the first place! $\endgroup$ – SAI Peregrinus Apr 24 '20 at 1:53
  • $\begingroup$ Yes, the msg & the pad will be the same size, and the msg is bigger, then the user should add a new word. The pad will be generated from 50 letters which the user will enter, and it will be used to generate a 2000 letter. when the user wants to decode his msg he will need to enter again the same 50 letters. All of this will happen on the clientside, and SSL/TLS will be used to transfer the encoded msg. Moreover; I will attach a user email to the 50 letters also, so the pad will be unique. $\endgroup$ – Marvix Apr 24 '20 at 2:35
  • 2
    $\begingroup$ > The pad will be generated from 50 letters which the user will enter, That alone makes it not a one-time pad. OTPs REQUIRE a TRNG, and MUST NOT use any PRNG steps. $\endgroup$ – SAI Peregrinus Apr 24 '20 at 18:46

Which is more secure?

Clearly and mathematically, a true one time pad is thee most secure encryption possible. A one time pad is proven to be completely unbreakable for all time and universes. Do not allow yourself to be swayed with authentication vs encryption arguments. They are trivial distractions.

However building upon Peregrinus' comment, you don't have a one time pad. You have a $ \{0,1\}^n \to \{0,1\}^m $ generator as a pseudo-random function with $ m \gg n $. That puts it on a par with AES-CTR. $ m \ngtr n $ must hold for a one time pad.

So two issues face you. US NOBUS policy means that AES may have already been broken and your messages are decryptable in strategic time. Or your $ 50 \to 2000 $ character expansion implementation is flawed. With respect, the latter is more probable as good cryptographic primitives are tricky to design for repeated use.

Therefore my answer to your exact question is 70/30 towards AES-CTR. The world is grey.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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