هجوم الاستيفاء

في علم التشفير ، يعتبر هجوم الاستيفاء نوعًا من أنواع الهجمات التحليلية المشفرة ضد التشفير الكتلي .

بعد عرض هجومي التحليل التفاضلي والتحليل الخطي على تشفيرات الكتل، ظهرت بعض تشفيرات الكتل الجديدة التي أثبتت أمانها ضد هذين الهجومين. من بينها بعض تشفيرات الكتل المتكررة مثل تشفير KN وتشفير SHARK . مع ذلك، أظهر توماس جاكوبسن ولارس كنودسن في أواخر التسعينيات سهولة اختراق هذه التشفيرات من خلال هجوم جديد يُعرف بهجوم الاستيفاء.

في هذا الهجوم، تُستخدم دالة جبرية لتمثيل صندوق الاستبدال (S-box) . قد تكون هذه الدالة تربيعية بسيطة ، أو متعددة الحدود ، أو كسرية على حقل غالوا . يمكن تحديد معاملات هذه الدالة باستخدام تقنيات استيفاء لاغرانج القياسية، وذلك باستخدام النصوص الأصلية المعروفة كنقاط بيانات. بدلاً من ذلك، يمكن استخدام نصوص أصلية مختارة لتبسيط المعادلات وتحسين الهجوم.

في أبسط صورها، تُعبّر هجمة الاستيفاء عن النص المشفر كمتعددة حدود للنص الأصلي. إذا كان لمتعددة الحدود عدد قليل نسبيًا من المعاملات المجهولة، فإنه باستخدام مجموعة من أزواج النص الأصلي/النص المشفر، يمكن إعادة بناء متعددة الحدود. بعد إعادة بناء متعددة الحدود، يحصل المهاجم على تمثيل للتشفير، دون معرفة دقيقة بالمفتاح السري.

يمكن أيضًا استخدام هجوم الاستيفاء لاستعادة المفتاح السري.

من الأسهل وصف الطريقة بمثال.

مثال

لنفترض أن التشفير المتكرر معطى بواسطة

جأنا=(جأنا-1كأنا)3،{\displaystyle c_{i}=(c_{i-1}\oplus k_{i})^{3},}

أينج0{\displaystyle c_{0}}هو النص الأصلي،جأنا{\displaystyle c_{i}}مخرجاتأناتح{\displaystyle i^{th}}دائري،كأنا{\displaystyle k_{i}}السرأناتح{\displaystyle i^{th}}المفتاح الدائري (المشتق من المفتاح السري)ك{\displaystyle K}(بحسب جدول زمني رئيسي معين )، ولـر{\displaystyle r}التشفير المتكرر ذو الجولات،جر{\displaystyle c_{r}}هذا هو النص المشفر.

لنفترض وجود تشفير من جولتين.x{\displaystyle x}يشير إلى الرسالة، وج{\displaystyle c}يشير إلى النص المشفر.

ثم يصبح ناتج الجولة الأولى

ج1=(x+ك1)3=(x2+ك12)(x+ك1)=x3+ك12x+x2ك1+ك13،{\displaystyle c_{1}=(x+k_{1})^{3}=(x^{2}+k_{1}^{2})(x+k_{1})=x^{3}+k_{1}^{2}x+x^{2}k_{1}+k_{1}^{3},}

وتصبح مخرجات الجولة الثانية

ج2=ج=(ج1+ك2)3=(x3+ك12x+x2ك1+ك13+ك2)3{\displaystyle c_{2}=c=(c_{1}+k_{2})^{3}=(x^{3}+k_{1}^{2}x+x^{2}k_{1}+k_{1}^{3}+k_{2})^{3}}
=x9+x8ك1+x6ك2+x4ك12ك2+x3ك22+x2(ك1ك22+ك14ك2)+x(ك12ك22+ك18)+ك13ك22+ك19+ك23،{\displaystyle =x^{9}+x^{8}k_{1}+x^{6}k_{2}+x^{4}k_{1}^{2}k_{2}+x^{3}k_{2}^{2}+x^{2}(k_{1}k_{2}^{2}+k_{1}^{4}k_{2})+x(k_{1}^{2}k_{2}^{2}+k_{1}^{8})+k_{1}^{3}k_{2}^{2}+k_{1}^{9}+k_{2}^{3},}

ينتج عن التعبير عن النص المشفر كمتعدد حدود للنص الأصلي

ص(x)=أ1x9+أ2x8+أ3x6+أ4x4+أ5x3+أ6x2+أ7x+أ8،{\displaystyle p(x)=a_{1}x^{9}+a_{2}x^{8}+a_{3}x^{6}+a_{4}x^{4}+a_{5}x^{3}+a_{6}x^{2}+a_{7}x+a_{8},}

حيثأأنا{\displaystyle a_{i}}'s هي ثوابت تعتمد على المفاتيح.

استخدام عدد من أزواج النص العادي/النص المشفر يساوي عدد المعاملات المجهولة في متعددة الحدودص(x){\displaystyle p(x)}بعد ذلك، يمكننا بناء متعددة الحدود. يمكن القيام بذلك، على سبيل المثال، باستخدام استيفاء لاغرانج (انظر متعددة حدود لاغرانج ). عندما يتم تحديد المعاملات المجهولة، نحصل على تمثيلص(x){\displaystyle p(x)}التشفير، دون معرفة المفتاح السريك{\displaystyle K}.

وجود

بالنظر إلىم{\displaystyle m}ثم هناك تشفير الكتلة ذو البتات -2م{\displaystyle 2^{m}}النصوص الأصلية المحتملة، وبالتالي2م{\displaystyle 2^{m}}متميزص/ج{\displaystyle p/c}أزواج. ليكنن{\displaystyle n}معاملات مجهولة فيص(x){\displaystyle p(x)}بما أننا نحتاج إلى أكبر عدد ممكنص/ج{\displaystyle p/c}إذا كان عدد الأزواج يساوي عدد المعاملات المجهولة في متعددة الحدود، فإن هجوم الاستيفاء لا يوجد إلا إذان2م{\displaystyle n\leq 2^{m}}.

تعقيد الخطة

افترض أن الوقت اللازم لإنشاء متعددة الحدودص(x){\displaystyle p(x)}استخدامص/ج{\displaystyle p/c}تكون الأزواج صغيرة مقارنةً بالوقت اللازم لتشفير النصوص الأصلية المطلوبة. لنفترض أنن{\displaystyle n}معاملات مجهولة فيص(x){\displaystyle p(x)}إذن، فإن التعقيد الزمني لهذا الهجوم هون{\displaystyle n}، مما يتطلبن{\displaystyle n}معروف ومتميزص/ج{\displaystyle p/c}أزواج.

هجوم الاستيفاء بواسطة تقنية "اللقاء في المنتصف"

غالباً ما تكون هذه الطريقة أكثر فعالية. إليك كيفية القيام بذلك.

بالنظر إلىر{\displaystyle r}تشفير متكرر دائري بطول كتلةم{\displaystyle m}، يتركz{\displaystyle z}يكون ناتج التشفير بعدs{\displaystyle s}جولات معs<ر{\displaystyle s<r}سنعبر عن قيمةz{\displaystyle z}كدالة متعددة الحدود للنص الأصليx{\displaystyle x}، وكدالة متعددة الحدود للنص المشفرج{\displaystyle c}. يتركز(x)جيF(2م)[x]{\displaystyle g(x)\in GF(2^{m})[x]}كن تعبيرًا عنz{\displaystyle z}عبرx{\displaystyle x}ودعح(ج)جيF(2م)[ج]{\displaystyle h(c)\in GF(2^{m})[c]}كن تعبيرًا عنz{\displaystyle z}عبرج{\displaystyle c}متعددة الحدودز(x){\displaystyle g(x)}يتم الحصول على ذلك عن طريق حساب الاتجاه الأمامي باستخدام الصيغة المتكررة للتشفير حتى الجولةs{\displaystyle s}، ومتعددة الحدود ح(ج){\displaystyle h(c)}يتم الحصول على ذلك عن طريق الحساب العكسي من الصيغة المتكررة للتشفير بدءًا من الجولةر{\displaystyle r}حتى الجولةs+1{\displaystyle s+1}.

لذا ينبغي أن يكون هذا صحيحاً.

ز(x)=ح(ج)،{\displaystyle g(x)=h(c),}

وإذا كان كلاهماز{\displaystyle g}وح{\displaystyle h}إذا كانت كثيرات الحدود ذات عدد قليل من المعاملات، فيمكننا حل المعادلة لإيجاد المعاملات المجهولة.

تعقيد الخطة

افترض أنز(x){\displaystyle g(x)}يمكن التعبير عنها بواسطةص{\displaystyle p}المعاملات، وح(ج){\displaystyle h(c)}يمكن التعبير عنها بواسطةq{\displaystyle q}المعاملات. عندها سنحتاجص+q{\displaystyle p+q}معروف ومتميزص/ج{\displaystyle p/c}لحل المعادلة، نكتبها على شكل معادلة مصفوفية. مع ذلك، فإن هذه المعادلة المصفوفية قابلة للحل حتى عمليتي الضرب والجمع. لذا، ولضمان الحصول على حل فريد وغير صفري، نجعل المعامل المقابل لأعلى درجة يساوي واحدًا، والحد الثابت يساوي صفرًا. وبالتالي،ص+q-2{\displaystyle p+q-2} معروف ومتميزص/ج{\displaystyle p/c}يلزم وجود أزواج. لذا فإن التعقيد الزمني لهذا الهجوم هوص+q-2{\displaystyle p+q-2}، مما يتطلبص+q-2{\displaystyle p+q-2}معروف ومتميزص/ج{\displaystyle p/c}أزواج.

باستخدام أسلوب "الالتقاء في المنتصف"، يكون العدد الإجمالي للمعاملات عادةً أقل من استخدام الطريقة العادية. وهذا يجعل الطريقة أكثر كفاءة، حيث أن عددًا أقل من المعاملات يكون أقل.ص/ج{\displaystyle p/c} يلزم وجود أزواج.

استعادة المفتاح

يمكننا أيضًا استخدام هجوم الاستيفاء لاستعادة المفتاح السريك{\displaystyle K}.

إذا أزلنا الجولة الأخيرة منر{\displaystyle r}تشفير متكرر ذو طول كتلةم{\displaystyle m}، يصبح ناتج التشفيرy~=جر-1{\displaystyle {\tilde {y}}=c_{r-1}}أطلق على هذه الشفرة اسم الشفرة المختزلة. الفكرة هي تخمين مفتاح الجولة الأخيرة.كر{\displaystyle k_{r}}بحيث يمكننا فك التشفير في جولة واحدة للحصول على الناتجy~{\displaystyle {\tilde {y}}}من الشفرة المُختزلة. ثم للتحقق من التخمين، نستخدم هجوم الاستيفاء على الشفرة المُختزلة إما بالطريقة العادية أو بطريقة "اللقاء في المنتصف". إليك كيفية القيام بذلك.

بالطريقة المعتادة نعبر عن الناتجy~{\displaystyle {\tilde {y}}}من الشفرة المختزلة كمتعددة حدود للنص الأصليx{\displaystyle x}. سمِّ هذه المعادلة متعددة الحدودص(x)جيF(2م)[x]{\displaystyle p(x)\in GF(2^{m})[x]}ثم إذا استطعنا التعبيرص(x){\displaystyle p(x)}معن{\displaystyle n}المعاملات، ثم باستخدامن{\displaystyle n}معروف ومتميزص/ج{\displaystyle p/c}باستخدام الأزواج، يمكننا بناء متعددة الحدود. للتحقق من تخمين مفتاح الجولة الأخيرة، ثم التحقق باستخدام مفتاح إضافي واحد.ص/ج{\displaystyle p/c}الزوج إذا كان ذلك صحيحًا

ص(x)=y~.{\displaystyle p(x)={\tilde {y}}.}

إذا كانت الإجابة بنعم، فمن المرجح أن يكون تخمين مفتاح الجولة الأخيرة صحيحًا. أما إذا كانت الإجابة بلا، فقم بتخمين المفتاح مرة أخرى.

باستخدام طريقة الالتقاء في المنتصف، نعبر عن الناتجz{\displaystyle z}من الجولةs<ر{\displaystyle s<r}كدالة متعددة الحدود للنص الأصليx{\displaystyle x}وكدالة متعددة الحدود لمخرجات التشفير المختزلy~{\displaystyle {\tilde {y}}}. سمِّ كثيرات الحدودز(x){\displaystyle g(x)}وح(y~){\displaystyle h({\tilde {y}})}وليكن التعبير عنها بواسطةص{\displaystyle p}وq{\displaystyle q}المعاملات، على التوالي. ثم معq+ص-2{\displaystyle q+p-2}معروف ومتميزص/ج{\displaystyle p/c}يمكننا إيجاد المعاملات من خلال الأزواج. وللتحقق من صحة تخمين مفتاح الجولة الأخيرة، يتم التحقق منه باستخدام مفتاح إضافي.ص/ج{\displaystyle p/c}الزوج إذا كان ذلك صحيحًا

ز(x)=ح(y~).{\displaystyle g(x)=h({\tilde {y}}).}

إذا كانت الإجابة بنعم، فمن المرجح أن يكون تخمين مفتاح الجولة الأخيرة صحيحًا. أما إذا كانت الإجابة بلا، فقم بتخمين المفتاح مرة أخرى.

بمجرد أن نجد مفتاح الجولة الأخيرة الصحيح، يمكننا الاستمرار بطريقة مماثلة على مفاتيح الجولات المتبقية.

تعقيد الخطة

بمفتاح دائري سري بطولم{\displaystyle m}ثم هناك2م{\displaystyle 2^{m}}مفاتيح مختلفة. لكل منها احتمال1/2م{\displaystyle 1/2^{m}}ليكون صحيحًا إذا تم اختياره عشوائيًا. لذلك، سيتعين علينا في المتوسط ​​أن نجعل1/22م{\displaystyle 1/2\cdot 2^{m}}التخمينات قبل العثور على المفتاح الصحيح.

وبالتالي، فإن الطريقة العادية لها تعقيد زمني متوسط2م-1(ن+1){\displaystyle 2^{m-1}(n+1)}، مما يتطلبن+1{\displaystyle n+1}معروف ومتميزج/ص{\displaystyle c/p}تتميز الأزواج، وطريقة الالتقاء في المنتصف، بتعقيد زمني متوسط2م-1(ص+q-1){\displaystyle 2^{m-1}(p+q-1)}، مما يتطلبص+q-1{\displaystyle p+q-1}معروف ومتميزج/ص{\displaystyle c/p}أزواج.

تطبيق عملي في العالم الحقيقي

يمكن استخدام هجوم "اللقاء في المنتصف" في شكل مختلف لمهاجمة صناديق الاستبدال (S-boxes)، والذي يستخدم الدالة العكسية، لأنه معم{\displaystyle m}صندوق S-bit ثمS:و(x)=x-1=x2م-2{\displaystyle S:f(x)=x^{-1}=x^{2^{m}-2}}فيجيF(2م){\displaystyle GF(2^{m})}.

تستخدم خوارزمية التشفير الكتلي SHARK شبكة SP مع صندوق SS:و(x)=x-1{\displaystyle S:f(x)=x^{-1}}تُقاوم هذه الشفرة التحليلَ التفاضلي والخطي بعد عدد قليل من الجولات. مع ذلك، تم كسرها عام ١٩٩٦ على يد توماس جاكوبسن ولارس كنودسن باستخدام هجوم الاستيفاء. يُرمز لها بـ SHARK(ن،م،ر){\displaystyle (n,m,r)}نسخة من برنامج SHARK بحجم كتلةنم{\displaystyle nm}بتات باستخدامن{\displaystyle n} موازيم{\displaystyle m}صناديق الاستبدال ذات البتات فير{\displaystyle r}جولات. وجد جاكوبسن وكنودسن أن هناك هجوم استيفاء على برنامج SHARK(8،8،4){\displaystyle (8,8,4)}(تشفير الكتلة 64 بت) باستخدام حوالي221{\displaystyle 2^{21}}نصوص عادية مختارة، وهجوم استيفاء على برنامج SHARK(8،16،7){\displaystyle (8,16,7)}(تشفير الكتلة 128 بت) باستخدام حوالي261{\displaystyle 2^{61}}النصوص الأصلية المختارة.

كما قدّم توماس جاكوبسن نسخة احتمالية من هجوم الاستيفاء باستخدام خوارزمية مادو سودان لتحسين فك تشفير رموز ريد-سولومون . ويمكن لهذا الهجوم أن ينجح حتى عندما تكون العلاقة الجبرية بين النصوص الأصلية والنصوص المشفرة صحيحة لجزء فقط من القيم.

مراجع