CÁC KHÁI NIỆM CƠ BẢN
MỘT SỐ KHÁI NIỆM TRONG SỐ HỌC
Số nguyên a > 1 đƣợc gọi là số nguyên tố, nếu a chỉ có ƣớc số là 1 và a
Một số nguyên lớn hơn 1 không 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
Nếu không kể thứ tự các thừa số nguyên tố thì dạng biểu diễn đó là duy nhất, ta gọi đó là dạng khai triển chính tắc của n Ví dụ dạng khai triển chính tắc của 1800 là
Các số nguyên tố và các vấn đề về số nguyên tố có một vai trò quan trọng trong số học và trong ứng dụng vào lý thuyết mã hóa, sẽ xét riêng trong chương sau Định lý 1.1 (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 ) Định lý 1.2
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} C ф Đặt e = ax 0 + by 0 là phần tử nhỏ nhất của C Chúng ta cần chỉ ra d = e Nếu a = eq + r, 0 r e thì: r = a – eq = a(1 – qx 0 ) + b(-qy 0 ) Nếu r 0 thì nó phải thuộc C và điều này mâu thuẫn với lựa chọn e Vì vậy, e|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)
Dễ nhận thấy, với m cố định, đây là một quan hệ tương đương trên Z Vì vậy, Z được phân hoạch thành các lớp tương đương: Z m = {[a] | a Z}, với [a] = {b Z | a b mod m} Mỗi lớp tương đương [a] được thể hiện bằng các phần tử của nó Ví dụ, Z m Đị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} Đị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 Z, 1 x p 1, khi đó x đƣợc gọi là thặng dƣ bậc 2 theo modul p nếu y 2 x mod p có một nghiệm y Z p x đƣợc gọi là bậc 2 không có thặng dƣ nếu x không là thặng dƣ bậc 2 theo modulo p và x 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)
Ký hiệu G,* là nhóm nhân và 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 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à nhóm hữu hạn thì số các phần tử của G,* đƣợc gọi là bậc của G và ký hiệu là |G| Nếu G ,* là 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 thỏa mãn a m = 1 Trong nhóm nhân, với mọi phần tử thuộc nhóm, m luôn tồn tại Định lý 1.9
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
G có một phần tử a có bậc n = |G| thì G = {a k | k Z} và G đƣợc gọi là một nhóm cylic, a đƣợc gọi là phần tử sinh của G Ví dụ, tập hợp Z n = {0, 1, 2,…, n – 1} là một nhóm cylic bậc n với toán tử 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 } 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, giả sử p là số nguyên tố Để chỉ ra rằng Z * p là nhóm nhân, ta chỉ cần chỉ ra rằng với mọi xZ * p sẽ luôn tồn tại nghịch đảo x -1 Với a, b Z p và
Z p x , nếu xa xb mod p thì a b mod p a – b 0 mod p vì p|x(a – b) p|x hoặc p|a – b và xZ * p tức là p x Điều này suy ra xZ p = {xa | a Z p } = Z p trong đó xa = 1 với a Z p vì luôn tồn tại phần tử 1 trong Z p Vậy mỗi xZ * p luôn có phần tử nghịch đảo Định nghĩa 1.1
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à trường chứa hữu hạn các phần tử Mọi trường hữu hạn có một số nguyên tố là đặc số của trường Một trường F có đặc số thì với mọi a F, pa = 0 Định nghĩa 1.2
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ố
F là trường mở rộng của trường K Ký hiệu F = K() nếu F là trường mở rộng nhỏ nhất của K chứa Nếu F là trường hữu hạn đặc số p thì nhóm nhân F* = F \ {0} là nhóm cylic và F = Z p () với là phần tử sinh của nhóm F* và đƣợc gọi là phần tử nguyên thủy của F
K là trường và V là nhóm cộng Abel V được gọi là không gian vector trên trường K nếu một toán tử ánh xạ từ K x V V được định nghĩa thỏa mãn các điều kiện sau:
Các phần tử của V đƣợc gọi là các vector và các phần tử của K đƣợc gọi là các vô hướng V là không gian vector trên trường K và các v 1, …, v m V Vector trong
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
(u 1 , u 2 ,…,u n ) là độc lập tuyến tính và là span của V Nếu S là một cơ sở của V thì mọi phần tử của V được biểu diễn duy nhất dưới dạng tổ hợp tuyến tính của các phần tử của S Nếu không gian vector V có cơ sở là một số hữu hạn các vector thì bất kỳ cơ sở nào của V cũng sẽ có cùng số phần tử Khi đó nó chính là chiều của V trên K
Nếu F là 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 được tạo thành bởi tất cả các đa thức trên F với toán tử thông thường là cộng và nhân đƣợc gọi là vành đa thức trên F và ký hiệu là F[x] Định lý 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 bất định f(x) trong F[x] là tối giản nếu nó không có ƣớc có bậc thấp hơn f(x) trong F[x] a F là nghiệm của f(x) F[x] nếu f(a) = 0
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
Trường hữu hạn F = F p n là một trường mở rộng của Z p bậc n và mọi phần tử của F p n 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 F p n 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 2 r chứa F 2 (hoặc Z 2 ) Nếu viết toán tử cộng trong F 2 r như là phép cộng vector và viết phép nhân k và v (k, v F 2 r ) là một tích vô hướng của k F 2 và v F 2 r Khi đó F 2 r đƣợc xem là không gian vector trên F 2 với chiều r Ký hiệu d là chiều của không gian vector này Có thể thực hiện ánh xạ 1 – 1 giữa các phần tử trong không gian vector d chiều và các d-tuple của các phần tử trong F 2 Vì vậy, có 2 d phần tử trong không gian vector này Vì d = r, F 2 r là không gian vector r chiều q m
F là một mở rộng của F q 2 phần tử ,F q 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 F q m với F q q 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
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
- Thao tác, hay còn gọi là tác vụ, phép toán (Operation) hay lệnh (Command), chỉ thị (Instruction) là một hành động cần đƣợc thực hiện bởi cơ chế thực hiện thuật toán
Mỗi thao tác biến đổi bài toán từ một trạng thái trước (hay trạng thái nhập) sang trạng thái sau (hay trạng thái xuất).Thực tế mỗi thao tác thường sử dụng một số đối tƣợng trong trạng thái nhập (các đối tƣợng nhập )và sản sinh ra các đối tƣợng mới trong trạng thái xuất (các đối tƣợng xuất) Quan hệ giữa 2 trạng thái xuất và nhập cho thấy tác động của thao tác Dãy các thao tác của thuật toán 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 phải đƣợc xác định rõ ràng trong thuật toán
Cùng một tập hợp thao tác nhƣng xếp đặt theo trình tự khác nhau sẽ cho 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ỷ
20 đã đặt nền móng cho việc nghiên cứu các vấn đề “tính đƣợc”, “giải đƣợc” trong toán học, đƣa đến nhiều kết quả rất quan trọng và lý thú Nhƣng từ cái “tính đƣợc” một cách trừu tƣợng, hiểu theo nghĩa tiềm năng, đến việc tính đƣợc trong thực tế của khoa học tính toán bằng máy tính điện tử, là cả một khoảng cách rất lớn Vấn đề là do ở chỗ những đòi hỏi về không gian vật chất và về thời gian để thực hiện các tiến trình tính toán nhiều khi vƣợt quá xa những khả năng thực tế Từ đó, vào khoảng giữa những năm 60 (của thế kỷ trước), một lý thuyết về độ phức tạp tính toán bắt đầu được hình thành và phát triển nhanh chóng, cung cấp cho chúng ta nhiều hiểu biết sâu sắc về bản chất phức tạp của các thuật toán và các bài toán, cả những bài toán thuần túy lý thuyết đến những bài toán thường gặp trong thực tế Sau đây giới thiệu sơ lược một số khái niệm cơ bản và vài kết quả sẽ đƣợc dùng đến của lý thuyết đó
Trước hết, hiểu độ phức tạp tính toán (về không gian hay về thời gian) của một tiến trình tính toán là số ô nhớ đƣợc dùng hay số các phép toán sơ cấp đƣợc thực hiện trong tiến trình tính toán đó
Dữ liệu đầu vào đối với một thuật toán thường được biểu diễn qua các từ trong một bảng ký tự nào đó Độ dài của một từ là số ký tự trong từ đó
Cho một thuật toán A trên bảng ký tự (tức có đầu vào là các từ trong ) Độ phức tạp tính toán của thuật toán A đƣợc hiểu là một hàm số f A (n) sao cho với mỗi số n, f A (n) là số ô nhớ, hay số phép toán sơ cấp tối đa mà A cần để thực hiện tiến trình tính toán của mình trên các dữ liệu vào có độ dài n Ta nói thuật toán A có độ phức tạp thời gian đa thức, nếu có một đa thức P(n) sao cho với mọi n đủ lớn ta có f A (n) P(n), trong đó f A (n) là độ phức tạp tính toán theo thời gian của A
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 là giải được, nếu có thuật toán để giải nó, tức là thuật toán làm việc có kết thúc trên mọi dữ liệu vào các bài toán, và cho kết quả đúng hoặc sai tùy theo câu hỏi q trên dữ liệu đó có trả lời đúng hoặc sai Bài toán Q là giải được trong thời gian đa thức, nếu có thuật toán giải nó với độ phức tạp 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 n i 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?
Tương tự, nếu đặt câu hỏi là “N là số nguyên tố hay không?” thì ta được bài toán số nguyên tố Đối với tất cả các bài toán kể trên, trừ bài toán hợp số và số nguyên tố, cho đến nay người ta đều chưa tìm được thuật toán giải chúng trong thời gian đa thức
1.3.3 Một số lớp bài toán
Xét một vài lớp các bài toán đƣợc xác định theo độ phức tạp tính toán của chúng Trước hết, định nghĩa P là lớp tất cả các bài toán có thể giải được bởi thuật toán trong thời gian đa thức
Giả sử cho 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à một phép quy dẫn bài toán A về bài toán B, nếu nó biến mỗi dữ liệu x của bài toán A thành một dữ liệu f(x) của bài toán B, và sao cho câu hỏi của A trên x có trả lời đúng khi và chỉ khi câu hỏi của B trên f(x) cũng có trả lời đúng Ta nói bài toán A quy dẫn được về bài toán Btrong thời gian đa thức, và ký hiệu A B, nếu có thuật toán f với độ phức tạp thời gian đa thức qui dẫn bài toán A về bài toán B Dễ thấy rằng, nếu A B và B P, thì cũng có A P
Một lớp quan trọng các bài toán đã đƣợc nghiên cứu nhiều là lớp các bài toán khá thường gặp trong thực tế nhưng cho đến nay chưa có khả năng nào chứng tỏ là chúng có thể giải đƣợc trong thời gian đa thức Đó là lớp các bài toán NP đƣợc định nghĩa sau đây:
Cùng với khái niệm thuật toán tất định thông thường (có thể mô tả chính xác chẳng hạn bởi máy Turing tất định), xét khái niệm thuật toán không đơn định với một ít thay đổi nhƣ sau: nếu đối với máy Turing tất định, khi máy đang ở một trạng thái q và đang đọc một ký tự a thì cặp (q, a) xác định duy nhất một hành động kế tiếp của máy, còn đối với máy Turing không đơn định, qui ƣớc rằng (q, a) xác định không phải duy nhất mà là một tập hữu hạn các hành động kế tiếp; máy có thể thực hiện trong bước kế tiếp một trong các hành động đó Như vậy, đối với một dữ liệu vào x, một thuật toán không đơn định đƣợc (đƣợc xác định chẳng hạn bởi một máy Turing không đơn định) không phải chỉ có một tiến trình tính toán duy nhất, mà có thể có một số hữu hạn những tiến trình tính toán khác nhau
Ta nói thuật toán không đơn định T chấp nhận dữ liệu x, nếu với dữ liệu vào chấp nhận (tức với kết quả đúng) Một bài toán A đƣợc gọi là giải được bởi thuật toán không đơn định trong thời gian đa thức nếu có 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 vào x có độ dài n khi và chỉ khi thuật toán T
Người ta đã chứng tỏ được rằng tất cả những bài toán trong các ví dụ kể trên và rất nhiều các bài toán tổ hợp thường gặp khác đều thuộc lớp NP, dù rằng hầu hết chúng đều chƣa đƣợc chứng tỏ là thuộc P Một bài toán A đƣợc gọi là NP-đầy đủ, nếu
A NP và với mọi B NP đều có B A
Lớp NP có một số tính chất sau đây:
2) Nếu P 1 P 2 và P 2 NP, thì P 1 NP
3) Nếu P 1 , P 2 NP, P 1 P 2, và P 1 là NP- đầy đủ, thì P 2 cũng là NP-đầy đủ
4) Nếu có A sao cho A là NP-đầy đủ và AP, thì P=NP
Từ các tính chất đó có thể xem rằng trong lớp NP, P là lớp con các bài toán
“dễ” nhất, còn các bài toán NP đầy đủ là các bài toán “khó” nhất; nếu có ít nhất một bài toán NP đầy đủ đƣợc chứng minh là thuộc P, thì lập tức suy ra P = NP, dù rằng cho đến nay tuy đã có rất nhiều cố gắng nhƣng toán học vẫn chƣa tìm đƣợc con đƣợc nào hy vọng đi đến giải quyết vấn đề
MỘT SỐ KHÁI NIỆM TRONG MẬT MÃ
1.4.1.1 Khái niệm hệ mã hóa Để bảo đảm an toàn thông tin lưu trữ trong máy tính (VD giữ gìn thông tin cố định) hay bảo đảm an toàn thông tin trên đường truyền tin (VD trên mạng máy tính, điện thoại), người ta phải “ Che Giấu ” các thông tin này
“ Che ” thông tin (dữ liệu) hay “ Mã hóa ” thông tin là thay đổi hình dạng thông tin gốc, và người khác “khó” nhận ra
“ Giấu ” thông tin (dữ liệu) là cất giấu thông tin trong bản tin khác, và người khác cũng “khó” nhận ra
Việc mã hoá phải theo quy tắc nhất định, quy tắc đó gọi là Hệ mã hóa
Hệ mã hóa đƣợc định nghĩa là bộ năm (P, C, K, E, D), trong đó:
P là tập hữu hạn các bản rõ có thể
C là tập hữu hạn các bản mã có thể
K là tập hữu hạn các khoá có thể
E là tập các hàm lập mã
D là tập các hàm giải mã
Với khóa lập mã ke K , có hàm lập mã e ke E, e ke : P C , Với khóa giải mã kd K , có hàm giải mã d kd D, d kd : C P, sao cho d kd (e ke (x)) = x , x P Ơ đây x đƣợc gọi là bản rõ , e ke (x) đƣợc gọi là bản mã
Trên đường truyền tin, thông tin được mã hoá để bảo đảm bí mật:
Người gửi G e ke (T) Người nhận N
(có khóa lập mã ke) (có khóa giải mã kd)
Tin tặc có thể trộm bản mã e ke (T)
Người gửi G muốn gửi bản tin T cho người nhận N Để bảo đảm bí mật, G mã hoá bản tin bằng khóa lập mã ke, nhận đƣợc bản mã e ke (T), sau đó gửi cho N
Tin tặc có thể trộm bản mã e ke (T), nhƣng cũng “ khó ” hiểu đƣợc bản tin gốc
T nếu không có khoá giải mã kd
Người N nhận được bản mã, họ dùng khoá giải mã kd, để giải mã e ke (T), sẽ nhận đƣợc bản tin gốc T = d kd (e ke (T))
Theo cách sử dụng khóa ta có thể phân loại có hai loại mã hóa chính: Mã hóa khóa đối xứng và Mã hóa khoá bất đối xứng
Mã hóa khóa đối xứng có khóa lập mã và khóa giải mã “giống nhau”, theo nghĩa biết đƣợc khóa này thì “dễ” tính đƣợc khóa kia Do đó phải giữ bí mật cả 2 khóa
Mã hóa khóa bất đối xứng có khóa lập mã khác khóa giải mã (ke kd), biết đƣợc khóa này cũng “khó” tính đƣợc khóa kia Bí mật khóa giải mã Công khai khóa lập mã a) Hệ mã hóa khóa đối xứng
Mã hóa khóa đối xứng là Hệ mã hóa có khóa lập mã và khóa giải mã “giống nhau”, theo nghĩa biết đƣợc khóa này thì “ dễ ” tính đƣợc khóa kia Đặc biệt một số Hệ mã hóa loại này có khoá lập mã và khoá giải mã trùng nhau (ke = kd)
Hệ mã hóa khóa đối xứng còn có tên gọi là Hệ mã hóa khoá bí mật , vì phải giữ bí mật cả 2 khóa Trước khi dùng Hệ mã hóa khóa đối xứng, người gửi và người nhận phải thoả thuận thuật toán mã hóa và một khoá chung (lập mã hay giải mã), khoá này phải đƣợc giữ bí mật Độ an toàn của Hệ mã hóa loại này phụ thuộc vào khoá
Các đặc điểm của Hệ mã hóa khóa đối xứng Ưu điểm :
Mã hóa khóa đối xứng mã hóa và giải mã nhanh hơn mã hóa khóa công khai
- Mã hóa khóa đối xứng chƣa thật an toàn với lý do đơn giản:
Người mã hoá và người giải mã phải có “ chung ” một khoá Khóa phải đƣợc giữ bí mật tuyệt đối, vì “dễ” xác định khoá này nếu biết khoá kia
Khi hai người (lập mã, giải mã) cùng biết “chung” một bí mật, thì khó giữ đƣợc bí mật !
- Vấn đề thỏa thuận khoá và quản lý khóa chung là khó khăn và phức tạp
Người gửi và người nhận phải luôn thống nhất với nhau về khoá Việc thay đổi khoá là rất khó và dễ bị lộ Khóa chung phải đƣợc gửi cho nhau trên kênh an toàn
Hệ mã hóa cổ điển thuộc loại Mã hóa khóa đối xứng: dễ hiểu, dễ thực thi, nhƣng có độ an toàn không cao Vì giới hạn tính toán chỉ trong phạm vi bảng chữ cái, sử dụng trong bản tin cần mã, ví dụ là Z26 nếu dùng các chữ cái tiếng Anh, là Z 256 nếu dùng bảng mã ASCII
Với hệ mã hóa cổ điển, nếu biết khoá lập mã hay thuật toán lập mã, người ta có thể “dễ” xác định đƣợc bản rõ, vì “dễ” tìm đƣợc khoá giải mã
Hệ mã hóa khóa đối xứng hiện đại có độ an toàn cao nhƣ DES (1973),
Hệ mã hóa khóa đối xứng dùng để mã hóa những bản tin lớn, vì tốc độ mã hóa và giải mã nhanh hơn Hệ mã hóa khóa công khai b) Hệ mã hóa khóa bất đối xứng
Mã hóa khóa bất đối xứng là Hệ mã hóa có khóa lập mã và khóa giải mã khác nhau (ke kd), biết đƣợc khóa này cũng “khó” tính đƣợc khóa kia
Hệ mã hóa này còn đƣợc gọi là Hệ mã hoá khóa công khai, vì:
Khoá lập mã cho công khai , gọi là khoá công khai (Public key)
Khóa giải mã giữ bí mật, còn gọi là khóa riêng (Private key)
Một người bất kỳ có thể dùng khoá công khai để mã hoá bản tin, nhưng chỉ người nào có đúng khoá giải mã thì mới có khả năng xem được bản rõ
Hệ mã hóa bất đối xứng hay Hệ mã hóa khoá công khai do Diffie và Hellman phát minh vào những năm 1970
Các đặc điểm của Hệ mã khoá bất đối xứng Ưu điểm :
Người mã hoá dùng khóa công khai, người giải mã giữ khóa bí mật Khả năng lộ khóa bí mật khó hơn vì chỉ có một người gìn giữ
Nếu kẻ phá hoại biết khoá công khai, cố gắng tìm khoá bí mật, thì chúng phải đương đầu với bài toán “khó”
Khi biết các tham số ban đầu của hệ mã hóa, việc tính ra cặp khoá công khai và bí mật phải là “dễ”, tức là trong thời gian đa thức
Người gửi có bản rõ P và khoá công khai, thì “dễ” tạo ra bản mã C
Người nhận có bản mã C và khoá bí mật, thì “dễ” giải được thành bản rõ P
SƠ ĐỒ CHỮ KÝ TRÊN ĐƯỜNG CONG ELLIPTIC
Đường cong Elliptic trên trường Galois
Nhóm E trên trường Galois Ep a,b nhận được bằng cách tính p mod b ax x 3 với 0xp Các hằng số a, b là các số nguyên không âm và nhỏ hơn số nguyên tố p và thỏa mãn điều kiện: 4a 3 27b 2 modp0
Với mỗi giá trị x, ta cần xác định xem nó có là một thặng dƣ bậc hai hay không
Nếu x là thặng dƣ bậc hai thì có 2 giá trị trong 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 Ep a,b
Ví dụ: (Cấu trúc của một nhóm E)
Giả sử p23, a1 và b1 Trước tiên ta kiểm tra lại:
Sau đó ta xác định các thặng dƣ bậc 2 Q23 từ Z23 p mod x2 p x 2modp
Với 0xp ta tính y 2 x 3 x1 và xác định xem liệu y 2 có nằm trong tập các thặng dƣ bậc 2 Q23 không x 0 1 2 3 4 5 6 7 8 9 10 11 y2 1 3 11 8 0 16 16 6 15 3 22 9
Nhóm Elliptic Ep a,b E23 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 xây dựng trên các trường hữu hạn Có hai trường hữu hạn thường được sử dụng: trường hữu hạn Fq với q là số nguyên tố hoặc q là 2 m (m là số nguyên)
Tùy thuộc vào trường hữu hạn F q , với mỗi bậc của q, tồn tại nhiều đường cong elliptic Do đó, với một trường hữu hạn cố định có q phần tử và q lớn, có nhiều sự lựa chọn nhóm đường cong elliptic
2.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), Cho a, b Fp sao cho 4a 3 + 27b 2 ≠ 0 trong trường F p Một đường cong elliptic E(F p ) trên F p (được định nghĩa bởi các tham số a và b) là một tập hợp các cặp giá trị (x, y) (x, y Fp) thỏa công thức: y 2 = x 3 + ax + b cùng với một điểm O – gọi là điểm tại vô cực Số lƣợng điểm của E(Fp) là #E(Fp) thỏa định lý Hasse:
Các phép toán của đường cong elliptic trên Fp cũng tương tự với E(R) Tập hợp các điểm trên E(F p ) tạo thành một nhóm thỏa các tính chất sau: o Tính đóng: a, b G, a + b G o Tính kết hợp: (a + b) + c = a + (b + c) o Phần tử trung hòa: có giá trị 0 G sao cho: a + 0 = 0 + a = a, a G o Phần tử đối: aG -aG gọi là số đối của a, sao cho: -a+a=a+(-a)=0 Bậc của một điểm A trên E(F p ) là một số nguyên dương r sao cho:
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:
O + O = O (x, y) + O = (x, y), (x, y) E(F 2 m ) (x, y) + (x, x + y) = O, (x, y) E(F 2 m ) Khi đó, (x, x + y) là điểm đối của (x, y) trên E(F 2 m ))
Việc xử lý đƣợc thực hiện trên hai hệ tọa độ khác nhau: hệ tọa độ affine và hệ tọa độ quy chiếu Với các hệ tọa độ khác nhau, việc tính toán trên đường cong cũng khác nhau.
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à:
Hình 2.3 Phép cộng trên đường cong elliptic Để tìm điểm R, ta nối P và Q bằng đường thẳng L Đường thẳng L sẽ cắt E tại ba điểm P, Q và –R(x, y) Điểm R(x, –y) sẽ có tung độ là giá trị đối của y
Thể hiện 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 Ep a,b thực hiện tương tự như phép lũy thừa modulo trong RSA
Giả sử P3,10E23 1,1 , khi đã 2 P x 3 , y 3 bằng:
Vì P = Q và x2 x1 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 các hệ mật mã trên đường cong elliptic bao gồm việc lựa chọn đường cong E thích hợp và một điểm G trên E gọi là điểm cơ sở Xét trường K là F q Định lý (Hasse)
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 mà sự an toàn của nó dựa trên độ khó của bài toán DLP Họ đã đƣa ra khái niệm hàm cửa sập một chiều (TOF) Năm 1985, Lenstra thành công trong việc sử dụng các đường cong elliptic cho các số nguyên Kết quả này mang lại khả năng áp dụng các đường cong elliptic trong các hệ mật mã khóa công khai
Miller và Koblitz giới thiệu những hệ mật mã elliptic đầu tiên Họ không phát minh ra các thuật toán mới nhƣng đã có đóng góp lớn là chỉ ra việc áp dụng các đường cong elliptic cho các hệ khóa công khai Miller đề xuất một giao thức trao đổi khóa tựa nhƣ Diffie – Hellman vào năm 1985 (nhanh hơn 20% so với giao thức Diffie
- Helman) Koblitz đưa ra thuật toán mã hóa tương tự như hệ Elgamal và Massey – Omura vào năm 1987 Sơ đồ đầu tiên tương tự như sơ đồ RSA và 3 hàm một chiều (có cửa sập) mới dựa trên các đường cong Elliptic được đưa ra năm 1991 bởi Koyama, Maurer, Okamoto và Vanstone (thuật toán này tốc độ thực hiện nhanh gấp 6 lần so với RSA) Cùng thời điểm đó, Kaliski chứng minh rằng các hàm cửa sập một chiều đòi hỏi thời gian là hàm mũ để thực hiện phép tính nghịch đảo Menezes, Okamoto và Vanstone đã đưa ra một phương pháp tấn công MOV để giải bài toán EDLP trong một số trường hợp riêng Ngay sau đó, Miyaji đã tìm được các điều kiện để tránh khỏi tấn công MOV và đề xuất mộ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 đưa ra một thuật toán mới tương tự như RSA cho các đường cong Elliptic trên vành Z n vượt qua các hạn chế của các phiên bản trước, và Menezes và Vanstone đã đưa ra phương pháp thực thi trên các thiết bị cứng có thể cải
NHÚNG BẢN RÕ VÀO ĐƯỜNG CONG ELLIPTIC
Nhúng bản rõ lên E là biểu diễn lại bản rõ đó nhƣ là các điểm trên E, nhờ đó có thể thực hiện được các tính toán trên E Có một số phương pháp để thực hiện việc này
Trong đó có 2 phương pháp chính là “nhúng” (imbeding) và “mặt nạ” (mask)
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 gồm N ký tự Chia bản rõ thành các khối có độ dài cố định l Các ký tự đƣợc đánh số là 0,…, N-1 Một khối văn bản w cùng với các số 0 x w 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 , j0 , 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à n4 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 , CExZ * p xZ * p , ta định nghĩa: K { ( E Q a R , , , ) : R a Q với }
QE 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 kZ |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ý đều yêu cầu phải băm văn bản trước khi ký
Chuẩn P1363 của IEEE khuyến nghị dùng SHA-1, đƣợc định nghĩa bởi NIST, hoặc RIPEMD-160, đƣợc định nghĩa bởi ISO-IEC Lý do để sử dụng các hàm băm là việc chúng giúp khó tìm đƣợc 2 văn bản có cùng giá trị băm, hàm băm giúp chữ ký trên văn bản gốc gọn nhẹ hơn rất nhiều.
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 xa 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ý lên một văn bản m 0 mà m là đại diện của văn bản này (m = H(m 0 ) với H là một hàm băm nào đó) Giao thức ký đƣợc thực hiện nhƣ sau:
(1) Alice sinh ra cặp khóa (k,R) theo cách sau: chọn ngẫu nhiên k[2,q1]và tính R kG(x k ,y k ) Đặt r = x k , rồi gửi rvà Rcho 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 = aR+ bG = (x k, y k ) và tính r = c(x k ) và m(mr)a 1 r Sau đó gửi mcho Alice (m là m sau khi đã bị làm mù)
(3) Alice tính s d(mr)k(modq), rồi gửi scho 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 )
? q x r v Nếu đúng thì (r, s) là chữ ký hợp lệ Để chứng minh giao thức trên thực sự tạo ra chữ ký có tính chất “mù”, chúng ta chỉ ra rằng mỗi người ký có cặp duy nhất (a, b) là tham số làm mù, với a,b[1,q1] Với R,k,r,m,svà chữ ký hợp lệ (r, s) của m ta có:
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 2 = x 3 + x + 13 trên trường nguyên tố Z 31 Chọn điểm cơ sở G = (9, 10) #E(Z 31 ) = 34 và G là phần tử bậc 34 Khi đó 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,q1]= 20 và tính R k G = 20G = (26, 10), r = 26 Alice gửi rvà Rcho Bob
(2) Bob chọn các tham số làm mù a,b[1,q1] với a = 5, b = 7 Tính R trên E với
R = aR + bG = 5R + 7G = 5G = (25, 16), r = 25 Bob làm mù m thành mvớ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 có chữ ký của Alice trên m = 17 và chữ ký muốn chứng minh chữ ký đó là (25, 25) Các thao tác chứng minh diễn ra nhƣ sau:
(1) Tìm một điểm V trên E sao cho sG – (m + r)Q = (x v , y v ) = 25G – (17 + 25)Q 25G – 8Q = 25G – 88G = 5G (mod 34) = (25, 16)
? 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 chọn các tham số cho đường cong elliptic tương tự như sơ đồ chữ ký Harn Giả sử rằng có t người ký là U i ,với i 1 , t Việc sinh khóa được thực hiện qua các bước:
(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,q1] và tính ( , ) i i k k i i kG 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
R trong đó R R R và Q = Q1 +…+ Qt Ban thƣ ký tính rc(x k )(modq)và m (mrb)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ý do nhiều thành viên ký trên thông điệp m Việc xác minh tính hợp lệ của đa chữ ký (r, s) trên thông điệp m đƣợc thực hiện nhƣ sau:
(1) Tìm một điểm trên E sao cho sG(mr)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ý trên tạo ra chữ ký có tính chất “mù” ta phải chỉ ra rằng với mỗi người ký tồn tại duy nhất cặp (a, b) là các tham số làm mù với
] 1 , 1 [ , 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 ss 1 (modq), b ( m r ) a m r (mod q )
Ta phải chỉ ra rằng RaRbQ
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), 0k 0 m Đặt k 1 = (k – k 0 ) / m Ta sẽ có: k = k 0 + mk 1 , với 0k 1 m
Trong thuật toán trên ta thử tìm tất cả i thuộc khoảng của k 0 và tất cả j trong khoảng của k 1 cho đến khi tìm đƣợc i, j thoả mãn iG = Q – jmG (i + jm)G = Q hay k = i + jm Vì k tồn tại nên k 0 , k 1 tồn tại Độ phức tạp thời gian
Bước 1 cần O(log N) Bước 2 và bước 3 cần O(m+1) = O( N ) Bước 4 cần
O( N ) Thuật toán sắp xếp trong bước 5 được thực hiện trong O(log( N ) N ) thời gian Bước 6 được thực hiện trong O( N ) thời gian Bước 7 cũng được thực hiện trong O( N ) thời gian Bỏ qua các yếu tố logarith rời rạc ( N đủ lớn để bài toán
DLP là khó giải), thì thời gian thực hiện của thuật toán là hàm mũ của N Thuật toán này quá chậm vì thời gian là hàm mũ của độ dài dữ liệu vào N
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 F q m với m nào đó Khi đó có thể tấn công bằng tấn công chỉ số, nhất là khi m nhỏ Chúng ta bắt đầu bằng định nghĩa cặp Weil cho các đường cong elliptic E(F)
Xét đường cong elliptic E(F) và N là một số nguyên không là ước của đặc số của F Đặt E[N] là tập hợp các điểm trên đường cong E N x F | x N 1 Như vậy, N là nhóm các nghiệm thứ N trong F Vì đặc số của F không chia hết cho N, x 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(F q m )
trong F q m Đặ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 Độ phức tạp thời gian
Khi có các k i việc tìm k là dễ dàng, vì vậy thời gian chạy của thuật toán phụ thuộc vào việc tìm k i Thời gian tìm k i phụ thuộc vào độ lớn của trường F q m 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 q m )
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 q m ) với các bậc n 1 và n 2 Bất kỳ điểm
S i nào tìm được cũng có thể biểu diễn dưới dạng a 1 B 1 + a 2 B 2 với a 1 , a 2 nào đó Giả sử p là một số nguyên tố p e ||N Khi đó, p e |n 2 Nếu p không nguyên tố cùng nhau với a 2 thì p e |n 2 p e |M i với M i là bậc của S i Suy ra 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 Suy ra, xác suất để p e |d i là 1 – 1/p với mọi i và với 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 Vì vậy, tính hiệu quả của nó giới hạn trong một lớp các đường cong elliptic là lớp các đường cong supersingular vì tồn tại k 6 cho các đường cong này Với các đường cong elliptic khác (các đường cong nonsupersingular), k quá lớn để áp dụng tấn công MOV
Miyaji chứng minh rằng phép làm yếu trên hiệu quả cho các đường cong elliptic trên trường F 2 r Còn các đường cong elliptic trên trường F p (với p là số nguyên tố lớn) tránh đƣợc cách tấn công này Hơn nữa, Miyaji đề xuất một cách xây dựng một đường cong elliptic để việc làm yếu EDLP về DLP là không thể Bởi vậy, không phải mọi hệ mật mã trên đường cong elliptic đều có thể bị tấn công bởi phương pháp MOV
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 khác cũng đã đƣợc chứng minh là không hiệu quả với các hệ mật mã trên đường cong elliptic Thuật toán tấn công chỉ số áp dụng hiệu quả để giải bài toán DLP nhƣng không áp dụng đƣợc cho EDLP Giao thức trao đổi khóa trên đường cong elliptic tương tự giao thức Diffie – Hellman cũng chống lại được tấn công của Western, Miller, và tấn công với thời gian là hàm mũ nhỏ của Adleman
Thuật toán tương tự RSA của Demytko cũng an toàn với các tấn công đẳng cấu.
LỰA CHỌN ĐƯỜNG CONG ELLIPTIC PHÙ HỢP
Sau khi xem xét các phương pháp tấn công, chúng ta thấy việc chọn một đường cong elliptic thế nào ảnh hưởng đến tốc độ, tính hiệu quả, độ dài khóa và tính an toàn của hệ mật mã trên đường cong này Dù E, K và điểm cơ sở G E cố định và công khai nhưng việc chọn các tham số này phù hợp là bước quan trọng nhất
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)
Một đường cong elliptic trên một trường hữu hạn tạo thành nhóm Abel được sử dụng trong mật mã học Một ví dụ là việc chọn trường F 2 r giúp thực hiện các phép tính nhanh và dễ dàng triển khai đƣợc trên các 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 MOV, trong khi các đường cong trên trường F p (p là số nguyên tố lớn) lại chống lại được kiểu tấn công này Rõ ràng, các đường cong elliptic trên trường nguyên tố F p và trên trường F q n có các tính chất giúp chúng có thể thực thi đƣợc trên các thiết bị mà vẫn đảm bảo an toàn
Một chú ý nữa là việc tính số điểm trên #E(K) Với #E(K) thích hợp có thể là điều kiện cho phép thực hiện tấn công Pohlig – Hellman Có thể dùng thuật toán đơn định thời gian đa thức Schoof để tính #E trên trường hữu hạn F q với đặc số khác 2
Ví dụ với r nhỏ, tính #E( F 2 r ) 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 2 r ) mất nhiều thời gian hơn tính #E(F p )
2.4.2 Dạng của đường cong elliptic
Trước hết, chúng ta cần xem các dạng đường cong elliptic Trên trường F q có hai lớp đường cong elliptic được dùng trong các hệ mã hóa là supersingular và non- supersingular (xem [22]) Xét F q có đặc số là 2 (g = 2 m ) Khi đó: i) Tậ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 F q và a = 0 (mod q) cùng với điểm trung hòa O tạo thành một đường cong elliptic dạng supersingular ii) Tậ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 F q và b = 0 (mod q) cùng với điểm trung hòa O tạo thành một đường cong elliptic dạng 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 2 r Tuy nhiên, các đường cong supersingular có thể bị tấn công bằng MOV
Nonsupersingular: Ưu điểm của các đường cong nonsupersingular là nó cung cấp độ bảo mật tương đương như các đường cong supersingular nhưng với các trường nhỏ hơn Độ dài khóa ngắn giúp chúng có thể đƣợc triển khai trên các thiết bị nhƣ smart card Hơn nữa, các đường cong nonsupersingular có thể chống lại tấn công MOV, ví dụ với nhóm con cyclic cỡ 2 160
Có một số phương pháp để lựa chọn các đường cong elliptic Phương pháp tự nhiên nhất là chọn ngẫu nhiên Chọn ngẫu nhiên một đường cong elliptic E trên trường
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 4a 3 27b 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
Tuy nhiên phương pháp này có thể tạo ra các đường cong không đảm bảo một số 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 cho trước Cũng có thể chọn những đường cong để tạo các hệ mã hóa không phụ thuộc vào bài toán EDLP, chẳng hạn các hệ elliptic dựa trên RSA
Các hệ mật mã elliptic làm việc với các nhóm con cylic của E với phần tử sinh là điểm P Vì vậy, việc lựa chọn P phù hợp là rất quan trọng.
MỘT SỐ CHUẨN SỬ DỤNG HỆ MẬT ECC
Việc đƣa ra một chuẩn chung cho các hệ thống mật mã, các giao thức, các giao diện là một việc quan trọng Việc chuẩn hóa mang lại 3 lợi ích chính:
(1) Cho phép kết hợp phần cứng và phần mềm của nhiều nhà cung cấp khác nhau
(2) Đưa ra chuẩn cho việc đảm bảo an toàn các hệ thống dưới khía cạnh mật mã học
(3) Cho phép có thiết kế chuẩn cho các môi trường ứng dụng khác nhau
Các đường cong elliptic đã được xem xét và nghiên cứu kỹ lưỡng bởi các nhà toán học trong hơn 10 năm và đã đƣợc khảo sát kỹ bởi các tổ chức chuẩn hóa từ năm 1995 Điều này đảm bảo rằng tính tin cậy của nó đã đƣợc kiểm chứng
Nỗ lực để có thể chuẩn hóa các hệ mật mã khóa công khai đƣợc bắt đầu từ nhiều năm trước bởi Viện nghiên cứu điện và điện tử IEEE (Institute of the Electrical and Electronics Engineers) với phiên bản P1363 Nó đƣa ra định dạng và thủ tục cho 3 hệ thống mã hóa khóa công khai khác nhau bao gồm xác thực, toàn vẹn và tin cậy
ISO/IEC SC27 cũng bắt đầu xem xét các chuẩn cho ECC Trong ANSI X9.25 có sơ đồ chữ ký ECC là ECDSA (Elliptic Curve Digital Signature Algorithm) và trong ANSI X9.63 có các chuẩn về thỏa thuận và truyền khóa ECC cũng đã đƣợc hỗ trợ trong các chuẩn mới của Internet về bảo mật cho tầng IP (IPSEC, ISAKMP, Oakley)
Trong các chuẩn liên quan đến công nghiệp có SET (Secure Electronic Transaction)
ANSI X9 ECC đã đƣợc thử nghiệm trong 2 lĩnh vực bởi ANSI ASC X9
(dịch vụ tài chính) ANSI X9.62, chữ ký số ECDSA, ANSI X9.63, giao thức thỏa thuận khóa ECC ECKA (Elliptic Curve Key Agreement) và các giao thức giao vận ECTP (Transport Protocols) ANSI TG-17 (Technical Guideline on Mathematical
ATM Forum Cung cấp các cơ chế bảo mật cho các mạng ATM (chế độ truyền thông không đồng bộ Asynchronous Transfer Mode) Các dịch vụ bảo mật bao gồm tính tin cậy, tính xác thực, toàn vẹn dữ liệu, điều khiển truy cập ECC là một trong các hệ thống đƣợc hỗ trợ
Certicom Certicom đã xuất bản các tài liệu về ECC ECC trong X.509 mô tả cơ chế sử dụng các khóa ECC trong X.509 framework Ví dụ nó định nghĩa các định dạng chứng chỉ và định dạng danh sách thu hồi chứng chỉ Các chuẩn cho mã hóa ECC (SEC 1 Standards for Efficient Cryptography): ECC, các sơ đồ mã hóa khóa công khai trên ECC Đặc biệt là các sơ đồ chữ ký điện tử, các sơ đồ mã hóa và các sơ đồ thỏa thuận khóa SEC.2 bao gồm các tham số đƣợc khuyến nghị cho mã hóa ECC, danh sách các tham số ECC được yêu cầu tương ứng với các cấp độ bảo mật khác nhau
FSTC FSTC (Financial Services Technology Consortium) liên quan đến các hệ thống thanh toán điện tử và các dịch vụ tài chính khác Các thanh toán điện tử có thể sử dụng rất nhiều thiết bị khác nhau nhƣ máy tính cá nhân, điện thoại màn hình, máy ATM, hoặc các hệ thống kiểm toán ECC đƣợc sử dụng để mã hóa Email truyền gửi các sec điện tử
IEEE P1363 ECC đã đƣợc đƣa ra trong chuẩn phác thảo IEEE P 1363
(Đặc tả các chuẩn cho mật mã khóa công khai), bao gồm mã hóa, chữ ký số, các cơ chế thỏa thuận khóa Các đường cong Elliptic có thể được định nghĩa theo modulo p hoặc trên trường F 2 m , trường có 2 m phần tử
IETF (Internet Engineering Task Force) mô tả giao thức thỏa thuận khóa là biến thể của giao thức thỏa thuận khóa Diffie-Hellman Nó cho phép sử dụng các nhóm khác nhau, bao gồm cả nhóm đường cong Elliptic Các nhóm trên đường cong Elliptic được khuyến nghị dùng là các trường F 2 1 5 5và F 2 2 1 0
ISO/IEC Bản phác thảo ISO/IEC 14888, trong phụ lục 3, các cơ chế dựa trên chứng chỉ, các thuật toán ký tương tự như DSA
NIST (Viện nghiên cứu chuẩn quốc tế - National Institue of Standards)
NIST cũng có các đặc tả cho ECC trong MISPC
OTP 0.9 Open Trading Protocol là một framework các giao thức thanh toán
OTP cung cấp bản sao điện tử có hỗ trợ bảo mật cho các văn bản trên giấy cho thương mại, mua, bán ECDSA được hỗ trợ các sơ đồ chữ ký điện tử trong OTP
SET Chuẩn SET (Secure Electronic Transactions) đƣợc phát triển cho các giao dịch thẻ tín dụng trên Internet ECC đƣợc xem xét nhƣ một chuẩn SET mới cho thương mại điện tử trên Internet Những lợi ích mà ECC mang lại cho các ứng dụng quan trọng đang đƣợc đánh giá kỹ lƣỡng
WAP Wireless Application Protocol, cung cấp cơ chế truy cập Internet an toàn cho các thiết bị không dây nhƣ điện thoại, thiết bị không dây đầu cuối Các đặc tả giới thiệu trong kiến trúc mạng cho phép các ứng dụng sử dụng các lựa chọn giao thức truyền khác nhau và giữa các thiết bị khác nhau ECC cũng đƣợc hỗ trợ trong tầng bảo mật WAP WTLS (Wireless Transport Layer Security).
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ử (e-money, digital money, digital cash, electronic money, electronic currency, digital currency hay internet money) là thuật từ vẫn còn mơ hồ và chƣa định nghĩa đầy đủ Tuy nhiên có thể hiểu Tiền điện tử là loại tiền trao đổi theo phương pháp “điện tử”, liên quan đến mạng máy tính và những hệ thống chứa giá trị ở dạng số (digital stored value systems)
Hệ thống Tiền điện tử cho phép người dùng có thể thanh toán khi mua hàng, hoặc sử dụng các dịch vụ nhờ truyền đi các “dãy số” từ máy tính (hay thiết bị lưu trữ nhƣ smart card) này tới máy tính khác (hay smart card) Giống nhƣ dãy số (serial) trên tiền giấy, 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 (ngân hàng) và biểu diễn một lƣợng tiền thật nào đó
Tiền điện tử có loại ẩn danh và định danh Hệ thống tiền ẩn danh không tiết lộ thông tin định danh của người sử dụng, và hệ thống này dựa vào Sơ đồ chữ ký “mù”
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 cách tiếp cận tính ẩn danh khác nhau, có hệ thống tiền điện tử là ẩn danh đối với người bán, nhưng không ẩn danh với ngân hàng Có hệ thống ẩn danh hoàn toàn, nghĩa là ẩn danh với tất cả mọi người
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)
Trực tuyến: ông B liên lạc với ngân hàng và kiểm tra tính hợp lệ của đồng tiền trước khi tiến hành thủ tục thanh toán và phân phối hàng Quá trình thanh toán và quá trình trả tiền (ghi tiền vào tài khoản người bán) được tiến hành đồ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 chứa thông tin định danh của người sử dụng từ khi bắt đầu rút tiền từ ngân hàng Kiểu lưu thông tin người dùng giống như trường hợp sử dụng thẻ tín dụng trong thanh toán, tiền điện tử định danh cũng cho phép ngân hàng lưu dấu vết của tiền khi luân chuyển
Tiền điện tử ẩn danh giống nhƣ tiền giấy thực sự Đồng tiền điện tử ẩn danh được rút từ một tài khoản, có thể được tiêu xài hay chuyển cho người khác 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: nghĩa là cần phải tương tác với phía thứ ba để kiểm soát giao dịch
Ngoại tuyến: nghĩa là có thể kiểm soát đƣợc giao dịch, mà không phải liên quan trực tiếp đến phía thứ ba (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ử
Có nhiều cách để đƣa ra các đặc điểm cần thiết của một hệ thống tiền điện tử, tuy nhiên không thể đƣa ra tập các đặc điểm, thuộc tính chung tốt nhất cho tất cả các hệ thống tiền điện tử Bởi vì mỗi hệ thống tồn tại trên môi trường khác nhau, phục vụ cho những đối tƣợng khác nhau, thậm chí ngay cả sản phẩm của hệ thống là khác nhau (phần mềm hay 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-MONEY) Đị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 phải được ẩn danh, không để lại dấu vết, nghĩa là ngân hàng không nói đƣợc tiền giao dịch là của ai
Việc sử dụng tiền điện tử không phụ thuộc vào bất kỳ vị trí địa lý nào Tiền có thể đƣợc chuyển qua mạng máy tính hay chứa trên những thiết bị nhớ khác nhau
Cho phép hai bên có thể chuyển tiền cho nhau mà không phải liên hệ với bên thứ 3 (ngân hàng) Tính chuyển nhượng là đặc trưng của tiền mặt, nó cho phép người sở hữu tiền chuyển cho người khác, mà không cần liên hệ với 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 sẽ tăng lên ở mỗi lần chuyển nhƣợng, vì thông tin mỗi lần chuyển nhượng phải được lưu giữ, thông tin này nhằm giúp cho ngân hàng có thể tìm ra đƣợc kẻ gian lận nào tiêu xài hai lần Chính vì thế, hệ thống phải giới hạn số lƣợng tối đa những chuyển nhƣợng đƣợc phép trong hệ thống
- 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ó thể phân chia đồng tiền số của mình thành những đồng tiền có giá trị nhỏ hơn, với điều kiện tổng giá trị của các đồng tiền này bằng giá trị của đồng tiền điện tử ban đầu
Không phải hệ thống nào cũng đáp ứng đƣợc tính chất này, vì tiền điện tử thực chất là dãy số đã đƣợc mã hóa, việc chia dãy số này nhƣ thế nào để đƣợc những đồng tiền có giá trị nhỏ hơn không phải là vấn đề đơn giản
Tính dể sử dụng đồng tiền với người dùng là đặc tính rất quan trọng Bởi vì tiền điện tử là một giải pháp mang tính phổ biến, nhắm đến nhiều đối tƣợng sử dụng
Trực tuyến: Ông B sẽ yêu cầu Ngân hàng kiểm tra tính hợp lệ (tiền này trước
CHỮ KÝ ECC DÙNG TRONG TIỀN ĐIỆN TỬ
Có rất nhiều sơ đồ tiền điện tử đƣợc thiết kế dựa trên các giao thức với sự cải tiến về tốc độ truyền thông tin qua mạng David Chum thiết kế một hệ thống thương mại điện tử dựa trên kỹ thuật chữ ký mù nhằm đảm bảo tính riêng tƣ cho khách hàng Đó là hệ thống tiền điện tử ẩn danh hoàn chỉnh dựa trên chữ ký mù RSA Sau đó hệ thống tiền điện tử với sự ẩn danh và không giả mạo có khả năng giao dịch trực tuyến đƣợc thiết kế bởi Von Solms và Naccache với khả năng ẩn danh có thể đƣợc sử dụng nhằm tránh cách hoạt động phạm pháp mà không cần định danh người dùng Ý tưởng của hệ thống tiền điện tử không gian lận đƣợc thiết kế bởi Brickell và Stadler Hệ thống là sự kết hợp của 2 yếu tố: ẩn danh và truy vết kẻ gian lận Mặt khác trong trường hợp có sự nghi ngờ của dấu hiệu tống tiền hay rửa tiền, ngân hàng có thể truy vết được kẻ gian lận Tính ẩn danh của người dùng có thể bị thu hồi trong trường hợp họ có ý định tiêu một đồng tiền 2 lần và hệ thống có khả năng truy vết cả tiền điện tử và người sở hữu chúng Một hệ thống an toàn và hiệu quả đóng vai trò quan trọng trong thương mại điện tử
Trong luận văn này, miêu tả một sơ đồ tiền điện tử ngoại tuyến có khả năng truy vết khách hàng gian lận dựa trên thuật toán mã hóa trên đường cong Elliptic
Sơ đồ tiền điện tử ngoại tuyến được xây dựng trên đường cong Elliptic nhằm mục đích sử dụng đƣợc trên các thiết bị có bộ nhớ hạn chế nhƣ thiết bị di động hày thẻ thông minh, PDA Hơn nữa hệ thống có khả năng tránh đƣợc các hoạt động bất hợp pháp ví dụ nhƣ những vấn đề cơ bản của tiền điện tử là phát hiện tiêu một đồng tiền 2 lần và truy vết người dùng gian lận đồng thời ẩn danh người dùng hợp pháp
3.3.1 Sử dụng chữ ký “mù” nhằm ẩn danh người dùng tiền điện tử
Sơ đồ chữ ký mù nhằm chắc chắn rằng bên A (khách hàng) không muốn người ký
B (ngân hàng) biết đƣợc định danh của mình
Nội dung sơ đồ nhƣ sau:
- Ký hiệu chữ ký mù cho người ký B là Sig B (X) Sig B (X) là chữ ký của B trên
- Hàm f và g (chỉ được biết bởi người gửi) trong đó: g(Sig B (f(m)))= Sig B (m)
- m là văn bản cần ký
- H là hàm băm có thể là SHA-1 hoặc MD5 f đƣợc gọi là hàm làm mù, g là hàm xóa mù và f(m) là thông điệp đã bị làm mù Đường cong Elliptic trên trường hữu hạn Fp với p là số nguyên tố và q là số nguyên tố nhỏ hơn p-1
Chọn 2 điểm Q và R là 2 điểm trên đường cong E(F p ) Khóa bí mật của ngân hàng (người ký) cho chữ ký mù là cặp (s 1 ,s 2 )trong đó s 1 ,s 2 thuộc Z q Khóa công khai là (Q,R,V) trong đó V= s1Q+s 2 R
Lược đồ diễn ra theo các bước sau:
Bước 1: Ngân hàng chọn các số ngẫu nhiên k1, k 2 thuộc Z q Tính X= k 1 Q+k 2 R
Gửi X đến cho khách hàng
Bước 2: Khách hàng chọn ngẫu nhiên số Z q Tính L=X+Q+R+V và e= H( m||L) -
Khách hàng gửi e cho ngân hàng m là thông điệp đã đƣợc ký
Bước 3: Ngân hàng tính 1 =k 1 -e s 1 mod q và 2 =k 2 -e.s 2 mod q Gửi cặp( 1 , 2 ) cho khách hàng
Bước 4: Khách hàng tính = 1 + mod q, = 2 + mod q
(L, ,) là chữ ký của ngân hàng
Xác minh tính hợp lệ của chữ ký:
=X+.Q+.R+ H( m||L).V-e.V=L Độ khó dựa trên tính khó giải của bài toán ECDLP (Bài toán Logarit rời rạc trên đường cong Ellipic
3.3.2 Sử dụng chữ ký "dùng một lần" nhằm tránh tiêu một đồng tiền hai lần
Sơ đồ chữ ký dùng một lần (one-time signature) là một khái niệm vẫn còn khá mới mẻ song rất quan trọng, đặc biệt là trong một số mô hình về tiền điện tử Luận văn sẽ trình bày về sơ đồ chữ ký dùng một lần của Schnorr
Nội dung sơ đồ nhƣ sau:
Chuẩn bị: Chọn P là một điểm trên đường cong Elliptic trên trường hữu hạn Fp với p là một số nguyên tố lớn, q là một số nguyên tố và q < p-1
Giả sử Alice cần ký lên thông điệp m Alice lấy ngẫu nhiên Z q * , < p
- Chữ ký trên thông điệp m là cặp (c',d)
- Người xác minh tính P'=d.P-c'.P k Ver = true P'=(+c'.s k ).P-s k c'.P và c'=H(P'||m)
Số không đƣợc dùng quá một lần để tạo ra các chữ ký khác nhau
Nếu Alice sử dụng quá một lần cho hai thông điệp khác nhau thì bất kỳ ai có hai thông điệp trên đều có thể giải mã đƣợc khóa bí mật S k Vì vậy, sơ đồ chữ ký loại này đƣợc gọi là sơ đồ chữ ký dùng một lần Sơ đồ chữ ký dùng một lần đƣợc ứng dụng nhằm tránh trường hợp tiêu một đồng tiền 2 lần trong mô hình tiền điện tử
3.3.3 Sơ đồ tiền điện tử đề xuất
Sơ đồ đƣợc đề xuất bởi Jayaprakash Kar [1] và Banshidhar Majhi [2] là sự kết hợp dựa trên sơ đồ chữ ký dùng một lần của Schnorr và Sơ đồ chữ ký mù Okamoto- Schnorr Vì là sự kết hợp giữa 2 sơ đồ trên nên lƣợc đồ này có khả năng ẩn danh và tránh đƣợc tình huống tiêu một đồng tiền 2 lần.
Lược đồ bao gồm 3 bên: khách hàng, thương gia và ngân hàng Ngân hàng và khách hàng có thể truy vết đƣợc khách hàng gian lận Lƣợc đồ sử dụng chữ ký một lần để tránh tình trạng tiêu một đồng tiền 2 lần trong bước thanh toán
Rút tiền với sự tham gia của khách hàng và ngân hàng
Thanh toán với sự tham gia của khách hàng và thương gia Quá trình này có thêm bên thứ 3 tin cậy (luật sƣ) và thêm 2 giao thức nữa xảy ra giữa ngân hàng và luật sƣ 3 nhằm truy vết sự gian lận hoặc tiêu một đồng tiền 2 lần nếu có
Gửi tiền với sự tham gia của thương gia và ngân hàng
Mô tả đường cong Elliptic: p>=3 là một số nguyên tố Lấy a, b F p sao cho 4a 3 +27b 2 #0 Một đường cong Elliptic trên trường hữu hạn F p được định nghĩa bởi 2 tham số a và b là tập hợp của các điểm có tọa độ (x,y) sao cho y 2 =x 3 +ax+b Điểm cơ sở G có bậc n
Ngân hàng tính các tham số sau đây:
Chọn một số bí mật s 1 ,s 2 nằm trong khoảng từ [1, n-1] làm khóa bí mật để làm mù
Khóa công khai của ngân hàng là (Q,R,V) trong đó: V= s 1 Q+ s 2 R b Khách hàng Chọn một khóa bí mật ngẫu nhiên s k trong khoảng [1, n-1]
Tính P k =s k P Khóa công khai của khách hàng là P k Khóa bí mật là s k c Bên thứ 3 tin cậy
Khóa bí mật là u t d Hàm băm một chiều H có thể lấy là SHA-1 hoặc MD5
Giao thức rút tiền với sự tham gia của khách hàng và ngân hàng trong đó khách hàng rút tiền từ ngân hàng
Trong giao thức này khách hàng nhận lấy giá trị thời gian hết hạn Tv của tiền (mỗi đồng tiền có một thời hạn sử dụng) từ ngân hàng, tạo ra đồng tiền điện tử m' và lấy chữ ký mù của ngân hàng Cuối cùng khách hàng nhận lấy tiền điện tử Vì thế khách hàng thực hiện các giao thức sau với ngân hàng: a Ngân hàng chọn một số ngẫu nhiên r nằm trong khoảng [1, n-1], tính U=r.R và gửi nó tới khách hàng b Cho mỗi đồng tiền, khách hàng chọn một số ngẫu nhiên nằm trong khoảng
[1, n-1] và tính U'=.U c Ngân hàng chọn số ngẫu nhiên k 1 và k 2 nằm trong khoảng [1, n-1] và tính T k 1 Q+ k 2 U Sửa giá trị thời gian hết hạn T v và ký vào nó Rồi sau đó gửi T, T v , Sig bank (T v ) cho khách hàng d Khách hàng tạo tiền điện tử m'=m|| T v ||Sig bank (T v ) ||ID trong đó ID là số định danh của khách hàng Chọn số ngẫu nhiên ( 1 , 2 , ) nằm trong khoảng [1, n-1]
Sau đó khách hàng ký lên thành phần tiền điện tử c sừ dụng lƣợc đồ ký một lần Schnorr
Ký mù và ký một lần:
Khách hàng chọn khóa ngẫu nhiên 0