Phụ lục C Phân tíc hn khi biết khoá cá nhân

Một phần của tài liệu Nghiên cứu tấn công RSA và xây dựng công cụ phân tích RSA (Trang 96 - 99)

Giả sử khóa biết bí mật d, ta có thể tiếp tục sử dụng d, cùng với khóa cơng

khai (N, e), ta có thể tìm đến tận cùng p q, phá vỡ hệ thống RSA. Thuật

toán được xây dựng dựa trên các nhận xét sau:

Nhận xét

Nhận xét 1: ta biết,

𝑑 ≡ 𝑒−1(𝑚𝑜𝑑 𝜑 𝑁 ),

với 𝜑 𝑁 = 𝑝 − 1 (𝑞 − 1).

Do p q là các số nguyên tố lẻ, nên 𝜑(𝑁) là số chẵn. Hơn nữa,

gcd 𝑒, 𝜑 𝑁 = 1, nghĩa là e và (N) nguyên tố cùng nhau. Vậy e và d cùng là

số lẻ. Suy ra, 𝑒𝑑 − 1 = 2𝑠𝑡, với t là số lẻ. Vậy, 𝑒𝑑 − 1 ≡ 0 (𝑚𝑜𝑑 𝜑 𝑁 ) 4|𝜑 . Suy ra, 𝑠 ≥ 2. Như vậy, ∀𝑎 ∈ 𝑍𝑁∗, Đặt 𝑏0 ≡ 𝑎𝑡(𝑚𝑜𝑑 𝑁), 𝑏𝑖 ≡ 𝑎2𝑖𝑡 𝑚𝑜𝑑 𝑁 , ∀0 ≤ 𝑖 ≤ 𝑠,

Theo tiêu chuẩn Euler: ∀𝑥 ∈ 𝑍𝑁∗, 𝑥𝜑(𝑁) ≡ 1(𝑚𝑜𝑑 𝑁), ta có khả năng rất lớn tìm

84

Nhận xét 2: như trên ta thấy, cho e d, ta cần tìm s và số lẻ t sao cho

𝑒𝑑 − 1 = 2𝑠𝑡. Ta có thể thực hiện nhanh việc tìm kiếm này chỉ thông qua phép

đếm như sau:

Gọi bkbk-1…b0 là biểu diễn nhị phân của ed 1, giả sử ed 1 = bk…bk-t+1bk-

t…b0, với bk-t = 1,bk-t =…= b0 = 0, thì s có biểu diễn nhị phân là bk…bk-t+1.

Thuật tốn

Phân tích N khi biết e và d Factor (n, e, d) {

//Tìm s, t sao cho ed − 1 = 2s t và t là số lẻ 1. s = 0; t = ed − 1;

2. while (t chẵn ) {s++; t/=2;}

// Tìm căn bậc hai không tầm thường của 1 (mod N)

do {

// Tìm căn ngẫu nhiên b of 1 (mod N) Chọn ngẫu nhiên a ∈ ZN*; b = at mod N; while (b ≢ 1 (mod N)) b = b2 mod N; } while (b ≢ ±1 (mod N)); // Phân tích N 3. p = gcd(b − 1, N); q = N/p; 4. return (p, q); } Ví dụ Giả sử N = 55, e = 3 và d = 27. (1) Ta có ed – 1 = 80 = 1010000 Suy ra s = 1012 = 5 và t = 5.

85

(2) Giả sử chọn được a = 2, ta tính được dãy số như sau:

b = at mod N = 25 mod 55 = 32  1; b = b2 mod N = 322 mod 55 = 34  1;

Do b = b2 mod N = 342 mod 55 = 1  1 nên thuật toán dừng ở bước trước với b = 34.

(3) Đặt p = gcd(34 – 1, 55) = 11, thì p = 55/11 = 5.

Như vậy, p = 11 và q = 5 là nhưng số nguyên tố cần tìm. Thực vậy, 55 = 115.

86

Một phần của tài liệu Nghiên cứu tấn công RSA và xây dựng công cụ phân tích RSA (Trang 96 - 99)