Luận văn Tốt nghiệp nghiên cứu, tìm hiểu và trình bày về chữ ký số trên đường cong elliptic, ứng dụng của đường cong elliptic trong hệ thống bỏ phiếu điện tử và hệ thống tiền điện tử

Tài liệu Luận văn Tốt nghiệp nghiên cứu, tìm hiểu và trình bày về chữ ký số trên đường cong elliptic, ứng dụng của đường cong elliptic trong hệ thống bỏ phiếu điện tử và hệ thống tiền điện tử: 1 TRƯỜNG……………………… KHOA…………………………….. LUẬN VĂN TỐT NGHIỆP NGHIÊN CỨU, TÌM HIỂU VÀ TRÌNH BÀY VỀ CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG Elliptic, ỨNG DỤNG CỦA ĐƯỜNG CONG Elliptic TRONG HỆ THỐNG BỎ PHIẾU ĐIỆN TỬ VÀ HỆ THỐNG TIỀN ĐIỆN TỬ. 2 LỜI CẢM ƠN Lời đầu tiên, em xin được gửi lời cảm ơn sâu sắc tới PGS.TS. Trịnh Nhật Tiến, người thầy đã giúp đỡ em trong suốt quá trình làm khóa luận, đồng thời cũng là người thầy đã hướng dẫn em những bước đi đầu tiên để khám phá một lĩnh vực đầy bí ẩn và thách thức – lĩnh vực an toàn và bảo mật dữ liệu. Em xin được cảm ơn các thầy, các cô đã giảng dạy em trong suốt bốn năm qua. Những kiến thức mà các thầy, các cô đã dạy sẽ mãi là hành trang giúp em vững bước trong tương lai . Em cũng xin được cảm ơn tập thể lớp K50CC, một tập thể lớp đoàn kết với những người bạn không chỉ học giỏi mà còn luôn nhiệt tình giúp đỡ mọi người, những người bạn đã giúp đỡ em trong suốt bốn năm học tập trên giảng đường Đại học. Cuối cùng, em xin đư...

pdf61 trang | Chia sẻ: haohao | Lượt xem: 1452 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Tốt nghiệp nghiên cứu, tìm hiểu và trình bày về chữ ký số trên đường cong elliptic, ứng dụng của đường cong elliptic trong hệ thống bỏ phiếu điện tử và hệ thống tiền điện tử, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
1 TRƯỜNG……………………… KHOA…………………………….. LUẬN VĂN TỐT NGHIỆP NGHIÊN CỨU, TÌM HIỂU VÀ TRÌNH BÀY VỀ CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG Elliptic, ỨNG DỤNG CỦA ĐƯỜNG CONG Elliptic TRONG HỆ THỐNG BỎ PHIẾU ĐIỆN TỬ VÀ HỆ THỐNG TIỀN ĐIỆN TỬ. 2 LỜI CẢM ƠN Lời đầu tiên, em xin được gửi lời cảm ơn sâu sắc tới PGS.TS. Trịnh Nhật Tiến, người thầy đã giúp đỡ em trong suốt quá trình làm khóa luận, đồng thời cũng là người thầy đã hướng dẫn em những bước đi đầu tiên để khám phá một lĩnh vực đầy bí ẩn và thách thức – lĩnh vực an toàn và bảo mật dữ liệu. Em xin được cảm ơn các thầy, các cô đã giảng dạy em trong suốt bốn năm qua. Những kiến thức mà các thầy, các cô đã dạy sẽ mãi là hành trang giúp em vững bước trong tương lai . Em cũng xin được cảm ơn tập thể lớp K50CC, một tập thể lớp đoàn kết với những người bạn không chỉ học giỏi mà còn luôn nhiệt tình giúp đỡ mọi người, những người bạn đã giúp đỡ em trong suốt bốn năm học tập trên giảng đường Đại học. Cuối cùng, em xin được gửi lời cảm ơn sâu sắc tới gia đình em, những người luôn kịp thời động viên, khích lệ em, giúp đỡ em vượt qua những khó khăn trong cuộc sống. Hà nội, tháng 05 năm 2009 Sinh viên Nguyễn Minh Hải 3 TÓM TẮT NỘI DUNG KHÓA LUẬN Khóa luận là sự nghiên cứu, tìm hiểu và trình bày về chữ ký số trên đường cong Elliptic, ứng dụng của đường cong Elliptic trong Hệ thống bỏ phiếu điện tử và Hệ thống tiền điện tử. Khóa luận được trình bày thành bốn chương với nội dung như sau: Chương 1 : Tóm tắt các khái niệm cơ bản trong số học và trong đại số học. Chương 2 : Trình bày về khái niệm đường cong Elliptic, các dạng đường cong và các phép toán trên đường cong Elliptic. Chương 3 : Trình bày một số chữ ký số trên đường cong Elliptic và phương pháp tấn công hệ mã hóa đường cong Elliptic. Chương 4 : Trình bày ứng dụng của đường cong Elliptic trong Hệ thống bỏ phiếu điện tử và Hệ thống tiền điện tử. 4 CÁC KÝ HIỆU VIẾT TẮT Tom Người gửi tin hoặc người thực hiện việc ký BĐK Ban đăng ký BKP Ban kiểm phiếu Jerry Người nhận tin hoặc người yêu cầu ký EC Đường cong Elliptic (Elliptic Curve) ECC Mã hóa đường cong Elliptic (Elliptic Curve Cryptosystem) ECDSA Thuật toán ký trên EC EDLP Bài toán Logarith rời rạc trên EC E-Voting Bỏ phiếu điện tử (Electronic Voting) gcd Ước số chung lớn nhất (Greatest Common Divisor) GF Trường hữu hạn (Galois Field) IEEE Institute of Electrical and Electronics Engineers IETF Internet Engineer Task Force IFP Bài toán ước số nguyên (Integer Factorization Problem) lcm Bội số chung nhỏ nhất (Least Common Multiple) MOV Phương pháp tấn công Menezes – Okamoto - Vanstone NIST National Institute of Standards RFC Request For Comments RIPEMD-160 Hàm băm 160 bit RSA Hệ mã hóa khóa công khai Rivest – Shamir – Adleman TOF Hàm cửa sập một chiều (Trapdoor One-way Function) 5 CÁC KÝ HIỆU TOÁN HỌC Nhóm cyclic được sinh bởi g #E Số phần tử của đường cong elliptic C Tập các bản mã có thể dK Thuật toán giải mã E Đường cong elliptic eK Thuật toán mã hóa F* Nhóm nhân trên trường F Fq Trường hữu hạn với q phần tử G Điểm cơ sở của E K Không gian các khóa O Phần tử trung hòa của E sigK Thuật toán ký số verK Thuật toán kiểm tra chữ ký Zp Vành các số nguyên dương p φ(n) Hàm phi Euler các số nguyên trong Zn nguyên tố cùng nhau với n. 6 DANH MỤC CÁC HÌNH VẼ TRONG KHÓA LUẬN Hình 1: Một ví dụ về đường cong Elliptic....................................... Error! Bookmark not defined. Hình 2: Điểm ở vô cực................................................................... Error! Bookmark not defined. Hình 3: Phép cộng trên đường cong elliptic .................................... Error! Bookmark not defined. Hình 4: Phép nhân đôi trên đường cong elliptic .............................. Error! Bookmark not defined. 7 MỤC LỤC LỜI MỞ ĐẦU ..............................................................................................................................1 Chương 1 : CÁC KHÁI NIỆM CƠ BẢN ..................................................................................11 1.1. KHÁI NIỆM TRONG SỐ HỌC ..........................................................................................11 1.1.1. Ước chung lớn nhất và bội chung nhỏ nhất .......................................................................11 1.1.2. Quan hệ đồng dư ................................................................................................................12 1.1.3. Số nguyên tố .....................................................................................................................13 1.2. KHÁI NIỆM TRONG ĐẠI SỐ ............................................................................................15 1.2.1. Nhóm................................................................................................................................15 1.2.2. Vành ..................................................................................................................................17 1.2.3. Trường ..............................................................................................................................18 1.2.4. Không gian vector ............................................................................................................22 Chương 2. ĐƯỜNG CONG ELLIPTIC ....................................................................................23 2.1. CÔNG THỨC WEIERSTRASSE VÀ ĐƯỜNG CONG ELLIPTIC.......................................24 2.2. ĐƯỜNG CONG ELLIPTIC TRÊN TRƯỜNG R2 .................................................................24 2.2.1. Phép cộng ..........................................................................................................................25 2.2.2. Phép nhân đôi.....................................................................................................................28 2.3. ĐƯỜNG CONG ELLIPTIC TRÊN TRƯỜNG HỮU HẠN ...................................................29 2.3.1. Đường cong elliptic trên trường Fp (p là số nguyên tố)........................................................29 2.3.2. Đường cong elliptic trên trường F2m....................................................................................30 2.3.3. Các phép toán trên đường cong elliptic trong hệ tọa độ Affine ............................................30 2.3.4. Các phép toán trên đường cong elliptic trong hệ tọa độ chiếu..............................................32 2.3.5. Chuyển đổi giữa hệ tọa độ Affine và hệ tọa độ chiếu ..........................................................33 2.3.6. Các phép toán đường cong trong hệ tọa độ chiếu ................................................................33 2.3.6. Phép nhân đường cong .......................................................................................................34 2.4 BÀI TOÁN LOGARIT RỜI RẠC TRÊN ĐƯỜNG CONG ELLIPTIC...................................36 Chương 3. CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTC....................................................37 3.1. CHỮ KÝ SỐ ........................................................................................................................37 3.1.1. Khái niệm chữ ký số.........................................................................................................37 3.1.2. Sơ đồ chữ ký số ................................................................................................................38 3.2. MỘT SỐ SƠ ĐỒ CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTIC......................................41 3.2.1. Sơ đồ chữ ký ECDSA......................................................................................................41 3.2.2. Sơ đồ chữ ký Nyberg- Rueppel ........................................................................................43 3.2.3. Sơ đồ chữ ký mù Harn trên EC .........................................................................................44 8 3.2.4. Sơ đồ đa chữ ký mù của Harn trên EC .............................................................................47 3.3. MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG HỆ ECC ................................................................49 3.3.1. Phương pháp tấn công “baby - step giant - step” ...............................................................49 3.3.2. Phương pháp tấn công MOV ............................................................................................50 Chương 4 . ỨNG DỤNG CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTIC ..........................53 4.1.ỨNG DỤNG TRONG BỎ PHIẾU ĐIỆN TỬ .........................................................................54 4.1.1. Quy trình bỏ phiếu điện tử ................................................................................................54 4.1.2. Sử dụng ECC trong bỏ phiếu điện tử.................................................................................55 4.2. ỨNG DỤNG TRONG HỆ THỐNG TIỀN ĐIỆN TỬ ..........................................................57 4.2.1. Tạo tiền ecash ...................................................................................................................57 4.2.2 Tiêu tiền ecash ..................................................................................................................58 4.2.3 Đổi tiền ..............................................................................................................................58 4.2.4 Kết thúc giao dịch .............................................................................................................58 KẾT LUẬN ................................................................................................................................59 TÀI LIỆU THAM KHẢO .........................................................................................................61 9 LỜI MỞ ĐẦU Mục tiêu cơ bản của mật mã học là đảm bảo tính bí mật. Nó cho phép 2 đối tác trao đổi thông tin với nhau một cách an toàn trên những kênh truyền thông công khai. Hệ mật mã khóa bí mật có thể định nghĩa như sau: Giả sử ký hiệu M là tập tất cả các bản rõ có thể. C là tập tất cả các bản mã có thể. K là tập các khóa có thể. Hệ mật mã khóa bí mật gồm 2 hàm: CMek : , MCd k : , Kk  sao cho mmed kk ))(( với mọi Mm và Kk  . Trong hệ mật mã này, người gửi (giả sử là Tom)và người nhận (Jerry) cùng thỏa thuận một khóa bí mật, bằng cách gặp mặt nhau trực tiếp hoặc nhờ một trung tâm tin cậy phân phối khóa. Nếu Tom muốn gửi cho Jerry một thông điệp Mm , cô ấy sẽ gửi bản mã )(mec k cho Jerry. Jerry sẽ khôi phục bản rõ m bằng việc dùng hàm giải mã kd . Hệ mật mã khóa bí mật phải đảm bảo rằng các hàm ke và kd phải dễ áp dụng nhưng vẫn an toàn trước kẻ tấn công, khi có bản mã c vẫn khó tính được m (hoặc khóa k). Dù hệ mật mã khóa bí mật vẫn đang được dùng trong nhiều ứng dụng, nhưng vẫn còn một số nhược điểm như vấn đề phân phối khóa, vấn đề quản lý khóa và nó không hỗ trợ việc tạo chữ ký điện tử. Ý tưởng chính của các thuật toán khóa công khai là sử dụng 2 khóa khác nhau cho 2 quá trình mã hóa và giải mã. Ý tưởng này được phát minh bởi Whitfield Diffie và Martin Hellman (1976), độc lập với Ralph Merkle (1978). Từ đó, nhiều hệ mật mã khóa công khai được đưa ra, nhưng hầu hết chúng đều hoặc không an toàn hoặc không khả thi. Các thuật toán khóa công khai đều chậm hơn rất nhiều so với các thuật toán khóa bí mật. Thuật toán RSA chậm hơn 1000 lần so với các thuật toán khóa bí mật phổ biến như DES khi triển khai trong các thiết bị phần cứng; và chậm hơn 100 lần trong các phần mềm mã hóa khi mã hóa cùng một khối lượng dữ liệu như nhau. Tuy nhiên, hệ mật mã khóa công khai có một ưu điểm nổi trội là cho phép tạo chữ ký điện tử. Khóa riêng được người sở hữu giữ bí mật và nó được sử dụng để tạo chữ ký điện tử hoặc để giải mã các thông điệp đã được mã hóa bằng khóa công khai. Khóa công khai không cần thiết phải giữ bí mật do tính chất “khó tính được khóa riêng từ khóa công khai” của cặp khóa. Vì vậy, người dùng có thể công bố khóa công khai 10 trên các kênh công cộng cho những ai muốn gửi thông tin cho họ hoặc xác minh chữ ký của họ. Trong lịch sử hơn 20 năm của mật mã khóa công khai, đã có nhiều bài toán “khó” được đưa ra xem xét để ứng dụng cho các vấn đề mật mã học. Trong đó có 2 bài toán nổi bật nhất là bài toán logarith rời rạc trên trường hữu hạn và bài toán tìm ước số nguyên tố. Năm 1985, Neal Koblitz và V.S.Miller đã độc lập nhau cùng đề xuấtviệc sử dụng các đường cong elliptic cho các hệ mã hóa khóa công khai. Họ không phát minh ra thuật toán mã hóa mới với các đường cong elliptic trên trường hữu hạn, mà họ dùng những thuật toán đã có như Diffie – Hellman, sử dụng các đường cong elliptic. Các đường cong Elliptic có thể dùng trong nhiều ứng dụng như kiểm thử số nguyên tố hoặc bài toán tìm ước số nguyên tố. Các hệ mật mã trên đường cong elliptic (ECC) được dự báo là sẽ phổ biến hơn RSA do khóa nhỏ gọn hơn nhiều (khoảng 163 bit) so với RSA (1024 bit). Vì vậy, tốc độ mã hóa nhanh hơn so với RSA. Như vậy ECC có thể được dùng trên các thiết bị cầm tay (có bộ nhớ nhỏ, và tốc độ tính toán không cao) . Việc thương mại hóa ECC đã được một số nơi thực hiện như công ty Certicom và công ty RSA đã hỗ trợ mã hóa ECC trong các bộ công cụ phát triển. Tuy nhiên, một vấn đề có thể ảnh hưởng đến sự chấp nhận ECC rộng rãi như một phần của cơ sở hạ tầng khóa công khai là các kỹ thuật thực thi đường cong elliptic, thói quen, các thuật toán, và các giao thức. ECC đòi hỏi các thủ tục toán học phức tạp trong việc khởi tạo các đường cong. Các chuyên gia công nghệ thông tin vẫn chưa hiểu thấu đáo để thiết kế các hệ thống bảo mật dựa trên mật mã học, trong khi hệ RSA thì không quá phức tạp và khó hiểu. 11 Chương 1. CÁC KHÁI NIỆM CƠ BẢN 1.1. KHÁI NIỆM TRONG SỐ HỌC 1.1.1. Ước chung lớn nhất và bội chung nhỏ nhất a. Khái niệm Cho hai số nguyên a và b, b ≠ 0. Nếu có một số nguyên q sao cho a = b*q, thì ta nói rằng a chia hết cho b, kí hiệu b\a. Ta nói b là ước của a và a là bội của b. Số nguyên d được gọi là ước chung của các số nguyên a1, a2, …, an , nếu nó là ước của tất cả các số đó. Số nguyên m được gọi là bội chung của các số nguyên a1, a2, …, an , nếu nó là bội của tất cả các số đó. Một ước chung d >0 của các số nguyên a1, a2, …, an , trong đó mọi ước chung của a1, a2, …, an đều là ước của d, thì d được gọi là ước chung lớn nhất của a1, a2, …, an . Ký hiệu d = gcd (a1, a2, …, an) hay d = UCLN(a1, a2, …, an). Nếu gcd(a1, a2, …, an) = 1,thì a1, a2, …, an được gọi là nguyên tố cùng nhau. Một bội chung m >0 của các số nguyên a1, a2, …, an , trong đó mọi bội chung của a1, a2, …, an đều là bội của m, thì m được goi là bội chung nhỏ nhất của a1, a2, …, an . Ký hiệu m = lcm(a1, a2, …, an) hay m = BCNN(a1, a2, …, an). b. Ví dụ Cho a =12, b =15, gcd(12,15) = 3, lcm(12,15) = 60. Hai số 8 và 13 là nguyên tố cùng nhau, vì gcd(8, 13) = 1. c. Tính chất 1. d = gcd(a1, a2, …, an) tồn tại x1, x2,…, xn sao cho: d = a1x1+a2x2+…+anxn a1,a2,..an nguyên tố cùng nhautồn tại x1,x2,.. xn sao cho: 1 = a1x1+a2x2+…+anxn 2. d = gcd(a1, a2, …, an)  gcd(a1/d, a2/d,…, an/d) =1. 3. m = lcm(a1, a2, …, an)  gcd(m/a1, m/a2,…, m/an) =1. 4. gcd(m a1, m a2, …, m an) = m * gcd(a1, a2, …, an) (với m ≠ 0). 5. Nếu gcd(a, b) =1 thì lcm(a, b) = a * b 6. Nếu b>0, a = bq+r thì gcd(a,b) = gcd(b, r). 12 1.1.2. Quan hệ đồng dư a. Khái niệm Cho các số nguyên a, b, m (m > 0). Ta nói rằng a và b “đồng dư” với nhau theo modulo m, nếu chia a và b cho m, ta nhận được cùng một số dư. Ký hiệu: a ≡ b (mod m). b. Ví dụ 17 ≡ 5 (mod 3) vì chia 17 và 5 cho 3, được cùng số dư là 2. c. Tính chất 1. Quan hệ “đồng dư” là quan hệ tương đương trong Z: Với mọi số nguyên dương m ta có: a ≡ a (mod m) với mọi a  Z; (tính chất phản xạ). a ≡ b (mod m) thì b ≡ a (mod m); (tính chất đối xứng). a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m); (tính chất bắc cầu). 2. Tổng hay hiệu các “đồng dư ”: (a+b) (mod n)  [(a mod n) + (b mod n)] (mod n) (a- b) (mod n)  [(a mod n) - (b mod n)] (mod n) Tổng quát: Có thể cộng hoặc trừ từng vế nhiều đồng dư thức theo cùng một modulo m, ta được một đồng dư thức theo cùng modulo m, tức là: Nếu ai ≡ bi (mod m) , i = 1...k, thì 1 1 (mod ) k k i i i i i i t a t b m     với ti = ± 1. 3.. Tích các “đồng dư”: (a* b) (mod n)  [(a mod n) * (b mod n)] (mod n) Tổng quát: Có thể nhân từng vế nhiều đồng dư thức theo cùng một modulo m, ta được một đồng dư thức theo cùng modulo m, tức là: Nếu ai ≡ bi (mod m) với i=1..k, thì ta có: 1 1 (mod ) k k i i i i a b m     13 1.1.3. Số nguyên tố a. Khái niệm Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có hai ước là 1 và chính nó. b. Ví dụ 10 số nguyên tố lớn đã được tìm thấy : rank Prime Digits Who when reference 1 232582657-1 9808358 G9 2006 Mersenne 44?? 2 230402457-1 9152052 G9 2005 Mersenne 43?? 3 225964951-1 7816230 G8 2005 Mersenne 42?? 4 224036583-1 7235733 G7 2004 Mersenne 41?? 5 220996011-1 6320430 G6 2003 Mersenne 40?? 6 213466917-1 4053946 G5 2001 Mersenne 39 7 19249·213018586+1 3918990 SB10 2007 8 27653·29167433+1 2759677 SB8 2005 9 28433·27830457+1 2357207 SB7 2004 10 33661·27031232+1 2116617 SB11 2007 c. Định lý 1. Định lý: về số nguyên dương > 1. Mọi số nguyên dương n > 1 đều có thể biểu diễn được duy nhất dưới dạng: 1 2 kn n n 1 2 k. ...=P P Pn , trong đó: k, ni ( i =1,2,..,k) là các số tự nhiên, Pi là các số nguyên tố, từng đôi một khác nhau. 2. Định lý Mersenne. Cho p = 2k -1, nếu p là số nguyên tố, thì k phải là số nguyên tố. 14 Chứng minh Bằng phản chứng, giả sử k không là nguyên tố. Khi đó k = a.b với 1< a, b < k. Như vậy : p = 2k -1 = 2ab -1 = (2a)b -1= (2a -1).E (Trong đó E là một biểu thức nguyên - áp dụng công thức nhị thức Niu-tơn). Điều này mâu thuẫn giả thiết p là nguyên tố. Vậy giả sử sai, hay k là số nguyên tố. 3. Hàm Euler: Cho số nguyên dương n, số lượng các số nguyên dương bé hơn n và nguyên tố cùng nhau với n được ký hiệu  (n) và gọi là hàm Euler. Nhận xét: Nếu p là số nguyên tố, thì  (p) = p-1 Ví dụ: Tập các số nguyên không âm nhỏ hơn 7 là Z 7 = {0, 1, 2, 3, 4, 5, 6, 7}. Do 7 là số nguyên tố, nên Tập các số nguyên dương nhỏ hơn 7 và nguyên tố cùng nhau với 7 là Z 7 * ={1, 2, 3, 4, 5, 6, 7}. Khi đó /Z/ =  (p) = p-1 =8-1 = 7. Định lý hàm Euler. Nếu n là tích của hai số nguyên tố n = p.q, thì  (n) =  (p). (q) = (p-1).(q-1). 15 1.2. KHÁI NIỆM TRONG ĐẠI SỐ 1.2.1. Nhóm a. Khái niệm Nhóm là một bộ (G, *), trong đó G  , * là phép toán hai ngôi trên G thoả mãn ba tính chất sau: + Phép toán có tính kết hợp: (x*y)* z = x*(y*z) với mọi x, y, z  G. + Có phần tử phần tử trung lập e  G: x*e = e*x = x với mọi x  G. + Với mọi x G, có phần tử nghịch đảo x’ G: x * x’ = x’ * x = e. Cấp của nhóm G được hiểu là số phần tử của nhóm, ký hiệu là G . Cấp của nhóm có thể là  nếu G có vô hạn phần tử. Nhóm Abel là nhóm (G, *), trong đó phép toán hai ngôi * có tính giao hoán. Tính chất: Nếu a * b = a * c, thì b = c. Nếu a * c = b * c, thì a = b. * Tập hợp các số nguyên Z cùng với phép cộng (+) thông thường là nhóm giáo hoán, có phần tử đơn vị là số 0. Gọi là nhóm cộng các số nguyên. * Tập Q* các số hữu tỷ khác 0 (hay tập R* các số thực khác 0), cùng với phép nhân (*) thông thường là nhóm giao hoán. Gọi là nhóm nhân các số hữu tỷ (số thực) khác 0. * Tập các vectơ trong không gian với phép toán cộng vectơ là nhóm giao hoán. b. Nhóm Cyclic Nhóm (G, *) được gọi là Nhóm Cyclic nếu nó được sinh ra bởi một trong các phần tử của nó. Tức là có phần tử g  G mà với mỗi a  G, đều tồn tại số n  N để g n = g * g * … * g = a. (Chú ý g * g * … * g là g * g với n lần). Khi đó g được gọi là phần tử sinh hay phần tử nguyên thuỷ của nhóm G. Nói cách khác: G được gọi là Nhóm Cyclic nếu tồn tại g  G sao cho mọi phần tử trong G đều là một luỹ thừa nguyên nào đó của g. Nhóm (Z + , +) gồm các số nguyên dương là Cyclic với phần tử sinh g = 1. 16 Cho (G, *) là Nhóm Cyclic với phần tử sinh g. và phần tử trung lập e. Nếu tồn tại số tự nhiên nhỏ nhất n mà g n = e, thì G sẽ chỉ gồm có n phần tử khác nhau: e, g, g2 , g3 , . . . , g n - 1 . Khi đó G được gọi là nhóm Cyclic hữu hạn cấp n. Nếu không tồn tại số tự nhiên n để g n = e, thì G có cấp . c. Nhóm (Zn* , phép nhân mod n) * Kí hiệu Zn = 0, 1, 2, .. . , n-1 là tập các số nguyên không âm < n. Zn và phép cộng (+) lập thành nhóm Cyclic có phần tử sinh là 1, pt trung lập e = 0. (Zn , + ) gọi là nhóm cộng, đó là nhóm hữu hạn có cấp n. * Kí hiệu Zn * = x  Zn , x là nguyên tố cùng nhau với n. Tức là x phải  0. Zn * được gọi là Tập thặng dư thu gọn theo mod n, có số phần tử là (n). Zn * với phép nhân mod n lập thành một nhóm (nhóm nhân), pt trung lập e = 1. Tổng quát (Zn * , phép nhân mod n ) không phải là nhóm Cyclic. Nhóm nhân Zn*là Cyclic chỉ khi n có dạng: 2,4, pk, hay 2pk với p là nguyên tố lẻ. * Định lý Lagrange: Nếu G là nhóm cấp n và   G, thì Cấp của  là ước của n. * Hệ quả: Giả sử   *nZ có Cấp m, thì m là ước của (n). * Định lý: Nếu p là số nguyên tố thì *pZ là nhóm Cyclic. Nếu b  *nZ thì b (n)  1 (mod n). Nếu p là số nguyên tố thì (p) = p-1. Do đó với b  *pZ (tức b nguyên tố với p), thì b (p)  1 (mod n), hay bp -1  1(mod n). d. Phần tử nghịch đảo đối với phép nhân * Định nghĩa Cho a  Zn , nếu tồn tại b  Zn sao cho a b  1 (mod n), ta nói b là phần tử nghịch đảo của a trong Zn và ký hiệu a -1. Một phần tử có phần tử nghịch đảo, gọi là khả nghịch. * Định lý: UCLN (a, n) = 1  Phần tử a  Zn có phần tử nghịch đảo. Chứng minh Nếu a a-1 ≡ 1 (mod n) thì a a-1 = 1 + kn ↔ a a-1 - kn = 1 → (a, n) =1. Nếu (a, n) = 1, ta có a a-1 + kn = 1 → a a-1 = 1+kn, do đó a a-1 ≡ 1 (mod n). 17 * Hệ quả: Mọi phần tử trong Zn* đều có phần tử nghịch đảo. 1.2.2. Vành Vành là một tập R với 2 toán tử + và . với các điều kiện sau: ,R là một nhóm Abel a . (b . c) = (a . b) . c với mọi a, b, c  R. a . (b + c) = a . b + a . c và (a + b) . c = a . c + b . c với mọi a, b, c  R. Vành tuyến tính F là một vành. Một đa thức bậc n trên F có dạng:    n i n n i i xaxaaxaxf 0 10 ...)( với n là số nguyên dương, các hệ số ai  F ( ni 0 ). Cho 2 đa thức    n i i i xaxf 0 )( và    n i i i xbxg 0 )( Ta định nghĩa tổng của f(x) và g(x) là    n i i ii xbaxgxf 0 )()()( Cho 2 đa thức    n i i i xaxf 0 )( và    m j j j xbxg 0 )( Ta định nghĩa tích của f(x) và g(x) là     nm k k k xcxgxf 0 )()( với     mjni kji jik bac 0,0 Vành được tạo thành bởi tất cả các đa thức trên F với toán tử thông thường là cộng và nhân được gọi là vành đa thức trên F và ký hiệu là F[x]. Định lý (Thuật toán chia cho F[x]) Giả sử f(x) và g(x)  F[x] có bậc nguyên dương, tồn tại duy nhất đa thức q(x), r(x) F[x] thỏa mãn f(x) = g(x) . q(x) + r(x) với bậc của r(x) nhỏ hơn bậc của g(x). Nếu r(x) là đa thức 0 thì g(x) được gọi là ước của f(x). Đa thức bất định f(x) trong F[x] là tối giản nếu nó không có ước có bậc thấp hơn f(x) trong F[x]. a F là nghiệm của f(x) F[x] nếu f(a) = 0. Hệ quả Một phần tử a F là nghiệm của đa thức f(x) F[x] khi và chỉ khi x – a là ước của f(x) trong F[x]. 18 Chứng minh Vì a là nghiệm nên f(a) = 0. Vì f(x) = (x –a).g(x) + r(x) nên bậc của r(x) nhỏ hơn 1, tức là r(x) = c F. Vì vậy, c = f(a) = 0. Ngược lại, nếu f(x) = (x – a). q(x) thì f(a) = 0. Hệ quả Một đa thức khác không f(x)  F[x] bậc n có nhiều nhất n nghiệm trong F. 1.2.3. Trường Trường F là một vành với phần tử đơn vị e  0 sao cho F* = {a F | a  0 } là một nhóm nhân. Định lý Vành Zp là một trường khi và chỉ khi p là số nguyên tố Chứng minh Với a, b  Z, ta có p là số nguyên tố  p|ab tức là p|a hoặc p|b Nếu Zp là một trường thì *pZ tạo thành một nhóm nhân. Nếu p a thì a  0 mod p. Điều này nghĩa là a *pZ và tồn tại a -1. Do đó nếu p|ab và p a thì p|(ab)-1 = b. Vậy p là số nguyên tố. Ngược lại, giả sử p là số nguyên tố. Để chỉ ra rằng *pZ là một nhóm nhân ta chỉ cần chỉ ra rằng với mọi *pZx sẽ luôn tồn tại nghịch đảo x -1. Với a, b  Zp và * pZx , nếu xa xb mod p thì a b mod p  a – b  0 mod p. Vì p|x(a–b)p|x hoặc p|a – b và *pZx tức là p x. Điều này suy ra xZp = {xa | a Zp} = Zp trong đó xa = 1 với a  Zp vì luôn tồn tại phần tử 1 trong Zp. Vậy mỗi *pZx luôn có phần tử nghịch đảo. Định nghĩa F là một trường. Một tập con K của F cũng là một trường với các toán tử của F được gọi là trường con của F. Hay F là một trường mở rộng của K. Nếu K  F thì K được gọi là một trường con hợp lệ của F. Trường là tối giản nếu không có trường con hợp lệ nào. Với trường F bất kỳ, giao F0 của tất cả các trường con hợp lệ là trường tối giản. 19 Trường F được gọi là có đặc số 0 nếu F0  Q nghĩa là F chứa Q như một trường con. Trường F được gọi là có đặc số p nếu F0  Zp. Trường hữu hạn là trường chứa hữu hạn các phần tử. Mọi trường hữu hạn có một số nguyên tố là đặc số của trường. Một trường F có đặc số thì với mọi a  F, pa =   p aa  = 0 Định nghĩa Trường K với phần tử đơn vị nhân là 1. Với p thỏa mãn 01...11   p được gọi là đặc số của K. [5] (Các trường hữu tỷ Q, số thực R, số phức C có đặc số là 0 ) Với p là nguyên tố thì GF(pn) có đặc số p. Nếu H là trường con của K thì H và K có cùng đặc số. F là trường mở rộng của trường K. Ký hiệu F = K( ) nếu F là trường mở rộng nhỏ nhất của K chứa  . Nếu F là trường hữu hạn đặc số p thì nhóm nhân F* = F \ {0} là nhóm cylic và F = Zp( ) với  là phần tử sinh của nhóm F* và  được gọi là phần tử nguyên thủy của F. Với 2 toán tử nhị nguyên * và  trên các tập A và B, một ánh xạ f : A  B nếu với mọi a, b  A ta có: f(a * b) = f(a)  f(b) Giả sử A và B là 2 nhóm (hoặc 2 trường), ta gọi h: A  B là một đẳng cấu A đến B nếu h đảm bảo các tính chất của toán tử nhóm của A. Trường hữu hạn Trường hữu hạn là trường có hữu hạn các phần tử ký hiệu là Fq hoặc GF(q) với q là số các phần tử. Định lý F là trường mở rộng bậc n trên trường hữu hạn K. Nếu K có q phần tử thì F có qn phần tử. Chứng minh Giả sử { n ,...,1 }là cơ sở của F như là một không gian vector trên K. Mọi F sẽ có dạng nncc   ...11 trong đó Kci  (i = 1,…, n). Vì mỗi ci có thể là một trong q phần tử của K nên số các tổ hợp tuyến tính là qn. 20 Định lý Nếu F là một trường hữu hạn có đặc số p thì F có pn phần tử với n nguyên dương. Vì vậy, mọi trường hữu hạn là một mở rộng của trường đẳng cấu Zp với p là đặc số của F. Định lý Trường hữu hạn F = npF là một trường mở rộng của Zp bậc n và mọi phần tử của npF là một nghiệm của đa thức xx np  trên Zp. Chứng minh Đặc số của npF là p. Tập hợp F* = F \ {0} tạo thành nhóm nhân bậc pn -1. Với *F , bậc của trong nhóm chia hết cho bậc của F*, pn – 1. Vì vậy, với mọi *F , chúng ta có 11  np hay   np . Vì xx np  có nhiều nhất pn nghiệm, npF gồm tất cả các nghiệm của xx np  trên Zp. Ví dụ Trường rF2 chứa F2(hoặc Z2).Nếu viết toán tử cộng trong rF2 như là phép cộng vector và viết phép nhân k và v(k,v rF2 )là một tích vô hướng của kF2 và v rF 2 .Khi đó rF2 được xem là không gian vector trên F2 với chiều r. Ký hiệu d là chiều của không gian vector này. Có thể thực hiện ánh xạ 1 – 1 giữa các phần tử trong không gian vector d chiều và các d-tuple của các phần tử trong F2. Vì vậy,có2d phần tử trong không gian vector này.Vì d = r, rF2 là không gian vector r chiều. mqF là một mở rộng của Fq. 2 phần tử mqF , là liên hợp trên Fq nếu  và  là các nghiệm của cùng một đa thức tối giản bậc m trên Fq. 12 ,...,,, mqqq  là các liên hợp của mqF với Fq. mqF là một mở rộng của Fq. Một cơ sở của mqF (không gian vector trên Fq) của { 12 ,...,,, mqqq  } gồm mqF và các liên hợp của nó với Fq , được gọi là cơ sở trực giao của mqF trên Fq. Mọi trường mở rộng bậc hữu hạn của một trường hữu hạn có một cơ sở trực giao. Không gian chiếu 21 Xét L = Kn+1 \{0} với K là một trường. Với A = (a0, a1, …, an), B = {b0, b1, …, bn} L, định nghĩa một quan hệ A ~ B gồm A, B và gốc O = (0, 0,…,0) là cộng tuyến, nghĩa là tồn tại K thỏa mãn : ii ba  , (i = 0, 1, …, n). Quan hệ ~ là quan hệ tương đương và định nghĩa một phân hoạch của L. Tập thương số là không gian chiếu ký hiệu là Pn(K). Mặt phẳng chiếu là tập các lớp tương đương của bộ ba (X, Y, Z) với ( ),,( ZYX  ) ~ (X, Y, Z) ( K ). Mỗi lớp tương đương (X, Y, Z) được gọi là một điểm chiếu trên mặt phẳng chiếu. Nếu một điểm chiếu có Z  0, thì (x, y, 1) là một thể hiện của lớp tương đương với x = Z X , y = Z Y . Mặt phẳng chiếu có thể được định nghĩa là tập tất cả các điểm(x, y)của mặt phẳngAffine cộng với các điểm Z = 0. 22 1.2.4. Không gian vector K là một trường và V là một nhóm cộng Abel. V được gọi là không gian vector trên trường K nếu một toán tử K x V  V được định nghĩa thỏa mãn các điều kiện sau: a(u + v) = au + av (a + b)u = au + bu a(bu) = (ab)u 1u = u Các phần tử của V được gọi là các vector và các phần tử của K được gọi là các vô hướng. V là một không gian vector trên trường K và các v1, …, vm V. Vector trong V có dạng c1v1 + c2v2 + …+ cmvm với ci K (i = 1, …, m) là một tổ hợp tuyến tính của v1, …, vm. Tập hợp tất cả các tổ hợp tuyến tính gọi là span của v1, …,vmvà ký hiệu là span(v1, …, vm). v1, …, vm được gọi là span nếu của V nếu V = span(v1, …, vm). V là không gian vector trên trường K. Các vector v1, …, vm V được gọi là độc lập tuyến tính trên K nếu không có các vô hướng c1,…, cm K thỏa mãn: c1v1 + c2v2 + …+ cmvm = 0 Tập S = {u1, u2,…,un} của các vector tạo thành cơ sở của V khi và chỉ khi u1, u2,…,un là độc lập tuyến tính là span của V. Nếu S là một cơ sở của V thì mọi phần tử của V được biểu diễn duy nhất dưới dạng tổ hợp tuyến tính của các phần tử của S. Nếu không gian vector V có cơ sở là một số hữu hạn các vector thì bất kỳ cơ sở nào của V cũng sẽ có cùng số phần tử. Khi đó nó chính là chiều của V trên K. Nếu F là một trường mở rộng của trường K thì F là một không gian vector trên K. Chiều của F trên K được gọi là bậc mở rộng của F trên K. 23 Chương 2. ĐƯỜNG CONG ELLIPTIC Hệ thống mã khóa khóa công khai dựa trên việc sử dụng các bài toán khó giải quyết. Vấn đề khó ở đây chính là việc số lượng phép tính cần thiết để tìm ra một lời giải cho bài toán là rất lớn. Trong lịch sử 20 năm của ngành mã hóa bất đối xứng đã có nhiều đề xuất khác nhau cho dạng bài toán như vậy, tuy nhiên chỉ có hai trong số các đề xuất đó còn tồn tại đến ngày nay. Hai bài toán đó bao gồm : bài toán logarit rời rạc (discrete logarithm problem) và bài toán phân tích thừa số của số nguyên. Cho đến 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 (elliptic curve ) trên trường hữu hạn. Đường cong elliptic cũng như đại số hình học- đượ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 tiên vào thế kỷ 17 dưới dạng công thức Diophantine : y2 – x3 = c với c Z 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ố. Trong suốt 10 năm gần đây, bài toán này nhận được sự quan tâm chú ý rộng rãi của các nhà toán học hàng đầu trên 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. Thuật toán tốt nhất được biết đến hôm nay tốn thời gian thực hiện cấp lũy thừa. 24 2.1. CÔNG THỨC WEIERSTRASSE VÀ ĐƯỜNG CONG ELLIPTIC Gọi K là trường hữu hạn hoặc vô hạn. Một đường cong elliptic được định nghĩa trên trường K bằng công thức Weierstrasse : y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (1) Trong đó a1 , a2 , a3 , a4 , a5 , a6 K Đường cong elliptic trên trường k được ký hiệu E(K). Số lượng các điểm nguyên trên E ký hiệu là #E(K) , có khi chỉ đơn giản là #E. Đối với từng trường 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. Hình 1: Một ví dụ về đường cong Elliptic 2.2. ĐƯỜNG CONG ELLIPTIC TRÊN TRƯỜNG R2 Đường cong elliptic E trên trường số thực R là tập hợp các điểm (x,y) thỏa mãn công thức: y2 = x3 + a4x + a6 với a4 , a6 R (2) cùng với một điểm đặc biệt O được gọi là điểm tại vô cực (cũng là phần tử identify). Cặp giá trị (x,y ) đại diện cho một điểm trên đường cong elliptic và tạo nên mặt phẳng tọa độ hai chiều (Affine) R x R . Đường cong elliptic E trên R2 25 được gọi là định nghĩa trên R , ký hiệu là E (R). Đường cong elliptic trên số thực có thể dùng để thể hiện một nhóm (E(R), +) bao gồm tập hợp các điểm (x ,y) thuộc R x R với phép công + trên E(R). 2.2.1. Phép cộng Hình 2: Điểm ở vô cực Phép cộng điểm (ESUM) được định nghĩa trên tập E(R) của các điểm (x, y). Điểm tại vô cực 0 là điểm cộng với bất kỳ điểm nào cũng sẽ ra chính điểm đó. Như vậy,    , ,P x y E R P O O P P          3 4 6, ,P x y E R y x a a     (3) Như vậy , tương ứng với một giá trị x ta sẽ có hai giá trị tọa độ y. Điểm (x , -y ) ký hiệu là –P E(R), được gọi là điểm đối của P với : P + (-P) = (x , y) + (x ,- y) = 0 (4) Phép cộng trên E(R) được định nghĩa theo phương diện hình học . Giả sử có hai điểm phân biệt P Và Q , P, Q E(R). Phép cộng trên nhóm đường cong elliptic là P +Q = R ,R E(R). 26 Hình 3: Phép cộng trên đường cong elliptic Để tìm ra điểm R , ta nối P và Q bằng đường thẳng L. Đường thảng L sẽ cắt E tại ba điểm P , Q và -R(x , y). Điểm R (x , -y) sẽ có tung độ là giá trị đối của y. Thể hiện đường cong elliptic dưới dạng đại số , ta có: P = (x1 , y1) Q = (x2 , y2) R= P + Q = (x3 , y3) (5) Trong đó P , Q , R E (R) và : x3 = θ2 – x1 – x2 y3 = θ(x1 + x3) – y1 (6) 2 1 2 1 y y x x     nếu P ≠ Q (7) Hoặc 2 1 4 1 3 2 x a y    nếu P = Q (8) 27 Thuật toán cộng trên đường cong elliptic Input: Đường cong elliptic E(R)với các tham số a4, a6 E(R) , Điểm P = (x1, y1) E(R) và Q = (x2, y2) E(R) Output: R = P + Q, R = (x3, y3) E(R) If P = O then R ← Q và trả về giá trị R If Q = O then R ← P và trả về giá trị R If x1 = x2 then If y1 = y2 then 2 1 4 1 3 2 x a y    else if y1 = −y2 then R ← O và trả về R, else 2 1 2 1 y y x x     end if x3 = θ2 – x1 – x2 y3 = θ(x1 + x3) – y1 Trả về (x3, y3) = R 28 2.2.2. Phép nhân đôi Hình 4: Phép nhân đôi trên đường cong elliptic Xét phép nhân đôi (EDBL): nếu cộng hai điểm P, Q E(R) với P = Q thì đường thẳng L sẽ là tiếp tuyến của đường cong elliptic tại điểm P. Trường hợp này điểm –R sẽ là giao điểm còn lại của L với E. Lúc đó R = 2P. 29 2.3. ĐƯỜNG CONG ELLIPTIC TRÊN TRƯỜNG HỮU HẠN Đường cong elliptic được xây dựng trên các trường hữu hạn. Có hai trường hữu hạn thường được sử dụng: trường hữu hạn Fq với q là số nguyên tố hoặc q là 2m (m là số nguyên). Tùy thuộc vào trường hữu hạn Fq, với mỗi bậc của q, tồn tại nhiều đường cong elliptic. Do đó, với một trường hữu hạn cố định có q phần tử và q lớn, có nhiều sự lựa chọn nhóm đường cong elliptic. 2.3.1. Đường cong elliptic trên trường Fp (p là số nguyên tố) Cho p là số nguyên tố (p>3), Cho a,b Fp sao cho 4a3 + 27b2 ≠ 0 trong trường Fp . Một đường cong elliptic E(Fp) trên Fp (được định nghĩa bởi các tham số a và b) là tập hợp các cặp giá trị (x ,y) (x, y Fp) thỏa công thức: y2 = x3 + ax + b (9) cùng với một điểm 0 – gọi là điểm tại vô cực. Số lượng điểm của E(Fp) là #E(Fp) thỏa định lý Hasse: 1 2 # ( ) 1 2pp p E F p p      (10) Các phép toán của đường cong elliptic trên Fp cũng tương tự với E(R). Tập hợp các điểm trên E(Fp) tạo thành một nhóm thỏa các tính chất sau:  Tính đóng: a, b G, a + b G.  Tính kết hợp: Các phép toán trong nhóm có tính kết hợp Do đó, (a + b) + c = a + (b + c).  Phần tử trung hòa: có một giá trị 0 G sao cho a + 0 = 0 + a = a, a G.  Phần tử đối: , a G , -a G gọi là số đối của a, sao cho -a + a = a + (-a) = 0 Bậc của một điểm A trên E(Fp) là một số nguyên dương r sao cho: .... 0 r A A A    (11) 30 2.3.2. Đường cong elliptic trên trường F2m Một đường cong elliptic E(F2m) trên F2m được đĩnh nghĩa bởi các tham số a , b F2m (với b ≠ 0 ) là tập các điểm (x,y) với các x F2m , y F2m thỏa công thức: y2 + xy = x3 + ax2 + b (12) cùng với điểm 0 là điểm tại vô cực . Số lượng các điểm thuộc E(F2m) ký hiệu # E(F2m) thỏa định lý Hasse : 1 2 # ( ) 1 2pp p E F p p      (13) Trong đó q = 2m . Ngoài ra # E(F2m) là số chẵn Tập hợp các điểm thuộc E(F2m) tạo thành một nhóm thỏa các tính chất sau:  0 + 0 = 0  (x , y) + 0 = (x , y) , (x ,y) E(F2m)  (x , y) + (x, x + y) = 0 , (x ,y) E(F2m) Khi đó (x, x + y) là điểm đối của (x , y) trên E(F2m)  Việc xử lý được thực hiện trên hai hệ tọa độ khác nhau: hệ tọa độ Affine và hệ tọa độ quy chiếu. Với các hệ tọa độ khác nhau, việc tính toán trên đường cong cũng khác nhau. 2.3.3. Các phép toán trên đường cong elliptic trong hệ tọa độ Affine Hệ mã hóa đường cong elliptic dựa trên bài toán logarit rời rạc trên E(F2m) và các tính toán cơ bản trên đường cong elliptic. Phép nhân được thể hiện là một dãy các phép cộng và phép nhân đôi các điểm của đường cong elliptic. Giống như các phép tính trên đường cong elliptic trên số thực, phép cộng và phép nhân đôi được định nghĩa trên hệ tọa độ. Xét đường cong elliptic E trên F2m trong hệ tọa độ Affine. Cho P = (x1 , y1) , Q = (x2 , y2) là hai điểm trên đường cong elliptic E(F2m) . Điểm đối của P là: –P = (x1 , y1+x1) E(F2m). 31 Nếu Q ≠ -P thì P +Q = R = (x3, y3) E(F2m) 32 Thuật toán cộng điểm trong hệ tọa độ Affine Input Đường cong elliptic E(F2m) với các tham số a2 , a6 F2m Điểm P = (x1, y1) E(F2m) và Q = (x2, y2) E(F2m) Output : R = P +Q ,R = (x3, y3) E(F2m) If P = O then R ← Q và trả về giá trị R If Q = O then R ← P và trả về giá trị R If x1 = x2 then If y1 = y2 then 1 1 1 y x x    và x3 ← θ2 + θ + a2 Else If y2 = x1 + y1 then R ← O và trả về R, Else If 1 2 1 2 y y x x     End If x3 ← θ2 + θ + x1 + x2 + a2 y3 ← (x1 + x3)θ + x3 + y1 Trả về (x1, y3) =R 2.3.4. Các phép toán trên đường cong elliptic trong hệ tọa độ chiếu Đường cong E(F2m) có thể được xem là tương đương với tập hợp các điểm E’(F2m) trên mặt phẳng chiếu P2(F2m) thỏa mãn công thức: y2z + xyz = x3 +a2x2z2 +a6z3 (16) Sử dụng hệ tọa độ chiếu , thao tác tính nghịch đảo cần cho phép cộng và phép nhân đôi điểm trong hệ Affine có thể được loại bỏ. 33 2.3.5. Chuyển đổi giữa hệ tọa độ Affine và hệ tọa độ chiếu Mọi điểm (a,b) E(F2m) trong hệ tọa độ Affine có thể được xem là bộ ba (x,y,z) trong E’(F2m) trong hệ tọa độ chiếu với x = a , y =b , z= 1. Hơn nữa , một điểm (tx , ty , tz) trong hệ tọa độ chiếu với t ≠ 0 được xem như trung với điểm (x,y,z). Như vậy , chuyển đổi giữa hệ aìffine và hệ tọa độ chiếu như sau : M(a,b) = M’(a,b,1) (17) '( , , ) , ,1 ,p q p qN p q r N N r r r r             (18) 2.3.6. Các phép toán đường cong trong hệ tọa độ chiếu Phương pháp trình bày công thức của phép cộng và nhân đôi trong hệ tọa chiếu tương tự với hệ tọa độ Affine. Cho P’ = (x1: y1: z1) E’(F2m) , Q’ = (x2: y2: z2) E’(F2m) và P’ ≠ -Q’ trong đó P’ , Q’ thuộc hệ tọa độ quy chiếu. Do P’ = (x1/z1: y1/z1:1), ta có thể áp dụng công thức cộng và nhân cho điểm P(x1/z1: y1/z1) và Q(x2,y2) cho E(F2m) trong hệ Affine để tìm P’ + Q’ = R’ (x’3: y’3:1). Từ đó ta có : 2 ' 3 22 1 B B Ax a A A z     (19) ' ' '1 1 3 3 3 1 1 ( )x yBy x x A z z     Trong đó A = (x2 z1+ x1) và A = (y2 z1+ y1). Đặt z3 = A3z1 và x3 = x’3z3 , y3 = y’3z3 ,nếu P + Q = (x3: y3: z3) thì : x3 = AD, y3 = CD + A2( Bx1 + Ay1) (20) z3 = A3z1 Với C = A + B và D = A2 ( A + a2z1) + z1BC Tương tự 2P = (x3: y3: z3) với x3 = AB , y3 = x14A + B(x12 +y1z1 + A) (21) z3 = A3 34 Trong đó A = x1z1 và B = a6z14 + x14 . Điểm kết quả có thể được chuyển trở lại sang hệ Affine bằng cách nhân với z3-1 . Như vậy sẽ không có thao tác tính nghịch đảo trọng hệ tọa độ chiếu. Do đó chỉ cần 1 phép nghịch đảo sau một dãy các phép cộng và nhân đôi để chuyển sang hệ Affine. So sánh số lượng cá thao tác đối với các phép toán trên đường cong elliptic trọng hệ tọa độ Affine và hệ tọa độ chiếu Tọa độ Affine Tọa độ chiếu Thao tác ESUM EDBL ESUM EDBL Nhân 2 2 13 7 Nghịch đảo 1 1 0 0 2.3.6. Phép nhân đường cong Thuật toán nhân điểm trong hệ tọa đội Affine Input : P E(F2m) và c F2m Output : Q = c x P   0 2 , 0,1 , 1 n i i i n i c b b b     Q ← P For i= n – 1 downto 0 Gán Q ← Q + Q (Affine EDBL) If bi = 1 then Gán Q ← Q + P (Affine ESUM) End if End for Trả về Q Phép nhân được định nghĩa như một dãy các phép cộng : ... c Q c P P P P      35 Thuật toán nhân điểm trong hệ tọa độ chiếu Input : P E(F2m) và c F2m Output : Q = c x P   0 2 , 0,1 , 1 n i i i n i c b b b     Biểu diễn P trong hệ tọa độ chiếu : P’ Gán Q’ ← P’ For i = n -1 downto 0 Q’ ← Q’ + Q’ (Projective EDBL) If bi = 1 then Q’ ← Q’ + P’ (Projective ESUM) End if End for Biểu diễn Q’ trong hệ tọa độ Affine ta được Q Trả về Q 36 2.4 BÀI TOÁN LOGARIT RỜI RẠC TRÊN ĐƯỜNG CONG ELLIPTIC Bài toán logarit 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 điểm Q E , tìm số nguyên dương m (2 ≤ m ≤ n-2) thỏa mãn công thức Q = m x P . Hiện nay chưa có thuật toán nào được xem là hiệu quả để giải quyết bài toán này. Để giải bài toán logarit rời rạc trên đường cong elliptic, cần phải 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 bài toán ECDLP xem như không khả thi. Việc giải bài toán ECDLP khó khăn hơn việc giải quyết bài toán logarit rời rạc trên trường số nguyên thông thường. 37 Chương 3. CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTC 3.1. CHỮ KÝ SỐ 3.1.1. Khái niệm chữ ký số Để chứng thực nguồn gốc hay hiệu lực của một tài liệu (ví dụ: đơn xin học, giấy báo nhập học, ... ), lâu nay người ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài liệu. Như vậy người ký phải trực tiếp “ký tay“ vào tài liệu. Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực nguồn gốc hay hiệu lực của các tài liệu này. Rõ ràng không thể “ký tay“ vào tài liệu, vì chúng không được in ấn trên giấy. Tài liệu “số” ( hay tài liệu “điện tử”) là một xâu các bit (0 hay 1), xâu bít có thể rất dài (nếu in trên giấy có thể hàng nghìn trang). “Chữ ký” để chứng thực một xâu bít tài liệu cũng không thể là một xâu bit nhỏ đặt phía dưới xâu bit tài liệu. Một “chữ ký” như vậy chắc chắn sẽ bị kẻ gian sao chép để đặt dưới một tài liệu khác bất hợp pháp. Những năm 80 của thế kỷ 20, các nhà khoa học đã phát minh ra “chữ ký số” để chứng thực một “tài liệu số”. Đó chính là “bản mã” của xâu bít tài liệu. Người ta tạo ra “chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra “bản mã” của tài liệu với “khóa lập mã”. Như vậy “ký số” trên “tài liệu số” là “ký” trên từng bit tài liệu. Kẻ gian khó thể giả mạo “chữ ký số” nếu nó không biết “khóa lập mã”. Để kiểm tra một “chữ ký số” thuộc về một “tài liệu số”, người ta giải mã “chữ ký số” bằng “khóa giải mã”., và so sánh với tài liệu gốc. Ngoài ý nghĩa để chứng thực nguồn gốc hay hiệu lực của các tài liệu số hóa, mặt mạnh của “chữ ký số” hơn “chữ ký tay” là ở chỗ người ta có thể “ký” vào tài liệu từ rất xa trên mạng công khai. Hơn thế nữa, có thể “ký” bằng các thiết bị cầm tay (VD điện thoại di động) tại khắp mọi nơi (Ubikytous) và di động (Mobile),miễn là kết nối được vào mạng. Đỡ tốn bao thời gian, sức lực, chi phí, … “Ký số” thực hiện trên từng bit tài liệu, nên độ dài của “chữ ký số” ít nhất cũng bằng độ dài của tài liệu. Do đó thay vì ký trên tài liệu dài, người ta thường dùng “hàm băm” để tạo “đại diện” cho tài liệu, sau đó mới “Ký số” lên “đại diện” này. 38 Chữ ký thông thường Chữ ký số * Vấn đề ký một tài liệu: Chữ ký chỉ là một phần vật lý của tài liệu * Vấn đề về kiểm tra: Chữ ký được kiểm tra bằng cách so sánh nó với chữ ký xác thực khác. Tuy nhiên, đây không phải là một phương pháp an toàn vì nó dễ bị giả mạo * Vấn đề ký một tài liệu: Chữ ký số không gắn kiểu vật lý vào bức thông điệp nên thuật toán được dùng phải “ không nhìn thấy” theo một cách nào đó trên bức thông điệp. * Vấn đề về kiểm tra Chữ ký số có thể kiểm tra nhờ dùng một thuật toán kiểm tra công khai. Như vậy, bất kì ai cũng có thể kiểm tra được chữ ký số. Việc dùng chữ ký số an toàn có thể chặn được giả mạo 3.1.2. Sơ đồ chữ ký số Sơ đồ chữ ký là bộ năm (P, A, K, S, V ), trong đó: P là tập hữu hạn các văn bản có thể. A là tập hữu hạn các chữ ký có thể. K là tập hữu hạn các khoá có thể. S là tập các thuật toán ký. V là tập các thuật toán kiểm thử. Với mỗi khóa k  K, có thuật toán ký Sig k  S, Sig k : P A, có thuật toán kiểm tra chữ ký Ver k  V, Ver k : P  A đúng, sai, thoả mãn điều kiện sau với mọi x  P, y  A: Đúng, nếu y = Sig k (x) Ver k (x, y) = Sai, nếu y  Sig k (x) 39 Chú ý : Người ta thường dùng hệ mã hóa khóa công khai để lập “Sơ đồ chữ ký số”. Ở đây khóa bí mật a dùng làm khóa “ký”, khóa công khai b dùng làm khóa kiểm tra “chữ ký”. Ngược lại với việc mã hóa, dùng khóa công khai b để lập mã., dùng khóa bí mật a để giải mã. Điều này là hoàn toàn tự nhiên, vì “ký” cần giữ bí mật nên phải dùng khóa bí mật a để “ký”. Còn “chữ ký” là công khai cho mọi người biết, nên họ dùng khóa công khai b để kiểm tra. Ví dụ : Chữ ký số RSA (Đề xuất năm 1978) a. Sơ đồ chữ ký *Tạo cặp khóa (bí mật, công khai) (a, b) : Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = C = Zn Tính bí mật (n) = (p-1).(q-1). Chọn khóa công khai b < (n), nguyên tố với (n). Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b  1 (mod (n). Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b  Zn , a*b  1 (mod (n)). * Ký số: Chữ ký trên x  P là y = Sig k (x) = x a (mod n), y  A. (R1) * Kiểm tra chữ ký: Verk (x, y) = đúng  x  y b (mod n). (R2) b. Chú ý: - So sánh giữa sơ đồ chữ ký RSA và sơ đồ mã hóa RSA ta thấy có sự tương ứng. - Việc ký chẳng qua là mã hoá, việc kiểm thử lại chính là việc giải mã: Việc “ký số” vào x tương ứng với việc “mã hoá” tài liệu x. Kiểm thử chữ ký chính là việc giải mã “chữ ký”, để kiểm tra xem tài liệu đã giải mã có đúng là tài liệu trước khi ký không. Thuật toán và khóa kiểm thử “chữ ký” là công khai, ai cũng có thể kiểm thử chữ ký được. 40 c. Ví dụ Chữ ký trên x = 2 *Tạo cặp khóa (bí mật, công khai) (a, b) : Chọn bí mật số nguyên tố p=3, q=5, tính n = p * q = 3*5 = 15, công khai n. Đặt P = C = Zn = Zn . Tính bí mật (n) = (p-1).(q-1) = 3 * 4 = 8. Chọn khóa công khai b = 3 < (n), nguyên tố với (n) = 8. Khóa bí mật a = 3, là phần tử nghịch đảo của b theo mod (n): a*b  1 (mod (n). * Ký số: Chữ ký trên x = 2  P là y = Sig k (x) = x a (mod n)= 2 3 (mod 15) = 8, y  A. * Kiểm tra chữ ký: Verk (x, y) = đúng  x  y b (mod n)  2  8 b (mod 15). 41 3.2. MỘT SỐ SƠ ĐỒ CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTIC 3.2.1. Sơ đồ chữ ký ECDSA Để thiết lập sơ đồ chữ ký ECDSA, cần xác định các tham số: lựa chọn đường cong E trên trường hữu hạn Fq với đặc số p sao cho phù hợp, điểm cơ sở G  E(Fq). Một số khuyến nghị khi lựa chọn các tham số: 1. Kích thước q của trường, hoặc q = p (p > 2) hoặc q = 2m. 2. Hai phần tử a, b thuộc Fq xác định phương trình đường cong elliptic: y2 = x3 + ax + b (p>2) hoặc y2 + xy = x3 + ax2 + b (p =2) 3. Hai phần tử xG và yG thuộc Fq xác định điểm cơ sở G = (xG, yG). 4. Bậc n của điểm G với n > 2160 và qn 4 Sinh khóa : 1. Chọn số ngẫu nhiên d trong khoảng [2, n – 1] làm khóa bí mật. 2. Tính Q = dG làm khóa công khai. Ký trên bản rõ m 1. Chọn một số ngẫu nhiên k, 12  nk 2. Tính kG = (x1, y1). 3. Tính r = x1 mod n. Nếu r = 0, quay lại bước 1. 4. Tính k-1 mod n. 5. Tính s = k-1 (m + dr) mod n. Nếu s = 0 quay lại bước 1. 6. Chữ ký trên thông điệp m là (r, s) Kiểm tra chữ ký 1. Kiểm tra r và s có là các số tự nhiên trong khoảng [2, n – 1] không. 2. Tính w = s-1 mod n 3. Tính u1 = mw mod n và u2 = rw mod n 4. Tính X = u1G + u2Q = (xX, yX) 5. Nếu X = O thì phủ nhận chữ ký. Ngược lại tính v = xX mod n. 6. Chữ ký chỉ được chấp nhận nếu v = r. 42 Chứng minh Nếu chữ ký (r, s) trên m là đúng thì s = k-1(m + dr) mod n. k  s-1 (m + dr)  s-1e + s-1 rd  wm + wrd  u1 + u2d (mod n). Vì vậy, u1G + u2Q = (u1 + u2d)G = kG, và vì vậy v = r. 43 3.2.2. Sơ đồ chữ ký Nyberg- Rueppel Giả sử E là một đường cong Elliptic trên trường Zp (p>3 và nguyên tố) sao cho E chứa một nhóm con cyclic H trong đó bài toán logarith rời rạc là “khó”. Với ** pp xP  , ** pp xZExZC  , ta định nghĩa: }:),,,{(  aaEK  với E . Các giá trị  và  là công khai, a là bí mật. Với ),,,(  aEK  chọn một số ngẫu nhiên ||HZk  .Khi đó, với ** 21 ),( pp xZZxxx  ta định nghĩa ),,(),( dckxsig K  trong đó : kyy ),( 21 pxhashyc mod)(1  packd mod exhashtruedcxverK  )(),,(  cdyy ),( 21 pyce mod1 Tất cả các sơ đồ chữ ký đều yêu cầu phải băm văn bản trước khi ký. Chuẩn P1363 của IEEE khuyến nghị dùng SHA-1, được định nghĩa bởi NIST, hoặc RIPEMD-160, được định nghĩa bởi ISO-IEC. Lý do để sử dụng các hàm băm là việc chúng giúp khó tìm được 2 văn bản có cùng giá trị băm, hàm băm giúp chữ ký trên văn bản gốc gọn nhẹ hơn rất nhiều. 44 3.2.3. Sơ đồ chữ ký mù Harn trên EC Chữ ký mù là chữ ký thực hiện trên một văn bản mà người ký hoàn toàn không biết nội dung. Điều này thực hiện được vì người trình ký đã sử dụng một phương pháp nào đó để che dấu nội dung của văn bản gốc để người ký không biết. Để người ký yên tâm, người xin cấp chữ ký phải chứng minh tính hợp lệ của nội dung đã bị che dấu. Sinh khóa Chọn các tham số cho đường cong Elliptic 1. Chọn số nguyên tố p và số nguyên n. Giả sử f(x) là một hàm đa thức trên trường GF(p) bậc n tạo thành trường hữu hạn GF(pn) và a là một nghiệm của f(x) trong GF(pn). 2. Với 2 phần tử a, b của GF(pn), xác định phương trình của E trên GF(pn) ( baxxy  32 trong trường hợp p>3) với 0274 23  ba 3. Với 2 phần tử xp và yp trong GF(pn) xác định một điểm G = (xG, yG) trên E(GF(pn)) (G  O với O là điểm gốc). 4. Giả sử điểm G có bậc q 5. Hàm chuyển c(x) : np n ZpGF )( được cho bởi:     1 0 )( n i i k pcxc npZ ,     1 0 n i i kcx  )( npGF , pci 0 Việc sinh khóa bao gồm: 1. Chọn một khóa bí mật d là số nguyên ngẫu nhiên trong [2, q – 1] 2. Tính khóa công khai Q, là một diểm trên E sao cho Q = dG. Ký mù Giả sử Jerry yêu cầu Tom ký lên một văn bản m0 mà m là đại diện của văn bản này(m = H(m0)với H là một hàm băm nào đó).Giao thức ký được thực hiện như sau: 1. Tom sinh ra cặp khóa ( Rk , ) theo cách sau: chọn ngẫu nhiên ]1,1[  qk và tính ),( kk yxGkR  . Sau đó tính r :     1 0 )( n i i kik pcxcr , trong đó     1 0 n i i kik cx  , pc ki 0 rồi gửi r và R cho Jerry 45 2. Jerry chọn các tham số làm mù ]1,1[,  qba , tính R trên E sao cho R = a R + bG = (xk, yk) và tính r = c(xk) và rarmm  1)( . Sau đó gửi m cho Tom ( m là m sau khi đã bị làm mù). 3. Tom tính )(mod)( qkrmds  , rồi gửi s cho Jerry. 4. Jerry nhận được s , xóa mù để có được chữ ký s trên m bằng cách tính bsas  Cặp (r, s) là một chữ ký ECC trên m. Chứng minh Cặp (r, s) là một chữ ký ECC Harn của thông điệp m và sơ đồ ký trên là một sơ đồ chữ ký mù trên ECC. Việc xác minh tính hợp lệ của chữ ký Harn được thực hiện như sau: 1. Tìm một điểm V trên E sao cho sG – (m + r)Q = (xv, yv). 2. Sử dụng hàm chuyển để tính c(xe) và kiểm tra ))(mod( ? qxcr v . Nếu đúng thì (r, s) được chấp nhận là chữ ký hợp lệ. Để chứng minh giao thức trên thực sự tạo ra chữ ký có tính chất “mù”, chúng ta chỉ ra rằng mỗi người ký có một cặp duy nhất (a, b) là tham số làm mù, với ]1,1[,  qba . Với smrkR ,,,, và một chữ ký hợp lệ (r, s) của m ta có: )(mod))(( 1 qrmrma  )(mod qsasb  Ta phải chứng minh: bGRaR  . Thực vậy, RQrmsGdrGdmGsG GradrarmadGsGkrdmdaGsGGkaGsasGGkabGRa    )( ))(()( 1 46 Ví dụ Xét việc tạo chữ ký mù Harn trên đường cong elliptic y2 = x3 + x + 13 trên trường nguyên tố Z31. Chọn điểm cơ sở G = (9, 10). #E(Z31) = 34 và G là phần tử bậc 34. Khi đó q = 34. Sinh chữ ký Khóa bí mật d = 11, khi đó khóa công khai Q = dG = 11G = (22, 22). Giả sử Jerry có thông điệp m0 với đại là m = 17 và cần Tom ký lên m sao cho Tom không biết nội dung m. 1. Khi nhận được yêu cầu ký từ Jerry, Tom chọn ngẫu nhiên ]1,2[  qk = 20 và tính GkR  = 20P = (26, 10), r = 26. Tom gửi r và R cho Jerry. 2. Jerry chọn các tham số làm mù ]1,1[,  qba với a = 5, b = 7. Tính R trên E với R = a R + bG = 5 R + 7G = 5G = (25, 16), r = 25. Jerry làm mù m thành m với rarmm  1)( = (17 + 25)5-1 – 26 (mod 34) = 30. Jerry gửi m = 30 cho Tom. 3. Tom tính )(mod)( qkrmds  = 11(30 + 26) + 20 (mod 34) = 24. Tom gửi s = 24 cho Jerry. 4. Jerry nhận được s , xóa mù để có được chữ ký s trên m bằng cách tính bsas  =5 x 24 + 7(mod 34)=25. Cặp (25, 25) là chữ ký của Tom trên m=17. Xác minh tính hợp lệ của chữ ký Jerry muốn chứng minh rằng anh ta có chữ ký của Tom trên m = 17 và chữ ký muốn chứng minh chữ ký đó là (25, 25). Các thao tác chứng minh diễn ra như sau: 1. Tìm một điểm V trên E sao cho sG – (m + r)Q = (xv, yv) = 25G – (17 + 25)Q = 25P – 8Q = 25G – 88G = 5G (mod 34) = (25, 16). 2. Kiểm tra r ?  xv. Nếu Jerry cung cấp một chữ ký giả (r’, s’)  (r, s) thì điều kiện kiểm tra r ?  xv không thỏa mãn nên chữ ký sẽ bị phủ nhận. 47 3.2.4. Sơ đồ đa chữ ký mù của Harn trên EC Đa chữ ký hiểu được hiểu là chữ ký được tạo thành bởi nhiều người ký. Có những văn bản cần được ký bởi một số người có thẩm quyền thay vì một người nhằm bảo đảm tính an toàn. Đa chữ ký mù những người ký không biết về nội dung văn bản ký. Sinh khóa Việc chọn các tham số cho đường cong Elliptic tương tự như sơ đồ chữ ký Harn. Chúng ta giả sử rằng có t người ký là Ui, với ti ,.1 . Việc sinh khóa được thực hiện qua các bước: 1. Mỗi người ký Ui chọn ngẫu nhiên một khóa bí mật di là một số nguyên thuộc [1, q – 1] 2. Khóa công khai của người ký Ui là điểm: Qi = diG = ( ii dd yx , ), ti ,.1 3. Khóa công khai cho tất cả người ký là: Q = Q1 +…+ Qt = dG = (xd, yd) với d = d1 + …+ dt (mod q) Ký mù trên m 1. Người ký Ui sinh một lần cặp ( ii Rk , ) bằng cách chọn ngẫu nhiên ]1,2[  qki và tính ),( ii kkii yxGkR  . Ui tính các ir , i = 1,…, t với )( iki xcr  rồi gửi ir và iR cho Ban thư ký. 2. Ban thư ký chọn các tham số làm mù ]1,1[,  qba , tìm điểm R trên E sao cho ),( kk yxbQRaR  trong đó tRRR  1 và tQQQ  1 . Ban thư ký tính ))(mod( qxcr k và rabrmm  1)( . Sau đó, gửi m và r đến cho từng người ký Ui. 3. Ui tính chữ ký )(mod)( qkrmds iii  , i=1,…, t. Sau đó gửi is tới Ban thư ký. 4. Ban thư ký tính ),()( ii eeii yxQrmGs  và kiểm tra ))(mod( ? qxcr iei  , i=1,…, t. Chữ ký mù nhóm ECC là cặp (r, s) trong đó: )(mod...1 qsss t và )(mod qass  . 48 Chứng minh Cặp (r, s) là một chữ ký do nhiều thành viên ký trên thông điệp m – nó cũng là đa chữ ký mù. Việc xác minh tính hợp lệ của đa chữ ký (r, s) của thông điệp m được thực hiện như sau: 1. Tìm một điểm trên E sao cho ),()( ee yxQrmsG  . 2. Sử dụng hàm chuyển để tính c(xe) và kiểm tra ))(mod( ? qxcr e . Nếu đúng thì (r, s) được chấp nhận. Dễ dàng để xác minh rằng RQrmsG  )( Để chứng minh rằng giao thức ký trên tạo ra chữ ký có tính chất “mù” ta phải chỉ ra rằng với mỗi người ký tồn tại duy nhất cặp (a, b) là các tham số làm mù với ]1,1[,  qba . Với các rmsrkR iiii ,,,,, và cặp chữ ký hợp lệ (r, s) của thông điệp m, chúng ta có: )(mod1 qssa  , )(mod)( qrmarmb  Ta phải chỉ ra rằng bQRaR  . Ta có: RQrmsG QrmGsaQrmQrmaQrmGsa QrmarmRRabQRa t i t i ii t        )( )()()()))(( ))()(()..( 1 1 1 49 3.3. MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG HỆ ECC 3.3.1. Phương pháp tấn công “baby - step giant - step” Đây là phương pháp tấn công đầu tiên lên hệ mật mã ECC do Shanks đưa ra, và thực hiện với thời gian là hàm mũ. Nó giải bài toán DLP trong trường nguyên tố Zp được mở rộng cho bài toán EDLP. Bài toán: Tìm k sao cho kG = Q trên E(Fq) với #E(Fq) = N, giả sử k tồn tại thực sự. Thuật toán 1. Chọn số nguyên m > N 2. Tính mG 3. Với i = 0 đến i = m-1 tính (và lưu lại) iG 4. Với j = 0 đến j = m-1 tính (và lưu lại) Q – jmG 5. Sắp xếp danh sách trong bước 3 và 4 theo một thứ tự nhất định 6. So sánh các danh sách ở các bước 3 và 4 cho đến khi tìm được cặp i, j thỏa mãn iG = Q – jmG 7. Kết quả trả lại là k  i + jm (mod N) Chứng minh Vì chúng ta chọn m thỏa mãn m2 > N nên sẽ có k < m2. Đặt k0 k (mod m), mk  00 . Đặt k1 = (k – k0) / m. Ta sẽ có: k = k0 + mk1, với mk  10 Trong thuật toán trên ta thử tìm tất cả i thuộc khoảng của k0 và tất cả j trong khoảng của k1 cho đến khi tìm được i, j thoả mãn iG = Q – jmG  (i + jm)G =Qhay k = i + jm. Vì k tồn tại nên k0, k1 tồn tại. Độ phức tạp thời gian Bước 1 cần O(log N). Bước 2 và bước 3 cần O(m+1) = O( N ). Bước 4 cần O( N ). Thuật toán sắp xếp trong bước 5 được thực hiện trong O(log( N ) N ) thời gian. Bước 6 được thực hiện trong O( N ) thời gian. Bước 7 cũng được thực hiện trong O( N ) thời gian. Bỏ qua các yếu tố logarith rời rạc ( N đủ lớn để bài toán DLP là khó giải), thì thời gian thực hiện của thuật toán là hàm mũ của N . Thuật toán này quá chậm vì thời gian là hàm mũ của độ dài dữ liệu vào N. 50 3.3.2. Phương pháp tấn công MOV Phương pháp tấn công MOV (tên của 3 nhà khoa học Menezes, Okamoto, và Vanstone) làm yếu bài toán logarit rời rạc trên đường cong elliptic E(Fq) thành bài toán logarith rời rạc trên trường mqF với m nào đó. Khi đó có thể tấn công bằng tấn công chỉ số, nhất là khi m nhỏ. Chúng ta bắt đầu bằng định nghĩa cặp Weil cho các đường cong elliptic E(F). Xét đường cong elliptic E(F) và N là một số nguyên không là ước của đặc số của F. Đặt E[N] là tập hợp các điểm trên đường cong E.  1|  NN xFx . Như vậy, N là nhóm các nghiệm thứ N trong F. Vì đặc số của F không chia hết cho N, xN = 1 không có nghiệm kép, nghĩa là có N nghiệm phân biệt trong F. Định nghĩa Một cặp Weil là một ánh xạ: ][][: NxENEeN  n thỏa mãn: 1. eN là song tuyến tính với mọi biến 2. eN là không suy biến với mọi biến. Nghĩa là, nếu eN(S, T) = 1 với mọi S, thì T = O, và nếu eN (S, T) = 1 với mọi T thì S = O. 3. eN (T, T) = 1 T 4. eN(T, S) = eN(S, T)-1  S, T 5. Nếu  à một phần tử đặc biệt của F đóng vai trò là các hệ số của E, thì eN( S,  T) =  (eN(S, T))  S, T 6. Nếu  là một separable endomorphism của E thì eN( (S),  (T)) = eN(S, T)deg   S, T Bài toán Tìm k thỏa mãn kG = Q trên E(Fq) với #E(Fq) = N và giả sử k tồn tại. Sử dụng phép làm yếu bài toán logarith rời rạc trên đường cong E(Fq) thành bài toán logarith rời rạc trên mqF 51 Thuật toán Khi (d1, d2, …,dk) = N, thực hiện các bước sau, sau mỗi bước tăng i lên 1 1. Chọn một điểm ngẫu nhiên )( mqi FES  . 2. Tính bậc Mi của Si 3. Đặt di = gcd(Mi, N) và Ti = (Mi/di)Si. 4. Đặt i1 = eN(G, Ti), i2 =eN(Q, Ti). 5. Giải bài toán logarith rời rạc iki1 = i2 trong trường mqF và tìm được ki (mod di) Sử dụng các giá trị ki (mod di) để tìm k (mod N) với k ki (mod di) i . Giá trị k chính là kết quả cần tìm. Chứng minh Ở bước 1 và 2, chúng ta chọn một điểm và tính bậc của nó. Bước 3 tìm Ti . Đặt ),( iN TRe với R là một điểm tùy ý trên E( mqF ) Khi đó: 1),(),(),(),(  OReSMRedTReTRe NiiNiN d iN d , và vì 21 , mqd F  rồi giải ik ii 12   trong mqF Đặt kG = Q, và định nghĩa li thỏa mãn k  li (mod di). Ta có: eN(kG, Ti) = eN(Q, Ti)  eN(G, Ti)k = eN(Q, Ti)  iki 21   Vì 11 di nên i k ii 12   (mod di)  li ki (mod di) và k phải bằng ki (mod di). Như vậy, việc tìm ki sẽ phục vụ việc tìm k. Độ phức tạp thời gian Khi có các ki việc tìm k là dễ dàng, vì vậy thời gian chạy của thuật toán phụ thuộc vào việc tìm ki. Thời gian tìm ki phụ thuộc vào độ lớn của trường mqF . Nếu m càng lớn thì tính toán càng phức tạp. Không có một tiêu chuẩn chung để chọn m phù hợp cho tất cả các đường cong elliptic. 52 Quay trở lại bài toán tính độ phức tạp, dựa trên đặc điểm E(F mq )  21 nn ZZ  với n1, n2 thỏa mãn n1|n2. B1, B2 là các điểm trên E(F mq ) với các bậc n1 và n2. Bất kỳ điểm Si nào tìm được cũng có thể biểu diễn dưới dạng a1B1 + a2B2 với a1, a2 nào đó. Giả sử p là một số nguyên tố pe||N. Khi đó, pe|n2. Nếu p không nguyên tố cùng nhau với a2 thì pe|n2  pe|Mi với Mi là bậc của Si. Suy ra pe|di = gcd(Mi, N). Vì Si được chọn ngẫu nhiên nên a2 cho Si cũng ngẫu nhiên, do đó xác suất để p không nguyên tố cùng nhau với a2 là 1 – 1/p. Suy ra, xác suất để : pe|di1–1/p với mọi i và với mọi pe||N. Xác suất này đủ thấp để chỉ có một vài di cần cho pe|lcm (d1, d2,…, dk) đúng với mọi p. Vì vậy chúng ta không cần lặp các bước của thuật toán quá nhiều lần. MOV là thuật toán hàm mũ nhỏ đầu tiên để giải bài toán EDLP với k nhỏ. Nó dựa vào tính đẳng cấu giữa đường cong elliptic và trường hữu hạn khi gcd(#E(Fq), q) = 1. Vì vậy, tính hiệu quả của nó giới hạn trong một lớp các đường cong elliptic là lớp các đường cong supersingular vì tồn tại k  6 cho các đường cong này. Với các đường cong elliptic khác (các đường cong nonsupersingular), k quá lớn để áp dụng tấn công MOV. Miyaji chứng minh rằng phép làm yếu trên hiệu quả cho các đường cong elliptic trên trường rF2 . Còn các đường cong elliptic trên trường Fp (với p là số nguyên tố lớn) tránh được cách tấn công này. Hơn nữa, Miyaji đề xuất một cách xây dựng một đường cong elliptic để việc làm yếu EDLP về DLP là không thể. Bởi vậy, không phải mọi hệ mật mã trên đường cong elliptic đều có thể bị tấn công bởi phương pháp MOV. 53 Chương 4 . ỨNG DỤNG CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTIC Các hệ mật trên đường cong elliptic (ECC) có thể được sử dụng hiệu quả trong các thiết bị không dây như là Cell phone , PDA , Smart card... Vì ECC có thể hoạt động trên các thiết bị nhỏ (bộ nhớ nhỏ, bộ tính toán bé, số “cổng” ít, ít năng lượng). Mà vẫn đảm bảo độ mật cao. Với ECC chỉ cần sử dụng các khóa có độ dài nhỏ, nhưng vẫn hiệu quả như các hệ mật khác có độ dài gấp nhiều lần. Ví dụ hệ mật RSA dùng khóa có độ dài 1024 bit , nhưng ECC chỉ cần khóa 160 bit đã mang lại độ mật tương tự. Mặt khác, ECC còn tính nhanh hơn gấp 4 lần. Khóa RSA 1024bit có thể thỏa đáng giao dịch ngày nay, nhưng đến cuối thập kỷ này, để bảo đảm độ mật cần thiết, phải sử dụng khóa RSA 2048 bit. Trong khi đó, để có được độ mật tương tự , ECC chỉ cần khóa 203 bit. Hơn thế nữa thời gian tính toán chỉ bằng 1/10 , chưa kể đến việc ECC sinh khóa nhanh hơn RSA. Các hoạt động kinh tế xã hội (thanh toán, rút tiền, bỏ phiếu, đấu thầu , góp ý kiến) diễn ra mọi nơi mọi lúc. Các thiết bị cầm tay có kết nối an toàn từ xa (Smart card , E-token..). Chắc chắn sẽ được sử dụng nhiều để tiết kiệm thời gian và sức lực. Khi đó không thể quên công nghệ ECC. Hai ứng dụng là phổ biến trên thế giới có thể áp dụng ECC, đó là Bỏ phiếu điện tử và Hệ thống tiền điện tử. 54 4.1.ỨNG DỤNG TRONG BỎ PHIẾU ĐIỆN TỬ Theo phương thức bỏ phiếu điện tử , mỗi lá phiếu phải có Thông tin định danh. Nó có thể là một con số x nào đó và phải khác nhau. Trên mỗi lá phiếu phải có chữ ký trên số định danh x , thì lá phiếu mới mới có giá trị để bầu cử. Nếu cử tri chuyển ngay Số định danh x cho ban kiểm phiếu ký thì lập tức họ xác định mối liên hệ giữa cử tri và x (ví dụ qua địa chỉ Internet nơi người gửi ). Đó là điều cử tri không mong muốn gây rắc rồi sau này. Để tránh tình huống này, cử tri đổi x thành y trước khi đưa cho ban kiểm phiếu ký xác nhận. Ban kiểm phiếu ký vào y, mà không biết đó là số định danh x đã che dấu (làm mù). Họ trao chữ ký trên y là z cho cử tri. Cử tri xóa mù trên z sẽ được chữ ký ban kiểm phiếu trên số định danh x, như vậy cử tri có quyền bầu cử. Để phòng tránh sự gian lận thông đồng giữa một người nào đó trong ban kiểm phiếu với cử tri. Hệ thống dùng “Đa chữ ký mù” để bảo đảm sự nhất trí cao khi cấp quyền bỏ phiếu cho cử tri. 4.1.1. Quy trình bỏ phiếu điện tử Giai đoạn chuẩn bị Các thành phần kỹ thuật của hệ thống bỏ phiếu cũng như chuẩn bị cơ cấu tổ chức. Người kiểm phiếu và nhân viên bầu cử được chỉ định. Các nhân viên bầu cử thực hiện tất cả các bước trong quá trình bỏ phiếu như điều hành hệ thống máy tính, cung cấp dữ liệu cần thiết cho hệ thống. Người kiểm tra cuộc bầu cử sẽ điều khiển toàn bộ quá trình bầu cử bằng cách chỉ đạo các nhân viên bầu cử nhờ việc kiểm tra sự hoạt động của hệ thống máy tính. Hơn nữa, BKP cũng được chỉ định. Đây là người chịu trách nhiệm về kết quả bầu cử. Cuối cùng, danh sách các cử tri cũng được thiết lập. Trong bước này, quan trọng nhất là cơ chế định danh người gửi dùng để sử dụng trong quá trình bỏ phiếu của cử tri. Giai đoạn bỏ phiếu Giai đoạn các cử tri thực hiện bỏ phiếu. Các cử tri phải có một hình thức định danh tính hợp lệ của lá phiếu. Thêm vào đó, một vài kỹ thuật (mã hoá) cần được áp dụng để bảo đảm tính toàn vẹn của lá phiếu. Giai đoạn Kiểm phiếu và thông báo kết quả BKP sẽ tính toán kết quả dựa vào các lá phiếu đã bỏ, sau đó sẽ công bố kết quả. 55 4.1.2. Sử dụng ECC trong bỏ phiếu điện tử 1 .Cấp quyền bầu cử Khi đã được kiểm traCử tri cần BĐK ký trên bí danh của mình. BĐK sẽ sử dụng sơ đồ chữ ký mù Harn để ký như sau: Sơ đồ 4.4.1. Sơ đồ ký mù của BĐK khi cấp quyền bầu cử cho cử tri 1. Cử tri gửi ID m của mình đến BĐK để xin cấp chữ ký. 2. BĐK có cặp khóa công khai/ bí mật trên đường cong elliptic là (d, Q). Khi có yêu cầu ký, BĐK chọn ngẫu nhiên ]1,2[  qk và tính ),( kk yxGkR  . Tính     1 0 )( n i i kik pcxcr , trong đó     1 0 n i i kik cx  , pc ki 0 . Gửi r và R cho cử tri. 3. Cử tri chọn các tham số làm mù ]1,1[,  qba , tính R trên E sao cho R = a R +bG = (xk, yk) và tính r = c(xk) và rarmm  1)( . Sau đó gửi m cho BĐK (m là m sau khi đã bị làm mù). 4. BĐK ký mù (ký trên văn bản đã bị làm mù): )(mod)( qkrmds  , rồi gửi s cho cử tri.Jerry nhận được s , xóa mù để có được chữ ký s trên m bằng cách tính bsas  Cặp (r, s) là một chữ ký ECC trên định danh m của cử tri. Để tăng tính an toàn và công bằng của cuộc bầu cử nhằm tránh gian lận tại giai đoạn đăng ký (cấp quyền bầu cử cho những cử tri không hợp lệ), nên thiết lập BĐK gồm t thành viên (ít nhất là 2). Khi đó, để ký lên định danh của cử tri, t thành viên này có thể dùng giao thức đa chữ ký mù 3.2.4 của Harn để thực hiện việc ký. 2. Bỏ phiếu Sau khi đã đăng ký và được cấp quyền bầu cử, cử tri sẽ tiến hành bỏ phiếu và giả sử lá phiếu của cử tri thứ i là vi. Cử tri tiến hành các bước như sau: 56 1. Nhúng nội dung của lá phiếu lên E, khi đó vi được thể hiện thành một điểm (Pm)iE. Cử tri phải mã hóa Pm bằng khóa công khai của BKP. 2. Giả sử khóa bí mật của BKP là aT thì khóa công khai sẽ là aTG. Cử tri chọn ngẫu nhiên ri và Pm được mã hóa thành một cặp điểm trên E: Vi = (C1, C2) = (riG,( Pm)i + ri(aTG) 3. Cử tri gửi điểm Vi đến BKP. 3. Kiểm phiếu Khi các lá phiếu được chuyển về BKP, nó sẽ được trộn bằng một máy trộn ngẫu nhiên, nhằm ngăn chặn các tiêu cực trong quá trình bỏ phiếu. BKP nhận được các Vi = (C1, C2). Do tính chất đồng cấu của hệ mã ECC được sử dụng, BKP không cần giải mã từng lá phiếu mà có thể tính tổng các lá phiếu đã mã hóa rồi từ đó tính được kết quả cuối cùng của cuộc bỏ phiếu. Để giải mã từng lá phiếu, BKP tính: C2 – aT(C1) = Pm + k(aTG) – aT(kG) = Pm Tuy nhiên, không giải mã từng lá phiếu, BKP vẫn tính được kết quả cuộc bầu cử theo công thức:      N i iT N i N i im CaCP 1 1 1 1 2 57 4.2. ỨNG DỤNG TRONG HỆ THỐNG TIỀN ĐIỆN TỬ Một đồng tiền điện tử C có 2 thông tin quan trọng nhất : Số Seri và giá trị của đồng tiền. Cũng như đồng tiền thông thường(bằng giấy). Hệ thống phải bảo đảm các yêu cầu sau: Ngần hàng phát hành đồng tiền C “khó” nhận biết đồng tiền này(ví dụ : Số seri) của người mua hàng đã rút ra từ tài khoản của họ. Ngân hàng thu nạp đồng tiền C cũng khó thể biết đồng tiền C đã được nhận từ người bán. Mặt khác người bán hàng khó thể biết C được rút từ tài khoản nào. Để thực hiện yêu cầu trên, hiện nay người ta dùng “Chữ ký mù” để ký lên đồng tiền C. Như vậy tiền điện tử C không lưu lại dấu vết của những ai đã “tiêu” (Spending) nó. Trên thực tế đồng tiền C không chỉ do một ngân hàng phát hành, nó có thể là đồng tiền chung của nhiều ngân hàng. Vì vậy nó phải mang dấu ấn của các ngân hàng liên quan. Trong trường hợp này Tổ chức liên ngân hàng sẽ thống nhất một “Đa chữ ký mù” để ký lên đồng tiền C. Quá trình giao dịch sẽ chia thành bốn giai đoạn: 4.2.1. Tạo tiền ecash 1. Sau khi biết được số tiền cần phải thanh toán, phần mềm tại máy khách hàng sẽ sinh ra dãy số ngẫu nhiên, dãy số này được xem như là dãy số tiền tương trưng cho số tiền cần phải rút từ ngân hàng. Một thừa số mù sẽ được đưa vào dãy số, thừa số mù này sẽ khiến cho ngân hàng không thể lưu giữ danh sách dãy số tiền và không biết được nó được tiêu xài ở đâu. 2. Dãy số đã được làm mù này sẽ được gửi đến ngân hàng mà khách hàng đã có tài khỏan trước đấy. 3. Ngân hàng sẽ kiểm tra thông tin được gửi đến. Sau đó ngân hàng sẽ ký lên thông điệp(dãy số), vì dãy số đã được làm mù nên ngân hàng sẽ không biết nó là của ai, tại thời điểm đấy tài khoản của khách hàng sẽ bị trừ một khoảng tương ứng. 4. Ngân hàng gửi dãy số sau khi được ký đến khách hàng. 5. Khách hàng sẽ giải mù những dãy số này, như vậy dãy số cộng với chữ ký của ngân hàng đến lúc này thực sự trở thành những đồng tiền số có giá trị và giá trị của chúng được bảo đảm bởi ngân hàng, và những đồng tiền số này sẽ chứa trên máy tính của người sửa dụng. 58 4.2.2 Tiêu tiền ecash 1. Khách hàng gửi một yêu cầu mua sắm tới Người bán hàng. 2. Người bán hàng gửi một yêu cầu ngược đến cyberwallet software(số tiền cần thanh toán, thông tin về sản phẩm yêu cầu). 3. Khách hàng xác nhận giao dịch và đồng ý giao dịch thì phần mềm sẽ thu nhập những đồng tiền cần thiết đủ số tiền yêu cầu . 4. Chuyển tiền đến người bán hàng 4.2.3 Đổi tiền 1. Trước khi chấp nhận thanh toán này, Người bán hàng phải kiểm tra tính hợp lệ của những đồng tiền số bằng cách gửi chúng đến ngân hàng. 2. Ngân hàng kiểm tra tính hợp lệ của những đồng tiền số và đồng thời xem nó có được tiêu lần thứ hai không bằng cách dựa vào dữ liệu lưu trữ của ngân hàng. Nếu những đồng tiền là hợp lệ, Ngân hàng sẽ phá huỷ những đồng tiền số này, đồng thời lưu dãy số này vào dữ liệu của những tiền đã sử dụng. Và chuyển một lượng tiền đến tài khoản của người bán. 4.2.4 Kết thúc giao dịch Sau khi những đồng tiền đã được kiểm tra hợp lệ, người bán hàng gửi một biên nhận đến khách hàng và giao dịch tài chính được hoàn thành . 59 KẾT LUẬN Hệ thống mã hóa khóa công cộng ra đời đã giải quyết các hạn chế của mã hóa quy ước. Mã hóa khóa công cộng sử dụng một cặp khóa, một khóa (thông thường là khóa riêng) dùng để mã hóa và một khóa (khóa riêng) dùng để giải mã. Mã hóa khóa công cộng giúp tránh bị tấn công khi trao đổi khóa do khóa để giải mã (khóa riêng) không cần phải truyền hoặc chia sẻ với người khác. Ngoài ra,mỗi người chỉ cần sở hữu một cặp khóa công cộng – khóa riêng và người gởi thông tin chỉ cần giữ khóa công cộng của người nhận do đó số lượng khóa cần phải quản lý giảm khá nhiều. Mỗi người chỉ cần lưu trữ bảo mật một khóa riêng của chính mình. Tuy nhiên, do nhu cầu mã hóa và giải mã bằng hai khóa khác nhau trong cùng một cặp khóa nên để bảo mật, kích thước khóa công khai – khóa riêng lớn hơn rất nhiều so với khóa công khai. Do đó tốc độ mã hóa khóa công cộng chậm hơn tốc độ mã hóa khóa quy ước. Tốc độ mã hóa bằng phần mềm của thuật toán DES nhanh hơn khoảng 100 lần so với mã hóa RSA với cùng mức độ bảo mật. Mã hóa khóa công khai dựa trên hai vấn đề lớn của toán học là bài toán logarit rời rạc và bài toán phân tích thừa số của số nguyên. Phương pháp RSA dựa trên bài toán phân tích thừa số của số nguyên tố và đã được đưa ra từ cuối thập niên 70. Phương pháp ECC dựa trên bài toán logarit rời rạc trên trường số của đường elliptic curve (ECDLP) chỉ mới được đưa ra từ năm 1985. Một ưu điểm của ECC là khả năng bảo mật cao với kích thước khóa nhỏ dựa vào mức độ khó giải quyết của vấn đề ECDLP. Đây chính là một tính chất rất hữu ích đối với xu hướng ngày nay là tìm ra phương pháp tăng độ bảo mật của mã hóa khóa công cộng với kích thước khóa được rút gọn. Kích thước khóa nhỏ hơn giúp thu gọn được kích thước của chứng nhận giao dịch trên mạng và giảm kích thước tham số của hệ thống mã hóa. Kích thước khóa nhỏ giúp các hệ thống bảo mật dựa trên ECC giảm thời gian tạo khóa.Thời gian tạo khóa thường rất lớn ở hệ thống RSA. Do có kích thước khóa nhỏ và khả năng phát sinh khóa rất nhanh nên ECC rất được quan tâm để áp dụng cho các ứng dụng trên môi trường giới hạn về thông lượng truyền dữ liệu, giới hạn về khả năng tính toán, khả năng lưu trữ. ECC thích hợp với các thiết bị di động kỹ thuật số như handheld, PDA, điện thoại di động và thẻ thông minh (smart card). 60 Các hệ thống ECC đã và đang được một số công ty lớn về viễn thông và bảo mật trên thế giới quan tâm phát triển. Nổi bật trong số đó là Certicom (Canada) kết hợp với Đại học Waterloo đã nghiên cứu và xem ECC như là chiến lược phát triển bảo mật chính của công ty. Certicom cung cấp dịch vụ bảo mật dựa trên ECC. Ngoài ra, một số công ty khác như Siemens (Đức), Matsushita (Nhật), Thompson (Pháp) cũng nghiên cứu phát triển ECC. Mới đây, RSA Security Laboratory – phòng thí nghiệm chính của RSA – đã bắt đầu nghiên cứu và đưa ECC vào sản phẩm của mình. Tuy nhiên, ECC vẫn có một số hạn chế nhất định. Hạn chế lớn nhất hiện nay là việc chọn sử dụng các tham số đường cong và điểm quy ước chung như thế nào để thật sự đạt được độ bảo mật cần thiết. Hầu hết các đường cong được đưa ra đều thất bại khi áp dụng vào thực tiễn. Do đó hiện nay số lượng đường cong thật sự được sử dụng không được phong phú. NIST đề xuất một số đường cong elliptic curve đã được kiểm định là an toàn để đưa vào sử dụng thực tế trong tài liệu FIPS 186-2. Ngoài ra, đối với các tham số mang giá trị nhỏ, mức độ bảo mật của ECC không bằng RSA (khi e = 3). Đối với một số trường hợp RSA vẫn là lựa chọn tốt do RSA đã chứng minh được tính ổn định trong một khoảng thời gian khá dài. ECC vẫn còn non trẻ và cần được kiểm định trong tương lai tuy nhiên ECC cung cấp khả năng ứng dụng rất lớn trong lĩnh vực mã hóa khóa công cộng trên các thiết bị di động và smart card. Tương lai ECC sẽ được nghiên cứu đưa vào thực tiễn phổ biến hơn. Kết quả chính của khóa luận là : 1. Tìm hiểu , nghiên cứu tài liệu để hệ thống lại các vấn đề sau :  Khái niệm đường cong Elliptic  Chữ ký số trên đường cong Elliptic 2. Nghiên cứu tài liệu và thực tế để hiểu biết ứng dụng của chữ ký số trên ECC vào bỏ phiếu điện tử và dùng tiền điện tử. 61 TÀI LIỆU THAM KHẢO [1] PGS.TS Trịnh Nhật Tiến, 2008. Giáo trình An toàn dữ liệu. Trường Đại học công nghệ – ĐHQGHN. [2] ThS. Trương Thị Thu Hiền, 2006. Hệ mật đường cong elliptic và ứng dụng trong bỏ phiếu điện tử. Trường Đại học công nghệ – ĐHQGHN. [3] TS. Dương Anh Đức, 2005. Mã hóa và ứng dụng. Trường Đại học khoa học tự nhiên– Đại học Quốc gia thành phố Hồ Chí Minh. [4] PGS.TS Trịnh Nhật Tiến, ThS Trương Thị Thu Hiền, 2005. Chữ ký mù bội trên đường cong elliptic và ứng dụng. Trường Đại học công nghệ – ĐHQGHN. [5] Constantin Popescu, 1999, Blind Signature and Blind Multisignature Schemes using Elliptic Curves [6] Peter Landrock, 2005, Practical Electronic Voting Schemes, ECC conference, Copenhagen [7] Thomas Coffee, 2004, Elliptic Curves and Modern Cryptosystems. [8] Joe Hurd, course notes 2005, Elliptic Curve Cryptography – A case study in formalization using a higher order logic theorem prover, Oxford University. [9] [10] [11]

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN TỐT NGHIỆP NGHIÊN CỨU, TÌM HIỂU VÀ TRÌNH BÀY VỀ CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG Elliptic, ỨNG DỤNG CỦA ĐƯỜNG CONG Elliptic.pdf