Thông tin tài liệu
Sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức quan trọng. Các kết quả của khoa học mật mã ngày càng được triển khai trong nhiều lĩnh vực khác nhau của đời sống xã hội, trong đó phải kể đến rất nhiều ứng dụng dân sự, thương mại, quân sự… Các ứng ụng mã hoá thông tin cá nhân, trao đổi thông tin kinh doanh, thực hiện các giao dịch điện tử qua mạng…đã trở nên gần gũi và quen thuộc với mọi người. Nhất là trong lĩnh vực quân sự cần phải có độ bảo mật cao. Với sự phát triển của công nghệ hiện nay, các bộ xử lý có tốc độ và khả năng xử lý ngày càng cao, nhiều phương pháp mã hoá đã không còn đảm bảo độ an toàn cao, đòi hỏi cần phải có một phương pháp mã hoá mới có thể đảm bảo độ an toàn cho thông tin. Phương pháp mã hoá CRYPT(D_128) ra đời đã đáp ứng được phần nào độ an toàn mà các phương pháp mật mã trước còn hạn chế. Bên cạnh đó, các phương pháp thiết kế với trợ giúp đắc lực của máy tính dựa trên nền tảng công nghệ FPGA đã và đang tỏ rõ tính ưu việt của nó. Không những chúng đáp ứng được yêu cầu về mặt tích hợp, về tính bảo mật mà còn giúp giảm thiểu giá thành thiết kế và rút ngẵn thời gian thiết kế. Mặc dù ra đời từ cách đây hơn 2 thập kỷ, công nghệ FPGA ở nước ta vẫn còn là một lĩnh vực tương đối mới mẻ, đặc biệt là đối với các sinh viên. Vì thế tôi chọn đề tài: “Nghiên cứu và đánh giá hiệu quả tích hợp trên công nghệ FPGA thuật toán mật mã CRYPT(D-128)”. Nhệm vụ đặt ra của đề tài là: nghiên cứu về công nghệ FPGA, tìm hiểu về thuật toán mật mã CRYPT(D-128) và cài đặt thuật toán bằng ngôn ngữ mô tả phần cứng VHDL, sử dụng phần mềm tích hợp để mô phỏng 1 thực hiện của thuật toán khi tích hợp trên FPGA. Từ nhiệm vụ đặt ra đó đề tài chia làm 3 chương sau: ! "#$%&'()*+,-! ./)01"23456789$#! Trong quá trình làm đồ án tôi đã được các thầy giáo, đặc biệt thầy giúp đỡ trong việc tìm hiểu các kiến thức cần thiết cho đồ án, và phương pháp để hoàn thành đồ án; đồng thời cán bộ chỉ huy các cấp đã tạo điều kiện rất nhiều về mặt thời gian cho tôi thực hiện nhiêm vụ đồ án được giao. Tôi rất chân thành cảm ơn các thầy và cán bộ chỉ huy các cấp là những người đóng góp một phần rất lớn cho việc hoàn thành đồ án này của tôi. 2 M:: /::!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!. ;<=,;>?@ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A ! ! " #$ ! ! % !! ! &'() * +$ , ! - $ $.'/ &0 1 2 $ 3456" - 7 ! ! - 2 ! ! ! #* #2 8 # +2 #+ !!! ! # ;<=,BC;>?@DE,,;F+,-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!. 9 &'() #" ':8;!&'()+* #$<=>8? @&'()+ +$<A9B=>&'()+ /9 9 CD47 +# (! !! +# ++ CD47 ! 9 9 ! ++ #$ , 9E 9 CD47 " +F #GHI /('D / $DD 'H.J$ )2H7H/2#$ % & ' ( ) # #9 ! H.J + #$!! ! H.J 3 ##/9 8 E %! F* #+$ ! $IK'34L"5! 8MF ;<=,./E;G;HB/IJKLMNO@;,@!!!!!!!!!!!!PP # $ 34"5&'() FF # !! $ 34L"5* 1* ##N OP D $DH /+ , - . 1 BF;-/L;O?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!QA 4 ;<=,;>?@ !ổ8R1ề2ạ1ịRSế !!/2T6URVW2XYSZ[&'(4\2]1^RS7! Cấu trúc mạng hoán vị thay thế với 3 vòng mã hóa của một khối dữ liệu 16 bit đầu vào. Trong đó S-box là các hộp thay thế, P-box là các hộp hoán vị và K là các khóa vòng. Hình 1.1 Trong mã hóa sử dụng mạng hoán vị thay thế(substitution- permutation network SPN) là các bước biến đổi các khối dữ liệu dựa trên thuật toán mã hóa như AES hay Rijndael. Bản rõ, các khóa như là các đầu vào của mạng hoán vị thay thế sau khi áp dụng biến đối qua các vòng hay 5 các lớp của các S-box hay P-box đưa ra được các bản mã. Các S-box và các P-box chuyển đổi các khối của các bít đầu vào thành các bít đầu ra đó là các hoạt động của các lệnh chuyển đổi được thực hiện từ phần cứng như các phép xor hay các phép xoay giữa các bít. Khóa được đưa vào trong mỗi vòng thường nhận trong mỗi khóa vòng của lớp. Trong một vài thiết kế thì các S-box phụ thuộc vào các khóa. Các khối đầu vào của các S-box này là các khối của các khối đầu ra của các S-box khác, các bít đầu ra và các bít đầu vào của các S-box có thể giông nhau(về số lượng) hay có sự thay đổi, như các S-box của DES thì có 6 bít đầu vào nhưng chỉ có 4 bít đầu ra. Một S-box được thiết kế tốt thì khi thay đổi một bít đầu vào có thể làm thay đổi một nửa số luợng bít đầu ra và các bít ở đầu ra phụ thuộc các bít ở đầu vào. Một P-box là hoán vị của tất cả các bít, nó đưa tất cả các bít đầu ra của S-box của một vòng hóan vị các các bít đó và cung cấp cho các S-box ở vòng tiếp theo. Một P-box tốt có thuộc tính các bít đầu ra của S-box có khả năng được phân bố ở một số bít đầu vào của S-box. Tại mỗi vòng thì khóa vòng(lấy được từ khóa với một số hoạt động đơn giản ví dụ như dùng S-box và P-box)được kết hợp với một số phép toán đặc trưng như XOR. Một S-box hay một P-box đơn thuần không có hiệu quả mã hóa: một S-box có thể thông qua như một sự thay thế các khối trong khi P-box có thể coi như là một sự hoán vị của các khối. Tuy nhiên để thiết kế một mạng hoán vị thay thế tốt(SPN) các vòng lặp các S-box và các P-box phải thỏa mản sự xáo trộn và khuyếch tán. Lý do của sự khuyếch tán: nếu như thay đổi một bít của bản rõ sau đó đưa vào một S-box sẽ làm thay đổi một vài bít đầu ra, sau khi thay đổi 6 được phân phối bởi P-box giữa một vài S-box, kể từ đấy tất cả các đầu ra của S-box lại được thay đổi một vài bit.vv. thực hiện một vài vòng mồi bit sẽ thay đổi sau một thời gian kết thúc thì bản rõ được thay đổi hoàn toàn. Lý do của sự xáo trộn cũng giống với sự khuyếch tán sự thay đổi bit khóa của các khóa vòng mỗi sự thay đổi sẽ lan truyền qua tất cả các bít sự thay đổi bản mã rất phức tạp. Ngược lại nếu thay đổi một bit trong bản mã sẽ thay đổi khóa hoàn toàn. Hộp S là một hệ thống phi tuyến của hệ mật và là một yếu tố quan trọng quyết định độ mật của hệ. Cho đến nay vẩn chưa có các tiêu chuẩn chung đầy đủ để thiết kế hôp S. Trong thuật toán chúng ta đang nghiên cứu sử dụng các hộp S của thuật toán DES. Cấu trúc của các S-Box Mỗi S-box như một bộ biến đổi gồm 4 bảng biến đổi, mỗi bảng biến đổi 1 đầu vào 4 bit thành đầu ra cũng 4 bit (bảng 16 dòng). Đầu vào 4 bit chính là lấy từ các bit 2-5 của nhóm 6 bit. Các bit 1 và 6 sẽ dùng để xác định 1 trong 4 bảng biến đổi của S- box. Vì thế chúng được gọi là các bit điều khiển (CL và CR: left control và right control bit). Các thuộc tính của S-Box Các nguyên tắc thiết kế của 8 S-boxes được đưa vào lớp ‘Classified information’ ở Mỹ. NSA đã tiết lộ 3 thuộc tính của S-boxes, những thuộc tính này bảo đảm tính confusion & diffusion của thuật toán. 7 1. Các bít vào (input bit) luôn phụ thuộc không tuyến tính vào các bít ra (output bit). 2. Sửa đổi ở một bit vào làm thay đổi ít nhất là hai bit ra. 3. Khi một bit vào được giữ cố định và 5 bit con lại cho thay đổi thì S-boxes thể hiện một tính chất được gọi là ‘phân bố đồng nhất ‘ (uniform distribution): so sánh số lượng bit số 0 và 1 ở các đầu ra luôn ở mức cân bằng. !!/]1^RS7XYSZ[&'(4\((_`a$#b 6#c$d( „ tưởng chính việc xây dựng khối trong các hộp thay thế điều khiển được (CP) phân tầng là phần tử chuyển mạch cơ sở P 2/1 thực hiện điều chỉnh hoán đổi vị trí của 2 bit đầu vào. Việc biến đổi được điều chỉnh cơ sở được thực hiện với P 2/1 được mô tả bởi các hàm Boolean phi tuyến cụ thể (BFs) trong 3 biến: Trong đó là bit điều khiển. Việc chọn 2 hàm Boolean bằng nhau trong 3 biến f 1 và f 2 của các kiểu khác nhau, nó có thể lấy sự thay đổi của các hộp được điều chỉnh cơ sở F 2/1 (Hình 1.2). Các hàm f 1 , f 2 có thể được sử dụng khi đang cài đặt các hộp F 2/1 trong phần cứng. Các phần tử được điều chỉnh F 2/1 có thể lựa chọn như 2 sự thay thế tuyến tính khác nhau S 1 (nếu =0) và S 2 (nếu =1) với kích thước 2x2 (Hình 3.1c).Mối quan hệ giữa các biểu di‡n được đề cập của các phần tử được điều chỉnh được CEs đưa ra biểu di‡n bằng các công thức trong (Hình 1.2d). 8 Hình1. 2. Hộp cơ sở F 2/1 : (a) Trường hợp tổng quát; (b) Chi tiết; (c) Đại diện bởi cặp của hai thay thế 2x2; (d) Biểu thức mô tả mối quan hệ giữa đại diện b và c; (e) Hàm logic thay thế hộp P 2/1 ; (f) Sự khác nhau tương ứng với sai phân(vi phân) đặc trưng của phần tử F 2/1 . Các đầu ra của hộp S 1 có thể được mô tả bằng cập các BFs trong 2 biến: Các đầu ra của hộp S 2 có thể được mô tả tương ứng như sau: Các hàm f 1 (1) ,f 2 (1) , f 1 (2) ,f 2 (2) xác định cặp các hàm Boolean trong 3 biến, trong đó mô tả một số các phần tử được điều chỉnh như 1 tổng. Nếu =0 thì CE thực hiện sự thay thế hộp S 1 . Nếu =1 CE thực hiện thay thế hộp S 2 . Nói cách khác bít điều khiển xác định việc lựa chọn của phép thay thế cơ sở hiện tại (Sự thay đổi của F 2/1 là F 2/1 (0) hoặc F 2/1 (1) ). Các công thức được chỉ ra trong hình 3.1d mô tả việc lựa chọn sự thay đổi hiện tại trong 1 số dạng rõ ràng. Các công thức có thể được viết lại như sau: 9 Sử dụng một số cấu trúc mạng đã cho của hộp P n/m và việc thay thế các khối P 2/1 bởi các phần tử của các kiểu khác nhau F 2/1 , có thể thu được các thay đổi khác nhau của các hộp thực hiện được điều chỉnh F n/m thực hiện các biến đổi của các kiểu khác nhau, có nghĩa là, trong trường hợp tổng quát không bảo toàn trọng lượng của các vectơ nhị phân được biến đổi. Một hộp F n/m không đồng nhất có thể được soạn sử dụng các hộp F 2/1 cơ sở với một vài kiểu khác nhau ví dụ mỗi tầng hoạt động có thể duy nhất. Thông thường chúng ta xem xét các hộp F n/m với cấu trúc chuẩn mà được xây dựng nên sử dụng 2 kiểu của các phần tử được điều chỉnh mà biểu di‡n mối quan hệ đảo ngược của F 2/1 và F 2/1 -1 . Các hộp F n/m biểu di‡n các kiểu khác nhau của CSPNs được xây dựng nên sử dụng các CEs kích thước tối thiểu. Trong nhiều trường hợp, sử dụng phép toán F n/m trong đó việc mã hoá hàm ý sử dụng hàm nghịch đảo của nó F n/m -1 . Hiển nhiên là bất kˆ phép toán hộp F n/m có nghịch đảo nếu phần tử F 2/1 có nghịch đảo. Biến đổi ngược có thể được xây dựng bởi việc hoán đổi đầu ra và đầu vào của hộp F n/m đã cho và thay thế mỗi phần tử F 2/1 bởi nghịch đảo của nó. (Bằng việc thay thế các phần tử P 2/1 với F -1 2/1 trong cấu trúc mạng hộp P -1 n/m , thu được hộp F - 1 n/m ). Để xác định cấu trúc d‡ dàng của quan hệ các phép toán đảo ngược, có thể sử dụng các khối F 2/1 là phép đối hợp được điều chỉnh cơ sở !!.(_`a$#b6#c$d(_ed_1f#1#*(("#$%+,-! Trong trường hợp thực hiện cài đặt trên FPGA, tất cả các phần tử điều khiển được CE F 2/1 được cài đặt sử dụng các ô nhớ 4 bit, mỗi ô nhớ thực hiện 1 BF trong 3 biến. Tuy nhiên, mỗi ô như thế co sthể thực hiện bất 10 [...]... y64 V2, Z2 V1, Z1 Hình 1.25: Sơ đồ của các khối toán tử điều khiển được a) Một lớp (Fn/n) b) F8/24 c) F-18/24 d) F64/384 e) F-164/384 1.2.3 Xây dựng thuật toán mật mã trên cơ sở lớp phần tử đã chọn Sơ đồ cấu trúc và các vòng mã hóa cơ sở (thủ tục Crypt) của thuật toán mã hóa Crypt(D) _128 được chỉ ra trên hình 4 Phần bên phải của sơ đồ sử dụng 2 hoán vị cố định I2 và I3 Lớp chuyển vị thuận bao gồm... xây dựng các khối toán tử F64/384 và F-164/384 (Hình 3d, 3e) Các khối toán tử này được xây dựng trên cơ sở các khối toán tử F8/24 và F-18/24 (Hình 3b, 3c – đảm bảo tính ánh xạ 1-1) Các khối toán tử F64/384 và F-164/384 có thể được thực hiện như sự kết hợp F64/192 ° I1 ° F-164/192 (nghĩa là thực hiện liên tiếp các biến đổi F64/192, I1 và F1 64/192 ), trong đó các khối toán tử F64/192 và F-164/192 được... vòng mã hóa thực hiện một và chỉ một việc kết hợp của khóa vòng 64 bít với các khối dữ liệu bên trái và phải vì vậy chúng sẽ làm đơn giản hóa việc thực hiện trên vi mạch của thuật toán Thủ tục Crypt không có tính xoắn, dù rằng nếu loại bỏ toán tử cộng với khóa vòng thì phần còn lại của vòng biến đổi sẽ có tính xoắn Để đảm bảo tính đối xứng khi mã và giải mã, thuật toán được kết hợp thêm thủ tục biến đổi... Xây dựng các hoán vị xoắn Trong thuật toán xây dựng, có sử dụng hàng loạt các hoán vị xoắn I 0, I1, I2, I3, chúng sẽ làm tăng hiệu ứng thác lũ Hoán vị xoắn I0 ở phần bên trái của sơ đồ mã được thực hiện như sau: (1)(2,34)…(2i−1)(2j,2j + 32)… (32,64)(33)(34)… (61)(63) 34 Ở đây, i = 1, 2, …, 32 và j = 1, 2, …, 16 Hoán vị xoắn I1 đã được mô tả ở trên Hoán vị I2 được tạo ra từ hoán vị I′2 Hoán vị I′2 giải... mã hóa) và 35 Q′j (khi giải mã) sẽ được sử dụng qua các vòng mã hóa, chúng được mô tả trong Bảng 2 Vì thế việc sử dụng khóa trong thuật toán rất đơn giản Bảng 2: Sơ đồ sử dụng khóa 256 bít (j = 11 tương ứng với biến đổi cuối) Số TT của vòng 1 2 3 4 5 6 7 8 9 10 11 Mã hóa Qj K1 K2 K3 K4 K2 K3 K4 K1 K3 K4 K2 Giải mã Q′j K2 K4 K3 K1 K4 K3 K2 K4 K3 K2 K1 j Với thuật toán mới xây dựng, trong mỗi vòng mã. .. trường hợp đặc biệt: các thay đổi tại đầu vào của các hộp P n/m do không loạt Chỉ 28 các thay đổi tại đầu vào điều khiển của các hộp P n/m đóng góp tới hiệu ứng loạt 1.2 Xây dựng thuật toán Crypt(D) _128 1.2.1 Lựa chọn phần tử điều khiển được Phần tử điều khiển F2/2 dùng để xây dựng thuật toán mới được chỉ ra trên hình 1.23 và có thể mô tả dưới dạng một BF (Boolean Function) hoặc dưới dạng 4 hoán vị... xây dựng trên s lớp được kí hiệu như sau: (V, Z) = (V1, Z1, V2, Z2, , Vs, Zs) Với mục đích tăng hiệu ứng thác lũ, thuật toán sử dụng 2 dạng phần tử điều khiển được (F2/2, F’2/2) trong lớp F2/2 Phần tử thứ nhất được lựa chọn theo tiêu chí đảm bảo tính phi tuyến cực đại, còn phần tử thứ 2 đảm bảo tính phân tán của các bít lối ra khi xuất hiện sự thay đổi trên các bít lối vào Để xây dựng thuật toán, trước... Nếu tiêu chuẩn 2.1 và 2.2 được thoả mãn thì mỗi bit của khối con dữ liệu điều chỉnh tác động vào s bit đầu vào của hộp F n/m và 2s bit đầu vào của hộp φn / m Vì vậy, các thay đổi không đáng kể trong khối con L do loạt ' đáng kể Đối với các biến thiên khác nhau của các CE, sự góp tới loạt của các thay đổi tại đầu vào điều khiển là lớn hơn đáng kể sự đóng góp của các thay đổi tại dầu vào của hộp DDO Các... phần tử F2/2 X Y V có thể được đánh giá với xác suất Pijk=Pr( ∆ j − − > ∆ i / ∆ k ) Để đánh giá tất cả các xác suất như vậy tương ứng với cùng CE sử dụng một số giá trị toạn bộ, khái niệm entropy trung bình được giới thiệu như sau: Trong đó các tập riêng biệt của các DC được đặc trưng bởi giá trị entropy 15 Trong trường hợp k=0, tất cả các DC của các phần tử F 2/2 được quy vào 5 tập A, B, C, D, E được... chuyển vị thuận) Trong thuật toán mới xây dựng, các khối chuyển vị sử dụng 8 khối chuyển vị kích thước 4×4 của thuật toán DES 32 10 vòng mã hoá а) B A A Qj Qj Crypt 32 6 4 32 Crypt − S 1 I2 I3 F32/32 F32/32 I3 192 I2 S S 1 I1 Crypt 1 E V F64/192 − S X I0 92 −1 F64/384 V′ F64/192 Biến đổi cuối (FT) B b) E X′ 192 X′ I0 64 Hình 1.26: a) Sơ đồ cấu trúc Crypt(D) _128 b) Một vòng mã hóa cơ sở Crypt b) . tài: Nghiên cứu và đánh giá hiệu quả tích hợp trên công nghệ FPGA thuật toán mật mã CRYPT(D- 128) . Nhệm vụ đặt ra của đề tài là: nghiên cứu về công nghệ FPGA, tìm hiểu về thuật toán mật mã CRYPT(D- 128). thuật toán mật mã CRYPT(D- 128) và cài đặt thuật toán bằng ngôn ngữ mô tả phần cứng VHDL, sử dụng phần mềm tích hợp để mô phỏng 1 thực hiện của thuật toán khi tích hợp trên FPGA. Từ nhiệm vụ đặt ra. ! "#$%&'()*+,-! ./)01"23456789$#! Trong quá trình làm đồ án tôi đã được các thầy giáo, đặc biệt thầy giúp đỡ trong việc tìm hiểu các kiến thức cần thiết cho đồ án, và phương pháp để hoàn thành đồ án; đồng thời cán bộ chỉ huy các
Ngày đăng: 19/06/2014, 21:05
Xem thêm: ĐỒ án tốt NGHIỆP đại học NGHIÊN cứu và ĐÁNH GIÁ HIỆU QUẢ TÍCH hợp TRÊN CÔNG NGHỆ FPGA THUẬT TOÁN mật mã CRYPT(D 128), ĐỒ án tốt NGHIỆP đại học NGHIÊN cứu và ĐÁNH GIÁ HIỆU QUẢ TÍCH hợp TRÊN CÔNG NGHỆ FPGA THUẬT TOÁN mật mã CRYPT(D 128), 1 Tổng quan về mạng hoán vị thay thế, 2 Xây dựng thuật toán Crypt(D)_128, CHƯƠNG 2 CÀI ĐẶT THUẬT TOÁN TRÊN CÔNG NGHỆ FPGA., 1 Tổng quan về công nghệ FPGA., 2Ngôn ngữ mô phỏng phần cứng VHDL, 3 MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX, CHƯƠNG 3 MÔ HÌNH VÀ MỘT SỐ KẾT QUẢ ĐÁNH GIÁ., 1 Tích hợp thuật toán mật mã Crypt(D128) trên FPGA., 3 KẾT QUẢ THỰC HIỆN