Tóm tắt luận văn thạc sĩ kỹ thuật thiết kế hệ thống mã khối bằng công nghệ fpga

  • Số trang: 24 |
  • Loại file: PDF |
  • Lượt xem: 13 |
  • Lượt tải: 0
hoangtuavartar

Đã đăng 24635 tài liệu

Mô tả:

1 MỞ ĐẦU Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm về ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu. Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể được quy tụ vào ba nhóm chính: - Bảo vệ an toàn thông tin bằng các biện pháp hành chính. - Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng). - Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm). Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp. Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập nhất đó là môi trường mạng và truyền tin. Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán. Để bảo mật thông tin trên đường truyền người ta sử dụng các phương pháp mã hoá. Dữ liệu được biến đổi từ dạng nhận thức được sang dạng không nhận thức được theo một thuật toán nào đó và sẽ được biến đổi ngược lại ở trạm nhận. Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin bí mật. Mật mã bao gồm : Lập mã và phá mã. Lập mã bao gồm hai quá trình: mã hóa và giải mã. Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải mã. Đây là một lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng. Trong ỹ thuật mật mã, hệ mã hối được đánh giá là hệ mật có nhiều ưu điểm, ph hợp cho các hoạt động bảo mật tốc độ cao. Tuy nhiên, từ trước đến nay ở nước ta, việc thực hiện mã hối mới ch thực hiện bằng phần mềm trên máy t nh P và ch áp dụng được cho các hệ truyền tin có tốc độ hông cao, do vậy hả n ng ứng dụng mã hối vào bảo mật cho các luồng thông tin tốc độ cao c n gặp nhiều hó h n. ài toán bảo mật luồng dữ liệu tốc độ cao ch có thể giải quyết được trên 2 cơ sở cứng hoá được các thuật toán mã hối, theo nghĩa việc thực hiện các thuật toán mã hối được thiết ế bằng phần cứng. o t nh chất phức tạp của các thuật toán mã hối, việc cứng hoá mã hối theo phương pháp thiết ế mạch điện tử truyền thống trong điều iện nền hoa học và công nghệ ở iệt Nam c n hạn chế là rất hó h n, trong hi đó hiện nay đã có nhiều công nghệ hiện đại để xử lý bài toán này như công nghệ ASI (Application-Specific Integrated Circuit) hay FPGA (FieldProgrammable Gate Array ). Xuất phát từ các vấn đề trên, tác giả tập trung nghiên cứu “Thiết kế Hệ thống mã khối bằng công nghệ FPGA” để cứng hoá các thuật toán mã hối. iệc nghiên cứu để có thể cứng hoá các thuật toán mã hối trên các công cụ phần cứng nhằm đáp ứng các yêu cầu về tốc độ xử lý dữ liệu, t nh chủ động, chuyên dụng hoá thiết b bảo mật cũng như giá thành là một hướng nghiên cứu mới. Kết quả nghiên cứu của đề tài sẽ góp phần làm rõ tính ưu việt của công nghệ FPGA được ứng dụng trong thiết ế hệ chuyển đổi mã mật tốc độ cao, đáp ứng được yêu cầu về tốc độ xử lý dữ liệu, t nh chủ động, chuyên dụng hoá thiết b bảo mật là một sự vận dụng, nghiên cứu ph hợp với điều iện thực tế về công nghệ và yêu cầu sử dụng ở iệt Nam . Nội dung của đề tài “Thiết kế hệ thống mã khối bằng công nghệ FPGA” bao gồm: Chƣơng 1: Hệ truyền tin mật và cơ sở lý thuyết mã hối. Trình bày các vấn đề cơ bản về lý thuyết truyền tin, lý thuyết mã và mã mật ết hợp với sự phát triển của kỹ thuật vi xử lý hiện đại; Giới thiệu tổng quan về hệ truyền tin mật và cơ sở lý thuyết mã hối. Chƣơng 2: Công nghệ PGA và ngôn ngữ mô tả phần cứng VHDL. Trình bày các vấn đề liên quan đến công nghệ PGA, cấu trúc chức n ng của PGA, phân loại cũng như các ứng dụng thực tế của công nghệ PGA. Giới thiệu PGA của hãng Altera và các công cụ thiết ế đi èm của hãng c ng với ngôn ngữ mô tả phần cứng H L. Chƣơng 3: Thiết ế hệ thống mã hối. Chương này trình bày về phương pháp thiết ế module mã hối trên công nghệ PGA, phần cứng mô phỏng module ES và các ết quả thiết ế module mã hối ES trên FPGA. 3 H TRU CHƢƠNG 1 N TIN M T V CƠ SỞ THU TM HỐI 1 1 TỔNG QU N V H TRU N TIN M T Trong cuộc sống, con người luôn có nhu cầu trao đổi thông tin với nhau có nghĩa là có nhu cầu truyền tin cho nhau. Hình 1.1 biểu diễn mô hình của hệ thống truyền tin bao gồm: Nguồn tin, ênh tin và nhận tin. nguån tin kªnh tin nhËn tin H nh 1 Mô h nh hệ thống tr n tin Hệ thống truyền tin mật là hệ thống mà trong đó nội dung thông tin phải được bảo vệ và giữ b mật hi truyền trên ênh tin trước sự tấn công, hám phá bất hợp pháp của mã thám. Hình 1.2 mô tả một cách tổng quát về mô hình của một hệ thống truyền tin mật. m· th¸m nguån tin m· ho¸ kho¸ mËt m· kªnh tin nhiÔu gi¶i m· nhËn tin kho¸ mËt m· H nh 2 Mô h nh hệ thống tr n tin m t ác hệ mật hiện nay được chia thành hai loại: hệ mật hóa b mật và hệ mật hóa công hai. Trong hệ mật hóa b mật, những người sử dụng hợp pháp (người gửi và người nhận phải chia s một hóa b mật chung và hóa đó hông được biết đối với thám mã đối phương. Trong hệ mật hóa công hai, người sử dụng hợp pháp ch cần các thông tin trung thực công hai nào đó. Trong luận v n ch đề cập đến việc ứng dụng các hệ mật hoá b mật. + Mô hình của hệ mật khoá bí mật: 4 Thám mã Nguồn rõ X X X Mã M·hoá ho¸ EK (.) Y Giải mã DK (.) ZZ Nhận tin X Z Kênh an toàn Nguồn khoá Hình 1.3: Mô h nh hệ m t khoá bí m t. Hệ mã được phân thành hai loại là mã khối và mã dòng, trong đó: Mã d ng: Là một dạng biến đổi loạt, biến đổi tuần tự bản mã theo b t ( ý tự . ộ tạo dãy hoá hay c n gọi là bộ tạo hoá chạy sinh ra các b t 1, k2,…, i,… ãy hoá này được cộng mô đun 2 với dãy các b t của bản rõ: p1, p2,…, pi,… để thành bản mã: ci = pi  ki . Tại ph a nhận, bản mã được cộng mô đun 2 với dãy hoá đồng nhất để có bản rõ: ci  ki = pi  ki  ki = pi. Mã khối Vấn đề đặt ra theo một góc độ hác, m i một lần mã, hoá được lấy ng u nhiên trong hông gian hoá sau đó cố đ nh lại và d ng để mã hoá cho tất cả các hối bản rõ trong phiên liên lạc đó hoặc trong suốt thời gian ấn đ nh nào đó. 1 2 CƠ SỞ THU T V M HỐI Mã pháp hối là họ các biến đổi thuận ngh ch các hối (phần độ dài xác đ nh của bản rõ. Thực tế, mã pháp hối là hệ mật thay thế trên bộ chữ cái các hối (ph p thế có thể một hoặc nhiều bộ chữ cái tu thuộc vào điều iện của mã pháp hối . ác mã pháp hối hiện nay được sử dụng rất phổ biến. Nguyên lý thiết kế mã khối được dựa trên nguyên lý chung về độ an toàn và nguyên lý thiết kế cho ứng dụng. 1 3 GI I THI U CHUẨN MÃ HOÁ DỮ LI U DES. hu n mã dữ liệu ES là một ỹ thuật mã hối có cấu trúc dạng eistel, thực hiện mã hoá một xâu b t x của bản rõ độ dài 64 bằng một hoá 56 b t. ản mã nhận được cũng là một xâu b t có độ dài 64. 5 Thuật toán tiến hành theo 3 giai đoạn: 1. ớ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. Ta viết: x0= IP(X) = L0R0, trong đó L0 gồm 32 b t đầu và R0 là 32 b t cuối. 2. Sau đó t nh toán 16 lần lặp theo một hàm xác đ nh. Ta sẽ t nh LiRi, 1 i 16 theo quy t c sau: Li = Ri-1 Ri = Li-1  f(Ri-1,Ki) trong đó  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 bao gồm các ph p hoán v , ph p thế, ph p cộng modun 2, c n K1, K2, . . . , K16 là các xâu b t độ dài 48 được t nh như hàm của hoá K (trên thực tế m i K i là một ph p chọn hoán v b t trong K . K1, . . ., K16 sẽ tạo thành bảng hoá. Một v ng của ph p mã hoá được mô tả trên hình 1.7. 3. p dụng ph p hoán v P cho xâu b t 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 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 hoá theo thứ tự ngược lại K16,…,K1. Đầu ra của thuật toán sẽ là bản rõ x. 1.4. GIẢI PHÁP KỸ THU T THI T K MÃ KHỐI. iệc thiết ế các thuật toán mã hối trong thiết b bảo mật thông tin hiện nay có thể thực hiện theo các ỹ thuật như mô tả trong hình 1.13. THU T TOÁN M PHẦN CỨNG ASIC FPGA Hình 1.13: Các kỹ th HỐI PHẦN M M INTER, RISC t thiết kế mã khối. DSP, µP Smart Card 6 + Thiết kế mã khối bằng chương tr nh phần m m. Thiết ế thuật toán mã hối bằng chương trình phần mềm và thực hiện trên các bộ xử lý Intel, RIS hoặc nhúng trong môi trường SP, Smart- ard..., hoặc trên các máy P . Ưu điểm của ỹ thuật này là hông phụ thuộc quá nhiều vào công nghệ thiết ế, cho ph p thiết ế nhanh, có t nh mềm d o cao hi cần thay đổi thuật toán mã hoá được thực hiện một cách đơn giản. Tuy nhiên ỹ thuật này lại b hạn chế về mặt tốc độ xử lý mã hoá- giải mã, nó ph hợp với những hệ thống truyền tin có tốc độ hông cao. + Thiết kế mã khối bằng công cụ phần cứng. Phần lớn các ỹ thuật mã hối thông dụng hiện nay đang được d ng để bảo mật thông tin trong các hệ truyền tin mật là có cấu trúc eistel, đây là một cấu trúc mã hối rất th ch hợp cho việc thiết ế bằng phần cứng. Trên thế giới một số hãng sản xuất các thiết b bảo mật cũng đã nghiên cứu thiết ế các thuật toán mã hối bằng các công cụ phần cứng như: công nghệ ASI , công nghệ PGA.... Công nghệ ASI cho ph p thiết ế thuật toán mã hối với hầu hết các ưu điểm của giải pháp phần cứng, và tốc độ mã hoá - giải mã dữ liệu hi thiết ế thuật toán mã hối bằng công nghệ ASI có thể lên tới vài Gigab t/s. ông nghệ PGA là một sự phát triển của công nghệ ASI , tuy tốc độ xử lý dữ liệu có thấp hơn một chút nhưng nó đã thừa hưởng được những t nh n ng ưu việt, h c phục được mặt hạn chế của ASI . Người thiết ế sử dụng phần mềm để tiến hành thiết ế với các phần tử logic cơ bản và tạo các giản đồ ết nối. PGA là một thiết b logic có thể được người sử dụng lập trình trực tiếp mà hông phải sử dụng bất một công cụ chế tạo mạch t ch hợp nào. Điều này cho ph p chế tạo ngay thiết b và vì vậy giá thành sản ph m thấp. PGA được ứng dụng rộng rãi và há lý tưởng vì chúng có mức độ t ch hợp cao trên chip, đáp ứng yêu cầu phức tạp và đa dạng. Thay vì các I nguyên m u để l p gh p vào hệ thống người thiết ế có thể tạo các ết nối theo các phần trong PGA của mình bằng phần mềm. Mặt hác chúng ta có thể nạp lại chương trình một cách liên tục để thay đổi các thuật toán mã hối hoặc thực hiện các thuật toán khác. 7 CHƢƠNG 2: CÔNG NGH FPG 2.1. TỔNG QUAN V CÔNG NGH FPGA. FPGA (Field-Programmable Gate Array), là mạch tích hợp cỡ lớn trong đó cho phép người lập trình thay đổi các thiết kế của mình mà không phải sử dụng bất k một công cụ chế tạo mạch tích hợp nào. FPGA là công nghệ tiên tiến nhất hiện nay của ngành công nghệ chế tạo IC (Integrated Circuit) chuyên biệt. 2.1.1 Cấu trúc cơ bản của FPGA. FPGA gồm một dãy các phần tử rời rạc có thể được kết nối với nhau bằng các nguồn kết nối chung. Các kết nối giữa các phần tử có thể lập trình được. Hình 2.4 giới thiệu về mô hình tổng quát của một FPGA. Nó gồm dãy 2 chiều các logic block có thể được kết nối bằng các nguồn kết nối chung. Nguồn kết nối là các đoạn dây (segment) có thể có chiều dài khác nhau, bên trong các kết nối là các chuyển mạch lập trình được dùng để nối các logic block với các segment hoặc giữa các segment với nhau. Mạch lôgíc được cài đặt trong FPGA bằng cách ánh xạ lôgíc vào các logic block riêng rẽ và sau đó nối các logic block cần thiết qua các chuyển mạch. Trong đó có các khối: - Các khối logic (logic block): cấu trúc và nội dung của logic block được gọi là kiến trúc của nó. Kiến trúc của khối logic có thể được thiết kế theo nhiều cách khác nhau. Một số khối logic có thể ch là các cổng NAND 2 đầu vào, tuy nhiên cũng có thể nó là một bộ dồn kênh (multiplexer), hay các bảng tìm kiếm LUT (Look-Up Table). Trong một số loại FPGA các khối logic có thể có cấu trúc hoàn toàn giống như PAL. Hầu hết các khối logic chứa một số loại flip-flop để h trợ cho việc thực hiện các mạch tuần tự. - Các nguồn tài nguyên kết nối: Cấu trúc và nội dung của các nguồn kết nối trong FPGA được gọi là kiến trúc routing (routing architecture). Kiến trúc routing gồm các đoạn dây nối và các chuyển mạch lập trình được. Các chuyển mạch lập trình được có thể có nhiều cấu tạo khác nhau. Kiến trúc routing gồm các đoạn dây nối và các chuyển mạch lập trình được. Các chuyển mạch này có thể cấu tạo khác nhau như: Transitor truyền (pass - transitor) được điều khiển bởi cell SRAM, cầu chì ngh ch (anti - fuse), EPROM transitor và EEPROM transitor... 8 Tài nguyên ết nối Logic Block I/O Cell Hình 2.4: Mô tả mô h nh của một FPGA. - Các cổng vào/ra: Các đặc tính I/OB của các đầu vào và đầu ra được h trợ tới 19 các chu n tín hiệu khác nhau bao gồm: LVDS, BLVDS, LVPECL, LVCMOS, HSTL, SSTL và GTL. Các khối cơ bản của LB (Logic Block) của FPGA chính là Logic Cell (LC: gọi là tế bào logic). - M i một Logic Cell bao gồm một bộ tạo chức n ng (hay bộ tạo hàm) 4 đầu vào, logic nhớ và phần tử lưu trữ (Flip-Flop loại D). Đầu ra bộ tạo chức n ng của m i Logic Cell điều khiển cả đầu ra LB hoặc đầu vào D của Flip-Flop. M i một LB có chứa bốn Logic Cell và được tổ chức thành hai Slice tương tự nhau. - Look-Up Tables (LUT): Các bộ tạo chức n ng của FPGA thực hiện như LUT có bốn đầu vào. Để hoạt động như một bộ tạo chức n ng, m i một LUT có thể cung cấp một RAM 16x1bit đồng bộ. Hơn nữa hai LUT trong một Slice có thể được kết hợp để tạo RAM 16x2 bit hoặc 32x1 bit đồng bộ . - Storage Element: Các phần tử lưu trữ trong slice của FPGA có thể được x p đặt như một Flip-Flop loại D kích hoạt bằng sườn, hoặc như một bộ chốt nhạy mức. - Block RAM: Trong FPGA hợp nhất một vài bộ nhớ RAM theo khối thành khối lớn hơn (gọi là SelectRAM +), điều này cần bổ xung các LUT RAM đã được phân phối và kiến trúc bộ nhớ không bền vững này được thực hiện trong các LB, các khối bộ nhớ Block RAM được tổ chức theo các cột. 9 2.1.2. Ứng dụng của FPGA. FPGA có thể sử dụng trong hầu hết các ứng dụng hiện đang dùng CPLD, PLD và các mạch tích hợp nhỏ. Dưới đây là các ứng dụng điển hình của FPGA: 1. Các mạch tích hợp ứng dụng đặc biệt: FPGA là một phương tiện tổng quát nhất để thực hiện các mạch logic số. 2. Thiết kế mạch ng u nhiên: Mạch logic ng u nhiên thường được thực hiện bằng PAL. Nếu tốc độ của mạch không đòi hỏi kh t khe thì mạch có thể thực hiện thay thế bằng FPGA. 3. Thay thế các chíp tích hợp nhỏ cho mạch ng u nhiên: Các mạch trong các sản ph m thương mại thường chứa nhiều chíp SSI (Small Scale Integrated). Trong nhiều trường hợp các chip SSI này có thể được thay thế bằng FPGA và kết quả là giảm diện tích của bo mạch đi đáng kể. 4. Chế tạo m u: FPGA rất lý tưởng cho các ứng dụng tạo sản ph m m u. Giá thành thực hiện thấp, thời gian ng n. 5. Máy tính dựa trên FPGA: Một loại máy tính mới có thể được chế tạo với các FPGA có thể tái lập trình ngay trên mạch FPGA. Các máy này có một bo mạch chứa các FPGA mà các chân nối với các chip lân cận giống như thông thường. 2.1.3. Quá trình thiết kế cơ bản trên FPGA. Quá trình thiết kế trên FPGAs sử dụng hệ thống CAD (Computer Aided Design). Hình 2.10 biểu diễn các bước trong hệ thống CAD tiêu biểu để tạo ra một mạch FPGA. Từ trên hình vẽ ta thấy, điểm b t đầu cho mạch thiết kế là mạch lôgic ban đầu. Bước này cần một sơ đồ biểu diễn mạch, hay một mô tả VHDL hoặc một đặc tả các biểu thức Boolean. Từ các đầu vào như vậy, chúng được chuyển thành dạng chu n như là các biểu thức Boolean. Các biểu thức Boolean này được xử lý bằng công cụ tối ưu lôgíc (rút gọn các biểu thức), mục đích của việc này là để tối ưu về diện tích và tốc độ của mạch thiết kế. Sau khi đã được tối ưu, các biểu thức Boolean được chuyển tới mạch lôgíc block của FPGA thông qua chương trình ánh xạ công nghệ (technology mapping), bộ ánh xạ sẽ tối thiểu số khối được dùng và giảm đường d n để tối ưu về giữ chậm. Sau khi ánh xạ mạch vào các logic block thì cần phải quyết đ nh đặt m i khối ở đâu, công việc này do chương trình Placement giải quyết. Bước cuối cùng trong hệ thống CAD là nối kết do phần mềm Rounting thực hiện, chúng ấn đ nh các đoạn dây FPGA và chọn các chuyển mạch có thể lập trình phù hợp với các kết nối trong logic block. Sau khi thực hiện xong bước này, kết quả của CAD sẽ được nạp vào đơn v lập trình tạo ra chip FPGA cuối cùng. 10 Mạch lôgic ban đầu CAD Tối ưu lôgic nh xạ công nghệ Placement Rounting Đơn vị lập trình Sản phẩm Hình 2.10. Q á tr nh thiết kế trên FPGA. Sau đây ta sẽ nghiên cứu chi tiết từng giai đoạn của quá trình thiết kế CAD: + Tối ưu lô gic. Đây chính là công việc sửa lại cấu trúc để giảm sự phức tạp của mạch ban đầu. Trong giai đoạn này không chú ý đến kiểu của các phần tử sẽ được dùng sau này nên được gọi là tối ưu không phụ thuộc vào công nghệ (technology-independent). Tiến hành tối ưu chính là làm giảm sự dư thừa hoặc loại bỏ những biểu thức con chung. Mạch sau khi được tối ưu có chức n ng tương đương với mạch ban đầu. + Ánh xạ công nghệ Sau khi tối ưu logic, ánh xạ công nghệ sẽ biến đổi mạng này thành mạch cuối cùng. Điều này sẽ được làm bằng cách chọn lựa từng phần của mạng và m i cái sẽ được thực hiện bởi một trong những phần tử của mạch có sẵn, và xác đ nh những mạch này sẽ được nối với nhau như thế nào. 11 + Sắp xếp các phần tử (Placement). Giai đoạn này của thiết kế gồm các công việc chính như sau: Phân chia hệ thống (System Partitioning): Một hệ thống vi điện tử bao gồm nhiều khối chức n ng, nếu một khối chức n ng quá lớn thì chúng ta phải thực hiện việc tách hoặc phân chia chức n ng của khối đó ra làm các khối nhỏ hơn theo mục đích và đ nh hướng mà chúng ta cần ch đ nh. a) Lên sơ đồ mặt bằng, bố trí các khối (Floorplanning): Sau khi phân chia hệ thống xong sẽ thực hiện việc lên sơ đồ mặt bằng, bố trí các khối. Floorplanning thực hiện các công việc như tối thiểu hóa độ dài kết nối và trễ tín hiệu giữa các khối, s p đặt các khối đã cố đ nh và đặt lại các khối di độngđược thực hiện trước Placement, công việc s p đặt, bố trí các phần tử logic trên từng khối, tổ chức các vùng kết nối giữa các khối, phân phối mặt bằng cho nguồn và các đường vào ra... b) Sắp xếp các phần tử (Placement): Placement là bước tiếp theo của Floorplanning, nó thực hiện việc s p đặt các phần tử logic vào một khối di động...đây là bước quan trọng trong thiết kế mạch và rất phức tạp, nếu Placement không tốt sẽ d n đến việc chiếm diện tích lớn và giảm tốc độ thực thi, nhiều khi còn d n tới khả n ng không Rounting được. Placement, System Partitioning và Floorplanning có thể hiểu chung là phân chia hệ thống trên FPGA - tức là lên sơ đồ mặt bằng, bố trí các khối lô gic, và ta có thể gọi chung là Placement. c) Mục tiêu và đối tượng của Placement: Mục tiêu chính của một công cụ placement (S p đặt bố trí các phần tử logic trên từng khối) là s p đặt tất cả các phần tử logic trong cùng các khối di động trên một chip. Về lý tưởng mà nói, đối tượng của placement là: - Bảo đảm công cụ đ nh tuyến có thể hoàn ch nh bước đ nh tuyến. - Tối thiểu hoá tất cả các khoảng trễ trên đường kết nối. - Làm cho mật độ của chíp càng cao càng tốt. - Tối thiểu hoá tiêu thụ nguồn. - Tối thiểu hoá sự xuyên nhiễu giữa các tín hiệu. d) Gán chân (Pin Assignmen) : Mục đích của việc gán chân là đ nh nghĩa tín hiệu mà m i chân sẽ nhận được. Việc gán chân có thể thực hiện được trong quá trình placement hoặc sau quá trình này. 12 + Định tuyến trên FPGA (rounting). Rounting là công việc cuối cùng trong quá trình thiết kế, sau khi ta đã s p đặt và bố trí xong các phần tử logic trên các khối di động thì đây chính là việc kết nối bằng cách đ nh tuyến cho chíp đó. Việc đ nh tuyến gồm 2 bước: đ nh tuyến tổng thể và đ nh tuyến chi tiết. Đ nh tuyến tổng thể được thực hiện trước, sau đó các đ nh tuyến chi tiết thực hiện theo đ nh hướng chung của đ nh tuyến tổng thể đã đưa ra. Các vấn đề chính của đ nh tuyến là: - Đ nh tuyến được phân thành đ nh tuyến tổng thể và chi tiết. - Các thuật toán đ nh tuyến phải phù hợp với các thuật toán placement. - Đ nh tuyến không thể hoàn thành nếu không đi dây được. - Các đường nguồn và xung nh p được điều khiển trong trường hợp đặc biệt. - Độ rộng các đường nguồn và xung nh p đồng bộ được thiết lập bằng tay. + Tải nạp chương trình. Đây là khâu tạo ra sản ph m của thiết kế. Tải chương trình nhìn chung được xem như là tải thông tin xuống thiết b dễ biến đổi như SRAM FPGA. Thông tin cấu hình của thiết b được nạp vào trong bộ nhớ của thiết b . Luồng các bit mà nó được truyền đi có chứa tất cả các thông tin đ nh nghĩa logic và các đường nối của thiết kế và thông tin này khác nhau đối với thiết kế khác nhau. Nạp chương trình được dùng cho để lập chương trình cho tất cả các thiết b logic có thể lập trình được không b thay đổi, chẳng hạn như PROM nối tiếp. Việc nạp chương trình thực hiện giống chức n ng như tải chương trình, riêng các thông tin về cấu hình v n còn sau khi mất điện. 2.1.4. Giới thiệu v FPGA của hãng ALTERA. Kiến trúc cơ bản của Altera FPGA là dựa trên công nghệ lập trình EPROM, hình 2.11 minh họa kiến trúc tổng quát của Altera FPGA MAX 7000. Bao gồm một mảng lớn các Block lập trình được gọi là Logic Array Block (LABs) được kết nối với nhau bởi các nguồn tài nguyên rounting. - Thời gian thiết kế, thời gian mô phỏng và chế tạo nhanh. - Tốc độ xử lý của các thiết b cao. - Giá thành, chi phí đầu tư thấp hơn so với các hãng khác, mức độ rủi ro trong đầu tư thấp. - Khả n ng thừa hành cao. - Đáp ứng hầu hết các yêu cầu từ đơn giản tới phức tạp. 13 - Hệ thống có mức tích hợp và độ ổn đ nh cao. - Công cụ h trợ và phát triển được cung cấp đầy đủ. - Phù hợp với khả n ng và xu thế phát triển của các hệ thống số. Nhìn chung, hệ thống cũng như các thiết b của Altera có mức chi phí đầu tư so với mức đầu tư ban đầu vào các công nghệ cao trong lĩnh vực điện tử - viễn thông ở Việt Nam hiện nay là tương đối cao. Bên cạnh đó, nó đòi hỏi có đội ngũ khoa học để tiếp thu, nghiên cứu và sử dụng được đào tạo kỹ lưỡng và có trình độ cao. I/O ControlBlock LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB I/O ControlBlock I/O ControlBlock LAB I/O ControlBlock Hình 2.11: Kiến trúc tổng q át của Altera FPGA MAX 7000. 2.1.5. Giới thiệu công cụ thiết kế Quartus II. Công cụ thiết kế Quartus II là hệ thống phát triển thứ tư của hãng ALTERA cho các linh kiện lập trình được. Nó đưa ra các đặc trưng rất mạnh để rút ng n chu trình thiết kế và t ng n ng suất thiết kế. Sử dụng chủ yếu cho thiết kế các họ chíp FPGA có dung lượng lớn như APEX 20K, STATIC... Các đặc điểm chính là: - H trợ đa xử lý (Multi-processor) và t ng cường khả n ng biên d ch lại để rút ng n chu trình thiết kế. - Phương pháp tích hợp toàn bộ hệ thống trên một chip kết hợp với tính n ng soạn thảo mức khối, tính toán theo nhóm và h trợ mở rộng cho các siêu chức n ng 14 (MegaFunction) sẽ tổ chức các sơ đồ phát triển hệ thống số tốt hơn, nâng cao hiệu suất làm việc và chất lượng của hệ thống. - Các tính n ng giao tiếp dễ dàng với các phần mềm EDA khác cho phép người thiết kế sử dụng các công cụ mà họ đã quen thuộc để thiết kế cho các mạch tổ hợp logic lập trình được của hãng ALTERA. - Khả n ng h trợ kỹ thuật bằng cách tiếp cận trực tiếp tới hệ cơ sở dữ liệu trực tuyến của ALTERA từ phần mềm Quartus II làm m i thành viên trong bộ phận thiết kế làm việc có hiệu quả hơn. - H trợ mạch tổ hợp logic lập trình được APEX 20K với chất lượng cao và khả n ng tích hợp toàn bộ hệ thống trên một chip (System-on-a-Programmble-Chip). 2.2. NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL. VHDL (VHSIC Hardware Description Laguage) là một ngôn ngữ được dùng để mô tả các hệ thống điện tử số. VHSIC (Very High Speed Integrated Circuits) do chính phủ Mỹ khởi xướng vào đầu những n m 1980. Kể từ đó, VHDL ra đời và được phát triển, sau đó được tổ chức IEEE (Institude of Electrical and Electronic Engineers) chấp nhận coi như là tiêu chu n tại Mỹ. Phiên bản đầu tiên là tiêu chu n IEEE 1076-1987 (còn được gọi là VHDL87). Phiên bản này được bổ sung sửa đổi n m 1993 thành IEEE 1076-1993 (còn được gọi là VHDL-93). VHDL được thiết kế nhằm thay thế cho một số khâu cần thiết trong quá trình thiết kế. Đầu tiên, nó cho phép mô tả cấu trúc của một bản thiết kế, tức là làm thế nào để có thể phân tách bản thiết kế thành các bản thiết kế con, và làm thế nào để kết nối các bản thiết kế con đó lại với nhau. Thứ hai là nó cho phép mô tả đặc điểm chức n ng của các bản thiết kế tương tự như trong ngôn ngữ lập trình. Thứ ba là dựa vào kết quả đạt được, nó cho phép một bản thiết kế có thể mô phỏng được trước khi đưa vào sản xuất, vì vậy các nhà thiết kế có thể so sánh một cách nhanh chóng việc thay thế và kiểm tra để điều ch nh chính xác mà không mất thời gian và chi phí vào việc chế tạo m u thử đầu tiên. 15 CHƢƠNG 3: THI T H THỐNG M HỐI 3 1 CẤU TRÚC CỦ MODU E M HỐI. 3 1 1 Cấu trúc chung Nguyên lý thiết ế và cấu trúc của thuật toán mã hố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ã hối được xây dựng như sơ đồ hình 3.1. Khóa mã Dữ liệu vào hối xử lý mã hóa/giải mã dữ liệu Dữ liệu ra Điều khiển Hình 3.1: Cấ trúc ch ng của mod le mã khối. 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à hối đóng vai tr chức n ng ch nh của modul mã hối, có nhiệm vụ mã hoá hay giải mã dữ liệu theo thuật toán mã hối được chọn lựa. - Khoá mã độ dài K b t có nhiệm vụ ết hợp với các hàm toán học của thuật toán mã hối để thực hiện mã hoá hay giải mã hối dữ liệu. - Khối điều hiển thực hiện nhiệm vụ điều hiể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: - 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 hác nhau phụ thuộc vào nội dung thông tin cần bảo mật. 16 - 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 hả n ng gây l i cho toàn bộ hệ thống truyền tin mật - Về mặt sử dụng: ó t nh tiện dụng và chuyên dụng, có độ tin cậy cao trong hi hoạt động, linh hoạt trong quá trình xử lý, giá thành ph hợp, hiệu quả inh tế cao. 32 Ự CHỌN THU T TOÁN CHO MÔ PHỎNG THI T 321 ựa chọn thuật toán iệc lựa chọn thuật toán mã hối để mô phỏng thiết ế có ý nghĩa chứng minh về hả n ng cũng như cách thức tiến hành hi thiết ế một hệ mã hối trên PGA 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 eistel. - Đã được phổ biến rộng rãi và được iểm chứng trên thực tế. Trong số các thuật toán mã hối đã được công bố, thuật toán được hai tiêu ch trên, vì: - ES đã đáp ứng ES có đầy đủ các đặc trưng của cấu trúc eistel như đã được trình bày trong mục 1.2.4 và trong đó một số cấu trúc biến đổi há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. - ES đã đượ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 ES [1],[7] thực hiện mã hoá bản rõ X có độ dài 64 bits với hoá 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 ES hoạt động ở 4 chế độ: E , , ,O trong đó, chế độ E là chế độ hoạt động tiêu biểu của mã hối và từ đây về sau thuật ngữ ES được hiểu là ES làm việc ở chế độ E . Lược đồ của thuật toán ES đượ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. ớ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. 17 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 đó  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 hoá 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 hoá. Giai đoạn3. p dụng ph p hoán v P cho xâu bit R16L16, ta thu được bản mờ y. Tức là y= P (R16L16 . Hãy chú ý thứ tự đã đảo của L16 và R16. Hình 3.2: Lược đồ của th 3 3 PHƢƠNG PHÁP THI T t toán DES MODU E DES TRÊN FPG Phương pháp thiết ế nhằm áp dụng ES trên công nghệ PGA hoàn toàn tuân thủ theo qui trình thiết ế một ứng dụng trên công nghệ PGA. Quá trình thiết ế được thực hiện theo các bước sau: a Xây dựng các hối hàm cơ bản của thuật toán mã hối ES bằng ngôn ngữ mô tả phần cứng. 18 b iên d ch và iểm tra từng hối chức n ng ở mức RTL (Register Transfer Level). c Tổng hợp và tối ưu về mặt logic. d Đặt và đ nh đường đi cho các thiết b chuyên dụng. e Kiểm tra thiết ế. f Nạp cấu hình cho phần cứng. ác bước b, c, d chủ yếu do công cụ thiết ế thực hiện một cách tự động. + Công cụ thiết kế a ông cụ phần mềm: - Thiết ế các hối hàm cơ bản của ES bằng ngôn ngữ H L. - Hệ công cụ phát triển cho thiết ế logic Quartus II của ALTERA. b ông cụ phần cứng: PGA được sử dụng trong thiết ế là d ng linh iện của ALTERA. + Sơ đồ khối chức năng của module mã khối DES trên FPG Từ cấu trúc chung của moduê mã hối và thuật toán ES, sơ đồ hối tổng quát của module mã hối gồm các thành phần mô tả trên hình 3.6. - Khối vào/ra dữ liệu: ào/Ra dữ liệu rõ/mã; vào hoá mã; độ dài hối dữ liệu là 64 bít. - Khối PGA ES: T nh toán hoá con; thực hiện các hàm mã hoá, giải mã theo thuật toán ES. Khối điều hiển: ác t n hiệu điều hiển hoạt động của Module. Khối cấu hình cho PGA. 19 Cấu hình Khoá mã vào FPGA DES Dữ liệu vào Dữ liệu ra Điều khiển Hình 3.6: Sơ đồ khối tổng q át của mod le mã khối DES trên FPGA. + Phần cứng mô phỏng module DES Để module ES thiết ế trên PGA có thể hoạt động được độc lập, cần phải thiết ế một bảng mạch phụ trợ theo sơ đồ hình 3.17: kho¸ m· Ic cÊu h×nh C¸p mv En/De Reset M· ho¸/Gi¶i m· d÷ liÖu vµo FPGA d÷ liÖu ra EN t¹o xung nhÞp Hình 3.17: Sơ đồ khối phần cứng của mod l mã khối DES. 20 * Khối xử lý chính (mã hoá/giải mã) Đây là phần ch nh thực thi toàn bộ các hoạt động của modul mã hối. Toàn bộ chương trình thiết ế thuật toán ES và các chức n ng hác của modul bằng ngôn ngữ mô tả phần cứng sau hi qua các giai đoạn của trình biên d ch, tối ưu, đặt và đ nh đường, iểm tra sẽ được nạp và thực hiện trên cho PGA. * Khối cấ h nh cho FPGA iệc cấu hình cho PGA được thực hiện theo hai giai đoạn: - Giai đoạn 1: Nạp mềm d ng cho việc iểm tra ết quả trong từng giai đoạn hoặc toàn bộ quá trình thiết ế. ới m i hối chức n ng được chia ra trong quá trình thiết ế modul ngoài việc iểm tra sự hoạt động của hối bằng chương trình mô phỏng ector Waveform ile của công cụ Quartus II như đã trình bày trong phần 3.3.3.7, người thiết ế có thể iểm tra sự hoạt động của các hối bằng cách nạp cấu hình của hối đó thông qua cáp yte lasterM (M ra thiết b phần cứng để phân t ch xem hoạt động của hối có đúng so với yêu cầu chưa. Nếu hối chức n ng hoạt động chưa đúng yêu cầu thì quay lại iểm tra thiết ế. ấu hình này trong phần cứng sẽ b xoá hi t t nguồn nuôi. - Giai đoạn 2: Nạp cứng sau hi iểm tra toàn bộ hoạt động của modul theo đúng yêu cầu thiết ế, người thiết ế tiến hành nạp cấu hình cho phần cứng bằng thiết b nạp trình ALL-11 . I để lưu giữ cấu hình được chọn phải ph hợp với linh iện PGA. * Các phần mạch khác - Mạch tạo xung nh p: Tạo xung loc cung cấp cho toàn bộ module. - Khối nguồn được thiết ế cho ra các nguồn điện áp +5 ; +2,5 ; +3,3 để cung cấp cho các vi mạch. 34 T QUẢ THI T MODU E M HỐI DES Quá trình xây dựng và thiết ế module mã hối ES được thực hiện trên cơ sở xây dựng các hối chức n ng của thuật toán ES bằng mô tả H L và các yếu tố về phần cứng. + Sơ đồ phần cứng của module ++ Module DES: Trong module sử dụng ch p EP20K100T 144-3 thuộc họ APEX 20K của ALTERA. Những đặc điểm ch nh của ch p EP20K100T 144-3 của Altera: EP20K100TC 144-3 cung cấp 100.000 cổng sử dụng, 144 chân vào ra trong đó có 95 chân I/O dành cho người sử dụng, 4406 thanh ghi, 53.248 b t RAM, ROM, sử
- Xem thêm -