Tƣơng tự nhƣ vấn đề trao đổi khóa, trong vấn đề mã hóa và giải mã, ta cũng chọn các tham số để tạo một nhóm Abel E a bq( , ) và chọn một điểm cơ sở G có hạng n lớn.
Các thành phần khóa bí mật và khóa công khai trong mã hóa EC đƣợc định nghĩa nhƣ sau: ( , , , , ) ( , , , , ) R U K d G q a b K Q G q a b
Trong đó d n và Q dG với d là một số bí mật do ngƣời sinh khóa chọn,
Q là khóa công khai. Do tính chất của hàm một chiều từ Q và G không thể suy ra đƣợc d .
Từ đó chúng ta có cách thức thực hiện mã hóa/ giải mã nhƣ sau:
a) Phương pháp Elgamal
Giả sử A muốn gửi một thông điệp Mcho B, trƣớc tiên A chuyển M từ dạng dãy bit sang dạng điểm PM ( , )x y . Bản mã CM (dùng khóa công khai của B) đƣợc tính là một cặp điểm nhƣ sau:
( , )
M M
C kG P kE với klà một số ngẫu nhiên do A chọn
Để giải mã dùng khóa riêng, B sẽ nhân điểm thứ nhất trong CM với d , sau đó lấy điểm thứ hai trừ cho kết quả:
M M M
P kE dkG P kdG kdG P
Trong phƣơng thức mã hóa, A đã che dấu PM bằng cách cộng PM với kE. Để giải mã, B cần trừ lại kE. Thay vì gửi trực tiếp k cho B để B tính kE(Trudy có thể chặn đƣợc), A gửi một dấu hiệu là kG. Dựa vào kG và d , B có thể tính kE. Còn Trudy, dù biết G và kG, tuy nhiên vẫn không thể tính đƣợc k do tính chất của hàm một chiều.
b) Phương pháp Menezes – Vanstone
Thông điệp Mcủa A đƣợc tách làm hai phần M (m m1, 2) sao cho
1, 2 p
m m Z . A chọn một số ngẫu nhiên k, kết hợp với khóa công khai của B, A tính điểm P nhƣ sau: ( P, P) P x y kE Bản mã CM gồm ba thành phần: 0 1 2 1 2 {c ,c ,c }={ , m mod , m mod } M P P C kG x p y p
Để giải mã B dùng khóa riêng, từ dấu hiệu kG, B tính: ( P, P)
P x y dkG
Và từ đó tính nghịch đảo của 1
P
x và yP 1 trong phép modulo p. Cuối cùng, bản giải mã là:
1 1
1 2 1 2
{m ,m }={ P mod p, P mod p}
M x c y c