Simple GCM implementation