سؤال

ما أفهمه هو أن رمز التجزئة والمجموع الاختباري هما شيئان متشابهان - قيمة رقمية، يتم حسابها لكتلة من البيانات، أي نسبياً فريد.

أي.إن احتمالية إنتاج كتلتين من البيانات لنفس قيمة التجزئة/المجموع الاختباري الرقمي منخفضة بدرجة كافية بحيث يمكن تجاهلها لأغراض التطبيق.

فهل لدينا كلمتان لنفس الشيء، أم أن هناك اختلافات مهمة بين رموز التجزئة والمجاميع الاختبارية؟

هل كانت مفيدة؟

المحلول

أود أن أقول أن أ المجموع الاختباري هو بالضرورة أ رمز التجزئة.ومع ذلك، ليست كل رموز التجزئة تشكل مجاميع اختبارية جيدة.

المجموع الاختباري له غرض خاص --- فهو يتحقق أو الفحوصات سلامة البيانات (يمكن للبعض تجاوز ذلك من خلال السماح بـ تصحيح الاخطاء).من السهل حساب المجاميع الاختبارية "الجيدة"، ويمكنها اكتشاف العديد من أنواع تلف البيانات (على سبيل المثال.واحد، اثنان، ثلاثة بتات خاطئة).

يصف رمز التجزئة ببساطة أ وظيفة رياضية الذي يعين البيانات لبعض القيمة.عند استخدامها كوسيلة للفهرسة في هياكل البيانات (على سبيل المثال.جدول التجزئة)، فإن احتمالية الاصطدام منخفضة أمر مرغوب فيه.

نصائح أخرى

هناك غرض مختلف وراء كل منهم:

  • رمز التجزئة - مصمم ليكون عشوائيًا عبر مجاله (لتقليل الاصطدامات في جداول التجزئة وما شابه).تم تصميم رموز التجزئة المشفرة أيضًا بحيث لا يمكن عكسها حسابيًا.
  • المجموع الاختباري - مصمم لاكتشاف الأخطاء الأكثر شيوعًا في البيانات وغالبًا ما يكون سريعًا في الحساب (من أجل الجمع الاختباري الفعال للتدفقات السريعة من البيانات).

ومن الناحية العملية، غالبًا ما تكون نفس الوظائف مفيدة لكلا الغرضين.على وجه الخصوص، يعد رمز التجزئة القوي من الناحية التشفيرية بمثابة مجموع اختباري جيد (يكاد يكون من المستحيل أن يؤدي خطأ عشوائي إلى كسر دالة تجزئة قوية)، إذا كنت تستطيع تحمل التكلفة الحسابية.

هناك بالفعل بعض الاختلافات:

  • يجب أن تكون المجاميع الاختبارية مختلفة فقط عندما يكون الإدخال مختلفًا (بقدر الإمكان)، ولكن من المهم تقريبًا أن تكون سريعة في الحساب.
  • رموز التجزئة (المستخدمة في جداول التجزئة) لها نفس المتطلبات، وبالإضافة إلى ذلك يجب توزيعها بالتساوي عبر مساحة التعليمات البرمجية، خاصة بالنسبة للمدخلات المتشابهة.
  • تحتوي تجزئة التشفير على كثيراً المتطلبات الأكثر صرامة التي تعطي التجزئة، لا يمكنك إنشاء مدخلات تنتج هذا التجزئة.تأتي أوقات الحساب في المرتبة الثانية، واعتمادًا على التطبيق، قد يكون من المرغوب فيه أن يكون حساب التجزئة بطيئًا جدًا (من أجل مكافحة هجمات القوة الغاشمة).

ويكيبيديا يضعه أيضا:

<اقتباس فقرة>   ترتبط

وظائف اختباري للتجزئة   وظائف، وبصمات الأصابع، والعشوائي   وظائف، وتجزئة التشفير   المهام. ومع ذلك، كل هذه   مفاهيم لها تطبيقات مختلفة   وأهداف التصميم بالتالي مختلفة.   الاختيار أرقام وبت التكافؤ هي   حالات خاصة من اختبارية،   مناسبة للكتل صغيرة من البيانات   (مثل أرقام الضمان الاجتماعي والبنوك   أرقام الحسابات، والكلمات كمبيوتر،   بايت واحد، وما إلى ذلك). بعض   وتستند خطأ تصحيح الرموز على   اختبارية الخاصة التي تكشف ليس فقط   الأخطاء الشائعة ولكن أيضا يسمح لل   البيانات الأصلية التي سيتم استردادها في   حالات معينة.

ووكلاهما يستخدم Hashcodes واختبارية لخلق القيمة العددية قصيرة من عنصر البيانات. والفرق هو أن يجب تغيير قيمة الاختباري، حتى إذا تم إجراء تعديل صغير إلى عنصر البيانات. لقيمة تجزئة، والشرط هو مجرد أن عناصر البيانات في العالم الحقيقي يجب أن يكون قيم التجزئة متميزة.

وثمة مثال واضح والسلاسل. وينبغي أن تشمل اختباري لسلسلة كل الشيء، والمسائل النظام. A شفرة التجزئة من ناحية أخرى كثيرا ما يمكن تنفيذه باعتباره الاختباري من بادئة طول محدودة. وهذا يعني أن "aaaaaaaaaaba" أن تجزئة نفس "aaaaaaaaaaab"، ولكن يمكن خوارزميات التجزئة التعامل وث مثل هذه التصادمات.

وهذه الأيام هم interchangable، ولكن في يوم من الأيام الخوالي كان الاختباري لtechique بسيط جدا حيث كنت إضافة كافة البيانات احتياطيا (عادة في بايت) وتك بايت على النهاية مع تلك القيمة في .. ثم لك 'د معرفة نأمل إذا كان أي من البيانات الأصلية قد تم إتلاف. على غرار قليلا الاختيار، ولكن مع بايت.

وA الاختباري يحمي ضد التغييرات العرضية.

وتجزئة التشفير يحمي ضد مهاجم الدافع للغاية.

وعند إرسال بت على السلك، فإنه قد يحدث بطريق الخطأ أن بعض بت إما انقلبت، أو حذف، أو إدراج. للسماح المتلقي للكشف عن (أو في بعض الأحيان تصحيح) حوادث من هذا القبيل، يستخدم المرسل الاختباري.

ولكن إذا كنت تفترض أن هناك شخص بنشاط وذكاء تعديل الرسالة على الأسلاك وتريد حماية ضد هذا النوع من المهاجمين، ثم استخدام تجزئة التشفير (أنا تجاهل مشفر توقيع التجزئة، أو باستخدام قناة ثانوية أو هذا، لأن المسألة لا تبدو بعيدة المنال بالنسبة لهذا).

الفرق بين كود التجزئة ووظائف المجموع الاختباري هو أنه تم تصميمهما لأغراض مختلفة.

  • يتم استخدام المجموع الاختباري لمعرفة ذلك لو لقد تغير شيء ما في الإدخال.

  • يتم استخدام رمز التجزئة لمعرفة ذلك لو لقد تغير شيء ما في الإدخال و للحصول على أكبر قدر ممكن من "المسافة" بين قيم رمز التجزئة الفردية.

    هناك ايضا قد تكون متطلبات إضافية لوظيفة التجزئة، تتعارض مع هذه القاعدة، مثل القدرة على تكوين أشجار/مجموعات/دلاء من قيم رمز التجزئة مبكرًا.

    وإذا أضفت بعض التوزيع العشوائي الأولي المشترك، فستصل إلى مفهوم التشفير/تبادل المفاتيح الحديث.


حول الاحتمالية:

على سبيل المثال، لنفترض أن البيانات المدخلة تتغير دائمًا (100% من الوقت).ولنفترض أن لديك وظيفة تجزئة/المجموع الاختباري "مثالية"، والتي تولد قيمة تجزئة/المجموع الاختباري 1 بت.ولذلك، سوف تحصل على قيم تجزئة/مجموع اختباري مختلفة، بنسبة 50% من الوقت، لبيانات الإدخال العشوائية.

  • إذا تغير 1 بت بالضبط في بيانات الإدخال العشوائية، فستتمكن من اكتشاف ذلك بنسبة 100% من الوقت، بغض النظر عن حجم بيانات الإدخال.

  • إذا تم تغيير 2 بت في بيانات الإدخال العشوائية، فسيتم تقسيم احتمالية اكتشاف "التغيير" على 2، لأن كلا التغييرين يمكن أن يحيد بعضهما البعض، ولن تتمكن دالة التجزئة/المجموع الاختباري من اكتشاف أن 2 بت مختلفان فعليًا في بيانات الإدخال .

    ...

هذا يعني أنه إذا كان عدد البتات في بيانات الإدخال الخاصة بك أكبر بعدة مرات من عدد البتات في قيمة التجزئة/المجموع الاختباري، فإن احتمال حصولك فعليًا على قيم تجزئة/المجموع الاختباري مختلفة، لقيم إدخال مختلفة، يتم تقليله و ليس ثابتا.

وأنا أميل إلى استخدام كلمة الاختباري عند الإشارة إلى رمز (الرقمية أو غير ذلك) التي تم إنشاؤها عن ملف أو قطعة من البيانات التي يمكن استخدامها ل<م> تحقق أن الملف أو البيانات لم يتم تالفة . الاستخدام الأكثر شيوعا جئت عبر هو للتأكد من أن الملفات المرسلة عبر الشبكة لم يتم تغيير (عن عمد أو غير ذلك).

<اقتباس فقرة>   

وعلى الرغم من التجزئة واختبارية متشابهة في أن كلا منهما خلق قيمة تستند محتويات ملف، تجزئة ليست هي نفسها كما   خلق الاختباري. ويقصد الاختباري للتحقق (الاختيار) لل   سلامة البيانات وتحديد الأخطاء لنقل البيانات، في حين تجزئة   وتهدف إلى خلق بصمة رقمية فريدة من البيانات.

المصدر: كومبتيا ® الأمن + دليل أساسيات أمن الشبكة - الطبعة الخامسة - مارك Ciampa -Page 191

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top