I'm protecting communication between some microservices using public/private key encryption, where the sending container has a public key and the receiving container has a private key. This both verifies the sender (only sender has the public key via a credential manager), and protects the data in case it may be buffered, e.g. in a Redis.
But for transient communication, I'm wondering if signing is really what I should be doing instead of encrypting. I only need to verify the source container, the data isn't potentially stored anywhere, and I trust the AWS VPC network traffic to not be intercepted.
So the question is, are signing and encrypting computationally equivalent? If signing costs the same as encrypting the data, I'd just encrypt it. But if signing is much cheaper than encrypting, I might choose to just sign for some communication.
For reference, this is in Go, and encryption is done with ParsePKIXPublicKey() and EncryptPKCS1v15(), and decryption is done with ParsePKCS8PrivateKey() and DecryptPKCS1v15().