Điểm:0

Phép nhân ma trận của các thông báo băm có thừa nhận sự thao túng kết quả không?

lá cờ in

Lấy một chuỗi các bộ đệm byte, băm từng bộ đệm, diễn giải các bản tóm tắt băm dưới dạng ma trận vuông với các phần tử int không dấu 8 bit và (ma trận) nhân chúng theo thứ tự. Xác định ma trận cuối cùng là "băm" của danh sách các phần tử.

Định nghĩa này có một số thuộc tính hữu ích. Cụ thể, thuộc tính kết hợp của phép nhân ma trận cho phép tính toán hàm băm danh sách của phép nối hai danh sách bằng cách tính toán hàm băm của từng danh sách một cách độc lập và sau đó giảm chúng bằng phép nhân để có được hàm băm danh sách cuối cùng. Điều này hoạt động với bất kỳ phân vùng tùy ý. Tính không giao hoán cung cấp rằng các thứ tự phần tử khác nhau tạo ra một hàm băm khác cho danh sách, như người ta mong đợi đối với một danh sách.

(Tôi khám phá định nghĩa này chi tiết hơn bao gồm các mẫu mã làm việc trong sổ ghi chép jupyter python mà tôi đã xuất bản có tựa đề danh sách đánh dấu. Bạn cũng có thể tự chơi với nó trên Google Colabvà thêm chú thích hypothes.is trên bài đăng để nhận phản hồi chung. Tôi có thể nâng chi tiết từ đó đến câu hỏi này nếu cần.)

Câu hỏi

  1. Định nghĩa này có chống lại các cuộc tấn công tạo ảnh trước không? Nói cách khác, có thể chọn một chuỗi các phần tử dẫn đến một hàm băm danh sách mục tiêu tùy ý không?

Lưu ý rằng các phần tử phải tồn tại, do đó, phần tử tiêu hóa đi vào danh sách băm có khả năng chống ảnh hưởng trước dựa trên hàm băm cơ bản (mà chúng ta có thể giả sử nắm giữ trong phạm vi của câu hỏi này). Vì vậy, câu hỏi thực sự trở thành: Có thể sử dụng thứ tự hoặc sự hiện diện của các thông báo băm này để thay đổi tùy ý nội dung của ma trận cuối cùng không? Ví dụ: bạn có thể tạo một chuỗi các phần tử tạo ra hàm băm danh sách là ma trận không không? (Trúng một ma trận bằng không có nghĩa là trò chơi kết thúc, thất bại.)

Tôi đã thực hiện một số tìm kiếm và không tìm thấy câu trả lời cho bất kỳ câu hỏi nào trong số này, mặc dù tôi nghi ngờ rằng điều đó có thể là do tôi không biết về thuật ngữ chính xác cũng như việc không tồn tại câu trả lời.

poncho avatar
lá cờ my
BTW: Tôi vừa thử nó; khi tôi băm một chuỗi khoảng 3000 hình ảnh tiền tố khác nhau (không được chọn một cách ác ý) với nhau, kết quả là ma trận toàn bằng không.
lá cờ in
Ôi, có vẻ như "không làm bài tập về nhà" của tôi đang hiển thị. Thật xấu hổ Đoán là tôi sẽ phải thử lại với $GF(256)$ và có thể kiểm tra kỹ hơn một chút.
poncho avatar
lá cờ my
Tôi nghi ngờ rằng, trong khi $GF(256)$ sẽ tốt hơn đáng kể, ngay cả khi bạn cần loại trừ các ma trận không thể đảo ngược, thì một chuỗi đủ lớn vẫn sẽ kết thúc bằng tất cả các số 0 - có lẽ nó chỉ có thể mất một triệu phần tử, thay vì chỉ 3.000.
lá cờ in
Bạn nghĩ? Tôi cảm thấy như thể nếu các mục nhập của ứng cử viên bị giới hạn ở các ma trận khả nghịch thì chỉ điều đó sẽ khắc phục được. Lấy ví dụ này: $X A B C C^{-1} B^{-1} A^{-1}$; điều này sẽ luôn dẫn đến $X$ một lần nữa, bất kể chuỗi $ABC$ ban đầu dài bao lâu. Giống như, nếu không thì một hoặc nhiều ma trận sẽ không khả nghịch theo định nghĩa. Không? Tôi cảm thấy vấn đề lớn nhất là tìm ra một ma trận khả nghịch cho mỗi mục khả thi trong thời gian hợp lý.
lá cờ in
@poncho Tôi vừa thử nó với các phần tử ma trận $GF(256)$ và nó vẫn có vẻ ổn sau 10 triệu mục nhập. Tôi sẽ sớm đăng một câu hỏi khác giống như câu hỏi này nhưng thay vào đó với công thức $GF(256)$.
poncho avatar
lá cờ my
Nếu bạn sử dụng $GF(256)$, thì một ma trận ngẫu nhiên có xấp xỉ $1/256$ là số ít; tôi nghi ngờ rằng, với một chuỗi dài, số lượng ma trận số ít xuất hiện ngẫu nhiên sẽ giảm dần thứ hạng, cuối cùng dẫn đến thứ hạng 0 (ma trận toàn 0). Tuy nhiên, tôi không có một mô hình tốt về việc điều này sẽ xảy ra sớm như thế nào ...
lá cờ in
Vâng bạn đã đúng. Để đảm bảo rằng không có ma trận đơn lẻ nào được thừa nhận, tôi đang sử dụng lấy mẫu từ chối trong một vòng lặp khi tính toán 'hàm băm ma trận' của một phần tử như bạn đã đề xuất trước đó.
poncho avatar
lá cờ my
Rõ ràng, nếu bạn hạn chế bản thân với các phần tử khả nghịch, thì các phần tử đó tạo thành một nhóm và do đó bạn sẽ không bao giờ rơi vào trạng thái bị hạn chế (chẳng hạn như ma trận tất cả bằng 0). Có thể có những thủ thuật tinh vi mà bạn có thể sử dụng từ lý thuyết nhóm để tìm ra xung đột; tuy nhiên điều đó hoàn toàn không rõ ràng ...
lá cờ in
@poncho Tôi đã xuất bản một bản nháp về điều này bằng cách sử dụng $GF(256)$ trong một bài đăng mới nếu bạn quan tâm: https://blog.infogulch.com/2021/07/15/Merklist-GF.html Thay vào đó, nó sử dụng Julia của trăn vì tôi muốn thử Julia. Bạn có thể mở nó để chỉnh sửa trực tiếp trên mạng. Ý tôi là thêm một phụ lục vào bài đăng gốc của tôi phác thảo vấn đề mà bạn đã tìm thấy.
Điểm:1
lá cờ my

Ví dụ: bạn có thể tạo một chuỗi các phần tử tạo ra hàm băm danh sách là ma trận không không?

Đúng; cách rõ ràng nhất là tìm một bộ đệm băm thành một ma trận với tất cả $n^2$ phần tử ma trận chẵn; sao chép bộ đệm đó 8 lần và bạn sẽ nhận được một sản phẩm hoàn toàn bằng không.

Điều này có một mong đợi $2^{n^2}$ làm việc để tìm một bộ đệm như vậy; vì $n=8$, điều này là hợp lý.

Nó có thể được cải thiện; bằng cách xem xét các cặp ma trận không khả nghịch, có vẻ hợp lý rằng, với công việc ít hơn đáng kể so với $2^{64}$, bạn có thể tìm được hai tích có tất cả các phần tử chẵn (và trong trường hợp đó, nhận xét trên sẽ được áp dụng).

lá cờ in
Điều đó làm cho rất nhiều ý nghĩa.Để làm rõ, điều này có phải do tôi chọn vòng (256) có thừa số là 2 không? Bạn có nghĩ rằng điều này có thể được cải thiện bằng cách chọn một vòng nguyên tố (ví dụ: 257) không?
poncho avatar
lá cờ my
@infogulch: hay $GF(2^8)$? Chà, nó sẽ giúp ích, nhưng không đáng kể lắm; người ta vẫn có một xác suất tốt (xác suất khoảng 1/256 cho mỗi lần thử) tìm ra các ma trận không khả nghịch; có vẻ hợp lý khi bạn có thể dán chúng lại với nhau để tìm các sản phẩm có thứ hạng giảm dần, dẫn đến ma trận tất cả bằng 0. Trên thực tế, câu trả lời ban đầu của tôi sẽ là thế này, cho đến khi tôi nhận ra rằng câu trả lời 'tất cả lsbits 0' dễ biện minh hơn đáng kể. Tuy nhiên, nếu bạn đã sử dụng một trường chẳng hạn như $GF(256)$ hoặc $GF(257)$ và cố tình bỏ qua (sử dụng lấy mẫu từ chối) các ma trận không thể đảo ngược, thì điều đó có thể hiệu quả
lá cờ in
Cảm ơn con trỏ tới trường Galois và ma trận khả nghịch. Tôi đã cân nhắc rằng các ma trận khả nghịch có thể là một thứ nên có, nhưng chúng có lẽ là một yêu cầu để nó hoạt động và không dẫn đến các trường hợp suy biến như ma trận bằng không.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.