Pilih Bahasa

Pemecut FPGA untuk Algoritma 3DES Berasaskan OpenCL

Kajian pemecut FPGA berprestasi tinggi untuk penyulitan 3DES menggunakan rangka kerja OpenCL, mencapai throughput 111.8 Gb/s dengan peningkatan prestasi 372x berbanding CPU.
computepowercurrency.com | PDF Size: 1.0 MB
Penilaian: 4.5/5
Penilaian Anda
Anda sudah menilai dokumen ini
Sampul Dokumen PDF - Pemecut FPGA untuk Algoritma 3DES Berasaskan OpenCL

Kandungan

111.8 Gb/s

Kadar Throughput

372×

Prestasi vs CPU

644×

Kecekapan Tenaga vs CPU

20%

Prestasi vs GPU

1. Pengenalan

Dalam bidang mata wang digital, rantaian blok, dan penyulitan data awan, kaedah penyulitan dan penyahsulitan berasaskan perisian tradisional menghadapi cabaran besar termasuk kelajuan pengiraan yang perlahan, penggunaan sumber hos yang tinggi, dan penggunaan kuasa yang berlebihan. Walaupun pelaksanaan berasaskan FPGA menggunakan Verilog/VHDL menawarkan pecutan perkakasan, ia mengalami kitaran pembangunan yang panjang dan penyelenggaraan yang sukar.

Penyelidikan ini membentangkan reka bentuk pemecut FPGA berasaskan OpenCL yang inovatif untuk algoritma 3DES yang menangani batasan ini melalui strategi pengoptimuman canggih termasuk seni bina selari saluran paip, pelarasan storan data, peningkatan lebar bit, pengoptimuman aliran arahan, vektorisasi kernel, dan replikasi unit pengiraan.

2. Prinsip Algoritma 3DES

2.1 Algoritma DES

Algoritma DES (Data Encryption Standard) beroperasi pada blok 64-bit menggunakan kunci 56-bit melalui 16 pusingan operasi rangkaian Feistel. Operasi matematik teras boleh diwakili sebagai:

$L_i = R_{i-1}$

$R_i = L_{i-1} \oplus f(R_{i-1}, K_i)$

Di mana $L_i$ dan $R_i$ mewakili separuh kiri dan kanan blok data, $K_i$ ialah kunci pusingan, dan $f$ ialah fungsi Feistel yang melibatkan operasi pengembangan, pencampuran kunci, penggantian, dan pilih atur.

2.2 Struktur Algoritma 3DES

3DES meningkatkan keselamatan dengan menggunakan DES tiga kali dengan sama ada dua atau tiga kunci berbeza. Proses penyulitan mengikut:

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

Di mana $E$ mewakili penyulitan, $D$ mewakili penyahsulitan, $P$ ialah teks biasa, $C$ ialah teks sifer, dan $K1$, $K2$, $K3$ ialah tiga kunci 56-bit. Struktur ini menyediakan 48 pusingan penyulitan dengan panjang kunci berkesan 168-bit.

3. Reka Bentuk Pemecut FPGA Berasaskan OpenCL

3.1 Gambaran Keseluruhan Seni Bina

Pemecut yang dicadangkan menggunakan struktur selari saluran paip yang komprehensif dengan 48 lelaran yang direka khusus untuk algoritma 3DES. Seni bina terdiri daripada dua modul utama: modul penghantaran data dan modul penyulitan algoritma, dioptimumkan untuk throughput maksimum pada Intel Stratix 10 GX2800 FPGA.

3.2 Pengoptimuman Penghantaran Data

Modul penghantaran data melaksanakan dua strategi utama:

  • Pelarasan Storan Data: Mengoptimumkan corak akses memori untuk mengurangkan kependaman
  • Peningkatan Lebar Bit Data: Meningkatkan lebar laluan data untuk memaksimumkan penggunaan lebar jalur

Pengoptimuman ini mencapai lebih 85% penggunaan lebar jalur kernel sebenar, jauh lebih tinggi daripada pelaksanaan konvensional.

3.3 Modul Penyulitan Algoritma

Modul penyulitan menggunakan pengoptimuman aliran arahan untuk mencipta seni bina selari saluran paip yang mendalam. Ciri utama termasuk:

  • Saluran paip 48 peringkat untuk pusingan 3DES
  • Penjadualan kunci selari
  • Pelaksanaan S-box yang dioptimumkan
  • Kebergantungan data antara pusingan diminimumkan

3.4 Strategi Peningkatan Prestasi

Penambahbaikan prestasi tambahan dicapai melalui:

  • Vektorisasi Kernel: Menggunakan operasi SIMD untuk pemprosesan data selari
  • Replikasi Unit Pengiraan: Berbilang unit pengiraan selari untuk meningkatkan throughput
  • Pengoptimuman Akses Memori: Akses memori bergabung dan penggunaan memori tempatan

4. Keputusan Eksperimen

Penilaian eksperimen menunjukkan pencapaian prestasi yang luar biasa:

Platform Throughput (Gb/s) Peningkatan Prestasi Peningkatan Kecekapan Tenaga
Intel Core i7-9700 CPU 0.3 1× (Asas) 1× (Asas)
Nvidia GeForce GTX 1080 Ti GPU 93.2 310× 71×
Pemecut FPGA Dicadangkan 111.8 372× 644×

Pelaksanaan FPGA mencapai throughput 111.801 Gb/s sambil menggunakan kuasa yang jauh lebih rendah daripada pelaksanaan CPU dan GPU, menunjukkan kecekapan tenaga yang unggul untuk aplikasi kriptografi.

5. Analisis Teknikal

Analisis Pakar: Penilaian Kritikal Empat Langkah

一针见血 (Tepat Pada Sasaran)

Penyelidikan ini memberikan realiti yang membingungkan kepada pelaksanaan kriptografi tradisional. Peningkatan prestasi 372x berbanding CPU moden bukan sekadar tambahan—ia adalah gangguan seni bina. Para pengarang pada dasarnya telah menunjukkan bahawa untuk beban kerja 3DES, pemproses tujuan umum pada asasnya tidak cekap, dan malah GPU tidak dapat menandingi kecekapan tenaga FPGA untuk tugas khusus ini.

逻辑链条 (Rantaian Logik)

Kejayaan prestasi mengikut hierarki pengoptimuman yang jelas: Pertama, mereka menyerang penggunaan lebar jalur memori melalui pelarasan storan data (menangani masalah dinding memori). Kedua, mereka melaksanakan saluran paip yang mendalam untuk mengeksploitasi struktur 3DES 48-pusingan. Ketiga, mereka menggunakan vektorisasi dan replikasi unit pengiraan untuk memaksimumkan pemprosesan selari. Pendekatan sistematik ini mencerminkan strategi pengoptimuman yang dilihat dalam literatur pengkomputeran berprestasi tinggi, terutamanya analisis Model Roofline yang digunakan dalam projek ASPIRE Berkeley.

亮点与槽点 (Sorotan dan Batasan)

Sorotan: Peningkatan kecekapan tenaga 644x adalah menakjubkan dan mempunyai implikasi sebenar untuk operasi pusat data. Penggunaan OpenCL dan bukannya HDL tradisional menjadikan pendekatan ini boleh diakses oleh jurutera perisian. Perbandingan terhadap kedua-dua CPU dan GPU menyediakan penanda aras yang komprehensif.

Batasan: Kertas kerja ini memberi tumpuan eksklusif pada 3DES, yang sedang dihentikan secara berperingkat memihak kepada AES dalam banyak aplikasi. Perbincangan terhad tentang kebolehskalaan kepada algoritma lain. Intel Stratix 10 GX2800 ialah FPGA tinggi, menjadikan keberkesanan kos untuk penyebaran yang lebih kecil dipertikaikan.

行动启示 (Wawasan Boleh Tindak)

Untuk pembekal awan dan institusi kewangan yang masih menggunakan 3DES, penyelidikan ini menyediakan laluan migrasi yang jelas kepada pecutan FPGA. Pendekatan OpenCL dengan ketara mengurangkan halangan kemasukan berbanding pembangunan FPGA tradisional. Organisasi harus mempertimbangkan pecutan kriptografi berasaskan FPGA untuk pemprosesan transaksi volum tinggi dan mempertimbangkan seni bina ini sebagai templat untuk mempercepatkan algoritma penyulitan simetri lain.

Analisis Asal (400 patah perkataan)

Penyelidikan ini mewakili kemajuan yang signifikan dalam pecutan kriptografi yang merapatkan jurang antara kebolehcapaian perisian dan prestasi perkakasan. Pendekatan pengarang menggunakan OpenCL untuk pembangunan FPGA menangani titik kesakitan kritikal dalam pengkomputeran berprestasi tinggi: halangan kepakaran untuk pecutan perkakasan. Seperti yang dinyatakan dalam spesifikasi OpenCL Kumpulan Khronos, rangka kerja ini membolehkan "pengaturcaraan selari sistem heterogen menggunakan piawai terbuka yang mudah alih," menjadikan pengkomputeran dipercepatkan boleh diakses oleh pembangun arus perdana.

Throughput 111.8 Gb/s yang dicapai menunjukkan keberkesanan seni bina selari saluran paip untuk beban kerja kriptografi. Prestasi ini selaras dengan trend yang diperhatikan dalam seni bina khusus domain lain, seperti TPU Google untuk rangkaian neural atau pemproses AI Intel's Habana Labs. Wawasan utama di sini ialah algoritma kriptografi, dengan struktur tetap dan corak pelaksanaan deterministik, amat sesuai untuk pecutan FPGA.

Berbanding pendekatan berasaskan HDL tradisional yang didokumenkan dalam IEEE Transactions on VLSI Systems, pelaksanaan OpenCL menawarkan kelebihan kecekapan pembangunan yang signifikan. Walau bagaimanapun, seperti yang ditunjukkan oleh penyelidikan dari kumpulan FPGA Universiti Toronto, biasanya terdapat penalti prestasi apabila menggunakan sintesis peringkat tinggi berbanding RTL yang dioptimumkan tangan. Hakikat bahawa pelaksanaan ini masih mencapai prestasi unggul kepada kedua-dua CPU dan GPU mencadangkan strategi pengoptimuman yang sangat berkesan.

Keputusan kecekapan tenaga (peningkatan 644x berbanding CPU) amat menarik memandangkan kepentingan kelestarian pengkomputeran yang semakin meningkat. Memandangkan pusat data semakin menghadapi kekangan kuasa, pendekatan yang memberikan peningkatan prestasi besar per watt akan menjadi penting. Penyelidikan ini menunjukkan bahawa untuk corak pengiraan khusus seperti algoritma kriptografi, FPGA boleh memberikan kelebihan magnitud tertib berbanding seni bina tujuan umum.

Walau bagaimanapun, tumpuan pada 3DES menimbulkan persoalan tentang relevansi jangka panjang. Dengan NIST menghentikan 3DES untuk banyak aplikasi dan beralih kepada AES, kebolehgunaan pengoptimuman khusus ini kepada piawaian kriptografi moden patut disiasat lebih lanjut. Corak seni bina dan strategi pengoptimuman, bagaimanapun, berkemungkinan boleh dipindahkan kepada AES dan algoritma penyulitan simetri lain.

6. Pelaksanaan Kod

Contoh Kernel 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;
    
    // Muat blok 64-bit
    uint64_t block = *((__global uint64_t*)(input + gid * 8));
    
    // Penyulitan 3DES: E_K3(D_K2(E_K1(P)))
    block = des_encrypt(block, key_schedule, 0);      // DES pertama dengan K1
    block = des_decrypt(block, key_schedule, 16);     // DES kedua dengan K2  
    block = des_encrypt(block, key_schedule, 32);     // DES ketiga dengan K3
    
    // Simpan hasil
    *((__global uint64_t*)(output + gid * 8)) = block;
}

uint64_t des_encrypt(uint64_t block, __constant uint32_t *keys, int key_offset)
{
    // Pilih atur awal
    block = initial_permutation(block);
    
    uint32_t left = (uint32_t)(block >> 32);
    uint32_t right = (uint32_t)block;
    
    // 16 pusingan 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;
    }
    
    // Pilih atur akhir
    return final_permutation(((uint64_t)right << 32) | left);
}

7. Aplikasi Masa Depan

Pendekatan seni bina yang ditunjukkan dalam penyelidikan ini mempunyai kebolehgunaan yang luas di luar penyulitan 3DES:

  • Rantaian Blok dan Mata Wang Kripto: Platform perdagangan frekuensi tinggi dan operasi perlombongan boleh memanfaatkan pecutan FPGA yang serupa untuk operasi kriptografi.
  • Keselamatan 5G: Seni bina saluran paip boleh disesuaikan untuk piawaian penyulitan 5G dalam pemprosesan stesen pangkalan.
  • Pengkomputeran Pinggir: Pelaksanaan FPGA kuasa rendah boleh menyediakan pecutan kriptografi untuk peranti IoT dan pelayan pinggir.
  • Kriptografi Pasca-Kuantum: Strategi pengoptimuman boleh digunakan untuk algoritma kriptografi pasca-kuantum yang baru muncul.
  • Pemecut Berbilang Algoritma: Kerja masa depan boleh meneroka reka bentuk FPGA yang boleh dikonfigurasi semula secara dinamik yang menyokong berbilang algoritma penyulitan.

Arah penyelidikan termasuk meneroka penggunaan teknik pengoptimuman ini kepada AES-GCM, ChaCha20-Poly1305, dan piawaian penyulitan moden lain, serta menyiasat alat pengoptimuman automatik yang boleh menggunakan transformasi serupa kepada algoritma kriptografi sewenang-wenangnya.

8. Rujukan

  1. K. Group, "The OpenCL Specification," Khronos Group, 2020.
  2. National Institute of Standards and Technology, "Recommendation for Triple Data Encryption Algorithm (TDEA) Block Cipher," NIST SP 800-67Rev2, 2017.
  3. J. Cong et al., "High-Level Synthesis for FPGAs: From Prototyping to Deployment," IEEE Transactions on CAD, 2011.
  4. M. Papadonikolakis et al., "Performance Comparison of GPU and FPGA Architectures for Cryptography," SAMOS, 2010.
  5. A. M. et al., "FPGA-based Accelerators of Cryptographic Algorithms," IEEE Transactions on Computers, 2013.
  6. Intel Corporation, "Intel FPGA SDK for OpenCL Programming Guide," 2020.
  7. Xilinx, "SDAccel Development Environment User Guide," 2019.
  8. W. Jiang et al., "A Survey of FPGA-Based Cryptographic Computing," ACM Computing Surveys, 2021.