Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

I am wondering how can I secure communications between multiple peers over a public channel, like an IRC channel.

With two peers it is easy - they exchange their encryption keys and decrypt the secret messages using their private keys, but how would this work with multiple peers without creating excessive duplication of messages?

Is there some way to encrypt a message that would be readable by multiple peers not sharing the same secret key?

share|improve this question
    
With "basic" crypto I don't see a way around an overhead of 16*n to inform other users about your choice of short term key. But if you have a server that understands your protocol, that doesn't scale worse than normal multi user chat. I believe there is a way to run a single-round multi-party DH exchange if you use "fancy" crypto, but personally I wouldn't use that. –  CodesInChaos Jan 24 '13 at 17:53

3 Answers 3

I believe CMS (Cryptographic Message Syntax) might solve this problem. It allows sender to encrypt a packet and multiple recipients to open it.

Basically it encrypts the contents with a random key and this key is encrypted for each recipient using various mechanisms.

share|improve this answer

CLAE is an asymmetric encryption algorithm that provides ultra security and the simplicity to share the secret keys with anyone, anywhere over the Internet. http://www.connectinprivate.com/clae.php

share|improve this answer
    
1) You didn't say how this matches the OPs question. 2) I don't see how IBE is useful here 3) I couldn't find any useful information on that website. I'd like a link to technical information not marketing bullshit. –  CodesInChaos Jan 25 '13 at 17:57
    
Until we can see how it works, I call snake oil on this. But apparently you're applying for a patent as well, so, never mind. –  Thomas Jan 27 '13 at 9:02
  1. Generate a symmetric key
  2. Encrypt symmetric key using public keys of all recipients, and broadcast (or provide on request from a client)
  3. Transmit all user messages encrypted under the symmetric key

This means you only have one copy of the message (but you do have lots of copies of the encrypted symmetric key).

Of course you need to solve the key distribution problem first, to ensure you're only encrypting the symmetric key using authenticated public keys.

share|improve this answer
    
Use this scheme with DH and not RSA. That allows 16 bytes per target user, instead of >100. –  CodesInChaos Jan 25 '13 at 21:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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