ترميز التحكم
تُعدّ لغة ترميز التحكم (ECN) لغةً رسميةً موحدةً تُشكّل جزءًا من عائلة معايير ASN.1 الدولية. [ 1 ] صُممت لغة ECN لتُستخدم جنبًا إلى جنب مع ASN.1، وترتبط كل مواصفة من مواصفات ECN (مجموعة متماسكة من تعريفات الترميز) ارتباطًا وثيقًا بمواصفة ASN.1 محددة (مجموعة متماسكة من تعريفات الأنواع).
تم نشر معيار ECN من قبل كل من ITU-T و ISO ، ويسمى رسميًا توصية ITU-T X.692 | ISO/IEC 8825-3، تكنولوجيا المعلومات - قواعد ترميز ASN.1: مواصفات تدوين التحكم في الترميز (ECN) . [ 2 ]
يدعم ECN المواصفات الرسمية لقواعد التشفير غير القياسية لتعريفات أنواع ASN.1، ويهدف إلى استخدامه كلما كان من الضروري استخدام ترميزات تختلف عن تلك التي توفرها قواعد التشفير القياسية مثل BER أو PER.
استخدامات شبكة الاتصالات الإلكترونية
يحتوي نوع ASN.1 على مجموعة من القيم المجردة. تحدد قواعد التشفير تمثيل هذه القيم المجردة كسلسلة من البتات. توجد تطبيقات تتطلب تشفيرات خاصة، تختلف عن تلك التي يمكن الحصول عليها من خلال أي من مجموعات قواعد تشفير ASN.1 القياسية.
فيما يلي بعض الأمثلة على الحالات المحتملة التي تتطلب بعض الانحرافات الصغيرة أو الكبيرة عن الترميزات القياسية:
- قد يتطلب البروتوكول ترميزات مضغوطة للغاية؛ على الرغم من أن قواعد الترميز المعبأ غير المحاذي (PER) مضغوطة بشكل عام، إلا أنه يمكن تحقيق المزيد من الضغط في حالات معينة من خلال استغلال التوزيع الإحصائي لقيم حقول معينة أو عن طريق إزالة أشكال أخرى من التكرار؛
- قد يتطلب البروتوكول أن تكون أجزاء معينة من الرسالة المشفرة متاحة بسهولة دون الحاجة إلى فك تشفير الرسالة بأكملها، على سبيل المثال، باستخدام برنامج فك تشفير PER كامل؛ بشكل عام، لا يُنصح بالقفز إلى منتصف رسالة مشفرة باستخدام PER والبدء في فك التشفير من تلك النقطة، ولكن في بعض الحالات قد يكون ذلك ضروريًا أو مفيدًا؛ في مثل هذه الحالات، يمكن تسهيل الوصول إلى أجزاء معينة من التشفير وجعله موثوقًا به من خلال تحديد نسخة معدلة من PER؛
- هناك بعض البروتوكولات القياسية التي تقوم بتشفير بياناتها بتنسيق طول العلامة والقيمة (TLV) المشابه لـ BER؛ قد يرغب المرء في إنشاء مواصفات ASN.1 رسمية لأحد هذه البروتوكولات وتحديد نسخة معدلة من BER تتطابق مع تنسيق TLV المخصص؛
- هناك العديد من البروتوكولات القياسية التي تقوم بتشفير بياناتها بتنسيق ثنائي مخصص (يتم تحديده عادةً باستخدام الجداول)، والذي قد يختلف اختلافًا كبيرًا عن PER أو أي مجموعة أخرى من قواعد تشفير ASN.1؛ قد يرغب المرء في إنشاء مواصفات ASN.1 رسمية لأحد هذه البروتوكولات وتحديد تشفير ثنائي يطابق التنسيق المخصص.
في الحالات المذكورة أعلاه، وفي العديد من الحالات المشابهة، يُتيح الاستخدام المُدمج لـ ASN.1 وECN إمكانية إنشاء مواصفات رسمية كاملة لكلٍ من البنية المجردة (المخطط) والترميزات. بعد ذلك، يُمكن توليد المُشفِّرات والمُفكِّكات تلقائيًا من المواصفات المُدمجة. يُعد هذا عاملًا هامًا في تقليل حجم العمل واحتمالية حدوث أخطاء عند إنشاء أنظمة قابلة للتشغيل البيني. ومن المزايا الهامة الأخرى لـ ECN توفير دعم تلقائي للأدوات اللازمة للاختبار. تتوفر هذه المزايا مع ASN.1 وحده عندما تكفي قواعد الترميز القياسية، ولكن ECN يُوفرها في الحالات التي لا تكفي فيها هذه القواعد.
نظرة عامة على شبكة الاتصالات الإلكترونية
المفاهيم
لفهم كيفية عمل ECN، من المفيد التركيز على أربعة أنواع من عناصر لغة ASN.1: الأنواع المضمنة (مثل `a` INTEGERو` b` UTF8String)، وكلمات البناء المضمنة (مثل `a` SEQUENCEو` CHOICEb` SEQUENCE OFو`b` OPTIONAL)، والأنواع البسيطة المعرفة من قبل المستخدم (مثل `a` و`b` )، والأنواع المعقدة المعرفة من قبل المستخدم (مثل `a` و` b`). توجد جوانب أخرى من ASN.1 تنعكس أيضًا في ECN، لكننا لن نتناولها هنا.Age::=INTEGER(0..200)Color::=ENUMERATED{green,yellow,red}Name::=SEQUENCE{firstUTF8String,middleUTF8String,lastUTF8String}
تتضمن لغة ECN أنواعًا مُدمجة، وكلمات مفتاحية مُدمجة للدوال البانية، وأنواعًا بسيطة مُعرّفة من قِبل المستخدم، وأنواعًا مُعقدة مُعرّفة من قِبل المستخدم. تُشبه هذه العناصر في لغة ECN تلك الموجودة في ASN.1، ولكن أسماءها تبدأ دائمًا بالرمز # . تُسمى رسميًا فئات التشفير، ولكننا سنُطلق عليها هنا ببساطة أنواع ECN وكلمات مفتاحية مُدمجة لدوال ECN البانية . من أمثلة أنواع ECN: #INTEGER(مُدمجة)، #UTF8String(مُدمجة)، #Age(بسيط مُعرّف من قِبل المستخدم)، #Name(معقد مُعرّف من قِبل المستخدم). من أمثلة كلمات ECN المفتاحية للدوال البانية: #SEQUENCE، #CHOICE، #SEQUENCE-OF، و #OPTIONAL(جميعها مُدمجة).
على عكس ASN.1، يسمح ECN لمستخدم اللغة بتعريف مرادفات لكلمات بناء ECN (على سبيل المثال، ). لذلك، يتضمن ECN كلمات بناء ECN معرفة من قبل المستخدم بالإضافة إلى كلمات بناء ECN مدمجة.#InterleavedSequence ::= #SEQUENCE
من وجهة نظر ECN، يرتبط كل نوع ASN.1 مُعرَّف من قِبل المستخدم، والوارد في مواصفات ASN.1، بنوع ECN مخفي ضمنيًا. يُطلق على هذا النوع المخفي رسميًا اسم بنية التشفير المُولَّدة ضمنيًا، ولكننا سنُشير إليه هنا ببساطة باسم نوع ECN المخفي لنوع ASN.1. تُعدّ أنواع ECN المخفية نوعًا خاصًا من أنواع ECN المُعرَّفة من قِبل المستخدم (يتم توليد تعريف ECN الخاص بها تلقائيًا من نوع ASN.1 مُعرَّف من قِبل المستخدم، بدلًا من أن يُقدِّمه المستخدم)، ولكنها تتصرف مثل أنواع ECN الأخرى المُعرَّفة من قِبل المستخدم.
يُعدّ نوع ECN المخفي لنوع ASN.1 مطابقًا تقريبًا لنوع ASN.1 الأصلي (مع تبسيط طفيف)، وهو نقطة البداية لعملية التشفير المُحددة في ECN، والتي تُنتج في النهاية سلسلة البتات التي تُمثل أي قيمة مُعطاة لنوع ASN.1 الأصلي. لا يُمكن الرجوع مباشرةً إلى نوع ASN.1 (أو أي جزء منه) لغرض تحديد التشفير في ECN، ولكن يُمكن الرجوع إلى نوع ECN المخفي الخاص به. يُمكن الرجوع صراحةً إلى أنواع ECN وكلمات ECN البانية ضمن مواصفات ECN، ويتم تشفيرها بتطبيق القواعد الواردة في مواصفات ECN.
باختصار، تُؤدي مواصفات ECN مهمتين رئيسيتين: فهي تُحدد كيفية تعديل نوع ECN مخفي لإنتاج نوع ECN مخفي جديد ( ملون ؛ انظر أدناه)، وتُحدد كيفية ترميز نوع ECN (وكذلك كل مكون من مكوناته إذا كان نوعًا مُركبًا). يُمكن تطبيق المهمة الأخيرة بشكل تكراري، بمعنى أن خطوة ترميز أحد مكونات نوع ECN قد تُؤدي إلى تعديل إضافي في مكانه للجزء المتبقي من نوع ECN الذي يتم ترميزه. يُمكن أن تستمر هذه العملية عبر أي عدد من الدورات، حتى يتم ترميز نوع ECN النهائي بالكامل، أي حتى يتم توليد جميع البتات التي تُمثل قيمة نوع ASN.1 الأصلي.
وأخيرًا، نقدم مفهوم كائن التشفير . هذا عنصر مهم جدًا في لغة ECN، ويشير إلى كل قاعدة تشفير فردية تشكل جزءًا من مواصفات ECN ويتم تطبيقها على نوع ECN أو كلمة مفتاحية لمنشئ ECN، سواء كانت مدمجة أو معرفة من قبل المستخدم، والتي تظهر في المواصفات.
الآليات
تتمثل الخطوة الأولى في عملية التشفير في التوليد التلقائي لأنواع ECN المخفية من جميع أنواع ASN.1 الموجودة في مواصفات ASN.1. يمكن تعديل أنواع ECN المخفية المقابلة لأنواع ASN.1 المعقدة المُعرَّفة من قِبل المستخدم بواسطة آلية تُسمى التلوين ، والتي تتضمن استبدال أسماء أنواع بعض مكوناتها بمرادفات. من الممكن أيضًا استبدال كلمات ECN المُضمَّنة في المُنشئ (مثل `<input>`, `<input> #SEQUENCE` #OPTIONAL) الموجودة في نوع ECN مخفي بمرادفات. في ECN، توجد بعض المرادفات المُضمَّنة لكل من كلمات المُنشئ والأنواع المُضمَّنة (مثل `<input>` مرادف لـ `<input>`, `<input>` #CONCATENATIONمرادف #SEQUENCEلـ #INT`<input> #INTEGER`)، ولكن يمكن لمستخدم اللغة تعريف كل من الأنواع المُعرَّفة من قِبل المستخدم وكلمات المُنشئ المُعرَّفة من قِبل المستخدم كمرادفات لكلمات أخرى. تهدف خطوة التلوين إلى تجهيز نوع ECN مخفي للخطوة التالية، وهي ترميز مكوناته، وذلك في حال تطلب الأمر ترميزًا مختلفًا لتكرارات مختلفة لنفس نوع ECN أو تكرارات مختلفة لنفس الكلمة المفتاحية لمنشئ ECN الموجودة في نوع ECN المخفي. على سبيل المثال، قد يحتوي نوع ECN مخفي معقد على قائمتين ( #SEQUENCE-OF)، حيث تُرمَّز إحدى القائمتين بإضافة حقل عدّ قبل العنصر الأول، بينما تُرمَّز الأخرى بإضافة نمط إنهاء بعد العنصر الأخير. يمكن تحقيق ذلك، على سبيل المثال، باستبدال #SEQUENCE-OFالكلمة المفتاحية الأولى في نوع ECN المخفي بـ ، ولنقل #CountBasedRepetition، واستبدال #SEQUENCE-OFالكلمة المفتاحية الثانية بـ ، ولنقل #TerminatingPatternBasedRepetition، وتعريف هذين الاسمين كمرادفين مُعرَّفين من قِبل المستخدم للكلمة المفتاحية لمنشئ ECN #SEQUENCE-OF. بمجرد تضمين هاتين الكلمتين المفتاحيتين المختلفتين لمنشئ ECN في نوع ECN المخفي، يمكن ترميز كل قائمة من القائمتين باستخدام كائن ترميز مختلف.
تتمثل الخطوة الثانية من عملية التشفير في تطبيق كائن التشفير على نوع ECN مخفي. ستكون القيمة المراد تشفيرها إحدى القيم الممكنة لنوع ASN.1 المحدد في مواصفات ASN.1، وستختار عملية التشفير نوع ECN المخفي لهذا النوع ASN.1 وتطبق عليه كائن التشفير المناسب.
قد تكون هناك خطوات أخرى تتمثل في التطبيق المتكرر لكائنات التشفير التي تعمل عن طريق استبدال نوع ECN (أو جزء منه) بنوع ECN آخر.
في لغة ECN، توجد أنواع عديدة من كائنات التشفير. بعض هذه الكائنات يُحدد بشكل كامل التشفير الفعلي على مستوى البت لأنواع ECN البسيطة، وهي الأسهل فهمًا. بينما تُطبق كائنات أخرى على كلمات مُنشئ ECN بدلًا من أنواع ECN نفسها، وتُحدد بعض الجوانب الهيكلية لتشفير نوع ECN المُعقد (أو جزء منه) المُنشأ بواسطة كلمة مُنشئ ECN (لكنها لا تُحدد تشفيره بالكامل). أما كائنات أخرى، فتعمل عن طريق استبدال نوع ECN (أو جزء منه) بنوع ECN آخر، والذي يجب تشفيره بعد ذلك بتطبيق كائن تشفير مختلف عليه.
أهم أنواع كائنات التشفير في ECN مدرجة أدناه:
- تحدد بعض كائنات التشفير التشفير على مستوى البت لنوع ECN؛
- تنطبق كائنات التشفير هذه في الغالب على أنواع ECN البسيطة، ولها العديد من المعلمات التي تحدد التشفير على مستوى البت للقيمة، وحجم التشفير، وأي حشو سابق أو لاحق، وأي محاذاة لثمانية بت أو حدود كلمة، وأي انعكاسات بت، وما إلى ذلك.
- تحدد بعض كائنات التشفير أنه يجب استبدال نوع ECN بنوع ECN معرف من قبل المستخدم يحتوي على نوع ECN السابق كأحد مكوناته؛
- يجب تحديد نوع الاستبدال في مواصفات ECN، وليس في مواصفات ASN.1. يجب أن يبدأ اسم نوع ECN المُعرَّف من قِبل المستخدم بحرف "a"
#، ويجب ألا يكون هذا الاسم مطابقًا لاسم أي نوع ECN مخفي.
- يجب تحديد نوع الاستبدال في مواصفات ECN، وليس في مواصفات ASN.1. يجب أن يبدأ اسم نوع ECN المُعرَّف من قِبل المستخدم بحرف "a"
- تحدد بعض كائنات التشفير أنه يجب استبدال نوع ECN بنوع ECN معرف من قبل المستخدم، وتحدد كيفية ربط كل قيمة من النوع الأول بقيمة من النوع الأخير؛
- يجب تحديد نوع الاستبدال في مواصفات ECN، وليس في مواصفات ASN.1. يجب أن يبدأ اسم نوع ECN المُعرَّف من قِبل المستخدم بحرف "a"
#، ويجب ألا يكون هذا الاسم مطابقًا لاسم أي نوع ECN مخفي.
- يجب تحديد نوع الاستبدال في مواصفات ECN، وليس في مواصفات ASN.1. يجب أن يبدأ اسم نوع ECN المُعرَّف من قِبل المستخدم بحرف "a"
- تحدد بعض كائنات التشفير كيفية تمثيل وجود أو عدم وجود مكون من
#SEQUENCEنوع تم الإعلان عنه#OPTIONAL؛ لا يمكن تطبيق كائنات التشفير هذه إلا على أنواع ECN التي تعتبر مكونات اختيارية لنوع ما#SEQUENCE؛
- فيما يلي بعض الطرق النموذجية التي يمكن من خلالها أن تمثل كائنات التشفير هذه وجود المكون الاختياري:
- من خلال استخدام حقل (عادةً ما يكون منطقيًا) تشير قيمته إلى وجود أو عدم وجود المكون الاختياري، والذي تم إدراجه في نوع ECN بواسطة كائن ترميز آخر تم تطبيقه في مرحلة سابقة؛
- بالاعتماد على نمط بت معين يحدث في مواقع بت محددة بدقة ضمن ترميزات جميع القيم الممكنة للمكون الاختياري ولكنه لا يحدث أبدًا ضمن ترميزات أي من الأنواع التي يمكن أن تأتي بعد المكون الاختياري وفقًا لمواصفات ECN؛
- بالاعتماد على حجم التشفير المحيط لتحديد ما إذا كان تشفير المكون الاختياري سيتناسب مع المساحة المتبقية.
- فيما يلي بعض الطرق النموذجية التي يمكن من خلالها أن تمثل كائنات التشفير هذه وجود المكون الاختياري:
- تحدد بعض كائنات التشفير كيفية تمثيل عدد عناصر القائمة (
#SEQUENCE-OF)؛ لا يمكن تطبيق كائنات التشفير هذه إلا على أنواع ECN التي هي#SEQUENCE-OFأنواع؛
- فيما يلي بعض الطرق النموذجية التي يمكن من خلالها أن تمثل كائنات الترميز هذه طول القائمة:
- من خلال استخدام حقل يحتوي على طول القائمة، والذي تم إدراجه في نوع ECN بواسطة كائن ترميز آخر تم تطبيقه في مرحلة سابقة؛
- بالاعتماد على نمط بت معين يحدث في مواقع بت محددة بدقة داخل ترميزات جميع القيم الممكنة للمكون المتكرر للقائمة ولكنه لا يحدث أبدًا داخل ترميزات أي من الأنواع التي يمكن أن تأتي بعد القائمة وفقًا لمواصفات ECN؛
- بالاعتماد على حجم الترميز المحيط لتحديد عدد مرات ظهور ترميز المكون المتكرر التي ستتناسب مع المساحة المتبقية؛
- عن طريق اختيار سلسلة بتات لا تتطابق مع ترميز أي قيمة من قيم المكون المتكرر للقائمة، وإدراج سلسلة البتات هذه بعد العنصر الأخير من القائمة؛
- من خلال استخدام حقل (عادةً ما يكون منطقيًا) داخل المكون المتكرر، والذي تشير قيمته إلى ما إذا كان هذا العنصر هو العنصر الأخير في القائمة.
- فيما يلي بعض الطرق النموذجية التي يمكن من خلالها أن تمثل كائنات الترميز هذه طول القائمة:
- تحدد بعض كائنات الترميز كيفية الإشارة إلى أي من البدائل لنوع معين
#CHOICEموجود، ولا يمكن تطبيقها إلا على أنواع ECN التي هي#CHOICEأنواع؛
- فيما يلي بعض الطرق النموذجية التي يمكن من خلالها أن تشير كائنات الترميز هذه إلى أي من بدائل a
#CHOICEموجود:- من خلال استخدام حقل يحتوي على فهرس البديل، والذي تمت إضافته إلى نوع ECN بواسطة كائن ترميز آخر تم تطبيقه في مرحلة سابقة؛
- بالاعتماد على نمط بت معين يحدث في مواقع بت محددة بدقة ضمن ترميزات جميع القيم الممكنة لكل بديل، وهو مختلف لكل بديل.
- فيما يلي بعض الطرق النموذجية التي يمكن من خلالها أن تشير كائنات الترميز هذه إلى أي من بدائل a
- تحدد بعض كائنات التشفير أنه يجب تشفير نوع ECN عن طريق تطبيق مجموعة قياسية من قواعد التشفير (مثل PER) عليه.
مراجع
- ↑ "ITU-T Rec. X.680 / ISO/IEC 8824-1" . تم الاطلاع عليه بتاريخ 28-08-2008 .
- ↑ "ITU-T Rec. X.692 / ISO/IEC 8825-3" . تم الاطلاع عليه بتاريخ 28-08-2008 .
روابط خارجية
- توصيات الاتحاد الدولي للاتصالات - قطاع تقييس الاتصالات
- تنسيقات تسلسل البيانات
- ASN.1
