I'm not a cryptographer by any means, but it seems like every time you transmit a chunk of video over the network, you could generate a single-use key, encrypt the video with that key, and then encrypt the single-use key with every intended recipient's individual key.
When the recipients get the message, they'd find their encrypted copy of the temporary key in the list, recover the single-use key, then decrypt the video.
That way the only wasted bandwidth is in transmitting keys, which is a lot smaller than video.
The recipients could give the single-use key (that they decrypted with their individual key) to someone who isn't supposed to have it, but that doesn't seem like a problem since they already have the decrypted data and could give that away.
For a small performance improvement, you could re-use the temporary key a few times (for, say, 10 seconds) if the set of intended recipients doesn't change.
Again, not sure if this is applicable, but the comments made me think of this.
[0] https://www.blackhat.com/us-19/briefings/schedule/index.html... [1] https://i.blackhat.com/USA-19/Wednesday/us-19-Robert-Messagi...
I'd say that at this point you can either:
* accept that there is no confidentiality anymore. It's just not realistic to have a "secret" group with that many members
* have the person who adds new members forward them the group key, and give up on key rotation
btw, I'm wondering how treeKEM manages malicious members when key rotation happens
You do have a point, especially when it's a group where people are in their free time. However, if they are present for work they are less likely to leak information. Also, encryption should give a default level of privacy to build on.
This scalability issue is a non-problem imo:
* I don't expect large group VCs, and I don't expect the member set to be updated frequently
* For large group VCs, the threat model is much different and you can do broadcasting (use the same key)
For group chat I would say that confidentiality goes out of the window when you start having a large group, so having one key is just more simple to implement and makes sense.
Then the problem boils down to key management, but Keybase has that figured out IMHO. :-) It would be amazing to see a collaboration between Jitsi and Keybase to build end-to-end encrypted video chat with high quality crypto.
If that's possible, it means you're using horribly broken encryption. So it shouldn't be a concern if you're doing things right.
I think that's a piece of signal's group chat protocol.