Chagua Lugha

Kichocheo cha FPGA kwa Algorithm ya 3DES Kulingana na OpenCL: Usanifu na Uchambuzi wa Utendaji

Uchambuzi wa kichocheo cha FPGA chenye utendaji wa hali ya juu cha usimbuaji 3DES kwa kutumia OpenCL, chenye muundo sambamba wa bomba na mikakati ya uboreshaji kwa ufanisi bora wa uchapishaji na matumizi ya nishati.
computepowercurrency.com | PDF Size: 1.0 MB
Ukadiriaji: 4.5/5
Ukadiriaji Wako
Umekadiria waraka huu tayari
Kifuniko cha Waraka PDF - Kichocheo cha FPGA kwa Algorithm ya 3DES Kulingana na OpenCL: Usanifu na Uchambuzi wa Utendaji

1. Utangulizi na Muhtasari

Katika nyanja za sarafu dijitali, blockchain, na usimbuaji wa data wingu, mahitaji ya usindikaji wa kriptografia wa kasi ya juu na nguvu ya chini ni muhimu sana. Utekelezaji wa kawaida wa programu kwa algorithms kama 3DES unakabiliwa na vikwazo vikubwa vya utendaji, matumizi makubwa ya rasilimali za CPU, na matumizi ya juu ya nguvu. Ingawa Field-Programmable Gate Arrays (FPGAs) inatoa suluhisho la kichocheo cha vifaa, uundaji kwa kutumia Lugha za Maelezo ya Vifaa (HDLs) za kiwango cha chini kama Verilog/VHDL huchukua muda mrefu na ni ngumu.

Makala hii inawasilisha usanifu mpya wa kichocheo cha algorithm ya 3DES kwenye FPGA kwa kutumia mfumo wa Open Computing Language (OpenCL). Muundo uliopendekezwa unatumia usanisi wa kiwango cha juu (HLS) kujenga daraja la pengo la uzalishaji, ukitumia muundo sambamba wa bomba la marudio 48. Kupitia uboreshaji wa kimkakati—ikiwa ni pamoja na marekebisho ya uhifadhi wa data, uboreshaji wa upana wa biti, uboreshaji wa mkondo wa maagizo, vectorization ya kernel, na uigaji wa kitengo cha hesabu—usanifu huu unafikia mafanikio ya kushangaza ya utendaji na ufanisi wa nishati ikilinganishwa na majukwaa ya CPU na GPU.

111.8 Gb/s

Uchapishaji wa Kilele kwenye Intel Stratix 10

372x

Utendaji dhidi ya Intel Core i7-9700

9x

Ufanisi wa Nishati dhidi ya NVIDIA GTX 1080 Ti

2. Msingi wa Kiufundi

2.1 Algorithm ya 3DES

Triple Data Encryption Standard (3DES) ni kisimbuaji cha kuzuia cha ufunguo wa ulinganifu kinachotokana na algorithm ya zamani ya DES. Ili kuimarisha usalama dhidi ya mashambulio ya nguvu, 3DES hutumia kisimbuaji cha DES mara tatu kwa kila kizuia data. Kawaida hufafanua chaguzi tatu za ufunguo, na salama zaidi kwa kutumia funguo tatu huru (Chaguo la Ufunguo 1): $C = E_{K3}(D_{K2}(E_{K1}(P)))$, ambapo $E$ ni usimbuaji, $D$ ni usimbufutaji, $K1, K2, K3$ ni funguo, $P$ ni maandishi wazi, na $C$ ni maandishi yaliyosimbwa. Hii husababisha urefu wa ufunguo unaofaa wa biti 168 na raundi 48 za hesabu.

2.2 OpenCL kwa Uandishi wa Programu za FPGA

OpenCL ni kiwango huria, cha bure cha malipo kwa programu sambamba katika majukwaa mbalimbali (CPUs, GPUs, FPGAs, DSPs). Kwa FPGAs, zana kama Intel FPGA SDK for OpenCL hufanya kazi kama mkusanyaji wa Usanisi wa Kiwango cha Juu (HLS), ukibadilisha msimbo wa kernel ulioandikwa kwa lugha inayofanana na C kuwa saketi bora za vifaa. Ufupisho huu hupunguza kwa kiasi kikubwa wakati na ugumu wa uundaji ikilinganishwa na usanifu wa RTL, na kufanya kichocheo cha FPGA kifikiwe kwa watengenezaji wa programu na wataalamu wa nyanja.

3. Usanifu na Muundo wa Kichocheo

3.1 Muundo Sambamba wa Bomba

Kiini cha kichocheo ni muundo wa bomba wenye kina ambao hufungua raundi 48 za algorithm ya 3DES. Usanifu huu huruhusu vizuia vingi vya data kusindikwa wakati huo huo katika hatua tofauti za bomba la usimbuaji, na kuongeza kiwango cha juu cha matumizi ya vifaa na uchapishaji. Bomba hilo lina usawa makini ili kuepuka kukwama na kuhakikisha mtiririko endelevu wa data.

3.2 Uboreshaji wa Usafirishaji wa Data

Ili kushinda kikwazo cha upana wa kumbukumbu kinachojulikana katika miundo ya vichocheo, mikakati miwili muhimu hutumiwa:

  • Marekebisho ya Uhifadhi wa Data: Kuboresha mpangilio wa data katika kumbukumbu ya mwenyeji na kifaa ili kuwezesha uhamisho wa kasi wa mfululizo na kupunguza ucheleweshaji wa ufikiaji.
  • Uboreshaji wa Upana wa Biti ya Data: Kuongeza upana wa njia za data kati ya kumbukumbu na kernel ili kufanana na uwezo wa basi ya ndani ya FPGA, na hivyo kuboresha matumizi ya upana wa bandi unaofaa.

3.3 Mikakati ya Uboreshaji ya Kernel

Kernel ya OpenCL inaboreshwa kwa kutumia mbinu kadhaa:

  • Uboreshaji wa Mkondo wa Maagizo: Kupanga upya na kurahisisha shughuli ili kuunda ratiba bora ya bomba, na kupunguza utegemezi na mizunguko isiyo na shughuli.
  • Vectorization ya Kernel: Kutumia shughuli za Single Instruction, Multiple Data (SIMD) kusindika vipengele vingi vya data wakati huo huo ndani ya mfano mmoja wa kernel.
  • Uigaji wa Kitengo cha Hesabu: Kuanzisha nakala nyingi za kernel iliyoboreshwa (Vipengele vya Hesabu) kwenye muundo wa FPGA ili kusindika mistari huru ya data sambamba, na kuongeza utendaji kwa rasilimali zinazopatikana.

4. Matokeo ya Majaribio na Utendaji

Kichocheo kilitekelezwa na kupimwa kwenye Intel Stratix 10 GX2800 FPGA. Vipimo muhimu vya utendaji ni kama ifuatavyo:

  • Uchapishaji: Ilifikia uchapishaji wa kilele cha 111.801 Gb/s.
  • dhidi ya CPU (Intel Core i7-9700): Utendaji uliboreshwa kwa sababu ya 372, na ufanisi wa nishati mara 644 bora zaidi.
  • dhidi ya GPU (NVIDIA GeForce GTX 1080 Ti): Ilishinda katika vipimo vyote, ikitoa utendaji wa juu zaidi kwa 20% na ufanisi wa nishati bora zaidi mara 9.

Maelezo ya Chati (Yaliyodokezwa): Chati ya baa ingeonyesha vizuri uchambuzi huu wa kulinganisha. Mhimili wa x ungeorodhesha majukwaa matatu (Stratix 10 FPGA, Core i7 CPU, GTX 1080 Ti GPU). Mhimili wa y miwili ingeweza kutumika: wa kushoto kwa Uchapishaji (Gb/s), ukiwaonyesha baa moja ya juu sana kwa FPGA; wa kulia kwa Utendaji Ulio sanifishwa (CPU=1), ukiwaonyesha baa ya FPGA kwenye 372 na baa ya GPU kidogo juu ya 1. Chati tofauti ya baa iliyokusanywa ingeonyesha Ufanisi wa Nishati (Ops/J au kama hivyo), ikionyesha uongozi mkubwa wa FPGA wa 644x dhidi ya CPU na 9x dhidi ya GPU.

5. Uelewa wa Msingi na Mtazamo wa Mchambuzi

Uelewa wa Msingi: Makala hii sio tu juu ya kufanya 3DES iwe ya kasi kwenye FPGA; ni mfano wa kulazimisha wa kufanya kichocheo cha vifaa kiwe cha kila mtu. Waandishi wanaonyesha kwamba kwa kutumia kimkakati HLS inayotegemea OpenCL, unaweza kufikia utendaji ambao sio tu unamvunja CPUs za jumla bali pia unazidi GPUs za hali ya juu katika nyanja maalum, huku ukiepuka gharama kubwa ya uhandisi ya usanifu wa kawaida wa RTL.

Mkondo wa Kimantiki: Hoja hii ni ya kimfumo. Huanza kwa kutambua mambo muhimu ya uchungu katika programu (polepole) na uundaji wa kawaida wa FPGA (ngumu). Njia ya suluhisho ni wazi: tumia OpenCL/HLS kwa uzalishaji, kisha tumia mlolongo wa uboreshaji unaoeleweka vizuri lakini muhimu (kupanga bomba, vectorization, uigaji) ili kutoa ufanisi wa juu zaidi wa vifaa. Ulinganisho wa utendaji dhidi ya misingi ya kawaida ya CPU na GPU unathibitisha njia nzima.

Nguvu na Kasoro: Nguvu haina shaka: faida zilizoripotiwa za 372x/644x dhidi ya CPU ya kisasa ni za kushangaza na zinaonyesha uwezo halisi wa vifaa maalum vya nyanja. Matumizi ya OpenCL ni nguvu kubwa ya vitendo, inayolingana na mienendo ya tasnia kuelekea kompyuta inayoweza kufikiwa ya mchanganyiko, kama inavyoonekana katika mifumo kama TensorFlow kwa ML au OneAPI. Hata hivyo, kasoro muhimu ni ukosefu wa msingi wa kulinganisha na kiini cha 3DES cha Verilog/VHDL kilichoboreshwa kwa mikono kwenye FPGA ile ile ya Stratix 10. Ingawa kulinganisha kwa GPU/CPU ni bora kwa uwekaji wa soko, jamii ya HLS inahitaji kujua "pengo la ufanisi" kati ya HLS na usanifu wa RTL wa mtaalamu kwa tatizo hili maalum. Zaidi ya hayo, kama ilivyobainishwa na utafiti kutoka Chuo Kikuu cha Toronto kuhusu uzalishaji wa HLS, ufupisho wakati mwingine unaweza kuficha udhibiti wa kiwango cha chini, na kwa uwezekano kuacha utendaji fulani kwenye meza ikilinganishwa na utekelezaji bora wa RTL.

Uelewa Unaoweza Kutekelezwa: Kwa timu za bidhaa, ujumbe ni wazi: Kwa kazi nyingi za kriptografia za kazi maalum (zaidi ya 3DES tu), kichocheo cha FPGA kinachotegemea OpenCL kinapaswa kuwa mgombea mzito katika hatua ya tathmini ya usanifu, hasa pale ufanisi wa nguvu unapokuwa kikwazo muhimu (k.m., vituo vya data vya makali, vifaa vya mtandao). Njia hii inaweza kubebeka. Kile cha kweli cha kujifunza ni kitabu cha michezo ya uboreshaji—mpangilio wa data, upana wa biti, kupanga bomba, vectorization, uigaji. Haya sio dhana mpya, lakini kuona yakitumika kwa ushirikiano katika muktadha wa OpenCL kuwashinda GPU ya bendera ni uthibitisho wenye nguvu. Hatua inayofuata ni kutumia mfano huu huo kwa algorithms za kriptografia baada ya quantum kama Kyber au Dilithium, ambazo ni zenye hesabu nzito na ni wagombea bora wa kichocheo kama hicho.

6. Maelezo ya Kiufundi na Uundaji wa Kihisabati

Mchakato wa usimbuaji wa 3DES na funguo tatu huru (hali ya EDE) umefafanuliwa rasmi kama:

$Ciphertext = E_{K_3}(D_{K_2}(E_{K_1}(Plaintext)))$

Ambapo kazi ya raundi moja ya DES $F(R, K)$, inayotumika wakati wa kila raundi 16 kwa shughuli ya DES, ni muhimu kwa hesabu. Inahusisha:

  1. Upanuzi: Nusu ya kulia ya biti 32 $R$ inapanuliwa hadi biti 48 kupitia jedwali la kubadilishana la kudumu $E$.
  2. Mchanganyiko wa Ufunguo: $R$ iliyopanuliwa inafanywa XOR na ufunguo wa raundi wa biti 48 $K$ unaotokana na ufunguo kuu.
  3. Ubadilishaji (S-Boxes): Matokeo ya biti 48 yamegawanywa katika vipande nane vya biti 6, kila kimoja kinabadilishwa kuwa pato la biti 4 na kisanduku cha kubadilishana kisicho cha mstari (S-Box). Hii ndio shughuli kuu isiyo ya mstari: $S(B) = S_i(B)$, ambapo $B$ ni ingizo la biti 6 na $S_i$ ni jedwali la $i^{th}$ S-Box.
  4. Kubadilishana (P-Box): Pato la biti 32 kutoka kwa S-Boxes linabadilishwa na kazi ya kudumu $P$.
Pato la kazi ya raundi ni: $F(R, K) = P(S(E(R) \oplus K))$.

Bomba la kichocheo linakokotoa kwa ufanisi kazi hii $F$ mara 48 kwa kila kizuia data, na hatua za bomba zikiendana na shughuli za upanuzi, XOR, kutafuta S-Box, na kubadilishana, zote zimeboreshwa kwa utekelezaji sambamba.

7. Mfumo wa Uchambuzi na Mfano wa Kesi

Mfumo wa Kutathmini Vichocheo vinavyotegemea HLS:

Wakati wa kuchambua makala kama hii, tunatumia mfumo wa pande nyingi:

  1. Utendaji: Uchapishaji kamili (Gb/s) na ucheleweshaji. Ulinganisho na misingi inayohusiana (CPU, GPU, kazi nyingine za FPGA).
  2. Ufanisi: Utendaji kwa Watt (Ufanisi wa Nishati). Matumizi ya rasilimali (Vipengele vya Mantiki, BRAM, vitalu vya DSP kwenye FPGA).
  3. Uzalishaji: Wakati wa uundaji uliohifadhiwa kwa kutumia OpenCL dhidi ya HDL. Uwezo wa kubebeka wa msimbo katika familia za FPGA.
  4. Uhalali wa Njia: Je, mikakati ya uboreshaji imeelezewa wazi na kuhalalishwa? Je, usanidi wa majaribio (zana, matoleo, data ya kigezo) unaweza kurudiwa?
  5. Ujumla: Je, mikakati ya msingi ya usanifu (bomba, vectorization) inaweza kutumika kwa algorithms nyingine (k.m., AES, SHA-3)?

Mfano wa Kesi: Kutumia Mfumo

Wacha tutumie nukta #5 (Ujumla) kwa algorithm ya AES. Mkakati wa makala hii unaweza kuhamishwa kwa urahisi:

  • Muundo Sambamba wa Bomba: AES-128 ina raundi 10. Bomba la hatua 10 (au lenye kina zaidi kupitia kufungua) linaweza kujengwa.
  • Uboreshaji wa Usafirishaji wa Data: Uboreshaji huo wa upana na mpangilio wa data ungetumika kulishe kernel ya AES.
  • Vectorization ya Kernel: Shughuli za AES kwenye matriki ya hali ya biti 128 zinaweza kufanywa sambamba kwa kiasi kikubwa ndani ya kizuia kimoja.
  • Uigaji wa Kitengo cha Hesabu: Viini vingi vya AES huru vinaweza kuanzishwa.
Mabadiliko ya msingi ya usanifu yangekuwa kuchukua nafasi ya njia ya data ya kazi ya $F$-ya DES na mabadiliko ya raundi ya AES (SubBytes, ShiftRows, MixColumns, AddRoundKey). Kanuni za uboreshaji zinabaki sawa. Utafiti sawa na huo na watafiti wa ETH Zurich juu ya kichocheo cha AES kinachotegemea OpenCL kwenye FPGAs kilifikia mafanikio sawa ya kuruka, na kuthibitisha ujumla wa njia hii.

8. Matumizi ya Baadaye na Mwelekeo wa Utafiti

Mafanikio ya usanifu huu yanafungua njia kadhaa zenye matumaini:

  • Kriptografia ya Baada ya Quantum (PQC): Usanifishaji wa algorithms za PQC (k.m., na NIST) unaendelea. Algorithms kama CRYSTALS-Kyber (ufunguo wa kufunga) na CRYSTALS-Dilithium (sahihi) zinahusisha hesabu ngumu za polynomial ambazo zinaweza kufanywa sambamba kwa kiasi kikubwa na zenye hesabu nzito, na kuzifanya kuwa lengo bora la mfano huu wa kichocheo cha FPGA.
  • Kichocheo cha Usimbuaji wa Homomorphic: Kufanya hesabu kwenye data iliyosimbwa ni zenye kompyuta nyingi. Vichocheo vya FPGA vilivyoboreshwa vinaweza kufanya miradi fulani ya homomorphic iwe ya vitendo kwa matumizi ya ulimwengu halisi.
  • Vipengele Vya Usindikaji Salama Vya Data Vilivyounganishwa: Kuchanganya kichocheo hiki cha kriptografia na vidhibiti vya kiolesura cha mtandao (SmartNICs) au vidhibiti vya uhifadhi ili kutoa usimbuaji/usimbufutaji wa uwazi, wa kiwango cha mstari kwa data iliyohifadhiwa na data inayosafiri ndani ya vituo vya data.
  • Uboreshaji wa Mnyororo wa Zana: Utafiti wa baadaye unaweza kuzingatia kufanya mikakati ya uboreshaji iliyowasilishwa hapa iwe ya kiotomatiki. Je, mkusanyaji wa OpenCL anaweza kugundua kiotomatiki upana bora wa biti za data au kupendekeza uigaji wa kitengo cha hesabu kulingana na uchambuzi wa kernel na rasilimali za lengo za FPGA?
  • Vichocheo Vya Kubadilika Vya Algorithm Nyingi: Kuunda viini vinavyoweza kubadilishwa ambavyo vinaweza kusaidia visimbuaji vingi vya ulinganifu (3DES, AES, ChaCha20) kulingana na mahitaji ya kazi, na kutumia uwezo wa usanidi upya wa sehemu wa FPGAs za kisasa.

9. Marejeo

  1. WU J., ZHENG B., NIE Y., CHAI Z. (2021). FPGA Accelerator for 3DES Algorithm Based on OpenCL. Computer Engineering, 47(12), 147-155, 162.
  2. Taasisi ya Kitaifa ya Viwango na Teknolojia (NIST). (1999). Mapendekezo ya Algorithm ya Ufunguo Tatu ya Usimbuaji Data (TDEA) ya Kuzuia Kisimbuaji. NIST Chapisho Maalum 800-67.
  3. Kikundi cha Khronos. (2024). Muhtasari wa OpenCL. https://www.khronos.org/opencl/
  4. Kampuni ya Intel. (2023). Intel FPGA SDK for OpenCL. https://www.intel.com/content/www/us/en/software/programmable/sdk-for-opencl/overview.html
  5. Ismail, A., & Shannon, L. (2019). Usanisi wa Kiwango cha Juu kwa Kriptografia inayotegemea FPGA: Uchunguzi. Katika Matukio ya Mkutano wa Kimataifa wa Teknolojia ya Uwanja-Programu (FPT).
  6. Chuo Kikuu cha Toronto, Idara ya Umeme & Uhandisi wa Kompyuta. (2022). Utafiti katika Usanisi wa Kiwango cha Juu na Usanifu wa FPGA. https://www.eecg.utoronto.ca/~jayar/research/hls.html
  7. ETH Zurich, Kikundi cha Mifumo Salama na Inayotegemewa. (2021). Kichocheo cha Vifaa cha Kriptografia ya Kisasa. https://srs.group.ethz.ch/research.html
  8. Zhuo, L., & Prasanna, V. K. (2005). Miundo ya Utendaji wa Juu kwa Shughuli za Aljebra ya Mstari kwenye Vifaa vinavyoweza kusanidiwa upya. IEEE Transactions on Parallel and Distributed Systems.