DAA es un estándar gubernamental obsoleto específico para el cifrado autenticado. No es algo que quieras usar. En particular, es una versión modificada de CMAC que utiliza el cifrado DES inseguro.
HMAC utiliza un algoritmo hash para proporcionar autenticación. Por lo general es bastante rápido. CMAC, por otro lado, utiliza un cifrado de bloque en modo CBC, lo que lo hace mucho más lento. La única razón por la que se usaría CMAC, que requiere el doble de llamadas al cifrado de bloque para el cifrado, es si se usa en un sistema integrado que ya tiene aceleración de hardware para el cifrado, lo que facilita su reutilización. autenticación. En general, querrá utilizar HMAC.