Nếu K là một trường hữu hạn 𝔽𝑞 với đặc trưng p, thì định lý Hasse cho một giới hạn về số lượng các điểm K hữu tỷ:
2 2
1 1
q E K q (3.11)
Do đó, chúng ta có thể giả định rằng E K q 1 t,với t 2 q, Nếu
p | t, chúng ta nói rằng đường cong E là siêu kỳ dị.
Trong trường hợp khi p>3, phương trình Weierstrass có thể đơn giản hóa bằng cách sử dụng biến đổi tuyến tính các biến về dạng:
2 3 : , E Y X aX b (3.12) Ví dụ, cho p=5, thì 2 ( ) 10 5 E F
. Như vậy, số điểm của đường cong Elliptic trên trường hữu hạn F5 là trong khoảng từ 2 đến 10. Thực tế, tất các các đường cong Elliptic có thể có trên F5 và số điểm tương ứng được mô tả như trong Bảng 3.3.
Bảng 3.3. Số điểm của các đường cong Elliptic tương ứng trên trường F5
STT Đường cong Elliptic Số đi m
1 y2=x3+2x 2 2 y2=x3+4x+2 3 3 y2=x3+x 4 4 y2=x3+3x+2 5 5 y2=x3+1 6 6 y2=x3+2x+1 7 7 y2=x3+4x 8 8 y2=x3+x+1 9 9 y2=x3+3x 10
Phương pháp cát tuyến và tiếp tuyến cho thấy cách thực hiện phép toán trên các điểm của đường cong Elliptic. Phép toán trên các điểm của đường cong trên trường số thực được minh họa trong hình 3.4. Cụ thể:
i) Với 2 điểm P, Q bất kỳ, kẻ một đường thẳng đi qua P và Q thì sẽ cắt
đường cong Elliptic tại một điểm thứ 3 là điểm S. Phép cộng P và Q sẽ là
R P Q S. Trong trường hợp P và Q đối xứng nhau qua trục hồnh, nói cách khác Q = -P thì đường thẳng nối P và Q sẽ cắt đường cong tại một điểm thứ 3 ở vơ cực, hay P+ -(P)=.
ii) Để tính P+P, ta vẽ đường thẳng tiếp tuyến với đường cong Elliptic tại
điểm P, đường thẳng này sẽ cắt đường cong Elliptic tại điểm S, lúc đó
R P Q S.
Hình 3.3. Phép tốn trên các điểm của đường cong elliptic Giả sử: điểm P ∈ E(𝔽𝑞) thỏa mãn các điều kiện sau đây: 1. Là một điểm bậc n,
2. Bậc của P là một số nguyên tố,
khi đó, bài tốn logarit rời rạc trong nhóm <P> được định nghĩa như sau: Cho trước một điểm P và điểm Q ∈<P> cần phải tìm số nguyên l, thỏa mãn phương trình lP = Q.
Hiện nay, phương pháp tốt nhất để giải bài toán này là thuật toán Pollard [43], thời gian thực hiện dự kiến khoảng O( n ). Nếu n ≈ q, thì thời gian thực hiện của thuật tốn trên theo cấp số nhân đối với logq. Cần lưu ý rằng cũng có những phương pháp khác trong việc giải bài toán logarit rời rạc, mà áp dụng cho từng loại đường cong cụ thể. Đặc biệt, có thể sử dụng phép nhân Weil và Tate [50] để chuyển bài tốn từ các nhóm điểm của đường cong sang nhóm nhân trên trường hữu hạn 𝔽qk. Số k được gọi là mức độ nhúng của đường cong và được định nghĩa như sau:
Định nghĩa 3.12 Giả sử E là một đường cong Elliptic xác định trên
trường 𝔽q, và P ∈ E (𝔽𝑞) là điểm có bậc là số nguyên tố n. Nếu USCLN (n, q)
= 1, thì mức độ nhúng của <P> là số nguyên k nhỏ nhất sao cho n |qk - 1.
Nếu độ nhúng k thấp, thì sử dụng phép nhân Weil, chúng ta có thể sử dụng các thuật tốn tiểu hàm mũ cho việc tìm kiếm logarit rời rạc (phương pháp chỉ số); trong đó, có thể tính nhanh hơn trong 𝔽 qk so với thuật toán Pollard trong <P>. Vì lý do này, trong mật mã bài tốn logarit rời rạc trên đường cong Elliptic chỉ sử dụng những đường cong có độ nhúng k lớn.
Với đường cong elliptic, độ nhúng thấp cho phép thực hiện hiệu quả phép nhân Weil và Tate, điều đó dẫn đến các ánh xạ song tuyến.
3.2.4 Các giao thức mật mã sử dụng ánh xạ song tuyến
Thoả thuận khóa mã một v ng dùng cho ba bên
Giả sử rằng có thể tính tốn một cách hiệu quả ánh xạ song tuyến trên nhóm
G1 và GT, trong đó bài tốn song tuyến Diffie-Hellman là bài tốn khó. Ánh xạ đó
là cơ sở để thực hiện giao thức thỏa thuận khóa mã một vịng cho ba bên:
1. Bên A chọn ngẫu nhiên một số a ∈ [0, n - 1], tính aP và gửi cho các bên B, C.
2. Bên B chọn ngẫu nhiên một số b ∈ [0, n - 1], tính bP và gửi cho các bênA, C.
3. Bên C chọn ngẫu nhiên một số c ∈ [0, n - 1], tính cP và gửi cho các bên A, B.
Ta thấy rằng sau vòng này, tất cả những người tham gia tự mình tạo ra một khóa mã bí mật chung.
Bảng 3.4. Thoả thuận khóa mã một vịng dùng cho ba bên
Bên A Bên B Bên C
Đã có a, bP và cP b, aP và cP c, aP và bP Cần tính K= (bP,cP)a = ê(P,P)abc K= ê(aP,cP)b = ê(P,P)abc K= ê(aP,bP)c = ê(P,P)abc
Phân tích sơ đồ trên có thể đặt ra câu hỏi: Liệu có khả năng xây dựng ánh xạ đa tuyến êl: Gl-1l → GT. Và từ ánh xạ đó có thể tạo lập giao thức thỏa
thuận khóa mã một vịng cho l người tham gia.
Hình 3.4. Thuật tốn thỏa thuận khóa nhiều người dùng
Câu hỏi về sự tồn tại của ánh xạ đa tuyến như vậy hiện nay vẫn cịn là bài tốn mở.
Mật mã dựa trên định danh
Shamir [11] đã đề xuất khái niệm về mật mã dựa trên định danh để giải quyết các vấn đề phát sinh trong quản lý chứng chỉ. Đề xuất Shamir giả định:
1. Khóa cơng khai của người dùng là định danh của họ (ví dụ như địa chỉ email).
2. Sẽ có một bên thứ ba đáng tin cậy chịu trách nhiệm cho việc tạo ra các khóa bí mật cho người sử dụng.
3. Mã hóa có thể được thực hiện ngay cả trước khi tạo khóa riêng của người sử dụng (Phép mã hóa chỉ yêu cầu định danh (ID) của người dùng và khóa cơng khai của một bên thứ ba tin cậy).
Đề xuất của Shamir đã phải chờ đến khi Boneh và Franklin [22] đề xuất sơ đồ mã hóa định danh (ID) dựa trên ánh xạ song tuyến mới được thực hiện. Sơ đồ này giả định rằng:
1. Chúng ta thực hiện một ánh xạ song tuyến ê: G1 → GT, mà bài toán song tuyến Diffie-Hellman là bài tốn tính tốn khó.
2. Tồn tại hàm băm H1 và H2, sao cho:
H1: {0, 1}* → G1 \ {∞} và H2: GT → {0, 1}l. trong đó l là số bit của bản rõ.
3. Bên thứ ba tin cậy cung cấp khóa riêng t ∈[0, n-1] và khóa cơng khai
T = tP (khóa T được phổ biến rộng rãi).
Khi một người dùng cần có một khóa riêng dA, thì bên thứ ba tin cậy cấp một mã định danh IDA, tính khóa dA = tQA = tH1(IDA) và gửi qua một kênh an toàn cho người dùng. Chú ý rằng khóa riêng dA có thể được coi là một chữ ký của bên thứ 3 tin cậy vào mã dạng IDA.
Để mã hóa một thông điệp m ∈ {0, 1}l sử dụng sơ đồ Boneh-Franklin, phải làm như sau:
2. Chọn một số ngẫu nhiên r ∈ [0, n - 1] và tính tốn R = rP. 3. Tạo bản mã c = m⊕H2 (ê (QA,T)r).
4. Gửi cặp (R, c) cho người nhận.
Để giải mã một thông điệp của người dùng sử dụng khóa riêng của mình
dA và tính tốn ra bản rõ m = c⊕ H2(ê(dA, R)). Quá trình giải mã thông điệp
đúng nhờ vào đẳng thức sau:
ê(dA,R) = ê(tQA, rP) = ê(QA, P)tr = ê(QA, tP)r = ê(QA, T)r.
Để nhận được thông điệp từ bản mã (R, c) cần tính (QA, T)r trên cơ sở (P,
QA, T, R) và đó là bài tốn song tuyến DH.
Cần nhấn mạnh rằng, phương pháp mô tả trên chống được tấn công thụ động, nhưng lại dễ bị tấn cơng bản mã lựa chọn. Tuy nhiên, có thể cải tiến để loại bỏ vấn đề này.
Tóm lại: Phần này luận án đã trình bày một cơ chế mã hóa mới, trong đó có thể thực hiện bằng cách ghép cặp điểm trên đường cong elliptic. Đã chỉ ra khả năng ghép cặp điểm trên đường cong cho phép xây dựng các giao thức như:
1. Thỏa thuận khóa một vịng giữa ba bên. 2. Mã hóa dựa trên định danh.
3.2.5 Kết quả thử nghiệm ứng dụng
Trên cơ sở các kết quả lý thuyết nói trên, dựa trên thuật tốn thỏa thuận khóa nhiều người dùng (Hình 3.4) luận án đã xây dựng một phần mềm bảo mật thông tin trên đường truyền sử dụng phương pháp trao đổi khóa mã an tồn và một số ứng dụng của hệ mật trên đường cong elliptic có tích hợp nghiệp vụ mật mã với thơng điệp đầu vào cần bảo mật là các file rõ cần gửi (có thể là các file dữ liệu cụ thể: chữ viết, hình ảnh tĩnh, tiếng nói tĩnh...). Các file rõ sau khi mã mật hóa (file mã) sẽ được chuyển đến người nhận tương ứng và người nhận sử dụng khóa riêng của mình được cấp tính tốn giải mã và nhận được thông điệp rõ (file rõ) ban đầu. Các hình: 3.5; 3.6; 3.7 trình bày một thơng điệp là một file
hình ảnh cụ thể trước khi mã mật hóa và sau khi giải mã mật bằng khóa mã sai và giải mã mật khóa mã đúng.
Hình 3.5. Ảnh gốc trước khi mã mật hóa
Hình 3.6. Ảnh giải mã mật với khóa mã sai
Các kết quả đạt được đã minh chứng tính đúng đắn khi sử dụng phương pháp thỏa thuận khóa mã ứng dụng giao thức mật mã dựa trên ánh xạ song tuyến thực hiện bằng cách ghép cặp điểm trên đường cong elliptic cho phép xây dựng các giao thức như: thỏa thuận khóa một vịng giữa ba bên và mã hóa dựa trên định danh.
3.3 Nghiên cứu, đề xuất xây dựng thuật toán hiệu quả nhân nhanh đa thức với hệ số nguyên với hệ số nguyên
Năm 1971, Schưnhage và Strassen đã đưa ra một thuật tốn mới cho phép nhân các số nguyên lớn. Kể từ đó các thuật toán nhân nhanh dựa trên biến đổi Fourier nhanh FFT (Fast Fourier Transform) đã được cải tiến liên tục. Ngày nay chúng ta có nhiều thuật tốn nhân nhanh các số nguyên lớn [39] và nhân nhanh đa thức [81]. Một số thuật tốn khơng phụ thuộc vào kiến trúc bộ xử lý và một số khác được thiết kế giành cho một hệ thống tính tốn cụ thể. Mặc dù FFT có một lợi thế so với các thuật toán nhân cổ điển, nhưng phiên bản giành cho các máy tính đa nhân khơng dễ thực hiện. Ngồi ra, khi nhân các số nguyên lớn bằng phương pháp FFT chỉ hiệu quả khi các số có trên 100.000 bit [66]. Để khắc phục điều này cần tạo một thuật toán cùng một lúc sử dụng FFT và định lý phần dư Trung Hoa CRT (Chinese Remainder Theorem). Định lý phần dư Trung Hoa thường được sử dụng để tăng tốc độ tính tốn trong thuật tốn mật mã RSA. Việc sử dụng CRT cho phép tách và thực hiện song song các phép toán ký hoặc giải mã.
Vì vậy, trong phần này luận án tập trung nghiên cứu, xây dựng thuật toán mới, hiệu quả nhân nhanh đa thức với hệ số nguyên sử dụng biến đổi Fourier nhanh (FFT - Fast Fourier Transform) và định lý phần dư Trung Hoa (CRT) và thực hiện thực tế thuật toán đề xuất.
Thuật tốn này dùng trong q trình tạo ra các tham số một cách hiệu quả cho các hệ thống mật mã ECDSA và ECDH hoạt động trên các đường cong
elliptic. Kết quả thu được cho phép tăng hiệu quả của quá trình tạo đường cong bằng cách tính tốn song song. Phương pháp được đề xuất là sử dụng định lý CRT để biểu diễn các số nguyên dưới dạng chuỗi hữu hạn của các số có kích thước nhỏ hơn, và sau đó song song hóa các phép tính trên các biểu diễn đó. Mặt khác, để tăng tốc độ tính tốn trên đa thức, bằng cách sử dụng phép biến đổi Fourier nhanh, thực chất là phép biến đổi đa thức từ biểu diễn bằng hệ số thành các giá trị trong điểm. Các phương pháp được đề xuất có thể được sử dụng để tăng tốc độ tính tốn của các phép tính khác trong các vịng của đa thức và chuỗi lũy thừa với hệ số nguyên. Đây là ưu điểm của phương pháp đề xuất, bởi vì bằng phương pháp này có thể sử dụng đầy đủ khả năng tính tốn của các bộ vi xử lý đa lõi hiện đại.
3.3.1 Biến đổi Fourier nhanh và cách thực hiện
Phép biến đổi Fourier nhanh (FFT) là một thuật tốn hiệu quả tính tốn biến đổi Fourier rời rạc (DFT). Cơ sở của DFT là biểu diễn các đa thức không qua các hệ số mà qua giá trị các điểm. Xác định DFT cho trước trong n điểm
dựa trên định nghĩa hệ số O(n2) các phép tính số học. Việc sử dụng FFT rất thuận lợi cho phép nhận được DFT sau khi thực hiện O(n logn) phép tính. Đây là lý do chính mà FFT được xem xét rộng rãi trong các cơng trình cơng bố liên quan đến hiệu năng tính tốn [18], [32], [91]. Trong các thực nghiệm về số, luận án sử dụng thuật tốn FFT cổ điển nhưng cũng khơng gặp trở ngại gì khi sử dụng một phiên bản FFT khác. Đặc biệt phù hợp với bộ nhớ cache rút gọn FFT [37], được tối ưu với kiến trúc các bộ xử lý hiện đại. Chi tiết của thuật tốn được trình bày trong phần thực hành các thuật toán nhân. Phần này cũng gồm định lý chứng minh tính đúng đắn của thuật tốn đề xuất trong luận án.
3.3.2 Biểu diễn các phần tử trường và phép nhân nhanh trong vành đa thức
Trong phần này sẽ trình bày ngắn gọn về phương pháp tối giản Montgomery. Bổ đề 3.1 sau đây là cơ sở cho phương pháp tối giản Montgomery [64]:
Bổ đề 3.1 Cho a, b, M, R là các số nguyên sao cho gcd(M, R) = 1, a, b<M<R, q M 1mod R, và t1 = a • b t2 = t1 mod R t3= t2 • q t4 = t3 mod R t5 = t4•M t = (t1 + t5)/R.
Khi đó, một trong những phương trình sau đây là đúng:
abR-1 mod M = t hoặc abR-1 mod M = t - M
Trong thực tế, số M thường là số lẻ, và R là lũy thừa của số 2. Điều này có nghĩa việc tính X mod R và X div Rchỉ là lấy w số lượng bit thấp của X và dịch X sang phải w bit với wlà số mũ của R. Thực tế rút gọn Montgomery [64] cho phép thực hiện tính tốn hiệu quả trên vành ℤ/Mℤ.
Định lý 3.1 Cho M và R là các số nguyên dương. Nếu gcd(M, R) = 1,M
< R và vành
R1= <{0,1 ,. . . M - 1}, 0, 1, + , − , • >, R2 = <{0,1, . . . , M-1}, 0, R mod M, + , - , ⊙ >
và được định nghĩa như sau:
a ± b = a ± b mod M a • b = ab mod M a ⊙ b = abR-1 mod M,
thì R1 và R2 đẳng cấu cùng nhau
Chứng minh: Chúng ta định nghĩa biến đổi h: R1 → R2 như sau:
Vì M và R nguyên tố cùng nhau, luôn tồn tại q M1modR. Điều này có nghĩa là h trong thực tế là một song ánh. Để hoàn thành chứng minh chúng ta phải chỉ ra rằng biến đổi h là một đồng cấu:
1. h 0 0, 1h Rmod ,M
2. h a b a b R modM aR bR modM h a h b , 3. h a b . abRmodM aRbR R 1modM h a h b . Điều này đã được chứng minh.
Giả thiết rằng: n là một số lũy thừa của 2 và lớn hơn bậc tối đa của đa thức muốn nhân. Giả định rằng giá trị tuyệt đối các hệ số của đa thức nhỏ hơn B.
Định nghĩa 3.13: cho 1
1 1 0
( ) n n ...
f X f X f X f X vàM . Chúng ta định nghĩa f(X) mod M như sau:
f(X) mod M = (fn-1 mod M)Xn−1+ • • • + (f0 mod M),
Trong đó mod 1,..., 1,0,1,..., 1 , 2 2 i M M f M với i từ 0 đến n-1
Nếu lựa chọn được một số hợp lý M thì nhân hai đa thức trong vành (ℤ/Mℤ)[X] cho cùng kết quả như nhân chính các đa thức đó cùng trong vành
ℤ[X]. Bổ đề sau chỉ ra cách chọn số M để đạt được kết quả này.
Bổ đề 3.2 Cho 1