1. Utangulizi & Muhtasari

Katika nyanja za sarafu za kidijitali, blockchain, na usimbuaji wa data wingu, mbinu za jadi za programu za usimbuaji na ufumbuzi wa siri zinakabiliwa na changamoto kubwa ikiwa ni pamoja na kasi ya hesabu ndogo, matumizi makubwa ya rasilimali za kompyuta kuu, na mahitaji makubwa ya nguvu. Ingawa utekelezaji wa Field Programmable Gate Array (FPGA) kwa kutumia Verilog/VHDL hutoa kichocheo cha vifaa, zinakabiliwa na mizunguko marefu ya maendeleo na ugumu katika matengenezo na usasishaji. Karatasi hii inashughulikia mapungufu haya kwa kupendekeza usanifu mpya wa kichocheo cha FPGA kwa algorithm ya 3DES kwa kutumia mfumo wa OpenCL.

Usanifu uliopendekezwa unatekeleza muundo sambamba wa bomba la mabomba wenye marudio 48. Mikakati ya uboreshaji inajumuisha marekebisho ya uhifadhi wa data na uboreshaji wa upana wa biti za data katika moduli ya usafirishaji wa data ili kuboresha matumizi ya upana wa ukanda wa kiini, pamoja na uboreshaji wa mtiririko wa maagizo katika moduli ya usimbuaji wa algorithm ili kuunda usanifu sambamba wa bomba la mabomba wenye ufanisi. Faida za ziada za utendaji hupatikana kupitia vekta ya kiini na uigaji wa kitengo cha hesabu.

111.801 Gb/s

Kiwango cha Juu cha Uzalishaji kwenye Intel Stratix 10 GX2800

372x

Faida ya utendaji ikilinganishwa na CPU ya Intel Core i7-9700

644x

Faida ya ufanisi wa nishati ikilinganishwa na CPU

20% & 9x

Faida ya Utendaji & Ufanisi ikilinganishwa na GPU ya NVIDIA GTX 1080 Ti

2. Kanuni za Algorithm ya 3DES

Algorithm ya Kawaida ya Usimbuaji wa Data Mara Tatu (3DES) imejengwa juu ya algorithm ya DES, ikiboresha usalama kupitia shughuli tatu mfululizo za DES. Wakati DES inatumia ufunguo wa biti 56 na marudio 16, 3DES inatumia ufunguo wa biti 168 na marudio 48.

2.1 Kiini cha Algorithm ya DES

Algorithm ya DES hufanya kazi kwenye vizuizi vya biti 64 vya maandishi wazi. Kazi yake kuu, mtandao wa Feistel, inaweza kuwakilishwa kama: $L_i = R_{i-1}$ $R_i = L_{i-1} \oplus F(R_{i-1}, K_i)$ Ambapo $L_i$ na $R_i$ ni nusu za kushoto na kulia za kizuizi cha data katika mzunguko $i$, $K_i$ ndio ufunguo wa mzunguko, na $F$ ndio kazi ya mzunguko inayohusisha upanuzi, uingizwaji wa kisanduku-S, na mpangilio upya.

2.2 Muundo wa Algorithm ya 3DES

3DES hutumia DES mara tatu kwa ufunguo mbili au tatu huru (hali ya EDE): $Nakala iliyosimbwa = E_{K3}(D_{K2}(E_{K1}(Maandishi wazi)))$. Muundo huu huongeza kwa kiasi kikubwa ukinzani dhidi ya mashambulizi ya nguvu kwa kulinganisha na DES moja.

3. Usanifu wa Kichocheo cha FPGA Kulingana na OpenCL

Kichocheo kinatumia mfano wa hesabu mbalimbali wa OpenCL, kuruhusu programu za kiini kukusanywa na kutekelezwa kwenye vifaa vya FPGA. Njia hii inaunganisha pengo kati ya kubadilika kwa programu na utendaji wa vifaa.

3.1 Usanifu wa Mfumo

Usanifu una mwenyeji (CPU) anayesimamia mtiririko wa udhibiti na uhamisho wa data, na kifaa (FPGA) kinachotekeleza kiini chenye mzigo mkubwa wa hesabu cha 3DES. Kiini cha FPGA kimeundwa na muundo wa bomba la mabomba lenye kina kirefu ili kuchakata vizuizi vingi vya data wakati mmoja.

3.2 Mikakati Muhimu ya Uboreshaji

  • Marekebisho ya Uhifadhi wa Data: Kuboresha mifumo ya ufikiaji wa kumbukumbu ili kupunguza ucheleweshaji na kuboresha matumizi ya upana wa ukanda.
  • Uboreshaji wa Upana wa Biti za Data: Kuchakata maneno ya data mapana zaidi kwa kila mzunguko ili kuongeza uzalishaji.
  • Uboreshaji wa Mtiririko wa Maagizo: Kupanga upya na kurahisisha shughuli ili kuongeza ufanisi wa bomba la mabomba na kupunguza visimamizi.
  • Vekta ya Kiini: Kutumia shughuli za Data Nyingi za Agizo Moja (SIMD) ndani ya muundo wa FPGA.
  • Uigaji wa Kitengo cha Hesabu: Kuanzisha vitengo vingi vya hesabu sambamba ili kuchakata mitiririko huru ya data.

3.3 Muundo Sambamba wa Bomba la Mabomba

Kiini cha usanifu ni bomba la mabomba la hatua 48 linalolingana na marudio 48 ya 3DES. Kila hatua imehesabiwa kwa uangalifu ili kuhakikisha masafa ya juu ya saa na matumizi kamili ya bomba la mabomba, ikificha ucheleweshaji wa shughuli za mtu binafsi.

4. Maelezo ya Utekelezaji wa Kiufundi

4.1 Moduli ya Usafirishaji wa Data

Moduli hii inashughulikia usogeaji wa data kati ya kumbukumbu ya mwenyeji na kumbukumbu ya jumla ya FPGA. Mikakati kama vile uhamishaji wa mlipuko na ufikiaji wa kumbukumbu uliowekwa sawa hutumiwa kufikia upana wa ukanda wa kinadharia karibu na kilele. Matumizi ya interfaces pana za AXI (k.m., biti 512) ni sababu muhimu katika kuboresha upana wa ukanda unaofaa.

4.2 Moduli ya Usimbuaji wa Algorithm

Moduli hii inatekeleza mizunguko ya Feistel ya 3DES. Kisanduku-S, ambacho kwa kawaida kinatekelezwa kama meza za kutafutia (LUTs), kimeboreshwa kwa ajili ya vipengele vya mantiki vya FPGA. Shughuli za mpangilio upya na upanuzi zimeunganishwa kwenye njia ya data.

4.3 Miundo ya Kihisabati

Uzalishaji wa jumla $T$ wa kichocheo unaweza kuigwa kama: $T = f_{clk} \times W \times N_{CU} \times \eta$ Ambapo $f_{clk}$ ndio masafa ya uendeshaji, $W$ ndio upana wa biti zilizochakatwa kwa kila mzunguko, $N_{CU}$ ndio idadi ya vitengo vya hesabu, na $\eta$ ndio kipengele cha ufanisi cha bomba la mabomba (karibu na 1 kwa usanifu ulio na usawa mzuri).

5. Matokeo ya Majaribio & Uchambuzi wa Utendaji

5.1 Vipimo vya Utendaji

Kichocheo kilitekelezwa kwenye FPGA ya Intel Stratix 10 GX2800. Matokeo makuu ni:

  • Uzalishaji: 111.801 Gb/s
  • Ucheleweshaji: [Thamani ya ucheleweshaji itatokana na kina cha bomba la mabomba na masafa ya saa].
  • Matumizi ya Nguvu: [Matumizi ya nguvu ya FPGA kwa kawaida ni chini sana kuliko GPU zenye utendaji sawa].

5.2 Uchambuzi wa Kulinganisha

ikilinganishwa na CPU (Intel Core i7-9700): Kichocheo cha FPGA kinaonyesha uboreshaji wa utendaji wa 372x na uboreshaji wa kushangaza wa 644x katika ufanisi wa nishati (Utendaji/Watt). Hii inaangazia ubora wa FPGA kwa viini vilivyobainishwa, vyenye mzigo mkubwa wa hesabu.

ikilinganishwa na GPU (NVIDIA GeForce GTX 1080 Ti): FPGA inafikia uzalishaji wa juu zaidi kwa 20% na ufanisi bora wa nishati kwa 9x. Wakati GPU zinafanikiwa katika usambamba mkubwa kwenye data ya kawaida, FPGA zinaweza kufikia ufanisi wa juu zaidi kwenye shughuli za kiwango cha biti na mabomba ya mabomba maalum, kama inavyoonekana katika algorithm za usimbuaji.

5.3 Matumizi ya Rasilimali

Usanifu unatumia kwa ufanisi rasilimali za FPGA. Vipimo muhimu vinajumuisha:

  • Matumizi ya ALM (Moduli ya Mantiki Inayobadilika): [Asilimia]
  • Matumizi ya Kizuizi cha DSP: [Labda kidogo kwa 3DES]
  • Matumizi ya Kizuizi cha Kumbukumbu (M20K): [Kwa kisanduku-S na vifungashio]
Matumizi ya rasilimali yanabaki vizuri ndani ya uwezo wa kifaa cha Stratix 10, kuruhusu uwezekano wa kuongeza kiwango au kuunganishwa na kazi zingine.

6. Mfumo wa Uchambuzi & Kisa cha Utafiti

Mfumo wa Kutathmini Vichocheo vya Usimbuaji vya Vifaa:

  1. Ufanisi wa Algorithm: Je, algorithm ina usambamba wa asili (k.m., hali za kizuizi cha usimbuaji kama ECB, CTR)? 3DES katika hali ya ECB inaweza kusambazwa kwa kiwango kikubwa.
  2. Uchaguzi wa Jukwaa: Linganisha ASIC (utendaji/nguvu ya juu kabisa, hakuna kubadilika), FPGA (utendaji/nguvu ya juu, kubadilika kadhaa), GPU (uzalishaji mkubwa kwenye mkusanyiko mkubwa, nguvu kubwa), na CPU (kubadilika, utendaji wa chini).
  3. Vipimo vya Utekelezaji: Tathmini Uzalishaji (Gb/s), Ucheleweshaji (mizunguko), Nguvu (W), Nishati kwa Biti (J/bit), na Matumizi ya Rasilimali (Mantiki, Kumbukumbu, DSP).
  4. Juhudi za Maendeleo: Fikiria muda wa kufikia suluhisho kwa kutumia HDL (mrefu) dhidi ya HLS/OpenCL (fupi).

Kisa cha Utafiti - Lango la Usimbuaji wa Data Wingu: Fikiria huduma salama ya uhifadhi wingu ambayo husimbua data yote iliyohifadhiwa kwa kutumia 3DES. Suluhisho la programu pekee kwenye seva ya Xeon linaweza kuwa kizuizi. Kwa kuhamisha usimbuaji wa 3DES kwenye kadi ya kichocheo cha FPGA (kama Intel PAC yenye Stratix 10), huduma inaweza kufikia uzalishaji wa jumla wa juu zaidi, ucheleweshaji wa chini kwa maombi ya mtu binafsi kutokana na mabomba ya vifaa, na kupunguza matumizi ya nguvu ya seva na mzigo wa CPU, na kutoa rasilimali kwa kazi zingine.

7. Matumizi ya Baadaye & Mwelekeo wa Maendeleo

  • Usimbuaji wa Baada ya Quantum (PQC): Njia ya OpenCL-hadi-FPGA inahusiana sana na kuchochea algorithm mpya, zenye mzigo mkubwa wa hesabu za PQC (k.m., zenye msingi wa kimiani, zenye msingi wa msimbo) ambazo kwa sasa zinawekwa kiwango na NIST.
  • Usimbuaji wa Mtandao wa Ndani ya Mstari: Ujumuishaji wa vichocheo kama hivyo ndani ya SmartNICs au swichi za mtandao kwa usimbuaji wa kiwango cha mstari kwa 100Gb/s na zaidi.
  • Vichocheo vya Algorithm Nyingi Vinavyobadilika: Kukuza viini vya FPGA vinavyoweza kubadilika tena kwa nguvu ambavyo vinaweza kubadilisha kati ya AES, 3DES, ChaCha20, na algorithm za PQC kulingana na mahitaji ya mzigo wa kazi.
  • Usalama Ulioimarishwa: Utekelezaji wa toleo la algorithm linalozuia mashambulizi ya njia ya upande (k.m., kwa kuficha au kuficha) moja kwa moja kwenye vifaa.
  • Ukomavu wa Mfumo wa Zana: Uboreshaji endelevu wa vikusanyaji vya OpenCL kwa FPGA (kama oneAPI ya Intel) utapunguza zaidi pengo la utendaji kati ya HLS na HDL iliyokodishwa kwa mkono, na kufanya njia hii ipatikane kwa wasanidi programu wengi zaidi.

8. Marejeo

  1. K. I. Wong, M. S. B. A. Halim, n.k. "A Survey on FPGA-Based Cryptosystems." IEEE Access, 2019.
  2. Taasisi ya Kitaifa ya Viwango na Teknolojia (NIST). "Mapendekezo ya Algorithm ya Usimbuaji wa Data Mara Tatu (TDEA) ya Kizuizi cha Usimbuaji." SP 800-67 Rev. 2, 2017.
  3. Kikundi cha Khronos. "Uainishaji wa OpenCL." Toleo la 3.0, 2020. [Mtandaoni]. Inapatikana: https://www.khronos.org/registry/OpenCL/
  4. J. Zhu, V. K. Prasanna. "Utekelezaji wa Utendaji wa Juu na Ufanisi wa Nishati wa MD5 kwenye FPGA kwa kutumia OpenCL." FPL, 2017.
  5. Kampuni ya Intel. "Intel FPGA SDK kwa OpenCL." [Mtandaoni]. Inapatikana: Intel FPGA SDK for OpenCL
  6. Xilinx. "Jukwaa la Umoja la Programu la Vitis." [Mtandaoni]. Inapatikana: Xilinx Vitis Platform
  7. W. Jiang, G. R. G. n.k. "Utafiti wa Kulinganisha wa Ujumuishaji wa Kiwango cha Juu na OpenCL kwa Vichocheo vya FPGA." TRETS, 2021.
  8. J. Zhu, V. K. Prasanna. "Utekelezaji wa Utendaji wa Juu na Ufanisi wa Nishati wa AES kwenye FPGA kwa kutumia OpenCL." FCCM, 2018.

9. Uchambuzi wa Asili & Uhakiki wa Mtaalamu

Uelewa wa Kiini

Karatasi hii sio tu juu ya kufanya 3DES iwe haraka; ni mpango wa kimkakati wa kurudisha ufanisi katika enzi ya baada ya Sheria ya Moore. Wakati tasnia imekuwa ikilengwa na FLOPs ghafi za GPU kwa ajili ya kuchochea, waandishi wanaonyesha ukumbusho mkali: kwa viini maalum, vilivyobainishwa vizuri kama misingi ya usimbuaji, uwezekano wa programu wa kiwango cha biti, wenye uamuzi wa FPGA unaweza kushinda usanifu wa jumla, wenye njaa ya nguvu wa CPU na GPU. Faida ya ufanisi wa nishati ya 644x ikilinganishwa na CPU ya kisasa sio uboreshaji wa kidogo—ni mabadiliko ya dhana kwa waendeshaji wa kituo cha data ambapo nguvu ndio kituo cha gharama cha mwisho. Kazi hii inalingana na mwelekeo mpana unaoonekana kwenye wakubwa wa wingu kama Microsoft na Amazon, ambao hutumia FPGA (na sasa ASIC) kwa kiwango kikubwa kwa kazi kama vile uhalisi wa mtandao na ubadilishaji wa video, wakipendelea utendaji-kwa-watt kuliko uzalishaji wa kinadharia wa kilele.

Mtiririko wa Kimantiki

Mantiki ya waandishi ni ya kulazimisha na ya kimfumo. Wanatambua kwa usahihi shida mbili: programu ni polepole sana na isiyo na ufanisi, wakati maendeleo ya FPGA ya jadi yenye msingi wa HDL ni polepole sana na ngumu. Suluhisho lao, kutumia OpenCL kama zana ya Ujumuishaji wa Kiwango cha Juu (HLS), linashambulia pande zote mbili kwa ustadi. Mikakati ya uboreshaji inafuata safu wazi: kwanza, hakikisha data inaweza kutiririka kwa vitengo vya hesabu kwa ufanisi (uhifadhi wa data, upana wa biti). Pili, hakikisha vitengo vya hesabu vinaweza kutumika kwa kiwango cha juu (uboreshaji wa maagizo, bomba la mabomba). Mwishowe, ongeza kiwango (vekta, uigaji). Hii inafanana na mchakato wa uboreshaji wa viini vya GPU lakini inatumika kwa muundo ambapo "viini" vimejengwa maalum kwa kazi halisi. Ulinganisho na GTX 1080 Ti unaelezea hasa—inaonyesha kuwa hata dhidi ya kichakataji chenye usambamba mkubwa, njia ya data maalum kwenye FPGA inaweza kushinda kwa utendaji na, kwa uamuzi, ufanisi.

Nguvu & Kasoro

Nguvu: Matokeo ya utendaji na ufanisi ni bora na yamepimwa kwa ukali. Matumizi ya OpenCL hutoa ufikiaji muhimu kwa msanidi programu na ulinzi wa baadaye, kama ilivyoelezwa katika uainishaji wa OpenCL wa Khronos ambao huwezesha uhamishaji kati ya wauzaji. Mwelekeo kwenye 3DES, kiwango cha zamani lakini bado kinachotumiwa kwa kiwango kikubwa (k.m., katika mifumo ya kifedha), inashughulikia hitaji la kweli la kisasa badala ya zoezi la kitaaluma pekee.

Kasoro & Mapungufu Muhimu: Kasoro ya karatasi hii ni upeo wake mwembamba. 3DES inatolewa nafasi kwa AES-256 kwa mifumo mipya, kulingana na miongozo ya NIST. Kazi ingekuwa na athari kubwa zaidi ikiwa ingeonyesha ubadilika wa njia ya OpenCL kwa kutekeleza pia AES au mgombeaji wa baada ya quantum, na kuonyesha thamani ya mfumo zaidi ya algorithm moja. Zaidi ya hayo, uchambuzi hauna majadiliano juu ya udhaifu wa njia ya upande. Utekelezaji wa vifaa, hasa ule unaolenga uzalishaji wa juu, unaweza kuwa na hatari ya mashambulizi ya uchambuzi wa wakati au nguvu. Kupuuza hili la usalama ni makosa makubwa kwa karatasi ya usimbuaji. Kazi ya watafiti kama Mangard n.k. juu ya ukinzani wa njia ya upande wa vifaa ni muktadha muhimu unaokosekana hapa.

Uelewa Unaoweza Kutekelezwa

Kwa Meneja wa Bidhaa katika kampuni za wingu au vifaa vya usalama: Utafiti huu ni uthibitisho wa dhana ya kutumia kadi za kichocheo zenye msingi wa FPGA kwa ajili ya kuhamisha mizigo ya usimbuaji (ukomeshaji wa TLS, usimbuaji wa uhifadhi). Akiba ya nishati pekee inathibitisha mradi wa majaribio. Kwa Wasanifu wa Usalama: Sukuma wauzaji wako. Taka vichocheo vya vifaa, iwe FPGA au ASIC, vijumuishe miundo inayozuia njia ya upande kama kipengele cha kawaida, sio kama kitu cha baadaye. Kwa Watafiti & Wasanidi Programu: Usikome kwenye 3DES. Tumia njia hii ya OpenCL kama msingi. Hatua inayofuata muhimu ni kujenga maktaba ya viini vya OpenCL vya wazi, vilivyoboreshwa, na vinavyozuia njia ya upande kwa safu ya algorithm (AES-GCM, ChaCha20-Poly1305, SHA-3, Kyber, Dilithium). Jamii inahitaji vizuizi vya ujenzi vinavyoweza kubebeka, vya ufanisi, na salama, sio tu maonyesho ya mara moja. Ukomavu wa mfumo wa zana ulioangaziwa na oneAPI ya Intel na Vitis ya Xilinx hatimaye unafanya hii iwezekanavyo. Mbio sio tu kwa kasi; ni kwa ajili ya kuchochea kwa usalama, ufanisi, na kubadilika.