CHƯƠNG II TÌM HIỂU MẬT MÃ ĐƯỜNG CONG ELLIPTIC
2.3. Cách ệm ật đường cong Elliptic
Mục tiêu của mã hóa: Nói chung, một chương trình mã hóa tốt phải thỏa mãn sự kết hợp của bốn mục tiêu sau:
· Xác thực: Cho phép người nhận thông tin xác định nguồn gốc của nó tức là định danh của người gửi. Điều này có thể được thực hiện thông qua một số thứ bạn biết hoặc bạn có. Thường được cung cấp bởi kỹ thuật số chữ ký số.
· Chống chối bỏ: đảm bảo rằng một bên tham gia liên lạc không thể phủ nhận tính xác thực của chữ ký của họ trên một tài liệu hay việc gửi một thông điệp có nguồn gốc từ họ.Thường được cung cấp bởi chữ ký số.
· Tính toàn vẹn của dữ liệu: Một điều kiện mà trong đó dữ liệu không bị thay đổi hoặc bị phá hủy trong một cách thức không được cho phép.
· Bảo mật: Giữ các dữ liệu liên quan trong một giao dịch điện tử được bí mật. Thường được cung cấp bởi mã hóa [5], [7].
Về mặt nguyên tắc thì tất cả các thuật toán mật mã dựa trên bài toán lô-ga- rít rời rạc trên trường hữu hạn đều có thể chuyển lên đường cong Elliptic trên trường hữu hạn được.
Muốn sử dụng được các thuật toán mật mã Elliptic thì công việc đầu tiên cần phải làm là phải ánh xạ được các thông báo lên tọa độ các điểm trên đường cong Elliptic vì các thuật toán mật mã Elliptic chỉ làm việc được với các điểm và tọa độ của chúng.
Sơ đồ trao đổi khóa Elliptic: Trường hữu hạn GF(q) và đường cong Elliptic E xác định trên trường hữu hạn này được công bố công khai. Điểm P Î
E được công bố công khai. P không nhất thiết phải là phần tử sinh của E nó cần phải có bậc lớn.
(1) Alice chọn số nguyên dương a có độ lớn cùng cỡ với q và công bố công khai điểm aP Î E.
(2) Bob chọn số nguyên dương b tương tự với cách làm của Alice và công bố công khai bP Î E.
(3) Cả Alice và Bob tính K = abP Î E và sử dụng như là khóa phiên chung với nhau.
Độ an toàn:
Nếu Malice muốn tính K khi biết P, aP, bP thì anh ta phải tìm được a từ aP hoặc b từ bP. Việc làm này tương đương với việc giải bài toán lô-ga-rít rời rạc Elliptic.
Hệ mật Elgamal Elliptic: Chuẩn bị:
Công bố công khai GF(q), đường cong Elliptic E xác định trên GF(q) và điểm P Î E. Alice chọn a và công bố công khai aP Î E. Bob chọn a và công bố công khai bP Î E.
Lập mã:
Để gửi thông báo M Î E đến Alice thì Bob chọn số nguyên dương k và gửi cho Alice (kP, M + k(aP)).
Alice muốn đọc thông báo M Î E thì tính kaP = a(kP) và sau đó tính M = (M + kaP) – kaP.
Độ an toàn:
Rõ ràng muốn tính được M thì Alice phải hoặc tính được k hoặc tính được a. Do đó Malice phải đối mặt với bài toán ECDLP đối với kP và aP.
Lập mã Massey-Omura:
(1)Alice và Bob thỏa thuận về đường cong Elliptic E trên trường hữu hạn GF(q) sao cho bài toán ECDLP là khó trên GF(q) và N là sốđiểm của E trên GF(q).
(2)Alice biểu diễn thông báo của mình là điểm M Î E.
(3)Alice chọn số nguyên bí mật mA với điều kiện (mA,N) = 1 và tính M1 = mAM và gửi M1 cho Bob.
(4)Bob chọn số nguyên bí mật mB với điều kiện (mB,N) = 1 và tính M2 = mBM1 và gửi M2 cho Bob.
(5)Alice tính Î Zn và tính M3 = M2 và gửi M3 cho Bob.
(6)Bob tính Î Zn và tính M4 = M3 và gửi M4 = M chính là thông báo Bob cần nhận được.
Sơ đồ chữ ký số Elgamal Elliptic: Chuẩn bị:
Alice chọn đường cong Elliptic E trên trường hữu hạn GF(q) sao cho bài toán ECDLP là khó trên E. Alice cũng chọn điểm A Î E. Thường thì bậc N của điểm A là một số nguyên tố lớn. Alice cũng chọn số nguyên bí mật a và tính B = aA. Alice cũng chọn hàm:
f: E → Z
Hàm f không cần có tính chất đặc biệt ngoại trừ ảnh của nó nên là lớn hơn và chỉ có một số nhỏ các đầu vào có thể tạo ra một đầu ra bất kỳđã cho. Ví dụ: Nếu xét E trên GF(p) với p nguyên tố thì có thể lấy f(x,y) = x.
Thông tin công khai của Alice là E, GF(q), f, A và B. Alice giữ a bí mật, số nguyên tố dương N cũng không nên được công bố công khai.
Ký chữ ký số:
(1)Alice biểu diễn tài liệu là số nguyên m. Nếu m > N thì chọn đường cong lớn hoặc sử dụng hàm băm.
(3) Alice tính s ≡ k-1(m – af(R)) (mod N) và thông báo được ký là (m, R, s).
Kiểm tra chữ ký số:
(1) Bob tải xuống thông tin công khai của Alice. (2) Bob tính V1 = f(R)B + sR và V2 = mA.
(3) Nếu V1 = V2 thì Bob tuyên bố chữ ký là hợp lệ.
Tính đúng đắn:
Vì rằng V1 = f(R)B + sR = f(R)aA + skA = f(R)aA + (m – af(R)) = mA = V2. Chúng ta có sk ≡ m – af(R) (mod N) và do đó sk = m –af(R) + zN đối với một số nguyên z nào đó. Bởi vậy skA = (m – af(R))A + zNA = (m – af(R))A + O = (m – af(R))A.
Thuật toán chữ ký số Elliptic (ECDSA): Chuẩn bị:
Alice muốn ký thông báo m là một số nguyên dương thì Alice chọn đường cong Elliptic E trên trường hữu hạn GF(q) sao cho số điểm của E trên GF(q) là fr với r là số nguyên tố lớn và f là số nguyên dương nhỏ để cho thuật toán hiệu quả. Alice chọn điểm cơ sở G trên E trên GF(q) có bậc r. Cuối cùng Alice chọn số nguyên dương a và tính Q = aG. Alice công bố công khai thông tin sau đây: GF(q), E, r, G, Q.
Ký chữ ký số:
(1) Alice chọn số nguyên dương ngẫu nhiên k với 1≤ k < r và tính R = kG = (x,y).
(2) Alice tính s = k-1 (m + ax) (mod r) và tài liệu ký hiệu là (m, R, s).
Kiểm tra chữ ký số:
(1) Bob tính u1 = s-1m (mod r) và u2 = s-1x (mod r). (2) Bob tính V = u1G + u2Q.
(3) Bob tuyên bố chữ ký số hợp lệ nếu V = R.
Tính đúng đắn:
Nếu thông báo được ký đúng thì đẳng thức kiểm tra đúng: V = u1G + u2Q = s-1mG + s-1xQ = s-1(mG + xaG)kG = R.
Sự khác nhau cơ bản của ECDSA và sơ đồ chữ ký số Elgamal Elliptic là thủ tục kiểm tra chữ ký số. Trong sơ đồ Elgamal đẳng thức kiểm tra f(R)B + sR = mA đòi hỏi ba phép tính với một số nguyên lần một điểm và đây là những
phần tốn kém nhất, trong khi đó ECDSA chỉđòi hỏi hai phép tính như vậy. Cải tiến này là nâng cao hiệu quả của ECDSA một khi cần nhiều lần kiểm tra chữ ký số và rât có giá trị trên thực tế.