Mã hoá bất đối xứng

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Vấn đề bảo mật cơ sở dữ liệu trong cơ sở dữ liệu phân tán (Trang 36 - 39)

II.1. Phương pháp mã hoá

II.1.3 Mã hoá bất đối xứng

Trong mật mã hóa khóa công cộng có hai khóa đƣợc sử dụng, khóa công cộng dùng để mã hóa còn khóa cá nhân dùng để giải mã. Rất khó để có thể thu được khóa cá nhân từ khóa công cộng. Điều này có nghĩa là một người nào đó có thể tự do gửi khóa công cộng của họ ra bên ngoài theo các kênh không an toàn mà vẫn chắc chắn rằng chỉ có họ có thể giải mật mã các thông điệp mà họ đã mật mã hóa chúng bằng khóa đó.

Quá trình truyền và sử dụng mã hoá khoá công khai đƣợc thực hiện nhƣ sau:

- Bên gửi yêu cầu cung cấp hoặc tự tìm khoá công khai của bên nhận trên một máy chủ chịu trách nhiệm quản lý khoá.

- Sau đó hai bên thống nhất thuật toán dùng để mã hoá dữ liệu, bên gửi sử dụng khoá công khai của bên nhận cùng với thuật toán đã thống nhất để mã hoá thông tin đƣợc gửi đi.

- Khi nhận đƣợc thông tin đã mã hoá, bên nhận sử dụng khoá bí mật của mình để giải mã và lấy ra thông tin ban đầu.

Hình 2.10: Quá trình mã hoá bất đối xứng

Mã hóa không đối xứng cũng cung cấp cơ chế cho chữ ký số. Các chữ ký số là trung tâm trong các hoạt động của cơ sở hạ tầng của khóa công cộng (PKI) và rất nhiều hệ thống an ninh mạng (ví dụ Kerberos, phần lớn các mạng riêng ảo (VPN) v.v). Một số thuật toán mã hoá công khai nổi tiếng: Diffle-Hellman, RSA,…

II.1.3.1 Thuật toán RSA [1,2,6,8]

RSA là một thuật toán mã hóa khóa công cộng. Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. 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.

II.1.3.1.1 Thuật toán

Thuật toán RSA có hai khóa: khóa công khai và khóa bí mật. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những thông tin đƣợc mã hóa bằng khóa công khai chỉ có thể đƣợc giải mã bằng khóa bí mật tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân mới có thể giải mã được.

Tạo khoá:

1. Chọn 2 số nguyên tố lớn pvà q với p ≠ q, lựa chọn ngẫu nhiên và độc lập.

2. Tính: n=pq.

3. Tính: totient (n)=(p-1)(q-1).

4. Chọn một số tự nhiên e sao cho 1<e<(n)và là số nguyên tố cùng nhau với (n).

5. Tính: d sao cho de≡(mod(n)).

 Các số nguyên tố thường được chọn bằng phương pháp thử xác suất.

 Các bước 4 và 5 có thể được thực hiện bằng thuật toán Euclid mở rộng.

Bước 5 có thể viết cách khác: Tìm số tự nhiên x sao cho

e q p

dx( 1)( 1)1

cũng là số tự nhiên. Khi đó sử dụng giá trị: d mod (p-1)(q-1).

 Từ bước 3, PKCS#1 v2.1 sử dụng λ=LCM(p-1,q-1) thay cho

) 1 )(

1

(  

p q

 Khóa công khai bao gồm:

 n, e (số mũ công khai) Khóa bí mật bao gồm:

 n (xuất hiện cả trong khóa công khai và khóa bí mật), d (số mũ bí mật).

Một dạng khác của khóa bí mật bao gồm:

 p and q, hai số nguyên tố chọn ban đầu,

 d mod (p-1) và d mod (q-1) (thường được gọi là dmp1 và dmq1),

 (1/q) mod p (thường được gọi là iqmp) II.1.3.1.2 Mã hóa

Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên Bob 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. Lúc này Bob có m và biết n, e do Alice gửi. Bob sẽ tính c là bản mã hóa của m theo công thức:

c=me mod n Cuối cùng Bob gửi c cho Alice.

II.1.3.1.3 Giải mã

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

Biết m, Alice 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) và 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 quốc, ta có: med ≡ m(mod pq) hay cd ≡ m (mod n).

II.1.3.1.4 An toàn

Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài toán trên là khó thì không thể thực hiện đƣợc việc phá mã toàn bộ đối với RSA.

RSA đảm bảo an toàn với điều kiện n đƣợc chọn đủ lớn.

RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán mã hóa đối xứng khác.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Vấn đề bảo mật cơ sở dữ liệu trong cơ sở dữ liệu phân tán (Trang 36 - 39)

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

(105 trang)