Vấn đề phân phối khoá và thoả thuận khoá

Một phần của tài liệu Giáo trình lý thuyết mật mã và an toàn thông tin phần 2 phan đình diệu (Trang 62)

và thoả thuận khoá

7.1. Quản trị khoá trong các mạng truyền tin.

Trong các ch−ơng tr−ớc, ta đã làm quen với các ph−ơng pháp lập mật mã 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ã khoá công khai có nhiều −u việt hơn các hệ mật mã khoá đối xứng 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ã khoá đối xứng việc thực hiện đòi hỏi những kênh bí mật để chuyển khoá hoặc trao đổi khoá giữa các đối tác, thì về nguyên tắc, đối với các hệ mật mã khoá công khai, không cần có những kênh bí mật nh− vậy, vì các khoá 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ế, để bảo đảm 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 khoá 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, v.v... 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ôị Do đó, dẫu là dùng các hệ có khoá công khai, ng−ời ta cũng muốn có những giao thức thực hiện việc trao đổi khoá 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 khoá công khaị Việc trao đổi khoá 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 uỷ thác (mà ta ký hiệu là TA-trusted authority). Việc trao đổi khoá trong tr−ờng hợp thứ nhất ta gọi đơn giản là thoả thuận khoá, còn trong tr−ờng hợp thứ hai ta gọi là phân phối khoá , TA là nơi thực hiện việc phân phối, cũng tức là nơi quản trị khoá. Việc thoả thuận khoá 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ó khoá công khai, còn việc phân phối khoá thì có thể xẩy ra đối với các tr−ờng hợp sử dụng các hệ khoá đối xứng cũng nh− các hệ có khoá công khaị Việc phân phối khoá với vai trò quản trị khoá 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ã khoá công khaị Ta sẽ bắt đầu với việc giới thiệu một vài hệ phân phối khoá nh− vậy, rồi tiếp sau sẽ giới thiệu một số hệ phân phối hoặc trao đổi khoá khi dùng các sơ đồ an toàn và bảo mật có khoá công khaị

7. 2. Một số hệ phân phối khoá. 7. 2.1. Sơ đồ phân phối khoá Blom. 7. 2.1. Sơ đồ phân phối khoá Blom.

Giả sử ta có 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ã khoá đối xứng (chẳng hạn, DES). Toàn bộ mạng cần có ( 1

2

n n− ) khoá khác nhau cho chừng ấy cặp ng−ời dùng khác nhau trong mạng. Một cơ quan đ−ợc uỷ thác TA quản lý chừng ấy khoá và phải chuyển cho mỗi ng−ời dùng n -1 khoá 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 khoá đến cho tất cả n ng−ời dùng.

Blom (1985) đề nghị một sơ đồ phân phối khoá, mà sau đây ta gọi là sơ đồ Blom, trong tr−ờng hợp đơn giản nhất đ−ợc mô tả nh− sau:

TA chọn một số nguyên tố p ≥ n, và chọn cho mỗi ng−ời dùng A một số rA∈Zp . Số p và các số rA đ−ợc công bố công khaị

Sau đó, TA chọn ba số ngẫu nhiên a,b,c ∈ Zp , và lập đa thức f x y( , )= +a b x( +y)+cxy modp.

Với mỗi ng−ời dùng A, TA tính gA( )x = f x r( , A)=aA+b xA modp,

trong đó . TA chuyển bí mật

cặp số

mod , mod

A A A A

a = +a br p b = +b cr p

(a bA, A)cho A; nh− vậy, A biết gA( )x =aA+b xA . So với việc TA phải truyền bí mật n (n -1) l−ợt khoá kể trên thì với sơ đồ Blom, TA chỉ phải truyền n l−ợt các cặp số (a bA, A)mà thôị

Sau khi đã thực hiện xong các công việc chuẩn bị đó, bây giờ nếu hai ng−ời dùng A và B muốn tạo khoá chung để truyền tin bằng mật mã cho nhau, thì khoá chung K A,B đó sẽ là :

KA B, =gA( )rB =gB( )rA =f r r( ,A B),

Nh− vậy, theo sơ đồ phân phối này, TA phân phối cho mỗi ng−ời dùng một phần bí mật của khoá, hai ng−ời dùng bất kỳ phối hợp phần bí mật của riêng mình với phần công khai của ng−ời kia để cùng tạo nên khoá bí mật chung cho hai ng−ờị Sơ đồ này là an toàn theo nghĩa sau đây: Bất kỳ một ng−ời thứ ba C nào (kể cả C là

một ng−ời tham gia trong mạng) có thể phát hiện đ−ợc khoá bí mật

riêng của hai ng−ời A và B. Thực vậy, dù C có là ng−ời tham gia trong mạng đi nữa, thì cái mà C biết nhiều lắm là hai số do TA cấp chọ Ta chứng minh rằng với những gì mà C biết thì bất kỳ giá trị l∈ Z

,

C C

a b

p nào cũng có thể đ−ợc chấp nhận là K A,B . Những gì mà C biết, kể cả việc chấp nhận l = K A,B , đ−ợc thể hiện thành

( A B) A B C C C C a b r r cr r l a br a b cr b + + + = + = + =

Hệ thống ph−ơng trình đó, nếu xem a,b,c là ẩn số, có định thức các hệ số ở vế phải là 1 1 0 ( )( ) 0 1 A B A B C C A C C r r r r r r r r r + B r = − − ,

theo giả thiết chọn các số r , định thức đó khác 0, do đó hệ ph−ơng trình luôn có nghiệm (a,b,c), tức việc chấp nhận llà giá trị củaK A,B

là hoàn toàn có thể. Bất kỳ giá trị l ∈ Zp nào cũng có thể đ−ợc C chấp nhận là K A,B , điều đó đồng nghĩa với việc C không biết K A,B là số nào! (adsbygoogle = window.adsbygoogle || []).push({});

Tuy nhiên, nếu có hai ng−ời tham gia C và D, khác A,B, liên minh với nhau để phát hiện K A,B , thì lại rất dễ dàng, vì cả C và D biết C C C C D D D D a br a b cr b a br a b cr b + = + = + = + =

Bốn ph−ơng trình đó đủ để xác định (a,b,c), từ đó tìm đ−ợc K A,B . Ta có thể mở rộng sơ đồ Blom nói trên để đ−ợc một sơ đồ Blom tổng quát, trong đó mọi khoá chung K A,B của hai ng−ời dùng A và B là bí mật hoàn toàn đối với bất kỳ liên minh nào gồm k

ng−ời ngoài A và B, 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 : 0 0 ( , ) mod , k k i j ij i j f x y a x y = = =∑∑ p

trong đó aij ∈Zp, 0≤i j, ≤k a, ij =aji với mọi i, j.

7.2.2. Hệ phân phối khoá Kerberos.

Kerberos là tên của một hệ dịch vụ phân phối (hay cấp phát) khoá phiên (session key) cho từng phiên truyền tin bảo mật theo yêu cầu của ng−ới dùng trong một mạng truyền tin. Hệ mật mã đ−ợc sử dụng th−ờng là hệ có khoá đối xứng, chẳng hạn DES.

Để thực hiện hệ này, tr−ớc hết, cơ quan đ−ợc uỷ thác (hay trung tâm điều phối) TA cần chia sẻ một khoá DES bí mật KA với mỗi thành viên A trong mạng. Sau đó, mỗi lần A có nhu cầu truyền tin bảo mật với một thành viên khác B thì yêu cầu TA cấp một khoá phiên cho cả A và B. Việc cấp phát đó sẽ đ−ợc thực hiện bằng một giao thức phân phối khoá nh− sau:

1. TA chọn ngẫu nhiên một khoá phiên K, xác định một tem thời gian T và một thời gian sống L (nh− thế có nghĩa là khoá phiên K có giá trị sử dụng trong khoảng thời gian từ T đến T +L).

2. TA tính 1 2 ( , ( ), , ), ( , ( ), , ). A B K K m e K ID B T L m e K ID A T L = = và gửi (m m1, 2) đến Ạ 3. A dùng hàm giải mã A K

d cho để thu đ−ợc K, T,L,ID(B). Sau đó tính 1 m m3 =eK(ID A T( ), ), và gửi (m m3, 2)cho B. 4. B dùng các hàm giải mã B K

d cho m2 và dK cho m3 để thu đ−ợc K ,T, L,ID(A) và ID(A),T . Nếu thử thấy hai giá trị của ID(A) và của T trùng nhau, thì B tính tiếp

m 4 = eK (T +1) và gửi m4 cho Ạ

5. A dùng hàm giải mã dK cho m4, và thử xem kết quả thu đ−ợc có đúng là T +1 hay không.

Trong giao thức kể trên, các ký hiệu ID(A) và ID(B) là chỉ cho danh tính của A và của B, các thông tin đó là công khaị

Hoàn thành giao thức gồm 5 b−ớc nói trên, TA (cùng với A và B) đã thực hiện xong việc cấp phát một khoá phiên K cho hai ng−ời dùng A và B để truyền tin mật mã cho nhaụ Tất cả các việc trao đổi thông tin của giao thức đó đều đ−ợc thực hiện trên các kênh công cộng, dù khoá K vẫn là bí mật, chỉ A, B (và TA) là đ−ợc biết mà thôị Ngoài việc cấp phát khoá, giao thức đó còn thực hiện đ−ợc việc xác nhận khoá: B và A đều tin chắc đ−ợc rằng đối tác của mình đã thực sự có khoá K do kết quả của việc thực hiện các phép thử ở b−ớc 4 và 5; thêm nữa, cả A và B còn biết đ−ợc thời hạn có hiệu lực của khoá.

Phân phối khoá bí mật theo giao thức Kerberos là có độ tin cậy cao, tuy nhiên trong thực tế, việc sử dụng nó cũng đòi hỏi tốn nhiều thời gian, nên ngày nay cũng chỉ đ−ợc dùng trong những tr−ờng hợp hạn chế.

Một phần của tài liệu Giáo trình lý thuyết mật mã và an toàn thông tin phần 2 phan đình diệu (Trang 62)