Sự tiền phân bố khĩa:

Một phần của tài liệu Tìm hiểu được một số giải thuật chính như DES, ECB, CBC, RSA, MD5 (Trang 36 - 39)

2. Phân bố các khĩa bảo mật

2.1.Sự tiền phân bố khĩa:

- Đối với mạng n user, TA phải tạo và truyền n(n-1) khĩa. Nếu n lớn, giải pháp này rất khơng thực tế vì phải đảm bảo lượng thơng tin được truyền một cách bảo mật và lượng thơng tin mà mỗi user phải lưu trữ một cách bí mật (tên, khĩa bí mật của n-1 user khác). Sơ đồ tiền phân bố khĩa Blom cho phép giảm lượng thơng tin mà cần để truyền và lưu trữ, trong khi vẫn cho phép mỗi cặp user U và V cĩ thể tính một cách độc lập khĩa bí mật KU,V.

2.1.1. Sơ đồ của Blom:

- Giả sử mạng cĩ n user, khĩa được chọn thuộc miền xác định Zp với p là số nguyên tố (p >= n).

- K là một số nguyên : 1 =< K <= n-2 biểu thị cho kích thước lớn nhất chống lại sự liên kết của K user mà sơ đồ vẫn cịn bảo mật.

- TA sẽ truyền K + 1 phần tử của Zp tới mỗi user qua kênh bảo mật (trong sơ đồ tiền phân bố khĩa cơ bản là n-1). Mỗi cặp user U và V sẽ cĩ thể tính khĩa KU,V = KV,U. Điều kiện bảo mật như sau: tập nhiều nhất K user khơng liên kết từ {U,V} khơng thể xác định bất kỳ thơng tin về KU,V.

- Xét trường hợp đặt biệt của sơ đồ Blom khi K=1 (hình bên): TA sẽ truyền hai phần tử thuộc Zp tới mỗi user qua kênh bảo mật và bất kỳ user riêng lẻ W sẽ khơng thể xác định bất kỳ thơng tin về KU,V nếu W khác U, V.

- Ví dụ: giả sử cĩ ba user U, V, và W, p=17, các phần tử cơng khai là rU=12, rV=7, rW=1. Giả sử rằng TA chọn a=8, b=7, c=2. Khi đĩ:

f(x,y) = 8 + 7(x+y) + 2xy gU(x) = 7 + 14x

gV(x) = 6 + 4x gW(x) =15 + 9x

KU,V = 3, KU,W = 4, KV,W = 10

. U tính KU,V như sau: KU,V = gU(rV) = 7 + 14*7 mod 17 = 3 . V tính KV,U như sau: KV,U = gV(rU) = 6 + 4*12 mod 17 = 3

Sơ đồ phân bố khĩa của Blom (K=1)

1. Số nguyên tố p được chọn cơng khai và cho mỗi user U, một phần tử rU thuộc Zp được chọn cơng khai. Các phần tử rU phải khác biệt nhau. 2. TA chọn ba phần tử ngẫu nhiên a, b, c thuộc Zp (khơng cần khác biệt) và

tính:

f(x,y) = a + b(x+y) + cxy mod p 3. Đối với mỗi user U, TA tính

gU(x) = f(x,rU) mod p

Và truyền gU(x) tới user U qua kênh bảo mật. Vì gU(x) là hàm tuyến tính theo x nên cĩ thể được ghi như sau:

gU(x) = aU + bUx Với aU = a + brU mod p

bU = b + crU mod p

4. Nếu U và V muốn truyền thơng thì chúng sử dụng khĩa KU,V = KV,U = f(rU,rV) = a + b(rU + rV) + crUrV mod p Với U tính KU,V = f(rU, rV) = gU(rV)

V tính KV,U = f(rU, rV) = gV(rU)

- Khi cĩ sự liên kết của hai user {W, X} thì cĩ thể xác định bất kỳ khĩa KU,V mà {W, X} khác {U, V}. Bởi vì W và X cùng biết:

aW = a + brW bW = b + crW aX = a + brX bX = b + crX

Với 4 phương trình 3 ẩn trên ta cĩ thể dễ dàng tính a, b, c. Từ đĩ tính được khĩa KU,V. - Để tạo sơ đồ vẫn cịn bảo mật chống lại sự liên kết của K user, TA sẽ sử dụng hàm f(x,y) cĩ dạng :

f(x,y) = ∑ ∑ ai,j xk k i yj mod p (ai,j thuộc Zp và ai,j = aj,i ) i=0

2.1.2. Diffie-Hellman:

Diffie_Hellman

1. Số nguyên tố p và phần tử đơn giản α thuộc Zp được làm cơng khai. 2. V tính

KU,V = αauav mod p = bU av mod p

Sử dụng giá trị cơng khai bU từ sự chứng thực của U, cùng với giá trị bảo mật aV của riêng mình.

3. U tính (adsbygoogle = window.adsbygoogle || []).push({});

KU,V = αauav mod p = bV au mod p

Sử dụng giá trị cơng khai bV từ sự chứng thực của V, cùng với giá trị bảo mật aU của riêng mình.

- Sơ đồ tiền phân bố khĩa này cung cấp bài tốn Diffie-Hellman quan hệ với bài tốn Discrete Logarithm là khơng thể bẻ gãy.

- Sơ đồ được xét trên Zp, với p là số nguyên tố, α là phần tử đơn giản của Zp , giá trị của p và α là cơng khai với mọi người trong mạng, ID(U) sẽ biểu thị thơng tin định danh nhất định cho mỗi user trong mạng (ví dụ: tên, địa chỉ email, số điện thoại hay các thơng tin thích hợp khác). Mỗi user U cĩ một mũ bảo mật aU (0 <= aU <= p-2) (TA khơng biết giá trị này) và giá trị cơng khai tương ứng: bU = αau mod p.

- TA sẽ cĩ một sơ đồ chữ ký với giải thuật làm rỏ (cơng khai) verTA và giải thuật chữ ký bảo mật sigTA.

- Mỗi user U khi tham gia mạng sẽ cĩ sự chứng thực: C(U) = (ID(U), bU, sigTA(ID(U), bU))

Sự chứng thực này cĩ thể được lưu trữ trong cơ sở dữ liệu cơng khai hay mỗi user cĩ thể lưu trữ sự chứng thực của riêng mình. Chữ ký của TA trên sự chứng thực cho phép bất kỳ người nào trong mạng làm rỏ thơng tin mà nĩ chứa.

Thật dễ dàng cho user U và V để tính khĩa: KU,V = α auav mod p

Ví dụ: p = 25307, α = 2

. Giả sử U chọn aU = 3578 và tính

Sau đĩ U đặt bU vào trong sự chứng thực của mình. . Giả sử V chọn aV = 19956 và tính

bV = α av mod p = 219956 mod 25307 = 7984 Sau đĩ V đặt bV vào trong sự chứng thực của mình. . Giờ đây U và V cĩ thể tính khĩa:

KU,V = bVau mod p = bUav mod p

= 79843578 mod 25307 = 611319956 mod 25307 = 3694

- Nhờ cĩ chữ ký của TA trên sự chứng thực của user nên ngăn cản một cách hiệu quả sự xâm nhập của user W khác.

Câu hỏi đặt ra là W cĩ thể tính KU,V nếu W khác U, V hay khơng? Hoặc nếu W biết bU, bV thì nĩ cĩ thể xác định KU,V hay khơng? Bài tốn này được gọi là bài tốn Diffie_Hellman.

Bài tốn Diffie_Hellman

I = (p, α, β, γ ) trong đĩ p là số nguyên tố, α thuộc Zp* là phần tử đơn giản và β, γ thuộc Zp*.

Mục tiêu : tính βlog αγ mod p (=γlog αβ mod p)

Sơ đồ tiền phân bố khĩa Diffie_Hellman là bảo mật chống lại đối phương bị động nếu và chỉ nếu bài tốn Diffie_Hellman là khĩ giải ra. Tuy nhiên việc phỏng đốn khơng chứng minh rằng bất kỳ giải thuật mà giải bài tốn Diffie_Hellman cũng cĩ thể được sử dụng để giải bài tốn Discrete Log (giống như trong giải thuật RSA , việc bẻ gãy RSA thì tương đương với việc phân tích thừa số).

Một phần của tài liệu Tìm hiểu được một số giải thuật chính như DES, ECB, CBC, RSA, MD5 (Trang 36 - 39)