وأوضح وظائف التجزئة مع Emojis

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

في الواقع ، إذا فهمت وظائف التجزئة ، فإن فهم التعدين وعدم الثبات في Blockchain هو المشي في الحديقة! (المزيد عن هذا في النهاية)

Git ، نظام مستودع تخزين كود التحكم في النسخة الذي مكّن ثورة المصدر المفتوح ، والذي يستخدمه جميع المطورين تقريبًا ، يعتمد بشكل كبير على وظائف التجزئة.

يعتمد Docusign ، برنامج eSignature ، على وظائف التجزئة.

يتم استخدام وظائف التجزئة في كل مرة تقوم فيها بإدخال كلمة المرور الخاصة بك إلى موقع ويب.

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

ما هي وظيفة التجزئة؟

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

قد لا تكون وظائف التجزئة هي فنجان الشاي الخاص بك ، لذا فإن هدفي هنا هو شرح سبب كونها قوية للغاية دون الخوض في الكثير من التفاصيل ... لذا التزمني!

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

وظائف التجزئة

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

6 emojis المقبولة والإخراج من قبل المصنع

هذا المصنع أيضا يخرج خطوط emojis أعلاه فقط بمجرد معالجة المدخلات.

وهذا المصنع رمز تعبيري خاص لعدة أسباب:

1. هذا المصنع يعود كإخراج أقل من الرموز التعبيرية مما يقبل كمدخل

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

الأهم من ذلك ، أنه ينتج عدد أقل من الرموز التعبيرية مما يتطلبه (8 يصبح 3).

مصنع الرموز التعبيرية التجزئة

2. المصنع دائما إرجاع نفس الناتج لنفس المدخلات

إذا وضعت نفس الرموز التعبيرية 8 في نفس الترتيب في المصنع مرتين ، فسيتم إرجاع نفس الرموز التعبيرية 3 ، بنفس الترتيب ، في كلا المرات.

أي المصنع حتمية.

في الصورة أعلاه ، يمكنك رؤية المصنع يعيد نفس المخرجات لنفس المدخلات في كل مرة.

3. مصنع الرموز التعبيرية هذا هو شارع ذو اتجاه واحد

إذا وضعت 8 رموز تعبيرية في خط داخل المصنع ، فسوف يمنحك المصنع على الفور مخرجات. بسيط!

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

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

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

الآن أعلم أن هذا يبدو غريباً بعض الشيء ، لذلك يوجد هنا تشبيه قد يساعد.

انها مثل الخبز كعكة!

إذا أعطيتك الكميات الدقيقة من المكونات لكعكة وصفة دقيقة ، ونفذت الوصفة الدقيقة على هذه المكونات ، فستكون الكعكة جاهزة في أي وقت من الأوقات على الإطلاق.

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

لكن ... إذا أعطيتك الكعكة والوصفة (لا تتضمن الوصفة هنا كميات المكونات ، فقط خطوات الخلط والطبخ) ، سيكون من الصعب حقًا تحديد الكميات الدقيقة للمكونات التي دخلت كيكة.

وربما يكون خبز الكعك باستخدام التجربة والخطأ بكميات مختلفة من المكونات هو أفضل أسلوب لك. (قد يختلف الطهاة المحترفون معي حول هذا الموضوع!)

العودة إلى خصائص مصنع الرموز التعبيرية.

4. تغيير المدخلات بواسطة رمز تعبيري واحد سيعطي مخرجات مختلفة تمامًا

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

على سبيل المثال ، قد يؤدي تبديل أول الباذنجان في إدخال gif أعلاه للجزرة إلى إخراج 3-emoji مختلف تمامًا.

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

التعدين على Blockchain هو أجهزة الكمبيوتر التي تستخدم بشكل أساسي التجربة والخطأ للعثور على المدخلات إلى مصنع الرموز التعبيرية التي تعيد النواتج مع خاصية معينة ، على سبيل المثال ، المخرجات التي تبدأ باثنين من الباذنجان.

5. أسرع طريقة للعثور على اثنين من المدخلات التي تعطي نفس الناتج عن طريق التجربة والخطأ

الآن أنا متأكد من أنك تفكر بالفعل ...

"انتظر ، إذا كانت المخرجات أقصر من المدخلات ، فمن المؤكد أن هناك أكثر من مدخلات لكل ناتج؟"

…وأنك سوف تكون الصحيح. إذا قمت بوضع 8 رموز تعبيرية في المصنع ولم تحصل إلا على 3 رموز تعبيرية ، فيجب أن ينتج أكثر من إدخال واحد نفس الإخراج.

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

وبعبارة أخرى ، فإن أسرع طريقة للعثور على مدخلات اثنين تعطي نفس الناتج هي مرة أخرى باستخدام التجربة والخطأ حتى تجد "تصادمًا".

لقد حان الوقت لتلخيص جميع الخصائص المدهشة لهذا المصنع من رموز تعبيرية!

خلاصة

  1. يقبل المصنع 8 الرموز التعبيرية ويعود 3 الرموز التعبيرية. (تقصير)
  2. مدخلات معينة ستعود دائما نفس الانتاج. (القطعية)
  3. سيؤدي تغيير الإدخال قليلاً إلى إخراج مختلف تمامًا. (نشرها)
  4. بالنظر إلى المخرجات ، تعد التجربة والخطأ هي أسرع طريقة لمعرفة أيٍ من المدخلات المقابلة لها. (اتجاه واحد)
  5. يُعد الإصدار التجريبي والخطأ هما أسرع طريقة للعثور على مدخلات اثنين تعطيان نفس الناتج. (مقاومة الاصطدام)

هذه الخصائص كلها مثيرة للاهتمام للغاية ولكن لماذا هي مهمة جدا؟

حسنًا ، لنرى الآن كيف يمكن استخدام هذا المصنع في الممارسة العملية.

تخيل أن كلمة مرورك تعطى بسطر 8 رموز تعبيرية. وفي كل مرة تقوم فيها بوضع كلمة المرور الخاصة بك في موقع ويب ، لا يخزن موقع الويب كلمة المرور الخاصة بك. بدلاً من ذلك ، يقوم بتخزين "تجزئة" كلمة المرور الخاصة بك (إخراج 3-emoji لكلمة المرور الخاصة بك بعد أن تم من خلال مصنع الرموز التعبيرية).

وبهذه الطريقة ، إذا كان هناك خرق للبيانات وتمسك شخص ما بالبيانات الشخصية لموقع الويب ، فكل ما لديه مجموعة من التجزئات ، ولكن لا توجد كلمات مرور فعلية!

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

الآن ، قد لا يستغرق هذا وقتًا طويلاً للمجرم عندما تتكون كلمة مرورك من سطر مكون من 8 رموز تعبيرية (يتم اختياره من 6 رموز تعبيرية مختلفة فقط).

ولكن في الحياة الواقعية ، يمكنك اختيار كلمة المرور الخاصة بك من مجموعة أكبر بكثير من الأحرف الممكنة ، وبالتالي فإن عدد المدخلات الممكنة المختلفة أكبر بكثير. كما أن مخرجات مصنع / وظيفة تجزئة الحياة الحقيقية أطول بكثير من خط 3 فقط.

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

وفي الوقت نفسه ، على الرغم من خرق البيانات ، وعندما ترغب في تسجيل الدخول ببراءة مرة أخرى إلى موقع الويب ، لأنك تعرف كلمة مرورك ، يمكنك ببساطة كتابتها.

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

لكن كلمات المرور ليست دائمًا 8 رموز تعبيرية ، فماذا لو أردت تجزئة خط أطول من الرموز التعبيرية؟

كذلك يمكنك! بشكل مثير للدهشة ، باستخدام تقنية بسيطة للغاية بسبب اثنين من مصففي التشفير ، Ralph Merkle و Ivan Damgård ، يمكننا "تجزئة" خطوط الرموز التعبيرية من أي طول إلى تجزئة من 3 رموز تعبيرية.

بناء Merkle-Damgård

كيف يمكننا عمل ذلك؟

حسنًا ، نظرًا لطول أطول من الرموز التعبيرية ، نقوم في الواقع بإنشاء خط من المصانع لمعالجته. إليك ما نفعله.

  1. نقوم بتقطيع الخط الطويل من الرموز التعبيرية إلى قطعة أولية من 8 رموز تعبيرية ، متبوعة بقطع من 5 رموز تعبيرية. (إذا لم تكن القطعة الأخيرة 5 رموز تعبيرية بالضبط ، فيمكننا وضعها مع بعض الرموز التعبيرية الإضافية ، ولكن هذه الخطوة الإضافية هي تقنية أكثر قليلاً. لذلك دعونا نفترض أن لدينا عددًا رائعًا من الرموز التعبيرية في السطر!)
  2. نضع قطعة 8 emojis من خلال أول مصنع.
  3. نحن نأخذ الرموز التعبيرية 3 الناتجة ونضعها في خط مع القطعة الأولى المكونة من 5 الرموز التعبيرية ونضعها معًا في المصنع الثاني.
  4. نكرر هذه العملية حتى نضع خط emojis بالكامل عبر المصنع.
  5. نعود الإخراج من المصنع الماضي.

حتى الآن يمكننا تجزئة خطوط أطول من الرموز التعبيرية إلى 3 رموز تعبيرية فقط!

تشبث…

الآن وقد تكون المدخلات أطول من ذلك بكثير ، وبالتأكيد يمكننا العثور على سطرين يخلقان نفس الناتج (تصادم) بسهولة أكبر؟

حدسي ، قد تعتقد ذلك. لكن من المثير للدهشة ، أن الأمر صعب تمامًا مثل العثور على "تصادم" في مصنع واحد والسبب هو على النحو التالي.

منطق

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

بعد ذلك ، في بعض المصانع أثناء عملية Merkle-Damgård ، ستقوم بإدخال سطرين مختلفين من الرموز التعبيرية وهذا المصنع المعين سيعود إلى نفس الإنتاج لكلا الخطين.

ولكن هذا يعني أنك وجدت تصادمًا في مصنع واحد باستخدام طريقة أخرى غير التجربة والخطأ ، وهذا تناقض لأننا افترضنا أن كل مصنع كان مقاومًا للتصادم!

و حينئذ…

... مع بعض المصانع الإضافية وبعض الاستدلال الرياضي ، أنشأنا طريقة لتجميع خطوط الرموز التعبيرية من أي طول إلى ثلاثة رموز تعبيرية فقط.

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

من خلال هذه الخدعة البسيطة ، يمكن أن تكون كلمة مرور الرموز التعبيرية الخاصة بك الآن بأي شكل من الأشكال وستظل آمنة ، على افتراض أن مصنع الرموز التعبيرية واحد مقاوم للتصادم.

ماذا عن Blockchain؟

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

حسنًا ، يمكنك وضع المستند بالكامل عبر مصنع التجزئة باستخدام بناء Merkle-Damgård ، ثم إرسال الإخراج بالبريد الإلكتروني إلى 100 شخص.

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

وبما أن مصنع التجزئة مقاوم للتصادم ، فإنهم يعتقدون أنك لست احتيالًا!

باختصار

إن خصائص خاصية التجزئة ذات اتجاه واحد ومقاومة التصادم قوية جدًا لدرجة أنها تغير المشهد التكنولوجي والعلمي.

ولكن ما الذي يحدث بالفعل داخل وظيفة مصنع التجزئة / التجزئة؟

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

تقبل وظائف التجزئة الفعلية السلاسل السداسية عشرية (وليس السلاسل الستية). السلاسل السداسية عشرية هي تلك التي تتكون فقط من الأحرف "0 ، 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، أ ، ب ، ج ، د ، هـ ، و". يأخذون مدخلات من أي طول ويعيدون 64 حرفًا سداسي عشري (أو 128 حرفًا لمزيد من الأمان).

دالة تجزئة شائعة الاستخدام هي SHA-256. إذا كان لديك أي أفكار حول هذه المدونة ، فالرجاء إرسال رسالة بريد إلكتروني إليّ ، إذا كان يمكنك تحديد عنوان بريدي الإلكتروني من علامة التجزئة الخاصة به! (تلميح: قد يكون هناك نهج أكثر ذكاءً من التجربة والخطأ في هذه الحالة!)

تجزئة عنوان بريدي الإلكتروني: 8d935def1f9e0353b0f19f3c765bdeec151862a199084ae4f4b417ca42608914

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

أيضا ، يرجى التحقق من شركتي في www.pilcro.com. نحن نقدم إدارة أصول هوية العلامة التجارية لمستخدمي G-Suite.

تم نشر هذه القصة في The Startup ، أكبر منشور لريادة الأعمال في Medium ، يليه 29832 شخصًا.

اشترك لتلقي أهم الأخبار هنا.