Luận án Nghiên cứu giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch vụ
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Luận án Nghiên cứu giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch vụ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
Tóm tắt nội dung tài liệu: Luận án Nghiên cứu giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch vụ
sự kiện ngẫu nhiên có hân hối xác suất Prob( ) , nếu trong h thử độc lậ ta thấy sự kiện này xuất hiện đúng lần thì với M 1 mọi >0 cho trước ta có Prob(1 p > )= 1 (2.16) hứng minh Ký hiệu B là sự kiện {trong M phép thử độc lập sự kiện A xuất hiện đúng M lần} ta có Porb(B.(Prob(A)=p)) = pM (2.17) Từ (2.17) ta có v M Porb(B.(u ≤ Prob(A) ≤ v)) = p dp (2.18) u Vì (0 ≤ Prob(A) ≤ ) là sự kiện chắc chắn nên từ (2.18) ta có kết quả 49 1 M Porb(B) = Porb(B.(0 ≤ Prob(A) ≤ )) = p dp (2.19) 0 Th o công thức xác suất có điều kiện [6] và đẳng thức (2.18), (2.19) ta suy ra: v Prob ( B .( u Pr ob ( A ) v )) pM dp Porb((u ≤ Prob(A) ≤ v)/B) = = u (2.20) 1 Prob ( B ) pM dp 0 Với u=0, v= - và trong biểu thức (2.20) thay Prob(A) bằng p ta có 1 pM dp 0 M 1 Prob(1 p > ) = 1 = 1 pM dp 0 như vậy (2. ) đã được chứng minh. Ví dụ 2. Với M= 07 và =0.0000006908 ta có 1 M 1= 0.001. Từ bổ đề ở trên ta thu được kết quả sau dùng để ước lượng cận trên cho giá trị . Hệ quả: ho đ i lượng ngẫu nhiên X có mi n giá trị là {0, 1, ..., n}. Nếu thực hiện h thử độc lậ X chỉ nhận giá trị trong mi n [s,e] và (X) s e n min ; . 22 Khi đó với mọi 0<<1 ta đánh giá 22 2 (1 ) e (1 ) s n (1 ) s . (2.21) Thì xác suất sai lầm lo i 2 của đánh giá trên là = 1 M 1. hứng minh: Ký hiệu A = {X [x1, x2]} thì với giả thiết đưa ra, th o bổ đề ta có Prob(1 p > ) = 1 M 1 Điều trên có ngh a nếu ta kết luận " Prob(A) = p > 1 " thì kết luận này có xác suất sai lầm loại 2 là 1 M 1. Ta có s 1 e n e E(X) = i pi + i pi + i pi s pi = (1 ) s (2.22) i 1 i s i e 1 i s 50 s 1 e n 2 2 2 2 = pi i E(X) + pi i E(X) + pi i E(X) (2.23) i 1 i s i e 1 s e n 2 Từ điều kiện (2.22) và E(X) min ; nên các giá trị (i E(X)) trong 2 2 tổng thứ hai trong vế phải của (2.23) thỏa mãn (2.22) (i E(X))2 < (e E(X))2 (e (1 ) s)2 (2.24) còn trong tổng thứ nhất và thứ ba trong vế phải của (2.23) thỏa mãn (2.22) (i E(X))2 < (n E(X))2 (n (1 ) s)2 (2.25) Thay (2.24) và (2.25) vào (2.23) ta được e s 1 n 2 2 2 e (1 ) s pi + n (1 ) s pi pi i s i 1 i e 1 (1 ) e (1 ) s 2 n (1 ) s 2 và đây là điều cần chứng minh. 2.2.2.5. Thuật toán tính hàm flops(.,.). Việc tính hàm flops(X, ), được thực hiện th o thuật toán 2.5 Thuật toán 2.5. Tính hàm flops(.,.) Input: X, Y là hai dãy k+1 bít biểu di n nhị phân số nguyên [0, 2k). Output: f 1. f=0; 2. while (C 0) { f f+1; B A And C; A A Xor C; C Shiftleft(B); } 3. return f. Trong đó: And: toán tử nhân các bit tương ứng của hai thanh ghi; Xor: toán tử xor các bit tương ứng của hai thanh ghi; Shiftleft: phép dịch trái vị trí. 51 2.2.3. Kết quả tính toán số AAF(k) và AAF(k,M) 2.2.3.1. Cách tính giá trị AAF(k) Chúng ta sử dụng hàm flops(X, ) để tính số nhịp máy; trong trường hợp k nhỏ, cụ thể k 14, ta tiến hành đếm toàn bộ số nhịp máy cho tất cả 22k phép cộng, giá trị thu được ký hiệu là Total(k) và khi này ta có AAF(k) = Total(k) 2 2k (2.26) Ngược lại, chọn phương pháp thống kê đó là tiến hành lấy ngẫu nhiên M= 07 cặp số nguyên X, [0, 2k), tính Total(k,107) tổng của 07 giá trị flops(X,Y) trong mỗi lần lấy ngẫu nhiên đó và khi này: 7 7 7 AAF(k,10 )=Total(k,10 ) 10 (2.27) Để phục vụ cho việc đánh giá sai số như đã đưa ra trong mục 2.2.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 2.28) 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. 2.2.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; 2.2.3.3. K t quả thống kê với 107 mẫu cho mỗi k từ 15 đ n 4096 Bảng 2.1 ghi kết quả thống kê được của 2 giá trị k bao gồm k từ 5 đến k từ 9 đến 02 trong dạng k= 2 i (i= ,..., 0) k từ 088 đến 20 8 trong dạng k= i (i= ,..., ) và k từ 2 7 đến 09 trong dạng k= 28 i 7 (i= ,..., ). Các số liệu được ghi trong bảng bao gồm: k, AAF(k, 0 ), fs(k), 52 fe(k) và (k). 7 Các số liệu AAF(k, 0 ), fs(k), fe(k) có được từ thống kê còn (k) được ước lượng th o ví dụ mục 2.2.2.4 a) (để đạt được độ tin cậy 0.999032), giá trị 2 được đánh giá th o công thức (2.28) còn = 0.000000 908 được lấy th o ví dụ 2 mục 2.2.2.4 b) (để đảm bảo xác suất sai không quá 0.00 ). Tóm lại (k) được tính th o công thức sau: 22 (1 )(fe (1 ) f s ) ( k 1(1 ) f s ) (k) = 3.1 7 (2.28) 10 Bảng 2.1. Kết quả thống kê 112 giá trị của k 7 7 k AAF(k,10 ) fs (k) fe (k) (k) k AAF (k,10 ) 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 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 53 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 2.2.3.4. Đánh giá về hàm AAF(k) K t quả 1: Trong h 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 (2.29) hứng minh: Như đã được đánh giá trong ví dụ mục 2.2.2.4 a) thì ()k |AAF(k) AAF(k,M)| < 3.1 (2.30) M 54 với 2(k) là phương sai của F(k) có xác suất tin cậy là 0.9990 22 hay nói một cách khác là xác suất sai của bất đẳng thức (2.30) là không đến 0.00 . Mặt khác th o bất đẳng thức (2.21) trong hệ quả trong mục 2.2.2.4 b) thì 2 (1 ) e (1 ) s 2 n (1 ) s 2 (2.31) Ví dụ 2 mục 2.2.2.4 b) cho thấy xác suất sai của bất đẳng thức trên trong trường hợp M= 07 và =0.0000006908 là 0.001. Cho nên xác định giá trị (k) th o công thức (2.28) ta có (k) (k) 3.1 vì vậy ta có: M AAF(k,107) (k) AAF(k) AAF(k,107)+ (k) (2.32) 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 (2.32) 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 2. ta có được kết quả , tuy nhiên để d quan sát hơn luận án đã thực hiện vẽ đồ thị của các hàm AAF(k, 07) (k), ký hiệu là AAF- , 7 AAF(k,10 )+ (k), được ký hiệu là AAF +, log2(k) và log2(k)+1 trong hình 2.1. Như vậy, bất đẳng thức trên là đúng và kết quả đã được chứng minh. 7 7 Hình 2.1. ồ thị các hàm F(k,10 ) (k), AAF(k,10 )+ (k), log2(k) và log2(k)+1 trong khoảng [1, 4096]. 55 2.2.4. Ứng dụng của kết quả Trong 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, lũy thừa, nghịch đảo trong các thuật toán mật mã. Luận án đã xây dựng đượ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 khi thực hiện trên phần cứng, hay 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à cơ sở để đá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ã nhằm lựa chọn thuật toán mật mã hiệu quả nhất cho bài toán cụ thể. 2.3. Thực hiện thuật toán nh n i m trên ph n cứng FPGA 2.3.1. Phương pháp thiết kế chung Phương há thiết kế Mô hình phân lớp thiết kế được chỉ ra trong Hình 2.2. Quá trình thực hiện cài đặt thuật toán nhân điểm được thực hiện trên phần cứng FPGA (mức , mức 2, mức ) với chíp XC7Z045-2FFG900C của Xilinx G AO C AO ĐỔ K ÓA C O BẢO MẬ ỐNG M NG Mức 5 ĐA DỊC Ụ ( ử dụng ECD và ECD A) Mức 4 ECDH + ECDSA ( ử dụng phép nhân đi m k ) C N TRÊN N C NG FPGAs Mức 3 P N N ÂN Đ M kP Mức 2 P NH I Đ M TRÊN Đ NG CONG ELLIPTIC (c P n g N đ i C Ơm : P +TRQÊ,N n h â n đNôGi : 2U.P ) N (c ng/t , nhân, chia/ngh ch đ o l n trên t ư ng GF(2^m)) P N CƠ ÊN NG U N Mức 1 m (c ng/t , nhân, chia/ngh ch đ o l n t ên GF(2 ) Hình 2.2. ô hình hân lớ thiết kế trên kit hát tri n Z 706 của Xilinx 56 Toàn bộ phần hoạt động của giao thức như thủ tục bắt tay, kiểm tra xác thực và điều khiển giao tiếp vào ra dữ liệu của ứng dụng sẽ được thực hiện trên bộ xử lý nhúng A M Cort x A9 của kit phát triển ZC70 của Xilinx. 2.3.2. Lựa chọn ường cong elliptic Trong rất nhiều các đường cong elliptic, không phải đường cong nào cũng có tính chất mật mã tốt. Trong nội dung luận án, đường cong lliptic trên trường GF(2n) th o khuyến nghị của NI T [48] được lựa chọn với các tham số như sau: n - Tham số cho đường cong trên GF( ). 283 12 7 5 - a thức bất khả quy F( x ) x x x x 1 (2.33) - i m cơ sở P(,) xPP y trong đó Tọa độ điểm P: XP =503213f78ca44883f1a3b8162f188e553cd265f23c1567a16876913b0c2ac2458492836 YP 1ccda380f1c9e318d90f95d07e5426fe87e45c0e8184698e45962364e34116177dd2259 - Bậc của đi m P (là số nguyên tố) n = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603873 ồng thừa số (cofactor) h 4. Giá trị k: k = 3F00000FFFFFFFF800003800F8000E0000E000000FFFFFFE00000FFFFFFC0007E000000 2.3.3. Mô hình cứng h a thuật toán nh n i m 2.3.3.1. Module cứng h a phép nhân điểm elliptic trên FPGA Thực tế việc mô tả về lý thuyết, các cải tiến nhằm tăng tốc độ, hiệu năng thực hiện và thực hiện trên phần cứng cho phép nhân điểm đã được nhiều tác giả công bố, tuy nhiên phương pháp thực hiện cụ thể hầu như không được các tác giả trình bày. Trong phần này, luận án sẽ xây dựng mô hình thực hiện cứng hóa phép nhân điểm elliptic, mô hình này có thể áp dụng cho cả 3 thuật toán 2.1, 2.3, 2.4 được nêu ở trên và luận án sẽ thực hiện mô phỏng 57 với cả 3 thuật toán để so sánh đánh giá kết quả thực tế. Mô hình thực hiện cứng hóa phép nhân điểm như trên Hình 2.3, ta thấy modul cứng hóa cần sử dụng các modul cộng điểm lliptic, modul nhân đôi trên trường GF(2m). Trong phần tiếp theo luận án sẽ giới thiệu phương pháp cứng hóa các modul cộng điểm và modul nhân đôi trên trường GF(2m). X Y P P 0 0 K+ carry_reg Y P 0 (K+ carry)/2 1 0 N X X Y e P Q Q Y x 0 t P _ 0 k _ t p C ng Đi m Initial: K N e w p _ Y N X X Y - Y P P e Y P P Q 0 0 w P _ X ạo c t ạng thái Q 1 0 1 0 1 0 Y P 0 0 1 1 0 X P 0 N N E E X X T T _ _ X Y Q Q Nhân Đôi N N e e w w 0 _ _ Y Thanh ghi XQ, YQ X P P 0 Thanh ghi XP0, YP0 Q N N _ e e i Initial: Xp, Yp n x x t f t i _ _ n X Y i t Q Q y Hình 2.3. Sơ đồ thực hiện cứng hóa h nhân đi m elliptic. K(282:0) done Xp(282:0) Nhân đi m Yp(282:0) Xq(282:0) clk reset start Yp(282:0) Hình 2.4. Giao diện module cứng hóa h nhân đi m trên FPGA. 58 Giao diện của module cứng hóa thuật toán mật mã lliptic gồm các cổng sau: - Mầm khóa vào ngẫu nhiên vào: k kích thước 28 -bít. - Tọa độ điểm bí mật P: xP,yP có kích thước 28 -bít. - Tọa độ điểm Q (kết quả h nhân): xQ, yQ có kích thước 28 -bít. - Tín hiệu xung nhịp và r s t: clk, reset kích thước -bít. - Tín hiệu điều khiển quá trình tính toán: start kích thước -bít. Bắt đầu mã hóa mức ‘ ’, dừng quá trình mã hóa mức ‘0’. - Tín hiệu báo trạng thái: done kích thước -bít. Tính xong mức ‘ ’, chưa tính xong mức ‘0’. 2.3.3.2. Nguyên lý hoạt động của module Các giá trị khởi tạo ban đầu của modul nhân điểm lliptic: start ‘0’, reset ‘0’. Các tín hiệu trạng thái lúc ban đầu có giá trị: done ‘0’. Để thực hiện tính toán nhân điểm lliptic ta phải r s t lại toàn bộ modul phần cứng. Quá trình thực hiện bằng cách nâng tín hiệu r s t lên ‘ ’ sau đó hạ về ‘0’. Từ thời điểm này ta có thể bắt đầu quá trình tính toán phép nhân điểm lliptic. Trước hết cần ghi các tham số để tính toán k∙P bao gồm: Mầm ngẫu nhiên k, tọa độ xP, yP của điểm cơ sở P. Các tham số này được ghi vào thanh ghi đệm ở cổng k, xP, yP của modul . Tiếp theo là quá trình điều khiển tính toán phép nhân điểm lliptic bằng cách nâng tín hiệu start lên ‘ ’, quá trình tính toán phép nhân điểm bắt đầu. Khi tín hiệu trạng thái đầu ra done là mức ‘ ’ tức là quá trình tính toán phép nhân điểm k.P đã hoàn thành và cho giá trị kết quả ở cổng xQ và yQ. Để thực hiện tính toán phép nhân điểm lần tiếp th o ta thực hiện chuyển tín hiệu start xuống ‘0’, ghi các tham số mới vào cổng k, xP, yP và lắp lại quá trình như phần trên. 2.3.3.3. Thi t k cứng h a phép cộng điểm elliptic trên FPGA Phép cộng điểm lliptic được định ngh a trong [19] khi đó tọa độ điểm 59 RPQ được xác định theo (1.1) như sau: ; với Y1 Y2 X1 X2 + + Start_divide yy12 Divide_done mod F(x) xx12 xx12 nh Phương ( 2 ) 2 + x3 X1 + Start_mul Mul_done ()xx13 Mod F(x) x3 Y1 + y3 Hình 2.5. Sơ đồ thực hiện cứng hóa h cộng đi m elli tic. X1(282:0) X3(282:0) X2(282:0) Y1(282:0) C ng đi m Y2(282:0) done clk 2 x3 xr 1es et x 2 1 start Y3(282:0) yy12 y3 () x 1 x 3 x 3 y 1 Hình 2.6. Giao diện module thực hiện h cộng đixx 12m elli tic trên FPG . Giao diện mức trên của module cứng hóa phép cộng điểm lliptic gồm: - Tọa độ điểm P(x1,y1), Q(x2,y2): có kích thước 283-bít. 60 - Tọa độ điểm22 R (kết quả h b cộng đi m): x3, y3 có kích thước 283-bít. x31 a x 2 - Tín hiệu xung nhịp và r s t xmodul1 cộng điểm: reset, clk kích thước -bít. - Tín hiệu điều2 khiển quá trình tính toán moduly1 cộng điểm: start kích thước y3 x 1 x 3 x 3 x1 1-bít. Bắt đầu tính toán mức ‘ ’, dừng quáx1 trình tính toán mức ‘0’. - Tín hiệu báo trạng thái modul cộng điểm: done kích thước -bít. Tính xong mức ‘ ’, chưa tính xong mức ‘0’. 2.3.3.4. Thi t k cứng h a phép nhân đôi điểm elliptic trên FPGA Mô tả module cứng hóa h nhân đôi elli tic. Phép nhân đôi điểm lliptic được định ngh a trong [19] với tọa độ điểm RQ 2. được xác định theo (1.2) như sau: ; với X1 nh Phương b Y1 2 x1 Start_divide Divide_done b 2 y1 Divide_done x1 mod F(x) 2 mod F(x) Start_divide x1 x1 xx12 + x3 Start_mul Mul_done * x3 Mod F(x) * x3 2 x1 + x3 y3 Hình 2.7. Sơ đồ thực hiện cứng hóa h nhân đôi đi m elli tic. 61 X1(282:0) X3(282:0) Y1(282:0) Nhân đôi clk done reset start Y3(282:0) Hình 2.8. Giao diện module thực hiện h nhân đôi đi m elli tic trên FPG . Giao diện mức trên của cor cứng hóa phép cộng điểm lliptic gồm: - Tọa độ điểm P(x1,y1), Q(x2,y2): có kích thước 28 -bít. - Tọa độ điểm (kết quả h cộng đi m): x3, y3có kích thước 28 -bít. - Tín hiệu xung nhịp và r s t modul cộng điểm: reset, clk kích thước -bít. - Tín hiệu điều khiển quá trình tính toán modul cộng điểm: start kích thước 1-bít. Bắt đầu tính toán mức ‘ ’, dừng quá trình tính toán mức ‘0’. - Tín hiệu báo trạng thái modul cộng điểm: done kích thước -bít. Tính xong mức ‘ ’, chưa tính xong mức ‘0’. 2.3.3.5. Thi t k cứng h a các module tính toán cơ s trên trường GF(2m) Như Hình 2.5, Hình 2.7 ta thấy để thực hiện phép cộng điểm, phép nhân đôi điểm lliptic trên FPGA cần thực hiện một số modul cơ sở sau: phép cộng modulo 2, phép nhân, phép bình phương, phép chia/nghịch đảo trên trường GF(2m). au đây luận án sẽ trình bày chi tiết giải pháp cứng hóa các phép tính cơ sở trên trường GF(2m). a) Ph cộng trong GF(2m ) Phép cộng trên là phép toán đơn giản nhất, thực chất là phép cộng lật bit tương tự như phép XO trong phần mềm hoặc phần cứng. m-1 C A + B (mod α) (am-1 bm-1) α + + (a1 b1) α + (a0 b0) (2.34) Thuật toán 2.6: Phép cộng trong GF(2m) Input: 2 đa thức A(x), B(x) có bậc m-1 62 Output: C(x) = A(x) + B(x) 1. for i 0, m-1 do 2. C[i] A[i] B[i] 3. end for 4. return C b) odule thực hiện h nhân trên trường GF(2m). Để thực hiện cứng hóa phép nhân đa thức trên trường GF(2m) cần thực hiện các thuật toán sao cho quá trình nhân chỉ sử dụng các phần tử cơ bản trong phần cứng là AND, XO tương ứng với các phần tử cơ bản trong FPGA là CLBs và LUTs. Trong nội dung luận án sẽ thực hiện cứng hóa phép nhân th o phương pháp nhân đan x n (Interleaved Multiplication) [33], [34] Nhân đan x n là một thuật toán hiệu quả, d thực hiện trong phần cứng Thuật toán sử dụng phép dịch bit và cộng modulo 2 là các thành tố cơ bản, kết hợp với bước tính modulo lặp. Phương pháp thực hiện như sau: mm 11 ii Cx() AxBx ()()mod() Fx Ax ()( bxii )mod() Fx bAxx () mod() Fx ii 00 Vì vậy sau khi khai triển biểu thức nhân trong ngoặc ta được kết quả C(x) như sau: Cx() bAx () bAxxbAxx () ()21 .... bAxx ()m mod() Fx 0 1 2m 1 (2.35) X
File đính kèm:
- luan_an_nghien_cuu_giai_phap_nang_cao_hieu_qua_bao_mat_thong.pdf