Pre Keys are generated separately by each device in an account.
Session – a two-way secure virtual link between two specific devices.
To send a secure message, secure sessions must exist between the sending device and all the recipient’s devices, as well as between the sending device and all the sender’s other devices.
The server responds with the peer’s public ID Key and a series of peer public Pre Keys, one per each device registered on “Bob’s” account.
“Bob’s” devices are not required to be online when this happens.
Each request causes the client to generate additional keys and upload the public parts to the server.
A session needs to be established only once between every two Viber devices wishing to communicate securely.
Only a single session is required between any two devices, and that session can be used to synchronize any number of conversations with other Viber accounts.