Vì vậy, Java có chế độ được gọi là RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
. Điều đó có nghĩa là gì?chia nhỏ RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
RFC3447, Tiêu chuẩn Công-Key Cryptography (PKCS) # 1: RSA Cryptography Thông số kỹ thuật phiên bản 2.1, phần 7.1.2 Giải mã hoạt động nói Hash và MGF là cả hai lựa chọn cho RSAES-OAEP-giải mã. MGF là chức năng riêng của nó, được định nghĩa trong Phần B.2.1 MGF1 và có tùy chọn "tùy chọn" băm của chính nó.
Có lẽ tùy chọn "Hash" trong RSAES-OAEP-DECRYPT và MGF1 được cho là giống nhau hoặc có thể là không, không rõ ràng đối với tôi. Nếu họ là sau đó tôi đoán khi bạn có RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
có nghĩa là sha256 nên được sử dụng cho cả hai. Nhưng nếu chúng không phải là giống nhau thì bạn có thể có sha256 được sử dụng cho RSAES-OAEP-DECRYPT và, ví dụ, sha1 được sử dụng cho MGF1. Và nếu đó là trường hợp thì hàm sha256 sẽ được sử dụng để làm gì? Và thuật toán băm nào được cho là được sử dụng cho các chức năng khác?
ECB có ý nghĩa gì trong ngữ cảnh này? ECB là một chế độ mã hóa khối đối xứng. Sách mã điện tử. Có lẽ nó có nghĩa là làm thế nào Java đối phó với plaintext của lớn hơn modulo? Giống như có thể chia nhỏ văn bản thành các phần lớn bằng modulo và sau đó mã hóa từng phần với RSA và nối chúng lại với nhau? Tôi chỉ đoán ..
Tôi đang chơi xung quanh với nhà cung cấp mật mã BouncyCastle và BouncyCastle dường như hoạt động khác nhau liên quan đến 'RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING'. I E. trong khi nhà cung cấp mật mã mặc định của Java sử dụng sha1 khi bouncycastle băm MGF xuất hiện để sử dụng sha256. Điều này có lẽ nên được xác minh độc lập nhưng đó là cách nó xuất hiện với tôi .. – neubert
Tôi vừa xác minh điều này, sun.security.rsa.RSAPadding khi được sử dụng với OAEP SHA256, sử dụng SHA1 cho chức năng MGF1, lâu đài bouncy sử dụng SHA256 cho cả hai, đó là tại sao chúng không tương thích. – peceps
@peceps Cảm ơn thông tin adfitional. Có một vài trường hợp góc mà BC không tương thích với việc thực hiện Mặt trời mặc định. Tôi sẽ hỏi đội BC nếu có ý định đó. –