Mã hoá công khai

Một phần của tài liệu Cá hệ thống thanh toán điện tử (Trang 28 - 34)

Whitfield Diffie, một trong những người đã phát minh ra mã hoá công khai (cùng với Martin Hellman, đại học Standford) đã suy luận và cho rằng yêu cầu thứ hai phủ nhận bản chất của mật mã. Bản ch t ó đảm b o tính bí mậấ đ ả t trong liên l c. Khó có th t n tạạ ể ồ i các h mật không ệ

Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 22 thể phá được nếu người sử dụng c a các h th ng này ph i dùng chung các khoá c a m t trung ủ ệ ố ả ủ ộ tâm phân phối khoá (KDC), lý do là trung tâm này có thể để l khoá. ộ

Vấn đề thứ hai Diffie đặt ra là chữ ký số. Nếu việc sử dụng m t mã trởậ nên phổ biến, không chỉ trong lĩnh vực quân sự mà còn được sử dụng cho các m c ích thương m i và cán ụ đ ạ nhân, thì các thông báo và tài liệ đ ệu i n tử cần có các ch ký và chúng có hi u lựữ ệ c tương t nh ự ư trên chữ ký trên gi y tờ. ấ

Hình 2-3: Mã hoá công khai Các hệ ậ m t khoá công khai

Các thuật toán khoá công khai sử dụng m t khoá để mã hoá và một khoá khác để giải mã ộ (tạo thành một cặp khoá). Chúng có các tính chất cơ bản sau ây: đ

• Không thể xác định được khoá gi i mã n u chỉ căn cứả ế vào các thông tin v thu t ề ậ toán và khoá mã hoá.

Một số thuật toán, chẳng hạn như RSA, cũng có tính chất sau:

• Một trong hai khoá được sử dụng để mã hoá, khoá còn lại được sử dụng để giải mã.

Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 23 Hình 2-3 mô tả quá trình mã hoá công khai.

Các bước cơ ả b n gồm:

1. Alice sử dụng m t thu t toán mã hoá công khai ộ ậ để tạo ra m t c p khoá; khoá riêng ộ ặ (private) được giữ mật và m t khoá công khai. Alice c ng chu n b các thông đ ệộ ũ ẩ ị i p cần gửi cho Bob.

2. Alice gửi khoá công khai đếp Bob, không mã hoá. Do khoá riêng không thể suy ra từ việc phân tích khoá công khai nên việc gửi khóa công khai không cần mã hoá là vẫn an toàn.

3. Alice từ bây giờ có thể chứng minh định danh của mình với Bob (gọi là quá trình xác thực). Để xác thực Alice chỉ ầ c n sử ụ d ng khoá riêng mã hoá thông đ ệi p và gửi tới Bob.

4. Bob dùng khoá công khai để giải mã thông đ ệi p. Gi i mã thành công s ch ng t rằng ả ẽ ứ ỏ thông đ ệi p được gửi từ Alice (do chỉ một mình Alice có khóa riêng h p v i khoá công ợ ớ khai đã gửi cho Bob).

5. Bob mã hoá thông đ ệi p dùng khoá công khai của Alice để gửi lạ Đi. ây là một quá trình an toàn vì chỉ ộ m t mình Alice mới có khoá riêng trong cặp để giải mã thông đ ệi p.

6. Alice giải mã thông đ ệi p v i khoá riêng. ớ

Hình 2-4: Hệ ậ m t khoá công khai – Bí m t ậ

Mã hoá Giải mã

Nguồn của thông

báo

Đích

Nguồn cặp khoá

X Y X

KUb

KRλ* (KRλ ước lượng)

KRb

Nguồn A

Phân tích mã X* (X ước lượng)

Đích B

Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 24 Với cách giải quyết này, tất cả các thành viên tham gia truyền thông đều có thể có được khoá công khai. Khoá riêng của mỗi thành viên được giữ bí mật. Quá trình liên lạc chỉ an toàn chừng nào khoá riêng còn được giữ bí mật. Mỗi thành viên có thể thay đổi các khoá riêng của mình bất kỳ lúc nào, đồng thời công b khoá công khai cùng cố ặp để thay thế khoá công khai cũ.

Bảng 2.1 sau trình bày một số đặc đ ểm quan trọng của mã hoá khoá công khai và mã hoá i khoá đối xứng. Để phân biệt chúng, người ta người ta gọi khoá s d ng trong mã hoá đối x ng là ử ụ ứ khoá mật. Hai khoá dùng trong mã hoá công khai là khoá công khai và khoá riêng.

Bảng 2: Mã hoá công khai và mã hoá đối xứng

Mã hoá đối xứng Mã hoá công khai

Các yêu cầu khi sử ụ d ng Quá trình mã hoá và giải mã sử dụng cùng

một thuật toán với cùng một khoá.

Người gửi và người nhận phải sử dụng chung thuật toán và khoá.

Một thuật toán sử dụng một cặp khoá khi mã hóa và giải mã, m t khoá được dùng khi ộ mã hoá, khoá còn lại được dùng khi giải mã.

Người sử dụng và người nhận, mỗi người có một khoá trong cặp khoá

Các yêu cầu an toàn Khoá phải giữ bí mật.

Không thể giải mã được thông báo nếu không có thêm các thông tin có giá trị khác.

Các thông tin về thuật toán, các mẫu bản mã không đủ để xác định khoá

Một trong hai khoá phải được giữ bí mật.

Không thể giải mã được thông báo nếu không có thêm các thông tin có giá trị khác.

Các thông tin về thuật toán, một trong các khoá và các mẫu bản mã không đủ để xác định khoá

Chúng ta xem xét kỹ các yếu tố trong lược đồ mã hoá khoá công khai (hình 2-4):

Nguồn A đưa ra một thông báo rõ và bản rõ của thông báo là X = [X1, X2, …,XM]. Các phần tử Xi (i = 1 .. M) của X là các chữ cái trong một bảng mã h u hữ ạn nào đó. A dự định gửi thông báo cho đích B. B sinh ra một cặp khoá là khoá công khai KUb, khoá riêng KRb. Chỉ B biết KRb còn KUb được công bố công khai, do vậy A có thể có được khóa công khai này.

Với đầu vào là thông báo X và khoá mã hoá KUb A tạo ra một bản mã Y = [Y1, Y2, …,YN] với Y = EKUb(X).

Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 25 Người nhận hợp lệ (người s hữở u khoá riêng) thu được X, qua phép bi n đổi ngược X = ế DKUb(Y).

Đối phương (có thể có được Y và KUb nhưng không có KRb hoặc X) phải tìm cách khôi phục lại X và/ hoặc KRb. Giả ử ằ s r ng, anh ta có các thông tin về thuật toán mã hoá (E) và giải mã (D), anh tao có thể khôi phụ thông báo X bằng cách sinh ra một bản rõ X ước lượng. Tuy nhiên, để đọc được các thông báo mới, i phương phảđố i khôi ph c ụ được KRb bằng cách sinh ra m t ộ KRb ước lượng.

Chúng ta biết rằng một trong hai cặp khoá có thể được sử dụng để mã hoá, khoá còn l i ạ được sử ụ d ng để gi i mã. i u này cho phép th c hi n m t lược đồ mã h i khác trước m t chút. ả Đ ề ự ệ ộ ơ ộ Lược đồ được minh hoạ trong hình 2-4 cung cấp tính bí mật. Hình 2-5 minh hoạ việc sử ụ d ng mã hoá khoá công khai cho xác thực:

Y = EKUb(X) X = DKUb(Y)

Hình 2-5: Hệ ậ m t khoá công khai – Xác thực

Trong trường hợp này, A chuẩn bị một thông báo để gửi cho B và mã hoá thông báo b ng ằ khoá riêng của A trước khi chuyể đn i. B có thể giải mã thông báo bằng khoá công khai của A.

Mã hoá Giải mã

Nguồn của thông

báo

Đích

Nguồn cặp khoá

X Y X

KRa

KRa* (KRa ước lượng)

KUa

Nguồn A

Phân tích mã

Đích B

Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 26 Thông báo được mã hoá bằng khoá riêng của A nên có thể xác định chỉ có A là người tạo ra thông báo. Do vậy, toàn bộ thông báo mã hoá được sử ụ d ng như một ch ký s . H n n a, không ữ ố ơ ữ thể sửa đổi thông báo n u không có khoá riêng c a A, chính vì v y thông báo đượế ủ ậ c xác nh c đị ả nguồn gốc lẫn tính toàn vẹn dữ liệu.

Trong lược đồ trước toàn bộ thông báo được mã hoá, nó đòi hỏi khả năng l u gi lớư ữ n. M i ỗ tài liệu phải được lưu ở dạng rõ. B n mã được l u dạả ư ở ng mã, do v y chúng ta có th ki m tra ậ ể ể được nguồn g c và các n i dung trong trường h p tranh ch p. M t cách hi u qu hơn là mã hoá ố ộ ợ ấ ộ ệ ả một khối nhỏ các bit. Khối này được gọi là dấu xác thực. Nó phải có tính chất là mọi thay đổi trên tài liệu đều d n đến s thay đổi của dấu xác thực (sử ụẫ ự d ng hàm băm). Chữ ký được sử ụ d ng để kiểm tra ngu n gốồ c và n i dung thông báo. ộ

Hình 2-6: H mệ ật khoá công khai – Bí mật và xác thực

Việc sử dụng lược đồ khoá công khai có thể đảm bảo tính xác thực và tính bí mật:

Z = EKUb [EKRa(X)]

X = DKUa [DKRb(Z)]

Trước hết, chúng ta mã hoá một thông báo bằng khoá riêng của người gửi, đưa ra một chữ ký số. Tiếp theo, mã hoá một lần nữa với khoá công khai của người nhận. Chỉ có ng i nhườ ận hợp pháp mới giải mã được bản mã cuối cùng này vì anh có khoá riêng cùng cặp. Như vậy s bảo ẽ

Mã hoá Giải mã

Nguồn của thông

báo

Đích

Nguồn cặp khoá

X Y X

KRa KUa

Nguồn A

Mã hoá Giải mã

Nguồn B

Z Y

Nguồn cặp khoá

KRb

KUb

Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 27 đảm được tính bí mật. Khó khăn của bi n pháp này là thu t toán mã hoá công khai, nó th c s ệ ậ ự ự phức tạp, phải tiến hành 4 lần (chứ không phải 2 lần) cho mỗi lần truyền thông.

Một phần của tài liệu Cá hệ thống thanh toán điện tử (Trang 28 - 34)

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

(125 trang)