Original Title: PRISEC: Comparison of Symmetric Key Algorithms for IoT Devices
Source: doi.org/10.3390/s19194312
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

PRISEC៖ ការប្រៀបធៀបក្បួនដោះស្រាយកូនសោស៊ីមេទ្រីសម្រាប់ឧបករណ៍ IoT

ចំណងជើងដើម៖ PRISEC: Comparison of Symmetric Key Algorithms for IoT Devices

អ្នកនិពន្ធ៖ Daniel A. F. Saraiva (Universidade da Beira Interior), Valderi Reis Quietinho Leithardt (Universidade do Vale do Itajaí), Diandre de Paula, André Sales Mendes, Gabriel Villarrubia González, Paul Crocker

ឆ្នាំបោះពុម្ព៖ 2019, Sensors

វិស័យសិក្សា៖ Computer Science / Cybersecurity

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ការកើនឡើងនៃឧបករណ៍ IoT ដែលមានធនធានកម្រិត (Resource-constrained devices) បង្កឱ្យមានបញ្ហាប្រឈមក្នុងការការពារទិន្នន័យ ដោយសារក្បួនដោះស្រាយកូដសម្ងាត់ស្តង់ដារត្រូវការថាមពល និងសមត្ថភាពកុំព្យូទ័រខ្ពស់ពេក។

វិធីសាស្ត្រ (The Methodology)៖ អ្នកស្រាវជ្រាវបានបង្កើតកម្មវិធី Android ដើម្បីធ្វើតេស្ត និងប្រៀបធៀបប្រសិទ្ធភាពនៃក្បួនដោះស្រាយកូនសោស៊ីមេទ្រីផ្សេងៗគ្នានៅលើស្មាតហ្វូនដែលមានស្ថាបត្យកម្ម CPU ខុសគ្នា (ARMv7 និង ARMv8)។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
ChaCha20-Poly1305
ក្បួនដោះស្រាយ ChaCha20-Poly1305 (Authenticated Stream Cipher)
មានល្បឿនលឿនខ្លាំង និងប្រើប្រាស់ថាមពលតិចបំផុតលើឧបករណ៍ដែលគ្មាន Hardware Acceleration។ វាមានសុវត្ថិភាពខ្ពស់ និងត្រូវបានប្រើក្នុង TLS 1.3។ គាំទ្រតែទំហំកូនសោ (Key size) 256-bit ប៉ុណ្ណោះ ដែលអាចខ្វះភាពបត់បែនខ្លះសម្រាប់ប្រព័ន្ធចាស់ៗ។ ជាជម្រើសល្អបំផុតសម្រាប់ឧបករណ៍ IoT ដែលមានធនធានកម្រិត ដោយមានតុល្យភាពរវាងល្បឿន និងការសន្សំសំចៃថ្ម។
SPECK128
ក្បួនដោះស្រាយ SPECK128 (Lightweight Block Cipher)
មានល្បឿនលឿនជាងគេសម្រាប់កញ្ចប់ទិន្នន័យតូចៗ និងប្រើប្រាស់ Memory តិចបំផុត។ សមស្របសម្រាប់ឧបករណ៍ដែលមានកម្លាំង CPU ខ្សោយ។ កម្រិតសុវត្ថិភាពមិនទាន់ត្រូវបានសិក្សាលម្អិតស្មើនឹង AES ឡើយ ហើយអាចមិនសូវមានការគាំទ្រក្នុងស្តង់ដារអន្តរជាតិធំៗ។ ដំណើរការលឿនជាង LEA លើកូនសោទំហំ 192 និង 256 bits ហើយប្រើប្រាស់ថាមពលតិច។
AES (Hardware Accelerated)
AES ដែលមានជំនួយពីផ្នែករឹង (AES-NI / ARMv8 CE)
មានល្បឿនលឿនដាច់គេ និងសុវត្ថិភាពខ្ពស់បំផុត។ ជាស្តង់ដារពិភពលោកដែលគួរឱ្យទុកចិត្ត។ ទាមទារឱ្យឧបករណ៍មាន Hardware ពិសេស (ដូចជា ARMv8)។ បើគ្មាន Hardware នេះទេ វាដំណើរការយឺត និងស៊ីថ្មខ្លាំង។ ទទួលបាន Throughput ខ្ពស់បំផុត (ជាង 400 MiB/s) លើឧបករណ៍ Xiaomi Redmi Note 3 (ARMv8)។
RC6 & Twofish
ក្បួនដោះស្រាយ RC6 និង Twofish
មានសមត្ថភាពល្អជាង AES ក្នុងករណីដែលគ្មាន Hardware Acceleration (Software-only implementation)។ នៅតែយឺតជាង និងស៊ីថ្មច្រើនជាង ChaCha20 ឬ SPECK សម្រាប់ឧបករណ៍ IoT។ RC6 លឿនជាង Twofish បន្តិចលើស្ថាបត្យកម្ម ARMv8 ប៉ុន្តែ Twofish លឿនជាងលើ ARMv7។

ការចំណាយលើធនធាន (Resource Cost)៖ ការសិក្សានេះបង្ហាញថាធនធានសំខាន់គឺថាមពលថ្ម និងសមត្ថភាព CPU របស់ឧបករណ៍ IoT ។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះធ្វើឡើងដោយប្រើប្រាស់ស្មាតហ្វូន Android (Samsung និង Xiaomi) ជាតំណាងឱ្យឧបករណ៍ IoT។ នេះអាចជាចំណុចលម្អៀងមួយ ព្រោះឧបករណ៍ IoT ជាក់ស្តែងនៅក្នុងវិស័យកសិកម្ម ឬឧស្សាហកម្មនៅកម្ពុជា ភាគច្រើនជា Microcontrollers (ដូចជា ESP32 ឬ STM32) ដែលមានកម្លាំងខ្សោយជាងស្មាតហ្វូនឆ្ងាយណាស់។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

លទ្ធផលនៃការសិក្សានេះមានប្រយោជន៍យ៉ាងខ្លាំងសម្រាប់អ្នកអភិវឌ្ឍន៍ប្រព័ន្ធ IoT នៅកម្ពុជា ដើម្បីជ្រើសរើសក្បួនដោះស្រាយសុវត្ថិភាពដែលសមស្រប។

ការជ្រើសរើសក្បួនដោះស្រាយឱ្យត្រូវនឹងប្រភេទ Hardware (ARMv7 vs ARMv8) គឺជាកត្តាស្លាប់រស់សម្រាប់ប្រសិទ្ធភាពនៃឧបករណ៍ IoT ដែលដំណើរការដោយថ្ម។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ Cryptography: និស្សិតត្រូវស្វែងយល់ពីភាពខុសគ្នារវាង Block Ciphers (AES, SPECK) និង Stream Ciphers (ChaCha20) ព្រមទាំងគន្លឹះនៃ Authenticated Encryption (GCM, Poly1305)។
  2. ការដំឡើងបរិស្ថានអភិវឌ្ឍន៍ (Environment Setup): ដំឡើង Android Studio និងរៀនប្រើប្រាស់ Android NDK ដើម្បីអាចសរសេរកូដ C++ សម្រាប់ហៅប្រើបណ្ណាល័យដូចជា Crypto++ ឬ Monocypher លើឧបករណ៍ចល័ត។
  3. ការធ្វើតេស្តប្រៀបធៀប (Benchmarking): សរសេរកម្មវិធីតូចមួយដើម្បីវាស់ល្បឿន (Encryption speed) និងការប្រើប្រាស់ថ្ម នៃក្បួនដោះស្រាយ ChaCha20 ធៀបនឹង AES លើឧបករណ៍ Raspberry Pi ឬ ESP32 ដែលមាន។
  4. ការអនុវត្តជាក់ស្តែងក្នុងគម្រោង IoT: ជ្រើសរើស ChaCha20-Poly1305 សម្រាប់ការពារទិន្នន័យដែលផ្ញើចេញពីឧបករណ៍សេនស័រ (Sensor Node) ទៅកាន់ Cloud ដោយធានាថាវាមិនធ្វើឱ្យឧបករណ៍ឆាប់អស់ថ្ម។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Symmetric Key Algorithms ជាវិធីសាស្ត្រកូដសម្ងាត់ដែលប្រើប្រាស់កូនសោ (Key) តែមួយគត់ សម្រាប់ការចាក់សោទិន្នន័យឱ្យទៅជាសម្ងាត់ (Encryption) និងការដោះសោទិន្នន័យនោះមកវិញ (Decryption)។ ដូចជាការប្រើកូនសោតែមួយគ្រាប់ ដើម្បីចាក់សោទ្វារផ្ទះពេលចេញក្រៅ និងប្រើកូនសោដដែលនោះដើម្បីបើកទ្វារពេលត្រឡប់មកវិញ។
Authenticated Encryption ជាបច្ចេកទេសដែលធ្វើការងារពីរក្នុងពេលតែមួយ គឺការបំប្លែងទិន្នន័យជាសម្ងាត់ (Confidentiality) និងការធានាថាទិន្នន័យនោះមិនត្រូវបានកែប្រែដោយជនទីបីឡើយ (Integrity) ក្នុងអំឡុងពេលបញ្ជូន។ ប្រៀបដូចជាការផ្ញើសំបុត្រដាក់ក្នុងប្រអប់ដែក (សម្ងាត់) ហើយបិទត្រាជ័រពីលើ (ការផ្ទៀងផ្ទាត់) ដើម្បីឱ្យអ្នកទទួលដឹងថាគ្មាននរណាលួចបើក ឬដូរខ្លឹមសារសំបុត្រតាមផ្លូវ។
Hardware Acceleration ការប្រើប្រាស់ផ្នែកពិសេសនៃគ្រឿងកុំព្យូទ័រ (ដូចជា CPU ថ្មីៗដែលមានឈុតណែនាំ AES-NI) ដើម្បីធ្វើការគណនាកូដសម្ងាត់ឱ្យលឿនជាងការប្រើប្រាស់កម្មវិធី (Software) ធម្មតា។ ដូចជាការប្រើម៉ាស៊ីនគិតលេខដើម្បីគុណលេខ លឿនជាងនិងចំណាយកម្លាំងតិចជាងការគិតលេខដោយប្រើក្រដាសនិងប៊ិច។
Middleware កម្មវិធីកុំព្យូទ័រដែលដើរតួជាអ្នកសម្របសម្រួលនៅកណ្តាល រវាងប្រព័ន្ធប្រតិបត្តិការ (OS) និងកម្មវិធីអ្នកប្រើប្រាស់ (Application) ដើម្បីជួយឱ្យឧបករណ៍ផ្សេងៗគ្នាអាចផ្លាស់ប្តូរទិន្នន័យគ្នាបាន។ ប្រៀបបាននឹងអ្នកបកប្រែភាសា ដែលជួយឱ្យមនុស្សពីរនាក់និយាយភាសាផ្សេងគ្នាអាចយល់គ្នា និងធ្វើការជាមួយគ្នាបាន។
Side-Channel Attacks ការវាយប្រហារលួចយកទិន្នន័យសម្ងាត់ ដោយមិនមែនបំបែកកូដគណិតវិទ្យាផ្ទាល់ ប៉ុន្តែតាមរយៈការវាស់វែងរូបហ្សែព (Physical implementation) ដូចជាការប្រើប្រាស់ថាមពល ឬរយៈពេលដែល CPU ប្រើដើម្បីគណនា។ ដូចជាចោរដែលទាយលេខសម្ងាត់ទូដែក ដោយស្តាប់សំឡេង 'តុកៗ' ពេលបង្វិលសោ ជាជាងការទាយលេខម្តងមួយៗដោយចៃដន្យ។
Block Cipher ក្បួនដោះស្រាយដែលបំប្លែងទិន្នន័យជាដុំៗដែលមានទំហំកំណត់ (ឧទាហរណ៍ 128 bits ក្នុងមួយដុំ) មុននឹងធ្វើការអ៊ិនគ្រីប។ AES និង RC6 គឺជាឧទាហរណ៍នៃ Block Cipher ។ ដូចជាការកាត់នំប៉័ងវែងមួយដើម ឱ្យទៅជាចំណិតស្មើៗគ្នា មុននឹងយកទៅវេចខ្ចប់។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖