Bảo vệ bộ lọc IIR khỏi bị đảo ngược


7

Tôi đã tạo bộ lọc IIR hơi độc đáo và tôi muốn bảo vệ bộ lọc khỏi bị đảo ngược

Tôi nghĩ rằng tất cả các bạn đều biết rằng khá dễ dàng để có được tất cả các trọng lượng khác nhau của IIR bằng cách sử dụng các tín hiệu xung.

Bộ lọc được đóng gói theo chương trình trong một chương trình lớn hơn, vì vậy tôi có thể thêm một số thủ thuật để bảo vệ các hệ số bộ lọc.

Nhưng điều gì sẽ là phương pháp tốt nhất để bảo vệ bộ lọc IIR của tôi?


1
Tôi có thể tạo bộ lọc IIR "hơi độc đáo" bằng cách sử dụng trình tạo số giả ngẫu nhiên. Điều gì làm cho bộ lọc của bạn thú vị ?
Rodrigo de Azevedo

1
Ngoài ra, xin vui lòng giải thích những gì bạn có nghĩa là "bảo vệ". Nếu tôi có bộ lọc FIR có đáp ứng xung "đủ gần" với bộ lọc của bạn, bộ lọc IIR của bạn có còn được bảo vệ không?
Rodrigo de Azevedo

Oh, và câu trả lời được chấp nhận là sai.
Rodrigo de Azevedo

3
@RodrigodeAzevedo: Sau đó viết câu trả lời đúng! :-)
Peter K.

Câu trả lời:


7

Câu trả lời ngắn:

Bạn không thể. Nếu kẻ tấn công có thể chèn tín hiệu bao phủ toàn bộ băng thông (ví dụ tín hiệu trắng hoặc ít nhất là tín hiệu không có số 0) vào hệ thống (và anh ta có thể thực hiện điều đó trong một thời gian dài tùy ý hoặc thêm các quan sát), chúng sẽ nhận được một đầu ra, và có thể thông qua phép thuật tương quan có được phản ứng thúc đẩy.


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Peter K.

3

Câu trả lời dài:

Hãy mô hình hóa luồng thông tin từ IIR "ẩn" của bạn X đến đầu ra quan sát của bạn Y như

XY

Sau đó, chúng tôi gọi lượng thông tin bạn nhận được cho mỗi lần quan sát là * thông tin lẫn nhau I(X;Y); thông tin đó là giảm sự không chắc chắn vềX để đạt được bằng cách quan sát Y.

Chúng tôi gọi sự không chắc chắn dự kiến ​​của một cái gì đó là entropy , trong trường hợp của bạn, sự không chắc chắn vềX là entropy của nó và thường được ký hiệu là H(X).

Bây giờ, điều tốt đẹp và về tất cả điều này là H(X|Y), tức là "sự không chắc chắn về X vẫn còn khi bạn biết Y", thực sự chỉ là entropy của X trừ thông tin bạn nhận được, vì vậy:

(1)H(X|Y)= =H(X)-Tôi(X;Y).

Mục tiêu của kẻ tấn công là giảm bớt sự không chắc chắn mà anh ta vẫn có X đến 0.

Bây giờ, vì bất kỳ tín hiệu nào "kích thích" tất cả các hàm riêng của một hệ thống đều có thể mô tả đầy đủ hệ thống, điều đó có nghĩa là chúng ta chỉ cần gửi toàn bộ các hàm riêng thông qua IIR của bạn. Và vì IIR của bạn là một hệ thống LTI, nên đó chỉ là vectơ chứa tất cả các dao động của bất kỳ tần số đại diện nào.

Bạn có thể giảm lượng thông tin mà kẻ tấn công có thể nhận được về hệ thống của bạn bằng cách chèn tiếng ồn giả tạo. Thông tin lý thuyết, điều này làm tăng sự không liên quan của bạnH(Y|X) (ngay cả khi bạn biết X, bạn sẽ không biết 100% Y, bởi vì tiếng ồn được thêm vào).

Các thông tin lẫn nhau Tôi(X;Y) như được sử dụng trong (1) là đối xứng, tức là Tôi(X;Y)= =Tôi(Y;X); do đó sau

(2)H(Y|X)= =H(Y)-Tô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)

Mục tiêu của bạn là ngăn chặn một kỹ sư đảo ngược, tức là tối đa hóa H(X|Y).

Từ H(X) đã được sửa (bạn đã có một số hệ số có thể nhận một số giá trị, do đó, đó là một số lượng bit), cách duy nhất để điều chỉnh hàm mục tiêu này là tăng H(Y|X). Và cách duy nhất để làm như vậy là bằng cách chèn các biến thể thực sự ngẫu nhiên trong đầu ra của bạn.


cảm ơn, có gợi ý nào về thuật toán ngẫu nhiên để sử dụng không? hoặc bất kỳ sẽ làm gì?
Jeff

bất cứ điều gì không tương thích nhất có thể (màu trắng) sẽ làm - gần như mọi thứ trừ việc triển khai LFSR ngắn của một bộ tạo tiếng ồn. Phân phối mẫu càng đồng đều thì càng tốt. Trong hệ thống DSP, bạn không muốn bị giới hạn bởi tốc độ của trình tạo ngẫu nhiên, vì vậy đừng tìm kiếm thứ gì đó như Mersenne Twister RNG - đây là những chất lượng cao, nhưng chậm. Cá nhân tôi khá hài lòng với XOROSHIRO128 + mà tôi sử dụng làm RNG trong các ứng dụng DSP.
Marcus Müller

1
Nhân tiện, đừng mong đợi điều kỳ diệu - thông qua quan sát dài tùy tiện, mức độ cao tùy ý H(X|Y)có thể được loại bỏ; vì vậy, tiếng ồn thực sự chỉ làm tăng phương sai của "công cụ ước tính kỹ thuật đảo ngược IIR", nó không làm cho việc tái cấu trúc là không thể.
Marcus Müller

1

Convolution là một toán tử tuyến tính. Như vậy, ít nhất là về mặt lý thuyết, có thể đảo ngược. Nhưng nó là vô hạn về chiều dài, và độ chính xác biên độ hệ số. Mà, trong thực tế thế giới, không thể đạt được.

Vì vậy, sự cân bằng nằm trong cái mà bạn gọi là "bảo vệ" và có thể có một số khả năng "riêng tư theo thiết kế":

  • nếu thuật toán là một tích chập đơn thuần, bạn không thể tránh các nỗ lực đối nghịch trong việc lấy các xấp xỉ "càng gần càng tốt" của bộ lọc.

  • chẳng hạn, bạn có thể hạn chế khả năng này bằng cách thêm phi tuyến tính vào đầu ra của mình, như lượng tử hóa hoặc cắt bớt (hoặc chỉ hiển thị kết quả, không phải giá trị), để hạn chế các nỗ lực nghịch đảo hoặc bằng cách thêm dấu vân tay vào các hệ số của bạn, để bạn có thể "yêu cầu" người khác sử dụng nó.

  • theo một số luật, bạn có thể (cố gắng) bảo vệ các thuật toán hoặc phương pháp (bằng sáng chế, v.v.), với một số chi phí.

Trước đây, tôi đã thực hiện một số kỹ thuật đảo ngược của một hệ thống đo tiếng ồn. Đó là một hộp cỡ giày, có tài liệu và giá cao. Nó được cho là để lọc dữ liệu cảm biến áp suất (tuyến tính), tích hợp giá trị tuyệt đối của nó (phi tuyến tính) và tạo ra giá trị dB (giảm kích thước). Với một bộ tạo sóng, chúng ta có thể vẽ lại phổ tuyệt đối, đảo ngược nó và nhận đầu ra với±Độ chính xác 0,8 dB, đủ cho mục đích. Và chúng tôi đã kiểm tra rằng các sơ đồ tài liệu không chính xác (tôi nghi ngờ "quyền riêng tư theo thiết kế" ở đây) và có sự thay đổi lớn giữa hai "bản sao" của các hệ thống đo tiếng ồn.


1
Bạn có thể vui lòng giải thích ý của bạn bằng cách "hiển thị kết quả, không phải các giá trị" không?
Rodrigo de Azevedo

Nếu bạn chỉ hiển thị tín hiệu được lọc và không xuất giá trị, bạn sẽ pixel hóa (lượng hóa) kết quả
Laurent Duval

Thật không may, tôi không hiểu bình luận của bạn. Xin cho phép tôi thử lại. Giả sử tôi có bộ xử lý tín hiệu số thực hiện một số xử lý tín hiệu âm thanh kỹ thuật số. Trong trường hợp này, "kết quả" là gì và "giá trị" là gì?
Rodrigo de Azevedo

1
Nếu bạn đang xem "quyền riêng tư theo thiết kế", việc đưa ra một đầu ra đồ họa (hình ảnh) sẽ bảo vệ bạn tốt hơn khi đưa ra một danh sách giá trị bằng số, bởi vì người ta sẽ cần phải chuyển đổi biểu đồ thành dữ liệu, điều đó có rõ ràng hơn không?
Laurent Duval

Thật vậy, nó là. Cảm ơn bạn.
Rodrigo de Azevedo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.