Я конечно клиент телеграмма полностью не проверял, но решение вполне простое:
генерировать ключи на стороне клиента. Ничего извращенного или сложного тут нет. Это как раз и объясняет почему у телеграмма нет секретного ключа.
Собственно вопрос уже к вам: а вы точно разбираетесь в шифровании? 
Так то-то и оно, когда я об этом думал, то у меня возникали резонные вопросы (6-ой год в IT всё же). Смотрите кейс:
1. У вас есть два пользователя.
2. Два пользователя подконекчены к серверу.
3. Что бы отправлять сообщения, которые асимметрично зашифрованы со стороны каждого из клиента нужно:
а) Что бы второй клиент, который собирается принимать сообщение (то есть, условно, второй телефон) был готов выслать публичный ключ в клиент, который сообщение собирается написать.
б) Что бы при этом так же был сгенерирован приватный ключ, который знает что он открывает вот тот конкретный публичный ключ.
б) Что бы публичный и приватный ключи были уникальны в рамках не только системы, но и других сообщений (ведь это не голубиная почта, тут как бы всё идёт через сервак) + у пользователя может быть овердохрена секретных чатов, которые каждый обязан делать то, что написано выше.
И тут вот лично я не верю, что сервак сюда не вмешивается, хоть убейте. А вот в то, что как раз он является мастером ключей и просто затирает у себя их периодически - вот тут поверю.
справедливости ради, у телеги протокол облачных чатов чуть сложнее сделан и в реалтайме там нереально на текущих мощностях слушать. Только архив вскрывать
Тут все напирают на асимметрию, но асимметрия является безопасной просто потому, что если у тебя нет приватного ключа, хер ты там что вскроешь, хоть ты утрахайся, так как он генерируется для каждой транзакции. Вопрос остается в том, что я лично хз, имеет ли сам телеграм эти ключи и как долго (потому что как уже сказал выше, они должны подтираться).
Вообще было бы любопытно у них покопаться в логике. Возможно сервак отправляет два ключа каждому из пользователей, но тогда ассиметрия нарушается, так как обычно мастером обоих ключей является сторона, которая будет принимать, да и получается у него в приватном ключе должна быть вшита логика, что он открывает конкретно этот публичный (том бишь, публичный так же шлется тому, кто принимает). И когда ключ активируется? Когда человек открывает приложуху или сразу, как было послано? Столько вопросов и так мало ответов

Да и в массовости и спаме сообщений это будет только гемор, который будет больно оптимизировать ))