In all these encryption algorithms, the system dynamically creates encryption keys for each connection. The system creates the encryption keys within the gatekeeper and transmits the keys to the endpoints and the processing boards over secure links. Additionally, the system produces separate keys for the incoming and outgoing streams of each call. For conference calls, the system assigns a unique pair of keys for encrypting the payload of each endpoint, one for the incoming stream and one for the outgoing stream.