يوفر عداد أمان 128 بت مكونًا من قيمتي 64 بت للبتات الأقل والأعلى أهمية.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: b4749477e882المصدرأسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يوفر عداد أمان 128 بت مكونًا من قيمتي 64 بت للبتات الأقل والأعلى أهمية.
يُستخدم الهيكل ara::crypto::SecureCounter في الوحدة crypto كعداد أمان 128 بت يتكون من عددين صحيحين 64 بت للبتات الأقل أهمية ([SWS_CRYPT_30002]) والبتات الأكثر أهمية ([SWS_CRYPT_30003]). وتستخدم المكونات المتصلة نوع البيانات هذا لتمثيل قراءات عداد متينة، حيث يجب التحكم يدويًا في عمليات الزيادة ومنطق الحمل بين الكلمات الجزئية. وباعتباره نوع قيمة صرفًا، لا يوفر الهيكل أي مزامنة داخلية، ولهذا السبب يجب بالضرورة تنسيق عمليات الوصول المتوازية خارجيًا في بيئات العمليات متعددة الخيوط (Multithreading).
السياق
يعمل الهيكل ara::crypto::SecureCounter داخل الوحدة crypto لـ AUTOSAR Adaptive Platform كنوع بيانات أساسي لتمثيل عداد تشفيري بعرض 128 بت. ويتألف هيكل البيانات، المعرّف في ملف الترويسة ara/crypto/common/base_id_types.h، من عددين صحيحين 64 بت من النوع std::uint64_t: عنصر البيانات mLSQW للـ 64 بت الأقل أهمية وفقًا لـ [SWS_CRYPT_30002]، بالإضافة إلى عنصر البيانات mMSQW للـ 64 بت الأكثر أهمية وفقًا لـ [SWS_CRYPT_30003]. وفي بنيات الأمان، تُستخدم قيم العداد بهذا الحجم لضمان الحداثة الزمنية للرسائل وصد هجمات إعادة التشغيل (Replay Attacks) بفعالية. تفسير: كنوع بيانات قياسي، يُرجح أن يُستخدم الهيكل في المقام الأول كصيغة واجهة وتخزين للعدادات الرتيبة أو أرقام التسلسل، التي يتم تبادلها بواسطة بروتوكولات التشفير وبرامج التشغيل ومكونات الأمان القريبة من العتاد. سؤال Q-57197e2ecabd5cab (مفتوح) ونظرًا لأن المواصفات تعلن ara::crypto::SecureCounter كحاوية بيانات صرفة دون ارتباط خوارزمي مباشر، تتفاعل الطبقات ذات المستوى الأعلى مباشرةً مع الجزأين للتحقق من قراءات العداد أو حفظها أو تضمينها في رسائل البروتوكول.
دورة الحياة
كهيكل C++ تقليدي (struct)، يخضع ara::crypto::SecureCounter لدورة حياة خفيفة الوزن دون إدارة ذاكرة ديناميكية أو منطق إدارة ذي حالة. وعادةً ما يتم إنشاء النسخة مباشرةً على المكدس كنوع قيمة محلي أو مضمنًا كعنصر حقل في سياقات ذات مستوى أعلى مثل ترويسات أحداث الأمان أو واصفات جلسات التشفير. ومن المحتمل أن يُظهر الهيكل، كحاوية بيانات بسيطة، دلالات قيمة C++ عادية مع سلوك نسخ وتعيين ضمني، ولكنه لا يوفر أي آليات مزامنة داخلية للوصول المتزامن. سؤال Q-a4d95542ea77870d (مفتوح) ويعني هذا للمطورين أنه يجب تأمين عمليات القراءة والكتابة المتزامنة من خيوط مختلفة بواسطة بدائيات مزامنة خارجية لمنع عدم اتساق البيانات عند تحديث العداد. وتنتهي دورة حياة النسخة تلقائيًا عند مغادرة نطاق الصلاحية المعني، دون الحاجة إلى عمليات تحرير أو تنظيف صريحة.
مسار الاستخدام
يتضمن مسار الاستخدام النموذجي التهيئة، والزيادة التدريجية، بالإضافة إلى قراءة قيمة العداد المجمعة 128 بت عبر المكونين الهيكليين. ينشئ المتصل أولاً نسخة من الهيكل ويعيّن قراءات العداد الأولية للكلمة الجزئية الأقل أهمية mLSQW ([SWS_CRYPT_30002]) والكلمة الجزئية الأكثر أهمية mMSQW ([SWS_CRYPT_30003]). وفي عمليات العد المستمرة، تتم زيادة الكلمة الأقل أهمية mLSQW بشكل أساسي. وإذا وصلت mLSQW إلى القيمة القصوى لنطاق 64 بت، يحدث حمل حسابي إلى الكلمة الأكثر أهمية mMSQW، والتي تزداد بمقدار واحد. تفسير: يُرجح تنفيذ العمليات الحسابية مثل الزيادة ومعالجة الحمل من جانب المتصل، نظرًا لأن المواصفات لا تعلن أي دوال أعضاء خاصة بـ ara::crypto::SecureCounter. سؤال Q-68babc70b53a5745 (مفتوح) وعند النقل أو الحفظ، يتم إجراء تسلسل منظم للجزأين 64 بت، مع ضرورة الانتباه إلى ترتيب بايتات وكلمات متسق لتجنب التفسيرات الخاطئة للقيمة الإجمالية لدى جانب المستقبل.
سيناريوهات الأخطاء
نظرًا لأن ara::crypto::SecureCounter يمثل هيكل بيانات صرفًا دون دوال خاصة به، فإن الهيكل لا يطلق استثناءات أثناء العمليات ولا يُرجع مواصفات أخطاء أو رموز أخطاء من النوع ara::core::ErrorCode. وعليه، فإن سيناريوهات الأخطاء لا تنشأ داخل الهيكل نفسه، بل من المعالجة الخاطئة للكلمتين الجزئيتين في طبقات البرمجيات المتصلة. ومن سيناريوهات الأخطاء الحرجة الطفحان الحسابي غير الملاحظ للعداد الكلي عندما تستنفد كل من mLSQW ([SWS_CRYPT_30002]) وmMSQW ([SWS_CRYPT_30003]) نطاق قيمهما الأقصى وتعودان إلى الصفر، وهو ما قد يؤدي إلى ثغرات أمنية في آليات الحماية من إعادة التشغيل. وتحدث انتهاكات أخرى للشروط المسبقة واللاحقة إذا تم إغفال الحمل من mLSQW إلى mMSQW أثناء التحديثات، أو إذا دخلت قيم ذاكرة غير معرفة في الحسابات عند التهيئة غير المكتملة. لذلك، يجب على المكونات المتصلة التأكد قبل المتابعة في المعالجة من تهيئة كلا عنصري البيانات بشكل متسق وتنفيذ منطق الحمل دون أخطاء.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R25-11.
مخطط الفئات UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني