Software Protection Against Fault And Side Channel Attacks