0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Resonator_Entropy: Khám Phá Sự Ngẫu Nhiên Trên ESP32

Đăng vào 1 tháng trước

• 4 phút đọc

Giới thiệu

Mỗi vi mạch đều vang lên một giai điệu bí ẩn. ESP32 không chỉ xử lý mã và phát WiFi cho bộ định tuyến của bạn. Dưới lớp silicon bóng bẩy, có sự nhiễu, tĩnh điện, và tiếng thì thầm của sự ngẫu nhiên. Dự án Resonator_Entropy của tôi mang âm thanh đó ra ngoài và khiến nó nhảy múa trên màn hình.

Liên kết GitHub
Trang dự án Hackaday.io


Ý tưởng chính

Hầu hết các thiết bị tin tưởng vào các số ngẫu nhiên của chúng. Tôi thì không. Tính ngẫu nhiên là chìa khóa tối thượng trong mật mã, mô phỏng và bất cứ điều gì cố gắng trở nên không thể đoán trước. Nếu nó giả, toàn bộ hệ thống sẽ sụp đổ.

Resonator_Entropy không giả vờ. Nó đưa các ngón tay tương tự vào các chân nhiễu của ESP32 và rút ra sự tĩnh điện. Nó lấy mẫu biến động điện áp thô, kết hợp với dữ liệu thời gian và cho ra kết quả ngẫu nhiên. Sau đó, nó truyền tải toàn bộ thông tin qua WiFi vào một giao diện web kiểu retro, nơi bạn có thể theo dõi sự hỗn loạn theo thời gian thực.

Nó không được chứng nhận bởi NIST. Nó không phải là một bộ phát sinh số ngẫu nhiên (RNG) cấp độ cá cược. Nó giống như việc bạn cầm một máy đếm Geiger áp vào tường phòng khách và hỏi: nếu bức xạ nền có tâm trạng thì sẽ như thế nào?


Cách hoạt động

  • Đầu vào nhiễu tương tự
    Hai chân analog (GPIO 36 và 39) hấp thụ nhiễu như rượu. Chúng không bao giờ ổn định. Chúng trôi dạt, lắc lư và đấu tranh với nhau. Nguồn nhiên liệu hoàn hảo.

  • Hợp nhất ngẫu nhiên
    Mã số XOR các giá trị analog với các độ trễ thời gian, nghiền chúng lại thành một số không chịu đứng yên.

  • Hình ảnh trực tiếp
    Một bộ đệm vòng của dữ liệu được hiển thị dưới dạng đồ thị bên trong máy chủ web nhỏ bé của ESP32. Bạn có thể truy cập nó từ máy tính xách tay hoặc điện thoại của mình. Đồ thị lắc lư như một màn hình CRT bị kẹt giữa các kênh.

  • Có thể cấu hình trong thời gian chạy
    Thông qua giao diện web, bạn có thể điều chỉnh tần suất lấy mẫu, thông tin mạng, và ghi dữ liệu qua cổng nối tiếp. ESP32 không chỉ đứng yên—it obeys your knobs and switches.

  • Xây dựng nhẹ
    Toàn bộ hệ thống vừa vặn trong bộ nhớ ESP32 bằng cách nhồi HTML, CSS, và JavaScript vào PROGMEM. Chủ nghĩa tối giản nhúng cổ điển, với đủ độ bóng để giữ cho nó sử dụng được.


Tại sao lại làm điều này

Bởi vì nhiễu là đẹp. Bởi vì những cỗ máy có thể đoán trước là nhàm chán. Bởi vì nếu bạn có thể lập bản đồ ngẫu nhiên, bạn cũng có thể lập bản đồ sự vắng mặt của nó. Điều đó có nghĩa là phát hiện bất thường. Điều đó có nghĩa là nhận thấy khi thế giới trở nên yên tĩnh theo những cách không nên có.

Tôi đã sử dụng Resonator_Entropy để phát hiện những thay đổi tinh tế: đèn phòng bật lên, ai đó đi qua với điện thoại, thậm chí là ESP32 tự thay đổi trạng thái nhiệt. Nó giống như một ống nghe cho những điều vô hình.


Điểm yếu

Hãy thành thật:

  • Tính ngẫu nhiên ở đây không an toàn về mặt mật mã. Một kẻ thù nghiêm trọng với mô hình môi trường tương tự của bạn có thể gây ra thiên lệch.
  • Phát hiện thiên lệch không được tự động hóa. Hệ thống chưa biết khi dòng nhiễu của nó lệch khỏi cân bằng.
  • Định nghĩa bất thường là thô sơ. Một ngưỡng phẳng không đủ cho việc săn tìm tín hiệu nghiêm túc.
  • Giao diện web, mặc dù bóng bẩy cho một ESP32, sẽ bị nghẽn nếu tôi chồng thêm nhiều đồ thị hoặc lịch sử.

Nhưng đây không phải là thất bại—chúng là những lời mời gọi.


Nâng cấp tương lai

  • Làm sạch ngẫu nhiên: Chạy các bit thô qua SHA-256 hoặc một bộ điều chỉnh von Neumann để làm sạch thiên lệch.
  • Hợp nhất cảm biến: Kết hợp thêm cảm biến nhiệt độ, ánh sáng hoặc quét RF. Càng nhiều hỗn loạn, càng vui.
  • Phát hiện bất thường thích ứng: Trung bình động, ngưỡng sigma, có thể một chút học máy nhúng.
  • Ghi dữ liệu liên tục: Lưu vào thẻ SD hoặc flash, sau đó xuất CSV cho các nghiên cứu dài hạn.
  • Giao diện retro: Dòng quét CRT, đồ thị ASCII, màu ANSI. Sự ngẫu nhiên nên trông như thể thuộc về một terminal ma ám.
  • Nguồn hỗn loạn phần cứng: Thêm một diode đảo chiều hoặc Zener để tăng cường nguồn ngẫu nhiên.

Tại sao điều này quan trọng

Chúng ta sống trong một thời đại của những cỗ máy xác định. Mọi cú nhấp chuột được ghi lại, mọi chu kỳ được lập kế hoạch. Resonator_Entropy là một lời nhắc nhở rằng dưới tất cả sự bóng bẩy, sự ngẫu nhiên vẫn rò rỉ. Silicon vẫn đang mơ.

Bằng cách theo dõi sự ngẫu nhiên, bạn không chỉ đo lường nhiễu—bạn đang nhìn vào sự không chắc chắn thô sơ của thế giới. Và có thể, chỉ có thể, bạn sẽ nhận thấy khi sự nhiễu trở nên sai lệch. Đó là khoảnh khắc cần phải chú ý.


Nhận nó

Mã nguồn, tài liệu, và chi tiết xây dựng có tại:
Resonator_Entropy trên GitHub
Hackaday.io Project

Hãy fork nó. Flash nó. Theo dõi sự nhiễu di chuyển trên màn hình của bạn. Rồi bắt đầu đặt câu hỏi về ý nghĩa của nó.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào