Patent DE-10319435-B4 (DE)
Title: Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion
Inventor: HARDER WULF
IPC: G06F21/14
Filed: 2003-04-25
Granted: 2018-07-26
Abstract: Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion, ausgenommen auf der Komposition von endlichen Automaten basierende Public Key Verschlüsselungsverfahren, dadurch gekennzeichnet, dass wenigstens ein Teil des Softwareprogramms in eine Kooperation von Petri-Netzen übersetzt wird und wobei datenverarbeitende, kooperierende Petri-Netze kodiert, in einen Speicher geschrieben und aus dem Speicher von wenigstens einer Instanz gelesen und ausgeführt werden, wobei Transitionen jedes Petri-Netzes Symbole oder Symbolketten mit Hilfe wenigstens eines Kopfes von wenigstens einem Band lesen und/oder auf wenigstens einem Band schreiben, wobei ein Band ein Register eines Prozessors oder einer Speicherzelle eines RAMs sein kann und ein Kopf ein Register mit einer Maske zur Maskierung von Werten des Bandes sein kann, wobei die Transitionen jedes Petri-Netzes Symbole oder Symbolketten über wahlweise vorhandene Kanäle senden und empfangen können, und wobei die datenverarbeitenden, kooperierenden Petri-Netze komponiert werden, das Kompositionsergebnis kodiert, in einen Speicher geschrieben und aus dem Speicher von wenigstens einer Instanz gelesen und ausgeführt wird, wobei das Kompositionsergebnis ein zu seinen Komponenten bezüglich des äußeren Ein-/Ausgabeverhaltens, ausgenommen Ausgabe-Verzögerungen, äquivalentes Petri-Netz ist, wobei die Petri-Netze sequentielle Maschinen M Ω  mit wahlweise mehreren Eingabekanälen und wahlweise mehreren Ausgabekanälen bilden, C eine endliche Menge von Kanälen, Δ eine endliche Menge von endlichen Alphabeten, γ: C → Δ, Ω = (C, Δ, γ) eine Kommunikationsregel,
         E   Ω     =     {     e     |     e   =     {       (     c   ,   σ     )       |     σ   ∈   γ     (   c   )     ∧     (       (     c   ,     σ   1       )     ∈   e   ∧     (     c   ,     σ   2       )     ∈   e   ⇒     σ   1     =     σ   2       )           }           }     ∪     {   ∅   }           eine Menge von Ein-/Ausgabe-Ereignissen und S eine endliche Menge von Zuständen ist und
             M   Ω     :   =     {           (     S   ,     E   Ω     ,   δ   ,   β   ,     s   0       )       |     δ   :   R       →   S   ∧   β   :   R   →     E   Ω     ∧   R   ⊂   S   ×     E   Ω                 ∧     (     ∀     [       (     s   ,   x     )     ,   y     ]     ∈   β   ∀     (       c   x     ,     σ   x       )     ∈   x   ∀     (       c   y     ,     σ   y       )     ∈   y   :     c   x     ≠     c   y       )     ∧     s   0     ∈   S     }     ,             B mit B ⊆ C eine Menge von internen Synchronisationskanälen ist und die Komposition
       c   o   m     p   B     :     M   Ω   n     →     2     M   Ω             von sequentiellen Maschinen definiert wird als
               c   o   m     p   B     :   =     {       (       (       K   1     ,   …   ,     K   n       )     ,     K   ˜       )           |                               (       K   1     ,   …   ,     K   n       )     =     (       (       S   1     ,     E   Ω     ,     δ   1     ,     β   1     ,     s       0   1           )     ,   …   ,     (       S   n     ,     E   Ω     ,     δ   n     ,     β   n     ,     s       0   n           )       )                                         ∧   ∃   T   =     {       (       (       x   1     ,   …   ,     x   n       )     ,     (       y   1     ,   …   ,     y   n       )     ,     (         s   ′     1     ,   …   ,       s   ′     n       )     ,     x   ˜     ,     y   ˜       )           |                                               (       [       (       s       0   1         ,     x   1       )     ,       s   ′     1       ]     ,   …   ,     [       (       s       0   n         ,     x   n       )     ,       s   ′     n       ]       )     ∈     δ   1     ×   …   ×     δ   n                                             ∧     (       [       (       s       0   1         ,     x   1       )     ,     y   1       ]     ,   …   ,     [       (       s       0   n         ,     x   n       )     ,     y   n       ]       )     ∈     β   1     ×   …   ×     β   n                                             ∧   ∃     H   x     =       ∪       i   ∈     {     1,   …   ,   n     }                   x   i     ∃     H   y     =       ∪       i   ∈     {     1,   …   ,   n     }           β   i       (       x   i       )     :                                     H   x     ∈     E   Ω     ∧     H   y     ∈     E   Ω                                             ∧   ∀     (     c   ,   σ     )     :     (     c   ∈   B   ⇔     (     c   ,   σ     )     ∈     H   x     ⋂     H   y       )                                             ∧     x   ˜                 =     H   x     ∖     H   y     ∧     y   ˜     =     H   y     ∖     H   x       }                             ∃         M   ′     ˜     Ω             =     {       K   ′     ˜         |     ∃     (       (       x   1     ,   …     x   n       )     ,     (       y   1     ,   …   ,     y   n       )     ,     (         s   ′     1     ,   …   ,       s   ′     n       )     ,     x   ˜     ,     y   ˜       )     ∈   T   :                                                   K   ′     ˜     =   c   o   m     p   B           (       [       (       S   1     ,     E   Ω     ,     δ   1     ,     β   1     ,       s   ′     1       )     ,   …   ,     (       S   n     ,     E   Ω     ,     δ   n     ,     β   n     ,     s   n       )       ]       )       }                     :                             K   ˜     =     (       S   ˜     ,     E   Ω     ,     δ   ˜     ,     β   ˜     ,         s   0       ˜       )                                                     ∧     S   ˜     =     (       s       0   1         ,   …   ,     s       0   n           )     ∪     ∪       (         S   ′     ˜     ,       E   ′     Ω     ,       δ   ′     ˜     ,       β   ′     ˜     ,           s   ′     0       ˜       )     ∈           M   ′     ˜       Ω                             S   ′     ˜                                   ∧               δ   ˜     =     {       [       (       (       s       0   1         ,   …   ,     s       0   n           )     ,     x   ˜       )     ,     (         s   ′     1     ,   …   ,       s   ′     n       )       ]           |                                                   (       (       x   1     ,   …   ,     x   n       )     ,     (       y   1     ,   …   ,     y   n       )     ,     (         s   ′     1     ,   …   ,       s   ′     n       )     ,     x   ˜     ,     y   ˜       )     ∈   T             }                                             ∪     ∪       (         S   ′     ˜     ,       E   ′     Ω     ,       δ   ′     ˜     ,       β   ′     ˜     ,           s   ′     0       ˜       )     ∈           M   ′     ˜       Ω             S   ′     ˜                                                 ∧     β   ˜     =     {       [       (       (       s       0   1         ,   …   ,     s       0   n           )     ,     x   ˜       )     ,     y   ˜       ]           |                                                           (       (       x   1     ,   …   ,     x   n       )     ,     (       y   1     ,   …   ,     y   n       )     ,     (         s   ′     1     ,   …   ,       s   ′     n       )     ,     x   ˜     ,     y   ˜       )     ∈   T             }                                             ∪     ∪       (         S   ′     ˜     ,       E   ′     Ω     ,       δ   ′     ˜     ,       β   ′     ˜     ,           s   ′     0       ˜       )     ∈           M   ′     ˜       Ω             S   ′     ˜                                             ∧         s   0       ˜                 =     (       s       0   1         ,   …   ,     s       0   n           )       }     .