The present invention increases the difficulty of reverse engineering
sensitive information protected by an encryption algorithm by increasing
the difficulty associated with tracing the code that generates the key or
the encryption algorithm. This is accomplished by generating the key, used
to encrypt and decrypt the sensitive information, as a function of the
program instruction values of the procedures used to generate the key and
perform the decryption of the sensitive information. Thus, if the key
generation code or the decryption code is modified (such as (but without
limitation) by placement of a breakpoint, a trace function, or a halt
instruction in the code) the resulting key will be different from the key
used to encrypt the sensitive information and the decryption attempt will
fail.
La presente invenzione aumenta la difficoltà delle informazioni sensibili di ingegneria d'inversione protette da una procedura di crittografia aumentando la difficoltà connessa con seguire il codice che genera la chiave o la procedura di crittografia. Ciò è compiuta generando la chiave, usata per cifrare e decrypt le informazioni sensibili, in funzione dei valori di istruzione di programma delle procedure seguite per generare la chiave e per realizzare il decryption delle informazioni sensibili. Quindi, se il codice chiave della generazione o il codice di decryption è modificato (quale (ma senza limitazione) tramite la disposizione di uno scaglione di fatturazione, di una funzione della traccia, o di un'istruzione di fermata nel codice) la chiave risultante sarà differente dalla chiave usata per cifrare le informazioni sensibili e di decryption fallirà.