حساب طول المفتاح وفضائه: مقارنة 56 و128 و256 بت
يُكتب طول المفتاح بصيغة موجزة، لكن من السهل التقليل من حجم الأمان الذي يمثله، لأن كل بت إضافي يضاعف عدد المفاتيح الممكنة.
شغّل الأداة مجانًا
تحوّل هذه الحاسبة أي طول مدعوم إلى الحجم الدقيق لفضاء مفاتيحه وإلى متوسط عدد المحاولات اللازمة في بحث شامل مثالي. كما تضع النتيجة بجوار المستويات المرجعية 56 و128 و256 بت، فتظهر الفروق على هيئة قوى دقيقة للعدد اثنين بدلاً من أوصاف مبهمة. الحساب حتمي ويفترض أن المفاتيح موزعة بانتظام، وألا توجد وسيلة هجوم تختصر البحث ضد النظام التشفيري الأساسي.
من طول المفتاح بالبت إلى عدد المفاتيح الممكنة
يمكن لمفتاح طوله n بت أن يمثّل اثنين مرفوعاً إلى القوة n من أنماط البت المختلفة. وتنتج هذه القاعدة البسيطة أعداداً تنمو أسرع بكثير مما يوحي به الحدس المعتاد. فإضافة بت واحد تضاعف فضاء المفاتيح، وإضافة عشرة بتات تضربه في 1,024. تنفّذ الحاسبة عملية الرفع إلى القوة بحساب صحيح دقيق، وتعيد القيمة العشرية كاملة لا تقريباً بنقطة عائمة. كما تعرض صيغة موجزة بالترميز العلمي لتسهيل القراءة. فمثلاً، يملك مفتاح بطول 56 بت عدد 72,057,594,037,927,936 من القيم الممكنة، بينما يملك مفتاح 128 بت عدد 340,282,366,920,938,463,463,374,607,431,768,211,456. تصف هذه المجاميع حجم فضاء البحث وحده، ولا تثبت أن الخوارزمية آمنة؛ فقد تقلل عيوب التنفيذ أو ضعف توليد المفاتيح أو تسرب الحالة أو هجمات تحليل الشفرة أو أخطاء البروتوكول مقدار العمل الحقيقي بدرجة كبيرة. استخدموا النتيجة لفهم الحجم، ثم قيّموا خوارزمية التعمية ونمطها والبروتوكول وعملية توليد المفاتيح كلّاً على حدة.
فهم متوسط جهد هجوم القوة الغاشمة
يجرّب البحث الشامل المفاتيح المرشحة حتى يعثر على المفتاح الصحيح. وإذا كان المفتاح الصحيح موزعاً بانتظام، وكانت المرشحات تُختبر من دون معلومات مفيدة عن موضعه، فقد يظهر في أي مكان ضمن ترتيب البحث. يقع الموضع المتوقع في منتصف فضاء المفاتيح، ولذلك تعرض الحاسبة اثنين مرفوعاً إلى القوة n ناقص واحد بوصفه متوسط عدد المحاولات. هذه قيمة متوقعة وليست ضماناً؛ فقد ينجح بحث بعينه من المحاولة الأولى، أو قد يحتاج إلى تجربة معظم المفاتيح الممكنة. تعرض النتيجة عدد المحاولات عمداً بدلاً من زمن الكسر. فتحويل المحاولات إلى ثوانٍ يحتاج إلى معدل اختبار يمكن تبريره للخوارزمية والعتاد واستراتيجية التوازي وعبء التحقق المحددة. وقد يؤدي استعمال معدل مأخوذ من خوارزمية تعمية أو دالة تجزئة كلمات مرور مختلفة إلى خطأ يمتد مراتب عديدة. لذلك يمثل متوسط المحاولات المقياس الرياضي الثابت المناسب لمقارنة القوة، من دون الادعاء بأن جميع الأهداف التشفيرية قابلة للاختبار بالسرعة نفسها.
مقارنة مستويات القوة 56 و128 و256 بت
تعبّر سجلات المقارنة عن طول المفتاح المختار نسبةً إلى ثلاث نقاط مرجعية معروفة. يمثّل طول ستة وخمسين بت فضاء بحث مهماً تاريخياً، لكنه صغير في الوقت الحاضر. أما مئة وثمانية وعشرون بت فأكبر بكثير؛ إذ يعادل فضاء مفاتيحه اثنين مرفوعاً إلى القوة 72 مضروباً في فضاء 56 بت. ويوسّع طول مئتين وستة وخمسين بت الفضاء مرة أخرى بمعامل اثنين مرفوعاً إلى القوة 128 مقارنةً بطول 128 بت. عندما يتجاوز الطول المختار مرجعاً ما، تصفه النتيجة بأنه أقوى وتعرض معامل الضرب الدقيق. وعندما يكون دونه، تصفه بأنه أضعف وتعرض المقسوم عليه العكسي، تجنباً للكسور التقريبية. وتظهر الأطوال المتساوية بوضوح. تتعلق هذه المقارنات بفضاء المفاتيح أمام القوة الغاشمة فقط، ولا تدّعي تكافؤ الأمان بين بدائيات تشفير مختلفة. لا يقدّم مفتاح 256 بت تلقائياً 256 بت من الأمان الفعلي إذا كان للبناء حد أمان أدنى، أو كان البحث الكمي ضمن نموذج التهديد، أو كانت المفاتيح تأتي من مصدر متحيز أو منخفض الإنتروبيا.
حالات الاستخدام
مراجعة تصميم تشفيري
حوّلوا طول المفتاح المقترح إلى أرقام دقيقة لفضاء المفاتيح والبحث المتوقع قبل مقارنته بهدف الأمان المحدد في التصميم.
شرح النمو الأُسّي
وضّحوا للدارسين أو لصنّاع القرار لماذا تؤدي زيادة محدودة في عدد البتات إلى مضاعفة هائلة في جهد البحث الشامل.
فحص مستويات القوة القديمة والحديثة
ضعوا طول مفتاح مخصصاً أو قديماً بجوار المراجع الثابتة 56 و128 و256 بت باستخدام قوى دقيقة للعدد اثنين.
الأسئلة الشائعة
كيف يُحسب عدد المفاتيح الممكنة؟
عندما يكون طول المفتاح n بت، فإن عدد أنماط البت الممكنة يساوي 2^n تماماً.
لماذا يساوي متوسط جهد القوة الغاشمة نصف فضاء المفاتيح؟
عندما يكون المفتاح الصحيح موزعاً بانتظام ولا توجد وسيلة لاختصار البحث، يقع موضعه المتوقع في ترتيب شامل عند منتصف المفاتيح الممكنة.
هل يجعل المفتاح الأطول النظام آمناً دائماً؟
لا. يقيس طول المفتاح حداً واحداً أمام القوة الغاشمة. وقد تتحكم نقاط ضعف الخوارزمية وعيوب التنفيذ ورداءة العشوائية وأخطاء البروتوكول وتسرب المفتاح في الأمان الحقيقي.
لماذا لا تقدّر الحاسبة عدد السنوات اللازمة للكسر؟
يعتمد الزمن على الخوارزمية المحددة وكلفة التحقق والعتاد والتوازي ونموذج المهاجم. ويتيح عدد المحاولات مقارنةً حتمية بلا افتراض معدل تخمين اعتباطي.
ماذا يعني أقوى وأضعف في المقارنة؟
يصفان النسبة بين فضاءات البحث الشامل فقط. ويقابل فرق مقداره d بت معاملاً قدره 2^d.
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكن تشغيل الحساب الحتمي نفسه في المتصفح بصفته قدرة من المستوى A.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/key-space-bits \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"key_bits":128}'const res = await fetch("https://api.kit.forhosting.com/dev/key-space-bits", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"key_bits": 128
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/key-space-bits",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"key_bits": 128
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/key-space-bits", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"key_bits":128}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"key_bits":128}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/key-space-bits", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"key_bits": 128
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.key_space_bits",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_bits | 4096 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |