I understand that most stream ciphers, due to being applied with a simple XOR, are specially fragile against data tampering, and must be used with some MAC mechanism. So I am investigating the use of UMAC for this purpose.
I also understand that UMAC works by XORing an universal hash function based on a secret key with a pseudo-random number generated with AES and a nonce:
$ Tag = U_{k1}(M_{clear}) \oplus AES_{k2}(nonce)$
The thing is: since I already have my stream cipher setup, can I just take hash $H_{k1}(m)$ and encrypt it by XORing with the pseudo-random output from the stream cypher plaintext, the same way done with the plain text?
$M_{wire} = (M_{clear}||H_{k1}(M_{clear})) \oplus CipherStream_{k2}[i..(i+len)]$
Is there any problem with this approach? Or a block cipher was chosen for some specific need?
Also, I have suggested applying the hash to the clear-text; does it make any difference applying it to the cipher-text or to the clear-text?