IPsec là mӝWSKѭѫQJSKiSÿѭӧFÿiQKJLiFyQKLӅXѭXÿLӇm cho vҩQÿӅ bҧo mұt mҥng internet hiӋQQD\ÿһc biӋt trong bӕi cҧnh có nhiӅu cuӝc tҩn công mҥng và an toàn thông tin trên mҥQJÿѭӧFÿһWOrQKjQJÿҫu
Chuҭn IPsec
Vì IPsec thӵc sӵ là mӝt tұp hӧp các kӻ thuұt và giao thӭFQrQQyNK{QJÿѭӧc ÿӏQKQJKƭDQKѭPӝt tiêu chuҭn Internet duy nhҩW7KD\YjRÿyVӁ có mӝt bӝ 5)&ÿӏnh QJKƭDNLӃn trúc, dӏch vө và giao thӭc cө thӇ ÿѭӧc sӱ dөng trong IPsec Các thông sӕ này ÿѭӧc thӕng kê ӣ bҧQJGѭӟi, tҩt cҧ ÿӅXÿѭӧc công bӕ YjRWKiQJQăP[1]:
2401 KiӃn trúc bҧo mұt cho giao thӭc Internet
Tài liӋu chính IPsec, mô tҧ kiӃn trúc và hoҥWÿӝng chung cӫa công nghӋ, cho thҩy các thành phҫn khác nhau khӟp vӟLQKDXQKѭWKӃ nào
;iFÿӏnh giao thӭF$+$XWKHQWLFDWLRQ+HDGHUÿѭӧc sӱ dөng cho viӋFÿҧm bҧo tính toàn vҽn dӳ liӋu và xác minh nguӗn gӕc dӳ liӋu
Mô tҧ mӝt thuұt toán mã hóa cө thӇ ÿӇ sӱ dөng qua
AH và giao thӭc ESP (Encapsulation Security 3D\ORDGÿѭӧc gӑi là MD5 (Message Digest 5), biӃn thӇ HMAC
Mô tҧ mӝt thuұt toán mã hóa cө thӇ ÿӇ sӱ dөng qua
AH và giao thӭc ESP gӑi là SHA-1 (Security Hash Algorithm 1), biӃn thӇ HMAC
Mô tҧ giao thӭc IPsec ESP, cung cҩp bҧo mұt dӳ liӋu bҵng viӋc mã hóa
;iFÿӏQKFiFSKѭѫQJWKӭFWUDRÿәLNKyDYjÿjPSKiQ bҧo mұt
Mô tҧ giao thӭF,.(ÿѭӧc sӱ dөQJÿӇ ÿjPSKiQEҧo mұWYjWUDRÿәi khóa giӳa các thiӃt bӏ ÿӇ giao tiӃp an toàn Dӵa trên ISAKMP và Oakley
Mô tҧ mӝt giao thӭFFKXQJÿӇ WUDRÿәi khóa
HoҥWÿӝng chung, các thành phҫn và giao thӭc cӫa IPsec
Giao thӭc cӕt lõi IPsec
AH và ESP là hai giao thӭFFKtQKÿѭӧc sӱ dөng bӣi IPsec, chúng hoҥWÿӝng ӣ wire-OHYHO QKѭ WURQJ KuQK Gѭӟi, hai thành phҫQ ÿѭӧc gӑi là giao thӭc cӕt lõi - ³FRUH SURWRFRO´Fӫa Ipsec [1]:
Hình 1.1 - Giao thͱc c͙t lõi IPsec
IPsec Authentication Header (AH) [1]ÿѭӧc sӱ dөQJÿӇ xác thӵc ± QKѭQJNK{QJ mã hóa ± OѭXOѭӧng IP Nó xác thӵc bҵng cách tính toán mӝt mã xác thӵc tin nhҳn dӵa WUrQPmKyDEăPWUrn hҫu hӃWFiFWUѭӡng cӫa gói IP (không bao gӗm nhӳQJWUѭӡng có thӇ ÿѭӧc sӱDÿәi trong quá trình chҷng hҥQQKѭKHDGHUFKHFNVXPYjOѭXWUӳ QKѭPӝt WLrXÿӅ (AH header) mӟLÿѭӧc thêm vào và gӱLÿӃQÿҫXNLD7LrXÿӅ Qj\ÿѭӧc chèn vào giӳa bҧn gӕc IP header và payload
Encapsulating Security Payload (ESP) [1]: cung cҩp mã hóa và xác thӵc tùy chӑn
Nó bao gӗPFiFWUѭӡQJWLrXÿӅ YjWUDLOHUÿӇ hӛ trӧ mã hóa và xác thӵc lҥi tùy chӑn Mã KyDFKRJyL,3ÿѭӧc hӛ trӧ trong chӃ ÿӝ transport và cho toàn bӝ gói trong chӃ ÿӝ tunnel Xác thӵc áp dөQJFKRWLrXÿӅ ESP và mã hóa dӳ liӋu.
ChӃ ÿӝ hoҥWÿӝng cӫa IPsec
IPsec có hai chӃ ÿӝ hoҥWÿӝng:
- IPsec Transport mode: chӃ ÿӝ transport cung cҩp mӝt kӃt nӕi an toàn giӳDKDLÿLӇm cuӕLYuQyÿyQJJyL,3SDyload
+ Mã hóa và tùy chӑn xác thӵc dӳ liӋu IP
+ Có thӇ SKkQWtFKOѭXOѭӧng
+ TӕWFKROѭXOѭӧng máy chӫ ESP host to host
- IPsec Tunnel mode: có chӭFQăQJWѭѫQJWӵ QKѭ931WURQJÿyWRjQEӝ gói IP packets ÿѭӧFÿyQJJyLErQWURQJYjJӱLÿӃQÿtFK1yÿyQJJyLÿҫ\ÿӫ KHDGHU,3FNJQJQKѭ payload
+ Mã hóa toàn bӝ IP packet
+ Thêm header mӟLFKREѭӟc tiӃp theo
+ Không có bӝ ÿӏnh tuyӃn nào có thӇ kiӇPWUDÿѭӧc header IP bên trong
+ Tính bҧo mұt cao cho mҥng VPNs, gateway to gateway.
Vai trò và lӧi ích cӫa IPsec
Cho phép xác thӵc hai chiӅXWUѭӟc và trong quá trình truyӅn tҧi dӳ liӋu
0mKyDÿѭӡng truyӅn giӳDPi\NKLÿѭӧc gӱi qua 1 mҥng
Bҧo vӋ gói dӳ liӋu IP và phòng ngӵ WUѭӟc các cuӝc tҩn công mҥng không bҧo mұt Bào vӋ FiFOѭXOѭӧng bҵng viӋc sӱ dөQJPmKyDYjÿiQKGҩu dӳ liӋu
&KtQKViFK,3VHFFKRSKpSÿӏQKQJKƭDUDFiFORҥLOѭXOѭӧng mà IPSec kiӇm tra YjFiFOѭXOѭӧQJÿyVӁ ÿѭӧc bҧo mұWYjPmKyDQKѭWKӃ nào
'Rÿy,3VHFFXQJFҩp các gói phòng thӫ chuyên sâu chӕng lҥi:
- Các cuӝc tҩn cӝng mҥng tӯ FiFPi\WtQKNK{QJÿiQJWLn cұy, và các cuӝc tҩn công có thӇ dүQÿӃn viӋc tӯ chӕi cung cҩp dӏch vө cӫa các ӭng dөng hoһc dӏch vө mҥng
- Trӝm cҳSWK{QJWLQQJѭӡi dùng
- KiӇm soát quҧn trӏ máy chӫ (servers), máy tính khác và mҥng
Tính bҧo mұt: Bҵng cách mã hóa dӳ liӋu
Tính toàn vҽn: Bӝ ÿӏnh tuyӃn (router) tҥi mӛLÿLӇm cuӕi cӫDÿѭӡng hҫm tính toán ÿҧm bҧo giá trӏ checksum hoһc giá trӏ EăPKDVKYDOXHFӫa dӳ liӋXÿѭӧc bҧo toàn
+ Có chӳ kí (signature) và chӭng nhұn (certificates)
+ Duy trì khҧ QăQJÿӏnh tuyӃn thông qua kӃt nӕi mҥQJ,3ÿDQJWӗn tҥi
Cung cҩp bҧo mұt (mã hóa) dӳ liêu, tính toàn vҽn, xác thӵc:
+ Dӳ liӋXÿѭӧFÿiQKGҩu (signed) bӣLQJѭӡi gӱLYjÿѭӧc ký (signature) và xác minh (verify) bӣLQJѭӡi nhұn
+ SӱD ÿәi dӳ liӋu có thӇ bӏ phát hiӋn bҵng các nhұn dҥng chӳ ký (signature verification)
+ Bӣi vì chӳ kí dӵa trên bí mұWÿѭӧc chia sҿ nên chӍ nhӳng nguӗQÿѭӧc phép truy cұp mӟLÿѭӧc xác thӵc
Bҧo vӋ tӵ ÿӝng phát lҥi (Anti-UHSOD\ 1Jѭӡi gӱi phҧi cung cҩS QKѭQJ QJѭӡi nhұn có thӇ bӓ qua
+ IKE (Internet Key Exchange) ± ÿjPSKiQYjWKLӃt lұp
+ Gõ lҥi (rekeyed) hoһc xóa tӵ ÿӝng
+ Khóa bí mұWÿѭӧc thiӃt lұp và xác thӵc mӝt cách an toàn
+ ChӃ ÿӝ tӯ [DSHHUÿѭӧc xác thӵc thông qua các tùy chӑn khác.
ѬXÿLӇm và tính ӭng dөng cӫa Ipsec
ѬXÿLӇm cӫa IPsec
.KL,36HFÿѭӧc triӇn khai trên bӭFWѭӡ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ӝ gói dӳ liӋu vào ra mҥng ULrQJÿyPjFiFWKjQKSKҫn khác không cҫn phҧi xӱ lý thêm các công viӋc liên quan tӟi bҧo mұt
,36HFÿѭӧc thӵc hiӋQErQGѭӟi lӟS7&3Yj8'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,36HFÿѭӧc triӇn khai
6 IPSec có thӇ ÿѭӧc cҩXKuQKÿӇ hoҥWÿӝng mӝt cách trong suӕWÿӕi vӟi các ӭng dөQJÿҫ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 internet [2].
Mӝt sӕ ӭng dөng cӫa IPsec
Bҧo mұt kӃt nӕi giӳa các chi nhánh qua internet: Mӝt công ty có thӇ xây dӵng mӝt mҥng bҧo mұt ҧo qua internet hoһc qua mҥng WAN
Bҧo mұt truy cұp tӯ [DTXDLQWHUQHWQJѭӡi dùng cuӕi có hӋ thӕQJÿѭӧc trang bӏ bҧo mұt IPsec có thӇ thӵc hiӋn cuӝc gӑi nӝi bӝ ÿӃn nhà cung cҩp dӏch vө internet (ISP) và có quyӅn truy cұp an toàn vào mҥng công ty
ThiӃt lұp kӃt nӕi extranet và mҥng nӝi bӝ vӟLFiFÿӕi tác: IPsec có thӇ ÿѭӧc sӱ dөQJÿӇ bҧo mұt liên lҥc vӟi các tә chӭFNKiFÿҧm bҧo xác thӵc và bҧo mұWFNJQJQKѭ cung cҩSFѫFKӃ WUDRÿәi khóa (key exchange)
7ăQJFѭӡng bҧo mұWWURQJWKѭѫQJPҥLÿLӋn tӱ: mһc dù mӝt sӕ ӭng dөQJWKѭѫQJ mҥLÿLӋn tӱ YjFiFWUDQJZHEWKѭѫQJPҥLÿLӋn tӱ ÿmWtFKKӧp các giao thӭc bҧo mұt, tuy nhiên viӋc sӱ dөng IPsec sӁ cӫng cӕ thêm tính bҧo mұt và an toàn cho các hӋ thӕng WKѭѫQJPҥLÿLӋn tӱ ÿDQJFy[2].
KhuyӃWÿLӇm cӫa IPsec
Tҩt cҧ FiFJyLÿѭӧc xӱ lý theo IPsec sӁ bӏ WăQJNtFKWKѭӟc do phҧi thêm vào các WLrXÿӅ NKiFQKDXYjÿLӅXQj\OjPFKRWK{QJOѭӧng hiӋu dөng cӫa mҥng giҧm xuӕng VҩQÿӅ này có thӇ ÿѭӧc khҳc phөc bҵng cách nén dӳ liӋXWUѭӟFNKLPmKyDVRQJFiFNƭ thuұWQKѭYұy vүQFzQÿDQJQJKLrQFӭXYjFKѭDÿѭӧc chuҭn hóa
,36HFÿѭӧc thiӃt kӃ chӍ ÿӇ hӛ trӧ bҧo mұWFKROѭXOѭӧng IP, không hӛ trӧ các dҥng lѭ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ҩQÿӅ khó ÿӕi vӟi các trҥm làm viӋc và máy PC cҩu hình yӃu
ViӋc phân phӕi các phҫn cӭng và phҫm 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 [2]
&+ѬѪ1* TÌNH HÌNH NGHIÊN CӬU TRONG VÀ NGOÀI 1ѬӞC
ĈiQKJLiWuQKKuQKEҧo mұt hiӋn tҥi
An ninh mҥng là mӝt vҩQÿӅ quan trӑQJÿӕi vӟi viӋc áp dөng các công nghӋ mӟi trong mӑLOƭQKYӵc cӫa xã hӝi và nӅn kinh tӃĈLӅXQj\ÿһc biӋt quan trӑQJÿӕi vӟi các giao dӏFKÿLӋn tӱÿk\OjÿLӅu kiӋn tiên quyӃWÿӇ truyӅQÿҥt niӅPWLQYjRQJѭӡi dùng [3] Tuy nhiên, các mӕLÿHGӑa hiӋn tҥLYjWѭѫQJODLÿӕi vӟi an ninh mҥng vүn còn nghiêm trӑng và cҫQÿѭӧc nhìn nhұn mӝWFiFKQJKLrPW~FÿLӅXQj\WK~Fÿҭy cho viӋc tiӃp tөc ÿҫXWѭQJKLrQFӭXYjROƭQKYӵc này [4]
Theo khҧo sát cӫa Computer Security Institute (CSI), chi phí trung bình hàng QăPGRWӝi phҥm an ninh mҥQJWăQJJҩSÿ{LWURQJQăPVRYӟLQăPWUѭӟc Các công ty báo cáo thiӋt hҥL WUXQJ EuQK QăP Oj WURQJ QăP WăQJ Pҥnh so vӟi
$168.000 trong QăP[5] Các dӳ liӋXQj\ÿmSKҧn ánh tình hình nghiêm trӑng vӅ an ninh mҥQJFNJQJQKѭFiFWKjQKWӵXÿҥWÿѭӧc trong trұn chiӃn này
Các cuӝc tҩn công có mөFÿtFKÿmWUӣ thành mӝW[XKѭӟng trong an ninh mҥng Mӝt cuӝc tҩn công có mөFÿtFKOjPӝt cuӝc tҩn công phҫn mӅPÿӝc hҥi nhҵm vào mӝt tә chӭc hoһc các tә chӭc trong mӝt khu vӵc hay mӝt thӏ WUѭӡng nhҩWÿӏnh [6] Khoҧng 20% sӕ QJѭӡLÿѭӧc hӓi cӫa cuӝc khҧo sát cӫD&6,ÿmWUҧi qua sӵ cӕ an ninh này Các cuӝc tҩn công nhҳm vào mөc tiêu phҥm vi hҽSQKѭYұ\ÿDQJWUӣ nên phә biӃQKѫQEDR giӡ hӃt [6]
Là mӝt loҥi tҩn công có mөFÿtFKQәi tiӃng nguy hiӇm, Denial-of-Service (DoS) tiӃp tөFÿHGӑDÿӃn an ninh mҥng Tӯ QăPFiFFXӝc tҩn côQJ'R6ÿmSKiWWULӇn nhanh chóng và là mӝt trong nhӳng mӕLÿHGӑDFKtQKÿӕi vӟi tính khҧ dөQJYjÿӝ tin cұy cӫa các dӏch vө trên mҥng KiӇu tҩQF{QJQj\ÿѭӧc liӋt kê là nguyên nhân gây ra tәng chi phí do tӝi phҥm an ninh mҥng cao thӭ KDLWURQJQăP0һc dù tӹ lӋ tәn thҩt do các cuӝc tҩn công DoS trӵc tiӃSJk\UDÿmJLҧm trong nhӳQJQăPJҫQÿk\QKѭQJ tәng thiӋt hҥi lҥLÿDQJJLDWăQJ1JX\rQQKkQOjGRWәn thҩt tài chính phát sinh mӛi phút sau khi mӛi trang web bӏ hӓng [5]
Ngoài UD[XKѭӟng cӫa các mӕLÿHGӑa nguy hiӇPÿmWKD\ÿәLWKHRKѭӟng sâu rӝQJSKkQWiQPmÿӝc hҥi trên internet và phҫn mӅPJLiQÿLӋp Khi kӃt hӧp vӟi các cuӝc tҩn công DoS, thiӋt hҥi vӅ tài chính có thӇ là rҩt cao Ví dө, CodeRed, mӝt con sâu nәi tiӃQJÿѭӧc tích hӧp tҩQF{QJ'R6ÿmOk\QKLӉPKѫQKӋ thӕng chӍ trong 9 giӡ YjRQJj\WKiQJQăP[7]; và nhiӅu loҥLVkX0\'RRPPDQJFiFFKѭѫQJWUuQK tҩn công DoS kích hoҥt theo thӡi gian, gây ra các hұu quҧ nһng nӅ YjRQăP004 [8].
Bҧo mұWFѫVӣ hҥ tҫng mҥng
ViӋc bҧo vӋ FѫVӣ hҥ tҫng mҥQJÿmÿѭӧFѭXWLrQFDRGRFiFWtQKQăQJFѫEҧn cӫa QyOjÿӇ bҧo vӋ dӳ liӋXWKѭѫQJPҥLÿLӋn tӱ và thұm chí cҧ an ninh quӕc gia [9] Mӝt mҥQJÿáng tin cұy nên có ít nhҩt hai mӭFÿӝ bҧo mұt: bҧo mұt thông tin và bҧo mұWFѫ sӣ hҥ tҫng Bҧo mұt thông tin dӵa trên lý thuyӃt thông tin và chӫ yӃu tұp trung vào bҧo vӋ dӳ liӋu bҵng các kӻ thuұWQKѭ[iFWKӵc và mã hóa [10] Mһc dù quan trӑQJQKѭQJ chӫ ÿӅ này nҵm ngoài phҥm vi cӫa bài báo cӫa chúng tôi Mһt khác, bҧo mұWFѫVӣ hҥ tҫng tұp trung vào viӋc bҧo vӋ tài nguyên mҥng, thӭ GQJÿӇ hӛ trӧ chia sҿ thông tin [11] Tҫm quan trӑng và tính cҩp thiӃt cӫa nó dҫn dҫQÿѭӧFFRLOjWѭѫQJÿѭѫQJYӟi bҧo mұt thông tin vӟi sӵ xuҩt hiӋQYjWăQJQKDQKFӫa các mӕLÿHGӑa nhҳPYjRFѫVӣ hҥ tҫng
8 mҥng Trong thӵc tӃFѫVӣ hҥ tҫng và bҧo mұt thông tin bә sung cho nhau; mӝt mҥng Oѭӟi tӕWQrQÿѭӧc bҧRÿҧm ӣ cҧ KDLÿӇ hoҥWÿӝQJÿiQJWLQFұy
Tӯ TXDQÿLӇm nghiên cӭu này, tҩt cҧ các bӝ phұn thích hӧSÿӇ kӃt nӕi vӟi mҥng có thӇ ÿѭӧc coi là thành phҫQFѫVӣ hҥ tҫng mҥng, bao gӗm: máy chӫ DNS, bӝ ÿӏnh tuyӃn, bӝ ÿӋm và máy chӫ ÿҫu cuӕL9uÿk\OjQKӳng thành phҫn quan trӑng ÿӇ thu thұp WK{QJWLQWUDRÿәi và phân phӕi trong mҥng, chúng là nhӳQJÿӕLWѭӧng bӏ tҩn công có giá trӏ nhҩW7ѭѫQJWӵ QKѭWKiFKWKӭc lӟn trong viӋFÿҧm bҧo an toàn cho tҩt cҧ FiFÿLӇm nhұp cҧnh có thӇ bӏ tҩQ F{QJ ÿӇ chӕng lҥi mӝt quӕc gia, nó không thӵc tӃ FNJQJ QKѭ không cҫn thiӃWÿӇ ÿiSӭng ӣ tҩt cҧ mӑLQѫLWURQJFѫVӣ hҥ tҫng mҥng [12] ChӍ cҫn các thành phҫn cҫn bҧo mұt phҧLÿѭӧc bҧo mұt thì toàn bӝ hҥ tҫng mҥng có thӇ ÿѭӧc coi là bҧo mұt Tóm lҥi, mӝt chính sách bҧo mұWFѫVӣ hҥ tҫng mҥQJFyêQJKƭDGX\WUuKRҥt ÿӝng tӕt cӫa các thành phҫn quan trӑng bên trong mҥQJQJăQFҧn chúng bӏ tҩn công, do ÿyGX\WUuWtQKNKҧ dөQJÿӝ tin cұy và tính әQÿӏnh cӫa các dӏch vө mҥng [13]
Rҩt ít vҩQÿӅ bҧo mұWÿm ÿѭӧFÿѭDYjRWjLNKRҧQYjÿѭӧc tiêu chuҭQKyDQKѭOj các giao thӭc trong thiӃt kӃ EDQÿҫu cӫa Internet Sӵ thiӃu hөWErQWURQJQj\ÿmFKRSKpS nhiӅXFѫKӝi tҩn công Các nguyên nhân khác cӫa lӛ hәQJWURQJFѫVӣ hҥ tҫng mҥng bao gӗm lҳSÿһt thiӃu sót, cҩu hình sai và sai sót trong lӵa chӑn cҩu trúc liên kӃt và giao thӭc MһFGWuQKKuQKÿmÿѭӧc cҧi thiӋn nhӡ sӵ xuҩt hiӋn cӫa các giao thӭc bҧo mұt QKѭ,36HFEҧo mұt IP) [14], cҫn có thӡLJLDQÿӇ FK~QJÿѭӧc áp dөng rӝng rãi Ngoài ra, sӵ WăQJWUѭӣng theo cҩp sӕ nhân cӫD,QWHUQHWÿmGүQÿӃn mӝWFѫVӣ hҥ tҫng mҥng NK{QJÿӗng nhҩt có thӇ làm chұm lҥi viӋc chҩp nhұn các giҧi pháp giao thӭc KӃt quҧ là, các chiӃQOѭӧc bҧo mұt bӏ quá hҥQÿӇ có thӇ bҧo vӋ FѫVӣ hҥ tҫng mҥQJĈӇ cung cҩp chҩWOѭӧng dӏch vө FKRQJѭӡi dùng, mӝWFѫVӣ hҥ tҫng mҥng mҥnh mӁ là bҳt buӝc
NhiӅu giҧi pháp bҧo mұWFѫVӣ hҥ tҫng dӵDWUrQSKkQWtFKOѭXOѭӧng mҥng [15] 'RÿyEҩt kǤ ӭng dөng hӳXtFKQjRFKRSKkQWtFKOѭXOѭӧng có thӇ ÿѭӧc coi là mӝt ӭng dөng bҧo mұWWURQJOƭQKYӵc an ninh mҥng Xӱ lý dòng TCP, phân loҥLJyLÿӕi chiӃu mүu, phòng thӫ tҩn công chuӝWFKYjQJăQFKһQVkXOjÿҥi diӋn cho các loҥi ӭng dөng chính, tұp trung vào các phҫn cө thӇ trong bҧo mұWFѫVӣ hҥ tҫng mҥng [16] [17] HӋ thӕng phát hiӋn xâm nhұp mҥng và hӋ thӕQJQJăQFKһn xâm nhұp mҥng, ӣ SKѭѫQJGLӋn khác, tұp trung vào sӵ bҧo mұt cӫa toàn bӝ FѫVӣ hҥ tҫng [18].
Yêu cҫu cho mӝt ӭng dөng bҧo mұt thành công
Sau khi khҧo sát các ӭng dөng bҧo mұt hiӋn tҥLOLrQTXDQÿӃQFѫVӣ hҥ tҫng mҥng, thҩy rҵng mӝt giҧLSKiSWKjQKF{QJWKѭӡQJPDQJFiFÿһFÿLӇm sau:
- Bҧo vӋ thӡi gian thӵF1yOjÿLӅu cҫn thiӃt cho mӝWFѫFKӃ bҧo vӋ hiӋu quҧ ÿӇ xӱ lý dӳ liӋu ӣ tӕFÿӝ cao vӟi chi phí phҧLFKăQJ7ҩt cҧ OѭXOѭӧng truy cұp phҧLÿѭӧc kiӇm tra mӝt cách kӏp thӡi, và tҥo ra cҧnh báo mӝt cách chính xác khi các tình huӕng bҩt WKѭӡng xҧy ra
- Cұp nhұt linh hoҥt Các cuӝc tҩn công nguy hiӇm liên tөc phát triӇn yêu cҫu các giҧi pháp bҧo mұt phҧLWKtFKQJKLÿӇ duy trì hiӋu quҧ Bҧn cұp nhұt có thӇ OjFѫVӣ dӳ liӋu tri thӭc (signatures) mà phân tích bҧo mұt phө thuӝc vào, giҧi pháp mӟLÿӇ giҧi quyӃt hoһc thұm chí là chính hӋ thӕng ViӋc cұp nhұt mӝt ӭng dөQJWKѭӡng sӁ thӵc tӃ hѫQ là thay thӃ nó
- KiӇm soát tӕt khҧ QăQJPӣ rӝng Khҧ QăQJPӣ rӝng là mӝt mӕi quan tâm quan trӑng NKiFÿӇ triӇn khai thӵc tӃ NhiӅXSKѭѫQJSKiSÿѭӧc báo cáo hoҥWÿӝng tӕt trên mӝt mҥQJ Oѭӟi nghiên cӭu có quy mô nhӓ QKѭQJ KLӋu suҩt cӫa chúng giҧP ÿL QKDQK
9 FKyQJNKLÿѭӧc triӇn khai tӟi các mҥng quy mô thӵc tӃ, chҷng hҥQQKѭPҥng cҩp WUѭӡng hoһc lӟQKѫQ/êGRFKtQKFKRÿLӅu này là sӵ phӭc tҥp cӫa hӋ thӕQJWKѭӡng WăQJQKDQKKѫQQKLӅu so vӟLNtFKWKѭӟc mҥng mà nó hoҥWÿӝng.
Mӝt sӕ ÿӅ tài nghiên cӭXQJRjLQѭӟc tham khҧo cho luұQYăQ
Thӵc hiӋn bӝ giao thӭc IPsec cho mҥng multigigabit trên FPGA 9
ĈӅ tài: Mateusz Korona, Krzysztof Showron, Mateusz Trzepinski, Mariusz
5DZVNL ³7Kӵc hiӋn bӝ giao thӭc IPsec cho mҥQJ PXOWLJLJDELW WUrQ )3*$´ Poland
IPsec là mӝt bӝ các giao thӭc bә sung tính bҧo mұt cho giao tiӃp ӣ cҩp IP Tuy nhiên, sӭc mҥQKWtQKWRiQFDRÿѭӧc yêu cҫu bӣi các thuұt toán IPsec giӟi hҥn hiӋXQăQJ kӃt nӕi mҥng Bài viӃt trình bày viӋc triӇn khai phҫn cӭng cәng IPsec trong FPGA HiӋu quҧ cӫa giҧLSKiSÿѭӧFÿӅ xuҩt cho phép sӱ dөng IPsec trong các mҥng có tӕFÿӝ dӳ liӋu tҫm vài Gbit/s
Cùng vӟi sӵ phát triӇn không ngӯng cӫa internet, nhӳng trang web toàn cҫu càng dӉ bӏ tәQWKѭѫQJEӣi nhiӅu cuӝc tҩn công mҥng Dӳ liӋXÿѭӧc truyӅn qua nhiӅu bӝ ÿӏnh tuyӃn (router), và kӃt quҧ là dӉ bӏ chһQSDFNHWVQLIILQJ&iFSKѭѫQJWKӭc tҩn công chӫ ÿӝng, bao gӗm giҧ mҥo gói dӳ liӋXFNJQJÿѭӧc sӱ dөng Toàn cҫu hóa vӅ mһt kinh tӃ ÿm WăQJQKXFҫu vӅ FiFFѫFKӃ truyӅn thông an toàn cho các công ty quӕc tӃ và bҧo vӋ lӧi nhuұQÿѭӧc tҥo ra bӣLNLQKGRDQKÿLӋn tӱÿLӅXQj\ÿmWK~Fÿҭy tҥRUDFiFFѫFKӃ an toàn thích hӧp
Mһc dù các giҧLSKiSQK~QJÿѭӧc áp dөng trong các lӟSFDRKѫQFӫa mô hình 26,QKѭ66/KRһc SSH), công viӋc trên IPsec, bӝ giao thӭc cung cҩp bҧo mұt trong lӟp thӭ ba cӫD26,50ÿmÿѭӧc bҳWÿҫXѬXÿLӇm chính cӫDQyOj³WtQKPLQKEҥFK´FKR các lӟSFDRKѫQ1yKRҥWÿӝng vӟi các giao thӭc mҥng khác nhau và cho phép dӉ dàng chuyӇQÿәi giӳa các thuұWWRiQPmKyDWURQJWUѭӡng hӧp vi phҥm chuҭn an toàn) Vӟi IPsec, có thӇ tҥo ra VPN (Mҥng riêng ҧo ± Virtual Private Networks) phù hӧp vӟi nhu cҫXNLQKGRDQKÿLӋn tӱ nói trên
Tӗn tҥi mӝt loҥt các giҧi pháp IPsec có sҹn ViӋc triӇn khai phҫn mӅm nguӗn mӣ chӍ phù hӧp cho sӱ dөng cá nhân (ví dө: Linux OpenWRT distribution [19]ÿѭӧc thiӃt kӃ cho các bӝ ÿӏnh tuyӃQJLDÿuQKFXQJFҩSWK{QJOѭӧng hàng chөc Mbit/s) Các giҧi pháp hiӋu quҧ KѫQÿzLKӓi tài nguyên phҫn cӭng nhiӅXKѫQKѫQFKөc lõi bӝ xӱ OêÿӇ ÿҥWÿѭӧFWK{QJOѭӧng tӕLÿDOj*ELWVGӵ án strongSwan [21]) TriӇQNKDLWKѭѫQJPҥi WKѭӡng sӱ dөng hӛ trӧ phҫn cӭng (ví dөWKѭ viӋQ,QWHO,3VHFÿѭӧc thiӃt kӃ cho bӝ vi xӱ lý Intel Architecture vӟi bӝ lӋnh mӣ rӝng [22]) Nhӳng giҧi pháp này cung cҩp thông OѭӧQJFDRKѫQWKHRWKӭ tӵ cӫa mӝt sӕ Gbit/s, [23] [24]QKѭQJUҩt tӕn kém Có các triӇn NKDLWKѭѫQJPҥi cӫa IPsec bҵng cách sӱ dөng FPGA [25] hoһc GPU [26] QKѭQJFK~QJ không cung cҩp tҩt cҧ FiFWtQKQăQJ,3VHFYtGө: xӱ OêWLrXÿӅ OѭXOѭӧng IP hoһc bҩt kì chӭFQăQJFѫVӣ dӳ liӋu IPsec nào)
,3VHFYjÿһc biӋt là subprotocol ESP (Encapsulating Security Payload) cung cҩp tính bҧo mұt, tính toàn vҽn và tính xác thӵc cӫa dӳ liӋXÿѭӧc truyӅQÿL&KӃ ÿӝ hoҥt ÿӝQJÿѭӡng hҫm (Tunnel operation mode) cho phép tҥo mҥng VPN
Hình 2.1 Gói IP b̫o m̵t vͣi giao thͱc ESP qua 2 ch͇ ÿ͡ tunnel - transport
Trong chӃ ÿӝ ÿѭӡng hҫm ± tunnel mode (hình 2.1) [20] gói dӳ liӋXEDQÿҫXÿѭӧc ÿӋPGRÿyPұt mã khӕi có thӇ ÿѭӧc áp dөng (chiӅu dài cӫDWK{QJÿLӋp phҧi gҩp nhiӅu lҫn chiӅu dài khӕi mã hóa) Bӝ ÿӋPFNJQJFKӭa thông tin phát sinh tӯ cҩu trúc cӫa ESP (ESP trailer) Sau khi hoҥWÿӝQJÿӋPJyLÿѭӧFPmKyD6DXÿy(63KHDGHUÿѭӧFÿtQK kèm Nó chӭa chӍ sӕ tham sӕ bҧo mұt ± mӝt giá trӏ [iFÿӏnh kênh SA an toàn (Security
$VVRFLDWLRQWK{QJTXDÿyJyLÿѭӧc truyӅQÿL
Nhӡ 63,JDWHZD\ÿtFKFyWKӇ [iFÿӏnh các thuұt toán và khóa mã hóa thích hӧp ÿӇ giҧi mã gói tin CuӕLFQJ,&9,QWHJULW\&KHFN9DOXHÿѭӧc nӕi thêm (ESP auth, ví dө: mã xác thӵFWK{QJÿLӋSNKyDEăPFyNKyD± HMAC) Tính toán lҥi giá trӏ này cho phép xác minh tính toàn vҽn và tính xác thӵc cӫa gói tin CuӕLFQJ³KHDGHU,3´ErQ QJRjLÿѭӧFÿtQKNqP
Hình 2.2 trình bày kiӃn trúc cӫa hӋ thӕng Ipsec [20]&ѫVӣ dӳ liӋu chính sách bҧo mұt là viӋc thӵc hiӋn chính sách bҧo mұt SPD stores selectors (ví dөÿӏa chӍ IP, sӕ cәQJôOjFѫVӣ ÿӇ quyӃWÿӏnh, nӃu và cỏch thӭc mӛi gúi cө thӇ cҫQÿѭӧc bҧo vӋ SA (SeFXULW\$VVRFLDWLRQOѭXWUӳ thông tin cҫn thiӃWÿӇ bҧo mұt gói (ví dө: khóa mã hóa) 0{ÿXQ,QWHUQHW.H\([FKDQJH,.(FyWKӇ tӵ ÿӝng thiӃt lұp các kênh an toàn mӟi (Security Association) và mô-ÿXQÿѭӧFÿiQKGҩu là IPsec chӏu trách nhiӋm cho tҩt cҧ các hoҥWÿӝQJPmKyDYjÿyQJJyLJyLWLQ
Hình 2.2 Ki͇n trúc cͯa h th͙ng IPsec
Mӝt nguyên mүu cӫa cәQJ,3VHFÿѭӧc thiӃt kӃ, tӕLÿDKyDOӧi ích cӫa xӱ lý gói phҫn cӭng, bҵng cách thӵc hiӋn tҩt cҧ FiFJLDLÿRҥQ)3*$WUiLQJѭӧc vӟi các giҧi pháp khác chӍ sӱ dөng phҫn cӭng làm máy gia tӕc cho các chӭFQăQJTXDQWUӑng ThiӃt kӃ ÿѭӧc phân chia thành mһt phҷng dӳ liӋu và mһt phҷQJÿLӅu khiӇn phҫn mӅm (bao gӗm IKE module)
- Thӵc hiӋn prototype: Hình 2.WUuQKEj\Vѫÿӗ bҧo mұt gói cӫa thiӃt kӃ (AST là viӃt tҳt cӫa giao diӋn AXI4-Stream) Sau khi tiӃp nhұQFiFJyL,3ÿѭӧc chuyӇQÿӃn bӝ ÿLӅu khiӇn chính sách bҧo mұWÿѫQJLҧn Các bҧn ghi thích hӧSÿѭӧc tìm thҩy trong FѫVӣ dӳ liӋu SPD, dӵDWUrQKjPEăPFӫD3HDUVRQÿѭӧc tính tӯ bӝ IP header selection Mô-ÿXQQj\[iFÿӏnh xem dӳ liӋu có cҫQÿѭӧc bҧo mұt hay không (bypas path) Quá trình bҧo mұt dӳ liӋXÿѭӧc thӵc hiӋn bӣi mô-ÿXQ ,3VHFBRXWERXQG&iFEѭӟc xӱ lý tiӃp theo là: tra cӭXFѫVӣ dӳ liӋX6$'ÿyQJJyL(63YjPmKyD'(6%ѭӟc cuӕi FQJOjWtQKWRiQEăP+0$&-6+$*yLÿѭӧFOѭXWUӳ ),)2FKRÿӃn khi viӋc tính toán cuӕi cùng kӃt thúc
- Phân tích hiӋu suҩt prototype: Prototype cӫa cәQJ ,3VHF ÿm ÿѭӧc thӱ nghiӋm trên board Terasic DE2-70 vӟL$OWHUDảV&\FORQH,,)3*$7ҫn sӕ cӵFÿҥi cӫa thiӃt kӃ là 86.72 MHz vӟi viӋc sӱ dөng 20% logic Dӵa trên công thӭc: ܴ ܯܾ݅ݐ ݏ ൨ ൌ ͺ כ ܰ ܾݕݐ݁ ܽܿ݇݁ݐ൨ ܯ ܿݕ݈ܿ݁ݏ ܽܿ݇݁ݐ൨ כ ܨሾܯܪݖሿ
Vӟi N ± NtFKWKѭӟc cӫa packet, M ± sӕ Oѭӧng chu kì cҫn thiӃWÿӇ xӱ lý packet, F ± tҫn sӕ xung clock tӕLÿDFӫa thiӃt kӃ7K{QJOѭӧng cӫa IPsec gateway cho chiӅu dài cӫDSDFNHWÿѭӧFWtQKWRiQErQGѭӟi [20]:
B̫ng 2.1- Hi u sṷt cͯa Prototype c͝ng IPsec
tFKWKѭӟF packet [byte] &KXNǤJyL Rb [Mbit/s]
12 Tính chính xác cӫa hoҥWÿӝQJSURWRW\SHÿmÿѭӧc xác minh vӟi mô phӓng chӭc QăQJYjEDRJӗm các kiӇPWUDSDFNHWYjVQLIIHU2VWLQDWRYjZLUHVKDUNWѭѫQJӭng) Phân tích hiӋu suҩt thӱ nghiӋm mүXÿѭӧFFKRSKpS[iFÿӏnh ba yӃu tӕ chính quan trӑQJÿӇ WăQJWK{QJOѭӧng ³1~WFә FKDL´ERWWOHQHFNFӫa prototype là mô-ÿXQFKӏu trách nhiӋm tính toán EăP+0$&7KXұt toán HMAC yêu cҫu tính toán SHA-ÿѭӧc tính hai lҫn ± ÿӕi vӟi gói IP 240 byte, phҧi mҩt 86% thӡi gian xӱ lý (685 chu kì trong tәng sӕ 794 chu kì)
Mӝt vҩQÿӅ khác là thiӃt kӃ bӝ xӱ lý bҧo mұt ± chӭFQăQJ,3VHFÿѭӧc chia giӳa bӝ ÿLӅu khiӇn chính sách bҧo mұt và mô-ÿXQSKӭc tҥp thӵc hiӋn tҩt cҧ các hoҥWÿӝng NKiF7URQJJLDLÿRҥQWtQKWRiQEăP+0$&ÿk\OjJLDLÿRҥn dài nhҩt trong toàn bӝ quá trình, các tài nguyên chӏu trách nhiӋPÿyQJJyL,3Yj(63KRһc mã hóa dӳ liӋu vүQFKѭD ÿѭӧc sӱ dөng
Mһt khác, sӱ dөng logic FPGA thҩSKѫQWKHRWLrXFKXҭn ngày nay Cyclone
II FPGA cho phép áp dөQJFiFSKѭѫQJSKiSWӕLѭXKyDSKҫn cӭng, chҷng hҥQQKѭÿѭӡng ӕng (pipelining) và tính song song (paralellization) trong quá trình xӱ lý
3KkQWtFKSURWRW\SHÿmWUӣ WKjQKFѫVӣ ÿӇ phát triӇn kiӃn trúc cәng IPsec phҫn cӭng mӟL&iFSKѭѫQJSKiSWӕLѭXKyDSKҫn cӭng tiên tiӃQÿmÿѭӧc áp dөQJÿӇ thӵc hiӋn, dүQÿӃQWăQJWӕFÿӝ xӱ lý và sӱ dөng logic tӕWKѫQ+uQK2.4) [20]
Các chӭFQăQJ,3VHFÿѭӧc chia thành nhiӅu phҫn cӫa thiӃt kӃ Mӛi phҫn có thӇ chӭa nhiӅu mô-ÿXQWKӵc hiӋn mӝWJLDLÿRҥn xӱ lý cө thӇ, làm viӋc song song Các phҫn ÿѭӧc phân tách bҵQJKjQJÿӧi FIFO và các công tҳc vòng tròn, phân phӕi các gói giӳa các mô-ÿXQWURQJSKҫn cө thӇ KӃt quҧ là, nhiӅu gói có thӇ ÿѭӧc xӱ lý cùng mӝt lúc ViӋc sӱ dөng các công tҳc cho phép kiӇm soát payload cӫa các phҫn xӱ lý trong phҫn ÿmFKR7ăQJVӕ Oѭӧng mô-ÿXQWtQKWRiQ+0$&Wӕn nhiӅu thӡi gian nhҩt dүQÿӃQWăQJ WK{QJOѭӧng Lӧi thӃ cӫa kiӃQWU~Fÿѭӧc WUuQKEj\FNJQJOjӭng dөQJÿѭӧFÿѫQJLҧn hóa cӫa nhiӅu thuұt toán mã hóa khác nhau (ví dө: mӝt sӕ thuұt toán mã hóa ӣ các chӃ ÿӝ khác nhau trong phҫn mã hóa)
Hình 2.4 Ki͇n trúc cͯa c͝ng IPsec
2.4.1.6 T͙L˱XKyDP{-ÿXQ+0$&-SHA1 ĈӇ cҧi thiӋn hiӋu suҩt cӫa cәng IPsec, tӕLѭXKyDFiFP{-ÿXQULrQJOҿ FNJQJÿѭӧc thӵc hiӋn Sӵ FK~êÿһc biӋt dành cho mô-ÿXQ+0$&-SHA1, bӣi vì hiӋu quҧ cӫa nó là sӵ cҳt giҧm tӕFÿӝ xӱ lý quan trӑng trong prototype Hình 5 trình bày thuұt toán HMAC [27]
Khҧo sát so sánh viӋc thӵc hiӋn các thuұt toán mã hóa hiӋu suҩt
FPGA ĈӅ tài: K Ja¨ rvinen, M Tommiska and J 6N\WWD³&RPSDUDWLYHVXUYH\ of high-SHUIRUPDQFH FU\SWRJUDSKLF DOJRULWKP LPSOHPHQWDWLRQV RQ )3*$V´ $DOWR Univeristy
Các tác giҧ trình bày mӝt cuӝc khҧRViWÿӇ so sánh viӋc thӵc hiӋn thuұt toán mұt mã khóa riêng (private-key cryptographic) trên FPGA HiӋu suҩWYjÿӝ linh hoҥt cӫa nhӳng thiӃt bӏ FPGAs làm cho chúng trӣ thành nӅn tҧQJ Oê Wѭӣng trong viӋc triӇn khai các thuұWWRiQPmKyDÿmÿѭӧc nghiên cӭXWURQJYjLQăPTXD Tuy nhiên, có nhӳng cuӝc khҧRViWÿmÿѭӧc thӵc hiӋQQKѭQJFKѭDÿѭӧFWUuQKEj\WUѭӟFÿk\ Các tác giҧ phân tích các bài báo áp dөng thuұWWRiQPmKyDWUrQ)3*$Vÿѭӧc sӱ dөng rӝng rãi nhҩt và so sánh vӅ mһt tӕF ÿӝ (speed), diӋn tích (area) và kӻ thuұt (technique) Các thuұWWRiQÿѭӧc nghiên cӭu trong bài viӃt này bao gӗm các thuұt WRiQPmKyDULrQJWѭÿѭӧc nâng cҩp tӯ PmKyDFѫEҧn (private-key cryptographic algorithms) và thuұt toán mã hóa dӳ liӋu quӕc tӃ (international data encryption) và thuұWWRiQEăP(certain hash) Các thuұWWRiQÿmÿѭӧc thӵc hiӋn cung cҩp mӝt cái nhìn tәng quan vӅ thuұt toán mã hóa riêng (private-key cryptographic algorithm)
Bài viӃt này trình bày mӝt nghiên cӭu chi tiӃt vӅ tình hình áp dөng các thuұt toán PmKyDULrQJWѭ trên FPGAs Khi các thuұWWRiQPmKyDÿѭӧc sӱ dөng rӝQJUmLKѫQWKu các thuұWWRiQÿӅu có chung yêu cҫu là phҧi thӵc hiӋn vӟi tӕFÿӝ FDRKѫQ9LӋc triӇn khai các thuұt toán mã hóa dӵa trên phҫn mӅm không hiӋu quҧ trong nhiӅu ӭng dөng, ví dө: trên các máy chӫ có nhiӅu ӭng dөng Vì vұy, có mӝt nhu cҫu cҩp thiӃt cho viӋc thӵc hiӋn các giҧi thuұt mã hóa trên FPGA vӟi tӕFÿӝ cao
Phҫn cӭng có thӇ lұp trình lҥi gҫQQKѭOjOêWѭӣng cho viӋc thӵc hiӋn mã hóa bӣi Yuÿӝ lӧi sӁ không giҧPÿiQJNӇ trong khi tӕFÿӝ có thӇ ÿѭӧc cҧi thiӋn Tính linh hoҥt, FyQJKƭDOjWKLӃt kӃ có thӇ dӉ GjQJWKD\ÿәi hoһc sӱDÿәLÿѭӧFÿһc biӋt quan trӑQJKѫQ trong viӋc triӇn khai mã hóa vì nhӳQJOêGRVDXĈҫu tiên, mӝt thuұt toán mã hóa có thӇ ÿѭӧc bҧo mұWFKRÿӃQNKLFK~QJÿѭӧc chӭng minh bҵng cách khác NӃu tìm thҩy mӝt lӛ hәng nghiêm trӑng trong thuұt toán, thuұt toán phҧLÿѭӧc thay thӃ bҵng thuұt toán NKiFDQWRjQKѫQ7Kӭ hai, trong nhiӅu ӭng dөng, mӝt loҥt các thuұt toán khác nhau ÿѭӧc sӱ dөQJYjGRÿyQySKҧi dӉ WKD\ÿәi tӯ thӵc hiӋn mӝt thuұt toán này sang thuұt toán khác
Bài viӃt tұp trung vào viӋc triӇn khai các tiêu chuҭn mã hóa tiên tiӃn (AES), thuұt toán mã hóa dӳ liӋu quӕc tӃ (IDEA) và các thuұWWRiQEăPKDVKDOJRULWKPV Các thuұWWRiQQj\ÿҥi diӋn cho cҧ thuұt toán mұt mã khóa bí mұt và thuұWWRiQEăP GRÿyÿӅ WjLQj\ÿѭDUDPӝt cái nhìn tәng quan vӅ tình hình thӵc hiӋn thuұt toán mã hóa Tҩt cҧ các thuұW WRiQ Qj\ ÿm ÿѭӧc thӵc hiӋn bӣi các tác giҧ trong phòng thí nghiӋP³6LJQDO3URFHVVLQJ´Wҥi Helsinki University of Technology, và các thiӃt kӃ ӣ ÿk\ÿѭӧc gӑi là thiӃt kӃ SIG, ví dө: SIG-AES
17 Mһc dù viӋc thӵc hiӋn thuұWWRiQPmKyDWUrQ)3*$ÿmÿѭӧc nghiên cӭu rӝng rãi WURQJYjLQăPTXDÿmFyPӝt vài nghiên cӭu so sánh toàn diӋn vӅ FiFSKѭѫQJSKiSWLӃn KjQKÿmÿѭӧc công bӕ QKѭQJFKѭDÿѭӧc trình bày, ít nhҩt là các kiӃn thӭc cӫa các tác giҧ trong bài báo này Bài bào cӫa Wollinger cùng các cӝng sӵ [30] bao gӗm viӋc xem xét các cách thӵc hiӋn, và tұp trung nhiӅXKѫQYjRFiFFkXKӓi bҧo mұt cӫa FPGA FNJQJ QKѭQӅn tҧng cho viӋc triӇn khai thuұt toán trên FPGA Trong bài viӃt này, các thuұt toán mұWPmÿѭӧc so sánh vӅ mһt tӕFÿӝ, diӋn tích và các kӻ thuұt CuӕLFQJÿѭDUD mӝt sӕ kӃt luұn nhҩWÿӏnh vӅ triӇn khai thuұt toán mã hóa trên FPGA
2.4.2.3 Thu̵t toán m̵t mã khóa riêng (Private-key cryptographic algorithms)
ViӋc thӵc hiӋn các thuұt toán mұt mã khóa riêng trên phҫn cӭng lұp trình lҥi )3*$ÿmÿѭӧc nghiên cӭu rӝng rãi trong nhiӅXQăPTXD0ұt mã khӕi rҩt phù hӧp vӟi viӋc triӇn khai phҫn cӭng, bӣi vì, tính tách (unrolling) và khái niӋPÿѭӡng ӕng (pipelinining) có thӇ ÿѭӧc khai thác mӝt cách hiӋu quҧ
7K{QJOѭӧng có thӇ ÿѭӧFWăQJOrQEҵng cách pipelining mӝt thiӃt kӃ FKѭD ÿѭӧc kiӇPVRiWYjVDXÿyWtQKWRiQPӝt mã mã hóa khác nhau trong mӛLJLDLÿRҥn pipeline Tuy nhiên, pipeline, hҥn chӃ viӋc sӱ dөng các chӃ ÿӝ mã hóa phҧn hӗi và yêu cҫu giá trӏ cӫa bҧn PmWUѭӟFÿyWURQJTXiWUuQKWҥo mã tiӃp theo, ví dө: chӃ ÿӝ chuӛi khӕi mұt mã [31]
Tiêu chuҭn mã hóa dӳ liӋu (DES) và biӃn thӇ 3DES là mұt mã khӕi phә biӃn nhҩt trong nhiӅu thұp kӹ Mӝt sӕ bài báo gҫQÿk\QyLYӅ viӋc triӇn khai tiêu chuҭn '(6ÿmÿѭӧc xuҩt bҧn, ví dө [32] và [33] Tuy nhiên, tiêu chuҭn DES hiӋQÿDQJGҫn ÿѭӧc thay thӃ bҵng tiêu chuҭn AES, và vai trò cӫa tiêu chuҭn DES sӁ bӏ ҧQKKѭӣng WURQJWѭѫQJODL'RÿyWLrXFKXҭn DES sӁ NK{QJÿѭӧF[HP[pWWKrPWURQJWѭѫQJ lai
B̫ng 2.10 Th͙ng kê vi c thc thi AES trên dòng Xilin Virtex FPGAs
Authors Key Device Slice BRAM Area Throughput
Chodowiec et al [34] [Cho] Virtex 1000-6 2 057 8 3 081 1.265 0.615 0.411
Dandalis et al [36] [Dan] Virtex -6 5 673 0 5 673 0.353 0.062 0.062
Elbirt et al [37], [38] [Elb] Virtex 1000-4 10
Elbirt et al [37], [38] [Elb] Virtex 1000-4 4 871 0 4 871 0.949 0.195 0.195
Gaj and Chodowiec [39] [Gaj] Virtex 1000-6 2 902 0 2 902 0.332 0.114 0.114
Hodjat and Verbauwhede [40] [Hod] Virtex-II VP20-7 9 446 0 9 446 21.64 2.291 2.291
Hodjat and Verbauwhede [40] [Hod] Virtex-II VP20-7 5 177 84 15
Ja¨ rvinen et al [41] [Ja¨ r] Virtex-II 2000-5 10
Ja¨ rvinen et al [41] [Ja¨ r] Virtex-E 1000-8 11
Labbe´ and Pe´rez [42] [Lab] Virtex 1000-4 2 151 4 2 663 0.394 0.183 0.148 Labbe´ and Pe´rez [42] [Lab] Virtex 1000-4 3 543 4 4 055 0.796 0.225 0.196 Labbe´ and Pe´rez [42] [Lab] Virtex 1000-4 8 767 4 9 279 1.911 0.218 0.206 McLoone and McCanny [43] [ML1] Virtex-E 3200-8 2 222 100 15
McLoone and McCanny [44] [ML2] Virtex-EM 812-8 2 000 244 33
McLoone and McCanny [45] [ML3] Virtex-EM 812-8 2 679 82 13
Pramstaller and Wolkerstrofer [46] [Pra] Virtex-E 1000-8 1 125 0 1 125 0.215 0.191 0.191
5RGUÕTXH]-H et al [47] [Rod] Virtex-E 2600 5 677 80 15
Rouvroy et al [48] [Rou] Virtex-II 40-6 146 3 530 0.358 2.452 0.675
Saggese et al [49] [Sag] Virtex-E 2000-8 2 778 100 15
Saggese et al [49] [Sag] Virtex-E 2000-8 446 10 1 726 1 2.242 0.579
Saggese et al [49] [Sag] Virtex-E 2000-8 5 810 100 18
Saggese et al [49] [Sag] Virtex-E 2000-8 648 10 1 928 1.82 2.809 0.944
Saqib et al [50] [Saq] Virtex-EM 812 2 744 0 2 744 0.259 0.094 0.094
Saqib et al [50] [Saq] Virtex-EM 812 2 136 100 14
Standaert et al [51] [St1] Virtex 1000-6 2 257 0 2 257 1.563 0.693 0.693
Standaert et al [51] [St1] Virtex-E 3200-8 2 784 100 15
Standaert et al [51] [St1] Virtex-E 3200-8 542 10 1 822 1.45 2.675 0.796
Standaert et al [52] [St2] Virtex-E 3200-8 1 769 0 1 769 2.085 1.179 1.179
Standaert et al [52] [St2] Virtex-E 3200-8 15
Wang and Ni [53] [Wan] Virtex-E 1000-8 1 857 0 1 857 1.604 0.864 0.864
Weaver and Wawrzynek [54] [Wea] Virtex-E 600-8 770 10 2 050 1.75 2.273 0.854
Zambreno et al [55] [Zam] Virtex-II 4000 1 254 20 3 814 4.44 3.541 1.164
Zambreno et al [55] [Zam] Virtex-II 4000 16
Zambreno et al [55] [Zam] Virtex-II 4000 2 206 50 8 606 10.88 4.932 1.264
Zambreno et al [55] [Zam] Virtex-II 4000 3 766 100 16
Zambreno et al [55] [Zam] Virtex-II 4000 387 10 1 667 1.41 3.643 0.846
Zhang and Parhi [56] [Zha] Virtex 1000-6 11
Zhang and Parhi [56] [Zha] Virtex 800-6 9 406 0 9 406 9.184 0.976 0.976
Zhang and Parhi [56] [Zha] Virtex-E 1000-8 11
Zhang and Parhi [56] [Zha] Virtex-EM 812-8 9 406 0 9 406 11.965 1.272 1.272
Hình 2.6 M͙i liên h giͷa Throughput-slice trong thc hi n AES giͷa các h͕ FPGA
Hình 2.7 M͙i liên h throughput-area trong vi c thc hi n AES giͷa các h͕ FPGA
Các thuұWWRiQEăPWKѭӡnJÿѭӧc sӱ dөng, ví dө: MD5 [57] và thuұWWRiQEăPEҧo mұt (SHA) [58], không phù hӧp vӟi viӋc triӇn khai phҫn cӭng tӕFÿӝ FDRQKѭKҫu hӃt các thuұt toán khóa riêng hoһc khóa công khai, chӫ yӃu là vì không thӇ sӱ dөng song song mӝt cách hiӋu quҧ Các thuұWWRiQEăPFyWKӇ ÿѭӧc triӇn khai hiӋu quҧ trên phҫn mӅm khi chúng sӱ dөng các phép cӝng modulo phә biӃn, dӉ GjQJYjQKDQKFKyQJÿӇ thӵc hiӋn vӟi các bӝ vi xӱ lý truyӅn thӕng Tuy nhiên, sӵ JLDWăQJWӕFÿӝ ÿáng kӇ tӯ 25 ÿӃn 31 lҫQÿӕi vӟi SHA-1 và SHA-ÿmÿѭӧc công bӕ [59]
Có mӝt sӕ ӭng dөng nhҩWÿӏQKNK{QJWăQJWӕc phҫn cӭng Ví dө: nӃu mӝWOѭӧc ÿӗ mã hóa yêu cҫXWtQKEăPYtGө: thuұt toán chӳ kí sӕ [60]ÿѭӧc thӵc hiӋn trên FPGA, nó là nӅn tҧQJÿӇ thӵc hiӋn mӝWPRGXOHEăPWUrQFKLS0ӝt sӕ tính tRiQEăPÿzLKӓi cao, ví dө: chuӛi dài sӕ YzQJEăPNK{QJWKӇ WăQJWӕc phҫn cӭng [61] Các thuұt toán EăPÿѭӧc trình bày trong [59] ÿѭӧc xem xét ӣ ÿk\
B̫ng 2.11 K͇t qu̫ thc hi n IDEA trên dòng Xilinx
Tác giҧ ThiӃt bӏ Slies 7K{QJOѭӧng
TPS (Mbps/slice) Cheung [62] Virtex 1000-6 11602 524 0.452
* n.a Giá trӏ không có sҹQWURQJÿӅ tài
B̫ng 2.12 Thu̵t toán h͟ trͫ ÿm công b͙ và thc hi n trên FPGA cͯa gi̫i thu̵WEăP
B̫ng 2.13 Hi u sṷt và di n tích yêu c̯u trong các công b͙ thc hi n gi̫i thu̵t EăPWUrQ)3*$
7iFJLҧ Device *LҧLWKXұW Slice s BlockRAMs 7K{QJOѭӧQJ (Mbps)
Deepakumara et al [68] Virtex 1000-6 MD5 880 2 165
Deepakumara et al [68] Virtex 1000-6 MD5 4 763 0 354
Diez et al [69] Virtex-II 3000 MD5 1 369 0 467.3
Diez et al [69] Virtex-II 3000 SHA-1 1 550 0 899.8
Ja¨ rvinen et al [61] Virtex-II 4000-6 MD5 1 325 0 607
Ja¨ rvinen et al [61] Virtex-II 4000-6 MD5 5 732 0 2 395
Ja¨ rvinen et al [61] Virtex-II 4000-6 MD5 11 498 10 5 857
Ja¨ rvinen et al [72] Virtex-II 2000-6 MD5 1 882 0 602
Ja¨ rvinen et al [72] Virtex-II 2000-6 SHA-1 1 882 0 485
Kang et al [73] Apex 20K 1000-3 MD5 10 573 (LE) 0 142
Kang et al [73] Apex 20K 1000-3 SHA-1 10 573 (LE) 0 114
Kang et al [73] Apex 20K 1000-3 HAS-160 10 573 (LE) 0 160
Lien et al [59] Virtex 1000-6 SHA-1 480 0 544
Lien et al [59] Virtex 1000-6 SHA-1 1 480 0 1 024
Lien et al [59] Virtex 1000-6 SHA-512 2 384 0 717
Lien et al [59] Virtex 1000-6 SHA-512 3 521 0 929
McLoone and McCanny [74] Virtex-E 600-8 SHA-384/512 2 914 2 479
Ng et al [75] Flex 50-1 MD5 1 964 (LE) 0 206
Ng et al [75] Flex 50-1 RIPEMD 1 964 (LE) 0 84
Selimis et al [76] Virtex 150 SHA-1 518 0 518
Sklavos et al [77] Virtex-II 500 SHA-1 2 245 0 1 339
Sklavos et al [77] Virtex-II 500 RIPEMD 2 245 0 1 656
Ting et al [78] Virtex-E 300-8 SHA-256 1 261 0 693
Wang et al [79] Apex 20K 1000-3 MD5 3 040 (LE) 1 (ESB) 178.6
Wang et al [79] Apex 20K 1000-3 SHA-1 3 040 (LE) 1 (ESB) 143.3
Zibin and Ning [80] Acex 100-1 SHA-1 1 622 (LE) 0 268.99
Thҩy rҵng, FPGA có thӇ ÿѭӧc sӱ dөng rҩt hiӋu quҧ cho viӋc triӇn khai tӕFÿӝ cao các thuұt toán mã hóa mұWPm/ƭQKYӵFQj\ÿmÿѭӧc nghiên cӭu rӝng rãi trong vài QăPTXDYjFiFKѭӟng thӵFWKLÿmPDQJOҥi sӵ hiӋu quҧ ÿѭӧc trình bày bҵng nhiӅu thuұt WRiQ&iFSKѭѫQJSKiSWKLӃt kӃ WѭѫQJWӵ ÿѭӧc áp dөng cho tҩt cҧ các thuұWWRiQÿѭӧc nghiên cӭu trong khҧRViWQj\&KuDNKyDÿӇ triӇQNKDLÿҥt tӕFÿӝ FDROj[iFÿӏnh giҧi thuұt hoҥWÿӝng chính (critical operation), ví dө: SubBytes trong AES, và thӵc hiӋn nó mӝt cách hiӋu quҧ Nói chung, các hoҥWÿӝng, ít nhҩt là các hoҥWÿӝng quan trӑng nên
22 ÿѭӧc thӵc hiӋn ӣ mӭc thҩp nhҩWÿӇ ÿҧm bҧo hiӋu suҩt tӕLÿDYӟi nguӗn tài nguyên ít nhҩt
Mһc dù tҩt cҧ các thiӃt kӃ ÿѭӧc xem xét ӣ ÿk\ÿmÿѭӧc thӵc hiӋn trên FPGA, chӍ mӝt trong sӕ tWÿһc biӋt nhҳPÿӃn mөc tiêu FPGA vì chúng chӍ là các triӇn khai phҫn cӭQJEѭӟFÿҫXÿӇ có thӇ tiӃn hành trên các ӭng dөng cө thӇ (ASIC) sau này Khai thác các thuӝF WtQK ÿһc biӋt cӫD )3*$ FKѭD ÿѭӧc nghiên cӭX Nƭ Oѭӥng, ngoҥi trӯ viӋc sӱ dөng bӝ nhӟ nhúng Tuy nhiên, khҧ QăQJEҧo mұt mӝt phҫQÿmÿѭӧc sӱ dөng trong viӋc thӵc hiӋn IDEA [63] QKѭÿѭӧc thҧo luұn trong phҫn WUѭӟc Mӝt sӕ triӇn khai nhҩWÿӏnh ÿmÿѭӧc tӕLѭXKyDFKRFҩXWU~FVOLFHÿmÿѭӧc xuҩt bҧn, ví dө [51]
NhiӅu thuұt toán mã hóa sӱ dөng các loҥi hoҥWÿӝQJWѭѫQJWӵ nhau, vì vұy có thӇ kӃt hӧp mӝt sӕ thuұt toán thành mӝt thiӃt kӃ ÿѫQJLҧn mӝt cách hiӋu quҧ bҵng các khai thác nhӳQJ ÿLӇP WѭѫQJ ÿӗng này Sӵ kӃt hӧp cӫa các thuұt toán mm KyD FKѭD ÿѭӧc nghiên cӭu rӝng rãi, ngoҥi trӯ WURQJ WUѭӡng hӧp thuұW WRiQ EăP &y Wӗn tҥi các khӕi nhúng chuyên dөng cho mӝt sӕ hoҥWÿӝQJWKѭӡQJÿѭӧc sӱ dөng trong các FPGA hiӋn ÿҥi, ví dө: kiӃn trúc Altera Stratix-II bao gӗm các khӕi dành riêng cho xӱ lý tín hiӋu sӕ (DSP) [81] Các khӕi chuyên dөng cho mұWPmFKѭDWӗn tҥi trên thiӃt bӏ QjRQKѭQJQӃu các khӕLQKѭYұ\ÿѭӧc thӵc hiӋn, chúng có thӇ WăQJWӕc hiӋu suҩt cӫa các thuұt toán mã hóa thay thӃ Câu hӓi vӅ cách thӭc các khӕi Qj\QrQÿѭӧc sҳp xӃp và nhӳng hoҥWÿӝng QjRQrQÿѭӧc thӵc hiӋn là mӝt vҩQÿӅ nghiên cӭu mӣ
Dӵa trên các quan sát cӫa chúng tôi, mӝt sӕ nghiên cӭu có thӇ ÿѭӧc nghiên cӭu WURQJWѭѫQJODLEDRJӗm:
- KiӃn trúc cho các ràng buӝc vӅ mһWP{LWUѭӡng (constrained environments)
- 7ăQJWtQKWәng quát, mұt mã tәng quát, kiӃn trúc triӇn khai mӝt sӕ mұt mã cho các thuұt toán trong mӝt thiӃt kӃ ÿѫQOҿ (MD5/SHA-1)
- Các khӕi dành riêng cho các hoҥWÿӝng mã hóa vào FPGA (xem khӕi DSP)
- Sӱ dөng hiӋu quҧ WtQKQăQJFӫa FPGA
TriӇn khai hiӋu quҧ các thuұWWRiQEăPPҥnh Các nghiên cӭXÿmNӃt luұn rҵng bҩt kӇ thuұt toán nӃXÿѭӧc triӇn khai rҩt hiӋu quҧ thì sӁ ÿҥWÿѭӧc yêu cҫu vӅ tӕFÿӝ lүn logic Mһc dù thӵc hiӋn thuұWWRiQPmKyDÿmÿѭӧc nghiên cӭu rӝng rãi, mӝt sӕ vҩQÿӅ mӣ vүn còn tӗn tҥi
Trong thӵc tӃ có rҩt nhiӅu thuұWWRiQÿӇ PmKyDÿѭӧc thông tin truyӅQÿLOjPm hóa bit và mã hóa khӕi Vì trong mã hóa bit dӉ bӏ WKiPPmKѫQPjPmKyDNKӕi nên chӑQSKѭѫQJiQPmKyDNKӕLÿӇ mã hóa thông tin nhҵPÿҧm bҧo an toàn.
Mã hóa khӕi
ĈLӅu kiӋQÿӇ mã hóa khӕi an toàn:
- tFKWKѭӟc khӕi phҧLÿӫ lӟQÿӇ QJăQFiFKSKѭѫQJiQWҩn công bҵQJSKѭѫQJSKiS thӕQJNr7X\QKLrQÿLӅu này dүQÿӃn thӡi gian mã hóa sӁ WăQJ
- Không gian khóa, tӭc chiӅu dài khóa phҧLÿӫ lӟQÿӇ chӕQJSKѭѫQJ án tҩn công vét cҥn khóa Tuy nhiên khóa càng ngҳn thì viӋc tҥRUDOѭXWUӳ, phân phӕi khóa càng dӉ dàng [82]
Khi thiӃt kӃ 1 mã khӕi cҫQÿҧm bҧo 2 yêu cҫu:
- Sӵ hӛn loҥn: sӵ phө thuӝc giӳa bҧn chính và bҧn mã phҧi thӵc sӵ phӭc tҥSÿӇ gây NKyNKăQWURQJYLӋc tìm quy luұt thám mã Mӕi quan hӋ này tӕt nhҩt là phi tuyӃn
- Sӵ khuӃch tán: mӛi bit trên thông tin và khóa phҧi ҧQKKѭӣQJÿӃn nhiӅu bit mã càng tӕt [82]
Trong thӵc tӃ có rҩt nhiӅu thuұWWRiQÿӇ PmKyDÿѭӧc thông tin truyӅQÿLOjPm hóa bit và mã hóa khӕi Vì trong mã hóa bit dӉ bӏ WKiPPmKѫQOjPmKyDNKӕi nên chӑn SKѭѫQJiQPmKyDNKӕLÿӇ mã hóa thông tin nhҵPÿҧm bҧo an toàn, chӕng mҩt cҳp dӳ liӋu.
Mã hóa AES
Giӟi thiӋu AES
1ăP9LӋn Tiêu Chuҭn và Công nghӋ Quӕc gia Hoa KǤ (National Institue of Standard and Technology - 1,67 ÿm FKӍ rҵng tiêu chuҭn DES (Data Encryption
24 Standard) chӍ QrQ ÿѭӧc sӱ dөng cho các hӋ thӕQJ FNJ Yj WKD\ YjR ÿy Oj WULSOH '(6 (3DES) 3DES có mӝt sӕ vҩQÿӅ khi triӇn khai trên phҫn mӅm và 3DES chұPKѫQED lҫn so vӟi DES MӝWQKѭӧFÿLӇPNKiFWѭѫQJÿӕi lӟQOjNtFKWKѭӟc khӕi dӳ liӋu ngҳn 64 ELWÿyOjPӝWQKѭӧFÿLӇm trong mӝt sӕ ӭng dөng nhҩWÿӏnh Cuӕi cùng, là sӵ lo lҳng vӅ các cuӝc tҩn công vӟi các dòng máy quantum, có thӇ trӣ thành hiӋn thӵc trong vài thұp kӹÿӝ dài khóa mong muӕn là 256 bit Tҩt cҧ nhӳng yӃu tӕ WUrQÿѭӧc xem xét và NIST ÿmNӃt luұn rҵng, mӝt mұt mã khӕi hoàn toàn mӟi là cҫn thiӃWÿӇ thay thӃ cho DES [82]
NăP1,67NrXJӑLÿӅu xuҩt mӝt chuҭn mã hóa mӟi ± AES Không giӕng QKѭVӵ phát triӇn cӫa chuҭn DES, viӋc lӵa chӑn các thuұt toán cho AES là mӝt giҧi pháp mӣ ÿѭӧc quҧn lý bӣL1,677URQJEDYzQJÿiQKJLiWLӃp theo, NIST và cӝQJÿӗng khoa hӑc quӕc tӃ ÿmthҧo luұn vӅ nhӳng lӧi thӃ và bҩt lӧi cӫa các mұWPmÿѭӧc gӱi và thu hҽp sӕ Oѭӧng các giҧi pháp tiӅPQăQJ1ăP1,67WX\rQEӕ mұt mã khӕi Rijndael là chuҭn AES mӟi và công bӕ QyGѭӟi dҥng mӝt tiêu chuҭn chính thӭc (FIPS PUB 197) 5LMQGDHOÿѭӧc thiӃt kӃ bӣi hai nhà mұt mã trҿ QJѭӡi BӍ [82]
6DXÿk\OjWҩt cҧ các yêu cҫu cho chuҭn AES [82]:
- Mұt mã khӕi vӟLNtFKWKѭӟc 128 bit
- %Dÿӝ dài khóa phҧLÿѭӧc hӛ trӧ: 128, 192 và 256 bit
- Bҧo mұt các thuұt toán dùng cho AES
- Có tính hiӋu quҧ trong viӋc thӵc thi bҵng phҫn cӭng lүn phҫn mӅm
Dӵ kiӃn AES sӁ là thuұWWRiQNKyDÿӕi xӭng chi phӕi nhiӅu ӭng dөQJWKѭѫQJPҥi trong vài thұp kӹ tӟLĈLӅXÿiQJFK~êOjYjRQăP&ѫTXDQDQQLQKTXӕc gia Hoa
KǤ (National Security Agency ± NSA) tuyên bӕ cho phép AES mã hóa tài liӋXÿѭӧc phân loҥi ӣ cҩSÿӝ ³6(&5(7´FKRÿӝ dài khóa là 192 hoһFELW7UѭӟFÿyFKӍ các thuұWWRiQNK{QJÿѭӧc công bӕ (non-public algorithms) mӟLÿѭӧc sӱ dөQJÿӇ mã hóa các tài liӋu dҥng tӕi mұt này [82].
Tәng quan vӅ giҧi thuұt AES
Mұt mã AES gҫn giӕng vӟi mұt mã khӕi Rijndael KhӕL5LMQGDHOYjNtFKWKѭӟc khóa khác nhau giӳa 128, 192 và 256 bit Tuy nhiên, chӍ có tiêu chuҭn AES gӑi cho kích WKѭӟc khӕLELW'RÿyNKӕi Rijndael vӟLNtFKWKѭӟFELWÿѭӧc gӑi là thuұt toán AES Ӣ ÿk\VӁ giӟi thiӋu mã hóa theo chuҭn AES vӟLNtFKWKѭӟc 128 bit
1KѭÿmÿӅ cұSEDÿӝ dài khóa phҧLÿѭӧc hӛ trӧ theo yêu cҫu thiӃt kӃ cӫa NIST
Và sӕ vòng xӱ lý cӫa mұt mã là mӝt chӭFQăQJSKө thuӝFYjRÿӝ dài khóa
B̫ng 3.1 B̫ng liên h giͷa chi͉u dài khóa và s͙ O˱ͫng vòng l̿p cͯa gi̫i thu̵t AES
ChiӅu dài khóa Sӕ vòng lһp (nr)
AES bao gӗm các giҧi thuұt con tҥm gӑi là các lӟp Mӛi lӟp thao tác tҩt cҧ 128 bit dӳ liӋu MӛLÿѭӡng dүn dӳ liӋXÿѭӧc gӑi là trҥng thái cӫa thuұt toán Có 3 loҥi lӟp NKiFQKDX6DXÿk\VӁ mô tҧ ngҳn gӑn tӯng lӟp trong giҧi thuұt AES [82]:
Key addition layer (Lӟp bә sung khóa): mӝt khóa 128 bit, hoһFNKyDFRQÿѭӧc lҩy tӯ NKyDFKtQKWURQJWUDRÿәLNKyDÿѭӧc XOR trҥng thái vӟi nhau
Byte-Substitution layer (Lӟp thay thӃ byte): Mӛi phҫn tӱ cӫa trҥQJ WKiL ÿѭӧc biӃQÿәi phi tuyӃn và sӱ dөng bҧng tra cӭu vӟi các thuӝc tính toán hӑFÿһc biӋW%ѭӟc này giӕQJQKѭEѭӟF³WUӝn dӳ liӋX´FRQIXVLRQGDWDYӟLQKDXQyÿҧm bҧo rҵng nhӳng WKD\ÿәi trong các bit trҥng thái riêng rҿ lan truyӅQQKDQKFKyQJWUrQÿѭӡng dүn dӳ liӋu
Difussion layer (Lӟp khuӃch tán): cung cҩp viӋc khuӃch tán trên tҩt cҧ các bit trҥng thái Bao gӗm 2 lӟp con và cҧ KDLÿӅu thӵc hiӋn tuyӃn tính vӟi nhau:
- Lӟp mixColumn: ma trұn kӃt hӧp các khӕi cӫa 4 bytes
7ѭѫQJWӵ QKѭ'(6WiFYө ³NH\VFKHGXOH´FyYDLWUzWtQKWRiQFiFNKyDFRQVXE- keys) tӯ khóa gӕc cӫD$(67Uѭӟc khi mô tҧ chӭFQăQJFӫa tӯng lӟp AES, chúng ta sӁ ÿLTXDPӝt sӕ khái niӋm tính toán cҫn cho tҩt cҧ các hoҥWÿӝng cӫa AES cө thӇ OjWUѭӡng Galois (Galois field)
3.2.2.1 Bi͇Qÿ͝i QJ˱ͫc ĈҧRQJѭӧc cӫa ܩܨሺʹ ଼ ሻ là phép biӃQÿәi toán chính cӫa biӃQÿәi thay thӃ byte (byte substitution), AES S-ER[HV Ĉӕi vӟi mӝW WUѭӡng hӳu hҥn nhҩW ÿӏnh ܩܨሺʹ ሻ và WѭѫQJ ӭng vӟL ÿD WKӭc tӕi giҧn ܲሺݔሻ, nghӏFK ÿҧo ܣ ିଵ cӫa phҫn tӱ khác 0 ǡ ܣ א ܩܨሺʹ ሻÿӏQKQJKƭDQKѭVDX[82]: ܣ ିଵ ሺݔሻǤ ܣሺݔሻ ൌ ͳ݉݀ܲሺݔሻ Ĉӕi vӟLFiFWUѭӡng nhӓ - trong thӵc tӃ QJKƭDOjFiFWUѭӡng ʹ ଵ hoһFtWKѫQ± bҧng tra cӭu có chӭa các nghӏFKÿҧRÿѭӧFWtQKWRiQWUѭӟc cӫa tҩt cҧ các phҫn tӱ WUѭӡQJÿѭӧc sӱ dөng BҧQJGѭӟi cho thҩy các giá trӏ ÿѭӧc sӱ dөng trong S-box cӫa AES Bҧng chӭa tҩt cҧ các nghӏFKÿҧo trong ܩܨሺʹ ଼ ሻ vӟi modulo ܲሺݔሻ ൌ ݔ ଼ ݔ ସ ݔ ଷ ݔ ͳ trong hӋ hexa MӝWWUѭӡng hӧSÿһc biӋt là nghӏFKÿҧo cӫa 0 sӁ không tӗn tҥi Tuy nhiên, AES S-Box, mӝt giá trӏ thay thӃ trong bҧng tra cӭu là cҫn thiӃWQrQÿѭӧFÿӏQKQJKƭDFKRPӛi giá trӏ ÿҫXYjR'RÿyQJѭӡi thiӃt kӃ ÿӏQKQJKƭD6-Box có giá trӏ ÿҫu vào 0 ӭng vӟi ngõ ra giá trӏ 0 [82]
1 74 B4 AA 4B 99 2B 60 5F 58 3F FD CC FF 40 EE B2
Bҧng giá trӏ nghӏFKÿҧo ܩܨሺʹ ଼ ሻ cho bytes xy sӱ dөng trong AES S-box
Tӯ bҧng tra cӭu ta có thӇ WUDÿѭӧc giá trӏ nghӏFKÿҧo cӫa ݔ ݔ ݔ ൌ ሺͳͳͲͲͲͲͳͲሻ ଶ ൌ ሺܥʹሻ ௫ ൌ ሺݔݕሻ Tra hàng C, cӝt 2: ሺʹܨሻ ௫ ൌ ሺͲͲͳͲͳͳͳͳሻ ଶ ൌ ݔ ହ ݔ ଷ ݔ ଶ ݔ ͳ KӃt quҧ có thӇ ÿѭӧc xác nhұn bӣi phép nhân: ሺݔ ݔ ݔሻሺݔ ହ ݔ ଷ ݔ ଶ ݔሻ ؠ ͳ݉݀ܲሺݔሻ
Cҩu trúc AES
6DXÿk\FK~QJWDNLӇm tra cҩu trúc nӝi cӫD$(6+uQKGѭӟi cho thҩ\ÿӗ thӏ cӫa mӝWYzQJÿѫQ$(6
27 Vӟi 16 bytes ngõ vào ܣ ǡ ǥ ǡ ܣ ଵହ và 16 bytes ngõ ra ܤ ǡ ǥ ǡ ܤ ଵହ ÿѭӧFKRiQÿәi qua lӟp ShiftRows và pha trӝQWURQJEѭӟc MixColumn Cuӕi cùng, 128-bit khóa ݇ ÿѭӧc XORed vӟi kӃt quҧ/ѭXê$(6OjPӝt mұWPmFyÿӏQKKѭӟng byte [82]
Hình 3.2 6˯ÿ͛ kh͙i AES ĈӇ hiӇu cách dӳ liӋu di chuyӇQTXD$(6WUѭӟFWLrQFK~QJWDWѭӣQJWѭӧng rҵng trҥng thái ܣ ÿѭӡng dүn 128 bit dӳ liӋu) bao gӗm 16 byte ܣ ǡ ǥ ǡ ܣ ଵହ ÿѭӧc sҳp xӃp vào ma trұn byte Ͷ ൈ Ͷ GѭӟLÿk\[82]:
B̫ng 3.3 Ma tr̵n tr̩ng thái A ܣ ܣ ସ ܣ ଼ ܣ ଵଶ ܣ ଵ ܣ ହ ܣ ଽ ܣ ଵଷ ܣ ଶ ܣ ܣ ଵ ܣ ଵସ ܣ ଷ ܣ ܣ ଵଵ ܣ ଵହ
1KѭFK~QJWDWKҩy trong phҫn sau, AES hoҥWÿӝng dӵa trên các phҫn tӱ cӝt hoһc hàng cӫa ma trұn trҥng thái hiӋn tҥL7ѭѫQJWӵFiFE\WHFKtQKÿѭӧc sҳp xӃp thành mӝt ma trұn có bӕn hàng và bӕn cӝt (khóa 128 bit), 6 cӝt (khóa 192 bit) hoһc 8 cӝt (khóa
256 bitĈk\OjYtGө ma trұn trҥng thái cӫa khóa 192 bit [82]:
B̫ng 3.4 ma tr̵n tr̩ng thái cͯa khóa 192 bit ݇ ݇ ସ ݇ ଼ ݇ ଵଶ ݇ ଵ ݇ ଶ ݇ ଵ ݇ ହ ݇ ଽ ݇ ଵଷ ݇ ଵ ݇ ଶଵ ݇ ଶ ݇ ݇ ଵ ݇ ଵସ ݇ ଵ଼ ݇ ଶଶ ݇ ଷ ݇ ݇ ଵଵ ݇ ଵହ ݇ ଵଽ ݇ ଶଷ
LӟSÿҫu tiên cӫa mӛi vòng bҳWÿҫu bҵng Sub-byte Lӟp thay thӃ byte có thӇ ÿѭӧc [HPQKѭPӝt hàng gӗm 16 S-box song song, mӛi hӝSFyQJ}YjRYjQJ}UD/ѭXê rҵng, tҩt cҧ 16 S-box giӕng hӋt nhau Trong Sub-byte, mӛi byte trҥng thái ܣ ÿѭӧc thay thӃ bӣi mӝt byte ܤ khác [82]: ܵሺܣ ሻ ൌ ܤ
S-box là phҫn tӱ phi tuyӃn duy nhҩt trong AES, tӭc là, ܤݕݐ݁ܵݑܾሺܣሻ ܤݕݐ݁ܵݑܾሺܤሻ ് ܤݕݐ݁ܵݑܾሺܣ ܤሻ cho hai trҥng thái A và B Thay thӃ S-box là ánh xҥ, tӭc là mӛi ʹ ଼ ൌ ʹͷ ÿҫu vào thì FyWѭѫQJӭng 1-1 giá trӏ QJ}UDĈLӅu này cho phép nghӏFKÿҧo S-ER[WURQJÿyOjFҫn thiӃWÿӇ giҧi mã Trong triӇn khai phҫn mӅm, S-box WKѭӡQJÿѭӧc nhұQUDGѭӟi dҥng bҧng tra cӭu 256 bit vӟi các mөc cӕ ÿӏQKÿѭӧc cho bӣi bҧQJGѭӟi [82]:
5 53 D1 0 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF
29 S-ER[ÿѭӧc xây dӵng gӗPEѭӟc biӃQÿәi toán hӑFGRÿyFyFҩXWU~Fÿҥi sӕ mҥnh Mô tҧ toán hӑc cӫa S-ER[ÿѭӧc xây dӵQJGѭӟi dây [82]:
Hình 3.3 Hai phép bi͇Qÿ͝i trong AES S-box
Hình 3.3: Hai phép biӃQÿәi trong AES S-box tính toán hàm ܤ ൌ ܵሺܣ ሻ
PhҫQÿҫu tiên cӫa sub-byte là mӝWWUѭӡQJÿҧRQJѭӧF*DORLVÿmÿѭӧc giӟi thiӋu ӣ phҫQWUѭӟc
Phҫn thӭ hai cӫa sub-byte là mӛi byte ܤԢ ÿѭӧc nhân vӟi mӝt ma trұQNK{QJÿәi và cӝng thêm mӝt vector 8 bit Phép biӃQÿәLÿѭӧc mô tҧ ErQGѭӟi [82]: ۉ ۈۈ ۈۈ ۈ ۇ ܾ ܾ ଵ ܾ ଶ ܾ ଷ ܾ ସ ܾ ହ ܾ ܾ ی ۋۋ ۋۋ ۋ ۊ ؠ ۉ ۈۈ ۈۈ ۇ ͳ Ͳ ͳ ͳ Ͳ Ͳ Ͳ Ͳ ͳ ͳ ͳ ͳ ͳ Ͳ ͳ ͳ ͳ ͳ Ͳ ͳ ͳ ͳ ͳ ͳ Ͳ Ͳ Ͳ Ͳ ͳ ͳ Ͳ ͳ ͳ ͳ Ͳ ͳ ͳ ͳ ͳ ͳ Ͳ Ͳ Ͳ Ͳ ͳ ͳ Ͳ ͳ ͳ Ͳ ͳ ͳ Ͳ Ͳ Ͳ Ͳ ͳ ͳ ͳ ͳ ͳ Ͳ ͳ ͳی ۋۋ ۋۋ ۊ ۉ ۈۈ ۈ ۈ ۈ ۇ ܾԢ ܾԢ ଵ ܾԢ ଶ ܾԢ ଷ ܾԢ ସ ܾԢ ହ ܾԢ ܾԢ ی ۋۋ ۋ ۋ ۋ ۊ ۉ ۈۈ ۈۈ ۇ ͳ ͳ Ͳ Ͳ Ͳ ͳ ͳ Ͳی ۋۋ ۋۋ ۊ ݉݀ʹ
Chú ý rҵng ܤ ᇱ ൌ ሺܾ ᇱ ǡ ǥ ǡ ܾԢ ሻ là biӇu diӉQFiFELWGѭӟi dҥng vector cӫa ܤ ᇱ ሺݔሻ ൌ ܣ ିଵ ሺݔሻ
%ѭӟc thӭ KDLQj\ÿѭӧc gӑi là ánh xҥ affine (Affine mapping)
NӃu mӝt tính toán cho cҧ KDLEѭӟc có 256 ngõ vào cӫa S-box và các kӃt quҧ ÿѭӧc OѭXWUӳWKuWDFyÿѭӧc bҧng tra cӭXQKѭWUrQ7URQJKҫu hӃt các triӇQNKDL$(6ÿһc biӋt trong hҫXQKѭWҩt cҧ các giҧi pháp phҫn mӅm cӫa AES, các ngõ ra S-box rõ ràng không ÿѭӧc tính toán, bӣLYuWKѭӡng sӱ dөng các bҧQJWUD7X\QKLrQÿӕi vӟi viӋc triӇn khai bҵng phҫn cӭQJÿ{LNKLFyQKӳng thuұn lӧi cho S-ER[QKѭFiFPҥFKNƭWKXұt sӕ tính toán nghӏFKÿҧo theo ánh xҥ [82]
Lӧi thӃ cӫa viӋc sӱ dөng biӃn ÿәi nghӏFKÿҧo trong ܩܨሺʹ ଼ ሻ làm chӭFQăQJFӕt lõi trong lӟp Sub-byte là nó cung cҩp mӝt mӭFÿӝ phi tuyӃQWtQKFDRGRÿyÿHPOҥi sӵ bҧo vӋ tӕLѭXFKӕng lҥi các cuӝc tҩn công phân tích mã mҥnh nhҩWÿѭӧc biӃWÿӃQ%ѭӟc ánh xҥ affine phá hӫy cҩXWU~Fÿҥi sӕ cӫDWUѭӡng Galois, lҫQOѭӧWOjFiFEѭӟc cҫn thiӃt ÿӇ QJăQFKһn các cuӝc tҩn công sӁ khai thác vào viӋc biӃQÿәLQJѭӧFWUѭӡng hӳu hҥn [82]
Trong AES, lӟp khuӃch tán (diffusion layer) bao gӗm 2 lӟp con, biӃQ ÿәi ShiftRows và biӃQ ÿәi MixColumn Chúng ta gӑi khuӃch tán là sӵ lan rӝng cӫa ҧnh Kѭӣng các bit riêng lҿ trên toàn bӝ trҥng thái Không giӕQJQKѭELӃQÿәi phi tuyӃn tính ܩܨሺʹ ଼ ሻ ݅݊ݒ݁ݎݏ݁ ܣ݂݂݅݊݁ mapping ܣ ܤԢ ܤ
30 S-box, lӟp khuӃch tán thӵc hiӋn thao tác tuyӃn tính trên các ma trұn trҥng thái A, B tӭc là ܦ݂݂݅ሺܣሻ ܦ݂݂݅ሺܤሻ ൌ ܦ݂݂݅ሺܣ ܤሻ
BiӃQÿәL6KLIW5RZVWKD\ÿәi theo chu kǤ hàng thӭ hai cӫa ma trұn trҥng thái bҵng
3 bytes ӣ bên phҧi, hàng thӭ 3 bҵng 2 bytes ӣ bên phҧi và hàng thӭ 4 bҵng 1 byte ӣ bên phҧL+jQJÿҫu tiên không bӏ WKD\ÿәi MөFÿtFKFӫa phép biӃQÿәL6KLIW5RZVOjWăQJ ÿӝ khuӃch tán tính chҩt cӫa AES NӃXÿҫu vào cӫa lӟSFRQ6KLI5RZVÿѭӧFÿѭDUDGѭӟi dҥng ma trұn trҥng thái ܤ ǡ ǥ ǡ ܤ ଵହ [82]:
B̫ng 3.6 Ma tr̵n tr̩ng thái B ܤ ܤ ସ ܤ ଼ ܤ ଵଶ ܤ ଵ ܤ ହ ܤ ଽ ܤ ଵଷ ܤ ଶ ܤ ܤ ଵ ܤ ଵସ ܤ ଷ ܤ ܤ ଵଵ ܤ ଵହ
B̫ng 3.7 Ngõ ra tr̩ng thái mͣi sau bi͇Qÿ͝i ShiftRows Å Giӳ nguyên trҥng thái Å Dӏch trái 1 phҫn tӱ Å Dӏch trái 2 phҫn tӱ Å Dӏch trái 3 phҫn tӱ
MixColumn là mӝt phép biӃQÿәi tuyӃn tính trӝn lүn tӯng cӝt cӫa ma trұn trҥng thái Vì mӛLE\WHÿҫu vào ҧQKKѭӣQJÿӃn 4 bytes ÿҫu ra, MixColumn là yӃu tӕ khuӃch tán chính trong AES Sӵ kӃt hӧp cӫa ShiftRows và MixColumn cho phép chӍ sau 3 vòng mӛi byte cӫa ma trұn trҥng thái phө thuӝc vào tҩt cҧ 16 bytes cӫa bҧn mã gӕc
6DXÿk\FK~QJWDELӇu thӏ trҥQJWKiLÿҫu vào cӫa 16 byte bҵng ܤ Yjÿҫu ra 16 byte bҵng ܥ: ܯ݅ݔܥ݈ݑ݉݊ሺܤሻ ൌ ܥ Vӟi ܤ là trҥng thái sau khi ShiftRows
Bây giӡ, mӛi cӝWE\WHÿѭӧc coi là mӝt vector và nhân vӟi mӝt ma trұn cӕ ÿӏnh Ͷ ൈ Ͷ Ma trұn chӭa các sӕ NK{QJÿәi Nhân và cӝng các hӋ sӕ thӵc hiӋn trong ܩܨሺʹ ଼ ሻ [82] ൮ ܿ ܿ ଵ ܿ ଶ ܿ ଷ ൲ ൌ ቌ Ͳʹ Ͳ͵ Ͳͳ Ͳͳ Ͳͳ Ͳͳ Ͳ͵ Ͳͳ Ͳͳ Ͳͳ Ͳ͵ Ͳʹ Ͳͳ Ͳͳ Ͳ͵ Ͳʹ ቍ ൮ ܤ ܤ ହ ܤ ଵ ܤ ଵହ ൲ ܤ ܤ ସ ܤ ଼ ܤ ଵଶ ܤ ଵ ܤ ହ ܤ ଽ ܤ ଵଷ ܤ ଶ ܤ ܤ ଵ ܤ ଵସ ܤ ଷ ܤ ܤ ଵଵ ܤ ଵହ
31 Cӝt thӭ 2 cӫa các byte ngõ ra ሺܥ ସ ǡ ܥ ହ ǡ ܥ ǡ ܥ ሻ ÿѭӧc tính toán bӣi phép nhân 4 bytes ngõ vào ሺܤ ସ ǡ ܤ ଽ ǡ ܤ ଵସ ǡ ܤ ଷ ሻ vӟi cùng mӝt ma trұn cӕ ÿӏnh Ͷ ൈ Ͷ
Mӛi byte trҥng thái ܥ và ܤ là giá trӏ ELWÿҥi diӋn cho phҫn tӱ trong ܩܨሺʹ ଼ ሻ Tҩt cҧ các sӕ hӑFOLrQTXDQÿӃn các hӋ sӕ ÿѭӧc thӵc hiӋQWURQJWUѭӡQJ*DORLVĈӕi vӟi các hҵng sӕ trong ma trұn, ký hiӋXKH[Dÿѭӧc sӱ dөQJ³´WURQJWUѭӡng ܩܨሺʹ ଼ ሻ ÿD thӭc vӟi hӋ sӕ ሺͲͲͲͲͲͲͲͳሻ ÿyOà phҫn tӱ WURQJWUѭӡQJ*DORLV7ѭѫQJWӵ ³´ӭng vӟi ሺͲͲͲͲͲͲͳͲሻ WURQJWѭӡQJ*DORLVYj³´ӭng vӟi hӋ sӕ ሺͲͲͲͲͲͲͳͳሻ WѭѫQJÿѭѫQJ vӟLÿDWKӭc ݔ ͳ WURQJWUѭӡng Galois [82]
Phép nhân ma trұn vector là các phép cӝng cӫa ܩܨሺʹ ଼ ሻ, QJKƭDOjFiFSKpS;25 ELWZLVHÿѫQJLҧn cӫDFiFE\WHWѭѫQJӭQJĈӇ nhân các hҵng sӕ, chúng ta phҧi nhұn các phép nhân hҵng sӕ 01, 02, 03 là các hҵng sӕ ÿmÿѭӧc chӑn sao cho phҫn mӅm thӵc hiӋn dӉ dàng
+DLÿҫu vào cӫa lӟp bә sung khóa (Key addition) là ma trұn trҥng thái 16 byte hiӋn tҥi và mӝWNKyDFRQFNJQJEDRJӗPE\WHELW+DLÿҫXYjRÿѭӧc kӃt hӧp WK{QJ TXD ELWZLVH ;25 /ѭX ê Uҵng, XOR bҵng vӟi phép cӝQJ WURQJ WUѭӡng Galois ܩܨሺʹሻ Các khóa con sӁ ÿѭӧc trình bày trong phҫn tiӃp theo [82]
3.2.3.4 Key-schedule ³.H\VFKHGXOH´± Tác vө quҧn lý khóa này lҩy khóa gӕFÿҫu vào (128, 192 hoһc
256 bit) và tҥRUDFiFNKyDFRQÿѭӧc sӱ dөQJWURQJ$(6/ѭXêUҵng, phép toán XOR mӝWNKyDFRQÿѭӧc sӱ dөng ӣ ÿҫXYjRYjÿҫu ra cӫa $(64XiWUuQKQj\ÿ{LNKLÿѭӧc gӑLOj³[yDNKyD´± key whitening Sӕ Oѭӧng khóa con bҵng sӕ vòng cӝng vӟi 1, do cҫn
Giҧi mã AES
Quá trình giҧLPm$(6ÿѭӧc thӵc hiӋQWUrQFiFKjPÿҧRQJѭӧc: lӟp Sub-Byte thành Inv-Sub-Byte, lӟp ShiftRows thành lӟp Inv-ShiftRows, lӟp MixColumn thành Inv-0L[&ROXPQ7X\QKLrQQKѭFK~QJWDÿmWKҩy, nghӏFKÿҧo (Inv) khá giӕng vӟi các hoҥWÿӝng cho phҫn mã hóa Ngoài ra, thӭ tӵ cӫDFiFNKyDFRQÿҧRQJѭӧc, tӭc là chúng ta cҫn mӝt tác vө quҧQOêNKyDÿҧRQJѭӧF6ѫÿӗ khӕi chӭFQăQJJLҧLPmÿѭӧc mô tҧ ErQGѭӟi [82]:
Inv MixColumn Layer Inv ShiftRows Layer
Inv Byte Substitution Key Addition Layer
Inv MixColumn Layer Inv ShiftRows Layer Key Addition Layer
Key Addition Layer Inverse of round 1
Hình 3.7 - 6˯ÿ͛ kh͙i gi̫i mã AES
Do vòng mã hóa cuӕi cùng không thӵc hiӋn thao thác MixColumn nên vòng giҧi PmÿҫXWLrQFNJQJNK{QJFKӭa lӟp Inv-0L[&ROXPQWѭѫQJӭng Tҩt cҧ vòng giҧi mã khác chӭa tҩt cҧ các lӟS$(6+uQKVDXÿk\FKӭa các lӟp nghӏcKÿҧo cӫa giҧi mã AES Do phép XOR là nghӏFKÿҧo cӫa chính nó nên lӟp bә sung khóa trong chӃ ÿӝ giҧi mã là chính nó: bao gӗm các cәng XOR [82]
Hình 3.8 Các lͣp ngh͓FKÿ̫o cͯa gi̫i mã AES Lͣp Inv-MixColumn
6DXNKLWKrPFiFNKyDFRQEѭӟc Inv-0L[&ROXPQÿѭӧc áp dөQJĈӇ tҥRKjPÿҧo QJѭӧc MixColumn, nghӏch dҧo cӫa ma trұQÿѭӧc sӱ dөQJĈҫu vào là mӝt cӝt 4 byte cӫa trҥng thái ܥ ÿѭӧc nhân vӟi ma trұn 4x4 nghӏch ÿҧo Ma trұn chӭa các hҵng sӕ PHép nhân và cӝng các hӋ sӕ ÿѭӧc thӵc hiӋn trong ܩܨሺʹ ଼ ሻ [82] ൮ ܤ ܤ ଵ ܤ ଶ ܤ ଷ ൲ ൌ ቌ Ͳܧ Ͳܤ Ͳܦ Ͳͻ Ͳͻ Ͳܦ Ͳܤ Ͳܧ Ͳͻ Ͳܦ Ͳܤ Ͳܧ Ͳͻ Ͳܦ Ͳܤ Ͳܧ ቍ ൮ ܥ ܥ ଵ ܥ ଶ ܥ ଷ ൲
Cӝt thӭ hai cӫDE\WHÿҫu ra ሺܤ ସ ǡ ܤ ହ ǡ ܤ ǡ ܤ ሻ ÿѭӧc tính bҵQJFiFKQKkQE\WHÿҫu vào ሺܥ ସ ǡ ܥ ହ ǡ ܥ ǡ ܥ ሻ vӟi mӝt ma trұn hҵng sӕ Mӛi giá trӏ ܤ và ܥ là mӝt phҫn tӱ tӯ ܩܨሺʹ ଼ ሻ Ngoài ra, các hҵng sӕ FNJQJÿӃn tӯ ܩܨሺʹ ଼ ሻ Các hҵng sӕ biӇu diӉQGѭӟi dҥng Hexa và giӕQJQKѭÿѭӧc sӱ dөng ӣ lӟp MixColumn Ví dө: Ͳܤ ൌ ሺͲܤሻ ௫ ൌ ሺͲͲͲͲͳͲͳͳሻ ଶ ൌ ݔ ଷ ݔ ͳ Các phép cӝng trong phép nhân ma trұn vector là các bitwise XOR
Lͣp ngh͓FKÿ̫o ShiftRows ± InvShirtRows ĈӇ ÿҧR QJѭӧc biӃQ ÿәi ShiftRows cӫa giҧi thuұt mã hóa, chúng ta phҧi dӏch chuyӇn các hàng cӫa ma trұn theo trҥQJWKiLQJѭӧc lҥL+jQJÿҫXWLrQNK{QJWKD\ÿәi bӣi phép biӃQÿәL6KLIW5RZQJѭӧc NӃXÿҫu vào cӫD6KLIW5RZVOjNKyDFRQFKRGѭӟi dҥng ma trұn trҥng thái ܤ ൌ ሺܤ ǡ ܤ ଵ ǡ ܤ ଶ ǡ ǥ ǡ ܤ ଵହ ሻ [82]
B̫ng 3.8 Ma tr̵n tr̩ng thái B ܤ ܤ ସ ܤ ଼ ܤ ଵଶ ܤ ଵ ܤ ହ ܤ ଽ ܤ ଵଷ ܤ ଶ ܤ ܤ ଵ ܤ ଵସ ܤ ଷ ܤ ܤ ଵଵ ܤ ଵହ
B̫ng 3.9 Ngõ ra Inv-ShiftRow Å Giӳ nguyên trҥng thái Å Dӏch phҧi 1 phҫn tӱ Å Dӏch phҧi 2 phҫn tӱ Å Dӏch phҧi 3 phҫn tӱ
Lͣp bi͇Qÿ͝i ngh͓ch Subbyte (Inv-Subbyte)
S-box nghӏFKÿҧRÿѭӧc sӱ dөng khi giҧi mã mӝt bҧn mã Vì AES S-box là mӝt ánh xҥ 1-QrQWDFNJQJFyWKӇ xây dӵng bҧng mã giҧLPmQJѭӧFQKѭYұy: ܣ ൌ ܵ ିଵ ሺܤ ሻ ൌ ܵ ିଵ ሺܵሺܣ ሻሻ Vӟi ܣ và ܤ là các phҫn tӱ cӫa ma trұn trҥng thái Bҧng inv-S-bo[GѭӟLÿk\[82]
B̫ng 3.10 B̫ng tra bi͇Qÿ͝LQJ˱ͫc Sub-bute y
F 17 2B 4 7E BA 77 D6 26 E1 69 14 63 55 21 0C 7D ۉ ۈۈ ۈۈ ۈ ۇ ܾԢ ܾ ᇱଵ ܾԢ ଶ ܾԢ ଷ ܾԢ ସ ܾԢ ହ ܾԢ ܾԢ ی ۋۋ ۋۋ ۋ ۊ ؠ ۉ ۈۈ ۈۈ ۇ Ͳ ͳ Ͳ Ͳ Ͳ ͳ ͳ Ͳ ͳ Ͳ Ͳ ͳ Ͳ ͳ Ͳ Ͳ Ͳ Ͳ ͳ Ͳ ͳ Ͳ Ͳ ͳ Ͳ ͳ ͳ Ͳ Ͳ Ͳ ͳ Ͳ Ͳ Ͳ ͳ Ͳ ͳ Ͳ Ͳ ͳ Ͳ ͳ ͳ Ͳ Ͳ Ͳ ͳ Ͳ Ͳ ͳ Ͳ Ͳ Ͳ ͳ ͳ Ͳ ͳ Ͳ Ͳ ͳ Ͳ ͳ Ͳ Ͳی ۋۋ ۋۋ ۊ ۉ ۈۈ ۈۈ ۈ ۇ ܾ ܾ ଵ ܾ ଶ ܾ ଷ ܾ ସ ܾ ହ ܾ ܾ ی ۋۋ ۋۋ ۋ ۊ ۉ ۈۈ ۈۈ ۇ Ͳ Ͳ Ͳ Ͳ Ͳ ͳ Ͳ ͳی ۋۋ ۋۋ ۊ ݉݀ʹ
Vӟi ሺܾ ǡ ǥ ǡ ܾ ሻ là các bit trong vector ܤ ሺݔሻ, và ሺܾԢ ǡ ǥ ǡ ܾԢ ሻ là kӃt quҧ sau khi thӵc hiӋn phép biӃQÿәi affine nghӏFKÿҧo
Trong Eѭӟc thӭ hai cӫa biӃQÿәi Inv-6ER[WUѭӡng Galois sӁ lҩy nghӏFKÿҧR/ѭX ý rҵng: ܣ ൌ ሺܣ ିଵ ሻ ିଵ ĈLӅXQj\FyQJKƭDOjELӃQÿәi nghӏFKÿҧo cӫa nghӏFKÿҧo sӁ bҵng FKtQKQy'Rÿy ܣ ൌ ሺܤ ǡ ሻ ିଵ א ܩܨሺʹ ଼ ሻ
VӟLÿDWKӭc tӕi giҧn ܲሺݔሻ ൌ ݔ ଼ ݔ ସ ݔ ଷ ݔ ͳ Mӝt lҫn nӳa, phҫn tӱ ÿѭӧc ánh xҥ vӟi chính nó Vector ܣ ൌ ሺܽ ǡ ǥ ǡ ܽ ሻ ÿҥi diӋQFKRÿDWKӭc ܽ ݔ ڮ ܽ ଵ ݔ ܽ ) có kӃt quҧ thay thӃ là: ܣ ൌ ܵ ିଵ ሺܤ ሻ
Qu̫n lý khóa gi̫i mã - Decryption Key schedule
Vì vòng giҧi mã cҫn mӝt khóa con cho vòng lһp cuӕi cùng, vòng giҧi mã thӭ hai cҫu khúa con thӭ ÿӃn cuӕLFQJôFK~QJWDFҫn khúa con theo thӭ tӵ ÿҧRQJѭӧFQKѭ KuQKGѭӟi Trong thӵc tӃ, viӋFQj\ÿҥWÿѭӧc bҵng cách tính toàn bӝ tác vө quҧn lý khóa ÿҫu iên YjOѭXWUӳ tҩt cҧ 11, 13 hoһc 15 khóa con, tùy thuӝc vào sӕ Oѭӧng và sӕ vòng mà AES sӱ dөng (hay nói cách khác, phө thuӝFYjRÿӝ dài khóa mà AES hӛ trӧ) ViӋc tính toán này gây ra mӝWÿӝ trӉ nhҩWÿӏnh cho hoҥWÿӝng giҧi mã [82]
3.2.4.1 Thc hi n AES trên ph̯n m͉m và ph̯n cͱng
Không giӕQJQKѭ'(6$(6ÿѭӧc thiӃt kӃ sao cho triӇn khai trên phҫn mӅm hiӋu quҧ khҧ thi ViӋc triӇn khai AES phù hӧp cho bӝ xӱ OêELWQKѭQJNK{QJKLӋu quҧ bҵng các máy 32 bit hoһc 64 bit vӕn phә biӃn trong các dòng PC hiӋn nay Các chӭFQăQJSub-byte, ShiftRows hay MixColumn hoҥWÿӝng riêng rҿ cho tӯng byte không hiӋu quҧ
39 trên bӝ xӱ lý 32 hay 64 bit Tuy nhiên, các nhà thiӃt kӃ 5LMQGDHOÿmÿӅ xuҩt mӝWSKѭѫQJ pháp dүQÿӃn kӃt quҧ tӕWKѫQNKLWKӵc hiӋn trên phҫn mӅPéWѭӣng cӕt lõi là hӧp nhҩt tҩt cҧ các chӭFQăQJFӫa AES thành 1 bҧQJWUDĈLӅu này dүn tӟi 4 bҧng, mӛi bҧng bao gӗm 256 mөFWURQJÿyPӛi mөFELWYjÿѭӧc gӑi tên là T-box Bӕn bҧng mang mӛi bҧng mang lҥi 32 bit ngõ ra cho mӛi lҫn xӱ lý Vì thӃ, mӝt vòng xӱ lý có thӇ tính toán vӟi 16 bҧng tra cӭu Trên bӝ xӱ Oê ,QWHO *K] WK{QJ Oѭӧng 400Mbit/s hoһc (50Mbyte/s) là có thӇ [82]
So vӟL '(6 $(6 ÿzL Kӓi nhiӅu tài nguyên phҫn cӭQJ KѫQ ÿӇ thӵc hiӋn Tuy nhiên, do mұWÿӝ tích hӧp cao cӫa các mҥch tích hӧp hiӋn tҥi, AES có thӇ ÿѭӧc thӵc hiӋn vӟLWK{QJOѭӧng rҩt cao trong ASIC hoһc FPGA hiӋn nay ASIC AES bҧQWKѭѫQJPҥi có thӇ Yѭӧt qua WK{QJOѭӧng 10Gbit/s Thông qua các cҩu trúc xӱ lý song song các giҧi thuұt mã hóa cӫa AES trên mӝt chip, tӕFÿӝ có thӇ ÿѭӧFWăQJWKrP&yWKӇ nói, mã hóa ÿӕi xӭng vӟi mұWPmQJj\QD\ÿҥWWK{QJOѭӧng cao, không chӍ ÿѭӧc so sánh vӟi các hӋ thӕng mұt mã bҩt ÿӕi xӭQJPjFzQÿѭӧc so sánh vӟi các thuұt toán khác cҫn thiӃt trong các hӋ thӕng truyӅn thông hiӋQÿҥLQKѭQpQGӳ liӋu hoһc xӱ lý tín hiӋu [82].
Galois Counter Mode (GCM)
Giӟi thiӋu GCM
Galois Counter Mode (GCM) là chӃ ÿӝ mã hóa FNJQJWtQKWRiQPӝt mã xác thӵc tin nhҳn (Message Authentication Code ± MAC) MAC cung cҩp mӝt mұt mүu FKHFNVXPÿѭӧc tính toán bӣLQJѭӡi gӱLVDXÿyWKrPYjRWLQQKҳn ĈӇ xác thӵc, GCM thӵc hiӋQSKpSQKkQWUѭӡng Galois Cho mӑi tín hiӋu ݔ và mӝt tham sӕ xác thӵc trung gian ݃ ݃ ÿѭӧc tính là tәng XOR cӫa bҧn mã ݕ và ݃ và nhân vӟi hҵng sӕ H Giá trӏ H là mӝWNKyDFRQÿѭӧc tính toán bҵQJKjPEăPFyWҩt cҧ ngõ vào bҵng 0 vӟi mұt mã khӕi Tҩt cҧ FiF SKpS QKkQ ÿӅu thӵc hiӋQ WURQJ WUѭӡng ܩܨሺʹ ଵଶ଼ ሻ vӟLÿDWKӭc tӕi giҧn ܲሺݔሻ ൌ ݔ ଵଶ଼ ݔ ݔ ଶ ݔ ͳ'RÿyFKӍ cҫn mӝt phép nhân cho mӛi lҫn mã hóa, chӃ ÿӝ GCM cho thҩy viӋc tính toán trӣ QrQÿѫQJLҧQKѫQ [82]
Cho ݁ሺሻ là mӝt mұt mã khӕLFyNtFKWKѭӟFELWÿһt ݔ là tín hiӋXÿҫu vào cҫn mã hóa bao gӗm các khӕi ݔ ଵ ǡ ǥ ǡ ݔ ; và AAD là dӳ liӋu xác thӵc bә sung (Additional Authenticated Data) [82]
1 Mã hóa a Ĉѭӧc rút ra tӯ mӝt giá trӏ ÿӃPÿҫu vào ܥܴܶ Ͳ và ܫܸ VDXÿyWtQKWRiQ ܥܴܶ ͳ ൌ ܥܴܶ Ͳ ͳ b Tính toán bҧn mã: ݕ ݅ ൌ ݁ ݇ ሺܥܴܶ ݅ ሻْ ݔ ݅ ǡ ݅ ͳ
2 Xác thӵc a Tҥo mӝt khóa con xác thӵc ܪ ൌ ݁ ሺͲሻ b Tính toán giá trӏ ݃ Ͳ ൌ ܣܣܦ ൈ ܪ 3KpSQKkQWUѭӡng Galois) c Tính toán giá trӏ ݃ ݅ ൌ ሺ݃ ݅െͳ ْ ݕ ݅ ሻ ൈ ܪǡ ͳ ݅ ݊ 3KpSQKkQWUѭӡng Galois) d Giá trӏ xác thӵc cuӕi cùng: ܶ ൌ ሺ݃ ൈ ܪሻ ْ ݁ ሺܥܴܶ ሻ
CTR0 incr CTR1 incr CTR0+n ek ek ek
CTR0+n CTR0+n gn g1 g0 gn-1 AAD
Bên nhұn gói dӳ liӋu ሾሺݕ ଵ ǡ ǥ ǡ ݕ ሻǡ ܶǡ ܣܦܦሿ FNJQJ JLҧi mã bҵng cách áp dөng
&RXQWHUPRGHĈӇ kiӇm tra tính xác thӵc cӫa dӳ liӋXQJѭӡi nhұQFNJQJWtQKWRiQPӝt thҿ xác thӵc T bҵng cách sӱ dөng bҧn mã nhұQÿѭӧFYj$$'QKѭGӳ liӋXÿҫu vào Ta sӱ dөQJFKtQK[iFFiFEѭӟc giӕQJQKѭErQJӱi NӃu T và T khӟp vӟLQKDXQJѭӡi nhұn ÿѭӧFÿҧm bҧo rҵng bҧn mã (và AAD) không bӏ sӱDÿәi trong quá trình gӱi và chӍ có duy nhҩWQJѭӡi gӱLÿmWҥRUDÿѭӧc tín hiӋXÿy
Các yӃu tӕ cӫa GCM
Các yӃu tӕ cӫa GCM và các ký hiӋu, yêu cҫXOLrQTXDQÿѭӧc giӟi thiӋu trong các phҫQGѭӟLÿk\0ұt mã khӕLYjNKyDFѫEҧQÿѭӧc thҧo luұn Các yӃu tӕ dӳ liӋu cӫa mã hóa xác thӵc và các hàm chӭFQăQJJLҧi mã xác thӵc cӫD*&0FNJQJVӁ ÿѭӧc giӟi thiӋu Các hàm mұWPmVѫNKDLÿӇ bҧo mұt và xác thӵFFNJQJÿѭӧc thҧo luұQGѭӟLÿk\[83]
Các hoҥWÿӝng cӫa GCM phө thuӝc vào viӋc lӵa chӑn mӝt mұt mã khӕLNKyDÿӕi xӭQJFѫEҧQYjGRÿyFyWKӇ ÿѭӧc coi là mӝt chӃ ÿӝ hoҥWÿӝng cӫa mұt mã khӕi Khóa GCM là khóa mұt mã khӕi (gӑi tҳWOjNKyDĈӕi vӟi bҩt kǤ NKyDÿmFKRQjR, mұt mã khӕLErQGѭӟi cӫa chӃ ÿӝ hoҥWÿӝng bao gӗm hai hàm là nghӏFKÿҧo cӫa nhau [83]
Sӵ lӵa chӑn mұt mã khӕi bao gӗm viӋc chӍ ÿӏnh mӝt trong hai chӭFQăQJFӫa mұt mã khӕi là chӭFQăQJPmKyDFKX\Ӈn tiӃSQKѭWURQJÿһc tҧ giҧi thuұt AES [83] GCM không sӱ dөng chӭFQăQJPmKyDQJѭӧc (inverse cipher function)
Hàm mұt mã chuyӇn tiӃp là mӝt hoán vӏ trên các chuӛLELWFyÿӝ dài cӕ ÿӏnh; các chuӛLÿѭӧc gӑi là các khӕi (block) ChiӅu dài cӫa mӝt khӕLÿѭӧc gӑLOjNtFKWKѭӟc khӕi KyDÿѭӧc ký hiӋu là K và chӭFQăQJPmKyDFKX\Ӈn tiӃp kӃt quҧ cӫa mұt mã khӕLÿѭӧc ký hiӋu là ܥܫܲܪ
Mұt mã khӕLFѫEҧn phҧLÿѭӧc phê duyӋWNtFKWKѭӟc khӕi phҧi là 128 bit và kích WKѭӟc khóa tӕi thiӇu là 128 bit Khóa sӁ ÿѭӧc tҥRÿӗng nhҩt mӝt cách ngүu nhiên hoһc gҫQÿӗng nhҩt mӝt cách ngүu nhiên, tӭFOjÿӇ mӛi khóa có thӇ có khҧ QăQJÿѭӧc tҥo ra gҫQQKѭEҵQJQKDX'RÿyNKyDVӁ là duy nhҩt và không lһp lҥi vӟi xác suҩt cao Khóa phҧi bí mұt và sӁ ÿѭӧc sӱ dөng riêng cho GCM vӟi mұt mã khӕLÿmFKӑn Các yêu cҫu bә sung vӅ viӋc thiӃt lұp và quҧn lý khóa sӁ ÿѭӧc trình bày trong phҫn sau [83]
Hai chӭFQăQJFӫa GCM bao gӗm mã hóa xác thӵc (Authenticated encription) và giҧi mã xác thӵc (Authenticated decryption) ChӭFQăQJPmKyD[iFWKӵc sӁ mã hóa dӳ liӋu và tính toán thҿ xác thӵc trên dӳ liӋu cҫn mã hóa và cҧ dӳ liӋu bә sung ChӭFQăQJ giҧi mã dӳ xác thӵc sӁ giҧi mã dӳ liӋu tӯ bҧn mã thành bҧn rõ và xác minh thҿ xác thӵc [83]
ViӋc triӇn khai có thӇ hҥn chӃ ÿҫu vào vӟi dӳ liӋu không bí mұt (non-confidential data) BiӃn thӇ kӃt quҧ cӫD*&0ÿѭӧc gӑLOj*0$&Ĉӕi vӟi GMAC, các chӭFQăQJ mã hóa và giҧLPmÿѭӧc xác thӵc trӣ thành các chӭFQăQJWҥo và xác minh thҿ xác thӵc trên dӳ liӋu không bҧo mұt Các yêu cҫu và ký hiӋu cho dӳ liӋXÿҫXYjRYjÿҫu ra cӫa các chӭFQăQJQj\VӁ ÿѭӧc thҧo luұn trong các phҫn kӃ tiӃp [83]
3.3.2.3 ChͱFQăQJPmKyD[iFWKc a Ngõ vào
Vӟi mӝt mұt mã khӕLÿmOӵa chӑn và kKyDÿѭӧc phê duyӋt, có ba chuӛLÿҫu vào cho chӭFQăQJPmKyD[iFWKӵc [83]:
- Dӳ liӋu xác thӵc bә sung (Additional Authenticated Data) ký hiӋu là A
- Vector khӣi tҥo (Initialization Vector) ký hiӋu IV
Bҧn rõ và AAD là hai loҥi dӳ liӋu mà GCM sӁ mã hóa GCM bҧo vӋ tính xác thӵc cӫa bҧQU}Yj$$'*&0FNJQJEҧo vӋ tính bҧo mұt cӫa bҧn rõ, trong khi AAD sӁ NK{QJÿѭӧc mã hóa Ví dө, trong mӝt giao thӭc mҥng, AAD có thӇ bao gӗPÿӏa chӍ, cәng, sӕ thӭ tӵ, sӕ phiên bҧn giao thӭFYjFiFWUѭӡng khác cho biӃt cách xӱ OêYăQEҧn gӕc
IV vӅ FѫEҧn là mӝt nonce, tӭc là mӝt giá trӏ duy nhҩt trong ngӳ cҧQKÿѭӧc xác ÿӏnh, chӭFQăQJPmKyDVӁ ÿѭӧc xác thӵc trên dӳ liӋXÿҫu vào và sӁ ÿѭӧc bҧo vӋ Yêu cҫu vӅ tính duy nhҩt trên ,9YjNKyDÿѭӧc nêu trong phҫn quҧn lý khóa [84] Ĉӝ dài bit cӫa chuӛLÿҫu vào cho chӭFQăQJPmKyD[iFWKӵc phҧi thӓDFiFÿLӅu kiӋn sau [83]:
MһFG*&0ÿѭӧFÿӏQKQJKƭDWUrQFiFFKXӛLELWÿӝ dài bit cӫa bҧn rõ, AAD và ,9ÿӅu phҧi là bӝi sӕ cӫDGRÿyFiFJLiWUӏ này là các chuӛi byte ViӋc triӇn khai có thӇ hҥn chӃ KѫQQӳDÿӝ dài bit cӫDFiFÿҫu vào này và phù hӧp vӟLFiFÿLӅu kiӋn ӣ trên Ĉӝ dài bit mà viӋc triӇQNKDLFKRSKpSÿѭӧc gӑLOjÿӝ GjLELWÿѭӧc hӛ trӧ Mӝt bӝ ÿӝ GjLELWÿѭӧc hӛ trӧ cho mӛi mӝWWURQJEDÿҫu vào phҧLÿѭӧc thiӃt lұp cho toàn bӝ quá trình thӵc hiӋn, không phө thuӝc vào khóa [83] Ĉӕi vӟi IV, khuyӃn nghӏ viӋc triӇn khai vӟLÿӝ GjLELWÿӇ WăQJNKҧ QăQJWѭѫQJ tác và hiӋu quҧ FNJQJQKѭÿѫQJLҧQKѫQWURQJWKLӃt kӃ b Ngõ ra
Dӳ liӋXÿҫu ra cӫa chӭFQăQJPmKyD[iFWKӵc bao gӗm:
- Mӝt bҧn mã (ciphertext) ký hiӋXOj&Fyÿӝ GjLELWQKѭFӫa bҧn rõ
- Thҿ xác thӵc (Tag) ký hiӋu là T Ĉӝ dài bit cӫa thҿ, ký hiӋu là t, là mӝt tham sӕ bҧo mұt Nói chung, t có thӇ là mӝWWURQJQăPJLiWUӏ sau: 128, 120, 112, 104 hoһFĈӕi vӟi mӝt sӕ ӭng dөng nhҩt ÿӏnh, t có thӇ là 64 hoһc 32 [83]
ViӋc triӇn khai sӁ không hӛ trӧ các giá trӏ cho t khác vӟi 7 giá trӏ ӣ trên ViӋc triӇn khai có thӇ hҥn chӃ hӛ trӧ vӟi mӝt trong nhӳng giá trӏ này Mӝt giá trӏ cӕ ÿӏnh duy nhҩt cho t sӁ ÿѭӧc liên kӃt vӟi mӛi khóa
3.3.2.4 ChͱFQăQJJL̫i mã xác thc
Vӟi viӋc chӑn mӝt mұt mã khӕLNKyDYjÿӝ dài thҿ ÿmÿѭӧF[iFÿӏQKFiFÿҫu vào cho chӭFQăQJJLҧLPmÿѭӧc xác thӵc là các giá trӏ FKR,9$&Yj7QKѭP{Wҧ ӣ WUrQĈҫu ra là:
- BҧQU}3WѭѫQJӭng vӟi bҧn mã C hoһc
- Mӝt mã lӛLÿһc biӋt, ký hiӋu FAIL Ĉҫu ra P chӍ ra rҵng T là thҿ xác thӵc chính xác cho IV, A và C; mһWNKiFÿҫu ra là FAIL Các giá trӏ cho ݈݁݊ሺܥሻǡ ݈݁݊ሺܣሻǡ ݈݁݊ሺܫܸሻ cӫa chӭFQăQJJLҧi mã sӁ giӕQJQKѭ chӭFQăQJPmKyD
3.3.2.5 B̫o m̵t và xác thFV˯NKDL
&ѫFKӃ bҧo mұt cӫa bҧn rõ trong GCM là mӝt biӃn thӇ cӫa chӃ ÿӝ bӝ ÿӃm (counter mode) [85], vӟi chӭFQăQJWăQJEӝ ÿӃm, ký hiӋu là ݅݊ܿ ଷଶ ÿӇ tҥo khӕi truy cұp KhӕLÿҫu WLrQFKRPmKyD3ÿѭӧc tҥo bҵQJFiFKWăQJPӝt khӕi tҥo tӯ ,9&ѫFKӃ xác thӵc trong GCM dӵDWUrQKjPEăPNêKLӋu là ܩܪܣܵܪFyWtQKQăQJQKkQYӟi mӝt tham sӕ cӕ ÿӏnh, ÿѭӧc gӑLOjEăPNKyDFRQWURQJWUѭӡng Galois nhӏ phân
Khóa con ký hiӋXOj+ÿѭӧc tҥo bҵng cách áp dөng mұt mã khӕi cho khӕi zero (0) Ví dө kӃt quҧ cӫDKjPEăPQj\ÿѭӧc ký hiӋu ܩܪܣܵܪ ு ÿѭӧc sӱ dөQJÿӇ encode AAD và bҧn mã thành mӝt khӕi duy nhҩWVDXÿyÿѭӧFPmKyDÿӇ tҥo thҿ xác thӵc ܩܪܣܵܪ là mӝWKjPEăPFyNKyDQKѭQJNK{QJSKҧLOjKjPEăPPұt mã Các giá trӏ trung gian trong viӋc thӵc hiӋn các chӭFQăQJ*&0VӁ là bí mұt Cө thӇ, yêu cҫu này
43 sӁ loҥi trӯ các hӋ thӕQJWURQJÿy*&0ÿѭӧc triӇn khai bҵng cách sӱ dөQJNKyDFRQEăP công khai [83].
Các phép biӃQÿәi toán cӫa GCM
Phҫn này trình bày các thành phҫn toán hӑFÿѭӧc sӱ dөng trong chӭFQăQJPm hóa và giҧi mã ÿy Oj FiF SKpS WRiQ WUrQ ELW KjP Eӝ ÿӃm, phép nhân các khӕi, hàm ܩܪܣܵܪ, hàm ܩܥܴܶ, cùng các thông sӕ QJ}YjRQJ}UDFiFEѭӟc cӫa thuұWWRiQVѫÿӗ khӕi và tóm tҳt [83]
3.3.3.1 M͡t vài ví dͭ v͉ các phép tính và ký hi u chu͟i
Cho mӝt sӕ thӵc ݔ, hàm làm tròn, ký hiӋu ڿݔۀ, là sӕ nguyên nhӓ nhҩt không nhӓ KѫQݔ [83] Ví dө ڿʹǤͳۀ ൌ ͵ và ڿͶۀ ൌ Ͷ
Cho mӝt sӕ QJX\rQ GѭѫQJݏ, Ͳ ௦ biӇn thӏ chuӛi gӗm ݏ bit sӕ 0 Ví dө, Ͳ ଼ ൌ ͲͲͲͲͲͲͲͲ
Phép nӕi chuӛi, ký hiӋu || Ví dө 001 || 10111 = 00110111
Cho các chuӛL ELW Fy ÿӝ dài bҵng nhau, phép XOR, ký hiӋu ْ, là phép cӝng, modulo 2 cӫa các bit theo tӯng vӏ trí
Cho chuӛi ݔÿӝ dài chuӛi ký hiӋu ݈݁݊ሺݔሻ Ví dө ݈݁݊ሺͲͳͲͳሻ ൌ Ͷ
7ѭѫQJWӵ, các phép biӃQÿәi ܮܵܤǡ ܯܵܤ lҩy chӍ sӕ nhӓ/lӟn cӫa chuӛLÿѭӧc minh hӑDQKѭVDX ܮܵܤ ଷ ሺͳͳͳͲͳͳͲͳͲሻ ൌ ͲͳͲ ܯܵܤ ଷ ሺͳͳͳͲͳͳͲͳͲሻ ൌ ͳͳͳ
Cho mӝt sӕ QJX\rQGѭѫQJݏ và mӝt chuӛi bit ܺ sao cho ݈݁݊ሺܺሻ ൌ ݏKjPWăQJݏ bit kí hiӋXQKѭVDX ݅݊ܿ ௦ ሺܺሻ ൌ ܯܵܤ ሺሻି௦ ሺܺሻȁȁሾ݅݊ݐ൫ܮܵܤ ௦ ሺܺሻ൯ ͳ݉݀ʹ ௦ ሿ ௦
1yLFiFKNKiFKjPWăQJFiFELW06%Fӫa chuӛLÿѭӧc coi là biӇu diӉn nhӏ phân cӫa mӝt sӕ nguyên, modulo ʹ ௦ ; các bit còn lҥi, ݈݁݊ሺܺሻ െ ݏ vүQNK{QJÿәi
3.3.3.3 Phép nhân các kh͙i (block)
Cho chuӛi bit ܴ ൌ ͳͳͳͲͲͲͲͳȁȁͲ ଵଶ Cho 2 khӕi ܺǡ ܻ, giҧi thuұt sӕ ErQGѭӟi tính toán mӝt tích cӫa 2 block, ký hiӋu ܺ ή ܻ QKѭVDX[83]:
1 Cho ݔ Ͳ ݔ ͳ ǥ ݔ ͳʹ là ký hiӋu thӭ tӵ các bit trong ܺ
3 Cho ݅ ൌ Ͳ¯ዅ݊ͳʹ, tính toán các khӕi ܼ ݅ͳ ǡ ܸ ݅ͳ QKѭVDX
Phép toán ή trên khӕi ʹ ଵଶ଼ WѭѫQJӭng vӟi nhân nhӏ SKkQWURQJWUѭӡng Galois cho ʹ ଵଶ଼ phҫn tӱ Khi cӕ ÿӏQK5[iFÿӏnh mӝWÿҥi diӋn cӫDWUѭӡng này là phép nhân modulo cӫDÿDWKӭc nhӏ phân có sӕ PNJQKӓ KѫQ
Giҧi thuұt sӕ 2 cho hàm ܩܪܣܵܪ ErQGѭӟi:
Gi̫i thu̵t 2: ܩܪܣܵܪ ு ሺܺሻ ĈL͉u ki n tiên quy͇t:
Chuӛi bit ܺ có ݈݁݊ሺܺሻ ൌ ͳʹͺ݉ vӟLPQJX\rQGѭѫQJ
1 Cho ܺ ͳ ǡ ܺ ʹ ǡ ǥ ǡ ܺ ݉െͳ ǡ ܺ ݉ là ký hiӋu cho thӭ tӵ các khӕi trong ܺ ൌ ܺ ͳ ȁȁܺ ʹ ȁȁ ǥ ȁȁܺ ݉െͳ ȁȁܺ ݉
Hàm ܩܪܣܵܪ tính toán ܺ ଵ ή ܪ ْ ܺ ଶ ή ܪ ିଵ ْ ǥܺ ିଵ ή ܪ ଶ ْ ܺ ή ܪ Chú ý rҵng, nӃu ܻ ൌ Ͳ thì giá trӏ ܺ ଵ NK{QJÿәi [86]
Giҧi thuұt 3 mô tҧ hàm ܩܥܴܶ Các ký hiӋXÿӅ xuҩt không chӍ ra hàm mұt mã khӕLFѫEҧn [83] ĈL͉u ki n tiên quy͇t:
Mã hóa khӕi ܥܫܲܪ vӟLNtFKWKѭӟc 128 bit;
1 NӃu ܺ rӛng, trҧ vӅ giá trӏ ܻ rӛng
- ܺ ͳ ǡ ܺ ʹ ǡ ǥ ǡ ܺ ݊െͳ là nhӳng khӕi hoàn chӍnh
8 Cho ܻ ൌ ܻ ଵ ȁȁܻ ଶ ȁȁ ǥ ȁȁܻ ିଵ ȁȁܻ כ
Hình 3.10 - 6˯ÿ͛ kh͙i hàm GCTR 3.3.3.6 GCM specifications
Thuұt toán GCM cho các chӭFQăQJPmKyDYjJLҧLPmÿѭӧc xác thӵc cӫa GCM ÿѭӧFÿӏQKQJKƭDGѭӟLÿk\&iFWK{QJVӕ ÿҫXYjRÿҫXUDFiFEѭӟc cӫa thuұWWRiQVѫÿӗ và tóm tҳt Mұt mã khӕLFѫ bҧQÿѭӧc lӵa chӑQWURQJ*&0NK{QJÿѭӧFÿӅ xuҩt Các ngõ YjRWKѭӡQJÿѭӧc cӕ ÿӏnh trong nhiӅu yêu cҫu cӫDKjPÿѭӧc gӑLOjFiFÿLӅu kiӋn tiên quyӃt; tuy nhiên, mӝt sӕ ÿLӅu kiӋn tiên quyӃWFNJQJFyWKӇ WKD\ÿәLYjÿѭӧFFRLOjÿҫu YjRWKD\ÿәL&iFÿLӅu kiӋn tiên quyӃWYjFiFÿҫu vào khác phҧLÿiSӭng các yêu cҫu vӅ giҧi thuұt cӫa thuұWWRiQĈӕi vӟi cҧ hai thuұt toán mã hóa và giҧLPmFiFEѭӟFWѭѫQJ ÿѭѫQJWҥRUDQJ}UDFKtQK[iFÿѭӧc cho phép [83]
3.3.3.7 Gi̫i thu̵t mã hóa xác thc
Thuұt WRiQGѭӟLÿk\FKӍ ÿӏnh chӭFQăQJPmKyD[iFWKӵc [83]: ܩܥܯ െ ܣܧ ሺܫܸǡ ܲǡ ܣሻ ĈL͉u ki n tiên quy͇t:
Mã hóa khӕL&,3+ÿѭӧc phê duyӋt vӟLNtFKWKѭӟc block 128 bit;
Khóa K; ĈӏQKQJKƭDÿӝ dài ngõ vào/ngõ ra;
ChiӅXGjL7DJ7ÿѭӧc hӛ trӧ vӟi khóa K
Vector khӣi tҥR,9Fyÿӝ GjLÿѭӧc hӛ trӧ);
BҧQU}3SODLQWH[WFyÿӝ GjLÿѭӧc hӛ trӧ;
Dӳ liӋu xác thӵc bә VXQJ$$'Fyÿӝ GjLÿѭӧc hӛ trӧ)
- ܵ ൌ ܩܪܣܵܪ ு ሺܣȁȁͲ ௩ ȁȁܥȁȁͲ ௨ ȁȁሾ݈݁݊ሺܣሻሿ ସ ȁȁሾ݈݁݊ሺܥሻሿ ସ ሻǤ
7URQJEѭӟFNKyDFRQÿѭӧc cho hàm EăPܩܪܣܵܪ ÿѭӧc tҥo ra bҵng cách áp dөng mұt mã khӕi cho khӕi 0
7URQJEѭӟc 2, khӕi tiӅn truy cұp ܬ ÿѭӧc tҥo ra tӯ ܫܸ Cө thӇNKLÿӝ dài cӫa ܫܸ là 96 bit, thì chuӛLÿӋm Ͳ ଷଵ ȁȁͳ ÿѭӧc gҳQYjR,9ÿӇ tҥo thành khӕi tiӅn truy cұp Mһt khác, nӃXÿӝ dài cӫa ܫܸ khác 96, ܫܸ ÿѭӧFÿӋm vӟi sӕ bit tӕi thiӇu 0 bit, có thӇ không có, GRÿyÿӝ dài cӫa chuӛi kӃt quҧ là bӝi sӕ 128 bit (bҵQJNtFKWKѭӟc khӕi); lҫQOѭӧt chuӛi Qj\ÿѭӧc gҳn thêm 64 bit 0, tiӃp theo biӇu diӉn 64 bit vӅ ÿӝ dài cӫa ܫܸ và sӱ dөng hàm ܩܪܣܵܪ cho chuӛi kӃt quҧ ÿӇ tҥo thành ܬ , giá trӏ ÿҫu vào cho khӕi pre-counter [83]
%ѭӟFKjPWăQJELWÿѭӧc áp dөng cho khӕi pre-counter, ܩܥܴܶÿӇ tҥo khӕi bӝ ÿӃPEDQÿҫu cho mӝt lӋnh gӑi hàm ܩܥܴܶ trên bҧQU}Ĉҫu ra cӫa hàm này là bҧn mã (ciphertext)
7URQJEѭӟc 4 và 5, AAD và bҧQPmÿѭӧc mӛi lҫn nӕi vӟi sӕ bit tӕi thiӇu là 0 bit, có thӇ NK{QJFyGRÿyÿӝ dài cӫa chuӛi bit kӃt quҧ Ojÿӝ dài cӫDNtFKWKѭӟc khӕi ViӋc nӕi vӟi các chuӛLQj\ÿѭӧc nӕi vӟi các biӇu diӉn 64 bit vӅ ÿӝ dài cӫa AAD và bҧn mã, và hàm ܩܪܣܵܪ ÿѭӧc áp dөng cho kӃt quҧ ÿӇ tҥo ra mӝt khӕLÿҫu ra duy nhҩt [83]
7URQJ Eѭӟc 6, khӕL ÿҫX UD Qj\ ÿѭӧc mã hóa bҵng hàm ܩܥܴܶ Vӟi khӕi pre- FRXQWHUÿѭӧc tҥo ra ӣ Eѭӟc 2 và kӃt quҧ ÿѭӧc cҳt theo chiӅu dài thҿ 7ÿӇ tҥo thnafh thҿ xác thӵc (Authentication Tag) [83]
%ѭӟc 7, trҧ vӅ giá trӏ bҧn mã (Ciphertext: C) và giá trӏ xác thӵc (Tag: T) [83]
Hình 3.11 - 6˯ÿ͛ kh͙i mã hóa xác thc
Hàm mã hóa xác thӵFÿѭӧc minh hӑa trên hình ViӋF[iFÿӏnh ܬ tӯ ܫܸ Eѭӟc 2) NK{QJÿѭӧc mô tҧ
3.3.3.8 Gi̫i thu̵t gi̫i mã xác thc
ThuұWWRiQGѭӟLÿk\FKӍ ÿӏnh chӭFQăQJJLҧi mã, xác thӵc [83]: ܩܥܯ െ ܣܦ ሺܫܸǡ ܥǡ ܣǡ ܶሻ ĈL͉u ki n tiên quy͇t:
Mã hóa khӕL&,3+ÿѭӧc phê duyӋt vӟLNtFKWKѭӟc block 128 bit;
Khóa K; ĈӏQKQJKƭDÿӝ dài ngõ vào/ngõ ra;
ChiӅXGjL7DJ7ÿѭӧc hӛ trӧ vӟi khóa K
Vector khӣi tҥR,9Fyÿӝ GjLÿѭӧc hӛ trӧ);
BҧQPm&&LSKHUWH[WFyÿӝ GjLÿѭӧc hӛ trӧ;
Dӳ liӋu xác thӵc bә VXQJ$$'Fyÿӝ GjLÿѭӧc hӛ trӧ);
48 Bҧn rõ P (Plaintext) hoһc dҩu hiӋu xác thӵc FAIL
1 NӃu chiӅu dài cӫa ܫܸǡ ܣ hoһc ܥ NK{QJÿѭӧc hӛ trӧ, hoһc ݈݁݊ሺܶሻ ് ݐ, trҧ vӅ giá trӏ FAIL
- ܵ ൌ ܩܪܣܵܪ ு ሺܣȁȁͲ ௩ ȁȁܥȁȁͲ ௨ ȁȁሾ݈݁݊ሺܣሻሿ ସ ȁȁሾ݈݁݊ሺܥሻሿ ସ ሻǤ
8 NӃu ܶ ൌ ܶԢ thì trҧ vӅ ܲ nӃu không thì trҧ vӅ FAIL
7URQJEѭӟc 1, nӃXÿӝ dài cӫa ܫܸǡ ܥǡ ܣܣܦ và ܶ NK{QJÿѭӧc hӛ trӧ thì trҧ vӅ giá trӏ FAIL
7URQJEѭӟFNKyDFRQÿѭӧFFKRKjPEăPܩܪܣܵܪ ÿѭӧc tҥo ra bҵng cách áp dөng mұt mã khӕi cho khӕi 0
%ѭӟc 3, khӕi tiӅn truy cұp ܬ ÿѭӧc tҥo ra tӯ ܫܸ Cө thӇNKLÿӝ dài cӫa ܫܸ là 96 bit, thì chuӛLÿӋm Ͳ ଷଵ ȁȁͳ ÿѭӧc gҳQYjR,9ÿӇ tҥo thành khӕi tiӅn truy cұp Mһt khác, nӃu ÿӝ dài cӫa ܫܸ khác 96, ܫܸ ÿѭӧFÿӋm vӟi sӕ bit tӕi thiӇu 0 bit, có thӇ NK{QJFyGRÿyÿӝ dài cӫa chuӛi kӃt quҧ là bӝi sӕ 128 bit (bҵQJNtFKWKѭӟc khӕi); lҫQOѭӧt chuӛLQj\ÿѭӧc gҳn thêm 64 bit 0, tiӃp theo biӇu diӉn 64 bit vӅ ÿӝ dài cӫa ܫܸ và sӱ dөng hàm ܩܪܣܵܪ cho chuӛi kӃt quҧ ÿӇ tҥo thành ܬ , giá trӏ ÿҫu vào cho khӕi pre-counter
%ѭӟFKjPWăQJELWÿѭӧc áp dөng cho khӕi pre-counter, ܩܥܴܶÿӇ tҥo khӕi bӝ ÿӃPEDQÿҫu cho mӝt lӋnh gӑi hàm ܩܥܴܶ trên bҧQPmĈҫu ra cӫa hàm này là bҧn rõ (Plaintext)
7URQJEѭӟc 5 và 6, AAD và bҧQPmÿѭӧc mӛi lҫn nӕi vӟi sӕ bit tӕi thiӇu là 0 bit, có thӇ không có, do ÿyÿӝ dài cӫa chuӛi bit kӃt quҧ Ojÿӝ dài cӫDNtFKWKѭӟc khӕi ViӋc nӕi vӟi các chuӛLQj\ÿѭӧc nӕi vӟi các biӇu diӉn 64 bit vӅ ÿӝ dài cӫa AAD và bҧn mã, và hàm ܩܪܣܵܪ ÿѭӧc áp dөng cho kӃt quҧ ÿӇ tҥo ra mӝt khӕLÿҫu ra duy nhҩt
7URQJ Eѭӟc 7 khӕL ÿҫu ra Qj\ ÿѭӧc mã hóa bҵng hàm ܩܥܴܶ Vӟi khӕi pre- FRXQWHUÿѭӧc tҥo ra ӣ Eѭӟc 3 và kӃt quҧ ÿѭӧc cҳt theo chiӅu dài thҿ 7ÿӇ tҥo thành thҿ xác thӵc (Authentication Tag)
%ѭӟc 8, giá trӏ ӣ Eѭӟc 7 sӁ ÿѭӧFÿHPÿLVRViQKYӟi thҿ xác thӵc ngõ vào NӃu chúng khӟp vӟi nhau, thì bҧQU}3ÿѭӧc trҧ vӅ, nӃu không, giá trӏ trҧ vӅ giá trӏ FAIL
Có thӇ xác minh thҿ ÿLWUѭӟc khi tҥo ra bҧn rõ P Hàm giҧi mã xác thӵFÿѭӧc mô tҧ QKѭKuQKErQGѭӟi
Hình 3.12 - 6˯ÿ͛ kh͙i gi̫i mã xác thc 3.3.3.9 Tính duy nh̭t cho ܫܸݏ và khóa K
Các ܫܸ trong GCM phҧLÿiSӭng các yêu cҫu duy nhҩWVDXÿk\
Xác suҩt mà chӭFQăQJPmKyD[iFWKӵc cùng sӱ dөng giӕng ࡵࢂ và cùng khóa trên hai (hoһc nhiӅu) bӝ dӳ liӋXÿҫu vào khác nhau sӁ không lӟQKѫQ ି
Tuân thӫ yêu cҫu này rҩt quan trӑQJÿӕi vӟi bҧo mұt GCM Trên tҩt cҧ các phiên bҧn cӫa hàm mã hóa xác thӵc bҵng mӝWNKyDÿmFKRQӃu thұm chí có mӝt ÿѭӧc lһp lҥi, thì viӋc giҧ mҥo, tҩn công sӁ dӉ dàng [84] Trong thӵc tӃ, yêu cҫu này gҫQQKѭOj quan trӑng vì tính bҧo mұt cӫa khóa
Vai trò chính cӫa thiӃt lұSNKyDÿѭӧc trình bày ӣ phҫn sau
Yêu cҫXVDXÿk\OjWLrXFKXҭn cho các thuұt toán mã hóa khóa bí mұt nói chung Bҩt kǤ NKyD*&0QjRÿѭӧc thiӃt lұp giӳDQJѭӡi dùng phҧi tҥo mӟi
Trong thӵc tӃ, phҧL ÿҧm bҧo rҵQJ NKyD ÿѭӧc làm mӟi khi tҥo, nӃX Fѫ FKӃ tҥo chӕng lҥi sӵ giҧ mҥRGRÿyWKѭӡQJÿһt các yêu cҫu này vӟi tác vө quҧn lý khóa
Cө thӇ, nӃXFѫFKӃ tҥRNKyDOj[iFÿӏnh, thì viӋc quҧn lý sӁ ÿҧo bҧm chҳc chҳn không có sӵ lһp lҥi khóa Ví dө, các khóa GCM có thӇ sӱ dөng các giao thӭc sau: Transport Layer Security, IKEv1(Internet Key Exchange v1), IKEv2, và Secure Shell [87]
7ѭѫQJWӵ, nӃu mӝt khóa mӟLÿѭӧFWUDRÿӃQQJѭӡi nhұQWK{QJTXDSKѭѫQJWKӭc phân phӕi khóa phҧLÿҧm bҧo chӕng sӵ phát lҥL³UHSOD\´ÿӇ không bên nào có thӇ thay thӃ, sӱDÿәLÿѭӧc khóa Các khóa GCM phҧLÿѭӧc thiӃt lұp trong cҩu trúc quҧn lý khóa, ÿҧm bҧo mӟi, bҧo mұt và tính xác thӵc cӫa chúng [83]
&yFiFKÿӇ xây dӵng 1 frame IV [83] Ĉӕi vӟi bҩt kǤ ÿӝ GjL,9ÿѭӧc hӛ trӧ QjRGѭӟi 96 bit sӁ ÿѭӧc xây dӵng trong phҫQDĈӕi vӟLÿӝ dài trên 96 bit, có thӇ sӱ dөng cҧ hai cách
Ví dө: giҧ sӱ rҵng viӋc triӇn khai hӛ trӧ ÿӝ dài 64 bit, 96 bit, 128 bit và 160 bit Ĉӕi vӟi IV 64 bit, lӵa chӑn duy nhҩt là trong cҩu trúc phҫQDĈӕi vӟLÿӝ dài còn lҥi, mӝt sӵ kӃt hӧp giӳa các cҩu trúc có thӇ là lӵa chӑn a CҩXWU~F[iFÿӏnh (Deterministic construction) [83]
- Trong cҩXWU~F[iFÿӏnh, IV là sӵ kӃt hӧp cӫDKDLWUѭӡQJÿѭӧc gӑLOjWUѭӡng cӕ ÿӏnh YjWUѭӡng gӑLLQYRFDWLRQ7Uѭӡng cӕ ÿӏnh sӁ [iFÿӏnh thiӃt bӏ cho chӭFQăQJPmKyD xác thӵF7Uѭӡng gӑi sӁ [iFÿӏnh các bӝ ÿҫu vào cho chӭFQăQJPmKyDÿѭӧc xác thӵc trong thiӃt bӏ cө thӇ ÿy
- Ĉӕi vӟi bҩt kì khóa nào, không có hai thiӃt bӏ riêng biӋWQjRFyFKXQJWUѭӡng cӕ ÿӏnh YjWUѭӡng gӑi Tuân thӫ hai yêu cҫu này tӭFOjÿҧm bҧo tính duy nhҩWÿӕi vӟi IV
- NӃu muӕQWUѭӡng cӕ ÿӏnh có thӇ ÿѭӧc xây dӵng tӯ hai hoһc nhiӅXWUѭӡng nhӓ KѫQ Ngoài ra, mӝWWURQJFiFWUѭӡng nhӓ KѫQÿyFyWKӇ bao gӗm các bit tùy ý, miӉn là các bit còn lҥLÿҧm bҧo rҵQJWUѭӡng cӕ ÿӏnh không ÿѭӧc lһp lҥi toàn bӝ cho mӝt sӕ thiӃt bӏ khác vӟi cùng khóa
- 7ѭѫQJWӵ, toàn bӝ WUѭӡng cӕ ÿӏnh có thӇ bao gӗm các bit tùy ý, chӍ khi có ngӳ cҧnh [iFÿӏQKWURQJWUѭӡng hӧp này, nӃu các sesion chia sҿ mӝWWUѭӡng cӕ ÿӏnh chung, thì giao thӭc sӁ ÿҧm bҧo rҵng FiFWUѭӡng gӑi là khác biӋt cho các ngõ vào dӳ liӋu riêng biӋt
- 7Uѭӡng gӑLWKѭӡng là bӝ ÿӃm sӕ nguyên hoһc thanh ghi dӏch Trong cҧ KDLWUѭӡng hӧSWUѭӡng gӑLWăQJWKHRPӛi lҫn gӑi hàm mã hóa xác thӵc
- Ĉӝ dài và vӏ trí cӫDWUѭӡng cӕ ÿӏQKYjWUѭӡng gӑi phҧi ÿѭӧc cӕ ÿӏnh cho mӛLÿӝ dài ,9ÿѭӧc hӛ trӧĈӇ WăQJNKҧ QăQJWѭѫQJWiFWKuÿӝ dài IV mһFÿӏQKOjELWÿѭӧc khuyӃn nghӏ 32 bit bên trái giӳ YDLWUzWUѭӡng cӕ ÿӏnh và 64 bit bên phҧi giӳ WUѭӡng gӑi b RBG-based construction [83]
AES-GCM Specifications
AES-GCM là mӝt dҥng chuҭn mã hóa và xác thӵF ÿѭӧc thiӃt kӃ bӣi David McGrew và John Viega MөFÿtFKFӫa thiӃt kӃ là nhҵm tìm giҧi pháp thӵc hiӋn giҧi thuұt AES-*&0WUrQ)3*$ÿҥWÿѭӧc kӃt quҧ PPA (Performance ± Power ± Area) tӕt AES-
*&0ÿmÿѭӧc thӵc hiӋQQKѭPӝt khӕLÿҫ\ÿӫ bao gӗm xác thӵc mã hóa (encryption ± authentication ) và giҧi mã xác thӵc (decryption ± YHULILFDWLRQ'RÿyQyFyWKӇ thӵc hiӋn mã hóa/xác thӵc và giҧi mã/xác thӵFÿӗng thӡi [88]
Khӕi mã hóa và xác thӵc [88]:
- Khӕi mã hóa AES-GCM hoҥWÿӝng trên mӝt frame (Message + AAD) tҥi bҩt kì thӡLÿLӇm nào Mӝt fram bao gӗm mӝt hoһc nhiӅu khӕi AAD hoһc nhiӅu message Cө thӇ, khӕi mã hóa hoҥWÿӝng trên mӝt khӕi message hoһc khӕi AAD bҩt kì thӡLÿLӇm nào
- Ĉӝ dài khӕi mһFÿӏnh là 128 bit
- Mӝt tín hiӋXÿLӅu khiӇn duy nhҩt bҳWÿҫu hoҥWÿӝng cӫa khӕi mã hóa AES-GCM vӟi pha khӣi tҥRÿѭӧc thiӃt lұS*LDLÿRQҥ Qj\ÿѭӧc thӵc hiӋn mӝt lҫn trên mӛi frame Sau 20 chu kì xung clock, khӕi PmKyDÿmVҹQVjQJÿӇ nhұn AAD/message
- KhӕL Pm KyD PRQJ ÿӧi mӝt hoһc nhiӅu AAD vӟi khӕL ÿӝ dài khӕi AAD cuӕi cùng khác 128 bit và phҧi là bӝi sӕ cӫDE\WH7ѭѫQJWӵ, khӕi mã hóa mong ÿӧi 0 hoһc nhiӅu khӕLPHVVDJHWURQJÿyPHVVDJHFXӕi cùng không cҫn phҧi là chiӅu dài mһFÿӏnh cӫa khӕi và phҧi là bӝi sӕ cӫa 8 (1 byte)
- ThiӃt kӃ yêu cҫu mӝt hoһc nhiӅu khӕL$$'ÿӇ nhұSWUѭӟc rӗLÿӃn 0 hoһc nhiӅu khӕi plaintext
- ThiӃt kӃ hiӋn tҥi có khҧ QăQJ [ӱ lý bҩt kǤ tin nhҳn hoһc khӕi AAD trên mӛi frame Mҩt 10 chu ku[XQJFORFNÿӇ mã hóa mӝt khӕi tin nhҳn (chiӅu dài khói mһFÿӏnh hoһFtWKѫQYӟi 10 chu kǤ AES 128 bit ӭng vӟi mӛLWK{QJÿLӋSÿѭӧc mã hóa AES-GCM mã hóa dӵa trên AES-FKRPmKyDYjWUѭӡng Galois cho xác thӵF3KpSQKkQWURQJWUѭӡQJ*DORLVÿѭӧc sӱ dөng trong triӇn khai này tҥo ra kӃt quҧ trong 8 chu kǤ xung clock KhӕL$$'NK{QJÿѭӧc mã hóa
- Ĉӝ dài cӫa frame không cҫn phҧi biӃWÿӃQQKѭNKӕi mã hóa và hoҥWÿӝng trên mӝt frame vӟLÿӏnh dҥQJQKѭVDX
Giҧi mã và xác thӵc [88]
- Khӕi giҧi mã AES-*&0WѭѫQJWӵ QKѭPmKyD1Kӡ có Counter mode, thҿ T hoàn toàn giӕQJQKѭPmKyD$(6-GCM Và thҿ 7ÿѭӧc tính lҥLÿӇ so sánh vӟi thҿ ÿѭӧc cung cҩp NӃu hai thҿ trùng khӟp vӟi nhau, giá trӏ SODLQWH[WFRLQKѭ hӧp lӋ
- Khӕi giҧi mã AES-GCM hoҥWÿӝQJWUrQIUDPHWѭѫQJWӵ PmKyDWURQJÿyNKӕi PHVVDJHÿѭӧc thay thӃ bӣi 0 hoһc nhiӅu bҧn mã.
Giӟi thiӋu kiӃn trúc IPsec dӵa trên nӅn tҧng FPGA
Khҧo sit cҩu hunh cӫa FPGA
,3VHFÿѭӧc mô tҧ trong mӝt loҥWFiF5)&ÿmWUuQKEj\ӣ FKѭѫQJ[iFÿӏnh các dӏch vө kiӇm soát truy cұp, mã hóa, xác thӵc, tính toàn vҽQYjWUDRÿәLNKyDÿӇ hӛ trӧ bҧo mұt dӳ liӋu giӳa hai thiӃt bӏ mҥng Giao thӭF,3VHFÿѭӧc sӱ dөng phә biӃn nhҩWÿӇ bҧo vӋ truy cұp mҥng là ESP ViӋc chӑn cҩu hình phҫn cӭng FPGA có tҫm quan trӑng ÿһc biӋt trong viӋc thӵc hiӋn giҧi thuұWFNJQJQKѭÿiSӭQJÿѭӧFWK{QJOѭӧng 100Gbps 1KyPÿmNKҧRViWFiFGzQJ(63FRUHÿѭӧc tích hӧp trên FPGA cӫa Altera và Xilinx trên website https://www.heliontech.com/ipsec.htm
B̫ng 3.11 C̭u hình ph̯n cͱng tham kh̫o cho RFC7321
Cҩu hình phҫn cӭng tham khҧo cho RFC7321 [89]
B̫ng 3.12 C̭u hình ph̯n cͱng tham kh̫o cho RFC8221
Cҩu hình phҫn cӭng tham khҧo cho RFC8221 [89]
Khҧo sit hiӋXQăQJFӫa Ipsec AES -GCM thӵc hiӋn trên cic
Có nhiӅu lӵa chӑn giҧi pháp AES-GCM, bao gӗm tҩt cҧ các yêu cҫXWK{QJOѭӧng tӯ GѭӟL0ESVFKRÿӃQYѭӧt quá 40Gbps trong bҩt kǤ mөc tiêu công nghӋ QjRĈLӅu Qj\FKRSKpSQJѭӡi dùng có mӝt giҧi pháp phù hӧp rҩt tӕt, mà không phҧi tiêu tӕn vӅ diӋn tích hoһc hiӋu suҩt [89]
B̫ng 3.13 Các gi̫i pháp AES-GCM tiêu chu̱n hi n có s̽n
Loҥi lõi 7K{QJOѭӧng Loҥi chân
218 chu kǤ AES - GCM 0 ± 100 Mbps Ultra compact
48 chu kǤ AES - GCM 0 ± 500 Mbps Very compact
19 chu kǤ AES - GCM 500 Mbps ± 2Gbps Compact
Giga AES - GCM 2Gbps ± 40 Gbps scalable
Bҧng trên cho thҩy sӵ lӵa chӑn các giҧi pháp AES-GCM tiêu chuҭn hiӋn có sҹn Ĉӕi vӟi các phiên bҧn chính, tên core phҧn ánh sӕ chu kǤ clk hoҥWÿӝQJÿѭӧc thӵc hiӋn ÿӇ mã hóa hoһc giҧi mã tӯng khӕi thông tin 16 byte bҵng khóa 128 bit; ví dө, core 19 chu kǤ xӱ lý mӛi khӕi AES 128 bit trong 19 chu kǤ [XQJ FON Yj Fy WK{QJ Oѭӧng 6,73Mbps trên mӛi MHz [88]
Bӝ xӱ lý Giga AES-GCM là mӝt thiӃt kӃ riêng biӋWÿѭӧc tӕLѭXKyDFKRKRҥt ÿӝQJWK{QJOѭӧng cӵc cao Tҩt cҧ các bӝ xӱ lý AES-GCM hiӋu suҩWFDRQj\ÿӅu có sҹn trong các phiên bҧQÿӇ sӱ dөng trong ASIC, Altera, microsemi (Actel) và Xilinx FPGA, và chung vӟi tҩt cҧ FiFFRUH,3PjFK~QJÿѭӧc thiӃt kӃ vӟi tӯng công nghӋ khác nhau ÿӇ mang lҥi hiӋu quҧ tӕt nhҩt và kӃt quҧ hiӋXQăQJWӕt nhҩt [89]
Mӝt loҥt các giҧLSKiSÿѭӧc sӱ dөQJÿӇ các yêu cҫXWK{QJOѭӧng cӫa bҩt kǤ ӭng dөng nào có thӇ ÿѭӧc kӃt hӧp chһt chӁ vӟi hiӋu quҧ tӕLѭX7URQJWUѭӡng hӧp này, có ba mӭc hiӋu suҩt khҧ dөng; phҧn ánh sӕ chu kǤ xung nhӏp tӕi thiӇXÿѭӧc thӵc hiӋQÿӇ xӱ lý mӛi khӕi dӳ liӋu 16 byte Sӕ chu kǤ thӵc tӃ ÿѭӧc thӵc hiӋn bӣi core xӱ lý, các khӕLQj\WKD\ÿәi theo sӵ lӵa chӑQFRUHYjNtFKWKѭӟc khác nhau
Hình 3.14 Kh̫o sát hi XQăQJWKHRF̭u hình
Bӝ xӱ lý AES-GCM 218 chu kǤ, cҫn mӝt chu kǤ xung nhӏp tӕi thiӇXÿӇ mã hóa hoһc giҧi mã mӛi khӕi dӳ liӋu 16 byte bҵnJNKyDELWĈӇ FyWK{QJ OѭӧQJFDRKѫQFRUH AES-GCM cӫa chu kǤ 48 vòng cung cҩp hiӋXQăQJFDRKѫQEӕn lҫn so vӟi lõi 218 chu kǤ trong khi sӱ dөQJtWKѫQKDLOҫn diӋn tích logic cell cӫa nó Phҧi mҩt tӕi thiӇu 48 chu kǤ xung nhӏSÿӇ mã hóa hoһc giҧi mã tӯng khӕi dӳ liӋu 16 byte bҵng khóa 128 bit Có hiӋu suҩt cao nhҩt là lõi AES-GCM 19 chu kǤ, cung cҩp hiӋXQăQJJҩSÿ{LVRYӟi lõi 48 chu kǤ trong khi sӱ dөng khoҧng hai lҫn diӋn tích logic cell cӫa nó Phҧi mҩt tӕi thiӇu 19 chu kǤ ÿӗng hӗ ÿӇ mã hóa hoһc giҧi mã tӯng khӕi dӳ liӋu 16 byte bҵng bҩt kǤ NtFKWKѭӟc khóa nào [89]
55 Mӛi phiên bҧn lõi có sҹn vӟi sӵ hӛ trӧ cho mӝt, hai và (trong hҫu hӃWFiFWUѭӡng hӧp) cҧ ba kích cӥ khóa AES (128, 192 và 256-bit)
Các bҧQJ ErQ Gѭӟi hiӇn thӏ sӕ chu kǤ Yj WK{QJ Oѭӧng dӳ liӋu tӕL ÿD FKR Wӯng phiên bҧn lõi AES-GCM, cho tӯQJNtFKWKѭӟFNKyDÿѭӧc hӛ trӧ [89]
B̫ng 3.14 th͓ s͙ chu kǤ YjWK{QJO˱ͫng dͷ li u t͙LÿD
.tFKWKѭӟc khóa 128 192 256 128 192 256 128 192 256 Chu kǤ mӛi block 218 na 298 48 56 64 19 19 19 7K{QJOѭӧng 0.58 na 0.43 2.6 2.2 2.0 6.7 6.7 6.7
Phiên bҧn 19 chu kǤ có sҹn sӵ lӵa chӑn mӣ rӝng khóa tiêu chuҭn hoһc nhanh, ҧQKKѭӣQJÿӃn thӡi gian sӱ dөQJÿӇ thiӃt lұp khóa mӟi ViӋc mӣ rӝng tiêu chuҭQÿѭӧc GQJWURQJ)3*$ÿһc biӋt là khi cҫn hӛ trӧ cho cҧ EDNtFKWKѭӟc chính, vì có thӇ tiӃt kiӋPÿiQJkӇ diӋn tích [89] Ĉӕi vӟi các yêu cҫXWK{QJOѭӧng dӳ liӋXFDRKѫQFyFiFKӑ lõi AES-GCM nhanh KѫQFyFәng dӳ liӋu rӝQJKѫQÿӇ ÿҧm bҧRWK{QJOѭӧng không bӏ hҥn chӃ bӣLEăQJWK{QJ I/O Khҧ QăQJWK{QJOѭӧng dӳ liӋu cӫa các lõi tӹ lӋ thuұn vӟi tҫn sӕ cӫDÿӗng hӗ chӫ ÿѭӧc sӱ dөng và giá trӏ tӕLÿDFӫDÿLӅu này phө thuӝc vào loҥi thiӃt bӏ và cҩp tӕFÿӝ ÿѭӧc chӑn [89]
B̫ng 3.15 ph̩m vi la ch͕n các h͕ thi͇t b͓ Xilinx
Lõi 218 CLK Khóa 128 NtFKWKѭӟc khóa
Công nghӋ Spartan6 Virtex5 Virtex6 Spartan6 Virtex5 Virtex6 Tài nguyên 209 slice 247 slice 217 slice 220 slice 256 slice 220 slice
CLK 252MHz 393MHz 475MHz 231MHz 410 MHz 461MHz
7K{QJOѭӧng 128 147 Mbps 230 Mbps 278 Mbps 135 Mbps 240 Mbps 270 Mbps 7K{QJOѭӧng 256 na na na 99 Mbps 176 Mbps 198 Mbps
Các bҧng trên trang này hiӇn thӏ phҥm vi lӵa chӑn các hӑ thiӃt bӏ Xilinx phә biӃn theo các cҩp tӕFÿӝ Bҧng trên cho thҩy lõi 218 chu kǤ cho cҧ hӛ trӧ khóa 128 bit và hai NtFKWKѭӟc khóa [89]
Các bҧQJGѭӟLÿk\FKRWKҩy các lõi AES-GCM 48 chu kǤ và 19 chu kǤ, hӛ trӧ khóa 128 bit và tҩt cҧ FiFNtFKWKѭӟc khóa [89]
B̫ng 3.16 Các lõi AES-GCM 48 chu kǤ
Lõi 48 CLK Khóa 128 Tҩt cҧ NtFKWKѭӟc khóa
Công nghӋ Spartan6 Virtex5 Virtex6 Spartan6 Virtex5 Virtex6 Tài nguyên 340 slice 415 slice 356 slice 362 slice 443 slice 376 slice
CLK 199MHz 303MHz 359MHz 194MHz 307MHz 356MHz
7K{QJOѭӧng 128 530 Mbps 808 Mbps 957 Mbps 517 Mbps 818 Mbps 949 Mbps Thông Oѭӧng 192 na na na 443 Mbps 701 Mbps 813 Mbps 7K{QJOѭӧng 256 na na na 388 Mbps 614 Mbps 712 Mbps
B̫ng 3.17 Các lõi AES-GCM 48 chu kǤ
Lõi 19 CLK Khóa 128 Tҩt cҧ NtFKWKѭӟc khóa
Công nghӋ Spartan6 Virtex5 Virtex6 Spartan6 Virtex5 Virtex6 Tài nguyên 639 slice 678 slice 635 slice 672 slice 694 slice 669 slice
CLK 205MHz 335MHz 364MHz 178MHz 282MHz 332MHz
7K{QJOѭӧng 128 1.38 Gbps 2.25 Gbps 2.45 Gbps 1.2 Gbps 1.9 Gbps 2.23 Gbps
56 7K{QJOѭӧng 192 na na na 1.2 Gbps 1.9 Gbps 2.23 Gbps 7K{QJOѭӧng 256 na na na 1.2 Gbps 1.9 Gbps 2.23 Gbps 7Uѭӟc khi thiӃt kӃ, cҫn phҧi quyӃWÿӏnh lõi nào trong các lõi AES-GCM sӁ phù hӧp nhҩt vӟi ӭng dөQJ,3VHFĈҫu tiên quyӃWÿӏnh giӳa các lõi 218 chu kǤ, 48 chu kǤ và
19 chu kǤ WKHRWK{QJOѭӧng dӳ liӋu cҫn thiӃt và tài nguyên logic có sҹQ6DXÿy[iFÿӏnh kícKWKѭӟc khóa AES muӕn hӛ trӧ FNJQJQKѭPӑi yêu cҫXÿһc biӋt khác cӫa ӭng dөng [89]
B̫ng 3.18 Kh̫o sát chͱFQăQJYjKL XQăQJWKHRF̭u hình
Lõi DiӋn tích 7K{QJOѭӧng Mã hóa/ giҧi mã
Các kiӇu kiӃn trúc bҧo mұt xây dӵng trên nӅn tҧng IPsec
KiӃn trúc lookaside
ViӋc triӇn khai bҧo mұt truyӅn thӕng là các bӝ ÿӏnh tuyӃn dӵa trên NPU hoһc các thiӃt bӏ dӵa trên Pentium Trong cҧ hai quá trình thӵc hiӋn, thiӃt bӏ chӭa phҫn cӭng tӕi thiӇXÿӇ thӵc hiӋn lӟp vұt lý, kiӇm soát truy cұSSKѭѫQJWLӋn và bӝ ÿӋm gói ThiӃt bӏ bҧo mұWFNJQJFKӭa NPU hoһc Pentium vӟLFKLSVHW3&,ÿӇ xӱ lý tҩt cҧ các chӭFQăQJNKiF
57 QKѭWѭӡng lӱa, dӏFKÿӏa chӍ mҥng, bҧo mұt VPN, phát hiӋn xâm nhұp, phát hiӋn virus và QoS
Khi hiӋu suҩt VPN cӫa các thiӃt kӃ thӃ hӋ tiӃp theo giҧm xuӕng mӭc không thӇ chҩp nhұn, các tùy chӑn bao gӗm di chuyӇQVDQJ138ÿҳWKѫQKLӋu suҩWFDRKѫQKRһc thêm NPU bә VXQJÿӇ giҧm bӟt gánh nһng Hoһc là tùy chӑQWKrPFKLSKtÿiQJNӇ cho thiӃt kӃ
ChӭFQăQJVPN yêu cҫXEăQJWK{QJ138QKLӅXKѫQFiFFKӭFQăQJEҧo mұt khác vì hҫu hӃt xӱ lý bҧo mұWÿӅXSKkQWtFKFiFWUѭӡng nhҩWÿӏnh trong mӝt sӕ WLrXÿӅ cӫa mӝt sӕ gói Tuy nhiên, chӭFQăQJ931\rXFҫu NPU xӱ lý tӯng bit cӫa mӛi gói vӟi các hoҥWÿӝng xác thӵc và mmKyDFKX\rQVkX+ѫQQӳa, Internet Key Exchange yêu cҫu NPU thӵc hiӋn tính toán các hoҥWÿӝng khóa công khai Thұt không may, VPN dӵa trên phҫn mӅm không thӇ dӉ dàng thӵc hiӋQÿӗng thӡi các chӭFQăQJ,.(Yj,3VHF931 Trong khi NPU thӵc hiӋn IKE, hiӋu suҩt xӱ lý IPsec tҥm thӡi suy giҧm VPN dӵa trên phҫn mӅm hiӋn tҥi không thӇ hoҥWÿӝng hiӋu quҧ ӣ tӕFÿӝ gigabit, vì vұy các nhà phát triӇn sӱ dөng bӝ ÿӗng xӱ lý bҧo mұWÿӇ WăQJWӕc các phҫn quan trӑng cӫa xӱ lý Ipsec [90]
Hình sau [90] nêu khái niӋm hӋ thӕng bҧo mұt Lookaside Hookup phҫn cӭng ÿѫQ JLҧn này thêm chӭF QăQJ Eҧo mұt tìm kiӃm cho mӝW ÿѫQ Yӏ xӱ lý mҥng Trong WUѭӡng hӧp này, bӝ ÿӗng xӱ lý bҧo mұt kӃt nӕi vӟi NPU thông qua mӝt cәQJÿLӅu khiӇn ULrQJErQQJRjLÿѭӡng dүn dӳ liӋu chính PHY: lӟp vұt lý [90]
Hình 3.15 Khái ni m h th͙ng b̫o m̵t Lookaside
KiӃn trúc giҧm tҧi tҩt cҧ bҧo mұt IP và xӱ OêWUDRÿәi khóa Internet ThiӃt bӏ IPsec Flow-through chӭDFѫVӣ dӳ liӋu, chính sách bҧo mұt và liên kӃt bҧo mұt và hӛ trӧ IKE, tҩt cҧ trên chip và bӝ xӱ lý mҥng thӵc hiӋn các chӭFQăQJEҧo mұt, mҥng và chҩWOѭӧng dӏch vө khác PHY: lӟp vұt lý
Hình 3.16 Khái ni m h th͙ng b̫o m̵t Flow-through
Hình trên [90] cho thҩy hookup phҫn cӭQJÿѫQJLҧQÿӇ thêm chӭFQăQJEҧo mұt ORRNDVLGHYjR1387URQJWUѭӡng hӧp này, bӝ ÿӗng xӱ lý bҧo mұt kӃt nӕi vӟi NPU thông qua mӝt cәQJ ÿLӅu khiӇQ ULrQJ ErQ QJRjL ÿѭӡng data path chính KiӃn trúc lookaside này cung cҩp tùy chӑQÿӇ thêm bҧo mұt cho các thiӃt bӏ và bӝ ÿӏnh tuyӃn VPN KiӃn trúc yêu cҫu NPU xӱ lý nhiӅu tác vө phân tích gói IPsec và chӭFQăQJEҧo mұt, FNJQJQKѭFiFJLDRWKӭc truyӅn dӳ liӋu và chӭFQăQJGLFKX\Ӈn dӳ liӋXOLrQTXDQWUѭӟc khi chuyӇQFiFJyLÿѭӧc xӱ lý sang mҥch tích hӧSWăQJWӕc bҧo mұt Trong khi bӝ xӱ lý bҧo mұt ngoҥi giҧm tҧLFiFKjPEăPYjPmKyDÿӕi xӭng chuyên sâu tính toán, viӋc xӱ lý giao thӭc còn lҥi và các chӭFQăQJ,3VHFSKө trӧ khác có thӇ trӣ thành nút cә chai trên NPU ӣ tӕFÿӝ gigabit [90]
Mӝt kiӃQWU~FORRNDVLGHFNJQJ\rXFҫXEăQJWK{QJEXVEә sung Di chuyӇn dӳ liӋu tӯ NPU sang bӝ xӱ lý bҧo mұWYjQKkQÿ{LEăQJWK{QJEXV138Eҵng cách yêu cҫu hai OѭӧWÿLTXDEXVFӫa nó KiӃn trúc Flow-through cҳt giҧm mӝt nӱa cҧ sӕ Oѭӧng truyӅn dӳ liӋX138YjEăQJWK{QJEXVJLӳa NPU và bӝ xӱ lý bҧo mұt vì bus ngoài cӫa nó kӃt nӕi vӟi thiӃt bӏ khác, chҷng hҥQQKѭOӟp vұt lý mҥng
Tӕi thiӇu, các cәng bҧo mұt thӵc hiӋn chӭFQăQJWѭӡng lӱa và dӏFKÿӏa chӍ mҥng ngoài các chӭFQăQJFKX\rQVkXWtQKWRiQNKiFQKѭSKiWKLӋn xâm nhұp, phát hiӋn virus, quét tҧi trӑng và mӝt sӕ mӭc QoS Vì phân loҥi gói là chung cho tҩt cҧ các chӭFQăQJ bҧo mұWQj\QJѭӡi thiӃt kӃ cәng bҧo mұt có thӇ thêm các chӭFQăQJNKiFWKHRPRGXOH YjWăQJGҫn bҵQJFiFKWăQJFѭӡng bҧQJSROLF\WDEOHVDXÿyNӃt hӧp thêm phҫn mӅm 7X\QKLrQÿӃn mӝWO~FQjRÿyWjLQJX\rQ138VӁ cҥn kiӋt và hiӋu suҩWWK{QJOѭӧng sӁ bҳWÿҫu suy giҧm Vì chӭFQăQJ931OjKRҥWÿӝng tính toán chuyên sâu nhҩWÿһc biӋt là ӣ tӕFÿӝ gigabit, nên viӋFWăQJWӕc phҫn cӭng VPN cho bӝ ÿӏnh tuyӃn hoһc thiӃt bӏ có Wѭӡng lӱa và NAT xҧ\UDWUѭӟc tiên [90].
KiӃn trúc flow-through
KiӃn trúc bҧo mұt Flow-through cung cҩp triӇn khai phҫn cӭng thӃ hӋ tiӃp theo cӫa giao thӭc bҧo mұt IPsec KiӃQ WU~F Qj\ ÿӏnh vӏ bӝ xӱ lý bҧo mұW WUѭӟc bӝ xӱ lý mҥng KiӃn trúc Flow-WKURXJKÿyQJJyLWҩt cҧ chӭFQăQJ931Fӫa IPsec và cung cҩp hiӋu quҧ hӋ thӕQJFDRKѫQNLӃn trúc Lookaside Bӝ xӱ lý bҧo mұt Flow-through xӱ lý tҩt cҧ các chӭc QăQJSKҫn cӭng và phҫn mӅm IPsec mà không cҫn bҩt kǤ sӵ can thiӋp nào tӯ bên ngoài, cho phép NPU hoҥWÿӝQJQKѭWKӇ hoàn toàn không biӃt vӅ chӭFQăQJVPN [90]
59 KiӃn trúc Flow-through, giҧm tҧi tҩt cҧ xӱ lý IPsec và IKE ThiӃt bӏ IPsHFOѭX Oѭӧng chӭDFѫVӣ dӳ liӋu policy bҧo mұt và liên kiӃt bҧo mұt và hӛ trӧ IKE, tҩt cҧ ÿӅu trên chip NPU có thӇ thӵc hiӋn các chӭFQăQJEҧo mұt, kӃt nӕi mҥng và QoS khác mà không yêu cҫu bҩt kǤ sӱDÿәLQjRÿӕi vӟi phҫn còn lҥi cӫa thiӃt kӃĈӇ chèn thiӃt bӏ Flow-through, nhà thiӃt kӃ hӋ thӕng thӵc sӵ ngҳt kӃt nӕi phҫn cӭng giӳDÿLӅu khiӇn truy cұSSKѭѫQJWLӋn và thiӃt bӏ lӟp vұWOêVDXÿyFKqQWKLӃt bӏ OѭXOѭӧng ӣ giӳD'RÿyWKLӃt bӏ OѭXOѭӧng hoҥWÿӝQJQKѭPӝt thiӃt bӏ lӟp vұWOêÿӃn cәng máy chӫ và hoҥWÿӝQJQKѭ mӝt thiӃt bӏ ÿLӅu khiӇn truy cұSSKѭѫQJWLӋn ӣ phía mҥng
Tҩt cҧ các chӭFQăQJ[ӱ lý và giҧLPmJyLFKROѭXOѭӧng truy cұp hoàn tҩWWUѭӟc NKLOѭXOѭӧng truy cұSÿӃn bӝ xӱ lý mҥng Các bӝ xӱ lý bҧo mұt Flow-through thông qua các giao diӋn phҫn cӭng cung cҩp cho bӝ xӱ lý mҥng hoһc hӋ thӕng ӣ tӕFÿӝ ÿѭӡng truyӅQĈLӅu này cho phép hiӋu suҩt VPN có thӇ dӵ ÿRiQÿѭӧFÿӝc lұp vӟLEăQJWK{QJ NPU vì NPU chӍ thӵc hiӋn các chӭFQăQJFҩu hình policy và xӱ lý ngoҥi lӋ IPsec KiӃn trúc Flow-through làm giҧP EăQJ WK{QJ EXVYu Qy NK{QJ \rX Fҫu nhiӅu nút giao bus ORRNDVLGHYjÿӃn tӯ NPU
Giҧi pháp Flow-through có thӇ hӛ trӧ nhà sҧn xuҩt thiӃt bӏ gӕc phát triӇn thiӃt bӏ VPN vì nhà thiӃt kӃ có thӇ tích hӧp các thiӃt bӏ Flow-through trӵc tiӃp vào data path do chúng hҫXQKѭNK{QJҧQKKѭӣng phҫn còn lҥi cӫa hӋ thӕQJĈLӅu này có thӇ làm khӕi Oѭӧng thiӃt kӃ hӋ thӕng cҫn thiӃt cӫa các nhà phát triӇn OEM Các thiӃt bӏ Flow-through có thӇ giҧm thêm rӫi ro thiӃt kӃ bҵng cách kӃt hӧp giҧLSKiS,3VHF,.(ÿѭӧc chӭng nhұn cӫD,&6$/DEVÿҧm bҧo khҧ QăQJWѭѫQJWiFÿѭӧc kiӇm tra và chӭng nhұn [90]
+ѫQQӳa, giҧi pháp Flow-through có thӇ WăQJWӕc thӡLJLDQÿѭDUDWKӏ WUѭӡng bҵng cách giҧm nӛ lӵc phҫn mӅPÿӇ thӵc hiӋn các giao thӭc IPsec và IKE Không có API ,3VHFÿӇ tích hӧp vào phҫn mӅm hӋ thӕQJÿӇ xӱ lý tӯng gói IPsec Ngoài ra, nhà phát triӇn OEM không cҫn phҧi duy trì phҫn mӅm IKE và IPsec vì thiӃt bӏ Flow-WKURXJKÿm kӃt hӧSÿLӅu này Ngoài ra, nhà phát triӇn OEM không cҫn phҧi di chuyӇn sang các tiêu chuҭn IPsec mӟi bӣi vì nhà sҧn xuҩt thiӃt bӏ Flow-through hӛ trӧ nâng cҩp tiêu chuҭn Ĉӕi vӟi viӋc triӇn khai thiӃt bӏ OѭXWUӳ IP, thiӃt bӏ Flow-WKURXJKÿѭӧFÿһt giӳa mӝt công cө giҧm tҧi TCP mҥng và thiӃt bӏ lӟp vұt lý [90].
So sánh cҩu trúc IPsec
Các thӵFWKL931ÿLӇn hình là máy PCbased hoһc mӣ rӝQJKѫQOjEӝ ÿӏnh tuyӃn Router Vӟi viӋc không có phҫn cӭQJWăQJWӕFFNJQJQKѭWKLӃt bӏ Pentium hoһc bӝ xӱ lý mҥng phҧi thӵc hiӋn chӭFQăQJ931,3VHF\rXFҫu giao thӭc và xӱ lý gói ngoài mã hóa và xác thӵFJyL7ѭѫQJWӵ, IKE yêu cҫu xӱ OêWK{QJÿLӋp ngoài mã hóa công khai Tuy nhiên, các chӭFQăQJPmKyDÿѭӧFWtQKWRiQ FKX\rQVkXYjGRÿyÿzLKӓi mӝWOѭӧng EăQJWK{QJ&38WѭѫQJÿӕi lӟn chӍ ÿӇ dành riêng cho mã hóa và xác thӵc
Công cө WăQJWӕc thuұWWRiQ,3VHFÿӇ ÿҥWWK{QJOѭӧng Gbps trӣ lên nhҵm tung ra thӏ WUѭӡng cuӕi nhӳQJQăP7X\QKLrQFKӍ ÿѫQWKXҫQOjWăQJWӕc chӭFQăQJEҧo mұt vүn gây gánh nһng cho máy chӫ CPU hoһc NPU, cҧn trӣ khҧ QăQJPӣ rӝng và phát triӇn cӫa thiӃt bӏ Các nhà sҧn xuҩt bҳWÿҫu vұn chuyӇn toàn bӝ gói (packet) xӱ lý tìm kiӃP YjR QăP ÿӇ giҧm bӟt gánh nһng CPU nhҵm chuyӇQ ÿәi các gói IP thành ,3VHFYjQJѭӧc lҥL7X\QKLrQÿLӅu này vүn cҫn bӝ ÿӏnh tuyӃn (Router) hoһc nhà cung cҩp thiӃt bӏ ÿӇ có kiӃn thӭc chuyên môn vӅ ,3VHFÿӇ phát triӇQ7KrPYjRÿyFiFNӃt nӕi I/O cӫD&38ÿӃn bӝ xӱ lý bҧo mұt phҧi cung cҩSYjWăQJJҩSÿ{LWK{QJOѭӧng cҫn thiӃt tҥi ngõ vào và ngõ ra Quá trình xӱ lý không tҧLÿӃn máy chӫ CPU hoһc NPU tӯ
60 bҩt kǤ IPsec nào hoһc xӱ lý trao ÿәLNKyD,.(,QWHUQHW.H\([FKDQJHGRÿyJLҧm bӟt các hҥn chӃ kӻ thuұt và tҥRÿLӅu kiӋn thuұn lӧi cho quá trình thiӃt kӃ [90]
Hình 3.17 So sánh yêu c̯u máy chͯ c̯n giͷa ph̯n m͉m, lookaside và flow-through
Hình trên [90] so sánh yêu cҫu máy chӫ cҫQÿӇ thêm chӭFQăQJ,.(Yj,3VHF VPN vào hӋ thӕng chӍ dành cho phҫn mӅm, lookaside và flow-through
Trong hӋ thӕng lookaside, bӝ xӱ lý mҥng phân tích cú pháp và phân loҥi các gói gӱLÿӃn, tra cӭu chính sách bҧo mұt (Security policy) và hiӋp hӝi bҧo mұt (SA) và xóa FiFWLrXÿӅ (header) IPsec khi cҫQWUѭӟc khi giҧLPmJyLÿѭӧc mã hóa trong phҫn mӅm hoһc chuyӇn tiӃp nó tӟi bӝ xӱ lý bҧo mұt tìm kiӃm giҧi mã và xác thӵc Trong kiӃn trúc flow-through, tҩt cҧ các xӱ lý IPsec xҧy ra trong phҫn cӭng ӣ tӕFÿӝ dòng (line speed) /ѭXOѭӧng truy cұSÿLWKHRPӝWTXiWUuQKWѭѫQJWӵ, hoһc chӍ theo chiӅXQJѭӧc lҥi [90]
IKE tұp trung nhiӅXKѫQYjRSKpSPRGXOR0ӝt giao dӏch IKE duy nhҩWFNJQJ\rX cҫXKuQKWKjQKWK{QJÿLӋSÿjPSKiQFKtQKViFKEҧo mұt, thiӃt lұp mөFFѫVӣ dӳ liӋu hiӋp hӝi bҧo mұt (SA) và thӵc hiӋn các hoҥWÿӝng khóa công khai Diffie-Hellman và RSA Hҫu hӃt các bӝ xӱ lý bҧo mұWORRNDVLGHÿӅXWăQJWӕc các hoҥWÿӝng cӫa khóa công NKDLQKѭQJÿӇ bù lҥi là phҧi xӱ lý giao thӭc IKE cho máy chӫ NPU
IPsec không chӍ là tiêu chuҭn mã hóa tiên tiӃn (AES) và thuұWWRiQEăPDQWRjQ (SHA-FNJQJQKѭQy\rXFҫu phân tích và phân loҥi gói tin, chính sách bҧo mұt và tra cӭu khu vӵc OѭXWUӳ, tҥo và kiӇPWUDFiFWLrXÿӅ bҧo mұt, kiӇm tra bҧo mұt liên kӃt thӡi gian, và cұp nhұt sӕ liӋu thӕng kê Hҫu hӃt các bӝ xӱ lý bҧo mұWORRNDVLGHÿӅu loҥi bӓ nhӳng nhiӋm vө cho máy chӫ NPU
Trong hình 4, cӝWORRNDVLGHÿҥi diӋn cho chӭFQăQJFӫa dӏch vө bҧo mұt flow- through tӯ Pi\WăQJWӕc thuұt toán hoһc nhà cung cҩp xӱ OêJyLWLQ0i\WăQJWӕc thuұt toán chӍ thӵc hiӋn thuұt toán mã hóa và xác thӵc, và mӝt sӕ nhà cung cҩSFNJQJKӛ trӧ nén IPComp Bӝ xӱ lý gói chuyӇQÿәi bә sung tӯ gói IP thành gói IPsHFYjQJѭӧc lҥi [90]
Mӝt sӕ thiӃt bӏ mã hóa tìm kiӃPFNJQJFXQJFҩp phҫn cӭQJWăQJWӕc công khai Bӣi vì nhìn thiӃt bӏ chӍ cung cҩp mӝt phҫn cӫa tәng thӇ IPsec và chӭFQăQJ[ӱ lý IKE
61 trong phҫn cӭng, chúng có thӇ không giҧi quyӃWÿѭӧc vҩQÿӅ thӵc hiӋn IKE và IPsec ÿӗng thӡi
Trong cҩu hình lookaside, bӝ xӱ lý hӋ thӕng xӱ lý mӝt sӕ nhiӋm vө cho giao thӭc 931FyQJKƭDOjQKjSKiWWULӇn OEM phҧi phát triӇn, chuyӇQÿәi và tích hӧp mӝWOѭӧng ÿiQJNӇ cӫa phҫn mӅm IPsec và IKE Thұm chí tҧi xuӕng miӉn phí phҫn mӅm Ipsec và IKE tӯ trang web yêu cҫu nhà phát triӇQ2(0ÿӃn, chuyӇQÿәi, tích hӧp và bҧo trì phҫn mӅPQj\'RÿyYLӋc kӃt hӧp chӭFQăQJ931ӣ tӕFÿӝ ÿѭӡng truyӅQOjPWăQJWKrPÿӝ phӭc tҥS FNJQJ QKѭ WKӡi gian tiӃp thӏ, rӫL UR Nƭ WKXұt và quá tҧi trong sӵ phát triӇn tài nguyên Bӣi vì flow-through xӱ OêÿyQJJyLWRjQEӝ giҧi pháp IPsec trong mӝt con chip, viӋc sӱ dөng chúng có thӇ làm giҧPÿiQJNӇ cҧ hai kiӃn thӭc cҫn thiӃWÿӇ kӃt hӧp IPsec vào sҧn phҭm và thӡLJLDQFNJQJQKѭUӫi ro liêQTXDQÿӃn quá trình phát triӇn [90].
Phân tích hiӋXQăQJYjFKLSKt
Bҧng sau [90] cho thҩy cҧ lӧi ích giҧm tҧi cӫa bӝ xӱ lý và tiӃt kiӋm chi phí bҵng ÿ{-la khi thêm bӝ xӱ lý phҫn cӭng IPsec cho các thiӃt bӏ dӵa trên Pentium Các tính toán ÿѭӧc bҳt nguӗn bҵng cách sӱ dөQJFKXQJÿѫQYӏ EăQJWK{QJ3HQWLXP*+]ÿӇ ÿROѭӧng EăQJWK{QJ&38Fҫn thiӃWÿӇ thӵc hiӋn các chӭFQăQJ,3VHFNKiFQKDXWURQJSKҫn mӅm, ÿӇ cung cҩp kênh gigabit mang lҥi giá trӏ 2Gbps [90]
B̫ng 3.19 So sánh hi XQăQJYjFKLSKtF̭u hình
ChӍ phҫn mӅm 7.6GHz 1GHz 2.5GHz 11.1GHZ $851 $0 $851 Lookaside 0.0GHz 1GHz 0.1GHz 1.1GHz $84 $150 $234 Flowthrough 0.0Ghz 0GHz 0.0GHz 0.0GHz $0 $100 $100
Chi phí mã hóa cho giҧi thuұt tӕLѭX$(6-128 bҵng code assembly xҩp xӍ khoҧng
280 clocks trên 16 byte, trong khi SHA-1 là 830 clocks trên 64 byte ChuyӇQÿәi sang Pentium clock mӛi bit, nhӳQJÿROѭӡng vӅ mһWQăQJVXҩt khoҧng 3.8 clocks trên bit trên giây, hoһF*+]EăQJWK{QJ3HQWLXPÿӇ hӛ trӧ kênh 2Gbps Bӣi vì chi phí xӱ lý giao thӭc IPsec và xӱ lý gói khác nhau phө thuӝc rҩt nhiӅu vào nhiӅu yӃu tӕ bao gӗm sӕ hiӋp hӝi bҧo mұt, chính sách bҧo mұt, và triӇn khai tra cӭXFNJQJQKѭOLӋXWUuQKWăQJWӕc thuұt toán hoһc bӝ xӱ OêJyLWLQÿѭӧc sӱ dөQJ&K~QJW{Lѭӟc tính rҵng 2Gbps yêu cҫu 500Mhz ÿӃn 1.5 GHz cӫDEăQJWK{QJ3HQWLXP[90]
Nhìn theo mӝt cách khác, tính toán này xҩp xӍ ÿӃn 1000 clocks cho mӛi gói vӟi tӕFÿӝ xӱ lý 1 triӋu gói trên mӛi giây Mӝt triӋu gói mӛi giây cung cҩSEăQJWK{QJ xӱ lý tӕFÿӝ dòng xuӕQJNtFKWKѭӟc gói 250 byte, trӯ ÿLNKRҧng cách giӳa các gói, cho mӝt hàng Hình thành mӝt chӃ ÿӝ ÿѭӡng hҫm IKE qua thuұt toán Diffie-Hellman, mӝt khóa riêng RSA và hai hoҥWÿӝng khóa công khai RSA Hình thành nhanh mӝt IKE trên chӃ ÿӝ ÿѭӡng hҫm (tunnel mode) yêu cҫu mӝt sӵ hoҥWÿӝng Diffie-Hellman Chúng tôi ѭӟc tính rҵng viӋFKuQKWKjQKÿѭӡng hҫm chính và chӃ ÿӝ nhanh mӛi giây cung cҩp ÿӫ tӕFÿӝ tҥRNKyDÿӇ hӛ trӧ WK{QJOѭӧng tҫm Gigabit VPN truy cұp tӯ xa Thұt trùng hӧp, mӝt mã nguӗQ,.(Yjÿѭӡng hҫm IKE mӛi giây yêu cҫu cùng mӝWOѭӧng khóa F{QJNKDLÿѭӧc xӱ lý [90]
62 Pentium4 2.1GHz yêu cҫu 4.65 ms cho RSA xӱ lý khóa riêng 0.19ms cho RSA 1,024 bit hoҥW ÿӝng khóa công khai và 3.69 ms cho 1024 bit tính toán trên Diffie- +HOOPDQ'X\WUuÿѭӡng hҫm mӛi giây trong phҫn mӅm yêu cҫu khoҧng 2.5GHz EăQJWK{QJ3HQWLXP;ӱ lý tin nhҳQ,.(OjNK{QJÿiQJNӇ, yêu cҫu xӱ Oê3HQWLXPGѭӟi 0+]ÿӇ duy trì chӃ ÿӝ FKtQK,.(ÿѭӡng hҫm trên giây và tӕFÿӝ thiӃt lұSÿѭӡng hҫm nhanh [90]
Bӝ xӱ lý bҧo mұt lookaside cung cҩp mӝt sӵ cҧi thiӋQÿiQJNӇ vӅ cҧ chi phí và giҧm tҧi cho CPU Tuy nhiên, bӝ xӱ lý flow-through hoàn toàn giҧm tҧi máy chӫ CPU tӯ IPsec, giúp tiӃt kiӋPFKLSKtÿiQJNӇ so vӟi bӝ xӱ OêORRNDVLGH3KkQWtFKWѭѫQJWӵ này có thӇ ÿѭӧc áp dөng giҧm tҧi và lӧi ích chi phí cӫa NPU dӵa trên bӝ ÿӏnh tuyӃn bҵQJFiFKÿәi sӭc mҥnh xӱ Oê3HQWLXPÿӇ có sӭc mҥnh xӱ lý NPU
Hình sau [90] thӇ hiӋn chӭFQăQJFӫa viӋc sӱ dөQJSKѭѫQJSKiSIORZ-WKURXJKÿӇ thêm chӭFQăQJ,.(Yj,3VHFYjRKӋ thӕng mҥng virtual private network chӍ có phҫn mӅm
Hình 3.18 S͵ dͭQJSK˱˯QJSKiSIORZ-WKURXJKÿ͋ thêm chͱFQăQJ,.(Yj,3VHFYjR VPN ch͑ s͵ dͭng ph̯n m͉m
Ĉӏnh dҥng gói dӳ liӋu IPv4 ESP
Ĉӏa chӍ IP do Tә chӭc cҩp phát sӕ hiӋu Internet (IANA ± Internet Assigned Numbers Authority) quҧn lý và tҥo ra IANA sӁ phân phӕi dҧLÿӏa chӍ ,3ÿӃQ&ѫTXDQ Intenet cҩp khu vӵFFѫTXDQÿyVӁ phân phát dҧi IP cҩp thҩSKѫQFKRFiFTXӕc gia, các quӕc gia tiӃp nhұn dҧLÿӏa chӍ ,3ÿmÿăQJNêFҩp phát lҥi dҧi IP cҩp thҩSKѫQFKRFiFQKj cung cҩp Internet và cuӕLFQJQJѭӡi dùng sӁ có mӝWÿӏa chӍ ,3GQJÿӇ kӃt nӕi Internet
IPv4 là thӃ hӋ IP chúng ta sӱ dөng hiӋn nay bao gӗPELW,3Yÿѭӧc biӇu hiӋn bҵng chuӛi sӕ có 4 phҫn phân cách bҵng 4 dҩu chҩm Mӛi phҫQÿѭӧc gӑi là octet và có
Hình 3.19 Ĉ͓nh d̩ng IPv4 ESP
Ĉӏnh dҥng gói dӳ liӋu IPv6 ESP
3Yÿѭӧc phát triӇn dӵa trên nӅn tҧng IPv4 nhҵm mөFÿӏa bә VXQJOѭӧQJÿӏa chӍ IPv4 (4.3 tӹ) dҫn cҥn kiӋt Vӟi chiӅu dài 128 bit dӳ liӋu, IPv6 có tӟi 2.56 tӹ tӹ ÿӏa chӍ IP gҩp nhiӅu lҫn so vӟi IPv4.
Hình 3.20 Ĉ͓nh d̩ng Ipv6 ESP
&+ѬѪ1* THIӂT Kӂ VÀ THӴC HIӊN
ThiӃt kӃ RTL
Top level
Hình 4.1 Lu͛ng dͷ li u (data path) top
ThiӃt kӃ bao gӗm 3 bӝ phұQFKtQKÿyOjPRGXOHJFPBDHVBFRUHILIRLQYjILIR RXW7URQJÿyPRGXOHJFPBDHVBFRUHOjEӝ xӱ lý cӫa thiӃt kӃ, thӵc hiӋn các viӋc tính toán cho giҧi thuұt GCM AES 128 bitVILIRLQYjRXWÿѭӧc thiӃt kӃ ÿӇ OѭXWUӳ giá trӏ tҥm thӡi nhұQÿѭӧc tӯ PCIe Dӳ liӋu ngõ vào nhұQÿѭӧc tӯ 3&,HÿѭӧFOѭXWURQJILIRLQ sӁ ÿѭӧFÿӑFYjÿLTXDFRXQWHUUӗLÿѭӧFÿѭDYjREӝ $(6FLSKHUWRSÿӇ thӵc hiӋn giҧi thuұt AES, kӃt quҧ sӁ tiӃp tөc ÿѭDTXDKjPEăP*+$6+6DXNKL[ӱ lý Tag, dӳ liӋu QJ}UDÿѭӧFOѭXYjRILIRRXWWUѭӟFNKLÿѭDUDQJRjLTXD3&,H
Bӝ xӱ lý chính FPGA IPsec nhұn các ngõ vào bao gӗm thông tin mã hóa và giҧi mã tӯ bӝ 6$ORRNXSÿѭӧc cung cҩp bӣi ARM; ESP Packet cho mã hóa hoһc IP Packet cho giҧi mã, và các tín hiӋXÿLӅu khiӇQFKRÿӇ kích hoҥt khӕi bҳWÿҫu thӵc hiӋn Phҫn
65 thông tin bao gӗm Khóa Key và Initial Vector Phҫn Packet bao gӗm AAD và MESSAGE Ngõ ra cӫa khӕi bao gӗm dӳ liӋXÿmÿѭӧc mã hóa hoһc giҧi mã Và các WK{QJWLQÿӇ ARM biӃWÿmWKӵc hiӋn xong và có thӇ thӵc hiӋn các phép tính kӃ tiӃp
Hình 4.3 Giao di n module top gcm aes 128 bits
7RSJFPDHVELWVPRGXOHÿӑc dӳ liӋu 128 bits tӯ ILIRLQWKHRÿӏa chӍ 8bits, thӵc hiӋn thuұWWRiQ$(6*&0ÿӇ mã hóa và giҧi mã dӳ liӋu ViӋc này sӁ ÿѭӧc kít hoҥt bӣi tín hiӋu ena_aes Tín hiӋu này sӁ ÿѭӧc tích cӵF VDX NKL ILIR LQ ÿm Vҹn sàng TURQJTXiWUuQK3&,HÿDQJJKLILIRLQWKuWtQKLӋu này sӁ NK{QJÿѭӧc tích cӵFÿӇ tránh [XQJÿӝt Sau khi thӵc hiӋn, cӡ JFPBDHVBGRQHÿѭӧc bұt lên, tín hiӋXFKRSKpSÿӑc ngõ ra 128 bit tӯ fifo out, kӃt thúc quá trình xӱ lý 1 gói IP
Hình 4.4 B͡ ÿL͉u khi͋n ttn hi u ± miy tr̩ng thii top level
66 ĈӇ thӵc hiӋn viӋFÿLӅu khiӇn cho luӗng dӳ liӋu top level lҩ\ÿ~QJGӳ liӋXYjÿLӅu khiӇn các tín hiӋu cho máy trҥng thái ӣ bên trong block level cҫn có mӝt bӝ ÿLӅu khiӇn controller Bӝ ÿLӅu khiӇQ ÿѭӧc thӵc hiӋn bӣi mӝt máy trҥng thái Mealy kӃt hӧp vӟi Moor Máy trҥng thái này hoҥWÿӝng theo tiӃQWUuQKQKѭVDX
+ INIT trҥng thái khӣi tҥREDQÿҫu ChuyӇn sang trҥng thái kӃ tiӃp là RD INFO khi có tín hiӋu ena_aes
+ RD IN)2ÿӑc thông tin cӫa gói tӯ fifo in, trҥng thái kӃ tiӃp là RD KEY1 5'.( chiӅu dji 64-bit
- ChiӅu dji khya = 128, 192 hoһc 256 bits
- ChiӅu dji AAD = 64 hoһc 96 bits
- ChiӅu dji Tag = 8, 12 hoһc 16 octets
- 3D\ORDGÿmÿѭӧc mã hóa (Ciphertext) = Initialization Vector + Ciphertext (khӕi mã hóa payload ) vӟi chiӅu dài bҵng vӟi chiӅu dài cӫa plaintext
- Xác thӵc Tag (kiӇm tra tính toàn vҽQÿӝ dài = 8, 12 or 16 octets (mһFÿӏnh 16)
- +ѭӟng dүn cho ngõ vào:
- Plaintext = khӕi payload ( payload gӕc + padding + ESP trailer)
- IKE hàm pseudo-random cung cҩSNKyDFKtQKÿѭӧc gӑi là KEYMAT Ĉӝ dài khóa = 128: KEYMAT (20 octets) = Key (16 octets) + salt value (4 octets) Ĉӝ dài khóa = 192: KEYMAT (28 octets) = Key (24 octets) + salt value (4 octets) Ĉӝ dài khóa = 256: KEYMAT (36 octets) = Key (32 octets) + salt value (4 octets)
- Sӕ thӭ tӵ có thӇ ÿѭӧc lҩy tӯ mӝt bӝ ÿӃPÿӇ tránh viӋc gӑi lҥLJyLĈӕi vӟi sӕ thӭ tӵ mӣ rӝng, phҫQELWFDRKѫQÿѭӧc IKE cung cҩp bә sung cho sӕ thӭ tӵ ELWFNJ
- Nonce = Salt value (4 octets) + Initialization Vector (8 octets)
- InitializatioQ9HFWRUÿѭӧc tҥo bӣi mӝt bӝ ÿӃm hoһc thanh ghi dӏch liner feedback (LFSR).
NӅn tҧng FPGA
Các thông sӕ FѫEҧn cӫa Kit
- TrӑQJOѭӧng - 0.6 Ibs
- Bӝ nhӟ flash - Bӝ nhӟ flash 1Gb
- ĈLӋn ip nguӗn - 3.3 V tӯ cәng M.2 (M-key)
- Ĉyng gyi - Tҧn nhiӋt tiêu chuҭn, Aller Artix 7 M2
- ThiӃt bӏ: Xilinx Artix 7 FPGA (XC7A200T-2FBG484I)
- DDR3: 2Gb DDR3 ( MT41J128M16JT-125:K TR )
- Bӝ nhӟ flash onboard 1Gb QSPI cho viӋc cҩu hunh FPGA
- Cәng JTAG cho nҥSFKѭѫQJtrunh vj debug lӛi
- 1 x Trusted Platform Module (AT97SC3205)
CiFEѭӟc thӵc hiӋn project trên phҫn mӅm Vivado
- %ѭӟc 1: KӃt nӕi cip Xilinx Platform chuҭQ 86% ÿӃn Aller bҵng JTAG cip Cҩp nguӗn cho Aller.
- %ѭӟc 2: Mӣ Vivado project vj mӣ target bҵng cich nhҩp chuӝt vjR³2SHQ7DUJHW´
WURQJ³2SHQ+DUGZDUH0DQDJHU´WUrQPөF³3URJUDPDQG'HEXJ´Fӫa cӱa sә Flow Navigator Nhҩn chӑQ³$XWR&RQQHFW´
- %ѭӟc 3: NӃu thiӃt bӏ ÿѭӧc nhұn thjQKF{QJVDXÿy nhҩn phҧi chuӝt vjo tên thiӃt bӏ ³[FDWB´Yj chӑQ³3URJUDP'HYLFH´
- %ѭӟc 4: Trong cӱa sә ÿѭӧc mӣ ra, Vivado tӵ ÿӝng chӑn chtnh xic file bitstream file nӃXQKѭ thiӃt kӃ ÿm ÿѭӧc synthesized, implemented vj tҥo bitstream thjnh công NӃu cҫn thiӃt, nên chӍ ÿӏnh r} chtnh xic file bitstream cho FPGA Cuӕi cng chӑn n~t ³3URJUDP´
KӃt quҧ thӵc hiӋn
Tәng hӧp vj mô phӓng trên VCS
+ Ng} vjo: Plaintext, Key, IV, AAD
+ Ng} UDPRQJÿӧi: Cipher text, Tag Ĉӏnh dҥQJFѫEҧn cӫa testcase nhұn tӯ team ARM:
0000 - ca fe ba be fa ce db ad-de ca f8 88 aad:
0000 - fe ed fa ce de ad be ef-fe ed fa ce de ad be ef
Thӵc hiӋn tҥo testcase cho VCS bҵng cách viӃWVFULSWÿӇ tӵ ÿӝQJÿӑc testcase trên và chuyӇQVDQJÿӏnh dҥng phù hӧSFKR9&66FULSWÿѭӧc viӃt bҵng ngôn ngӳ Tcl get_test_case.tcl
Sau khi chҥy tәng hӧp và mô phӓng bҵng VCS, kӃt quҧ nhұQÿѭӧc sӁ là kӃt quҧ sau khi so sánh ngõ ra cӫa thiӃt kӃ vӟLQJ}UDPRQJÿӧi có sҹn trong testcase KӃt quҧ Ojÿ~QJQӃu ngõ ra bӝ so sánh bҵQJYjQJѭӧc lҥi thì kӃt quҧ bӏ sai rpt/result_testcase_*.rpt
75 These files contains value 0|1 of each comparison
Comparison Cipher Text và Authentication Tag ÿѭӧc tҥo ra trong mô phӓng so sánh có dҥng QKѭVDX
Ví dө ÿӏnh dҥng kӃt quҧ cӫa quá trình mô phӓng và debug
1 ± Cipher text 1 match with expectation value
1 ± Cipher text 2 match with expectation value
1 ± Cipher text 3 match with expectation value
0 ± Cipher text 4 un-match with expectation value
1 ± Authentication TAG match with expectation value
KӃt quҧ mô phӓng
- Chuҭn bӏ ngõ vào: sӱ dөng tcl script ÿӇ tҥo test bench file
- Chú ý: i là chӍ sӕ cӫa test case
- Chép file test_bench YjRWKѭPөc thӵc thi
- Chú ý: tӕLÿD30 test cases chҥy cùng lúc vì giӟi hҥn bӣi $fopen limitation
- Câu lӋnh tәng hӧp và mô phӓng:
- KiӇm tra trong báo cáo rpt/result_test_case*:
Hình 4.11 K͇t qu̫ waveform sau khi ch̩y VCS
1KѭZDYHIRUPWKӇ hiӋn FNJQJQKѭNLӇm tra file ngõ ra sau khi mô phӓng, ta thҩy thiӃt kӃ ÿmWKӵc hiӋQÿ~QJFKӭFQăQJPmKyD[iFWKӵc Ngõ ra cӫa thiӃt kӃ ÿѭӧFOѭXYjR fifo out bao gӗP&LSKHU7H[WYj7DJÿӅXÿ~QJYӟi ngõ ra mà thiӃt krPRQJÿӧi
Thӵc hiӋQWѭѫQJWӵ cho các testcase khác ta có bҧng kӃt quҧ sau:
B̫ng 4.2 B̫ng k͇t qu̫ mô ph͗ng
4.4.2.2 Gi̫i mã và xác thc
KiӇm tra giҧi mã và xác thӵc bҵng cách:
- Lҩy kӃt quҧ Ciphertext làm plaintext cho ngõ vào
- Giӳ nguyên giá trӏ Key, IV, AAD
- So sánh giá trӏ Ciphertext và Plaintext
- So sánh giá trӏ Tag cùng tҥo ra trong hai quá trình mã hóa và giҧi mã
Tӯ kӃt quҧ waveform cho thҩy ngõ ra Ciphertext cӫa quá trình giҧLPmÿ~QJOҥi bҵng giá trӏ Plaintext cӫDTXiWUtQKPmKyDĈLӅu này chӭng tӓ quá trình giҧi mã xác thӵFÿmWKjQKF{QJ
4.4.3 M{KuQKÿiQKJLiYjNLӇm tra hӋ thӕng tӯ phҫn cӭng vӟi phҫn mӅm é Wѭӣng thӵc hiӋn:
+ TҥRWKѭPөc chӭa tojn bӝ code RTL cӫa thiӃt kӃ
+ Tҥo 1 module wrapper bҵQJYHULORJWURQJÿy gӑi top file cӫa thiӃt kӃ vj 1 bӝ so sinh
+ GiQWUѭӟc cic gii trӏ ng} vjo vj ng} UDPRQJÿӧLQKѭOj mӝt hҵng sӕ dӵa vjo test case
+ Tҥo 1 timer cy thӡi gian trjn khoҧQJJLk\VDXÿy ktch hoҥt ttn hiӋu enable cho qui trunh mm hya / giҧi mm
+ Bӝ so sinh thӵc hiӋn so sinh kӃt quҧ ng} ra cӫa thiӃt kӃ vj ng} UDPRQJÿӧi
Hình 4.13 K͇t qu̫ mô ph͗ng mã hóa xác thc
Hình 4.12 K͇t qu̫ mô ph͗ng gi̫i mã xác thc và so sánh giá tr͓ Tag
78 + Gin kӃt quҧ cӫa bӝ so sinh vjo LED hiӇn thӏ, nӃXÿ~ng LED sing, nӃu sai LED tҳt
Qui trunh thӵc hiӋn trên Vivado
+ Add source : giQÿӏa chӍ cӫDWKѭPөc chӭ RTL
+ Add constraint: tҥo 1 file xdc cho thiӃt kӃ, bao gӗm xiFÿӏnh CLK, reset vj gin cic port RBG LED
+ Synthesis vj kiӇm tra kӃt quҧ
+ Implementation vj kiӇm tra kӃt quҧ
+ Nҥp file Bitstream lên Kit qua cәng JTAG vj xem kӃt quҧ hiӇn thӏ cӫa RBG LED
7URQJ ÿy Eѭӟc synthesis thӵc hiӋn viӋc tәng hӧS 57/ Gѭӟi dҥng gate level QHWOLVW%ѭӟc Implementation thӵc hiӋn viӋc place and route cho thiӃt kӃĈӗng thӡi, ny cNJng thӵc hiӋn viӋc tӕLѭXFKRWKLӃt kӃ vӅ mһt hiӋXQăQJQKѭWLPLQJGLӋn ttch vj công suҩWô
File constraint cho thiӃt kӃ ÿѭӧc tҥRQKѭVDX set_property PACKAGE_PIN AB20 [get_ports rstn] set_property IOSTANDARD LVCMOS33 [get_ports rstn] set_property PULLUP true [get_ports rstn] set_property -dict { PACKAGE_PIN "W19" IOSTANDARD LVCMOS33 SLEW FAST} [get_ports { clk }] ; create_clock -name sys_clk -period 10 [get_ports clk] set_false_path -from [get_ports rstn]
)LOHFRQVWUDLQWTX\ÿӏnh vӅ chu kǤ clk thӵc hiӋn, vj thӵc hiӋn gin chân cho thiӃt kӃ WѭѫQJӭng vӟi chân vұt lê cӫa FPGA7KHRÿyWӕFÿӝ cӫDÿӅ WjLÿѭӧc thӵc hiӋn theo [XQJFORFN0+]WѭѫQJÿѭѫQJQVFKRFKXNǤĈӅ tài thӵc hiӋn ӣ tҫn sӕ này vì tài nguyên cӫa Kit FPGA chӍ cung cҩp 1 bӝ tҥo xung clock tích hӧp vӟi tҫn sӕ 100 MHz Vӟi tҫn sӕ Qj\WK{QJOѭӧng ngõ ra cӫDÿӅ WjLÿҥWÿѭӧc là 400 Mbps
Sau khi thӵc hiӋn, tiӃn hjnh kiӇm tra Messages sau khi synthesis vj inplementation design KӃt quҧ cho thҩy không cy Error xuҩt hiӋQÿѭӧc thӇ hiӋQQKѭ huQKErQGѭӟL1KѭYұy, cy thӇ kӃt luұn qui trunh thӵc hiӋn synthesis vj implementation design trên phҫn mӅP9LYDGRÿm hojn thjnh, cy thӇ tiӃp tөc kiӇPWUDUHSRUWÿӇ ÿinh gii vj tiӃn hjnh nҥp bitstream trên Kit
Hình 4.14 K͇t qu̫ Message trên Vivado
Hình 4.15 Utilization sau khi synthesis B̫ng 4.3 K͇t qu̫ chi ti͇t Utilization sau synthesis
Hình 4.16 Utilization sau khi Implementation B̫ng 4.4 K͇t qu̫ chi ti͇t Utilization sau implementation
Qua biӇXÿӗ, vj bҧng thӕng kê ultilization, ta thҩy thiӃt kӃ ÿѭӧc thӵc hiӋn khi tӕt trên dzng FPGA njy vӅ mһt tji nguyên KӃt quҧ cho thҩy, tӍ lӋ phҫQWUăPVӱ dөng tji nguyên cӫa thiӃt kӃ lj ph hӧp, vӟi tӍ lӋ không qui lӟn vӅ diӋn ttFKVDXNKLÿѭѫFWӕLѭX vӟi khoҧng 13% LUT vj 15% FF Vӟi tӍ lӋ nj\)3*$ÿѭӧc chӑn, dӉ djng cy thӇ ÿѭӧc thӵc hiӋn kӇ cҧ khi kӃt nӕi vӟi module PCIe vj mӣ rӝng cNJQJQKѭQkQJFҩp sau nj\ÿӇ WăQJWK{QJOѭӧng cho thiӃt kӃĈӗng thӡi, viӋc tӍ lӋ WăQJWji nguyên sӱ dөQJVDXEѭӟc synthesis vj LPSOHPHQWDWLRQWKD\ÿәi lj không nhiӅXÿLӅu njy chӭng minh rҵng, phҫn mӅm Vivado không phҧi thӵc hiӋn viӋc tӕLѭXTXi nhiӅu VӅ FѫEҧn, cic kӃt nӕi logic trong viӋc thiӃt kӃ, vj thӇ hiӋn RTL bҵng verilog lj ph hӧS ĈӇ ÿҥt ÿѭӧF ÿLӅu njy, coding style lj quan trӑng, cҫn phҧi giҧm tҧi viӋc cic logic loop không cҫn thiӃt, vj ÿӗng thӡLNK{QJÿӇ data path qui dji, fanout qui lӟQ+ѫQQӳa, viӋc sӱ dөng reset bҩWÿӗng bӝ cNJng lj mӝWѭXWKӃ, vu ttn hiӋXUHVHWÿѭӧFEXLOGÿӝc lұp vӟLGDWDSDWKÿLWKҷQJÿӃn tӯng chân clear cӫDIOLSIORSÿLӅu njy gi~p thiӃt kӃ dӉ djQJÿҥWÿѭӧFÿip ӭng nhanh KѫQ
Hình 4.17 K͇t qu̫ báo cáo công sṷt ĈiQKJLiYӅ mһt công suҩt, thiӃt kӃ tiêu tӕn mӭFQăQJOѭӧng không quá lӟn vӟi khoҧQJGѭӟi 400 mW ThiӃt kӃ NK{QJÿһt yêu cҫu quan trӑng cho công suҩt tiêu thө vì mөFÿtFKFӫDÿӅ tài áp dөng cho router, sӱ dөng thông qua nguӗQÿLӋQOѭӟi Tuy vұy, vӟi mӭc công suҩWQKѭWUrQOjKRjQWRjQFKҩp nhұQÿѭӧc Công suât tiêu thө vӯa phҧi JL~SFNJQJJL~SFKRQKLӋWÿӝ cӫa FPGA hoҥWÿӝng không quá cao khoҧQJÿӝ, nҵm trong khoҧng 0 -ÿӝ mà nhà sҧn xuҩWÿһWUDÿӇ FPGA hoҥWÿӝng әQÿӏnh và chính xác Nhìn chung, hiӋXQăQJYӅ công suҩt tiêu thө cӫa thiӃt kӃ ÿѭӧFÿiQJJLiӣ mӭc trung bình (medium level)
Hình 4.18 Báo cáo t͝ng hͫp timing
Phân tích timing là mӝt SKѭѫQJ pháp kiӇm tra ÿӝ trӇ (delay) cӫa mӝt thiӃt kӃ bҵng ӭng vӟi ÿLӅu kiӋn hoҥt ÿӝng khác nhau trong thӵc tӃ cӫa mҥch, thông WKѭӡng là ÿLӅu kiӋn tӋ nhҩt 3KѭѫQJ pháp này xem xét ÿӝ trӇ cӫa tӯng thành phҫn logic trong mҥch và thông qua các SKѭѫQJ pháp tính toán ÿӇ xác ÿӏnh ÿѭӧc mҥch có ÿҧm bҧo ÿѭӧc vӅ mһt timing hay không 3KѭѫQJ pháp này không kiӇm tra ÿѭӧc tính ÿ~QJ ÿҳn vӅ mһt logic cӫa mҥch.
82 ѬX ÿLӇm cӫa STA là có thӇ thӵc hiӋn nhanh và triӋt ÿӇ vì không cҫn chҥy các vector ÿӇ thӵc hiӋn viӋc mô phӓng (DTA) Nó có thӇ kiӇm tra tҩt cҧ các ÿѭӡng có liên quan trong thiӃt kӃ và xác ÿӏnh ÿѭӧng các ÿѭӡng nào không thӓa yêu cҫu vӅ timing.
Setup time (Flip-flop): Là thӡi gian mà dӳ liӋu cҫn ÿѭӧc giӳ әn ÿӏnh và không ÿѭӧc thay ÿәi WUѭӟc cҥnh lên cӫa clock.
Hold time (Flip-flop): Là thӡi gian mà dӳ liӋu cҫn ÿѭӧc giӳ әn ÿӏnh và không ÿѭӧc thay ÿәi sau cҥnh lên cӫa clock. Ĉӕi vӟi bҩt kǤ thiӃt kӃ nào viӋc MET timing là yêu cҫu bҳt buӝc vô cùng quan trӑng, nó quyӃWÿӏnh viӋc thiӃt kӃ có thӵc hiӋQÿѭӧFÿ~QJIXQFWLRQÿһt ra trong thӵc tӃ hay không Theo kӃt quҧ WKXÿѭӧFVDXNKLWtQKWRiQ67$QKѭKuQKWUrQWKLӃt kӃ ÿmWKӓa ÿѭӧFÿLӅu kiӋn ràng buӝc vӅ timing
6DXÿk\OjWUѭӡng hӧSWLPLQJWѭѫQJӭng cho setup và hold cӫa thiӃt kӃ
Hình 4.19 Báo cáo setup timing
Hình 4.20 Báo cáo hold timing
Hình 4.21 Layout cͯa thi͇t k͇ sau khi implementation
&+ѬѪ1* KӂT LUҰ19ơ+ѬӞNG PHÁT TRIӆN
KӃt luұn
ĈӅ WjLÿmWKLӃt kӃ và thӵc hiӋn thành công giҧi pháp IPsec dӵa trên nӅn công nghӋ FPGA, cө thӇ QKѭVDX
+ Xây dӵng thành công RTL Verilog code miêu tҧ phҫn cӭng cӫa thiӃt kӃ vӟi giҧi thuұt mã hóa xác thӵc , giҧi mã xác thuұt GCM-AES 128bits vӟLFiFWUѭӡng hӧp phә biӃn thӵc tӃ: Khóa 128,192,256 bits; AAD 64, 96 bits
+ ThiӃt kӃ ÿmtәng hӧp thành công và thӵc hiӋQÿ~QJFKӭFQăQJWUrQ,&GHVLJQ flow vӟi tool VCS
+ ThiӃt kӃ ÿmQҥp và chҥy thӱ thành công trên kit FPGA Aller Artix 7
+ Test case, testbench ÿѭӧc xây dӵng 1 cách chuyên nghiӋp bҵng script sӱ dөng ngôn ngӳ lұp trình Tcl
+ Cỏc thụng sӕ vӅ hiӋXQăQJYӅ powerXWLO]DWLRQWLPLQJô là chҩp nhұQÿѭӧc WURQJÿӏQKKѭӟng phát triӇQÿӅ tài là xây dӵng 1 router hoàn chӍnh.
Hѭӟng phát triӇn
Dӵa trên các kӃt quҧ thành công cӫDÿӅ WjLKѭӟng phát triӇQÿһt ra khá rõ ràng cho ÿӅ tài:
'RÿӅ tài sӱ dөQJFiFVFULSW7FOÿӇ hӛ trӧ thiӃt kӃ, nên dӉ dàng mӣ rӝng FNJQJ QKѭNӃt hӧp vӟLFiFQKyPNKiFÿӇ thӵc hiӋn rӝQJUmLKѫQӭng dөng cӫa IPsec Theo ÿӏQKKѭӟng chính cӫDÿӅ tài là kӃt hӧp vӟi nhóm nghiên cӭX$50ÿӇ thӵc hiӋn mô hình /RRNDVLGHÿӇ xây dӵng mӝt router IPsec hoàn chӍnh ĈӅ tài có thӇ ÿѭӧc tӕLѭXKyDKѫQQӳa vӅ mһt tҫn sӕ và các hiӋXQăQJNKiFÿӇ WăQJWK{QJOѭӧng cho thiӃt kӃ
+ Bӝ GCM có thӇ ÿѭӧc kӃt hӧp thêm các giҧi thuұWNKiFÿӇ WăQJWtQKOLQKKRҥt khi xây dӵng router IPsec
7URQJWѭѫQJODL[DKѫQFyWKӇ tiӃQÿӃn viӋc thӵc hiӋn thành công mô hình flow-through cho IPsec router hoàn chӍnh
[1] C M Kozierok, "IPSec Overview, History and Standards," The TCP/IP Guide, 20 9 2005 [Online] Available: http://www.tcpipguide.com/free/t_IPSecOverviewHistoryandStandards.htm
[2] T T A Tuan, "Giao thӭF,36(&WURQJOƭQKYӵc an toàn thông tin," Viblo, 27 11 2017 [Online] Available: https://viblo.asia/p/giao-thuc-ipsec-trong-linh-vuc-an-toan-thong- tin-oOVlYdPQZ8W
[3] L S Cardoso, "Internet security and critical infrastructures," 2004 [Online] Available: http://www.eurescom.de/message/messagesep2004/Internetsecurityandcritical infrastructure.asp
[4] V M I a R D Williams, "Taxonomies of attacks and vulnerabilities in computer systems," IEEE Communications Surveys & Tutorials, vol 10, no 1, pp 6-19, 2008
[5] R L Richardson, Computer Security, CSI survey 2007 : the 12th annual computer crime and security survey, San Francisco, Calif: Computer Security Institute, 2007
[6] T Wilson, "Targeted attacks on the rise," DarkReading.com, 18 4 2007 [Online] Available: http://www.darkreading.com/security/perimeter/showArticle.jhtml?articleID 8804471
[7] &(57 ³2YHUYLHZ RI DWWDFN WUHQGV´ &(57" &RRUGLQDWLRQ &HQWHU &DUQHJLH 0HOORQ University, Tech Rep., 2002
[8] / $ *RUGRQ DQG , &RPSXWHU 6HFXULW\ ³4 csi/fbi computer crime and security VXUYH\´6DQ)UDQFLVFR&DOLI>2QOLQH@
Available: http://i.cmpnet.com/gocsi/db%5Farea/pdfs/fbi/FBI2004.pdf
[9] 7 *UDQGLVRQ DQG 0 6ORPDQ ³$ VXUYH\ RI WUXVW LQ LQWHUQHW DSSOLFDWLRQV´ ,((( Communications Surveys & Tutorials, vol 3, no 4, pp 2±16, 2000
[10] $ &KDNUDEDUWL DQG * 0DQLPDUDQ ³,QWHUQHW LQIUDVWUXFWXUH VHFXULW\ D WD[RQRP\´ Network, IEEE, vol 16, no 6, pp 13±21, 2002
[11] M Al-.XZDLWL1.\ULDNRSRXORVDQG6+XVVHLQ³$FRPSDUDWLYHDQDO\VLVRIQHWZRUN dependability, fault-WROHUDQFH UHOLDELOLW\ VHFXULW\ DQG VXUYLYDELOLW\´ ,((( Communications Surveys & Tutorials, vol 11, no 2, pp 106±124, 2009
[12] C Kaufman, R Perlman, and M Speciner, Network security : private communication in a public world, 2nd ed., ser Prentice Hall series in computer networking and distributed systems Upper Saddle River, N.J.: Prentice Hall PTR, 2002
88 [13] < &KHQ DQG + &KHQ ³1HXURQHW $Q DGDSWLYH LQIUDVWUXFWXUH IRU QHWZRUN VHFXULW\´ Journal of Information, Intelligence and Knowledge, vol 1, no 2, pp 143±168, 2009
[14] 6 HQW DQG 6HR ³5IF VHFXULW\ DUFKLWHFWXUH IRU WKH LQWHUQHW SURWRFRO´ [Online] Available: http://www.rfc-editor.org/rfc/rfc4301.txt
[15] $&DOODGR&.*6]DE%3*HUR-.HOQHU6)HUQDQGHVDQG'6DGRN³$VXUYH\ on interneWWUDIILFLGHQWLILFDWLRQ´,(((&RPPXQLFDWLRQV6XUYH\V 7XWRULDOVYROQR
[16] 3/L06DORXUDQG;6X³$VXUYH\RILQWHUQHWZRUQGHWHFWLRQDQGFRQWDLQPHQW´,((( Communications Surveys & Tutorials, vol 10, no 1, pp 20±35, 2008
[17] P.-C Lin, Z.-X Li, Y.-D Lin, Y.-&/DLDQG)&/LQ³3URILOLQJDQGDFFHOHUDWLQJVWULQJ PDWFKLQJ DOJRULWKPV LQ WKUHH QHWZRUN FRQWHQW VHFXULW\ DSSOLFDWLRQV´ ,((( Communications Surveys & Tutorials, vol 8, no 2, pp 24±37, 2006
[18] Y.-D Lin, H.-Y Wei, and S.-7