الشفرة الأفينية
رمِّز وفُكّ التشفير بالصيغة E(x) = (ax + b) mod 26. أدخل a وb فتتحقق الأداة من أنه يمكن عكس a، وتجد معكوسه الضربي وتستعرض حساب كل حرف؛ وإن كنت لا تعرف المفتاح فإن وضع فك التشفير يجرّب المفاتيح الـ312 كلها ويرتّبها بحسب قرب نتائجها من الإنجليزية.
يجب ألّا يشترك مع 26 في أي عامل — اختر إحدى القيم الـ12 أدناه.
أي عدد صحيح؛ ويُؤخذ بمقياس 26.
خطوات الحساب لهذا المفتاح
التشفير: E(x) = (5x + 8) mod 26
فك التشفير: D(y) = 21(y − 8) mod 26
21 هو معكوس 5 لأن 5 × 21 = 105، وهو أكبر بواحد من أحد مضاعفات 26.
كل قيمة صالحة لـ a ومعكوسها
| a | 1 | 3 | 5 | 7 | 9 | 11 | 15 | 17 | 19 | 21 | 23 | 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| a⁻¹ | 1 | 9 | 21 | 15 | 3 | 19 | 7 | 23 | 11 | 5 | 17 | 25 |
حرفًا حرفًا — الأحرف الأولى (العدد: 12)
| الحرف | x | a·x + b | mod 26 | الناتج |
|---|---|---|---|---|
| A | 0 | 8 | 8 | I |
| F | 5 | 33 | 7 | H |
| F | 5 | 33 | 7 | H |
| I | 8 | 48 | 22 | W |
| N | 13 | 73 | 21 | V |
| E | 4 | 28 | 2 | C |
| C | 2 | 18 | 18 | S |
| I | 8 | 48 | 22 | W |
| P | 15 | 83 | 5 | F |
| H | 7 | 43 | 17 | R |
| E | 4 | 28 | 2 | C |
| R | 17 | 93 | 15 | P |
كيفية استخدام الشفرة الأفينية
- 1. اختر الوضع وأدخل نصك. يحوِّل التشفير النص الصريح إلى نص مشفَّر؛ ويعكسه فك التشفير.
- 2. اضبط المفتاح. أدخل a، وهو المضروب، وb، وهو الإزاحة. يجب أن يكون a أحد القيم الـ12 المعروضة تحت الحقلين — انقر إحداها لاستخدامها. ويمكن أن يكون b أي عدد صحيح؛ ويُختزل بمقياس 26.
- 3. اقرأ خطوات الحساب. تعرض اللوحة تحت النتيجة صيغتَي مفتاحك، ومعكوس a، وحساب كل حرف.
- 4. لا مفتاح لديك؟ جرّبها كلها. في وضع فك التشفير، فعِّل جرّب جميع المفاتيح الـ312. تُرتَّب النتائج بحسب مدى تطابق أعداد حروفها مع الإنجليزية، ويحمّل استخدم هذا المفتاح أيًّا منها.
صيغة الشفرة الأفينية
رقِّم الحروف بدءًا من الصفر: A = 0 وB = 1 … Z = 25. ولتشفير حرف x اضربه في a وأضِف b واحتفظ بباقي القسمة على 26: E(x) = (a·x + b) mod 26. ولفك تشفير حرف y اعكس تلك الخطوات بترتيب معاكس — اطرح b ثم اضرب في a⁻¹، وهو المعكوس الضربي لـ a: D(y) = a⁻¹·(y − b) mod 26. والمعكوس هو العدد الذي إذا ضُرب في a ترك باقيًا قدره 1. وبالنسبة إلى a = 5 هو 21، لأن 5 × 21 = 105 = 4 × 26 + 1.
لماذا لا تصلح إلا 12 قيمة لـ a
يجب ألّا يرسل الضرب في a حرفين إلى الموضع نفسه، وإلا صار لفك التشفير جوابان. وهذا يحدث كلما اشترك a مع 26 = 2 × 13 في عامل. فمع a = 2 مثلًا يهبط الحرفان A (0) وN (13) كلاهما عند b، لأن 2 × 13 = 26، وهو 0 بمقياس 26. لذا يجب أن يكون a فرديًّا وألّا يساوي 13، فتبقى الأعداد الاثنا عشر أدناه — وهي بالضبط التي لها معكوس بمقياس 26. ومع 26 اختيارًا لـ b يصبح لدينا 12 × 26 = 312 مفتاحًا، أحدها (a = 1 وb = 0) لا يغيّر شيئًا.
| a | 1 | 3 | 5 | 7 | 9 | 11 | 15 | 17 | 19 | 21 | 23 | 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| a⁻¹ | 1 | 9 | 21 | 15 | 3 | 19 | 7 | 23 | 11 | 5 | 17 | 25 |
مثال تطبيقي: a = 5 وb = 8
مع a = 5 وb = 8، تُشفَّر AFFINE CIPHER إلى IHHWVC SWFRCP — وهو نموذج الأداة. وهذه حروف AFFINE مع خطوات حسابها:
| الحرف | x | 5x + 8 | mod 26 | الناتج |
|---|---|---|---|---|
| A | 0 | 8 | 8 | I |
| F | 5 | 33 | 7 | H |
| I | 8 | 48 | 22 | W |
| N | 13 | 73 | 21 | V |
| E | 4 | 28 | 2 | C |
ولفك التشفير تضرب الأداة في a⁻¹ = 21. فيصبح الحرف I (8) هو 21 × (8 − 8) = 0، أي A؛ ويصبح الحرف H (7) هو 21 × (7 − 8) = −21، وهو 5 بمقياس 26، أي F. والقيم السالبة عادية في هذه الخطوة — فمعنى mod 26 هو إضافة 26 أو طرحها حتى يستقر العدد بين 0 و25.
هناك شفرتان مألوفتان هما في الحقيقة شفرتان أفينيتان متنكرتان. فمع a = 1 تصبح الصيغة x + b، أي إزاحة قيصر بمقدار b؛ ومع a = 25 وb = 25 تصبح شفرة أتباش، أي الأبجدية مقروءة بالعكس.
كيف تكسر شفرة أفينية
ما دام 311 مفتاحًا فقط يغيّر شيئًا، فأكثر الهجمات مباشرة هو تجربتها كلها، وهو ما يفعله خيار القوة الغاشمة في جزء من الثانية. أما الصعب فهو التعرّف على الجواب، لذا ترتّب الأداة كل نتيجة بمقارنة مربع كاي بين أعداد حروفها والإنجليزية المعتادة. ففي جملة أو أكثر يخرج المفتاح الصحيح في المقدمة؛ أما في عبارة قصيرة فقد لا يحدث ذلك — فبالنسبة إلى IHHWVC SWFRCP وحدها يحتل المفتاح الحقيقي (5, 8) المرتبة الرابعة — فاقرأ القائمة نزولًا ولا تثق بالسطر الأول.
ويستطيع محلّلو التعمية أن يفعلوا ما هو أفضل بالجبر. فالشفرة الأفينية استبدال أحادي الأبجدية — فكل حرف يصبح دائمًا الحرف نفسه — لذا يشير تحليل التكرار إلى حروف الشفرة التي تمثّل E وT، ويعطي تخمينان كهذان معادلتين. وبالمفتاح أعلاه يصبح E (4) هو C (2) ويصبح T (19) هو Z (25)، فيكون 4a + b ≡ 2 و19a + b ≡ 25 (mod 26). وطرح الأولى من الثانية يعطي 15a ≡ 23؛ والضرب في 7، وهو معكوس 15، يعطي a ≡ 161 ≡ 5، ثم b ≡ 2 − 20 ≡ 8. فحرفان من نص صريح معروف يستردّان المفتاح كله.
الأسئلة الشائعة
- ما الشفرة الأفينية؟
- شفرة استبدال تحوّل رقم كل حرف x إلى (a·x + b) mod 26، فيُضرَب كل حرف في a ثم يُزاح بمقدار b. والمفتاح هو الزوج (a, b). ولأن حرفًا معيّنًا يصبح دائمًا حرف الشفرة نفسه، فهي أحادية الأبجدية — قريبة من شفرة قيصر وتبدو أقوى منها، لكنها ليست أصعب كسرًا.
- لماذا يجب أن يكون a أوليًّا نسبيًّا مع 26؟
- يضرب فك التشفير في معكوس a بمقياس 26، ولا يوجد هذا المعكوس إلا حين لا يشترك a مع 26 في أي عامل. فإن اشتركا في عامل شُفِّر حرفان مختلفان إلى الحرف نفسه ولم يمكن قراءة الرسالة بيقين. وهذا يستبعد كل عدد زوجي والعدد 13، فتبقى 1 و3 و5 و7 و9 و11 و15 و17 و19 و21 و23 و25.
- كيف أجد المعكوس الضربي لـ a؟
- ابحث عن العدد بين 1 و25 الذي إذا ضُرب في a ترك باقيًا قدره 1 عند القسمة على 26. فبالنسبة إلى a = 7 هو 15، لأن 7 × 15 = 105 = 4 × 26 + 1. ومع اثنتي عشرة حالة فقط يكون الأسرع قراءتها من الجدول أعلاه؛ وللمقاييس الكبيرة تجد خوارزمية إقليدس الممتدة المعكوس مباشرة.
- كم مفتاحًا للشفرة الأفينية؟
- 312 — اثنا عشر اختيارًا لـ a في 26 اختيارًا لـ b. وأحدها، a = 1 مع b = 0، يترك النص دون تغيير، فيشفّر 311 منها فعلًا. وهذا قليل بما يكفي لتجربة كل مفتاح يدويًّا في عصر يوم، وبالحاسوب في لحظة.
- هل شفرة قيصر نوع من الشفرات الأفينية؟
- نعم. فتعيين a = 1 يحوّل الصيغة إلى x + b، وهي إزاحة قيصر بمقدار b؛ وROT13 هي a = 1 وb = 13. وأتباش أفينية أيضًا، مع a = 25 وb = 25. وكلتاهما بين المفاتيح الـ312 التي تجرّبها القوة الغاشمة.
- هل الشفرة الأفينية آمنة؟
- لا. فهي تسقط أمام القوة الغاشمة وتحليل التكرار، وأمام حرفين فقط من نص صريح معروف، كما يبيّن الجبر أعلاه. وهي تدريب ممتاز على الحساب بالمقياس، لكن كل ما له أهمية يحتاج إلى تشفير حديث.