Chiến lược thiết kế các thuật tốn mã hóa trên FPGA

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu về mã khối hạng nhẹ ứng dụng cho các mạng cảm biến không dây (Trang 39)

2.1 .Mật mã khối

2.3. Chiến lược thiết kế các thuật tốn mã hóa trên FPGA

Chiến lược thiết kế luôn phụ thuộc cho từng ứng dụng, có ứng dụng địi hỏi có giới hạn về thời gian, một số ứng dụng khác đòi hỏi về tốc độ, giá cả, độ an toàn, … Đặc biệt có ứng dụng cần sự tổ hợp hài hịa của nhiều yếu tố.

Để đạt được tốc độ nhanh khi triển khai thực hiện các thuật tốn mã hóa trên FPGA, yêu cầu đặt ra là cần có sự nghiên cứu sâu ở mỗi giai đoạn thiết kế.

30

Trong phần này sẽ mô tả 2 cấu trúc thường được sử dụng để thực hiện các thuật tốn mã hóa.

a. Cấu trúc lặp cơ sở

Với cấu trúc lặp cơ sở (IL-Iterative Looping) chỉ thiết kế một vòng và thuật toán mật mã khối được thực hiện lặp lại n chu kỳ (hình 2.13a). Việc thiết kế theo cấu trúc này sẽ có chi phí về tài ngun nhỏ hơn nhưng lại tiêu thụ nhiều xung nhịp thời gian hơn và có tốc độ mã hóa/giải mã thấp.

b. Cấu trúc vòng mở rộng

Cấu trúc vòng mở rộng (LU - Loop Unrolling) hay gọi kiểu đường ống (PP-pipeline), các vịng được tái tạo lại (hình 2.13b). Thiết kế này có tốc độ cao hơn nhưng chi phí về tài nguyên nhiều hơn.

Cả hai cấu trúc IL và cấu trúc PP đều được tối ưu hóa để thực hiện các thuật tốn mật mã khóa bí mật.

Hình 0.6 Cấu trúc thiết kế mật mã khối trên FPGA

(a) Cấu trúc vòng lặp cơ sở, (b) Cấu trúc vịng lặp tồn phần (PP) 2.4. Các thông số và mơ hình đánh giá

2.4.1. Thơng lượng

31

Thông lượng (Throughput) là yếu tố quan trọng để tính tốn hiệu suất định giờ của các thiết kế. Thông lượng được xác định theo công thức:

Thông lượng = Tần số × Số bit

số chu kỳ (bit/s) (2.1)

Thơng lượng càng lớn thì hiệu quả của thuật tốn càng cao.

2.4.2. Tài ngun

Thơng thường chi phí về tài nguyên (Resource) của mỗi thiết kế được xác định thơng qua các chi phí theo một trong các thơng số sau: số lượng slices; số lượng flip flop; số CLB (Configurable Logic Block); số lượng LUT (LUT: Look-Up Table); số lượng IOB (Input/Output Block); số lượng Block Select RAMs (BRAMs). Sự so sánh lý tưởng sẽ là so sánh về toàn bộ các nguồn tài nguyên trên và cùng được thiết kế trên các dòng thiết bị FPGA tương tự.

Người ta cho rằng thiết kế có tốc độ nhanh nhất là thiết kế mà có được tốc độ cao nhất (chỉ quan tâm đến lưu lượng thơng tin) dù cho đó là loại thiết bị nào đã được dùng để triển khai thiết kế. Tuy nhiên để đánh giá 1 thiết kế là hiệu quả (thiết kế được tối ưu hóa cho tài ngun phần cứng) thì cần sử dụng thơng số chi phí về tài nguyên.

Sự so sánh giữa hai thiết kế hiệu quả chỉ có thể có được nếu so sánh giữa những thiết bị giống nhau.

Như vậy, cả tài nguyên và thông lượng đều giúp đánh giá hiệu quả của các thiết kế. Tuy nhiên, nhằm quyết định việc một thiết kế nào đó là hiệu quả hay không, cần xem xét thêm một số yếu tố khác như: Thông lượng/Tài nguyên, thông lượng/(tài nguyên * tần số). Sau đây sẽ mơ tả thêm về 2 mơ hình đánh giá hiệu quả này.

2.4.3. Mơ hình đánh giá hiệu quả tích hợp

2.4.3.1. Mơ hình 1

Đây là mơ hình thường được sử dụng để xem xét hiệu quả thực hiện của thuật toán trên FPGA. Mơ hình này được đánh giá qua tỷ số giữa 2 thơng số mơ tả trên. Cơng thức tính:

32

𝑰𝑬 = 𝑻

𝑹

trong đó T: Thơng lượng được tính theo cơng thức (2.1); R: chi phí về tài nguyên được xác định như mô tả trên; IE là hiệu quả thực hiện của thiết kế.

2.4.3.2. Mơ hình đánh giá 2

Đây là mơ hình đánh giá hiệu quả tích hợp được sử dụng trong trường hợp tích hợp nhiều chức năng khác nhau trên cùng một chip. Cơng thức tính:

𝐼𝐸 = 𝑻

𝑹 ×𝑭

trong đó T: Thơng lượng được tính theo cơng thức (2.1); R: chi phí về tài nguyên được xác định như mô tả trên; F là tần số; IE là hiệu quả thực hiện của thiết kế. Thông thường S sử dụng đơn vị đo là Mb/s, R được tính thơng qua số lượng CLB, cịn tần số F sử dụng đơn vị đo là GHz

2.5. Đánh giá độ an tồn của thuật tốn

2.5.1. Đánh giá độ an toàn theo đặc trưng vi sai

Theo một số tài liệu, [1-4] đặc trưng vi sai là một trong các phương pháp đánh giá độ an tồn của thuật tốn mã hóa hiện đại nhằm chống lại giải pháp thám mã lượng sai.

Đặc trưng vi sai của mỗi thuật toán phụ thuộc vào các phép biến đổi sử dụng trong thuật toán. Với các toán tử điều khiển được mở rộng, đặc trưng vi sai sẽ phụ thuộc vào cấu trúc xây dựng, sự phân bổ các bit điều khiển và đặc trưng vi sai của phần tử điều khiển được sử dụng trong cấu trúc đó.

Các đặc trưng vi sai và tuyến tính với số bit hoạt động ít hơn sẽ có xác xuất cao hơn so với số lượng bit hoạt động lớn hơn.

Ngoài ra, theo các thuật tốn mã khối được phát triển dựa trên DDO thì thám mã tuyến tính kém hiệu quả hơn thám mã lượng sai. Do đó luận án khơng tiến hành thám mã tuyến tính đối với các thuật tốn phát triển.

33

Theo NESSIE, các đặc trưng thống kê của thuật toán mật mã khối cần được đánh giá theo các tiêu chuẩn sau:

Tiêu chuẩn 1. Số lượng trung bình các bit đầu ra thay đổi khi thay đổi

một bit đầu vào (kí hiệu dl).

Tiêu chuẩn 2. Mức độ biến đổi hồn tồn (kí hiệu dc). Tiêu chuẩn 3. Mức độ của hiệu ứng thác lũ (kí hiệu da).

Tiêu chuẩn 4. Mức độ phù hợp về hiệu ứng thác lũ chặt (kí hiệu dsa).

Đồng thời, với mã khối xây dựng trên cơ sở CSPN thì vấn đề quan trọng nhất là phải đánh giá được sự ảnh hưởng của bit khóa và bit dữ liệu đầu vào đến sự biến đổi bit dữ liệu ở đầu ra.

Để rõ hơn về các tiêu chuẩn, sử dụng cơng cụ tốn học minh họa cho các đặc trưng thống kê trên.

Kí hiệu: u = (u1, u2, …, un) {0,1}n là một véc tơ nhị phân, kí hiệu u(i) {0,1}n là véc tơ nhị phân nhận được bằng cách đảo ngược bit thứ i của u (với

i = 1.. n).

Khi đó véc tơ nhị phân y = f(u(i)) Å f(u) được gọi là véc tơ thác lũ theo thành phần i.

Trọng số Hamming của véc tơ u (kí hiệu w(u)) được xác định là số lượng

các thành phần khác không của u.

Hàm f: {0,1}n{0,1}m là hàm biến đổi n bit đầu vào thành m bit đầu ra. Hàm này được coi là có mức độ biến đổi hồn tồn tốt, nếu mỗi bit đầu ra đều phụ thuộc mỗi bit đầu vào, tức là:

i = 1, 2, …, n j = 1, 2, …, m u {0,1}n với (f(u(i)))j  (f(u))j.

Hàm f: {0,1}n{0,1}m được coi là có hiệu ứng thác lũ tốt, nếu trung

bình có ½ số bit đầu ra thay đổi mỗi khi có một bit đầu vào thay đổi, tức là:

2 )) ( ) ( ( 2 1 } 1 , 0 { ) ( m u f u f w n u i n     với i = 1.. n.

34

Hàm f: {0,1}n{0,1}m phù hợp theo tiêu chuẩn thác lũ chặt, nếu mỗi bit đầu ra thay đổi với xác suất bằng1/2 mỗi khi có một bit đầu vào thay đổi, tức là:

i = 1 .. n và j = 1.. m: Pr((f(u(i)))j  (f(u))j) = ½.

Ma trận phụ thuộc của hàm f: {0,1}n{0,1}m là ma trận A bậc n  m của

các phần tử aij, nó thể hiện sự phụ thuộc của bit thứ j của véc tơ đầu ra vào bit thứ i của véc tơ đầu vào, nói cách khác nếu bit đầu vào thứ i thay đổi, kết quả sẽ làm thay đổi bit thứ j đầu ra, tức là:

aij = u{0,1}n| (f(u(i))j ≠ f(u))j)} vớii = 1..n và j = 1..m.

Ma trận khoảng cách của hàm f: {0,1}n{0,1}m là ma trận B bậc n  (m

+ 1) của các phần tử bij, bij là trọng số của véctơ thác lũ, tức là:

bij = u{0,1}n|w(f(u(i)) – f(u)) = j }với i = 1..n;j = 1..m.

Với U là tập con của{0,1}n được chọn một cách ngẫu nhiên thì:

aij = uU j j i u f u f( ) ( )) ( ()  vớii = 1..n và j = 1..m.

bij = uU w(f(u(i)) f(u))  jvới i = 1..n và j = 1..m.

Để đánh giá sự ảnh hưởng của khoá và dữ liệu đầu vào tới sự biến đổi của dữ liệu ở đầu ra, xét: U = X || K (X - bản rõ, K – khoá). Trong trường hợp xét ảnh hưởng của dữ liệu đầu vào tới sự biến đổi của dữ liệu đầu ra:

aij = X j j i K X f K X f( , )) ( , )) ( ()  với i = 1..n và j = 1..m.

bij = X w(f(X(i),Kf(X,K))  j với i = 1..n và j = 1..m.

Cịn trường hợp cần xét ảnh hưởng của khố tới sự biến đổi của dữ liệu đầu ra sử dụng cách tính sau: aij = X j j i K X f K X f( , )) ( , )) ( ()   với i = 1..n và j = 1.. m. bij = X w(f(X,K(i))Å f(X,K))  j với i = 1..n và j = 1..m.

35

Việc xét sự ảnh hưởng của khóa tới sự biên đổi đầu ra rất có ý nghĩa trong trường hợp thuật toán chỉ sử dụng lịch biểu khóa đơn giản mà khơng sử dụng phép biến đổi khóa phức tạp.

Trong các khái niệm trên thì, ma trận phụ thuộc được sử dụng để đánh giá các đặc trưng thống kê theo tiêu chuẩn 2 và 4, còn ma trận khoảng cách được sử dụng để đánh giá các đặc trưng thống kê theo tiêu chuẩn 1 và 3. Các cơng thức tính các tiêu chuẩn trên xem phụ lục D.

Theo quy định của NESSIE, hàm f được coi là có các đặc tính biến đổi tốt khi các điều kiện sau xảy ra: dc = 1, da  1, dsa  1 và d1  ½ n.

2.6. Tiểu luận chương 2

Nội dung chính của chương 2 đã trình bày các khái niệm về nguyên lý thiết kế thuật tốn mã hóa khối. Đưa ra các định nghĩa về các nguyên ly thiết kế, chiến lược thiết kế, các thơng số và mơ hình đánh giá, cũng như đánh giá độ an tồn cua thuật tốn. Đây là cơ sở để thiết kế và cài đặt các thuật toán về mã hóa khối được đưa ra trong chương 3 của luận văn.

36

CHƯƠNG 3: CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ

Trên cơ sở các nghiên cứu ở chương 2, trong chương này luận văn của em lựa chọn thuật tốn Crypt(BM)_64A, để thiết kế mơ phỏng minh họa và cài đặt thử nghiệm một thuật tốn mã hóa hạng nhẹ được phát triển với mục tiêu hướng đến nhằm ứng dụng cho các mạng cảm biết không dây. Đồng thời thử nghiệm cũng tiến hành so sánh với hai thuật tốn khác (RC6, RIJNDEAL) để đưa ra tính hiệu quả của thuật tốn nghiên cứu trong luận văn.

3.1. Mơ tả thuật tốn

Crypt(BM)_64A là thuật tốn được phát triển bởi nhóm tác giả Đỗ Thị Bắc và Nguyễn Hiếu Minh [5-7]. Đây là thuật toán được thiết kế nhằm hướng tới sử dụng trong các mạng cảm biến không dây với nhiều ưu thế đa được cơng bố trước đó về độ an tồn và khả năng thay đổi khóa phiên thường xuyên.

Crypt(BM)_64A được thiết kế theo mơ hình song song trong vịng mã hóa cơ sở và CSPN được thiết kế theo phương pháp đồng nhất. Crypt(BM)_64A có độ dài khối là 64 bit, với 10 vịng biến đổi và khóa có độ dài là 128 bit hoặc 192 bit hoặc 256 bit. Crypt(BM)_64A được xây dựng trên cơ sở phần tử nguyên thủy Q2/1. Sơ đồ một vịng mã hóa cơ sở của Crypt(BM)_64A như hình 3.1a. Quá trình thiết kế CSPN sử dụng trong thuật tốn được mơ tả như sau: Q2/1

Q4/4  Q16/32. Chi tiết thiết kế các phần tử trong thuật tốn được mơ tả trong hình 3.1.

Quá trình thực hiện của thuật tốn được mơ tả như sau:

Thuật toán Crypt(BM)_64A

1. 64 bit dữ liệu vào được chia thành 2 khối A và B, mỗi khối có kích thước 32 bit

2. For j = 1 to 9 do {(A, B)  Crypt(e)(A, B, Qj,Uj); (A, B)  (B, A)} 3. {(A, B)  Crypt(e)(A, B, Q10,U10)}

37 I 16 16 32 Qj A 32 I E Q16 / 32 Q16/ 32-1 32 32 32 Uj B 32 32 S4 x 4 (4) P P I1 I1 Q 16/ 32 -1 S4 x 4-1 (4) E Q16/ 32 32 32 32 32 32 a) 16 16 Q16 / 32 Q 16/ 32 -1 Q2/1 Q2/1 Q2/1 Q2/1 V1 V2 V2 V1 b) Q 4/4 Q4/4 Q4/4 Q4/4 V1 V2 V4 V3 V Q 4/4 Q4/4 Q4/4 Q4/4 V3 V4 2 V1 16 16 c )

Hình 3.1 Sơ đồ thiết kế của thuật tốn Crypt(BM)_64A

a)Vịng mã hóa cơ sở, b) Q4/4 và Q-14/4, c) Q16/32 và F-116/32

38 I = (1) (2, 9) (3, 17) (4, 25) (5) (6, 13) (7, 21) (8, 29) (9,2) (10) (11, 18) (12, 26) (13, 6) (14) (15, 22) (16, 30) (17,3) (18,11) (19) (20, 27) (21, 7) (22,15) (23) (24, 31) (25,4) (26, 12) (27, 20) (28) (29,8) (30, 16) (31, 24) (32); I1 = (1,9) (2,13) (3,10) (4,14) (5,11) (6,15) (7,12) (8,16) (9,1) (10, 3) (11,5) (12,7) (13,2) (14, 4) (15,6) (16, 8); P = (1) (2,5) (3,9) (4,13) (5, 2) (6) (7,10) (8,14) (9, 3) (10, 7) (11) (12,15 (13, 4) (15, 12) (16).

-Khối mở rộng E được xây dựng như sau: E(X) = (X, X<<<8).

Khóa vịng Uj/Qj (mã hóa) hoặc Q′j/U′j (giải mã) được lựa chọn từ các

khóa con Ki và được liệt kê trong bảng 3.2.

Vòng 1 2 3 4 5 6 7 8 9 10 FT=11 Khóa 128 bit Qj/Uj K1/K3 K2/K3 K3/K2 K4/K1 K4/K2 K1/K3 K4/K3 K1/K2 K2/K4 K4/K1 K1/K3 Q'j/U'j K1/K3 K4/K1 K2/K4 K1/K2 K4/K3 K1/K3 K4/K2 K4/K1 K3/K2 K2/K3 K1/K3 Khóa 192 bit Qj/Uj K1/K3 K2/K4 K5/K6 K2/K1 K4/K6 K5/K3 K2/K3 K1/K3 K3/K2 K6/K5 K1/K3 Q'j/U'j K1/K3 K6/K5 K3/K2 K1/K3 K2/K3 K5/K3 K4/K6 K2/K1 K5/K6 K2/K4 K1/K3 Khóa 256 bit Qj/Uj K1/K3 K2/K4 K5/K8 K7/K6 K4/K2 K2/K8 K6/K5 K1/K3 K3/K7 K7/K4 K1/K3 Q'j/U'j K1/K3 K7/K4 K3/K7 K1/K3 K6/K5 K2/K8 K4/K2 K7/K6 K5/K8 K2/K4 K1/K3

Bảng 4. Lược đồ khóa sử dụng trong Crypt(BM)_64A

3.2. Thiết kế của thuật toán Crypt(BM)_64A trên FPGA CHIP Virtex6-XC6VLX75T/FF484 XC6VLX75T/FF484

FPGA là một loại mạch tích hợp cỡ lớn dùng cấu trúc mảng phần tử logic để người dùng có thể lập trình được. Trong cơng đoạn thiết kế để tối ưu hóa các mục tiêu, giảm chi chi phí, rút ngắn thời gian đưa sản phẩm vào sử dụng các nhà thiết kế ứng dụng chọn giải pháp dùng FPGA, còn nếu so sánh với các dạng khác như PLA, PAL, CPLD thì FPGA ưu việt hơn bỏi các yếu tố sau: tác vụ tái lập trình của FPGA thực hiện đơn giản hơn; khả năng lập trình linh động

39

hơn; và khác biệt quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn cổng logic (logic gate), so với các vi mạch bán dẫn lập trình được. Thiết kế trên FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phầncứng HDL như VHDL, Verilog, AHDL.

Các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys, Synplify... Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL

Để có các kết quả thảo luận cụ thể, nghiên cứu đã được triển khai thực hiện trên môi trường phần cứng và phần mềm cụ thể như sau: Hệ điều hành Windows 10 - 64 bit của máy tính DELL Vostro 3578 chip Core i5 – 8250U, ram 4G, ổ cứng 250G; Dòng chip FPGA được lựa chọn là Virtex-6 với số hiệu XC6VLX75T/FF484; Phần mềm mô phỏng phiên bản Xillinx 13.4; Ngôn ngữ lập trình VHDL Đây các phần mềm và phần cứng thông dụng được sử dụng phổ biến hiện nay.

3.2.1. Giới thiệu về chip Virtex®-6 FPGA:

Virtex®-6 là Kit được phát triển hướng đến sử dụng cho các ứng dụng địi hỏi băng thơng và hiệu suất cao. Nó được sử dụng trong nhiều phân khúc thị trường khác nhau tùy thuộc vào mục tiêu của nhà phát triển các ứng dụng trên đó. Bộ kết nối FPGA Virtex-6 cho phép thiết kế với các tiêu chuẩn nối tiếp phổ biến hoặc theo các tiêu chuẩn nối tiếp độc quyền thơng qua giao diện SMA. Virtex®-6 được cấu thành từ các bộ phận: các khối logic cơ bản lập trình được (logic block); Hệ thống mạch liên kết lập trình được; Khối vào/ra (IO Pads); Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý...Thông

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu về mã khối hạng nhẹ ứng dụng cho các mạng cảm biến không dây (Trang 39)

Tải bản đầy đủ (PDF)

(57 trang)