1. A method of improving the operation of a processor executing a cryptographic process by automatically detecting faults during both encryption and decryption operations by said cryptographic process, said method comprising segmenting the data to be encrypted and encrypting the data segments using a complex non-linear algorithm that can lead to faults, computing an output parity bit from a selected step of said algorithm for a selected data segment, based on the input value of that segment, comparing the actual output parity bit of said selected segment with the computed output parity bit for that segment, and determining whether a fault exists, based on whether the actual output parity bit matches the computed output parity bit for said selected segment.