Gli hash a chiave hanno attacchi noti, per esempio H (m | K), H (K | m), H (K | m | K) hanno tutti degli attacchi che almeno li indeboliscono. HMAC è un metodo standard per risolvere molti attacchi che hanno la forma semplificata di H (K | H (K | m)), il doppio hashing è la chiave.
Puoi cercare ulteriori informazioni su HMAC e l'autenticazione dei messaggi basata su hash, ma il punto è che non è così semplice trovare il tuo algoritmo di autenticazione a meno che non sei un crittografo che sa cosa stanno facendo.
Anche i tasti a 64 bit sono piccoli, si consiglia di utilizzare chiavi più grandi. Inoltre non è chiaro quale sia l'algoritmo di hash utilizzato, non tutti sono uguali. I R1, R2 presumo sono casuali.
A parte questo, questa è una tecnica di autenticazione di base, quindi se dovessi usare HMAC e chiavi più grandi non vedrei alcun problema. Inoltre, non sono tanto un esperto per dire quanto sia vulnerabile, sarebbe interessante condividere perché pensi che sia vulnerabile in primo luogo.
L'attacco di replay menzionato è valido, anche se dipende dalla probabilità di ottenere lo stesso casuale, non dovrebbe essere probabile se usi un buon generatore casuale.