Xây dƣ̣ng biến thể cho RSA dƣ̣a trên vành Bergman

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 37 - 40)

Dựa trên kết quả về vành Bergman, trong phần này chúng tôi sẽ xây dựng hê ̣ mã tương tự RSA. Các chứng minh lý thuyết, xem chi tiết trong luận án TS được nêu trong phần tham khảo.

2.1. Xây dƣ̣ng nƣ̉a nhóm cơ sở

Giả sử 𝑝, 𝑞 là hai số nguyên tố phân biệt và 𝑛 = 𝑝𝑞. Kí hiệu 𝐸𝑛 = 𝑎 𝑏

𝑛𝑐 𝑑 : 𝑎, 𝑏, 𝑐 ∈ ℤ𝑛, 𝑑 ∈ ℤ𝑛2 .

Do 𝑛 không phải là số nguyên tố nên 𝐸𝑛 không là một vành . Tuy nhiên chú ng tôi tìm cách xây dựng một phép nhân trên 𝐸𝑛 và xây dựng hệ mã tương tự RSA trên một tập con của 𝐸𝑛.

25

Có thể kiểm tra được rằng phép nhân “.” đi ̣nh nghĩa bởi 𝑎1 𝑏1 𝑛𝑐1 𝑑1 . 𝑎2 𝑏2 𝑛𝑐2 𝑑2 = 𝑎1𝑎2 𝑚𝑜𝑑 𝑛 (𝑎1𝑏2 + 𝑏1𝑑2)𝑚𝑜𝑑 𝑛 𝑛 𝑐1𝑎2 + 𝑑1𝑐2 𝑚𝑜𝑑 𝑛2 𝑛𝑐1𝑏2 + 𝑑1𝑑2 𝑚𝑜𝑑 𝑛2 là một phép tốn hai ngơi trên 𝐸𝑛.

Bây giờ ta đi ̣nh nghĩa:

.ánh xạ 𝜇: 𝐸𝑛 → 𝐸𝑝 𝑎 𝑏 𝑝𝑞𝑐 𝑑 ↦ 𝑎𝑝 𝑏𝑝 𝑝𝑐𝑝 𝑑𝑝 trong đó 𝑎𝑝, 𝑏𝑝, 𝑐𝑝 ∈ ℤ𝑝, 𝑑𝑝 ∈ ℤ𝑝2, và 𝑎𝑝 ≡ 𝑎 𝑚𝑜𝑑 𝑝 , 𝑏𝑝 ≡ 𝑏 𝑚𝑜𝑑 𝑝 , 𝑐𝑝 ≡ 𝑞𝑐 𝑚𝑜𝑑 𝑝 , 𝑑𝑝 ≡ 𝑑(𝑚𝑜𝑑 𝑝2). .ánh xạ 𝜂: 𝐸𝑛 → 𝐸𝑞 𝑎 𝑏 𝑝𝑞𝑐 𝑑 ↦ 𝑎𝑞 𝑏𝑞 𝑞𝑐𝑞 𝑑𝑞 trong đó 𝑎𝑞, 𝑏𝑞, 𝑐𝑞 ∈ ℤ𝑞, 𝑑𝑞 ∈ ℤ𝑞2, và 𝑎𝑞 ≡ 𝑎 𝑚𝑜𝑑 𝑞 , 𝑏𝑞 ≡ 𝑏 𝑚𝑜𝑑 𝑞 , 𝑐𝑞 ≡ 𝑝𝑐 𝑚𝑜𝑑 𝑞 , 𝑑𝑞 ≡ 𝑑(𝑚𝑜𝑑 𝑞2). Có thể thấy rằng 𝜇 và 𝜂 hồn tồn được xác định.

Mê ̣nh đề 2.1. 𝜇 và 𝜂 là các đồng cấu nửa nhóm. Mê ̣nh đề 2.2. Ánh xạ 𝜃 xác định bởi

𝜃: 𝐸𝑛 → 𝐸𝑝 × 𝐸𝑞

𝑀 ↦ 𝜃 𝑀 = (𝜇 𝑀 , 𝜂 𝑀 )

là một đơn ánh.

Bây giờ chúng ta sẽ kí hiê ̣u bởi 𝐸𝑝∗ và 𝐸𝑞∗ tương ứ ng là tâ ̣p các phần tử khả nghi ̣ch trong 𝐸𝑝 và 𝐸𝑞. Chúng tôi thiết lập hệ thức tương tự như hệ thức 𝑚𝑒𝑑 = 𝑚 trong hệ mã RSA gốc như sau.

Mê ̣nh đề 2.3. Nếu 𝑀 ∈ 𝐸𝑛, 𝜇 𝑀 ∈ 𝐸𝑝∗, 𝜂(𝑀) ∈ 𝐸𝑞∗ và e,d là các số nguyên thỏa mãn

𝑒𝑑 ≡ 1(𝑚𝑜𝑑 𝐿), 𝐿 = 𝑙𝑐𝑚(𝑝3(𝑝 − 1)2, 𝑞3(𝑞 − 1)2) thì 𝑀𝑒𝑑 = 𝑀.

Chú ý 2.1 Với phần t ử 𝑀 = 𝑎𝑛𝑐 𝑛𝑢 + 𝑣𝑏 ∈ 𝐸𝑛 để 𝜇 𝑀 ∈ 𝐸𝑝∗, 𝑔 𝑀 ∈ 𝐸𝑞∗ ta phải chọn 𝑎 ≠ 0 𝑚𝑜𝑑 𝑝 , 𝑎 ≠ 0(𝑚𝑜𝑑 𝑞) và v≠ 0 𝑚𝑜𝑑 𝑝 , 𝑣 ≠ 0(𝑚𝑜𝑑 𝑞) theo Định lý 4. Tuy nhiên viê ̣c chọn giá tri ̣ của a và v có thể làm lộ thông ti n về p và q . Trong hê ̣ mã đề

26

nghị dưới đây , chúng tôi chọn cố định a , c, u, v và xem 𝑏 ∈ ℤ𝑛 như là văn bản cần mã hóa.

2.2. Mơ hình hê ̣ mã Sinh khóa. Sinh khóa.

.Chọn hai số nguyên tố phân biệt 𝑝, 𝑞. Tính 𝑛 = 𝑝𝑞. .Tính 𝐿 = lcm(𝑝3(𝑝 − 1)2, 𝑞3(𝑞 − 1)2).

.Chọn số nguyên 𝑒 thỏa mãn gcd 𝐿, 𝑒 = 1 (0 < 𝑒 < 𝐿). .Tính 𝑑 ≡ 𝑒−1(𝑚𝑜𝑑 𝐿).

.Cơng bố 𝑛 và 𝑒 như là khóa công khai, giữ 𝑑 làm khóa riêng.

Mã hóa.

.Văn bản là các phần tử 𝑚 ∈ ℤ𝑛.

.Chọn ngẫu nhiên 𝑎, 𝑐, 𝑢, 𝑣 ∈ ℤ𝑛 sao cho gcd 𝑎, 𝑛 = 1 và gcd 𝑣, 𝑛 = 1. .𝑚 được mã hóa bằng cách tính 𝐶 = 𝑀𝑒 trong đó 𝑀 = 𝑛𝑐 𝑛𝑢 + 𝑣 ∈ 𝐸𝑎 𝑚 𝑛.

Giải mã.

.Tính 𝐶𝑑, 𝑚 là phần tử tại vị trí (1,2) của ma trận 𝐶𝑑.

2.3. So sánh với hệ mã RSA gốc

Có thể thấy ngay là trong hệ mã chúng tôi đề nghị ở trên , số các phép toán thực hiê ̣n khi mã hóa và giải mã là nhiều hơn so với RSA gốc . Tuy vâ ̣y, hê ̣ mã chúng tôi có mô ̣t số ưu điểm sau đây.

Trước hết, do 𝑎 và 𝑏 có thể chọn nhiều giá trị khác nhau nên văn bản đã mã hóa 𝐶 có thể nhâ ̣n nhiều giá tri ̣ khác nhau với cùng mô ̣t văn bản 𝑚. Điều này cho phép chúng ta tránh đươ ̣c cách tấn công theo kiểu cho ̣n văn bản trước (chosen-plaintext attacks), tức là cho ̣n mô ̣t văn bản 𝑚 rồi dù ng khóa chung để mã hóa 𝑚 thành 𝐶, sau đó hễ thấy văn bản đã mã hóa là 𝐶 thì đốn văn bản ban đầu là 𝑚.

Cuối cùng, chúng ta sẽ so sánh về cách tấn công dàn vào hai hê ̣ mã RSA gốc và hê ̣ mã vừa đề câ ̣p.

Trong hê ̣ mã RSA gớc , phạm vi của khóa riêng 𝑑 là từ đến 𝜑 𝑛 = 𝑝 − 1 (𝑞 − 1) trong đó giới ha ̣n 1 < 𝑑 < 𝑛14 được xem là trường hợp khóa ́u , có thể tấn cơng bằng

27

dàn, như vâ ̣y xác suất để viê ̣c tấn công bằng dàn vào hê ̣ mà RSA gốc thành công là

𝑛14 𝑝−1 (𝑞−1) ≈𝑛 𝑝−1 (𝑞−1) ≈𝑛 1 4 𝑛 = 1 𝑛34 .

Đối với hệ mã của chúng tơi đề nghị , có thể tấn cơng dàn bằng lập luận như trong hệ mã RSA gốc như sau . Do 𝑝 và 𝑞 thườ ng cho ̣n cân bằng để tránh tấn công bằng phân tích 𝑛 nên 𝜑 𝑛 = 𝑛 + 0( 𝑛). Đánh giá

𝐿 = lcm 𝑝3(𝑝 − 1)2, 𝑞3(𝑞 − 1)2 = 𝑝3𝑞3lcm 𝑝 − 1 2, 𝑞 − 1 2 < 𝑛4𝜑 𝑛 , nên 𝐿 < 𝑛4(𝑛 + 0 𝑛 ). Phương trình 𝑒𝑑 ≡ 1(mod 𝐿) suy ra sự tồn ta ̣i của số nguyên 𝑘 = 0(𝑑) sao cho 𝑒𝑑 = 1 + 𝑘𝐿 < 𝑘𝑛4(𝑛 + 0 𝑛 ). Nếu kí hiê ̣u 𝑙 = 𝑒𝑑 − 𝑘𝑛5 thì 𝑙 < 0(𝑑𝑛4 𝑛). Xét dàn 2 chiều 𝐻 trong ℝ2 sinh bở i 2 vector 𝑣1 = (𝑒, 𝑛4 𝑛) và 𝑣2 = (𝑛5, 0), 𝐻 chứ a vector 𝑡 = 𝑑𝑒1 − 𝑘𝑒2 = (𝑒𝑑 − 𝑘𝑛5, 𝑑𝑛4 𝑛) có chuẩn là | 𝑡 | ≈ 𝑑𝑛4 𝑛, trong khi vol(𝐻)12 = 𝑛9 𝑛 = 𝑛194 . Như vậy 𝑡 có thể là vector ngắn nhất trong 𝐻 nếu 𝑑𝑛4 𝑛 < 𝑛194 hay 𝑑 < 𝑛14. Khi đó có thể áp du ̣ng thuâ ̣t toán Gauss tìm vector nhắn nhất 𝑡 và từ đó tìm được khóa riêng 𝑑.

Do pha ̣m vi của 𝑑 là từ 1 đến 𝐿 = lcm 𝑝3(𝑝 − 1)2, 𝑞3(𝑞 − 1)2 > 𝑛3 nên xác suất để cách tấn công dàn vào hệ mã chúng tôi thành công là nhỏ hơn 𝑛

14 4 𝑛3 = 1

𝑛114 . Xác suất này nhỏ hơn nhiều so với xác suất tương ứng tấn công dàn thành công vào hê ̣ mã RSA gốc.

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 37 - 40)