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

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số giải pháp an toàn và bảo mật cơ sở dữ liệu ứng dụng cho sở giáo dục và đào tạo tỉnh quảng ninh​ (Trang 31 - 34)

4. Nội dung và bố cục của luận văn

2.3.3. Cơ chế mã hóa khóa công khai

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

Thuật toán mã hóa RSA do ba nhà toán học là Ron Rivest, Adi Shamir và Len Adlerman 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 toán được đặt tên là RSA (Rivest - Shamir - Adlerman) được thiết kế theo hệ mã hóa khóa công khai.

Sự khác biệt cơ bản giữa một hệ mã hóa khóa bí mật với một hệ mã hóa khóa công khai đó là hệ mã hóa khóa công khai sử dụng hai khóa khác nhau để mã hóa và giải mã. Mặc dù hai khóa này thực hiện các thao tác ngược nhau và có liên quan đến nhau, nhưng phải làm thế nào đó để không thể suy ra khóa bí mật từ khóa công khai.

Các bước thực hiện của thuật toán RSA được minh họa trong Hình 2.4.

Hình 2.4: Các bước thực hiện của thuật toán RSA

Vấn đề cốt lõi của thuật toán 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 toán đượ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. Nhưng điều này là không khả thi vì phải đối mặt với bài toán khó.

Sinh khóa:  Chọn p, q là 2 số nguyên tố  Tính n = p.q  Tính Ø (n) = (p-1)(q-1)  Chọn e: USCLN[e, Ø(n)] =1  Tính d: d=e-1 mod Ø(n)  Khóa công khai: KU={e,n}  Khóa bí mật: KR={d,n}

Mã hóa: Bản tin gốc: P, bản mã: C=Pe(mod n)

Giải mã: Bản tin mã: C, bản giải mã: P=Cd(mod n)

Các hệ thống mã hóa khóa 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 toàn. Tuy nhiên thì khi công khai các khóa dùng để mã hóa thì 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 cho họ không thể phân biệt được thông báo đó là hợp lệ hay không. Và có nhiều phương pháp giải quyết được vấn đề này, điển hình là chữ ký số.

2.3.3.2. Phân phối khóa công khai

Các hệ mã công khai chúng ta đã biết yêu cầu mỗi người phải có một giá trị công khai. Để phân phối các giá trị đó cho người dùng đảm bảo tính xác thực, ta có thể sử dụng một trong các kỹ thuật sau:

Phân phối điểm - điểm trên kênh truyền tin cậy: Khóa công khai của các bên thu được thông qua việc tra đổi trược tiếp với nhau trên mật kênh tin cậy. Phương pháp này phù hợp với hệ thống không thường xuyên sử dụng hoặc hệ thống đóng và nhỏ.

Truy nhập trực tiếp tới các tệp dùng chung: Sử dụng một cơ sở dữ liệu công khai lưu trữ tên và khóa công khai được xác thực mỗi người dùng hệ thống. Truy cập

từ xa trên những kênh truyền công cộng có thể tránh được những tấn công bị động, còn muốn chống lại những tấn công chủ động ta sử dụng những kênh truyền tin cậy.

Sử dụng phục vụ ủy quyền trực tuyến: Một phục vụ tin cậy cho phép các truy nhập như khi truy nhập tới tệp dùng chung, khi các bên có nhu cầu khóa công khai, nó sẽ được phục vụ gửi cho và chữ ký của phục vụ trên đó. Mỗi người sử dụng đều có thể kiểm thử được chữ ký của phục vụ đó.

Sử dụng phục vụ ủy quyền ngoại tuyến và chứng chỉ: Phục vụ được gọi là CA (ủy quyền chứng chỉ). Mỗi người sử dụng chỉ phải liên lạc với phục vụ một lần để đăng ký khóa công khai của mình và nhận khóa kiểm thử chữ ký của CA. CA sẽ chứng nhận khóa công khai của người sử dụng rồi rằng buộc giá trị này với xâu xác định danh tính của người sử dụng, đó là nội dung chứng chỉ của người sử dụng.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số giải pháp an toàn và bảo mật cơ sở dữ liệu ứng dụng cho sở giáo dục và đào tạo tỉnh quảng ninh​ (Trang 31 - 34)