Thuật toán xác thực chữ ký điện tử ECC

Một phần của tài liệu Xác thực trong các mạng vô tuyến (Trang 87 - 90)

Khi Bob nhận đƣợc thông điệp M với chữ ký điện tử (r,s) đƣợc tạo bởi thuật toán ECDSA. Bob sẽ tiến hành xác thực theo thuật toán sau [3]:

Thuật toán 3.5 : Thuật toán xác thực chữ ký điện tử ECC

Input : Đƣờng cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h), khóa công khai bên gửi Q, thông điệp gửi m, và chữ ký (r,s)

Output: Chữ ký điện tử có hợp lệ không

1 : Nếu 0 < r < n thì tiếp tục bƣớc tiếp theo, nếu không trả về kết quả không hợp lệ và kết thúc.

2 : Tính giá trị băm của thông điệp m, sử dụng thuật toán băm SHA1, ta đƣợc giá trị

H = SHA1(m). Chuyển xâu băm nhận đƣợc về kiểu số nguyên ta đƣợc số e.

3 : Tính nghịch đảo của s theo modulo n: w = s-1 mod n

4 : Tính hai giá trị : u1 e w mod nu2 r w mod n

5 : Tính điểm R   u1 G u2 Q. Chuyển hoành độ của R là xR từ kiểu trƣờng sang kiểu số nguyên xR.

6 : Nếu xR ≡ r (mod n) thì thông báo chữ ký hợp lệ và ngƣợc lại.

Comment [u26]: Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 46

Theo thuật toán ECDSA ta có :   1(mod ) s  e k r dn  s 1(mod ) d e k rn     1 1 1 2(mod ) w w u n k r s e k r k u d e s                Theo bƣớc 5 : 1 2 R   u G u Q  1 2  1 2 u u k G R u G u k G           G R d   Do vậy R = (xR, yR), và xR = r (mod n)

3.1.2.6.Mô hình mã hóa tích hợp đường cong Elliptic - ECIES

Thuật toán mã hóa và giải mã của mô hình ECIES đƣợc đề xuất bởi 2 nhà khoa học Bellare và Rogaway [10], và là một biến thể của hệ mật mã hóa công khai ElGamal. ECIES đã đƣợc chuẩn hóa bởi chuẩn ANSI X9.63 và ISO/IEC 15946-3 và đƣợc nêu trong chuẩn “SEC1: Ellitptic Curve Cryptography”.

Trong ECIES, mô hình chia sẻ khóa Diffie-Hellman đƣợc sử dụng để 2 bên truyền thông thiết lập và chia sẻ 2 khóa k1 và k2. Trong đó k1 sẽ đƣợc sử dụng để mã

hóa thông điệp truyền bằng hệ mật mã khóa đối xứng, k2 đƣợc sử dụng để xác thực

kết quả của bản mã.

Mô hình ECIES sử dụng các hàm chức năng sau:

 KDF (Key Derivation Function) : Là hàm sinh khóa (k1, k2) từ điểm R và

hoành độ xz của điểm Z.

 ENC : Là 1 hàm mã hóa khóa đối xứng. Ví dụ nhƣ AES.

 MAC : Hàm sinh mã xác thực thông báo. Ví dụ HMAC.

Comment [u27]: Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 189

a. Thuật toán mã hóa ECIES

Thuật toán mã hóa của ECIES đƣợc thực thi nhƣ sau [4] :

Thuật toán 3.6 : Thuật toán mã hóa ECIES

Input : Đƣờng cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h), khóa công khai bên nhận Q, thông điệp gửi M

Output: Bản mã của thông điệp M

1 : Sinh ngẫu nhiên số nguyên dƣơng d thỏa mãn 0 < d < n

2 : Tính điểm R d G và điểm Z  h d Q. Nếu Z = 0 thì quay lại bƣớc 1.

3 : Tính cặp khóa (k1, k2) = KDF(xZ, R)

4 : Tính bản mã sử dụng khóa k1 : C = ENC(k1, M)

5 : Tính mã xác thực thông báo cho bản mã sử dụng khóa k2 : t= MAC(k2, C)

6 : Trả về bản mã (R, C, t)

b. Thuật toán giải mã ECIES

Ngƣợc lại với thuật toán mã hóa, thuật toán giải mã đƣợc thực thi nhƣ sau [5]:

Thuật toán 3.6 : Thuật toán mã hóa ECIES

Input : Đƣờng cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h), khóa bí mật k, và bản mã (R, C, t)

Output: Bản rõ M hoặc thông báo thông điệp không hợp lệ

1 : Kiểm tra điểm R có thuộc đƣờng cong Elliptic không. Nếu không thuộc, trả về

thông báo không hợp lệ.

2 : Tính điểm Z  h k R. Nếu Z = 0 thì trả về thông báo không hợp lệ.

3 : Tính cặp khóa (k1, k2) = KDF(xZ, R)

4 : Tính t’ = MAC(k2, C). Nếu t’ ≠ t, trả về thông báo không hợp lệ.

5 : Giải mã M = ENC(k1, C)

6 : Trả về bản rõ M

Comment [u28]: Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 52-53

Comment [u29]: Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 53-54

Nhƣ đã nêu ở trên, bản chất của việc mã hóa và giải mã của ECIES là thiết lập một khóa phiên rồi sử dụng khóa phiên đó để mã hóa và giải mã theo mô hình mật mã khóa chia sẻ. Khóa phiên trong mã hóa và giải mã chỉnh là điểm Z. Thật vậy, ta có :

( ) ( )

Z      h d Q h d k G    h k d G   h k R

Một phần của tài liệu Xác thực trong các mạng vô tuyến (Trang 87 - 90)

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

(113 trang)