Xem mẫu

  1. Nghiªn cøu khoa häc c«ng nghÖ MéT PH¦¥NG PH¸P TÝNH TO¸N T¦¥NG QUAN GI÷A XUNG NHÞP M¸Y Vµ PHÐP CéNG HAI Sè NGUYªN KHI THùC HIÖN TR£N PHÇN CøNG LỀU ĐỨC TÂN*, HOÀNG VĂN QUÂN**, HOÀNG NGỌC MINH* Tóm tắt: Trong việc thực hiện các hệ mật mã khóa công khai, các phép tính toán số học trên các số nguyên lớn luôn là phép tính quan trọng và nặng nề nhất. Để đánh giá được mức độ tiêu tốn tài nguyên cũng như tốc độ thực hiện của các phép toán này, nội dung bài báo trình bày một phương pháp tính toán tính tương quan giữa xung nhịp máy và phép cộng hai số nguyên khi thực hiện trên phần cứng. Từ khóa: Phép cộng, Xung nhịp máy, ECC. 1. MỞ ĐẦU Khi thực hiện tính tổng hai số nguyên X, Y  [0, 2k) bằng mạch cộng m-bits thì số nhịp máy cần thiết để thực hiện phép cộng này, được ký hiệu là flops(X,Y), sẽ là một số xác định. Tuy nhiên nếu ký hiệu F(k) là số nhịp máy để thực hiện phép cộng hai số nguyên trong miền [0, 2k) thì đây sẽ là một đại lượng ngẫu nhiên [1,2]. Bài báo này trình bày kết quả nghiên cứu về số nhịp máy trung bình được ký hiệu là AAF(k) để thực hiện phép cộng hai số nguyên trong miền [0, 2k) và đó cũng chính là giá trị kỳ vọng của đại lượng F(k). Mục 2 mô tả hoạt động của mạch cộng làm cơ sở cho việc xác định các giá trị flops(X,Y) cũng như phân phối xác suất của đại lượng F(k), trong mục này trình bày thêm cách tiếp cận và các công cụ được sử dụng để tìm các giá trị AAF(k). Mục 3 liệt kê các kết quả tính toán được về các giá trị AAF(k) và quan trọng nhất là thu được kết quả AAF(k) trình bày trong kết quả 1 và đã được chứng minh trong mục 3.4. 2. MẠCH CỘNG HAI SỐ NGUYÊN VÀ PHÂN PHỐI XÁC SUẤT CỦA ĐẠI LƯỢNG F(k) 2.1. Hoạt động của mạch cộng m-bits và trạng thái các thanh ghi sau mỗi nhịp máy Mạch cộng bao gồm thanh ghi A được gọi là thanh ghi tổng (theo nghĩa giá trị tổng sẽ được lưu trong thanh ghi này khi mạch dừng hoạt động) còn C được gọi là thanh ghi điều kiển (mạch sẽ dừng khi tất cả các bít trong thanh ghi này bằng 0) [2]. Cho A và C là hai thanh ghi m-bits với m>k. Để tính tổng X+Y với X, Y  [0, 2k), xâu m bít biểu diễn nhị phân của hạng tử thứ nhất đưa vào thanh ghi A còn của hạng tử thứ hai đưa vào thanh ghi C. Tức là nếu biểu diễn nhị phân của X và Y lần lượt là X = (xm1, ..., xk, xk1, ..., x1, x0)2 và (2.1) Y = (ym1, ..., yk, yk1, ..., y1, y0)2 (2.2) thì bít thứ i (i=0, ..., k) của các thanh ghi A và C tương ứng, ký hiệu là A[i] và C[i], là A[i] = xi và C[i] = yi. (2.3) T¹p chÝ Nghiªn cøu KH&CN qu©n sù, Sè 33, 10 - 2014 75
  2. Kỹ thuật điện tử & Khoa học máy tính Chú ý: Do X, Y  [0, 2k) nên trong vế phải của (2.1) và (2.2) ta luôn có xs = ys = 0 với mọi sk. Mỗi nhịp máy các giá trị ở bít thứ i của A và C được xử lý tại một khâu tương ứng, bit tổng (không nhớ) được đưa vào bít thứ i của A còn bit tràn được đưa vào bit thứ i+1 của C. Khi thanh ghi C có trị tất cả các bít bằng 0 thì giá trị X+Y có biểu diễn nhị phân chính là các bít tương ứng của thanh ghi A. Ký hiệu A', C' và A", C" là trạng thái của hai thanh ghi A và C trước và sau một nhịp máy nào đó thì C "[0]  0   C "[i ]  A '[i  1]C '[i  1] (0  i  m ) (2.4)  A "[i ]  A '[i ]  C '[i ] (0  i  m ) 2.2. Phân phối xác suất của đại lượng F(k) Tính chất: F(k) là một đại lượng ngẫu nhiên nhận giá trị nguyên từ 0 đến k+1 có phân bố Prob(F(k)=f) = N(k, f ) (f=0, 1, ..., k+1). (2.5) 4k k trong đó, N(k,f) = #{(X,Y): X, Y  [0, 2 ) và flops(X,Y) = f}. Chứng minh: Với Y = 0 thì trạng thái của thanh ghi C có giá trị tất cả các bít bằng 0 vì vậy mạch dừng và điều này có nghĩa flops(X,0) = 0. (2.6) f1 Với mọi f = 1, 2, ..., k+1; lấy X = 1 và Y = 2  1 thì trạng thái đầu tiên của C là có đúng f1 bít 1 từ các vị trí thấp nhất còn của A chỉ có đúng một bít 1 ở vị trí thấp nhất. Dễ dàng nhận ra rằng flops(1, 2f1  1) = f (f = 1, 2, ..., k+1). (2.7) k Bây giờ ta sẽ chứng tỏ với mọi X, Y  [0, 2 ) thì flops(X,Y)  k+1. (2.8) Thật vậy, từ X, Y < 2k nên X + Y < 2k+1 vì vậy trong suốt quá trình thực hiện của mạch cộng thanh ghi C có các bít 1 chỉ xuất hiện ở k+1 vị trí thấp nhất. Theo công thức (2.4) thì sau mỗi nhịp máy thì số bít thấp nhất bằng 0 của C sẽ tăng thêm 1 (do phép dịch trái 1 vị trí) cho nên nhiều nhất là k+1 nhịp thì C sẽ không còn bít 1 và đương nhiên phép cộng đã hoàn thành. Như vậy, các kết quả (2.6), (2.7) và (2.8) đã chứng minh tính đúng đắn của tính chất. Từ X, Y  [0, 2k) nên ta có 2k2k = 4k cặp (X,Y) khác nhau và từ định nghĩa của giá trị N(k,f) ta có ngay (2.5) và tính chất đã được chứng minh. 2.3. Cách tiếp cận và công cụ để tính giá trị AAF(k) Để tính AAF(k) có hai tiếp cận để thực hiện đó là tính đúng giá trị này trong trường hợp k
  3. Nghiªn cøu khoa häc c«ng nghÖ trong đó Total  k    flops( x, y ) là tổng số nhịp máy cần thiết để thực hiện k x , y[0,2 ) toàn bộ 4k phép cộng các số nguyên trong miền [0, 2k). k 1 k 1 Thật vậy, AAF(k)= E(F(k))  j  N ( k , f ) = 1  j  N ( k , f ) = Total ( k ) . Như j 0 4k 4 k j 0 4k vậy công thức (2.9) đã được chứng minh. 2.3.2. Công thức tính gần đúng giá trị AAF(k) Theo [1] khi khảo sát một đại lượng ngẫu nhiên X nào đó người ta tiến hành M phép thử (quan sát giá trị nhận được của X), giả sử trong phép thử thứ i, giá trị M nhận được của X là xi (i=1, ..., M). Khi này (1/ M ) xi được gọi là kỳ vọng mẫu, i 1 M được gọi là kích thước mẫu và như một hệ quả của định lý Markov ta có với mọi >0 nhỏ tùy ý thì  1 M  =1 (2.10) lim Pr ob   xi  E ( X )    M   M i 1  Áp dụng cho X=F(k) ta có  1 M  =1 (2.11) lim Pr ob   Fi ( k )  AAF ( k )    M   M i 1  M Từ (2.11) thì ta có thể lấy (1 / M ) Fi (k ) là giá trị gần đúng của AAF(k) và chứng i 1 minh tương tự như cho công thức (2.9) ta có công thức tính gần đúng giá trị AAF(k) AAF(k)  Total ( k , M ) (2.12) M trong đó, Total(k,M)=  flops( xi , yi ) là tổng số nhịp máy cần thiết để thực hiện i 1.. M M phép cộng các số nguyên được lấy một cách ngẫu nhiên trong miền [0, 2k). Biểu thức vế phải Total (k , M ) = 1 M F ( k ) trong công thức (2.12) được ký hiệu là M M i 1 i AAF(k,M). 2.4. Đánh giá |AAF(k)AAF(k,M)| 2.4.1. Cơ sở lý thuyết Trong [1] cho biết với M khá lớn ta có thể sử dụng công thức đánh giá sau:  Pr ob X  E ( X )  t D ( X ) = 2(t).  (2.13) M trong đó X   Xi / M với Xi là các đại lượng cùng phân phối và độc lập với nhau. i 1 Theo tính chất của kỳ vọng và phương sai ta có: E( X )=m ; D( X ) =  2 M Nên (2.13) trở thành    = 2(t). (2.14) Pr ob  X  m  t   M  T¹p chÝ Nghiªn cøu KH&CN qu©n sù, Sè 33, 10 - 2014 77
  4. Kỹ thuật điện tử & Khoa học máy tính Đại lượng F(k) chỉ nhận hữu hạn giá trị do đó kỳ vọng AAF(k) và phương sai của nó, ký hiệu là (k)2, đều hữu hạn dó đó theo công thức (2.14) ta có công thức đánh giá tương ứng đó là:   (k )  = 2(t). (2.15) Pr ob  AAF (k , M )  AAF (k )  t   M  Ví dụ 1: Với t = 3.1, giá trị (3.1) tra được trong bảng 1A (trang 72 [5]) (chú ý: với cùng một ký hiệu (t) nhưng trong tài liệu [5] chính là 2(t) trong [1] là   0.999032 và điều này có nghĩa nếu lấy (k)= 3.1 / M  ( k ) thì theo công thức (2.15) ta có Pr ob  AAF ( k , M )  AAF ( k )   ( k )  = 0.9990322. 2.4.2 Ước lượng giá trị (k) Để áp dụng được công thức (2.15) việc quan trọng tiếp theo là xác định được giá trị (k). Trong điều kiện F(k) chưa biết phân bố nên chúng ta chỉ có thể ước lượng giá trị (k), mà điều cần thiết để ước lượng là một cận trên của nó. Trong mục này chúng ta sẽ đưa ra cách ước lượng nói trên, chúng ta cần chứng minh một bổ đề sau: Bổ đề: Cho sự kiện ngẫu nhiên A có phân phối xác xuất Prob(A)=p, nếu trong M phép thử độc lập ta thấy sự kiện này xuất hiện đúng M lần thì với mọi >0 cho trước ta có M 1 Prob(1p > ) = 1    (2.16) Chứng minh: Biết rằng xác suất để sự kiện A xuất hiện M lần trong M phép thử là pM , do đó, 1 1 M 1 Prob(1p > ) =  p M dp /  p M dp = 1    . 0 0 Ví dụ 2. Với M=10 và =0.0000006908 ta có 1  M 1 = 0.001. 7 Từ bổ đề trên ta dễ dàng thu được kết quả sau dùng để ước lượng cận trên cho giá trị . Hệ quả: Cho đại lượng ngẫu nhiên X có miền giá trị là {0, 1, ..., n}. Nếu thực hiện M phép thử độc lập X chỉ nhận giá trị trong miền [s,e] và E(X) s  e n . min  ;   2 2 Khi đó với mọi 0
  5. Nghiªn cøu khoa häc c«ng nghÖ cặp số nguyên X, Y  [0, 2k), tính Total(k,107) tổng của 107 giá trị flops(X,Y) trong mỗi lần lấy ngẫu nhiên đó và khi này AAF(k,107) = Total(k,107)107 (3.2) Để phục vụ cho việc đánh giá sai số như đã đưa ra trong mục 2.4, ngoài việc tính Total(k) chúng ta còn phải xác định hai tham số fs(k) và fe(k) (dùng trong công thức 3.3) với fs(k) là giá trị đầu tiên và fe(k) là giá trị cuối cùng có N(k,f)0. 3.2. Kết quả duyệt toàn bộ 22k phép cộng khác nhau với k từ 0 đến 14 Total(1) = 3, AAF(1) = 0.750000 Total(2) = 21, AAF(2)= 1.312500 Total(3) = 113, AAF(3)= 1.765625 Total(4) = 547, AAF(4)= 2.136719 Total(5) = 2509, AAF(5)= 2.450195 Total(6) = 11135, AAF(6)= 2.718506 Total(7) = 48373, AAF(7)= 2.952454 Total(8) = 206991, AAF(8)= 3.158432 Total(9) = 876061, AAF(9) =3.341908 Total(10)=3677047, AAF(10)=3.506705 Total(11)=15334149, AAF(11)=3.655946 Total(12)=63619791, AAF(12)=3.792035 Total(13)=262861101, AAF(13)=3.91693 Total(14)=1082389767, AAF(14)=4.032216 3.3. Kết quả thống kê với 107 mẫu cho mỗi k từ 15 đến 4096 Bảng 3.1 dưới đây ghi kết quả thống kê được của 112 giá trị k bao gồm k từ 15 đến 64; k từ 96 đến 1024 trong dạng k=32i (i=1,..., 30); k từ 1088 đến 2048 trong dạng k=64i (i=1,..., 16) và ; k từ 2176 đến 4096 trong dạng k=128i (i=1,..., 16). Các số liệu được ghi trong bảng bao gồm: k, AAF(k,107), fs(k), fe(k) và (k). Các số liệu AAF(k,107), fs(k), fe(k) có được từ thống kê còn (k) được ước lượng theo ví dụ 1 mục 2.4.1 (để đạt được độ tin cậy 0.999032), giá trị 2 được đánh giá theo công thức (2.17) còn  = 0.0000006908 được lấy theo ví dụ 2 mục 2.4.2 (để đảm bảo xác suất sai không quá 0.001). Tóm lại (k) được tính theo công thức sau 2 2 (1   )( f e  (1   )  f s )   ( k  1  (1   )  f s ) (k) = 3.1  7 (3.3) 10 Bảng 3.1. Kết quả thống kê 112 giá trị của k. 7 k AAF(k,10 ) fs (k) fe (k) (k) k AAF (k,107) fs(k) fe (k) (k) 15 4.1399501 0 16 0.016039 288 8.4977167 4 30 0.026065 16 4.2386532 0 17 0.017042 320 8.6502339 4 34 0.030074 17 4.3320945 0 18 0.018044 352 8.7886398 4 33 0.029072 18 4.4200825 0 19 0.019046 384 8.9146046 4 31 0.027068 19 4.5026766 0 20 0.020049 416 9.0295142 4 31 0.027068 20 4.5807384 0 21 0.021051 448 9.1369311 5 30 0.025064 21 4.6553482 0 22 0.022054 480 9.2362259 5 31 0.026067 22 4.7249131 0 23 0.023056 512 9.3298887 5 31 0.026067 23 4.7923977 1 23 0.022054 544 9.4175886 5 30 0.025065 24 4.8568043 0 24 0.024059 576 9.5004907 5 32 0.027070 25 4.9183709 1 23 0.022054 608 9.5784751 5 33 0.028073 26 4.9770195 1 24 0.023056 640 9.6527988 5 32 0.027071 27 5.0349873 1 25 0.024059 672 9.7229998 5 34 0.029076 28 5.0876514 1 24 0.023056 704 9.7910969 5 31 0.026070 29 5.1409723 1 25 0.024059 736 9.8535831 5 34 0.029077 30 5.1919811 1 24 0.023056 768 9.9160444 5 34 0.029078 T¹p chÝ Nghiªn cøu KH&CN qu©n sù, Sè 33, 10 - 2014 79
  6. Kỹ thuật điện tử & Khoa học máy tính 31 5.2410299 1 26 0.025061 800 9.9746949 5 33 0.028076 32 5.2881423 1 27 0.026063 832 10.0314707 5 33 0.028077 33 5.3332005 1 25 0.024059 864 10.0860103 6 31 0.025071 34 5.3778501 1 25 0.024059 896 10.1386865 5 32 0.027076 35 5.4209489 1 28 0.027066 928 10.1888623 5 34 0.029081 36 5.4637941 1 27 0.026064 960 10.2389178 6 35 0.029082 37 5.5035587 1 26 0.025061 992 10.2861217 5 32 0.027078 38 5.5434711 1 27 0.026064 1024 10.3310832 5 34 0.029083 39 5.5817211 1 26 0.025061 1088 10.4188155 6 33 0.027081 40 5.6189158 1 26 0.025061 1152 10.5008227 6 35 0.029087 41 5.6558295 1 26 0.025061 1216 10.5797636 6 34 0.028086 42 5.6920440 1 28 0.027066 1280 10.6537093 6 32 0.026085 43 5.7259800 1 27 0.026064 1344 10.7234819 6 33 0.027089 44 5.7601316 1 31 0.030073 1408 10.7905204 6 34 0.028093 45 5.7937005 1 27 0.026064 1472 10.8558274 6 34 0.028095 46 5.8254527 1 27 0.026064 1536 10.9169641 6 35 0.029099 47 5.8576532 1 26 0.025061 1600 10.9755471 6 33 0.027099 48 5.8874458 1 29 0.028068 1664 11.0313155 6 34 0.028102 49 5.9189435 1 28 0.027066 1728 11.0867588 6 34 0.028105 50 5.9480496 1 27 0.026064 1792 11.1397614 6 33 0.027107 51 5.9780568 1 33 0.032078 1856 11.1900650 6 32 0.026109 52 6.0063450 1 27 0.026064 1920 11.2385736 7 32 0.025112 53 6.0338280 1 26 0.025061 1984 11.2870085 7 30 0.023115 54 6.0620954 1 27 0.026064 2048 11.3325767 6 33 0.027119 55 6.0884972 1 29 0.028068 2176 11.4198410 7 32 0.025126 56 6.1156798 2 28 0.026064 2304 11.5021737 7 32 0.025134 57 6.1410676 2 28 0.026064 2432 11.5800870 7 35 0.028141 58 6.1666951 1 33 0.032078 2560 11.6550679 7 35 0.028149 59 6.1914261 2 27 0.025061 2688 11.7249838 7 35 0.028157 60 6.2161775 1 28 0.027066 2816 11.7917189 7 34 0.027167 61 6.2402992 2 33 0.031076 2944 11.8547999 7 33 0.026178 62 6.2647414 2 29 0.027066 3072 11.9175576 7 33 0.026188 63 6.2882122 2 29 0.027066 3200 11.9760081 7 31 0.024205 64 6.3104244 2 27 0.025061 3328 12.0320870 7 35 0.028205 96 6.9032910 2 29 0.027066 3456 12.0871429 7 32 0.025225 128 7.3216611 3 29 0.026064 3584 12.1393587 7 35 0.028226 160 7.6464142 3 29 0.026064 3712 12.1904356 7 33 0.026246 192 7.9104545 3 28 0.025062 3840 12.2395965 7 34 0.027254 224 8.1340866 3 29 0.026064 3968 12.2859574 7 33 0.026272 256 8.3274409 4 30 0.026064 4096 12.3345439 8 32 0.024299 3.4. Đánh giá về hàm AAF(k) Kết quả 1: Trong phạm vi k từ 1 đến 4096 ta có bất đẳng thức sau với xác suất tin cậy trên 0.998 log2(k)  AAF(k)  log2(k)+1. (3.4) Chứng minh: Như đã được đánh giá trong ví dụ 1 mục 2.4 thì |AAF(k)AAF(k,M)| < (3.1/ M ) (k ) (3.5) 2 với  (k) là phương sai của F(k) có xác suất tin cậy là 0.9990322 hay nói một cách khác là xác suất sai của bất đẳng thức (3.5) là không đến 0.001. Mặt khác theo bất đẳng thức (2.17) trong hệ quả trong mục 2.4.2 thì 2  (1  )e  (1  )  s 2  n  (1  )  s 2 (3.6) Ví dụ 2 mục 2.4.2 cho thấy xác suất sai của bất đẳng thức trên trong trường hợp M=107 và =0.0000006908 là 0.001. Cho nên xác định giá trị (k) theo công thức (3.3) ta có  (k) 3.1/ M  (k ) và vì thế ta thu được AAF(k,107)  (k)  AAF(k) AAF(k,107)+(k) (3.7) Với xác suất sai không đến 0.002 và do vậy xác suất tin cậy của (3.7) là trên 0.998. Từ số liệu thống kê về các giá trị AAF(k,107) và (k) tính được đưa ra trong bảng 1 ta có ngay được kết quả 1, tuy nhiên để dễ quan sát hơn chúng tôi đã thực hiện vẽ 4 đồ thị của các hàm AAF(k,107)(k), ký hiệu là AAF- , 80 L. §. T©n, H. V. Qu©n, H. N. Minh, " Mét ph­¬ng ph¸p tÝnh to¸n ... trªn phÇn cøng."
  7. Nghiªn cøu khoa häc c«ng nghÖ AAF(k,107)+(k), được ký hiệu là AAF + , log2(k) và log2(k)+1 trong hình vẽ 1. Rõ ràng bất đẳng thức trên là đúng và kết quả 1 đã được chứng minh. 14 12 10 8 Flops 6 4 2 0 Hình 1. Đồ thị các hàm AAF(k,107)(k), AAF(k,107)+(k), log2(k) và log2(k)+1 trong khoảng [1, 4096]. 4. KẾT LUẬN Trên thực tế, phép cộng là phép tính cơ sở cho việc thực hiện các phép tính như phép nhân điểm, phép lũy thừa, phép nghịch đảo trong các thuật toán mật mã. Bài báo đã đưa ra được một công thức tính tương quan gần đúng giữa xung nhịp máy và phép cộng hai số nguyên, nói cách khác là số xung nhịp máy tiêu tốn trung bình cho phép cộng hai số nguyên. Kết quả này sẽ là tiền đề để đánh giá tính hiệu quả của một số phép nhân số lớn trong các thuật toán mật mã [4]. TÀI LIỆU THAM KHẢO [1]. T.T. Điệp, L.H.Tú, “Lý thuyết xác suất và thống kê toán học” NXBGD,Hà Nội 1999. [2]. N.T. Vân, “ Kỹ thuật số ”, Nhà xuất bản Khoa học & Kỹ thuật, Hà Nội 1999. [3]. Daniel Tabak, “ Advanced Microrocessors ”, McGraw-Hill Inc, 1995. [4]. Darrel Hankerson, Alfred Menezes, Scott Vanstone, “Guide to Elliptic Curve Crytography”, Springer-Verlag New York, Inc. 2004. [5]. J.Likeš, J. Laga, “Základní Statiscke Tabulky", Nakl. tech. literatury, Praha 1978. ABSTRACT A METHOD OF CALCULATING THE CORRELATION BETWEEN THE MACHINE CLOCK AND THE ADDITION OF TWO INTEGER WHEN IMPLEMENTED ON HARDWARE In the implementation of public-key cryptography systems, numerical calculations on the large integer calculation is always important and hardest. To assess the level of resource consumption as well as the speed of execution of this operation, in this paper we propose a method of calculating the correlation between the machine clock and the addition of two integers to real on hardware. Keywords: Addition, machine clock, Elliptic Curve Cryptography. Nhận bài ngày 15 tháng 6 năm 2014 Hoàn thiện ngày 10 tháng 9 năm 2014 Chấp nhận đăng ngày 25 tháng 9 năm 2014 Địa chỉ: * Ban Cơ yếu Chính phủ; ** Cục Cơ yếu – BTTM; DĐ 0983074784. T¹p chÝ Nghiªn cøu KH&CN qu©n sù, Sè 33, 10 - 2014 81
nguon tai.lieu . vn