Vấn đề sinh khóa RSA

Một phần của tài liệu Nghiên cứu phối hợp hai phương pháp nén và mã hóa thông tin (Trang 35 - 37)

Nhƣ đã nói trong mục 3.6.1 kỹ thuật sinh khóa và kiểm tra tính hợp lệ khóa RSA không bao hàm trong các chuẩn PKCS#1 v2.1. Tuy nhiên để tiện theo dõi, kỹ thuật sinh khóa RSA sẽ đƣợc trình ngày ngay dƣới đây

1/. Thuật toán sinh số nguyên tố ngẫu nhiên

PG(r,s,e)

Input: r – cận dƣới cho số nguyên tố sẽ đƣợc sinh ra s – cận trên cho số nguyên tố sẽ đƣợc sinh ra e – một số nguyên dƣơng lẻ

Output: p – một số nguyên tố lẻ trong đoạn [r, s] thỏa mãn UCLN(p – 1, e) =1

Các bước:

3/ sinh ngẫu nhiên số nguyên dƣơng lẻ trong đoạn [r – 2, s – 2] 4/ p = p + 2

5/ Nếu p  cho một số nguyên tố nào đó trong 2000 số nguyên tố đầu tiên thì quay lại bƣớc 2

6/ Nếu UCLN(p – 1, e) ≠ 1 thì quay lại bƣớc 2 7/ Lấy v, w sao cho w là số lẻ và p – 1 = w.2w

8/ Chọn một số nguyên dƣơng t sao cho việc kiểm tra tính nguyên tố ở bƣớc 8 thành công với xác suất lớn

9/ i = 1

10/while i t do

1. sinh ra một số nguyên a ngẫu nhiên trong đoạn [1, p – 1] 2. b = aw mod p

3. Nếu b = 1 hoặc b = p – 1 chuyển tới 8.6 4. j = 0

5. while b ≠ p – 1 i. j = j+1

ii. nếu j = v thì quay lại bƣớc 2 (p là hợp số) iii. b = b2 mod p

iv. Nếu b = 1 quay lại bƣớc 2 (p là hợp số) 6. I = i + 1

7. Nếu p > s thì quay lại 1 8. Ra p

Ghi chú: phƣơng pháp sinh số nguyên tố ngẫu nhiên ở trên sử dụng thuật toán xác suất Rabin – Miller kiểm tra số nguyên tố tại bƣớc 8

2/. Thuật toán sinh khóa RSA

RSAKG(L, e)

Input: L – chiều dài tính theo bit của modulo n

e – số mũ công khai, một số nguyên lẻ lớn hơn 1

Output: K – khóa bí mật hợp lệ

(n, e) – khóa công khai hợp lệ

Các bước:

1. Sinh một số nguyên tố p thỏa mãn: 2(L-1)/2

+ 1 p 2L/2 - 1 và UCLN(p – 1, e) = 1, sử dụng PG với đầu vào (: 2(L-1)/2

+ 1, 2L/2 - 1, e) 2. Sinh một số nguyên tố q thỏa mãn: 2(L-1)/2

+ 1 q 2L/2 - 1 và UCLN(q – 1, e) = 1, sử dụng PG với đầu vào (: 2(L-1)/2

+ 1, 2L/2 - 1, e) 3. Tính n = p.q đƣợc khóa công khai (n, e) (adsbygoogle = window.adsbygoogle || []).push({});

4. Tính các tham số cần thiết cho khóa bí mật K 5. Ra khóa công khai và khóa bí mật

Ghi chú:

Thuật toán trên đây sinh khóa cho trƣờng hợp modulo RSA n là tích của 2 số nguyên tố. Việc cài đặt thuật toán RSA đa nguyên tố yêu cầu việc sinh khóa với n là tích của 3 số nguyên tố trở lên, khi đó thuật toán cũng tƣơng tự nhƣ trên nhƣng cần thay đổi một vài thông số.

Một phần của tài liệu Nghiên cứu phối hợp hai phương pháp nén và mã hóa thông tin (Trang 35 - 37)