I am looking to verify the integrity of a very small payload, approx 64 bytes, which will be stored in a QR code. I need to verify that the payload has not been generated or altered by an attacker. Adding a secure hash at the end of the payload will use up alot of my payload space. I was hoping to encrypt the entire payload with an asymmetric private key, and then attempt decryption with the public key. If decryption succeeds then the payload is assumed to be valid, and the data can be read.
Given such a small payload, would an asymmetric key be too short, and therefore too easily hacked through a brute force attack?
Would a secure implementation of appended a hash or random padding, leave me with hardly any useable payload left for actual data?
If 64 bytes is too small, what is a realistic smallest payload size that I could use? (I want to keep the physical size of the QR code as small as possible)