利用者A−−−−−−−−−− サーバー −−−−−−−−−−利用者B
秘密鍵A サーバー公開鍵 秘密鍵B
サーバー秘密鍵
公開鍵A
公開鍵B
AからBへのトークの場合
Aはサーバーの公開鍵を使って暗号化
サーバーはBの公開鍵で暗号化してBへ送信
Bは自分の秘密鍵を使って復号
こんな感じでサーバーが暗号化鍵を端末事に付け替えて転送しているのではないかと。
サーバーで鍵を付け替えているから、スマホを変えても手続をすれば履歴を引き継げる
というのも納得できる。
この場合だとサーバーは自己の秘密鍵でAとBとのやりとりを復号できる。