Ich habe einen etwas einzigartigen IIR-Filter erstellt und möchte den Filter vor Rückentwicklungen schützen
Ich denke, Sie alle wissen, dass es ziemlich einfach ist, die verschiedenen Gewichte eines IIR mithilfe von Impulssignalen zu ermitteln.
Der Filter ist programmgesteuert in ein größeres Programm eingekapselt, sodass ich einige Tricks hinzufügen kann, um die Filterkoeffizienten zu schützen.
Aber was wäre die beste Methode, um meinen IIR-Filter zu schützen?
filter-design
infinite-impulse-response
digital-filters
system-identification
reverse-engineering
Jeff
quelle
quelle
Antworten:
Kurze Antwort:
Das kannst du nicht. Wenn ein Angreifer ein Signal, das die gesamte Bandbreite abdeckt (z. B. ein weißes Signal oder mindestens eines ohne spektrale Nullen), in das System einfügen kann (und dies über einen willkürlich langen Zeitraum oder durch Addition von Beobachtungen) wird eine Ausgabe erhalten und kann durch die Magie der Korrelation die Impulsantwort erhalten.
quelle
Lange Antwort:
Lassen Sie uns den Informationsfluss von Ihrem "versteckten" IIR zu Ihrem beobachtbaren Ausgang als modellierenX Y
Dann nennen wir die Informationsmenge, die Sie pro Beobachtung erhalten, die * gegenseitige Information ; Diese Information ist die Verringerung der Unsicherheit über , die durch Beobachtung von .I(X;Y) X Y
Wir nennen die erwartete Unsicherheit von etwas die Entropie , in Ihrem Fall ist die Unsicherheit über seine Entropie und wird typischerweise als .X H(X)
Das Schöne an all dem ist, dass , dh die "Unsicherheit über , die bleibt, wenn Sie kennen ", eigentlich nur die Entropie von abzüglich der Informationen ist, die Sie erhalten, also:H(X|Y) X Y X
Das Ziel des Angreifers ist es, die Unsicherheit, die er noch über auf zu reduzieren .X 0
Da jedes Signal, das alle Eigenfunktionen eines Systems "anregt", das System vollständig charakterisieren kann, bedeutet dies, dass wir nur den vollständigen Satz von Eigenfunktionen über Ihr IIR senden müssen. Und da Ihr IIR ein LTI-System ist, ist dies zufällig der Vektor, der alle Schwingungen einer darstellbaren Frequenz enthält.
Sie können die Menge an Informationen reduzieren, die ein Angreifer über Ihr System erhalten kann, indem Sie künstlich Rauschen einfügen. Informationstheoretisch erhöht dies Ihre Irrelevanz (selbst wenn Sie , würden Sie nicht zu 100% kennen , da Rauschen hinzugefügt wird).H(Y|X) X Y
Die gegenseitige Information wie sie in wird, ist symmetrisch, dh ; daher folgtI(X;Y) (1) I(X;Y)=I(Y;X)
Ihr Ziel war es, einen Reverse Engineer zu stoppen, dh zu maximieren .H(X|Y)
Da fest ist (Sie haben einige Koeffizienten, die einige Werte annehmen können, also eine gewisse Anzahl von Bits), besteht Ihre einzige Möglichkeit, diese Zielfunktion abzustimmen, darin, zu erhöhen . Und der einzige Weg, dies zu tun, besteht darin, wirklich zufällige Variationen in Ihre Ausgabe einzufügen.H(X) H(Y|X)
quelle
Faltung ist ein linearer Operator. Als solches kann es zumindest theoretisch invertiert werden. Aber es ist unendlich lang und in der Koeffizientenamplitudengenauigkeit. Was in der Praxis nicht erreicht werden kann.
Das Gleichgewicht liegt also in dem, was Sie als "Schutz" bezeichnen, und es gibt möglicherweise einige Möglichkeiten für "Privacy by Design":
Wenn der Algorithmus nur eine Faltung ist, können Sie kontroverse Versuche nicht vermeiden, "so nah wie möglich" an Ihren Filter heranzukommen.
Sie können diese Möglichkeit einschränken, indem Sie Ihrer Ausgabe beispielsweise Nichtlinearitäten wie Quantisierung oder Kürzung hinzufügen (oder nur das Ergebnis und nicht die Werte anzeigen), um inverse Versuche einzuschränken, oder indem Sie Ihren Koeffizienten Fingerabdrücke hinzufügen, damit Sie kann "behaupten", dass jemand anderes es benutzt hat.
Nach einigen Gesetzen können Sie Algorithmen oder Methoden (Patente usw.) mit einigen Kosten schützen (versuchen).
In der Vergangenheit habe ich ein Geräuschmesssystem rückentwickelt. Es war eine schuhgroße Schachtel mit Dokumentation und einem hohen Preis. Es sollte Drucksensordaten (linear) filtern, seinen Absolutwert (Nichtlinearität) integrieren und einen dB-Wert (Dimensionsreduzierung) ausgeben. Mit einem Wellengenerator, könnten wir das absolute Spektrum, Invertzuckersirup es, neu zu zeichnen und die Ausgabe mit bekommen 0,8 dB Genauigkeit, genug für den Zweck. Und wir haben überprüft, ob die Dokumentationsdiagramme ungenau waren (ich vermute hier "Privacy by Design"), und es gab eine große Variabilität zwischen zwei "Kopien" der Geräuschmesssysteme.±
quelle