Chagua Lugha

Kichocheo cha FPGA kwa Algorithm ya 3DES Kulingana na OpenCL

Utafiti wa kichocheo cha FPGA cha utendaji wa hali ya juu kwa usimbuaji 3DES kutumia mfumo wa OpenCL, ukifikia uwezo wa 111.8 Gb/s na ongezeko la utendaji la mara 372 ukilinganisha na CPU.
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

Yaliyomo

111.8 Gb/s

Kiwango cha Uwezo

372×

Utendaji Ukilinganisha na CPU

644×

Ufanisi wa Nishati Ukilinganisha na CPU

20%

Utendaji Ukilinganisha na GPU

1. Utangulizi

Katika nyanja za sarafu za kidijitali, mnyororo wa vitalu (blockchain), na usimbuaji wa data wingu, mbinu za jadi za programu za usimbuaji na ufumbuzi wa siri zinakabiliwa na changamoto kubwa ikiwemo kasi duni ya hesabu, matumizi makubwa ya rasilimali za mwenyeji, na matumizi mazito ya umeme. Ingawa utekelezaji unaotumia FPGA kwa kutumia Verilog/VHDL hutoa uongezeaji kasi wa vifaa, zinakabiliwa na mizunguko mirefu ya ukuzaji na udumishi mgumu.

Utafiti huu unawasilisha ubunifu wa uvumbuzi wa kichocheo cha FPGA kulingana na OpenCL kwa algorithm ya 3DES ambayo inashughulikia mapungufu haya kupitia mikakati ya hali ya juu ya uboreshaji ikiwemo usanifu sambamba wa bomba la mabomba, marekebisho ya hifadhi ya data, uboreshaji wa upana wa biti, uboreshaji wa mkondo wa maagizo, uwekaji vekta ya kiini, na uigaji wa kitengo cha hesabu.

2. Kanuni za Algorithm ya 3DES

2.1 Algorithm ya DES

Algorithm ya DES (Kiwango cha Usimbuaji wa Data) hufanya kazi kwenye vitalu vya biti 64 kwa kutumia ufunguo wa biti 56 kupitia mizunguko 16 ya shughuli za mtandao wa Feistel. Shughuli kuu ya kihisabati 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$ zinawakilisha nusu za kushoto na kulia za kizuizi cha data, $K_i$ ni ufunguo wa mzunguko, na $f$ ni chaguo za kukokotoa za Feistel zinazohusisha upanuzi, mchanganyiko wa funguo, uingizwaji, na shughuli za kubadilishana.

2.2 Muundo wa Algorithm ya 3DES

3DES inaboresha usalama kwa kutumia DES mara tatu kwa kutumia funguo mbili au tatu tofauti. Mchakato wa usimbuaji hufuata:

$C = E_{K3}(D_{K2}(E_{K1}(P)))$

Ambapo $E$ inawakilisha usimbuaji, $D$ inawakilisha ufumbuzi wa siri, $P$ ni maandishi wazi, $C$ ni maandishi yaliyosimbwa, na $K1$, $K2$, $K3$ ni funguo tatu za biti 56. Muundo huu hutoa mizunguko 48 ya usimbuaji na urefu wa ufunguo unaofaa wa biti 168.

3. Ubunifu wa Kichocheo cha FPGA Kulingana na OpenCL

3.1 Mwonekano wa Usanifu

Kichocheo kilichopendekezwa hutumia muundo kamili sambamba wa bomba la mabomba na kurudia mara 48 iliyobuniwa mahsusi kwa algorithm ya 3DES. Usanifu una moduli kuu mbili: moduli ya usafirishaji wa data na moduli ya usimbuaji wa algorithm, zilizoboreshwa kwa uwezo wa juu zaidi kwenye Intel Stratix 10 GX2800 FPGA.

3.2 Uboreshaji wa Usafirishaji wa Data

Moduli ya usafirishaji wa data hutekeleza mikakati miwili muhimu:

  • Marekebisho ya Hifadhi ya Data: Huboresha mifumo ya upatikanaji wa kumbukumbu ili kupunguza ucheleweshaji
  • Uboreshaji wa Upana wa Biti ya Data: Huongeza upana wa njia ya data ili kuongeza matumizi ya upana wa ukanda

Uboreshaji huu unafikia zaidi ya 85% ya matumizi halisi ya upana wa ukanda wa kiini, zaidi sana kuliko utekelezaji wa kawaida.

3.3 Moduli ya Usimbuaji wa Algorithm

Moduli ya usimbuaji hutumia uboreshaji wa mkondo wa maagizo ili kuunda usanifu sambamba wa bomba la mabomba lenye kina. Vipengele muhimu vinajumuisha:

  • Bomba la mabomba la hatua 48 kwa mizunguko ya 3DES
  • Mpango sambamba wa funguo
  • Utekelezaji ulioboreshwa wa S-box
  • Utegemezi wa data uliopunguzwa kati ya mizunguko

3.4 Mikakati ya Uboreshaji wa Utendaji

Uboreshaji wa ziada wa utendaji unafikiwa kupitia:

  • Uwekaji Vekta ya Kiini: Kutumia shughuli za SIMD kwa usindikaji sambamba wa data
  • Uigaji wa Kitengo cha Hesabu: Vitengo vingi sambamba vya hesabu kwa kuongeza uwezo
  • Uboreshaji wa Upatikanaji wa Kumbukumbu: Upatikanaji wa kumbukumbu uliochanganyika na matumizi ya kumbukumbu ya ndani

4. Matokeo ya Majaribio

Tathmini ya majaribio inaonyesha mafanikio ya kushangaza ya utendaji:

Jukwaa Uwezo (Gb/s) Uboreshaji wa Utendaji Uboreshaji wa Ufanisi wa Nishati
Intel Core i7-9700 CPU 0.3 1× (Msingi) 1× (Msingi)
Nvidia GeForce GTX 1080 Ti GPU 93.2 310× 71×
Kichocheo cha FPGA Kilichopendekezwa 111.8 372× 644×

Utekelezaji wa FPGA unafikia uwezo wa 111.801 Gb/s huku ukitumia nishati kidogo sana kuliko utekelezaji wa CPU na GPU, kuonyesha ufanisi bora wa nishati kwa matumizi ya kriptografia.

5. Uchambuzi wa Kiufundi

Uchambuzi wa Mtaalamu: Tathmini Muhimu ya Hatua Nne

Kukata Hadithi (Kukata Hadi Mkakati)

Utafiti huu huwasilisha ukweli mgumu kwa utekelezaji wa jadi wa kriptografia. Uboreshaji wa utendaji wa mara 372 ukilinganisha na CPU za kisasa sio tu wa nyongeza—ni usumbufu wa usanifu. Waandishi kimsingi wameonyesha kuwa kwa kazi za 3DES, vichakataji vya madhumuni ya jumla vina ufanisi duni, na hata GPU haziwezi kufanana na ufanisi wa nishati wa FPGA kwa kazi hii mahsusi.

Mnyororo wa Mantiki (Mnyororo wa Mantiki)

Mwamko wa utendaji hufuata safu wazi ya uboreshaji: Kwanza, walishambulia matumizi ya upana wa ukanda wa kumbukumbu kupitia marekebisho ya hifadhi ya data (kushughulikia tatizo la ukuta wa kumbukumbu). Pili, walitekeleza bomba la mabomba lenye kina ili kuchimba muundo wa mizunguko 48 ya 3DES. Tatu, walitumia uwekaji vekta na uigaji wa kitengo cha hesabu ili kuongeza usindikaji sambamba. Mbinu hii ya kimfumo inafanana na mikakati ya uboreshaji inayoonekana katika fasihi ya hesabu ya utendaji wa hali ya juu, hasa uchambuzi wa Mfumo wa Roofline uliotumika katika mradi wa ASPIRE wa Berkeley.

Sehemu Zenye Mwanga na Mapungufu (Vipengele Bora na Mapungufu)

Vipengele Bora: Uboreshaji wa ufanisi wa nishati wa mara 644 ni wa kushangaza na una athari halisi kwa shughuli za kituo cha data. Matumizi ya OpenCL badala ya HDL ya jadi hufanya mbinu hii iweze kufikiwa na wahandisi wa programu. Kulinganisha na CPU na GPU hutoa vipimo vyenye ukamilifu.

Mapungufu: Karatasi inalenga tu 3DES, ambayo inatolewa hatua kwa hatua kwa kupendelea AES katika matumizi mengi. Kuna mjadala mdogo kuhusu uwezo wa kuongezeka kwa algorithimu zingine. Intel Stratix 10 GX2800 ni FPGA ya hali ya juu, na kufanya ufanisi wa gharama kwa uwekaji mdogo kuwa wa kutiliwa shaka.

Msukumo wa Hatua (Ushauri Unaoweza Kutekelezwa)

Kwa watoa huduma wakuu na taasisi za kifedha bado wanaotumia 3DES, utafiti huu hutoa njia wazi ya uhamiaji kwa uongezeaji kasi wa FPGA. Mbinu ya OpenCL hupunguza kikwazo cha kuingia ikilinganishwa na ukuzaji wa kawaida wa FPGA. Mashirika yanapaswa kuzingatia uongezeaji kasi wa kriptografia unaotegemea FPGA kwa usindikaji wa mauzo mengi na kuzingatia usanifu huu kama kiolezo cha kuongeza kasi ya algorithimu zingine za usimbuaji linganifu.

Uchambuzi wa Asili (Maneno 400)

Utafiti huu unawakilisha maendeleo makubwa katika uongezeaji kasi wa kriptografia ambayo hujaza pengo kati ya ufikiaji wa programu na utendaji wa vifaa. Mbinu ya waandishi ya kutumia OpenCL kwa ukuzaji wa FPGA inashughulikia donda muhimu katika hesabu ya utendaji wa hali ya juu: kikwazo cha utaalamu kwa uongezeaji kasi wa vifaa. Kama ilivyoelezwa katika vipimo vya OpenCL vya Kikundi cha Khronos, mfumo huu huwezesha "programu sambamba ya mifumo tofauti kwa kutumia kiwango kinachobebeka, wazi," na kufanya hesabu iliyoharakishwa iweze kufikiwa na watengenezaji programu wakuu.

Uwezo wa 111.8 Gb/s uliofikiwa unaonyesha ufanisi wa usanifu sambamba wa bomba la mabomba kwa kazi za kriptografia. Utendaji huu unafanana na mienendo inayoonekana katika usanifu mwingine maalum wa kikoa, kama TPU ya Google kwa mitandao ya neva au vichakataji vya AI vya Intel's Habana Labs. Uelewa muhimu hapa ni kwamba algorithimu za kriptografia, zikiwa na muundo wao wa kawaida na mifumo ya utekelezaji thabiti, zinafaa sana kwa uongezeaji kasi wa FPGA.

Ikilinganishwa na mbinu za jadi zinazotegemea HDL zilizorekodiwa katika IEEE Transactions on VLSI Systems, utekelezaji wa OpenCL hutoa faida kubwa za ufanisi wa ukuzaji. Hata hivyo, kama utafiti kutoka kwa kikundi cha FPGA cha Chuo Kikuu cha Toronto umeonyesha, kwa kawaida kuna adhabu ya utendaji wakati wa kutumia usanisi wa kiwango cha juu ikilinganishwa na RTL iliyoboreshwa kwa mikono. Ukweli kwamba utekelezaji huu bado unafikia utendaji bora kuliko CPU na GPU unapendekeza mikakati ya uboreshaji yenye ufanisi wa kipekee.

Matokeo ya ufanisi wa nishati (uboreshaji wa mara 644 ukilinganisha na CPU) yanavutia hasa kutokana na umuhimu unaoongezeka wa uendelevu wa hesabu. Kama vitovu vya data vinavyokabiliwa na vikwazo vya nguvu, mbinu zinazotoa uboreshaji mkubwa wa utendaji kwa watt zitakuwa muhimu. Utafiti huu unaonyesha kuwa kwa mifumo maalum ya hesabu kama algorithimu za kriptografia, FPGA zinaweza kutoa faida za mpangilio wa ukubwa kuliko usanifu wa madhumuni ya jumla.

Hata hivyo, kulenga 3DES kunainua maswali kuhusu uhusiano wa muda mrefu. Kwa NIST kutoa 3DES kwa matumizi mengi na kuhama hadi AES, utumiaji wa uboreshaji huu mahsusi kwa viwango vya kisasa vya kriptografia unastahili uchunguzi zaidi. Hata hivyo, mifumo ya usanifu na mikakati ya uboreshaji inaweza kuhamishwa hadi AES na algorithimu zingine za usimbuaji linganifu.

6. Utekelezaji wa Msimbo

Mfano wa Kiini cha OpenCL

__kernel void triple_des_encrypt(
    __global const uint8_t *input,
    __global uint8_t *output,
    __constant uint32_t *key_schedule,
    const uint num_blocks)
{
    int gid = get_global_id(0);
    if (gid >= num_blocks) return;
    
    // Pakia kizuizi cha biti 64
    uint64_t block = *((__global uint64_t*)(input + gid * 8));
    
    // Usimbuaji wa 3DES: E_K3(D_K2(E_K1(P)))
    block = des_encrypt(block, key_schedule, 0);      // DES ya kwanza na K1
    block = des_decrypt(block, key_schedule, 16);     // DES ya pili na K2  
    block = des_encrypt(block, key_schedule, 32);     // DES ya tatu na K3
    
    // Hifadhi matokeo
    *((__global uint64_t*)(output + gid * 8)) = block;
}

uint64_t des_encrypt(uint64_t block, __constant uint32_t *keys, int key_offset)
{
    // Kubadilishana kwa awali
    block = initial_permutation(block);
    
    uint32_t left = (uint32_t)(block >> 32);
    uint32_t right = (uint32_t)block;
    
    // Mizunguko 16 ya Feistel
    #pragma unroll
    for (int i = 0; i < 16; i++) {
        uint32_t temp = right;
        right = left ^ feistel_function(right, keys[key_offset + i]);
        left = temp;
    }
    
    // Kubadilishana kwa mwisho
    return final_permutation(((uint64_t)right << 32) | left);
}

7. Matumizi ya Baadaye

Mbinu ya usanifu iliyoonyeshwa katika utafiti huu ina utumiaji mpana zaidi ya usimbuaji wa 3DES:

  • Mnyororo wa Vitalu na Sarafu za Kidijitali: Majukwaa ya biashara ya mzunguko wa juu na shughuli za uchimbaji madini zinaweza kutumia uongezeaji kasi sawa wa FPGA kwa shughuli za kriptografia.
  • Usalama wa 5G: Usanifu wa bomba la mabomba unaweza kubadilishwa kwa viwango vya usimbuaji vya 5G katika usindikaji wa kituo cha msingi.
  • Hesabu ya Ukingo: Utekelezaji wa FPGA wa nguvu ya chini unaweza kutoa uongezeaji kasi wa kriptografia kwa vifaa vya IoT na seva za ukingo.
  • Kriptografia ya Baada ya Quantum: Mikakati ya uboreshaji inaweza kutumika kwa algorithimu zinazoibuka za kriptografia za baada ya quantum.
  • Vichocheo vya Algorithm Nyingi: Kazi ya baadaye inaweza kuchunguza miundo ya FPGA inayoweza kubadilika tena inayosaidia algorithimu nyingi za usimbuaji.

Maelekezo ya utafiti ni pamoja na kuchunguza matumizi ya mbinu hizi za uboreshaji kwa AES-GCM, ChaCha20-Poly1305, na viwango vingine vya kisasa vya usimbuaji, na kuchunguza zana za kiotomatiki za uboreshaji ambazo zinaweza kutumia mabadiliko sawa kwa algorithimu za kiholela za kriptografia.

8. Marejeo

  1. K. Group, "Vipimo vya OpenCL," Kikundi cha Khronos, 2020.
  2. Taasisi ya Kitaifa ya Viwango na Teknolojia, "Mapendekezo kwa Algorithm ya Ufumbuzi wa Data Tatu (TDEA) Kizuizi cha Siri," NIST SP 800-67Rev2, 2017.
  3. J. Cong et al., "Usanisi wa Kiwango cha Juu kwa FPGAs: Kutoka Uundaji hadi Kupelekwa," IEEE Transactions on CAD, 2011.
  4. M. Papadonikolakis et al., "Kulinganisha Utendaji wa Usanifu wa GPU na FPGA kwa Kriptografia," SAMOS, 2010.
  5. A. M. et al., "Vichocheo vya FPGA vya Algorithimu za Kriptografia," IEEE Transactions on Computers, 2013.
  6. Kampuni ya Intel, "Mwongozo wa Programu ya Intel FPGA SDK kwa OpenCL," 2020.
  7. Xilinx, "Mwongozo wa Mtumiaji wa Mazingira ya Ukuzaji ya SDAccel," 2019.
  8. W. Jiang et al., "Uchunguzi wa Hesabu za Kriptografia Zinazotegemea FPGA," Uchunguzi wa Hesabu wa ACM, 2021.