فحص التكرار الدوري
يُعدّ فحص التكرار الدوري ( CRC ) رمزًا لكشف الأخطاء، ويُستخدم عادةً في الشبكات الرقمية وأجهزة التخزين لاكتشاف التغييرات غير المقصودة في البيانات الرقمية. تُضاف قيمة فحص قصيرة إلى كتل البيانات الداخلة إلى هذه الأنظمة ، بناءً على باقي قسمة متعددة الحدود لمحتوياتها. عند استرجاع البيانات، تُعاد العملية الحسابية، وفي حال عدم تطابق قيم الفحص، يُمكن اتخاذ إجراءات تصحيحية لمعالجة تلف البيانات. يُمكن استخدام رموز CRC لتصحيح الأخطاء (انظر مرشحات البت ). [ 1 ]
تُسمى رموز التحقق الدورية (CRC) بهذا الاسم لأن قيمة التحقق (التحقق من البيانات) تُعدّ تكرارًا (فهي تُوسّع الرسالة دون إضافة معلومات )، وتعتمد الخوارزمية على الرموز الدورية . تحظى رموز التحقق الدورية بشعبية واسعة نظرًا لسهولة تنفيذها في الأجهزة الثنائية ، وسهولة تحليلها رياضيًا، وكفاءتها العالية في اكتشاف الأخطاء الشائعة الناتجة عن التشويش في قنوات الإرسال. ولأن قيمة التحقق لها طول ثابت، تُستخدم الدالة التي تُولّدها أحيانًا كدالة تجزئة .
مقدمة
تعتمد رموز تصحيح الأخطاء الدورية (CRCs) على نظرية رموز تصحيح الأخطاء الدورية . وقد اقترح دبليو ويسلي بيترسون لأول مرة في عام 1961 استخدام الرموز الدورية المنتظمة ، التي تُشفّر الرسائل بإضافة قيمة تحقق ثابتة الطول، لغرض اكتشاف الأخطاء في شبكات الاتصالات. [ 2 ] تتميز الرموز الدورية بسهولة تطبيقها، كما أنها ملائمة بشكل خاص لاكتشاف أخطاء الاندفاع : وهي عبارة عن تسلسلات متجاورة من رموز البيانات الخاطئة في الرسائل. وهذا أمر بالغ الأهمية لأن أخطاء الاندفاع شائعة في العديد من قنوات الاتصال ، بما في ذلك أجهزة التخزين المغناطيسية والبصرية. عادةً ما يكتشف رمز CRC ذو n بت، عند تطبيقه على كتلة بيانات ذات طول عشوائي، أي اندفاع خطأ منفرد لا يتجاوز n بت، وتكون نسبة اكتشافه لجميع اندفاعات الأخطاء الأطول تقريبًا (1 - 2 - n ) .
يتطلب تحديد رمز CRC تعريف ما يُسمى بمتعددة الحدود المولدة . تصبح هذه المتعددة الحدود هي القاسم في عملية القسمة المطولة ، حيث تُعتبر الرسالة هي المقسوم ، ويُهمل ناتج القسمة ، ويصبح الباقي هو النتيجة. والملاحظة المهمة هي أن معاملات متعددة الحدود تُحسب وفقًا لحسابات حقل منتهٍ ، لذا يمكن دائمًا إجراء عملية الجمع بالتوازي على مستوى البتات (لا يوجد ترحيل بين الأرقام).
عملياً، تستخدم جميع رموز التحقق الدوري الشائعة حقلًا منتهيًا مكونًا من عنصرين، GF(2) . ويُطلق على هذين العنصرين عادةً 0 و1، وهو ما يتوافق بشكل مريح مع بنية الحاسوب.
يُطلق على رمز التحقق الدوري (CRC) اسم رمز التحقق الدوري ذي n بت عندما يكون طول قيمة التحقق n بت. بالنسبة لقيمة n معينة ، يمكن أن يكون هناك عدة رموز تحقق دوري، لكل منها متعددة حدود مختلفة. تتميز متعددة الحدود هذه بأعلى درجة n ، مما يعني أنها تحتوي على n + 1 حدًا. بعبارة أخرى، يبلغ طول متعددة الحدود n + 1 ؛ ويتطلب ترميزها n + 1 بت. تجدر الإشارة إلى أن معظم مواصفات متعددات الحدود تتجاهل إما البت الأكثر أهمية (MSb) أو البت الأقل أهمية (LSb) ، لأنهما دائمًا ما يكونان 1. عادةً ما يكون لرمز التحقق الدوري ومتعددة الحدود المرتبطة به اسم على شكل CRC- n -XXX كما هو موضح في الجدول أدناه.
أبسط نظام للكشف عن الأخطاء، وهو بت التكافؤ ، هو في الواقع CRC ذو بت واحد: فهو يستخدم متعدد الحدود المولد x + 1 (مصطلحان)، [ 3 ] ويحمل اسم CRC-1.
طلب
يقوم الجهاز المزود بتقنية CRC بحساب تسلسل ثنائي قصير وثابت الطول، يُعرف باسم قيمة التحقق أو CRC ، لكل كتلة من البيانات المراد إرسالها أو تخزينها، ثم يضيفها إلى البيانات، مما يشكل كلمة رمزية .
عند استلام أو قراءة كلمة رمزية، يقوم الجهاز إما بمقارنة قيمة التحقق الخاصة به مع قيمة تم حسابها حديثًا من كتلة البيانات، أو بشكل مكافئ، يقوم بإجراء CRC على الكلمة الرمزية بأكملها ويقارن قيمة التحقق الناتجة مع ثابت البقايا المتوقع .
إذا لم تتطابق قيم CRC، فإن الكتلة تحتوي على خطأ في البيانات.
قد يتخذ الجهاز إجراءً تصحيحيًا، مثل إعادة قراءة الكتلة أو طلب إعادة إرسالها. وإلا، يُفترض أن البيانات خالية من الأخطاء (مع ذلك، وباحتمال ضئيل، قد تحتوي على أخطاء غير مكتشفة؛ وهذا أمر متأصل في طبيعة التحقق من الأخطاء). [ 4 ]
سلامة البيانات
صُممت رموز التحقق من صحة البيانات (CRCs) خصيصًا للحماية من أنواع الأخطاء الشائعة في قنوات الاتصال، حيث توفر ضمانًا سريعًا ومعقولًا لسلامة الرسائل المُرسلة. مع ذلك، فهي غير مناسبة للحماية من التلاعب المتعمد بالبيانات.
أولًا، نظرًا لعدم وجود آلية مصادقة، يستطيع المهاجم تعديل الرسالة وإعادة حساب رمز التحقق الدوري (CRC) دون أن يُكتشف التعديل. وعند تخزين رموز التحقق الدوري (CRC) ودوال التجزئة المشفرة مع البيانات، فإنها لا توفر الحماية الكافية ضد التعديل المتعمد للبيانات. لذا، يجب على أي تطبيق يتطلب الحماية من هذه الهجمات استخدام آليات مصادقة تشفيرية، مثل رموز مصادقة الرسائل أو التوقيعات الرقمية (التي تعتمد عادةً على دوال التجزئة المشفرة ).
ثانيًا، على عكس دوال التجزئة المشفرة، فإن CRC دالة قابلة للعكس بسهولة، مما يجعلها غير مناسبة للاستخدام في التوقيعات الرقمية. [ 5 ]
ثالثًا، تحقق CRC علاقة مشابهة لتلك الخاصة بالدالة الخطية (أو بدقة أكبر، الدالة الأفينية ): [ 6 ]
أينيعتمد ذلك على طولوويمكن التعبير عن ذلك أيضاً على النحو التالي، حيث،ولها نفس الطول
ونتيجة لذلك، حتى لو تم تشفير رمز التحقق الدوري (CRC) باستخدام تشفير تدفق يستخدم عملية XOR كعملية دمج (أو نمط تشفير كتلة يحوله فعليًا إلى تشفير تدفق، مثل OFB أو CFB)، فإنه يمكن التلاعب بكل من الرسالة ورمز التحقق الدوري المرتبط بها دون معرفة مفتاح التشفير؛ وكان هذا أحد عيوب التصميم المعروفة لبروتوكول الخصوصية المكافئة السلكية (WEP). [ 7 ]
حساب
لحساب CRC ثنائي مكون من n بت، قم بترتيب البتات التي تمثل المدخلات في صف واحد، وضع نمط ( n + 1 ) بت الذي يمثل قاسم CRC (يسمى " متعدد الحدود ") أسفل الطرف الأيسر من الصف.
في هذا المثال، سنقوم بتشفير رسالة مكونة من 14 بت باستخدام رمز التحقق الدوري (CRC) ذي 3 بتات، وذلك باستخدام متعددة الحدود x³ + x + 1. تُكتب متعددة الحدود بالنظام الثنائي على شكل معاملات؛ متعددة الحدود من الدرجة الثالثة لها 4 معاملات ( 1x³ + 0x² + 1x + 1 ) . في هذه الحالة، المعاملات هي 1، 0، 1، و 1 . يبلغ طول نتيجة الحساب 3 بتات، ولذلك يُطلق عليها رمز التحقق الدوري ذي 3 بتات. مع ذلك، يلزم 4 بتات لتحديد متعددة الحدود بشكل صريح.
ابدأ بالرسالة المراد تشفيرها:
11010011101100
يُضاف إلى هذه القيمة أولاً أصفارٌ تُساوي طول البتات n في رمز التحقق الدوري (CRC). ويتم ذلك لضمان أن تكون كلمة الترميز الناتجة مُنتظمة . إليك الحساب الأولي لحساب رمز التحقق الدوري (CRC) ذي 3 بتات:
11010011101100 000 <--- تم إضافة 3 بتات من اليمين إلى المدخلات 1011 <--- القاسم (4 بتات) = x^3 + x + 1 ------------------ 01100011101100 000 <--- النتيجة
تُطبّق الخوارزمية على البتات التي تعلو المقسوم عليه مباشرةً في كل خطوة. وتكون نتيجة هذه العملية هي عملية XOR الثنائية بين المقسوم عليه والبتات التي تعلوه. أما البتات التي لا تعلو المقسوم عليه، فتُنسخ ببساطة إلى أسفله مباشرةً في تلك الخطوة. ثم يُزاح المقسوم عليه إلى اليمين ليُحاذي أعلى بت متبقٍ قيمته 1 في المدخلات، وتُكرر العملية حتى يصل المقسوم عليه إلى نهاية يمين صف المدخلات. إليك الحساب الكامل:
11010011101100 000 <--- تم إضافة 3 بتات من اليمين إلى المدخلات 1011 <--- المقسوم عليه 01100011101100 000 <--- النتيجة (البتات الأربعة الأولى هي عملية XOR مع المقسوم عليه أدناه، أما باقي البتات فتبقى دون تغيير) 1011 <--- المقسوم عليه ... 00111011101100 000 1011 00010111101100 000 1011 00000001101100 000 <--- ينتقل المقسوم عليه ليتوافق مع الرقم 1 التالي في المقسوم (لأن ناتج القسمة في تلك الخطوة كان صفرًا) 1011 (بمعنى آخر، لا يتحرك بالضرورة بت واحد في كل تكرار) 00000000110100 000 1011 00000000011000 000 1011 00000000001110 000 1011 00000000000101 000 101 1 ----------------- 00000000000000 100 <--- الباقي (3 بتات). تتوقف خوارزمية القسمة هنا لأن المقسوم يساوي صفرًا.
بما أن بتّ القاسم الأيسر يُصفّر كل بتّ إدخال يمرّ به، فعند انتهاء هذه العملية، تكون البتات الوحيدة في صف الإدخال التي يمكن أن تكون غير صفرية هي البتات n الموجودة في الطرف الأيمن من الصف. هذه البتات n هي باقي خطوة القسمة، وستكون أيضًا قيمة دالة التحقق من التكرار الدوري (CRC) (إلا إذا كانت مواصفات CRC المختارة تتطلب معالجة لاحقة).
يمكن التحقق بسهولة من صحة الرسالة المستلمة بإعادة إجراء العملية الحسابية المذكورة أعلاه، ولكن هذه المرة مع إضافة قيمة التحقق بدلاً من الأصفار. يجب أن يكون الباقي مساوياً للصفر في حال عدم وجود أخطاء قابلة للكشف.
11010011101100 100 <--- إدخال مع قيمة التحقق 1011 <--- المقسوم عليه 01100011101100 100 <--- النتيجة 1011 <--- المقسوم عليه ... 00111011101100 100 ...... 00000000001110 100 1011 00000000000101 100 101 1 ------------------ 00000000000000 000 <--- الباقي
يوضح كود بايثون التالي دالةً تُعيد باقي التحقق من سلامة البيانات (CRC) الأولي لمدخلات متعددة الحدود مُختارة، مع إضافة 1 أو 0 كحشو أولي. يعمل هذا الكود مع المدخلات النصية وليس الأرقام الخام.
دالة crc_remainder ( سلسلة بتات الإدخال ، سلسلة بتات متعددة الحدود ، الحشو الأولي ): """حساب باقي CRC لسلسلة بتات باستخدام متعددة حدود مختارة. يجب أن يكون الحشو الأولي '1' أو '0'. """ سلسلة بتات متعددة الحدود = سلسلة بتات متعددة الحدود . lstrip ( "0" ) طول الإدخال = طول ( سلسلة بتات الإدخال ) الحشو الأولي = ( طول ( سلسلة بتات متعددة الحدود ) - 1 ) * الحشو الأولي مصفوفة الإدخال المحشوة = قائمة ( سلسلة بتات الإدخال + الحشو الأولي ) بينما "1" في مصفوفة الإدخال المحشوة [: طول الإدخال ]: الإزاحة الحالية = مصفوفة الإدخال المحشوة . index ( "1" ) for i in range ( len ( polynomial_bitstring )): input_padded_array [ cur_shift + i ] \ = str ( int ( polynomial_bitstring [ i ] != input_padded_array [ cur_shift + i ])) return "" . join ( input_padded_array )[ len_input :]دالة crc_check ( سلسلة بتات الإدخال ، سلسلة بتات متعددة الحدود ، قيمة التحقق ): """حساب قيمة التحقق CRC لسلسلة بتات باستخدام متعددة حدود مختارة.""" سلسلة بتات متعددة الحدود = سلسلة بتات متعددة الحدود . lstrip ( "0" ) طول الإدخال = طول ( سلسلة بتات الإدخال ) الحشو الأولي = قيمة التحقق مصفوفة الإدخال المحشوة = قائمة ( سلسلة بتات الإدخال + الحشو الأولي ) بينما "1" في مصفوفة الإدخال المحشوة [: طول الإدخال ]: الإزاحة الحالية = مصفوفة الإدخال المحشوة . index ( "1" ) for i in range ( len ( polynomial_bitstring )): input_padded_array [ cur_shift + i ] \ = str ( int ( polynomial_bitstring [ i ] != input_padded_array [ cur_shift + i ])) return ( "1" not in "" . join ( input_padded_array )[ len_input :])>>> crc_remainder ( '11010011101100' , '1011' , '0' ) '100' >>> crc_check ( '11010011101100' , '1011' , '100' ) Trueالرياضيات
يكشف التحليل الرياضي لهذه العملية الشبيهة بالقسمة عن كيفية اختيار قاسم يضمن خصائص جيدة لاكتشاف الأخطاء. في هذا التحليل، تُعتبر أرقام سلاسل البتات معاملاتٍ لكثير حدود في متغير ما x، وهي معاملات تنتمي إلى الحقل المنتهي GF(2) (الأعداد الصحيحة بتردد 2، أي إما صفر أو واحد)، بدلاً من الأعداد المألوفة. مجموعة كثيرات الحدود الثنائية هي حلقة رياضية .
تصميم كثيرات الحدود
يُعد اختيار متعدد الحدود المولد أهم جزء في تطبيق خوارزمية التحقق من التكرار الدوري (CRC). يجب اختيار متعدد الحدود لتعظيم قدرات اكتشاف الأخطاء مع تقليل احتمالات التصادم الإجمالية.
أهم سمة لكثير الحدود هي طوله (أكبر درجة (أس) + 1 لأي حد في كثير الحدود)، وذلك بسبب تأثيره المباشر على طول قيمة التحقق المحسوبة.
أطوال كثيرات الحدود الأكثر استخدامًا هي 9 بتات (CRC-8)، و17 بتًا (CRC-16)، و33 بتًا (CRC-32)، و65 بتًا (CRC-64). [ 3 ]
يُطلق على رمز التحقق الدوري (CRC) اسم رمز التحقق الدوري ذي n بت عندما تكون قيمة التحقق الخاصة به n بت. بالنسبة لقيمة n معينة ، يمكن أن يكون هناك عدة رموز تحقق دوري، لكل منها متعددة حدود مختلفة. تكون أعلى درجة لمتعددة الحدود هذه n ، وبالتالي n + 1 حدًا (طول متعددة الحدود n + 1 ). أما الباقي فيكون طوله n . يُسمى رمز التحقق الدوري بالصيغة CRC- n -XXX.
يعتمد تصميم متعدد حدود CRC على أقصى طول إجمالي للكتلة المراد حمايتها (البيانات + بتات CRC)، وميزات الحماية من الأخطاء المطلوبة، ونوع الموارد اللازمة لتنفيذ CRC، بالإضافة إلى الأداء المطلوب. من المفاهيم الخاطئة الشائعة أن أفضل متعددات حدود CRC تُشتق إما من متعددات حدود غير قابلة للاختزال أو من متعددات حدود غير قابلة للاختزال مضروبة في العامل 1 + x ، مما يضيف إلى الكود القدرة على اكتشاف جميع الأخطاء التي تؤثر على عدد فردي من البتات. [ 8 ] في الواقع، يجب مراعاة جميع العوامل المذكورة أعلاه عند اختيار متعدد الحدود، وقد يؤدي ذلك إلى متعدد حدود قابل للاختزال. مع ذلك، سيؤدي اختيار متعدد حدود قابل للاختزال إلى نسبة معينة من الأخطاء التي لم يتم اكتشافها، نظرًا لوجود قواسم صفرية في حلقة القسمة .
تكمن ميزة اختيار متعددة حدود أولية كمولد لرمز CRC في أن الرمز الناتج يتمتع بأقصى طول إجمالي للكتلة، بمعنى أن جميع الأخطاء المكونة من بت واحد ضمن طول تلك الكتلة لها بواقي مختلفة (تسمى أيضًا متلازمات )، وبالتالي، بما أن الباقي دالة خطية للكتلة، يمكن للرمز اكتشاف جميع الأخطاء المكونة من بتين ضمن طول تلك الكتلة.إذا كانت درجة متعددة الحدود المولدة الأولية هي ، فإن أقصى طول إجمالي للكتلة هووالرمز المرتبط به قادر على اكتشاف أي أخطاء أحادية البت أو ثنائية البت. [ 9 ] ومع ذلك، إذا استخدمنا متعدد الحدود المولد، أينهو كثير حدود أولي من الدرجةإذن، يكون الحد الأقصى لطول الكتلة الكلي هووالبرنامج قادر على اكتشاف الأخطاء الفردية والمزدوجة والثلاثية وأي عدد فردي من الأخطاء.
متعدد الحدوديمكن اختيار طرق تحليل أخرى لتحقيق التوازن بين أقصى طول إجمالي للكتلة وقدرة الكشف عن الأخطاء المطلوبة. تُعدّ رموز BCH فئةً قويةً من هذه كثيرات الحدود، وهي تشمل المثالين السابقين. بغض النظر عن خصائص اختزال كثير حدود المولد من الدرجة r ، إذا كان يتضمن الحد "+1"، فسيكون الرمز قادرًا على كشف أنماط الأخطاء المحصورة في نافذة من r بتات متجاورة. تُسمى هذه الأنماط "انفجارات الأخطاء".
مواصفة
يصبح مفهوم رمز التحقق الدوري (CRC) كرمز لكشف الأخطاء معقدًا عندما يستخدمه مطور أو لجنة معايير لتصميم نظام عملي. فيما يلي بعض هذه التعقيدات:
- أحيانًا، تُضيف بعض التطبيقات نمط بتات ثابتًا إلى بداية سلسلة البتات المراد فحصها. يُفيد هذا الأمر عندما قد تُضيف أخطاء التوقيت بتات أصفار أمام الرسالة، وهو تغيير من شأنه أن يُبقي قيمة الفحص دون تغيير.
- عادةً، ولكن ليس دائمًا، تُلحق عملية التنفيذ n بتًا من الأصفار ( حيث n هو حجم CRC) بتدفق البتات المراد فحصه قبل إجراء عملية القسمة متعددة الحدود. وقد تم توضيح هذه العملية بالتفصيل في مقالة "حساب CRC" . تكمن ميزة هذه الطريقة في أن باقي تدفق البتات الأصلي بعد إضافة قيمة الفحص يساوي صفرًا تمامًا، وبالتالي يمكن فحص CRC ببساطة عن طريق إجراء القسمة متعددة الحدود على تدفق البتات المُستلم ومقارنة الباقي بالصفر. ونظرًا لخاصيتي التجميع والتبديل لعملية XOR، يمكن للتطبيقات العملية التي تعتمد على الجداول الحصول على نتيجة مكافئة عدديًا لإضافة الأصفار دون الحاجة إلى إضافة أي أصفار بشكل صريح، وذلك باستخدام خوارزمية مكافئة وأسرع [ 8 ] تجمع بين تدفق بتات الرسالة والتدفق الذي يتم إخراجه من سجل CRC.
- في بعض الأحيان، يقوم التنفيذ بعملية XOR لدمج نمط بت ثابت في باقي قسمة كثير الحدود.
- ترتيب البتات: تعتبر بعض الأنظمة البت الأقل أهمية في كل بايت هو "الأول"، مما يعني أثناء القسمة متعددة الحدود أنه "الأيسر"، وهو ما يتعارض مع فهمنا المعتاد لمصطلح "الأقل أهمية". يكون هذا الاصطلاح منطقيًا عند التحقق من سلامة البيانات (CRC) عبر منفذ التسلسل في الأجهزة، لأن بعض اصطلاحات نقل البيانات الشائعة عبر منفذ التسلسل تُرسل البايتات بدءًا من البت الأقل أهمية.
- ترتيب البايتات : في خوارزميات التحقق من التكرار الدوري متعددة البايتات، قد يحدث لبسٌ حول ما إذا كان البايت المُرسَل أولاً (أو المُخزَّن في البايت ذي العنوان الأدنى في الذاكرة) هو البايت الأقل أهمية (LSB) أم البايت الأكثر أهمية (MSB). على سبيل المثال، تقوم بعض خوارزميات التحقق من التكرار الدوري ذات 16 بت بتبديل بايتات قيمة التحقق.
- حذف البت الأعلى رتبة من متعدد الحدود المقسوم عليه: بما أن البت الأعلى رتبة هو دائمًا 1، وبما أن CRC ذو n بت يجب أن يتم تعريفه بواسطة مقسوم عليه ( n + 1 ) بت يتجاوز سجل n بت ، فإن بعض الكتاب يفترضون أنه ليس من الضروري ذكر البت الأعلى رتبة للمقسوم عليه.
- حذف البت ذي الرتبة الأدنى من كثير الحدود المقسوم عليه: بما أن البت ذي الرتبة الأدنى يساوي دائمًا 1، فإن مؤلفين مثل فيليب كوبمان يمثلون كثيرات الحدود مع الحفاظ على البت ذي الرتبة الأعلى، ولكن بدون البت ذي الرتبة الأدنى (البت ذي الرتبة الأعلى).أو حد واحد). يرمز هذا الاصطلاح إلى متعددة الحدود كاملة بدرجتها في عدد صحيح واحد.
تعني هذه التعقيدات وجود ثلاث طرق شائعة للتعبير عن متعددة الحدود كعدد صحيح: الطريقتان الأوليان، وهما صورتان معكوسة في النظام الثنائي، هما الثوابت الموجودة في الشيفرة؛ أما الثالثة فهي العدد الموجود في أبحاث كوبمان. في كل حالة، يُحذف حد واحد. لذا فإن متعددة الحدوديمكن نسخها على النحو التالي:
- 0x3 = 0b0011، وهو ما يمثل(رمز MSB أولاً)
- 0xC = 0b1100، يمثل(رمز يبدأ بالبت الأقل أهمية)
- 0x9 = 0b1001، وهو ما يمثل(تدوين كوبمان)
يتم عرضها في الجدول أدناه على النحو التالي:
| اسم | طبيعي | معكوس | المقلوب المعكوس |
|---|---|---|---|
| CRC-4 | 0x3 | 0xC | 0x9 |
التعتيم
قد يتم إخفاء رموز التحقق الدوري (CRC) في البروتوكولات الخاصة باستخدام قيمة أولية غير تافهة وعملية XOR نهائية، لكن هذه التقنيات لا تُدخل قوة تشفيرية في الخوارزمية ويمكن عكس هندستها باستخدام طرق مباشرة. [ 10 ]
المعايير والاستخدام الشائع
تم دمج العديد من أنواع فحوصات التكرار الدوري في المعايير التقنية . ولا يُناسب أي خوارزمية، أو أي خوارزمية من كل درجة، جميع الأغراض؛ إذ يوصي كوبمان وشاكرافارتي باختيار متعددة الحدود وفقًا لمتطلبات التطبيق والتوزيع المتوقع لأطوال الرسائل. [ 11 ] وقد أدى تعدد أنواع فحوصات التكرار الدوري (CRC) المستخدمة إلى إرباك المطورين، وهو وضع سعى المؤلفون إلى معالجته. [ 8 ] وهناك ثلاث متعددات حدود مُبلغ عنها لـ CRC-12، [ 11 ] واثنان وعشرون تعريفًا متضاربًا لـ CRC-16، وسبعة تعريفات لـ CRC-32. [ 12 ]
إنّ كثيرات الحدود الشائعة الاستخدام ليست بالضرورة الأكثر كفاءة. فمنذ عام ١٩٩٣، قام كوبمان وكاستانيولي وآخرون بدراسة فضاء كثيرات الحدود التي يتراوح حجمها بين ٣ و٦٤ بتًا، [ ١١ ] [ ١٣ ] [ ١٤ ] [ ١٥ ] ووجدوا أمثلةً ذات أداء أفضل بكثير (من حيث مسافة هامينغ لحجم رسالة مُحدد) من كثيرات الحدود المستخدمة في البروتوكولات السابقة، ونشروا أفضلها بهدف تحسين قدرة اكتشاف الأخطاء في المعايير المستقبلية. [ ١٤ ] وعلى وجه الخصوص، اعتمد كلٌّ من بروتوكول iSCSI وبروتوكول SCTP إحدى نتائج هذا البحث، وهي كثيرة حدود CRC-32C (كاستانيولي).
كان تصميم متعدد الحدود ذي 32 بت، الأكثر شيوعًا بين هيئات التقييس، CRC-32-IEEE، ثمرة جهد مشترك بين مختبر روما وقسم الأنظمة الإلكترونية التابع للقوات الجوية، قام به جوزيف هاموند وجيمس براون وشيان-شيانغ ليو من معهد جورجيا للتكنولوجيا ، وكينيث براير من شركة ميتري . ظهرت متعدد الحدود ذي 32 بت لأول مرة في منشوراتهم عام 1975: التقرير الفني رقم 2956 لبراير لصالح ميتري، والذي نُشر في يناير/كانون الثاني وأُتيح للنشر العام عبر مركز معلومات تكنولوجيا الدفاع (DTIC) في أغسطس/آب، [ 16 ] وتقرير هاموند وبراون وليو لصالح مختبر روما، والذي نُشر في مايو/أيار. [ 17 ] وقد تضمن كلا التقريرين مساهمات من الفريق الآخر. خلال شهر ديسمبر من عام 1975، قدم براير وهاموند بحثهما في مؤتمر IEEE الوطني للاتصالات: حيث تم اختيار متعددة الحدود IEEE CRC-32، وهي متعددة الحدود المولدة لرمز هامينغ ، لأدائها المتميز في كشف الأخطاء. [ 18 ] ومع ذلك، فإن متعددة الحدود Castagnoli CRC-32C المستخدمة في بروتوكولي iSCSI وSCTP تُضاهي أداءها في الرسائل التي تتراوح أحجامها من 58 بت إلى 131 كيلوبت، وتتفوق عليها في نطاقات أحجام متعددة، بما في ذلك الحجمين الأكثر شيوعًا لحزم الإنترنت. [ 14 ] كما يستخدم معيار ITU -T G.hn أيضًا CRC-32C لكشف الأخطاء في الحمولة (على الرغم من أنه يستخدم CRC-16-CCITT لرؤوس الطبقة الفيزيائية ).
تُنفَّذ عملية حساب CRC-32C في العتاد كعملية ( CRC32) ضمن مجموعة تعليمات SSE4.2 ، التي طُرحت لأول مرة في معمارية Nehalem الدقيقة لمعالجات Intel . كما توفر معمارية ARM AArch64 تسريعًا للعتاد لكلٍّ من عمليتي CRC-32 وCRC-32C.
التمثيلات متعددة الحدود
يسرد الجدول أدناه كثيرات الحدود الخاصة بالخوارزميات المختلفة المستخدمة فقط. قد تفرض اختلافات بروتوكول معين عمليات ما قبل الانعكاس، وما بعد الانعكاس، وترتيب البتات المعكوس كما هو موضح أعلاه. على سبيل المثال، يستخدم CRC-32 المستخدم في Gzip وBzip2 نفس كثيرة الحدود، لكن Gzip يستخدم ترتيب البتات المعكوس، بينما لا يستخدمه Bzip2. [ 12 ] لاحظ أن كثيرات الحدود ذات التكافؤ الزوجي في GF(2) من الدرجة الأكبر من 1 ليست أولية أبدًا. تمثل كثيرة الحدود ذات التكافؤ الزوجي التي تم وضع علامة عليها بأنها أولية في هذا الجدول كثيرة حدود أولية مضروبة في. البت الأكثر أهمية في كثير الحدود هو دائمًا 1، ولا يظهر في التمثيلات السداسية العشرية.
| اسم | الاستخدامات | التمثيلات متعددة الحدود | التكافؤ [ 19 ] | بدائي [ 20 ] | الحد الأقصى لعدد بتات الحمولة حسب مسافة هامينغ [ 21 ] [ 14 ] [ 20 ] | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| طبيعي | معكوس | متبادل | المقلوب المعكوس | ≥ 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 [ 22 ] | ||||
| CRC-1 | معظم الأجهزة؛ تُعرف أيضًا باسم بت التكافؤ | 0x1 | 0x1 | 0x1 | 0x1 | حتى | ||||||||||||||||
| CRC-3- GSM | الشبكات المتنقلة [ 23 ] | 0x3 | 0x6 | 0x5 | 0x5 | غريب | نعم [ 24 ] | – | – | – | – | – | – | – | – | – | – | – | – | – | 4 | ∞ |
| CRC-4-ITU | ITU-T G.704 ، ص 12 | 0x3 | 0xC | 0x9 | 0x9 | غريب | ||||||||||||||||
| CRC-5-EPC | الجيل الثاني من تقنية تحديد الهوية بموجات الراديو [ 25 ] | 0x09 | 0x12 | 0x05 | 0x14 | غريب | ||||||||||||||||
| CRC-5-ITU | ITU-T G.704 ، ص 9 | 0x15 | 0x15 | 0x0B | 0x1A | حتى | ||||||||||||||||
| CRC-5-USB | حزم رموز USB | 0x05 | 0x14 | 0x09 | 0x12 | غريب | ||||||||||||||||
| CRC-6- CDMA2000 -A | الشبكات المتنقلة [ 26 ] | 0x27 | 0x39 | 0x33 | 0x33 | غريب | ||||||||||||||||
| CRC-6- CDMA2000 -B | الشبكات المتنقلة [ 26 ] | 0x07 | 0x38 | 0x31 | 0x23 | حتى | ||||||||||||||||
| CRC-6-DARC | قناة بيانات الراديو [ 27 ] | 0x19 | 0x26 | 0x0D | 0x2C | حتى | ||||||||||||||||
| CRC-6- GSM | الشبكات المتنقلة [ 23 ] | 0x2F | 0x3D | 0x3B | 0x37 | حتى | نعم [ 28 ] | – | – | – | – | – | – | – | – | – | – | 1 | 1 | 25 | 25 | ∞ |
| CRC-6-ITU | ITU-T G.704 ، ص 3 | 0x03 | 0x30 | 0x21 | 0x21 | غريب | ||||||||||||||||
| CRC-7 | أنظمة الاتصالات، ITU-T G.707 ، ITU-T G.832 ، MMC ، SD | 0x09 | 0x48 | 0x11 | 0x44 | غريب | ||||||||||||||||
| CRC-7-MVB | شبكة اتصالات القطارات ، IEC 60870-5 [ 29 ] | 0x65 | 0x53 | 0x27 | 0x72 | غريب | ||||||||||||||||
| CRC-8 | DVB-S2 [ 30 ] | 0xD5 | 0xAB | 0x57 | 0xEA [ 11 ] | حتى | لا [ 31 ] | – | – | – | – | – | – | – | – | – | – | 2 | 2 | 85 | 85 | ∞ |
| CRC-8- أوتوسار | التكامل في مجال السيارات، [ 32 ] OpenSafety [ 33 ] | 0x2F | 0xF4 | 0xE9 | 0x97 [ 11 ] | حتى | نعم [ 31 ] | – | – | – | – | – | – | – | – | – | – | 3 | 3 | 119 | 119 | ∞ |
| CRC-8- بلوتوث | الاتصال اللاسلكي [ 34 ] | 0xA7 | 0xE5 | 0xCB | 0xD3 | حتى | ||||||||||||||||
| CRC-8- CCITT | ITU-T I.432.1 (02/99) ؛ ATM HEC ، و ISDN HEC، وتحديد الخلايا، و SMBus PEC | 0x07 | 0xE0 | 0xC1 | 0x83 | حتى | ||||||||||||||||
| CRC-8- دالاس / ماكسيم | ناقل 1-Wire [ 35 ] | 0x31 | 0x8C | 0x19 | 0x98 | حتى | ||||||||||||||||
| CRC-8-DARC | قناة بيانات الراديو [ 27 ] | 0x39 | 0x9C | 0x39 | 0x9C | غريب | ||||||||||||||||
| CRC-8- GSM -B | الشبكات المتنقلة [ 23 ] | 0x49 | 0x92 | 0x25 | 0xA4 | حتى | ||||||||||||||||
| CRC-8- SAE J1850 | AES3 ؛ OBD | 0x1D | 0xB8 | 0x71 | 0x8E | غريب | ||||||||||||||||
| CRC-8- WCDMA | الشبكات المتنقلة [ 26 ] [ 36 ] | 0x9B | 0xD9 | 0xB3 | 0xCD [ 11 ] | حتى | ||||||||||||||||
| CRC-10 | جهاز الصراف الآلي؛ ITU-T I.610 | 0x233 | 0x331 | 0x263 | 0x319 | حتى | ||||||||||||||||
| CRC-10- CDMA2000 | الشبكات المتنقلة [ 26 ] | 0x3D9 | 0x26F | 0x0DF | 0x3EC | حتى | ||||||||||||||||
| CRC-10- GSM | الشبكات المتنقلة [ 23 ] | 0x175 | 0x2BA | 0x175 | 0x2BA | غريب | ||||||||||||||||
| CRC-11 | فليكس راي [ 37 ] | 0x385 | 0x50E | 0x21D | 0x5C2 | حتى | ||||||||||||||||
| CRC-12 | أنظمة الاتصالات [ 38 ] [ 39 ] | 0x80F | 0xF01 | 0xE03 | 0xC07 [ 11 ] | حتى | ||||||||||||||||
| CRC-12- CDMA2000 | الشبكات المتنقلة [ 26 ] | 0xF13 | 0xC8F | 0x91F | 0xF89 | حتى | ||||||||||||||||
| CRC-12- GSM | الشبكات المتنقلة [ 23 ] | 0xD31 | 0x8CB | 0x197 | 0xE98 | غريب | ||||||||||||||||
| CRC-13-BBC | إشارة الوقت، مفتاح التحويل اللاسلكي [ 40 ] [ 41 ] | 0x1CF5 | 0x15E7 | 0x0BCF | 0x1E7A | حتى | ||||||||||||||||
| CRC-14-DARC | قناة بيانات الراديو [ 27 ] | 0x0805 | 0x2804 | 0x1009 | 0x2402 | حتى | ||||||||||||||||
| CRC-14- GSM | الشبكات المتنقلة [ 23 ] | 0x202D | 0x2D01 | 0x1A03 | 0x3016 | حتى | ||||||||||||||||
| CRC-15- CAN | 0xC599 [ 42 ] [ 43 ] | 0x4CD1 | 0x19A3 | 0x62CC | حتى | |||||||||||||||||
| CRC-15- MPT1327 | [ 44 ] | 0x6815 | 0x540B | 0x2817 | 0x740A | غريب | ||||||||||||||||
| CRC-16-Chakravarty | الأمثل للأحمال ≤ 64 بت [ 29 ] | 0x2F15 | 0xA8F4 | 0x51E9 | 0x978A | غريب | ||||||||||||||||
| CRC-16- ARINC | تطبيقات ACARS [ 45 ] | 0xA02B | 0xD405 | 0xA80B | 0xD015 | غريب | ||||||||||||||||
| CRC-16-CCITT | X.25 ، V.41 ، HDLC FCS ، XMODEM ، Bluetooth ، PACTOR ، SD ، DigRF ، وغيرها الكثير؛ والمعروفة باسم CRC-CCITT | 0x1021 | 0x8408 | 0x811 | 0x8810 [ 11 ] | حتى | ||||||||||||||||
| CRC-16- CDMA2000 | الشبكات المتنقلة [ 26 ] | 0xC867 | 0xE613 | 0xCC27 | 0xE433 | غريب | ||||||||||||||||
| CRC-16- DECT | الهواتف اللاسلكية [ 46 ] | 0x0589 | 0x91A0 | 0x2341 | 0x82C4 | حتى | ||||||||||||||||
| CRC-16- T10 - DIF | SCSI DIF، NVMe (معلومات حماية الحماية 16 بت) [ 47 ] | 0x8BB7 [ 48 ] | 0xEDD1 | 0xDBA3 | 0xC5DB | غريب | ||||||||||||||||
| CRC-16- DNP | DNP، IEC 870 ، M-Bus | 0x3D65 | 0xA6BC | 0x4D79 | 0x9EB2 | حتى | ||||||||||||||||
| CRC-16- IBM | Bisync و Modbus و USB و ANSI X3.28 و SIA DC-07 وغيرها الكثير؛ والمعروفة أيضًا باسم CRC-16 و CRC-16-ANSI | 0x8005 | 0xA001 | 0x4003 | 0xC002 | حتى | ||||||||||||||||
| CRC-16- OpenSafety -A | ناقل بيانات الأمان [ 33 ] | 0x5935 | 0xAC9A | 0x5935 | 0xAC9A [ 11 ] | غريب | ||||||||||||||||
| CRC-16- OpenSafety -B | ناقل بيانات الأمان [ 33 ] | 0x755B | 0xDAAE | 0xB55D | 0xBAAD [ 11 ] | غريب | ||||||||||||||||
| CRC-16- بروفيبوس | شبكات ناقل البيانات الميدانية [ 49 ] | 0x1DCF | 0xF3B8 | 0xE771 | 0x8EE7 | غريب | ||||||||||||||||
| فليتشر-16 | تُستخدم في مجموعات التحقق من Adler-32 A و B | كثيراً ما يُخلط بينه وبين رمز التحقق من التكرار الدوري (CRC)، ولكنه في الواقع رمز التحقق من المجموع الاختباري (checksum)؛ انظر رمز التحقق من المجموع الاختباري لفليتشر. | ||||||||||||||||||||
| CRC-17-CAN | CAN FD [ 50 ] | 0x1685B | 0x1B42D | 0x1685B | 0x1B42D | حتى | ||||||||||||||||
| CRC-21-CAN | CAN FD [ 50 ] | 0x102899 | 0x132281 | 0x064503 | 0x18144C | حتى | ||||||||||||||||
| CRC-24 | فليكس راي [ 37 ] | 0x5D6DCB | 0xD3B6BA | 0xA76D75 | 0xAEB6E5 | حتى | ||||||||||||||||
| CRC-24- Radix-64 | OpenPGP ، RTCM 104v3 | 0x864CFB | 0xDF3261 | 0xBE64C3 | 0xC3267D | حتى | ||||||||||||||||
| CRC-24- WCDMA | يُستخدم في نظام التشغيل OS-9 RTOS . القيمة المتبقية = 0x800FE3. [ 51 ] | 0x800063 | 0xC60001 | 0x8C0003 | 0xC00031 | حتى | نعم [ 52 ] | – | – | – | – | – | – | – | – | – | – | 4 | 4 | 8388583 | 8388583 | ∞ |
| CRC-30 | CDMA | 0x2030B9C7 | 0x38E74301 | 0x31CE8603 | 0x30185CE3 | حتى | ||||||||||||||||
| CRC-32 | ISO 3309 ( HDLC )، ANSI X3.66 ( ADCCP )، FIPS PUB 71، FED-STD-1003، ITU-T V.42 ، ISO/IEC/IEEE 802-3 ( إيثرنت )، ISO/IEC/IEEE 802-11 ( واي فاي )، SATA ، MPEG-2 ، PKZIP ، Gzip ، Bzip2 ، PCI Express ، HDMI ، POSIX cksum ، [ 53 ] PNG ، [ 54 ] ZMODEM ، وغيرها الكثير | 0x04C11DB7 | 0xEDB88320 | 0xDB710641 | 0x82608EDB [ 14 ] | غريب | نعم | – | 10 | – | – | 12 | 21 | 34 | 57 | 91 | 171 | 268 | 2974 | 91607 | 4294967263 | ∞ |
| CRC-32C (كاستانيولي) | iSCSI ، NVMe (معلومات الحماية 32 بت) [ 47 ] ، SCTP ، حمولة G.hn ، SSE4.2 ، Btrfs ، ext4 ، ReFS ، [ 55 ] VHDX ، [ 56 ] Ceph | 0x1EDC6F41 | 0x82F63B78 | 0x05EC76F1 | 0x8F6E37A0 [ 14 ] | حتى | نعم | 6 | – | 8 | – | 20 | – | 47 | – | 177 | – | 5243 | – | 2147483615 | – | ∞ |
| CRC-32K (Koopman {1,3,28}) | ممتاز في التعامل مع طول إطار إيثرنت، أداء ضعيف مع الملفات الطويلة | 0x741B8CD7 | 0xEB31D82E | 0xD663B05D | 0xBA0DC66B [ 14 ] | حتى | لا | 2 | – | 4 | – | 16 | – | 18 | – | 152 | – | 16360 | – | 114663 | – | ∞ |
| CRC-32K 2 (Koopman {1,1,30}) | ممتاز في التعامل مع طول إطار إيثرنت، أداء ضعيف مع الملفات الطويلة | 0x32583499 | 0x992C1A4C | 0x32583499 | 0x992C1A4C [ 14 ] | حتى | لا | – | – | 3 | – | 16 | – | 26 | – | 134 | – | 32738 | – | 65506 | – | ∞ |
| CRC-32Q | الطيران؛ AIXM [ 57 ] | 0x814141AB | 0xD5828281 | 0xAB050503 | 0xC0A0A0D5 | حتى | ||||||||||||||||
| أدلر-32 | غالباً ما يُخلط بينه وبين رمز التحقق من التكرار الدوري (CRC)، ولكنه في الواقع رمز التحقق من المجموع الاختباري؛ انظر أدلر-32 | |||||||||||||||||||||
| CRC-40- GSM | قناة التحكم GSM [ 58 ] [ 59 ] [ 60 ] | 0x0004820009 | 0x9000412000 | 0x2000824001 | 0x8002410004 | حتى | ||||||||||||||||
| CRC-64- ECMA | ECMA-182 صفحة 51، XZ Utils | 0x42F0E1EBA9EA3693 | 0xC96C5795D7870F42 | 0x92D8AF2BAF0E1E85 | 0xA17870F5D4F51B49 | حتى | ||||||||||||||||
| CRC-64-ISO | ISO 3309 ( HDLC )، Swiss-Prot / TrEMBL ؛ تعتبر ضعيفة للتجزئة [ 61 ] | 0x000000000000001B | 0xD800000000000000 | 0xB000000000000001 | 0x800000000000000D | غريب | ||||||||||||||||
| CRC-64-Rocksoft | NVMe (معلومات حماية الحماية 64 بت) [ 47 ] | 0xAD93D23594C93659 | 0x9A6C9329AC4BC9B5 | 0x34D926535897936B | 0xD6C9E91ACA649B2C | غريب | ||||||||||||||||
التطبيقات
- تطبيق CRC32 في GNU Radio حتى الإصدار 3.6.1 (حوالي عام 2012)
- كود برمجي بلغة C لحساب مجموع التحقق CRC مع العديد من أنواع CRC المختلفة للاختيار من بينها
- CRC-32 - رمز روزيتا
كتالوجات CRC
انظر أيضاً
مراجع
- ↑ "خوارزمية لتصحيح أخطاء التحقق من التكرار الدوري" . drdobbs.com . مؤرشف من الأصل في 20 يوليو 2017. تم الاطلاع عليه في 28 يونيو 2017 .
- ↑ بيترسون، دبليو دبليو؛ براون، دي تي (يناير 1961). "الرموز الدورية لكشف الأخطاء". وقائع معهد مهندسي الراديو . 49 (1): 228-235 . رمز Bibcode : 1961PIRE...49..228P . doi : 10.1109/JRPROC.1961.287814 . S2CID 51666741 .
- 1 2 إرجين، مصطفى (21 يناير 2008). "2.3.3 ترميز كشف الأخطاء". النطاق العريض المتنقل . سبرينغر . ص 29-30 . doi : 10.1007/978-0-387-68192-4_2 . ISBN 978-0-387-68192-4.
- ↑ ريتر، تيري (فبراير 1986). "لغز CRC العظيم" . مجلة دكتور دوب . 11 (2): 26-34 ، 76-83 . مؤرشف من الأصل في 16 أبريل 2009. تم الاطلاع عليه في 21 مايو 2009 .
- ↑ ستيج، مارتن؛ بلوتز، هنريك؛ مولر، وولف؛ ريدليش، ينس-بيتر (مايو 2006). "عكس CRC - النظرية والتطبيق" ( ملف PDF) . جامعة هومبولت برلين. ص 17. SAR-PR-2006-05. مؤرشف من الأصل (ملف PDF) في 19 يوليو 2011. تم الاطلاع عليه في 4 فبراير 2011.
توفر الطرق المعروضة وسيلة سهلة وفعالة للغاية لتعديل بياناتك بحيث يتم حسابها وفقًا لـ CRC الذي تريده أو على الأقل تعرفه مسبقًا.
- ↑ "تصميم الخوارزمية - لماذا يُقال إن CRC خطي؟" . موقع Cryptography Stack Exchange . تم الاطلاع عليه بتاريخ 5 مايو 2019 .
- ↑ كام-وينجيت، نانسي؛ هاوسلي، روس؛ فاغنر، ديفيد؛ ووكر، جيسي (مايو 2003). "ثغرات أمنية في بروتوكولات ربط البيانات 802.11" ( ملف PDF) . مجلة اتصالات ACM . 46 (5): 35-39 . CiteSeerX 10.1.1.14.8775 . doi : 10.1145/769800.769823 . S2CID 3132937. مؤرشف (ملف PDF) من الأصل في 26 مايو 2013. تم الاطلاع عليه في 1 نوفمبر 2017 .
- 1 2 3 ويليامز، روس ن. (24 سبتمبر 1996). "دليل مبسط لخوارزميات كشف أخطاء CRC الإصدار 3.0" . مؤرشف من الأصل في 2 أبريل 2018. تم الاطلاع عليه في 23 مايو 2019 .
- ↑ بريس، دبليو إتش؛ تيوكولسكي، إس إيه؛ فيترلينغ، دبليو تي؛ فلانيري، بي بي (2007). "القسم 22.4 التكرار الدوري ومجموعات التحقق الأخرى" . وصفات عددية: فن الحوسبة العلمية ( الطبعة الثالثة). مطبعة جامعة كامبريدج. ISBN 978-0-521-88068-8أُرشف من المصدر الأصلي بتاريخ 13 يوليو 2024. تم الاطلاع عليه بتاريخ 20 أغسطس 2024 .
- ↑ إيوينغ، غريغوري سي. (مارس 2010). "الهندسة العكسية لخوارزمية CRC" . كرايستشيرش: جامعة كانتربري. مؤرشف من الأصل في 7 أغسطس 2011. تم الاطلاع عليه في 26 يوليو 2011 .
- 1 2 3 4 5 6 7 8 9 10 كوبمان، فيليب؛ تشاكرافارتي، تريديب (يونيو 2004). "اختيار متعدد الحدود لرمز التكرار الدوري (CRC) للشبكات المدمجة". المؤتمر الدولي للأنظمة والشبكات الموثوقة، 2004 (ملف PDF) . الصفحات 145-154 . CiteSeerX 10.1.1.648.9080 . doi : 10.1109/DSN.2004.1311885 . ISBN 978-0-7695-2052-0S2CID 793862. مؤرشف (PDF) من الأصل بتاريخ 11 سبتمبر 2011. تم الاطلاع عليه بتاريخ 14 يناير 2011 .
- 1 2 كوك، جريج (15 أغسطس 2020). "كتالوج خوارزميات CRC المُعَلمة" . مؤرشف من الأصل في 1 أغسطس 2020. تم الاسترجاع في 18 سبتمبر 2020 .
- ↑ كاستانيولي، ج.؛ براور، س.؛ هيرمان، م. (يونيو 1993). "تحسين رموز التحقق من التكرار الدوري باستخدام 24 و32 بتًا للتكافؤ". معاملات IEEE في الاتصالات . 41 (6): 883-892 . Bibcode : 1993ITCom..41..883C . doi : 10.1109/26.231911 .
- 1 2 3 4 5 6 7 8 كوبمان، فيليب (يوليو 2002). "رموز التكرار الدوري 32 بت لتطبيقات الإنترنت". وقائع المؤتمر الدولي للأنظمة والشبكات الموثوقة (ملف PDF) . الصفحات 459-468 . CiteSeerX 10.1.1.11.8323 . doi : 10.1109/DSN.2002.1028931 . ISBN 978-0-7695-1597-7S2CID 14775606. مؤرشف (PDF) من الأصل بتاريخ 16 سبتمبر 2012. تم الاطلاع عليه بتاريخ 14 يناير 2011 .
- ↑ كوبمان، فيليب (21 يناير 2016). "أفضل كثيرات حدود CRC" . جامعة كارنيجي ميلون. مؤرشف من الأصل في 20 يناير 2016. تم الاطلاع عليه في 26 يناير 2016 .
- ↑ براير، كينيث (أغسطس 1975). تقييم كثيرات الحدود من الدرجة 32 في كشف الأخطاء على أنماط أخطاء SATIN IV Autovon (تقرير). الخدمة الوطنية للمعلومات التقنية . ADA014825. مؤرشف من الأصل في 31 ديسمبر 2021. تم الاسترجاع في 31 ديسمبر 2021 .
- ↑ هاموند، جوزيف ل. الابن؛ براون، جيمس إي.؛ ليو، شيان-شيانغ (1975). "تطوير نموذج خطأ الإرسال ونموذج التحكم في الخطأ" . تقرير ناسا الفني للاستطلاع/الاستخبارات رقم 76 ( نُشر في مايو 1975): 15344. رمز Bibcode : 1975STIN...7615344H . ADA013939. مؤرشف من الأصل في 31 ديسمبر 2021. تم الاسترجاع في 31 ديسمبر 2021 .
- ↑ براير، كينيث؛ هاموند، جوزيف ل. الابن (ديسمبر 1975). تقييم أداء متعدد الحدود لكشف الأخطاء على قناة AUTOVON . المؤتمر الوطني للاتصالات NTC 75 ، 1-3 ديسمبر 1975، نيو أورليانز، لويزيانا. المجلد 1. معهد مهندسي الكهرباء والإلكترونيات. الصفحات 8-21-5. رمز Bibcode : 1975ntc.....1....8B . OCLC 32688603. 75 CH 1015-7 CSCB.
- ↑ تكتشف رموز التحقق الدوري (CRC) ذات التكافؤ الزوجي أي عدد فردي من أخطاء البتات، على حساب تقليل مسافة هامينغ للأحمال الطويلة. لاحظ أن التكافؤ يُحسب على كامل متعدد الحدود المولد، بما في ذلك الرقم 1 الضمني في البداية أو النهاية. على سبيل المثال، التمثيل الكامل لرمز CRC-1 هو 0x3، والذي يحتوي على بتتين قيمتهما 1. وبالتالي، فإن تكافؤه زوجي.
- 1 2 "32 بت CRC Zoo" . users.ece.cmu.edu . مؤرشف من الأصل في 19 مارس 2018. تم الاطلاع عليه في 5 نوفمبر 2017 .
- ↑ يشير مصطلح "الحمولة" إلى الطول باستثناء حقل CRC.تعني مسافة هامينغ التي تساوي d أنه يمكن اكتشاف d −وتصحيح ⌊( d −
- يتم تحقيق ↑ دائمًا للرسائل الطويلة بشكل تعسفي
- 1 2 3 4 5 6 ETSI TS 100 909 (ملف PDF) . الإصدار 8.9.0. صوفيا أنتيبوليس، فرنسا: المعهد الأوروبي لمعايير الاتصالات. يناير 2005. مؤرشف (ملف PDF) من الأصل في 17 أبريل 2018. تم الاطلاع عليه في 21 أكتوبر 2016 .
- ↑ "3 Bit CRC Zoo" . users.ece.cmu.edu . مؤرشف من الأصل في 7 أبريل 2018. تم الاطلاع عليه في 19 يناير 2018 .
- ↑ بروتوكول UHF RFID من الجيل الثاني من الفئة الأولى (ملف PDF) . الإصدار 1.2.0. EPCglobal . 23 أكتوبر 2008. صفحة 35. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 19 مارس 2012. تم الاطلاع عليه بتاريخ 4 يوليو 2012 . (الجدول 6.12)
- 1 2 3 4 5 6 معيار الطبقة الفيزيائية لأنظمة طيف الانتشار CDMA2000 (ملف PDF) . المراجعة د، الإصدار 2.0. مشروع شراكة الجيل الثالث 2. أكتوبر 2005. الصفحات 2-89 إلى 2-92. مؤرشف من الأصل (ملف PDF) بتاريخ 16 نوفمبر 2013. تم الاطلاع عليه بتاريخ 14 أكتوبر 2013 .
- 1 2 3 "11. استراتيجية تصحيح الأخطاء". ETSI EN 300 751 (ملف PDF) . الإصدار 1.2.1. صوفيا أنتيبوليس، فرنسا: المعهد الأوروبي لمعايير الاتصالات. يناير 2003. الصفحات 67-68 . مؤرشف (ملف PDF) من الأصل في 28 ديسمبر 2015. تم الاطلاع عليه في 26 يناير 2016 .
- ↑ "حديقة بيانات CRC ذات 6 بت" . users.ece.cmu.edu . مؤرشف من الأصل في 7 أبريل 2018. تم الاطلاع عليه في 19 يناير 2018 .
- 1 2 تشاكرافارتي، تريديب (ديسمبر 2001). أداء رموز التكرار الدوري للشبكات المدمجة (ملف PDF) (أطروحة). المشرف: فيليب كوبمان. جامعة كارنيجي ميلون. الصفحات 5، 18. مؤرشفة (ملف PDF) من الأصل في 1 يناير 2014. تم الاطلاع عليها في 8 يوليو 2013 .
- ↑ "5.1.4 مُشفِّر CRC-8 (للتدفقات المُجزأة فقط)". EN 302 307 (ملف PDF) . الإصدار 1.3.1. صوفيا أنتيبوليس، فرنسا: المعهد الأوروبي لمعايير الاتصالات. مارس 2013. ص 17. مؤرشف (ملف PDF) من الأصل في 30 أغسطس 2017. تم الاطلاع عليه في 29 يوليو 2016 .
- 1 2 "8 بت CRC Zoo" . users.ece.cmu.edu . مؤرشف من الأصل في 7 أبريل 2018. تم الاطلاع عليه في 19 يناير 2018 .
- ↑ "7.2.1.2 حساب CRC متعدد الحدود 0x2F ذو 8 بت". مواصفات إجراءات CRC (ملف PDF) . 4.2.2. ميونخ: AUTOSAR. 22 يوليو 2015. ص 24. مؤرشف من الأصل (ملف PDF) في 24 يوليو 2016. تم الاطلاع عليه في 24 يوليو 2016 .
- 1 2 3 "5.1.1.8 حقل فحص التكرار الدوري (CRC-8 / CRC-16)". مواصفات ملف تعريف الأمان openSAFETY: مسودة اقتراح العمل EPSG رقم 304. 1.4.0. برلين: مجموعة توحيد معايير Ethernet POWERLINK. 13 مارس 2013. ص 42. مؤرشف من الأصل في 12 أغسطس 2017. تم الاطلاع عليه في 22 يوليو 2016 .
- ↑ "B.7.1.1 جيل HEC". مواصفات نظام البلوتوث . المجلد 2. مجموعة بلوتوث الخاصة. 2 ديسمبر 2014. الصفحات 144-145 . مؤرشف من الأصل في 26 مارس 2015. تم الاطلاع عليه في 20 أكتوبر 2014 .
- ↑ ويتفيلد، هاري (24 أبريل 2001). "XFCNs لحسابات فحص التكرار الدوري" . مؤرشف من الأصل في 25 مايو 2005.
- ↑ ريتشاردسون، أندرو (17 مارس 2005). دليل WCDMA . مطبعة جامعة كامبريدج. ص 223. ISBN 978-0-521-82815-4.
- 1 2 مواصفات بروتوكول FlexRay . 3.0.1. اتحاد Flexray. أكتوبر 2010. ص 114. (4.2.8 Header CRC (11 bits))
- ↑ بيريز، أ. (1983). "حسابات CRC على مستوى البايت". IEEE Micro . 3 (3): 40–50 . Bibcode : 1983IMicr...3c..40P . doi : 10.1109/MM.1983.291120 . S2CID 206471618 .
- ↑ رامابادران، تي في؛ غايتوندي، إس إس (1988). "دليل تعليمي حول حسابات CRC". IEEE Micro . 8 (4): 62–75 . Bibcode : 1988IMicr...8d..62R . doi : 10.1109/40.7773 . S2CID 10216862 .
- ↑ "فك تشفير بيانات الراديو طويلة الموجة باستخدام HC11 وMC3371" (ملف PDF) . شركة فريسكيل لأشباه الموصلات. 2004. AN1597/D. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 24 سبتمبر 2015.
- ↑ إيلي، إس آر؛ رايت، دي تي (مارس 1982). بيانات الراديو منخفضة التردد: مواصفات البث التجريبي لهيئة الإذاعة البريطانية 1982 (ملف PDF) . قسم البحوث، شعبة الهندسة، هيئة الإذاعة البريطانية. ص 9. مؤرشف (ملف PDF) من الأصل في 12 أكتوبر 2013. تم الاطلاع عليه في 11 أكتوبر 2013 .
- ↑ فحص التكرار الدوري (CRC): ورقة بيانات مكون PSoC Creator . شركة Cypress Semiconductor. 20 فبراير 2013. ص 4. مؤرشف من الأصل في 2 فبراير 2016. تم الاطلاع عليه في 26 يناير 2016 .
- ↑ "فحص التكرار الدوري (CRC) في إطارات CAN" . CAN في الأتمتة . مؤرشف من الأصل في 1 فبراير 2016. تم الاسترجاع في 26 يناير 2016 .
- ↑ "3.2.3 التشفير والتحقق من الأخطاء". معيار الإشارة لأنظمة الراديو المتنقلة الأرضية الخاصة ذات الوصلات (MPT 1327) (ملف PDF) (الطبعة الثالثة ). أوفكوم . يونيو 1997. ص 3. مؤرشف (ملف PDF) من الأصل في 14 يوليو 2012. تم الاطلاع عليه في 16 يوليو 2012 .
- ↑ ريمان، ألبرت؛ ميستر، خوسيه د. (فبراير 1995). "تقرير الاختبار الأولي لنظام الاتصالات والإبلاغ الجوي الأرضي VHF (ACARS)" (ملف PDF) . المركز الفني لهيئة الطيران الفيدرالية. ص 5. مؤرشف من الأصل (ملف PDF) في 2 أغسطس 2012. تم الاطلاع عليه في 7 يوليو 2012 .
- ↑ "6.2.5 التحكم في الأخطاء". ETSI EN 300 175-3 (ملف PDF) . الإصدار 2.5.1. صوفيا أنتيبوليس، فرنسا: المعهد الأوروبي لمعايير الاتصالات. أغسطس 2013. الصفحات 99، 101. مؤرشف (ملف PDF) من الأصل في 1 يوليو 2015. تم الاطلاع عليه في 26 يناير 2016 .
- 1 2 3 مواصفات مجموعة أوامر NVM Express (TM)
- ↑ ثالر، بات (28 أغسطس 2003). "اختيار متعدد الحدود CRC ذو 16 بت" (ملف PDF) . INCITS T10. مؤرشف (ملف PDF) من الأصل في 28 يوليو 2011. تم الاطلاع عليه في 11 أغسطس 2009 .
- ↑ "8.8.4 فحص ثمانية بتات (FCS)". أجزاء معيارية لمواصفات PROFIBUS (ملف PDF) . 1.0. المجلد 9. Profibus International. مارس 1998. صفحة 906. مؤرشف من الأصل (ملف PDF) في 16 نوفمبر 2008. تم الاطلاع عليه في 9 يوليو 2016 .
- 1 2 CAN مع مواصفات معدل البيانات المرن (ملف PDF) . 1.0. شركة روبرت بوش المحدودة. 17 أبريل 2012. صفحة 13. مؤرشف من الأصل (ملف PDF) في 22 أغسطس 2013. (3.2.1 إطار البيانات)
- ↑ "دليل مبرمج نظام التشغيل OS-9" . roug.org . مؤرشف من الأصل بتاريخ 17 يوليو 2018. تم الاطلاع عليه بتاريخ 17 يوليو 2018 .
- ↑ كوبمان، فيليب ب. (20 مايو 2018). "24 بت CRC Zoo" . users.ece.cmu.edu . مؤرشف من الأصل في 7 أبريل 2018. تم الاطلاع عليه في 19 يناير 2018 .
- ↑ "cksum" . pubs.opengroup.org . مؤرشف من الأصل في 18 يوليو 2018. تم الاطلاع عليه في 27 يونيو 2017 .
- ↑ بوتيل، توماس؛ راندرز-بيرسون، غلين؛ وآخرون . (14 يوليو 1998). "مواصفات PNG (رسومات الشبكة المحمولة)، الإصدار 1.2" . Libpng.org. مؤرشف من الأصل في 3 سبتمبر 2011. تم الاطلاع عليه في 3 فبراير 2011 .
- ↑ "تدفقات سلامة نظام الملفات ReFS" .
- ↑ " [ MS-VHDX ] : الهياكل" .
- ↑ دليل AIXM التمهيدي (ملف PDF) . 4.5. المنظمة الأوروبية لسلامة الملاحة الجوية . 20 مارس 2006. مؤرشف (ملف PDF) من الأصل في 20 نوفمبر 2018. تم الاطلاع عليه في 3 فبراير 2019 .
- ↑ ETSI TS 100 909 مؤرشف في 17 أبريل 2018 في Wayback Machine ، الإصدار 8.9.0 (يناير 2005)، القسم 4.1.2 أ
- ↑ غاميل، بيرندت م. (31 أكتوبر 2005). وثائق ماتباك: التشفير - الشفرات . Matpack.de. مؤرشف من الأصل في 25 أغسطس 2013. تم الاطلاع عليه في 21 أبريل 2013 .(ملاحظة: يتم تضمين ملف MpCRC.html مع شفرة المصدر المضغوطة لبرنامج Matpack، ضمن المسار /html/LibDoc/Crypto)
- ↑ جيريميا، باتريك (أبريل 1999). "حساب فحص التكرار الدوري: تطبيق باستخدام TMS320C54x" (ملف PDF) . شركة تكساس إنسترومنتس. ص 5. مؤرشف (ملف PDF) من الأصل في 14 يونيو 2012. تم الاطلاع عليه في 4 يوليو 2012 .
- ↑ جونز، ديفيد ت. "فحص مُحسَّن للتكرار الدوري 64 بت لتسلسلات البروتين" (ملف PDF) . جامعة لندن. مؤرشف (ملف PDF) من الأصل في 7 يونيو 2011. تم الاطلاع عليه في 15 ديسمبر 2009 .
للمزيد من القراءة
- وارن الابن، هنري س. (2013). "14. فحص التكرار الدوري" . متعة المخترق ( الطبعة الثانية). أديسون ويسلي . الصفحات 319-330 . ISBN 978-0-321-84268-8.
- كوبمان، فيليب (2024). فهم المجاميع الاختبارية وفحوصات التكرار الدوري . ASIN B0CVXWDZ99 .
روابط خارجية
- ميترا، جوبين؛ ناياك، تابان (يناير 2017). "معمارية تصميم VLSI (FPGA) قابلة لإعادة التكوين ذات إنتاجية عالية جدًا وزمن استجابة منخفض لـ CRC 32". مجلة التكامل، مجلة VLSI . 56 : 1-14 . doi : 10.1016/j.vlsi.2016.09.005 .
- فحوصات التكرار الدوري ، صفحات الرياضيات، نظرة عامة على اكتشاف الأخطاء في كثيرات الحدود المختلفة
- ويليامز، روس (1993). "دليل مبسط لخوارزميات كشف أخطاء CRC" . مؤرشف من الأصل في 3 سبتمبر 2011. تم الاطلاع عليه في 15 أغسطس 2011 .
- بلاك، ريتشارد (1994). "CRC32 السريع في البرمجيات" . الكتاب الأزرق . مجموعة أبحاث الأنظمة، مختبر الحاسوب، جامعة كامبريدج.تم استخدام الخوارزمية 4 في نظام التشغيل لينكس وBzip2.
- كونافيس، م.؛ بيري، ف. (2005). "نهج منهجي لبناء مولدات CRC عالية الأداء تعتمد على البرمجيات" (ملف PDF) . إنتل. مؤرشف (ملف PDF) من الأصل في 16 ديسمبر 2006. تم الاطلاع عليه في 4 فبراير 2007 .خوارزميات التقطيع بمقدار 4 والتقطيع بمقدار 8
- كوالك، و. (أغسطس 2006). "فحص التكرار الدوري CRC: تحليل الأخطاء وتصحيحها" (ملف PDF) . جامعة أولدنبورغ. مؤرشف (ملف PDF) من الأصل في 11 يونيو 2007. تم الاطلاع عليه في 1 سبتمبر 2006 .— مرشحات البت
- وارن، هنري س. الابن. "فحص التكرار الدوري" (ملف PDF) . متعة المخترقين . مؤرشف من الأصل (ملف PDF) في 3 مايو 2015.— النظرية والتطبيق والأجهزة والبرامج مع التركيز على CRC-32.
- الهندسة العكسية لخوارزمية CRC ( مؤرشفة في 7 أغسطس 2011 على موقع Wayback Machine)
- كوك، جريج. "كتالوج خوارزميات CRC المُعَلمة" . مجلة CRC RevEng . مؤرشف من الأصل في 1 أغسطس 2020. تم الاطلاع عليه في 18 سبتمبر 2020 .
- كوبمان، فيل. "مدونة: Checksum و CRC Central" .— يتضمن روابط لملفات PDF توضح مسافات هامينغ لـ CRC ذات 16 و 32 بت
- — (أبريل 2023). "لماذا تميل الشبكات الحيوية إلى توفير HD=6" .
- كوبمان، فيليب؛ دريسكول، كيفن؛ هول، بريندان (مارس 2015). "خوارزميات رمز التكرار الدوري وخوارزميات التحقق من المجموع لضمان سلامة البيانات الحيوية" (ملف PDF) . إدارة الطيران الفيدرالية. DOT/FAA/TC-14/49. مؤرشف (ملف PDF) من الأصل في 18 مايو 2015. تم الاطلاع عليه في 9 مايو 2015 .
- كوبمان، فيليب (يناير 2023). آليات حسابات فحص التكرار الدوري - عبر يوتيوب.
- الحساب الثنائي
- فحوصات التكرار الدوري
- الحقول المنتهية
- كثيرات الحدود
