Mô hình tổ chức

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 71 - 126)

2.2.2.1. Thư viện thiết kế.

Khi ngƣời thiết kế viết mô tả các hoạt động VHDL thì phải ghi lại dạng các tệp thiết kế (design file), sau đó dùng một trình biên dịch để phân tích cú pháp của chúng và đƣa chúng vào thành lập một thƣ viện thiết kế (Design Library). Một số các cấu trúc của VHDL có thể đƣợc phân tích riêng rẽ để đƣa vào thƣ viện thiết kế. Các cấu trúc đó đƣợc gọi là các đơn vị thƣ viện (Library Units). Các đơn vị thƣ viện

chính (primary) bao gồm các mô tả đầu vào, các mô tả đóng gói thành phần chính

và các mô tả cấu hình. Các đơn vị thƣ viện phụ (secondary) bao gồm các thân chƣơng trình kiến trúc và các thân của các đóng gói thành phần chính. Các đơn vị thƣ viện đó phụ thuộc vào đặc điểm giao diện của chúng trong các đơn vị thƣ viện chính tƣơng ứng, vì đơn vị chính phải đƣợc phân tích trƣớc bất kỳ đơn vị phụ nào tƣơng ứng.

Các thƣ viện đƣợc tham chiếu để sử dụng các định danh đƣợc gọi là các tên

logic (logic name). Tên này phải đƣợc dịch bởi hệ điều hành chủ thành một tên lƣu

trữ hoạt động độc lập. Ví dụ, các thƣ viện thiết kế có thể hoạt động nhƣ các tệp cơ sở dữ liệu (database file), và tên logic phải đƣợc dùng để có thể xác định tên tệp cơ sở dữ liệu. Các đơn vị thƣ viện trong thƣ viện đã đƣợc cung cấp có thể tham chiếu đến thông qua hậu tố tên của chúng với tên logic thƣ viện.

Có hai loại thƣ viện đặc biệt hoàn toàn có thể sử dụng đƣợc cho tất cả các đơn vị thiết kế, và không cần đặt tên trong mệnh đề thƣ viện. Thƣ viện đầu tiên có tên là

work, nó tham chiếu thƣ viện thiết kế đang làm việc vào đơn vị thiết kế hiện tại sẽ

đƣợc đặt dành cho ngƣời phân tích. Sau khi đặt vào đơn vị thiết kế, các đơn vị thiết kế đƣợc phân tích trƣớc đó trong tệp thiết kế có thể tham chiếu để sử dụng tên thƣ viện có sẵn đó là work.

Thƣ viện đặc biệt thứ hai đƣợc gọi là std, và nó chứa các dạng đóng gói

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

chức năng. Tất cả các thành phần con trong các đóng gói đó đều có thể sử dụng đƣợc, và không cần sử dụng các mệnh đề để truy xuất chúng.

2.2.2.2. Các cấu hình.

Chúng ta đã đề cập đến một thành phần đã đƣợc khai báo có thể đƣợc coi nhƣ một mẫu cho một thực thể thiết kế. Sự ràng buộc của một thực thể tới mẫu này đạt đƣợc thông qua một mô tả cấu hình. Mô tả này có thể đƣợc sử dụng để chỉ định các hằng số chung trong thực tế cho các thành phần và khối. Nhƣ vậy mô tả cấu hình (configuration declaration) đóng vai trò chính trong việc tổ chức mô tả thiết kế khi chuẩn bị cho việc mô phỏng hoặc các xử lý khác.

2.3 Kết luận chƣơng.

Chƣơng này giới thiệu tổng quan về công nghệ FPGA, quá trình thiết kế cơ bản trên FPGA; giới thiệu cụ thể về FPGA của hãng ALTERA cùng các công cụ thiết kế hệ thống nhƣ EDA, Quartus II hay Max+Plus II và ngôn ngữ mô tả phần cứng VHDL: một ngôn ngữ đƣợc dùng để mô tả các hệ thống điện tử số với các ƣu điểm vƣợt trội so với các ngôn ngữ mô tả phần cứng khác. Phần cuối của luận văn sẽ trình bày cụ thể về phƣơng pháp thiết kế module mã khối trên FPGA.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG MÃ KHỐI

3.1. CẤU TRÚC CỦA MODULE MÃ KHỐI. 3.1.1. Cấu trúc chung. 3.1.1. Cấu trúc chung.

Nguyên lý thiết kế và cấu trúc của thuật toán mã khối đã đƣợc trình bày trong chƣơng 1 của luận văn. Trên cơ sở đó, cấu trúc của module mã khối đƣợc xây dựng nhƣ sơ đồ hình 3.1.

Hình 3.1: Cấu trúc chung của module mã khối.

Khóa mã

Dữ liệu vào Dữ liệu ra

Khối xử lý mã hóa/giải

mã dữ liệu

Điều khiển

Trong đó:

- Khối dữ liệu vào (ra) là bản tin rõ (mã) có độ dài M bít .

- Khối xử lý mã hoá/giải mã dữ liệu là khối đóng vai trò chức năng chính của modul mã khối, có nhiệm vụ mã hoá hay giải mã dữ liệu theo thuật toán mã khối đƣợc chọn lựa.

- Khoá mã độ dài K bít có nhiệm vụ kết hợp với các hàm toán học của thuật toán mã khối để thực hiện mã hoá hay giải mã khối dữ liệu.

- Khối điều khiển thực hiện nhiệm vụ điều khiển toàn bộ hoạt động của modul.

3.1.2. Một số yêu cầu đối với module mã khối.

Module mã khối dùng trong hệ truyền tin mật phải thoả mãn một số yêu cầu cơ bản sau:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Về mặt mật mã: Phải đảm bảo yêu cầu bảo mật, yêu cầu nghiệp vụ mật mã tuỳ theo các cấp độ mật khác nhau phụ thuộc vào nội dung thông tin cần bảo mật.

- Về mặt kỹ thuật công nghệ: Phải đảm bảo tốc độ mã hoá, tốc độ giải mã phù hợp với tốc độ luồng dữ liệu của hệ thống truyền tin.

- Về mặt hệ thống: Phải ghép nối đƣợc với các thiết bị truyền tin, đồng bộ giữa phần mã hoá và giải mã, hạn chế thấp nhất các khả năng gây lỗi cho toàn bộ hệ thống truyền tin mật

- Về mặt sử dụng: Có tính tiện dụng và chuyên dụng, có độ tin cậy cao trong khi hoạt động, linh hoạt trong quá trình xử lý, giá thành phù hợp, hiệu quả kinh tế cao.

3.2. LỰA CHỌN THUẬT TOÁN CHO MÔ PHỎNG THIẾT KẾ. 3.2.1. Lựa chọn thuật toán. 3.2.1. Lựa chọn thuật toán.

Việc lựa chọn thuật toán mã khối để mô phỏng thiết kế có ý nghĩa chứng minh về khả năng cũng nhƣ cách thức tiến hành khi thiết kế một hệ mã khối trên FPGA nên nó phải đáp ứng đƣợc các tiêu chí:

- Mang đầy đủ đặc trƣng cơ bản của cấu trúc Feistel.

- Đã đƣợc phổ biến rộng rãi và đƣợc kiểm chứng trên thực tế.

Trong số các thuật toán mã khối đã đƣợc công bố, thuật toán DES đã đáp ứng đƣợc hai tiêu chí trên, vì:

- DES có đầy đủ các đặc trƣng của cấu trúc Feistel nhƣ đã đƣợc trình bày trong mục 1.2.4 và trong đó một số cấu trúc biến đổi khác nhƣ các hộp nén, các phép hoán vị, các phép dịch vòng lại mang những đặc trƣng của cấu trúc cộng - nhân.

- DES đã đƣợc thừa nhận là chuẩn mật mã của Mỹ từ cuối những năm 1970, đã đƣợc sử dụng rộng rãi trên thế giới.

3.2.2. Mô tả thuật toán DES.

Thuật toán DES [1],[7] thực hiện mã hoá bản rõ X có độ dài 64 bits với khoá mã

K có độ dài 56 bít, cho bản mã là một xâu bít Y có độ dài 64 bits.

Thuật toán DES hoạt động ở 4 chế độ: ECB, CBC, CFB, OFB trong đó, chế độ ECB là chế độ hoạt động tiêu biểu của mã khối và từ đây về sau thuật ngữ DES đƣợc hiểu là DES làm việc ở chế độ ECB.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Lƣợc đồ của thuật toán DES đƣợc mô tả trên hình 3.2. Thuật toán tiến hành theo 3 giai đoạn:

Giai đoạn 1. Với bản rõ cho trƣớc x, một xâu bít x0 sẽ đƣợc xây dựng bằng cách hoán vị các bít của x theo phép hoán vị cố định ban đầu IP. x0= IP(X) = L0R0, trong đó L0 gồm 32 bít đầu và R0 là 32 bít cuối.

Giai đoạn 2. Sau đó tính toán 16 lần lặp theo một hàm toán học xác định, tính LiRi, 1  i 16 theo quy tắc sau:

Li = Ri-1

Ri = Li-1 f(Ri-1,Ki)

trong đó  kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2). F là một hàm sẽ đƣợc mô tả ở sau, còn K1,K2, . . . ,K16 là các xâu bít độ dài 48 đƣợc tính nhƣ hàm của khoá K. (trên thực tế mỗi Ki là một phép chọn hoán vị bít trong K). K1, . . ., K16 sẽ tạo thành bảng khoá. Một vòng của phép mã hoá đƣợc mô tả trên hình 3.3.

Giai đoạn3. Áp dụng phép hoán vị FP cho xâu bit R16L16, ta thu đƣợc bản mờ y. Tức là y=FP (R16L16). Hãy chú ý thứ tự đã đảo của L16 và R16.

3.2.2.1. Hàm F trong thuật toán DES.

Hàm F: Có hai biến vào.

- Biến thứ nhất A là xâu bit độ dài 32.

- Biến thứ hai J là một xâu bit độ dài 48. Đầu ra của f là một xâu bit độ dài 32. a) Biến thứ nhất A đƣợc mở rộng thành một xâu bit độ dài 48 theo một hàm mở rộng cố định E. E(A) gồm 32 bớt của A (đƣợc hoán vị theo cách cố định) với 16 bit xuất hiện hai lần.

b) Tính E(A)  J và viết kết quả thành một chuỗi 8 xâu 6 bit

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3.2: Lược đồ của thuật toán DES

c) Bƣớc tiếp theo dùng 8 bảng S1, S2, ...,S8 (đƣợc gọi là các hộp thế S-BOX). Với mỗi Si là một bảng 416 cố định có các hàng là các số nguyên từ 0 đến 15. Với xâu bít có độ dài 6 (kí hiệu Bi = b1b2b3b4b5b6), ta tính Sj(Bj) nhƣ sau: Hai bít b1b6 xác định biểu diễn nhị phân của hàng r của Sj ( 0  r  3) và bốn bít (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Sj ( 0  c  15 ). Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dƣới dạng nhị phân là một xâu bít có độ dài 4 (bởi vậy, mỗi Sj có thể đƣợc coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 và một xâu bít có độ dài 4, còn đầu ra là một xâu bít có độ dài 4). Bằng cách tƣơng tự tính các Cj = Sj(Bj), 1  j  8.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn F Ki + Li Ri Li-1 Ri -1

Hình 3.3: Một vòng của DES.

J E E(A) + B1 B2 B3 B4 B5 B6 B7 B 8 S1 C1 C2 C3 C4 C5 C6 C7 C8 E(A) P S2 S3 S4 S5 S6 S7 S8 F(A,J) F(A,J)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

d) Xâu bít C = C1C2... C8 có độ dài 32 đƣợc hoán vị theo phép hoán vị cố định P. Xâu kết quả là P(C) đƣợc xác định là F(A,J).

Hàm F đƣợc mô tả trên hình 3.4. Chủ yếu nó gồm một phép thế (sử dụng hộp S- BOX ), tiếp sau đó là phép hoán vị P; 16 phép lặp của F sẽ tạo nên một hệ mật tích.

Phép hoán vị ban đầu IP

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

Bảng 3.1: Các tham số của phép hoán vị ban đầu IP.

Bảng này có nghĩa là bit thứ 58 của x là bit đầu tiên của IP(x); bit thứ 50 của x là bit thứ hai của IP(x), .v.v . . .

Phép hoán vị FP 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Bảng chọn E bit 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1

Bảng 3.3: Các tham số của hàm mở rộng E.

Hộp thế S-Box: S1 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 S2 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 S3 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 S5 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ố hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn S7 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 S8 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

Bảng 3.4: Tham số của các hộp S-Box.

Phép hoán vị P trong hàm F:

P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 32 27 3 9 19 13 30 6 22 11 4 25

Bảng 3.5: Các tham số của phép hoán vị P. 3.2.2.2. Lược đồ tạo khoá mã dịch.

Đây là phần mô tả việc tính toán bảng khoá từ khoá K. Trên thực tế, K là một xâu bít độ dài 64, trong đó 56 bít là khoá và 8 bít để kiểm tra tính chẵn lẻ nhằm phát hiện sai. Các bít ở các vị trí 8,16,24,32,40,48,56,64 đƣợc xác định sao cho mỗi byte chứa một số lẻ các số "1". Bởi vậy một sai sót đơn lẻ có thể phát hiện đƣợc trong mỗi nhóm 8 bít. Các bít kiểm tra bị bỏ qua trong quá trình tính toán bảng khoá.

a) Với một khoá K có độ dài 64 bít cho trƣớc, loại bỏ các bít kiểm tra tính chẵn lẻ và hoán vị các bít còn lại của K theo phép hoán vị cố định PC-1.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

b) Với i thay đổi từ 1 đến 16:

Ci = LSi(Ci-1) Di = LSi(Di-1)

Trong đó LSi là phép dịch vòng trái, phụ thuộc vào giá trị của i. Với i = 1,2,9 hoặc 16 thì dịch vòng sang trái 1 vị trí, còn các giá trị khác của i thì dịch vòng sang trái 2 vị trí. Hoán vị PC-1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4

Bảng 3.6: Các tham số của phép hoán vị PC-1.

Hoán vị PC-2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

Bảng 3.7: Các tham số của phép hoán vị PC-2.

Nhƣ đã nói ở trên, mỗi vòng sử dụng một khoá 48 bít gồm 48 bít nằm trong K. Phép giải mã đƣợc thực hiện nhờ dùng cùng thuật toán nhƣ phép mã nếu đầu vào là Y nhƣng dùng bảng khoá theo thứ tự ngƣợc lại K16,...K1. Đầu ra của thuật toán sẽ là bản rõ X.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn K PC-1 C0 D0 LS1 LS1 C1 D1 PC-2 K1 . . LS16 LS16 C16 D16 PC-2 K16

Hình 3.5: Sơ đồ tính khoá của thuật toán DES.

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 71 - 126)