Mô hình chữ ký điện tử theo RSA

Một phần của tài liệu Phát hiện giả mạo bảng điểm tiếng việt cho các trường học luận văn thạc sĩ (Trang 46 - 50)

a. Giới thiệu RSA

RSA đƣợc Rivest, Shamir và Adleman phát triển, là một thuật toán

mật mã hóa khóa công khai. Nó đánh dấu một sự tiến hóa vƣợt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công khai. RSA đang đƣợc sử dụng phổ biến trong thƣơng mại điện tử và đƣợc cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn. Thuật toán đƣợc Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện

Công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3 chữ cái đầu của tên 3 tác giả.

Trƣớc đó, vào năm 1973, Clifford Cocks, một nhà toán học ngƣời Anh làm việc tại GCHQ (Cơ quan Truyền thông Chính phủ Anh quốc: Government Communications Headquarter – GCHQ), đã mô tả một thuật toán tƣơng tự. Với khả năng tính toán tại thời điểm đó thì thuật toán này không khả thi và chƣa bao giờ đƣợc thực nghiệm. Tuy nhiên, phát minh này chỉ đƣợc công bố vào năm 1997 vì đƣợc xếp vào loại tuyệt mật.

RSA là một thí dụ điển hình về một đề tài toán học trừu tƣợng lại có thể áp dụng thực tiễn vào đời sống thƣờng nhật. Khi nghiên cứu về các số nguyên tố, ít có ai nghĩ rằng khái niệm số nguyên tố lại có thể hữu dụng vào lãnh vực truyền thông.

b. Tạo khóa

Hệ mã hóa RSA cần tạo ra một cặp khóa lập mã và giải mã theo phƣơng pháp sau:

Bƣớc 1: Tạo hai số nguyên tố lớn ngẫu nhiên p và q (p ≠ q). Bƣớc 2: Tính: n = p * q.

Bƣớc 3: Tính giá trị hàm số Ơle (n) = (p-1) * (q-1).

Bƣớc 4: Chọn một số ngẫu nhiên e sao cho 1< e < (n) và là số nguyên tố cùng nhau với (n).

Bƣớc 5: Tính d sao cho d x e =1 mod ((n)).

Bƣớc 6: Công bố n và e trong danh bạ làm khoá công khai (public key), còn d làm khoá bí mật (private key).

c. Thuật toán mã hoá và giải mã + Mã hoá:

Giả sử A muốn gửi đoạn thông tin M cho B. Đầu tiên A chuyển M thành một số m < n theo một hàm có thể đảo ngƣợc (từ m có thể xác định lại M) đƣợc thỏa thuận trƣớc. Quá trình này đƣợc mô tả ở phần chuyển đổi văn bản rõ.

Lúc này A có m và biết n cũng nhƣ e do B gửi. A sẽ tính c là bản mã hóa của m theo công thức:

c = me mod n

Hàm trên có thể tính dễ dàng sử dụng phƣơng pháp tính hàm mũ (theo môđun) bằng (thuật toán bình phƣơng và nhân), cuối cùng A gửi c cho B.

+ Giải mã:

B nhận c từ A và biết khóa bí mật d. B có thể tìm đƣợc m từ c theo công thức sau:

m = cd mod n

Biết m, B tìm lại M theo phƣơng pháp đã thỏa thuận trƣớc. Quá trình giải mã hoạt động vì ta có

cd ≡ (me)d ≡ med (mod n)

Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên: med ≡ m (mod p)

med ≡ m (mod q)

Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dƣ Trung hoa, ta có:

med ≡ m (mod p*q). hay:

cd ≡ m (mod n).

d. Độ an toàn của hệ mật RSA

Trên thực tế có nhiều cách tấn công khác nhau đối với mã công khai RSA nhƣ sau: Tìm kiếm khoá bằng phƣơng pháp vét cạn, phƣơng pháp này không khả thi với kích thƣớc đủ lớn của các số hoặc tấn công bằng toán học dựa vào độ khó việc tính Ф(n) bằng cách phân tích n thành hai số nguyên tố p và q hoặc tìm cách tính trực tiếp Ф(n). Trong quá trình nghiên cứu việc thám mã ngƣời ta đề xuất kiểu tấn công thời gian trong khi giải mã, tức là căn cứ vào tốc độ mã hoá và giải mã các mẩu tin cho trƣớc mà phán đoán các thông tin về khoá. Cuối cùng có những nghiên (adsbygoogle = window.adsbygoogle || []).push({});

cứu tấn công RSA với điều kiện biết trƣớc bản mã cho trƣớc. Cụ thể nhƣ sau:

Bài toán phân tích

 Tấn công toán học có 3 dạng:

o Phân tích N = p*q, sau đó tính Ф(N) và dTìm n trực tiếp Ф(N) và tính d.

o Tìm d trực tiếpHiện tại tin rằng tất cả đều tƣơng đƣơng với bài toán phân tích.

o Có các bƣớc tiến chậm theo thời gian.

o Hiện tại cho rằng RSA 1024 hoặc 2048 là an toàn.  Tấn công thời gian.

o Phát triển vào giữa năm 1990.

o Paul Kocher chỉ ra rằng kẻ thám mã có thể xác định đƣợc khoá riêng nếu theo dõi thời gian máy tính cần để giải mã các bản tin.

o Tấn công thời gian không chỉ áp dụng cho RSA, mà cả với các hệ mã công khai khác.

 Tấn công bản mã chọn trƣớc.

o RSA có điểm yếu với tấn công bản mã chọn trƣớc.

o Kẻ tấn công chọn bản mã và đoán bản rõ đƣợc giải mã.

o Chọn bản mã để khám phá RSA cung cấp thông tin để thám mã.

o Có thể tính với bộ đệm ngẫu nhiên của bản rõ.

Chƣơng 3: TỔNG THUẬT CÁC CÔNG TRÌNH LIÊN QUAN

Một phần của tài liệu Phát hiện giả mạo bảng điểm tiếng việt cho các trường học luận văn thạc sĩ (Trang 46 - 50)