Cơ chế mã hóa khóa cơng khai 1 Cơ chế mã hóa RSA

Một phần của tài liệu CHỮ ký số TRONG GIAO DỊCH MẠNG (Trang 48 - 50)

B. Thuật toán

3.5. Cơ chế mã hóa khóa cơng khai 1 Cơ chế mã hóa RSA

3.5.1. Cơ chế mã hóa RSA

A. Mơ tả

Thuật toán mã hoá RSA do ba nhà toán học Ron Rivest, Adi Shamir và Len Adleman tại đại học MIT cùng thực hiện vào năm 1977 và được cơng bố vào năm 1978. Thuật tốn được đặt tên là RSA (Rivest – Shamir – Adleman) được thiết kế theo hệ thống mã công khai.

Sự khác biệt giữa một hệ thống mã bí mật với một hệ thống mã công khai là hệ thống mã cơng khai dùng hai khóa khác nhau để mã hóa và giải mã. Do đó, một bộ mã công khai sẽ bao gồm hai khóa: một khóa giành cho người mã hóa, thường được cơng khai và khóa cịn lại dùng cho người giải mã, thường được giữ bí mật. Mặc dù, hai khóa đó thực hiện các thao tác ngược nhau và có liên quan với nhau, nhưng phải làm sao để khơng thể suy ra khóa bí mật từ khóa cơng khai.

Để thực hiện được ý đồ trên Rivest, Shamir và Adleman đã đề ra một phương pháp dựa trên nhận xét: có thể dễ dàng sinh ra hai nguyên tố lớn và nhân chúng lại với nhau nhưng rất khó khăn khi muốn phân tích thừa số cho tích của chúng.

Các bước thực hiện giải thuật RSA như sau:

Tính n = pq

o|

Tính (n)= (p -1)(q - 1)

Chon E (khóa cơng Khai sao cho USCLN

[E, (n) = 1]|o Tính khóa bí mật D = E-1 mod (n)|o Mã hóa C = PE mod n Giải mã P = CD mod n Khối văn bản nguồn P

Khối văn bản được mã hóa C

Khối văn bản nguồn P Chọn 2 số

nguyên tố lớn p và q

Hình 3.8: Sơ đồ mã hóa và giải mã với RSA

Vấn đề cốt yếu của giải thuật RSA là hai số nguyên tố p và q, hai số này cần phải được giữ bí mật tuyệt đối. Mặt khác, có thể tính được khóa bí mật D nếu phân tích được n thành hai số nguyên tố p và q. Song, điều đó là khơng khả thi vì nếu dùng thuật tốn phân tích thừa số nhanh nhất của Schroeppel thì cũng phải

cần đến S bước tính tốn để phân tích n thành p và q, với S được tính: S = exp[(ln n) ln(ln n)]1/2. B. Định nghĩa các giá trị Phát sinh khoá : - Chọn p, q là 2 số nguyên tố - Tính N : N = p * q

- Tinh phi(n): phi(n) = (p -1) (q - 1) - Chọn e: USCLN[E,phi(n)] = 1

- Tính d: d = E-1mod phi(n)

- Khóa public: KU = {e,N} - Khóa private: KR = {d,N} Mã hố: Bản tin gốc: P Bản mã: C = Pe (mod n) Giải mã: Bản tin mã: C

Bản tin giải mã: P = Cd (mod n)

Mặc dù các hệ thống mã công khai khắc phục được nhược điểm phân phối khóa phải được giữ một cách an tồn. Tuy nhiên, khi cơng khai các khóa dùng để mã hóa lại nảy sinh vấn đề một người nào đó giả danh sử dụng để mã hóa các thơng báo gởi đến bên nhận làm họ khơng thể phân biệt được thơng báo đó là hợp lệ hay khơng. Có một số phương pháp giải quyết vấn đề này mà điển hình là cơ chế chữ ký số.

Một phần của tài liệu CHỮ ký số TRONG GIAO DỊCH MẠNG (Trang 48 - 50)

Tải bản đầy đủ (PDF)

(96 trang)