
مفهوم إثبات يُظهر هجومًا جانبيًا لتحليل الطاقة ضد تنفيذ RSA ضعيف على Arduino (Atmega328P)، مع إعدادات الأجهزة التفصيلية ومنهجية القياس.
في الآونة الأخيرة، لاحظت أشخاصًا يقومون بتنفيذ التشفير على Arduino بأنفسهم، كما هو موضح في هذا الموضوع على Stackoverflow:
https://stackoverflow.com/questions/39189065/rsa-encryption-decryption-functions-for-arduino
يمكن العثور على العديد منهم على الإنترنت، بعضها بالمناسبة موجود في مكتبات معروفة.
قررت القيام بهذا الإثبات المبدئي الصغير (PoC) لأظهر لماذا من المهم ألا تخترع خوارزمية التشفير الخاصة بك فحسب، بل أيضًا استخدام تنفيذ قوي لمثل هذه الخوارزميات.
يقوم هذا الإثبات المبدئي بتنفيذ هجوم جانبي (هجوم تحليل استهلاك الطاقة) ضد تنفيذ سيء لروتين مساعد مستخدم في تنفيذ RSA (الأس السريع).
الهجوم الجانبي هو طريقة لاختراق نظام تشفير من خلال استغلال تسرب غير مباشر للمعلومات بدلاً من مهاجمة الخوارزمية أو البروتوكول التشفيري نفسه.
يمكن أن ينشأ هذا النوع من التسرب من مصادر مختلفة مثل معلومات التوقيت، استهلاك الطاقة، الانبعاثات الكهرومغناطيسية، أو حتى الصوت.
يمكن أن تكون هذه الهجمات فعالة للغاية في اختراق أنظمة التشفير مثل RSA دون أن يحتاج المهاجم إلى حل المشكلات الرياضية الأساسية التي تضمن أمن المخطط التشفيري (Kocher, Jaffe, & Jun, 1999).
ستقوم هذه الورقة بإجراء هجوم تحليل استهلاك الطاقة على ثغرة معروفة في تنفيذ خوارزمية RSA في برنامج ثابت لـ Arduino (Atmega328P).
ملاحظة: قمت بذلك على عجل، فأرجو منك مسامحتي على الأخطاء الإملائية/النحوية التي قد تجدها.
تتضمن هجمات تحليل استهلاك الطاقة قياس استهلاك الطاقة لجهاز ما أثناء العمليات التشفيرية.
يتضمن تحليل الطاقة التفاضلي (DPA) تحليلًا إحصائيًا لأنماط استهلاك الطاقة عبر عمليات تشفير متعددة لاستخراج الأسرار، مما يجعله أكثر تطورًا من تحليل الطاقة البسيط (SPA)، الذي يربط مباشرة تقلبات الطاقة بعمليات تشفير محددة لاستنتاج الأسرار.
يمكن استخدام تحليل الطاقة التفاضلي (DPA) وتحليل الطاقة البسيط (SPA) لاستخراج المفاتيح الخاصة من خلال تحليل الأنماط في استهلاك الطاقة أثناء عمليات حساب RSA.
يمكن لهذه الهجمات الكشف عن المفتاح الخاص من خلال تحديد أنماط استهلاك الطاقة المميزة المرتبطة ببتات المفتاح المختلفة (Kocher, Jaffe, & Jun, 1999).
RSA (Rivest-Shamir-Adleman) هي خوارزمية تشفير بالمفتاح العام واسعة الاستخدام، سُميت على اسم مخترعيها: رون ريفست، عدي شامير، وليونارد أدلمان، الذين قدموها في عام 1977 (Paar & Pelzl, 2010).
تظل واحدة من أكثر الطرق أمانًا لنقل البيانات بشكل آمن عبر الإنترنت.
يكمن أحد أسس أمان RSA في صعوبة تحليل الأعداد المركبة الكبيرة إلى عواملها الأولية (Menezes, van Oorschot, & Vanstone, 1996).
هذه المشكلة، المعروفة بمشكلة التحليل، تتضمن إيجاد الأعداد الأولية التي تتضاعف لتكوين عدد كبير معين.
يعتمد تشفير RSA على افتراض أن مشكلة التحليل هذه صعبة من الناحية الحسابية بما يكفي لجعل كسر التشفير عن طريق تحليل المعامل إلى عوامله الأولية أمرًا غير عملي (Menezes, van Oorschot, & Vanstone, 1996).
يوضح الشكل 1 عملية تشفير وفك تشفير RSA باستخدام مثال بسيط.

الشكل 1 - مثال على RSA.
يرجى ملاحظة أنه في هذه الحالة، 3 و 33 عموميان. الرقم 7 في المثال هو المفتاح الخاص.
دالة Phi (N)، دالة أويلر (Euler's totient function)، تحسب جميع الأعداد الأولية نسبيًا في الفترة من 1 إلى 33.
القيمة 33 تم الحصول عليها من ضرب P و Q؛ في هذه الحالة، 11 مضروبًا في 3.
يتم الحصول على نتيجة دالة Phi بضرب (P - 1) في (Q - 1)؛ في هذه الحالة، 10 مضروبًا في 2.
العملية e<sup>-1</sup> mod 20 تشير إلى عملية المعكوس النمطي (Menezes, van Oorschot, & Vanstone, 1996).
ملاحظة: إذا كنت ترغب في التعمق في RSA، وهو أمر غير ضروري لفهم هذه الورقة. توجد مقدمة سريعة لعمليات نظرية الأعداد الأساسية هذه داخل هذا المستودع في ملف number_theory.md. يمكن أن يعزز الشرح فهمك لعمليات RSA.
استخدمت التجربة راسم ذبذبات DS1102 (معروض في الشكل 2) من إنتاج Rigol.
يمكن العثور على دليل راسم الذبذبات في المراجع (RIGOL Technologies, Inc., 2017).
كما تم استخدام مصدر طاقة عام (معروض في الشكل 3).

الشكل 2 - راسم الذبذبات المستخدم في التجربة.

الشكل 3 - مصدر الطاقة المستخدم في التجربة.
قانون أوم هو مبدأ أساسي في مجال الهندسة الكهربائية والفيزياء.
ينص على أن التيار المار عبر موصل بين نقطتين يتناسب طرديًا مع الجهد عبر النقطتين وعكسيًا مع المقاومة بينهما (Boylestad, 2015).
يوضح الشكل 4 دائرة وقانون أوم.

الشكل 4 - توضيح قانون أوم.
يعني قانون أوم أنه إذا قمت بزيادة الجهد عبر موصل، فسيزيد التيار أيضًا، بشرط أن تظل المقاومة ثابتة (Johnson & Hilburn, 2013). يقدم الشكل 5 مثالاً على تطبيق قانون أوم حيث الهدف هو إيجاد التيار في الدائرة.

الشكل 5 - مثال على قانون أوم.
قانون كيرشوف للجهد (KVL) هو مبدأ أساسي في الهندسة الكهربائية والفيزياء (Boylestad, 2015).
ينص على أن مجموع كل فروق الجهد الكهربائي حول أي شبكة أو حلقة مغلقة يساوي صفرًا (Boylestad, 2015).
يوضح الشكل 6 قانون كيرشوف للجهد.

الشكل 6 - توضيح قانون كيرشوف.
يوجد مثال على تطبيق قانون كيرشوف في الشكل 7 من أجل إيجاد التيار عبر المقاومات R1 و R2.

الشكل 7 - مثال على قانون كيرشوف.
مقسم الجهد هو نتيجة لقانون كيرشوف للجهد (KVL) ويوضح طريقة لحساب Vout وهو الجهد بين المقاومة R1 و R2.
صيغة مقسم الجهد معروضة في الشكل 8.
مثال على تطبيق مقسم الجهد معروض في الشكل 9.

الشكل 8 - توضيح مقسم الجهد.

الشكل 9 - مثال على مقسم الجهد.
مقاوم التحويل هو مقاومة ذات قيمة منخفضة توضع على التوالي مع مصدر طاقة الدائرة لقياس التيار المار عبر الدائرة.
استخدام مقاوم تحويل لقياس التيار هو إحدى التقنيات المستخدمة في أجهزة القياس المتعددة الحديثة (Boylestad, 2015).
قياس انخفاض الجهد عبر مقاوم التحويل ومعرفة مقاومته يعطي معلومات كافية لحساب التيار باستخدام قانون أوم.
لقياس استهلاك التيار لجهاز Arduino، من الضروري وضع مقاوم تحويل على التوالي مع VCC (الموجب).
الطريقة التي سيتم توصيلها بها معروضة في الشكل 10.
ملاحظة 1: يرجى ملاحظة أنه في الإثبات المبدئي، بدلاً من استخدام لوحة Arduino Uno، يتم نقل الهدف (المتحكم الدقيق atmega328p) إلى لوحة تجارب منفصلة كما هو معروض في الشكل 11. يسمح ذلك بمعالجة أسهل لتوصيلات المتحكم الدقيق دون الحاجة إلى لحام.
ملاحظة 2: إذا كنت لا تعرف كيفية القيام بذلك، فإن مقالتي السابقة التي تشرح كيفية عمل التشويش (glitching) تعلم كيفية ذلك ويمكن العثور عليها على https://github.com/lord-feistel/hardware_hacking_lab)

الشكل 10 - مقاوم تحويل مع Arduino.