Điểm:2

Tại sao việc sử dụng lại khóa không phải là vấn đề trong mật mã Feistel?

lá cờ ec

Tôi hiểu rõ về mật mã luồng và bảng mã một lần. Tôi cũng biết sự nguy hiểm của việc sử dụng cùng một khóa trong PRG cho mật mã luồng.

Tuy nhiên, theo như tôi có thể nói, mật mã khối Feistel sử dụng cùng một khóa cho mọi khối văn bản thuần túy (được mở rộng thành các khóa cho mỗi vòng). Nếu điều này là đúng, tại sao đây không phải là một vấn đề? Có phải vì hàm F và cụ thể là các hộp S được sử dụng không thể đảo ngược (tức là một đầu ra có nhiều đầu vào khả dĩ)?

lá cờ et
Mật mã luồng hoạt động giống như bộ đệm một lần - sử dụng cùng một khóa hai lần khiến nó trở thành bộ đệm 2 lần có thể bị tấn công - https://crypto.stackexchange.com/questions/59/taking-advantage-of-one- time-pad-key-tái sử dụng
lá cờ et
Ngay cả trong mật mã khối, bạn phải thay đổi khóa mỗi lần bằng cách thay đổi IV, v.v., thông tin khác về rò rỉ văn bản rõ ràng sẽ phá vỡ tính bảo mật. Kiểm tra các chế độ hoạt động cho mật mã khối.
user2357 avatar
lá cờ us
@ user93353 Tôi nghĩ rằng vấn đề mật mã luồng hiện đại về tác hại của việc sử dụng cùng một khóa đã được giải quyết bằng cách sử dụng IV, đúng không?
Điểm:2
lá cờ in

Việc sử dụng lại bộ đệm một lần cho thấy sự khác biệt của các bản rõ do tính tuyến tính của nó: $$c_1 = m_1 \oplus k,~~~~ c_2 = m_2 \oplus k,~~~~ c_1 \oplus c_2 = m_1 \oplus m_2.$$

Mặt khác, mật mã khối tốt (dựa trên Feistel Networks hoặc SPN hoặc bất kỳ thứ gì khác) làm giảm thông tin bị rò rỉ trực tiếp do sử dụng lại khóa: nếu $c_1 = E_k(m_1), c_2 = E_k(m_2)$, sau đó, đưa ra $c_1$$c_2$ chúng ta chỉ có thể kết luận liệu $m_1$$m_2$ có bằng nhau hay không (bằng cách kiểm tra xem $c_1$$c_2$ có bằng nhau hay không).

Trước hết, điều này là không đủ đối với các yêu cầu mã hóa hiện đại: cách mã hóa như vậy vẫn được coi là không an toàn vì nó vẫn làm rò rỉ thông tin về các tin nhắn.

Tuy nhiên, bằng cách sử dụng chế độ mật mã khối thích hợp (chẳng hạn như CBC, CTR), chúng ta có thể ngẫu nhiên hóa các đầu vào của mật mã khối, sao cho, ngay cả khi các thông điệp giống nhau, đầu vào và đầu ra của mật mã khối sẽ khác nhau ( với xác suất rất cao). Bằng cách này, kẻ tấn công sẽ không thể biết liệu các thông báo có bằng nhau hay không chỉ được cung cấp các bản mã.

CẬP NHẬT: để đưa vấn đề về nhà, vấn đề không phải là tính không khả nghịch của hàm Feistel $F$ chính nó: nó có thể đảo ngược và FN sẽ vẫn an toàn (có thể với một vài vòng nữa). Trên thực tế, bạn thậm chí không cần phải đảo ngược $F$ để giải mã một khối. Khó khăn trong việc phá vỡ nó là một khóa bí mật không xác định được sử dụng theo cách phi tuyến tính phức tạp, làm cho việc trích xuất bất kỳ mối quan hệ có ý nghĩa nào giữa các khối văn bản gốc/bản mã trở nên rất khó khăn (ngược lại với bộ đệm nhiều lần, trong đó mối quan hệ là tuyến tính và đơn giản).

Maarten Bodewes avatar
lá cờ in
Một số dấu hiệu cho thấy tại sao không thể truy xuất khóa được cung cấp cho cả khối bản rõ và bản mã đã biết đối với mật mã dựa trên Feistel sẽ rất hay, khi đưa ra câu hỏi.
Abhisek Dash avatar
lá cờ ec
@Fractalice Cảm ơn bạn đã phản hồi. Tôi hiểu những gì bạn đang ngụ ý. Câu hỏi của tôi nhằm mục đích tìm ra "động lực chi phối" của mật mã khối. Tất cả sự phức tạp đi vào một mật mã khối như hàm F chiếm một nửa đầu vào và khóa trong mật mã Feistel đang làm một việc gì đó không thể đảo ngược. Vì vậy, quay lui là không thể (hoặc ít nhất là rất khó khăn). Lý luận của tôi có đúng không?
Fractalice avatar
lá cờ in
@RajavelPeriyarajan không phải về tính không thể đảo ngược của chính hàm $F$. Có thể dễ dàng bảo mật $F$ có thể đảo ngược. Trên thực tế, bạn thậm chí không cần đảo ngược $F$ để giải mã một khối. Khó khăn là một khóa bí mật không xác định được sử dụng (trước, sau hoặc bên trong $F$) và điều này khiến việc giải mã trở nên rất khó khăn.
Abhisek Dash avatar
lá cờ ec
@Fractalice Vâng, bạn nói đúng. Chìa khóa là những gì làm cho mật mã an toàn. Nhưng có một vấn đề khác là sử dụng lại khóa. Tôi nghĩ rằng tất cả sự phức tạp bên trong hàm F không thể đảo ngược trong mật mã Feistel tạo điều kiện cho việc sử dụng lại khóa cho mọi khối bản rõ. Như bạn đã chỉ ra, mật mã có thể dễ bị tấn công bằng văn bản gốc được chọn nhưng ít nhất nó không nguy hiểm như hai phím thời gian.Nếu không có chức năng F, mật mã Feistel sẽ dễ bị ảnh hưởng bởi hai phím thời gian. Tôi có đúng không khi giả định điều này? Ngoài ra, bạn có thể chỉ cho tôi một số mật mã sử dụng hàm khả nghịch không?
Abhisek Dash avatar
lá cờ ec
Nói cách khác, chức năng F thực hiện những gì? Tôi đoán đây là tất cả những gì tôi muốn hỏi.
Fractalice avatar
lá cờ in
@RajavelPeriyarajan, ví dụ: [LBlock](https://eprint.iacr.org/2011/345.pdf)
Fractalice avatar
lá cờ in
@RajavelPeriyarajan Nó hoàn thành một thứ gọi là "sự nhầm lẫn": nó làm cho mối quan hệ giữa văn bản gốc/bản mã/khóa trở nên rất phức tạp.
Abhisek Dash avatar
lá cờ ec
@Fractalice Hiểu rồi. Hàm F là một PRF (Hàm giả ngẫu nhiên không thể đảo ngược) nhưng toàn bộ Mật mã Feistel là một PRP (Hoán vị ngẫu nhiên giả không thể đảo ngược). Bây giờ tôi đã hiểu rõ hơ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.