0
$\begingroup$

So I've been working on a project that aims to allow online distribution of one-time-pads securely. I understand that a pad cannot be reused and must be truly random, and that if it is compromised, the message can be read. The problem is that each pad has to be transmitted in person. I was wondering if this can be done somewhat deterministically. For example, Person A and Person B both agree on a passphrase in a secure manner (i.e, in person). The passphrase would then be converted to SHA3 and have all letters removed from it. The output would be multiplied by a specified nonce, agreed upon by both the sender and the receiver. The product would be used as the key for the OTP. The sender and the receiver could pre-agree on a pattern of increasing the nonce after each message, ensuring that no pad is ever used twice. This would provide infinite possible pads, of infinite possible sizes, and each person would only need the passphrase and the nonce. May someone tell me why this wouldn't work?

$\endgroup$
2
  • 1
    $\begingroup$ What you're describing is basically "buzzword-faking". OTP's requirements are truly uniform random. Anything else is not OTP, and basically just a symmetric cypher. $\endgroup$
    – tylo
    Jul 15 at 21:14
  • 1
    $\begingroup$ You're reinventing stream ciphers, but the specific construction that you described is not secure as explained in the answer. $\endgroup$
    – eesiraed
    Jul 15 at 22:34

1 Answer 1

3
$\begingroup$

You are describing a symmetric encryption which is not a one time pad and does not enjoy the security properties of one.

Though we can create a reasonable cipher based on SHA3 your construction is deeply flawed. You are creating multiple pads with linear relationship between them.

One trivial attack would be to take a few known plain text pairs. and find the linear coefficient. and the secret key, even if the original passphrase can't be easily recovered. due to allying SHA3. It makes no difference.

$\endgroup$
2
  • 1
    $\begingroup$ Thank you! Is it possible to securely generate one time pads deterministically? Based of my reading, I'm thinking not. $\endgroup$ Jul 15 at 18:00
  • 1
    $\begingroup$ We can generate secure stream ciphers. Which take a key and stretch to an infinite pseudo random sequence to be used as if it were a one time pad. But this is not a onr time pad. And though some such ciphers are considered secure against even fairly powerful adversaries they are not information theoretically secure like a one time pad is. $\endgroup$
    – Meir Maor
    Jul 15 at 18:13

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.