MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG HỆ ECC

Một phần của tài liệu NGHIÊN CỨU, TÌM HIỂU VÀ TRÌNH BÀY VỀ CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG Elliptic, ỨNG DỤNG CỦA ĐƯỜNG CONG Elliptic TRONG HỆ THỐNG BỎ PHIẾU ĐIỆN TỬ VÀ HỆ THỐNG TIỀN ĐIỆN TỬ (Trang 49)

3.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) Chng 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 m k   1

0 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 k1cho đến khi tìm được i, j thoả mãn iG = Q – jmG  (i + jm)G =Qhay k = i + jm. Vì k tồn tại nên k0, k1 tồn tại.

Độ phc tp thi 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.

50

3.3.2. Phương pháp tấn công MOV

Phương pháp tấn công MOV (tên của 3 nhà khoa học 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 m

q

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

  | 1

N

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 (adsbygoogle = window.adsbygoogle || []).push({});

Một cặp Weil là một ánh xạ: eN :E[N]xE[N]  n thỏ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) = 1T 4. eN(T, S) = eN(S, T)-1S, T 5. Nếu à 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 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 m

q F

51

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 ( m) q i E F S  . 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 = 2itrong trường m q F và tìm được ki (mod di)

Sử dụng các 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.

Chng minh

Ở bước 1 và 2, chúng ta chọn một điểm và tính bậc của nó. Bước 3 tìm Ti .

Đặt eN(R,Ti)với R là một điểm tùy ý trên E( m

q F ) Khi đó: 1 ) , ( ) , ( ) , ( ) , (     e R T d eN R dTi eN R MiSi eN R O i N d , và vì 1,2 m q dF rồi giải ki i i 1 2  trong m q F Đặ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ì 1di 1 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ẽ phục vụ việc tìm k.

Độ phc tp thi 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 m

q

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

52

Quay trở lại bài toán tính độ phức tạp, dựa trên đặc điểm E(F m

q )  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(F m q ) với các bậc n1

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à 11/p. Suy ra, xác suất để :

pe|di11/p với mọi i và với mọi pe||N. (adsbygoogle = window.adsbygoogle || []).push({});

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

53

Chương 4 . ỨNG DỤNG CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG ELLIPTIC

Các hệ mật trên đường cong elliptic (ECC) có thể được sử dụng hiệu quả

trong các thiết bị không dây như là Cell phone , PDA , Smart card... Vì ECC có thể hoạt động trên các thiết bị nhỏ (bộ nhớ nhỏ, bộ tính toán bé, số “cổng” ít, ít năng

lượng). Mà vẫn đảm bảo độ mật cao. Với ECC chỉ cần sử dụng các khóa có độ dài

nhỏ, nhưng vẫn hiệu quả như các hệ mật khác có độ dài gấp nhiều lần. Ví dụ hệ mật RSA dùng khóa có độ dài 1024 bit , nhưng ECC chỉ cần khóa 160 bit đã mang lại

độ mật tương tự. Mặt khác, ECC còn tính nhanh hơn gấp 4 lần.

Khóa RSA 1024bit có thể thỏa đáng giao dịch ngày nay, nhưng đến cuối thập

kỷ này, để bảo đảm độ mật cần thiết, phải sử dụng khóa RSA 2048 bit. Trong khi

đó, để có được độ mật tương tự , ECC chỉ cần khóa 203 bit. Hơn thế nữa thời gian tính toán chỉ bằng 1/10 , chưa kể đến việc ECC sinh khóa nhanh hơn RSA.

Các hoạt động kinh tế xã hội (thanh toán, rút tiền, bỏ phiếu, đấu thầu , góp ý kiến) diễn ra mọi nơi mọi lúc. Các thiết bị cầm tay có kết nối an toàn từ xa (Smart card , E-token..). Chắc chắn sẽ được sử dụng nhiều để tiết kiệm thời gian và sức lực.

Khi đó không thể quên công nghệ ECC.

Hai ứng dụng là phổ biến trên thế giới có thể áp dụng ECC, đó là Bỏ phiếu điện tử và Hthng tiền điện tử.

54

4.1.ỨNG DỤNG TRONG BỎ PHIẾU ĐIỆN TỬ

Theo phương thức bỏ phiếu điện tử , mỗi lá phiếu phải có Thông tin định danh. Nó có thể là một con số x nào đó và phải khác nhau. Trên mỗi lá phiếu phải có chữ ký trên số định danh x , thì lá phiếu mới mới có giá trị để bầu cử. Nếu ctri

chuyển ngay Số định danh x cho ban kim phiếu ký thì lập tức họ xác định mối liên hệ giữa ctrix (ví dụ qua địa chỉ Internet nơi người gửi ).

Đó là điều ctri không mong muốn gây rắc rồi sau này. Để tránh tình huống này, cử tri đổi x thành y trước khi đưa cho ban kim phiếu ký xác nhận. Ban kim phiếu ký vào y, mà không biết đó là số định danh x đã che dấu (làm mù). Họ trao chữ ký trên yz cho cử tri. Cử tri xóa mù trên z sẽ được chữ ký ban kiểm phiếu trên số định danh x, như vậy ctri có quyền bầu cử.

Để phòng tránh sự gian lận thông đồng giữa một người nào đó trong ban kim phiếu với ctri. Hệ thống dùng “Đa chữ ký mù để bảo đảm sự nhất trí cao khi cấp quyền bỏ phiếu cho ctri.

4.1.1. Quy trình bỏ phiếu điện tử

Giai đoạn chun b

Các thành phần kỹ thuật của hệ thống bỏ phiếu cũng như chuẩn bị cơ cấu tổ (adsbygoogle = window.adsbygoogle || []).push({});

chức. Người kiểm phiếu và nhân viên bầu cử được chỉ định. Các nhân viên bầu cử

thực hiện tất cả các bước trong quá trình bỏ phiếu như điều hành hệ thống máy tính, cung cấp dữ liệu cần thiết cho hệ thống. Người kiểm tra cuộc bầu cử sẽ điều khiển toàn bộ quá trình bầu cử bằng cách chỉ đạo các nhân viên bầu cử nhờ việc kiểm tra sự hoạt động của hệ thống máy tính. Hơn nữa, BKP cũng được chỉ định. Đây là người chịu trách nhiệm về kết quả bầu cử. Cuối cùng, danh sách các cử tri cũng được thiết lập. Trong bước này, quan trọng nhất là cơ chế định danh người gửi dùng

để sử dụng trong quá trình bỏ phiếu của cử tri.

Giai đoạn bỏ phiếu

Giai đoạn các cử tri thực hiện bỏ phiếu. Các cử tri phải có một hình thức định danh tính hợp lệ của lá phiếu. Thêm vào đó, một vài kỹ thuật (mã hoá) cần được áp dụng để bảo đảm tính toàn vẹn của lá phiếu.

Giai đoạn Kim phiếu và thông báo kết quả

55

4.1.2. Sử dụng ECC trong bỏ phiếu điện tử

1 .Cp quyn bu c

Khi đã được kiểm traCử tri cần BĐK ký trên bí danh của mình. BĐK sẽ sử

dụng sơ đồ chữ ký mù Harn để ký như sau:

Sơ đồ 4.4.1. Sơ đồ ký mù của BĐK khi cấp quyền bầu cử cho cử tri

1. Cử tri gửi ID m của mình đến BĐK để xin cấp chữ ký.

2. BĐK có cặp khóa công khai/ bí mật trên đường cong elliptic là (d, Q). Khi có yêu cầu ký, BĐK chọn ngẫu nhiên k [2,q1]và tính RkG (xk,yk). Tính      1 0 ) ( n i i k i k c p x c r , trong đó     1 0 n i i k i k c x , 0cikp. Gửi rRcho cử tri.

3. Cử tri 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 = (xk, yk) và tính r = c(xk) và mmr a1r

)

( .

Sau đó gửi mcho BĐK (mm sau khi đã bị làm mù). 4. BĐK ký mù (ký trên văn bản đã bị làm mù): ) (mod ) (m r k q d s    , rồi gửi scho cử tri.Jerry nhận

được s, xóa mù để có được chữ ký s trên m bằng cách tính

b s a

s  Cặp (r, s) là một chữ ký ECC trên định danh m của cử

tri.

Để tăng tính an toàn và công bằng của cuộc bầu cử nhằm tránh gian lận tại

giai đoạn đăng ký (cấp quyền bầu cử cho những cử tri không hợp lệ), nên thiết lập

BĐK gồm t thành viên (ít nhất là 2). Khi đó, để ký lên định danh của cử tri, t thành viên này có thể dùng giao thức đa chữ ký mù 3.2.4 của Harn để thực hiện việc ký.

2. Bỏ phiếu

Sau khi đã đăng ký và được cấp quyền bầu cử, cử tri sẽ tiến hành bỏ phiếu và giả sử lá phiếu của cử tri thứivi. Cử tri tiến hành các bước như sau:

56

1. Nhúng nội dung của lá phiếu lên E, khi đó vi được thể hiện thành một điểm (Pm)iE. Cử tri phải mã hóa Pmbằng khóa công khai của BKP.

2. Giả sử khóa bí mật của BKP là aT thì khóa công khai sẽ là aTG. Cử tri chọn ngẫu nhiên riPm được mã hóa thành một cặp điểm trên E: (adsbygoogle = window.adsbygoogle || []).push({});

Vi = (C1, C2) = (riG,( Pm)i + ri(aTG) 3. Cử tri gửi điểm Vi đến BKP.

3. Kiểm phiếu

Khi các lá phiếu được chuyển về BKP, nó sẽ được trộn bằng một máy trộn ngẫu nhiên, nhằm ngăn chặn các tiêu cực trong quá trình bỏ phiếu. BKP nhận được các Vi = (C1, C2). Do tính chất đồng cấu của hệ mã ECC được sử dụng, BKP không cần giải mã từng lá phiếu mà có thể tính tổng các lá phiếu đã mã hóa rồi từ đó tính

được kết quả cuối cùng của cuộc bỏ phiếu.

Để giải mã từng lá phiếu, BKP tính:

C2 – aT(C1) = Pm + k(aTG) – aT(kG) = Pm

Tuy nhiên, không giải mã từng lá phiếu, BKP vẫn tính được kết quả cuộc bầu cử theo công thức:         N i i T N i N i i m C a C P 1 1 1 1 2

57

4.2. ỨNG DỤNG TRONG HỆ THỐNG TIỀN ĐIỆN TỬ

Một đồng tiền điện tử C có 2 thông tin quan trọng nhất : Số Seri và giá trị của

đồng tiền. Cũng như đồng tiền thông thường(bằng giấy). Hệ thống phải bảo đảm các yêu cầu sau: Ngần hàng phát hành đồng tiền C “khó” nhận biết đồng tiền này(ví

dụ : Số seri) của người mua hàng đã rút ra từ tài khoản của họ. Ngân hàng thu nạp

đồng tiền C cũng khó thể biết đồng tiền C đã được nhận từ người bán. Mặt khác

người bán hàng khó thể biết C được rút từ tài khoản nào. Để thực hiện yêu cầu trên, hiện nay người ta dùng “Chữ ký mù” để ký lên đồng tiền C.

Như vậy tiền điện tử C không lưu lại dấu vết của những ai đã “tiêu” (Spending) nó. Trên thực tế đồng tiền C không chỉ do một ngân hàng phát hành, nó có thể là đồng tiền chung của nhiều ngân hàng. Vì vậy nó phải mang dấu ấn của các ngân hàng liên quan. Trong trường hợp này Tổ chức liên ngân hàng sẽ thống nhất một “Đa chữ ký mù” để ký lên đồng tiền C.

Quá trình giao dịch sẽ chia thành bốn giai đoạn:

4.2.1. Tạo tiền ecash

1. Sau khi biết được số tiền cần phải thanh toán, phần mềm tại máy khách hàng sẽ sinh ra dãy số ngẫu nhiên, dãy số này được xem như là dãy số tiền tương trưng cho số tiền cần phải rút từ ngân hàng. Một thừa số mù sẽ được đưa vào

dãy số, thừa số mù này sẽ khiến cho ngân hàng không thể lưu giữ danh sách dãy số tiền và không biết được nó được tiêu xài ở đâu.

2. Dãy số đã được làm mù này sẽ được gửi đến ngân hàng mà khách hàng đã có tài khỏan trước đấy.

3. Ngân hàng sẽ kiểm tra thông tin được gửi đến. Sau đó ngân hàng sẽ ký lên

thông điệp(dãy số), vì dãy số đã được làm mù nên ngân hàng sẽ không biết nó là của ai, tại thời điểm đấy tài khoản của khách hàng sẽ bị trừ một khoảng

tương ứng.

4. Ngân hàng gửi dãy số sau khi được ký đến khách hàng.

5. Khách hàng sẽ giải mù những dãy số này, như vậy dãy số cộng với chữ ký

Một phần của tài liệu NGHIÊN CỨU, TÌM HIỂU VÀ TRÌNH BÀY VỀ CHỮ KÝ SỐ TRÊN ĐƯỜNG CONG Elliptic, ỨNG DỤNG CỦA ĐƯỜNG CONG Elliptic TRONG HỆ THỐNG BỎ PHIẾU ĐIỆN TỬ VÀ HỆ THỐNG TIỀN ĐIỆN TỬ (Trang 49)