Tôi đoán đây là một vấn đề toán học nhiều hơn trong bối cảnh mật mã nên tôi xin lỗi trước nếu đó không phải là nơi thích hợp để hỏi.Về cơ bản, tôi phải kiểm tra xem việc triển khai tạo cặp khóa RSA nhất định có tuân thủ Trin 186-4 hay không. Cụ thể hơn, Phụ lục B-3-1.
FIPS 186-4 yêu cầu điều đó $d$ (số mũ riêng) được tạo như sau:
$d = (e^{-1})\bmod(\text{LCM}(p-1, \space q-1))$
Thư viện được đề cập (openssl v1.0.1) tính toán $d$ như vậy:
$d = (e^{-1})\bmod((p-1)(q-1))$
Tôi không thể chứng minh hay bác bỏ liệu hai điều này có tạo ra cùng một bộ câu trả lời cho $d$.
Điều kiện để tạo ra $p$ và $q$ đó là $(p-1)$ và $(q-1)$ cả hai đều tương đối nguyên tố để $e$ (số mũ công khai) nên cả hai công thức đều có đáp số.
Cũng kể từ đó $p$ và $q$ đều là số nguyên tố, $(p-1)$ và $(q-1)$ cả hai sẽ là số chẵn và từ $a \times b=\text{GDC}(a, \space b) \times \text{LCM}(a, \space b)$ Chúng ta biết rằng $\text{GCD}(p-1, \space q-1) \geq 2$ Vì thế $\text{LCM}(p-1, \space q-1) \neq (p-1)(q-1)$.
Câu hỏi của tôi là chúng giống nhau hay khác nhau?
Tôi cũng sẽ đánh giá cao nếu bạn có thể chỉ cho tôi đi đúng hướng về mặt toán học để tôi có thể tự mình giải quyết vấn đề này.
P.S.: Tôi hiểu đối với openssl v1, có một mô-đun FIPS và openssl v3.0 cũng sẽ cố gắng đăng ký chứng chỉ FIPS 140-2. Tôi không may bị mắc kẹt với phiên bản mà tôi đã đề cập và tôi không thể thay đổi phiên bản đó (điều đó không phụ thuộc vào tôi).