Utilia

تقسيم السر بطريقة شامير

قسّم كلمة مرور أو عبارة استرداد إلى N حصة بحيث تعيد أي M منها بناءه، بخوارزمية شامير لمشاركة السر على GF(256) محليًا في متصفحك.

يجري التقسيم والدمج بالكامل في متصفحك. لا يُرسل السر ولا الحصص إلى أي مكان، والأرقام العشوائية مصدرها crypto.getRandomValues.

تقسيم سر

    دمج الحصص

    كيف تقسّم سرًا

    1. اكتب النص المراد حمايته أو الصقه في حقل السر (نص): عبارة استرداد، أو كلمة مرور رئيسية، أو مفتاح تشفير…
    2. اضبط عدد الحصص (N) والحصص اللازمة لإعادة البناء (M). مثلًا، N = 5 وM = 3 يعني أن أي 3 حصص من الخمس تعيد بناء السر، وأن حصتين لا تكشفان شيئًا.
    3. انقر قسّم السر. تظهر كل حصة في سطر مستقل مع زر نسخ، ويمكنك أيضًا استخدام انسخ كل الحصص أو نزّل الحصص (.txt).
    4. انقر اختبار: ادمج أول M حصص للتأكد من أن الحصص تعمل قبل توزيعها.
    5. أعطِ كل حصة لشخص مختلف أو احفظها في مكان مختلف. لا تحتفظ بها كلها معًا، وإلا فقد التقسيم معناه.

    كيف تعيد بناء السر

    1. الصق M حصة على الأقل في حقل الحصص، حصة في كل سطر، بأي ترتيب. تُتجاهل الأسطر الفارغة.
    2. انقر ادمج الحصص. يظهر النص تحت السر المستعاد، ويبيّن سطر الحالة أرقام الحصص المستخدمة.
    3. إذا كان في إحدى الحصص خطأ مطبعي، أو كانت من عملية تقسيم أخرى، أو ظهرت مرتين بمحتوى مختلف، تخبرك الأداة بأي حصة وبالسبب، بدلًا من إعادة بيانات عشوائية لا معنى لها.

    كيف تعمل طريقة شامير لمشاركة السر

    نشر عدي شامير (Adi Shamir) هذه الطريقة عام 1979. لمشاركة بايت واحد s بعتبة M، يُختار كثير حدود عشوائي من الدرجة M − 1 حدّه الثابت هو s: ‏f(x) = s + a₁x + … + a₍M−1₎x^(M−1). والحصة رقم x هي القيمة f(x). أي M نقطة تحدد كثير الحدود، فيعطي استيفاء لاغرانج عند x = 0 القيمة s من جديد؛ أما بأقل من M نقطة فكل قيم s متساوية الاحتمال، لذا لا تسرّب الحصص أي معلومة عن السر.

    تعمل هذه الأداة في الحقل المنتهي GF(256) (وهو الحقل الذي يستخدمه AES، مع كثير حدود الاختزال x⁸ + x⁴ + x³ + x + 1)، فيحصل كل بايت من السر المرمّز بـ UTF-8 على كثير حدود خاص به، وتكون الحصص بطول السر تمامًا. تأتي المعاملات العشوائية من crypto.getRandomValues، مولّد الأرقام العشوائية التشفيري في المتصفح. كل شيء يعمل محليًا: لا يغادر السر ولا الحصص جهازك أبدًا.

    صيغة الحصة

    تبدو الحصة هكذا: 3-2-5f1c…، أي العتبة M، ثم رقم الحصة X (من 1 إلى 255)، ثم بيانات ست عشرية. تحتوي البيانات على قيم كثير الحدود للسر يليها CRC-32 للسر من 4 بايتات، وتنتهي بمجموع اختباري CRC-32 للحصة نفسها من 4 بايتات. يكشف المجموع الاختباري أخطاء النسخ، ويكشف CRC الداخلي خلط حصص من أسرار مختلفة. أما الحصص التي تنشئها أدوات شامير الأخرى فتستخدم صيغًا مختلفة ولا يمكن دمجها هنا.

    الأسئلة الشائعة

    كيف أختار N وM؟

    M هو عدد الأشخاص أو الأماكن التي يجب أن تتعاون، وN − M هو عدد الحصص التي يمكنك تحمّل فقدانها. الخيار الشائع هو 3 من 5: يمكن فقدان حصتين أو إتلافهما، ولا يستطيع أي حاملَين وحدهما إعادة بناء السر.

    هل حفظ حصة واحدة في السحابة آمن؟

    حصة واحدة، أو أي مجموعة أصغر من M، لا تكشف شيئًا عن السر. ومع ذلك احتفظ بأقل من M حصة في أي حساب أو مكان واحد، وإلا صار ذلك المكان وحده يحمل السر.

    هل تشفّر هذه الأداة السر؟

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

    ماذا يحدث إذا أدخلت أكثر من M حصة؟

    تعيد أول M حصة بناء السر، وتُفحص الحصص الإضافية مقابلها. والحصة التي لا تتوافق يُبلَّغ عنها، مما يساعد على اكتشاف حصة تالفة أو غريبة.

    هل يمكنني تقسيم ملف؟

    تقسّم هذه الأداة نصًا يصل إلى 10000 بايت. لتقسيم ملف، شفّره بعبارة مرور عشوائية قوية ثم قسّم عبارة المرور بدلًا منه.