Điểm:3

Bằng chứng rằng một tin nhắn được ký bởi một thành viên của một nhóm

lá cờ ng

Tôi là người mới sử dụng mật mã. Đây là câu hỏi của tôi:

  1. Alice lập danh sách những người: Bob, Carol và Dan;
  2. Alice trao một khóa bí mật duy nhất cho mọi thành viên trong danh sách, để họ có thể ký các tin nhắn một cách duy nhất;
  3. Mỗi thành viên không có quyền ký quá 1 tin nhắn;
  4. Grace, một người quan sát, cần có khả năng kiểm tra xem một tin nhắn nhất định có được ký bởi một thành viên trong danh sách của Alice hay không, nhưng cô ấy không được biết ai đã ký nó.

Đây là một ví dụ:

  1. Alice sở hữu một diễn đàn đánh giá phim, nơi các nhà phê bình nổi tiếng (cũng là đối thủ) có thể đăng bài phân tích phim của họ;
  2. Ngay trước ngày phát hành một bộ phim luận chiến do các thành viên Yakuza thực sự đạo diễn, Alice quyết định ẩn danh tính của người dùng trên diễn đàn của mình.
  3. Tuy nhiên, Grace, một người hâm mộ trang web của Alice, cảm thấy khó chịu với quyết định đó. Đã có hàng chục bài đánh giá ẩn danh được đăng trên diễn đàn, với các tác giả tự xưng là Người đánh giá đáng tin cậy được chứng nhận của Aliceâ¢. Grace hiểu tại sao danh tính của những người phụ trách thực sự không thể được tiết lộ, nhưng làm thế nào cô ấy có thể kiểm tra xem tác giả của một bài đăng cụ thể có nằm trong danh sách những người đánh giá đáng tin cậy ban đầu hay không?
fgrieu avatar
lá cờ ng
Hai cách duy nhất mà tôi biết để ngăn Dan ký nhiều hơn một thư một cách hiệu quả là (A) đe dọa trả đũa về thể chất/pháp lý/kinh tế (lạc chủ đề) nếu anh ấy làm khác đi và (B) Alice đưa cho Dan một thiết bị vật lý (ví dụ: Thẻ thông minh) được thiết kế để chỉ ký một lần. Có thể yêu cầu 3 thực sự có nghĩa là mỗi thành viên sẽ không ký nhiều hơn một tin nhắn? Một cách độc lập, trong 2: "Alice đưa ra một khóa riêng" là không bình thường. Quy trình tiêu chuẩn hơn là người tham gia tạo khóa riêng của họ và xuất bản khóa chung phù hợp (có thể thông qua Alice) hoặc/và được Alice chứng nhận.
thzoid avatar
lá cờ ng
Ý tôi là, Dan có thể xuất bản khóa công khai của mình và nếu nó được kết nối với tên của anh ấy trong danh sách của Alice, điều đó sẽ chứng minh mối quan hệ của anh ấy với Alice (chính xác là những gì dự định), nhưng sau đó Grace sẽ biết rằng anh ấy là tác giả của thông điệp đó. Tôi đã chỉnh sửa câu hỏi bằng một ví dụ ngớ ngẩn để làm rõ. Về việc mọi người chỉ có thể ký một lần, hãy tưởng tượng rằng có một thuật toán xử lý tin nhắn của họ.Nếu một tin nhắn đã ký được gửi đi, thì chữ ký đó sẽ bị lãng phí: nó không thể được sử dụng để ký bất kỳ tin nhắn nào khác.
fgrieu avatar
lá cờ ng
Có lẽ bạn muốn có một chữ ký vòng với tính năng bổ sung mà nó có thể được người quan sát nhận ra bằng các khóa chung nếu trong một bộ sưu tập các tin nhắn đã ký, có hai tin nhắn được ký bằng cùng một khóa riêng tư? [bổ sung: Tôi không biết hệ thống mật mã như vậy, cũng như không thấy lý do khiến điều đó là không thể]
thzoid avatar
lá cờ ng
Chà, tôi có thể thấy điều đó hiệu quả trong trường hợp của tôi, vì nó không cho phép ký trùng lặp và nếu Alice liệt kê các khóa công khai được sử dụng trong chiếc nhẫn, điều đó sẽ chứng minh mối quan hệ của những người ký với cô ấy. Làm thế nào để làm việc đó? Có giấy tờ nào về điều đó không?
fgrieu avatar
lá cờ ng
Hãy để chúng tôi [tiếp tục cuộc thảo luận này trong cuộc trò chuyện](https://chat.stackexchange.com/rooms/128253/discussion-between-fgrieu-and-thzoid).
Điểm:3
lá cờ my
  1. Mỗi thành viên không có quyền ký quá 1 tin nhắn;

Như đã chỉ ra trong các nhận xét, bất kỳ cơ chế nào ngăn thành viên nhóm tạo hai chữ ký sẽ yêu cầu phần cứng đáng tin cậy hoặc tương tác trong quá trình ký với bộ điều khiển nhóm Alice (để ngăn người ký đặt lại trạng thái của mình sau khi tạo chữ ký đầu tiên và sau đó tiếp tục với chữ ký thứ hai).

Vì vậy, những gì tôi sẽ dịch điều này thành "có thể phát hiện được nếu một thành viên cố gắng ký hai thông điệp", nghĩa là, với hai chữ ký, chúng tôi có thể xác minh xem liệu cùng một thành viên trong nhóm có ký cả hai chữ ký hay không.

Với bản dịch đó, có thể; đây là một cách tiếp cận:

  • Alice tạo một hệ thống chữ ký dựa trên hàm băm có trạng thái (ví dụ: LMS hoặc XMSS), với các khóa chữ ký một lần khác nhau là độc lập (nghĩa là bạn không thể tạo lại khóa này từ khóa khác)

  • Đối với mỗi thành viên nhóm Bob, Carol và Dan, Alice chọn một lá ngẫu nhiên (chữ ký một lần) và cung cấp cho thành viên nhóm đó chỉ mục, khóa riêng cho chữ ký một lần và đường dẫn xác thực.

  • Khi Bob muốn ký một tin nhắn của mình, anh ấy sẽ ký nó bằng khóa riêng của mình và xuất ra chữ ký đó (cùng với chỉ mục và đường dẫn xác thực), tạo ra một chữ ký LMS hoặc XMSS hợp lệ

  • Trình xác minh thực hiện kiểm tra tính hợp lệ của LMS/XMSS tiêu chuẩn đối với khóa chung

Nếu chữ ký xác minh, người xác minh biết rằng bất kỳ ai đã tạo chữ ký đều có khóa chữ ký một lần hợp lệ và do đó, người đó phải là thành viên hợp lệ của nhóm (hoặc bộ điều khiển nhóm). Và, vì các chỉ số được chỉ định ngẫu nhiên, anh ấy không biết đó là chỉ số nào).

Và, nếu Bob quyết định ký hai thư khác nhau, anh ấy phải đưa cùng một chỉ mục lá vào cả hai chữ ký (chỉ mục đó là thứ duy nhất cô ấy biết cách ký) - rõ ràng là hai chữ ký có cùng chỉ mục. Điều này vẫn đúng ngay cả khi chúng tôi có Bob và Carol (và có thể cả những người khác) hợp tác lẫn nhau - họ chỉ có thể tạo chữ ký có chỉ mục mà một trong những thành viên nhóm đó có.

Cách tiếp cận này có lưu ý rằng nếu Bob ký hai thư khác nhau, thì người khác có thể ký vào thư thứ ba (dựa trên hai chữ ký của Bob); chữ ký giả mạo sẽ giống như nó đến từ Bob.

Như đã viết, cách tiếp cận này dựa trên thực tế là một thành viên nhóm chỉ được phép ký một tin nhắn - nó có thể được mở rộng nếu một thành viên nhóm được phép ký N tin nhắn (bằng cách gán cho mỗi thành viên nhóm N chỉ số lá liên tiếp và khóa riêng).

thzoid avatar
lá cờ ng
Điều đó sẽ hoạt động trong bối cảnh tôi đang tìm kiếm. Logic này được cho là chạy trên một chuỗi khối, vì vậy nếu hai giao dịch được ký bởi cùng một người, thì chỉ giao dịch đầu tiên được xử lý. Cái thứ hai sẽ trở nên không hợp lệ trong bối cảnh chuỗi. Có một số tài liệu hoặc hướng dẫn cụ thể mà bạn đề xuất để hiểu LMS/XMSS không? Cảm ơn @poncho và mọi người khác đã giúp tôi hiểu điều này.
poncho avatar
lá cờ my
@thzoid: đối với LMS, có https://datatracker.ietf.org/doc/rfc8554/ và đối với XMSS, có https://datatracker.ietf.org/doc/rfc8391/.

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