Cũng nh− đối với sơ đồ Schnorr, sơ đồ x−ng danh Okamoto cần có một cơ quan uỷ thác TA để cấp chứng chỉ cho các ng−ời tham gia.
TA chọ tr−ớc các số nguyên tố p và q nh− đối với sơ đồ Schnorr. Sau đó, TA chọn hai số α α1, 2∈Zp∗,cùng có cấp q . Giá trị
1 2
log
c= α α (tức giá trị c sao cho 1c
2
α =α ) đ−ợc giữ tuyệt mật đối với mọi ng−ời tham gia, kể cả A; nói cách khác, ta giả thiết rằng việc tính ra c là cực kỳ khó đối với bất kỳ ai (chẳng hạn, A,O, hoặc thậm chí liên minh của A và O,...).
Thủ tục cấp chứng chỉ cho A đ−ợc tiến hành nh− sau:
1. TA xác lập các thông tin về danh tính của A d−ới dạng một dãy ký tự mà ta ký hiệu là I A hay ID(A).
2. A chọn bí mật hai số ngẫu nhiên a1, a2 (0≤a1, a2≤q-1), tính
1 2
1 a 2a mod
v=α α− − p , và chuyển số v cho TA.
3. TA tạo chữ ký s =sigTA(IA, v) và cấp cho A chứng chỉ C(A) = (ID(A), v, s ).
Bây giờ, với chứng chỉ C(A) đó, A có thể x−ng danh với bất kỳ đối tác B nào bằng cách cùng B thực hiện một giao thức xác nhận danh tính nh− sau:
1. A chọn thêm hai số ngẫu nhiên k1,k2(0≤k1,k2≤q-1), tính
1 2
1 2
k k
γ α α= modp,
và gửi cho B các thông tin C(A) và γ.
2. B kiểm thử chữ ký của TA trong chứng chỉ C(A) bởi hệ thức verTA(ID(A), v, s) =đúng. Kiểm thử xong, B chọn một số ngẫu nhiên r (1≤r ≤ 2t ) và gửi r cho A.
3. A tính y1 =k1 +a1r modq , y2 =k2 +a2r modq , và gửi y1,y2 cho B.
1 2
1 2
y y r
v
γ α α≡ (modp)
và nếu điều kiện đó đ−ợc thoả mãn thì xác nhận danh tính của A. Thực hiện giao thức đó, A sẽ chứng minh đ−ợc danh tính của mình, vì (modp) 1 2 1 1 2 2 1 2 1 2 1 2 1 2 y y r k a r k a r a r a r v α α ≡α + α + α α− − 1 2 1 2 k k α α ≡ (modp) ≡γ (modp)
tức điều kiện mà B cần thử là đúng. Nh− vậy, do biết cặp số bí mật (a1, a2), nên A có thể thực hiện thông suốt giao thức xác nhận để chứng minh danh tính của mình.
Ng−ợc lại, một ng−ời khác A, do không biết cặp số bí mật (a1, a2), nên khó có khả năng tính đúng đ−ợc (y1,y2) để trả lời B ở b−ớc 3 của giao thức, tức là không v−ợt qua đ−ợc sự kiểm thử của giao thức để mạo nhận mình là A.
Bây giờ giả sử có một ng−ời O có thể thực hiện thông suốt giao thức xác nhận để có thể đ−ợc mạo nhận là A, chẳng hạn ít nhất hai lần. Điều đó có nghĩa là O biết đ−ợc hai số r ≠ s và hai cặp số (y1,y2), (z1,z2) sao cho 1 2 1 2 (modp). 1 2 1 2 y y r z z v γ α α≡ ≡α α s v Đặt 1 1 1 1 1 2 2 ( )( ) mod ( )( ) b y z r s y z r s − − = − − = − − 2 q, b mod ,q ta sẽ đ−ợc 1 1 2 b b v≡α α− −2(modp), do đó 1 2 1 1 2 1 2 b b a a2 α α− − ≡α α− − (modp), tức là 1 1 2 1 2 a b b a α − α − 2 ≡ (modp).
Giả thiết rằng O và A liên minh với nhau, khi đó biết đ−ợc cả các số
a1, a2, b1, b2. Nếu giả thiết (a1, a2) ≠ (b1, b2) thì a2 ≠b2 , và (b2 - a2)-1modq tồn tại, và lôgarit rời rạc c đ−ợc tính bởi
1
1
2 1 1 2 2
log ( )( )
c= α α = a −b b −a − modq.
Nh− vậy, nếu O có thể thực hiện thông suốt giao thức xác nhận để đ−ợc mạo nhận là A thì khi O và A liên minh với nhau có thể tìm đ−ợc khá dễ dàng lôgarit rời rạc c. Nh−ng từ đầu ta đã giả thiết việc tìm ra c là cực kỳ khó đối với bất kỳ ai (là A, là O, thậm chí là liên minh của A và O,...), nên cũng sẽ cực kỳ khó để O thực hiện đ−ợc thông suốt giao thức xác nhận với mục đích mạo x−ng là A. Vậy là ta đã chứng minh đ−ợc tính an toàn của sơ đồ x−ng danh
Okamoto với giao thức xác nhận danh tính nh− mô tả ở trên. Trong chứng minh đó còn một số chỗ tinh tế cần đuợc bổ sung thêm, chẳng hạn nh− vì sao có thể giả thiết (a1, a2) ≠ (b1, b2), thực ra ng−ời ta đã chứng minh đ−ợc rằng xác suất của khả năng (a1, a2) = (b1, b2) là rất bé, không đáng kể. Tuy nhiên, để đơn giản trình bày, xin phép đ−ợc bỏ qua một vài chi tiết chứng minh tinh tế đó.