1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật viễn thông: Công nghệ IP Security và hiện thực trên FPGA

86 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề CễNG NGHӊ IP SECURITY VÀ HIӊN THӴC TRấN FPGA
Tác giả WrQ KӑF YLrQ
Người hướng dẫn PGS.TS HӖ 9Ă1 .+ѬѪ1*
Trường học ĈҤI HӐC QUӔC GIA TP.HCM
Chuyên ngành Kӻ Thuұt ViӉn Thụng
Thể loại LuұQ YăQ WKҥF Vƭ
Năm xuất bản 2021
Thành phố TP. HӖ CHÍ MINH
Định dạng
Số trang 86
Dung lượng 1,68 MB

Cấu trúc

  • 1.1. Lý do chӑQÿӅ tài (15)
  • 1.2. MөFÿtFKQJKLrQFӭu (16)
  • 1.5. Bӕ cөc luұQYăQ (17)
  • 2.1. Tәng quan vӅ IP Security (18)
    • 2.1.1. KiӃn trúc IPsec (18)
    • 2.1.2. Các tiêu chuҭQÿӏQKQJKƭD,3VHF (20)
    • 2.1.3. Internet Key Exchange (21)
    • 2.1.5. ChӃ ÿӝ vұn hành cӫa IPsec (24)
    • 2.1.6. ThiӃt lұSÿѭӡng hҫm (Tunnel Establishment) (25)
  • 2.2. IPsec Hardware Acceleration (26)
  • 2.3. Mã hóa AES (28)
    • 2.3.1. ChӭFQăQJ$GG5RXQG.H\ (29)
    • 2.3.2. ChӭFQăQJ6XE%\WHV (29)
    • 2.3.3. ChӭFQăQJ6KLIW5RZV (30)
    • 2.3.4. ChӭFQăQJ0L[&ROXPQV (30)
    • 2.3.5. ChӭFQăQJ.H\([SDQVLRQ (30)
  • 2.4. Giҧi mã AES (31)
    • 2.4.1. ChӭFQăQJ$GG5RXQG.H\ÿҧo (33)
    • 2.4.2. ChӭFQăQJ,QY6KLIW5RZV (33)
    • 2.4.3. ChӭFQăQJ,QY6XE%\WHV (33)
    • 2.4.4. ChӭFQăQJ,QY0L[&ROXPQV (33)
  • 2.5. Các chӃ ÿӝ mã hóa và giҧi mã (33)
    • 2.5.1. Electronic Codebook (ECB) (33)
    • 2.5.2. Cipher Block Chaining (CBC) (34)
    • 2.5.3. Cipher Feedback (CFB) (36)
    • 2.5.4. Output Feedback (OFB) (38)
    • 2.5.5. Counter (CTR) (40)
  • 3.1. Phҫn mӅm mô phӓng Cadence (43)
  • 3.2. Phҫn mӅm Vivado (44)
  • 3.3. Xilinx Virtex UltraScale+ FPGA (45)
    • 3.3.1. Giӟi thiӋu vӅ FPGA (45)
    • 3.3.2. KiӃn trúc Xilinx FPGA (46)
    • 3.3.3. Virtex UltraScale+ FPGA VU7P (50)
  • 4.1. TҼng quan (0)
  • 4.2. Parser flowchart (53)
  • 4.3. KiӃn trúc VRF Lookup (55)
  • 4.4. Các chӃ ÿӝ hoҥWÿӝng cӫa IKE (55)
  • 5.1. Tәng quan thiӃt kӃ (56)
  • 5.2. ThiӃt kӃ bӝ mã hóa AES-128/192/256 (57)
    • 5.2.1. Mҥch logic khӕi KeyExpansion (59)
    • 5.2.2. Mҥch logic khӕi mã hóa AES (60)
  • 5.3. ThiӃt kӃ bӝ giҧi mã AES-128/192/256 (61)
    • 5.3.1. Mҥch logic khӕi Inverse KeyExpansion (63)
    • 5.3.2. Mҥch logic khӕi giҧi mã AES (64)
  • 6.1. KӃt quҧ mô phӓng (66)
    • 6.1.1. KӃt quҧ mô phӓng AES-128 (66)
    • 6.1.2. KӃt quҧ mô phӓng AES-192 (68)
    • 6.1.3. KӃt quҧ mô phӓng AES-256 (70)
  • 6.2. KӃt quҧ triӇn khai trên FPGA (72)
  • 6.3. So sánh kӃt quҧ vӟi công trình khác (76)
  • 7.1. KӃt luұn (78)
  • 7.2. KhuyӃn nghӏ (78)
  • 7.3. Giӟi hҥQYjKѭӟng phát triӇn (0)
  • Bҧng 2.1: Tóm tҳWSKѭѫQJSKiSJLҧm tҧi các thuұt toán mã hóa cho IPsec [2] (0)
  • Bҧng 5.1: Các tín hiӋu cӫa bӝ mã hóa (0)
  • Bҧng 5.2: Giá trӏ 5FRQ>@WѭѫQJӭng mӛi vòng lһp khóa mã [9] (0)
  • Bҧng 5.3: Các tín hiӋu cӫa bӝ giҧi mã (0)
  • Bҧng 5.4: Giá trӏ 5FRQ>@WѭѫQJӭng mӛi vòng lһp khóa giҧi mã [9] (0)
  • Bҧng 6.1: Thông sӕ mô phӓng AES-128 (0)
  • Bҧng 6.2: Thông sӕ tӯQJEѭӟc mã hóa AES-128 (0)
  • Bҧng 6.3: Thông sӕ tӯQJEѭӟc giҧi mã AES-128 (0)
  • Bҧng 6.4: Các thông sӕ mô phӓng AES-192 (0)
  • Bҧng 6.5: Thông sӕ tӯQJEѭӟc mã hóa AES-192 (0)
  • Bҧng 6.6: Thông sӕ tӯQJEѭӟc giҧi mã AES-192 (0)
  • Bҧng 6.7: Các thông sӕ mô phӓng AES-256 (0)
  • Bҧng 6.8: Thông sӕ tӯQJEѭӟc mã hóa AES-256 (0)
  • Bҧng 6.9: Thông sӕ tӯQJEѭӟc giҧi mã AES-256 (0)

Nội dung

Lý do chӑQÿӅ tài

Internet là mӝt hӋ thӕng thông tin toàn cҫu có thӇ ÿѭӧc truy nhұp công cӝng gӗm các mҥQJ Pi\ WtQK ÿѭӧc liên kӃt vӟi nhau HӋ thӕng này truyӅn thông tin theo kiӇu nӕi chuyӇn gói dӳ liӋu (packet switching) dӵa trên mӝt giao thӭc liên mҥQJÿmÿѭӧc chuҭn hóa ± giao thӭc IP HӋ thӕng này bao gӗm hàng ngàn mҥng máy tính nhӓ KѫQFӫa các doanh nghiӋp, cӫa các viӋn nghiên cӭXYjFiFWUѭӡQJÿҥi hӑc, cӫDQJѭӡi dùng cá nhân và cỏc chớnh phӫ trờn toàn cҫXô 0ҥng Internet mang lҥi rҩt nhiӅu tiӋn ớch hӳu dөng và cung cҩSFKRQJѭӡi dùng mӝt khӕLOѭӧng thông tin và dӏch vө khәng lӗ Trong thұp kӹ TXD,QWHUQHWÿmSKiWWULӇn bùng nә vӟi tӕFÿӝ chóng mһt trên toàn thӃ giӟi cҧ vӅ sӕ Oѭӧng lүn kӻ thuұt Sӵ phát triӇn không chӍ ÿѫQJLҧn là sӕ Oѭӧng lӟn thành viên mӟi kӃt nӕi vào hӋ thӕng Internet mӛi giӡ mà còn là sӵ xâm nhұp cӫa nó vào các khía cҥnh cӫa cuӝc sӕng hiӋQÿҥi, vào cỏc hoҥWÿӝQJWKѭѫQJPҥi vӟi quy mụ lӟn nhӓ NKiFQKDXô+LӋn nay, cỏc tә chӭFFѫquan hay chính phӫ sӱ dөQJ,QWHUQHWÿӇ giӟi thiӋu các sҧn phҭm, dӏch vө hay ÿLӅu hành bҵng các website cӫa mình Theo thӡi gian, nó sӁ phát triӇQWKjQKWKѭѫQJPҥi ÿLӋn tӱ, mӑi hoҥWÿӝng kinh doanh, các giao dӏFKÿLӅXKjQKÿѭӧc thӵc hiӋn qua mҥng Internet Tuy nhiên, song song vӟi nhӳng tiӋn ích không thӇ phӫ nhұn mà mҥng Internet mang tӟLQJѭӡLGQJFzQÿӕi mһt vӟi hàng loҥWFiFQJX\FѫPjWURQJÿyQJX\FѫKjQJ ÿҫu là bӏ ÿiQKFҳSWK{QJWLQWKD\ÿәi thông tin truyӅn tҧi mӝt cách có chӫ ÿtFK%jLWRiQ ÿһt ra là làm thӃ QjRÿӇ bҧo mұt an toàn cho các dӳ liӋu trong quá trình truyӅn qua mҥng? Làm thӃ nào có thӇ bҧo vӋ chӕng lҥi các cuӝc tҩn công trong quá trình truyӅn tҧi các dӳ liӋXÿy",QWHUQHW3URWRFRO6HFXULW\,3VHFOjPӝt trong nhӳng giҧi pháp khҧ dөng

Cҩu trúc gói dӳ liӋu (IP, TCP, UDP và cҧ các giao thӭc ӭng dөQJÿѭӧc mô tҧ công khai, bҳWÿѭӧc gói IP trên mҥQJDLFNJQJ Fy WKӇ SKkQ WtFKJyLÿӇ ÿӑc phҫn dӳ liӋu chӭa bên WURQJÿyOjFKѭDNӇ hiӋn nay, các công cө bҳWYjSKkQWtFKJyLÿѭӧc xây dӵng vӟi tính QăQJPҥnh và phát hành rӝng rãi ViӋc bә VXQJFiFFѫFKӃ bҧo mұt vào mô hình TCP/IP, bҳWÿҫu tӯ giao thӭc IP là mӝt nhu cҫu cҩp bách

IP Security (IPsec) là mӝt giao thӭFÿѭӧc chuҭn hóa bӣi Internet Engineering Task Force (IETF) tӯ QăPQKҵm mөc ÿtFKQkQJFҩSFiFFѫFKӃ mã hóa và xác thӵc thông tin cho chuӛi thông tin truyӅQÿLWUrQPҥng bҵng giao thӭc IP Hay nói cách khác, IPsec là tұp hӧp cӫa các chuҭn mӣ ÿѭӧc thiӃt lұSÿӇ ÿҧm bҧo sӵ cҭn mұt dӳ liӋXÿҧm bҧo tính toàn vҽn dӳ liӋu và chӭng thӵc dӳ liӋu giӳa các thiӃt bӏ mҥng IPsec cung cҩp mӝWFѫFҩu bҧo mұt ӣ tҫng 3 (Network layer) cӫa mô hình OSI

Vӟi sӵ WăQJWUѭӣQJQKDQKEăQJWK{QJFQJYӟi nhu cҫu bҧo mұt thông tin trên mҥng ngày

6 càng lӟn, tӯ ÿyÿzLKӓi viӋc thӵc hiӋn mã hóa/giҧi mã thông tin vӟi tӕFÿӝ FDRKѫQ7ӕc ÿӝ mã hóa/giҧi mã cҫQ QKDQK KѫQ Pӭc có thӇ ÿiS ӭng bӣi cách triӇn khai bҵng phҫn mӅm trên hҫu hӃt các bӝ xӱ lý mҥng hiӋn nay ViӋc sӱ dөng Hardware Acceleration cho các thuұt toán bҧo mұt là giҧi pháp mӟi và tӓ ra rҩt hӳu hiӋu

Vӟi nhiӅX ѭX ÿLӇm và tính ӭng dөng cao cӫa IPsec, cùng xu thӃ sӱ dөng Hardware Acceleration giҧi quyӃt nhӳng tính toán phӭc tҥp thay cho phҫn mӅPW{LÿmTX\ӃWÿӏnh chӑQÿӅ WjL³&{QJQJKӋ IP Security và hiӋn thӵFWUrQ)3*$´ÿӇ nghiên cӭu.

MөFÿtFKQJKLrQFӭu

Mөc tiêu cӫDÿӅ tài là hiӇu vӅ nguyên lý, cách thӭc hoҥWÿӝng, nhӳQJѭXÿLӇm và hҥn chӃ cӫa IPsec; nghiên cӭu vӅ thuұt toán mã hóa dӳ liӋu AES-128/192/256 (Advanced Encryption Standard); thӵc hiӋn nhӳng mөc tiêu sau: ĈѭDUDP{KuQKFPGA-based IPsec Acceleration ĈѭDUDVѫÿӗ khӕi và mô tҧ hoҥWÿӝng cӫa lõi IP AES-128/192/256

Thӵc nghiӋm mã hóa, giҧLPm$(6YjÿyQJJyL,3VHFWUrQ)3*$

1.ĈӕLWѭӧng và phҥm vi nghiên cӭu

Nguyên lý, cách thӭc hoҥWÿӝng và các chӭFQăQJFѫEҧn cӫa IPsec

Thuұt toán mã hóa dӳ liӋu AES

Thӵc nghiӋm FPGA-based IPSec Acceleration

1.éQJKƭDNKRDKӑc và thӵc tiӉn cӫDÿӅ tài nghiên cӭu

HiӇXÿѭӧc giao thӭc bҧo mұt IPsec, ÿѭDUDFiFP{KuQKWăQJWӕc phҫn cӭng cho IPsec

HiӇXÿѭӧc lý thuyӃt mã hóa, giҧi mã AES-128/192/256

HiӋn thӵc mã hóa AES bҵng ngôn ngӳ Verilog, tӕLѭXWKLӃt kӃ nhҵm nâng cao hiӋu suҩt và tiӃt kiӋm tài nguyên

Phát triӇn nhӳng vҩQ ÿӅ nghiên cӭX WURQJ Wѭѫng lai: TӕL ѭX KyD WKLӃt kӃ mã hóa/giҧLPm$(6KѫQQӳa

Thӵc hiӋQ WăQJ Wӕc phҫn cӭng cho các khӕi khác trong giao thӭc IPsec: Ingress Packet Processor; Egress Packet Processor; HMAC authentication with SHA-1, SHA-2 512/384/256/224

Sӱ dөng lõi Intellectual Property (IP) AES-128/192/256 trong các thiӃt kӃ SoC sӱ dөQJWăQJWӕc phҫn cӭng cho mã hóa, giҧi mã

ThiӃt kӃ ÿѭӧFP{KuQKWăQJWӕc phҫn cӭng cho giao thӭc IPsec.

Bӕ cөc luұQYăQ

LuұQYăQEDRJӗPFKѭѫQJ

&KѭѫQJtrình bày vӅ giӟi thiӋu chung, mөFÿtFKQJKLrQFӭXÿӕLWѭӧng nghiên cӭu, phҥm vi nghiên cӭXêQJKƭDNKRDKӑc và thӵc tiӉn cӫa dӵ án

&KѭѫQJJLӟi thiӋu tәng quan vӅ IPsec, thuұt toán mã hóa AES, các chӃ ÿӝ mã hóa và giҧi mã phә biӃn

&KѭѫQJgiӟi thiӋu các phҫn mӅm và kit FPGA sӱ dөng trong dӵ án

&KѭѫQJÿѭDUDFiFP{KuQKKLӋn thӵc IPsec trên FPGA

&KѭѫQJWUuQKEj\FKLWLӃt kӻ thuұt thiӃt kӃ bӝ mã hóa, giҧi mã AES-128/192/256

&KѭѫQJÿѭDUDFiFNӃt quҧ mô phӓng và triӇn khai mã hóa AES-128/192/256 trên FPGA

&KѭѫQJÿѭDUDNӃt luұn, khuyӃn nghӏ, giӟi hҥQYjKѭӟng phát triӇn cӫDÿӅ tài

Tәng quan vӅ IP Security

KiӃn trúc IPsec

IPsec là mӝt giao thӭc phӭc tҥp, dӵa trên nӅn tҧng cӫa nhiӅu kӻ thuұWFѫVӣ khác nhau Xét vӅ mһt kiӃQWU~F,3VHFÿѭӧc xây dӵng dӵa trên các thành phҫQFѫEҧQVDXÿk\

Hình 2.1: Ki͇n trúc IP security [4]

Các thành phҫQFѫEҧn trong IPsec:

IP Security Protocol o Giao thӭc ESP (Encapsulation Security Protocol): Cung cҩp tính bҧo mұt, xác thӵc nguӗn gӕc dӳ liӋu; bҧo mұt tính toàn vҽn cӫa dӳ liӋu; và dӏch

9 vө chӕng phát lҥi o Giao thӭc AH (Authentication Header): Cung cҩp tính toàn vҽn dӳ liӋu và xác thӵc nguӗn gӕc dӳ liӋu; bҧo vӋ chӕng phát lҥi cho các cuӝc tҩn công phát lҥi

ThuұW WRiQ Pm KyD 0HVVDJH (QFU\SWLRQ ĈӏQK QJKƭD FiF WKXұt toán mã hóa và giҧi mã sӱ dөng trong IPsec IPsec chӫ yӃu dӵa vào các thuұt toán mã hóa ÿӕi xӭng o Data Encryption Standard (DES): DES là mӝt hӋ thӕng mã hóa khóa ÿӕi xӭng, DES sӱ dөng mӝt khóa 56-bit o Triple DES (3DES): Là mӝt biӃn thӇ cӫa DES 56-bit HoҥW ÿӝng WѭѫQJWӵ QKѭ'(6WURQJÿyGӳ liӋXÿѭӧc chia thành các khӕi 64-bit 3DES thӵc thi mӛi khӕi ba lҫn, mӛi lҫn vӟi mӝt khóa 56-ELWÿӝc lұp o Advanced Encryption Standard: Là mӝt thuұt toán mã hóa khӕLÿѭӧc chính phӫ Hoa KǤ áp dөng làm tiêu chuҭn mã hóa Thuұt toán AES là hӋ thӕQJPmKyDNKyDÿӕi xӭng, có thӇ mã hóa và giҧi mã thông tin Mã hóa chuyӇQÿәi dӳ liӋu thành mӝt dҥng không thӇ hiӇXÿѭӧc gӑi là ciphertext, giҧi mã ciphertext sӁ chuyӇQÿәi dӳ liӋu trӣ lҥi dҥQJEDQÿҫu cӫa nó gӑi là plaintext AES làm viӋc vӟi các khӕi dӳ liӋu 128-ELWYjÿӝ dài khóa 128- bit, 192-bit hoһc 256-bit

Message Integrity (Hash) Functions o Hash-based Message Authentication Code (HMAC): Là mӝt thuұt toán toàn vҽn dӳ liӋXÿҧm bҧo tính toàn vҽn cӫa bҧn tin TҥLÿҫu cuӕi, gói tin và mӝt khóa chia sҿ bí mұW ÿѭӧc gӱi thông qua mӝt thuұW WRiQ EăP WURQJÿyWҥo ra mӝt giá trӏ EăP*yLWLQYjJLiWUӏ EăPÿѭӧc gӱi qua mҥng o Message Digest 5 (MD5): Là mӝW KjP EăP ÿӇ mã hóa vӟi giá trӏ EăPOj-bit MD5 biӃQÿәi mӝt thông diӋp có chiӅu dài bҩt kì thành mӝt khӕLFyNtFKWKѭӟc cӕ ÿӏnh 128-ELW7K{QJÿLӋSÿѭDYjRVӁ ÿѭӧc cҳt thành các khӕi 512-ELWÿѭӧc padding sao cho chia chҹn cho 512 o Secure Hash Algorithm-1,2 (SHA-1,2): SHA là mӝt thuұWWRiQEăP GQJ ÿӇ chuyӇn mӝW ÿRҥn dӳ liӋu nhҩW ÿӏnh thành mӝW ÿRҥn dӳ liӋu có chiӅXGjLNK{QJÿәi vӟi xác suҩt khác biӋt cao SHA-1: Hash function 160- bit SHA-2 bao gӗm mӝt sӕ biӃn thӇ là SHA-224, SHA-256, SHA-384, SHA-512

Thuұt toán xác thӵF 3HHU DXWKHQWLFDWLRQ ĈӏQK QJKƭD FiF WKXұt toán xác thӵc thông tin sӱ dөng trong AH và ESP o Rivest, Shamir, and Adelman (RSA) Digital Signutures: Là mӝt hӋ thӕng mұt mã khóa bҩWÿӕi xӭng Nó sӱ dөng mӝt chiӅu dài khóa là 512-

10 bit, 768-bit, 1024-bit hoһc lӟQKѫQ,36HFNK{QJVӱ dөQJ56$ÿӇ mã hóa dӳ liӋu ChӍ sӱ dөQJ56$ÿӇ PmKyDWURQJJLDLÿRҥn xác thӵc ngang hàng

Quҧn lí khóa (Key management): Mô tҧ FiFFѫFKӃ quҧQOêYjWUDRÿәi khóa trong IPsec

MiӅn thӵc thi (Domain of Interpretation ± '2, ĈӏQK QJKƭD P{L WUѭӡng thӵc thi IPsec IPsec không phҧi là mӝt công nghӋ riêng biӋt mà là sӵ tә hӧp cӫa nhiӅXFѫFKӃ, giao thӭc và kӻ thuұWNKiFQKDXWURQJÿyPӛi giao thӭFFѫFKӃ ÿӅu có nhiӅu chӃ ÿӝ hoҥWÿӝng khác nhau ViӋF[iFÿӏnh mӝt tұp các chӃ ÿӝ cҫn thiӃt ÿӇ triӇn khai IPsec trong mӝt tình huӕng cө thӇ là chӭFQăQJFӫa miӅn thӵc thi Xét vӅ mһt ӭng dөng, IPsec thӵc chҩt là mӝt giao thӭc hoҥWÿӝng song song vӟi IP nhҵm cung cҩp 2 chӭFQăQJFѫEҧn mà IP nguyên thӫy chѭDFyÿyOjPmKyDYj xác thӵc gói dӳ liӋu

Giao thӭFWUDRÿәLNKyD,.(,QWHUQHW.H\([FKDQJHĈӇ thiӃt lұp các SA (Security Association) cho AH hoһc ESP, và duy trì quҧn lí các kӃt nӕi

Hình 2.2: Các thành ph̯QF˯E̫n cͯa Ipsec [5]

6HFXULW\ DVVRFLDWLRQV 6$ ÿѭӧc tҥo bӣL ,.( ÿѭӧc sӱ dөng trong IPsec ESP Security policy (SP) - chính sách bҧo mұt Kѭӟng dүn tҥo và lӵa chӑQ6$ÿӇ sӱ dөng trong IPsec.

Các tiêu chuҭQÿӏQKQJKƭD,3VHF

Các tiêu chuҭn trong giao thӭc IPsec bao gӗm:

Các tiêu chuҭn vӅ IPsec: KiӃn trúc chính bao gӗm các khái niӋP FKXQJ FiF ÿӏnh QJKƭD\rXFҫXYjFѫFKӃ bҧo mұt IPsec

Các tiêu chuҭn vӅ ,.(7UDR ÿәi khóa trong giao thӭc IP (IKE), giao thӭc quҧn lí khóa và SA trong giao thӭc IP (ISAKMP)

Các tiêu chuҭn vӅ các thuұt toán mұt mã

Internet Key Exchange

IKE là giao thӭc thӵc hiӋQTXiWUuQKWUDRÿәi khóa và thӓa thuұn các thông sӕ bҧo mұt vӟi QKDXQKѭ0mKyDWKӃ nào, mã hóa bҵng thuұWWRiQJuEDROkXWUDRÿәi khóa 1 lҫn Sau NKLWUDRÿәi xong thì sӁ Fyÿѭӧc mӝt thӓa thuұn giӳDKDLÿҫu cuӕLNKLÿy,3VHF6HFXULW\

SA là nhӳng thông sӕ bҧo mұWÿmÿѭӧc thӓa thuұn thành công, các thông sӕ SA này sӁ ÿѭӧFOѭXWURQJFѫVӣ dӳ liӋu cӫD6$7URQJTXiWUuQKWUDRÿәi khóa thì IKE dùng thuұt WRiQPmKyDÿӕi xӭng, nhӳng khóa này sӁ ÿѭӧFWKD\ÿәi theo thӡLJLDQĈk\Ojÿһc tính cӫa IKE giúp hҥn chӃ tình trҥng bҿ khóa cӫa các kҿ tҩn công IKE còn dùng 2 giao thӭc NKiF ÿӇ chӭng thӵF ÿҫu cuӕi và tҥo khóa: ISAKMP (Internet Security Association and Key Management Protocol) và Oakley

ISAKMP: Là giao thӭc thӵc hiӋn viӋc thiӃt lұp, thӓa thuұn và quҧn lý chính sách bҧo mұt SA

Oakley: Là giao thӭc làm nhiӋm vө chӭng thӵc khóa, bҧn chҩt là dùng thuұt toán Diffie-+HOOPDQÿӇ WUDRÿәi khóa bí mұWWK{QJTXDP{LWUѭӡQJFKѭDEҧo mұt Giao thӭc IKE dùng UDP port 500

Giao thӭF,.(FyFiFÿһFWtQKQKѭVDX

Chӕng lҥi các cuӝc tҩn công làm nghӁn mҥQJQKѭWҩn công tӯ chӕi dӏch vө DoS (Denial of Service)

Cung cҩp nhӳQJSKѭѫQJWLӋn cho hai bên vӅ sӵ ÿӗng ý nhӳng giao thӭc, thuұt toán và nhӳQJFKuDNKyDÿӇ sӱ dөng Ĉҧm bҧRWUDRÿәLNKyDÿӃQÿ~QJQJѭӡi dùng

Quҧn lý nhӳQJFKuDNKyDVDXNKLÿѭӧc chҩp nhұn Ĉҧm bҧo sӵ ÿLӅu khiӇQYjWUDRÿәi khóa an toàn

Cho phép chӭng thӵFÿӝng giӳDFiFÿӕLWѭӧng ngang hàng

Quá trình hoҥWÿӝng cӫD,.(ÿѭӧc chia ra làm 2 phase chính: Phase 1 và Phase 2, cҧ hai phase này nhҵm thiӃt lұp kênh truyӅn an toàn giӳDKDLÿLӇm Ngoài phase 1 và phase 2 còn có phase 1.5

,.( SKDVH Oj JLDL ÿRҥn bҳt buӝc phҧi có Phase này thӵc hiӋn viӋc xác thӵc và thӓa thuұn các thông sӕ bҧo mұt, nhҵm cung cҩp mӝt kênh truyӅn bҧo mұt giӳDKDLÿҫu cuӕi Các thông sӕ VDX NKL ÿӗng ý giӳa hai bên gӑi là SA, SA trong pha này gӑi là SA ISAKMP hay SA IKE Phase này sӱ dөng mӝt trong hai chӃ ÿӝ ÿӇ thiӃt lұp SA: ChӃ ÿӝ chính thӭc (Main mode) và chӃ ÿӝ tích cӵc (Aggressive mode) Các thông sӕ bҧo mұt bҳt buӝc phҧi thӓa thuұn trong phase 1 này là:

Thuұt toán mã hóa: DES, 3DES, AES

Thuұt toán hash: MD5, SHA

3KѭѫQJSKiS[iFWKӵc: Preshare-key, RSA

Main mode: Sӱ dөQJPHVVDJHÿӇ WUDRÿәi thӓa thuұn các thông sӕ vӟi nhau

Hai PHVVDJHÿҫXGQJÿӇ thӓa thuұn các thông sӕ cӫa chính sách bҧo mұt

Hai message tiӃSWKHRWUDRÿәi khóa Diffie-Hellman

Hai message cuӕi cùng thӵc hiӋn xác thӵc giӳa các thiӃt bӏ

0HVVDJHÿҫu tiên gӗm các thông sӕ cӫa chính sách bҧo mұt, khóa Diffie-Hellman

Message thӭ hai sӁ phҧn hӗi lҥi thông sӕ cӫa chính sách bҧo mұWÿѭӧc chҩp nhұn, NKyDÿѭӧc chҩp nhұn và xác thӵc bên nhұn

Message cuӕi cùng sӁ xác thӵc bên vӯa gӱi

IKE phase 2 là phase bҳt buӝF ÿӃn phase này thì thiӃt bӏ ÿҫu cuӕL ÿm Fy ÿҫ\ ÿӫ các thông sӕ cҫn thiӃt cho kênh truyӅn an toàn Quá trình thӓa thuұn các thông sӕ ӣ phase 2 OjÿӇ thiӃt lұp SA IPsec dӵa trên nhӳng thông sӕ ӣ SKDVH4XLFNPRGHOjSKѭѫQJWKӭc ÿѭӧc sӱ dөng trong phase 2 Các thông sӕ mà Quick mode thӓa thuұn trong phase 2:

Giao thӭc IPsec: ESP hoһc AH

IPsec mode: Tunnel mode hoһc Transport mode

,3VHF6$OLIHWLPH'QJÿӇ thӓa thuұn lҥi SA IPsec sau mӝt khoҧng thӡi gian mһc ÿӏnh hoһFÿѭӧc chӍ ÿӏnh

SA IPsec cӫa phase 2 hoàn toàn khác vӟi SA IKE ӣ phase 1, SA IKE chӭa các thông sӕ ÿӇ tҥo nên kênh truyӅn bҧo mұt, còn SA IPsec chӭa các thông sӕ ÿӇ ÿyQJJyLGӳ liӋu theo ESP hay AH, hoҥWÿӝng theo Tunnel mode hay Transport mode

IKE phase 1.5 là mӝWJLDLÿRҥn IKE không bҳt buӝc Phase IKE 1.5 cung cҩp mӝt lӟp xác thӵF ÿѭӧc gӑi là Xauth hoһc xác thӵc Extended Xác thӵc ,3VHF ÿѭӧc cung cҩp trong phase 1 xác thӵc các thiӃt bӏ ÿҫu cuӕi sӱ dөQJÿӇ thiӃt lұp kӃt nӕi IPsec Xauth bҳt ngѭӡi sӱ dөng phҧi xác thӵFWUѭӟc khi sӱ dөng các kӃt nӕi IPsec

Optional Phase 1.5: Xauth and Mode Config

New IPSec Tunnel or Rekey Phase I SA (ISAKMP SA)

Phase II SA (IPSec SA)

Phase II SA (IPSec SA)

Hình 2.3: 6˯ÿ͛ ho̩Wÿ͡ng cͯa IKE [8]

Security Association Database (SAD): Chӭa IPsec SAs, là chính sách bҧo mұWÿӝng

6$ÿѭӧF[iFÿӏnh bӣLÿӏa chӍ ÿtFKWURQJ,3+HDGHUYj63,WURQJ([WHQVLRQ+HDGHU

Chӭa trҥng thái mã hóa và xác thӵFÿӝng

&iF,3VHF6$VOX{QÿLWKHRFһp: inbound và outbound

6$'ÿѭӧc khóa bӣL63,ÿӕi vӟi các gói unicast)

6$V WKѭӡQJ ÿѭӧc tҥo bӣi IKE nhѭQJ FNJQJ Fy WKӇ ÿѭӧc thiӃt lұp thӫ công hoһc bҵng phҫn mӅm khác

Security Policy Database (SPD): ChӍ ÿӏnh chính sách bҧo mұWWƭQK7KѭӡQJÿѭӧc thiӃt lұp bӣi quҧn trӏ viên hӋ thӕng

Multi-homed nodes có mӝt SPD riêng cho mӛi giao diӋn mҥng Ánh xҥ FKtQKViFKJyLÿӃQYjÿLÿӇ thӵc thi

Bӝ chӑQ FKtQK ViFK Ĉӏa chӍ IP (nguӗQ Yj ÿtFK JLDR WKӭc vұn chuyӇn (TCP, UDP, ICMP), cәng nguӗQYjÿtFK

+jQKÿӝng: BYPASS (cho phép), DISCARD (chһn), hoһc PROTECT (bҧo vӋ)

Peer authorization database (PAD): Dùng WURQJ,.(ÿӇ ánh xҥ giӳDWrQÿѭӧc xác thӵc và ÿӏa chӍ IP .K{QJÿѭӧc thӵc hiӋQQKѭPӝWFѫVӣ dӳ liӋu thӵc tӃ

Ngoài ra, giao thӭc IKE chӭD ,.( 6$V 0DVWHU VHFUHW ÿѭӧc tҥo ra bҵQJ WUDR ÿәi khóa Diffie-Hellman Ĉѭӧc sӱ dөng trong quá trình khӣi tҥo IPsec SAs

ChӃ ÿӝ vұn hành cӫa IPsec

IPsec có 2 chӃ ÿӝ vұn hành chính: Transport và Tunnel

Transport mode: ChӍ có tҧi trӑng (dӳ liӋXÿѭӧc truyӅn) cӫa gói tin IP mӟi ÿѭӧc mã hóa và chӭng thӵF 7URQJTXi WUuQKÿӏnh tuyӃn thì IP header không bӏ chӍnh sӱa (mã hóa) Transport mode sӱa dөng trong giao tiӃp host-to-host

Tunnel mode: Toàn bӝ gói tin IP sӁ ÿѭӧc mã hóa và chӭng thӵF6DXÿyQy ÿѭӧFÿyQJJyLYjRPӝt gói tin IP mӟi vӟi IP header mӟi ChӃ ÿӝ 7XQQHOÿѭӧc sӱ dөQJ ÿӇ tҥo Virtual Private Network (mҥng riêng ҧo) phөc vө cho viӋc liên lҥc giӳa các mҥng, liên lҥc giӳa máy chӫ và mҥng, và giӳa các máy chӫ

Hình 2.5 Các ch͇ ÿ͡ v̵n hành cͯa IPsec [7]

ThiӃt lұSÿѭӡng hҫm (Tunnel Establishment)

Quá trình thiӃt lұp mӝt IPsec tunnel có thӇ ÿѭӧFFKLDWKjQKEѭӟc chính [8] :

1 Khӣi tҥo: IPsec tunnel có thӇ ÿѭӧc kích hoҥt bҵng tay hoһc tӵ ÿӝQJNKLOѭXOѭӧng truy cұp mҥQJÿѭӧc gҳn cӡ ÿӇ bҧo vӋ theo chính sách bҧo mұt IPsec Giao thӭc IKE có nhiӋm vө thӵc thi cho viӋc khӣi tҥo

2 IKE phase 1: ThiӃt lұp các tham sӕ và vұt liӋXFKtQKÿӇ bҧo vӋ cho IKE phase 2

3 IKE phase 2: ThiӃt lұp các tham sӕ và vұt liӋX FKtQK ÿӇ bҧo vӋ FKR JLDL ÿRҥn truyӅn dӳ liӋu Các tham sӕ và vұt liӋu chính này tҥo thành các IPsec SA

4 Quá trình truyӅn dӳ liӋu/ѭXOѭӧng truy cұp mҥQJÿѭӧFÿyQJJyLWKHRFiFWKXұt toán và tham sӕ ÿѭӧc cung cҩp bӣi IPsec SAs, giúp cung cҩp tính bҧo mұt và tính toàn vҽn

5 KӃW WK~F ÿѭӡng hҫm: MӝW ÿѭӡng hҫm bӏ ÿyQJ NKL ,3VHF 6$V Fӫa nó chҩm dӭt thông qua viӋc xóa hoһc hӃt hҥn IPsec SA có thӇ hӃt hҥn khi mӝt thӡi gian xác ÿӏQKÿmWU{LTXDKRһc khi mӝWOѭXOѭӧng dӳ liӋu [iFÿӏQKÿmÿLTXDÿѭӡng hҫm

2.1.7ĈiQKJLiѭXQKѭӧFÿLӇm cӫa IPsec ѬXÿLӇm:

Khi IPsec ÿѭӧc triӇn khai trên bӭF Wѭӡng lӱa hoһc bӝ ÿӏnh tuyӃn cӫa mӝt mҥng ULrQJWKuWtQKQăQJDQWRjQFӫa IPsec có thӇ áp dөng cho toàn bӝ OѭXOѭӧng vào và ra cӫa mҥQJULrQJÿyFiFWKjQKSKҫn khác không cҫn phҧi xӱ lý thêm các công viӋFOLrQTXDQÿӃn bҧo mұt

,3VHF ÿѭӧc thӵc hiӋQ ErQ Gѭӟi lӟS 7&3 Yj 8'3 ÿӗng thӡi nó hoҥW ÿӝng trong suӕWÿӕi vӟi các lӟp này Do vұy không cҫn phҧLWKD\ÿәi phҫn mӅm hay cҩu hình lҥi các dӏch vө NKL,3VHFÿѭӧc triӇn khai

IPsec có thӇ ÿѭӧc cҩXKuQKÿӇ hoҥWÿӝng mӝt cách trong suӕt ÿӕi vӟi các ӭng dөng ÿҫu cuӕLÿLӅu này giúp che dҩu nhӳng chi tiӃt cҩu hình phӭc tҥSPjQJѭӡi dùng phҧi thӵc hiӋn khi kӃt nӕLÿӃn mҥng nӝi bӝ tӯ xa thông qua mҥng Internet

Tҩt cҧ FiFJyLÿѭӧc xӱ lý theo IPsec sӁ bӏ WăQJNtFKWKѭӟc do phҧi thêm vào các WLrXÿӅ NKiFQKDXÿLӅu này làm cho hiӋu suҩt truyӅn tҧi cӫa mҥng giҧm xuӕng

,3VHFÿѭӧc thiӃt kӃ chӍ ÿӇ hӛ trӧ bҧo mұWFKROѭXOѭӧng IP, không hӛ trӧ các dҥng OѭXOѭӧng khác

ViӋc tính toán nhiӅu giҧi thuұt phӭc tҥp trong IPsec vүn còn là mӝt vҩn ÿӅ NKyÿӕi vӟi các trҥm làm viӋFYjPi\3&QăQJOӵc yӃu

ViӋc phân phӕi các phҫn cӭng và phҫn mӅm mұt mã vүn còn bӏ hҥn chӃ ÿӕi vӟi chính phӫ mӝt sӕ quӕc gia

IPsec Hardware Acceleration

Vӟi sӵ WăQJ WUѭӣQJ QKDQK EăQJ WK{QJ trên mҥng, cùng vӟi nhu cҫu bҧo mұt mҥng lӟn KѫQWӯ ÿyÿzLKӓi thӵc hiӋn mã hóa/giҧi mã vӟi tӕFÿӝ lӟn TӕFÿӝ mã hóa/giҧi mã cҫn QKDQKKѫQPӭc có thӇ ÿiSӭng bӣi cách triӇn khai bҵng phҫn mӅm trên hҫu hӃt các bӝ xӱ lý mҥng hiӋn nay ViӋc sӱ dөng Hardware Acceleration cho các thuұt toán bҧo mұWÿDQJ dҫn trӣ nên phә biӃn

Sau quá trình nghiên cӭu và tìm hiӇXW{LÿѭDUD mô hình xӱ lý IPsec:

Software implementation (Xӱ lý IPsec trên phҫn mӅm)

Cryptography hardware acceleration (7ăQJWӕc phҫn cӭng cho mã hóa/giҧi mã)

IPsec hardware acceleration (7ăQJWӕc phҫn cӭng cho giao thӭc IPsec)

IPsec Hardware Implementations (Xӱ lý IPsec trên phҫn cӭng)

Hình 2.6 Các gi̫i pháp tri͋n khai IPsec [3]

Xӱ lý IPsec trên phҫn mӅPOjP{KuQKNLQKÿLӇn, toàn bӝ giao thӭc IP security và quá trình mã hóa/giҧi mã dӳ liӋXÿӅXÿѭӧc thӵc hiӋn bҵng phҫn mӅm ViӋc tính toán nhiӅu giҧi thuұt phӭc tҥp trong IPsec là mӝt vҩQÿӅ NKyÿӕi vӟi các trҥm làm viӋc và máy PC QăQJOӵc yӃXĈӝ trӉ FNJQJOjPӝWÿLӇm yӃu cӫa mô hình này

ViӋc giҧm tҧi công viӋc cho CPU bҵng hDUGZDUHDFFHOHUDWLRQWăQJWӕc phҫn cӭng) là vҩn ÿӅ cҩp thiӃt hiӋQQD\QyJL~SWăQJWӕc viӋc tính toán nhiӅu giҧi thuұt phӭc tҥp vӟLÿӝ trӉ thҩp

Cryptography Hardware AFFHOHUDWLRQ 7K{QJ Oѭӧng IPsec có thӇ ÿѭӧc cҧi thiӋn bҵng cách giҧm tҧL FiF Fѫ FKӃ mã hóa và giҧi mã phӭc tҥp cho các khӕi cryptographic hardware acceleration ³Các ki͇n trúc CPU hi n t̩i cͯD,QWHO$0'Yj$50FNJQJEDR g͛m các chͱFQăQJPmKyDYjJL̫i mã AES-NI và ARMv8 Cryptographic Extension là nhͷng ví dͭ cho các t̵p l nh AES có th͋ ÿ˱ͫc s͵ dͭng thay cho tri͋n khai ph̯n m͉m AES Ngoài ra các h th͙ng trên chip (SoC) có th͋ chͱDFiFFKLSÿ͋ gi̫m t̫i x͵ lý m̵t

17 mã; Marvell Cryptographic Engines and Security Accelerator (CESA) là m͡t ví dͭ cho b͡ x͵ lý m̵t mã là m͡t ph̯n cͯa n͉n t̫ng SoC B͡ x͵ Oêÿ͋ gi̫m t̫i x͵ lý m̵WPmFNJQJ có th͋ là m͡t ph̯n cͯa b̫ng m̩ch mͧ r͡QJÿ˱ͫc k͇t n͙i vͣi bo m̩ch chính thông qua PCIe M͡t s͙ nhà cung c̭p cung c̭p các tri͋n khai cho các thu̵WWRiQPmKyDG˱ͣi d̩ng lõi sͧ trí tu (IP) có th͋ ÿ˱ͫc th͹FWKLWUrQFiF*38Ĉ͋ WăQJW͙c ph̯n cͱng mã hóa, m͡t GPU ch̩y lõi IP là m͡t ph̯n cͯa PCIe extension board trên máy tính [3]´

SADB IPSec SADB IPSec Protocol

Hình 2.7: 7ăQJW͙c ph̯n cͱng cho các thu̵t toán mã hóa, gi̫i mã phͱc t̩p [2] B̫ng 2.1: Tóm t̷WSK˱˯QJSKiSJL̫m t̫i các thu̵t toán mã hóa cho IPsec [2]

A Software SW SW SW SW

B Crytography hardware acceleration SW SW HW SW

,3VHF+DUGZDUH$FFHOHUDWLRQ7K{QJOѭӧQJ,3VHFFNJQJFyWKӇ ÿѭӧc cҧi thiӋn bҵng cách giҧm tҧi xӱ lý IPsec hoһc các bӝ phұn cӫDQyFKRFiFÿѫQYӏ WăQJWӕc phҫn cӭng IPsec HiӋn nay, mӝt sӕ công ty lӟQÿmWULӇn khai các phҫn cӫa quá trình xӱ lý mһt phҷng dӳ liӋu IPsec trên FPGA Các chӭFQăQJVDXÿyÿѭӧc triӇn khai trên phҫn mӅm có giao diӋn vӟi FPGA thông qua PCIe Tuy nhiên, phát triӇQFKR)3*$ÿzLKӓi nhiӅu yêu cҫu vӅ xӱ lý phҫm mӅm bên cҥnh kiӃn thӭc và kinh nghiӋm vӅ lұp trình phҫn cӭng

IPsec Hardware Implementations1Jѭӧc lҥi vӟLFiFFѫFKӃ WUѭӟFÿk\[ӱ lý IPsec có thӇ ÿѭӧc thӵc hiӋn hoàn toàn trên nӅn tҧng phҫn cӭng Quá trình xӱ Oê,3VHFÿѭӧc thӵc hiӋn trên FPGA, SPD và SAD cӫDQyÿѭӧc duy trì bӣi mӝt mһt phҷQJÿLӅu khiӇn bên ngoài.

Mã hóa AES

ChӭFQăQJ$GG5RXQG.H\

ChӭFQăQJ$GG5RXQG.H\WKӵc hiӋQQKѭVDX

%ѭӟc khӣi tҥo: XOR khóa mã vӟi ma trұn dӳ liӋu

%ѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra: XOR khóa vòng (round key) vӟi ma trұn trҥng thái Ĉӕi vӟLEѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra, vӏ WUt³NKyDPm´OjFiF³NKyDYzQJ´FzQGӳ liӋu là cӫa lҫQWtQKWUѭӟFÿy

ChӭFQăQJ6XE%\WHV

ChӭFQăQJ6XE%\WHVOjWKӵc hiӋn thay thӃ tӯng byte cӫa ma trұn trҥng thái, ngõ ra cӫa AddRoundKey, bҵng mӝt giá trӏ ÿmTX\ÿӏnh trong chuҭn AES BҧQJTX\ÿӏnh giá trӏ thay

ChӭFQăQJ6KLIW5RZV

ChӭFQăQJ6KLIW5RZVWKӵc hiӋn quay trái tӯng hàng cӫa ma trұn trҥng thái, ngõ ra cӫa SubBytes, theo byte vӟi hӋ sӕ WăQJGҫn tӯ ÿӃQ+jQJÿҫu tiên có hӋ sӕ quay là 0 thì FiFE\WHÿѭӧc giӳ nguyên vӏ trí Hàng thӭ 2 có hӋ sӕ TXD\OjWKuFiFE\WHÿѭӧc quay 1- byte Hàng thӭ ba quay 2-byte và hàng thӭ WѭTXD\-byte.

ChӭFQăQJ0L[&ROXPQV

ChӭF QăQJ 0L[&ROXPQV WKӵc hiӋn nhân tӯng cӝt cӫa ma trұn trҥng thái - ngõ ra cӫa ShiftRows, vӟi mӝt ma trұn chuyӇQÿәLTX\ÿӏnh bӣi chuҭn AES ViӋc biӃQÿәi mӝt cӝt cӫa ma trұn trҥQJWKiLÿѭӧc thӵc hiӋn bӣi hai phép toán là nhân và XOR.

ChӭFQăQJ.H\([SDQVLRQ

ChӭFQăQJ.H\([SDQVLRQWKӵc hiӋn tính toáQNKyDYzQJFKREѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra KӃt quҧ cӫa mӝt lҫn thӵc thi KeyExpansion là mӝt khóa vòng sӱ dөng cho chӭF QăQJ $GG5RXQG.H\ 9ӟi mã hóa AES-128/192/256, sӕ khóa vòng là 10/12/14 WѭѫQJӭng vӟi 9/11/13 lҫn AddRoundKey ӣ Eѭӟc lһp mã hóa và 1 lҫn AddRoundKey ӣ Eѭӟc tҥo ngõ ra KeyExpansion bao gӗm 4 phҫn: RotWord, SubWord, AddRcon và AddW

KeyExpansion cho AES-128 (Nk = 4): Mӛi khóa vòng có 128-ELW ÿѭӧc chia làm 4- word, mӛi word là 4-byte và kí hiӋu là w[j] vӟi j là sӕ nguyên Mã hóa AES-128 có 1 khóa mã và 10 khóa vòng nên tәng sӕ tӯ OjYjÿѭӧFÿiQKVӕ tӯ ÿӃn 43 Khóa mã có

4 tӯ là w[0], w[1], w[2] và w[3] Khóa vòng 1 có 4 tӯ là w[4], Z>@Z>@Z>@7ѭѫQJ tӵ, khóa vòng 10 có 4 tӯ là w[40], w[41], w[42], w[43]

Tӯ w[j] tính theo công thӭc sau, vӟi 3 < j < 44 [9] w[j] = AddW[j-4] = w[j-1] + w[j-4] w[j=4*n] = AddW[j-4] = trans(w[j-1]) + w[j-4]

Khi tớnh cỏc tӯ ӣ vӏ trớ j là bӝi sӕ cӫa QKѭZ>@Z>@ôYjZ>@WKuZ>M-1] phҧLÿѭӧc biӃQÿәi qua 3 chӭFQăQJ5RW:RUG6XE:RUGYj$GG5FRQJӑi là trans(w[j-@WUѭӟc khi XOR vӟi w[j-4]

ChӭFQăQJ5RW:RUG7Kӵc hiӋn quay trái tӯ w[j] mӝt byte

ChӭF QăQJ 6XE:RUG WKӵc hiӋn thay thӃ các phi tuyӃn tӯng byte cӫa kӃt quҧ RotWord theo bҧng S-box

ChӭFQăQJ$GG5FRQWKӵc hiӋn XOR kӃt quҧ SubWord và giá trӏ Rcon[j/4] vӟi j là bӝi sӕ cӫa 4 Sӕ Oѭӧng giá trӏ 5FRQ>M@OjWѭѫQJӭng vӟi 10 lҫn tính khóa vòng ChӭFQăQJ AddRcon sӁ tҥo ra kӃt quҧ cuӕi cùng cӫa biӃQÿәi trans(w[j-1])

ChӭFQăQJ$GG:WKӵc hiӋn XOR w[j-4] vӟi w[j-1] hoһc trans(w[j-1])

KeyExpansion cho AES-192 (Nk = 6): Tӯ Z>M@ÿѭӧc tính theo công thӭc sau [9] w[j] = AddW[j-6] = w[j-1] + w[j-6] w[j=6*n] = AddW[j-6] = trans(w[j-1]) + w[j-6]

KeyExpansion cho AES-256 (Nk = 8): Tӯ Z>M@ÿѭӧc tính theo công thӭc sau [9] w[j] = AddW[j-8] = w[j-1] + w[j-8] w[j=8*n] = AddW[j-8] = trans(w[j-1]) + w[j-8]

Có sӵ khác biӋt so vӟi AES-128/192: NӃu j-4 là bӝi sӕ cӫD1NWKu6XE:RUGÿѭӧc áp dөng cho w[j-@WUѭӟc XOR.

Giҧi mã AES

ChӭFQăQJ$GG5RXQG.H\ÿҧo

ChӭF QăQJ $GG5RXQG.H\ ÿҧo trong quá trình giҧL Pm FNJQJ FKtQK Oj FKӭF QăQJAddRoundKey trong quá trình mã hóa nên gӑi chung là AddRoundKey.

ChӭFQăQJ,QY6KLIW5RZV

,QY6KLIW5RZVOjÿҧo cӫa chӭFQăQJ6KLIIW5RZV,QY6KLIW5RZVWKӵc hiӋn quay phҧi tӯng hàng cӫa ma trұn trҥng thái sinh ra tӯ EѭӟFWUѭӟFÿytheo byte vӟi hӋ sӕ TXD\WăQJGҫn tӯ ÿӃQ+jQJÿҫu tiên có hӋ sӕ TXD\OjWKuFiFE\WHÿѭӧc giӳ nguyên vӏ trí Hàng thӭ hai có hӋ sӕ TXD\OjWKuÿѭӧc quay 1-byte, hàng thӭ ba quay 2-byte và hàng thӭ 4 quay 3-byte.

ChӭFQăQJ,QY6XE%\WHV

ChӭFQăQJ,QY6XE%\WHVOjWKӵc hiӋn thay thӃ tӯng byte cӫa ma trұn trҥng thái bҵng mӝt giá trӏ ÿmTX\ÿӏnh trong chuҭn AES BҧQJTX\ÿӏnh giá trӏ thay thӃ cho InvSubBytes gӑi là S-ER[ÿҧo (Inverse S-box).

ChӭFQăQJ,QY0L[&ROXPQV

InvMixColumns cӫa quá trình giҧLPmOjÿҧo cӫa MixColumns trong quá trình mã hóa Tӯng cӝt cӫa ma trұn trҥng thái sӁ ÿѭӧc nhân vӟi ma trұn chuyӇQÿәi.

Các chӃ ÿӝ mã hóa và giҧi mã

Electronic Codebook (ECB)

ECB là chӃ ÿӝ mã hóa tӯng khӕL ELW ÿӝc lұp Vӟi cùng mӝt khóa mã K, mӛi khӕi plaintext ӭng vӟi mӝt giá trӏ ciphertext cӕ ÿӏQKYjQJѭӧc lҥi

Mó húa ECB: C j = CIPH k (P j ), (M ôn)

Giҧi mó ECB: Pj = CIPH -1 k (C j ), (j = ôQ

4XiWUuQKPmKyD(&%3ODLQWH[WOjÿҫu vào trӵc tiӃSÿӇ thӵc thi thuұt toán mã hóa vӟi NKyDPm.ÿӇ tҥo ra ciphertext

Quá trình giҧi mã ECB: &LSKHUWH[WOjÿҫu vào trӵc tiӃSÿӇ thӵc thi thuұt toán giҧi mã vӟi NKyDPm.ÿӇ tҥo ra plaintext

Hình 2.11: Ch͇ ÿ͡ mã hóa, gi̫i mã ECB [20] ѬXÿLӇm:

ThiӃt kӃ phҫn cӭQJ ÿѫQ JLҧn VҩQ ÿӅ cҫn quan tâm chính là thiӃt kӃ logic cho thuұt toán mã hóa

Lӛi bit không bӏ lan truyӅn NӃu lӛi bit xuҩt hiӋn trên mӝt ciphertext cӫa mӝt khӕi dӳ liӋu thì nó chӍ ҧQK KѭӣQJ ÿӃn viӋc giҧi mã khӕi dӳ liӋX ÿy FKӭ không ҧnh KѭӣQJÿӃn viӋc giҧi mã các khӕi dӳ liӋu khác

Có thӇ thӵc hiӋn mã hóa/giҧi mã song song nhiӅu khӕi dӳ liӋXFQJO~FĈLӅu này JL~SWăQJWӕFÿӝ xӱ lí trong các hӋ thӕQJÿzLKӓi mã hóa/giҧi mã tӕFÿӝ cao

Khҧ QăQJEҧo mұt kém Do giá trӏ SODLQWH[WYjFLSKHUWH[Wÿѭӧc ánh xҥ ÿӝc lұp mӝt

- mӝt nên thông tin mã hóa dӉ bӏ sӱDÿәi bҵQJFiFKQKѭ[yDEӟt khӕi dӳ liӋu, chèn thêm khӕi dӳ liӋX KRiQ ÿәi vӏ trí khӕi dӳ liӋX ÿӇ tìm sai lӋch thông tin tҥL QѫL nhұn.

Cipher Block Chaining (CBC)

CBC là chӃ ÿӝ mã hóa chuӛi, kӃt quҧ mã hóa cӫa khӕi dӳ liӋXWUѭӟc (ciphertext) sӁ ÿѭӧc

25 tә hӧp vӟi khӕi dӳ liӋu kӃ tiӃSSODLQWH[WWUѭӟc khi thӵc thi mã hóa

Mã hóa CBC: C 1 = CIPH k (P 1 +IV)

Giҧi mã CBC: P1 = CIPH -1 k (C 1 )+IV

Hình 2.12: Ch͇ ÿ͡ mã hóa, gi̫i mã CBC [20]

Quá trình mã hóa CBC:

LҫQPmKyDÿҫu tiên: Plaintext XOR vӟi vector khӣi tҥo IV KӃt quҧ Eѭӟc trên là ÿҫu vào cho viӋc thӵc thi thuұt toán mã hóa vӟi khóa mã K

Lҫn mã hóa sau lҫQÿҫu tiên: Plaintext XOR vӟi ciphertext cӫa lҫQPmKyDWUѭӟc ÿy.Ӄt quҧ EѭӟFWUrQOjÿҫu vào cho viӋc thӵc thi thuұt toán mã hóa vӟi khóa mã

Quá trình giҧi mã CBC:

Lҫn giҧLPmÿҫXWLrQ&LSKHUWH[Wÿѭӧc thӵc thi quá trình giҧi mã vӟi khóa mã K KӃt quҧ EѭӟFWUrQÿѭӧc XOR vӟi vector khӣi tҥR,9ÿӇ tҥo ra plaintext

Lҫn giҧi mã sau lҫQÿҫXWLrQ&LSKHUWH[Wÿѭӧc thӵc thi quá trình giҧi mã vӟi khóa

26 mã K KӃt quҧ EѭӟFWUrQÿѭӧc XOR vӟi ciphertext sӱ dөng trong lҫn giҧLPmWUѭӟc ÿӇ tҥo ra plaintext ѬXÿLӇm:

Khҧ QăQJEҧo mұWFDRKѫQ(&%&LSKHUWH[WFӫa mӝt khӕi dӳ liӋu plaintext có thӇ khác nhau cho mӛi lҫn mã hóa vì nó phө thuӝc vào IV hoһc giá trӏ mã hóa (ciphertext) cӫa khӕi dӳ liӋu liӅQWUѭӟc

Quá trình giҧi mã vүn có thӇ thӵc hiӋn song song nhiӅu khӕi dӳ liӋu

ThiӃt kӃ phҫn cӭng phӭc tҥS KѫQ (&% 1JRjL ORJLF WKӵc thi thuұt toán mã hóa QJѭӡi thiӃt kӃ cҫn thiӃt kӃ thêm: Logic quҧQOtÿӝ dài chuӛi dӳ liӋu sӁ ÿѭӧc mã hóa, cө thӇ là sӕ Oѭӧng khӕi dӳ liӋu trong chuӛi dӳ liӋu; bӝ tҥo giá trӏ ngүu nhiên cho IV

Lӛi bit bӏ lan truyӅn NӃu mӝt lӛi bit xuҩt hiӋn trên ciphertext cӫa mӝt khӕi dӳ liӋu thì nó sӁ làm sai kӃt quҧ giҧi mã cӫa khӕi dӳ liӋXÿyYjNKӕi dӳ liӋu tiӃp theo

Không thӇ thӵc thi quá trình mã hóa song song vì xӱ lí cӫa khӕi dӳ liӋu sau phө thuӝc vào ciphertext cӫa khӕi dӳ liӋXWUѭӟc, trӯ lҫQPmKyDÿҫu tiên.

Cipher Feedback (CFB)

CFB là chӃ ÿӝ mã hóa mà ciphertext cӫa lҫn mã hóa hiӋn tҥi sӁ ÿѭӧc phҧn hӗi (feedback) ÿӃQ ÿҫu vào cӫa lҫn mã hóa tiӃS WKHR 1JKƭD Oj FLSKHUWH[W Fӫa lҫn mã hóa hiӋn tҥi sӁ ÿѭӧc sӱ dөQJÿӇ tính toán ciphertext cӫa lҫn mã hóa kӃ tiӃp

Hình 2.13: Ch͇ ÿ͡ mã hóa, gi̫i mã CFB [20]

Quá trình mã hóa CFB:

LҫQPmKyDÿҫu tiên: o Khӕi dӳ liӋu ngõ vào cӫa quá trình mã hóa lҩy tӯ IV, ӭng vӟi biӇu thӭc I1 o Vector khӣi tҥR,9ÿѭӧFPmKyDÿӇ tҥo ra mӝt khӕi giá trӏ chӭa b bit, ӭng vӟi biӇu thӭc O j o S bit MSB cӫa kӃt quҧ trên sӁ ÿѭӧF GQJ ÿӇ XOR vӟi s bit dӳ liӋu SODLQWH[WÿӇ tҥo ra s bit ciphertext, ӭng vӟi biӇu thӭc C # j

IV là giá trӏ không cҫn bҧo mұW QKѭQJ SKҧi là giá trӏ không thӇ dӵ ÿRiQ WUѭӟc ÿѭӧc ,9Fyÿӝ dài là b bit, bҵQJÿӝ dài cӫa mӝt khӕi dӳ liӋu mà chuҭn mã hóa quy ÿӏnh S là mӝt sӕ QJX\rQYjVEÿk\FKtQKOjÿӝ dài plaintext và ciphertext cho mӝt lҫn mã hóa/giҧi mã

Lҫn mã hóa sau lҫQÿҫu tiên: o Khӕi dӳ liӋu ngõ vào cӫDTXiWUuQKPmKyDÿѭӧc ghép giӳa b-s bit LSB cӫa khӕi ngõ vào cӫa lҫQPmKyDWUѭӟFÿyYjVELWFӫa ciphertext cӫa lҫn mã hóa WUѭӟFÿyӭng vӟi biӇu thӭc I j o Giá trӏ cӫDEѭӟFWUrQÿѭӧFPmKyDÿӇ tҥo ra mӝt khӕi giá trӏ chӭa b bit, ӭng

28 vӟi biӇu thӭc O j o S bit MSB cӫa kӃt quҧ trên sӁ ÿѭӧF GQJ ÿӇ XOR vӟi s bit dӳ liӋu SODLQWH[WÿӇ tҥo ra s bit ciphertext, ӭng vӟi biӇu thӭc C # j

Quá trình giҧLPm&)%WѭѫQJWӵ QKѭTXiWUuQKPmKyD&)%Yӟi ciphertext và plaintext KRiQÿәi vӏ trí cho nhau ѬXÿLӇm:

Khҧ QăQJEҧo mұWFDRKѫQ(&%&LSKHUWH[WFӫa mӝt khӕi dӳ liӋu plaintext có thӇ khác nhau cho mӛi lҫn mã hóa vì nó phө thuӝc vào IV hoһc giá trӏ mã hóa (ciphertext) cӫa khӕi dӳ liӋu liӅQWUѭӟc

Quá trình giҧi mã vүn có thӇ thӵc hiӋn song song nhiӅu khӕi dӳ liӋu

Tùy biӃQÿѭӧFÿӝ dài khӕi dӳ liӋu mã hóa, giҧi mã thông qua thông sӕ s

ThiӃt kӃ phҫn cӭng phӭc tҥSKѫQ&%&1JRjLQKӳng thành phҫQORJLFQKѭ&%& CFB cҫQ WKrP ORJLF ÿӇ chӑn sӕ bit cҫQ ÿѭӧc xӱ lí nӃu s là thông sӕ cҩu hình ÿѭӧc

Lӛi bit bӏ lan truyӅn NӃu mӝt lӛi bit xuҩt hiӋn trên ciphertext cӫa mӝt khӕi dӳ liӋu thì nó sӁ làm sai kӃt quҧ giҧi mã cӫa khӕi dӳ liӋXÿyYjNKӕi dӳ liӋu tiӃp theo

Không thӇ thӵc thi quá trình mã hóa song song vì xӱ lí cӫa khӕi dӳ liӋu sau phө thuӝc vào ciphertext cӫa khӕi dӳ liӋXWUѭӟc, trӯ lҫQPmKyDÿҫu tiên.

Output Feedback (OFB)

OFB là chӃ ÿӝ mã hóa mà giá trӏ ngõ ra cӫa khӕi thӵc thi thuұt toán mã hóa (không phҧi ciphertext) cӫa lҫn mã hóa hiӋn tҥi sӁ ÿѭӧc phҧn hӗLIHHGEDFNÿӃn ngõ vào cӫa lҫn mã hóa kӃ tiӃp

Hình 2.14: Ch͇ ÿ͡ mã hóa, gi̫i mã OFB [20]

Quá trình mã hóa OFB:

LҫQPmKyDÿҫu tiên: o Giá trӏ ,9ÿѭӧc lҩy làm khӕi giá trӏ ÿҫu vào mã hóa, ӭng vӟi biӇu thӭc I 1 o Thӵc thi giҧi thuұt mã hóa cho khӕi trên vӟi khóa mã K, ӭng vӟi biӇu thӭc

O j o XOR plaintext và kӃt quҧ cӫDEѭӟc trên, ӭng vӟi biӇu thӭc C j

Lҫn mã hóa sau lҫQÿҫXWLrQYjWUѭӟc lҫn cuӕi cùng: o Giá trӏ cӫa khӕLQJ}UDRXWSXWEORFNWUѭӟFÿyÿѭӧc lҩy làm khӕi giá trӏ ÿҫu vào mã hóa, ӭng vӟi biӇu thӭc I j o Thӵc thi giҧi thuұt mã hóa cho khӕi trên vӟi khóa mã K, ӭng vӟi biӇu thӭc

O j o XOR plaintext và kӃt quҧ cӫDEѭӟc trên, ӭng vӟi biӇu thӭc Cj

Lҫn mã hóa cuӕi cùng: o Giá trӏ cӫa khӕLQJ}UDRXWSXWEORFNWUѭӟFÿyÿѭӧc lҩy làm khӕi giá trӏ ÿҫu vào mã hóa, ӭng vӟi biӇu thӭc I j o Thӵc thi giҧi thuұt mã hóa cho khӕi trên vӟi khóa mã K, ӭng vӟi biӇu thӭc

O j o XOR plaintext vӟi các bit MSB cӫa kӃt quҧ cӫDEѭӟFWUrQWKHRÿӝ dài cӫa plaintext, ӭng vӟi biӇu thӭc C * n

Quá trình giҧi mã 2)%WѭѫQJWӵ QKѭTXiWUuQKPmKyD2)%Yӟi ciphertext và plaintext KRiQÿәi vӏ trí cho nhau

ChӃ ÿӝ OFB có nhӳQJÿһFÿLӇm cҫQFK~êQKѭVDX

Thuұt toán mã hóa không áp dөng trӵc tiӃSWUrQSODLQWH[WPjGQJÿӇ biӃQÿәi mӝt khӕi dӳ liӋu sinh ra tӯ IV và khӕi ngõ ra cӫa lҫQPmKyDWUѭӟFÿyĈLӇPQj\WѭѫQJ tӵ vӟi CFB

OFB khác vӟi CFB là nó xӱ lí trên mӝt khӕi dӳ liӋu vӟLÿӝ GjLELWÿҫ\ÿӫ QKѭ thuұW WRiQ Pm KyD TX\ ÿӏnh chӭ không xӱ lí trên mӝt phҫn hay mӝt vài bit cӫa khӕi dӳ liӋu ѬXÿLӇm:

Khҧ QăQJEҧo mұWFDRKѫQ(&%&LSKHUWH[WFӫa mӝt khӕi dӳ liӋu plaintext có thӇ khác nhau cho mӛi lҫn mã hóa vì nó phө thuӝc vào IV hoһc khӕi ngõ ra cӫa lҫn PmKyDWUѭӟFÿy

Lӛi bit không bӏ lan truyӅn Khi mӝt lӛi bit xuҩt hiӋn trên mӝt ciphertext, nó chӍ ҧQKKѭӣQJÿӃn kӃt quҧ giҧi mã cӫa khӕi dӳ liӋu hiӋn tҥi

ThiӃt kӃ phҫn cӭQJÿѫQ giҧQKѫQ&)%

Không thӇ thӵc hiӋn mã hóa/giҧi mã song song nhiӅu khӕi dӳ liӋu vì lҫn mã hóa/giҧi mã sau phө thuӝc vào khӕi ngõ ra cӫa lҫn mã hóa/giҧi mã liӅQWUѭӟFÿy

Counter (CTR)

CTR là chӃ ÿӝ mã hóa sӱ dөng mӝt tұp các khӕi ngõ vào, gӑLOjFiFFRXQWHUÿӇ sinh ra mӝt tұp các giá trӏ ngõ ra thông qua mӝt thuұWWRiQPmKyD6DXÿyJLiWUӏ ngõ ra sӁ ÿѭӧc XOR vӟi SODLQWH[WÿӇ tҥo ra ciphertext trong quá trình mã hóa, hoһc XOR vӟi ciphertext ÿӇ tҥo ra plaintext trong quá trình giҧi mã

Hình 2 15: Ch͇ ÿ͡ mã hóa, gi̫i mã CTR [20]

Giá trӏ cӫa khӕLQJ}UDRXWSXWEORFNÿѭӧc tҥo tӯ giá trӏ cӫa khӕi bӝ ÿӋm thӭ j bҵng cách thӵc thi giҧi thuұt mã hóa vӟi khóa K, ӭng vӟi biӇu thӭc Oj

Giá trӏ WUrQÿѭӧc XOR vӟi plaintext thӭ MÿӇ tҥo ra ciphertext thӭ j, ӭng vӟi biӇu thӭc C j Ĉӕi vӟi khӕi dӳ liӋu cuӕi cùng cӫa chuӛi dӳ liӋu, nӃXÿӝ dài bit cӫa plaintext ít KѫQÿӝ GjLELWTX\ÿӏnh bӣi chuҭn mã hóa thì chӍ lҩy các bit trӑng sӕ cao cӫa khӕi ngõ ra (output block) XOR vӟi plaintext, ӭng vӟi biӇu thӭc C * n

Giá trӏ cӫa khӕi ngõ ra (output block) ÿѭӧc tҥo tӯ giá trӏ cӫa khӕi bӝ ÿӋm thӭ j bҵng cách thӵc thi giҧi thuұt mã hóa vӟi khóa K, ӭng vӟi biӇu thӭc O j

Giá trӏ WUrQÿѭӧc XOR vӟi ciphertext thӭ MÿӇ tҥo ra plaintext thӭ j, ӭng vӟi biӇu thӭc C j Ĉӕi vӟi khӕi dӳ liӋu cuӕi cùng cӫa chuӛi dӳ liӋu, nӃXÿӝ dài bit cӫa ciphertext ít KѫQÿӝ GjLELWÿѭӧFTX\ÿӏnh bӣi chuҭn mã hóa thì chӍ lҩy các bit trӑng sӕ cao cӫa khӕi ngõ ra XOR vӟi ciphertext, ӭng vӟi biӇu thӭc P * n

ChӃ ÿӝ CTR có nhӳQJÿһFÿLӇm cҫn chú ý sau:

Thuұt toán mã hóa không áp dөng trӵc tiӃSWUrQSODLQWH[WPjGQJÿӇ biӃQÿәi mӝt khӕi dӳ liӋu sinh ra tӯ các bӝ ÿӃm (counter)

Quá trình mã hóa/giҧi mã cӫa mӛi khӕi dӳ liӋXOjÿӝc lұp ѬXÿLӇm:

Khҧ QăQJEҧo mұWFDRKѫQ(&%7X\TXiWUuQKPmKyDJLҧi mã cӫa mӛi khӕi dӳ liӋXOjÿӝc lұp nhӳng mӛi plaintext có thӇ ánh xҥ ÿӃn nhiӅu ciphertext tùy vào giá trӏ bӝ ÿӃm cӫa các lҫn mã hóa

Có thӇ mã hóa/giҧi mã song song nhiӅu khӕi dӳ liӋu

Phҫn cӭng cҫn thiӃt kӃ thêm các bӝ ÿӃm counter hoһc giҧi thuұt tҥo các giá trӏ counter không lһp lҥi

&+ѬѪ1*3: PHҪN MӄM VÀ KIT FPGA SӰ DӨNG TRONG

Phҫn mӅm mô phӓng Cadence

Hình 3.1: Ph̯n m͉m mô ph͗ng Cadence [13]

Cadence là mӝt trong nhӳng công cө (phҫn mӅm) thiӃt kӃ vi mҥch WѭѫQJWӵ phә biӃn hiӋn nay Công cө này cung cҩSÿӫ WtQKQăQJFKRYLӋc thiӃt kӃ vi mҥch nhanh chóng và dӉ dàng

9HULILFDWLRQOjEѭӟc quan trӑQJYjWKѭӡng gһp nhiӅXNKyNKăQtrong quá trình nghiên cӭu các mҥch tích hӧp SoC tӕFÿӝ cao hiӋn nay Giҧi pháp mô phӓQJ&DGHQFHWăQJFѭӡng khҧ QăQJGӵ ÿRiQQăQJVXҩt và chҩWOѭӧng

Cung cҩp các sӕ liӋu ÿӇ ÿROѭӡng tiӃQÿӝ trong quá trình Verification

Sӱ dөng các khái niӋm trӯXWѭӧng bao gӗm UVM, OVM, và eRM

Tұn dөng tӕLÿDKLӋu suҩWÿѫQYjÿDO}L

Công cө Testbench Verification cӫa Cadence tӵ ÿӝng hóa viӋc tҥo và tái sӱ dөng WHVWEHQFKÿӗng thӡi cung cҩp hӛ trӧ ÿDQJ{QQJӳ và sӱa lӛi nâng cao Sӱ dөng các công nghӋ Qj\QJѭӡi dùng có thӇ ÿҥWÿѭӧc quá trình Verification chҩWOѭӧQJQKDQKKѫQYjFDRKѫQWҥi các cҩSÿӝ block, chip, và hӋ thӕng

Phҫn mӅm Vivado

Vivado là phҫn mӅm có rҩt nhiӅu chӭFQăQJGQJÿӇ lұp trình và phát triӇn cho tҩt cҧ các loҥi chip cӫa Xilinx Nói mӝt cách ngҳn gӑn, nó hӛ trӧ tҩt cҧ các khâu cӫa quá trình thiӃt kӃ logic sӱ dөng FPGA

Vivado Design Suite cung cҩp mӝWP{LWUѭӡQJÿӇ cҩu hình, thӵc thi, kiӇm tra và tích hӧp

IP (Intellectual Property) IP có thӇ bao gӗm logic, các vi xӱ lý nhúng, các module xӱ lý tín hiӋu sӕ DSP, hoһc các thiӃt kӃ thuұt toán &iFWtQKQăQJFKtQKWURQJTXiWUuQKWKLӃt kӃ:

Xilinx Virtex UltraScale+ FPGA

Giӟi thiӋu vӅ FPGA

Field Programmable Gate Array (FPGA) là mӝt chip logic sӕ có thӇ lұSWUuQKÿѭӧc, tӭc là có thӇ sӱ dөQJFK~QJÿӇ lұp trình cho hҫu hӃt các chӭFQăQJFӫa bҩt kǤ mӝt thiӃt kӃ sӕ nào

Bӝ nhӟ WƭQKÿҫu tiên dӵa trên FPGA WKѭӡQJÿѭӧc gӑi là SRAM trên nӅQ)3*$ÿѭӧFÿӅ xuҩt bӣi :DKOVWURPYjRQăP6DXÿyEҧQWKѭѫQJPҥi cӫD)3*$ÿѭӧc Xilinx giӟi thiӋXYjRQăP Lúc này nó gӗm mӝt mҧng cӫa các khӕi logic có thӇ tái cҩu hình ±

&RQILJXUDEOH/RJLF%ORFNV&/%VYjFiFÿҫu vào ra ± I/O (input/output) Chip FPGA ÿҫu tiên chӭa 64 CLBs và 58 I/Os Phҫn lӟn các sҧn phҭm FPGA trên thӏ WUѭӡng hiӋn nay

36 ÿӅu dӵa trên công nghӋ SRAM vӟi 2 hãng sҧn xuҩt lӟn nhҩt là Xilinx và Altera Ngoài ra còn có các hãng sҧn xuҩW )3*$ QKѭQJ Yӟi mөF ÿtFK FKX\rQ GөQJ QKѭ $WPHO $FWHO Lattice, SiliconBlue

KiӃQWU~FFѫEҧn cӫa FPGA bao gӗm 3 thành phҫn chính: Khӕi logic có thӇ tái cҩu hình CLBs thӵc hiӋn các chӭFQăQJORJLFFiFWjLQJX\rQNӃt nӕi Programmable Interconnect có thӇ lұSWUuQKÿӇ kӃt nӕLFiFÿҫXYjRYjÿҫu ra cӫa các CLB và các khӕi I/O bên trong; các khӕi I/O cung cҩp giao tiӃp giӳa các ngoҥLYLYjFiFÿѭӡng tín hiӋu bên trong

Khӕi logic có thӇ tái cҩu hình: MөFÿtFKFӫa viӋc lұp trình khӕi logic trong FPGA

Oj ÿӇ cung cҩp các tính toán và các phҫn tӱ nhӟ Fѫ EҧQ ÿѭӧc sӱ dөng trong hӋ thӕng sӕ Mӝt phҫn tӱ ORJLFFѫEҧn gӗm mӝt mҥch tә hӧp có thӇ lұp trình, mӝt Flip-Flop hoһc mӝt chӕt (latch) Ngoài khӕL ORJLF Fѫ EҧQ ÿy QKLӅu chip FPGA hiӋn nay gӗm mӝt hӛn hӧp các khӕi khác nhau, mӝt sӕ WURQJÿyFKӍ ÿѭӧc dùng cho các chӭFQăQJFө thӇ, chҷng hҥn nKѭFiFNKӕi bӝ nhӟ chuyên dөng, các bӝ nhân hoһc các bӝ ghép kênh

Tài nguyên kӃt nӕi: Các liên kӃt trong mӝW)3*$GQJÿӇ liên kӃt các khӕi logic và I/O lҥi vӟL QKDX ÿӇ tҥo thành mӝt thiӃt kӃ Bao gӗm các bӝ ghép kênh, các transistor và bӝ ÿӋm ba trҥng thái Nhìn chung, các transistor và bӝ ghép kênh ÿѭӧc dùng trong mӝt cөPORJLFÿӇ kӃt nӕi các phҫn tӱ logic lҥi vӟi nhau, trong khi ÿy Fҧ ED ÿӅX ÿѭӧc dùng cho các cҩX WU~F ÿӏnh tuyӃn bên trong FPGA Mӝt sӕ FPGA cung cҩp nhiӅu kӃt nӕLÿѫQJLҧn giӳa các khӕi logic, mӝt sӕ khác cung cҩp ít kӃt nӕLKѫQQrQÿӏnh tuyӃn phӭc tҥSKѫQ

Khӕi I/O khҧ trình: I/O cung cҩp giao tiӃp giӳa các khӕi logic và kiӃQWU~Fÿӏnh tuyӃQ ÿӃn các thành phҫn bên ngoài Mӝt trong nhӳng vҩQ ÿӅ quan trӑng nhҩt trong thiӃt kӃ kiӃn trúc I/O là viӋc lӵa chӑn các tiêu chuҭQÿLӋn áp cung cҩp và ÿLӋn áp tham chiӃu

Theo thӡi gian, các kiӃQWU~F)3*$FѫEҧQÿmÿѭӧc phát triӇQKѫQQӳa thông qua viӋc bә sung các khӕi chӭFQăQJÿһc biӋt có thӇ lұSWUuQKQKѭEӝ nhӟ trong (Block RAMs), logic sӕ hӑc (ALU), bӝ nhân, DSP, và thұm chí là bӝ vi xӱ OtQK~QJÿѭӧc thêm vào do nhu cҫu cӫa các nguӗn tài nguyên cho mӝt ӭng dөng.

KiӃn trúc Xilinx FPGA

CҩXWU~FFѫEҧn cӫa mӝt FPGA bao gӗm các yӃu tӕ sau:

Look-up table (LUT): Phҫn tӱ này thӵc hiӋn các hoҥt ÿӝng logic

Flip-Flop (FF): Phҫn tӱ nhӟ OѭXWUӳ kӃt quҧ cӫa LUT

Wires: Các phҫn tӱ này kӃt nӕi các phҫn tӱ vӟi nhau

Input/Output pads: Là các cәng vұt lý có sҹn nhұn dӳ liӋu vào và ra khӓi FPGA

Sӵ kӃt hӧp cӫa các yӃu tӕ này tҥo thành kiӃQWU~FFѫEҧn cӫD)3*$ÿѭӧc hiӇn thӏ ӣ hình

Gѭӟi KiӃQWU~FQj\Ojÿӫ ÿӇ thӵc hiӋn bҩt kì thuұWWRiQQjRQKѭQJNӃt quҧ WKXÿѭӧc sӁ bӏ hҥn chӃ vӅ WK{QJ Oѭӧng tính toán, tài nguyên cҫn thiӃt và tҫn sӕ xung nhӏp có thӇ ÿҥt ÿѭӧc

KiӃn trúc Contemporary FPGA kӃt hӧp các yӃu tӕ FѫEҧn cùng vӟi các khӕLOѭXWUӳ dӳ liӋu và tính toán bә VXQJOjPWăQJPұWÿӝ tính toán và hiӋu quҧ cӫa thiӃt bӏ Các yӃu tӕ bә sung gӗm:

Bӝ nhӟ QK~QJGQJÿӇ OѭXWUӳ dӳ liӋu phân tán

Phase-ORFNHG ORRSV 3//V ÿӇ lái FPGA fabric vӟi các tӕF ÿӝ xung nhӏp khác nhau

Bӝ ÿLӅu khiӇn bӝ nhӟ ngoài chip

Sӵ kӃt hӧp cӫa các yӃu tӕ này cung cҩp cho FPGA tính linh hoҥW ÿӇ thӵc hiӋn bҩt kǤ thuұt toán phҫn mӅm nào chҥy trên bӝ xӱ lý

Hình 3.5: Ki͇n trúc Contemporary FPGA [15]

LUT: Là khӕi xây dӵQJFѫEҧn cӫa Xinlinx FPGA và có khҧ QăQJWKӵc hiӋn bҩt kǤ chӭc

QăQJORJLFQjRFӫa các biӃn N Boolean VӅ FѫEҧn, phҫn tӱ này là mӝt bҧng chân lý trong ÿyFiFNӃt hӧSÿҫu vào khác nhau thӵc hiӋn các chӭFQăQJNKiFQKDXÿӇ mang lҥi giá trӏ ÿҫu ra Giӟi hҥn vӅ NtFKWKѭӟc cӫa bҧng chân lý Oj1WURQJÿy1Ojÿҥi diӋn cho sӕ Oѭӧng ÿҫu vào cӫa /87Ĉӕi vӟL1ÿҫu vào, sӕ Oѭӧng vӏ trí bӝ nhӟ ÿѭӧc truy cұp bӣi bҧng là

2 N , cho phép bҧng thӵc hiӋn sӕ chӭFQăQJ N^N Giá trӏ tiêu biӇu cӫa N trong các thiӃt bӏ Xilinx là 6 TriӇn khai phҫn cӭng cӫa LUT có thӇ ÿѭӧc coi là mӝt tұp hӧp các ô nhӟ ÿѭӧc kӃt nӕi vӟi bӝ ghép kênh &iFÿҫu vào cӫD/87ÿyQJYDLWUzOjFiFELWFKӑn trên bӝ ghép NrQKÿӇ chӑn kӃt quҧ tҥi mӝt thӡLÿLӇm nhҩWÿӏnh LUT có thӇ ÿѭӧc sӱ dөng làm công cө tính toán hàm và phҫn tӱ OѭXWUӳ dӳ liӋu

Hình 3.6: ChͱFQăQJWLrXEL͋u cͯa LUT là m͡t t̵p hͫp các ô nhͣ [15]

Flip-Flop: LjÿѫQYӏ OѭXWUӳ FѫEҧn trong cҩu trúc FPGA Phҫn tӱ Qj\OX{Qÿѭӧc ghép nӕi vӟL/87ÿӇ hӛ trӧ ORJLFSLSHOLQLQJYjOѭXWUӳ dӳ liӋu CҩXWU~FFѫEҧn cӫa mӝt flip- flop bao gӗm data input, clock input, clock enable, reset, và data output Trong quá trình hoҥWÿӝng, bҩt kǤ giá trӏ nào tҥi cәQJÿҫu vào dӳ liӋXÿӅXÿѭӧc chӕt và chuyӇQÿӃQÿҫu ra trên mӛi xung clock MөFÿtFKFӫa clock enable là cho phép flip-flop giӳ mӝt giá trӏ cө thӇ trong nhiӅu xung clock Data input chӍ ÿѭӧc chӕt và chuyӇQÿӃn cәQJÿҫu ra dӳ liӋu khi cҧ FORFNYjFORFNHQDEOHÿӅu có giá trӏ bҵng mӝt

DSP Block: Khӕi tính toán phӭc tҥp nhҩt có sҹn trong Xilinx FPGA là khӕi DSP Khӕi

DSP là mӝWÿѫQYӏ logic sӕ hӑF$/8ÿѭӧc nhúng vào kӃt cҩu cӫa FPGA, bao gӗm mӝt chuӛi gӗm 3 khӕi khác nhau Chuӛi tính toán trong DSP bao gӗm mӝWÿѫQYӏ cӝng/trӯ ÿѭӧc kӃt nӕi vӟi mӝt sӕ nhân, và kӃt nӕi vӟi mӝt công cө cӝng/trӯWtFKONJ\FXӕi cùng Chuӛi này cho phép mӝWÿѫQYӏ DSP duy nhҩt thӵc hiӋn các chӭFQăQJ p = a x (b + d) + c hoһc p += a x (b + d)

Storage Elements: FPGA bao gӗm các thành phҫn bӝ nhӟ nhúng có thӇ ÿѭӧc sӱ dөng làm bӝ nhӟ truy cұp ngүu nhiên (RAM), bӝ nhӟ chӍ ÿӑc (ROM) hoһc shift registers Các thành phҫn này là block RAMs (BRAMs), UltraRAM blocks (URAMS), LUTs, và shift registers (SRLs).

Virtex UltraScale+ FPGA VU7P

KiӃn trúc Xilinx UltraScale bao gӗm các hӑ FPGA hiӋXQăQJ FDR036R&Yj 5)6R& ĈiSӭng nhiӅu yêu cҫu hӋ thӕng, tұp trung vào viӋc giҧm tәng mӭc tiêu thө ÿLӋn thông qua nhiӅu công nghӋ tiên tiӃn

9LUWH[8OWUD6FDOH)3*$V%ăQJWK{QJWKXSKiWFDRQKҩt, DSP count cao nhҩt, và bӝ nhӟ trong cao nhҩt trong kiӃn trúc UltraScale Virtex UltraScale+ FPGA FNJQJFXQJFҩp nhiӅu tùy chӑn vӅ QăQJ Oѭӧng mang lҥi sӵ cân bҵng tӕL ѭX JLӳa hiӋX QăQJ KӋ thӕng và ÿLӋn QăQJWLrXWKө nhӓ nhҩt

Hình 3.9: Tóm t̷WWtQKQăQJFͯa Virtex UltraScale+ FPGA [16]

Configurable Logic Block (CLB): Mӛi CLB trong kiӃn trúc UltraScale chӭa 8 LUTs và

16 flip-flops LUTs có thӇ ÿѭӧc cҩu hình là mӝt LUT có 6-input vӟi 1-output; hoһc hai LUT có 5-input vӟLÿҫu ra riêng biӋWYjÿҫu vào chung Mӛi LUT tùy chӑn có thӇ ÿѭӧc OѭXWUӳ trong mӝt flip-flop Ngoài LUTs và flip-flops, CLB còn chӭa logic sӕ hӑc và các bӝ JKpSNrQKÿӇ tҥo ra các hàm logic rӝQJKѫQ

Mӛi CLB chӭa mӝt slice Có hai loҥi slice: SLICEL và SLICEM LUTs trong SLICEM có thӇ ÿѭӧc cҩX KuQK QKѭ -ELW 5$0 QKѭ 32-bit shift registers (SRL32), hoһc hai SRL16s Các CLB trong kiӃQWU~F8OWUD6FDOHÿmWăQJNKҧ QăQJÿӏnh tuyӃn và kӃt nӕi so vӟi các CLB trong các thiӃt bӏ Xilinx thӃ hӋ WUѭӟc

&+ѬѪ1*4: HIӊN THӴC IP SECURITY TRÊN FPGA

Bӝ xӱ lý gói tin IPsec bao gӗm 3 khӕi chính: Khӕi xӱ lý JyLWLQÿҫu vào (Ingress Packet Processing), khӕi xӱ lý JyLWLQÿҫu ra (Egress Packet Processing) và khӕi mã hóa/giҧi mã (Crypto Processing)

Ingress Packet Processing bao gӗm: Ethernet RxMAC, Ingress Packet Header, Ingress Packet Parser, Ingress VRF Lookup, Ingress Security Policy, Ingress SPDB, Ingress SADB, Ingress Packet Reorder, Ingress Quality of Service, PCIe Card to Host

Egress Packet Processing bao gӗm: PCIe Host to Card, Egress Packet Header, Egress Packet Parser, Egress VRF Lookup, Egress Security Policy, Egress SA Lookup, Egress SADB, ESP Packet Encapsulation, Egress Packet Header Editor, Egress Packet Reorder, Egress Quality of Service, Ethernet TxMac

Crypto Processing: Encrypt, Decrypt Packet AES128/192/256

Hình 4.1: Hi n th͹c IPsec trên FPGA

Khӕi xӱ lý SDFNHWÿҫu vào bao gӗm các khӕi vӟi chӭFQăQJVDX

Ethernet RxMAC: Xӱ lý IUDPH (WKHUQHW ÿҫu vào Các hӋ thӕng giao tiӃp qua Ethernet chia mӝt dòng dӳ liӋu thành các mҧnh ngҳQKѫQJӑi là frame Mӛi frame gӗPFyÿӏa chӍ nguӗQÿӏa chӍ ÿtFKYjGӳ liӋu kiӇm tra lӛi sao cho các frame bӏ Kѭ hҥi có thӇ ÿѭӧc phát hiӋn và loҥi bӓ Các trҥm Ethernet giao tiӃp vӟi nhau bҵng cách gӱi cho nhau các gói dӳ liӋu, tӯng gói dӳ liӋXÿѭӧc gӱi và chuyӇn phát riêng lҿ Mӛi trҥP(WKHUQHWÿѭӧc cҩp mӝWÿӏa chӍ MAC 48-ELWĈӏa chӍ 0$&ÿѭӧc dùng

42 ÿӇ [iFÿӏnh nguӗQYjÿtFKFӫa gói dӳ liӋu Gói tin Ethernet gӗm có preamble, start frame delimiter (SPD); frame bҳW ÿҫu ngay sau SFD; frame kӃt thúc vӟi cyclic redundancy check 32-ELW GQJ ÿӇ phát hiӋn dӳ liӋX Kѭ Kӓng trong khi truyӅn Khӕi xӱ lý Ethernet bao gӗm các khӕi Physical Coding Sublayer (PCS), Physical Medium Attachment (PMA), Physical Medium Dependent (PMD), Media Access Control (MAC) và Logical Link Control (LLC)

Ingress Packet Header: Xӱ lýEyFWiFKWLrXÿӅ JyLWLQÿҫu vào (Ethernet header, IP KHDGHU(63KHDGHUô

Ingress Packet Parser: Khi nhұQÿѭӧc mӝWJyLWLQÿӃn, khӕi này sӁ xӱ lý WLrXÿӅ cӫDJyLWLQÿѭDUDQKӳng thông tin cҫn thiӃWÿӇ cung cҩp cho khӕi Ingress VRF Lookup

Ingress VRF Lookup: TiӃp nhұn thông tin bao gӗm Port_ID, MAC Address, VLAN_ID, IP address ÿӇ tra cӭXUDÿѭӧc VRF_ID ÿѭDTXDNKӕi Ingress Security Policy

Ingress Security Policy: TҥL ÿk\ JyL WLQ VӁ ÿѭӧc quyӃW ÿӏnh là loҥi bӓ ÿѭD OrQ Host, chuyӇn tiӃp ra Egress Processing, hoһFÿѭDTXDNKӕi xӱ lý giҧi mã IPsec

Ingress Security Policy Database: &ѫVӣ dӳ liӋu chính sách bҧo mұWÿҫu vào

Ingress Security Association Database: &ѫVӣ dӳ liӋX6$ÿҫu vào

Ingress Packet Reorder: Sҳp sӃp lҥi FiFJyLWLQÿӃn nӃu chúng sai thӭ tӵ

Ingress Quality of Service: Khӕi quҧn lý chҩWOѭӧng dӏch vө ÿҫu vào

3&,H&DUGWR+RVWĈѭDJyL tin tӯ FPGA lên máy chӫ thông qua giao thӭc PCIe

Khӕi xӱ lý SDFNHWÿҫu ra bao gӗm các khӕi vӟi chӭFQăQJVDX

3&,H +RVW WR &DUG ĈѭD JyL WLQ Wӯ máy chӫ xuӕng FPGA thông qua giao thӭc PCIe

Egress Packet Header: Xӱ lý EyF WiFK WLrX ÿӅ gói tin chuҭn bӏ xӱ lý ÿҫu ra (WKHUQHWKHDGHU,3KHDGHU(63KHDGHUô

Egress Packet Parser: Xӱ lý WLrXÿӅ cӫDJyLWLQÿѭDUDQKӳng thông tin cҫn thiӃWÿӇ cung cҩp cho khӕi Egress VRF Lookup

Egress VRF Lookup: TiӃp nhұn thông tin bao gӗm Queue_ID, MAC Address, VLAN_ID, ,3DGGUHVVÿӇ tra cӭXUDÿѭӧF95)B,'ÿѭDTXDNKӕi Egress Security Policy

Egress Security Policy: TҥLÿk\JyLWLQVӁ ÿѭӧc quyӃWÿӏnh là loҥi bӓ, chuyӇn tiӃp

43 ÿӃn khӕi xӱ lý ÿҫu ra, hoһFÿѭDTXDNKӕi xӱ lý mã hóa IPsec

EJUHVV6HFXULW\3ROLF\'DWDEDVH&ѫVӣ dӳ liӋu chính sách bҧo mұWÿҫu ra

EJUHVV6HFXULW\$VVRFLDWLRQ'DWDEDVH&ѫVӣ dӳ liӋX6$ÿҫu ra

ESP Packet Encapsulation: NӃu là gói tin IPsec ESP, gói tin sӁ ÿѭӧc gҳn nhãn ESP header, và tính ICV checksum

(JUHVV3DFNHW+HDGHU(GLWRU'QJ95)B,'ÿӇ truy xuҩWYjRFѫVӣ dӳ liӋXWLrXÿӅ ÿҫu ra, gói tin sӁ ÿѭӧFWKD\ÿәLWLrXÿӅ IP, Ethernet VDXÿyÿѭDTXDNKӕi Egress Packet Reorder

Egress Packet Reorder: Sҳp sӃp lҥLFiFJyLWLQÿӃn nӃu chúng sai thӭ tӵ

Egress Quality of Service: Khӕi quҧn lý chҩWOѭӧng dӏch vө ÿҫu ra

Ethernet TxMAC: Xӱ lý IUDPH(WKHUQHWÿҫu ra

Khӕi thӵc thi thuұt toán mã hóa/giҧi mã: Tính toán các thuұt toán mã hóa/giҧi mã phӭc tҥp ÿӇ giҧm tҧi công viӋc cho CPU

Lookup info: x vrf_id[7:0] x mul_ind x pkt_act[1:0]

Hình 4.3: Ki͇n trúc VRF Lookup

4.4 Các chӃ ÿӝ hoҥWÿӝng cӫa IKE

Có ba chӃ ÿӝ hoҥWÿӝng cӫD,.(ÿӇ quҧn lý mһt phҷng dӳ liӋu: IKE trên mһt phҷng dӳ liӋu (IKE on the data plane), IKE trên mһt phҷQJÿLӅu khiӇn (IKE on the control plane), chӃ ÿӝ hoҥWÿӝng không IKE (IKE-less operation) [3]

IKE trên mһt phҷng dӳ liӋu: Các node mһt phҷng dӳ liӋu IPsec hӛ trӧ xӱ lý giao thӭc IKEĈӇ giҧm tҧi viӋFWUDRÿәLWK{QJÿLӋp trong quy trình xӱ lý ,.(Qyÿѭӧc cҩu hình sҹn bӣi bӝ ÿLӅu khiӇn Bӝ ÿLӅu khiӇn có thӇ cҩXKuQKWUѭӟc các khóa xác thӵc (authentication keys); bӝ ÿLӅu khiӇn FNJQJcó thӇ phân phӕi các giá trӏ công khai Diffie-Hellman cho tҩt cҧ các node mһt phҷng dӳ liӋX,3VHFÿѭӧc liên kӃt

IKE trên mһt phҷQJÿLӅu khiӇn: Quy trình xӱ lý ,.(ÿѭӧFÿѭDYjRPһt phҷQJÿLӅu khiӇn Nó thӵc hiӋQ WUDR ÿәi khóa giӳa các node ngang hàng và quҧn lý SAD Cách tiӃp cұn này còn hӛ trӧ SA có thӇ ÿѭӧc chuyӇn sang các node mһt phҷng dӳ liӋu IPsec khác Ví dө QKѭWURQJWUѭӡng hӧp các hoҥWÿӝng chuyӇQÿәi dӵ phòng hoһc cân bҵng tҧi

ChӃ ÿӝ hoҥW ÿӝng không IKE: Quҧn lý SA không cҫn giao thӭc IKE Bӝ ÿLӅu khiӇn tҥo các thông tin cҫn thiӃt và thiӃt lұp SAs trong SAD cӫa các node mһt phҷng dӳ liӋu IPsec

1) IKE on the data plane

2) IKE on the control plane

D a ta P la n e C o n tr o l P la n e IKE

Hình 4.4: Các ch͇ ÿ͡ ho̩Wÿ͡ng qu̫n lý m̿t ph̻ng dͷ di u IPsec [3]

&+ѬѪ1* THIӂT Kӂ BӜ MÃ HÓA, GIҦI MÃ AES-128/192/256

5.1 Tәng quan thiӃt kӃ éWѭӣng thiӃt kӃ: ThiӃt kӃ bӝ mã hóa, giҧi mã AES hoҥWÿӝng ÿӝc lұp Hӛ trӧ ÿѭӧc 3 chӃ ÿӝ mã hóa/giҧi mã AES-128/192/256

ThiӃt kӃ hoҥWÿӝng ÿѭӧc vӟi tҫn sӕ cao (trên 312 Mhz)

Xӱ lý khӕi dӳ liӋu 128-bit Có thӇ tùy chӍnh thuұt toán mã hóa (AES-128/291/256) thông qua thanh ghi cҩu hình

Mӛi luӗng dӳ liӋu có thӇ ÿѭӧc thӵc thi vӟi mӝt khóa mã riêng biӋt

Tín hiӋu giao tiӃSÿѫQJLҧn

ThiӃt kӃ thӵc hiӋn cҩu trúc ӕng (pipeline)

Sӱ dөng hiӋu quҧ tài nguyên FPGA

1 Mô tҧ thiӃt kӃ: Tӯ nhӳng yêu cҫu cӫa thiӃt kӃ và dӵa trên khҧ QăQJF{QJQJKӋ hiӋn có, tôi sӁ xây dӵng nên toàn bӝ kiӃn trúc tәng quan cho thiӃt kӃ ĈѭDUDVѫÿӗ khӕi

47 và diӉn tҧ chӭFQăQJFӫa các khӕi

2 ViӃt code: HiӋn thӵFKyDFiFÿһc tҧ chi tiӃt bҵng ngôn ngӳ Verilog

3 KiӇm tra chӭFQăQJRTL verification): Ĉk\OjSKҫn sӁ tӕn khá nhiӅu thӡLJLDQÿӕi vӟi bҩt kǤ thiӃt kӃ nào VӅ FѫEҧn, kiӇm tra chӭFQăQJVӁ bao gӗPFiFEѭӟc sau:

HoҥFKÿӏnh cho viӋc kiӇm tra chӭFQăQJ

Xây dӵQJP{LWUѭӡng kiӇm tra

KiӇPWUDÿҫu ra và dҥng sóng

4 Tәng hӧp (Synthesis): Thuұt ngӳ V\QWKHVLVÿѭӧFGQJÿӇ mô tҧ vӅ sӵ chuyӇQÿәi trҥng thái cӫa thiӃt kӃ ӣ dҥng code sang dҥng cәng logic Quá trình chuyӇQÿәi này sӁ ÿѭӧc thӵc hiӋn chӫ yӃu bӣi phҫn mӅm thông qua các thông sӕ tӯ QJѭӡi dùng 6DXNKLV\QWKHVLVFK~QJWDÿmFyPӝt bӭc tranh toàn cҧnh vӅ thiӃt kӃ ӣ 2 mһt, luұn lý và vұt lý

5 Thӵc hiӋn (Implementation): Thӵc hiӋn các phân tích và tӕLѭXYӅ mһt vұt lêĈy là sӵ sҳSÿһt các phҫn tӱ, lӵa chӑn và kӃt nӕi chúng trên mӝWÿӏQKKѭӟng vӅ sӵ tӕi ѭXFiF\Ӄu tӕ: Timing, Area và Power consumption

6 KiӇm tra trên FPGA: TiӃn hành chҥy thӱ ӭng dөng và kiӇm tra chӭFQăQJWKӵc tӃ trên bo mҥch FPGA

Bӝ mã hóa AES-128/192/256 aes_encrypt_core gӗm 2 khӕi: Khӕi mã hóa dӳ liӋu aes_encrypt, khӕi tính toán tҥo khóa vòng aes_keyexp

B̫ng 5.1: Các tín hi u cͯa b͡ mã hóa

Tín hiӋu Ĉӝ rӝng bit Tín hiӋu vào/ra Mô tҧ clk 1 Tín hiӋu vào &ORFNÿӗng bӝ rst 1 Tín hiӋu vào Reset tích cӵc mӭc cao imode 2 Tín hiӋu vào ChӃ ÿӝ mã hóa

0: AES-128 1: AES-192 2: AES-256 3: Bypass ivalid 1 Tín hiӋu vào Tín hiӋu cho biӃt giá trӏ dӳ liӋu ÿҫu vô có hiӋu lӵc, khi ivalid = 1

48 thì bӝ mã hóa AES sӁ ÿѭӧc thӵc thi ickey 256 Tín hiӋu vào Khóa mã iptext 128 Tín hiӋu vào Dӳ liӋu cҫn mã hóa (bҧn rõ) ovalid 1 Tín hiӋu ra Tín hiӋu cho biӃt giá trӏ dӳ liӋu ÿҫu ra có hiӋu lӵc, khi ovalid = 1 báo hiӋu tín hiӋXÿmÿѭӧc mã hóa xong octext 128 Tín hiӋu ra Dӳ liӋXVDXNKLÿѭӧc mã hóa (bҧn mã) Các tín hiӋu giao tiӃp giӳa khӕi aes_encrypt và khӕi aes_keyexp: bypass_n và imkey_n

ThiӃt kӃ sӱ dөng các khӕi vӟi các chӭc QăQJFKX\rQELӋWQKѭVDX

Subbyte: Thӵc hiӋn chӭFQăQJ6XE%\WH

Shiftrow: Thӵc hiӋn chӭFQăQJ6KLIW5RZ

Mixcolumn: Thӵc hiӋn chӭFQăQJ0L[&ROXPQ

Addroundkey: Thӵc hiӋn chӭFQăQJ$GG5RXQG.H\

Matrixmul: Thӵc hiӋn chӭFQăQJQKkQPDWUұn trong chuҭn AES

Gf8mult0x02: Thӵc hiӋn chӭFQăQJQKkQYӟi 0x02 aes_encrypt_core aes_key_expansion clk rst ivalid iptext[127:0] ickey[255:0] imode[1:0] ovalid octext[127:0] imkey[127:0] clk rst ickey[255:0] imode[1:0] imkey[127:0]

Hình 5.1: 6˯ÿ͛ kh͙i b͡ mã hóa AES

Khӕi này thӵc hiӋn chӭFQăQJ.H\([SDQVLRQ, sӱ dөng 15 tín hiӋu imkey[127:0] ÿӇ OѭX lҥi giá trӏ khóa vòng sau mӛi lҫn tính toán Ӭng vӟi mӛi chӃ ÿӝ mã hóa 1N WѭѫQJӭng AES128/192/256) thì 32-bit cuӕi sӁ ÿѭӧc biӃQÿәLTXDFiFEѭӟc:

5RW:RUGĈҧo byte MSB xuӕng LSB

AddRcon: Lҩy ngõ ra SubWord XOR vӟi giá trӏ Rcon

Giá trӏ Rcon[] sӱ dөng cho chӭFQăQJ.H\([SDQVLRQOj-bit [9] :

Trong ÿyUF i là mӝt giá trӏ 8-bit ÿѭӧFÿӏQKQJKƭDQKѭVDX [9] :

KӃt quҧ sau khi AddRcon sӁ ÿѭӧFGQJÿӇ tҥo ra các word cӫa imkey[127:0]

B̫ng 5.2: Giá tr͓ 5FRQ>@W˱˯QJͱng m͟i vòng l̿p khóa mã [9]

Vӏ trí Rcon[] Giá trӏ HEX

Select okey imkey[127:0] next_key[255:0] imode[1:0] next_key[255:0] okey[127:0]

Hình 5.2: M̩ch logic kh͙i AES Key Expansion

5.2.2 Mҥch logic khӕi mã hóa AES

Khӕi mã hóa dӳ liӋu AES aes_encrypt gӗm: x Khӕi AddRoundKey có chӭFQăQJ XOR khóa mã vӟi ma trұn dӳ liӋu Eѭӟc khӣi tҥo), hoһc XOR khóa vòng vӟi ma trұn trҥng thái Eѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra) x Khӕi SubByte thӵc hiӋn thay thӃ tӯng byte cӫa ma trұn trҥng thái (ngõ ra cӫa AddRoundKey) bҵng mӝt giá trӏ ÿmTX\ÿӏnh trong chuҭn AES (bҧng S-box) x Khӕi ShiftRow thӵc hiӋn quay trái tӯng hàng cӫa ma trұn trҥng thái (ngõ ra cӫa SubBytes) theo byte vӟi hӋ sӕ WăQJGҫn tӯ ÿӃQ+jQJÿҫu tiên có hӋ sӕ quay là WKuFiFE\WHÿѭӧc giӳ nguyên vӏ trí Hàng thӭ 2 có hӋ sӕ quay là 1 thì các byte ÿѭӧc quay 1-byte Hàng thӭ ba quay 2-byte và hàng thӭ WѭTXD\-byte x Khӕi MixColumn thӵc hiӋn nhân tӯng cӝt cӫa ma trұn trҥng thái (ngõ ra cӫa ShiftRows) vӟi mӝt ma trұn chuyӇQÿәLTX\ÿӏnh bӣi chuҭn AES x Khӕi Select Next Data: Lӵa chӑn dӳ liӋXFKREѭӟc lһp kӃ tiӃp dӵDYjREѭӟc lһp hiӋn tҥi và chӃ ÿӝ mã hóa x Khӕi Cipher Complete: KӃt thúc quá trình mã hóa YjÿѭDUDNӃt quҧ

51 x Khӕi Key Expansion thӵc hiӋQWtQKWRiQNKyDYzQJFKREѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra

Select Next Data iptext[127:0] imkey[127:0] nxtdata[127:0]

Cipher Complete rdresult[127:0] octext[127:0] imode[1:0]

Hình 5.3: M̩ch nguyên lý b͡ mã hóa AES

Bӝ giҧi mã AES-128/192/256 aes_decrypt_core gӗm 2 khӕi: Khӕi giҧi mã dӳ liӋu aes_decrypt, khӕi tính toán tҥo khóa vòng aes_invkeyexp

B̫ng 5.3: Các tín hi u cͯa b͡ gi̫i mã

Tín hiӋu Ĉӝ rӝng bit Tín hiӋu vào/ra Mô tҧ clk 1 Tín hiӋu vào Clock ÿӗng bӝ rst 1 Tín hiӋu vào Reset tích cӵc mӭc cao imode 2 Tín hiӋu vào ChӃ ÿӝ mã hóa

0: AES-128 1: AES-192 2: AES-256 3: Bypass ivalid 1 Tín hiӋu vào Tín hiӋu cho biӃt giá trӏ dӳ liӋXÿҫu vô có hiӋu lӵc, khi ivalid = 1 thì bӝ giҧi mã AES sӁ ÿѭӧc thӵc thi

Parser flowchart

KiӃn trúc VRF Lookup

Lookup info: x vrf_id[7:0] x mul_ind x pkt_act[1:0]

Hình 4.3: Ki͇n trúc VRF Lookup

Các chӃ ÿӝ hoҥWÿӝng cӫa IKE

Có ba chӃ ÿӝ hoҥWÿӝng cӫD,.(ÿӇ quҧn lý mһt phҷng dӳ liӋu: IKE trên mһt phҷng dӳ liӋu (IKE on the data plane), IKE trên mһt phҷQJÿLӅu khiӇn (IKE on the control plane), chӃ ÿӝ hoҥWÿӝng không IKE (IKE-less operation) [3]

IKE trên mһt phҷng dӳ liӋu: Các node mһt phҷng dӳ liӋu IPsec hӛ trӧ xӱ lý giao thӭc IKEĈӇ giҧm tҧi viӋFWUDRÿәLWK{QJÿLӋp trong quy trình xӱ lý ,.(Qyÿѭӧc cҩu hình sҹn bӣi bӝ ÿLӅu khiӇn Bӝ ÿLӅu khiӇn có thӇ cҩXKuQKWUѭӟc các khóa xác thӵc (authentication keys); bӝ ÿLӅu khiӇn FNJQJcó thӇ phân phӕi các giá trӏ công khai Diffie-Hellman cho tҩt cҧ các node mһt phҷng dӳ liӋX,3VHFÿѭӧc liên kӃt

IKE trên mһt phҷQJÿLӅu khiӇn: Quy trình xӱ lý ,.(ÿѭӧFÿѭDYjRPһt phҷQJÿLӅu khiӇn Nó thӵc hiӋQ WUDR ÿәi khóa giӳa các node ngang hàng và quҧn lý SAD Cách tiӃp cұn này còn hӛ trӧ SA có thӇ ÿѭӧc chuyӇn sang các node mһt phҷng dӳ liӋu IPsec khác Ví dө QKѭWURQJWUѭӡng hӧp các hoҥWÿӝng chuyӇQÿәi dӵ phòng hoһc cân bҵng tҧi

ChӃ ÿӝ hoҥW ÿӝng không IKE: Quҧn lý SA không cҫn giao thӭc IKE Bӝ ÿLӅu khiӇn tҥo các thông tin cҫn thiӃt và thiӃt lұp SAs trong SAD cӫa các node mһt phҷng dӳ liӋu IPsec

1) IKE on the data plane

2) IKE on the control plane

D a ta P la n e C o n tr o l P la n e IKE

Hình 4.4: Các ch͇ ÿ͡ ho̩Wÿ͡ng qu̫n lý m̿t ph̻ng dͷ di u IPsec [3]

&+ѬѪ1* THIӂT Kӂ BӜ MÃ HÓA, GIҦI MÃ AES-128/192/256

Tәng quan thiӃt kӃ

éWѭӣng thiӃt kӃ: ThiӃt kӃ bӝ mã hóa, giҧi mã AES hoҥWÿӝng ÿӝc lұp Hӛ trӧ ÿѭӧc 3 chӃ ÿӝ mã hóa/giҧi mã AES-128/192/256

ThiӃt kӃ hoҥWÿӝng ÿѭӧc vӟi tҫn sӕ cao (trên 312 Mhz)

Xӱ lý khӕi dӳ liӋu 128-bit Có thӇ tùy chӍnh thuұt toán mã hóa (AES-128/291/256) thông qua thanh ghi cҩu hình

Mӛi luӗng dӳ liӋu có thӇ ÿѭӧc thӵc thi vӟi mӝt khóa mã riêng biӋt

Tín hiӋu giao tiӃSÿѫQJLҧn

ThiӃt kӃ thӵc hiӋn cҩu trúc ӕng (pipeline)

Sӱ dөng hiӋu quҧ tài nguyên FPGA

1 Mô tҧ thiӃt kӃ: Tӯ nhӳng yêu cҫu cӫa thiӃt kӃ và dӵa trên khҧ QăQJF{QJQJKӋ hiӋn có, tôi sӁ xây dӵng nên toàn bӝ kiӃn trúc tәng quan cho thiӃt kӃ ĈѭDUDVѫÿӗ khӕi

47 và diӉn tҧ chӭFQăQJFӫa các khӕi

2 ViӃt code: HiӋn thӵFKyDFiFÿһc tҧ chi tiӃt bҵng ngôn ngӳ Verilog

3 KiӇm tra chӭFQăQJRTL verification): Ĉk\OjSKҫn sӁ tӕn khá nhiӅu thӡLJLDQÿӕi vӟi bҩt kǤ thiӃt kӃ nào VӅ FѫEҧn, kiӇm tra chӭFQăQJVӁ bao gӗPFiFEѭӟc sau:

HoҥFKÿӏnh cho viӋc kiӇm tra chӭFQăQJ

Xây dӵQJP{LWUѭӡng kiӇm tra

KiӇPWUDÿҫu ra và dҥng sóng

4 Tәng hӧp (Synthesis): Thuұt ngӳ V\QWKHVLVÿѭӧFGQJÿӇ mô tҧ vӅ sӵ chuyӇQÿәi trҥng thái cӫa thiӃt kӃ ӣ dҥng code sang dҥng cәng logic Quá trình chuyӇQÿәi này sӁ ÿѭӧc thӵc hiӋn chӫ yӃu bӣi phҫn mӅm thông qua các thông sӕ tӯ QJѭӡi dùng 6DXNKLV\QWKHVLVFK~QJWDÿmFyPӝt bӭc tranh toàn cҧnh vӅ thiӃt kӃ ӣ 2 mһt, luұn lý và vұt lý

5 Thӵc hiӋn (Implementation): Thӵc hiӋn các phân tích và tӕLѭXYӅ mһt vұt lêĈy là sӵ sҳSÿһt các phҫn tӱ, lӵa chӑn và kӃt nӕi chúng trên mӝWÿӏQKKѭӟng vӅ sӵ tӕi ѭXFiF\Ӄu tӕ: Timing, Area và Power consumption

6 KiӇm tra trên FPGA: TiӃn hành chҥy thӱ ӭng dөng và kiӇm tra chӭFQăQJWKӵc tӃ trên bo mҥch FPGA.

ThiӃt kӃ bӝ mã hóa AES-128/192/256

Mҥch logic khӕi KeyExpansion

Khӕi này thӵc hiӋn chӭFQăQJ.H\([SDQVLRQ, sӱ dөng 15 tín hiӋu imkey[127:0] ÿӇ OѭX lҥi giá trӏ khóa vòng sau mӛi lҫn tính toán Ӭng vӟi mӛi chӃ ÿӝ mã hóa 1N WѭѫQJӭng AES128/192/256) thì 32-bit cuӕi sӁ ÿѭӧc biӃQÿәLTXDFiFEѭӟc:

5RW:RUGĈҧo byte MSB xuӕng LSB

AddRcon: Lҩy ngõ ra SubWord XOR vӟi giá trӏ Rcon

Giá trӏ Rcon[] sӱ dөng cho chӭFQăQJ.H\([SDQVLRQOj-bit [9] :

Trong ÿyUF i là mӝt giá trӏ 8-bit ÿѭӧFÿӏQKQJKƭDQKѭVDX [9] :

KӃt quҧ sau khi AddRcon sӁ ÿѭӧFGQJÿӇ tҥo ra các word cӫa imkey[127:0]

B̫ng 5.2: Giá tr͓ 5FRQ>@W˱˯QJͱng m͟i vòng l̿p khóa mã [9]

Vӏ trí Rcon[] Giá trӏ HEX

Select okey imkey[127:0] next_key[255:0] imode[1:0] next_key[255:0] okey[127:0]

Hình 5.2: M̩ch logic kh͙i AES Key Expansion

Mҥch logic khӕi mã hóa AES

Khӕi mã hóa dӳ liӋu AES aes_encrypt gӗm: x Khӕi AddRoundKey có chӭFQăQJ XOR khóa mã vӟi ma trұn dӳ liӋu Eѭӟc khӣi tҥo), hoһc XOR khóa vòng vӟi ma trұn trҥng thái Eѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra) x Khӕi SubByte thӵc hiӋn thay thӃ tӯng byte cӫa ma trұn trҥng thái (ngõ ra cӫa AddRoundKey) bҵng mӝt giá trӏ ÿmTX\ÿӏnh trong chuҭn AES (bҧng S-box) x Khӕi ShiftRow thӵc hiӋn quay trái tӯng hàng cӫa ma trұn trҥng thái (ngõ ra cӫa SubBytes) theo byte vӟi hӋ sӕ WăQJGҫn tӯ ÿӃQ+jQJÿҫu tiên có hӋ sӕ quay là WKuFiFE\WHÿѭӧc giӳ nguyên vӏ trí Hàng thӭ 2 có hӋ sӕ quay là 1 thì các byte ÿѭӧc quay 1-byte Hàng thӭ ba quay 2-byte và hàng thӭ WѭTXD\-byte x Khӕi MixColumn thӵc hiӋn nhân tӯng cӝt cӫa ma trұn trҥng thái (ngõ ra cӫa ShiftRows) vӟi mӝt ma trұn chuyӇQÿәLTX\ÿӏnh bӣi chuҭn AES x Khӕi Select Next Data: Lӵa chӑn dӳ liӋXFKREѭӟc lһp kӃ tiӃp dӵDYjREѭӟc lһp hiӋn tҥi và chӃ ÿӝ mã hóa x Khӕi Cipher Complete: KӃt thúc quá trình mã hóa YjÿѭDUDNӃt quҧ

51 x Khӕi Key Expansion thӵc hiӋQWtQKWRiQNKyDYzQJFKREѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra

Select Next Data iptext[127:0] imkey[127:0] nxtdata[127:0]

Cipher Complete rdresult[127:0] octext[127:0] imode[1:0]

Hình 5.3: M̩ch nguyên lý b͡ mã hóa AES

ThiӃt kӃ bӝ giҧi mã AES-128/192/256

Mҥch logic khӕi Inverse KeyExpansion

Khӕi này thӵc hiӋn chӭFQăQJWtQKNKyDYzQJÿҧo Inverse KeyExpansion Có hai cách thiӃt kӃ mҥch logic khӕi Inverse KeyExpansion:

Invkeyexp_core: Sӱ dөng khóa vòng cuӕL FQJ ÿӇ tính lҫQ Oѭӧt các NKyDYzQJWUѭӟFÿy

Sӱ dөng thiӃt kӃ KeyExpansion ӣ phҫQWUrQOѭXNӃt quҧ vào thanh ghi Bӝ giҧi mã thӵFWKLÿӃQEѭӟc nào sӁ sӱ dөQJLPNH\>@WѭѫQJӭng

7DÿLYjRWKLӃt kӃ logic cӫa khӕi Invkeyexp_core Khӕi này thӵc hiӋn chӭFQăQJInverse KeyExpansion, sӱ dөng 15 tín hiӋu LPNH\>@ÿӇ OѭXOҥi giá trӏ khóa vòng sau mӛi lҫn tính toán Ӭng vӟi mӛi chӃ ÿӝ PmKyD1N WѭѫQJӭng AES-128/192/256) thì 32-bit cuӕi sӁ ÿѭӧc biӃQÿәLTXDFiFEѭӟc:

5RW:RUGĈҧo byte MSB xuӕng LSB

AddRcon: Lҩy ngõ ra SubWord XOR vӟi giá trӏ Rcon Thӭ tӵ 5FRQÿѭӧFÿҧo so vӟi quá trình mã hóa

Giá trӏ Rcon[] sӱ dөng cho chӭFQăQJInverse KeyExpansion là 32-bit

KӃt quҧ sau khi AddRcon sӁ ÿѭӧFGQJÿӇ tҥo ra các word cӫa imkey[127:0]

B̫ng 5.4: Giá tr͓ 5FRQ>@W˱˯QJͱng m͟i vòng l̿p khóa gi̫i mã [9]

Vӏ trí Rcon[] Giá trӏ HEX

SubWord RotWord Add InvRcon w[j-8] w[j-7] w[j-6] w[j-5] w[j-4] w[j-3] w[j-2] w[j-1] ikey[255:0]

Invert Key Expansion XOR processing

Select okey imkey[127:0] next_key[255:0] imode[1:0] next_key[255:0] okey[127:0]

Hình 5.5: M̩ch logic kh͙i AES Inverse Key Expansion

Mҥch logic khӕi giҧi mã AES

Khӕi giҧi mã dӳ liӋu AES aes_decrypt gӗm: x Khӕi AddRoundKey có chӭFQăQJXOR khóa giҧi mã vӟi ma trұn mã hóa, hoһc XOR khóa vòng vӟi ma trұn trҥng thái Eѭӟc lһSPmKyDYjEѭӟc tҥo ngõ ra) x Khӕi Select Next Step xem xét quá trình giҧLPmÿDQJӣ Eѭӟc khӣi tҥo hoһFEѭӟc lһp mã hóa thì dӳ liӋu sӁ ÿѭӧc chuyӇn tiӃSÿӃn khӕi InvMixColumn, quá trình giҧi PmÿDQJӣ Eѭӟc tҥo ngõ ra thì dӳ liӋu sӁ ÿѭӧc chuyӇn tiӃSÿӃn khӕi InvSubByte ÿӇ thӵc hiӋQFiFEѭӟc cuӕLFQJWUѭӟc khi hoàn thành quá trình giҧi mã x Khӕi InvMixColumns Ojÿҧo cӫa MixColumns trong quá trình mã hóa Tӯng cӝt cӫa ma trұn trҥng thái sӁ ÿѭӧc nhân vӟi ma trұn chuyӇQÿәi InvMixColumns chӭa các khӕi nhӓ KѫQÿӇ thӵc hiӋn các phép nhân vӟi tӯng phҫn tӱ cӫa ma trұn chuyӇn ÿәi: gf8mult0x09, gf8mult0x0b, gf8mult0x0d, gf8mult0x0e

55 x Khӕi InvSubBytes thӵc hiӋn thay thӃ tӯng byte cӫa ma trұn trҥng thái bҵng mӝt giá trӏ ÿm TX\ ÿӏnh trong chuҭn AES BҧQJ TX\ ÿӏnh giá trӏ thay thӃ cho InvSubBytes gӑi là S-ER[ÿҧo x Khӕi InvShiftRows thӵc hiӋn quay phҧi tӯng hàng cӫa ma trұn trҥng thái sinh ra tӯ EѭӟFWUѭӟFÿytheo byte vӟi hӋ sӕ TXD\WăQJGҫn tӯ ÿӃn 3 HànJÿҫu tiên có hӋ sӕ TXD\OjWKuFiFE\WHÿѭӧc giӳ nguyên vӏ trí Hàng thӭ hai có hӋ sӕ quay là 1 WKuÿѭӧc quay 1-byte, hàng thӭ ba quay 2-byte và hàng thӭ 4 quay 3-byte x Khӕi Select Next Data xem xét quá trình giҧLPmÿDQJӣ EѭӟFQjRÿӇ lӵa chӑn dӳ liӋu chuyӇn tiӃSÿӃn khӕi AddRoundKey NӃu quá trình giҧLPmÿDQJӣ Eѭӟc khӣi tҥo thì dӳ liӋXÿҫu vô giҧLPmÿѭӧc lӵa chӑn, nӃu quá trình giҧLPmÿDQJӣ Eѭӟc lһp mã hóa hoһFEѭӟc tҥo ngõ ra thì dӳ liӋu tӯ khӕL,QY6KLIW5RZÿѭӧc lӵa chӑn x Khӕi Inverse KeyExpansion thӵc hiӋn chӭFQăQJWtQKNKyDYzQJÿҧo

Inverse Key Expansion imode[1:0] ickey[255:0]

Select Next Data ictext[127:0] imkey[127:0] nxtdata[127:0]

AddRoundkey optext[127:0] imode[1:0] ickey_last[255:0]

InvMixColumn Select Next Step nxtdata[127:0] rdresult[127:0]

Hình 5.6: M̩ch nguyên lý b͡ gi̫i mã AES

&+ѬѪ1* KӂT QUҦ MÔ PHӒNG VÀ TRIӆN KHAI THUҰT

KӃt quҧ mô phӓng

KӃt quҧ mô phӓng AES-128

ĈӇ mô phӓng kiӇm tra chӭFQăQJPmKyDJLҧi mã AES-128, ta sӱ dөng bӝ thông sӕ kiӇm WUDÿѭӧFÿѭa ra trong tiêu chuҭQ³$GYDQFHG(QFU\SWLRQ6WDQGDUG),3638%´ Thông sӕ mô phӓng AES-ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.1: Thông s͙ mô ph͗ng AES-128

Mã hóa AES-128 bao gӗPEѭӟc khӣi tҥR Eѭӟc lһS Pm KyD Eѭӟc kӃt thúc Mӛi Eѭӟc lһp lҥi thӵc hiӋn các chӭF QăQJ $GG5RXQG.H\ 6XE%\WHV 6KLIW5RZV Yj MixColumns KӃt quҧ ÿҥWÿѭӧc sau mӛLEѭӟc tuân thӫ ÿ~QJVRYӟi tiêu chuҭn mã hóa AES Thông sӕ ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.2: Thông s͙ mã hóa AES-128

Giҧi mã AES-128 bao gӗPEѭӟc khӣi tҥo, Eѭӟc lһp giҧi mãEѭӟc kӃt thúc Mӛi Eѭӟc lһp lҥi thӵc hiӋn các chӭFQăQJ,QY$GG5RXQG.H\,QY6XE%\WHV,QY6KLIW5RZVYj InvMixColumns KӃt quҧ ÿҥWÿѭӧc sau mӛLEѭӟc tuân thӫ ÿ~QJVRYӟi tiêu chuҭn mã hóa AES Thông sӕ ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.3: Thông s͙ gi̫i mã AES-128

+uQKErQGѭӟi thӇ hiӋn kӃt quҧ mô phӓng mã hóa và giҧi mã AES-128 trên công cө Cadence

Mô phӓng thӵc hiӋn vӟi tҫn sӕ clock 312Mhz

ChӃ mӝ mó húa/giҧLPmLPRGH>@ ảGWѭѫQJӭng vӟi AES-128

Dӳ liӋXÿҫu vào (input) có giá trӏ là: ipdat[127:0] ảKBB$$%%B&&''(())

KyDPmFLSKHUNH\GQJÿӇ mã hóa có giá trӏ là ickey[127:0] ảKBB$%B&'()

Dӳ liӋXÿѭӧc mã hóa sau 31 chu kì clock (~99.4 ns)

KӃt quҧ mã hóa có giá trӏ là oencpt_dat [127:0] ảKFHGBDEBGFGEBEFD

KӃt quҧ mã hóa AES-WKXÿѭӧFÿ~QJEҵng kӃt quҧ cӫa phép kiӇm tra trong chuҭQ³$GYDQFHG(QFU\SWLRQ6WDQGDUG),3638%´JLiWUӏ FiFEѭӟc trung JLDQFNJQJFKtQK[iF

6DXÿyVӱ dөng kӃt quҧ PmKyDÿҫXUDRHQFSWBGDW>@ÿӇ ÿѭDYjREӝ giҧi mã AES-128

Khóa mã FLSKHUNH\GQJÿӇ giҧi mã có giá trӏ là ickey[127:0] ảKBB$%B&'()

Dӳ liӋXÿѭӧc giҧi mã sau 31 chu kì clock (~99.4 ns)

KӃt quҧ giҧi mã có giá trӏ là odecpt_dat[127:0] ảKBB$$%%B&&''(()) KӃt quҧ Qj\ÿ~QJEҵng vӟi giá trӏ dӳ liӋXÿҫXYjREDQÿҫXWDÿѭDUDJLiWUӏ FiFEѭӟFWUXQJJLDQFNJQJFKtQK

Hình 6.1: K͇t qu̫ mô ph͗ng AES-128 trên công cͭ Cadence

KӃt quҧ mô phӓng AES-192

ĈӇ mô phӓng kiӇm tra chӭFQăQJPmKyDJLҧi mã AES-192, ta sӱ dөng bӝ thông sӕ kiӇm WUDÿѭӧFÿѭDUDWURQJWLrXFKXҭQ³$GYDQFHG(QFU\SWLRQ6WDQGDUG),3638%´7K{QJ sӕ mô phӓng AES-ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.4: Các thông s͙ mô ph͗ng AES-192

Mã hóa AES-192 bao gӗPEѭӟc khӣi tҥo, 11 Eѭӟc lһSPmKyDEѭӟc kӃt thúc Mӛi Eѭӟc lһp lҥi thӵc hiӋn các chӭF QăQJ $GG5RXQG.H\ 6XE%\WHV 6KLIW5RZV Yj MixColumns KӃt quҧ ÿҥWÿѭӧc sau mӛLEѭӟc tuân thӫ ÿ~QJVRYӟi tiêu chuҭn mã hóa AES Thông sӕ ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.5: Thông s͙ mã hóa AES-192

(Final round) dda97ca4864cdfe06eaf70a0ec0d7191

Giҧi mã AES-192 bao gӗPEѭӟc khӣi tҥo, 11 Eѭӟc lһp giҧi mãEѭӟc kӃt thúc Mӛi Eѭӟc lһp lҥi thӵc hiӋn các chӭFQăQJ,QY$GG5RXQG.H\,QY6XE%\WHV,QY6KLIW5RZVYj InvMixColumns KӃt quҧ ÿҥWÿѭӧc sau mӛLEѭӟc tuân thӫ ÿ~QJVRYӟi tiêu chuҭn mã hóa AES Thông sӕ ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.6: Thông s͙ gi̫i mã AES-192

Round [0] Ciphertext dda97ca4864cdfe06eaf70a0ec0d7191

Hình ErQ Gѭӟi thӇ hiӋn kӃt quҧ mô phӓng mã hóa và giҧi mã AES-192 trên công cө Cadence

Mô phӓng thӵc hiӋn vӟi tҫn sӕ clock 312Mhz

ChӃ mӝ mó húa/giҧi mó: imode[1:0] ảGWѭѫQJӭng vӟi AES-192

Dӳ liӋXÿҫu vào (input) có giá trӏ là: ipdat[127:0] ảK3_44556677_8899aabb_ccddeeff

KyDPmFLSKHUNH\GQJÿӇ mã hóa có giá trӏ là ickey[191:0] 192ảKBBDEBFGHI_10111213_14151617

Dӳ liӋXÿѭӧc mã hóa sau 31 chu kì clock (~99.4 ns)

KӃt quҧ mã hóa có giá trӏ là oencpt_dat[127:0] ảKdda97ca4_864cdfe0_6eaf70a0_ec0d7191

KӃt quҧ mã hóa AES-192 WKXÿѭӧFÿ~QJEҵng kӃt quҧ cӫa phép kiӇm tra trong chuҭn ³$GYDQFHG(QFU\SWLRQ6WDQGDUG),3638%´JLiWUӏ FiFEѭӟc trung JLDQFNJQJFKtQK[iFWX\ӋWÿӕi

6DXÿyVӱ dөng kӃt quҧ PmKyDÿҫu ra RHQFSWBGDW>@ÿӇ ÿѭDYjREӝ giҧi mã AES-192

KyDPmFLSKHUNH\GQJÿӇ giҧi mã có giá trӏ là ickey[191:0] ảKBBDEBFGHIBB

Dӳ liӋXÿѭӧc giҧi mã sau 31 chu kì clock (~99.4 ns)

KӃt quҧ giҧi mã có giá trӏ là odecpt_dat[127:0] ảKBBDDEEBFFGGHHII KӃt quҧ Qj\ÿ~QJEҵng vӟi giỏ

60 trӏ dӳ liӋXÿҫXYjREDQÿҫXWDÿѭDUDJLiWUӏ FiFEѭӟFWUXQJJLDQFNJQJFKtQK[iF tuyӋWÿӕi

Hình 6.2: K͇t qu̫ mô ph͗ng AES-192 trên công cͭ Cadence

KӃt quҧ mô phӓng AES-256

ĈӇ mô phӓng kiӇm tra chӭFQăQJPmKyDJLҧi mã AES-192, ta sӱ dөng bӝ thông sӕ kiӇm WUDÿѭӧFÿѭDUDWURQJWLrXFKXҭQ³$GYDQFHG(QFU\SWLRQ6WDQGDUG),3638%´7K{QJ sӕ mô phӓng AES-ÿѭӧc thӇ hiӋn trong bҧng sau.

B̫ng 6.7: Các thông s͙ mô ph͗ng AES-256

Mã hóa AES-256 bao gӗPEѭӟc khӣi tҥo, 13 Eѭӟc lһSPmKyDEѭӟc kӃt thúc Mӛi Eѭӟc lһp lҥi thӵc hiӋn các chӭF QăQJ $GG5RXQG.H\ 6XE%\WHV 6KLIW5RZV Yj MixColumns KӃt quҧ ÿҥWÿѭӧc sau mӛLEѭӟc tuân thӫ ÿ~QJVRYӟi tiêu chuҭn mã hóa AES Thông sӕ ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.8: Thông s͙ mã hóa AES-256

Round [14] Key 24fc79ccbf0979e9371ac23c6d68de36

Giҧi mã AES-256 bao gӗPEѭӟc khӣi tҥo, 13 Eѭӟc lһp giҧi mãEѭӟc kӃt thúc Mӛi Eѭӟc lһp lҥi thӵc hiӋn các chӭFQăQJ,QY$GG5RXQG.H\,QY6XE%\WHV,QY6KLIW5RZVYj InvMixColumns KӃt quҧ ÿҥWÿѭӧc sau mӛLEѭӟc tuân thӫ ÿ~QJVRYӟi tiêu chuҭn mã hóa AES Thông sӕ ÿѭӧc thӇ hiӋn trong bҧng sau

B̫ng 6.9: Thông s͙ gi̫i mã AES-256

Round [0] Ciphertext 8ea2b7ca516745bfeafc49904b496089

Round [0] InvKey 24fc79ccbf0979e9371ac23c6d68de36

+uQK ErQ Gѭӟi thӇ hiӋn kӃt quҧ mô phӓng mã hóa và giҧi mã AES-256 trên công cө Cadence

Mô phӓng thӵc hiӋn vӟi tҫn sӕ clock 312Mhz

ChӃ mӝ mó húa/giҧi mó: imode[1:0] ảG2 WѭѫQJӭng vӟi AES-192

Dӳ liӋXÿҫu vào (input) có giá trӏ là: ipdat[127:0] ảKBBDDEEBFFGGHHII

KyDPmFLSKHUNH\GQJÿӇ mã hóa có giá trӏ là ickey[255:0] 256ảKBBDEBFGHIB

Dӳ liӋXÿѭӧc mã hóa sau 31 chu kì clock (~99.4 ns)

KӃt quҧ mã hóa có giá trӏ là oencpt_dat[127:0] ảK8ea2b7ca516745bfeafc49904b496089

KӃt quҧ mã hóa AES-256 WKXÿѭӧFÿ~QJEҵng kӃt quҧ cӫa phép kiӇm tra trong chuҭn ³$GYDQFHG(QFU\SWLRQ6WDQGDUG),3638%´JLiWUӏ FiFEѭӟc trung JLDQFNJQJFKtQK[iFWX\ӋWÿӕi

6DXÿysӱ dөng kӃt quҧ PmKyDÿҫXUDRHQFSWBGDW>@ÿӇ ÿѭDYjREӝ giҧi mã AES-256

KyDPmFLSKHUNH\GQJÿӇ giҧi mã có giá trӏ là ickey[255:0] ảKBBDEBFGHIB

Dӳ liӋXÿѭӧc giҧi mã sau 31 chu kì clock (~99.4 ns)

KӃt quҧ giҧi mã có giá trӏ là odecpt_dat[127:0] ảKBBDDEEBFFGGHHII.Ӄt quҧ Qj\ÿ~QJEҵng vӟi giỏ

62 trӏ dӳ liӋXÿҫXYjREDQÿҫXWDÿѭDUDJLiWUӏ FiFEѭӟFWUXQJJLDQFNJQJFKtQK[iF tuyӋWÿӕi

Hình 6.3: K͇t qu̫ mô ph͗ng AES-256 trên công cͭ Cadence

KӃt quҧ triӇn khai trên FPGA

Dӵ iQ ÿѭӧc thӵc hiӋn trên Vivado 18.2 ThiӃt kӃ sӱ dөng reference clock có giá trӏ 311.04 Mhz Thông qua công cө MMCM, ta thiӃt lұp clock system có giá trӏ 312.5Mhz ÿӇ ÿҥWÿѭӧF WK{QJOѭӧng xӱ lí mã hóa/giҧi mã AES 40Gbps &iFKuQKGѭӟLÿk\ P{Wҧ giao diӋn cӫa phҫn mӅm Vivavo 2018.2, quá trình thiӃt lұp reference clock và clock system sӱ dөng công cө MMCM

Hình 6.5: Thi͇t l̵SFORFNÿ̯u vào b̹ng công cͭ MMCM

Hình 6.6: Thi͇t l̵p FORFNÿ̯u ra b̹ng công cͭ MMCM

Hình 6.7 là kӃt quҧ ³'HVLJQ7LPLQJ6XPPDU\´ cӫa dӵ án, ta thҩy thông sӕ WNS = 0.1ns (setup time), WHS = 0.01ns (hold time), hai thông sӕ Qj\ÿӅu có giá trӏ lӟQKѫQ9ұy kӃt quҧ tәng hӧp timing cӫa dӵ iQÿmÿҥt yêu cҫu hoҥWÿӝQJÿѭӧc vӟi clock system bҵng 312.5Mhz

Hình 6.8 là kӃt quҧ ³)3*$ UHVRXUFH XWLOL]DWLRQ´ cӫa khӕi mã hóa AES-128/192/256, thông sӕ quan trӑng ta cҫn quan tâm là CLB LUTs = 21.061, kӃt quҧ này cho thҩy dӵ án tiêu tӕn tài nguyên FPGA không lӟn, có thӇ cҥnh tranh vӟi các thiӃt kӃ khác

Hình 6.8: K͇t qu̫ ³)3*$UHVRXUFHXWLOL]DWLRQ´cͯa kh͙i aes_encrypt_core

Hình 6.9 là kӃt quҧ ³)3*$ UHVRXUFH XWLOL]DWLRQ´ Fӫa khӕi giҧi mã AES-128/192/256, thông sӕ quan trӑng ta cҫn quan tâm là CLB LUTs = 26.476 Ta thҩy khӕi giҧi mã cҫn sӵ tính toán phӭc tҥSKѫQNKӕi mã hóa nên tiêu tӕQWjLQJX\rQ)3*$KѫQ

Hình 6.9: K͇t qu̫ ³)3*$UHVRXUFHXWLOL]DWLRQ´ cͯa kh͙i aes_decrypt_core

Sau khi tәng hӧp và thӵc hiӋn trên Vivado 2018.2, ta tiӃn hành chҥy thӱ ӭng dөng và kiӇm tra chӭFQăQJWKӵc tӃ trên bo mҥch FPGA ĈӇ máy tính giao tiӃSÿѭӧc vӟi FPGA, dӵ án sӱ dөng ATSDK thông qua giao thӭc PCIe Hình 6.10 là kӃt quҧ thӵc hiӋn mã hóa và giҧi mã AES-128 trên Xilinx FPGA VU7P, các thông sӕ cӫa phép kiӇm tra ÿѭӧc thӇ hiӋn ӣ bҧng 6.1 Hình 6.11 là kӃt quҧ thӵc hiӋn mã hóa và giҧi mã AES-192 trên Xilinx FPGA VU7P, các thông sӕ cӫa phép kiӇPWUDÿѭӧc thӇ hiӋn ӣ bҧng 6.4

Hình 6.10: K͇t qu̫ th͹c hi n mã hóa, gi̫i mã AES-128

Hình 6.11: K͇t qu̫ th͹c hi n mã hóa, gi̫i mã AES-192

Hình 6.12 là kӃt quҧ thӵc hiӋn mã hóa và giҧi mã AES-256 trên Xilinx FPGA VU7P, các thông sӕ cӫa phép kiӇPWUDÿѭӧc thӇ hiӋn ӣ bҧng 6.7

Hình 6.12: K͇t qu̫ th͹c hi n mã hóa, gi̫i mã AES-256

So sánh kӃt quҧ vӟi công trình khác

ThiӃt kӃ mã hóa, giҧi mã AES cӫa luұQYăQ WKXÿѭӧc có kӃt quҧ khá tӕt, có tính cҥnh tranh &{QJW\+HOLRQ7HFKQRORJLHVFyÿѭDUDFiFWK{QJVӕ cӫa AES core hiӋn thӵc trên FPGA cӫa hai hãng Xilinx và Intel Helion AES cung cҩp chӃ ÿӝ AES-128 hoһc AES-

1KѭYұy ta thҩy mӭc tiêu tӕn tài nguyên cӫa thiӃt kӃ $(6ÿѭDUDWURQJOXұQYăQVRYӟi +HOLRQ$(6WѭѫQJÿѭѫQJQKDXHelion AES chӍ thӵc hiӋQÿѭӧc mӝt chӃ ÿӝ, tURQJNKLÿy thiӃt kӃ AES trong luұQYăQFyWKӇ tùy chӑn 3 chӃ ÿӝ AES-128/192/256

Hình 6.13: Thông s͙ t͝ng hͫp cͯa Helion AES-128 [19]

Hình 6.14: Thông s͙ t͝ng hͫp cͯa Helion AES-256 [19]

KӃt luұn

Dӵa vào nhӳng kӃt quҧ WKXÿѭӧc, ta thҩy dӵ iQFѫEҧQÿmÿҥWÿѭӧc nhӳng mөFWLrXÿӅ ra:

HiӇu vӅ nguyên lý, cách thӭc hoҥWÿӝng, nhӳQJѭXÿLӇm và hҥn chӃ cӫa IPsec ĈѭDUDP{KuQKFPGA-based IPsec Acceleration

HiӇu rõ thuұt toán mã hóa dӳ liӋu AES-128/192/256

NҳPÿѭӧc các chӃ ÿӝ mã hóa và giҧi mã: ECB, CBC, CFB, OFB, CTR ĈѭDUDP{KuQKFPGA-based IPsec Acceleration ĈѭDUDVѫÿӗ khӕi và mô tҧ hoҥWÿӝng cӫa lõi IP AES128/192/256

Thӵc hiӋn thành công mã hóa, giҧi mã AES trên FPGA

Lõi IP mã hóa/giҧi mã AES có tính tùy biӃn cao, hoҥWÿӝQJÿѭӧc vӟi tҫn sӕ cao (khoҧng 350Mhz), tiêu tӕn tài nguyên FPGA thҩp, có tính cҥnh tranh so vӟi các thiӃt kӃ khác.

KhuyӃn nghӏ

Thông qua giҧLSKiSWăQJWӕc phҫn cӭng nhҵm nâng cao hiӋu suҩt và tiӃt kiӋm tài nguyên, doanh nghiӋp có thӇ sӱ dөng giҧi pháp này cho các hӋ thӕng SoC cӫDPuQKWURQJWѭѫQJ lai Ngoài ra, có thӇ kӃt hӧp các chӃ ÿӝ mã hóa vӟi giҧi thuұWPmKyDÿӇ ÿҥWÿѭӧc mӭFÿӝ bҧo mұWFDRKѫQ1Kӳng hӋ thӕng tích hӧp ӭng dөng ,3VHFWURQJWѭѫQJODLFyWKӇ xӱ lí KRjQWRjQWK{QJOѭӧng IPsec thông qua SmartNICÿLӅu này giúp giҧi phóng khӕLOѭӧng công viӋc rҩt lӟn cho CPU 1KѭQJÿLӅXQj\FNJQJÿzLKӓi chi phí xây dӵng hӋ thӕng lӟn KѫQYjTXiWUuQKWKLӃt kӃ FNJQJWѭѫQJÿӕi phӭc tҥp KѫQQKҩt là giao diӋn giӳa FPGA và CPU

7.3 Giӟi hҥn YjKѭӟng phát triӇn

Giӟi hҥn: Dӵ án chӍ thӵc hiӋn WăQJWӕc phҫn cӭng cho mã hóa/giҧi mã AES, FKѭDWKӵc hiӋn cho các khӕi khác trong giao thӭc IPsec: Ingress Packet Processor; Egress Packet Processor; HMAC authentication with SHA-1, SHA-2 512/384/256/224 ViӋc xӱ lý các khӕLQj\Gѭӟi phҫn cӭng là mӝt thách thӭc rҩt lӟn, cҫn nhiӅu giҧi thuұt phӭc tҥp, tiêu tӕn nhiӅu tài nguyên

+ѭӟng phát triӇn: ThiӃt kӃ các khӕi còn lҥi trong mһt phҷng dӳ liӋXÿӇ tiӃn tӟi mөc tiêu xӱ lý giao thӭc IPsec hoàn toàn trên phҫn cӭng Ngoài ra, thiӃt kӃ chip ASIC hӛ trӧ giao thӭF,3VHFFNJQJOjPӝWKѭӟQJÿLÿҫy hӭa hҽn Chip ASIC sӁ giúp tӕLѭXKLӋu suҩt xӱ lý ,3VHFQKѭQJTXiWUuQKWKLӃt kӃ cӵc kì phӭc tҥp và cҫn nhiӅu tiӅn bҥc

[1] Todd Lumpkin and Kim Phillips Freescale Semiconductor, Inc ³/LQX[,36HF and Crypto Hardware Acceleration.´ Internet: http://citeseerx.ist.psu.edu/viewdoc/download?doi.1.1.140.8447&rep=rep1&ty pe=pdf, 2000

[2] Stephen Doyle, Georgii Tkachuk ³,QWHO,36HF$FFHOHUDWLRQ´ Internet: https://01.org/sites/default/files/downloads//intelipsecaccelerationwhitepaper.pdf,

[3] Frederik Hauser, Marco Haberle, Mark Schmidt, Michael Menth ³3-IPsec:

Implementation of IPsec Gateways in P4 with SDN Control for Host-to-Site Scenarios.´,QWHUQHWhttps://arxiv.org/pdf/1907.03593.pdf, Jul 08, 2019

[4] Sheila Frankel, Suresh Krishnan³IP Security (IPsec) and Internet Key Exchange

(IKE) Document Road Map (RFC-6071).´,QWHUQHW https://tools.ietf.org/html/rfc6071, Feb 2011

[5] Stephen Kent, Karen Seo³Security Architecture for the Internet Protocol (RFC-

4301).´,QWHUQHWhttps://tools.ietf.org/html/rfc4301, Dec 2005

[6] Stephen Kent³IP Authentication Header (RFC-4302).´,QWHUQHW https://tools.ietf.org/html/rfc4302, Dec 2005

[7] Stephen Kent³IP Encapsulating Security Payload (RFC-4303).´,QWHUQHW https://tools.ietf.org/html/rfc4303, Dec 2005

[8] Charlie Kaufman³Internet Key Exchange (IKEv2) Protocol (RFC-4306).´

Internet: https://tools.ietf.org/html/rfc4306, Dec 2005

[9] Federal Information Processing Standards Publications (FIPS PUBS)³Advanced

EncryptioQ6WDQGDUG´,QWHUQHW https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf, Nov 26, 2001

[10] Boris Pismenny (Mellanox), Declan Doherty (Intel), Hemant Agrawal (NXP) ³RTE_Security: Enabling hardware acceleration of security SURWRFROV´,QWHUQHW https://www.dpdk.org/wp-content/uploads/sites/35/2017/09/DPDK-

Userspace2017-Day1-9-security-presentation.pdf, 2017

[11] 'HHSDN.XPDU-DLQ7HFKQLFDO3URMHFW0DQDJHU,QWHO³DPDK Cryptodev.´

Internet: https://fast.dpdk.org/events/slides/DPDK-2017-04-India-Cryptodev.pdf,

[12] ,QWHO13*30$³DPDK IPsec Security Gateway Application.´ Internet:

70 https://www.slideshare.net/MichelleHolley1/dpdk-ipsec-security-gateway- application, Mar 02, 2017

[13] &DGHQFH'HVLJQ6\VWHPV,QF³Cadence Circuit Simulation (Block-level, chip- level, and mixed-signal simulation).´,QWHUQHW https://www.cadence.com/en_US/home/tools/custom-ic-analog-rf-design/circuit- simulation.html, 2020

[14] 7\OHU6KHUHU7HFKQLFDO:ULWHU&DGHQFH³Improving Simulation Throughput

Using The Xcelium Parallel Logic Simulator.´,QWHUQHW https://www.cadence.com/content/dam/cadence- www/global/en_US/documents/tools/system-design-verification/xcelium-wp.pdf,

[15] ;LOLQ[³Introduction to FPGA Design with Vivado High-Level Synthesis, UG998

(v1.1)´,QWHUQHW https://www.xilinx.com/support/documentation/sw_manuals/ug998-vivado-intro- fpga-design-hls.pdf, Jan 22, 2019

[16] ;LOLQ[³UltraScale Architecture and Product Data Sheet: Overview

DS890 (v3.10)´,QWHUQHW https://www.xilinx.com/support/documentation/data_sheets/ds890-ultrascale- overview.pdf, Aug 21, 2019

[17] ;LOLQ[³UltraScale and UltraScale+ FPGAs Packaging and Pinouts Product

Specification UG57Y´,QWHUQHW https://www.xilinx.com/support/documentation/user_guides/ug575-ultrascale-pkg- pinout.pdf, Mar 18, 2020

[18] ;LOLQ[³HTG-9200: Xilinx Virtex UltraScale+ TM Optical Networking

Development Platform.´,QWHUQHW http://www.hitechglobal.com/Boards/UltraScale+_X9QSFP28.htm, 2020

[19] +HOLRQ7HFKQRORJLHV³Helion Giga AES Solutions´,QWHUQHW https://www.heliontech.com/aes_giga.htm, 2019

[20] 0RUULV'ZRUNLQ³Recommendation for %ORFN&LSKHU0RGHVRI2SHUDWLRQ´

Internet: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf, Dec 2001.

Phҫn phө lөc sӁ trình bày mӝt phҫn tiêu biӇu trong quá trình thiӃt kӃÿyOjSKҫn kiӇm tra chӭF QăQJ 57/YHULILFDWLRQ 'ѭӟLÿk\OjWestbench mô phӓng mã hóa, giҧi mã AES- 128/192/256

`timescale 1 ps/ 1 ps parameter UPD = 32; parameter CPUA = 16; module testtop

// Clock reg clk; reg rst;

//Gen clock 312.5 initial begin clk = 0;

72 //Gen reset 312.5 initial begin rst = 0;

//////////////////////////////////////////////////////////////////////////////// //AES reg [1:0] nxt_imode = 2'b0; reg nxt_ipvld = 1'b0; reg [127:0] nxt_ipdat = 128'b0; reg [255:0] nxt_ickey = 256'b0; wire oencrypt_vld; wire [127:0] oencrypt_dat; initial begin nxt_imode = 2'd0; nxt_ipvld = 1'b0; nxt_ipdat = 128'h0; nxt_ickey = 256'h0;

#10_000; nxt_ipvld = 1'b1; nxt_ipdat = 128'h00112233445566778899aabbccddeeff;

#10_000; nxt_ipvld = 1'b1; nxt_ipdat = 128'h00112233445566778899aabbccddeeff;

#10_000; nxt_ipvld = 1'b1; nxt_ipdat = 128'h00112233445566778899aabbccddeeff; end reg [1:0] imode = 2'b0; reg ipvld = 1'b0; reg [127:0] ipdat = 128'b0; reg [255:0] ickey = 256'b0; always @ (posedge clk) imode

Ngày đăng: 03/08/2024, 13:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w