Tải bản đầy đủ (.docx) (11 trang)

Chuong8doc

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 (116.07 KB, 11 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

7.1. Giả sử h: X Y là hµm hash. Víi y bÊt kú Y, cho:
h-1<sub>(y) = { x: h(x) = y}</sub>


vµ ký hiƯu sy = | h-1(y)|.


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

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ã khố cơng khai có u điểm hơn hệ
thống mã khố riêng ở chỗ khơng cần có kênh an tồn để trao đổi khoá mật. Tuy
nhiên, đáng tiếc là hầu hết các hệ thống mã khố cơng khai đều chậm hơn hệ mã
khố 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. Nhng 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 khố mật và sau đó truyền nó đến các nhóm
khác. Cịn thoả thuận khố 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 khố, 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 tồ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 khố đến ngời sử dụng ... Do mạng
khơng an tồ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 li sau ny.


3. Cố gắng giả dạng làm những ngời sử dụng khác nhau trên mạng.


Mc tiờu ca i phng 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 khố “khơng hợp lê” nh khố hợp lệ (khố 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 khố với ngời kia khi họ khơng có
khố.


Mục tiêu của phân phối khố 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 khố 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 tồ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 KU,V=KV,U và trun


“ngồi dải” đến U và V trên kênh an tồn. (Nghĩa là, việc truyền khố khơng xảy
ra trên mạng do mạng khơng an tồn ). Biện pháp này gọi là an tồ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 lu n -1 khoá và TA cần truyền
tổng cộng (2<i>n</i><sub>)</sub> <sub>khố một cách an tồn (đơi khi bài tốn này đợc gọi là bài tốn</sub>


n2<sub>). 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á</sub>



đắt và nh vậy giải pháp hoàn tồ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 khố an
tồ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 khố an tồn về mặt tính tốn dựa trên bài tốn logarithm rời rạc.


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

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 khố session K và gửi
nó dới dạng mã hố 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 khố 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 khố 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 thc thoả thuận khố 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 mc 8.4.3


<b>8.2 Phân phối khoá trớc</b>


theo phơng pháp cơ bản, TA tạo ra

(

<i>n</i>


2

)

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 tồn cần thiết giảm từ

(

<i>n</i>


2

)

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
tốn khố mật KU,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.


<i><b>8.2.1 Sơ đồ Blom</b></i>.


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 ZP, 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 ZP


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 khố KU,V = KV,U nh trớc


đây. Điều kiện an tồ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ề KU,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 ZP 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ề KU,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:


<i><b>Hình 8.1: Sơ đồ phân phối khố của Blom (k =1)</b></i>


1. Sè nguyªn tố p công khai, còn với mỗi ngời sử dụng U, phần tử rU ZP là


công khai. Phần tử rU phải khác biệt.


2. Ta chọn 3 phần tử ngẫu nhiên a, b, c ZP (không cần khác biệt) và thiết lập đa


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>8.3.Kerboros</b>


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 đó khố 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 khố).


Nếu dùng phân phối khố trực tiếp thì ngời sử dụng mạng khơng cần phải
lu 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). Khố 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 khố 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 KU 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ã hố
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ó u cầu khố 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à khố K chỉ có hiệu lực
từ T đến T+L. Tất cả thơng tin này đều đợc mã hố 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 thc c minh ho nh sau:


<i><b>Hình 8.4: Truyền khoá session trong Korobos.</b></i>


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 tồ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á KU (đợc U và TA chia sẻ) để tạo lập m1.


Cả hai bức điện đã mã hoá này đợc gửi đến U.


U có thể dùng khố của mình giải mã m1, 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 khố 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ừ m2.



Tiếp theo, U sẽ làm trễ thời gian m2 và m3 đế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ả m3 đến V.


Khi V nhận đợc m3 và m3 từ U, V giải mã m2 thu đợc T, K, L và ID(U). Khi


đó, anh ta sẽ dùng khố session mới K để giải mã m3 và xác minh xem T và


ID(U) nhận đợc từ m2 và m3 có nh nhau khơng. Điều này đảm bảo cho V rằng


khoá session đợc mã bằng m2 cũng là khoá đã dùng để mã m3. Khi đó V dùng K


để mã T+1 và gửi kết quả m4 trở về U.


Khi U nhận đợc m4, cơ dùng K giải mã nó và xác minh xem kết quả có


bằng T+1 khơng. Cơng đoạn này đảm bảo cho U rằng khoá session K đã đợc
truyền thành cơng đến V vì K đã đợc dùng để tạo ra m4.


Điều quan trọng cần lu ý là các chức năng khác nhau của các thông báo
dùng trong giao thức, m1 và m2 dùng để bảo đảm an tồn trong việc truyền khố


session. Cịn m3 và m4 dùng để khẳng định khoá, nghĩa là cho phép U và V có thể


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

đ-ợc thực hiện tơng tự kiểu Kerobos, U dùng K để mã ID(U) và T dùng để mã trong
m2. Tơng tự, V dùng K để mã T+1.


Mục đích của thời gian hệ thống T và thời hạn L để ngăn đối phơng tích
cực khỏi “lu” thông báo cũ nhằm tái truyền lại sau này (đây đợc gọi là tấn công


kiểu chơi lại - relay attack). Phơng pháp này hiệu quả vì các khố không đợc
chấp nhận là hợp lệ một khi chúng quá hạn.


Một trong hạn chế của Kerobos là mọi ngời sử dụng trong mạng đều phải
có đồng hồ đồng bộ với nhau vì cần có thời gian hiện tại để xác định khoá
session K cho trớc là hợp lệ. Thực tế, rất khó có đợc sự đồng bộ hồn hảo nên
phải cho phép có khoảng thay đổi nào đó về thời gian.


<i><b>Hình 8.5: Trao đổi khoá Diffie - Hellman</b></i>


<b>8.4 Trao đổi khoá Diffie - Hellman</b>


Nếu ta khơng muốn dùng dịch vụ khố trực tiếp thì buộc phải dùng giao
thức thoả thuận khố để trao đơỉ khố mật. Trớc hết, giao thức thoả thuận khoá
nổi tiếng nhất là giao thức trao đổi khoá Diffie - Hellman. Giả sử rằng, p là số
nguyên tố,  là phần tử nguyên thuỷ của ZP và chúng đều là những tham số cơng


khai. Giao thức trao đổi khố Diffie - Hellman đợc đa ra trong mục 8.5.
Cuối giao thức, U và V tính ra cùng một khố:


Giao thức này cũng tơng tự với sơ đồ phân phối khoá trớc của Diffie
-Hellman đã mô tả trớc đây. Sự khác nhau ở chỗ các số mũ aU, aV của U và V đều


đợc chọn lại mỗi lần thực hiện giao thức thay vì cố định. Cũng nh vậy, trong giao
thức này, cả U lẫn V đều đợc đảm bảo khố tơi vì khố session phụ thuộc vào cả
hai số mũ ngẫu nhiên aU và aV.


<i><b>8.4.1 Giao thøc tr¹m tíi tr¹m.</b></i>


Trao đổi khố Diffie - Hellman đợc đề xuất nh sơ đồ sau:


(Sơ đồ)


Đáng tiếc là giao thức dễ bị tổn thơng trớc đối phơng tích cực - những ngời
sử dụng tấn công “kẻ xâm nhập vào giữa cuộc” (Intuder - in -middle - attack). Đó
là tình tiết của vở “The Lucy show”, trong đó nhân vật Vivian Vance đang dùng
bữa tối với ngời bạn, còn Lucille Ball đang trốn dới bàn. Vivian và ngời bạn của
cô nắm tay nhau dới bàn. Lucy cố tránh bị phát hiện đã nắm tay của cả hai ngời,
còn hai ngời vẫn nghĩ rằng họ đang nắm tay nhau.


Cuộc tấn công kiểu “kẻ xâm nhập giữa cuộc” trên giao thức trao đổi khoá
Diffie - Hellman cũng nh vậy. W sẽ chặn bắt đợc các bức điện trao đổi giữa U và
V và thay thế bằng các bức điện của anh ta nh sơ đồ di õy:


(s )


Tại thời điểm cuối của giao thức, U thiết lập thực sự khoá mật <i>aUaV</i>
<i>'</i>


cùng
với W, còn V thiÕt lËp kho¸ mËt <i><sub>α</sub>aU</i>


<i>'</i>


<i>aV</i> với W. Khi U cố giải mã bức điện để gửi
cho V, W cũng có khả năng giải mã nó song V khơng thể, (tơng tự tình huống
nắm tay nhau nếu V gửi bức điện cho U).


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

đến việc không bảo vệ đợc trớc tấn công kẻ xâm nhập giữa cuộc nếu W vẫn duy
trì một cách đơn giản sự tấn công thụ động cho đến khi U và V đã chứng minh
danh tính của họ cho nhau. Vì thế giao thức thoả thuận khố tự nó cần xác thực


đợc các danh tính của những ngời tham gia cùng lúc khố đợc thiết lập. Giao
thức nh vậy đợc gọi là giao thức thoả thuận khố đã xác thực.


Ta sẽ mơ tả một giao thức thoả thuận khoá là cải tiến của sơ đồ trao đổi
khoá Diffie - Hellman. Giao thức giả thiết số nguyên tố p và phần tử nguyên thuỷ
 là cơng khai và nó dùng với các dấu xác nhận. Mỗi ngời sử dụng U sẽ có một
sơ đồ chữ kí với thuận tốn xác minh <i>verU</i>. TA cũng có sơ đồ chữ kí với thuật
tốn xác minh cơng khai <i>ver</i>TA. Mỗi ngời sử dụng U có dấu xác nhận:


C(U) = (ID(U), <i>ver</i>U, <i>sig</i>TA(ID(U), <i>ver</i>U))


Trong đó ID(U) là thơng tin định danh cho U


<i><b>Hình 8.6 Giao thức trạm tới trạm đơn giản.</b></i>


Thoả thuận khoá đã xác thực do Diffie - Hellman, van Oorschot và Viener
đa ra đợc gọi là giao thức trạm đến trạm (viết tắt là STS). Giao thức đa ra trên
hình 8.6 đơn giản hơn một chút: nó có thể đợc dùng để có thể phù hợp với các
giao thức của ISO 9798-3.


Thông tin đợc trao đổi trong sơ đồ STS đã đơn giản hoá (gồm cả các dấu
xác nhận) đợc minh hoạ nh sau:


(sơ đồ)


Ta hÃy xem cách bảo vệ này trớc tấn công kẻ xâm nhập giữa cuộc. Nh trớc đây,
W sẽ chặn bắt <i>aU</i> và thay nó bằng


<i><b>8.4.2. Các giao thức thoả thuận khoá MTI</b></i>



Matsumoto, Takashima v Imai ó xõy dng vài giao thức thoả thuận khoá
đáng chú ý bằng cách biến đổi giao thức trao đổi khoá của Diffie - Hellman. Các
giao thức này đợc gọi là MTI. Giao thức này khơng địi hỏi U và V phải tính bất
kì chữ kí nào. Chúng là các giao thức hai lần vì chỉ có hai lần truyền thơng tin
riêng biệt (một từ U đến V và một từ V đến U). Trái lại, giao thức STS đợc gọi là
giao thức ba ln<i><b>.</b></i>


<i><b>Hình 8.7: Giao thức thoả thuận khoá MTI.</b></i>


Ta ó a ra một trong các giao thức MIT. Việc thiết lập chúng giống nh
giao thức phân phối khoá trớc Diffie – Hellman. Giả thiết số nguyên tố p và
phần tử nguyên thuỷ  là công khai. Mỗi ngời sử dụng U đều có chuỗi ID(U), số
mũ mật aU (0  aU  p-2) và giá trị cơng khai tơng ứng:


TA có sơ đồ chữ kí với thuật tốn xác minh (cơng khai) <i>ver</i>TA v thut toỏn


kí mật <i>sig</i>TA.


Mỗi ngời sử dụng U sÏ cã dÊu x¸c nhËn:


C(U) = (ID(U), bU, <i>sig</i>TA(ID(U), bU)).


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Giao thức thoả thuận khoá MTI đợc đa ra trên hình 8.7. Cuối giao thức U
và V u tớnh cựng mt khoỏ:


K =


Dới đây là ví dụ minh hoạ giao thức này:


<i>Ví dụ 8.3.</i>



Gi s p = 27803,  = 5. Giả sử U chọn aU = 21131: sau đó cơ ta tính:


bU = 521131 mod 27803 = 21420.


đợc đóng trên giấy xác nhận của cơ. Cũng nh vậy, V chọn aV = 17555. Sau


đó anh ta sẽ tính:


bV =517555 mod 27803 = 17100.


đợc dặt trên giấy xác nhận của anh.


Bây giờ giả sử rằng U chọn rU =169, sau đó cơ gửi giá trị:


sU = 5169 mod 27803 = 6268.


đến V. Lúc đó giả sử V chọn rV = 23456, sau đó anh ta gửi giá trị:


sU = 523456 mod 27803 = 26759


đến U.


B©y giê U tÝnh kho¸:
KU,V =


= 626817555<sub> 21420</sub>23456<sub> mod 27803</sub>


= 21600.



Nh vậy, U và V đã tính cùng một khóa. …


Thơng tin đợc truyền trong giao thức đợc miêu tả nh sau:
(sơ đồ)


Hãy xét độ mật của sơ đồ. Khơng khó khăn nhận thấy rằng, độ mật của
giao thức MTI trớc tấn công thụ động đúng bằng bài toán Diffie – Hellman.
Cũng nh nhiều giao thức, việc chứng minh tính an tồn trớc tấn cơng chủ động
khơng phải đơn giản, chúng ta sẽ không thử chứng minh bất cứ điều gì về điều
này và tự hạn chế n mt s i s khụng hỡnh thc.


Đây là một mèi nguy hiĨm cã thĨ xem xÐt: Khi kh«ng dïng chữ kí trong
suốt quá trình thực hiện giao thức, có thể xuất hiện tình huống không có sự bảo
vệ nào trớc tấn công xâm nhập vào điểm giữa. Quả thực, có khả năng W có thể
chọn các giá trị mà U và V gửi cho nhau. Dới đây mô tả mét t×nh hng quan
träng cã thĨ xt hiƯn:


(sơ đồ)


Trong trêng hợp này, U và V sẽ tính các khoá khác nhau: U tÝnh
K =


Trong khi đó V tính:
K =


Tuy nhiên, W khơng thể tính tốn ra khố của U và V vì chúng địi hỏi
phải biết số mũ mật aU và aV tơng ứng. Thậm chí ngay cả khi U và V tính ra các


khố khác nhau (mà dĩ nhiên là khơng dùng chúng) thì W cũng khơng thể tính
đ-ợc khố nào trong chúng. Nói cách khác, cả U lẫn V đều đđ-ợc bảo đảm rằng, ngời


sử dụng khác trên mạng chỉ có thể tính đợc khố mà họ tính đợc. Tính chất này
đơi khi đợc gọi là <i>xác thc khoỏ n (implicit key authentication)</i>


<i><b>8.4.3 Thoả thuận khoá dùng các khoá tự xác nhận</b></i>


Trong phần này, ta mô tả một phơng pháp thoả thuận khoá do chính Girault
đa ra không cần dấu xác nhận. Giá trị của khoá công khai và danh tính ngời sở
hữu nó sẽ ngầm xác thùc lÉn nhau.


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Nhóm nhân Zn* là đẳng cấu với Zp*Zq*. Bậc cực đại của phần tử bất kì trong Zn*


bëi vËy lµ béi chung nhá nhÊt cđa p - 1 và q - 1, hoặc 2p1q1. Cho là phân tử có


bc 2p1q1. Khi ú nhúm cyclic của Zn* do  tạo ra là thiết lập thích hp ca bi


toán logarithm rời rạc.


Trong s Girault, ch TA biết đợc phân tích nhân tử của n. Các giá trị n
và  là công khai, song p, q, p1 và q1 đều là mật. TA chọn số mũ mã cơng khai


RSA, kÝ hiƯu lµ e. Sè mị giải mà tơng ứng bí mật là d (nhớ rằn d = e-1<sub>mod (n)).</sub>


Mỗi ngời sử dụng U có một chuỗi ID(U) nh trong các sơ đồ trớc đây. U
nhận đợc khố tự xác nhận cơng khai pU từ TA nh nêu trên hình 8.8. Nhận xét


rằng, U cần TA giúp đỡ để tạo pU. Cũng chú ý rằng:


bU = pUe + ID(U) mod n


<i><b>H×nh 8.8: NhËn kho¸ tù x¸c nhËn tõ TA</b></i>



1. U chän sè mị mật aU và tính:


bU =


2. U đa aU và bU cho TA


3. TA tÝnh:


pU = (bU - ID(U))d mod n


4. TA đa pU cho U


Có thể tính từ pU và ID(U) bằng thông tin công khai có sẵn.


Giao thc tho thuận khố Girault đợc đa ra trên hình 8.9. Thơng tin truyền đi
trong giao thức nh sau:


U V


Cuèi giao thøc, U và V tính khoá:


<i>K</i>=<i>rUaV</i>+<i>rVaU</i>mod<i>n</i>


Di õy l mt vớ d về trao đổi khố trong sơ đồ Girault.


<i>VÝ dơ 8.4:</i>


Giả sử p =839, q = 863. Khi đó n = 724057 và (n) = 722356. Phần tử =5
có bậc 2p1q1 = (n)/2. Giả sử TA chọn d = 125777 làm số mũ giải mã RSA, khi



đó e = 84453.


Giả sử U có ID(U) = 500021 và aU = 111899. Khi đó bU = 488889 và pU


=650704. Cũng giả thiết rằng V có ID(V) = 500022 và aU = 123456. Khi đó bV =


111692 vµ pV = 683556.


Bây giờ U và V muốn trao đổi khoá. Giả sử U chọn rU =56381, nghĩa là


sU=171007. TiÕp theo, gi¶ sư V chän rV = 356935, nghÜa lµ sV =320688.


Khi đó cả U lẫn V sẽ tính cùng một khố K = 42869.


<i><b>Hình 8.9: Giao thức thoả thuận khoá của Girault</b></i>


1. U chọn rU ngẫu nhiên và tính


su =


2. U gưi ID(U), pU vµ sU cho V.


3. V chän rV ngẫu nhiên và tính


sV = <i>rV</i>mod<i>n</i>


4. V gửi ID(V), pV vµ sV cho U


5. U tÝnh:



K = <i>pV</i>
<i>e</i>


+ID(<i>V</i>)¿<i>rU</i>mod<i>n</i>


<i>s<sub>V</sub>aU</i>
¿
Vµ V tÝnh:


ID(U), pU,


<i>αrU</i>mod<i>n</i>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

K = <i>pU</i>
<i>e</i>


+ID(<i>U</i>)¿<i>rv</i>mod<i>n</i>


<i>s<sub>U</sub>aV</i>
¿


Xét cách các khoá tự xác thực bảo vệ chống lại một kiểu tấn cơng. Vì các giá trị
bU, pU và ID(U) khơng đợc TA kí nên khơng có cách nào để ai đó xác minh trực


tiếp tính xác thực của chúng. Giả thiết thông tin này bị W - ngời muốn giả danh
U - giả mạo (tức là không hợp tác với TA để tạo ra nó). Nếu W bắt đầu bằng
ID(U) và giá trị giả b’


U. Khi đó khơng có cách nào để cơ ta tính đợc số mũ a’U



t-¬ng øng với b


U nếu bài toán logarithm rời rạc khó giải. Kh«ng cã a’U, W kh«ng


thể tính đợc khố.


Tình huống tơng tự nếu W hoạt động nh kẻ xâm nhập giữa cuộc. W sẽ có
thể ngăn đợc U và V tính ra khố chung, song W khơng thể đồng thời thực hiện
các tính tốn của U và V. Nh vậy, sơ đồ cho khả năng xác thực ngầm nh giao thức
MTI.


Bạn đọc có thể tự hỏi tại sao U đợc yêu cầu cung cấp các giá trị aU cho TA.


Qu¶ thùc, TA cã thĨ tÝnh pU trùc tiÕp tõ bU mµ không cần biết aU song điều quan


trng õy l TA sẽ đợc thuyết phục rằng, U biết aU trớc khi TA tính pU cho U.


Điểm này đợc minh hoạ bằng cách chỉ ra sơ đồ có thể bị tấn tơng nếu TA
phát bừa bãi các khố cơng khai pU cho những ngời sử dụng mà khơng kiểm tra


tríc hÕt xem họ có sở hữu các aU tơng ứng với các bU của họ hay không. Giả sử


W chọn một giá trị giả a


U và tính giá trị tơng ứng:


<i>b<sub>U</sub>'</i> =<i>αaU</i>
<i>'</i>



mod<i>n</i>


Đây là cách anh ta có thể xác định khố công khai tơng ứng
p’


U =(b’U - ID(U))d mod n


W sÏ tÝnh:
p’


W = b’W - ID(U) + ID(W)


và sau đó đa b


W và ID(W) cho TA. Giả sử TA phát ra khoá công khai


p


W =(bW - ID(W))d (mod n)


cho W. Nhờ dïng yÕu tè:
b’


W - ID(W)  b’U - ID(U) (mod n)


cã thĨ suy ra r»ng: p’


W = p’U.


Ci cïng, gi¶ sử U và V thực hiện giao thức còn W thay thÕ th«ng tin nh


sau:


U V W


XÐt thÊy V sÏ tÝnh kho¸:


<i>K'</i>=<i>αrU'av</i>+<i>rvaU'</i> mod<i>n</i>
trong khi U sÏ tÝnh kho¸


<i>K</i>=<i>αrUav</i>+<i>rvaU</i>mod<i>n</i>
W cã thĨ tÝnh K’<sub> nh sau:</sub>


<i>p<sub>V</sub>e</i>+ID(<i>V</i>)¿<i>rU'</i> mod<i>n</i>


<i>K'</i>=<i>sa<sub>v</sub>U</i>
<i>'</i>


¿


Nh vậy, W và V chia sẻ nhau một khoá, song V nghĩ anh ta đang chia khoá với
U. Nh vậy, W sẽ có thể giải mã đợc bức điện mà V gi cho U.


<b>8.5 Các chú ý và tài liệu tham kh¶o.</b>
ID(U), pU,


ID(V), pV,


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Blom đã đa ra sơ đồ phân phối khố của ơng trong [BL85]. Các bài báo có
tính chất tổng quát hoá cũng có trong một số bài báo khác của ông
[BDSHKVY93] và của Beimel và Chor [BC94].



Diffie và Hellman đa ra thuật toán trao đổi khoá của họ trong [DH76]. ý
t-ởng về trao đổi khoá cũng đợc Merkle đa ra độc lập trong [ME78]. Những ý kiến
về trao đổi khoá xác thực đợc lấy từ Diffie, Van Oorschot và Wiener [DVW92].


Phiên bản thứ 5 về Kerobos đợc mơ tả trong [KN93]. Cịn bài báo gần đây
nhất về Kerobos xem trong [SC94] của Schiller.


Các giao thức của Matsumoto, Takashima và Imai có thể tìm thấy trong
[MTI86]. Phân phối khoá tự xác nhận đợc giới thiệu trong Girault [GIR91]. Sơ đồ
mà ông đa ra thực sự là sơ đồ phân phối khoá trớc: Bản cải tiến sơ đồ thoả thuận
khoá dựa trên [RV94].


Hai tổng quan gần đây vỊ ph©n phèi khoá và thoả thuận khoá là của
Rueppel vµ Van Oorschot [RV94] vµ Van Tilburg [VT93].


<b>Bµi tËp</b>


8.1 Giả sử sơ đồ Blom với k =1 đợc thực hiện cho tập 4 ngời sử dụng, U, V, W và
X. Giả thiết p = 7873, rU = 2365, rV =6648, rW = 1837 còn rX = 2186. Các đa thức


mËt g nh sau:


gU(x) = 6018 + 6351x


gV(x) = 3749 + 7121x


gW(x) = 7601 + 7802x


gX(x) = 635 + 6828x



a/ Tính khoá cho mỗi cặp ngời sử dụng, xác minh rằng mỗi cặp nhận đợc một
khoá chung (nghĩa là KU,V = KV,U v.v...)


b/ Chỉ ra cách W và X cïng nhau tÝnh kho¸ KV,U


8.2 Giả thiết sơ đồ Blom với k = 2 đợc thực hiện cho tập 5 ngời sử dụng U, V, W,
X và Y. Giả thiết p = 97, rU = 14, rV = 38, rW = 92, rX =69 còn rY = 70. Các đa thức


mËt g nh sau:


gU(x) = 15 + 15x + 2x2


gV(x) = 95 + 77x + 83x2


gW(x) = 88 + 32x + 18x2


gX(x) = 62 + 91x + 59x2


gY(x) = 10 + 82x + 52x2


a/ Chỉ ra cách U và V tÝnh kho¸ KU,V = KV,U


b/ ChØ ra c¸ch W, X và Y cùng nhau tính khoá KU,V


<i><b>Hình 8.10: Bài toán MTI</b></i>


<i>Bài toán:</i> I =(p, , , , , ) trong đó p là số nguyờn t, Z*


P là phần tử



nguyên thuỷ còn , , , Z*
P


<i>Mục tiêu: </i>Tính <i><sub>β</sub></i>log<i>αγδ</i>log<i>αε</i>mod<i>p</i>


8.3. Giả thiết U và V tiến hành trao đổi khoá theo sơ đồ Diffie - Hellman với p =
27001 và  = 101. Giả sử U chọn aU = 21768 và V chọn aV = 9898. Hãy chỉ ra


các tính tốn mà U và V thực hiện và xác định khố mà họ tính đợc.


8.4. Giả thiết U và V tiến hành giao thức MTI với p = 30113,  = 52. Giả sử U có
aU = 12385. Hãy chỉ ra các tính tốn mà cả U và V thực hiện và xác định khố


mà họ tính đợc.


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

8.6. Xét sơ đồ định danh Girault trong đó p = 167, q = 179 và vì thế n = 29893.
Giả sử  = 2 và e = 11101.


a/ TÝnh d.


b/ Cho tríc ID(U) = 10021 vµ aU = 9843, tÝnh bU vµ pU. Cho tríc ID(V) = 10022


vµ aV = 7692, h·y tÝnh bV vµ pV


c/ Chỉ ta cách có thể tính bU từ pU và ID(V) bằng cách dùng số mũ công khai e.


T-ơng tự, chỉ ra cách tính bV từ pV và ID(V).


d/ Giả sử U chọn ra rU = 15556 và V chän ra rV = 6420. H·y tÝnh sU vµ sV vµ chØ



</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×