النسبة المئوية للقوة رأيٌ بمنزلتَين عشريتَين.
حين يقول لك موقع إن كلمة مرورك «آمنة بنسبة 92 %»، فالسؤال البديهي: 92 % من ماذا؟ وأين الـ 100 %؟ غير موجود. لم ينشر أحد كلمة المرور المثالية التي يُقاس عليها الباقي. ذلك الرقم خارج من قاعدة ثلاثية ارتجلها أحدهم يوم ثلاثاء — كذا نقطة للحرف الكبير، وكذا للرمز — ووظيفته الحقيقية الوحيدة أن يُشعل لك الشريط الأخضر كي تمضي في طريقك.
أما البتّات فتعني الشيء نفسه بالضبط، دائمًا. وتعني شيئًا يمكنك أن تستعمله.
البِت سؤال بنعم أو لا
الفكرة كلها تدخل في جملة واحدة: كل بِت يضاعف عدد المحاولات التي يحتاجها من لا يعرف عنك شيئًا.
بِت واحد يعني احتمالَين. بِتان يعنيان أربعة. ثلاثة، ثمانية. عشرة بتّات تعني 1,024، وعشرون بِتًا تعني ما يزيد قليلًا على المليون. الحساب لا يصعد، بل يتضاعف، والمضاعفة هي ما يجعل الحدس يسقط من فوق الجرف.
لذلك فجملة «40 بِت ضعف جودة 20» خاطئة على نحو يكاد يكون مضحكًا. بين 20 و 40 بِتًا عشرون مضاعفة، أي معامل قدره 2²⁰: 40 بِتًا ليست ضعف 20، بل أكبر منها بمليون مرة. و 60 بِتًا ليست ثلاثة أضعاف 20: بل أكبر من 40 بمليون مرة. رؤوسنا تقرأ هذا السلّم كأنه مسطرة قياس، وهو ليس كذلك. إنه سلّم كسلّم الزلازل أو الديسيبل، حيث خطوة صغيرة في الرقم قفزة وحشية في الواقع.
هذه كل أفضلية البِت على النسبة المئوية. النسبة تعطيك إحساسًا. البِت يعطيك مقدار عمل.
من أين جاءت الكلمة
كلمة الإنتروبيا بمعناها في المعلومات جاءت من مقال عام 1948: A Mathematical Theory of Communication، لـ كلود شانون.
ويحسن أن نقولها بدقة، لأنها كثيرًا ما تُنقل خطأً: لم يكن شانون يفكّر في كلمات المرور. لم تكن هناك كلمات مرور حاسوبية تستحق الذكر. كان يعمل في Bell Labs على مسألة أخرى تمامًا — كم من المعلومات تحمل الرسالة فعلًا، وكم يمكن ضغطها قبل أن تنكسر — وكان يحتاج إلى قياس شيء زئبقي: حيرة من يقف على الطرف الآخر.
اكتشافه، إذا قلناه بفظاظة، أن المعلومة والمفاجأة شيء واحد. الرسالة التي تعرفها سلفًا لا تُعلمك شيئًا. الرسالة التي يستحيل توقّعها تُعلمك الكثير. والإنتروبيا تقيس كم من المفاجأة في المصدر الذي ينتج الرسائل، وتُقاس بالبتّات.
أن ينفع ذلك لكلمات المرور صدفة سعيدة تقريبًا. فكلمة المرور هي، بالضبط، رسالة يجب أن يستحيل توقّعها.
قفل الأقراص الدوّارة
هنا المعادلة الوحيدة في المقال، وأعدك أنها بالمجّان:
H = L × log₂(N)
انسَ اللوغاريتم لحظة، وفكّر في أحد أقفال الدرّاجات ذات الأقراص المرقّمة. أمامك طريقتان لتعقيد الأمر على من يريد فتحه:
- زيادة عدد الأقراص. هذا هو الطول (
L): كم حرفًا في كلمة مرورك. - زيادة عدد الرموز على كل قرص. هذا هو الأبجدية (
N): أيحمل كل قرص الأرقام العشرة فقط، أم 26 حرفًا، أم حروفًا وأرقامًا وعلامات.
اللوغاريتم لا يفعل إلا شيئًا واحدًا: يترجم «كم رمزًا يحمل القرص» إلى «كم بِتًا يضيف هذا القرص». قرصٌ بـ 26 حرفًا يضيف نحو 4.7 بِت. وقرصٌ بالـ 95 محرفًا القابلة للطباعة على لوحة المفاتيح يضيف نحو 6.6.
وهنا النكتة. انظر أين يقع كلٌّ منهما في المعادلة. الأبجدية داخل اللوغاريتم، مسحوقة؛ والطول خارجه، يضرب.
أن تضرب عدد رموز كل قرص في أربعة تقريبًا — من 26 حرفًا إلى 95 محرفًا — يشتري لك أقل من
بِتَين لكل قرص. أما إضافة قرص آخر فتشتري لك log₂(N) كاملًا، ومرة أخرى، وأخرى،
وأخرى. لذلك فاثنا عشر حرفًا صغيرًا ولا شيء غيرها (نحو 56 بِتًا) تغلب ثمانية محارف
بحروف كبيرة وأرقام ورموز من تلك التي تفرضها الاستمارات (نحو 53). الـ P@ssw0rd
يخسر أمام correcthorsebatterystaple ولا يقترب منه أصلًا.
وقد وصل NIST، في SP 800-63B، إلى المكان نفسه من طريق آخر: رمى من النافذة قواعد التركيب — حرف كبير، رقم، رمز — واكتفى بالطول وبفحص كلمة المرور في قوائم المسرَّبة. ويحسن ألّا نضع في فمه ما لم يقله: حجّته ليست حجّة المعادلة هذه، بل أن إجبار الناس على وضع رمز لا يجعلهم غير متوقَّعين، بل يجعلهم متوقَّعين على نحو آخر. بل إن الوثيقة نفسها لا تثق بتقدير إنتروبيا كلمة مرور اختارها إنسان. استدلالان مختلفان، والنتيجة واحدة. التعقيد الإلزامي يشتغل داخل اللوغاريتم. الطول يشتغل خارجه.
السطر الصغير الذي لا يكاد أحد يقرؤه
هناك فخّ، وهو الجزء الأمين في كل هذا: الإنتروبيا لا تقيس كلمة مرورك، بل تقيس العملية التي أنتجتها.
4$Kp!9zQ لا تملك تلك الـ 53 بِتًا لأنها تبدو صعبة. تملكها إذا — وفقط إذا — خرجت
من قرعة عشوائية حقًا بين الـ 95 مفتاحًا. أما إذا كتبتها أنت محاولًا أن تبدو
عشوائيًا، فالمعادلة لا تنطبق: أنت لست قرعة. تضع الحرف الكبير أولًا، والرقم في
الآخر، والرمز علامة !. ومن يهاجمك لا يجرّب الـ 95 خيارًا في كل موضع: يجرّب أولًا
ما يفعله البشر.
من هنا يخرج التفاوت المزعج في أمن كلمات المرور. الإنتروبيا سقف، لا أرضية. إن ولّدتها آلة، فالسقف حقيقي. وإن اخترتها أنت، فكل ما تعرفه أنك تحته، ولا تعرف بكم.
لذلك هناك أداتان لا واحدة. المولّد يجري قرعة حقيقية، ولذلك يستطيع أن
يعرض عليك البتّات بوجه جادّ: يعرف كم قرصًا لديه (L)، ويعرف كم رمزًا يحمل كل قرص
(N)، ويجري الضرب أمامك. إن حرّكت المؤشّر ورأيت الرقم يصعد، فأنت ترى الـ L
تدفع. أما المدقّق فلا يستطيع فعل ذلك بكلمة مرور موجودة سلفًا: لا
فكرة لديه كيف وُلدت، فيفعل الشيء الوحيد المعقول، وهو أن يبحث عنها في القواميس
والأسماء وأنماط لوحة المفاتيح، وأن يفترض الأسوأ.
ما ينبغي أخذه معك
ثلاث جمل:
- البِت مضاعفة. عشرة بتّات إضافية تعني عملًا أكبر بألف مرة؛ وعشرون بِتًا إضافية، بمليون.
- الطول يضرب، والأبجدية بالكاد تجمع. إضافة كلمة تساوي أكثر من إضافة علامة تعجّب.
- البتّات لا تساوي شيئًا إلا إذا كانت العشوائية حقيقية. الآلة تستطيع أن تعدك بها. أما أنت، وأنت تكتب بيدك، فلا.
كان شانون يبحث كم من المفاجأة تسع الرسالة. وبعد سبعين عامًا ونيّف، تبيّن أن ذلك كان بالضبط السؤال الصحيح لكلمة المرور: لا أتبدو معقّدة، بل كم من المفاجأة تحمل في داخلها لمن لا يعرفك أصلًا.
المصادر: C. E. Shannon, «A Mathematical Theory of Communication», Bell System Technical Journal, 1948 · NIST SP 800-63B, Digital Identity Guidelines (Authentication and Lifecycle Management) · مولّد password.es، الذي يحسب H = L × log₂(N) ويعرض L و N والبتّات الناتجة.