CÁC KHÁI NIỆM CƠ BẢN
MỘT SỐ KHÁI NIỆM TRONG SỐ HỌC
Số nguyên a lớn hơn 1 được gọi là số nguyên tố nếu nó chỉ có hai ước số là 1 và chính nó Ngược lại, một số nguyên lớn hơn 1 không phải là số nguyên tố thì được gọi là hợp số.
Ví dụ các số 2, 3, 5, 7 là số nguyên tố; các số 6, 8, 10, 12, 14, 15 là hợp số
Hai số a và b đƣợc gọi là nguyên tố cùng nhau, nếu chúng có ƣớc số chung là 1, tức là nếu gcd (a,b) = 1
Một số nguyên n > 1 bất kỳ đều có thể viết dưới dạng n = p 1 a1 p 2 a2 p k ak trong đó p 1 , p 2 , ,p k là các số nguyên tố khác nhau, a 1 , a 2 , a k là các số mũ nguyên dương
Dạng khai triển chính tắc của một số nguyên n là duy nhất nếu không xét đến thứ tự các thừa số nguyên tố Ví dụ, dạng khai triển chính tắc của số 1800 là
Các số nguyên tố và các vấn đề liên quan đến chúng đóng vai trò quan trọng trong số học, đặc biệt là trong ứng dụng lý thuyết mã hóa, sẽ được xem xét chi tiết trong chương tiếp theo Định lý 1.1 trình bày thuật toán Euclid để tìm ước số chung lớn nhất.
Với mọi a, b Z, b 0, tồn tại duy nhất q, r Z để: a = bq + r, 0 r | | b
Nếu r = 0 thì b|a, nghĩa là b là ƣớc số của a
Ngƣợc lại thì b a Với a 1 , …, a k Z, nếu b|a i (i = 1,…, k) thì b gọi là ƣớc chung của a 1 ,…, a k Ƣớc chung lớn nhất của a 1 , …, a k ký hiệu là gcd(a 1 , …, a k )
Nếu a, b Z và khác 0 thì d = gcd(a, b) là phần tử nhỏ nhất trong tất cả các số nguyên dương có dạng ax + by (x, y Z) Chứng minh
Giả sử C = {c ∈ N | c = ax + by, x, y ∈ Z} và C ≠ ф Đặt e = ax₀ + by₀ là phần tử nhỏ nhất của C Cần chỉ ra rằng d = e Nếu a = eq + r với 0 ≤ r < e, thì r = a - eq = a(1 - qx₀) + b(-qy₀) Nếu r ≠ 0, r phải thuộc C, điều này mâu thuẫn với việc chọn e Do đó, e chia hết cho a.
Tương tự, e|b; do đó e d Mặt khác, e = ax 0 + by 0 và d|a, d|b, suy ra d|e
Tồn tại x, y Z thỏa mãn: ax + by = c khi và chỉ khi d|c với d = gcd(a, b)
Nếu a = ed, b = fd, thì rõ ràng d|c Mặt khác nếu d|c, đặt kd = c Vì tồn tại x 0 , y 0
Z để ax 0 + by 0 = d, nên a(kx 0 ) + b(ky 0 ) = kd = c
Với mọi a, b, m Z ta định nghĩa a b mod m khi và chỉ khi m|(a - b)
Với m cố định, ta có một quan hệ tương đương trên tập hợp Z, dẫn đến việc phân hoạch Z thành các lớp tương đương Z_m = {[a] | a ∈ Z}, trong đó [a] = {b ∈ Z | a ≡ b mod m} Mỗi lớp tương đương [a] được thể hiện thông qua các phần tử của nó, ví dụ như trong Định lý 1.4.
Với a, m Z, tồn tại x Z thỏa mãn ax 1 mod m khi và chỉ khi gcd(a, m) = 1
Chứng minh x Z để ax 1 mod m có x, y Z thỏa mãn ax – my = 1
Theo hệ quả 1.3, định lý hoàn toàn đƣợc chứng minh p N đƣợc gọi là nguyên tố khi và chỉ khi p > 1 và a p với mọi a Z, 1 < a
< p Nói cách khác, p N, p > 1, p là nguyên tố khi và chỉ khi với mọi a, b Z, p|ab
p|a hoặc p|b Định lý 1.5 (Định lý phần dƣ Trung Quốc)
Giả sử m 1 , …, m r N đôi một nguyên tố cùng nhau, gcd(m i , m j ) = 1 với mọi i j Có a 1 , …, a r Z Khi đó, hệ phương trình x a i (mod m i ) ( 1 i r ) có một nghiệm duy nhất theo modulo M = m 1 x …xm r là x =
1 mod M trong đó M i = M/m i và M i y i 1 mod m i
Chú ý rằng M i là tích của tất cả các m j với j i Vì vậy, nếu j i thì
M i 0 mod m j Chú ý, gcd(M i , m i ) = 1, theo định lý 1.4, M i y i 1 mod m i có một nghiệm y i Do đó, x =
a i M i y i a i mod m i với mọi i, 1 i r Vì vậy, x là nghiệm của hệ phương trình đồng dư
Hàm Euler ф: N N đƣợc định nghĩa là ф(m) = #{k N | 1 k m , gcd(k, m) = 1}
7 Định lý 1.6 ф(m) = #{a Z m | ab 1 mod m với b Z m }
Chứng minh Dựa vào định lý 1.1, ta có điều phải chứng minh
Nếu p là một số nguyên tố, ф(p) = p – 1 và với a bất kỳ thuộc Z p , p a, tồn tại b
Giả sử p là số nguyên tố lẻ và x thuộc Z với 1 ≤ x ≤ p - 1, x được gọi là thặng dư bậc 2 theo modulo p nếu phương trình y² ≡ x mod p có ít nhất một nghiệm y thuộc Zp Ngược lại, x được gọi là bậc 2 không có thặng dư nếu x không phải là thặng dư bậc 2 theo modulo p và x khác 0 mod p Định lý 1.7 (Euler).
Theo định lý 1.1 G m = {a Z m | gcd(a, m) = 1} tạo thành nhóm nhân bậc ф(m) Định lý 1.8 (Fermat)
Cho p là số nguyên tố và a Z Khi đó, ta có:
(1) Vì ф(p) = p – 1 nên đây là trường hợp đặc biệt của định lý Euler
(2) Dễ dàng thấy nếu a 0 mod p là hiển nhiên, ngƣợc lại theo (1).
MỘT SỐ KHÁI NIỆM TRONG ĐẠI SỐ
1.2.1 Khái niệm Nhóm, Vành, Trường
Nhóm là cấu trúc bao gồm tập G và toán tử hai ngôi * trên G Với a, b G, a * b
G đƣợc định nghĩa nhƣ sau:
2 Tồn tại e G thỏa mãn e * a = a * e = a với mọi a G, (e đƣợc gọi là phần tử trung hòa)
3 Với mỗi a G, tồn tại một phần tử b G thỏa mãn b * a = a * b = e (b là duy nhất và đƣợc gọi là phần tử nghịch đảo của a)
Trong toán học, ký hiệu G,* đại diện cho nhóm nhân, trong khi G,+ là nhóm cộng Trong nhóm cộng, phần tử trung hòa là 0 và phần tử nghịch đảo của a là -a Ngược lại, trong nhóm nhân, phần tử trung hòa là 1 và phần tử nghịch đảo của a là a^-1.
G đƣợc gọi là nhóm Abel nếu a * b = b * a với mọi a, b thuộc G
Giả G ,* là nhóm và H là tập con của G Cấu trúc H , đƣợc gọi là nhóm con của G ,* nếu là một thu hẹp của * tới H x H và H , là một nhóm
Nếu G,* là một nhóm hữu hạn, thì bậc của G được ký hiệu là |G|, thể hiện số lượng phần tử trong nhóm Đối với nhóm nhân hữu hạn, bậc của một phần tử a ∈ G là số nguyên dương nhỏ nhất m sao cho a^m = 1 Trong nhóm nhân, với mọi phần tử thuộc nhóm, giá trị m luôn tồn tại.
G là nhóm nhân hữu hạn bậc n Nếu bậc của phần tử a G là m thì a k 1 khi và chỉ khi m|k
Nếu k = mq, thì a k = (a m ) q =1 Ngƣợc lại, k = mq + r, 0 r m Khi đó a r = a k (a -1 ) mq = 1 Vì vậy, r phải bằng 0
Nếu G ,* là nhóm nhân hữu hạn bậc n, thì:
(2) Bậc của mọi phần tử a G chia hết cho |G|
Nếu a G có bậc m thì H = {a k | k Z }là nhóm con của G và có bậc m Nếu
Nhóm G có một phần tử a với bậc n = |G| thì G được xác định là G = {a k | k ∈ Z} và được gọi là nhóm cyclic, trong đó a là phần tử sinh của G Chẳng hạn, tập hợp Z n = {0, 1, 2,…, n – 1} là một nhóm cyclic bậc n sử dụng phép cộng modulo n.
Vành là tập R với 2 toán tử cộng (+) và nhân ( ) với các điều kiện sau:
Trường F là vành với phần tử đơn vị e 0 và F* = {a F | a 0 } là một nhóm nhân Định lý 1.11
Vành Z p là một trường khi và chỉ khi p là số nguyên tố
Với a, b Z, ta có: p là số nguyên tố p|ab tức là p|a hoặc p|b
Nếu Z p là trường thì Z * p tạo thành nhóm nhân Nếu p a thì a 0 mod p Điều này nghĩa là a Z * p và tồn tại a -1 Do đó nếu p|ab và p a thì p|(ab) -1 = b
Vậy p là số nguyên tố
Ngược lại, nếu p là số nguyên tố, để chứng minh rằng Z * p là nhóm nhân, chúng ta cần chỉ ra rằng với mọi x thuộc Z * p, luôn tồn tại nghịch đảo x -1 Với a, b thuộc Z p, điều này khẳng định tính chất của nhóm nhân trong cấu trúc số học này.
Nếu \( x \in \mathbb{Z}_p \) và \( xa \equiv xb \mod p \) thì \( a \equiv b \mod p \) dẫn đến \( a - b \equiv 0 \mod p \) Điều này có nghĩa là \( p | x(a - b) \), từ đó suy ra \( p | x \) hoặc \( p | a - b \) với \( x \in \mathbb{Z}^*_p \) Do đó, ta có \( x\mathbb{Z}_p = \{ xa | a \in \mathbb{Z}_p \} = \mathbb{Z}_p \), trong đó \( xa = 1 \) với \( a \in \mathbb{Z}_p \) vì luôn tồn tại phần tử 1 trong \( \mathbb{Z}_p \) Điều này cho thấy mỗi \( x \in \mathbb{Z}^*_p \) đều có phần tử nghịch đảo.
Cho F là một trường Tập con K của F cũng là một trường với các toán tử của
F, được gọi là trường con của F, hay F là một trường mở rộng của K Nếu K F thì K được gọi là một trường con hợp lệ của F Trường là tối giản nếu nó không có trường con hợp lệ nào Với trường F bất kỳ, giao F 0 của tất cả các trường con hợp lệ là trường tối giản Trường F được gọi là có đặc số 0 nếu F 0 Q nghĩa là F chứa Q như một trường con Trường F được gọi là có đặc số p nếu F 0 Z p
Trường hữu hạn là một loại trường có số lượng phần tử hữu hạn Mỗi trường hữu hạn đều có một số nguyên tố, được gọi là đặc số của trường Đối với một trường F có đặc số p, mọi phần tử a thuộc F đều thỏa mãn điều kiện pa = 0.
Trường K với phần tử đơn vị nhân là 1
(Các trường hữu tỷ Q, số thực R, số phức C có đặc số là 0 ) Với p là nguyên tố thì GF(p n ) có đặc số p
Nếu H là trường con của K thì H và K có cùng đặc số
Trường F là trường mở rộng của trường K, ký hiệu F = K(α), với F là trường mở rộng nhỏ nhất chứa α Trong trường hợp F là trường hữu hạn đặc số p, nhóm nhân F* = F \ {0} là nhóm cyclic, và F có thể biểu diễn dưới dạng F = Zp(α), trong đó α là phần tử sinh của nhóm F* và được gọi là phần tử nguyên thủy của F.
K là một trường và V là một nhóm cộng Abel V được xem là không gian vector trên trường K khi có một toán tử ánh xạ từ K x V sang V, và toán tử này phải thỏa mãn các điều kiện nhất định.
Các phần tử trong không gian vector V được gọi là vector, trong khi các phần tử của trường K được gọi là vô hướng V là không gian vector được định nghĩa trên trường K, với các vector v1, v2, , vm thuộc V.
V có dạng c 1 v 1 + c 2 v 2 + …+ c m v m với c i K (i = 1, …, m) là tổ hợp tuyến tính của v 1 , …, v m Tập hợp tất cả các tổ hợp tuyến tính gọi là span của v 1 , …, v m và ký hiệu là span(v 1 , …, v m )
Tập S = {u 1 , u 2 ,…,u n } của các vector tạo thành cơ sở của V khi và chỉ khi
Các vector \( (u_1, u_2, \ldots, u_n) \) là độc lập tuyến tính và tạo thành span của không gian vector V Nếu S là một cơ sở của V, thì mọi phần tử trong V có thể được biểu diễn duy nhất dưới dạng tổ hợp tuyến tính của các phần tử trong S Khi không gian vector V có một cơ sở gồm một số hữu hạn các vector, mọi cơ sở của V sẽ có cùng số lượng phần tử, xác định chiều của V trên K.
Nếu F là trường mở rộng của trường K thì F là một không gian vector trên K Chiều của F trên K đƣợc gọi là bậc mở rộng của F trên K
Cho F là một vành Một đa thức bậc n trên F có dạng:
) ( với n là số nguyên dương, các hệ số a i F ( 0 i n )
) ( ta định nghĩa tổng của f(x) và g(x) là
) ( ta định nghĩa tích của f(x) và g(x) là
Vành đa thức trên F được định nghĩa là tập hợp tất cả các đa thức với các phép toán cộng và nhân thông thường, và được ký hiệu là F[x].
13 Định lý 1.12 (Thuật toán chia cho F[x])
Giả sử f(x) và g(x) F[x] có bậc nguyên dương, tồn tại duy nhất đa thức q(x), r(x) F[x] thỏa mãn f(x) = g(x) q(x) + r(x) với bậc của r(x) nhỏ hơn bậc của g(x)
Nếu r(x) là đa thức 0, thì g(x) được gọi là ước của f(x) Đa thức f(x) trong F[x] được coi là tối giản nếu không tồn tại ước nào có bậc thấp hơn f(x) trong F[x] Một số a thuộc F là nghiệm của f(x) nếu f(a) = 0.
Phần tử a F là nghiệm của đa thức f(x) F[x] khi và chỉ khi x – a là ƣớc của f(x) trong F[x]
Vì a là nghiệm nên f(a) = 0 Vì f(x) = (x –a).g(x) + r(x) nên bậc của r(x) nhỏ hơn 1, tức là r(x) = c F Vì vậy, c = f(a) = 0 Ngƣợc lại, nếu f(x) = (x – a) q(x) thì f(a) = 0
Một đa thức khác không f(x) F[x] bậc n có nhiều nhất n nghiệm trong F
Trường hữu hạn là trường có hữu hạn các phần tử ký hiệu là F q hoặc GF(q) với q là số các phần tử Định lý 1.14
F là trường mở rộng bậc n trên trường hữu hạn K Nếu K có q phần tử thì F có q n phần tử
Giả sử { 1 , , n }là cơ sở của F nhƣ là một không gian vector trên K Mọi
sẽ có dạng c 1 1 c n n trong đó c i K (i = 1,…, n) Vì mỗi c i có thể là một trong q phần tử của K nên số các tổ hợp tuyến tính là q n Định lý
Nếu F là trường hữu hạn có đặc số p thì F có p n phần tử với n nguyên dương
Vì vậy, mọi trường hữu hạn là một mở rộng của trường đẳng cấu Z p với p là đặc số của F Định lý 1.15
F p là một trường mở rộng của Z p bậc n và mọi phần tử của n
F p là một nghiệm của đa thức x p n x trên Z p
Chứng minh Đặc số của n
F p là p Tập hợp F* = F \ {0} tạo thành nhóm nhân bậc p n -1 Với
, bậc của trong nhóm chia hết cho bậc của F*, p n – 1 Vì vậy, với mọi F * , chúng ta có p n 1 1 hay p n Vì x p n x có nhiều nhất p n nghiệm, F p n gồm tất cả các nghiệm của x p n x trên Z p
Trường F₂^r chứa F₂ (hoặc Z₂) và khi coi phép cộng trong F₂^r là phép cộng vector, phép nhân k và v (với k, v thuộc F₂^r) được hiểu là tích vô hướng của k thuộc F₂ và v thuộc F₂^r Do đó, F₂^r được xem là không gian vector trên F₂ với chiều r, ký hiệu d là chiều của không gian vector này Có thể thực hiện ánh xạ một-một giữa các phần tử trong không gian vector d chiều và các d-tuple của các phần tử trong F₂, dẫn đến việc không gian vector này có 2^d phần tử Vì d = r, ta có F^r.
2 là không gian vector r chiều
F là một mở rộng của F q 2 phần tử m
, là liên hợp trên F q nếu và là các nghiệm của cùng một đa thức tối giản bậc m trên F q , q , q 2 , , q m 1 là các liên hợp của m
F là một mở rộng của F q Một cơ sở của F q m (không gian vector trên F q ) của
Cơ sở trực giao của trường hữu hạn F q m trên F q bao gồm các phần tử { , q , q 2 , , q m 1 } với thuộc F q m Mọi trường mở rộng bậc hữu hạn của một trường hữu hạn đều có một cơ sở trực giao.
KHÁI NIỆM VỀ ĐỘ PHỨC TẠP CỦA THUẬT TOÁN
Thuật toán là một dãy hữu hạn các thao tác được bố trí theo một trình tự xác định nhằm giải quyết một bài toán
An operation, also referred to as a task, command, or instruction, is an action that must be executed by the algorithm's execution mechanism.
Mỗi thao tác trong một thuật toán chuyển đổi bài toán từ trạng thái nhập sang trạng thái xuất, sử dụng các đối tượng trong trạng thái nhập và tạo ra các đối tượng mới trong trạng thái xuất Quan hệ giữa hai trạng thái này thể hiện tác động của thao tác Dãy các thao tác nối tiếp nhau nhằm biến đổi bài toán từ trạng thái ban đầu đến trạng thái kết quả.
Mỗi thao tác có thể phân tích thành các thao tác đơn giản hơn
Trình tự thực hiện các thao tác trong thuật toán cần được xác định một cách rõ ràng Một tập hợp thao tác giống nhau nhưng nếu được sắp xếp theo thứ tự khác nhau sẽ dẫn đến những kết quả khác nhau.
1.3.2 Độ phức tạp của thuật toán
Lý thuyết thuật toán và các hàm số tính đƣợc ra đời từ những năm 30 của thế kỷ
Năm 20 đã đặt nền móng cho nghiên cứu về “tính được” và “giải được” trong toán học, dẫn đến nhiều kết quả quan trọng Tuy nhiên, khoảng cách giữa khái niệm “tính được” trừu tượng và việc thực hiện tính toán thực tế trên máy tính là rất lớn Vấn đề nằm ở yêu cầu về không gian và thời gian cho các tiến trình tính toán, thường vượt quá khả năng thực tế Khoảng giữa những năm 60 của thế kỷ trước, lý thuyết về độ phức tạp tính toán bắt đầu hình thành, cung cấp hiểu biết sâu sắc về sự phức tạp của các thuật toán và bài toán, bao gồm cả những bài toán lý thuyết.
Bài viết này sẽ trình bày 17 bài toán thường gặp trong thực tế, kèm theo những khái niệm cơ bản và các kết quả quan trọng từ lý thuyết liên quan.
Để hiểu rõ về độ phức tạp tính toán, cần xác định số ô nhớ sử dụng hoặc số phép toán sơ cấp thực hiện trong một tiến trình tính toán.
Dữ liệu đầu vào cho thuật toán thường được thể hiện qua các từ trong một bảng ký tự Độ dài của từ được xác định bởi số ký tự có trong từ đó.
Thuật toán A trên bảng ký tự ∑ có độ phức tạp tính toán được định nghĩa là hàm số fA(n), với fA(n) là số ô nhớ hoặc số phép toán sơ cấp tối đa mà A cần để xử lý dữ liệu đầu vào có độ dài ≤ n Nếu fA(n) ≤ P(n) với P(n) là một đa thức và n đủ lớn, thì thuật toán A được coi là có độ phức tạp thời gian đa thức.
Về sau khi nói đến các bài toán, ta hiểu đó là các bài toán quyết định, mỗi bài toán Q nhƣ vậy đƣợc xác định bởi:
- Một tập các dữ liệu vào I (trong một bảng ký tự nào đó),
- Một câu hỏi q trên các dữ liệu vào, sao cho với mỗi dữ liệu vào x 1, câu hỏi q có một trả lời đúng hoặc sai
Bài toán quyết định Q được coi là giải được khi tồn tại một thuật toán có khả năng xử lý mọi dữ liệu đầu vào và đưa ra kết quả đúng hoặc sai dựa trên câu hỏi q Nếu thuật toán này hoạt động trong thời gian đa thức, thì bài toán Q được xem là giải được trong thời gian đa thức.
Thuật toán lại chia làm 2 loại: đơn định( tất định) và đa định( không tất định) Sau đây là vài ví dụ về các bài toán quyết định:
Bài toán SATISFIABILYTY (viết tắt là SAT):
- Mỗi dữ liệu vào là một graph G và một số nguyên k
- Mỗi câu hỏi là: Graph G có một clique với ≥ k đỉnh hay không? (một clique của G là một graph con đầy đủ của G)
- Mỗi dữ liệu là một bộ n + 1 số nguyên dương I = (s 1 , s n ; T)
- Câu hỏi là: có hay không một vectơ Boole (x 1 , ,x n ) sao cho i n xi si T
(vectơ Boole là vectơ có các thành phần là 0 hoặc 1)
Bài toán thặng dƣ bậc hai:
- Mỗi dữ liệu gồm hai số nguyên dương (a, n)
- Câu hỏi là: a có là thặng dƣ bậc hai theo mod n hay không?
- Mỗi dữ liệu là một số nguyên dương N
- Câu hỏi: N là hợp số không? Tức có hay không hai số m, n >1 sao cho N = m.n?
Nếu đặt câu hỏi "N có phải là số nguyên tố không?", ta sẽ có bài toán về số nguyên tố Đối với tất cả các bài toán này, ngoại trừ bài toán về hợp số và số nguyên tố, vẫn chưa có thuật toán giải quyết chúng trong thời gian đa thức.
1.3.3 Một số lớp bài toán
Lớp P bao gồm tất cả các bài toán có thể được giải quyết bằng thuật toán trong thời gian đa thức, phản ánh độ phức tạp tính toán của chúng.
Giả sử có hai bài toán A và B với các tập dữ liệu trong hai bảng ký tự tương ứng là 1 và 2 Một thuật toán f: * 1 → * 2 được gọi là phép quy dẫn bài toán A về bài toán B nếu nó chuyển đổi mỗi dữ liệu x của bài toán A thành dữ liệu f(x) của bài toán B, và câu hỏi của A trên x có câu trả lời đúng khi và chỉ khi câu hỏi của B trên f(x) cũng có câu trả lời đúng Nếu bài toán A quy dẫn được về bài toán B trong thời gian đa thức, ký hiệu A B, thì tồn tại thuật toán f với độ phức tạp thời gian đa thức quy dẫn bài toán A về bài toán B Nếu A B và B thuộc lớp P, thì cũng có A thuộc lớp P.
Một lớp bài toán quan trọng đã được nghiên cứu nhiều là các bài toán NP, thường gặp trong thực tế nhưng chưa có chứng minh nào cho thấy chúng có thể giải quyết trong thời gian đa thức.
Thuật toán không đơn định, khác với thuật toán tất định, cho phép một trạng thái và ký tự đầu vào xác định nhiều hành động kế tiếp khác nhau Cụ thể, trong máy Turing không đơn định, cặp (q, a) không chỉ dẫn đến một hành động duy nhất mà có thể dẫn đến một tập hợp hữu hạn các hành động Điều này có nghĩa là với một dữ liệu đầu vào x, thuật toán không đơn định có thể thực hiện nhiều tiến trình tính toán khác nhau, tạo ra sự đa dạng trong cách xử lý thông tin.
Thuật toán không đơn định T chấp nhận dữ liệu x nếu dữ liệu đầu vào đó cho kết quả đúng Một bài toán A được coi là giải được bởi thuật toán không đơn định trong thời gian đa thức nếu tồn tại một thuật toán không đơn định T và một đa thức p(n) sao cho với mọi dữ liệu đầu vào x có độ dài n, thuật toán T sẽ đưa ra kết quả chính xác.
SƠ ĐỒ CHỮ KÝ TRÊN ĐƯỜNG CONG ELLIPTIC
Đường cong Elliptic trên trường Galois
Nhóm E trên trường Galois E_p(a, b) được xác định bằng cách tính p mod b ax^3 + x + 0 với 0 ≤ x < p Các hằng số a và b là các số nguyên không âm, nhỏ hơn số nguyên tố p, và phải thỏa mãn điều kiện 4a^3 + 27b^2 mod p ≠ 0.
Đối với mỗi giá trị x, cần xác định xem nó có phải là thặng dư bậc hai hay không Nếu x là thặng dư bậc hai, thì sẽ có hai giá trị thuộc nhóm Elliptic.
Nếu x không là thặng dƣ bậc 2 thì điểm này không nằm trong nhóm E p a , b
Ví dụ: (Cấu trúc của một nhóm E)
Giả sử p 23 , a 1 và b 1 Trước tiên ta kiểm tra lại:
Sau đó ta xác định các thặng dƣ bậc 2 Q 23 từ Z 23 p mod x 2 p x 2 mod p =
2 p các thặng dƣ bậc 2 Q 23 bằng:
Với 0 x p ta tính y 2 x 3 x 1 và xác định xem liệu y 2 có nằm trong tập các thặng dƣ bậc 2 Q 23 không
Nhóm Elliptic E p a , b E 23 1 , 1 sẽ gồm các điểm sau:
Đường cong Elliptic trên trường hữu hạn
Đường cong elliptic được phát triển trên các trường hữu hạn, trong đó hai loại trường thường được sử dụng là trường hữu hạn Fq, với q là số nguyên tố, hoặc trường Fq với q là 2 m, trong đó m là số nguyên.
Tùy thuộc vào trường hữu hạn F_q, có nhiều đường cong elliptic tương ứng với mỗi bậc của q Điều này có nghĩa là với một trường hữu hạn cố định có q phần tử và giá trị q lớn, người dùng sẽ có nhiều lựa chọn cho nhóm đường cong elliptic.
2.1.3.1 Đường cong elliptic trên trường F P (p là số nguyên tố)
Cho p là số nguyên tố (p > 3) và a, b thuộc Fp với điều kiện 4a³ + 27b² ≠ 0 trong trường Fp Một đường cong elliptic E(Fp) được xác định bởi các tham số a và b là tập hợp các cặp giá trị (x, y) trong Fp, thỏa mãn phương trình y² = x³ + ax + b, cùng với điểm O, gọi là điểm tại vô cực Số lượng điểm của E(Fp) tuân theo định lý Hasse, được ký hiệu là #E(Fp).
Các phép toán trên đường cong elliptic E(F p ) tương tự như trên E(R), với tập hợp các điểm tạo thành một nhóm có các tính chất sau: tính đóng (nếu a, b thuộc G thì a + b cũng thuộc G), tính kết hợp ((a + b) + c = a + (b + c)), tồn tại phần tử trung hòa (có 0 thuộc G sao cho a + 0 = a), và tồn tại phần tử đối (với mỗi a thuộc G, có -a thuộc G sao cho -a + a = 0) Bậc của một điểm A trên E(F p ) là số nguyên dương r.
2.1.3.2 Đường cong elliptic trên trường F 2 m
Một đường cong elliptic E(F 2 m ) trên F 2 m đƣợc định nghĩa bởi các tham số a, b
F 2 m (với b ≠ 0) là tập các điểm (x, y) với x F 2 m , y F 2 m thỏa công thức: y 2 + xy = x 3 + ax 2 + b cùng với điểm O là điểm tại vô cực Số lƣợng các điểm thuộc E(F 2 m ) ký hiệu
1 2 # m 1 2 q q E F q q trong đó q = 2 m Ngoài ra, #E(F 2 m ) là số chẵn
Tập hợp các điểm thuộc E(F 2 m ) tạo thành một nhóm thỏa các tính chất sau:
Trong toán học, công thức O + O = O (x, y) + O = (x, y) cho mọi (x, y) thuộc E(F 2 m ) thể hiện tính chất của điểm vô cùng trên đường cong elliptic Cụ thể, (x, x + y) là điểm đối của (x, y) trên E(F 2 m ) Việc xử lý các phép toán này được thực hiện trên hai hệ tọa độ khác nhau: hệ tọa độ affine và hệ tọa độ quy chiếu, dẫn đến sự khác biệt trong cách tính toán trên đường cong.
CÁC PHÉP TOÁN TRÊN ĐƯỜNG CONG ELLIPTIC
Phép cộng điểm đƣợc định nghĩa trên tập E(R) của các điểm (x, y) Điểm tại vô cực O là điểm cộng với bất kỳ điểm nào cũng sẽ ra chính điểm đó
P(x,y)E(R): y= x 3 a x a 4 6 Như vậy, tương ứng với một giá trị x ta sẽ có hai giá trị tọa độ y Điểm (x, –y) ký hiệu là –P E(R), đƣợc gọi là điểm đối của P với:
Phép cộng trên E(R) đựợc định nghĩa theo phương diện hình học Giả sử có hai điểm phân biệt P và Q, P, Q E(R) Phép cộng trên nhóm đường cong elliptic là:
Để xác định điểm R trên đường cong elliptic, ta vẽ một đường thẳng L nối hai điểm P và Q Đường thẳng này sẽ cắt đường cong E tại ba điểm: P, Q và –R(x, y) Điểm R sẽ có tọa độ là R(x, -y), trong đó tung độ của R là giá trị đối của tung độ y của điểm Q.
Thể hiện phép cộng đường cong elliptic dưới dạng đại số, ta có:
Thuật toán cộng trên đường cong elliptic được thể hiện như sau:
Input: Đường cong elliptic E(R)với các tham số a4, a6 E(R) , Điểm P = (x1, y1) E(R) và Q = (x2, y2) E(R)
(1) If P = O then R := Q và trả về giá trị R
(2) If Q = O then R := P và trả về giá trị R
Hình 2.4 Phép nhân đôi trên đường cong elliptic
Xét phép nhân đôi: nếu cộng hai điểm P, Q E(R) với P = Q thì đường thẳng
L sẽ là tiếp tuyến của đường cong elliptic tại điểm P Trường hợp này điểm –R sẽ là giao điểm còn lại của L với E Lúc đó R = 2P
Phép nhân trên nhóm E p a , b thực hiện tương tự như phép lũy thừa modulo trong RSA
Giả sử P 3 , 10 E 23 1 , 1 , khi đã 2 P x 3 , y 3 bằng:
Vì P = Q và x 2 x 1 nên các giá trị , x 3 và y 3 là:
2 2.10 20 mod 6 3 3mod 23 30 mod 23 7 mod 6 3 7 10 mod 23 34 mod 23 12 x a y p x x x p y x x y p
Phép nhân kP nhận đƣợc bằng cách thực hiện lặp k lần phép cộng
* Thuật toán nhân điểm cho hệ tọa độ Affine
(3) for i = n-1 downto 0 (3.1) Gán Q ← Q + Q (3.2) if b i = 1 then
* Thuật toán nhân điểm cho hệ tọa độ quy chiếu
(2) Biểu diễn P trong hệ tọa độ chiếu: P'
(5) Biểu diễn Q' trong hệ tọa độ affine, ta đƣợc Q
SỐ ĐIỂM TRÊN ĐƯỜNG CONG ELLIPTIC VỚI TRƯỜNG F Q
Việc xây dựng hệ mật mã trên đường cong elliptic đòi hỏi lựa chọn đường cong E phù hợp cùng với điểm G, được gọi là điểm cơ sở Trong bối cảnh này, trường K được xác định là F q Định lý Hasse cung cấp các thông tin quan trọng liên quan đến số lượng điểm trên đường cong elliptic, góp phần vào tính an toàn của hệ mật mã.
N là số điểm của E trên trường F q (trường hữu hạn q phần tử) Khi đó:
|N – (q + 1)| 2 q Từ định lý Hasse suy ra #E(F q ) = q + 1 – t trong đó |t| 2 q Định nghĩa Bậc của một đường cong elliptic là số điểm của đường cong đó
Bậc của điểm G thuộc E là số k sao cho kG = O; khi k = #E(F q ) thì G là điểm cơ sở của E
2.2 MỘT SỐ SƠ ĐỒ CHỮ KÝ TRÊN ĐƯỜNG CONG ELLIPTIC
Năm 1976, Diffie và Hellman đã giới thiệu hệ mã hóa khóa công khai đầu tiên, dựa trên độ khó của bài toán DLP, và khái niệm hàm cửa sập một chiều (TOF) Đến năm 1985, Lenstra thành công trong việc áp dụng các đường cong elliptic cho các số nguyên, mở ra khả năng ứng dụng của chúng trong các hệ mật mã khóa công khai.
Miller và Koblitz là những người đầu tiên giới thiệu hệ mật mã elliptic, không phát minh ra thuật toán mới nhưng đã đóng góp quan trọng trong việc áp dụng các đường cong elliptic cho hệ thống khóa công khai Năm 1985, Miller đã đề xuất một giao thức trao đổi khóa tương tự như Diffie-Hellman, với tốc độ nhanh hơn 20% so với giao thức này.
Vào năm 1987, Koblitz đã phát triển một thuật toán mã hóa tương tự như hệ Elgamal và Massey-Omura Đến năm 1991, Koyama, Maurer, Okamoto và Vanstone giới thiệu sơ đồ đầu tiên dựa trên các hàm một chiều mới và các đường cong Elliptic, cho thấy tốc độ thực hiện nhanh gấp 6 lần so với RSA Cùng lúc đó, Kaliski chứng minh rằng các hàm cửa sập một chiều yêu cầu thời gian tính toán nghịch đảo là hàm mũ Menezes, Okamoto và Vanstone đã phát triển phương pháp tấn công MOV để giải quyết bài toán EDLP trong một số trường hợp cụ thể Sau đó, Miyaji đã xác định các điều kiện để né tránh tấn công MOV và đề xuất ứng dụng thực tế của các đường cong elliptic cho các sơ đồ chữ ký và định danh trên Smart Card.
Năm 1993, Demytko đã phát triển một thuật toán mới tương tự RSA cho các đường cong Elliptic trên vành Zn, nhằm khắc phục những hạn chế của các phiên bản trước Đồng thời, Menezes và Vanstone cũng đã giới thiệu phương pháp thực thi cho các thiết bị cứng, giúp cải thiện hiệu suất của các thuật toán này.
2.2.1 NHÚNG BẢN RÕ VÀO ĐƯỜNG CONG ELLIPTIC
Nhúng bản rõ lên E cho phép biểu diễn các điểm trên E, từ đó thực hiện các tính toán Có hai phương pháp chính để thực hiện điều này là "nhúng" (embedding) và "mặt nạ" (mask).
Cách 1 Để nhúng m lên E(Z p ) với p là số nguyên tố, chẳng hạn p 3 (mod 4)
Giả sử E(Z p ) được cho bởi phương trình y 2 = x 3 + ax 2 + b và giả sử m là số nguyên thỏa mãn 0 m p / 1000 1
Thêm 3 chữ số vào m đƣợc x thỏa mãn 1000 m x 1000 ( m 1 ) p Chúng ta sẽ bổ sung các chữ số khác nhau cho đến khi tìm đƣợc x sao cho f(x) = x 3 + ax + b là một số chính phương trong Z p và y (với f(x) = y 2 mod p ) thỏa mãn y 1 mod p Điểm P m đƣợc tạo thành khi nhúng m lên E là:
Có thể dễ dàng khôi phục lại m từ P m E ( Z p ) bằng cách loại bỏ 3 chữ số cuối của tọa độ x của điểm P m
Bước 1: Sử dụng bảng chữ cái với N ký tự và chia bản rõ thành các khối có độ dài cố định l Các ký tự được đánh số từ 0 đến N-1 Một khối văn bản w cùng với các số từ 0 đến N-l tạo thành một ánh xạ.
Bước 2 Chọn một giá trị k thích hợp sao cho kN l < q Với mỗi j là phần tử của
F q tính kx w + j Lấy điểm P w đầu tiên mà tọa độ x kx w , j 0 , ví dụ
Bước 3 Khôi phục lại khối bản rõ từ P w bằng cách tính k x w x
2.2.1.2 Phép mặt nạ (Mask) Để biểu diễn lại bản rõ dạng (m 1 , m 2 ) thành các điểm P m trên E có thể áp dụng phương pháp masking bằng cách nhân m 1 và m 2 với các tọa độ x, y của các điểm trên
E Giả sử có điểm G E có tọa độ (x G , y G ) thì P m = (m 1 x G , m 2 y G ).
SƠ ĐỒ CHỮ KÝ TRÊN ĐƯỜNG CONG ELLIPTIC
2.2.2.1 Sơ đồ chữ ký ECDSA Để thiết lập sơ đồ chữ ký ECDSA(Elliptic Curve Digital Signature Algorithm), cần xác định các tham số: lựa chọn đường cong E trên trường hữu hạn F q với đặc số p sao cho phù hợp, điểm cơ sở G E(F q )
Một số khuyến nghị khi lựa chọn các tham số:
1 Kích thước q của trường, hoặc q = p (p > 2) hoặc q = 2 m
2 Hai phần tử a, b thuộc F q xác định phương trình đường cong elliptic: y 2 = x 3 + ax + b (p>2) hoặc y 2 + xy = x 3 + ax 2 + b (p =2)
3 Hai phần tử x G và y G thuộc F q xác định điểm cơ sở G = (x G , y G )
4 Bậc n của điểm G với n > 2 160 và n 4 q
1 Chọn số ngẫu nhiên d trong khoảng [2, n – 1] làm khóa bí mật
2 Tính Q = dG làm khóa công khai
1 Chọn một số ngẫu nhiên k, 2 k n 1
3 Tính r = x 1 mod n Nếu r = 0, quay lại bước 1
1 Kiểm tra r và s có là các số tự nhiên trong khoảng [2, n – 1] không
3 Tính u 1 = mw mod n và u 2 = rw mod n
5 Nếu X = O thì phủ nhận chữ ký Ngƣợc lại tính v = x X mod n.
6 Chữ ký chỉ đƣợc chấp nhận nếu v = r
Nếu chữ ký (r, s) trên m là đúng thì s = k -1 (m + dr) mod n k s -1 (m + dr) s -1 m + s -1 rd wm + wrd u 1 + u 2 d (mod n)
Vì vậy, u 1 G + u 2 Q = (u 1 + u 2 d)G = kG, và vì vậy v = r
2.2.2.2 Sơ đồ chữ ký Nyberg - Rueppel
Giả sử E là một đường cong Elliptic trên trường Z p (p>3 và nguyên tố) sao cho
E chứa một nhóm con cyclic H trong đó bài toán logarith rời rạc là “khó”
Với P * p x * p , C ExZ * p xZ * p , ta định nghĩa: K { ( E Q a R , , , ) : R a Q với }
Q E Các giá trị và R là công khai, a là bí mật
Với K ( , , , ) E Q a R , chọn một số ngẫu nhiên k Z |H | Khi đó, với
1 , ) ( x x Z p xZ p x ta định nghĩa sig K ( x , k ) ( c , d ), trong đó:
Tất cả các sơ đồ chữ ký yêu cầu băm văn bản trước khi ký Chuẩn P1363 của IEEE khuyến nghị sử dụng SHA-1 (NIST) hoặc RIPEMD-160 (ISO-IEC) Việc sử dụng các hàm băm giúp giảm khả năng tìm thấy hai văn bản có cùng giá trị băm, đồng thời làm cho chữ ký trên văn bản gốc trở nên gọn nhẹ hơn.
2.2.2.3 Sơ đồ chữ ký mù Harn trên EC
Năm 1994, Harn đã công bố một sơ đồ chữ ký mù tựa nhƣ sơ đồ ECDSA Chữ
Chọn các tham số cho đường cong Elliptic
(1) Chọn số nguyên tố p và số nguyên n
(2) Với 2 phần tử a 1 , a 2 của GF(p n ), xác định phương trình của E trên GF(p n ) ( y 2 x 3 a 1 x a 2 trong trường hợp p>3) với 4 a 1 3 27 a 2 2 0
(3) Với 2 phần tử x G và y G trong GF(p n ) xác định một điểm G = (x G , y G ) trên
E(GF(p n )) (G O với O là điểm gốc)
(4) Giả sử điểm G có bậc q Việc sinh khóa bao gồm:
(1) Chọn một khóa bí mật d là số nguyên ngẫu nhiên trong [2, q – 1]
(2) Tính khóa công khai Q, là một điểm trên E sao cho Q = dG
Giả sử Bob yêu cầu Alice ký một văn bản m 0, trong đó m đại diện cho văn bản này (m = H(m 0 ) với H là một hàm băm) Giao thức ký được thực hiện theo quy trình sau:
(1) Alice sinh ra cặp khóa ( k , R ) theo cách sau: chọn ngẫu nhiên k [ 2 , q 1 ] và tính R k G ( x k , y k ) Đặt r = x k , rồi gửi r và R cho Bob
(2) Bob chọn các tham số làm mù a , b [ 1 , q 1 ] , tính R trên E sao cho
R = a R + bG = (x k, y k ) và tính r = c(x k ) và m ( m r ) a 1 r Sau đó gửi m cho Alice ( m là m sau khi đã bị làm mù)
(3) Alice tính s d ( m r ) k (mod q ) , rồi gửi s cho Bob
(4) Bob nhận đƣợc s , xóa mù để có đƣợc chữ ký s trên m bằng cách tính s a s b
Cặp (r, s) là chữ ký trên m
Cặp (r, s) là một chữ ký Harn của thông điệp m và sơ đồ ký trên là một sơ đồ chữ ký mù trên đường cong elliptic
(1) Tìm một điểm V trên E sao cho sG – (m + r)Q = (x v , y v )
Để xác minh tính hợp lệ của chữ ký (r, s), chúng ta cần kiểm tra điều kiện q x r = v Giao thức này đảm bảo rằng mỗi người ký sở hữu một cặp tham số duy nhất (a, b) trong khoảng [1, q - 1], tạo ra tính chất "mù" cho chữ ký Với các tham số R, k, r, m, s, và chữ ký hợp lệ (r, s) của m, chúng ta có thể chứng minh tính chính xác của chữ ký.
Ta phải chứng minh: R a R bG Thực vậy,
G r ad r a r m adG sG k r d m d aG sG G k a G s a sG G k a bG R a
Xét việc tạo chữ ký mù Harn trên đường cong elliptic y² = x³ + x + 13 trong trường nguyên tố Z₃₁ với điểm cơ sở G = (9, 10) Số lượng điểm trên đường cong E(Z₃₁) là 34, và G là phần tử có bậc 34, do đó q = 34 Các điểm trên E được liệt kê trong bảng 3.3.2.
Khóa bí mật d = 11, khi đó khóa công khai Q = dG = 11G = (22, 22)
Giả sử Bob có thông điệp m 0 với đại diện là m = 17 và cần Alice ký lên m sao cho
Alice không biết nội dung m
(1) Khi nhận đƣợc yêu cầu ký từ Bob, Alice chọn ngẫu nhiên k [ 2 , q 1 ] = 20 và tính R k G = 20G = (26, 10), r = 26 Alice gửi r và R cho Bob
(2) Bob chọn các tham số làm mù a , b [ 1 , q 1 ] với a = 5, b = 7 Tính R trên E với
R = a R + bG = 5 R + 7G = 5G = (25, 16), r = 25 Bob làm mù m thành m với r a r m m ( ) 1 = (17 + 25)5 -1 – 26 (mod 34) = 30 Bob gửi m = 30 cho Alice
Xác minh tính hợp lệ của chữ ký
Bob muốn chứng minh rằng anh ta sở hữu chữ ký của Alice với m = 17 và chữ ký cần chứng minh là (25, 25) Các bước thực hiện chứng minh diễn ra như sau:
(1) Tìm một điểm V trên E sao cho sG – (m + r)Q = (x v , y v ) = 25G – (17 + 25)Q =
? x v Nếu Bob cung cấp một chữ ký giả (r‟, s‟) (r, s) thì điều kiện kiểm tra r ? x v không thỏa mãn nên chữ ký sẽ bị phủ nhận
2.2.2.4 Sơ đồ chữ ký mù bội Harn trên EC Đa chữ ký hiểu là chữ ký được tạo thành bởi nhiều người ký Có văn bản cần được ký bởi một số người thay vì một người nhằm bảo đảm tính an toàn Những người ký không biết về nội dung văn bản ký
Việc lựa chọn các tham số cho đường cong elliptic tương tự như quy trình trong sơ đồ chữ ký Harn Giả sử có t người ký, ký hiệu là U_i, với i = 1, 2, , t Quá trình sinh khóa được thực hiện qua các bước cụ thể.
(1) Mỗi người ký U i chọn ngẫu nhiên một khóa bí mật d i là một số nguyên thuộc
(2) Khóa công khai của người ký U i là điểm: Q i = d i G = ( i i d d y x , ), i 1 , t
(3) Khóa công khai cho tất cả người ký là: Q = Q 1 +…+ Q t = dG = (x d , y d ) với d = d 1 + …+ d t (mod q)
(1) Người ký U i sinh một lần cặp ( k i , R i ) bằng cách chọn ngẫu nhiên k i [ 2 , q 1 ] và tính ( , ) i i k k i i k G x y
R U i đặt r i = k i x , i = 1,…, t rồi gửi r i và R i cho Ban thƣ ký
(2) Ban thƣ ký chọn các tham số làm mù a , b [ 1 , q 1 ] , tìm điểm R trên E sao cho
47 thƣ ký tính r c ( x k )(mod q ) và m ( m r b ) a 1 r Sau đó, gửi m và r đến cho từng người ký U i
(3) U i tính chữ ký s i d i ( m r ) k i (mod q ) , i=1,…, t , gửi s i tới Ban thƣ ký
(4) Ban thƣ ký tính ( ) ( , ) i i e e i i G m r Q x y s và kiểm tra (mod )
Chữ ký mù nhóm ECC là cặp (r, s) trong đó s s a (mod q ) và
Cặp (r, s) là chữ ký đa thành viên trên thông điệp m Để xác minh tính hợp lệ của chữ ký (r, s) trên thông điệp m, cần thực hiện các bước xác minh cụ thể.
(1) Tìm một điểm trên E sao cho sG ( m r ) Q ( x e , y e )
? q x r e Nếu đúng thì (r, s) đƣợc chấp nhận
Dễ dàng xác minh rằng sG - (m + r)Q = R Để chứng minh rằng giao thức ký tạo ra chữ ký “mù”, cần chỉ ra rằng với mỗi người ký, tồn tại duy nhất cặp (a, b) là các tham số làm mù.
] 1 , 1 [ , b q a Với các R i , k i , r i , s i , m , r và cặp chữ ký hợp lệ (r, s) của thông điệp m, chúng ta có: a s s 1 (mod q ) , b ( m r ) a m r (mod q )
Ta phải chỉ ra rằng R a R bQ
MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG CHỮ KÝ ECC
2.3.1 Phương pháp tấn công “baby-step giant - step” Đây là phương pháp tấn công đầu tiên lên hệ mật mã ECC do Shanks đưa ra, và thực hiện với thời gian là hàm mũ Nó giải bài toán DLP trong trường nguyên tố Z p đƣợc mở rộng cho bài toán EDLP
Bài toán Tìm k sao cho kG = Q trên E(F q ) với #E(F q ) = N, giả sử k tồn tại thực sự
3 Với i = 0 đến i = m-1 tính (và lưu lại) iG
4 Với j = 0 đến j = m-1 tính (và lưu lại) Q – jmG
5 Sắp xếp danh sách trong bước 3 và 4 theo một thứ tự nhất định
6 So sánh các danh sách ở các bước 3 và 4 cho đến khi tìm được cặp i, j thỏa mãn iG = Q – jmG
7 Kết quả trả lại là k i + jm (mod N)
Vì chúng ta chọn m thỏa mãn m 2 > N nên sẽ có k < m 2 Đặt k 0 k (mod m), 0 k 0 m Đặt k 1 = (k – k 0 ) / m Ta sẽ có: k = k 0 + mk 1 , với 0 k 1 m
Trong thuật toán, chúng ta tìm tất cả các giá trị i trong khoảng k0 và j trong khoảng k1 cho đến khi tìm được cặp (i, j) thỏa mãn điều kiện iG = Q – jmG, dẫn đến (i + jm)G = Q hay k = i + jm Do đó, k tồn tại, từ đó suy ra k0 và k1 cũng tồn tại.
49 Độ phức tạp thời gian
Bước 1 cần O(log N) Bước 2 và bước 3 cần O(m+1) = O( N ) Bước 4 cần
Thuật toán sắp xếp trong bước 5 thực hiện trong thời gian O(log(N) * N) Bước 6 và bước 7 đều được thực hiện trong thời gian O(N) Các yếu tố logarith rời rạc có thể được bỏ qua khi N đủ lớn để bài toán.
Thuật toán DLP (Discrete Logarithm Problem) có thời gian thực hiện là hàm mũ của N, khiến cho nó trở nên rất chậm chạp Điều này là do thời gian xử lý tăng theo cấp số nhân với độ dài dữ liệu đầu vào N.
2.3.2 Phương pháp tấn công MOV
Phương pháp tấn công MOV (Menezes, Okamoto, và Vanstone) làm yếu bài toán logarit rời rạc trên đường cong elliptic E(F q ) thành bài toán logarith rời rạc trên trường m
Khi xem xét một trường F với một số m nhất định, ta có khả năng tấn công thông qua việc sử dụng tấn công chỉ số, đặc biệt là khi m có giá trị nhỏ Để bắt đầu, chúng ta cần định nghĩa cặp Weil cho các đường cong elliptic E(F).
Xét đường cong elliptic E(F) với N là một số nguyên không phải là ước của đặc số của F Tập hợp các điểm trên đường cong E được ký hiệu là E[N] Định nghĩa nhóm các nghiệm thứ N trong F là N x F | x N 1 Điều này cho thấy rằng nhóm N tồn tại vì đặc số của F không chia hết cho N.
= 1 không có nghiệm kép, nghĩa là có N nghiệm phân biệt trong F Định nghĩa 3.1
Một cặp Weil là một ánh xạ: e N : E [ N ] xE [ N ] n thỏa mãn:
1 e N là song tuyến tính với mọi biến
2 eN là không suy biến với mọi biến Nghĩa là, nếu e N (S, T) = 1 với mọi S, thì
T = O, và nếu e N (S, T) = 1 với mọi T thì S = O
5 Nếu là một phần tử đặc biệt của F đóng vai trò là các hệ số của E, thì e N ( S,
Tìm k thỏa mãn kG = Q trên E(F q ) với #E(F q ) = N và giả sử k tồn tại
Sử dụng phép làm yếu bài toán logarith rời rạc trên đường cong E(F q ) thành bài toán logarith rời rạc trên F q m
Khi (d 1 , d 2 , …,d k ) = N, thực hiện các bước sau, sau mỗi bước tăng i lên 1
1 Chọn một điểm ngẫu nhiên S i E ( F q m )
5 Giải bài toán logarith rời rạc 1 k i i = 2 i trong trường F q m và tìm được k i (mod d i )
Sử dụng giá trị k i (mod d i ) để tìm k (mod N) với k k i (mod d i ) i Giá trị k chính là kết quả cần tìm
Chứng minh Ở bước 1 và 2, ta chọn một điểm và tính bậc của nó Bước 3 tìm T i Đặt )
với R là một điểm tùy ý trên E( m
F q Đặt kG = Q, và định nghĩa l i thỏa mãn k l i (mod d i )
Ta có: e N (kG, T i ) = e N (Q, T i ) e N (G, T i ) k = e N (Q, T i ) 1 k i 2 i Vì 1 d i 1 nên 2 i 1 k i i (mod d i ) l i k i (mod d i ) và k phải bằng k i (mod d i ) Nhƣ vậy, việc tìm k i sẽ giúp cho việc tìm k
51 Độ phức tạp thời gian
Thời gian chạy của thuật toán phụ thuộc vào việc tìm kiếm k i, và điều này trở nên dễ dàng khi có các k i Thời gian để tìm k i lại phụ thuộc vào kích thước của trường m.
F q Nếu m càng lớn thì tính toán càng phức tạp Không có một tiêu chuẩn chung để chọn m phù hợp cho tất cả các đường cong elliptic
Quay trở lại bài toán tính độ phức tạp, dựa trên đặc điểm E(F m q )
Z với n 1 , n 2 thỏa mãn n 1 |n 2 B 1 , B 2 là các điểm trên E(F m q ) với các bậc n 1 và n 2 Bất kỳ điểm
Mọi số S i đều có thể biểu diễn dưới dạng a 1 B 1 + a 2 B 2 với a 1, a 2 là các hệ số Giả sử p là một số nguyên tố với p e ||N, thì p e |n 2 Nếu p không nguyên tố cùng nhau với a 2, thì p e |n 2 dẫn đến p e |M i, trong đó M i là bậc của S i Từ đó, ta có p e |d i = gcd(M i, N) Vì S i được chọn ngẫu nhiên, nên a 2 cho S i cũng ngẫu nhiên, do đó xác suất để p không nguyên tố cùng nhau với a 2 là 1 – 1/p Kết luận, xác suất để p e |d i là ≥ 1 – 1/p cho mọi i và mọi p e ||N.
Xác suất này đủ thấp để chỉ có một vài d i cần cho p e |lcm(d 1 , d 2 ,…, d k ) đúng với mọi p
Vì vậy chúng ta không cần lặp các bước của thuật toán quá nhiều lần
MOV là thuật toán hàm mũ nhỏ đầu tiên để giải bài toán EDLP với k nhỏ
Nó dựa vào tính đẳng cấu giữa đường cong elliptic và trường hữu hạn khi gcd(#E(F q ), q) = 1, giới hạn tính hiệu quả trong lớp các đường cong elliptic supersingular với k ≤ 6 Đối với các đường cong elliptic nonsupersingular, giá trị k quá lớn để có thể áp dụng tấn công MOV.
Miyaji đã chứng minh rằng phương pháp làm yếu có hiệu quả trên các đường cong elliptic trong trường F2r, trong khi các đường cong elliptic trên trường Fp (với p là số nguyên tố lớn) không bị ảnh hưởng bởi cách tấn công này Hơn nữa, ông cũng đề xuất một phương pháp xây dựng đường cong elliptic nhằm đảm bảo rằng việc làm yếu EDLP về DLP là không thể thực hiện Do đó, không phải tất cả các hệ mật mã dựa trên đường cong elliptic đều dễ bị tấn công bằng phương pháp MOV.
2.3.3 Các thuật toán tấn công khác
Nhiều thuật toán tấn công đã được chứng minh là không hiệu quả với hệ mật mã trên đường cong elliptic, trong đó thuật toán tấn công chỉ số có thể giải bài toán DLP nhưng không áp dụng cho EDLP Giao thức trao đổi khóa trên đường cong elliptic, tương tự như giao thức Diffie-Hellman, có khả năng chống lại các cuộc tấn công của Western, Miller, và tấn công thời gian hàm mũ nhỏ của Adleman Ngoài ra, thuật toán tương tự RSA của Demytko cũng cho thấy tính an toàn trước các tấn công đẳng cấu.
LỰA CHỌN ĐƯỜNG CONG ELLIPTIC PHÙ HỢP
Việc lựa chọn đường cong elliptic có ảnh hưởng lớn đến tốc độ, hiệu quả, độ dài khóa và tính an toàn của hệ mật mã Mặc dù các tham số E, K và điểm cơ sở G đều cố định và công khai, nhưng việc chọn lựa chúng một cách phù hợp là bước quan trọng nhất trong quá trình thiết lập hệ thống.
Trước hết chúng ta xem xét sự ảnh hưởng của trường K đến cấu trúc nhóm của
E(K) và các hệ mật mã trên E(K)
Đường cong elliptic trên trường hữu hạn tạo thành nhóm Abel, được ứng dụng trong mật mã học, với ví dụ là trường F 2^r cho phép thực hiện phép tính nhanh chóng và dễ triển khai trên thiết bị cứng Tuy nhiên, các đường cong trên trường F 2^r có thể bị tấn công bởi phương pháp MOV, trong khi đường cong trên trường F p (với p là số nguyên tố lớn) lại có khả năng chống lại kiểu tấn công này Do đó, đường cong elliptic trên trường nguyên tố F p và trường F q^n sở hữu các đặc tính giúp thực thi hiệu quả trên thiết bị mà vẫn đảm bảo an toàn.
Một điểm quan trọng cần lưu ý là cách tính số điểm trên #E(K) Việc chọn #E(K) phù hợp có thể tạo điều kiện cho việc thực hiện tấn công Pohlig – Hellman Để tính #E trên trường hữu hạn Fq với đặc số khác 2, có thể sử dụng thuật toán đơn định thời gian đa thức Schoof.
Ví dụ với r nhỏ, tính #E( F r
2 ) có thể nhanh hơn một chút so với tính #E(F p ), trong đó p lớn hơn đáng kể so với 2 r , nhƣng khi r tăng thì tính #E( F r
2 ) mất nhiều thời gian hơn tính #E(F p )
2.4.2 Dạng của đường cong elliptic
Trong bài viết này, chúng ta sẽ khám phá hai loại đường cong elliptic trên trường F q, bao gồm supersingular và non-supersingular Đặc biệt, khi F q có đặc số là 2 (g = 2 m), tập hợp tất cả các cặp nghiệm (x, y) của phương trình y 2 + ax = x 3 + bx + c với a, b, c thuộc F q và a = 0 (mod q) cùng với điểm trung hòa O sẽ tạo thành một đường cong elliptic supersingular Ngược lại, tập hợp các cặp nghiệm (x, y) của cùng phương trình với b = 0 (mod q) sẽ hình thành một đường cong elliptic non-supersingular.
Menezes và Vanstone đã tìm ra các ưu điểm của các đường cong elliptic supersingular cho các hệ mật mã, đặc biệt trên trường F r
Tuy nhiên, các đường cong supersingular có thể bị tấn công bằng MOV
Các đường cong nonsupersingular mang lại độ bảo mật tương đương với các đường cong supersingular nhưng hoạt động hiệu quả hơn trong các trường nhỏ hơn Độ dài khóa ngắn của chúng cho phép triển khai trên các thiết bị như smart card Hơn nữa, các đường cong này có khả năng chống lại tấn công MOV, ví dụ như trong trường hợp nhóm con cyclic kích thước 2^160.
Có nhiều phương pháp để lựa chọn các đường cong elliptic, trong đó phương pháp tự nhiên nhất là chọn ngẫu nhiên Việc chọn ngẫu nhiên một đường cong elliptic E trên trường có thể mang lại những lợi ích nhất định trong các ứng dụng toán học và mật mã.
K và một điểm cơ sở P E K được chọn và cố định trước Phương pháp chọn ngẫu nhiên Koblitz cho các đường cong elliptic trên trường F q (với q lớn ) như sau:
1 Chọn ngẫu nhiên 3 phần tử từ F q là x, y, a
3 Kiểm tra 4 a 3 27 b 2 0 để đảm bảo phương trình x 3 + ax + b = 0 không có nghiệm kép
4 Nếu điều kiện trên không thỏa mãn quay lại bước 1
5 Còn lại, đặt P = (x, y) và đường cong y 2 = x 3 + ax + b là đường cong cần chọn
Phương pháp chọn ngẫu nhiên Koblitz
Phương pháp này có thể dẫn đến các đường cong không đáp ứng các yêu cầu định trước Một kỹ thuật cải tiến là xây dựng các đường cong với các tính chất cụ thể Ngoài ra, có thể lựa chọn những đường cong để phát triển các hệ mã hóa không phụ thuộc vào bài toán EDLP, chẳng hạn như các hệ elliptic dựa trên RSA.
Các hệ mật mã elliptic sử dụng các nhóm con cyclic của E, với điểm P là phần tử sinh Do đó, việc lựa chọn điểm P phù hợp là yếu tố quan trọng trong quá trình thiết lập hệ thống bảo mật.
CHỮ KÝ ECC TRONG TIỀN ĐIỆN TỬ
THANH TOÁN BẰNG TIỀN ĐIỆN TỬ
3.1.1 Khái niệm tiền điện tử
Tiền điện tử, còn được gọi là e-money, digital money, hay internet money, là một thuật ngữ chưa được định nghĩa rõ ràng Tuy nhiên, nó có thể được hiểu là loại tiền được giao dịch qua các phương thức điện tử, liên quan đến mạng máy tính và các hệ thống lưu trữ giá trị dưới dạng số.
Hệ thống Tiền điện tử cho phép người dùng thực hiện thanh toán cho hàng hóa và dịch vụ bằng cách truyền tải các "dãy số" từ thiết bị này sang thiết bị khác Tương tự như dãy số trên tiền giấy, mỗi dãy số của tiền điện tử là duy nhất Mỗi "đồng" tiền điện tử được phát hành bởi một tổ chức, như ngân hàng, và đại diện cho một giá trị tiền thật nhất định.
Tiền điện tử được chia thành hai loại: ẩn danh và định danh Hệ thống tiền ẩn danh bảo vệ thông tin cá nhân của người dùng, sử dụng Sơ đồ chữ ký "mù" để đảm bảo tính riêng tư.
Hệ thống tiền định danh tiết lộ thông tin định danh của người sử dụng, hệ thống dựa vào Sơ đồ chữ ký thông thường
Tính ẩn danh của tiền điện tử tương tự như tiền mặt thông thường, hệ thống tiền định danh tương tự như hệ thống thẻ tín dụng
Có nhiều phương pháp tiếp cận tính ẩn danh trong hệ thống tiền điện tử Một số hệ thống cho phép ẩn danh với người bán nhưng không đảm bảo ẩn danh với ngân hàng Trong khi đó, cũng tồn tại các hệ thống hoàn toàn ẩn danh, nghĩa là bảo vệ thông tin của người dùng trước mọi đối tượng.
Lƣợc đồ giao dịch của hệ thống tiền điện tử cơ bản, có 3 giao dịch chính sau:
Hình 3.1 Mô hình giao dịch cơ bản của hệ thống tiền điện tử
Rút tiền: A chuyển tiền của ông ta từ tài khoản ở ngân hàng vào „Túi‟ của mình (Nó có thể là smart card hay là máy Pc)
Thanh toán: A chuyển tiền từ „Túi‟ của ông ta đến ông B
Gứi tiền: B chuyển tiền nhận đƣợc vào tài khoản của ông ta ở ngân hàng
Lƣợc đồ trên có 3 đối tƣợng tham gia vào quá trình giao dịch, đó là:
Trong lƣợc đồ giao dịch này, có thể thực hiện 2 kiểu giao dịch: trực tuyến (online) và ngoại tuyến (offline)
Ông B liên hệ với ngân hàng để xác minh tính hợp lệ của đồng tiền trước khi thực hiện thanh toán và phân phối hàng Quá trình thanh toán và ghi tiền vào tài khoản người bán diễn ra đồng thời.
Ngoại tuyến: quá trình giao dịch với ngân hàng và việc kiểm tra tính hợp lệ của đồng tiền đƣợc tiến hành sau quá trình thanh toán
Hiện nay tiền điện tử có thể chia thành hai loại: Tiền điện tử định danh (identified e-money) và Tiền điện tử ẩn danh (anonymous identified e-money)
Tiền điện tử định danh lưu trữ thông tin cá nhân của người sử dụng từ khi bắt đầu rút tiền từ ngân hàng Tương tự như thẻ tín dụng trong thanh toán, loại tiền này cho phép ngân hàng theo dõi và ghi lại dấu vết của giao dịch khi tiền được luân chuyển.
Tiền điện tử ẩn danh hoạt động tương tự như tiền giấy, cho phép người dùng rút tiền từ tài khoản và sử dụng hoặc chuyển nhượng mà không để lại dấu vết.
Trong 2 loại tiền điện tử trên, dựa vào phương pháp thực hiện, có thể chia mỗi loại trên thành 2 dạng: trực tuyến (online) và ngoại tuyến (offline)
Trực tuyến đề cập đến việc cần tương tác với bên thứ ba để quản lý giao dịch, trong khi ngoại tuyến cho phép người dùng kiểm soát giao dịch mà không cần liên hệ trực tiếp với ngân hàng.
Hình 3.2 Phân loại tiền điện tử
Hiện nay có nhiều hệ thống Tiền điện tử khác nhau sử dụng giải pháp là smart card hay phần mềm
3.1.4 Những đặc điểm của tiền điện tử
Mỗi hệ thống tiền điện tử có những đặc điểm riêng biệt, không thể xác định một tập hợp các thuộc tính chung tốt nhất cho tất cả Điều này xuất phát từ việc mỗi hệ thống hoạt động trong những môi trường khác nhau và phục vụ cho các đối tượng người dùng khác nhau, đồng thời sản phẩm của hệ thống cũng có thể khác nhau, như phần mềm hoặc thẻ thông minh (smartcard).
Hiện nay tồn tại nhiều hệ thống tiền điện tử khác nhau Tuy nhiên chúng có chung các đặc điểm cơ bản sau:
TI Ề N Đ IỆ N T Ử (E -M ONE Y ) Định danh ( Identified) ngoại tuyến (offline) trực tuyến (online) Ẩn danh ( Anonymous) Định danh ( Identified) ngoại tuyến (offline) trực tuyến (online)
Quá trình thanh toán của người trả tiền cần được thực hiện một cách ẩn danh, không để lại dấu vết, đảm bảo rằng ngân hàng không thể xác định nguồn gốc của giao dịch.
Tiền điện tử có tính linh hoạt cao, cho phép giao dịch mà không bị giới hạn bởi vị trí địa lý Người dùng có thể chuyển tiền qua mạng máy tính hoặc lưu trữ trên các thiết bị nhớ khác nhau.
Hệ thống này cho phép hai bên chuyển tiền trực tiếp cho nhau mà không cần thông qua bên thứ ba như ngân hàng Tính chuyển nhượng của tiền mặt cho phép người sở hữu dễ dàng chuyển giao tài sản mà không cần sự can thiệp của ngân hàng.
Hình 3.3 Mô hình giao dịch có tính chuyển nhƣợng
Chú ý, với hệ thống hỗ trợ tính năng chuyển nhƣợng, một số vấn đề sẽ nảy sinh:
Kích cỡ dữ liệu tăng lên sau mỗi lần chuyển nhượng, vì thông tin cần được lưu giữ để ngân hàng phát hiện kẻ gian lận tiêu xài hai lần Do đó, hệ thống cần giới hạn số lượng tối đa các chuyển nhượng được phép thực hiện.
- Vấn đề rửa tiền và trốn thuế là khó phát hiện
- Việc phát hiện sự giả mạo và tiêu xài nhiều lần là quá trễ, bởi vì tiền đã đƣợc chuyển qua nhiều người
Người dùng có khả năng chia nhỏ đồng tiền số của mình thành các đồng tiền có giá trị nhỏ hơn, miễn là tổng giá trị của các đồng tiền này tương đương với giá trị của đồng tiền điện tử ban đầu.
Không phải tất cả các hệ thống đều có khả năng đáp ứng yêu cầu này, vì tiền điện tử thực chất là một dãy số được mã hóa Việc phân chia dãy số này thành các đồng tiền có giá trị nhỏ hơn không phải là một nhiệm vụ đơn giản.
CHƯƠNG TRÌNH MÔ PHỎNG GIẢI THUẬT CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG
Các chức năng chính của chương trình
Luận văn đã đạt đƣợc một số kết quả sau:
- Tìm hiểu một số khái niệm cơ bản về đường cong Elliptic
- Các phép tính trên đường cong Elliptic
- Các chữ ký số đặc biệt trên đường cong Elliptic
- Chữ ký số trên đường cong Elliptic ứng dụng trong hệ thống tiền điện tử 2./ Mô phỏng giải thuật:
Thử nghiệm chương trình mô phỏng sơ đồ chữ ký ECDSA (Elliptic curve discrete signature algorithm), một trong những chữ ký số đặc biệt trên đường cong Elliptic
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
Xây dựng ứng dụng mô phỏng hệ thống tiền điện tử dựa trên nền giải thuật chữ ký số trên đường cong Elliptic.