You are on page 1of 77

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC VINH

VÕ ANH TUẤN

ĐƯỜNG CONG ELLIPTIC


VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ TOÁN HỌC

NGHỆ AN – 2014
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC VINH

VÕ ANH TUẤN

ĐƯỜNG CONG ELLIPTIC


VÀ ỨNG DỤNG
CHUYÊN NGÀNH: ĐẠI SỐ VÀ LÝ THUYẾT SỐ
Mã số: 60 46 01 04

LUẬN VĂN THẠC SĨ TOÁN HỌC

Người hướng dẫn khoa học


PGS.TS. NGUYỄN THÀNH QUANG

NGHỆ AN – 2014
MỤC LỤC

Trang.

MỞ ĐẦU..............................................................................................................1

CHƯƠNG1. CÁC KIẾN THỨC CƠ SỞ VỀ ĐẠI SỐ VÀ SỐ HỌC.............3

1.1. Ký hiệu Legendre và ký hiệu Jacobi......................................................3

1.2. Hàm số Euler..........................................................................................7

1.3. Trường các số nguyên môđun p...........................................................10

1.4. Thuật toán.............................................................................................13

CHƯƠNG 2. ĐƯỜNG CONG ELLIPTIC....................................................16

2.1. Giới thiệu về đường cong elliptic.........................................................17

2.2. Đường cong elliptic trên trường hữu hạn.............................................28

2.3. Thực hành tính toán đối với đường cong elliptic trên Maple...............35

CHƯƠNG 3. ỨNG DỤNG TRONG MẬT MÃ..............................................45

3.1. Bài toán mật mã....................................................................................46

3.2 Một vài ứng dụng của đường cong elliptic trong hệ mật mã................65

KẾT LUẬN........................................................................................................76

TÀI LIỆU THAM KHẢO................................................................................77


1

MỞ ĐẦU
Nhờ sự phát triển và tiến bộ vượt bậc của công nghệ thông tin, truyền
thông nói chung và Internet nói riêng, quá trình trao đổi thông tin và kết nối con
người với nhau được thực hiện một cách dễ dàng và nhanh chóng thông qua
những phương tiện hiện đại như E-mail, E-business, facebook,... Bên cạnh
những ưu điểm đó, đã có những khó khăn mới phát sinh. Đó là các thông tin trao
đổi có thể bị đánh cắp, giả mạo hoặc làm sai lệch. Điều đó làm tổn hại đến mỗi
cá nhân, tổ chức hay mỗi quốc gia. Để giải quyết tình hình trên, việc đảm bảo an
toàn thông tin được đặt ra cấp thiết. Kỹ thuật mật mã là một trong những giải
pháp của an toàn truyền thông. Các nhà khoa học đã phát minh ra nhiều hệ mật
mã nhằm đảm bảo an toàn thông tin, như hệ mật mã RSA, hệ Elgamal… Tuy
nhiên những hệ mật mã này có độ dài khóa lớn nên trong nhiều lĩnh vực không
ứng dụng được. Trong những năm gần đây người ta đã xây dựng một hệ mật mã
mới dựa trên lý thuyết toán học Đường cong elliptic. Hệ mật mã này được đánh
giá là một hệ mật mã có độ an toàn cao, độ dài khóa ngắn và đang được áp dụng
trong nhiều lĩnh vực, ở nhiều nơi trên thế giới, tuy nhiên ở Việt Nam vẫn còn
đang mới mẻ.
Với những lý do như đã trình bày ở trên, chúng tôi chọn đề tài luận văn
“Đường cong elliptic và ứng dụng” để nghiên cứu và tìm hiểu cơ sở lý thuyết
toán học của hệ mật mã và tìm tòi những ứng dụng trong thực tiễn.
Nội dung chính của luận văn bao gồm:
- Giới thiệu về đường cong elliptic;
- Tìm hiểu Lý thuyết mật mã;
- Giới thiệu một số ứng dụng của đường cong elliptic trong mật mã.
Phương pháp nghiên cứu chủ yếu trong luận văn là
- Sử dụng công cụ phương trình đồng dư bậc hai, thặng dư bậc hai;
- Sử dụng công cụ đường cong elliptic;
- Ứng dụng đường cong elliptic trong mật mã;
- Thực hành các tính toán trên phần mềm Maple 13.0.
2

Cấu trúc luận văn gồm 3 chương, ngoài phần mở đầu, kết luận và danh
mục tài liệu tham khảo.
Chương 1 giới thiệu các kiến thức cơ sở về đại số và số học có liên quan
đến 2 chương sau, bao gồm: ký hiệu Legendre, ký hiệu Jacobi, trường hữu hạn,
cơ sở thuật toán.
Chương 2 giới thiệu về Đường cong elliptic bao gồm các khái niệm và kết
quả cơ sở về đường cong elliptic, đường cong elliptic trên trường hữu hạn; các
phép toán trên đường cong elliptic.
Chương 3 giới thiệu về lý thuyết mật mã và một số ứng dụng của đường
cong elliptic trong mật mã.
Luận văn này được hoàn thành dưới sự hướng dẫn tận tình và chu đáo của
PGS.TS. Nguyễn Thành Quang. Nhân dịp này tôi xin bày tỏ lòng kính trọng và
biết ơn sâu sắc tới thầy giáo hướng dẫn khoa học, người đã dành nhiều thời gian
và công sức giúp tôi hoàn thành luận văn này.
Nhân dịp này tôi xin bày tỏ lòng biết ơn sâu sắc đến các thầy cô giáo
thuộc chuyên ngành Đại số và Lý thuyết số, Khoa Toán, Phòng Đào tạo Sau Đại
học – Trường Đại học Vinh, những người đã tận tình giảng dạy và tạo mọi điều
kiện thuận lợi cho tôi hoàn thành khóa học.
Tôi xin trân trọng cảm ơn Ban Giám hiệu cùng Phòng Đào tạo Sau Đại
học Trường Đại học Đồng Tháp đã tạo mọi điều kiện tổ chức cho chúng tôi hoàn
thành khóa học.
Tôi xin trân trọng cảm ơn Ban Giám hiệu và ban lãnh đạo Phòng Đào tạo
Trường Đại học An Giang cùng các đồng nghiệp đã động viên, giúp đỡ và tạo
mọi điều kiện thuận lợi cho tôi trong suốt khóa học cũng như trong thời gian
hoàn thành luận văn.
Luận văn còn nhiều thiếu sót, học viên rất mong nhận được sự đóng góp
của thầy, cô giáo và các đồng nghiệp.
Học viên
Võ Anh Tuấn
3

CHƯƠNG1

CÁC KIẾN THỨC CƠ SỞ VỀ ĐẠI SỐ VÀ SỐ HỌC

Giả sử p là số nguyên tố lẻ, a là số nguyên tố cùng nhau với p. Vấn đề đặt


ra là: khi nào thì a là số chính phương theo mod p?

Ký hiệu Legendre và ký hiệu Jacobi là các công cụ quan trọng trong tính
toán của Số học.

1.1. Ký hiệu Legendre và ký hiệu Jacobi

1.1.1. Định nghĩa. Cho m là số nguyên dương. Số nguyên a được gọi là thặng
dư bình phương của m nếu và phương trình đồng dư (mod m)
có nghiệm. Ngược lại, ta nói a không phải là một thặng dư bình phương của m.

Ví dụ. Vì 2 và 7 nguyên tố cùng nhau và phương trình có nghiệm


nên 2 là một thặng dư bình phương của 7.

1.1.2. Định lý ([2]). Nếu p là số nguyên tố lẻ thì trong các số 1, 2,…, p - 1 có

đúng thặng dư bình phương của p.

Ví dụ. Với p = 5. Khi đó, bình phương của dãy số 1, 2, 3, 4 có đúng 2 thặng dư
bình phương của 5 là 1 và 4. Thật vậy, ta có và .

1.1.3. Ký hiệu Legendre. Giả sử p là số nguyên tố lẻ và a là một số nguyên


không chia hết cho p. Ký hiệu Legendre được ký hiệu và định nghĩa như sau:

Ví dụ. Thật vậy, ta có: 1, 3, 4, 5, 9 lần lượt là

các số nguyên tố cùng nhau với 11, và các phương trình đồng dư

4

(mod11) lần lượt có nghiệm là 1, 5, 2, 4, 3. Nên các số 1, 3, 4, 5, 9 lần lượt là


các thặng dư bình phương của 11.

* Thật vậy, ta có: 2, 6, 7, 8, 10 lần

lượt là các số nguyên tố cùng nhau với 11, và các phương trình đồng dư

(mod11) đều vô nghiệm. Nên các số 2, 6, 7, 8, 10 đều không là các thặng dư
bình phương của 11.

* Tương tự, ta có

* Tương tự, ta có

Tiêu chuẩn sau đây thường được dùng để chứng minh tính chất của ký
hiệu Legendre.
1.1.4. Tiêu chuẩn Euler ([2]). Giả sử p là số nguyên tố lẻ và a là số nguyên

dương không chia hết cho p. Khi đó, ta có .

Những tính chất sau đây cho phép tính được ký hiệu Legendre.
1.1.5. Định lý ([2]). Giả sử p là số nguyên tố lẻ, a và b là các số nguyên không
chia hết cho p. Khi đó, ta có:

i. Nếu thì

ii.

iii.

1.1.6. Định lý ([2]). Nếu p là một số nguyên tố lẻ thì


5

1.1.7. Bổ đề Gauss ([2]). Giả sử p là số nguyên tố lẻ và Nếu s là số

các thặng dư dương bé nhất của các số nguyên lớn hơn thì

1.1.8. Luật thuận nghịch bình phương ([2]). Giả sử p, q là các số nguyên tố

lẻ. Khi đó, ta có .

Nhận xét. Luật thuận nghịch bình phương thường được dùng để tính các ký hiệu
Legendre. Chẳng hạn:

nếu (mod 4)

và bằng 1 trong các trường hợp còn lại, tức là

nếu (mod 4), và

trong các trường hợp có ít nhất một trong hai số p hoặc q đồng dư với 1 (mod 4).

Ta xét một ví dụ bằng số. Tính .

vì 1009 đồng dư với 1 (mod 4) nên ta có

và .

Mặt khác, ta có

 .

.
6

Ký hiệu Jacobi là một mở rộng của ký hiệu Legendre và được sử dụng


trong việc tính ký hiệu Legendre, cũng như trong vấn đề nghiên cứu các số giả
nguyên tố.

1.1.9. Ký hiệu Jacobi. Giả sử n là số nguyên dương lẻ, a nguyên tố cùng nhau
với n. Nếu n có phân tích ra thừa số nguyên tố là , thì ta định nghĩa ký
hiệu Jacobi như sau:

trong đó ở vế phải là các ký hiệu Legendre.

Ví dụ.

Như vậy, trong trường hợp n là số nguyên tố thì ký hiệu Jacobi trùng với
ký hiệu Legendre. Tuy nhiên cần chú ý rằng, khác với ký hiệu Legendre, khi n là
hợp số, ký hiệu Jacobi không cho ta biết phương trình đồng dư
có nghiệm hay không? Mặc dầu vậy, ký hiệu Jacobi có nhiều tính chất tương tự
với ký hiệu Legendre.

1.1.10. Định lý ([2]). Giả sử n là số nguyên dương lẻ, a và b là các số nguyên tố cùng nhau với
n. Khi đó:

i. Nếu a ≡b (mod n) thì ; iii. ;

ii. ; iv.
7

1.1.11. Định lý (Luật thuận nghịch bình phương đối với ký hiệu Jacobi ([2])).
Giả sử m, n là các số nguyên dương lẻ, nguyên tố cùng nhau. Khi đó:

1.2. Hàm số Euler


Trong các hàm số số học, hàm số Euler được định nghĩa như sau:

1.2.1. Định nghĩa. Hàm số Euler là hàm số có giá trị tại số tự nhiên
bằng số các số tự nhiên khác 0, không vượt quá n và nguyên tố cùng nhau với n:

Ta có

Từ định nghĩa trên, ta có ngay hệ quả: Số tự nhiên p >1 là số nguyên tố khi và


chỉ khi

1.2.2. Định lý Euler . Nếu là số nguyên và nguyên tố cùng nhau với thì

Chứng minh. Giả sử là một hệ thặng dư thu gọn (mod n). Khi đó,
hệ cũng là hệ thặng dư thu gọn (mod n). Vì mỗi thặng dư của hệ
này đồng dư với một và chỉ một thặng dư của hệ kia theo (mod n), cho nên ta có:

Do đó

Vì mỗi thặng dư thu gọn nguyên tố cùng nhau với n, nên sau khi giản ước các
ở cả hai vế, ta có Định lý Euler được chứng minh. ■

1.2.3. Định lý ([2]). Hàm Euler là hàm có tính chất nhân, nghĩa là với m,
n là hai số nguyên dương và nguyên tố cùng nhau, ta có:
8

1.2.4. Bổ đề. Nếu p là số nguyên tố và k là số nguyên dương thì ta có:

Chứng minh. Theo định nghĩa hàm Euler , ta có

Ta thấy rằng, các số nguyên dương không vượt quá và chia hết cho phải
có dạng Do đó, có đúng số như vậy. Vì vậy, ta có

1.2.5. Công thức tính giá trị của hàm số Euler

Giả sử là dạng phân tích tiêu chuẩn của số tự nhiên n,


Khi đó, ta có công thức:

Chứng minh. Do hàm Euler có tính chất nhân, nên áp dụng Bổ đề 1.2.4, ta có:

.■

1.2.6. Hệ thức Gauss. Giả sử n là số nguyên dương. Khi đó:

trong đó tổng trên được lấy theo mọi ước số d của n.

Chứng minh. Thật vậy, nếu n = 1, thì công thức đúng. Nếu n > 1, thì n có dạng
phân tích tiêu chuẩn, giả sử là . Khi đó
9

Hệ thức Gauss được chứng minh. ■

Ứng dụng. Các tính chất của hàm số Euler được sử dụng để tính đồng dư của
những luỹ thừa rất lớn. Chẳng hạn, ta cần tính , trong đó là một số
nguyên dương rất lớn. Giả sử có

Khi đó, theo Định lý Euler ta có Do đó, nếu N là bội chung

nhỏ nhất của các thì Vì vậy, nếu viết ta


được

Ta xét một ví dụ bằng số: Tính . Ta có: 77 = 11.7, và có


Bội chung nhỏ nhất của 6 và 10 là 30. Do đó

Mặt khác, 1000000 = 30. 33333 + 10, do đó

1.3. Trường các số nguyên môđun p

1.3.1. Trường
10

Ta đã biết vành các số nguyên là một miền nguyên, iđêan của có


dạng trong đó . Khi p là một số nguyên tố thì với mỗi phần tử

ta luôn tìm được phần tử nghịch đảo của nó là sao

cho (mod p) và do đó ta có thể thực hiện phép chia cho các phần tử

khác 0. Như vậy, có cấu trúc của một trường và ký hiệu trường này là

. Khi đó, trên tập các lớp đồng dư mod p, tức là trên ta có thể thực hiện các
phép toán “cộng, trừ, nhân, chia”. Tập các phần tử khác không của trường này
lập thành một nhóm đối với phép nhân và được ký hiệu là . Như vậy:

Một phần tử được gọi là phần tử sinh (hay căn nguyên thủy) của

nhóm nếu tập các lũy thừa của g cũng là nhóm này, tức là hai tập sau đây
trùng nhau:

Rõ ràng, một phần tử của chỉ có thể là phần tử sinh khi mọi lũy thừa
của nó với bậc nhỏ hơn p - 1 không phải là đơn vị.

Ngược lại, một phần tử nào đó có lũy thừa với bậc nào đó (nhỏ hơn hẳn p-
1) bằng đơn vị thì không thể là phần tử sinh. Thấy rằng, một phần tử của mà

không sinh ra cả nhóm của thì các lũy thừa của nó tạo ra một nhóm con và
theo Định lý Lagrange cấp của nhóm con này phải là ước của p - 1.

* Như vậy muốn kiểm tra một phần tử có phải là phần tử sinh hay không,
ta chỉ việc nâng nó lên lũy thừa với các bậc là ước của p - 1. Nếu tất cả các lũy
thừa này đều khác 1 thì nó là phần tử sinh. Ngược lại, nó không phải là phần tử
sinh (xem [2]).

* Ta chứng minh được rằng, nếu g là phần tử sinh của nhóm và b là

các số nguyên tố cùng nhau với p - 1 thì cũng là phần tử sinh của . Do đó,
11

số các phần tử sinh của nhóm đúng bằng số các số nguyên tố cùng nhau với
p - 1 tức là bằng , với là hàm số Euler. (xem [2]).

1.3.2. Các ví dụ

1.3.2.1. Hãy tìm các phần tử sinh của .

Bài giải. Ta có .

Trước tiên ta tìm số lượng các phần tử sinh của nhóm tức là tính

Ta có: như vậy ta xác định được nhóm có hai


phần tử sinh. Sau đó ta xác định các phần tử sinh này bằng cách tính các lũy
thừa của ta sẽ tìm được các phần tử sinh của nhóm .

Ta có: (mod 5), (mod 5), (mod 5), (mod 5).


Do đó 2 là phần tử sinh của .

Mặt khác ta có: (mod 5), (mod 5), (mod 5),


(mod 5). Do đó 3 cũng là phần tử sinh của .

1.3.2. 2. Hãy xác định số các phần tử sinh của và tìm các phần tử sinh đó.

Lời giải. Gọi n là số lượng các phần tử sinh của khi đó

. Như vậy nhóm nhân có hai phần tử sinh.

(mod 7),

(mod 7),

(mod 7),

(mod 7).

Vậy là phần tử sinh của .

+
12

(mod 7),

(mod 7),

(mod 7),

(mod 7).

Vậy là phần tử sinh của .

1.3.3. Bài toán logarit trên trường hữu hạn

Bài toán này được mô tả như sau: Cho nhóm và một phần tử sinh nào

đó Với một phần tử b trong nhóm này, hãy tìm phần tử x trong nhóm

thỏa mãn phương trình . Số nguyên x đại diện cho lớp thặng dư như vậy

được ký hiệu là

Ở đây chúng tôi không đưa ra phương pháp tìm x mà chỉ mô tả bài toán
logarit rời rạc trên trường hữu hạn để thấy được việc tìm một số nguyên x
như trên là rất khó. Để dễ hình dung ta xét một ví dụ sau.

Ví dụ. Lấy . Ta biết rằng 3 là phần tử sinh của nhóm và khi


đó ta có thể tìm được . Tuy nhiên khi chọn p khá lớn thì việc tìm x gặp
nhiều khó khăn.

Chú ý rằng, khi không có phương tiện kỹ thuật nào hỗ trợ ta chỉ có một
cách duy nhất là dự đoán và thử bằng cách chọn ngẫu nhiên một số nào đó theo
cảm tính và thay vào tính thử. Việc làm này tốn rất nhiều thời gian và khi chọn p
vào khoảng thì hầu như không thể tìm ra số nguyên x.

1.4. Thuật toán


Trong phần này chúng tôi chỉ trình bày một số khái niệm và ví dụ để hiểu
rõ thêm về thuật toán. Có rất nhiều cách định nghĩa thuật toán nhưng chúng tôi
chỉ định nghĩa thuật toán một cách thông thường nhất.
13

1.4.1. Định nghĩa. Thuật toán là một qui tắc, để với những dữ liệu ban đầu đã
cho, tìm được lời giải sau một khoảng thời gian hữu hạn.

Một thuật toán cần phải thỏa mãn hai điều kiện sau:

i. Tính hữu hạn (nghĩa là thuật toán phải kết thúc sau một số hữu hạn
bước, và khi kết thúc ta phải thu được câu trả lời cho vấn đề đặt ra).

ii. Tính xác định ở mỗi bước của thuật toán (nghĩa là chỉ rõ việc cần làm).

Ngoài hai yếu tố trên ta còn phải xét đến tính hiệu quả của thuật toán. Về
mặt lý thuyết có nhiều thuật toán kết thúc sau hữu hạn bước tuy nhiên thời gian
đó lại vượt quá khả năng làm việc của chúng ta.

Hiện nay với sự hỗ trợ của các máy tính việc giải mã có thể dễ dàng hơn,
do đó chúng ta cần tìm những công cụ mới và hiệu quả trong việc mã hóa thông
tin.

Độ phức tạp của thuật toán có thể đo bằng không gian (tức dung lượng bộ
nhớ của máy tính), thời gian (tức thời gian máy tính làm việc).

Khi nói đến độ phức tạp của thuật toán thì chúng tôi luôn hiểu đó là độ
phức tạp về thời gian.

1.4.2. Định nghĩa. Để ước lượng độ phức tạp của thuật toán ta dùng khái niệm
bậc O-lớn.

Giả sử hai hàm số f(n) và g(n) xác định trên cùng một tập hợp các số
nguyên dương. Ta nói f(n) có bậc O-lớn của g(n) và viết f(n) = Og(n) hoặc đơn
giản là f = O(g), nếu tồn tại hằng số sao cho với n đủ lớn thì các hàm f(n)
và g(n) đều dương, đồng thời .

Ví dụ. Cho hai đa thức trong đó và

xác định trên tập số nguyên dương. Khi đó, vì tồn


14

tại số dương để với n đủ lớn thì đều dương và

1.4.3. Tính chất của bậc O-lớn.

1) Nếu và thì .

2) Nếu và thì .

3) Nếu tồn tại giới hạn hữu hạn thì

4) , ta luôn có

1.4.4 Định nghĩa. Một thuật toán được gọi là có độ phức tạp đa thức, hoặc có
thời gian đa thức, nếu số các phép tính khi thực hiện thuật toán vượt quá
trong đó n là độ lớn của đầu vào và d là số nguyên dương nào đó.

Nói cách khác, nếu đầu vào là k-bit thì thời gian thực hiện thuật toán là

tương đương với một đa thức của k. Các thuật toán với thời gian
được gọi là thuật toán với độ phức tạp mũ hoặc thời gian mũ.

1.4.5. Thuật toán sàng các số nguyên tố của Eratosthenes

Trước hết, ta viết dãy các số tự nhiên từ 1 đến n. Trong dãy đó, ta gạch bỏ
số 1 vì nó không phải là số nguyên tố. Số nguyên tố đầu tiên của dãy là số 2.
Tiếp theo đó ta gạch khỏi dãy số tất cả những số chia hết cho 2. Số đầu tiên
không chia hết cho 2 là 3: đó chính là số nguyên tố. Ta lại gạch khỏi dãy số còn
lại những số nào không chia hết cho 3. Ta thu được số nguyên tố tiếp theo là 5.
Tiếp tục như thế, ta gạch khỏi dãy những số chia hết cho mọi số nguyên tố bé
hơn . Những số còn lại trong dãy không bị gạch là những số nguyên tố.

Sàng Eratosthenes mặc dù cho ta thuật toán xác định mọi số nguyên tố
không vượt quá một số n cho trước nhưng lại rất ít được sử dụng để xác định
xem một số đã cho có phải là số nguyên tố hay không. Nguyên nhân là vì thuật
15

toán này có độ phức tạp khá lớn: để kiểm tra n, ta phải thực hiện các phép chia
cho tất cả các số nguyên tố không vượt quá .

1.4.6. Thuật toán Euclid tìm ước chung lớn nhất

Ta xét 3 trường hợp sau:

a) Nếu b là ước của a thì (a, b) = b.

b) Nếu a = bq + r thì (a, b) = (b, r).

c) Trường hợp tổng quát với a, b là các số nguyên dương (giả thiết a > b):

Ta thực hiện liên tiếp các phép chia sau cho đến khi xuất hiện số dư bằng
0 thì dừng lại. Vì bất đẳng thức , xảy ra, nên
thuật chia này là dừng lại sau hữu hạn bước (không quá a bước):

Từ đó, ta thu được UCLN của a, b là là số dư cuối cùng khác 0


trong thuật toán. Thuật toán này mang tên nhà toán học Euclid.
16

CHƯƠNG 2.
ĐƯỜNG CONG ELLIPTIC

Trước khi đi vào tìm hiểu đường cong elliptic, ta nhắc lại khái niệm mặt
phẳng aphin và mặt phẳng xạ ảnh và điểm tại vô cùng (điểm vô tận).

i. Mặt phẳng aphin. Mặt phẳng aphin là mặt phẳng thông thường với

trong đó K là trường tùy ý.

ii. Mặt phẳng xạ ảnh. Ta bổ sung vào mặt phẳng aphin này điểm, ký
hiệu là (điểm tại vô cùng) để sinh ra mặt phẳng xạ ảnh . Tập hợp những
điểm trên mặt phẳng này là các lớp tương đương với bộ ba trong đó
và bộ ba này tương đương với bộ ba với

Với thì lớp tương đương của chứa bộ ba Vì vậy,

ta có thể đồng nhất mặt phẳng xạ ảnh với mặt phẳng thông thường (aphin)
cùng với các “điểm tại vô cùng” ứng với

iii. Điểm tại vô cùng. Điểm tại vô cùng của một đường cong trong mặt phẳng
thông thường là điểm vô cùng của đường cong tương ứng trong không gian xạ
ảnh và tọa độ của nó trong trường hợp này là (0,1,0).

Một đường cong trong mặt phẳng thông thường có thể ứng với một đường
cong trong mặt phẳng xạ ảnh bằng cách thêm vào điểm tại vô cùng. Để làm việc

đó ta chỉ việc thay x bởi , y bởi trong phương trình xác định đường cong và

nhân hai vế với một lũy thừa thích hợp của z để khử mẫu số.

Ví dụ. Đường cong E trong mặt phẳng thông thường được xác định bởi phương
trình
17

Ta bổ sung vào đường cong E điểm tại vô cùng, khi đó ta có đường cong tương
ứng trong không gian xạ ảnh là:

Trong phần trình bày tiếp theo ta giả sử mặt phẳng xạ ảnh đã được đồng nhất
với mặt phẳng thông thường (aphin) .

2.1. Giới thiệu về đường cong elliptic


2.1.1 Định nghĩa ([2], [10]). Đường cong elliptic E trên trường K là tập hợp các
điểm (x, y) thỏa mãn phương trình.

(2.1)

cùng với điểm tại vô cùng thỏa mãn điều kiện không kỳ dị, tức là
nếu viết dước dạng thì tại mọi điểm thỏa mãn phương trình,

có ít nhất một trong các đạo hàm riêng hoặc

Đ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 của đường cong thì đường cong đó không có điểm bội. Như vậy,
nếu biểu diễn như một đa thức bậc 3 của x, thì đa thức không có nghiệm bội.

Chú ý.

+ Phương trình đó có thể thỏa mãn điều kiện kỳ dị đối với trường này
nhưng lại không thỏa mãn điều kiện kỳ dị đối với trường khác.

Ví dụ: Đường cong xác định bởi phương trình là đường cong kỳ

dị trên trường , nhưng lại không kỳ dị trên trường

+ Phương trình (2.1) là không duy nhất. Trong nhiều trường K ta có thể
tìm được dạng rút gọn của phương trình biểu diễn đường cong. Chẳng hạn, xét
(2.1) với các hệ số là số nguyên, vì vành có thể nhúng vào mọi trường K nên
ta có thể xem nó như là phương trình trong trường K.

+ Nếu mang nhúng vào trường có đặc số 2 thì (2.1) có thể đưa về dạng
18

(2.1a)

Hoặc

(2.1b)

+ Nếu mang nhúng vào trường có đặc số 3 thì (2.1) có thể đưa về dạng

(2.2)

+ Nếu mang nhúng vào trường có đặc số khác 2 và 3 thì (2.1) có thể
đưa về dạng

(2.3)

và được gọi là phương trình dạng Weierstrass.

Bây giờ ta sẽ đưa ra một số qui tắc cho phép cộng các điểm trên đường
cong elliptic để trang bị cho nó cấu trúc nhóm aben.

2.1.2. Qui tắc cộng ([2], [10]). Cho E là đường cong elliptic xác định bởi
phương trình (2.1), và là đường thẳng đi qua P, Q.

i. Nếu P là điểm tại vô cùng, nghĩa là khi đó, ta ký hiệu và


. Đó là do O thỏa mãn tính chất đồng nhất của
phép cộng (phần tử 0). Những trường hợp dưới đây ta sẽ giả sử rằng điểm P
không phải là điểm tại vô cùng và Q cũng không phải là điểm tại vô cùng.

ii. Điểm đối của điểm ký hiệu là là điểm có cùng hoành


độ với P nhưng tung độ thì khác nhau, nghĩa là . Hiển
nhiên với mọi .

iii. Nếu P, Q có hoành độ khác nhau, khi đó không khó để thấy đường
thẳng cắt đường cong thêm một điểm R (nếu đường thẳng không là
tiếp tuyến với đường cong tại P, thì ta lấy R=P hoặc không là tiếp tuyến tại Q,
thì ta lấy R=Q). Khi đó ta ký hiệu . (xem hình 2.1, 2.2).
19

iv. Nếu (nghĩa là Q có cùng hoành độ với P nhưng tung độ thì


khác nhau), khi đó ta ký hiệu (điểm tại vô cùng).

v. Trường hợp cuối cùng có thể xảy ra là Khi đó, đặt là tiếp
tuyến của đường cong tại P. Đặt R là điểm khác duy nhất mà cắt đường cong,
và ký hiệu (R được lấy là P nếu như đường tiếp tuyến có sự tiếp xúc
kép tại P nghĩa là P là điểm uốn).

-R

Hình 2.1

-R

Trong phần trình bày tiếp theo Hình 2.2 giả thiết rằng đường cong elliptic E
ta luôn
được xác định bởi phương trình dạng Weierstrass (2.3) và sẽ xây dựng công
thức tính tọa độ của trong 2.1.3.
20

2.1.3. Đường cong elliptic trên trường số thực ([10])

Cho là các hằng số thỏa mãn . Một đường cong


elliptic E không kỳ dị là tập hợp các nghiệm của phương trình

(2.3)

cùng với điểm tại vô cùng .

Điều kiện là cần thiết và đảm bảo rằng phương trình


có 3 nghiệm phân biệt. Nếu thì đường cong elliptic
E được gọi là đường cong kỳ dị.

Bây giờ chúng ta định nghĩa phép toán hai ngôi "+" trên E làm cho E lập
thành nhóm aben. Trước tiên, từ i. (2.1.2) cho ta
Như vậy, điểm thỏa mãn tính chất của phần tử không của nhóm cộng aben.

Giả sử E là đường cong elliptic không kỳ dị và trong đó


, giả sử . Chúng ta xét 3 trường hợp sau.

Trường hợp 1.
Trường hợp 2. và .
Trường hợp 3. và .

+ Trong trường hợp 1, ký hiệu là đường thẳng đi qua P và Q. giao với


E tại P, Q. Theo iii. (2.1.2) dễ dàng thấy rằng sẽ cắt đường cong E thêm một
điểm nữa chúng ta gọi là R. Nếu chúng ta lấy đối xứng R qua trục x, khi đó
chúng ta nhận được điểm . Chúng ta ký hiệu .
21

Chúng ta sẽ tìm công thức đại số để tính toán R. Trước tiên, phương trình
của đường thẳng có dạng , trong đó hệ số gốc của là :

Mặt khác để tìm những điểm thuộc , chúng ta thay vào phương
trình của đường cong E, ta thu được

Tương đương với

(2.4)

Những nghiệm của phương trình này là hoành độ của các điểm thuộc
. Chúng ta đã biết được , do đó là nghiệm của (2.4).

Từ phương trình (2.4) là phương trình bậc 3 trên trường số thực có hai
nghiệm thực, do đó nghiệm thứ ba đặt là cũng phải là nghiệm thực. Ta có:
phương trình (2.4) tương đương với

Từ đây, ta có:

nếu ta sử dụng hai điểm và điểm để tính toán hệ


số gốc của đường thẳng thì khi đó ta có

Suy ra

Như vậy, trong trường hợp 1: Nếu thì trong đó


22

với

+ Trường hợp 2: Nếu và theo iv. thì

+ Trường hợp 3: Nếu và khi đó ta cộng điểm


với chính nó.

Ta giả sử rằng . Nếu khi đó ta có trường hợp 2 hơn nữa


P là điểm có bậc hữu hạn vì tồn tại số nguyên thỏa mãn .

Khi đó, đường thẳng là tiếp tuyến của đường cong E tại P. Hệ số góc
của tiếp tuyến có thể được tính toán bằng cách lấy vi phân tìm đạo hàm của
phương trình của đường cong E.

Thay vào ta được hệ số góc của đường thẳng là:

Những phân tích tiếp theo trong trường hợp này hoàn toàn tương tự như trường
hợp 1. Công thức tính thì hoàn toàn không thay đổi, trừ giá trị thì được
tính bằng cách khác. Như vậy, ta có:

trong đó và .

Tập điểm này những tính chất dưới đây của phép toán cộng hai ngôi như đã định
nghĩa trên, đều rõ ràng :

+ Phép toán cộng đóng kín trên tập E.

+ Phép cộng có tính chất giao hoán.

+ là phần tử đồng nhất đối với phép toán cộng.


23

+ Mọi điểm nằm trên đường cong E đều có điểm nghịch đảo đối với phép
toán cộng.

Điều đó cho thấy rằng (E,+) là nhóm aben.

Hơn thế nữa ta có thể bổ sung vào phép nhân ngoài để E trở thành một
- môđun làm cơ sở cho phương pháp nhân đôi liên tiếp.

Chứng minh. Cho là một trường, E là đường cong elliptic với các hệ số thuộc
và đã được bổ sung điểm (điểm tại vô cùng). Khi đó, tập hợp các điểm
trên E và là một nhóm aben. Ta xây dựng phép nhân ngoài như sau:

trong đó

Nói rõ hơn, ta cộng liên tiếp m lần điểm P hoặc cộng m lần điểm dựa vào
qui tắc cộng như đã trình bày ở trên. Bây giờ, ta kiểm tra các điều kiện để tập
điểm của đường cong Elliptic E trở thành một - môđun.

i. Tính chất kết hợp của phép nhân ngoài:

ii. Tính chất phân phối.

 , ta có:
24

 khi đó:

iii. Tính chất Unita:

Từ đây ta kết luận đường cong elliptic được bổ sung vào


phép toán nhân ngoài bên trái như trên là một môđun trái. Dễ kiểm tra được
nó cũng là một môđun phải bằng cách kiểm tra hoàn toàn tương tự như trên.

Bây giờ, ta sẽ chứng minh điểm là hoàn toàn xác định được bằng
phương pháp hình học (nghĩa là bằng phương pháp dựng hình xem [2]). Ta xác
định điểm bằng 2 cách như sau:

Cách 1. Vì do đó ta chỉ cần chú ý hai trường hợp sau:

Trường hợp 1: m là số chẵn

Bước 1: Nếu (mod 2) khi đó sẽ được phân tích thành cặp

P+P. Điểm này được xác định bằng cách vẽ đường thẳng L đi qua điểm P, khi
đó đường thẳng L cắt E tại điểm thứ 3 là , dựng đường thẳng đi qua và
, đường thẳng cắt E tại . Khi đó việc xác định điểm trở thành

xác định điểm .

Bước 2: Nếu (mod 2) ta thực hiện tương tự như bước 1 ta sẽ xác

định được điểm và số điểm là . Khi đó việc xác định điểm trở
25

thành xác định điểm . Ngược lại, ta chuyển sang trường hợp 2. Thực hiện

liên tiếp các bước trên ta sẽ xác định được điểm mP.

Trường hợp 2. m là số lẻ

Khi đó (mod 2) như vậy ta sẽ xác định điểm nghĩa


là ta cần xác định điểm trước, việc xác định điểm đã được
trình bày ở trường hợp 1. Khi đã xác định được điểm ta vẽ đường
thẳng L đi qua điểm và P khi đó L cắt E tại điểm R, dựng đường thẳng
nối R và sẽ cắt E tại điểm . Khi đó,

Cách 2. Chứng minh bằng qui nạp. Với m=1 ta có P=P. Hiển nhiên.

Với m=2 ta có 2P=P+P ta dựng tiếp tuyến L với E tại P khi đó đường
thẳng L cắt E tại điểm , dựng đường thẳng đi qua và cắt E tại điểm
khi đó ta có .

Giả sử xác định được điểm kP với k=m-1 ta xác định điểm kP với k=m.

Thật vậy, ta đã xác định được điểm kP với k=m-1, khi đó ta cần xác định
điểm mP nghĩa là vẽ đường thẳng đi qua điểm (m-1)P và P khi đó đường
thẳng cắt E tại điểm , dựng đường thẳng đi qua và , đường thẳng
này cắt E tại điểm , khi đó ta có điểm .

Trong trường hợp m là bậc của P, xem 2.2.4.

Kết luận: Điểm mP là hoàn toàn xác định được.

Nhận xét: Trong trường hợp điểm P có bậc là n. Khi đó, tập hợp những
điểm có cùng bậc với P lập thành nhóm con của , hơn nửa nhóm con này
có cấu trúc của một môđun trong đó n là bậc của điểm P. Ta sẽ chứng minh
trong 2.2.4.

Ví dụ. Cho đường cong E có phương trình là trên trường và

thuộc E. Bằng công thức tọa độ xác định điểm:


26

Bài giải.

* Ta có: ,

* Ta có: .

Với sự hổ trợ của phần mềm maple 13.0 ta tính được điểm

Vậy,

* Nhận xét: Khi biết tọa độ của điểm P ta có thể tìm được tọa độ của điểm
2P tức là điểm P+P, sau không qúa 20 phép tính cộng trừ nhân chia. Hơn nữa,
bằng phương pháp nhân đôi liên tiếp ta có thể thực hiện việc tìm tọa độ của
điểm kP với phép tính bit (xem [2]).

2.1.4. Đường cong Elliptic trên trường số hữu tỷ

2.1.4.1 Nhận xét. Trường các số hữu tỉ là trường có đặc số 0 (khác 2 và 3),
do đó ta có thể giả thiết rằng phương trình đường cong elliptic được cho dưới
dạng (2.3) và qui tắc cộng điểm, công thức xác định tọa độ của điểm cộng hoàn
toàn tương tự như đã nêu trong (2.1.3).

Nghiên cứu đường cong elliptic trên trường số 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 (2.3), một vấn đề quan trọng
của số học. Sau đây, chúng tôi nêu sơ lược một số tính chất của đường cong
elliptic trên trường số hữu tỉ

Giả sử E là đường cong elliptic đã cho. Ta ký hiệu là tập hợp các


điểm có tọa độ hữu tỷ. Như ta đã biết, tập hợp điểm này cùng với điểm tại vô
cùng O có cấu trúc nhóm aben. Các điểm có bậc hữu hạn của nhóm aben
lập thành nhóm con gọi là nhóm con xoắn của nhóm , khi đó
sẽ là tổng trực tiếp của và nhóm con các điểm có bậc vô hạn.
27

Định lý của Mordell nói rằng nhóm con các điểm có bậc vô hạn chỉ gồm hữu
hạn phần tử sinh do đó nó đẳng cấu với nhóm trong đó r là số nguyên không
âm. Số r được gọi là hạng của đường cong và là một đặc trưng hết sức quan
trọng, chứa nhiều thông tin số học về đường cong.

2.1.4.2 Định lý Mordell ([2]). Giả sử E là một đường cong elliptic trên trường
hữu tỷ Khi đó tập hợp các điểm của E với tọa độ hữu tỉ là một nhóm
Aben hữu hạn sinh. Nói cách khác, ta có

trong đó r là số nguyên không âm.

2.1.4.3 Nhận xét

i. Nhóm con xoắn các điểm có bậc hữu hạn của một đường cong có thể
tính được không khó khăn lắm, trong khi hạng r lại hết sức khó xác định. Thậm
chí, đối với một đường cong cụ thể, việc chỉ ra r bằng 0 hay khác 0 cũng là một
điều hết sức khó khăn. Ta có thể thấy ngay rằng, nếu thì đường cong đang
xét chỉ có hữu hạn điểm hữu tỷ, trong trường hợp tồn tại vô hạn điểm hữu
tỷ trên đường cong. Điều đó tương đương với việc phương trình đã cho có hữu
hạn hay vô hạn nghiệm hữu tỷ là một bài toán khó của Số học.

ii. Sau này ta sẽ thấy rằng, bài toán tìm điểm hữu tỷ của đường cong
elliptic liên quan đến việc thành lập 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ố. Đó là những
ứng dụng gần đây của lý thuyết đường cong elliptic vào các vấn đề thực tiễn.

iii. Như đã nói, việc xác định nhóm con xoắn của đường cong elliptic
không phải là khó. Tuy nhiên việc chỉ ra tất cả các khả năng của nó là một bài
toán khó và đã được giải quyết vào năm 1977 bởi nhà toán học B. Mazur.

2.1.4.4 Định lý Mazur ([2]). Giả sử E là đường cong elliptic trên trường hữu tỷ
. Khi đó, nhóm con xoắn đẳng cấu với một trong 15 nhóm sau đây:

trong đó hoặc
28

với

Nghĩa là:

1. . 9.

2. . 10. .

3. . 11.

4. . 12. .

5. . 13. .

6. . 14. .

7. 15. .

8. .

Như vậy, nhóm xoắn của đường cong elliptic có không quá 16 phần tử.

2.2. Đường cong elliptic trên trường hữu hạn


Khi nghiên cứu đường cong elliptic trên trường bất kỳ, đặc biệt là trên
trường hữu tỷ người ta thường dùng phương pháp sửa theo mod p, việc này dẫn
đến việc nghiên cứu các đường cong trên trường hữu hạn. Chú ý rằng trong khi
sửa một đường cong elliptic bằng cách chuyển các hệ số thành các đồng dư mod
p, ta có thể nhận được một đường cong có kỳ dị, khi đó ta nói đường cong
elliptic có sửa xấu tại giá trị p, ngược lại ta nói đường cong elliptic có sửa tốt tại
giá trị p.

Ta hãy xem xét đường cong elliptic (E) trên trường hữu hạn được cho
bởi phương trình dạng Weierstrass.
29

với p là số nguyên tố lớn hơn 2. Tập các điểm của đường cong (E) được ký hiệu
là . Theo định nghĩa của ký hiệu Legendre số điểm của đường cong ứng
với giá trị x là:

cùng với điểm tại vô cùng O đã được bổ sung vào ta có công thức tính số điểm
của đường cong trên trường hữu hạn như sau:

Theo Định lý Hasse ta có công thức sau:

Đương nhiên, đây là một tập điểm rời rạc, không phải là một đường cong
theo nghĩa thông thường ta vẫn hiểu như trước đây và do đó ta không có hình
ảnh minh họa giống trong trường số thực. Các khái niệm về “tiếp tuyến”, “điểm
tiếp xúc” theo nghĩa cổ điển tuy không còn, nhưng khái niệm “nghiệm bội” thì
vẫn được giữ nguyên, và công thức cộng điểm như trên vẫn hoàn toàn có thể
thực hiện được. Nghĩa là luật công điểm và công thức xác định tọa độ điểm cộng
hoàn toàn được cho bởi (2.1.3). Một điều thú vị là chính các “đường cong” rời
rạc này đã đem lại sức sống mới cho công nghệ mã hóa.

Ta biết rằng nhóm thì một nữa số phần tử là “chính phương” (tức là

dạng bình phương của một phần tử khác). Ví dụ, trong nhóm có sáu số

“chính phương” là: 1, 3, 4, 9, 10, 12 vì

Nếu g là phần tử sinh của nhóm (căn nguyên thủy modulo n) thì căn lũy
thừa bậc chẵn của nó là số “chính phương”, các lũy thừa bậc lẻ thì không.

Như vậy, phương trình hoặc có hai nghiệm, hoặc vô nghiệm.


30

Ví dụ. Trong ta thấy phương trình có hai nghiệm là 5 và 8 (rõ ràng,


8 đồng dư - 5 (mod13)), nên có thể viết dưới dạng .

Tương tự ta cũng có phương trình có hai nghiệm là 2 và 11 (ta


cũng có thể viết nó dưới dạng hoặc ).

2.2.1. Định nghĩa. ([2]). Điểm P trên đường cong Elliptic được gọi là điểm có
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 đó gọi là bậc của P, và ký hiệu là deg(P) = n.

Tuy nhiên, không phải mọi điểm của đường cong đều có bậc hữu hạn.

Ta ký hiệu:

là tập hợp những điểm thuộc đường cong E trên trường .

là tập hợp những điểm thuộc đường cong E trên trường có

bậc là n.

2.2.2. Mệnh đề. Cho P là điểm có bậc n trên đường cong elliptic E. Khi đó với
mọi số nguyên thì điểm kP cũng có bậc là n.

Chứng minh.

Bằng qui nạp.

Với .

Với hiển nhiên.

Với ta xét điểm Ta có là một môđun nên

(vì

Giử sử đúng nới ta chứng minh đúng với Nghĩa là


ta chứng minh .

Thật vậy, xét điểm ta có:


31

(do tính chất của môđun và giả thiết qui nạp).

Do đó 

2.2.3. Mệnh đề. Cho đường cong Elliptic E xác định trên trường (p> 3) bởi
phương trình (2.3) thỏa mãn điều kiện không kỳ dị. Khi đó, là tập hợp
những điểm có cùng bậc n thuộc đường cong E lập thành một môđun.

Chứng minh.

i. Trước tiên ta chứng minh là nhóm con của .

+ hiển nhiên, điểm do đó .

+ ta chứng minh . Thật vậy, ta xét


điểm do tính chất của một môđun.

Mà nên .

+ Ta xét phần tử đối của P, giả sử Q là phần tử đối của P, khi đó, ta có:

Mặt khác,

Mà n là bậc của P nên , do đó: .

Từ đây ta có được .

ii. Tiếp theo ta xây dựng phép nhân ngoài.


32

+ Trước khi chứng minh phép nhân ngoài thỏa mãn các điều kiện, ta
chứng minh mọi số nguyên a thuộc lớp hay nói cách khác mọi số nguyên a
thuộc lớp đồng dư m mod n đều thỏa mãn với mọi .

Thật vậy, luôn tồn tại sao cho từ đây ta có:

Ta chứng minh bằng qui nạp.

Với k=0 khi đó .

Với k=1 khi đó:

Vì nên

Giả sử đúng với nghĩa là:

ta chứng minh đúng với . Thật vây,

Do giả thiết qui nạp ta có


33

Mặt khác n là bậc của P nên , do đó

Vậy với mỗi phần tử thì ta có thể định nghĩa được

phép nhân điểm trong đó, , .

+ Bây giờ, ta chứng minh phép nhân ngoài như trên thỏa mãn điều kiện
của một R-môđun.

a. Tính chất kết hợp: . Ta có:

b. Tính chất phân phối: . Ta có:

c. Tính chất Unita.

Ta có: .

Rõ ràng đây là một môđun.

2.2.5 Các ví dụ.


34

Khi trường có đặc số khác 2 hoặc 3 (chẳng hạn, trường , với p > 3) thì
bằng phép biến đổi tuyến tính người ta luôn có thể đưa phương trình đường cong
elliptic về dạng Weierstrass

(2.3)

và khi đó, để cộng các điểm trên đường cong ta áp dụng công thức cộng điểm
được trình bày trong (2.1.3).

Ví dụ 1. Với đường cong E có phương trình

(1)

(tức là ), tập điểm của đường cong E được xác định như sau: Ta biết
rằng trên trường này chỉ có 3 phân tử chính phương là: 0, 1, 4 (trong đó

) cho nên với x=1 hay x=3 ta thấy ngay không phải

là số chính phương do đó hoành độ của các điểm trên đường cong chỉ có thể là
0, 2, 4. Thay vào phương trình (1) ta sẽ tìm được các điểm đó là:

E( ) = {A(0,1), B(0,-1) = (0,4), C(2,2), D(2,-2) = (2,3), G(4,0) và }.

Như vậy, E( ) có 6 điểm rời rạc và chẳng có gì giống với đường cong
theo cách hiểu thông thường xưa nay).

Lấy điểm D(2,3) trên đường cong, ta tính được bội của điểm này theo
công thức được cho trong mệnh đề (2.1.3) như sau:

2D=(0,1)= A; 3D=(4,0)=G; 4D=(0,4)=B; 5D=(2,2)=C; 6D=2D+4D= .

Ví dụ 2. Với đường cong E có phương trình (1), (tức là


), tập điểm của trường nằm trên đường cong này, tức là tập E( ) được xác
định như sau. Trong trường trong đó

. Từ đây ta suy ra các điểm trên đường cong sẽ có hoành

độ lần lượt là: x= 0, x = 1, x = 2, x = 3, x = 5, x = 6 và . Ta có tập điểm của


đường cong là:
35

E( {
, }.

Với điểm thì có thể dễ dàng trực tiếp tính ra được rằng các bội của
, cụ thể là với n = 1, 2, 3, 4, 5, 6 mang lại cho ta 6 điểm phân biệt của E(
, các bội còn lại không cho điểm nào khác hơn.

Lấy thêm một điểm trên đường cong, ta thấy rằng các điểm
, với n = 0, 1, 2, 3, 4, 5 cho ta 6 điểm còn lại của đường cong. Như vậy

mọi điểm của đường cong đều có dạng trong đó còn

. Lưu ý rằng các modulo chỉ tính theo modulo 6 và 2, trong khi các tọa

độ các điểm và hệ số của đường cong tính theo modulo 7).

Trong trường hợp này ta nói đường cong E có hai điểm cùng sinh.

2.3. Thực hành tính toán đối với đường cong elliptic trên Maple
2.3.1 Xét điểm bất kỳ có thuộc vào đường cong ellipic hay không?

Ví dụ. Cho đường cong E trên trường có phương trình là

Xét xem các điểm sau có thuộc vào đường cong E hay không?

Lời giải. Trong ví dụ này ta chỉ thực hành hai điểm A và M, các điểm còn
lại làm hoàn toàn tương tự.

1. A=(-2, 3).
36

>

2. M=(5235, -378661).

>

2.3.2 Tìm điểm nghịch đảo.

Ví dụ: Tìm điểm nghịch đảo của

Lời giải. Trong ví dụ này ta chỉ thực hiện tìm điểm nghịch đảo của
A, các điểm còn lại làm hoàn toàn tương tự.

Chương trình con tìm điểm nghịch đảo của một điểm.
37

1. A=[-2,3]

>

>

2.3.3 Cộng các điểm trên đường cong elliiptic

Ví dụ. Cho E trên trường có phương trình là: và 2 điểm


thuộc vào đường cong E. Tìm điểm .

Lời giải. Ta có thể thiết lập chương trình con để tính điểm công như sau:

>

Chương trình con tìm điểm nghịch đảo của một điểm.

>

Chương trình con tính điểm cộng của hai điểm thuộc một đường cong.
38

>

>

2.3.4 Nhân một số tự nhiên với một điểm trên đường cong elliptic

Ví dụ. Cho đường cong E trên trường có phương trình là xét xem
điểm có thuộc vào đường cong E hay không? Và tìm các điểm

Lời giải.

>
39

Chương trình con tìm điểm nghịch đảo của một điểm.

>

Chương trình con tính điểm cộng của hai điểm thuộc một đường cong.

>

Chương trình con tìm điểm nhân của một điểm với một số nguyên dương.

>

>
40

2.3.5 Tìm phần tử chính phương trên trường hữu hạn

Ta đã biết cách kiểm tra một số có phải là một thặng dư (mod p) hay
thông qua lệnh giả phương trình đồng dư (msolve). Trong phần này ta sẽ dùng
lệnh khai căn theo modulo (mroot) để làm việc tương tự. Một phần tử là “chính
phương” khi khai căn bậc hai của nó là một phần tử trong trường. Lệnh khai căn
bậc r của phần tử x trên trường có cú pháp tổng quát như sau:

> restart:

> with(numtheory):

> mroot(x,r,p);

Kết quả sẽ hiển thị nếu căn giải được hoặc báo lỗi FAIL nếu căn
không tồn tại.

Như vậy, muốn biết phần tử a có phải là chính phương hay không
chỉ cần xem căn bậc hai của nó có tồn tại hay không.

Ví dụ: Tìm biết với các giá trị lấy trên trường .

>
41

Lưu ý rằng phép tính trên chỉ cho ta một giá trị nghiệm, nhưng ta
luôn biết rằng phương trình luôn có hai nghiệm là .

2.3.6 Tìm và tính số điểm của đường cong elliptic trên trường hữu hạn

Ta luôn biết rằng điểm tại vô cùng luôn là điểm của mọi đường cong
Elliptic và ta không cần phải tìm nó.

Bài toán đặt ra là tìm những điểm khác ngoài nó. Chẳng hạn tìm một điểm
trên đường cong Elliptic có phương trình

trên trường , cũng chính là việc tìm giá trị sao cho là phần tử

chính phương, tức là lệnh không báo lỗi FAIL. Khi ấy kết

quả cho ra phần tử y trong và ta có các điểm với tọa độ (x,y) nằm trên đường
cong Elliptic.

Ví dụ. Trên trường , ta có các tính toán sau đây:

Để tìm tất cả các điểm của đường cong Elliptic Trên trường , ta có thể
thực hiện như sau:

>
42

Qua các tính toán cho ta đường cong E có tất cả 12 điểm trong đó bao
gồm điểm tại vô cực.

2.3.7 Bài toán logarit rời rạc trên đường cong elliptic

Như đã thấy, trên đường cong elliptic có thể tồn tại điểm G nào đó là
điểm sinh của đường cong (tương tự như điểm D với đường cong E( ) trong ví
dụ trên). Khi đó, với một điểm C cho trước trên đường cong, ta cần tìm số
nguyên n sao cho nG=C. Đây cũng là bài toán khó (khi số điểm của đường cong
đủ nhiều) và được xem là bài toán logarit rời rạc trên nhóm hữu hạn (đường
cong elliptic). Bài toán này còn được xem là khó hơn bài toán logarit rời rạc trên
nhóm mà chúng ta đã đề cập ở trên. Một ưu thế của bài toán này (so với bài

toán logarit rời rạc thông thường trên ) là ở chỗ với cùng một trường đó, ta
có thể xét rất nhiều đường cong elliptic khác nhau và do đó khả năng logarit rời
rạc lựa chọn của chúng ta là rất nhiều.

Tuy nhiên, không phải điểm nào của đường cong elliptic cũng có thể là
điểm sinh. Ta xét đường cong trên trường Ta có tập điểm của
đường cong là: E {
, }. Với điểm thì
ta có thể trực tiếp tính ra các bội của . Cụ thể là với ,
mang lại cho ta 6 điểm phân biệt của đường cong (trong đó với ),
còn các bội khác không cho điểm nào khác hơn.
43

Lấy thêm điểm trên đường cong, ta thấy rằng các điểm
với n=0, 1, 2, 3, 4, 5 cho ta đúng 6 điểm còn lại của đường cong.

Như vậy mọi điểm trên đường cong đều có dạng trong đó

(lưu ý rằng các hệ số chỉ tính theo modulo 6 và 2, trong khi

tọa độ các điểm và hệ số của đường cong tính theo modulo 7). Trong trường hợp
này ta nói đường cong có hai điểm cùng sinh. Trong trường hợp đó ta vẫn có thể
đặt bài toán logarit rời rạc (với cơ sở q chẳng hạn), nhưng lưu ý rằng nó không
sinh ra tất cả các điểm của đường cong, mà chỉ sinh ra nửa số điểm của đường
cong.

Số lượng điểm của đường cong elliptic không chỉ phụ thuộc vào trường
trên nó xác định, mà còn phụ thuộc vào hệ số của đường cong.

Ví dụ, cũng trên trường nhưng đường cong chỉ có 3 điểm


(mà không được 12 điểm như đường cong đã xét ở trên). Tuy nhiên, xét về trung
bình, đường cong E( ) thường có khoảng p+1 điểm, hay cụ thể hơn số điểm

của đường cong E( ) nằm giữa 2 số và Nghĩa là


44

CHƯƠNG 3. ỨNG DỤNG TRONG MẬT MÃ

Trong mọi thời đại, con người luôn cần trao đổi thông tin với nhau và không
ngừng nghiên cứu, tìm ra phương pháp để thông tin được trao đổi một cách nhanh
chóng và chính xác. Có thể nói, nhu cầu đó của con người đã đạt được nhờ sự phát
triển của khoa học kỹ thuật. Tuy nhiên, con người phải đối mặt với một thử thách mới
đó là thông tin được truyền đi rất dễ bị đánh cắp hoặc làm sai đi nội dung. Chính vì
vậy, yêu cầu đặt ra trong điều kiện hiện tại là thông tin được truyền đi phải tuyệt đối
chính xác, thậm chí được bảo mật nếu cần thiết, nghĩa là thông tin cần phải được mã
hóa trước khi truyền đi.

Tất nhiên không phải ai cũng phải dùng mã hóa. Nhu cầu về sử dụng mã hóa
xuất hiện khi các bên giao tiếp muốn bảo vệ các tài liệu quan trọng hay truyền chúng
đi một cách an toàn. Các tài liệu quan trọng có thể là tài liệu quân sự, tài chính, kinh
doanh hoặc đơn giản là thông tin nào đó mang tính riêng tư.

Internet hình thành và ra đời từ yêu cầu phục vụ cho mục đích quân sự. Khi
chúng ta tham gia trao đổi thông tin, chat, gửi mail, thực hiện các giao dịch tài
chính, ... Internet là một môi trường không an toàn, đầy rủi ro và nguy hiểm, không có
gì đảm bảo rằng thông tin mà chúng ta truyền đi không bị đọc trộm trên đường truyền.
Từ đó mã hóa được áp dụng như một biện pháp nhằm giúp chúng ta tự bảo vệ chính
mình cũng như những thông tin mà chúng ta gửi đi.

Nói đến mã hóa tức là nói đến việc che giấu thông tin bằng cách sử dụng thuật
toán. Che giấu ở đây không phải là làm cho thông tin biến mất mà là cách thức chuyển
từ dạng “có thể đọc hiểu được” thành dạng “đọc nhưng không thể hiểu được”.
Muốn làm được điều đó, ta cần một tập hợp các câu lệnh để thực hiện một thuật toán
mà theo đó chương trình sẽ biết phải làm thể nào để xáo trộn hay phục hồi lại dữ liệu.
45

3.1. Bài toán mật mã


3.1.1. Những khái niệm và những ký hiệu cơ bản trong lý thuyết mật
mã (Cryptography)

Thuật ngữ Cryptography đề cập tới ngành khoa học nghiên cứu về che
dấu và giải mã thông tin. Cụ thể hơn là nghiên cứu các cách thức chuyển đổi
thông tin từ dạng “đọc hiểu được” sang dạng “đọc nhưng không hiểu được” và
ngược lại.

Đây là một phương pháp hỗ trợ rất tốt trong việc chống lại những truy cập
bất hợp pháp tới các thông tin được truyền đi trên mạng, áp dụng mã hóa sẽ
khiến cho nội dung thông tin được truyền đi dưới dạng không thể hiểu được đối
với bất kỳ ai cố tình muốn lấy thông tin đó.

3.1.1.1 Các khái niệm

1) Plaintext (Cleartext): Thông tin trước khi được mã hóa. Đây là dữ


liệu ban đầu ở dạng có thể đọc hiểu được.

2) Ciphertext: Thông tin, dữ liệu đã được mã hóa. Ở dạng đọc nhưng


không thể hiểu được.

3) Encryption: Quá trình mã hóa, che dấu nội dung của thông tin, dữ liệu
(Plaintext -> Ciphertext).

4) Decryption: Quá trình lấy lại thông tin ban đầu của dữ liệu (Ciphertext
-> Plaintext).

5) Key: Thành phần quan trọng trong việc mã hóa và giải mã.

6) CryptoGraphic Algorithm: Là các thuật toán được sử dụng trong việc


mã hóa hoặc giải mã thông tin.

7) CryptoSystem: Hệ thống mã hóa bao gồm thuật toán mã hóa, khóa,


Plaintext, Ciphertext.

3.1.1.2 Kí hiệu chung:

1) P là thông tin ban đầu, trước khi mã hóa.


46

2) E() là thuật toán mã hóa.

3) D() là thuật toán giải mã.

4) C là thông tin mã hóa.

5) K là khóa.

3.1.1.3 Biểu diễn quá trình mật mã. Chúng ta biểu diễn quá trình mã hóa và
giải mã như sau :

1) Quá trình mã hóa được mô tả bằng công thức: EK(P) = C.

2) Quá trình giải mã được mô tả bằng công thức: DK(C) = P.

Ta sử dụng bảng sau gồm có 97 ký tự có thể in ra màn hình trong khi thực
hành mã hóa (Trích bảng mã ASCII extended).

Đồ hoạ Tương ứng với điểm trên


Tương ứng hệ thập phân
(Hiển thị ra được) đường cong E

0 Khoảng trống (␠) [19,67]

1 A [22,91]

2 B [23,99]

3 C [26,100]

4 D [27,67]

5 E [28,194]

6 F [30,135]

7 G [33,52]

8 H [34,154]

9 I [35,45]

10 J [37,132]

11 K [38,191]
47

12 L [40,52]

13 M [41,85]

14 N [43,13]

15 O [45,42]

16 P [46,93]

17 Q [47,170]

18 R [49,32]

19 S [50,147]

20 T [53,101]

21 U [54,194]

22 V [55,189]

23 W [56,177]

24 X [57,178]

25 Y [58,200]

26 Z [61,36]

27 a [62,68]

28 b [64,72]

29 c [65,35]

30 d [69,101]

31 e [70,141]

32 f [77,17]

33 g [80,45]
48

34 h [86,145]

35 i [90,127]

36 j [92,117]

37 k [94,25]

38 l [95,175]

39 m [97,46]

40 n [98,42]

41 o [99,49]

42 p [101,148]

43 q [104,135]

44 r [106,13]

45 s [107,61]

46 t [112,34]

47 u [113,71]

48 v [114,98]

49 w [116,160]

50 x [120,93]

51 y [124,190]

52 z [125,40]

53 ! [126,195]

54 # [135,60]

55 $ [138,139]
49

56 % [140,142]

57 & [142,198]

58 ' [143,26]

59 ( [144,48]

60 ) [145,80]

61 * [146,124]

62 + [147,155]

63 , [148,59]

64 - [150,87]

65 . [155,19]

66 / [157,4]

67 0 [161,109]

68 1 [164,88]

69 2 [167,189]

70 3 [168,15]

71 4 [173,51]

72 5 [179,189]

73 6 [181,140]

74 7 [183,47]

75 8 [189,84]

76 9 [190,158]

77 : [191,199]
50

78 ; [195,14]

79 < [196,184]

80 = [197,11]

81 > [198,7]

82 ? [202,83]

83 @ [205,74]

84 [ [206,84]

85 ] [212,14]

86 { [213,23]

87 } [215,116]

88 ^ [219,89]

89 _ [220,22]

90 ` [222,53]

91 | [224,6]

92 ~ [234,53]

93 Ñ [238,82]

94 ä [240,103]

95 ñ [247,82]

96 æ [250,89]

Bảng tương ứng số, ký tự, điểm.

3.1.2. Đường cong elliptic và hệ mã khóa công khai


51

Hệ mã khóa công khai sử dụng đường cong elliptic dựa trên độ phức tạp
của thuật toán tìm số nguyên x sao cho xB=P, trong đó B và P là các điểm cho
trước trên đường cong (nếu số như thế tồn tại).

Chú ý rằng các điểm của đường cong lập thành nhóm aben và ta có thể
quan niệm . Bài toán này tương tự như bài toán logarith cơ sở b của một
số p cho trước.

Dựa vào tính chất của tập điểm lập thành một môđun chúng
tôi đưa ra nhận xét như sau :

Nếu n là một số nguyên tố thì là một trường. Khi đó ta có một giao


thức mã hóa sử dụng đường cong Elliptic cực kỳ đơn giản. Tuy nhiên, để khôi
phục được dữ liệu gốc là cả một vấn đề, thậm chí có thể không khôi phục được
dữ liệu nếu không tìm được bậc n của P. Sau đây là phân tích chúng tôi về nhận
xét này:

Chúng ta đều biết rõ độ khó của việc giải bài toán logarithm rời rạt trên
đường cong Elliptic. Do đó chúng ta có thể sử dụng giao thức trau đổi khóa của
Diffie-Hellman vào mã hóa trên cơ sở điểm có bậc là số nguyên tố.

Việc tìm bậc của một điểm là không khó, tuy nhiên để bậc của điểm đó là
một số nguyên tố đủ lớn thì chúng tôi vẫn đang nghiên cứu cở sở lý thuyết toán
học của nó và đây là mục tiêu nghiên cứu tiếp theo sau khi hoàn thành luận văn
này. Hơn nữa để việc khôi phục dữ liệu trở nên không thể thực hiện được đối
vời người ngoài cuộc thì chúng tôi đặt ra yêu cầu là số nguyên tố n phải lớn hơn
số nguyên tố mà chúng ta đã chọn để xác định đường cong. Nghĩa là nếu là
trường xác định đường cong, là trường xác định bậc của điểm P thuộc
đường cong E. Khi đó nếu chọn khóa là một số nào đó đồng dư với m mod n,
sao cho nghịch đảo của nó là trong đó n là số nguyên tố lớn
hơn p rất nhiều thì việc giải mã không thực thực hiện được nếu không biết bậc n
của P. Sau đây ta xét một ví dụ minh họa cho phương pháp này.

Ví dụ 1. Tuấn gởi văn bản gốc cho Cường là


52

“Mathematics is my favorite subject”

>

Chương trình con tìm điểm nghịch đảo.

>

Chương trình con tìm điểm cộng.

>

Chương trình con tìm điểm nhân.


53

>

Chương trình con tìm bậc của một điểm.

>

Chương trình con tìm phần tử nghịch đảo của trường Zp.

>

Bảng tương ứng ký tự với số.


54

>

Bảng tương ứng số với ký tự.

>

Bảng tương ứng số với điểm của đường cong.


55

>

Bảng tương ứng điểm của đường cong với số.


56

>

>
57

Giả sử khóa bí mật của Tuấn là k_1=2, khóa bí mật của cường là k_2=3,
g=7. Khóa số công khai của Tuấn là g^k_1, của Cường là g^k_2, Tuấn tiến hành
mã hóa văn bản như sau:

>
58

Sau khi Cường nhận được dãy điểm mã này Cường tiến hành giải mã như
sau:

>

>

>
59

Trong ví dụ này chúng tôi chọn những điểm có bậc là số nguyên tố 373.
Chúng tôi sẽ chỉ ra việc khôi phục dữ liệu là không thể thực hiện được nếu
không biết bậc của điểm được chọn đặt tương ứng với văn bản rỏ trong ví dụ kế
tiếp.

Ví dụ 2: Trong bảng 3.1.1.3 ký tự M được tương ứng với điểm [41,85].


Khóa trong ví dụ trên là K=117649, khi tiến hành mã hóa ta tính điểm K[41,85]
ta được điểm [13,32].

Trong khi giải mã nếu ta tìm phần tử nghịch đảo của K trên trường
là trường xác định đường cong ta được phần tử nghịch đảo của K là và
tính điểm . Khi đó điểm giải mã sẽ là [28,207] không phải là điểm
[41,85].

Việc giải mã chỉ có thể thực hiện được khi tìm phần tử nghịch đảo của K
trên trường trong đó n là bậc của điểm [41,85]. Nghĩa là . Thật
vậy, ta tính điểm 109[116,292] thu được điểm [41,85]=M.
>

Giải mã khi tìm nghịch đảo của K trên trường Zp.

>
60

Giải mã trên trường Zn trong đó n=373 là bậc của M.

>

3.1.2.1. Định lý ([2]). Cho E là một đường cong elliptic trên trường hữu hạn
, M là một điểm trên đường cong. Khi đó, ta có thể tính tọa độ của điểm k*P
bằng phép tính bit, trong đó p là số nguyên tố với .

Chứng minh. Thật vậy, ta giả thiết rằng trường có đặc số khác 2 và 3 khi đó
đường cong elliptic có thể được cho dưới dạng Weierstrass sau đây.

Khi đó tổng của hai điểm được cho bởi công thức

 Khi thì: trong đó .

 Khi thì: trong đó

Từ đây, ta thu được công thức tính điểm 2P như sau:

trong đó

Như vậy, ta phải dùng không quá 20 phép nhân, chia, cộng, trừ để tính tọa
độ của tổng hai điểm khi biết tọa độ của hai điểm đó. Số các phép tính bit đòi
hỏi là . Khi dùng phương pháp nhân đôi liên tiếp, ta phải thực hiện
61

phép tính cộng hai điểm hoặc nhân đôi một điểm. Như vậy, tổng số
phép tính bit phải dùng là

Tóm lại, ta có thuật toán thời gian đa thức để tính bội của một điểm.
Ngược lại, khi biết kM và M, thì việc tìm ra k với thuật toán nhanh nhất hiện nay
lại đòi hỏi thời gian mũ. Điều này hoàn toàn tương tự như trong trường hợp các
số mũ modulo p, và sẽ là cơ sở cho việc xây dựng hệ khóa công khai sử dụng
đường cong Elliptic.

3.1.2.2. Các bước mã hóa dùng đường cong Elliptic.

Bước 1. Thiết lập các tham số các chu trình cần thiết.

i. Xác định trường hữu hạn . Để xác định trường hữu hạn ta chỉ
cần xác định số nguyên tố p. Trong Maple ta có thể tìm số nguyên tố thông qua
lệnh nextprime. Lưu ý rằng, độ lớn của số nguyên tố cần được chọn sao cho phù
hợp với độ dài của khối mã. Nếu p đã cho trước thì độ dài khối mã cần phải xác
định theo p, ngược lại thì p cần phải được xác định theo độ dài khối mã. Ta ký
hiệu số nguyên tố p là EC-p.

Ví dụ. Chọn số nguyên tố p sao cho ta có thể thực hiện


lệnh

p:= 123456789101119

ii. Xác định đường cong elliptic E. Ta luôn giả thiết rằng trường là
trường có đặc số khác 2 và 3 và do đó phương trình của E thường được cho dưới
dạng Weierstrass

(2.3)

Như vậy, để xác định đường cong E ta chỉ cần xác định và . Có nhiều
cách chọn đường cong E ở đây chúng tôi chỉ trình bày cách chọn đường cong và
điểm ngẫu nhiên. Giả sử x, y, a là 3 phần tử lấy ngẫu nhiên trong trường , ta
62

đặt . Ta kiểm tra đa thức có nghiệm bội hay không bằng cách
xét biệt thức nếu đa thức không có nghiệm bội ta thu được đường
cong cho bởi phương trình

Ví dụ. Trên trường ta lấy 3 giá trị

ta được

như vậy, ta thu được phương trình .

Bước 2. Tương ứng bảng tin với điểm trên đường cong.

Đây là bước đầu tiên phải làm để chuẩn bị cho quá trình mã hóa. Muốn
cho tương ứng bản tin với điểm trên đường cong, trước tiên ta phải chuyển bản
tin sang dạng số.

Về nguyên tắc, ta có thể cho ứng một bảng tin có độ dài bất kỳ với một
điểm trên đường cong, tuy nhiên khi bảng tin càng dài thì ta phải làm việc trên
trường càng lớn, chính vì thế ta tách những bảng tin đó thành những bảng tin
nhỏ hơn và có độ dài vừa phải rồi tiến hành cho ứng với một điểm trên đường
cong để thực hiện công việc mã hóa.

Ví dụ. Mỗi khối ta chọn có độ dài không vượt quá 6 chữ số thập phân khi đó ta
phải làm việc với trường có bậc lớn hơn 100000*40 chẳng hạn trường với
p=40000003. Mỗi số m (có độ dài không vượt quá 1000000) được ứng với một
phần tử của trường theo qui tắc tự nhiên. Để đặt tương ứng số m này
với một điểm trên đường cong Elliptic có phương trình là . Ta

cần thiết phải lập một bộ số có dạng và xem xét tập các
phần tử tương ứng trên trường để tìm ra một phần tử mà khi thay vào vế phải
của phương trình ta có được một phần tử chính phương.

Bước 3. Tiến hành mã hóa


63

i. Tạo cặp chìa khóa. Để tạo cặp chìa khóa trước tiên ta cần chọn một
điểm của đường cong làm điểm cơ sở của hệ mã.

ii. Xây dựng hàm lập mã và giải mã một khối văn bản.

3.2 Một vài ứng dụng của đường cong elliptic trong hệ mật mã
3.2.1 Hệ mã dùng đường cong elliptic theo mô hình ELGamal

Giả sử B, P là các điểm của đường cong elliptic E, k là một số nguyên và


P=kB. Khi đó ta nói k là logarit cơ sở B của P (lưu ý rằng ta chỉ xét trên trường
với p là số nguyên tố).

Bây giờ giả sử có một tập hợp n cá thể tham gia vào hệ thống trao đổi
thông tin mật với nhau: Trước tiên người ta chọn ra một đường
cong elliptic E trên trường , với một điểm làm cơ sở. Những thông tin
này được thông báo công khai. Dĩ nhiên p phải là số đủ lớn để việc giải bài toán
logarithm là thực sự khó khăn.

Sau đó mỗi chọn cho mình một khóa là một số nguyên nào đó.
Khóa này được giữ bí mật nhưng thông báo công khai phần tử điều này
không làm lộ do độ phức tạp của việc giải bài toán logarithm.

Giả sử cần gởi văn bản mật m cho . Trước tiên, m được đặt tương
ứng với điểm , sau đó chọn số ngẫu nhiên n và chuyển cho cặp
điểm

vì đã được cho công khai nên khi nhận được cặp điểm này, chỉ việc lấy
số sau trừ đi lần số trước để nhận được cụ thể là:

Lưu ý, chỉ có làm được điều này vì được giữ bí mật và số m không
thể tìm được trong khoảng thời gian chấp nhận được mặt dù biết mB. Trong hệ
mã này ta không cần biết chính xác số lượng các điểm của đường cong E.
64

3.2.2 Ví dụ. Thực hành mã hóa sử dụng đường cong Elliptic bằng phầm mềm
Maple 13 dựa theo hệ mã Elgamal. Văn bản cần gởi là:

“Mathematics is my favorite subject”


>

Bảng tương ứng ký tự với số.

>

Bảng tương ứng số với ký tự.


65

>

>
66

>
67

Chương trình con tìm điểm nghịch đảo của một điểm.

>

Chương trình con tính điểm cộng của hai điểm thuộc một đường cong.

>
68

Chương trình con tìm điểm nhân của một điểm với một số nguyên dương.

>

Ta chọn điểm B làm điểm cơ sở, văn bản được tương ứng với điểm P trên đường
cong.

Tuấn chọn khóa k1=2, Cường chọn khóa k2=3, và số tự nhiên n=5.

>
69

>
70

Khóa điểm công khai của Cường là k2*B=3B. Tuấn tiến hành tính điểm 5*(3B),
5*B, P+5*(3P). Rồi gởi cặp điểm {5*B,P+5*(3B)} cho Cường.

>
71

Tuấn sẽ gởi cho cường cặp điểm {Q1,ĐiêmMa}. Cường nhận được tiến
hành giải mã như sau: Cường tình điểm 3*Q1=Q, ĐiemMa trừ Q.

>

>

3.2.3 Hệ mã tương tự mã mũ

Trong trường hợp này các cá thể chọn chung một đường cong elliptic E
trên trường hữu hạn với số lượng các điểm được biết chính xác là N.

Các tham số này được thông báo công khai và hệ mã được xây dựng dựa
trên mô hình sử dụng hai chìa khóa khác nhau (có tính giao hoán được), nhưng
72

không có chìa nào được công khai mà chỉ được truyền theo một giao thức khôn
ngoan.

Để xây dựng hệ mã này mỗi cá thể chọn cho mình một chìa khóa , là
một số nguyên dương a nào đó sao cho . Bằng thuật toán
Euclid, tìm được thỏa mãn (mod N). Bây giờ, giả sử cần gửi
thông báo m cho , tìm điểm tương ứng trên đường cong, sau đó thực
hiện theo các bước sau:

Bước 1. gửi cho thông báo . Dĩ nhiên, khi nhận được thông
báo này chưa thể giải mã vì không biết và .

Bước 2. nhân kết quả nhận được với và gửi trả lại cho với nội
dung là

Bước 3. nhân thông điệp vừa nhận được với , và gửi trả lại cho
với nội dung

Bước 4. Nhận được thông báo cuối cùng này nhân nó với khóa của
mình và nhận được

Thật vậy, do cách chọn ta có (mod N) tức là


với r là số nguyên nào đó, N là số điểm của đường cong nên
. Do đó ta có được
73

KẾT LUẬN
Nội dung chính của luận văn này bao gồm:

1- Trình bày các kiến thức về Đại số và Số học có liên quan, làm cơ sở cho việc
tìm hiểu về đường cong elliptic và ứng dụng của chúng trong Lý thuyết mật mã.

2- Giới thiệu về đường cong elliptic trên trường hữu hạn và các phép toán trên
đường cong này.

3- Giới thiệu một số khái niệm, ký hiệu, bài toán và kết quả cơ bản của Lý
thuyết mật mã.

4- Tìm hiểu ứng dụng của đường cong elliptic trong Lý thuyết mật mã.

5- Sử dụng phần mềm Maple 13, chúng tôi đã đưa ra một số bài toán thực hành
về mã hóa có sử dụng công cụ đường cong elliptic.

Luận văn có thể tiếp tục tìm hiểu và nghiên cứu sâu hơn về Lý thuyết
đường cong elliptic và ứng dụng của chúng trong Lý thuyết mật mã.
74

TÀI LIỆU THAM KHẢO

TIẾNG VIỆT
[1] Phạm Huy Điển (2002), Tính toán, Lập trình và Giảng dạy Toán học trên
Maple, NXB Khoa học và Kỹ thuật, Hà Nội.
[2] Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật toán, NXB Đại học
Quốc gia Hà Nội.
[3] Nguyễn Thành Quang (2003), Số học hiện đại, Trường Đại học Vinh.
[4] Nguyễn Thành Quang (2011), Lý thuyết trường và ứng dụng, NXB Đại
học Quốc gia Hà Nội.

TIẾNG ANH
[5] D. M. Burton (2002), Elementary Number Theory, Tata McGraw - Hill
Company Limited, New Delhi.
[6] N. Koblitz (1984), Introduction to Elliptic curves and modular forms,
Springer.

[7] N. Koblitz (1987), A curse in Number Theory and Cryptography,


Springer.
[8] J.H. Silverman (2009), Arithmetic Of Elliptic Curves, Springer Dordrecht
Heidelberg London New York.
[9] S. G. Telang (2001), Number Theory, Tata McGraw - Hill Company
Limited, New Delhi.

[10] D. Stinson (1995), Cryptography: Theory and Practice, CRS press LLC.

You might also like