SECURE CODE JUMP AND EXECUTION GATING

Systems, apparatuses, and methods for improving security of a silicon-based system by creating a glitch-resistant process for executing a software code block on the silicon-based system are disclosed. An example method may begin by marking the software code block as non-executable. Second, intent to...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: JOHNSON, Scott D, CHEN, Timothy, MARTIN, Derek L, SCHILDER, Marius P
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Systems, apparatuses, and methods for improving security of a silicon-based system by creating a glitch-resistant process for executing a software code block on the silicon-based system are disclosed. An example method may begin by marking the software code block as non-executable. Second, intent to execute the software code block is registered with a staging register. Third, the software code block is compressed into a compression constant. Fourth, the compression constant is compared with a first predetermined value using two comparators. Fifth, responsive to the comparators providing a true result after comparison, the software code block is marked as executable to allow the software code block to execute. In another aspect, the example method may be repeated for n>1 iterations, and in each iteration i, an i th software code block is compressed into an i th compression constant that is compared to an i th predetermined value. La présente invention concerne des systèmes, des appareils et des procédés pour améliorer la sécurité d'un système à base de silicium par la création d'un processus résistant à des problèmes de fonctionnement pour l'exécution d'un bloc de code logiciel sur un système à base de silicium. Un procédé donné à titre d'exemple peut commencer par marquer le bloc de code logiciel en tant que non exécutable. Deuxièmement, l'intention d'exécuter le bloc de code logiciel est enregistrée avec un registre d'activation. Troisièmement, le bloc de code logiciel est compressé dans une constante de compression. Quatrièmement, la constante de compression est comparée à une première valeur prédéfinie à l'aide de deux comparateurs. Cinquièmement, quand les comparateurs fournissent un résultat vrai après la comparaison, le bloc de code logiciel est marqué en tant qu'exécutable pour permettre l'exécution du bloc de code logiciel. Selon un autre aspect, le procédé donné à titre d'exemple peut être répété pour n > 1 itérations, et dans chaque itération i, un ième bloc de code logiciel est compressé en une ième constante de compression qui est comparée à une ième valeur prédéfinie.