KHẢ NĂNG TẤN CễNG HỆ MẬT TRấN THIẾT BỊ CẦM TAY

Một phần của tài liệu Nghiên cứu phương pháp bảo vệ thông tin dùng trên thiết bị cầm tay (Trang 77)

Đõ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.

1/. 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ự.

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

3/. 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.

4./ Độ 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.4.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

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) = 1T

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à separable endomorphism của E, thỡ (adsbygoogle = window.adsbygoogle || []).push({});

eN((S),  (T)) = eN(S, T)deg  S, T.

1/. 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

2/. 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

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. 3/. 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.

4/. Độ 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|Mi vớ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 là  11/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. (adsbygoogle = window.adsbygoogle || []).push({});

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

Chương 3. SỬ DỤNG MỘT SỐ HỆ MẬT MÃ KHÁC TRấN THIẾT BỊ CẦM TAY

3.1 Hệ mó mật RC4 (40 bit/ 128 bit) 3.1.1.Mụ tả hệ mật RC4

RC4 thuộc nhúm mó dũng với độ dài khúa khụng cố định. Trong sơ đồ của RC4 cú sử dụng 2 thanh ghi 8 bits (bộ đếm) là Q1 và Q2 và một khối thay thế (S-block) cú kớch thƣớc 256x8 (256 phần tử, kớch thƣớc mỗi phần tử là 8 bits). Giỏ trị của khối S là một húan vị nào đú của cỏc số từ 0 đến 255.

Thủ tục cơ bản nhất trong một hệ mó dũng bất kỳ là thủ tục sinh Gamma. Khi đó cú đƣợc chuỗi gama thỡ phộp mó húa chỉ là phộp cộng từng bit (XOR) bản rừ với chuỗi gama này. Ký hiệu S[i] là giỏ trị phần tử thứ i của khối S; γ là giỏ trị kế tiếp (cần đƣợc sinh) của chuỗi Gamma.

Trong RC4, để sinh chuỗi Gamma thi mỗi khi xuất hiện một xung cần thực hiện cỏc thao tỏc sau:

1.Tăng Q1 lờn 1: Q1 = (Q1 + 1) mod 256

2.Thay đổi giỏ trị của Q2: Q2 = (Q2 + S[Q1]) mod 256

3.Hoỏn đổi giỏ trị của 2 phần tử: S[Q1] ↔ S[Q2]

4.Tớnh T của 2 phần tử này: T = (S[Q1] + S[Q2]) mod 256

5.Gỏn giỏ trị cho γ: γ = S[T]

Trong quỏ trỡnh sử dụng, bộ đếm Q1 sẽ làm cho nội dung của khối S thay đổi chậm, cũn bộ đếm Q2 sẽ đảm bảo sự thay đổi này là ngẫu nhiờn.

3.1.2.Khởi tạo khối S

Ta đó núi rằng giỏ trị của khối S là một hoỏn vị nào đú của 256 số từ 0..255. Sau đõy là thuật toỏn để xỏc định húan vị đú.

1. Gỏn cho mỗi phần tử giỏ trị bằng chỉ số của nú: S[i] = i; i=0..255

2. Tạo một mảng k gồm 256 phần tử, mỗi phần tử cú kớch thƣớc 1 byte. Điền đầy bảng k bằng cỏc byte của khúa K: k[0]=K[0], k[1]=K[1], ... Trong trƣờng hợp cần thiết, khúa K đƣợc dựng lặp lại.

3. Khởi tạo biến đếm j: j=0; 4. Xỏo trộn khối S:

a/. i = 0..255

b/. j = (j + S[i] + k[i]) mod 256 c/. Hoỏn đổi giỏ trị: S[i] ↔ S[j]

3.1.3.Mó húa và Giải mó

Khi đó cú đƣợc Gamma thỡ việc mó húa và giải mó là vụ cựng đơn giản. Nhận xột rằng Gamma đƣợc tạo ra theo từng khối 8 bits, nờn kớch thƣớc của mỗi ký tự (symbol) trong alphabet mà chỳng ta sẽ sử dụng là 8. Quỏ trỡnh mó húa đƣợc thực hiện nhƣ sau:

 Sinh một giỏ trị Gamma: γ

 Đọc một ký tự Xi từ bản tin.

 Thực hiện phộp XOR giữa Xi và γ sẽ thu đƣợc một ký tự của bản mó Yi: Yi = Xi γ

Do tớnh chất đối xứng của phộp XOR, quỏ trỡnh giải mó sẽ hũan tũan trựng với quỏ trỡnh mó húa. Trong thủ tục giải mó ở trờn, đầu vào là bản mó thỡ đầu ra sẽ thu đƣợc bản tin ban đầu.

3.1.4.Những ƣu điểm chớnh của hệ mó hoỏ RC4

 Thuật toỏn đơn giản. í nghĩa của từng bƣớc rừ ràng, logic.

 RC4 tỏ ra an toàn đối với cả 2 phƣơng phỏp thỏm cơ bản là thỏm tu yến tớnh và thỏm vi phõn (chƣa cú cụng trỡnh nào về thỏm RC4 đƣợc cụng bố). Số trạng thỏi mà RC4 cú thể cú là 256!ì256ì256  21700.

 Cú thể thay đổi kớch thƣớc của alphabet. Trờn đõy ta xột trƣờng hợp alphabet cú 256 symbols (kớch thƣớc mỗi symbol là 8 bits). Ta hũan tũan cú thể ỏp dụng thuật toỏn RC4 cho alphabet với symbol 4 bits, 16 bits, ... (adsbygoogle = window.adsbygoogle || []).push({});

3.2 Hệ mó mật DES (56 bit) 3.2.1 Cỏc thành phần của DES 3.2.1 Cỏc thành phần của DES

Gồm cỏc hoỏn vị chứa cỏc thành phần tuyến tớnh

IP (hoỏn vị ban đầu) IP-1(hoỏn vị ngƣợc)

58 50 42 34 26 18 10 2 40 8 48 16 56 24 64 32 60 52 44 36 28 20 12 4 39 7 47 15 55 23 63 31 62 54 46 38 30 22 14 6 38 6 46 14 54 22 62 30 64 56 48 40 32 24 16 8 37 5 45 13 53 21 61 29 57 49 41 33 25 17 9 1 36 4 44 12 52 20 60 28 59 51 43 35 27 19 11 3 35 3 43 11 51 19 59 27 61 53 45 37 29 21 13 5 34 2 42 10 50 18 58 26 63 55 47 39 31 23 15 7 33 1 41 9 49 17 57 25 E (hàm mở rộng) P 32 1 2 3 4 5 4 5 16 7 20 21 29 12 28 17 6 7 8 9 8 9 10 11 1 15 23 26 5 18 31 10 12 13 12 13 14 15 16 17 2 8 24 14 32 27 3 9 16 17 18 19 20 21 20 21 19 13 30 6 22 11 4 25 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 PC-1 PC-2 57 49 41 33 25 17 9 14 17 11 24 1 5 1 58 50 42 34 26 18 3 28 15 6 21 10 10 2 59 51 43 35 27 23 19 12 4 26 8 19 11 3 60 52 44 36 16 7 27 20 13 2 63 55 47 39 31 23 15 41 52 31 37 47 55 7 62 54 46 38 30 22 30 40 51 45 33 48 14 6 61 53 45 37 29 44 49 39 56 34 53 21 13 5 28 20 12 4 46 42 50 36 29 32

S-Box 1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S-Box 2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S-Box 3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S-Box 4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S-Box 5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S-Box 6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S-Box 7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 S-Box 8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

3.2.2 Giải thuật mó húa DES

DES mó hoỏ một xõu bit x của bản rừ độ dài 64 bằng một khoỏ 56 bit. Bản mó nhận đƣợc là một xõu bit cú độ dài 64 bit. Bản rừ X đƣợc chia thành cỏc khối 64 bit: X = x1x2…xn (xi: 64 bit).

Thuật toỏn tiến hành theo 3 giai đoạn:

Bƣớc 1. Với x  X (bản rừ) cho trƣớc, hoỏn vị cỏc bit của x theo phộp hoỏn vị cố định ban đầu IP. Ta tớnh đƣợc x0 = IP(x) = L0R0 (L0: 32 bit đầu, R0: 32 bit cuối).

Bƣớc 2. Lặp i = 116 lần, tớnh Li và Ri theo cụng thức: i i 1 i i 1 i 1 i L R R L f (R , K )         

Cỏc khoỏ K1, K2, …, K16 là cỏc khúa con đƣợc sinh ra từ K (khúa 56 bit) theo một hàm xỏc định (hàm sinh khúa con), cỏc khúa con này sẽ tạo thành bảng khoỏ. Hàm f(A, J) sẽ đƣợc mụ tả trong phần sau.

Bƣớc 3. Áp dụng phộp hoỏn vị ngƣợc IP-1(R16L16) cho xõu bit L16 và R16 nhận đƣợc ở bƣớc 2, ta thu đƣợc bản mó y = IP-1(R16L16). Thứ tự L16 và R16 đó đảo thành R16 và L16.

Hỡnh 3.2. Một vũng của DES

Xõy dựng hàm f(A, J)

Hàm cú hai biến, biến A là một xõu bit cú độ dài 32 bit, biến J cú độ dài 48. Đầu ra của hàm f(A, J) là một xõu bit cú độ dài 32 bit.

Hàm đƣợc xõy dựng qua 4 bƣớc:

Bƣớc 1. Sử dụng hàm mở rộng cố định E, mở rộng A cú độ dài 32 bit thành chuỗi bit cú độ dài 48 bit, E(A) gồm 32 bit của A với 16 bit xuất hiện 2 lần.

Bƣớc 2. Từ E(A) và J ta tớnh đƣợc:

E(A)  J = B1B2B3B4B5B6B7B8 (Bi : là chuỗi bit cú độ dài 6 bit)

Bƣớc 3. Lặp i = 18 lần, mỗi Bi đƣợc viết thành: Bi = b1b2b3b4b5b6 (bj : 1 bit)

Tiếp đú ta sử dụng một hộp S-Box thứ i tƣơng ứng với lần lặp thứ i. Hộp Si là

Một phần của tài liệu Nghiên cứu phương pháp bảo vệ thông tin dùng trên thiết bị cầm tay (Trang 77)