On Fault-based Attacks and Countermeasures for Elliptic Curve Cryptosystems