You want to sign and encrypt a file, with the results not human-readable.
To sign myfile:
$ gpg -s myfile
To sign and encrypt myfile:
gpg -e -s myfile
In either case you must provide your passphrase. Add the -r option to encrypt the file with an intended recipient's public key, so only he or she can decrypt it. [Recipe 7.11]
If you want the result to be an ASCII text file?say, for mailing?add the -a (armor) option.
This signature confirms to a recipient that the file is authentic: that the claimed signer really signed it.
gpg(1).