Tổng quan Connway's Game of Life
Một ứng dụng rung để mô phỏng sự phát triển và kiểm soát của lưới ô dựa trên khái niệm "Trò chơi cuộc sống của Connway" để chứng minh "Máy tự động di động".
Automata di động:
Máy tự động di động (CA) là một mô hình toán học để mô phỏng các hệ thống phức tạp, thường được biểu diễn dưới dạng một lưới các ô có thể ở một trong số các trạng thái hữu hạn. Các ô thay đổi trạng thái dựa trên một bộ quy tắc xác định trạng thái của chúng bị ảnh hưởng như thế nào bởi trạng thái của các ô xung quanh. Điều này tạo ra các mô hình và cấu trúc phát triển theo thời gian, thường dẫn đến hành vi phức tạp và có vẻ thông minh. CA được sử dụng trong nhiều lĩnh vực khác nhau, bao gồm vật lý, sinh học và khoa học máy tính, để nghiên cứu các hiện tượng từ sự hình thành mô hình đến hành vi tự tổ chức và phát sinh.
Trò chơi cuộc sống của Connway:
Conway's Game of Life là một máy tự động di động lần đầu tiên được đề xuất bởi nhà toán học John Horton Conway vào năm 1970. Nó là một mô phỏng các quy tắc đơn giản có thể tạo ra các mẫu phức tạp và thú vị.
Quá trình mô phỏng diễn ra trên một lưới ô hai chiều, trong đó mỗi ô là "sống" hoặc "chết". Ở mỗi bước, trạng thái của từng ô được cập nhật dựa trên trạng thái của tám ô lân cận theo các quy tắc sau:
Nếu một ô còn sống và có hai hoặc ba ô lân cận đang sống, thì ô đó vẫn còn sống. Nếu một ô đã chết và có chính xác ba ô lân cận đang sống, thì ô đó sẽ sống lại. Trong tất cả các trường hợp khác, một tế bào chết hoặc vẫn chết. Những quy tắc đơn giản này có thể tạo ra các mẫu khác nhau, từ các bộ dao động đơn giản đến các hình dạng phức tạp phát triển theo thời gian. Trò chơi Cuộc sống thường được sử dụng làm ví dụ về máy tự động di động và được nghiên cứu rộng rãi bởi các nhà toán học, nhà khoa học máy tính và các nhà nghiên cứu khác quan tâm đến các hệ thống phức tạp và hành vi mới nổi.
Tính năng thử nghiệm- Tạo khóa mã hóa đối xứng/IV:
Với bản chất của máy tự động di động và cách nó tiến triển qua nhiều trạng thái hữu hạn, nó có thể được sử dụng để tạo các chuỗi/số giả ngẫu nhiên có thể phục vụ mục đích của các khóa mã hóa bí mật. Tạo khóa đối xứng đề cập đến quá trình tạo khóa bí mật có thể được sử dụng để mã hóa và giải mã dữ liệu một cách an toàn. Theo cách tiếp cận này, CA được khởi tạo với trạng thái ban đầu ngẫu nhiên, sau đó các quy tắc được áp dụng lặp đi lặp lại để tạo ra một chuỗi các trạng thái. Chuỗi các trạng thái sau đó được chuyển đổi thành một chuỗi số có thể được sử dụng làm khóa bí mật. Ưu điểm của việc sử dụng CA để tạo khóa đối xứng là chuỗi số kết quả rất ngẫu nhiên và không thể đoán trước, khiến kẻ tấn công rất khó đoán được khóa. Ngoài ra, CA có thể được cấu hình dễ dàng để tạo ra các khóa có độ dài khác nhau, giúp nó phù hợp với nhiều ứng dụng mã hóa.
Thông số kỹ thuật:
Dưới đây là chi tiết triển khai cụ thể cho tính năng thử nghiệm này:
Các khóa mã hóa này được tạo bằng cách sử dụng trạng thái hiện tại của Cellular Automaton :
Tại thời điểm tạo khóa, trạng thái/thế hệ hiện tại của máy tự động di động được chuyển đổi thành chuỗi nhị phân--> 1 nếu còn sống/0 nếu đã chết.
Chuỗi nhị phân này sau đó được chia thành các chuỗi con 12 và mỗi chuỗi con được chuyển đổi thành số tương đương thập phân của nó.
Những con số này sau đó được mã hóa thành một ký tự. Do đó, một chuỗi các ký tự biệt ngữ được tạo ra. Chuỗi này sau đó được chia thành hai nửa được sử dụng để tạo khóa bí mật và vectơ khởi tạo.
Sau đó, mỗi nửa trong số hai nửa này sẽ trải qua quá trình mã hóa UTF-8 và băm SHA-256.
16 byte đầu tiên của hai nửa sau đó được chuyển đổi thành khóa và IV tương ứng.
Thuật toán được sử dụng để kiểm tra khóa đối xứng được tạo ra là AES (Tiêu chuẩn mã hóa nâng cao). Tôi đã sử dụng gói mã hóa để triển khai thuật toán AES, vì mục đích của tôi chỉ là để giới thiệu việc tạo khóa chứ không phải triển khai lại bất kỳ thuật toán mã hóa nào.
Automata di động:
Máy tự động di động (CA) là một mô hình toán học để mô phỏng các hệ thống phức tạp, thường được biểu diễn dưới dạng một lưới các ô có thể ở một trong số các trạng thái hữu hạn. Các ô thay đổi trạng thái dựa trên một bộ quy tắc xác định trạng thái của chúng bị ảnh hưởng như thế nào bởi trạng thái của các ô xung quanh. Điều này tạo ra các mô hình và cấu trúc phát triển theo thời gian, thường dẫn đến hành vi phức tạp và có vẻ thông minh. CA được sử dụng trong nhiều lĩnh vực khác nhau, bao gồm vật lý, sinh học và khoa học máy tính, để nghiên cứu các hiện tượng từ sự hình thành mô hình đến hành vi tự tổ chức và phát sinh.
Trò chơi cuộc sống của Connway:
Conway's Game of Life là một máy tự động di động lần đầu tiên được đề xuất bởi nhà toán học John Horton Conway vào năm 1970. Nó là một mô phỏng các quy tắc đơn giản có thể tạo ra các mẫu phức tạp và thú vị.
Quá trình mô phỏng diễn ra trên một lưới ô hai chiều, trong đó mỗi ô là "sống" hoặc "chết". Ở mỗi bước, trạng thái của từng ô được cập nhật dựa trên trạng thái của tám ô lân cận theo các quy tắc sau:
Nếu một ô còn sống và có hai hoặc ba ô lân cận đang sống, thì ô đó vẫn còn sống. Nếu một ô đã chết và có chính xác ba ô lân cận đang sống, thì ô đó sẽ sống lại. Trong tất cả các trường hợp khác, một tế bào chết hoặc vẫn chết. Những quy tắc đơn giản này có thể tạo ra các mẫu khác nhau, từ các bộ dao động đơn giản đến các hình dạng phức tạp phát triển theo thời gian. Trò chơi Cuộc sống thường được sử dụng làm ví dụ về máy tự động di động và được nghiên cứu rộng rãi bởi các nhà toán học, nhà khoa học máy tính và các nhà nghiên cứu khác quan tâm đến các hệ thống phức tạp và hành vi mới nổi.
Tính năng thử nghiệm- Tạo khóa mã hóa đối xứng/IV:
Với bản chất của máy tự động di động và cách nó tiến triển qua nhiều trạng thái hữu hạn, nó có thể được sử dụng để tạo các chuỗi/số giả ngẫu nhiên có thể phục vụ mục đích của các khóa mã hóa bí mật. Tạo khóa đối xứng đề cập đến quá trình tạo khóa bí mật có thể được sử dụng để mã hóa và giải mã dữ liệu một cách an toàn. Theo cách tiếp cận này, CA được khởi tạo với trạng thái ban đầu ngẫu nhiên, sau đó các quy tắc được áp dụng lặp đi lặp lại để tạo ra một chuỗi các trạng thái. Chuỗi các trạng thái sau đó được chuyển đổi thành một chuỗi số có thể được sử dụng làm khóa bí mật. Ưu điểm của việc sử dụng CA để tạo khóa đối xứng là chuỗi số kết quả rất ngẫu nhiên và không thể đoán trước, khiến kẻ tấn công rất khó đoán được khóa. Ngoài ra, CA có thể được cấu hình dễ dàng để tạo ra các khóa có độ dài khác nhau, giúp nó phù hợp với nhiều ứng dụng mã hóa.
Thông số kỹ thuật:
Dưới đây là chi tiết triển khai cụ thể cho tính năng thử nghiệm này:
Các khóa mã hóa này được tạo bằng cách sử dụng trạng thái hiện tại của Cellular Automaton :
Tại thời điểm tạo khóa, trạng thái/thế hệ hiện tại của máy tự động di động được chuyển đổi thành chuỗi nhị phân--> 1 nếu còn sống/0 nếu đã chết.
Chuỗi nhị phân này sau đó được chia thành các chuỗi con 12 và mỗi chuỗi con được chuyển đổi thành số tương đương thập phân của nó.
Những con số này sau đó được mã hóa thành một ký tự. Do đó, một chuỗi các ký tự biệt ngữ được tạo ra. Chuỗi này sau đó được chia thành hai nửa được sử dụng để tạo khóa bí mật và vectơ khởi tạo.
Sau đó, mỗi nửa trong số hai nửa này sẽ trải qua quá trình mã hóa UTF-8 và băm SHA-256.
16 byte đầu tiên của hai nửa sau đó được chuyển đổi thành khóa và IV tương ứng.
Thuật toán được sử dụng để kiểm tra khóa đối xứng được tạo ra là AES (Tiêu chuẩn mã hóa nâng cao). Tôi đã sử dụng gói mã hóa để triển khai thuật toán AES, vì mục đích của tôi chỉ là để giới thiệu việc tạo khóa chứ không phải triển khai lại bất kỳ thuật toán mã hóa nào.
Xem thêm