Правильно ли я понимаю работу защищенных протоколов?
Это симметричное шифрование, ассиметричное иначе. 
Ассиметричное на примере TLS (https):
Сервер и пользователь имеют(генерируют) по паре ключей - открытый и закрытый(секретный) в момент инициализации соединения. Они обмениваются открытыми ключами. Юзер шифрует открытым ключем сервера и отправляет ему запрос, расшифровать который возможно только секретным ключом сервера. И в обратном порядке также, ответ сервер шифрует открытым ключем юзера...
Нет вы неправильно поняли алгоритмы шифрования бывают разные упомянутый вами алгоритм это алгоритм с открытым ключом есть открытый ключ есть закрытый ключь открытым шифруем закрытым дешифруем это алгоритм RSA есть еще AES

чтобы делать защищенные протоколы не обязательно изучать шифрование можно просто использовать библиотеку функций на присмер openssl