4. Tổng quan luận văn
1.5.1 Phân phối khoá cho giải thuật mật mã đối xứng
Ta giả định rằng việc phân bố khóa đƣợc thực hiện trên cùng một mạng truyền thông và các khóa đó đƣợc gửi đi dƣới dạng đã mã hóa (dạng cryptogram). Việc phân bố khóa trên mạng máy tính đƣợc kiểm soát bởi hoặc một máy tính chủ (đƣợc chọn ra trong số tất cả máy tính trên mạng) và đƣợc gọi là "Hệ phân bố khóa tập trung", hoặc bởi một nhóm các máy tính chủ, đƣợc gọi là "Hệ phân bố khóa không tập trung" [12].
a) Hệ phân bố khóa tập trung
Hệ chỉ có một trung tâm phân phát khóa (gọi tắt là CKD). Ta giả thiết rằng mỗi user sẽ chia sẻ (dùng chung) với CKD chỉ một cặp khóa duy nhất đã định trƣớc. Và giả sử ngƣời A muốn bảo vệ thông tin gửi tới ngƣời B. Trƣớc tiên A sẽ gửi tới CKD yêu cầu RA cùng với tên nhận diện IDA dƣới dạng chƣa mã hóa (clear form). Tức user_A gửi cho CKD cặp (IDA, RA ). Đáp lại CKD gửi trả user_A một message đã mã hóa bao gồm các thông tin sau :
+ Một khóa KAB mà sẽ đƣợc sử dụng để bảo mật thông tin truyền/nhận giữa A và B.
+ Tên nhận diện IDA.
+ Một bản copy yêu cầu của A là RA.
+ Một cryptogram của cặp (KAB,IDA) đƣợc mã hóa bằng khóa KB là khóa chia sẻ giữa B và CKD, tức là EKB(KAB,IDA).
Tóm lại, CKD gửi cho A message nhƣ sau: EKA (KAB,IDA,RA,EKB). Nhận đƣợc thông báo trên, A sẽ giải mã nó bằng khóa KA, kiểm tra trên ID và bản
copy yêu cầu R có trùng với IDA và RA của mình không ?. Nếu trùng, A sẽ gửi cho B cặp EKB(KAB,IDA). B nhận đƣợc, giải mã nó bằng khóa KB và lấy đƣợc khóa KAB và IDA ở dạng "clear text".
Hình 1.4 Sơ đồ phân bố khóa của một network với một CKD
Kết quả là A và B sẽ có chung một khóa KAB nên chúng có thể truyền nhận cho nhau bằng một kênh truyền bảo mật chung. Thƣờng thì khi nhận đƣợc khóa KAB, B phải kiểm tra tính xác thực của khóa bằng một thủ tục "authentication procedure". Ví dụ nhƣ B gửi cho A một số random number RN đã đƣợc mã hóa bởi khóa KAB,tức là gửi EKAB(RN). A giải mã và sau đó biến đổi RN phù hợp với hàm phụ thuộc thời gian đƣợc xác định trƣớc đó TRt(RN). Chuỗi TRt(RN) đƣợc mã hóa bởi khóa KAB và đƣợc truyền trở lại cho B. Thủ tục trên có thể làm đơn giản hơn nếu nhƣ các user có lƣu trữ các khóa lấy đƣợc từ trƣớc vào các files riêng của họ.
b) Hệ phân bố khóa không tập chung
Trong hệ phân bố này, mọi máy host đều có quyền phân bố khóa. Trong trƣờng hợp này, mỗi máy host đều có một khóa riêng chia sẻ với một máy host
(1) [IDA, RA] (2) EKA[KAB, IDA, RA, EKB(KAB,IDA) ] (3) EKB[KAB, IDA] (4) EKAB(RN) (5) EKAB[TR1(RN)] A B CKD
khác. Nhƣ vậy, giả sử mạng gồm n host (n node) sẽ có n(n-1)/2 khóa khác nhau tồn tại trên mạng, và chúng có thể thay đổi theo thời gian. Nếu chúng ta không muốn sử dụng các kênh riêng để phân bố “host key” thì có thể sử dụng “Hệ phân bố khóa phân lớp”. Thƣờng thì chúng đƣợc chia thành 3 lớp hosts sau :
+ Global CKD. + Regional CKD. + Local CKD.
“Global CKD” đáp ứng với việc phân bố khóa trong số tất cả các thực thể (computer) của một máy host. Các hosts với “Local CKD” lại là các thực thể đƣợc phân bố khóa bởi một máy host là “Regional CKD” khi các hosts này cùng nằm trong một region. Tƣơng tự, tất cả các hosts “Regional CKD” lại là thực thể của một máy host với “Global CKD”. Do đó, nếu một thực thể nào đó (thực thể có thể là một máy tính, một máy host với chức năng là “Regional CKD” hay “Local CKD”) của mạng yêu cầu một kênh bảo mật, nó sẽ gửi yêu cầu đó cho một máy host tƣơng ứng đƣợc coi là CKD của mình. Sau đó, máy CKD sẽ gửi lại cho thực thể đó một khóa.