Sử dụng mã hoá khoá công khai để phân phối khoá mật

Một phần của tài liệu Hệ mật RSA và ứng dụng lược đồ chữ ký số trong xác thực thông tin (Trang 34)

Merkle đưa ra một lược đồ rất đơn giản: Nếu A muốn trao đổi thông tin mật với B, thủ tục được thực hiện tuần tự theo các bước sau:

i) A tạo ra một cặp khoá (ea, da) và truyền thông điệp cho B biết khoá công khai ea và tên của A (IDA).

ii) B tạo ra một khoá bí mật Ks, gửi khoá bí mật cho A: EeaKs. iii)A tính toán để biết khoá bí mật Ks bằng việc giải mã thông điệp

   eaS

d E K K

D

a

(như vậy chỉ có A và B biết được khoá Ks) iv) A huỷ bỏ ea, da và B huỷ bỏ ea.

Bây giờ A và B có thể trao đổi với nhau bằng khoá phiên Ks. Sau khi trao đổi xong cả A và B cùng huỷ bỏ KS, như vậy theo cách này thì việc đảm bảo bí mật là rất tốt vì trước và sau khi liên lạc không có khoá nào tồn tại. Rủi ro lộ khoá là rất nhỏ. Tại thời điểm này việc liên lạc là đảm bảo an toàn. Đây là một giao thức hấp dẫn.

Tuy nhiên, thủ tục này có điểm yếu là dễ bị tấn công chủ động. Nếu một cá thể C chủ động muốn nghe trộm thông tin trao đổi giữa A và B, C sẽ tìm cách kiểm soát đường truyền thông giữa hai người. C có thể dàn xếp cuộc truyền thông mà không bị phát hiện, theo hình thức sau đây:

i) A tạo ra một cặp khoá (ea, da) và truyền một thông điệp cho B, thông điệp là cặp (ea, IDA).

ii) C chặn lấy thông tin, tạo ra một cặp khoá (ec, dc) và truyền cho B một thông điệp là cặp (ec, IDA).

iv) C chặn lấy thông điệp, tính Ks DdEec Ks

c

 . Sau đó truyền cho A:

 s

a e K E

Cuối cùng là A và B cùng biết Ks, nhưng không biết rằng Ks đã bị C tóm lấy vì vậy mọi thông tin trao đổi giữa A và B đều bị C nghe trộm một cách đơn giản. Vậy liệu có cách nào để chống lại các kiểu tấn công chủ động cũng như thụ động không. Ta hãy xem xét việc phân phối khoá theo giao thức sau, nó sẽ thực hiện được điều đó.

Quá trình phân phối khoá bí mật bảo đảm tính bí mật và tính xác thực: Ở đây ta xem như A và B đã trao đổi khoá công khai mà trong các lược đồ trước đã nêu. Các bước tiếp theo diễn ra như sau:

i) A sử dụng khoá công khai của B để mã hoá thông điệp gửi cho B:

A

b

e N ID

E 1, trong đó N1 được sử dụng để nhận diện giao dịch này, IDA là tên của A.

ii) B gửi thông điệp cho A. Thông điệp được mã hoá bằng ea. N1 xác thực rằng A đang liên lạc với B, N2 là giá trị nonce mới do B sinh ra.

iii)A trả lại N2, được mã hoá bằng khoá công khai của B để đảm bảo rằng B đang liên lạc với A, đồng thời gửi khoá bí mật Ks do A sinh ra:

   d sb e N E K E C a , 2

 qua thông điệp

iv) B tính toán DD  C

b

d a

e để khôi phục khoá bí mật đồng thời xác thực rằng A đang làm việc với B.

Lược đồ này đảm bảo tính tin cậy và xác thực trong trao đổi khoá bí mật.

Một phần của tài liệu Hệ mật RSA và ứng dụng lược đồ chữ ký số trong xác thực thông tin (Trang 34)

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

(97 trang)