NTRUEncrypt

نظام التشفير بالمفتاح العام NTRUEncrypt ، المعروف أيضًا باسم خوارزمية تشفير NTRU ، هو بديل قائم على شبكة NTRU لـ RSA وتشفير المنحنى الإهليلجي ( ECC) ويعتمد على مشكلة أقصر متجه في الشبكة (والتي من غير المعروف أنها قابلة للكسر باستخدام أجهزة الكمبيوتر الكمومية ).

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

بما أن التشفير وفك التشفير يعتمدان فقط على ضرب كثيرات الحدود البسيطة، فإن هذه العمليات سريعة للغاية مقارنةً بأنظمة التشفير غير المتماثل الأخرى، مثل RSA و ElGamal وتشفير المنحنيات الإهليلجية . مع ذلك، لم يخضع NTRUEncrypt بعدُ لتحليل تشفيري مماثل في شكله المُطبَّق.

ومن الخوارزميات ذات الصلة خوارزمية التوقيع الرقمي NTRUSign .

وبشكلٍ أدق، تعتمد عمليات NTRU على الكائنات الموجودة في حلقة متعددة الحدود المقتطعة R=Z[X]/(Xشمال-1){\displaystyle \ R=\mathbb {Z} [X]/(X^{N}-1)}مع الضرب التلفيفي وجميع كثيرات الحدود في الحلقة لها معاملات صحيحة ودرجة لا تتجاوز N - 1:

أ=أ0+أ1X+أ2X2++أشمال-2Xشمال-2+أشمال-1Xشمال-1{\displaystyle {\textbf {a}}=a_{0}+a_{1}X+a_{2}X^{2}+\cdots +a_{N-2}X^{N-2}+a_{N-1}X^{N-1}}

الذي - التيXشمال=1{\displaystyle X^{N}=1}في هذه الحلقة يكون تأثير ضرب كثير الحدود بـX{\displaystyle X}يُدير معاملات متعددة الحدود. خريطة من الشكلووز{\displaystyle f\mapsto fg}مقابل مبلغ ثابتزR{\displaystyle g\in R}وبذلك ينتج متعدد حدود جديدوز{\displaystyle fg}حيث يعتمد كل معامل على عدد من المعاملات منو{\displaystyle f}حيث توجد معاملات غير صفرية فيز{\displaystyle g}.

يحتوي NTRU على ثلاثة معاملات عددية صحيحة ( N ، p ، q )، حيث N هو حد درجة متعددة الحدود، و p يُسمى المعامل الصغير، و q يُسمى المعامل الكبير. يُفترض أن N عدد أولي ، وأن q دائمًا أكبر بكثير من p ، وأن p و q أوليان فيما بينهما . رسائل النص الأصلي هي متعددات حدود بتردد بينما رسائل النص المشفر هي متعددات حدود بتردد q . يتكون النص المشفر من رسالة النص الأصلي بالإضافة إلى مضاعف مُختار عشوائيًا للمفتاح العام، ولكن يمكن اعتبار المفتاح العام نفسه مضاعفًا للمعامل الصغير p ، مما يسمح لحامل المفتاح الخاص باستخراج النص الأصلي من النص المشفر.

تاريخ

يُعد نظام التشفير بالمفتاح العام NTRUEncrypt نظام تشفير حديث نسبيًا. طُوِّرت النسخة الأولى منه، والتي كانت تُعرف ببساطة باسم NTRU، حوالي عام 1996 على يد ثلاثة علماء رياضيات ( جيفري هوفستين ، وجيل بايفر ، وجوزيف هـ. سيلفرمان ). في عام 1996، أسس هؤلاء العلماء، بالتعاون مع دانيال ليمان، شركة NTRU Cryptosystems, Inc. وحصلوا على براءة اختراع [ 1 ] (انتهت صلاحيتها الآن) لنظام التشفير.

خلال السنوات العشر الماضية، عمل الباحثون على تطوير نظام التشفير. ومنذ عرضه الأول، أُدخلت بعض التعديلات لتحسين أدائه وأمانه. ركزت معظم تحسينات الأداء على تسريع العملية. وحتى عام ٢٠٠٥، توجد دراسات تصف حالات فشل فك تشفير NTRUEncrypt. أما فيما يخص الأمان، فمنذ الإصدار الأول من NTRUEncrypt، أُدخلت معايير جديدة تبدو آمنة ضد جميع الهجمات المعروفة حاليًا، مع زيادة معقولة في القدرة الحاسوبية.

أصبح النظام الآن معتمدًا بالكامل وفقًا لمعايير IEEE P1363 ضمن مواصفات التشفير بالمفتاح العام القائم على الشبكة ( IEEE P1363.1 ). ونظرًا لسرعة نظام التشفير بالمفتاح العام NTRUEncrypt (انظر http://bench.cr.yp.to للاطلاع على نتائج الاختبارات المعيارية) وانخفاض استهلاكه للذاكرة (انظر أدناه ) ، يُمكن استخدامه في تطبيقات مثل الأجهزة المحمولة والبطاقات الذكية . في أبريل 2011، اعتُمد NTRUEncrypt كمعيار X9.98، للاستخدام في قطاع الخدمات المالية. [ 2 ]

توليد المفتاح العام

يتطلب إرسال رسالة سرية من أليس إلى بوب إنشاء مفتاح عام ومفتاح خاص. المفتاح العام معروف لكل من أليس وبوب، بينما المفتاح الخاص معروف لبوب فقط. لإنشاء زوج المفاتيح، نحتاج إلى كثيرتي حدود f و g ، من الدرجة α على الأكثر شمال-1{\displaystyle \ N-1}ويلزم وجود معاملات في المجموعة {-1، 0، 1}. ويمكن اعتبارها تمثيلات لفئات البواقي لكثيرات الحدود modulo Xشمال-1{\displaystyle \ X^{N}-1}في لغة R. متعددة الحدودولو{\displaystyle {\textbf {f}}\in L_{f}}يجب أن يستوفي الشرط الإضافي المتمثل في وجود المعكوسين modulo q و modulo p (المحسوبين باستخدام خوارزمية إقليدس )، مما يعني أن  ووص=1(تعديلص){\displaystyle \ {\textbf {f}}\cdot {\textbf {f}}_{p}=1{\pmod {p}}}و ووq=1(تعديلq){\displaystyle \ {\textbf {f}}\cdot {\textbf {f}}_{q}=1{\pmod {q}}}يجب أن يكون صحيحًا. لذلك عندما تكون الدالة f المختارة غير قابلة للعكس، يتعين على بوب العودة وتجربة دالة f أخرى .

كل من f و وص{\displaystyle \ \mathbf {f} _{p}}ز{\displaystyle \mathbf {g} }) هي المفتاح الخاص بـ Bob. يتم إنشاء المفتاح العام h عن طريق حساب الكمية

ح=صوqز(تعديلq).{\displaystyle {\textbf {h}}=p{\textbf {f}}_ {q}\cdot {\textbf {g}}{\pmod {q}}.}

مثال : في هذا المثال، ستكون قيم المعاملات ( N ، p ، q ) هي N = 11، p = 3، و q = 32، وبالتالي فإن كثيرتي الحدود f و g من الدرجة 10 على الأكثر. معاملات النظام ( N ، p ، q ) معروفة للجميع. يتم اختيار كثيرتي الحدود عشوائيًا، لذا لنفترض أنهما ممثلتان بـ

و=-1+X+X2-X4+X6+X9-X10{\displaystyle {\textbf {f}}=-1+X+X^{2}-X^{4}+X^{6}+X^{9}-X^{10}}
ز=-1+X2+X3+X5-X8-X10{\displaystyle {\textbf {g}}=-1+X^{2}+X^{3}+X^{5}-X^{8}-X^{10}}

باستخدام خوارزمية إقليدس، يتم حساب معكوس الدالة f بتردد p و بتردد q على التوالي.

وص=1+2X+2X3+2X4+X5+2X7+X8+2X9(تعديل3){\displaystyle {\textbf {f}}_{p}=1+2X+2X^{3}+2X^{4}+X^{5}+2X^{7}+X^{8}+2X^{9}{\pmod {3}}}
وq=5+9X+6X2+16X3+4X4+15X5+16X6+22X7+20X8+18X9+30X10(تعديل32){\displaystyle {\textbf {f}}_{q}=5+9X+6X^{2}+16X^{3}+4X^{4}+15X^{5}+16X^{6}+22X^{7}+20X^{8}+18X^{9}+30X^{10}{\pmod {32}}}

مما يؤدي إلى إنشاء المفتاح العام h (المعروف لكل من أليس وبوب) لحساب الناتج

ح=صوqز(تعديل32)=8-7X-10X2-12X3+12X4-8X5+15X6-13X7+12X8-13X9+16X10(تعديل32){\displaystyle {\textbf {h}}=p{\textbf {f}}_{q}\cdot {\textbf {g}}{\pmod {32}}=8-7X-10X^{2}-12X^{3}+12X^{4}-8X^{5}+15X^{6}-13X^{7}+12X^{8}-13X^{9}+16X^{10}{\pmod {32}}}

التشفير

أليس، التي تريد إرسال رسالة سرية إلى بوب، تضع رسالتها على شكل متعددة حدود m بمعاملات في[-ص/2،ص/2]{\displaystyle [-p/2,p/2]}في التطبيقات الحديثة للتشفير، يمكن ترجمة متعددة حدود الرسالة إلى تمثيل ثنائي أو ثلاثي. بعد إنشاء متعددة حدود الرسالة، تختار أليس عشوائيًا متعددة حدود r ذات معاملات صغيرة (غير مقيدة بالمجموعة {-1، 0، 1})، والتي تهدف إلى إخفاء الرسالة.

باستخدام المفتاح العام h الخاص بـ Bob، يتم حساب الرسالة المشفرة e :

هـ=رح+م(تعديلq){\displaystyle {\textbf {e}}={\textbf {r}}\cdot {\textbf {h}}+{\textbf {m}}{\pmod {q}}}

هذا النص المشفر يخفي رسائل أليس ويمكن إرساله بأمان إلى بوب.

مثال : لنفترض أن أليس تريد إرسال رسالة يمكن كتابتها على شكل متعددة الحدود

م=-1+X3-X4-X8+X9+X10{\displaystyle {\textbf {m}}=-1+X^{3}-X^{4}-X^{8}+X^{9}+X^{10}}

ويمكن التعبير عن "قيمة التعتيم" المختارة عشوائياً على النحو التالي:

ر=-1+X2+X3+X4-X5-X7{\displaystyle {\textbf {r}}=-1+X^{2}+X^{3}+X^{4}-X^{5}-X^{7}}

سيبدو النص المشفر e الذي يمثل رسالتها المشفرة إلى بوب كما يلي

هـ=رح+م(تعديل32)=14+11X+26X2+24X3+14X4+16X5+30X6+7X7+25X8+6X9+19X10(تعديل32){\displaystyle {\textbf {e}}={\textbf {r}}\cdot {\textbf {h}}+{\textbf {m}}{\pmod {32}}=14+11X+26X^{2}+24X^{3}+14X^{4}+16X^{5}+30X^{6}+7X^{7}+25X^{8}+6X^{9}+19X^{10}{\pmod {32}}}

فك التشفير

أي شخص يعرف قيمة r يمكنه حساب الرسالة m بتقييم e - rh ؛ لذا يجب ألا تكشف أليس عن قيمة r . بالإضافة إلى المعلومات المتاحة للعامة، يعرف بوب مفتاحه الخاص. إليك كيفية حصوله على m : أولًا، يضرب الرسالة المشفرة e في جزء من مفتاحه الخاص f.

أ=وهـ(تعديلq){\displaystyle {\textbf {a}}={\textbf {f}}\cdot {\textbf {e}}{\pmod {q}}}

بإعادة كتابة كثيرات الحدود، تمثل هذه المعادلة في الواقع العملية الحسابية التالية:

أ=وهـ(تعديلq){\displaystyle {\textbf {a}}={\textbf {f}}\cdot {\textbf {e}}{\pmod {q}}}
أ=و(رح+م)(تعديلq){\displaystyle {\textbf {a}}={\textbf {f}}\cdot ({\textbf {r}}\cdot {\textbf {h}}+{\textbf {m}}){\pmod {q}}}
أ=و(رصوqز+م)(تعديلq){\displaystyle {\textbf {a}}={\textbf {f}}\cdot ({\textbf {r}}\cdot p{\textbf {f}}_{q}\cdot {\textbf {g}}+{\textbf {m}}){\pmod {q}}}
أ=صرز+وم(تعديلq){\displaystyle {\textbf {a}}=p{\textbf {r}}\cdot {\textbf {g}}+{\textbf {f}}\cdot {\textbf {m}}{\pmod {q}}}

بدلاً من اختيار معاملات a بين 0 و q – 1، يتم اختيارها في الفترة [ -q /2, q /2] لمنع احتمال عدم استعادة الرسالة الأصلية بشكل صحيح، حيث تختار أليس إحداثيات رسالتها m في الفترة [-p / 2, p /2]. وهذا يعني أن جميع معاملات صرز+وم{\displaystyle \ p{\textbf {r}}\cdot {\textbf {g}}+{\textbf {f}}\cdot {\textbf {m}}}تقع القيم بالفعل ضمن الفترة [-q / 2, q /2] لأن معاملات كثيرات الحدود r و g و f و m والعدد الأولي p صغيرة مقارنةً بـ q . هذا يعني أن جميع المعاملات تبقى دون تغيير أثناء عملية الاختزال modulo وبالتالي يمكن استعادة الرسالة الأصلية بشكل صحيح.

الخطوة التالية ستكون حساب باقي قسمة a على p :

ب=أ(تعديلص)=وم(تعديلص){\displaystyle {\textbf {b}}={\textbf {a}}{\pmod {p}}={\textbf {f}}\cdot {\textbf {m}}{\pmod {p}}}

لأن صرز(تعديلص)=0{\displaystyle \ p{\textbf {r}}\cdot {\textbf {g}}{\pmod {p}}=0}.

بمعرفة يستطيع بوب استخدام الجزء الآخر من مفتاحه الخاص (وص){\displaystyle \ \left({\textbf {f}}_{p}\right)}لاستعادة رسالة أليس عن طريق ضرب b و وص{\displaystyle \ {\textbf {f}}_{p}}

ج=وصب=وصوم(تعديلص){\displaystyle {\textbf {c}}={\textbf {f}}_{p}\cdot {\textbf {b}}={\textbf {f}}_{p}\cdot {\textbf {f}}\cdot {\textbf {m}}{\pmod {p}}}
ج=م(تعديلص){\displaystyle {\textbf {c}}={\textbf {m}}{\pmod {p}}}

لأن العقار ووص=1(تعديلص){\displaystyle \ {\textbf {f}}\cdot {\textbf {f}}_{p}=1{\pmod {p}}}كان مطلوبا لـ وص{\displaystyle \ {\textbf {f}}_{p}}.

مثال : تُضرب الرسالة المشفرة e من أليس إلى بوب في متعددة الحدود f

أ=وهـ(تعديل32)=3-7X-10X2-11X3+10X4+7X5+6X6+7X7+5X8-3X9-7X10(تعديل32)،{\displaystyle {\textbf {a}}={\textbf {f}}\cdot {\textbf {e}}{\pmod {32}}=3-7X-10X^{2}-11X^{3}+10X^{4}+7X^{5}+6X^{6}+7X^{7}+5X^{8}-3X^{9}-7X^{10}{\pmod {32}},}

حيث يستخدم بوب الفترة [- q /2, q /2] بدلاً من الفترة [0, q – 1] لمعاملات كثير الحدود a لمنع عدم استعادة الرسالة الأصلية بشكل صحيح.

يؤدي تقليل معاملات mod p إلى

ب=أ(تعديل3)=-X-X2+X3+X4+X5+X7-X8-X10(تعديل3){\displaystyle {\textbf {b}}={\textbf {a}}{\pmod {3}}=-X-X^{2}+X^{3}+X^{4}+X^{5}+X^{7}-X^{8}-X^{10}{\pmod {3}}}

وهو ما يساوي ب=وم(تعديل3){\displaystyle \ {\textbf {b}}={\textbf {f}}\cdot {\textbf {m}}{\pmod {3}}}.

في الخطوة الأخيرة، يتم ضرب النتيجة بـ وص{\displaystyle \ {\textbf {f}}_{p}}من المفتاح الخاص بـ Bob للوصول إلى الرسالة الأصلية m

ج=وصب=وصوم(تعديل3)=م(تعديل3){\displaystyle {\textbf {c}}={\textbf {f}}_{p}\cdot {\textbf {b}}={\textbf {f}}_{p}\cdot {\textbf {f}}\cdot {\textbf {m}}{\pmod {3}}={\textbf {m}}{\pmod {3}}}
ج=-1+X3-X4-X8+X9+X10{\displaystyle {\textbf {c}}=-1+X^{3}-X^{4}-X^{8}+X^{9}+X^{10}}

وهي بالفعل الرسالة الأصلية التي أرسلتها أليس إلى بوب!

الهجمات

منذ اقتراح NTRU، ظهرت عدة هجمات على نظام التشفير بالمفتاح العام NTRUEncrypt. تركز معظم هذه الهجمات على إحداث اختراق كامل من خلال إيجاد المفتاح السري f بدلاً من مجرد استعادة الرسالة m . إذا كان من المعروف أن f يحتوي على عدد قليل جدًا من المعاملات غير الصفرية، فيمكن لـ Eve شن هجوم القوة الغاشمة بنجاح عن طريق تجربة جميع قيم f . عندما تريد Eve معرفة ما إذا كان f هو المفتاح السري، فإنها ببساطة تحسب وح(تعديلq){\displaystyle \ {\textbf {f}}'\cdot {\textbf {h}}{\pmod {q}}}إذا كانت معاملاته صغيرة، فقد يكون هو المفتاح السري f ، ويمكن لإيف اختبار ما إذا كان f هو المفتاح السري باستخدامه لفك تشفير رسالة قامت بتشفيرها بنفسها. يمكن لإيف أيضًا تجربة قيم g واختبار ما إذا كان  زح-1(تعديلq){\displaystyle \ {\textbf {g}}'\cdot {\textbf {h}}^{-1}{\pmod {q}}}له قيم صغيرة.

من الممكن شن هجوم "الالتقاء في المنتصف" وهو أكثر فعالية، إذ يمكنه تقليص وقت البحث بمقدار الجذر التربيعي. يعتمد هذا الهجوم على الخاصية التالية: وح=صز(تعديلq){\displaystyle \ {\textbf {f}}\cdot {\textbf {h}}=p{\textbf {g}}{\pmod {q}}}.

تريد حواء أن تجد  و1{\displaystyle \ {\textbf {f}}_{1}}و و2{\displaystyle \ {\textbf {f}}_{2}}بحيث و=و1+و2{\displaystyle \ {\textbf {f}}={\textbf {f}}_{1}+{\textbf {f}}_{2}}يمتلكون العقار وما إلى ذلك

(و1+و2)ح=ز(تعديلq){\displaystyle \left({\textbf {f}}_{1}+{\textbf {f}}_{2}\right)\cdot {\textbf {h}}={\textbf {g}}{\pmod {q}}}
و1ح=ز-و2ح(تعديلq){\displaystyle {\textbf {f}}_{1}\cdot {\textbf {h}}={\textbf {g}}-{\textbf {f}}_{2}\cdot {\textbf {h}}{\pmod {q}}}

إذا كان للدالة f عدد d من الواحدات و N - d من الأصفار، فإن حواء تُنشئ جميع الاحتمالات الممكنة و1{\displaystyle \ {\textbf {f}}_{1}}و و2{\displaystyle \ {\textbf {f}}_{2}}حيث يكون لكليهما طول 12شمال{\displaystyle \ {\frac {1}{2}}N}(مثال) و1{\displaystyle \ {\textbf {f}}_{1}}يغطي 12شمال{\displaystyle \ {\frac {1}{2}}N}أقل معاملات f و و2{\displaystyle \ {\textbf {f}}_{2}}أعلى قيمة) مع d /2 واحد. ثم تقوم بحسابو1ح(تعديلq){\displaystyle {\textbf {f}}_{1}\cdot {\textbf {h}}{\pmod {q}}}للجميع و1{\displaystyle \ {\textbf {f}}_{1}}وتقوم بترتيبها في صناديق بناءً على أول k إحداثيات. بعد ذلك، تحسب جميع -و2ح(تعديلq){\displaystyle \ -{\textbf {f}}_{2}\cdot {\textbf {h}}{\pmod {q}}}ويقوم بترتيبها في صناديق ليس فقط بناءً على أول k إحداثيات، ولكن أيضًا بناءً على ما يحدث إذا أضفت 1 إلى أول k إحداثيات. ثم تتحقق من الصناديق التي تحتوي على كليهما و1{\displaystyle \ {\textbf {f}}_{1}}و و2{\displaystyle \ {\textbf {f}}_{2}}وتحقق مما إذا كان العقار و1ح=ز-و2ح(تعديلq){\displaystyle \ {\textbf {f}}_{1}\cdot {\textbf {h}}={\textbf {g}}-{\textbf {f}}_{2}\cdot {\textbf {h}}{\pmod {q}}}يحجز.

يُعدّ هجوم اختزال الشبكة أحد أشهر الطرق وأكثرها عمليةً لكسر تشفير NTRUEncrypt. ويمكن تشبيهه، إلى حدٍّ ما، بتحليل المعامل في RSA. وتُعتبر خوارزمية Lenstra-Lenstra-Lovász الأكثر استخدامًا في هذا الهجوم . ولأن المفتاح العام h يحتوي على كلٍّ من f و g ، يُمكن محاولة استخراجهما منه . إلا أنه من الصعب للغاية إيجاد المفتاح السري عندما تكون معلمات NTRUEncrypt آمنةً بما يكفي. ويزداد هجوم اختزال الشبكة صعوبةً كلما زاد بُعد الشبكة وطول أقصر متجه.

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

كيف يعمل ؟

تقوم حواء الأولى بإنشاء نص مشفر هـ=جح+ج{\displaystyle \ {\textbf {e}}=c{\textbf {h}}+c}بحيث ج=0(تعديلص)،ج<q2{\displaystyle \ c=0{\pmod {p}},c<{\frac {q}{2}}}و 2ج>q2{\displaystyle \ 2c>{\frac {q}{2}}}عندما تدون إيف خطوات فك شفرة e (دون حساب القيم فعليًا لأنها لا تعرف f)، تجد أ=وهـ(تعديلq){\displaystyle \ {\textbf {a}}={\textbf {f}}\cdot {\textbf {e}}{\pmod {q}}}:

أ=و(جح+ج)(تعديلq){\displaystyle {\textbf {a}}={\textbf {f}}\left(c{\textbf {h}}+c\right){\pmod {q}}}
أ=جز+جو(تعديلq){\displaystyle {\textbf {a}}=c{\textbf {g}}+c{\textbf {f}}{\pmod {q}}}
أ=جز+جو-qك{\displaystyle {\textbf {a}}=c{\textbf {g}}+c{\textbf {f}}-qK}

في أي ك=كأناxأنا{\displaystyle \ K=\sum k_{i}x^{i}} بحيث

كأنا={1إذا أناتح معامل و و ز يكون 1،-1إذا أناتح معامل و و ز يكون -1،0خلاف ذلك.{\displaystyle k_{i}={\begin{cases}1&{\text{if the}}\ i^{th}\ {\text{coefficient of}}\ {\textbf {f}}\ {\text{and}}\ {\textbf {g}}\ {\text{is}}\ 1,\\-1&{\text{if the}}\ i^{th}\ {\text{coefficient of}}\ {\textbf {f}}\ {\text{and}}\ {\textbf {g}}\ {\text{is}}\ -1,\\0&{\text{otherwise.}}\end{cases}}}

مثال :

و=-1+X+X2-X4+X6+X9-X10{\displaystyle {\textbf {f}}=-1+X+X^{2}-X^{4}+X^{6}+X^{9}-X^{10}}
ز=-1+X2+X3+X5-X8-X10{\displaystyle {\textbf {g}}=-1+X^{2}+X^{3}+X^{5}-X^{8}-X^{10}}

ثم يصبح K ك=-1+X2-X10{\displaystyle \ K=-1+X^{2}-X^{10}}.

يؤدي تقليل معاملات mod p إلى تقليل معاملات جز+جو-qك(تعديلص){\displaystyle \ c{\textbf {g}}+c{\textbf {f}}-qK{\pmod {p}}}بعد الضرب بـ وص{\displaystyle \ {\textbf {f}}_{p}}، تجد حواء:

م=جوصز+جوصو-qوصك(تعديلص){\displaystyle {\textbf {m}}=c{\textbf {f}}_{p}\cdot {\textbf {g}}+c{\textbf {f}}_{p}\cdot {\textbf {f}}-q{\textbf {f}}_{p}\cdot K{\pmod {p}}}
م=جح+ج-qوصك(تعديلص){\displaystyle {\textbf {m}}=c{\textbf {h}}+c-q{\textbf {f}}_{p}\cdot K{\pmod {p}}}

بما أن c تم اختيارها لتكون من مضاعفات p ، يمكن كتابة m على النحو التالي:

م=-qوصك(تعديلص){\displaystyle {\textbf {m}}=-q{\textbf {f}}_{p}\cdot K{\pmod {p}}}

وهذا يعني أن و=-qكم-1(تعديلص){\displaystyle \ {\textbf {f}}=-qK\cdot {\textbf {m}}^{-1}{\pmod {p}}}.

إذا كان للدالتين f و g عدد قليل من المعاملات المتطابقة عند نفس العوامل، فإن قيمة K ستكون صغيرة، وبالتالي تحتوي على عدد قليل من المعاملات غير الصفرية. وبتجربة قيم مختلفة لـ يستطيع المهاجم استعادة الدالة f .

من خلال تشفير وفك تشفير رسالة وفقًا لـ NTRUEncrypt، يمكن للمهاجم التحقق مما إذا كانت الدالة f هي المفتاح السري الصحيح أم لا.

تحسينات في الأمن والأداء

باستخدام أحدث المعايير المقترحة (انظر أدناه )، يُعد نظام التشفير بالمفتاح العام NTRUEncrypt آمنًا ضد معظم الهجمات. ومع ذلك، لا يزال هناك صراع قائم بين الأداء والأمان. فمن الصعب تحسين الأمان دون التأثير سلبًا على السرعة، والعكس صحيح.

إحدى طرق تسريع العملية دون الإضرار بفعالية الخوارزمية هي إجراء بعض التغييرات على المفتاح السري f . أولاً، قم بإنشاء f بحيث و=1+صF{\displaystyle \ {\textbf {f}}=1+p{\textbf {F}}}حيث F دالة كثيرة الحدود صغيرة (أي معاملاتها {-1، 0، 1}). وببناء f بهذه الطريقة، تصبح f قابلة للعكس بتردد p . في الواقع و-1=1(تعديلص){\displaystyle \ {\textbf {f}}^{-1}=1{\pmod {p}}}وهذا يعني أن بوب ليس مضطرًا لحساب المعكوس فعليًا، ولا لإجراء الخطوة الثانية من فك التشفير. لذا، فإن بناء f بهذه الطريقة يوفر الكثير من الوقت، ولكنه لا يؤثر على أمان NTRUEncrypt، لأنه يسهل فقط إيجاده. وص{\displaystyle \ {\textbf {f}}_{p}}لكن استعادة f لا تزال صعبة. في هذه الحالة، تكون معاملات f مختلفة عن -1 أو 0 أو 1، بسبب الضرب في p . ولكن لأن بوب يضرب في p لتوليد المفتاح العام h ، ثم يُجري عملية الاختزال على النص المشفر بتردد p ، فلن يؤثر ذلك على طريقة التشفير.

ثانيًا، يمكن كتابة الدالة f كحاصل ضرب عدة كثيرات حدود، بحيث تحتوي كثيرات الحدود على العديد من المعاملات الصفرية. وبهذه الطريقة، تقل الحاجة إلى إجراء العمليات الحسابية.

وفقًا لتقرير NTRU NIST لعام 2020 [ 3 ] ، تُعتبر المعايير التالية آمنة:

الجدول 1: المعلمات

شمالqص
هامش أمان 128 بت (NTRU-HPS)50920483
هامش أمان 192 بت (NTRU-HPS)67720483
هامش أمان 256 بت (NTRU-HPS)82140963
هامش أمان 256 بت (NTRU-HRSS)70181923

مراجع

  • جولم، إي. وجو، أ. هجوم النص المشفر المختار ضد NTRU. سلسلة محاضرات في علوم الحاسوب؛ المجلد 1880. وقائع المؤتمر الدولي السنوي العشرين لعلم التشفير حول التطورات في علم التشفير. الصفحات  20-35، 2000.
  • جيفري هوفستين، جيل بايفر، جوزيف هـ. سيلفرمان. NTRU: نظام تشفير بالمفتاح العام قائم على الحلقة . في نظرية الأعداد الخوارزمية (ANTS III)، بورتلاند، أوريغون، يونيو 1998، جيه بي بوهلر (محرر)، سلسلة محاضرات في علوم الحاسوب 1423، سبرينغر-فيرلاغ، برلين، 1998، 267-288.
  • Howgrave-Graham, N., Silverman, JH & Whyte, W., Meet-In-The-Middle Attack on a NTRU Private Key .
  • ج. هوفستين، ج. سيلفرمان. تحسينات لـ NTRU . التشفير بالمفتاح العام ونظرية الأعداد الحسابية (وارسو، 11-15 سبتمبر 2000)، دي جرويتر، سيصدر قريباً.
  • AC Atici, L. Batina, J. Fan & I. Verbauwhede. تطبيقات منخفضة التكلفة لـ NTRU من أجل الأمن الشامل .