طريقة ديكسون للتحليل إلى عوامل
في نظرية الأعداد ، تُعدّ طريقة ديكسون للتحليل إلى عوامل (وتُعرف أيضًا بطريقة ديكسون للمربعات العشوائية [ 1 ] أو خوارزمية ديكسون ) خوارزمية عامة لتحليل الأعداد الصحيحة إلى عواملها الأولية ؛ وهي النموذج الأمثل لطريقة التحليل القائمة على العوامل . وعلى عكس طرق التحليل القائمة على العوامل الأخرى، فإنّ حدّ زمن تشغيلها يأتي مصحوبًا ببرهان دقيق لا يعتمد على تخمينات حول خصائص سلاسة القيم التي تأخذها متعددة الحدود.
تم تصميم الخوارزمية بواسطة جون د. ديكسون ، وهو عالم رياضيات في جامعة كارلتون ، ونُشرت في عام 1981. [ 2 ]
الفكرة الأساسية
تعتمد طريقة ديكسون على إيجاد تطابق بين مربعات الأعداد بتردد العدد الصحيح N المراد تحليله. سنشرح الفكرة الأساسية هنا من خلال وصف طريقة فيرما للتحليل أولاً ، ثم كيف تختلف طريقة ديكسون عنها.
تجد طريقة فيرما للتحليل إلى عوامل مثل هذا التطابق عن طريق اختيار قيم x عشوائية أو شبه عشوائية ، على أمل أن يكون العدد الصحيح x² mod N مربعًا كاملاً غير تافه (في الأعداد الصحيحة):
على سبيل المثال، إذا كان N = 84923 ، (بالبدء من 292، وهو أول عدد أكبر من جذر N، والعد تصاعديًا) فإن 505² mod 84923 هو 256، وهو مربع العدد 16. إذن (505 - 16)(505 + 16) = 0 mod 84923. بحساب القاسم المشترك الأكبر لـ 505 - 16 و N باستخدام خوارزمية إقليدس، نحصل على 163 ، وهو أحد عوامل N.
من الناحية العملية، سيستغرق اختيار قيم x عشوائية وقتًا طويلاً بشكل غير عملي للعثور على تطابق المربعات، نظرًا لوجود √N مربعًا أقل من N فقط .
تستبدل طريقة ديكسون الشرط "مربع كامل غير تافه" بالشرط الأضعف بكثير "له عوامل أولية صغيرة فقط"؛ على سبيل المثال، هناك 292 مربعًا أصغر من 84923؛ و662 عددًا أصغر من 84923 عواملها الأولية هي 2 أو 3 أو 5 أو 7 فقط؛ و4767 عددًا عواملها الأولية جميعها أقل من 30. (تسمى هذه الأعداد 7-smooth و30-smooth، على التوالي، لأنها B-smooth بالنسبة إلى حد ما B. )
بمجرد العثور على عدد كافٍ من هذه القيم السلسة من النوع B ، يمكن استخدام الجبر الخطي للبحث عن مربعات كاملة غير تافهة لطريقة فيرما للتحليل إلى عوامل. إذا كان هناك العديد من الأعدادوالتي يمكن تحليل مربعاتها إلى عواملها الأولية كما يلي:لمجموعة ثابتةمن الأعداد الأولية الصغيرة، الجبر الخطي modulo 2 على المصفوفةسيعطي مجموعة فرعية منالتي تتحد مربعاتها لتشكل ناتج ضرب أعداد أولية صغيرة مرفوعة إلى قوة زوجية - أي مجموعة جزئية منوالتي تضرب مربعاتها في مربع عدد (نأمل أن يكون مختلفًا) mod N.
طريقة
لنفترض أننا نحلل العدد المركب N إلى عوامله الأولية. نختار الحد B ، ونحدد أساس العوامل (الذي يُسمى P )، وهو مجموعة جميع الأعداد الأولية الأصغر من أو تساوي B. بعد ذلك، نبحث عن أعداد صحيحة موجبة z بحيث يكون z² mod N دالة سلسة بالنسبة إلى B. لذلك ، يمكننا كتابة المعادلة التالية، لأسس مناسبة aᵢ :
عندما يتم توليد عدد كافٍ من هذه العلاقات (يكفي عمومًا أن يكون عدد العلاقات أكبر بقليل من حجم P )، يمكن استخدام طرق الجبر الخطي ، مثل طريقة الحذف الغاوسي ، لضرب هذه العلاقات المختلفة معًا بطريقة تجعل أسس الأعداد الأولية على الجانب الأيمن جميعها زوجية:
ينتج عن ذلك تطابق مربعات على الصورة a² ≡ b² (mod N )، والذي يمكن تحويله إلى تحليل للمتغير N ، حيث N = gcd ( a + b , N ) × ( N /gcd( a + b , N )). قد يكون هذا التحليل بسيطًا (أي N = N × 1 )، وهو ما لا يحدث إلا إذا كان a ≡ ± b (mod N )، وفي هذه الحالة يجب إجراء محاولة أخرى باستخدام مجموعة مختلفة من العلاقات؛ ولكن إذا تم التوصل إلى زوج غير بسيط من عوامل N ، فإن الخوارزمية تتوقف.
الشفرة الزائفة
هذا القسم مأخوذ مباشرة من ديكسون (1981).
خوارزمية ديكسون
التهيئة. ليكن L قائمة من الأعداد الصحيحة في النطاق [1، n ]، وليكن P = { p1 , ..., ph } قائمة الأعداد الأولية h ≤ v . وليكن B و Z قائمتين فارغتين في البداية ( سيتم فهرسة Z بواسطة B ).
الخطوة 1. إذا كانت L فارغة، فاخرج (فشلت الخوارزمية). وإلا، فخذ الحد الأول z من L ، واحذفه من L ، ثم انتقل إلى الخطوة 2.
الخطوة 2. احسب w كأصغر باقي موجب لـ z² mod n . حلل w إلى:
حيث لا يوجد عامل لـ w ′ في P. إذا كانت w ′ = 1، فانتقل إلى الخطوة 3؛ وإلا، فارجع إلى الخطوة 1.
الخطوة 3. ليكن a ← ( a 1 , ..., a h ). أضف a إلى B و z إلى Z. إذا كان B يحتوي على h عنصر على الأكثر ، فارجع إلى الخطوة 1؛ وإلا، فانتقل إلى الخطوة 4.
الخطوة 4. أوجد أول متجه c في B يكون تابعًا خطيًا (mod 2) على المتجهات السابقة في B. ثم احذف c من B ومن Z. احسب المعاملاتبحيث:
يُعرِّف:
انتقل إلى الخطوة 5.
الخطوة 5. الحساب:
لهذا السبب:
لوأو، ارجع إلى الخطوة 1. وإلا، فارجع:
مما يوفر عاملاً غير تافه لـ n ، وينتهي بنجاح.
مثال خطوة بخطوة
في هذا المثال، نحلل العدد ( ن = ٨٤٩٢٣) باستخدام خوارزمية ديكسون. هذا المثال مقتبس بتصرف من مجموعة LeetArxiv الفرعية. [ ٣ ] يُنسب الفضل إلى المؤلف الأصلي.
- التهيئة :
- حدد قائمة من الأرقام L ، تتراوح من 1 إلى 84923:
- حدد قيمة v ، وهي عامل النعومة:
- عرّف قائمة P تحتوي على جميع الأعداد الأولية الأقل من أو تساوي v :
- عرّف B و Z ، وهما قائمتان فارغتان. B هي قائمة قوى الأعداد، بينما Z هي قائمة الأعداد الصحيحة المقبولة:
- الخطوة 1 : التكرارقيم
- ابدأ حلقة تكرارية تقوم بفهرسة القائمةالعنصر الحالي فييُصنف على أنه. تنتهي حلقة for عند نهاية القائمة، أو عندما تكسر الخطوة 5 الحلقة.
int n = 84923 ; for ( int i = 1 ; i <= n ; i ++ ) { int z = i ; // الخطوات المتبقية هنا. // الخطوة 4 قد تُفعّل الخطوة 5. // الخطوة 5 قد تُنهي الحلقة. }
- الخطوة الثانية : الحوسبةوالتحليل إلى عوامل أولية سلسة
- للمتابعة، احسبلكل قيمة من قيم z ، ثم قم بالتعبير عن النتيجة كتحليل إلى عوامل أولية.
- تستمر هذه الخطوة لجميع قيم z في النطاق.
- الخطوة 3 : إلحاق نتائج التنعيم الرأسي
- لوإذا كان سلسًا بسبع درجات، فأضف قدراته إلى القائمةوألحقلإدراج.
- لولديه على الأكثرإذا كانت العناصر غير موجودة، فارجع إلى الخطوة 1. وإلا، فانتقل إلى الخطوة 4.
- على سبيل المثال، بعد 537 تكرارًا، نحصل على:
- وننتقل إلى الخطوة الرابعة حيث سيكون لدينا أكثر منالمتجهات في.
- الخطوة الرابعة : تنقسم هذه الخطوة إلى جزأين.
- الجزء الأول : العثورmodulo 2
- الجزء الثاني : إيجاد توليفة صفوف منمجموعها أعداد زوجية
- على سبيل المثال، جمع الصفوالصفيعطينا متجهًا من الأعداد الزوجية.
- و
- ثم
- .
- الخطوة 5 : تنقسم هذه الخطوة إلى أربعة أجزاء.
- الجزء الأول : حساب x
- اضرب المقابلقيم الصفوف التي تم العثور عليها في الخطوة 4 ، modللحصول على.
- الجزء الأول : حساب x
- الصفان 2 و3 يتطابقان مع 513 و537، لذلك
- الجزء الثاني : الحوسبة
- أضف الصفوف الموجودة في الخطوة 4 .
- اقسم على 2. (بما أن هذه تمثل أسسًا، فإن هذا يأخذ الجذر التربيعي فعليًا.)
- تُطبق كأسس على الأعداد الأولية فيللحصول على.
- ارجع إلى الخطوة 1 إذا.
- أوجد نصف مجموع الصفين 2 و 3:
- قم بتطبيقها كأسس لـ:
- منذننتقل الآن إلى الجزء الثالث .
- الجزء الثالث : الحوسبةوأينو
- الجزء الرابع : الحوسبةوأين،و
يُظهر فحص سريع.
تشير الشفرة الزائفة إلى أنه يجب حساب فقطوالعودةوذلك لأنه أسرع في حساب القاسم المشترك الأكبر، وبمجرد الحصول عليه، يصبح القسمة أسهل.والنتيجة أسرع من الحساب.
التحسينات
المنخل التربيعي هو تحسين لطريقة ديكسون. يختار قيم x قريبة من الجذر التربيعي لـ N بحيث يكون x² modulo N صغيرًا، مما يزيد بشكل كبير من فرصة الحصول على عدد سلس.
تشمل الطرق الأخرى لتحسين طريقة ديكسون استخدام خوارزمية أفضل لحل معادلة المصفوفة، والاستفادة من خاصية التباعد في المصفوفة: لا يمكن أن يتجاوز عدد عناصر المصفوفة z حدًا معينًا.العوامل، لذا فإن كل صف من المصفوفة يتكون تقريبًا من أصفار. عمليًا، تُستخدم خوارزمية لانكزوس الكتلية غالبًا. كما يجب اختيار حجم قاعدة العوامل بعناية: فإذا كان صغيرًا جدًا، سيصعب إيجاد أعداد قابلة للتحليل الكامل إليها، وإذا كان كبيرًا جدًا، فسيتعين جمع المزيد من العلاقات.
تحليل أكثر تعقيدًا، باستخدام التقريب القائل بأن جميع العوامل الأولية للعدد أقل منباحتمالية حوالي(تقريب لدالة ديكمان-دي بروين )، يشير إلى أن اختيار قاعدة عوامل صغيرة جدًا أسوأ بكثير من اختيار قاعدة عوامل كبيرة جدًا، وأن حجم قاعدة العوامل المثالي هو قوة ما من.
التعقيد الأمثل لطريقة ديكسون هو
باستخدام ترميز Big-O ، أو
في تدوين L.
مراجع
- ↑ كلاينجونج، ثورستن؛ وآخرون (2010). "تحليل معامل RSA ذي 768 بت". التطورات في علم التشفير - CRYPTO 2010. سلسلة محاضرات في علوم الحاسوب. المجلد 6223. الصفحات 333-350 . doi : 10.1007/978-3-642-14623-7_18 . ISBN 978-3-642-14622-0. S2CID 11556080 .
- ↑ ديكسون، جيه دي (1981). "التحليل السريع تقاربياً للأعداد الصحيحة" (ملف PDF) . الرياضيات الحاسوبية 36 (153): 255-260 . doi : 10.1090/S0025-5718-1981-0595059-1 . JSTOR 2007743 .
- ↑ كيبتشو، موراج (2025). التنفيذ على الورق المكتوب بخط اليد : التحليل السريع تقاربياً للأعداد الصحيحة.
- خوارزميات تحليل الأعداد الصحيحة إلى عواملها الأولية
- المربعات في نظرية الأعداد
