Điểm:2

Xác minh băm bằng khóa

lá cờ cn

Tôi muốn triển khai thuật toán sau, nhưng không biết sử dụng công cụ nào.

D - dữ liệu

  1. Tôi tạo một số giá trị chung cho D - Y
  2. Tôi tạo một số khóa ngẫu nhiên - K, nhận mã băm D bằng khóa này - H
  3. Tôi muốn có một hàm - F: F(Y, K, H) = true nếu H đúng và ngược lại là sai.

Mục tiêu chính: chứng minh tính hợp lệ của hàm băm dữ liệu bằng một số khóa chỉ sử dụng một số phần dữ liệu gốc.

Cách sử dụng: Giả sử chúng ta có các máy tính: A, B, C. A gửi một số dữ liệu cho B, sau đó dữ liệu sẽ bị xóa khỏi A. Bây giờ, tôi muốn có thể kiểm tra (từ các nút A, C) xem B có chứa dữ liệu nào không. 10 phút, nhưng tôi không thể tin tưởng nó, vì vậy tôi cần một số công cụ để chắc chắn rằng B không lừa tôi.

Trả lời: PDP (Bằng chứng về quyền sở hữu dữ liệu)

kelalaka avatar
lá cờ in
Bạn đang hỏi HMAC hay nhiều hơn?
ischenko avatar
lá cờ cn
@kelalaka Tôi muốn có thể chứng minh rằng dữ liệu tồn tại trên một thiết bị khác, vì vậy tôi muốn gửi yêu cầu đó bằng các khóa khác nhau và nhận các giá trị băm, sau đó kiểm tra giá trị băm bằng một số phần dữ liệu (có kích thước cố định) được trích xuất từ ​​dữ liệu gốc
ischenko avatar
lá cờ cn
@kelalaka đã thêm phần sử dụng
ischenko avatar
lá cờ cn
@kelakala Tôi gửi yêu cầu bằng các khóa ngẫu nhiên, vì vậy B phải giữ dữ liệu để tính hàm băm cho khóa đã cho (tôi có nhầm không?)
ischenko avatar
lá cờ cn
vâng, đó là vấn đề lớn nhất, tôi phải có thể xác minh cặp (khóa, hàm băm) bằng một số dữ liệu gốc nhỏ (nhưng không thể lấy được hàm băm (bằng một khóa nhất định) từ đoạn mã này)
kelalaka avatar
lá cờ in
Sử dụng HMAC, gửi khóa nhận giá trị HMAC để xác minh điều đó, mặc dù bạn sẽ có các truy vấn hạn chế với số lượng cặp bạn đã lưu trữ. Có thể có một giải pháp thông minh mà tôi không thấy bây giờ.
ischenko avatar
lá cờ cn
@kelakala, hơn nữa, tôi không thể tính toán trước các giá trị băm, vì nút A không đáng tin cậy, vì vậy tôi phải đưa ra một số biểu diễn dữ liệu nhỏ, có thể hoạt động như một công cụ xác minh hàm băm.
kelalaka avatar
lá cờ in
Bạn có thể viết lại hoàn toàn câu hỏi của mình bao gồm tất cả các chi tiết không ...
ischenko avatar
lá cờ cn
oh, xin lỗi vì sự nhầm lẫn
kelalaka avatar
lá cờ in
Vui lòng [không đăng chéo](https://stackoverflow.com/q/70852888/1820553), chỉ duy trì một bản sao. [Xem meta này](https://meta.stackexchange.com/q/64068/403350)
knaccc avatar
lá cờ es
Chính xác ý của bạn là gì khi nói "nút A không đáng tin cậy"? Bạn có nghĩa là A có thể nói dối về những dữ liệu mà nó tuyên bố đã lưu trữ với B?
ischenko avatar
lá cờ cn
@knaccc vâng. Câu trả lời đúng là sử dụng một số thuật toán PDP (Bằng chứng sở hữu dữ liệu)
knaccc avatar
lá cờ es
Sẽ rất thú vị nếu bạn có thể giải thích chính xác phương pháp PDP nào đáp ứng các tiêu chí trong câu hỏi của bạn. Theo như tôi thấy, phương pháp đơn giản nhất của thử thách ngẫu nhiên $c$ và phản hồi được tính là $H(c\mathbin\|data)$ sẽ không đáp ứng tiêu chí của bạn.
ischenko avatar
lá cờ cn
@knaccc Tôi xin lỗi, tôi không thực sự hiểu về mật mã, vì vậy tôi có thể mắc lỗi. Tôi phát hiện ra rằng có một thứ rất mạnh mẽ - hàm băm đồng hình và có vẻ như chúng có thể giúp tôi xây dựng (hoặc tìm một thuật toán hiện có), điều đó sẽ giải quyết vấn đề của tôi.

Đă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.