Tải bản đầy đủ (.doc) (14 trang)

Tài liệu Mật mã cổ điển- Chương 8 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (160.87 KB, 14 trang )

7.1. Giả sử h: X →Y là hàm hash. Với y bất kỳ ∈Y, cho:
h
-1
(y) = { x: h(x) = y}
và ký hiệu s
y
= | h
-1
(y)|.
Định nghĩa N =
chương 8
phân phối và thoả thuận về khoá
8.1 Giới thiệu:
Chúng ta đã thấy rằng, hệ thống mã khoá công khai có ưu điểm hơn hệ
thống mã khoá riêng ở chỗ không cần có kênh an toàn để trao đổi khoá mật. Tuy
nhiên, đáng tiếc là hầu hết các hệ thống mã khoá công khai đều chậm hơn hệ mã
khoá riêng, chẳng hạn như DES. Vì thế thực tế các hệ mã khoá riêng thường
được dùng để mã các bức điện dài. Nhưng khi đó chúng ta lại trở về vấn đề trao
đổi khoá mật.
Trong chương này, chúng ta sẽ thảo luận vài biện pháp thiết lập các khoá
mật. Ta phân biệt giữa phân phối khoá và thoả thuận vể khoá. Phân phối khoá
được định nghĩa là cơ chế một nhóm chọn khoá mật và sau đó truyền nó đến các
nhóm khác. Còn thoả thuận khoá là giao thức để hai nhóm (hoặc nhiều hơn) liên
kết với nhau cùng thiết lập một khoá mật bằng cách liên lạc trên kênh công khai.
Trong sơ đồ thoả thuận khoá, giá trị khoá được xác định như hàm của các đầu
vào do cả hai nhóm cung cấp.
Giả sử, ta có một mạng không an toàn gồm n người sử dụng. Trong một số
sơ đồ, ta có người uỷ quyền được tín nhiệm (TA) để đáp ứng những việc như xác
minh danh tính của người sử dụng, chọn và gửi khoá đến người sử dụng ... Do
mạng không an toàn nên cần được bảo vệ trước các đối phương. Đối phương
(Oscar) có thể là người bị động, có nghĩa là hành động của anh ta chỉ hạn chế ở


mức nghe trộm bức điện truyền trên kênh. Song mặt khác, anh ta có thể là người
chủ động. Một đối phương chủ động có thể làm nhiều hành vi xấu chẳng hạn:
1. Thay đổi bức điện mà anh ta nhận thấy là đang được truyền trên mạng.
2. Cất bức điện để dùng lại sau này.
3. Cố gắng giả dạng làm những người sử dụng khác nhau trên mạng.
Mục tiêu của đối phương chủ động có thể là một trong những cái nêu sau đây:
1. Lừa U và V chấp nhận khoá “không hợp lê” như khoá hợp lệ (khoá không
hợp lệ có thể là khoá cũ đã hết hạn sử dụng, hoặc khoá do đối phương chọn).
2. Làm U hoặc V tin rằng, họ có thể trao đổi khoá với người kia khi họ không có
khoá.
Mục tiêu của phân phối khoá và giao thức thoả thuận khoá là, tại thời điểm
kết thúc thủ tục, hai nhóm đều có cùng khoá K song không nhóm khác nào biết
được (trừ khả năng TA). Chắc chắn, việc thiết kế giao thức có kiểu an toàn này
khó khăn hơn nhiều trước đối phương chủ động.
Trước hết ta xem xét ý tưởng về sự phân phối khoá trước trong mục 8.2. Với
mỗi cặp người sử dụng {U,V}, TA chọn một khoá ngẫu nhiên K
U,V
=K
V,U

truyền “ngoài dải” đến U và V trên kênh an toàn. (Nghĩa là, việc truyền khoá
không xảy ra trên mạng do mạng không an toàn ). Biện pháp này gọi là an toàn
không điều kiện song nó đòi hỏi một kênh an toàn giữa TA và những người sử
dụng trên mạng. Tuy nhiên điều quan trọng hơn là mỗi người phải lưu n -1 khoá
và TA cần truyền tổng cộng
( )
n
2
khoá một cách an toàn (đôi khi bài toán này được
gọi là bài toán n

2
). Thậm chí với một số mạng tương đối nhỏ, giá để giải quyết
vấn đề này là khá đắt và như vậy giải pháp hoàn toàn không thực tế.
Trong phần 8.2.1, chúng ta thảo luận một sơ đồ phân phối trước khoá an
toàn không điều kiện khá thú vị do Blom đưa ra. Sơ đồ cho phép giảm lượng
thông tin mật mà người sử dụng cần cất giữ trên mạng. Mục 8.2.2 cũng đưa ra
một sơ đồ phân phối trước khoá an toàn về mặt tính toán dựa trên bài toán
logarithm rời rạc.
Một biện pháp thực tế hơn là TA phân phối khoá trực tiếp. Trong sơ đò
như vậy, TA làm việc như một người chủ khoá (key server). TA chia khoá mật
K
U
cho mỗi người sử dụng U trên mạng. Khi U muốn liên lạc với V, cô ta yêu
cầu TA cung cấp khoá cho phiên làm việc (session key). TA tạo ra khoá session
K và gửi nó dưới dạng mã hoá cho U và V để giải mã. Hệ thống mã Kerboros
mô tả trong mục 8.3 là dựa trên biện pháp này.
Nếu như cảm thấy vấn đề phân phối khoá thông qua TA không thực tế
hoặc không mong muốn thì biện pháp chung là dùng giao thức thoả thuận khoá.
Trong giao thức thoả thuận khoá, U và V kết hợp chọn một khoá bằng cách liên
lạc với nhau trên kênh công khai. ý tưởng đáng chú ý này do Martin và Diffie
đưa ra độc lập với Merkle. ở đây mô tả vài giao thưc thoả thuận khoá phổ thông
hơn. Giao thức đầu tiên của Diffie và Hellman được cải tiến để ứng phó với các
đối phương tích cực được nêu trong phần 8.4.1. Hai giao thức đáng quan tâm
nữa cũng được xem xét: sơ đồ MTI nên trong 8.4.2 và sơ đồ Girault nêu trong
mục 8.4.3
8.2 Phân phối khoá trước
theo phương pháp cơ bản, TA tạo ra









2
n
khoá và đưa mỗi khoa cho duy
nhất một cặp người sử dụng trong mạng có n người sử dụng. Như đã nêu ở trên,
ta cần một kênh an toàn giữa TA và mỗi người sử dụng để truyền đi các khoá
này. Đây là một cải tiến quan trọng vì số kênh an toàn cần thiết giảm từ








2
n

xuống còn n. Song nếu n lớn, giải pháp này cũng không thực tế cả về lượng
thông tin cần truyền đi an toàn lẫn lượng thông tin mà mỗi người sử dụng phải
cất giữ an toàn (nghĩa là các khoá mật của n-1 người sử dụng khác).
như vậy, điều cần quan tâm là cố gắng giảm được lượng thông tin cần truyền đi
và cất giữ trong khi vẫn cho phép mỗi cặp người sử dụng U và V có khả năng
tính toán khoá mật K
U,V
. Một sơ đồ ưu việt hơn thoả mãn yêu cầu này là sơ đồ

phân phối khoá trước của Blom.
8.2.1 Sơ đồ Blom.
Như trên, giả thiết rằng có một mạng gôm n người sử dụng. Để thuận tiện,
giả sử rằng các khoá được chọn trên trường số hữu hạn Z
P
, p ≥ n là số nguyên tố.
Cho k là số nguyên, 1 < k < n -2. Giá trị k để hạn chế kích thước lớn nhất mà sơ
đồ vẫn duy trì được mật độ. Trong sơ đồ Blom, TA sẽ truyền đi k +1 phần tử của
Z
P
cho mỗi người sử dụng trên kênh an toàn (so với n -1 trong sơ đồ phân phối
trước cơ bản). Mỗi cặp người sử dụng U và V sẽ có khả năng tính khoá K
U,V
=
K
V,U

như trước đây. Điều kiện an toàn như sau: tập bất kì gồm nhiều nhất k
người sử dụng không liên kết từ {U, V} phải không có khả năng xác định bất kì
thông tin nào về K
U,V
. (chú ý rằng, ta đang xét sự an toàn không điều kiện).
Trước hết, xét trường hợp đặc biệt của sơ đồ Blom khi k =1. ở đây TA sẽ
truyền đi 2 phần tử của Z
P
cho mỗi người sử dụng trên kênh an toàn và người sử
dụng riêng W sẽ không thể xác định được bất kì thông tin nào về K
U,V
nếu
W≠U,V. Sơ đồ Blom được đưa ra trong hình 8.1. Ta sẽ minh hoạ sơ đồ Blom với

k = 1 trong ví dụ sau:
Hình 8.1: Sơ đồ phân phối khoá của Blom (k =1)
1. Số nguyên tố p công khai, còn với mỗi người sử dụng U, phần tử r
U
∈ Z
P

công khai. Phần tử r
U
phải khác biệt.
2. Ta chọn 3 phần tử ngẫu nhiên a, b, c ∈ Z
P
(không cần khác biệt) và thiết lập
đa thức
8.3.Kerboros
trong các phương pháp phân phối trước khoá xem xét trong các phần trước
đó, mỗi cặp người sử dụng cần tính một khoá cố định. Nếu dùng cùng một khoá
trong một thời gian dài sẽ dễ bị tổn thương, vì thế người ta thường thích dùng
phương pháp trực tiếp trong đó khoá của phiên lamà việc mới chỉ được tạo ra
mỗi khi hai ngưới sử dụng muốn liên lạc với nhau (gọi là tính tươi mới của
khoá).
Nếu dùng phân phối khoá trực tiếp thì người sử dụng mạng không cần
phải lưu các khoá khi muốn liên lạc với những người sử dụng khác (Tuy nhiên
mỗi người đều được chia sẻ khoá với TA). Khoá của phiên làm việc (khóa
session) sẽ được truyền đi theo yêu cầu của TA. Đó là sự đáp ứng của TA để
đảm bảo khoá tươi.
Korobos là hệ thống dịch vụ khóa phổ cập dựa trên mã khoá riêng. Trong
phần này sẽ đưa ra một tổng quan về giao thức phát hành khoá session trong
Korobos. Mỗi người sử dụng U sẽ chia sẻ khoá DES mật K
U

cho TA. Trong
phiên bản gần đây nhất của Korobos (version 5), mọi thông báo cần truyền được
mã hoá theo chế độ xích khối (CBC) như mô tả trong 3.4.1
Như trong mục 8.2.2, ID(U) chỉ thông tin định danh công khai cho U. Khi
có yêu cầu khoá session gửi đến TA, TA sẽ tạo ra một khoá session mới ngẫu
nhiên K. Cũng vậy, TA sẽ ghi lại thời gian khi có yêu cầu T và chỉ ra thời gian
(thời gian tồn tại) L để K có hiệu lực. Điều đó có nghĩa là khoá K chỉ có hiệu lực
từ T đến T+L. Tất cả thông tin này đều được mã hoá và được truyênông dân đến
U và V. Trước khi đi đến các chi tiết hơn nữa, ta sẽ đưa ra giao thức trong hình
8.4. thông tin được truyền đi trong giao thức được minh hoạ như sau:
Hình 8.4: Truyền khoá session trong Korobos.
1.
Ta sẽ giải thích điều sắp sửa xảy ra trong các bước của giao thức. Mặc dù
không có chứng minh hình thức rằng Kerobos là an toàn trước đối thủ tích cực,
song ít nhất ta cũng có thể đưa ra lí do nào đó về các đặc điểm của giao thức.
Như nêu ở trên, TA tạo ra K, T và L trong bước 2. Trong bước 3, thông tin
này cùng với ID(V) được mã hoá bằng khoá K
U
(được U và TA chia sẻ) để tạo
lập m
1
. Cả hai bức điện đã mã hoá này được gửi đến U.
U có thể dùng khoá của mình giải mã m
1
, nhận được K, T và L. Cô sẽ xác
minh xem thời gian hiện tại có nằm trong khoảng T đến T + L hay không. Cô
cũng kiểm tra khoá session K được phát ra cho liên lạc giữa cô và V bằng cách
xác minh thông tin ID(V) đã giải mã từ m
2
.

Tiếp theo, U sẽ làm trễ thời gian m
2
và m
3
đến V. Cũng như vậy, U sẽ
dùng khoá session K mới để mã T và ID(U) và gửi kết quả m
3
đến V.

×