Đường cong Elliptic và ứng dụng của đường cong Ellpitic
Trang 2I PHẦN MỞ ĐẦU
1 LÝ DO CHỌN ĐỀ TÀI
Số học là ngành lâu đời nhất và đầy hấp dẫn của toán học Các bài toán của
số học đã làm say mê nhiều người Thế giới các con số rất quen thuộc với chúng ta trong cuộc sống hằng ngày, là một thế giới hết sức kỳ lạ và đầy bí ẩn Không những thế, các vấn đề liên quan đến số học cũng rất phong phú và đa dạng như: đồng dư, thặng dư, phân tích thừa số nguyên tố, thuật toán giải mã đường cong elliptic và các ứng dụng… Trong các vấn đề trên thì “Đường cong elliptic và những ứng dụng của đường cong elliptic” là vấn đề mà em thích nhất Vì vấn đề này có nhiều ứng dụng trong việc giải mã, nó được dùng trong việc xây dựng một số hệ mã hóa công khai Ngoài ra, nó còn được dùng trong các phép thử và phân tích số nguyên thành thừa
số nguyên tố bằng đường cong elliptic
Đường cong elliptic và ứng dụng là vấn đề mới, nó đòi hỏi sự kết hợp giữa lý thuyết số và hình học đại số Vấn đề này có nhiều ứng dụng trong thực tiễn và cũng
là các vấn đề được các nhà khoa học trên thế giới đặc biệt quan tâm trong việc mã hóa công khai dùng đường cong elliptic Do đó, cùng với sự hướng dẫn nhiệt tình của giáo viên hướng dẫn, em quyết định chọn đề tài “Đường cong elliptic và ứng dụng của đường cong elliptic” để làm đề tài luận văn tốt nghiệp cho mình
Trang 3những năm giữa thập niên 80 của thế kỷ 20 Đây là sự khẳng định mạnh mẽ nhất của toán học hiện đại trong công nghệ mã hóa
Hiện nay, hệ mã hóa công khai dùng đường cong elliptic đã trở thành một hệ
mã hóa công khai thông dụng, được nhiều người quan tâm nhất thế giới Và trong những năm gần đây ở Việt Nam, loại mã này cũng tạo dược sự hấp dẫn đặc biệt đối với một số nhà toán học thuộc viện toán học Hà Nội như: Hà Huy Khoái, Phạm Huy Điển…Ngoài ra, trong hai năm 2002-2003, trung tâm khoa học tự nhiên và công nghệ Quốc gia về “mã hóa và bảo mật thông tin điện tử” được thực hiện bởi các bộ nghiên cứu của viện toán học Họ đã tích cực tìm hiểu và nghiên cứu về nguyên lý, ứng dụng của hệ mã hóa công khai sử dụng đường cong elliptic Cùng với sự hổ trợ của công cụ toán học và máy tính điện tử, hệ mã hóa công khai sử dụng đường cong elliptic đang có nhiều ứng dụng trong việc bảo mật thông tin, đặc biệt trong An ninh, Quốc phòng
3 MỤC ĐÍCH NGHIÊN CỨU
Vấn đề được nghiên cứu trọng tâm trong luận văn này là “Đường cong elliptic và các ứng dụng” Ở đây tôi không chỉ tìm hiểu về những khái niệm cơ bản của đường cong elliptic mà còn tìm hiểu về những ứng dụng của đường cong elliptic và đặc biệt chú trọng đến ứng dụng trong việc phân tích một số nguyên thành nhân tử và hệ mã hóa công khai dùng đường cong elliptic
4 ĐỐI TƯỢNG NGHIÊN CỨU
Đối tượng nghiên cứu của đề tài này là các khái niệm, tính chất cơ bản của đường cong elliptic Bên cạnh đó tôi còn tìm hiểu hai ứng dụng quan trọng của đường cong này là phân tích một số nguyên thành nhân tử và hệ mã hóa công khai
6 PHƯƠNG PHÁP NGHIÊN CỨU
-Tham khảo tài liệu
-Tìm hiểu thông tin trên mạng
Trang 4-Phân tích, tổng hợp tài liệu
-So sánh với các tài liệu có liên quan
-Tham khảo ý kiến của GVHD
7 CÁC BƯỚC NGHIÊN CỨU
-Bước 1: Chọn đề tài
-Bước 2: Sưu tầm tài liệu từ GVHD và trên internet
-Bước 3:Tham khảo các tài liệu có được
-Bước 4:Xây dựng đề cương
-Bước 5: Viết nháp với sự góp ý của GVHD
-Bước 6: Hoàn chỉnh bài viết và chuẩn bị báo cáo
8 NỘI DUNG LUẬN VĂN
Chương I: Trình bày một số khái niệm, lý thuyết cơ bản giúp người đọc có một cái nhìn tổng quan về một lĩnh vực lý thuyết mới nhưng có rất nhiều ứng dụng như: đường cong Elliptic trên các trường số, phép cộng điểm, cấp, điểm tại vô cùng…
Chương II: Trình bày khá tổng quát những ứng dụng của đường cong Ellitpic Mặc dù đường cong Elliptic có rất nhiều ứng dụng, nhưng trong luận văn này, tôi chỉ trình bày hai ứng dụng nổi bật là: Phân tích số nguyên thành thừa số và một số nét sơ lược về mật mã đường cong Elliptic
Trang 5II PHẦN NỘI DUNG CHƯƠNG I:MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA
ĐƯỜNG CONG ELLIPTIC
1.1 KHÁI NIỆM VỀ ĐƯỜNG CONG ELLIPTIC
1.1.1 ĐỊNH NGHĨA
Đường cong Elliptic trên trường K là tập hợp các điểm (x,y) thỏa mãn
phương trình
6 4 2 2 3 3 1 2
a x a x a x y a xy a
Với điểm O gọi là điểm tại vô cùng (sẽ nói rõ về sau)
Phương trình (1) phải thỏa mãn điều kiện không kỳ dị, tức là nếu nó viết
dưới dạng F(x,y) = 0 thì tại mọi điểm (x,y) thỏa phương trình, có ít nhất một trong
F
Điều kiện không kỳ dị nói trên tương đương với điều kiện, nếu xét tập hợp
các điểm nói trên như một đường cong thì đường cong đó không có điểm bội Như
vậy nếu biểu diễn 2
y như là một đa thức bậc 3 của x thì đa thức đó không có nghiệm bội
Chú ý rằng phương trình trên đây không duy nhất, trong nhiều trường K, có
thể tìm được “dạng tối thiểu” của phương trình biểu diễn đường cong
- Nếu K là trường có đặc số 2 thì đường cong elliptic trên K là tập hợp các
điểm thỏa phương trình
b ax x cy
y2 + = 3 + +
Hoặc
b ax x xy
Với một điểm ở vô tận O
(Ở đây ta không quan tâm phương trình bậc 3 ở vế phải có nghiệm bội hay
không)
- Nếu K là trường có đặc số 3, thì đường cong elliptic trên K là tập hợp các
điểm thỏa phương trình
Trang 6y2 = x3 +ax2 +bx+c
(4)
(Phương trình bậc 3 ở vế phải không có nghiệm bội), với một điểm ở vô tận O
Nếu ta xét phương trình (1) với các hệ số trong Z, thì vì Z có thể nhúng vào trong mọi trường K tùy ý nên có thể xem xét phương trình trên như là phương trình trên trường K Lưu ý: phương trình đó có thể thỏa mãn điều kiện không kỳ dị đối
với trường này, nhưng lại không thỏa mãn điều kiện đó đối với trường khác
Chẳng hạn nếu trường đang xét có đặc số 2 thì ta có
đương của (x,y,z) chứa bộ ba ( , ,1)
z
y z
x
Ta có thể xem mặt phẳng xạ ảnh P2 như mặt phẳng thông thường (Aphin) trong đó “điểm tại vô tận” ứng với z = 0
Một đường cong trong mặt phẳng thông thường có thể tương ứng với đường cong trong mặt phẳng xạ ảnh bằng cách thêm vào các điểm tại vô cùng Để làm việc
đó, trong phương trình xác định đường cong, ta chỉ cần thay x bởi
Đường cong Elliptic với phương trình (1) được thêm vào các điểm tại vô
cùng để có đường cong tương ứng trong không gian xạ ảnh
6 4 2 2 3 2 3 1
2
z a x a z x a x yz a xyz a z
a x a x a x y a xy a
Ta có thể trang bị cho các điểm của đường cong cấu trúc nhóm Abel cộng tính như sau:
Trang 7s Phần tử O = (0,1,0) là điểm tại vô cùng
s Điểm với tọa độ (x,y) có nghịch đảo là điểm với tọa độ (x,−y−a1x−a3)
s Nếu 2 điểm P1(x1,y1), P2(x2,y2) không phải là nghịch đảo của nhau thì
)(
3 1 3
1 3 1 3
1 2
1 3
x x m x a a y y
a m m x x x
−+
−
−
=Trong đó:
2 1 3
1 1 1
1 1 4 1 2
2 1
2 1 2
1
2 1
2
23
P P khi a
x a y
y a a x a x m
P P khi x
x
y y m
=+
+
−++
Chứng minh: Bằng tính toán trực tiếp dựa vào phương trình xác định đường
cong, dễ kiểm tra cách định nghĩa phép cộng trên thỏa mãn các tiên đề của nhóm
Abel
1.2 ĐƯỜNG CONG ELLIPTIC TRÊN TRƯỜNG SỐ THỰC
Trong những trường với đặc số khác 2 và 3, phương trình (1) có thể đưa về
2
2 2
1
3 1
a a
x X
a x a y Y
++
=
++
=
Để đơn giản ta thường dùng dạng sau đây, gọi là dạng Weierstrass của đường
cong:
b ax x
y2 = 3+ +
(6)
Trong trường hợp này biệt thức ∆ của đường cong là:
∆=−16(4a3 +27b2)
Như vậy điều kiện để đường cong không có điểm kỳ dị là: 4a3 +27b2 ≠0
Ta sẽ sử dụng dạng Weierstrass của đường cong Bằng tính toán trực tiếp tọa
độ các điểm theo công thức đã cho trong định lý 1.1.2, ta có thể thấy luật cộng trong
nhóm lập bởi các điểm của đường cong có mô tả hình học sau đây:
Trang 8Nếu các điểm P, Q của đường cong có hoành độ x khác nhau thì đường thẳng
đi qua P,Q sẽ cắt đường cong tại một điểm thứ ba Điểm đối xứng với giao điểm đó qua trục hoành là điểm P+Q
Trong trường hợp P,Q có cùng hoành độ, tung độ của chúng là các giá trị đối nhau và P, Q là hai điểm đối xứng nhau qua trục hoành Khi đó đường thẳng PQ
sẽ cắt đường cong tại vô cùng, chính là điểm O của nhóm cộng các điểm và P, Q là nghịch đảo của nhau
Rõ ràng cộng P với O, thực hiện bằng cách nối P với điểm tại vô cùng sẽ cắt đường cong tại điểm đối xứng với P qua trục hoành như vậy P+O=P
Trong trường số thực, điểm tại vô cùng được quy ước như là điểm “dính” hai đầu của các đường thẳng song song với trục tung Nó được xem như là điểm “làm đầy” hay là “điểm đóng” đối với đường cong tạo bởi tập điểm thỏa mãn phương
trình (1) Nó được xem như điểm “tột đỉnh” và cũng là điểm “đáy cùng” của mỗi
đường thẳng đứng
Trên tập điểm của đường cong elliptic, ta sẽ thiết lập phép tính cộng các điểm để biến nó thành môt nhóm
Quy tắc cộng: tổng của ba điểm A, B, C thẳng hàng (cùng ở trên đường
cong) là điểm tại vô cùng, tức A+B+C=O
Điểm tại vô cùng được quy ước là 0-điểm của phép cộng
Từ quy tắc chung này ta suy ra nguyên tắc lấy điểm nghịch đảo và phép cộng các cặp hai điểm như sau: Khi hai điểm P, Q của đường cong cùng nằm trên một đường thẳng đứng thì nó thẳng hàng với điểm vô cùng và ta có P+Q+O=O hay P=-
Q Như vậy hai điểm nằm trên đường cong có cùng hoành độ là nghịch đảo của nhau
Khi hai điểm A, B của đường cong không nằm trên cùng một đường thẳng đứng, tức khác nhau về hoành độ thì tồn tại điểm C trên đường cong thẳng hàng với hai điểm này và A + B + C = O hay C = -(A+B)
Muốn cộng một điểm P trên đường cong với chính nó, ta ta coi nó như là điểm bội 2 (tiếp điểm của đường cong với tiếp tuyến tại điểm này) và ta sẽ tìm được một điểm khác trên đường cong, ký hiệu là G, nằm trên tiếp tuyến này và D+D+G=O hay G = -2D
Trang 9Để minh họa hình học cho phép cộng trên, ta xét ví dụ cụ thể với đường cong Elliptic cho bởi hình vẽ sau:
Công thức giải tích cho các tính toán cộng điểm (như mô tả trên) hoàn toàn
có thể tính được bằng cách viết ra các phương trình đường thẳng, phương trình đường tiếp tuyến (nhờ phép lấy đạo hàm của hàm ẩn), rồi cho giải các hệ phương trình Tuy nhiên, các công thức này khá cồng kềnh trong trường hợp tổng quát
* Đối với đường cong dạng Weierstrass y2 = x3 +ax+b
(a 1 = a 2 = a 3 = 0) thì công thức cộng hai điểm P 1 =(x 1 ,y 1 ), P 2 =(x 2 ,y 2 ) được xác định bởi công thức:
)(
3 1 1 2
1 2 1 3
2 1 2
1 2
1 2 3
x x x x
y y y y
x x x
x
y y x
23
22
3
3 1 1
2 1 1 3
1 2
1
2 1 3
x x y
a x y y
x y
a x x
Trang 10Điểm nghịch đảo của P = (x1,y1)∈E là –P = (x1,y1+c) Nếu Q≠-P, thì P+Q=(x3,y3), trong đó
+
+
=
++
+
+
=
c y x x x x
y y y
x x x
x
y y x
1 3 1 2 1
2 1 3
2 1 2
2 1
2 1 3
)(
a x y
c
a x x
1 3 1
2 2 1 3
2
2 4 1 3
)(
* Công thức cộng điểm cho đường cong dạng (3): y2 +xy= x3 +ax2 +b
Điểm nghịch đảo của P=(x1,y1)∈E là –P=(x1,y1+x1) Nếu Q≠-P, thì P+Q=(x3,y3), trong đó
+
+
=
+++
+
++
+
+
=
1 3 3 1 2 1
2 1 3
2 1 2 1
2 1 2
2 1
2 1 3
)
x x
y y y
a x x x x
y y x
x
y y x
1 1 2 1 3
2 1 2 1 3
x x x
y x x y
x x
b x
(12)
Vì các điểm của đường cong là các phần tử của một nhóm Abel, ta sẽ dùng
ký hiệu nP để chỉ phần tử nhận được bằng cách cộng liên tiếp n lần điểm P
Định nghĩa bậc của một điểm:
Điểm P của đường cong được gọi là điểm bậc hữu hạn nếu tồn tại số nguyên dương n sao cho nP = O Số n nhỏ nhất thỏa mãn điều kiện đó được gọi là bậc của P
Trang 111 2 1 3
2 1 2
1 2
1 2 3
x x x x
y y y y
x x x
x
y y x
23
22
3
3 1 1
2 1 1 3
1 2
1
2 1 3
x x y
a x y y
x y
a x x
3
3
y x
.2
00.32
2
0 2 0
2 0
.16)
(2
3
1 0 0
2 0 0
1 =− + + − = −
y
a x y y
).
16 , 0 ( ) , (
Trang 12.2
433.32
2
0 2 0
2 0
16)(
2
3
1 0 0
2 0 0
1 =− + + − =−
y
a x y y
)
16,5(),(
2 = 1 1 = − −
• Tính 3P = 2P+P = (x2,y2)
11)35(35
816)
(
2 0
1 2
0 1
0 1
y y x
32 )
11 3 ( 3 5
8 16 8
) ( 0 2
0 1
0 1 0
−
=
x x
y y y
y
⇒3P = (x2,y2) = (11,-32)
• Tính 4P = 2P+2P = (x3,y3)
11)5.(
2)
16.(
2
43)5.(
32
2
1 2 1
2 1
32)115()16(2
43)5(316)(
2
3 1 1
2 1 1
−
−
−+
=
−
++
)
32,11(),(
1.3 ĐƯỜNG CONG ELLIPTIC TRÊN TRƯỜNG SỐ HỮY TỶ
Đường cong Elliptic trên trường hữu tỷ là đường cong cho bởi phương trình
(5), trong đó các hệ số là các số hữy tỷ và ta cũng chỉ xét các điểm với tọa độ là các
số hữu tỷ Nghiên cứu đường cong Elliptic trên trường hữu tỷ cũng có nghĩa là nghiên cứu tập nghiệm hữu tỷ của phương trình trên, vấn đề này còn liên quan đến chứng minh định lý lớn Fermat
Giả sử E là đường cong Elliptic đã cho Ta ký hiệu E(Q) là tập hợp các điểm
có tọa độ hữu tỷ, tập hợp này có cấu trúc nhóm Abel Các điểm bậc hữu hạn của nhóm Abel E(Q) lập thành nhóm con E(Q)tors gọi là nhóm con xoắn của E(Q) Khi
đó E(Q) sẽ là tổng trực tiếp của E(Q)tors với nhóm con các điểm bậc vô hạn
Trang 13Bài toán tìm điểm hữu tỷ của đường cong liên quan đến việc thành lập những
hệ mật mã kiểu mới, cũng như các thuật toán khai triển nhanh số nguyên cho trước thành thừa số nguyên tố
Việc xác định nhóm con xoắn của đường cong Elliptic không phải là khó khăn.Tuy nhiên việc chỉ ra tất cả các khả năng của các nhóm con đó (chỉ tồn tại 15 khả năng khác nhau) lại là một bài toán khó, và mới được giải quyết năm 1977 bằng định lý Mazur
Giả định:Có những đường cong Elliptic trên Q có hạng lớn tùy ý
Kỷ lục thế giới hiện nay là đường cong sau, hạng của nó có ít nhất là 24:
y2+xy+y=x3-12003982036992245303534619191166796374x+
504224992484910670010801799168082726759443756222911415116
Nó được phát hiện vào tháng 1/2000 do Roland Martin và William Mc Millen của chi nhánh an ninh Quốc gia Mỹ
1.4 ĐƯỜNG CONG ELLIPTIC THẶNG DƯ MODULO N
Cho n là số nguyên lẻ và p là nhân tử nguyên tố của n, giả sử p>3 Với mỗi
số nguyên m bất kỳ x1, x2 có mẫu số nguyên tố với m Ta viết x1≡x2 modm nếu
x1-x2 viết dưới dạng phân số tối giản với tử số chia hết m Với mỗi số hữu tỷ bất kỳ
x1 có mẫu nguyên tố với m, có một số nguyên duy nhất x2 (là số không âm nhỏ nhất) giữa 0 và m-1 sao cho x1≡x2 modm Đôi khi ta viết “x1 mod m” để ký hiệu
Trang 14Giả sử ta có phương trình dạng y2 = x3 +ax+b
với a, b∈Z và một điểm P=(x,y) thỏa phương trình Trong thực tế đường cong E cùng với điểm P được sinh
ra một cách “ngẫu nhiên”
Ví dụ 1:
Bằng cách chọn 3 số ngẫu nhiên a, x, y trong một số miền và đặt
)( 3
2
ax x
+27b2,n) Nếu (4a3+27b2,n)>1 thì hoặc n (4a3 +27b2)(trong trường hợp này ta phải có cách lựa chọn a, b khác) hoặc ngược lại ta thu được ước số không tầm thường của n (trong trường hợp này ta đã làm xong) Vì thế
ta giả sử (4a3+27b2,n) = 1
Bây giờ, giả sử rằng ta muốn tìm bội kP dùng phương pháp nhân đôi liên tiếp Điều này có thể được làm trong O(logk) bước, nâng lên lũy thừa bậc 2 hay một phép cộng của 2 điểm phân biệt Có nhiều cách để đi đến được điều này
Ví dụ 2:
k có thể được viết dưới dạng nhị phân a0 + a12 +…+ an-12n-1 thì P có thể được ghép đôi liên tiếp với 2jP được cộng tổng riêng thì tương ứng số bit của aj là 1 Ngoài ra, k có thể dược phân tích thành tích của tất cả các số nguyên tố lj và sau đó
có thể tính liên tiếp l1(P), l2(l1P), …Trong đó l1,l2, …là các số nguyên tố trong phép phân tích thành thừa số Ở đây, mỗi bội số ljPj với Pj = lj-1lj-2…l1P được tính bằng cách viết lj ở dạng nhị phân và dùng phép nhân đôi liên tiếp
Ta sẽ xem xét điểm P và tất cả các bội modulo n của nó Điều này có nghĩa
là ta đặt P mod n = (x mod n, y mod n) và mỗi khi ta tính một vài bội kP, tức ta tính thặng dư của những tọa độ modulo n Để có thể làm việc với modulo n, có một điều kiện phải giữ cố định khi biểu diễn một bậc 2 hay tổng hai điểm khác nhau là tất cả mẫu số phải nguyên tố với nhau
Trang 15và chỉ khi không có số nguyên tố p n với tính chất sau: Điểm P1 mod p và P2 mod p
∈ E mod p và P1modp+P2modp=Omodp∈E mod p Ở đây E mod p ký hiệu đường cong Elliptic trên Fp thu được bởi thặng dư modulo p hệ số của phương trình
b ax
x
y2 = 3 + +
Chứng minh:
)
(⇒ : Giả sử P1 = (x1,y1), P2 = (x2,y2) và P1+ P2∈E, tất cả các tọa độ có mẫu
số nguyên tố với n, ta cần chứng minh ∃/p n:P1modp+P2modp=Omodp
hay∀p n thì P1modp+P2modp≠Omodp
Cho p là ước số nguyên tố bất kỳ của n, ta phải chứng minh rằng
p O p P
s Bây giờ ta giả sử x1 ≡ x2 mod p .
w Nếu P1 = P2 thì tọa độ của P1 + P2 = 2P1 tìm được bởi công thức:
23
22
3
3 1 1
2 1 1 3
1 2
1
2 1 3
x x y
a x y y
x y
a x x
Và 2P1 mod p được tìm thấy bởi công thức như trên với mỗi số hạng thay thế bởi thặng dư modulo p của nó
Hiển nhiên 2y1 không chia hết cho p, như thế mẫu số của hoành độ của 2 P1
không chia hết cho p, dẫn đến tử số (3x12 +a)Mp Nhưng điều này có nghĩa x1 là nghiệm modulo p của cả phương trình bậc ba x3 +ax+b
và đạo hàm của nó (mâu thuẩn với giả thiết không có nghiệm bội modulo p)
w Giả sử P1 ≠ P2
Trang 16Từ x x mod p
2
1 ≡ và x2 ≠ x1, ta có thể viết x2 =x1+ p r x với r>1, cả tử
và mẫu của x không chia hết cho p
Vì từ giả thiết P1 + P2 có mẫu không chia hết cho p, theo công thức:
1 2 1 3
2 1 2
1 2
1 2 3
x x x x
y y y y
x x x
x
y y x
1 2
1
2 1 1
3 1 1
3 1
2
2
mod)3
(
)3
()
()(
1
++
+
≡
++
++
≡++
++
=
r r
r r
r
p a
x x p y
a x x p b ax x b x p x a x p x y
Vì thế (P1 mod p) + ( P2 mod p) = (2P1 mod p)
Như vậy P1 mod p + P2 mod p = O mod p ⇔ y1 ≡ y2 ≡ 0mod p
Suy ra 2 ( 2 1)( 2 1)
1 2
1 2 1 3
2 1 2
1 2
1 2 3
x x x x
y y y y
x x x
x
y y x
Cho thấy không có mẫu số chia hết cho p
Trang 17Vì thế giả sử rằng x2 ≡ x1 mod p thì y y mod p
1
2 ≡ ±Nhưng vì (P1modp)+(P2modp)≠(Omodp)
2 3
2 2
3
3 1 1
2 1 1 3
1 2
1
2 1 3
x x y
a x y y
x y
a x x
Với y1 ≡/ 0mod p cho thấy tọa độ của P1 + P2 = 2P1 có mẫu số nguyên tố với p
s Cuối cùng nếu P1≠P2, ta viết x2 = x1 + p r x với x không chia hết cho p,
ta dùng đồng dư (*) để viết:
x x
y y
mod
3 12
1 2
2 1 2
1 2 1
2 1
2
2 1 2
2
))(
y y x
1 2 1 3
2 1 2
1 2
1 2 3
x x x x
y y y y
x x x
x
y y x
Không có p trong mẫu số của tọa độ P1+P2
Định lý được chứng minh
v Sau đây là bảng tổng hợp một số đường cong E trên trường Zp Người ta
đã sử dụng máy tính để tìm được phương trình đường cong trên các trường nguyên
tố với số lần thử, số điểm trên đường cong và thời gian chạy tương ứng:
Trang 18q # Tries E(Zq) #E(Zq) Time (s)
Trang 19CHƯƠNG 2: MỘT SỐ ỨNG DỤNG CỦA
ĐƯỜNG CONG ELLIPTIC
2.1 PHÂN TÍCH MỘT SỐ NGUYÊN THÀNH NHÂN TỬ DÙNG ĐƯỜNG CONG ELLIPTIC
2.1.1 PHƯƠNG PHÁP p-1 CỦA POLLARD
Ta sẽ dùng thuật toán sau trong cả hai phương pháp p-1 của Pollard và phương pháp phân tích thành nhân tử dùng đường cong elliptic
2.1.2.1 Mệnh đề (Tìm BCNN của các số nguyên đứng trước B):
Chọn một số nguyên dương B, thuật toán này tính BCNN của những số nguyên dương p≤B
1 Sử dụng sàng Eratosthenes, liệt kê tất cả các số nguyên tố p≤B
2 Tính và đưa kết quả tích ∏
∈P p
1:)(max({
Nếu a>1 là số nguyên không chia hết cho p thì theo định lý Euler:a p−1 ≡1(modp)
Trang 20Đặt m = BCNN (1,2, B), theo giả thiết trước p-1 là B-bậc trơn kéo theo p 1− m Vì thế a m ≡1(modp)
Vì vậy p (a m −1,n)>1
Nếu (a m −1,n)<n thì (a m−1,n)là nhân tử không tầm thường của n
Nếu (a m −1,n)=n thì (a m −1 M)n
Suy ra a m ≡1(modq r) với mỗi ước số lũy thừa nguyên tố qr của n
Trong trường hợp này, lập lại các bước trên nhưng với cách chọn số B nhỏ hơn hoặc chọn một số a khác Ngoài ra đó cũng là ý tưởng hay để kiểm tra từ ban đầu n có là lũy thừa hoàn hảo Mr
hay không, và nếu như vậy thay n bởi M:
Ta sẽ hình thức hóa thuật toán như sau:
2.1.2.1 Thuật toán 1: (Phương pháp p-1 của Pollard)
Cho một số nguyên dương n và một cận B, thuật toán này đưa ra cách tìm thừa số của n (mỗi số p m có thể có tính chất p-1 bậc trơn)
Bước 1: [ Tính BCNN] tính m = BCNN(1,2, B)
Bước 2: [ Khởi tạo] đặt a = 2
Bước 3: [ Lũy thừa và UCLN] Tính x=a m −1(modn) và g = (x,n)
Bước 4: [ Hoàn tất] nếu g ≠1, g ≠n xuất g và kết thúc
Bước 5: [Thử lại] nếu a<10, thay a = a+1 và bắt đầu từ bước 3 Ngược lại kết thúc
Theo các tài liệu nghiên cứu gần đây, với B cố định thuật toán thường tách n khi n chia hết cho số nguyên tố p sao cho p-1 là B- bậc trơn Gần 15% các số nguyên tố p nằm trong khoảng 1015 đến 1015 +10000 sao cho p-1 là 106 – bậc trơn,
vì thế phương pháp Pollard với B = 106 bị thất bại gần 85% việc tìm các số nguyên
tố có 15 chữ số trong khoảng này
Trang 21Như vậy 61 là nhân tử của 4331
Ví dụ 4: Trong ví dụ này, a = 2 không làm được nhưng làm được với a=3
Tìm nhân tử của n = 187, với B=15:
Trang 22Ngoài ra thuật toán p-1 của Pollard cũng được trình bày theo một cách khác nhưng có kết quả tương tự với thuật toán được trình bày ở trên
Giả sử ta muốn phân tích hợp số n và p là thừa số nguyên tố của n Nếu p có tính chất p-1 không có ước nguyên tố lớn thì phương pháp sau sẽ tìm được p
Bước 2: Chọn một số nguyên a giữa 2 và n-2
Bước 3: Tính am mod n bằng phương pháp bình phương liên tiếp
Bước 4:Tính d = (am-1,n), dùng thuật toán Euclide và thặng dư modulo n
Khi đó k là bội của p-1 (bởi vì nó là bội của tất cả các số nguyên trong sự phân tích thành lũy thừa nguyên tố của p-1)
Do đó theo định lý Fermat nhỏ, ta có a m ≡1(modp)
Khi đó p (a m −1,n)
Điều này có thể xảy ra sai sót nếu nhận một nhân tử không tầm thường của n
ở bước 4 nếu a m ≡ 1 (mod n)
Trang 23v Nhận xét
Ø Cả thuật toán 1 và thuật toán 2 đều là phương pháp phân tích số nguyên thành thừa số của Pollard Vì theo nhiều phiên bản khác nhau, các tác giả trình bày lại theo cách của mình, điều đó dẫn đến cách trình bày các bước của thuật toán trong mỗi cuốn sách có thể khác nhau ở một vài điểm
Đối với thuật toán 1, m được chọn là bội chung nhỏ nhất của 1,2,…B, bước khởi tạo a = 2 và thuật toán được thực hiện bằng cách tăng dần giá trị của a cho đến khi tìm được một thừa số của n Thuật toán này có thể lập trình và tính toán nhanh chóng bằng máy tính Tuy nhiên nó cũng có mặt hạn chế ở chỗ, trong khi B cố định, giá trị a được tăng dần mãi cho đến khi thuật toán thành công Đôi khi điều này được tính toán trong khoảng thời gian khá lâu thay vì ta chỉ cần thay đổi giá trị của cận B thì thuật toán sẽ nhanh chóng có kết quả
Điều này được khắc phục ở thuật toán 2, tức là ở bước cuối nếu thuật toán không thành công thì ta có thể thay đổi giá trị của a hoặc m Tuy nhiên thuật toán 2 khó lập trình hơn vì ở bước cuối nếu tính toán không thành công thì chương trình phải chọn lại giá trị a khác hoặc m khác, điều này rất khó xử lý vì chưa biết chọn lại
số nào thì thuật toán nhanh chóng có kết quả hơn
Ø Cố định một số nguyên B Nếu N = p.q và p-1, q-1 không là B-bậc trơn Khi đó phương pháp p-1 của Pollard không chắc làm được
Và (2m-1,N) = 1 Vì thế không tìm dược nhân tử của N
Như nhận xét trên p-1 không là 20-bậc trơn với cả p = 59 và p = 101 tuy nhiên, chú ý rằng p-2 = 3.19 và p-2 = 9.11 là 20-bậc trơn Phương pháp đường cong Elliptic của Lenstra thay thế (Z/pZ)* có cấp p-1, bởi nhóm các điểm trên đường cong Elliptic E trong Z/pZ
#E(Z/pZ) = p+1±s với 0<s<2 p
Trang 24Ví dụ:
Nếu E là đường cong Elliptic y2 =x3 +x+54 trên Z/59Z thì bằng cách đánh
số các điểm, thấy rằng nhóm E(Z/59Z) là nhóm xyclic có cấp 57 Tập hợp các số 59+1±s với s≤15 chứa 14 số, chúng là 20-bậc trơn
Như vậy làm việc với đường cong Elliptic cho ta nhiều khả năng hơn
2.1.2 PHƯƠNG PHÁP CỦA LENSTRA
Vào năm 1987 Hendrik Lentra xuất bản tờ Lanmark giới thiệu và phân tích phương pháp đường cong elliptic (Elliptic Curve Method - ECM), là thuật toán có hiệu quả trong việc phân tích các số nguyên dùng đường cong elliptic
Thuật toán Lenstra rất phù hợp cho việc tìm các nhân tử có kích thước trung bình của một số nguyên n, số có từ 10 đến 20 chữ số thập phân ECM không được dùng một cách trực tiếp để phân tích số mật khẩu RSA, nhưng nó được dùng trên các số bổ trợ như một khâu rất quan trọng trong “sàng trường số”, là thuật toán tốt nhất cho việc tìm kiếm trong phép phân tích nhân tử Bên cạnh đó, việc thiết đặt của ECM chỉ đòi hỏi một bộ nhớ nhỏ
Cho một số nguyên lẻ n và tìm một nhân tử không tầm thường d n, với 1<d<n
Ta bắt đầu bằng cách lấy đường cong Elliptic y2 =x3 +ax+b
; a,b∈Z và điểm P(x,y)∈(E) Cặp (E,P) có thể được tạo ra trong vài trường hợp ngẫu nhiên Ta thử dùng E và P để phân tích n Nếu phép thử thất bại thì ta chọn cặp (E,P) khác và tiếp tục cho đến khi tìm được nhân tử d n
Khi đã có cặp (E,P), ta chọn một số nguyên k với e i
i
p
k M ; pi là các số nguyên tố, p i ≤ B và p i e i ≤ C ∀ i
Ta thiết lập ∏
≤
=
B l
Trang 25Cho p n có tính chất k1(P mod p) ≡O mod p có nghĩa là điểm P mod p trong nhóm E mod p có cấp là ước của k1
Trong quá trình dùng thuật toán Euclide để tìm nghịch đảo modulo n của mẫu số chia hết cho p, ta tìm UCLN của n với mẫu đó, UCLN đó có thể là một ước
số riêng của n hoặc là n
Ta có (k1P mod p) = (O mod p) ∀ p n, p là số nguyên tố
Đôi khi điều này không có độ chính xác cao nếu n có hai hay nhiều ước số nguyên tố rất lớn Khi tính k1P mod p với ak1 là bội của cấp P mod p với một vài
n
p , ta sẽ thu được một ước số riêng của n
Chú ý, giống với trường hợp của Pollard, thay cho nhóm (Z/pZ)*, ta dùng nhóm E mod p Tuy nhiên, nếu đường cong E chưa được chọn tốt, nghĩa là với mỗi p n thì nhóm E mod p có cấp chia hết cho một số nguyên tố lớn (vì thế
p O
l
l
k α ) Khi đó phải tìm một đường cong E khác
với một điểm P∈E Với thuật toán Pollard, ta luôn làm việc với nhóm (Z/pZ)*, nhưng ở đây có thể thử nhiều nhóm E(Z/pZ) cho nhiều đường cong elliptic
ba bên vế phải không có nghiệm bội modulo p
Tương đương với (4a3+27b2,n) = 1
Nếu (4a3+27b2,n) nằm trong khoảng 0 đến n thì thuật toán được tiếp tục
Nếu (4a3+27b2,n) = n thì ta phải chọn một đường cong khác
Tiếp theo, giả sử rằng ta chọn hai cận nguyên dương B,C ở đây B là một cận cho ước số nguyên tố của số nguyên k bằng cách nhân điểm P Nếu B lớn, có khả
∀
Trang 26Mặt khác, B càng lớn thì việc tính P mod p càng lâu hơn Vì thế B phải được chọn trong các trường hợp mà ta ước lượng cực tiểu hóa thời gian chạy C là một cận cho ước số nguyên tố p n , thu được một quan hệ kP mod p =O mod p Ta chọn
k α , l α l ≤C Tức k là tích các lũy thừa nguyên tố ≤C
Theo định lý Hasse, nếu p thỏa p+1+2 p<C và cấp của E mod p không chia hết bất kỳ số nguyên tố nào lớn hơn B, thì k là bội của bậc này và vì thế
p O
p
kPmod = mod
Ví dụ 1:
Giả sử chọn B = 20 và ta muốn phân tích một số có 10 chữ số thập phân n, n
có thể là tích của 2 số nguyên tố có 5 chữ số Cho C = 100700 và k=216.310.57.75.114.134.174.193
Bây giờ ta mô tả thuật toán, làm việc với modulo n và tính kP như sau: Dùng phương pháp nhân đôi liên tiếp để tính 2P, 4P, …, 2mP và 3(2m)P, 3(3 2m)P, …tiếp
Ví dụ 2:
Cho đường cong Elliptic y2 =x3 +ax−a
, a = 1,2,…,P = (1,1) Trước khi dùng một số a và một số n cho trước, ta phải kiểm tra 4a3+27b2 có nguyên tố với n không Ta sẽ phân tích n = 5429 với B = 3 và C = 92 Việc chọn C nhằm để tìm nhân tử nguyên tố p, số có thể lớn bằng n ≈73
Với p = 73, cận trên của số các điểm Fp trên đường cong là 74+2 73<92
Dùng công thức ∏
≤
=
B l
l
l
k α , chọn k = 26
.34 Mỗi giá trị của a, ta nhân liên tiếp cho P bởi 26 và 34 làm việc với modulo n trên đường cong Elliptic y2 =x3 +ax−a
Trang 27
Khi a = 1, ta thấy phép nhân được thực hiện bình thường, do đó 3426P mod p
là điểm hữu hạn trên E mod p, ∀ p n
Vì thế ta thử a = 2, khi tính 3426P, ta thu được một mẫu số mà ước chung của
nó với n là 61
Điểm (1,1) có cấp là ước của 34
26 trên đường cong y2 = x3 +2x−2 modulo
Nếu mỗi mẫu số nguyên tố cùng nhau với n, thuật toán có kết quả “fail”
Nếu thuật toán 1.3.2 thất bại với đường cong Elliptic bất kỳ, ta có thể lặp lại thuật toán với đường cong Elliptic khác
Trang 28Điều này cho thấy mọi mẫu số x2-x1 hoặc 2y1 điều nguyên tố cùng nhau với
5959 trong mỗi bước tính cộng P+P của thuật toán, vì thế không tách được n dùng a=1201
Cấp n của các đường cong Elliptic modulo p được biết là được phân bố trong khoảng p+1−2 p ≤n≤ p+1+2 p Vì vậy, xác suất xấp xỉ bằng khả năng một số nguyên được chọn ngẫu nhiên có kích thước gần bằng p không chia hết cho mọi số nguyên tố lớn hơn B
Phương pháp Lenstra có những thuận lợi:
1) Nó là phương pháp nhanh nhất , thực chất có thể nhanh hơn nếu n chia hết cho một số nguyên nhỏ hơn n
2) Nó có thể được dùng trong sự kết hợp với phương pháp nhân tử khác khi
có yêu cầu sự phân tích các số bổ trợ
3) Nó chỉ cần một bộ nhớ rất nhỏ Nét đặc trưng thú vị nhất của thuật toán Lenstra là việc dùng đường cong elliptic lần đầu tiên Nó là một trong những chủ đề được ứng dụng mạnh và có cấu trúc phong phú nhất trong lý thuyết số và hình học đại số hiện đại
Trang 292.2 HỆ MÃ HÓA CÔNG KHAI DÙNG ĐƯỜNG CONG ELLIPTIC
2.2.2 MỘT SỐ VẤN ĐỀ SƠ LƯỢC
2.2.1.1 Một số vấn đề về mật mã
2.2.1.1.1 Một số thuật ngữ
Văn bản (plaintext): là một thông báo gốc cần chuyển, được ghi bằng hình
ảnh âm thanh, chữ số, chữ viết,…
Hệ mã (Crytosystem): là một phương pháp ngụy trang văn bản Nghệ thuật
tạo ra và sử dụng các hệ mã là thuật toán hóa hay mật mã học
Mã hóa (encryption): là việc “ngụy trang” văn bản sang một dạng khác để
cho những người ngoài cuộc không thể đọc được, phục vụ cho trao đổi thông tin, dữ liệu và các giao dịch tài chính, thương mại,…Quá trình ngụy trang văn bản còn được gọi là “lập mã” còn quá trình khôi phục lại văn bản nguồn (từ văn bản ngụy trang) gọi là “giải mã” Nguyên tắc chung của mã hóa là việc giải mã rất dễ dàng đối với “người trong cuộc”, nhưng rất khó khăn (thậm chí là không thực hện được) đối với “người ngoài cuộc”
Lập mã (encrypt): là việc biến văn bản nguồn thành văn bản mã
Giải mã (decrypt): là việc đưa văn bản đã mã hóa trở về văn bản nguồn
Phân tích mã (Cryptanalysis): hay thám mã, là nghệ thuật phá các hệ mã
(nhìn xuyên qua các lớp ngụy trang)
Chìa khóa mã (cipher key): là bí quyết lập mã và giải mã Nếu như quy trình
mã hóa được xem như một hàm y = f(x,k), trong đó x là đầu vào (văn bản nguồn), y
là đầu ra (văn bản mã), f là phương pháp (hay thuật toán) mã hóa, còn k là một tham
số điều khiển, thì bí quyết trước đây thường bao gồm cả phương pháp f và tham số
k (nếu có) Nhu cầu thực tiễn ngày nay đã khiến công nghệ mã hóa hện đại phải thay đổi quan điểm này Phương pháp f là cái thường do không chỉ một người nắm, nên không giữ được bí mật lâu, và do đó phải được xem là công khai Tham số điều khiển k, có tác dụng làm thay đổi kết quả mã hóa (tùy thuộc vào giá trị của nó), được xem là chìa khóa mã Thông thường nó là một xâu bit (hay một con số nào đó)
mà người ta có thể giữ riêng cho mình
Hệ mã bí mật (secret key cryptosystem – SKC) hay hệ mã đối xứng
(symmetric cryptosystem) là hệ mã mà trong đó việc lập mã và giải mã cùng sử
Trang 30xứng người ta có thể sử dụng hai chìa khác nhau cho hai công việc lập mã và giải
mã, nhưng không có chìa nào được thông báo công khai, vì từ chìa này có thể tìm ra chìa kia một cách không khó khăn
Hệ mã công khai (public key cryptosystem – PKC) hay hệ mã phi đối xứng
(assymmetric cryptosystem) là hệ mã mà trong đó việc lập mã và giải mã sử dụng hai chìa khóa mã riêng biệt, từ chìa này không thể tìm ra chìa kia một cách dễ dàng, chìa dùng để lập mã thường được thông báo công khai, còn chìa dành cho việc giải
mã phải luôn giữ bí mật, thường được gọi là chìa khóa riêng
03
D b
04
E b
05
F b
06
G b
07
H b
08
I b
09
J b
10
K b
11
L b
12
M b
16
Q b
17
R b
18
S b
19
T b
20
U b
21
V b
22
W b
23
X b
24
Y b
25
Z b
26
Bảng 2
2.2.1.1.2 Mã đối xứng và mã phi đối xứng
Hai thuật ngữ này đã được đưa ra ở phần trên, nhưng ta cần làm rõ hơn các khái niệm quan trọng này
Khái niệm mã đối xứng được dùng để chỉ các hệ mã mà trong đó, khi biết khóa lập mã ta có thể tìm ra khóa giải mã, đồng thời, việc giải mã cũng đòi hỏi thời gian như việc lập mã Cho đến những năm cuối của thập niên 70 của thế kỉ 20, người ta chỉ biết đến một loại mã như vậy Đối với các hệ mã này, cần phải giữ bí mật khóa lập mã, vì để lộ nó cũng tức là để lộ cách giải mã Do đó, chỉ những người hoàn toàn chia sẽ mọi thông tin với nhau mới có thể trao đổi với nhau bằng mật mã Điều này giải thích nguyên nhân của việc cho đến rất gần đây mật mã thường chỉ được dùng trong quân sự, ngoại giao, tức là khi những đối tượng cần trao đổi thông
Trang 31tin mật với nhau là khá ít, hơn nữa, lại cùng chung quyền lợi nên sẵn sàng bảo vệ bí mật cho nhau trong quá trình trao đổi thông tin
Sự phát triển của xã hội dẫn đến việc ngày nay mật mã không những chỉ được dùng trong bí mật quân sự và ngoại giao, mà còn dùng, và có thể chủ yếu là dùng trong bí mật kinh tế, tài chính, thương mại.Vì thế xuất hiện những đòi hỏi mới đối với các hệ mật mã hiện đại, khác về nguyên tắc so với mật mã thường dùng trước đây Không giống như các hoạt động quân sự hoặc ngoại giao, trong hoạt động kinh doanh, số lượng đơn vị phải cùng trao đổi thông tin thường là rất lớn Thậm chí những người có quyền lợi cạnh tranh nhau cũng có nhu cầu trao đổi thông tin mật với nhau Bởi thế, những mật mã đối xứng khó có thể thích hợp Hiển nhiên muốn gởi một thông báo mật cho một đối tượng nào đó, ta cần phải biết khóa lập
mã của họ, vì thế, những người cùng dùng một chìa trong hệ mã đối xứng đều biết hết bí mật của nhau Các hệ thống mật mã hiện đại, mật mã khóa công khai, hay còn gọi là mã phi đối xứng, khắc phục được những nhược điểm đó: mỗi người tham gia trong hệ thống chỉ cần giữ bí mật chìa khóa giải mã của mình (còn gọi là chìa khóa
bí mật), trong khi khóa lập mã được thông báo công khai (và thường được gọi là chìa công khai) Việc biết khóa lập mã không cho phép tìm ra khóa giải mã trong một thời gian chấp nhận được, ngay cả khi sử dụng những máy tính hiện đại nhất Những hệ mã phi đối xứng được tìm thấy đầu tiên là những mật mã dùng các hàm
Các bước hoạt động trong một giao thức cần được thực hiện một cách tuần tự
và có mục đích chung Hoạt động của một người không thể làm thành giao thức Giao thức thường mang các đặc trưng sau:
s Từng người tham gia vào giao thức cần phải nắm trước các bước hoạt động của giao thức
Trang 32s Mọi người tham gia giao thức phải đồng thuận chấp hành việc tuân thủ giao thức
s Giao thức phải có tính mạch lạc rõ ràng (mỗi bước của nó được định nghĩa chuẩn xác, không thể xảy ra khả năng hiểu nhầm)
s Giao thức phải mang tính đầy đủ
2.2.1.1.3.2 Giao thức trao đổi thông tin sử dụng hệ mã với khóa công khai
Việc lập mã là việc được tính theo “chiều thuận”, và được công bố công khai (để ai cũng có thể thực hiện được) Việc giải mã là việc tính toán theo “chiều ngược” và chỉ có ai biết thông tin bí mật về cái “bẫy” thì mới có thể thực hiện được Như vậy có thể xem thông tin bí mật về cái “bẫy” là chìa khóa riêng (bí mật) của người có quyền giải mã, còn thuật toán lập mã là chìa khóa công khai để mọi người
có thể mã hóa thông tin trước khi gởi cho người có quyền giải mã Giao thức để A thông tin cho B sử dụng hệ mã với khóa công khai là như sau:
1 A và B thống nhất với nhau về hệ mã công khai sẽ sử dụng
2 B gởi chìa khóa công khai của mình cho A
3 A sử dụng chìa khóa công khai mà B vừa gởi cho để mã hóa văn bản rồi gởi cho B
4 B dùng chìa khóa riêng (bí mật) của mình để giải mã văn bản mà A đã gởi
Thông thường các thành viên trên một mạng thường thống nhất dùng chung một hệ mã công khai, mỗi người giữ một chìa khóa bí mật riêng của mình, còn chìa khóa công khai thì đặt trên một cơ sở dữ liệu chung (trên máy chủ) Khi ấy giao thức được đơn giản hóa thành:
1 A lấy chìa khóa công khai của B từ cơ sở dữ liệu (CSDL) trên máy chủ
2 A dùng chìa công khai của B để mã hóa văn bản rồi gởi cho B
3 B dùng chìa khóa bí mật của mình để giải mã văn bản do A gởi đến
Thực ra giao thức này giống với công việc gởi thư thông thường hơn là một giao thức thực thụ, vì B không cần phải tham gia vào quá trình cho tới khi muốn đọc thông tin nhận được từ A
Giao thức trên chỉ an toàn, nếu như quá trình A lấy chìa khóa công khai của
B từ CSDL trên mạng, tức là bước 1 được thực hiện một cách hoàn hảo Trên thực
tế điều này không phải là đơn giản, nếu như CSDL công cộng này không được bảo