DEENESPTFRRUARHIKOZHNL

بنية ara::crypto::SecureCounter

[SWS_CRYPT_30001] Upstream: RS_CRYPTO_02401

struct SecureCounter {...};

128 bit secure counter made up of two uint64_t’s representing the most significant and least significant bits

Header-Datei#include "ara/crypto/common/base_id_types.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto

دليل المستخدممولَّد بالذكاء الاصطناعي

يوفر عداد أمان 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.

G nara__crypto__SecureCounter126 «struct» SecureCounter + mLSQW + mMSQW

الثوابت

mLSQW متغير

least significant 64 bits

mMSQW متغير

most significant 64 bits

توثيق الثوابت / المتغيرات

متغير mLSQW [SWS_CRYPT_30002] Upstream: RS_CRYPTO_02401

std::uint64_t mLSQW;

least significant 64 bits

Header-Datei#include "ara/crypto/common/base_id_types.h"
Scopestruct ara::crypto::SecureCounter
SymbolmLSQW
Typstd::uint64_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_30002
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_30002@rel:R25-11#3b2888ad
Content hash
3b2888ad
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_30002
Status: valid/unmigrated Version: rel:R25-11#9c1bba58 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_30002@rel:R25-11#9c1bba58
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#cc293c042026-09-30
  • R19-11rel:R19-11#5e8b1de42026-10-14
  • R20-11rel:R20-11#2cbc47402026-10-14
  • R21-11rel:R21-11#2cbc47402026-10-14
  • R22-11rel:R22-11#7b43d24b2026-10-14
  • R23-11rel:R23-11#2949b7102026-10-14
  • R24-11rel:R24-11#2949b7102026-10-14
  • R25-11rel:R25-11#9c1bba582026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

متغير mMSQW [SWS_CRYPT_30003] Upstream: RS_CRYPTO_02401

std::uint64_t mMSQW;

most significant 64 bits

Header-Datei#include "ara/crypto/common/base_id_types.h"
Scopestruct ara::crypto::SecureCounter
SymbolmMSQW
Typstd::uint64_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_30003
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_30003@rel:R25-11#4ca6228e
Content hash
4ca6228e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_30003
Status: valid/unmigrated Version: rel:R25-11#f08f9154 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_30003@rel:R25-11#f08f9154
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2c3bfe792026-09-30
  • R19-11rel:R19-11#5f040e0b2026-10-14
  • R20-11rel:R20-11#df9cc1732026-10-14
  • R21-11rel:R21-11#64ce58302026-10-14
  • R22-11rel:R22-11#f838a21c2026-10-14
  • R23-11rel:R23-11#e9d5ab982026-10-14
  • R24-11rel:R24-11#0cbd132d2026-10-14
  • R25-11rel:R25-11#f08f91542026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill