Điểm:0

thuật toán băm mật mã phụ gia không thể đảo ngược

lá cờ in

Tôi cần một hàm băm mật mã nhẹ có tính cộng nhưng không thể đảo ngược, tuy nhiên tôi không chắc có tồn tại hàm như vậy không! (sẽ tốt hơn nếu nó cũng hoạt động trong nhiều bộ)

Ý tôi là phụ gia: đưa ra chức năng như vậy f, chức năng khác g phải tồn tại, có tài sản g(f(X),f(Y))=f(X||Y), ở đâu || biểu thị nối các chuỗi XY.

Tôi đã tìm thấy một hàm băm đồng hình từ Facebook đó là phụ gia nhưng nó cũng có thể đảo ngược.


CHỈNH SỬA:

Bằng cách không thể đảo ngược, tôi không đề cập đến khả năng chống ảnh trước ngay cả khi tôi muốn có thuộc tính đó trong chức năng tổng thể.

tính không đảo ngược: Nếu chúng ta biết f(X||Y) và đó Y là một phần tử được sử dụng làm đầu vào, sẽ không thể tính được g-1(f(X||Y),f(Y)) để có được f(X)

tái bútTôi đang cố gắng tìm một giải pháp đủ nhẹ và kháng lượng tử để hoạt động trong các thiết bị IoT

poncho avatar
lá cờ my
Bạn có thể muốn thêm những thuộc tính khác mà bạn cần; đối với hàm cộng và không khả nghịch, chúng ta có hàm $f(x) = 0$ và $g(0, 0) = 0$; đáp ứng cả hai yêu cầu, nhưng tôi nghi ngờ nó sẽ hữu ích cho trường hợp sử dụng của bạn (bất kể đó là gì). Một số ít tầm thường hơn có thể được bắt nguồn bằng cách xor'ing các byte của chuỗi đầu vào với nhau ...
lá cờ in
@poncho bạn nói đúng! Ý tôi là mật mã
poncho avatar
lá cờ my
Bằng mật mã, ý bạn là khả năng chống tiền giả định (câu trả lời của baro77 thực hiện điều đó), khả năng chống tiền đề thứ hai hoặc khả năng chống va chạm?
poncho avatar
lá cờ my
Nếu bạn cần hình ảnh trước thứ hai hoặc khả năng chống va chạm, hãy xem nhận xét của tôi về baro77 để khám phá một ý tưởng (cần được bổ sung...)
lá cờ in
@poncho Tôi đang đọc những bình luận hữu ích của bạn! Và cập nhật câu hỏi đúng cách. Cảm ơn cả hai người :)
poncho avatar
lá cờ my
QR làm cho điều này trở nên khó khăn - một giải pháp kiểu baro77 sẽ dựa trên một nhóm và thuật toán của Shor giải quyết hầu hết các vấn đề khó khăn dựa trên các nhóm...
Điểm:1
lá cờ gd

Bây giờ tôi đang vội, nhưng tôi muốn chia sẻ với bạn một số ý tưởng (nếu cần tôi sẽ trình bày chi tiết vào ngày hôm sau):

  • nối có thể được xem như $x||y = xk+y$ ở đâu $k=2^{|y|}$
  • Vì thế $f(x||y) = f(xk+y)$
  • nếu chúng ta giả sử $f$ là phép nhân cho một máy phát điện EC $G$ (cài đặt khóa bí mật/pubkey phổ biến của EC) mà chúng tôi thu được:

$f(x) = Gx$

$f(y) = Gy$

$f(x||y) = G(xk+y) = G(xk) + Gy = G(x+x+...+x) + Gy = (Gx + Gx + ... + Gx) + Gy = kGx + Gy$

  • đoạn văn cuối cùng mang lại cho bạn $g$ (một mối quan hệ tượng trưng bằng phép nối nhưng hiện đang hoạt động trên các điểm EC)

$f(x) = Gx$ tất nhiên không phải là một hàm băm, nhưng nó không thể đảo ngược (đó là vấn đề logarit rời rạc phổ biến) và với các định nghĩa đã nói ở trên, có vẻ như (nếu tôi không sai) phụ gia như bạn đã yêu cầu


CHỈNH SỬA: TỔNG HỢP

Như @poncho đã chỉ ra một cách cẩn thận, những ý tưởng trước đây chỉ hoạt động khi tất cả $y$ có kích thước cố định đã biết trước, vì điều này đảm bảo rằng $k$ là hằng số và có thể được sử dụng trong $g$ (không có "khả năng hiển thị trực tiếp" của $y$ để tính kích thước của nó). Cách giải quyết thông minh do @poncho đề xuất là để $f$ chuyển kích thước đầu vào của nó sang "giai đoạn tiếp theo". Vì vậy, các định nghĩa trước đây được khái quát hóa theo cách này:

  • $x||y = xk+y$ ở đâu $k=2^{|y|}$ bất kể kích thước của $y$
  • $f(x) = (Gx, |x|) = (X, |x|)$
  • $f(x||y) = f(xk+y) = (kX+Y,|x|+|y|) = (2^{|y|}X+Y,|x|+|y|) $
  • $g((X,s_x),(Y,s_y)) = (2^{s_y}X+Y, s_x+s_y)$

Vẫn $f$ không phải là một hàm băm nhưng như đã nói trước đây, nó là chất phụ gia trong hương vị của bạn và không thể đảo ngược (kháng tiền ảnh đầu tiên trong thuật ngữ băm).

poncho avatar
lá cờ my
Một vấn đề với điều này là cách $g$ hoạt động phụ thuộc vào độ dài của $y$. Bây giờ, vấn đề đó có thể được giải quyết bằng cách thêm độ dài của chuỗi băm vào đầu ra của $f$, đó là $f(x) = (xG, |x|)...
baro77 avatar
lá cờ gd
@poncho bạn chắc chắn đúng, trong đầu tôi đã nghĩ đến độ dài của chuỗi là cố định và được biết trước
poncho avatar
lá cờ my
"việc bao gồm kích thước đầu vào trong đầu ra của nó cũng tránh được các cuộc tấn công va chạm và tiền giả thứ hai"; không (ngoại trừ các cuộc tấn công giả định thứ hai vào các đầu vào ngắn); việc bổ sung thứ tự của trình tạo sẽ không thay đổi phép nhân điểm; nếu phần bổ sung này không thay đổi độ dài (vì giá trị được băm đã dài hơn độ dài và phần bổ sung không gây ra 'tràn'), thì kết quả băm sẽ giống nhau.
poncho avatar
lá cờ my
Mặt khác, nếu OP cần tiền ảnh thứ hai hoặc khả năng chống va chạm, bạn có thể sử dụng ý tưởng tương tự, nhưng thay vì sử dụng nhóm EC, hãy thực hiện nó trên một modulo vòng nhân, một tổ hợp của thừa số bí mật ("một mô đun RSA"); ở đó, tiền ảnh/va chạm thứ hai được chứng minh là an toàn như bao thanh toán (giả sử một trình tạo được lựa chọn tốt và với lời cảnh báo rằng có một cửa hậu cho người biết phân tích thành thừa số)
baro77 avatar
lá cờ gd
uhmm @poncho .. Tôi không hiểu ý của bạn bây giờ... chắc chắn nếu $l$ là đơn đặt hàng EC $Gx = G(x+l)$, nhưng $|x| != |x+l|$ . Đối với tôi, có vẻ như bạn đang giả sử kích thước đầu vào trong đầu ra bị cắt bớt... tại sao? Theo suy nghĩ của tôi thì không phải vậy, vì vậy kết quả tổng thể của $f(x)$ khác với $f(x+l)$ một: do đó, việc tìm tiền ảnh thứ hai hoặc xung đột không dễ bằng việc thêm thứ tự nhóm
poncho avatar
lá cờ my
Trên thực tế, nếu $x > l$, thì có khả năng là $|x| = |x +l|$
baro77 avatar
lá cờ gd
@poncho chết tiệt bạn nói đúng :) Bây giờ tôi đã hiểu một điểm: nếu $x$ đã đủ lớn, thì có thể xảy ra kích thước bitwise của nó không bị ảnh hưởng bởi $l$ bổ sung. Cảm ơn sự sửa chữa của bệnh nhân!

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