Schützen Sie einen IIR-Filter vor Rückentwicklungen


7

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?


1
Ich kann einen "etwas einzigartigen" IIR-Filter unter Verwendung eines Pseudozufallszahlengenerators erzeugen. Was macht Ihren Filter interessant ?
Rodrigo de Azevedo

1
Bitte erläutern Sie auch, was Sie unter "schützen" verstehen. Wenn ich einen FIR-Filter habe, dessen Impulsantwort nahe genug an der Ihres Filters liegt, ist Ihr IIR-Filter dann noch geschützt?
Rodrigo de Azevedo

Oh, und die akzeptierte Antwort ist falsch.
Rodrigo de Azevedo

3
@ RodrigodeAzevedo: Dann schreibe bitte die richtige Antwort! :-)
Peter K.

Antworten:


7

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.


Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
Peter K.

3

Lange Antwort:

Lassen Sie uns den Informationsfluss von Ihrem "versteckten" IIR zu Ihrem beobachtbaren Ausgang als modellierenXY

XY

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)XY

Wir nennen die erwartete Unsicherheit von etwas die Entropie , in Ihrem Fall ist die Unsicherheit über seine Entropie und wird typischerweise als .XH(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)XYX

(1)H(X|Y)=H(X)I(X;Y).

Das Ziel des Angreifers ist es, die Unsicherheit, die er noch über auf zu reduzieren .X0

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)XY

Die gegenseitige Information wie sie in wird, ist symmetrisch, dh ; daher folgtI(X;Y)(1)I(X;Y)=I(Y;X)

(2)H(Y|X)=H(Y)I(X;Y)=(1)H(Y)(H(X)H(X|Y))=H(Y)H(X)+H(X|Y)H(X|Y)=H(Y|X)+H(X)H(Y)

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)


danke, irgendein Hinweis auf den zu verwendenden Randomisierungsalgoithmus? oder wird jemand tun?
Jeff

Alles, was so unkorreliert wie möglich ist (weiß), reicht aus - so ziemlich alles andere als eine kurze LFSR-Implementierung eines Rauschgenerators. Je gleichmäßiger die Probenverteilung ist, desto besser. In einem DSP-System möchten Sie nicht durch die Geschwindigkeit Ihres Zufallsgenerators eingeschränkt werden. Entscheiden Sie sich also nicht für Mersenne Twister-RNGs - diese sind von hoher Qualität, aber langsam. Persönlich bin ich ziemlich glücklich mit XOROSHIRO128 +, die ich verwenden als RNG in DSP - Anwendungen.
Marcus Müller

1
Erwarten Sie übrigens keine Wunder - durch willkürlich lange Beobachtung kann ein willkürlich hoher Grad an eliminiert werden; Rauschen erhöht also nur die Varianz des "IIR Reverse Engineering Estimator" und macht eine Rekonstruktion nicht unmöglich. H(X|Y)
Marcus Müller

1

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.±


1
Könnten Sie bitte näher erläutern, was Sie unter "Anzeigen des Ergebnisses, nicht der Werte" verstehen?
Rodrigo de Azevedo

Wenn Sie nur ein gefiltertes Signal anzeigen und keine Werte ausgeben, pixelisieren (quantisieren) Sie das Ergebnis
Laurent Duval

Leider habe ich Ihren Kommentar nicht verstanden. Bitte erlauben Sie mir, es erneut zu versuchen. Angenommen, ich habe einen digitalen Signalprozessor, der ein digitales Audiosignal verarbeitet. Was ist in diesem Fall das "Ergebnis" und was sind die "Werte"?
Rodrigo de Azevedo

1
Wenn Sie sich mit "Privacy by Design" befassen, schützt Sie die Angabe einer grafischen Ausgabe (eines Bildes) besser als die Angabe einer Liste mit numerischen Werten, da das Diagramm in Daten konvertiert werden müsste. Ist das klarer?
Laurent Duval

Tatsächlich ist es. Vielen Dank.
Rodrigo de Azevedo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.