Tạo khóa bí mật chia sẻ ECMQV

Một phần của tài liệu Mật mã trên đường cong elliptic (Trang 32 - 33)

Tên đầy đủ của giao thức là Elliptic Curve Menezes-Qu-Vanstone. Thuật toán đã được đưa vào trong các chuẩn ANSI X9.63, IEEE 1363- 2000, và ISO/IEC 15946-3. Theo các tiêu chuẩn này điểm cơ sở được ký hiệu là G thay vì là P như thường gặp. Lược đồ này thường được sử dụng khi các bên A và B có cặp khóa công khai và bí mật cố định, tương ứng là (a, aG) và (c, cG).

Bên A sinh cặp số ngẫu nhiên (b,bG) và bên B tương ứng sinh cặp số ngẫu (d,dG), và trao đổi 2 cặp nay cho nhau giá trị bG và dG. Kí hiệu hàm x:E⏊N, lấy giá trị x của một điểm trên đường cong E.

INPUT: Các tham số của hệ mật (K, E, q, h, G), các số a, b, aG, bG, cG, dG.

OUTPUT: Khóa bí mật chia sẻ Q (chia sẻ với với đối tượng có khóa công khai cG). 1: n ← \log2(#k) 1/2. 2: u← (x(bG)(mod 2n) + 2n. 3: s ← b + ua((mod q). 4: v← (x(dG)(mod 2n) + 2n. 5: Q ← s(dG + v(cG)). 6: if Q = ∞ then

7: Quay lại bưóc 1. 8: end if

9: Trả về khóa Q.

Bên B có thể tính ra cùng số Q bằng cách thay (a, b, c, d) trong thuật toán trên bằng (c, d, a, b). Bên A sẽ có các giá trị uA, vA, sA và bên B sẽ có uB, vB , sB. Dễ dàng nhận thấy [ 5 ]:

uA =vB

uB =vA

QA = sA(dG + vA(cG)) = sA(d + vAc)G = sA(d + uBc)G = sAsBG QB = sB(bG + vB(aG)) = sB(b + vBa)G = sB(b + uAa)G = sBsAG QA = QB =Q

Đánh giá bảo mật: Để hack được khóa chia sẻ, Hacker cần phải tính

được các giá trị a, b, c, d, muốn vậy Hacker phải giải các bài toán Logarithm rời rạc a = logG(aG), b = logG(bG), c = logG(cG), d = logG(dG). Đây là các bài toán khó không thể giải được trong thời gian đa thức.

Một phần của tài liệu Mật mã trên đường cong elliptic (Trang 32 - 33)