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

Hệ phân phối khóa blom

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 (90 KB, 10 trang )

Nhóm 15

Sơ đồ phân phối khóa Blom

Mục lục

1


Nhóm 15

Sơ đồ phân phối khóa Blom

Lời nói đầu
Trong chương trình học chúng ta đã được làm quen với các phương
pháp mã hóa và các bài toán quan trọng khác liên quan đến việc truyền tin
bảo mật trên các mạng truyền tin công cộng nói chung. Ta cũng đã thấy
rằng các hệ mật mã khóa công khai có nhiều ưu việt hơn các hệ mật mã
khóa đối xứng trong việc trong việc làm nền tảng cho các giải pháp an toàn
thông tin, và đặc biệt nếu đối với các hệ mật mã khóa đối xứng việc thực
hiện đòi hỏi những kênh bí mật để chuyển khóa hoặc trao đổi khóa giữa các
đối tác, thì về nguyên tắc, đối với các hệ mật mã khóa công khai, không cần
có những kênh truyền bí mật như vậy, vì các khóa công khai có thể được
truyền hoặc trao đổi cho nhau một cách công khai qua các kênh truyền tin
công cộng. Tuy nhiên, trên thực tế, để đảm bảo cho các hoạt động thông tin
được thật sự an toàn, không phải bất cứ thông tin nào về các khóa công
khai của một hệ mật mã, của một thuật toán kiểm thử chữ ký, của một giao
thức xác nhận thông báo hay xác nhận danh tính, …vv cũng phát công khai
một cách tràn lan trên mạng công cộng, mà dẫu là công khai nhưng người
ta cũng mong muốn là những ai cần biết thì mới nên biết mà thôi.
Do đó, dẫu là dùng các hệ có khóa công khai, người ta cũng muốn có


những giao thức thực hiện việc trao đổi khóa công khai, người ta cũng
muốn có những giao thức thực hiện việc trao đổi khóa giữa những đối tác
thực sự có nhu cầu giao lưu thông tin với nhau, kể cả trao đổi khóa công
khai. Việc trao đổi khóa giữa các chủ thể trong một cộng đồng nào đó có
thể được thiết lập một cách tự do giữa bất cứ hai người nào khi có nhu cầu
trao đổi thông tin, hoặc có thể được thiết lập một cách tương đối lâu dài
trong một thời hạn nào đó trong cả cộng đồng với sự điều phối của một cơ
quan được ủy thác (mà ta ký hiệu là TA – trusted authority). Việc trao đổi
khóa trong trường hợp thứ nhất là thỏa thuận khóa, còn trong trường hợp
thứ hai ta gọi là phân phối khóa, TA là nơi thực hiện việc phân phối, cũng
2


Nhóm 15

Sơ đồ phân phối khóa Blom

tức là nơi quản trị khóa. Việc thỏa thuận khóa nói chung không cần có sự
tham gia của một TA nào và chỉ có thể xảy ra khi các hệ bảo mật mà ta sử
dụng là hệ có khóa công khai, còn việc phân phối khóa thì có thể xảy ra đối
với các trường hợp sử dụng các hệ khóa đối xứng cũng như các hệ có khóa
công khai. Việc phân phối khóa với vai trò quản trị khóa của một TA là một
việc bình thường, đã tồn tại từ rất lâu trước khi có các hệ mật mã khóa công
khai.
Ta sẽ được tìm hiểu một trong các hệ phân phối khóa, đó là :“Hệ phân
phối khóa Blom”.

3



Nhóm 15

Sơ đồ phân phối khóa Blom

Ý tưởng chính.

I.

Giả thiết có một mạng gồm n ngườidùng.
Giả sử rằng các khóa được chọn trên trường hữu hạn Zp (số nguyên tố
p≥n).
Chọn số nguyên k, (1nhất, mà sơ đồ vẫn duy trì được độ mật.
Trung tâm được ủy quyền (TA) phải thiết kế một sơ đồ phân phối
khóa để thực hiện được các yêu cầu sau:
Tryền đi (k+1) phần tử Zp, cho mỗi người dùng trên kênh an toàn.
(Theo phương pháp phân phối thong thường, TA phải truyền đi n-1
phần tử).
Mỗi cặp người dùng U và V phải có khả năng tính được khóa
chung Ku,v = Kv,u.
Bảo đảm điều kiện an toàn sau: tập bất kỳ gồm nhiều nhất k
người dùng không liên kết với U và V, thì khó có thể xác định được bất
kì thông tin nàovề Ku,v.

II. Sơ đồ phân phối khóa Blom.
Giả sử một mạng gồm có n người dùng và mỗi người dùng đó đều có
nhu cầu trao đồi thông tin bí mật với mọi người trong mạng. Giả sử sơ
đồ mật mã được sử dụng là một sơ đồ mật mã khóa đối xứng (chẳng hạn
n(n − 1)
như DES). Toàn bộ mạng cần có

khóa khác nhau cho chừng ấy
2
cặp người dùng khác nhau trong mạng. Một trung tâm được ủy quyền
(TA) quản lý chừng ấy cặp người dùng (n-1) khóa chung với (n-1)
người còn lại trong mạng, như vậy TA phải truyền bằng những kênh bí
mật tất cả là n(n-1) lượt khóa đến tất cả n người dùng.
Năm 1985, Blom đề nghị một sơ đồ phân phối khóa, mà sau đây ta gọi
là sơ đồ phân phối khóa Blom.
Sau đây là trình bày sơ đồ trong trường hợp k=1
1.
Công khai số nguyên tố p của hệ thống, mỗi cá thể U công khai
giá trị rU ∈ Zp, giá trị này của mọi người là khác nhau.
2.
TA lấy ba giá trị ngẫu nhiên a,b,c ∈Zp (không cần phải khác
nhau), sau đó xây dựng đa thức:

f ( x, y ) = a + b( x + y ) + cxy mod p
3.

TA xác định rồi chuyển cho mỗi người dùng U một đa thức
4


Nhóm 15

Sơ đồ phân phối khóa Blom

gU ( x ) = f ( x, rU ) = aU + bU x mod p
trong đó
4.


aU = a + brU mod p, bU = b + crU mod p

U và V muốn truyền tin với nhau, hai người sẽ dùng khóa chung

KU ,V = KV ,U = f (rU , rV ) = a + b(rU + rV ) + crU .rV mod p
Trong đó U tính KU,V bằng

f (rU , rV ) = gU (rV )
Còn V tính KU,V

f (rU , rV ) = gV (rU )

III. Các đặc điểm và đặc trưng của sơ đồ phân phối
khóa Blom với k=1.
a.

Sơ đồ với k=1 an toàn với một người dùng.
Sơ đồ Blom với k=1 là an toàn tuyệt đối với bất kỳ người dùng nào.
Thật vậy, giả sử nếu W là một thành viên của hệ thống muốn tính

khóa của U, V
KU ,V = KV ,U = f (rU , rV ) = a + b(rU + rV ) + crU .rV mod p

W có thể biết các giá trị công khai r U, rV cộng thêm những giá trị aW,
bW TA gửi cho W, còn a,b,c thì không thể biết được :

aW = a + brW mod p, bW = b + crW mod p
Với những thông tin mà W có thì giá trị bất kỳ l ∈Zp đều có thể là
khóa KU,V. Xét hệ phương trình được biểu diễn bởi ma trận (trong Z p)

như dưới đây :

 1 rU + rV

rW
1
0
0


rU rV   a  1 
÷ ÷  ÷
0 ÷ b ÷ =  aW ÷
÷  ÷
rW ÷
  c   bW 

Phương trình đầu tiên chính là giả thiết K U,V =l ; phương trình thứ hai
và thứ ba là những thông tin mà W biết. Định thức của ma trận này là

5


Nhóm 15

Sơ đồ phân phối khóa Blom

rW2 + rU rV − (rU + rV )rW = (rW − rU )(rW − rV )
(các phép toán ở đây đều được thực hiện trong Z p). Do rW ≠ rU và rW ≠
rV , nên định thức trên khác không, do đó hệ phương trình có duy nhất

nghiệm a,b,c. Hay nói cách khác với những thông tin mà W có thì giá
trị l bất kỳ đều có thể là khóa KU,V của U và V.
b. Sơ đồ với k=1 không an toàn với trường hợp nhiều hơn một
người dùng.
Xét trường hợp với hai thành viên W và X.
Nếu hai thành viên W, X nào đó sao cho {W,X} ∩ {U,V} = Ø liên
minh với nhau thì họ có thể xác định được a,b,c. Thật vậy hệ phương
trình :
aW = a + brW

bW = b + crW

a X = a + brX
bX = b + brX
sẽ có duy nhất nghiệm a,b,c. Một khi họ đã xác định được các giá trị
này thì họ sẽ tính được tất cả các khóa của hai bên nào đó.

IV. Ví dụ minh họa sơ đồ phân phối khóa Blom với
k=1.
1. Giả sử có 3 người dùng là U, V và W. Chọn công khai số nguyên
tố p=17
Các phần tử công khai của họ tương ứng là rU = 12, rV = 7,rW =1.
2. TA chọn ngẫu nhiên, bí mật a=8, b=7, c=2, chọn đa thức f là :

f ( x, y ) =8 +7( x + y ) +2 xy mod17
3. TA tính các đa thức và gửi cho U, V, W tương ứng là :
gU ( x ) = f ( x,12) = 8 + 7 *( x + 12) + 2* x *12) mod17 = 7 + 14* x
gV ( x ) = f ( x, 7) = 8 + 7 *( x + 7) + 2 * x *7) mod17 = 6 + 4 * x
g W ( x ) = f ( x,1) = 8 + 7 *( x + 1) + 2* x *1) mod17 = 15 + 9* x
6



Nhóm 15

Sơ đồ phân phối khóa Blom

Khi U và V muốn liên lạc với nhau, mỗi người tự tính khóa chung :
U tính :
KU ,V = gU (rV ) = f (rV , rU ) = (a + b(rV + rU ) + crV .rU ) mod p
= 7 + 14*7 mod17 = 3
V

tính :

KU ,V = gV (rU ) = f (rU , rV ) = (a + b (rU + rV ) + crU .rV ) mod p

= 6 + 4*12 mod17 = 3
3 khóa tương ứng với 3 cặp người dùng là :
KU ,V = f (rU , rV ) = (8 + 7 *(12 + 7) + 2 *12 *7) mod17 = 3
KU ,W = f (rU , rW ) = (8 + 7 * (12 + 1) + 2*12 *1) mod17 = 4

KV ,W = f (rV , rW ) = (8 + 7 *(7 + 1) + 2* 7 *1) mod17 = 10

V.

Sơ đồ phân phối khóa Blom với k tùy ý.
Dựa vào sơ đồ phân phối khóa Blom với k=1 ở trên, ta có thể mở
rộng sơ đồ Blom với k>1 tổng quát. Trong đó mọi khóa chung K U,V
của hai người dùng U và V là bí mật hoàn toàn đối với bất kỳ liên
minh nào gồm k người U và V, nhưng không còn là bí mật đối với mọi

liên minh gồm k+1 người tham gia trong mạng. Muốn vậy, ta chỉ cần
thay đa thức f(x,y) nói trên bằng một đa thức đối xứng bậc 2k sau đây :
k

k

f ( x, y ) = ∑∑ aij x i y j mod p ,
i =0 j =0

trong đó ai j ∈ Z p , 0 ≤ i, j ≤ k , ai j = a ji với mọi i,j.

VI. Code chương trình.
(Chương trình được code bằng ngôn ngữ php)
<?php session_start(); ?>

Giao thức phân phối khóa Blom với k=1


<form action='index.php' method='post'>
<b>Nhập vào số lượng người dùng (n)
</b>
<input type='text' name='n'/>

7


Nhóm 15

Sơ đồ phân phối khóa Blom

<input type='submit'/>
</form>

if(isset($_POST["n"]) && ($_POST["n"] != 0))
{
$p = 0;
$c = 0;
while ($p == 0) {
for( $i=2; $i<($_POST["n"] + $c); $i++) {
if((($_POST["n"] + $c) % $i) == 0)
break;
if(($_POST['n'] + $c - 1) == $i) {
$p = $_POST['n'] + $c;
$_SESSION['p'] = $p;
echo "<b>1.</b> Ta chọn số nguyên tố
<b>p</b> thỏa mãn <b>p>=n</b> là: <b>" . $p . "</b>
";
}
}
$c = $c + 1;
}
echo "<b>2.</b> Mỗi người dùng <b>U</b> Chọn 1 phần tử
<b>r<sub>u</sub></b> (<u>công khai</u>, khác nhau) :
";
$ru = array();
while(count($ru) < $_POST['n']) {
$num = rand(1, $p);
if(!in_array($num,$ru)) {
$ru[] = $num;
$c = count($ru);
echo "<b>r<sub>u$c</sub></b> = ".$num. "
";
}

}
echo "<b>3.</b> Ta chọn ngẫu nhiên <u>bí mật</u> 3 phần tử
<b>a, b, c</b>:
";
$a = rand(1, $p);
echo "<b>a</b> = ".$a."
";
$b = rand(1, $p);
echo "<b>b</b> = ".$b."
";
8


Nhóm 15

Sơ đồ phân phối khóa Blom

$c = rand(1, $p);
echo "<b>c</b> = ".$c."
";
echo "và chọn đa thức <b>f(x,y) = ($a + $b * (x + y) + $c * x *
y) mod $p</b>
";
echo "<b>4. </b>Với mỗi người dùng <b>U</b>, tính đa
thức:
";
echo "<b>g<sub>u</sub>(x) = f( x, r<sub>u</sub>) mod p</b>
và truyền <b>g<sub>u</sub>(x)</b> đến <b>U</b> trên kênh an
toàn
";

foreach($ru as $key => $value) {
$au = ($a + $b*$value)% $p;
$bu = ($b + $c*$value)% $p;
echo "g<sub>u".($key+1)."</sub>(x) = ($a + $b * (x +
$value) + $c * x * $value) mod $p = <b>$au + $bu*x</b>
";
}
echo "<b>5. </b>Nếu U và V muốn liên lạc với nhau, mỗi
người phải tự tính khóa chung:
";
echo
"<b>K<sub>u,
v</sub>
=
g<sub>u</sub>(r<sub>v</sub>)
=
f(r<sub>v</sub>,
r<sub>u</sub>)</b>
";
echo "<b>K<sub>v, u</sub> = g<sub>v</sub>(r<sub>u</sub>)
= f(r<sub>u</sub>, r<sub>v</sub>)</b>
";
echo "Do tính chất đối xứng của đa thức f(x, y) nên
<b>K<sub>v, u</sub> = K<sub>v, u</sub> </b>";
}
?>

VII. Lời kết.
Do thời gian và kiến thức có hạn nên bản báo cáo không thể tránh
được những thiếu xót, nhóm chúng em rất mong nhận được phản hồi

và góp ý từ cô và các bạn để đề tài hoàn thiện hơn.
Nhóm xin chân thành cảm ơn !

9


Nhóm 15

Sơ đồ phân phối khóa Blom

Tài liệu tham khảo
Giáo trình An toàn và bảo mật thông tin(Tác giả: Hà Thị ThanhNguyễn Văn Tảo)
hTAp://www.scribd.com/doc/51781842/22/Hinh-2-8-S%C6%A1%C4%91%E1%BB%93-phan-ph%E1%BB%91i-khoa-Blom-k-1
hTAp://vi.scribd.com/doc/51781842/23/H%E1%BB%87-phan-ph
%E1%BB%91i-khoa-Kerberos
hTAp://timtailieu.vn/tai-lieu/giao-trinh-an-toan-va-bao-mat-thongtin-dh-giao-thong-2504/
hTAp://vi.scribd.com/doc/51781842/24/H%E1%BB%87-phan-ph
%E1%BB%91i-khoa-Diffie-%E2%80%93-Hellman
hTAp://en.wikipedia.org/wiki/Blom%27s_scheme

10



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

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