Giao thức Girault trao đổi khoá không chứng 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 71)

, aA mo da a BA mod

7.3.4.Giao thức Girault trao đổi khoá không chứng chỉ.

Giao thức Girault đ−ợc đề xuất năm 1991. Trong giao thức này, ng−ời sử dụng A không cần dùng chứng chỉ C(A), mà thay bằng một khoá công khai tự chứng thực , đ−ợc cấp tr−ớc bởi một TẠ Ph−ơng pháp này sử dụng kết hợp các đặc tính của các bài toán RSA và lôgarit rời rạc.

Giả thử n là tíc của hai số nguyên tố lớn p và q, n =p.q , p và

q có dạng p =2p1+1, q =2q1+1, trong đó p1 và q1 cũng là các số nguyên tố. Nhóm nhân Zn∗ đẳng cấu với tích Zp∗ìZq∗. Cấp cao nhất của một phần tử trong Zn∗ là bội chung bé nhất của p -1 và q -1, tức là bằng 2p1q1. Giả sử α là một phần tử cấp 2p1q1 của Zn∗. Nhóm cyclic sinh bởi α đ−ợc ký hiệu là G, bài toán tính lôgarit rời rạc theo cơ số αtrong G đ−ợc giả thiết là rất khó.

Các số n và α là công khaị Chỉ TA biết p ,q . TA chọn số mũ công khai e , với gcd(e, φ (n ))=1,và giữ bí mật d =e -1modφ (n ). Mỗi ng−ời dùng A có một danh tính ID(A), chọn ngẫu nhiên một số aA ∈ G, giữ bí mật aA và tính bA= aAmod , rồi gửi a

n

α A ,bA cho

TẠ TA thử lại điều kiện bA= , rồi cấp cho A một khoá công khai tự chứng thực p mod A a n α

A = (bA- ID(A))d modn . Trong khoá công khai pA không có thông tin về aA , nh−ng TA cần biết aA để thử điều kiện bA= aAmod .

n

α

Giao thức Girault trao đổi khoá giữa hai ng−ời dùng A và B đ−ợc thực hiện bởi các b−ớc sau đây:

1. A chọn ngẫu nhiên rA∈G, tính và gửi cho B (ID(A),p mod , A r A sn A , sA).

2. B chọn ngẫu nhiên rB∈G , tính và gửi cho A (ID(B), p mod , B r B sn d , B , sB). 3. A tính khoá aA( e ( )) morA B B K =s p +ID V n B tính khoá aB( e ( )) morB A A d . K =s p +ID A n

Cả hai giá trị đó của K đều bằng nhau và bằng r aA B r aB Amod .

K =α + n

Bằng các lập luận nh− trong mục tr−ớc, ta dễ thấy rằng một ng−ời thứ ba C khó mà tạo ra các thông tin giả mạo để gửi đến A hoặc B, nếu tấn công bằng cách đánh tráo giữa đ−ờng thì có thể phá rối để ngăn cản A và B tạo lập khoá chung, nh−ng không thể đánh cắp thông tin trao đổi giữa A và B.

Còn lại một vấn đề: Tại sao TA cần biết aA và thử điều kiện

bA= aAmod tr−ớc khi cấp p

n

α A cho Ả Ta giả thử rằng TA không

biết aA và cấp pA= (bA- ID(A))d modn cho A, và thử xem có thể xẩy ra chuyện gì? Một ng−ời thứ ba C có thể chọn một giá trị rởm aA′ ,và tính rồi tính b b mod , A a A b′ =α ′ n C′ = A′ −ID A( )−ID C( ),và đ−a (ID C b( ), C′) cho TẠ TA sẽ cấp cho C một “khoá công khai tự chứng thực”

( ( )) mod C C p′ = b′ −ID C d .n d .nbC′ −ID C( )=bA′ −ID A( ),nên thực tế C đã đ−ợc cấp pC′ = pA =(bA′ −ID A( )) mod

Bây giờ giả sử A và B thực hiện giao thức trao đổi khoá, và C xen vào ở giữa, nh− vậy, A gửi đến B ( ( ), , rAmod ),

A

ID A p α n nh−ng do bị C đánh tráo nên B lại nhận đ−ợc ( ( ), , rAmod ),

AID A p′ α ′ n do đó B và C

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 71)