Remote auditing of software outputs using a trusted coprocessor

A cryptographic coprocessor is described for certifying outcomes of software programs. The system for certifying and authenticating outputs allows a third party who trusts the secure components of the system to verify that a specied program actually executed and produced a claimed output.