MỘT SỐ PHƢƠNG PHÁP TẤN CÔNG CHỮ KÝ ECC

Một phần của tài liệu Nghiên cứu một số chữ ký đặc biệt trên đường cong Elliptic (Trang 53)

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ố Zp

đƣợc mở rộng cho bài toán EDLP.

Bài toán Tìm k sao cho kG = Q trên E(Fq) với #E(Fq) = N, giả sử k tồn tại thực sự.

Thuật toán

1. Chọn số nguyên m > N . 2. Tính mG.

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).

Chứng minh

Vì chúng ta chọn m thỏa mãn m2 > N nên sẽ có k < m2. Đặt

k0k (mod m), 0k0 m. Đặt k1 = (k – k0) / m. Ta sẽ có: k = k0 + mk1, với 0k1 m

Trong thuật toán trên ta thử tìm tất cả i thuộc khoảng của k0 và tất cả j trong khoảng

của k1 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 k0, k1 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(Fq) thành bài toán logarith rời rạc trên trƣờng Fqmvớ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 1

N x F x

 . 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, xN

= 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ạ: eN :E[N]xE[N]  nthỏa mãn: 1. eN 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 eN(S, T) = 1 với mọi S, thì T = O, và nếu eN (S, T) = 1 với mọi T thì S = O.

3. eN (T, T) = 1 T

4. eN(T, S) = eN(S, T)-1S, T

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ì eN( S,

T) =  (eN(S, T)) S, T.

6. Nếu  là một "tách tự đồng cấu" (separable endomorphism ) của E thì eN((S),  (T)) = eN(S, T)deg  S, T.

Bài toán

Tìm k thỏa mãn kG = Q trên E(Fq) với #E(Fq) = 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(Fq) thành bài toán logarith rời rạc trên Fqm

Thuật toán

Khi (d1, d2, …,dk) = 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 SiE(Fqm).

2. Tính bậc Mi của Si

3. Đặt di = gcd(Mi, N) và Ti = (Mi/di)Si. 4. Đặt 1i = eN(G, Ti), 2i=eN(Q, Ti). 5. Giải bài toán logarith rời rạc ki

i

1

 = 2i trong trƣờng Fqm và tìm đƣợc

ki (mod di)

Sử dụng giá trị ki (mod di) để tìm k (mod N) với k ki (mod di) 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 Ti . Đặt ) , ( i N R T e

 với R là một điểm tùy ý trên E(Fqm).

Khi đó: 1 ) , ( ) , ( ) , ( ) , (     eN RTi d eN R dTi eN R MiSi eN R O d  , 1,2 dFqm rồi giải i k i i 1 2 

  trong Fqm. Đặt kG = Q, và định nghĩa li thỏa mãn k li (mod di). Ta có: eN(kG, Ti) = eN(Q, Ti) eN(G, Ti)k = eN(Q, Ti)  k i i 2 1    . Vì 1d 1 i  nên ki i i 1 2 

  (mod di)  liki (mod di) và k phải bằng ki (mod di). Nhƣ vậy, việc tìm ki sẽ giúp cho việc tìm k.

Độ phức tạp thời gian

Khi có các ki 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 ki. Thời gian tìm ki phụ thuộc vào độ lớn của trƣờng Fqm. 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(Fqm ) 

2 1 n

n Z

Z  với

n1, n2 thỏa mãn n1|n2. B1, B2 là các điểm trên E(Fqm ) với các bậc n1 và n2. Bất kỳ điểm

Si nào tìm đƣợc cũng có thể biểu diễn dƣới dạng a1B1 + a2B2 với a1, a2 nào đó. Giả sử

p là một số nguyên tố pe||N. Khi đó, pe|n2. Nếu p không nguyên tố cùng nhau với a2 thì

pe|n2  pe|Mivới Mi là bậc của Si. Suy ra pe|di = gcd(Mi, N). Vì Si đƣợc chọn ngẫu nhiên nên a2 cho Si cũng ngẫu nhiên, do đó xác suất để p không nguyên tố cùng nhau với a2 là 1 – 1/p. Suy ra, xác suất để pe|di là 1 – 1/p với mọi i và với mọi pe||N.

Xác suất này đủ thấp để chỉ có một vài di cần cho pe|lcm(d1, d2,…, dk) đú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(Fq),

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 F2r . Còn các đƣờng cong elliptic trên trƣờng Fp (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.

2.4. 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.

2.4.1. Trường K

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 F2r 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 F2rcó thể bị tấn công bởi MOV, trong khi các đƣờng cong trên trƣờng Fp (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ố Fp và trên trƣờng Fqncó 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 Fqvới đặc số khác 2 hoặc 3. Tốc độ của thuật toán Schoof phụ thuộc vào kích thƣớc và đặc số của trƣờng

K.

Ví dụ với r nhỏ, tính #E(F2r) có thể nhanh hơn một chút so với tính #E(Fp), trong đó p lớn hơn đáng kể so với 2r, nhƣng khi r tăng thì tính #E(F2r) mất nhiều thời gian hơn tính #E(Fp).

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 Fq 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 Fq có đặc số là 2 (g = 2m ). Khi đó:

i) Tập tất cả các cặp nghiệm (x, y) của phƣơng trình y2 + ax = x3 + bx + c với a, b, c  Fqa = 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 y2 + ax = x3 + bx + c với a, b, c  Fqb = 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.

Supersingular Curve:

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 F2r . 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ỡ 2160

2.4.3 Phương pháp lựa chọn

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ở PE. 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 Fq (với q lớn ) nhƣ sau:

1. Chọn ngẫu nhiên 3 phần tử từ Fq là x, y, a 2. Tính b = y2(x3 + ax)

3. Kiểm tra 4a327b2 0để đảm bảo phƣơng trình x3

+ 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 y2 = x3 + 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.

2.5. 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 Background for Elliptic Curve Cryptosystems ) chứa các thông tin mở rộng về mặt toán học cho ECC, bao gồm các thuật toán đếm số các điểm trên đƣờng cong Elliptic.

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 F2m , trƣờng có 2m

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 F21 5 5và F22 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ả

Một phần của tài liệu Nghiên cứu một số chữ ký đặc biệt trên đường cong Elliptic (Trang 53)