клиент генерит приватный ключ, отдает серверу публичный - сервер им шифрует контент
Эм.. оба генерят приватные ключи, обмениваются публичными, на их основе генерят общий ключ для симметричного шифрования
Асимметричное шифрование ж только для подписей годится, там всегда ограничение есть на максимальный размер открытого текста