Several practical methods for encrypting single-chip programs