1. I know that AES-GCM can be used for authentication of data by Can we use AES-GCM mode only for encryption by ignoring authentication?
Let's remember that AES-GCM is an Authenticated Encryption with Associated Data (AEAD) that uses
- AES in CTR mode for confidentiality which can only provide CPA security
- GMAC for integrity and authentication which is a Wegman-Carter MAC based on a polynomial hash function called GHASH.
The combination is an encrypt-then-MAC fashion.
Of course - not advised - one can use AES-GCM without authentication by simply discarding the authentication tag. Since GCM uses the first two counter this will be equal to CTR if you start the counter from 2.
One will have some problems mostly performance with standard implementations that will generate and require the tag. One may need to generate it, send it, provide it to the decrypter, and ignore any tag error! Wait! or one may need to modify the source code.
By not using the GCM part, one gets only confidentiality at most CPA security, instead one can use the CTR mode for confidentiality. One doesn't need the GCM part. Just use plain CTR mode that will reduce the processing time of GCM calculations. This is not advisable in modern cryptography. At least
- IND-CCA2—ciphertext indistinguishability under adaptive chosen-ciphertext attack
is required.
2. Is it mandatory to use iv for encryption using AES-GCM?
An (IV,key) pair must not be used more than once. If an IV reused with the same key it will cause a crib-dragging attack as in two-time-pad and also it can have a catastrophic failure for signature forging.
If you can guarantee that you will always use a new key then you can keep the IV fixed or even zero. This is also not advisable since you are reducing the collision probability of the IV-Key pair and not advised from the authors, too. You will have a collision with 0 probability after generating $2^{64}$ keys instead of $2^{128}$ if the IV and the encryption key is randomly generated. If we stick to RFC 4106 then $2^{112}$ since it uses 92-bit IV (RFC 4106 uses nonce instead of IV not to mix with ESP's IV.)
3. What are the allowable variants of AES-GMAC like AES-GMAC128, AES-GMAC256 etc.?
RFC 4106 only mentions AES-GCM. If you want to use it, you have only GCM.
The GMAC (Galois Message Authentication Code) is an authentication-only variant of the GCM which can form an incremental message authentication code. GCM and GMAC are standardized in NIST 800-38d .
AES-GCM is also used in TLS 1.3 where there are only 5 cipher suites.
But all most all of the implementations and descriptions found about AES-GCM specifies iv as 12 octets and there is no consideration of salt value.
NIST GCM specification (NIST.SP.800-38D) recommends 12 octets and if you use 16 octets or more generally if you supply a nonce not equal to 12-byte, then it will be processed with GHASH and the size will be 12-byte after that.
if len(IV) = 96 then
J_0 = IV || 0^{31}1
else
J_0=GHASH_H(IV||0^{s+64}||len(IV_64))
The salt defined in RFC 4106. NIST is governmental and if you are in the USA you need to be using the NIST standard to be compatible and competitive.
The salt field is a four-octet value that is assigned at the beginning of the security association, and then remains constant for the life of the security association.
so it is specific to the protocol.