ĐỒ á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)

75 994 0
ĐỒ á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)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

 Sự phát triển ngày càng nhanh chóng của Internet 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 ứng dụng điện tử ngày càng được quan tâm có ý nghĩa hết sức quan trọng. Các kết quả của khoa học mật 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 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 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 độ khả năng xử lý ngày càng cao, nhiều phương pháp 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 hoá mới có thể đảm bảo độ an toàn cho thông tin. Phương pháp hoá CRYPT(D_128) ra đời đã đáp ứng được phần nào độ an toàn các phương pháp mật 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 đã đ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 còn giúp giảm thiểu giá thành thiết kế 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 đánh giá hiệu quả tích hợp trên công nghệ FPGA thuật toán mật 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 CRYPT(D-128) 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:  ! "#$%&'()*+,-! ./)01"23456789$#! 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, 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 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      #+  !!!    !       # ;<=,BC;>?@DE,,;F+,-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.   9 &'()   #" ':8;!&'()+* #$<=>8? @&'()+ +$<A9B=>&'()+ /9 9     CD47   +# (! !!   +# ++ CD47    !   9 9      !      ++ #$ , 9E  9  CD47     " +F #GHI /('D /  $DD 'H.J$ )2H7H/2#$ % & ' ( ) # #9 ! H.J  + #$!!  !    H.J       3 ##/9 8 E %!     F* #+$ !  $IK'34L"5!             8MF ;<=,./E;G;HB/IJKLMNO@;,@!!!!!!!!!!!!PP #   $ 34"5&'()   FF # !!   $ 34L"5*    1* ##N OP D $DH /+ , - . 1 BF;-/L;O?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!QA 4 ;<=,;>?@ !ổ8R1ề2ạ1ịRSế !!/2T6URVW2XYSZ[&'(4\2]1^RS7! Cấu trúc mạng hoán vị thay thế với 3 vòng 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ị K là các khóa vòng. Hình 1.1 Trong 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 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 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 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 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 đó 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 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ả 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 các P-box phải thỏa mản sự xáo trộn 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 rất phức tạp. Ngược lại nếu thay đổi một bit trong bản 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 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 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 CR: left control 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 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 1 ở các đầu ra luôn ở mức cân bằng. !!/]1^RS7XYSZ[&'(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 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) 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 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 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 đượ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 biểu di‡n mối quan hệ đảo ngược của F 2/1 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 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 đầu vào của hộp F n/m đã cho 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$#b6#c$d(_ed_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 trên cơ sở lớp phần tử đã chọn Sơ đồ cấu trúc các vòng hóa cơ sở (thủ tục Crypt) của thuật toán 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 I3 Lớp chuyển vị thuận bao gồm... xây dựng các khối toán tử F64/384 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 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 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 F1 64/192 ), trong đó các khối toán tử F64/192 F-164/192 được... vòng hóa thực hiện một 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 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 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ơ đồ đượ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 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... hóa) 35 Q′j (khi giải mã) sẽ được sử dụng qua các vòng 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 hóa Qj K1 K2 K3 K4 K2 K3 K4 K1 K3 K4 K2 Giải 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 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 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 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 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 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. ! "#$%&'()*+,-! ./)01"23456789$#! 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

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • CHƯƠNG 1 THUẬT TOÁN CRYPT(D-128)

    • 1.1 Tổng quan về mạng hoán vị thay thế

      • 1.1.1 Mật mã khóa bí mật xây dựng trên cơ sỡ mạng hoán vị thay thế.

      • 1.1.2 Mạng hoán vị thay thế xây dựng trên cơ sỡ các phần tử điều khiển được

      • 1.1.3 Các phần tử điều khiển được phù hợp với việc cài đặt FPGA.

      • 1.1.4 Các cấu trúc mạng đối xứng

      • 1.1.5 Các thuộc tính của CSPNs trên cơ sở các phần tử F2/2

      • 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

        • 1.2.2. Xây dựng khối các toán tử điều khiển được

        • 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

        • 1.2.4. Xây dựng các hoán vị xoắn

        • 2.5. Thời gian biểu sử dụng khóa đơn giản

        • CHƯƠNG 2 CÀI ĐẶT THUẬT TOÁN TRÊN CÔNG NGHỆ FPGA.

          • 2.1 Tổng quan về công nghệ FPGA.

          • 2.1.2. Ph©n lo¹i FPGA

          • 2.1.3. C¸c c«ng nghÖ lËp tr×nh FPGA

          • 2.1.4. C¸c øng dông cña c«ng nghÖ FPGA

          • 2.2Ngôn ngữ mô phỏng phần cứng VHDL

            • 2.2.1 Giới thiệu

            • 2.2.2 VHDL có một số ưu điểm hơn hẳn các ngôn ngữ mô phỏng phần cứng khác

            • 2.2.3 Cấu trúc một mô hình hệ thống mô tả bằng VHDL

            • 2.3 MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX

              • 2.3.1 Mô tả khái quát về ISE

Tài liệu cùng người dùng

Tài liệu liên quan