VẤN ĐỀ QUẢN LÍ KHÓA

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu một số sơ đồ thỏa thuận khóa bí mật và ứng dụng trong thanh toán điện tử (Trang 34)

1.3.1.Khóa và một số khái niệm

Trong một mạng thông tin liên lạc dữ liệu, giả sử rằng một người dùng ở một máy tính đang liên lạc với một chương trình ứng dụng hay một người dùng ở một máy tính khác ở trong cùng một vùng hay ở một vùng khác, những người dùng này dùng chung một khoá (khoá chính K). Khoá K này có thể là một khoá bí mật được cung cấp và được chấp nhận trước bởi các người dùng hoặc một khoá được cấp phát động bởi hệ thống và gán cho các người dùng này, được gọi là khoá mã hoá dữ liệu hoặc khoá giải mã dữ liệu.

Ngày nay “an toàn thông tin” là nhu cầu của mọi ngành, mọi người, do các thông tin chủ yếu được truyền trên mạng công khai, vì vậy kỹ thuật mật mã là công khai cho mọi người dùng, điều bí mật ở đây là nằm ở khóa của mật mã.

Sự phân phối khoá (key distribution) đượ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 [3].

Thoả thuận khoá (key agreement) 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 một kênh truyền thông công khai [3].

TA (Trust Authority) có nhiệm vụ xác minh danh tính của người dùng, chọn và gửi khoá đến người dùng [3].

Đối phương bị động (passive adversary) là người dùng có dụng ý xấu mà hoạt động của anh ta chỉ hạn chế ở mức nghe trộm bức điện truyền trên kênh [3].

Đối phương chủ động (active adversary) nguy hiểm hơn đối phương bị động vì có thể làm nhiều hành vi xấu như:

- Thay đổi bức điện mà anh ta quan sát khi nó đang được truyền trên mạng. - Lưu bức điện cho việc sử dụng lại ở lần sau.

Mục tiêu của đối phương chủ động là:

- Lừa người dùng U và V chấp nhận 1 khoá “không hợp lệ” như là một 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).

- Làm cho U và V tin rằng họ có thể trao đổi khoá với người kia khi họ không có khoá.

1.3.2. Vấn đề quản lí khóa bí mật

Với hệ mã hóa khóa đối xứng, nếu biết được khóa mã hóa thì có thể dễ tính được khóa giải mã và ngược lại (một số hệ mã hóa khóa đối xứng có khóa lập mã và khóa giải mã trùng nhau).

Hai bên muốn liên lạc bí mật với nhau bằng hệ mã hóa khóa đối xứng phải thỏa thuận trước một khóa bí mật. Đồng nghĩa với việc hai người cùng có khóa bí mật, thông thường thì càng nhiều người nắm giữ bí mật thì độ rủi ro về an toàn thông tin càng cao.

Nếu trên mạng có n người dùng thì theo phương pháp thông thường mỗi người dùng sẽ phải quản lí n1 khóa, và tổng số khóa bí mật giữa hai người dùng nhiều nhất là  1  2 ... 2 1  1

2

n n

n n

       . Nếu n lớn thì giải pháp này không thực tế, vì lượng thông tin rất lớn cần phải truyền đi, khó đảm bảo an toàn.

Như vậy điều cần quan tâm là là giảm lượng tin truyền đi và cất giữ, trong khi vẫn cho phép người dùng U và V có chung khóa Ku v, . Do đó xuất hiện nhu cầu quản lí khóa bí mật, bao gồm các vấn đề: Phân phối khóa, thỏa thuận khóa, bảo vệ khóa bí mật.

1.3.3. Vấn đề quản lí khóa công khai

Hệ mã hóa khóa công khai (hệ mã hóa khóa bất đối xứng) có ưu điểm hơn hệ mã hóa khóa bí mật ở chỗ là có thể công khai thuật toán mã hóa và khóa lập mã (khóa công khai) cho nhiều người sử dụng, khóa bí mật (khóa giải mã) chỉ do một người quản lí, cho nên không cần kênh an toàn để thống nhất khóa bí mật (bằng phân phối khóa hay thỏa thuận khóa). Tuy nhiên hầu hết các hệ mã hóa khóa công khai đều chậm hơn các hệ mã hóa khóa bí mật. Vì thế hệ mã hóa khóa đối xứng dùng để mã hóa các bản tin dài, hệ mã hóa khóa công khai dùng để thống nhất khóa bí mật (của hệ mã hóa khóa đối xứng).

Hơn thế nữa, hệ mã hóa khóa công khai còn được dùng để tạo ra sơ đồ chữ kí số hay các giao thức phục vụ bảo đảm an toàn thông tin.

Khác với hệ mã hóa khóa bí mật, với hệ mã hóa khóa công khai, hai đối tác truyền tin an toàn không phải thống nhất khóa mật, do đó không cần phải quản lí khóa mật mà từng người dùng tự bảo vệ khóa mật của mình, nhưng họ lại có nỗi lo chung là quản lý tốt khóa công khai.

Tại sao phải quản lý tốt khóa công khai? Để hiểu rõ hơn điều này ta lấy ví dụ như sau:

Trường hợp thứ nhất: Một người dùng A có khóa bí mật a bị người dùng

B xem trộm, nếu đối tác của A vẫn dùng khóa công khai b (tương ứng với a) để mã hóa các bản tin gửi cho A thì Bcó thể xem được bản tin này (vì Bcó khóa mật

a để giải mã). Trong trường hợp này, người dùng A phải báo với các đối tác của mình rằng khóa mật a đã bị lộ, không dùng khóa công khai b để mã hóa nữa, kẻ xem trộm a sẽ xem được các bản tin mật đã mã hóa bởi khóa b. Người dùng A

Trường hợp thứ hai: Một người dùng A có khóa bí mật a bị người dùng B

xem trộm. Nếu A không thông báo với các đối tác của mình ngay, thì B sẽ dùng khóa mật a làm khóa ký lên các thông điệp giả mạo. Tuy nhiên nhờ khóa công khai

b (tương ứng với a) các đối tác của A vẫn kiểm thử được rằng đó chính là chữ ký của A. Trong trường hợp này, người dùng A phải báo với các đối tác của mình rằng khóa mật a đã bị lộ, không dùng khóa công khai b để kiểm tra chữ ký nữa. Người dùng A phải chọn cặp khóa  a b, mới và công khái khóa b mới.

Vấn đề tiếp theo đặt ra là từng người dùng phải lo quản lý khóa công khai của riêng họ, hay có cơ quan chung để quản lý khóa công khai của mọi người dùng.

Một cơ quan như vậy phải lo cấp chứng chỉ để chứng thực khóa công khai của một người dùng nào đó vẫn còn hiệu lực. Khi người dùng bị lộ khóa bí mật, họ phải báo cho cơ quan này biết, để xin được cấp chứng chỉ cho khóa công khai mới. Mọi người dùng xem chứng chỉ số, sẽ biết được khóa công khai nào còn hiệu lực, nhờ đó tránh được các tình huống như hai ví dụ trên. Hiện nay trên thế giới người ta theo xu hướng tổ chức các cơ quan như trên để quản lý khóa công khai của người dùng. Tổ chức này được gọi là cơ quan chứng thực khóa công khai (CA: Certificate Authority)

CHƢƠNG 2. MỘT SỐ SƠ ĐỒ THỎA THUẬN KHÓA BÍ MẬT 2.1. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH GỬI KHÓA BÍ MẬT

Hệ mã hóa khóa bí mật (hệ mã hóa khóa đối xứng) là hệ mã hóa có khóa lập mã và khóa giải mã là “giống nhau”, theo nghĩa biết được khóa này thì “dễ” tính được khóa kia. Vì vậy phải giữ bí mật cả hai khóa. Đặc biệt có một số hệ mã hóa có khóa lập mã và khóa giải mã trùng nhau (kdke), như hệ mã hóa “dịch chuyển” hay DES.

Khi cặp người dùng đã thống nhất có một khóa bí mật chung, thì một trong hai người chọn khóa ngẫu nhiên K, sau đó truyền nó một cách an toàn đến người kia bằng phương pháp nào đó, chẳng hạn như bằng hệ mã hóa khóa công khai, hay phương pháp “giấu tin”. Phương pháp này phải dùng nhiều thông tin truyền đi và

cất giữ, mặt khác độ an toàn thấp vì phải truyền đi “trọn vẹn” một khóa trên

mạng công khai.

2.2. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH KHÔNG GỬI KHÓA

Thỏa thuận khóa bằng hệ mã hóa khóa bí mật truyền trọn vẹn khóa trên kênh truyền, vì thế không an toàn. Phương pháp hiệu quả để thỏa thuận khóa bí mật phải đạt được hai tiêu chí sau:

- Bảo đảm an toàn thông tin về khóa mật: Tức là đảm bảo rằng thám mã khó có thể khám phá hay tráo đổi khóa mật.

- 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 dùng tính toán được khóa mật.

Theo phương pháp hiệu quả, người dùng không truyền cho nhau trên mạng trọn vẹn một khóa K, mà truyền đi “vật liệu công khai” và “cách thức” tạo khóa K đến cặp người dùng U và V.

Phương pháp này không phải dùng nhiều thông tin truyền đi và cất giữ, mặt khác độ an toàn cao, vì người dùng chỉ truyền “vật liệu công khai” và “cách thức” tạo khóa mật, chứ không truyền trực tiếp khóa mật. Thám mã có trộm được tin trên đường truyền, cũng khó tính được khóa mật vì không biết “vật liệu bí mật” của từng người dùng.

2.2.1.Sơ đồ thỏa thuận khóa Blom

2.2.1.1. Ý tưởng [3]

Giả thiết có một mạng có n người dùng, các khóa được chọn trên trường hữu hạn Zp (số nguyên tố pn).

Chọn số nguyên k, 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

Trung tâm được ủy quyền TT phải thiết kế một sơ đồ thỏa thuận khóa để thực hiện các yêu cầu sau:

Trung tâm tin cậy TT truyền đi k1 phần tử của Zp, cho mỗi người dùng trên kênh an toàn (theo phương pháp phân phối khóa thông thường thì TT 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

, ,

u v v u

KK .

Bảo đảm điều kiện an toàn: 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 hay V, thì “khó” có thể xác định được bất kỳ thông tin nào về Ku v, .

2.2.1.2. Giao thức thỏa thuận khóa Blom với k = 1

1/. Sơ đồ [3]

(1) Trung tâm được ủy quyền TT chọn số nguyên tố pcông khai pn, mỗi người dùng U chọn phần tử ruZp công khai khác nhau.

(2) TT chọn 3 phần tử ngẫu nhiên bí mật a b c, , Zp(không cần khác biệt) và chọn đa thức f x y , a b *xyc x y* * modp (ở đây k1 nên ta chọn đa thức có lũy thừa bậc 1 (tuyến tính) đối với x và y.

(3) Với mỗi người dùng U, TT tính đa thức gu xf x r , umodp và truyền gu x

đến U trên kênh an toàn.

   , mod  *  * * mod u u u u g xf x r pa bx r c x r p hay gu xaubu*x với * mod u u a  a b r p bu  b c r* umodp

(4) Nếu 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 rvf r rv, ua b *rvruc r* *v rumodp

V tính Kv u, g rv uf r ru, va b *rurvc r* *u rvmodp

Do tính chất đối xứng của đa thức f x y , nên Ku v, Kv u,

2/. Ví dụ:

(1) Giả sử có ba người dùng U, V và W.

Trung tâm được ủy quyền chọn công khai số nguyên tố p = 83.

Các phần tử công khai tương ứng với U, V và W là ru 35,rv 40 và rw 50

(2) Trung tâm được ủy quyền chọn ngẫu nhiên, bí mật a15,b20,c30 và chọn đa thức f x y , (15 20* xy30* * ) mod 83x y

(3) Trung tâm được ủy quyền TT tính các đa thức và gửi cho U, V, W tương ứng là:    ,35 15 20* 35 30* *35 mod 83 (51 74* ) mod 83 u g xf x   x  x   x    , 40 15 20* 40 30* *40 mod 83 68 58*  mod 83 v g xf x   x  x   x           w ,50 15 20* 50 30* *50 mod 83 19 26* mod 83 g xf x   x  x   x

(4) Nếu U và V muốn liên lạc với nhau, mỗi người tự tính khóa chung như sau: U tính Ku v, gu rvf rv,35 51 74*40 mod 8323

V tính Kv u, g rv uf ru, 4068 58*35 mod 83 23 Ba khóa chung tương ứng với ba cặp người dùng là

    , ,35 51 74*40 mod 83 23 u v u v v Kg rf r          ,w w 68 58* w mod 83 68 58*50 mod 83 63 v v Kg r   r          ,w w 19 26* mod 83 19 26*35 mod 83 16 u u u Kg r   r   

3/. Độ an toàn của sơ đồ thỏa thuận khóa Blom với k1 an toàn với 1 đối thủ

Sơ đồ thỏa thuận khóa Blom với k1, khóa của một cặp đối tác là an toàn trước bất kỳ người dùng thứ ba nào. Tức là không người dùng nào có thể xác định được thông tin về khóa của hai người dùng khác.

Thật vậy:

Ta giả sử người dùng thứ ba là W muốn thử tính khóa chung của U và V.

       

, , * * * mod

u v u v v u v u v u

Kg rf r ra brrc r r p

Trong đó các giá trị r ru, v là công khai, a b c, , là bí mật. W biết được các giá trị sau khi trung tâm TT gửi đến:

 

w w w*

g xab x với aw  a b r* wmodp bw  b c r* wmodp

Ta chỉ ra rằng thông tin mà W biết phù hợp với giá trị tùy ý tZp của khóa Ku v, . Xét phương trình ma trận sau:

(các phép toán số học được thực hiện trong Zp) 1 rurv ru*rv a t 1 rw 0 b aw 0 1 rw c bw Tức là hệ các phương trình:     , * * * mod u v v u v u Ka brrc r r pt (1) w w * mod a b rpa (2) w w * mod bc r pb (3)

Phương trình (1) thể hiện giả thiết rằng Ku v, t. Phương trình (2) và (3) cho thấy W biết a b c, , từ gw x . Định thức của ma trận hệ số là:                      w w w w 2 w w w w { 1* * + 1*1*r r + 0 * * 0 }-{ 0 * * + 1*1* 0 + 1* * } ={r +r r }-{ *r }= u v u v u v u v u v u v u v r r r r r r r r r r r r r r r r     

rw rurw rv nên định thức ma trận hệ số khác không (Det0). Do đó phương trình ma trận có nghiệm duy nhất cho a b c, , .

Nói cách khác, bất kỳ giá trị tZp cũng có thể nhận là khóa Ku v,

4/. Sơ đồ thỏa thuận khóa Blom với k1 không an toàn trước liên minh hai đối thủ.

Liên minh hai người dùng {W,X} (không phải là cặp người dùng {U,V}) có khả năng xác định khóa mật Ku v, bất kỳ của U và V.

Thật vậy:

Hai người dùng W và X cùng biết các đẳng thức sau:

w * w * x x a a b r a a b r     w * w * x x b b c r b b c r    

Như vậy, họ có 4 phương trình với ba ẩn a b c, , chưa biết, họ dễ dàng tính ra nghiệm duy nhất a b c, , . Từ đó họ có thể thiết lật đa thức f x y , và tính khóa chung của bất kỳ cặp người dùng nào

2.2.1.3. Giao thức thỏa thuận khóa Blom với k > 1 [3]

Để tạo lập sơ đồ thỏa thuận khóa chống lại được liên minh k đối thủ, trung tâm TT dùng đa thức f x y , dạng sau:

  , 0 0 , mod k k i j i j i j f x y a x y p   

Trong đó ai j, Zp0 i k,0 j k và ai j, aj i, với mọi i, j. Các phần tử còn lại của giao thức như sơ đồ với so k1

2.2.2. Sơ đồ thỏa thuận khóa Diffie – Hellman

Trao đổi khóa Diffie–Hellman là một phương pháp trao đổi khóa được phát minh sớm nhất trong mật mã học. Phương pháp trao đổi khóa Diffie–Hellman cho phép hai bên (người, thực thể giao tiếp) thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên kênh truyền thông không an toàn mà không cần có sự thỏa thuận trước về khóa bí mật giữa hai bên. Khóa bí mật tạo ra sẽ được sử dụng để mã

2.2.2.1. Sơ đồ [3]

Người dùng chọn số nguyên tố p rất lớn sao cho bài toán logarit rời rạc trong

*

p

Z là “khó” giải; chọn  là phần tử nguyên thủy thuộc *

p

Z . Phần tử p, là công khai (vật liệu công khai của sơ đồ thỏa thuận khóa Diffie – Hellman là p,).

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu một số sơ đồ thỏa thuận khóa bí mật và ứng dụng trong thanh toán điện tử (Trang 34)

Tải bản đầy đủ (PDF)

(73 trang)