This is not necessarily good enough. Suppose one party sends R1 at a rate of 1 bit per 10 ns, i.e. 100 Mbps. The other party checks R1, aborts if it’s wrong, and otherwise sends R2. The first party checks that R2 was received on time and correctly.
An attacker can relay all but the last n of R1 and guess the last n bits. With probability 2^-n, the guess is correct, and the attacker learns R2 n*10 ns early. If the attacker can attempt the attack a few times, then getting a 60ns advantage is entirely reasonable and is enough to break some use cases.
An attacker can relay all but the last n of R1 and guess the last n bits. With probability 2^-n, the guess is correct, and the attacker learns R2 n*10 ns early. If the attacker can attempt the attack a few times, then getting a 60ns advantage is entirely reasonable and is enough to break some use cases.
So some more cleverness really is needed.