[-] [email protected] 2 points 1 week ago

that’s on the person forging, it’s not doing any crazy forging on its own. it could, but like you said, i think that’d run into an issue of not being believable by not matching the personas and conversation context. that said, my belief is you probably don’t need perfect forgeries, just the ability to create plausible ones.

there’s still lots of open questions around usability and the practical deniability of it, just want to make sure the crypto side makes sense.

1
submitted 1 week ago* (last edited 1 week ago) by [email protected] to c/[email protected]

I'm designing an identity-less, ephemeral messaging protocol where messages can be forged after-the-fact. The goal is protection against coercion or device seizure scenarios.

Core mechanism:

  • Session keys derived via SPAKE2 from shared secret
  • ChaCha20 encryption with deterministic nonces: sequence || timestamp
  • HMAC authentication during conversation

Forgery capability: Anyone with session keys can create alternative messages using the same sequence/timestamp that decrypt to different content.

My question: Does this actually achieve cryptographic deniability? Are there ways someone could distinguish a real conversation transcript from a forged one?

I have a working prototype and want to validate that the approach is sound.

Edit: I totally meant to post this in a cryptography community, not cryptocurrency, haha. Sorry!

[-] [email protected] 1 points 1 week ago

sure!

during or after a conversation, anyone with the keys can create fake transcripts by creating messages with the same metadata, same nonce, different content.

because of this, no transcript can be proven to be the correct transcript. the trade-off is you don’t get forward secrecy on the per-message level, but you get it per-conversation.

another detail is that there is no identity, so all the above aside, there’s also no way to prove who sent which message.

34
submitted 1 week ago by [email protected] to c/[email protected]

i’ve been working on this for a bit, finally got a proof of concept worked out with a desktop app. would love some feedback, mostly on the concept and protocol.

it hasn’t been security audited so don’t use it for anything crazy.

[-] [email protected] 2 points 2 weeks ago

ooh, i’ll have to think through it, but it sounds like that’d add message integrity without sacrificing deniability. also wouldn’t be much to add. appreciate the feedback!

[-] [email protected] 1 points 2 weeks ago

you’re not wrong, but that’s just the trade off that has to be made, i think. it’s the only way i can think to do it, at least. need -some- authentication for practical usability.

your gpg example removes the deniability since it proves who wrote the message.

[-] [email protected] 2 points 2 weeks ago

interesting point! i chose symmetric shared key because it means you can’t prove who sent what message.

the shared secret does add some authentication, which i think is necessary. the goal is it only creates enough to be practical (a random person can’t eavesdrop), but not enough to prove things. messages themselves still aren’t authenticated by any one person.

[-] [email protected] 4 points 2 weeks ago

also, i’m new to lemmy, so if there are any communities i should cross post this to that may be interested, please let me know!

25
submitted 2 weeks ago* (last edited 1 week ago) by [email protected] to c/[email protected]

i started a (very niche) private messaging protocol & little CLI app demo. i’m no security expert, so any feedback or questions would be appreciated.

the gist is an ephemeral message exchange without identities. the goal is ultimate deniability.

the interesting (and weird) part is that messages are encrypted but not authenticated. this means an imposter could show up if they know the shared secret. otoh this means you can deny anything you say.

[-] [email protected] 3 points 5 months ago

neovim. i much prefer the motions of helix, but there’s just some plugins i can’t live without.

slugr

0 post score
0 comment score
joined 5 months ago