, 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 s =α n 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 s =α n 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 .n Vì bC′ −ID C( )=bA′ −ID A( ),nên thực tế C đã đ−ợc cấp pC′ = p′A =(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