Điểm:2

Việc xác minh liên tục nhãn lHash trong RSA-OAEP quan trọng như thế nào?

lá cờ vu

Trong việc thực hiện dự án sở thích của tôi RSA-OAEP, tôi đã bỏ qua hỗ trợ nhãn ngay từ đầu. Tôi đặt nhãn thành chuỗi trống khi mã hóa và bỏ qua nhãn khi giải mã.

Bây giờ tôi đang thêm một chức năng đặc biệt để đặt và kiểm tra nhãn, nhưng nó chưa phải là thời gian cố định. Lưu ý bảo mật trong PKCS#1v2.2 nói rằng việc xác minh nhãn cùng với các xác minh bản mã khác phải được thực hiện dưới dạng bước thời gian không đổi nguyên tử.

Q1: Vậy tôi muốn hỏi: kiểm định nhãn không liên tục có nguy hiểm như thế nào?

Tôi có thể nghĩ rằng nhãn bí mật được chia sẻ trước được đoán bởi một người bên ngoài bằng khóa công khai mã hóa như một kịch bản, quý 2: có những người khác?

fgrieu avatar
lá cờ ng
Câu hỏi sử dụng RSA-OAEP rõ ràng có nghĩa là [RSAES-OAEP](https://pkcs1.grieu.fr/page=#%5B%7B%22num%22%3A44%2C%22gen%22%3A0%7D% 2C%7B%22name%22%3A%22XYZ%22%7D%2C118%2C640%2Cnull%5D). Giấy phép đó là tốt và phổ biến.Tuy nhiên, cần lưu ý rằng RSAES-OAEP là bản rút gọn của [RSA-OAEP](https://cseweb.ucsd.edu//~mihir/papers/oaep.pdf) và có một vài điểm khác biệt, bao gồm giới thiệu nhãn.
Điểm:2
lá cờ ng

nguy hiểm như thế nào để xác minh nhãn không liên tục?

Theo như tôi có thể nói không nhiều, miễn là nhãn được công khai và việc xác minh này được thực hiện và không phụ thuộc vào việc xác minh byte 0x00 ở bên trái của kết quả giải mã RSA thô/sách giáo khoa $c^d\bmod n$. Điều đó áp dụng bất kể hoạt động giải mã có hỗ trợ nhãn hay không.


Các lưu ý bảo mật trong PKCS#1v2.2 được đề cập trong câu hỏi đọc:

Ghi chú. Phải cẩn thận để đảm bảo rằng đối thủ không thể phân biệt các điều kiện lỗi khác nhau trong Bước 3.f, cho dù là do thông báo lỗi hay thời gian, hay nói chung hơn là tìm hiểu một phần thông tin về thông báo được mã hóa EM. Mặt khác, đối thủ có thể có được thông tin hữu ích về việc giải mã bản mã C, dẫn đến một cuộc tấn công vào bản mã đã chọn, chẳng hạn như cuộc tấn công được quan sát bởi Manger [35].

Ghi chú đó thực sự đề cập đến thử nghiệm (được in đậm bên dưới) ở cuối Bước 3.g của hoạt động giải mã:

Tách rời ĐB thành một chuỗi octet lHashâ chiều dài hlen, một chuỗi đệm (có thể trống) Tái bút bao gồm các octet có giá trị thập lục phân 0x00 và một thông báo M là
    ĐB = lHashâ || Tái bút || 0x01 || m .
Nếu không có octet có giá trị thập lục phân 0x01 để phân tách Tái bút từ m, nếu lBăm không bằng lHashâ, hoặc nếu Y là khác không, xuất âdecryption errorâ và dừng lại.

âxác minh nhãnâ trong câu hỏi đề cập đến sự so sánh của lBăm (hàm băm của nhãn hoặc của chuỗi trống là không có nhãn) và lHashâ. byte Y là một trong những bên trái của bytestring đại diện $c^d\bmod n$ trong ký hiệu big-endian chỉ trên nhiều byte theo yêu cầu để biểu thị mô đun công khai $n$, và $c$ về cơ bản là bản mã được trình bày cho công cụ giải mã.

Nếu chúng ta thực hiện phép so sánh lHashâlBăm chỉ có điều kiện nếu so sánh của Y đến 0x00 thành công (ví dụ: nếu chúng ta so sánh Y || lHashâ đến 0x00 || lBăm với memcmp của thư viện chuẩn C), thì chính xác là chúng ta đang ở trong các điều kiện được yêu cầu bởi cuộc tấn công của Manger, cho phép giải mã một tin nhắn bằng cách gửi lặp đi lặp lại các mật mã không chính xác tới thiết bị giải mã và quan sát phản ứng của nó.

Nếu chúng ta thực hiện phép so sánh lHashâ đến lBăm trong thời gian không cố định nhưng bất kể nếu Y khớp với 0x00 (và thực hiện kiểm tra đó Y và đó là tổng hợp với bài kiểm tra của lHashâ trong thời gian không đổi hoặc thực hiện thử nghiệm đó Y có điều kiện nếu so sánh của lHashâ đến lBăm thành công), tình hình gần như không tệ như vậy, bởi vì sự thay đổi thời gian của chúng tôi không tiết lộ manh mối nào về việc liệu Y khớp với 0x00, đây là điều mà kẻ thù muốn biết nhất. Mặc dù đối thủ vẫn thu được một phần thông tin về EM, Tôi không thấy rằng một cuộc tấn công có thể được thực hiện để hoạt động, ngay cả khi có nhiều truy vấn hơn tới công cụ giải mã, bởi vì mỗi byte của lHashâ tại thời điểm so sánh phụ thuộc vào từng bit của EM bên cạnh những người trong Y.

không kiểm tra lHashâ không phải là cách triển khai chính xác RSAES-OAEP mà không có hỗ trợ thẻ (trong trường hợp đó, việc so sánh phải được thực hiện với hàm băm của chuỗi trống) và có khả năng kích hoạt cuộc tấn công của Manger.


Tôi có thể nghĩ rằng nhãn bí mật được chia sẻ trước được đoán bởi một người bên ngoài với khóa công khai mã hóa là một kịch bản.

Hình ảnh tinh thần của tôi cho nhãn là nó là một công cộng hằng nhằm mục đích cho phép một cặp khóa công khai/riêng tư được sử dụng trong các ngữ cảnh độc lập khác nhau. Điều đó hữu ích để tránh các cuộc tấn công chuyển tiếp một bên ngoài bản mã được xác thực (ví dụ: được ký bởi người khởi tạo) vào ngữ cảnh không nhằm mục đích nhận nó. Tôi chưa bao giờ nhận ra rằng nhãn (hoặc đó là hàm băm) có thể là một bí mật được chia sẻ trước và được sử dụng để xác thực các mật mã được gửi tới thiết bị giải mã RSAES-OAEP. Nếu có bằng chứng bảo mật về RSAES-OAEP theo cách sử dụng đó, thì tôi đã bỏ lỡ. Và thực sự, điều cực kỳ quan trọng là sự so sánh giữa lHashâlBăm là hằng số thời gian.

Có những người khác?

Bên cạnh cuộc tấn công của Manger xem xét ở trên, tôi không thấy bất kỳ.

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