Các tham số hệ thống , khóa đƣợc hình thành giống nhƣ tham số hệ thống, khóa trong lƣợc đồ chữ ký bội nối tiếp (mục 2.3.1.1).
2.3.2.2. Chứng nhận và kiểm tra tính hợp pháp của các đối tượng ký
Việc chứng nhận và kiểm tra tính hợp pháp của đối tƣợng ký đƣợc thực hiện tƣơng tự nhƣ trong lƣợc đồ chữ ký bội nối tiếp (mục 2.3.1.2).
2.3.2.3. Hình thành và kiểm tra chữ ký bội song song
1/. Thuật toán hình thành chữ ký bội song song
Dữ liệu đầu vào của thuật toán bao gồm: Thông điệp dữ liệu cần ký M, khóa bí mật
của các thành viên tham gia ký và khóa bí mật d của CA. Kết quả
đầu ra của thuật toán là chữ ký tập thể (E, S) của nhóm G tƣơng ứng với M. Thuật toán bao gồm các bƣớc sau:
1 - Hình thành phần thứ nhất (EG) của đa chữ ký theo các bƣớc:
1a - Thành viên ( ) hình thành phần thứ nhất của chữ ký đơn Ri theo
công thức: Ri = (H(xi || M))t mod n
1b - Các thành viên của nhóm gửi giá trị Ri ( ) cho CA.
1c - CA tính giá trị RG theo công thức: RG = ∏
1d - Sau đó CA tính giá trị EG theo công thức: EG = H(RG || M)
2 - Hình thành phần thứ hai (SG) của đa chữ ký chữ ký theo các bƣớc:
2a - CA gửi giá trị EG cho các thành viên nhóm ký.
2b - Thành viêncông thức: Si = (H(x( i || M))) t * ( )hình thành phần thứ hai của chữ ký đơn mod n Si theo
2c - Các thành viên nhóm ký gửi giá trị S
2d - CA kiểm tra tính hợp lệ của các chữ ký cá nhân bằng Thuật toán kiểm tra
chữ ký đơn. Nếu tính hợp lệ của các chữ ký đơn đƣợc công nhận thì thực
hiện các bƣớc tiếp theo. Ngƣợc lại sẽ kết thúc việc hình thành chữ ký bội.
2e - CA tính giá trị SG theo công thức: SG = ∏ mod n
3 - Hình thành chữ ký bội (E, S) theo các bƣớc:
3a - CA hình thành phần thứ nhất E của chữ ký bội theo công thức:
E = (EG)d mod n
3b - CA hình thành phần thứ nhất S của chữ ký bội theo công thức:
S = (SG)d mod n
4 - CA công khai (E, S) là chữ ký bội của nhóm G ứng với thông điệp dữ liệu M.
2/. Thuật toán kiểm tra chữ ký bội song song
Dữ liệu đầu vào của thuật toán bao gồm: Thông điệp dữ liệu cần thẩm tra M và chữ
ký bội (E, S) của nhóm G, khóa công khai của các thành viên trong nhóm
và khóa công khai e của CA. Kết quả đầu ra của thuật toán là sự
khẳng định về tính hợp lệ của chữ ký bội (E, S) hay sự công nhận về nguồn gốc và tính toàn vẹn của thông điệp dữ liệu. Thuật toán gồm các bƣớc nhƣ sau:
• Bƣớc 1: Tính giá trị theo công thức: = (S)e mod n
• Bƣớc 2: Tính giá trị theo công thức: = (E)e mod n
• Bƣớc 3: Tính khóa công khai chung của nhóm YG theo công thức: YG = ∏
• Bƣớc 4: Tính giá trị theo công thức: = ( )
t * ( ) mod n
• Bƣớc 5: Tính giá trị ̿̿̿ theo công thức: ̿̿̿ = H( || M)
• Bƣớc 6: Kiểm tra nếu ̿̿̿ = thì chứng thực tính hợp lệ của chữ ký tập bội (E, S) và
do đó nguồn gốc cũng nhƣ tính toàn vẹn của thông điệp dữ liệu cần thẩm tra M đƣợc công nhận.
3/. Thuật toán kiểm tra chữ ký cá nhân
Giả sử (Ri, Si) là chữ ký cá nhân của thành viên ( ) đƣợc hình thành nhƣ
trên. Thuật toán kiểm tra tính hợp lệ của (Ri, Si) gồm các bƣớc sau:
• Bƣớc 1: Tính giá trị ( ) theo công thức: = (Si)t * ( ) mod n
• Bƣớc 2: Tính giá trị theo công thức: = ∏ mod n
• Bƣớc 3: Kiểm tra nếu = RG thì chữ ký cá nhân (Ri, Si) của thành viên thứ i hợp lệ. Ngƣợc lại, nếu ≠ RG thì có sự giả mạo trong các chữ ký cá nhân của thành viên
Chương 3. CHỮ KÝ BỘI TRÊN ĐƢỜNG CONG ELLIPTIC
3.1. CÁC KHÁI NIỆM VỀ ĐƢỜNG CONG ELLIPTIC
Đƣờng cong Elliptic nói riêng và đại số hình học nói chung đã đƣợc nghiên cứu rộng rãi trong vòng 150 năm trở lại đây và đã đạt đƣợc một số kết quả lý thuyết có giá trị. Đƣờng cong Elliptic đƣợc phát hiện lần đầu vào thế kỷ 17 dƣới dạng công thức:
y2 – x3 = c với c Z
Năm 1985, hai nhà khoa học Neal Koblitz và Victor S.Miller đã độc lập nghiên cứu và đƣa ra đề xuất ứng dụng lý thuyết toán học đƣờng cong Elliptic trên trƣờng hữu hạn.
Tính bảo mật của hệ thống mã hóa sử dụng đƣờng cong Elliptic dựa trên điểm
mấu chốt là độ phức tạp của bài toán logarit rời rạc trong hệ thống đại số. Bài toán này
luôn nhận đƣợc sự quan tâm chú ý rộng rãi của các nhà toán học hàng đầu thế giới.
Không giống nhƣ bài toán logarit rời rạc trên trƣờng hữu hạn hoặc bài toán phân tích
thừa số của số nguyên, bài toán logarit rời rạc trên đƣờng cong elliptic chƣa có thuật
toán nào có thời gian thực hiện nhỏ hơn cấp lũy thừa.
3.1.1. Công thức Weiertrasse và đƣờng cong Elliptic
Gọi F là một trƣờng hữu hạn hoặc vô hạn. Một đƣờng cong đƣợc định nghĩa trên
trƣờng F bằng công thức Weierstrasse:
với (4.1)
Đƣờng cong elliptic trên trƣờng F đƣợc ký hiệu là E(F). Số lƣợng các điểm nguyên trƣờng E ký hiệu #E(F) hay #E. Đối với từng trƣờng hợp khác nhau, công thức Weierstrasse có thể đƣợc biến đổi và đơn giản hóa thành các dạng khác nhau. Một đƣờng
cong elliptic là tập hợp các điểm thỏa mãn công thức trên với ( ) và điểm vô cùng
(ký hiệu O – hay còn gọi là phần tử không).
Trong mật mã học, chúng ta chỉ xét các trƣờng hữu hạn. Hai trƣờng đƣợc xét là
với là số nguyên tố và với các phần tử
• Đƣờng cong Elliptic trên trƣờng nguyên tố hữu hạn Fp
Xét trƣờng Fp(p nguyên tố, p>3) với công thức biến đổi nhƣ sau: Thay vào phƣơng trình (4.1) khi đó ta rút ra đƣợc định nghĩa sau:
Định nghĩa
Một đƣờng cong Elliptic E trên trƣờng hữu hạn Fp đƣợc cho bởi phƣơng trình dạng:
với và ( ) (4.2)
Trong phƣơng trình trên, dấu “=”đƣợc hiểu là “≡”. Trong chƣơng này, quy ƣớc viết ngắn gọn “≡” là “=”.
• Đƣờng cong Elliptic trên trƣờng nhị phân hữu hạn GF(2m)
Xét trƣờng hợp GF(2m) có đặc số khác 2. Có thể thực hiện phép biến đổi nhƣ sau:
Định nghĩa
Đƣờng cong elliptic E trên trƣờng hữu hạn đƣợc cho bởi phƣơng trình dạng:
với (4.3)
3.1.2. Các phép toán trên đƣờng cong Elliptic
Giả sử E là đƣờng cong elliptic trên trƣờng Fp hoặc và P, Q là 2 điểm trên E.
Xét các phép toán sau trên E:
• Phần tử không: Ký hiệu là . Nếu là điểm thì – cũng là . Với mọi điểm ta
định nghĩa .
• Phần tử nghịch đảo: Trong Fp, định nghĩa phần tử nghịch đảo của P = (x,y) là
-P = (x,-y). Nếu Q = -P thì P + Q = O. Trƣờng hợp ta định nghĩa –P = (x, x+y).
• P + Q: Nếu , gọi đƣờng thẳng giao với E tại một điểm –R. Khi đó, Với P, Q, R có tọa độ nhƣ trên hình vẽ ta có các công thức sau:
Hìn h 3.1 P hép c ộng hai điểm P + Q = R
o Trong Fp: . / và . / ( )
o Trong : . / và
( ) ( )
• 2P: g là tiếp tuyến với E tại P, -R là giao điểm của g với E, định nghĩa 2P = R. Với P,
R có tọa độ nhƣ trên hình vẽ ta có công thức sau:
Hìn h 3.2 P hép c ộng P với c hìn h nó P+ P = 2 P = R
o Trong Fp: . / và . / ( ) .
o Trong : và . / .
• kP: kP E(Zp) với k là số nguyên đƣợc tính bằng cách cộng P với chính nó k lần liên
3.1.3. Bài toán Logarith rời rạc trên đƣờng cong Elliptic (ECDLP)
Cho E là một đƣờng cong elliptic và P E là một điểm có bậc n. Cho Q E, tìm số
nguyên dƣơng m (2 ≤ m ≤ n – 2) thỏa mãn công thức Q = mP.
Hiện nay chƣa có thuật toán nào đƣợc xem là hiệu quả để giải bài toán này. Để
giải bài toán logarit rời rạc trên đƣờng cong elliptic, cần kiểm tra tất cả các giá
trị m [2, n-2]. Nếu điểm P đƣợc chọn lựa cẩn thận với n rất lớn thì việc giải ECDLP
xem nhƣ không khả thi.
Độ an toàn của hệ mật mã dựa trên E phụ thuộc vào độ khó của ECDLP. ECDLP đƣợc coi là khó hơn DLP vì những thuật toán tốt nhất để giải DLP không hiệu quả khi áp dụng cho ECDLP.
• Đếm số điểm của đƣờng cong elliptic trên trƣờng Fq.
Việc xây dựng các hệ mật mã trên đƣờng con elliptic bao gồm việc lựa chọn đƣờng cong E thích hợp và một điểm G trên E gọi là điểm cơ sở. Xét trƣờng K là Fq.
Định lý (Hasse):
N là số điểm của E trên trƣờng Fq (trƣờng hữu hạn q phần tử). Khi đó :
| ( )| √
Từ định lý Hasse suy ra ( ) trong đó |t| ≤ 2√ .
Định nghĩa bậc của đƣờng cong Elliptic:
Bậc của một đƣờng cong elliptic là số điểm của đƣờng cong đó. Bậc của điểm G thuộc E là số k sao cho : kG = O; khi đó k = #E(Fq) thì G là điểm cơ sở của E.
• Tính số đồng cấu của đƣờng cong Elliptic
Xét đƣờng cong elliptic trên đƣờng Fq, E(Fq) là nhóm Abel. Vì vậy, E(Fq) đồng cấu với trong đó n2 chia hết cho n1 và q – 1 với các số n1 và n2 duy nhất. Zn là ký
hiệu của nhóm cyclic bậc n. Nếu n2 = 1 thì E(Fq) là cyclic. Trong trƣờng hợp này E(Fq)
là đồng cấu với Zn. Khi đó, tồn tại một điểm GE(Fq) thỏa mãn E(Fq) = {kG|0≤ k≤ n1 – 1};
điểm G đƣợc gọi là phần tử sinh của E(Fq).
Ví dụ:
Xét đƣờng cong elliptic E trên trƣờng Fq với q = 23 có phƣơng trình:
Theo định lý Hasse, #E(F23) = 29, là một số nguyên tố nên E(F23) là cyclic và bất kỳ điểm nào khác 0 đều là phần tử sinh của E(F23). Ví dụ G = (0, 2) là một phần tử sinh
3.2. HỆ MẬT TRÊN ĐƢỜNG CONG ELLIPTIC
Các lý thuyết toán học nền tảng của đƣờng cong elliptic đƣợc các nhà khoa học áp dụng khá hiệu quả vào lĩnh vực mã hóa, bảo mật. Các kết quả nghiên cứu đã đƣợc sử dụng trong quá trình mã hóa dữ liệu, trao đổi khóa và chữ ký điện tử.
3.2.1. Cách nhúng bản rõ lên đƣờng cong Elliptic
Nhúng một bản rõ lên đƣờng cong elliptic (E) là biểu diễn lại bản rõ nhƣ một điểm hoặc tọa độ của các điểm trên E mà nhờ đó cũng ta có thể thực hiện đƣợc các
tính toán trên E. Có một số phƣơng pháp để thực hiện việc này, trong đó có 2 phƣơng
pháp chính là nhúng (imbeding) và mặt nạ (mask)
3.2.1.1. Nhúng (Imbeding)
• Cách 1:
- Để nhúng m lên E(Zp) với p là số nguyên tố, chẳng hạn p ≡ 3(mod 4). Giả sử
E(Zp)
đƣợc cho bởi phƣơng trình (4.2) và giả sử m là số nguyên thỏa mãn: 0 ≤ m ≤ p/1000-1.
- Thêm 3 chữ số vào m đƣợc x thỏa mãn: ( ) .
- Chúng ta sẽ bổ sung các chữ số khác nhau cho đến khi tìm đƣợc x sao cho
( ) là một số chính phƣơng trong Zp và y (với ( ) ) thỏa mãn y ≠ -1 mod p.
- Điểm Pm đƣợc tạo thành khi nhúng m lên E là: ( ( )). Có thể dễ dàng
khôi phục lại m từ ( ) bằng cách loại bỏ 3 chữ số cuối của tọa độ x của điểm Pm.
• Cách 2:
- Bƣớc 1: Sử dụng bảng chữ cái gồm N ký tự. Chia bản ro thành các khối có độ
dài cố định . Các ký tự đƣợc đánh số là 0 ,…, N-1. Một khối văn bản w cùng với
các số
tạo thành một ánh xạ:
w = (a0a1…al-1) xw = a0Nl-1 + a1Nl-2 + … + al-2Nl-1 + al-1, 0 ≤ xw ≤ Nl
- Bƣớc 2: Chọn một giá trị k thích hợp sao cho . Với mỗi j là phần tử của Fq
tính . Lấy điểm đầu tiên mà tọa độ .
- Bƣớc 3: Khôi phục lại khối bản rõ từ bằng cách tính 0 1.
3.2.1.2. Mặt nạ (Mask)
Để biểu diễn lại bản rõ dạng ( ) có thể áp dụng phƣơng pháp mask bằng cách
3.2.2. Các hệ mật trên đƣờng cong Elliptic (ECC)
Hệ mật hóa đƣờng cong elliptic (ECC) có thể đƣợc thực thi tƣơng tự nhƣ các hệ
mật mã khóa trên trƣờng số nguyên, thay vào đó là các điểm trên đƣờng cong mà ta có hệ mã sau:
3.2.2.1. Hệ mã hóa “tựa” Elgamal
Hệ Elgamal làm việc với nhóm cyclic hữu hạn, yêu cầu biểu diễn (nhúng – dùng
embeding) thông điệp m nhƣ một điểm trên đƣờng cong.
Ta có trƣờng số Zp và đƣờng cong elliptic E trên Zp là ( ) cùng điểm cơ sở G . Mỗi ngƣời dùng sẽ chọn một số d là khóa bí mật, dG làm khóa công khai.
Giả sử Alice cần gửi một nhóm thông điệp m cho Bob. Đầu tiên cô ấy nhúng văn
bản m lên E, chẳng hạn m đƣợc thể hiện bằng một điểm . Khi đó cô ta phải mã hóa
. Ký hiệu d là khóa bí mật của Bod, vì vậy khóa công khai của Bod là Q = dG. Alice chọn một số ngẫu nhiên k và gửi cho Bod cặp điểm trên E:
( ) ( )
Để giải mã Bob tính ( ) ( ) ( )
3.2.2.2. Hệ mã hóa Menezes-Vantone
Sự khác biệt của hệ này với hệ tựa Elgamal là Alice áp dụng kỹ thuật mặt nạ
(Masking) thay vì nhúng (Imbeding) khi biểu diễn bản rõ thành điểm trên E.
E là đƣờng cong elliptic trên trƣờng nguyên tố Zp (p >3) sao cho E chứa một nhóm con cyclic H, mà trong đó bài toán ECDLP là khó. Zp, ( ) và điểm G là công khai. Mỗi ngƣời dùng chọn một số ngẫu nhiên làm khóa bí mật và khóa công khai là dG.
Giả sử Alice cần gửi thông điệp ( ) cho Bob.
Giả sử d là khóa bí mật của Bob. Alice chọn số ngẫu nhiên
| | và gửi: ( ) ( ) ( ) ( ) Để giải mã, Bob tính: ( ) ( ) ( ) Chứng minh: vì vậy: ( ) ( ) ( ) ( ) ( )
3.2.3. Trao đổi khóa Diffie – Hellman trên đƣờng cong Elliptic
3.2.3.1. Mô hình trao đổi khóa Diffie – Hellman.
Năm 1976, Whitfield Diffie và Martin Hellman đã đƣa ra giao thức để trao đổi các
giá trị khóa quy ƣớc giữa các đối tác trên đƣờng truyền có độ bảo mật trung bình.
Giao thức này dựa trên nguyên lý của bài toán logarit rời rạc trên trƣờng số nguyên hữu
hạn. Các thao tác thực hiện trao đổi khóa Diffie – Hellman giữa hai đối tác A và B nhƣ
sau:
• A và B thống nhất các giá trị g và số nguyên p < g.
• A chọn số ngẫu nhiên m, tính gm và gửi QA cho A.
• B chọn một số ngẫu nhiên n. B tính giá trị QB = gn và gửi QB cho A.
• A nhận QB và tính theo ( )
• B nhận đƣợc và tính theo ( ) . k chính là giá trị bí mật đƣợc quy ƣớc chung.
3.2.3.2. Mô hình trao đổi khóa Elliptic Curve Diffie – Hellman
Mô hình trao đổi khóa Diffe – Hellman trên đƣờng cong elliptic (ECDH) tƣơng tự mô hình trao đổi khóa Diffie – Hellman. ECDH cũng dựa trên nguyên lý của bài
toán logarit rời rạc nhƣng áp dụng trên EC. Mô hình này dùng để thiết lập một hay
nhiều khóa quy ƣớc chung giữa hai đối tác A và B.
Các thao tác trao đổi khóa bằng ECDH đƣợc thực hiện nhƣ sau:
• A và B thống nhất các tham số sẽ sử dụng nhƣ : đƣờng cong E, điểm cơ sở P(x, y).
• A chọn một giá trị m ngẫu nhiên, tính và gửi cho B
• B chọn một giá trị n ngẫu nhiên, tính và gửi cho A
• A nhận đƣợc và tính G =
• B nhận đƣợc và tính G =
Giá trị điểm G chính là giá trị bí mật quy ƣớc chung.
Giả sử có một ngƣời C tấn công vào đƣờng truyền và lấy đƣợc các giá trị
thì C cần tìm đƣợc m hoặc n để tìm . Điều này chính là giải
bài toán logarit rời rạc trên EC. Bài toán này đòi hỏi chi phí tính toán tƣơng đƣơng với sử dụng thuật toán vét cạn trên EC.
3.2.4. Lựa chọn đƣờng cong Elliptic phù hợp
Để ECDLP trên E(Fq) là khó giải thì cần lựa chọn E và q thích hợp. Độ an toàn của
Vì thế việc lựa chọn một đƣờng cong elliptic có ảnh hƣởng đến tốc độ, tính hiệu