Điểm:0

Làm cách nào để mở rộng hoạt động từ số sang "đối tượng" lớn hơn trong triển khai mật mã?

lá cờ in

Tôi biết tôi không được tung tiền điện tử của riêng mình, nhưng mọi người đều bắt đầu từ đâu đó! Tôi đang triển khai giao thức PSI-CA được xác định trong Tính toán nhanh và riêng tư về số lượng của giao điểm và hợp của tập hợp (Hình 1, Trang 5)và tôi đã làm cho nó (ít nhiều) hoạt động. Vấn đề lớn nhất của tôi là tôi chỉ có nó làm việc cho int64_t các loại, và không có gì khác. Cuối cùng, tôi muốn so sánh các chuỗi hoặc thậm chí các đối tượng tùy ý. Vì vậy, tôi nghĩ rằng tôi sẽ phải có một đối tượng hiển thị chức năng để tuần tự hóa/băm chính nó, nhưng sau đó thì sao? Làm cách nào để mở rộng thuật toán này thành các phép tính nhiều byte?

Ví dụ: nếu tôi muốn sử dụng hàm băm SHA-512 thay vì số nguyên, trong một số thao tác nhất định, hãy nói $\forall i 1\leq i \leq v : a^{\prime}_i = (a_i)^{R^{\prime}_s}$, làm cách nào để dịch điều này từ thao tác trên số nguyên (tầm thường) sang trường byte? Tôi chỉ cần thực hiện thao tác tương tự này cho mọi byte trong trường?

SEJPM avatar
lá cờ us
Có điều gì ngăn bạn diễn giải và sử dụng phiên bản được tuần tự hóa/băm của một đối tượng dưới dạng số nguyên không? (Tất nhiên, điều này yêu cầu việc tuần tự hóa/băm duy trì sự bình đẳng)
lá cờ in
Tôi nghĩ sau đó nó sẽ không chống va chạm, phải không? Giống như SHA-512 có phạm vi lớn. Bài báo nói rằng tôi cần hai hàm băm (được mô hình hóa dưới dạng ROM trong bài báo), vì vậy tôi không thực sự chắc chắn hàm băm nào sẽ đáp ứng các yêu cầu này để giữ an toàn cho thông tin bằng mật mã.
Điểm:1
lá cờ ng

Tôi không rõ (không nhìn thấy mã của bạn) vấn đề hiện tại của bạn là gì. Liếc qua tờ giấy, tôi thấy (ví dụ trong hình 1):

  1. (đối tượng tùy ý) $c_1,\dots, c_v$$s_1,\dots, s_v$

  2. băm của các đối tượng này, được viết $hc_i = H(c_i)$$hs_i = H(s_i)$ (tối đa một hoán vị được áp dụng cho $s_i$).

Tất cả các hoạt động còn lại là về mặt $hc_i$$hs_i$, có vẻ như (từ ngữ cảnh) trong $\mathbb{Z}_p^*$, tức là số học là tiêu chuẩn (mặc dù có khả năng là bạn phải chọn $p$ đủ lớn sao cho bài toán logarit rời rạc là khó, do đó $\gg 1000$ chút ít. Đặc biệt, bạn có thể nên sử dụng bigint thay vì u64. Tôi chưa đọc kỹ để biết rằng họ đang giả định độ cứng của giả định kiểu DL trong $\mathbb{Z}_p^*$ Tuy nhiên).

Lướt qua các số liệu khác, tôi thấy một câu chuyện tương tự, cụ thể là tất cả các phép tính số học được thực hiện trên các phần tử được băm của $\mathbb{Z}_p^*$, thay vì chuỗi phụ tùy ý trong $\{0,1\}^*$. Tôi không thấy ví dụ cụ thể của bạn:

$$1â¤iâ¤v:a_i'=(a_i)^{Râ²_s}$$

như là một vấn đề.Ví dụ, điều này dường như xảy ra trong hình 4, trước đó tôi thấy $a_i = (hs_i)^{R_s'}$. Trong hình này tôi không thấy định nghĩa $hs_i = H(s_i)$, và tôi chỉ đọc lướt qua, nhưng rất có thể cách giải thích này đang được giả định, tức là $hs_i$băm của một chuỗi byte tùy ý $s_i$, và được chứa trong $\mathbb{Z}_p^*$ (còn hơn là $\{0,1\}^*$).

Câu trả lời chung cho

Tôi chỉ cần thực hiện thao tác tương tự này cho mọi byte trong trường?

sẽ là "không" (trừ khi có điều gì đó đặc biệt yêu cầu thực hiện việc này). Thông thường, các giao thức mật mã hoạt động trên các đối tượng toán học được xác định rõ (chẳng hạn các chuỗi bit trong $\{0,1\}^*$) và "cắt nhỏ" những thứ này để cố gắng buộc mọi thứ hoạt động (khi điều này không được chỉ định như một phần của giao thức) có thể dễ dàng dẫn đến các vấn đề bảo mật.

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