Creé un filtro IIR algo único y quiero proteger el filtro de ingeniería inversa
Creo que todos saben que es bastante fácil obtener todos los diferentes pesos de un IIR mediante el uso de señales de impulso.
El filtro está encapsulado programáticamente en un programa más grande, por lo que puedo agregar algunos trucos para proteger los coeficientes del filtro.
Pero, ¿cuál sería el mejor método para proteger mi filtro IIR?
Respuestas:
Respuesta corta:
No puedes Si un atacante puede insertar una señal que cubra todo el ancho de banda (por ejemplo, una señal blanca, o al menos una que no tenga ceros espectrales) en el sistema (y puede hacerlo durante un tiempo arbitrariamente largo, o sumar observaciones), obtendrá una salida y, a través de la magia de la correlación, puede obtener la respuesta al impulso.
fuente
Respuesta larga:
Modelemos el flujo de información de su IIR "oculto"X a su salida observable Y como
Luego, llamamos a la cantidad de información que obtiene por observación la * información mutuaI(X;Y) ; esa información es la reducción de la incertidumbre sobreX a lograr observando Y .
Llamamos a la incertidumbre esperada de algo la entropía , en su caso, la incertidumbre sobreX es su entropía y típicamente se denota como H(X) .
Ahora, lo bueno de todo esto es queH(X|Y) , es decir, la "incertidumbre sobre X eso queda cuando sabes Y ", en realidad es solo la entropía de X menos la información que obtienes, entonces:
El objetivo del atacante es reducir la incertidumbre que aún tiene sobreX a 0 .
Ahora, dado que cualquier señal que "excite" todas las funciones propias de un sistema puede caracterizar completamente el sistema, eso significa que solo necesitamos enviar el conjunto completo de funciones propias a través de su IIR. Y dado que su IIR es un sistema LTI, resulta ser el vector que contiene todas las oscilaciones de cualquier frecuencia representable.
Puede reducir la cantidad de información que un atacante puede obtener sobre su sistema insertando ruido artificialmente. Información teórica, esto aumenta su irrelevanciaH(Y|X) (incluso si supieras X , no lo sabrías al 100% Y , porque se agrega ruido).
La información mutuaI(X;Y) como se usa en (1) es simétrico, es decir I(X;Y)=I(Y;X) ; por lo tanto sigue
Su objetivo era detener a un ingeniero inverso, es decir, maximizarH(X|Y) .
Ya queH(X) es fijo (tiene algunos coeficientes que pueden tomar algunos valores, por lo que es una cantidad de bits), su única forma de ajustar esta función objetivo es aumentar H(Y|X) . Y la única forma de hacerlo es insertando variaciones verdaderamente aleatorias en su salida.
fuente
La convolución es un operador lineal. Como tal, puede ser, al menos teóricamente, invertido. Pero tiene una longitud infinita y una precisión de amplitud de coeficiente. Que, en la práctica del mundo real, no se puede alcanzar.
Por lo tanto, el equilibrio reside en lo que usted llama "proteger", y puede haber algunas posibilidades de "privacidad por diseño":
Si el algoritmo es una mera convolución, no puede evitar los intentos adversos de obtener aproximaciones "lo más cercanas posible" de su filtro.
puede limitar esta posibilidad, por ejemplo, agregando no linealidades a su salida, como cuantización o truncamiento (o simplemente mostrando el resultado, no los valores), para restringir los intentos inversos, o agregando huellas digitales a sus coeficientes, para que pueda puede "reclamar" que alguien más lo usó.
De acuerdo con algunas leyes, puede (intentar) proteger algoritmos o métodos (patentes, etc.), con algún costo.
En el pasado, realicé una ingeniería inversa de un sistema de medición de ruido. Era una caja del tamaño de un zapato, con documentación y un alto precio. Se suponía que debía filtrar los datos del sensor de presión (lineal), integrar su valor absoluto (no linealidad) y generar un valor de dB (reducción de dimensión). Con un generador de ondas, podríamos volver a dibujar el espectro absoluto, invertirlo y obtener la salida con± Precisión de 0,8 dB, suficiente para el propósito. Y verificamos que los diagramas de documentación eran inexactos (sospecho que "privacidad por diseño" aquí), y que había una gran variabilidad entre dos "copias" de los sistemas de medición de ruido.
fuente