Симметричное шифрование
Для шифрования и расшифровки используется один и тот же ключ.
Чтобы обменяться зашифрованными данными, стороны должны как-то передать этот общий секретный ключ друг другу (и сделать это безопасно!).
Примеры: AES, DES, ChaCha20.
Быстрое по скорости — хорошо подходит для больших объемов данных.
Асимметричное шифрование
Использует пару ключей: открытый (public) и закрытый (private).
Открытым ключом шифруют сообщение, а расшифровать его может только владелец соответствующего закрытого ключа.
Не нужно передавать секретный ключ — для связи достаточно открыть свой публичный ключ.
Примеры: RSA, ElGamal, ECC.
Медленнее симметричного, но упрощает обмен ключами и аутентификацию.