<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cryptography on kenji.blog</title><link>http://kenji.blog/ar/tags/cryptography/</link><description>Recent content in Cryptography on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ar</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 21:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/ar/tags/cryptography/index.xml" rel="self" type="application/rss+xml"/><item><title>الحدس الرياضي للتشفير القائم على الشبكة (Lattice-based cryptography)</title><link>http://kenji.blog/ar/p/lattice-based-cryptography-math-intuition/</link><pubDate>Fri, 11 Sep 2026 21:00:00 +0900</pubDate><guid>http://kenji.blog/ar/p/lattice-based-cryptography-math-intuition/</guid><description>&lt;img src="http://kenji.blog/p/lattice-based-cryptography-math-intuition/img/eyecatch.jpg" alt="Featured image of post الحدس الرياضي للتشفير القائم على الشبكة (Lattice-based cryptography)" />&lt;h1 id="1-مقدمة-فجر-التشفير-ما-بعد-الكوانتوم-pqc-وصعود-التشفير-القائم-على-الشبكة">1. مقدمة: فجر التشفير ما بعد الكوانتوم (PQC) وصعود التشفير القائم على الشبكة
&lt;/h1>&lt;p>يتم دعم البنية التحتية الرقمية لمجتمعنا الحديث من خلال تقنيات تشفير المفتاح العام مثل تشفير RSA وتشفير المنحنى الإهليلجي (ECC). تعتمد هذه الأساليب التشفيرية في أمانها على صعوبة مسائل رياضية مثل &amp;ldquo;مسألة التحليل إلى عوامل أولية&amp;rdquo; و&amp;quot;مسألة اللوغاريتم المنفصل&amp;quot;، والتي يُعتقد أنه لا يمكن حلها بكفاءة (تتطلب وقتاً أسياً) بواسطة أجهزة الكمبيوتر الكلاسيكية التقليدية.&lt;/p>
&lt;p>ومع ذلك، أحدثت &amp;ldquo;خوارزمية شور&amp;rdquo; (Shor&amp;rsquo;s Algorithm) التي نشرها بيتر شور (Peter Shor) في عام 1994 صدمة في عالم التشفير. أثبتت هذه الخوارزمية رياضياً أنه عند تحقيق أجهزة كمبيوتر كمومية واسعة النطاق، سيكون من الممكن حل مسألة التحليل إلى عوامل أولية ومسألة اللوغاريتم المنفصل في وقت كثير الحدود. وهذا يعني أن تشفير المفتاح العام المستخدم على نطاق واسع حالياً سيصبح قابلاً لفك التشفير بالكامل في المستقبل.&lt;/p>
&lt;p>لمواجهة &amp;ldquo;التهديد الكمومي&amp;rdquo; (Quantum Threat)، أصبح من الملح إجراء أبحاث حول طرق تشفير جديدة يصعب فك تشفيرها حتى باستخدام أجهزة الكمبيوتر الكمومية. يُطلق على هذا المجال اسم &amp;ldquo;التشفير ما بعد الكوانتوم&amp;rdquo; (Post-Quantum Cryptography: PQC) أو &amp;ldquo;التشفير المقاوم للحوسبة الكمومية&amp;rdquo;.&lt;/p>
&lt;p>هناك عدة مرشحين أقوياء في PQC. تشمل هذه التشفير القائم على التجزئة، والتشفير القائم على الكود، وتشفير متعدد الحدود متعدد المتغيرات، وتشفير التماثل الفائق. ومع ذلك، فإن التشفير الذي يحظى بأكبر قدر من الاهتمام حالياً ويحتل مركز الصدارة في عملية توحيد معايير PQC من قبل المعهد الوطني للمعايير والتكنولوجيا (NIST) هو &amp;ldquo;التشفير القائم على الشبكة&amp;rdquo; (Lattice-based cryptography). يتميز التشفير القائم على الشبكة بسرعات معالجة سريعة جداً للتشفير وفك التشفير مقارنة بالطرق الأخرى، كما يتميز بامتلاكه دليلاً أمنياً قوياً للغاية في نظرية التشفير، وهو تقليل &amp;ldquo;التعقيد في أسوأ الحالات&amp;rdquo; (Worst-case complexity) إلى &amp;ldquo;التعقيد في الحالة المتوسطة&amp;rdquo; (Average-case complexity).&lt;/p>
&lt;p>في هذا المقال، سننطلق من التعريف الرياضي لـ &amp;ldquo;الشبكة&amp;rdquo; (Lattice) الذي يشكل أساس التشفير القائم على الشبكة، وسنشرح بتعمق المشاكل الصعبة على الشبكة مثل SVP (مسألة المتجه الأقصر) و CVP (مسألة المتجه الأقرب)، بالإضافة إلى &amp;ldquo;مسألة LWE&amp;rdquo; (التعلم مع الأخطاء - Learning With Errors) التي تعد قلب التشفير القائم على الشبكة الحديث، باستخدام المعادلات الرياضية والحدس الهندسي والأمثلة العددية المحددة.&lt;/p>
&lt;h1 id="2-التعريف-الرياضي-والحدس-الهندسي-للشبكة-lattice">2. التعريف الرياضي والحدس الهندسي للشبكة (Lattice)
&lt;/h1>&lt;h2 id="21-الفضاء-المتجهي-والشبكة">2.1 الفضاء المتجهي والشبكة
&lt;/h2>&lt;p>في الرياضيات، تشير &amp;ldquo;الشبكة&amp;rdquo; (Lattice) إلى مجموعة من النقاط المنفصلة المرتبة بانتظام داخل فضاء متجهي حقيقي ذو $n$ بُعد $\mathbb{R}^n$. إنها تشبه الفضاء المتجهي (Vector Space) الذي ندرسه في الجبر الخطي، ولكن هناك فرق حاسم. في حين أن الفضاء المتجهي هو فضاء مستمر يتم التعبير عنه بتركيبة خطية ذات &amp;ldquo;معاملات حقيقية&amp;rdquo; لمتجهات الأساس، فإن الشبكة هي فضاء منفصل يتم التعبير عنه بتركيبة خطية ذات &amp;ldquo;معاملات صحيحة&amp;rdquo; لمتجهات الأساس.&lt;/p>
&lt;p>دعونا نقدم تعريفاً رياضياً دقيقاً. نعتبر $n$ ($n \le m$) من المتجهات المستقلة خطياً $\mathbf{b}_1, \mathbf{b}_2, \dots, \mathbf{b}_n$ في فضاء متجهي حقيقي ذو $m$ بُعد $\mathbb{R}^m$. نضع المصفوفة التي تحتوي على هذه المتجهات كمتجهات عمودية كـ $B = [\mathbf{b}_1, \mathbf{b}_2, \dots, \mathbf{b}_n] \in \mathbb{R}^{m \times n}$. تُسمى هذه $B$ &amp;ldquo;أساس&amp;rdquo; (Basis) الشبكة.&lt;/p>
&lt;p>الشبكة $\mathcal{L}(B)$ الناتجة عن هذا الأساس $B$ تُعرّف على النحو التالي:&lt;/p>
$$
\mathcal{L}(B) = \left\{ \sum_{i=1}^{n} x_i \mathbf{b}_i \mathrel{\bigg|} x_i \in \mathbb{Z} \right\} = \{ B \mathbf{x} \mid \mathbf{x} \in \mathbb{Z}^n \}
$$
&lt;p>النقطة المهمة هنا هي أن المعاملات $x_i$ تقتصر على الأعداد الصحيحة $\mathbb{Z}$ بدلاً من الأعداد الحقيقية $\mathbb{R}$. ونتيجة لذلك، تتشكل &amp;ldquo;مجموعة من النقاط المنفصلة&amp;rdquo; مثل نقاط التقاطع المتباعدة بمسافات متساوية، بدلاً من النقاط المستمرة التي توجد بأعداد لا حصر لها في الفضاء.&lt;/p>
&lt;h2 id="22-الصورة-الهندسية">2.2 الصورة الهندسية
&lt;/h2>&lt;p>دعونا نفكر في مثال على المستوى ثنائي الأبعاد $\mathbb{R}^2$. إذا اخترنا متجهات الأساس $\mathbf{b}_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}$ و $\mathbf{b}_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix}$، فإن الشبكة الناتجة عنها ستكون مجموعة من جميع الإحداثيات الصحيحة $(x, y) \in \mathbb{Z}^2$ على مستوى الإحداثيات. هذه هي أبسط &amp;ldquo;شبكة مربعة&amp;rdquo;.&lt;/p>
&lt;p>ومع ذلك، لا تكون الشبكات متعامدة دائماً. على سبيل المثال، إذا أخذنا الأساس $\mathbf{b}_1 = \begin{pmatrix} 2 \\ 1 \end{pmatrix}$ و $\mathbf{b}_2 = \begin{pmatrix} 1 \\ 3 \end{pmatrix}$، فستكون النقاط الناتجة أشبه بنقاط تقاطع شبكة مائلة ومائلة.&lt;/p>
&lt;h2 id="23-عدم-تفرد-الأساس-والتحويل-الأحادي-المعيار-unimodular">2.3 عدم تفرد الأساس والتحويل الأحادي المعيار (Unimodular)
&lt;/h2>&lt;p>هناك خاصية مهمة تتعلق بأساس أمان التشفير القائم على الشبكة. وهي &amp;ldquo;وجود عدد لا حصر له من الأسس التي تولد نفس الشبكة&amp;rdquo;.&lt;/p>
&lt;p>على سبيل المثال، الشبكة $\mathbb{Z}^2$ الناتجة عن الأساس المذكور أعلاه $\mathbf{b}_1 = (1, 0)^T, \mathbf{b}_2 = (0, 1)^T$، يمكن إنتاجها أيضاً بشكل مطابق للشبكة $\mathbb{Z}^2$ باستخدام الأساس $\mathbf{b}'_1 = (1, 1)^T, \mathbf{b}'_2 = (2, 3)^T$.&lt;/p>
&lt;p>الشرط الضروري والكافي لأساس معين $B$ وأساس آخر $B'$ لتوليد نفس الشبكة هو وجود مصفوفة ذات عناصر صحيحة $U \in \mathbb{Z}^{n \times n}$، بحيث تكون المحددات $\det(U) = \pm 1$، ويُعبَّر عنها بـ:
&lt;/p>
$$ B' = B U $$
&lt;p>
تُسمى مثل هذه المصفوفة $U$ بـ &amp;ldquo;مصفوفة أحادية المعيار&amp;rdquo; (Unimodular matrix).&lt;/p>
&lt;p>الفكرة الأساسية في تطبيقات التشفير هي استخدام &amp;ldquo;أساس جيد&amp;rdquo; (أساس قريب من التعامد ومكون من متجهات قصيرة) كمفتاح سري، واستخدام &amp;ldquo;أساس سيء&amp;rdquo; (أساس مائل بشكل متبادل للغاية ومكون من متجهات طويلة جداً) كمفتاح عام. يصبح حساب الأساس الجيد من الأساس السيء أمراً صعباً للغاية عندما يزداد البعد. هذا هو الحدس الأساسي للتشفير القائم على الشبكة.&lt;/p>
&lt;h1 id="3-مسائل-صعبة-الحساب-في-الشبكة">3. مسائل صعبة الحساب في الشبكة
&lt;/h1>&lt;p>يعتمد أمان التشفير القائم على الشبكة على صعوبة حل مسائل رياضية معينة على الشبكة. هنا نقدم اثنتين من المسائل الأساسية والأكثر شهرة.&lt;/p>
&lt;h2 id="31-مسألة-المتجه-الأقصر-shortest-vector-problem-svp">3.1 مسألة المتجه الأقصر (Shortest Vector Problem: SVP)
&lt;/h2>&lt;p>تعد مسألة SVP هي المسألة الأكثر كلاسيكية وشهرة في نظرية الشبكة.&lt;/p>
&lt;p>&lt;strong>التعريف (SVP):&lt;/strong>
بالنظر إلى أي أساس شبكة $B$، ابحث عن المتجه $\mathbf{v}$ الذي له أصغر معيار إقليدي (طول) من بين المتجهات غير الصفرية التي تنتمي إلى تلك الشبكة $\mathcal{L}(B)$.&lt;/p>
&lt;p>مُعبّراً عنها رياضياً، إنها مسألة إيجاد المتجه $\mathbf{v}$ الذي يحقق $\min_{\mathbf{v} \in \mathcal{L}(B) \setminus \{\mathbf{0}\}} \| \mathbf{v} \|$. يُكتب هذا الطول الأدنى $\lambda_1(\mathcal{L})$ ويُسمى &amp;ldquo;الحد الأدنى المتتالي الأول للشبكة&amp;rdquo; (First successive minimum).&lt;/p>
&lt;p>في الأبعاد المنخفضة مثل الأبعاد الثنائية أو الثلاثية، يمكن العثور على أقصر متجه بصرياً عن طريق رسم شكل. أو يمكن حله بكفاءة باستخدام خوارزميات مثل خوارزمية تقليل شبكة غاوس. ومع ذلك، عندما تصبح الأبعاد $n$ عالية في نطاق مئات إلى آلاف، فمن المعروف أن حل مسألة SVP بدقة هي مسألة NP-صعبة (NP-hard).&lt;/p>
&lt;p>في التشفير الحقيقي، بدلاً من المتجه الأقصر الدقيق، يتم استخدام مسألة SVP التقريبية ($\gamma$-SVP) التي تعثر على &amp;ldquo;متجه قصير تقريباً&amp;rdquo;. عندما يكون معامل التقريب $\gamma$ بحجم كثير الحدود، لا تزال هذه المسألة تعتبر صعبة للغاية.&lt;/p>
&lt;h2 id="32-مسألة-المتجه-الأقرب-closest-vector-problem-cvp">3.2 مسألة المتجه الأقرب (Closest Vector Problem: CVP)
&lt;/h2>&lt;p>مسألة CVP هي أيضاً مسألة بالغة الأهمية في التشفير القائم على الشبكة.&lt;/p>
&lt;p>&lt;strong>التعريف (CVP):&lt;/strong>
بالنظر إلى أي أساس شبكة $B$ وأي متجه مستهدف $\mathbf{t} \in \mathbb{R}^m$ في الفضاء (ليس بالضرورة نقطة شبكة)، ابحث عن نقطة الشبكة $\mathbf{v} \in \mathcal{L}(B)$ الأقرب إلى $\mathbf{t}$ من بين نقاط الشبكة.&lt;/p>
&lt;p>رياضياً، هي مسألة البحث عن نقطة الشبكة $\mathbf{v}$ التي تحقق $\min_{\mathbf{v} \in \mathcal{L}(B)} \| \mathbf{v} - \mathbf{t} \|$.&lt;/p>
&lt;p>على غرار مسألة SVP، فإن CVP هي مسألة NP-صعبة في الأبعاد العالية. من وجهة نظر التطبيق التشفيري، فإن مسألة LWE، التي سيتم وصفها لاحقاً، مرتبطة ارتباطاً وثيقاً بمتغير خاص من CVP يُعرف باسم &amp;ldquo;فك التشفير ذي المسافة المحدودة&amp;rdquo; (Bounded Distance Decoding: BDD).&lt;/p>
&lt;h2 id="33-لماذا-لا-يمكن-حلها-عندما-تصبح-الأبعاد-عالية-حدود-lll-و-bkz">3.3 لماذا لا يمكن حلها عندما تصبح الأبعاد عالية؟ (حدود LLL و BKZ)
&lt;/h2>&lt;p>خوارزمية LLL (خوارزمية Lenstra-Lenstra-Lovász) هي خوارزمية مشهورة لحل مسائل الشبكة ذات الأبعاد العالية. تعمل خوارزمية LLL في وقت كثير الحدود ويمكنها تقليل (Reduction) أساس الشبكة إلى &amp;ldquo;أساس جيد&amp;rdquo; إلى حد ما. ومع ذلك، فإن أقصر متجه يمكن أن تجده خوارزمية LLL له معامل تقريب أسي ($2^{\mathcal{O}(n)}$) بالنسبة لطول المتجه الأقصر الحقيقي، وبالتالي لا يصل إلى مستوى كسر أمان التشفير.&lt;/p>
&lt;p>باستخدام خوارزميات تقليل الأساس الأقوى مثل خوارزمية BKZ (Block Korkine-Zolotarev)، وهي تحسين لـ LLL، يمكن العثور على متجهات أقصر، ولكن كمية الحسابات تزداد بشكل أسي مع حجم الكتلة. في التشفير القائم على الشبكة، يتم تحديد البارامترات الآمنة (مثل حجم البعد $n$) عن طريق تقدير وقت تنفيذ خوارزمية BKZ. في المعايير القياسية الحالية لـ PQC، يتم اختيار قيم للبعد $n$ تتراوح من 500 إلى أكثر من 1000، ويقال إن فك التشفير سيستغرق وقتاً أطول من عمر الكون، حتى باستخدام أجهزة الكمبيوتر العملاقة أو الحواسيب الكمومية المستقبلية.&lt;/p>
&lt;h1 id="4-الصياغة-الرياضية-لمسألة-lwe-التعلم-مع-الأخطاء---learning-with-errors">4. الصياغة الرياضية لمسألة LWE (التعلم مع الأخطاء - Learning With Errors)
&lt;/h1>&lt;p>تعتمد معظم التشفيرات الحديثة القائمة على الشبكة على &amp;ldquo;مسألة LWE&amp;rdquo; (التعلم مع الأخطاء) التي اقترحها عوديد ريغيف (Oded Regev) في عام 2005. يكمن جمال مسألة LWE في بساطة صياغتها، وحقيقة أنها تمتلك دليلاً رياضياً قوياً يسمى &amp;ldquo;التقليل من التعقيد في أسوأ الحالات إلى التعقيد في الحالة المتوسطة&amp;rdquo;.&lt;/p>
&lt;h2 id="41-نظام-المعادلات-الخطية-بدون-ضوضاء">4.1 نظام المعادلات الخطية بدون ضوضاء
&lt;/h2>&lt;p>لفهم مسألة LWE، دعونا نفكر أولاً في نظام بسيط من المعادلات الخطية المتزامنة بدون ضوضاء.
لنفترض أن هناك متجهاً سرياً غير معروف $\mathbf{s} \in \mathbb{Z}_q^n$ (كل مكون هو عدد صحيح من $0$ إلى $q-1$). حيث $q$ هو عدد أولي.&lt;/p>
&lt;p>نختار متجهات معاملات عشوائية $\mathbf{a}_1, \mathbf{a}_2, \dots \in \mathbb{Z}_q^n$، ونحسب الضرب النقطي (الجداء الداخلي) مع المتجه السري $\mathbf{s}$ في المعيار $q$ (mod $q$).
$b_1 = \langle \mathbf{a}_1, \mathbf{s} \rangle \pmod q$
$b_2 = \langle \mathbf{a}_2, \mathbf{s} \rangle \pmod q$
$\vdots$&lt;/p>
&lt;p>إذا أُعطينا عدداً كافياً (أكثر من $n$) من أزواج $(\mathbf{a}_i, b_i)$، يمكننا بسهولة استعادة المتجه السري $\mathbf{s}$ باستخدام &amp;ldquo;الحذف الغاوسي&amp;rdquo; (Gaussian elimination) في الجبر الخطي. هذه مسألة يمكن حلها بسهولة في وقت كثير الحدود.&lt;/p>
&lt;h2 id="42-تعريف-مسألة-lwe-إضافة-الضوضاء">4.2 تعريف مسألة LWE: إضافة الضوضاء
&lt;/h2>&lt;p>الآن، ماذا سيحدث إذا أضفنا &amp;ldquo;ضوضاء&amp;rdquo; (خطأ) طفيفة إلى هذه المسألة؟
هذا هو جوهر مسألة LWE.&lt;/p>
&lt;p>بالنسبة للمتجه السري غير المعروف $\mathbf{s} \in \mathbb{Z}_q^n$، نضيف خطأً صغيراً $e_i \in \mathbb{Z}_q$ إلى نتيجة كل معادلة.
$b_i = \langle \mathbf{a}_i, \mathbf{s} \rangle + e_i \pmod q$&lt;/p>
&lt;p>هنا، $e_i$ هو قيمة صحيحة صغيرة بمتوسط 0 وانحراف معياري صغير نسبياً (على سبيل المثال، يتم اختياره من توزيع غاوسي منفصل يشبه التوزيع الطبيعي).
المعلومات المعطاة هي قائمة بأزواج من المتجهات العشوائية $\mathbf{a}_i$ والقيمة المحسوبة $b_i$ مع الخطأ المضاف إليها.
$( \mathbf{a}_1, b_1 ), ( \mathbf{a}_2, b_2 ), \dots, ( \mathbf{a}_m, b_m )$&lt;/p>
&lt;p>التعبير عن هذا كمصفوفة يجعله أنيقاً جداً.
باستخدام مصفوفة عشوائية $A \in \mathbb{Z}_q^{m \times n}$، والمتجه السري $\mathbf{s} \in \mathbb{Z}_q^n$، ومتجه الخطأ $\mathbf{e} \in \mathbb{Z}_q^m$، يمكن كتابته كـ:
&lt;/p>
$$ \mathbf{b} = A \mathbf{s} + \mathbf{e} \pmod q $$
&lt;p>
يُعطى فقط $A$ و $\mathbf{b}$. إيجاد $\mathbf{s}$ من هذه المعلومات هو &amp;ldquo;مسألة LWE البحثية&amp;rdquo; (Search LWE problem).&lt;/p>
&lt;p>نظراً لوجود الخطأ $e_i$، إذا حاولت استخدام الحذف الغاوسي، فسوف يتضخم الخطأ بشكل أسي أثناء عملية جمع وطرح المعادلات، ولن تتمكن من الوصول إلى الإجابة الصحيحة. على الرغم من أنها تبدو للوهلة الأولى وكأنها معادلات خطية متزامنة بسيطة، إلا أن إضافة هذه الضوضاء الصغيرة ترفع مستوى صعوبة المسألة إلى مستوى NP-صعب.&lt;/p>
&lt;h2 id="43-مسألة-lwe-التقريرية-decision-lwe">4.3 مسألة LWE التقريرية (Decision LWE)
&lt;/h2>&lt;p>غالباً ما يُستخدم في إثباتات نظرية التشفير متغير من مسألة LWE البحثية يسمى &amp;ldquo;مسألة LWE التقريرية&amp;rdquo; (Decision LWE problem).&lt;/p>
&lt;p>مسألة LWE التقريرية هي مسألة تحديد من أي التوزيعين التاليين تم أخذ قائمة معينة من العينات:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>توزيع LWE&lt;/strong>: $(A, \mathbf{b} = A\mathbf{s} + \mathbf{e} \pmod q)$ المحسوب عمداً.&lt;/li>
&lt;li>&lt;strong>توزيع عشوائي منتظم&lt;/strong>: $(A, \mathbf{u})$ يتكون من مصفوفة مختارة عشوائياً بالكامل $A$ ومتجه $\mathbf{u}$.&lt;/li>
&lt;/ol>
&lt;p>المدهش هو أنه إذا تم اختيار بارامترات مسألة LWE بشكل مناسب، فإن الأزواج التي يتم الحصول عليها من توزيع LWE تصبح &amp;ldquo;غير قابلة للتمييز حسابياً&amp;rdquo; (Computationally Indistinguishable) عن أزواج البيانات العشوائية تماماً. تُشكل هذه الخاصية الأساس الذي يجعل التشفير القائم على LWE قادراً على توليد &amp;ldquo;نصوص مشفرة لا يمكن تمييزها عن الأرقام العشوائية&amp;rdquo;.&lt;/p>
&lt;h2 id="44-التقليل-من-التعقيد-في-أسوأ-الحالات-إلى-التعقيد-في-الحالة-المتوسطة-مبرهنة-regev">4.4 التقليل من التعقيد في أسوأ الحالات إلى التعقيد في الحالة المتوسطة (مبرهنة Regev)
&lt;/h2>&lt;p>الإنجاز الأكبر لعوديد ريغيف كان الربط الرياضي لصعوبة مسألة LWE هذه بصعوبة مسائل الشبكة المذكورة أعلاه (SVP و CVP).&lt;/p>
&lt;p>لقد استخدم التقليل الكمومي (Quantum reduction) لإثبات أنه &amp;ldquo;إذا كانت هناك خوارزمية ذات وقت كثير الحدود يمكنها حل مسألة LWE في المتوسط (لـ $A$ و $\mathbf{e}$ المختارة عشوائياً)، فهناك خوارزمية كمومية ذات وقت كثير الحدود يمكنها حل مسألة Gap-SVP في الحالة الأسوأ (أصعب حالة) لأي شبكة.&amp;rdquo; (في وقت لاحق، أوضح Peikert وآخرون تقليلاً كلاسيكياً أيضاً).&lt;/p>
&lt;p>هذه خاصية حالمة في نظرية التشفير. وذلك لأنها تبدد المخاوف القائلة بأن &amp;ldquo;التشفير قد يُكسر لأننا ربما اخترنا بالصدفة مفتاحاً ضعيفاً (جزء من الحالة المتوسطة)&amp;quot;، وتوفر ضماناً قوياً بأنه &amp;ldquo;إذا كان من الممكن حل LWE المتوسط، فسيتم حل جميع المسائل الصعبة للشبكة (لذلك فإن LWE صعب بالتأكيد)&amp;rdquo;.&lt;/p>
&lt;div class="mermaid">graph TD
A["مسائل الشبكة في أسوأ الحالات (Gap-SVP, SIVP)"] -->|تقليل كمومي/كلاسيكي| B["مسألة LWE في الحالة المتوسطة"]
B -->|البناء التشفيري| C["أنظمة التشفير القائمة على LWE (PKE, KEM, FHE)"]
style A fill:#ffcccc,stroke:#ff0000,stroke-width:2px,color:#000
style B fill:#ccffcc,stroke:#00aa00,stroke-width:2px,color:#000
style C fill:#ccccff,stroke:#0000ff,stroke-width:2px,color:#000&lt;/div>
&lt;h1 id="5-بناء-نظام-تشفير-المفتاح-العام-باستخدام-lwe-تشفير-regev">5. بناء نظام تشفير المفتاح العام باستخدام LWE (تشفير Regev)
&lt;/h1>&lt;p>الآن وقد فهمنا صعوبة مسألة LWE، دعونا نرى كيف يتم استخدامها للتشفير وفك التشفير في نظام تشفير المفتاح العام الأساسي الذي اقترحه عوديد ريغيف. سنشرح هنا الآلية الأساسية لتشفير رسالة من بت واحد $M \in \{0, 1\}$.&lt;/p>
&lt;h2 id="51-توليد-المفتاح-key-generation">5.1 توليد المفتاح (Key Generation)
&lt;/h2>&lt;ol>
&lt;li>كمعلمات للنظام، نحدد العدد الأولي الأساسي $q$، والبعد $n$، وعدد المعادلات $m$ ($m > n \log q$).&lt;/li>
&lt;li>كمفتاح سري، نختار بشكل عشوائي متجهاً $\mathbf{s} \in \mathbb{Z}_q^n$.&lt;/li>
&lt;li>نقوم بتوليد مصفوفة عشوائية $A \in \mathbb{Z}_q^{m \times n}$.&lt;/li>
&lt;li>نختار متجه خطأ صغيراً $\mathbf{e} \in \mathbb{Z}_q^m$ من توزيع أخطاء مثل التوزيع الغاوسي المنفصل.&lt;/li>
&lt;li>نحسب المتجه $\mathbf{b} = A \mathbf{s} + \mathbf{e} \pmod q$.&lt;/li>
&lt;li>المفتاح العام (Public Key) هو $(A, \mathbf{b})$.&lt;/li>
&lt;li>المفتاح السري (Secret Key) هو $\mathbf{s}$.&lt;/li>
&lt;/ol>
&lt;p>المفتاح العام هو بالضبط &amp;ldquo;مثيل لمسألة LWE&amp;rdquo; بحد ذاتها. إيجاد المفتاح السري $\mathbf{s}$ من المفتاح العام $(A, \mathbf{b})$ يعادل حل مسألة LWE البحثية، مما يضمن الأمان.&lt;/p>
&lt;h2 id="52-التشفير-encryption">5.2 التشفير (Encryption)
&lt;/h2>&lt;p>تقوم أليس بتشفير رسالة من بت واحد $M \in \{0, 1\}$ باستخدام المفتاح العام لبوب $(A, \mathbf{b})$.&lt;/p>
&lt;ol>
&lt;li>تختار متجهاً ثنائياً عشوائياً (مكوناته 0 أو 1) $\mathbf{r} \in \{0, 1\}^m$.&lt;/li>
&lt;li>كجزء أول من النص المشفر، تحسب المتجه $\mathbf{u} = A^T \mathbf{r} \pmod q$. ($A^T$ هي المصفوفة المنقولة لـ $A$. بعبارة أخرى، تقوم بجمع صفوف $A$ التي يكون فيها المكون المقابل في $\mathbf{r}$ يساوي 1).&lt;/li>
&lt;li>كجزء ثانٍ من النص المشفر، تحسب العدد القياسي (scalar) $v = \mathbf{b}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor \pmod q$.
(إذا كانت الرسالة $M$ هي 0 فلا تجمع شيئاً، وإذا كانت $1$ تجمع قيمة نصف $q$ تماماً $\lfloor \frac{q}{2} \rfloor$).&lt;/li>
&lt;li>النص المشفر (Ciphertext) هو $(\mathbf{u}, v)$.&lt;/li>
&lt;/ol>
&lt;p>المعنى الحدسي للتشفير هو أخذ &amp;ldquo;مجموع مجموعة فرعية عشوائية&amp;rdquo; لمتجه المفتاح العام المصفوفة $A$ والمتجه $\mathbf{b}$. نظراً لصعوبة مسألة LWE التقريرية، يبدو هذا النص المشفر $(\mathbf{u}, v)$ غير قابل للتمييز عن متجه عشوائي تماماً وعدد عشوائي منتظم (الأمان الدلالي: Semantic Security).&lt;/p>
&lt;div class="mermaid">flowchart LR
M["رسالة M في {0,1}"] --> Enc
PK["مفتاح عام (A, b)"] --> Enc
r["متجه ثنائي عشوائي r"] --> Enc
subgraph Enc ["عملية التشفير"]
direction TB
u_calc["u = A^T * r mod q"]
v_calc["v = b^T * r + M * floor(q/2) mod q"]
end
Enc --> CT["نص مشفر (u, v)"]&lt;/div>
&lt;h2 id="53-فك-التشفير-decryption">5.3 فك التشفير (Decryption)
&lt;/h2>&lt;p>يقوم بوب بفك تشفير النص المشفر $(\mathbf{u}, v)$ باستخدام مفتاحه السري $\mathbf{s}$.&lt;/p>
&lt;ol>
&lt;li>يحسب القيمة التالية: $D = v - \mathbf{s}^T \mathbf{u} \pmod q$&lt;/li>
&lt;li>إذا كانت النتيجة المحسوبة قريبة من $0$، فإنه يُخرج $M=0$. وإذا كانت قريبة من $\lfloor \frac{q}{2} \rfloor$، فإنه يُخرج $M=1$.&lt;/li>
&lt;/ol>
&lt;p>لماذا يمكن فك التشفير بهذه الطريقة؟ دعونا نوسع ذلك رياضياً.
تذكر أن $\mathbf{b} = A \mathbf{s} + \mathbf{e}$.&lt;/p>
$$
\begin{aligned}
v - \mathbf{s}^T \mathbf{u} &amp;= (\mathbf{b}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor) - \mathbf{s}^T (A^T \mathbf{r}) \\
&amp;= ((A \mathbf{s} + \mathbf{e})^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor) - \mathbf{s}^T A^T \mathbf{r} \\
&amp;= (\mathbf{s}^T A^T \mathbf{r} + \mathbf{e}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor) - \mathbf{s}^T A^T \mathbf{r} \\
&amp;= \mathbf{e}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor \pmod q
\end{aligned}
$$
&lt;p>هنا، تم إلغاء $\mathbf{s}^T A^T \mathbf{r}$ بشكل جميل من المعادلة!
ما تبقى هو $\mathbf{e}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor$.&lt;/p>
&lt;p>$\mathbf{e}$ هو متجه ضوضاء بمكونات صغيرة جداً، و $\mathbf{r}$ هو متجه ثنائي بمكونات 0 أو 1. لذلك، فإن حاصل الضرب النقطي $\mathbf{e}^T \mathbf{r}$ يظل أيضاً قيمة صغيرة نسبياً (إذا تم اختيار المعلمات بشكل مناسب).&lt;/p>
&lt;ul>
&lt;li>إذا كان $M=0$، فإن النتيجة تكون $\mathbf{e}^T \mathbf{r}$، وهي قيمة صغيرة قريبة من $0$.&lt;/li>
&lt;li>إذا كان $M=1$، فإن النتيجة تكون $\mathbf{e}^T \mathbf{r} + \lfloor \frac{q}{2} \rfloor$، وستقع حول قيمة نصف $q$ وهي $\lfloor \frac{q}{2} \rfloor$.&lt;/li>
&lt;/ul>
&lt;p>إذا تم تصميم المعلمات بحيث تظل القيمة المطلقة للخطأ $\mathbf{e}^T \mathbf{r}$ أقل من $\frac{q}{4}$، فيمكن لبوب تحديد (فك تشفير) الرسالة $M$ بدقة بمجرد النظر إلى ما إذا كانت نتيجة الحساب أقرب إلى $0$ أو $\lfloor \frac{q}{2} \rfloor$. هذه هي الآلية الجميلة التي يعمل بها التشفير القائم على LWE.&lt;/p>
&lt;div class="mermaid">flowchart LR
CT["نص مشفر (u, v)"] --> Dec
SK["مفتاح سري s"] --> Dec
subgraph Dec ["عملية فك التشفير"]
direction TB
calc["حساب D = v - s^T * u mod q"]
check["تحقق مما إذا كان D أقرب إلى 0 أو q/2"]
end
calc --> check
Dec --> M_out["رسالة مستردة M"]&lt;/div>
&lt;h1 id="6-مثال-لعبة-toy-example-لتشفير-lwe-باستخدام-قيم-عددية-محددة">6. مثال لعبة (Toy Example) لتشفير LWE باستخدام قيم عددية محددة
&lt;/h1>&lt;p>نظراً لأن سلسلة المعادلات وحدها قد تجعل من الصعب استيعاب المفهوم، دعونا نتبع الحساب من التشفير إلى فك التشفير عن طريق تعيين قيم عددية صغيرة جداً بالفعل.
(※ في أنظمة التشفير الحقيقية، لضمان الأمان، يتم استخدام $n$ بقيمة 500 أو أكثر، و $q$ بقيمة آلاف أو أكثر).&lt;/p>
&lt;p>&lt;strong>【إعداد البارامترات】&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>المعيار $q = 17$ (عدد أولي. وبالتالي تأخذ القيم النطاق من $0$ إلى $16$)&lt;/li>
&lt;li>البعد $n = 2$&lt;/li>
&lt;li>عدد المعادلات $m = 4$&lt;/li>
&lt;li>لنفترض أننا نريد تشفير الرسالة $M = 1$.&lt;/li>
&lt;li>مقدار إزاحة الرسالة: $\lfloor \frac{q}{2} \rfloor = \lfloor \frac{17}{2} \rfloor = 8$&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>【1. مرحلة توليد المفتاح】&lt;/strong>
يختار بوب المفتاح السري $\mathbf{s}$ والمصفوفة $A$ ومتجه الخطأ $\mathbf{e}$ عشوائياً.
&lt;/p>
$$ \mathbf{s} = \begin{pmatrix} 3 \\ 4 \end{pmatrix} \in \mathbb{Z}_{17}^2 $$
$$ A = \begin{pmatrix} 2 &amp; 15 \\ 1 &amp; 8 \\ 14 &amp; 5 \\ 9 &amp; 10 \end{pmatrix} \in \mathbb{Z}_{17}^{4 \times 2} $$
$$ \mathbf{e} = \begin{pmatrix} 1 \\ -1 \\ 0 \\ 2 \end{pmatrix} \equiv \begin{pmatrix} 1 \\ 16 \\ 0 \\ 2 \end{pmatrix} \pmod{17} $$
&lt;p>ثم يحسب المفتاح العام $\mathbf{b}$.
&lt;/p>
$$ A \mathbf{s} = \begin{pmatrix} 2 &amp; 15 \\ 1 &amp; 8 \\ 14 &amp; 5 \\ 9 &amp; 10 \end{pmatrix} \begin{pmatrix} 3 \\ 4 \end{pmatrix} = \begin{pmatrix} 2\times 3 + 15\times 4 \\ 1\times 3 + 8\times 4 \\ 14\times 3 + 5\times 4 \\ 9\times 3 + 10\times 4 \end{pmatrix} = \begin{pmatrix} 6 + 60 \\ 3 + 32 \\ 42 + 20 \\ 27 + 40 \end{pmatrix} = \begin{pmatrix} 66 \\ 35 \\ 62 \\ 67 \end{pmatrix} $$
&lt;p>
نحسب هذا بالنسبة للمعيار 17. (على سبيل المثال $66 = 17 \times 3 + 15$)
&lt;/p>
$$ A \mathbf{s} \pmod{17} = \begin{pmatrix} 15 \\ 1 \\ 11 \\ 16 \end{pmatrix} $$
&lt;p>
نضيف متجه الخطأ $\mathbf{e}$.
&lt;/p>
$$ \mathbf{b} = A \mathbf{s} + \mathbf{e} = \begin{pmatrix} 15 \\ 1 \\ 11 \\ 16 \end{pmatrix} + \begin{pmatrix} 1 \\ 16 \\ 0 \\ 2 \end{pmatrix} = \begin{pmatrix} 16 \\ 17 \\ 11 \\ 18 \end{pmatrix} \equiv \begin{pmatrix} 16 \\ 0 \\ 11 \\ 1 \end{pmatrix} \pmod{17} $$
&lt;p>المفتاح العام هو $A$ و $\mathbf{b} = (16, 0, 11, 1)^T$.&lt;/p>
&lt;p>&lt;strong>【2. مرحلة التشفير】&lt;/strong>
تقوم أليس بتشفير الرسالة $M = 1$.
تختار متجهاً عشوائياً $\mathbf{r}$. هنا نفترض $\mathbf{r} = (1, 0, 1, 0)^T$.&lt;/p>
&lt;p>تحسب $\mathbf{u}$.
&lt;/p>
$$ \mathbf{u} = A^T \mathbf{r} = \begin{pmatrix} 2 &amp; 1 &amp; 14 &amp; 9 \\ 15 &amp; 8 &amp; 5 &amp; 10 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 2 \times 1 + 14 \times 1 \\ 15 \times 1 + 5 \times 1 \end{pmatrix} = \begin{pmatrix} 16 \\ 20 \end{pmatrix} \equiv \begin{pmatrix} 16 \\ 3 \end{pmatrix} \pmod{17} $$
&lt;p>تحسب $v$.
&lt;/p>
$$ \mathbf{b}^T \mathbf{r} = (16, 0, 11, 1) \begin{pmatrix} 1 \\ 0 \\ 1 \\ 0 \end{pmatrix} = 16 \times 1 + 11 \times 1 = 27 \equiv 10 \pmod{17} $$
&lt;p>
تضيف القيمة $\lfloor 17/2 \rfloor = 8$ المطابقة للرسالة $M=1$.
&lt;/p>
$$ v = \mathbf{b}^T \mathbf{r} + M \cdot 8 = 10 + 1 \times 8 = 18 \equiv 1 \pmod{17} $$
&lt;p>ترسل أليس النص المشفر $(\mathbf{u}, v) = \left( \begin{pmatrix} 16 \\ 3 \end{pmatrix}, 1 \right)$ إلى بوب.&lt;/p>
&lt;p>&lt;strong>【3. مرحلة فك التشفير】&lt;/strong>
يقوم بوب، الذي استلم النص المشفر، بفك التشفير باستخدام المفتاح السري $\mathbf{s} = (3, 4)^T$.
معادلة فك التشفير: يحسب $D = v - \mathbf{s}^T \mathbf{u} \pmod{17}$.&lt;/p>
$$ \mathbf{s}^T \mathbf{u} = (3, 4) \begin{pmatrix} 16 \\ 3 \end{pmatrix} = 3 \times 16 + 4 \times 3 = 48 + 12 = 60 \equiv 9 \pmod{17} $$
$$ D = v - \mathbf{s}^T \mathbf{u} = 1 - 9 = -8 \pmod{17} $$
&lt;p>هنا، في عالم المعيار 17، $-8$ تساوي $9$ (لأن $-8 + 17 = 9$).
يحدد بوب ما إذا كانت القيمة الناتجة $D = 9$ أقرب إلى $0$ أو $8$ ($\lfloor 17/2 \rfloor$).
نظراً لأن $9$ هي بالتأكيد أقرب إلى $8$ من $0$، فقد تمكن بوب من استعادة $M = 1$ بنجاح!&lt;/p>
&lt;p>لماذا أصبحت $9$؟ لنتذكر الإثبات السابق.
جزء الخطأ هو $\mathbf{e}^T \mathbf{r} = (1, -1, 0, 2) (1, 0, 1, 0)^T = 1 \times 1 + 0 \times 1 = 1$.
لذلك، فإن نتيجة الحساب هي $\mathbf{e}^T \mathbf{r} + M \cdot 8 = 1 + 8 = 9$، وتم تأكيد حساب القيمة كما هو متوقع نظرياً.&lt;/p>
&lt;h1 id="7-التطور-نحو-التطبيق-العملي-ring-lwe-و-module-lwe">7. التطور نحو التطبيق العملي: Ring-LWE و Module-LWE
&lt;/h1>&lt;p>في حين أن مسألة LWE القياسية (Standard LWE) التي تم شرحها حتى الآن تحتوي على إثبات أمان قوي للغاية، إلا أن لها عيوباً قاتلة في التطبيق العملي. هذه العيوب هي &amp;ldquo;حجم المفتاح يصبح ضخماً&amp;rdquo; و &amp;ldquo;تكلفة الحساب عالية&amp;rdquo;.&lt;/p>
&lt;p>في LWE القياسية، يتضمن المفتاح العام مصفوفة ضخمة $A \in \mathbb{Z}_q^{m \times n}$. عندما تصل المعلمة $n$ إلى المئات أو الآلاف، يصل حجم هذه المصفوفة إلى عدة ميغابايت، مما يجعلها ثقيلة جداً بحيث لا يمكن إرسالها واستقبالها في كل مرة على بروتوكولات الاتصال عبر الإنترنت (مثل TLS). بالإضافة إلى ذلك، يتطلب ضرب المصفوفات والمتجهات تعقيداً حسابياً قدره $\mathcal{O}(n^2)$.&lt;/p>
&lt;p>لحل هذه المشكلة، تم تقديم &amp;ldquo;Ring-LWE (RLWE)&amp;rdquo; و &amp;ldquo;Module-LWE (MLWE)&amp;quot;، والتي تدمج بنية جبرية تسمى حلقات متعددات الحدود (Polynomial rings) في الشبكة.&lt;/p>
&lt;h2 id="71-حدس-ring-lwe">7.1 حدس Ring-LWE
&lt;/h2>&lt;p>في Ring-LWE، يتم استبدال المتجهات والمصفوفات بعناصر (متعددات حدود) في حلقة متعددة الحدود $\mathcal{R}_q = \mathbb{Z}_q[X]/(X^n + 1)$. (حيث يتم اختيار $n$ كقوة للعدد 2).&lt;/p>
&lt;p>في حين كان المفتاح العام في LWE القياسية هو المصفوفة $A$، فإن Ring-LWE يستخدم متعددة حدود واحدة $a(x)$. كما يصبح المفتاح السري $s(x)$ والخطأ $e(x)$ أيضاً متعددات حدود.
تصبح المعادلة كما يلي:
&lt;/p>
$$ b(x) = a(x) \cdot s(x) + e(x) \pmod q $$
&lt;p>نظراً لأن هذا ضرب متعددات الحدود، باستخدام &amp;ldquo;تحويل العدد النظري&amp;rdquo; (Number Theoretic Transform: NTT) المشابه لتحويل فورييه السريع (FFT)، يمكن تقليل التعقيد الحسابي بشكل كبير إلى $\mathcal{O}(n \log n)$. علاوة على ذلك، نظراً لأن حجم المفتاح العام يتضاءل من مصفوفة إلى متعددة حدود مفردة، يتم تقليل حجم البيانات إلى $\mathcal{O}(n)$. يوفر هذا ميزة ساحقة في النطاق الترددي للاتصالات.&lt;/p>
&lt;p>من الناحية الرياضية، لا تنتمي Ring-LWE إلى شبكة عامة، بل يتم إرجاعها إلى مسألة على شبكة ذات تماثل خاص تسمى &amp;ldquo;الشبكة المثالية&amp;rdquo; (Ideal Lattice).&lt;/p>
&lt;h2 id="72-module-lwe-ومعايير-nist-kyber--ml-kem">7.2 Module-LWE ومعايير NIST (Kyber / ML-KEM)
&lt;/h2>&lt;p>في حين أن Ring-LWE فعالة، كان هناك قلق بسيط من أن البنية الجبرية الخاصة للشبكة المثالية قد تصبح نقطة انطلاق لهجمات مستقبلية. لذلك، فإن &amp;ldquo;Module-LWE (MLWE)&amp;rdquo; هو الذي أخذ &amp;ldquo;أفضل ما في العالمين&amp;rdquo;: الأمان المحافظ لـ LWE القياسية وكفاءة Ring-LWE.&lt;/p>
&lt;p>في Module-LWE، نأخذ في الاعتبار مصفوفات ومتجهات صغيرة حيث تكون عناصرها متعددات حدود. بعبارة أخرى، نتعامل مع وحدات (Modules) فوق حلقات.
حالياً، تعتمد &amp;ldquo;CRYSTALS-Kyber&amp;rdquo; (الاسم الموحد: ML-KEM)، التي اختارها NIST كمعيار لخوارزمية تبادل المفاتيح (KEM) لـ PQC، بالضبط على صعوبة مسألة Module-LWE هذه.&lt;/p>
&lt;h1 id="8-لماذا-يعتبر-آمنا-ضد-أجهزة-الكمبيوتر-الكمومية">8. لماذا يعتبر آمناً ضد أجهزة الكمبيوتر الكمومية؟
&lt;/h1>&lt;p>أخيراً، سنتطرق إلى النقطة الأساسية: &amp;ldquo;لماذا يُعتقد أن التشفير القائم على الشبكة لا يمكن فك تشفيره حتى باستخدام جهاز كمبيوتر كمومي؟&amp;rdquo;.&lt;/p>
&lt;p>إن خوارزمية شور، التي يستخدمها الكمبيوتر الكمومي لكسر تشفير RSA وتشفير المنحنى الإهليلجي، هي في جوهرها خوارزمية تحل &amp;ldquo;مسألة المجموعة الفرعية المخفية&amp;rdquo; (Hidden Subgroup Problem: HSP). تتمتع البنية الرياضية (المجموعات الأبيلية المحدودة - Finite abelian groups) وراء RSA و ECC بدورية (Periodicity)، ومن خلال استخدام عملية كمومية خاصة تسمى تحويل فورييه الكمومي (QFT)، يمكن استخراج هذه الفترة (المجموعة الفرعية المخفية) دفعة واحدة.&lt;/p>
&lt;p>ومع ذلك، فإن مسائل الشبكة تختلف بشكل أساسي. في حين أن للشبكات أيضاً دورية، فإن المطلوب في SVP و CVP هو خصائص هندسية غير خطية مثل &amp;ldquo;أقصر مسافة&amp;rdquo; و &amp;ldquo;إزالة الضوضاء&amp;rdquo;. حتى لو تم تطبيق &amp;ldquo;تحويل فورييه الكمومي على مجموعة أبيلية&amp;rdquo; كما هو الحال في خوارزمية شور مباشرة، لا يمكن استخراج المعلومات المفيدة التي يمكن أن تشكل حلاً لمسألة الشبكة بكفاءة. حتى يومنا هذا، لم يتم اكتشاف أي خوارزمية كمومية يمكنها حل SVP أو LWE في وقت كثير الحدود، ويُعتقد على نطاق واسع أنه حتى مع قوة الحوسبة المتوازية لأجهزة الكمبيوتر الكمومية، فإن الاستكشاف الذي يقترب من القوة الغاشمة (فقط تحسين الجذر التربيعي بواسطة خوارزمية غروفر - Grover&amp;rsquo;s algorithm) هو الطريقة الوحيدة الفعالة.&lt;/p>
&lt;h1 id="9-الخلاصة">9. الخلاصة
&lt;/h1>&lt;p>في هذا المقال، شرحنا بالتفصيل الحدس الرياضي للتشفير القائم على الشبكة، بدءاً من التعريف الهندسي للشبكة، وصياغة مسألة LWE، ووصولاً إلى بناء تشفير المفتاح العام.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>الشبكة (Lattice)&lt;/strong> هي فضاء منفصل يتم التعبير عنه بتركيبة خطية ذات معاملات صحيحة لمتجهات الأساس، وفي الأبعاد العالية، يصبح من الصعب العثور على &amp;ldquo;أساس جيد&amp;rdquo; قريب من التعامد (SVP).&lt;/li>
&lt;li>&lt;strong>مسألة LWE (التعلم مع الأخطاء)&lt;/strong> هي مسألة حل نظام من المعادلات الخطية المتزامنة مع الضوضاء، ونظراً لأن هذه المسألة مرتبطة بصعوبة أسوأ حالة لمسائل الشبكة، فإنها توفر أساساً قوياً للأمان.&lt;/li>
&lt;li>باستخدام مسألة LWE، يتم تحقيق التشفير وفك التشفير (&lt;strong>تشفير Regev&lt;/strong>) من خلال آلية بارعة لإضافة وإزالة الضوضاء عمداً.&lt;/li>
&lt;li>في البروتوكولات الحقيقية، لزيادة كفاءة الاتصال وسرعة الحساب، يتم اعتماد &lt;strong>Ring-LWE&lt;/strong> و &lt;strong>Module-LWE&lt;/strong> باستخدام حلقات متعددة الحدود، وهي تُشكل أساس &lt;strong>ML-KEM&lt;/strong> القياسي لـ NIST.&lt;/li>
&lt;/ol>
&lt;p>في خضم اقتراب نقلة نموذجية حسابية غير مسبوقة متمثلة في أجهزة الكمبيوتر الكمومية، من الرومانسي للغاية أن نرى &amp;ldquo;التشفير القائم على الشبكة&amp;rdquo;، الذي نشأ من أعماق الجبر الخطي الكلاسيكي ونظرية الأعداد، يتولى دور الأساس لأمن الإنترنت في المستقبل. الرياضيات التي تكمن وراء التشفير القائم على الشبكة ليست غامضة للغاية بأي حال من الأحوال، ومع المعرفة الأساسية بالجبر الخطي والاحتمالات، يمكن فهم بنيتها الجميلة بالكامل. نأمل أن يكون هذا المقال قد ساعدك على فهم التشفير القائم على الشبكة، الذي يشكل نواة PQC.&lt;/p></description></item><item><title>فرضية ريمان وتوزيع الأعداد الأولية: علاقة عميقة مع تقنيات التشفير الحديثة</title><link>http://kenji.blog/ar/p/riemann-hypothesis-prime-distribution-cryptography/</link><pubDate>Fri, 11 Sep 2026 16:00:00 +0900</pubDate><guid>http://kenji.blog/ar/p/riemann-hypothesis-prime-distribution-cryptography/</guid><description>&lt;img src="http://kenji.blog/p/riemann-hypothesis-prime-distribution-cryptography/img/eyecatch.jpg" alt="Featured image of post فرضية ريمان وتوزيع الأعداد الأولية: علاقة عميقة مع تقنيات التشفير الحديثة" />&lt;h1 id="1-مقدمة-غموض-الأعداد-الأولية-في-الكون-وفرضية-ريمان">1. مقدمة: غموض الأعداد الأولية في الكون وفرضية ريمان
&lt;/h1>&lt;p>&amp;ldquo;الأعداد الأولية (Prime Numbers)&amp;rdquo; هي الأعداد الطبيعية التي لا تقبل القسمة إلا على 1 وعلى نفسها، وتُعرف أيضاً بـ &amp;ldquo;ذرات&amp;rdquo; عالم الرياضيات. تبدو هذه السلسلة من الأعداد 2, 3, 5, 7, 11, 13&amp;hellip; عشوائية وبدون نظام واضح للوهلة الأولى. منذ أن أثبت عالم الرياضيات اليوناني القديم إقليدس أن &amp;ldquo;الأعداد الأولية لا نهائية&amp;rdquo;، حاول عدد لا يحصى من علماء الرياضيات كشف القواعد الخفية وراء تسلسل هذه الأعداد.&lt;/p>
&lt;p>أقرب محاولة لحل لغز الأعداد الأولية كانت &lt;strong>&amp;ldquo;فرضية ريمان (Riemann Hypothesis)&amp;rdquo;&lt;/strong> التي اقترحها عالم الرياضيات الألماني برنارد ريمان (Bernhard Riemann) في عام 1859. تعتبر فرضية ريمان واحدة من أهم المسائل المستعصية في الرياضيات الحديثة، وهي إحدى مسائل جائزة الألفية التي حددها معهد كلاي للرياضيات بجائزة قدرها مليون دولار.&lt;/p>
&lt;p>للوهلة الأولى، قد يبدو لغز التوزيع للأعداد الأولية في الرياضيات البحتة غير ذي صلة بحياتنا اليومية. ومع ذلك، فإن أمن الإنترنت الذي يدعم البنية التحتية للمجتمع الحديث، وخاصة &lt;strong>تقنيات التشفير الحديثة مثل تشفير RSA وتشفير المنحنيات الإهليلجية (ECC)&lt;/strong>، يعتمد بشدة على خصائص الأعداد الأولية الضخمة.&lt;/p>
&lt;p>في هذا المقال، سنقوم برحلة رياضية من توزيع الأعداد الأولية إلى مبرهنة الأعداد الأولية، ودالة زيتا لريمان، وصولاً إلى جوهر فرضية ريمان، وسنتعمق بالتفصيل في كيفية ارتباطها بتقنيات التشفير الحديثة، وماذا سيحدث للعالم إذا تم إثبات فرضية ريمان.&lt;/p>
&lt;hr>
&lt;h1 id="2-مبرهنة-الأعداد-الأولية-وتوزيع-الأعداد-الأولية-اكتشاف-غاوس">2. مبرهنة الأعداد الأولية وتوزيع الأعداد الأولية: اكتشاف غاوس
&lt;/h1>&lt;p>لفهم كيفية توزيع الأعداد الأولية، فكر علماء الرياضيات في &lt;strong>دالة عد الأعداد الأولية (Prime-counting function)&lt;/strong> $\pi(x)$ التي تعبر عن &amp;ldquo;عدد الأعداد الأولية الموجودة أقل من أو تساوي عدداً معيناً $x$&amp;rdquo;.&lt;/p>
&lt;p>على سبيل المثال:&lt;/p>
&lt;ul>
&lt;li>$\pi(10) = 4$ (2, 3, 5, 7)&lt;/li>
&lt;li>$\pi(100) = 25$&lt;/li>
&lt;li>$\pi(1000) = 168$&lt;/li>
&lt;/ul>
&lt;p>اكتشف عالم الرياضيات العبقري كارل فريدريش غاوس (Carl Friedrich Gauss) في سن الخامسة عشرة، بعد حساب جداول ضخمة للأعداد الأولية، أن تكرار ظهور الأعداد الأولية يتناقص بشكل يتناسب عكسياً مع اللوغاريتم الطبيعي $\ln x$. بمعنى آخر، توقع أن احتمال العثور على عدد أولي بالقرب من عدد معين $x$ هو حوالي $\frac{1}{\ln x}$.&lt;/p>
&lt;p>تم التعبير عن هذا باستخدام التكامل في &lt;strong>التكامل اللوغاريتمي (Logarithmic integral)&lt;/strong> $\text{Li}(x)$:&lt;/p>
$$ \text{Li}(x) = \int_{2}^{x} \frac{dt}{\ln t} $$
&lt;p>تم إثبات توقع غاوس لاحقاً وبشكل مستقل من قبل جاك هادامار وشارل جان دو لا فالي بوسان في عام 1896، وتأسست كـ &lt;strong>مبرهنة الأعداد الأولية (Prime Number Theorem, PNT)&lt;/strong>:&lt;/p>
$$ \lim_{x \to \infty} \frac{\pi(x)}{\text{Li}(x)} = 1 $$
&lt;p>أو يمكن التعبير عنها تقريبياً على النحو التالي:&lt;/p>
$$ \pi(x) \sim \frac{x}{\ln x} $$
&lt;p>بفضل هذه المبرهنة، أصبح من الواضح أن الأعداد الأولية، عند النظر إليها على نطاق واسع (ماكروسكوبي)، تمتلك توزيعاً سلساً للغاية ويمكن التنبؤ به. ومع ذلك، عند النظر إليها على نطاق ضيق (ميكروسكوبي)، هناك دائماً &amp;ldquo;خطأ&amp;rdquo; أو &amp;ldquo;تذبذب&amp;rdquo; بين $\pi(x)$ و $\text{Li}(x)$. الهوية الحقيقية لهذا التذبذب هي اللغز الأكبر الذي تحاول فرضية ريمان حله.&lt;/p>
&lt;hr>
&lt;h1 id="3-دالة-زيتا-لريمان-وحاصل-ضرب-أويلر">3. دالة زيتا لريمان وحاصل ضرب أويلر
&lt;/h1>&lt;p>أقوى سلاح في تحليل توزيع الأعداد الأولية هو &lt;strong>دالة زيتا لريمان (Riemann Zeta Function)&lt;/strong>. في الأصل، كانت متسلسلة لانهائية تم تعريفها من قبل ليونهارت أويلر (Leonhard Euler) للأعداد الحقيقية $s > 1$:&lt;/p>
$$ \zeta(s) = \sum_{n=1}^\infty \frac{1}{n^s} = 1 + \frac{1}{2^s} + \frac{1}{3^s} + \frac{1}{4^s} + \dots $$
&lt;p>أحد أعظم إنجازات أويلر هو إثباته أن هذه المتسلسلة اللانهائية يمكن التعبير عنها كحاصل ضرب لانهائي يشمل جميع الأعداد الأولية $p$. هذا هو &lt;strong>حاصل ضرب أويلر (Euler Product Formula)&lt;/strong>:&lt;/p>
$$ \zeta(s) = \prod_{p \text{ prime}} \frac{1}{1 - p^{-s}} = \left( \frac{1}{1 - 2^{-s}} \right) \left( \frac{1}{1 - 3^{-s}} \right) \left( \frac{1}{1 - 5^{-s}} \right) \dots $$
&lt;p>الفهم الحدسي لهذا الإثبات هو أنه إذا قمنا بنشر كل حد في الجانب الأيمن كمتسلسلة هندسية وضربناها معاً، فبفضل المبرهنة الأساسية في الحساب (كل عدد طبيعي يمكن التعبير عنه بشكل فريد كحاصل ضرب أعداد أولية)، يتم إعادة بناء مجموع مقلوبات الأعداد الطبيعية في الجانب الأيسر بالكامل.&lt;/p>
&lt;p>&lt;strong>هذه المعادلة الرياضية الواحدة أصبحت جسراً يربط بين التحليل الرياضي (المتسلسلات اللانهائية والدوال المستمرة) ونظرية الأعداد (الأعداد الأولية والأعداد المنفصلة).&lt;/strong> دراسة دالة زيتا مرادفة لدراسة توزيع الأعداد الأولية.&lt;/p>
&lt;hr>
&lt;h1 id="4-الامتداد-التحليلي-والتوسيع-إلى-المستوى-المركب">4. الامتداد التحليلي والتوسيع إلى المستوى المركب
&lt;/h1>&lt;p>تكمن عبقرية ريمان في أنه وسع المتغير $s$ في الدالة $\zeta(s)$، الذي كان أويلر يعتبره عدداً حقيقياً فقط، ليصبح &lt;strong>عدداً مركباً $s = \sigma + it$ ($\sigma$ هو الجزء الحقيقي و $t$ هو الجزء التخيلي)&lt;/strong>.&lt;/p>
&lt;p>المتسلسلة اللانهائية الأصلية تتقارب فقط عندما يكون $\sigma > 1$، ولكن باستخدام تقنية &amp;ldquo;الامتداد التحليلي (Analytic Continuation)&amp;quot;، وسع ريمان التعريف بحيث أصبح للدالة $\zeta(s)$ معنى في كل المستوى المركب باستثناء القطب عند $s = 1$.&lt;/p>
&lt;p>وعلاوة على ذلك، استنتج معادلة دالية (Functional equation) جميلة تحققها دالة زيتا:&lt;/p>
$$ \zeta(s) = 2^s \pi^{s-1} \sin\left(\frac{\pi s}{2}\right) \Gamma(1-s) \zeta(1-s) $$
&lt;p>حيث $\Gamma(x)$ هي دالة غاما. من خلال هذه المعادلة، يمكننا معرفة خصائص النصف الأيسر من المستوى بناءً على خصائص النصف الأيمن.&lt;/p>
&lt;h3 id="الأصفار-zeros-of-the-zeta-function">الأصفار (Zeros of the Zeta Function)
&lt;/h3>&lt;p>تُسمى الأعداد المركبة $s$ التي تجعل قيمة دالة زيتا تساوي 0 بـ &amp;ldquo;الأصفار&amp;rdquo;.
من المعادلة الدالية، عندما يكون $s$ عدداً زوجياً سالباً ($-2, -4, -6, \dots$)، تصبح $\sin(\pi s / 2)$ صفراً، وبالتالي تكون $\zeta(s) = 0$. وتُعرف هذه بـ &lt;strong>الأصفار البديهية (Trivial zeros)&lt;/strong>.&lt;/p>
&lt;p>ومع ذلك، ما يهم في توزيع الأعداد الأولية هي الأصفار الأخرى، وتحديداً &lt;strong>الأصفار غير البديهية (Non-trivial zeros)&lt;/strong> التي تقع في &amp;ldquo;الشريط الحرج (Critical strip)&amp;rdquo; حيث $0 \le \sigma \le 1$.&lt;/p>
&lt;hr>
&lt;h1 id="5-جوهر-فرضية-ريمان-والصيغة-الصريحة">5. جوهر فرضية ريمان والصيغة الصريحة
&lt;/h1>&lt;p>حسب ريمان عدداً قليلاً من الأصفار وطرح فرضية مذهلة. هذه هي &lt;strong>فرضية ريمان&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>فرضية ريمان (Riemann Hypothesis)&lt;/strong>
جميع الأصفار غير البديهية لدالة زيتا لريمان $\zeta(s)$ تقع على خط مستقيم جزؤه الحقيقي يساوي $1/2$ (أي $\text{Re}(s) = 1/2$).&lt;/p>
&lt;/blockquote>
&lt;p>يسمى هذا الخط الذي يكون فيه الجزء الحقيقي 1/2 بـ &amp;ldquo;الخط الحرج (Critical line)&amp;rdquo;.&lt;/p>
&lt;div class="mermaid">graph TD
A["دالة زيتا لريمان ζ(s)"] --> B["التوسيع إلى المستوى المركب بواسطة الامتداد التحليلي"]
B --> C["الأصفار البديهية (s = -2, -4, -6 ...)"]
B --> D["الأصفار غير البديهية (0 &lt;= Re(s) &lt;= 1)"]
D --> E["فرضية ريمان"]
E --> F["جميع الأصفار غير البديهية تقع على Re(s) = 1/2"]
F --> G["تؤدي إلى إثبات نهاية مصطلح الخطأ في توزيع الأعداد الأولية"]&lt;/div>
&lt;p>لماذا تعتبر فرضية ريمان على هذا القدر من الأهمية؟ لأن أصفار دالة زيتا تحدد &lt;strong>بالكامل&lt;/strong> توزيع الأعداد الأولية.&lt;/p>
&lt;p>استنتج ريمان ولاحقاً عالم الرياضيات فون مانجولدت &amp;ldquo;الصيغة الصريحة (Explicit formula)&amp;rdquo; التي تصف توزيع الأعداد الأولية بدقة. باستخدام دالة تشيبيشيف $\psi(x)$، يمكن التعبير عنها كما يلي:&lt;/p>
$$ \psi(x) = x - \sum_{\rho} \frac{x^\rho}{\rho} - \ln(2\pi) - \frac{1}{2}\ln(1 - x^{-2}) $$
&lt;p>حيث $\rho$ يمثل المجموع عبر جميع الأصفار غير البديهية لدالة زيتا.
المصطلح الرئيسي هو $x$ (والذي يتوافق مع مبرهنة الأعداد الأولية)، ومن خلال إضافة أو طرح المصطلحات الشبيهة بالتموجات التي تعتمد على الأصفار $\rho$، يتم إعادة بناء التوزيع الدقيق المتدرج للأعداد الأولية. يمكن القول إن الأصفار غير البديهية تمثل &amp;ldquo;ترددات (موجات)&amp;rdquo; توزيع الأعداد الأولية.&lt;/p>
&lt;p>إذا كانت فرضية ريمان صحيحة، وكان الجزء الحقيقي لجميع الأصفار غير البديهية $\rho$ هو بالضبط $1/2$، فإن مصطلح الخطأ في مبرهنة الأعداد الأولية سيندرج ضمن أصغر نطاق يمكن تصوره نظرياً.&lt;/p>
$$ |\pi(x) - \text{Li}(x)| \le \frac{1}{8\pi} \sqrt{x} \ln x \quad \text{for} \quad x \ge 2657 $$
&lt;p>بعبارة أخرى، &lt;strong>إذا كانت فرضية ريمان صحيحة، فسيثبت ذلك أن الأعداد الأولية موزعة بأكثر الطرق &amp;ldquo;انتظاماً وجمالاً&amp;rdquo; التي يمكننا تخيلها&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h1 id="6-العلاقة-التي-لا-تنفصل-بين-تقنيات-التشفير-الحديثة-والأعداد-الأولية">6. العلاقة التي لا تنفصل بين تقنيات التشفير الحديثة والأعداد الأولية
&lt;/h1>&lt;p>حتى هذه النقطة كنا في عالم الرياضيات البحتة العميق، ولكن هذه الخصائص للأعداد الأولية تدعم من الأساس مجتمعنا الرقمي الحديث. والمثال الأبرز على ذلك هو تشفير المفتاح العام مثل &lt;strong>تشفير RSA&lt;/strong>.&lt;/p>
&lt;p>تعتمد أمان كافة الاتصالات مثل مدفوعات بطاقات الائتمان على الإنترنت، وإرسال كلمات المرور، والتوقيعات الإلكترونية لتقنية البلوك تشين على &amp;ldquo;الأعداد الأولية&amp;rdquo;.&lt;/p>
&lt;h3 id="كيفية-عمل-تشفير-rsa">كيفية عمل تشفير RSA
&lt;/h3>&lt;p>يعتمد أمان تشفير RSA على الحقيقة الرياضية القائلة بأن &amp;ldquo;تحليل رقم مركب كبير جداً إلى عوامله الأولية يمثل صعوبة بالغة&amp;rdquo; (مسألة التحليل إلى العوامل الأولية).&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>توليد المفاتيح&lt;/strong>:
يتم اختيار عددين أوليين ضخمين بشكل عشوائي $p$ و $q$ (مثلاً 2048 بت لكل منهما).
يتم ضربهما معاً لحساب $N = p \times q$. هذا الـ $N$ يصبح جزءاً من المفتاح العام.
باستخدام دالة مؤشر أويلر $\phi(N) = (p-1)(q-1)$، يتم توليد المفتاح الخاص $d$.&lt;/p>
$$ e \times d \equiv 1 \pmod{\phi(N)} $$
&lt;/li>
&lt;li>
&lt;p>&lt;strong>التشفير وفك التشفير&lt;/strong>:
يتم تحويل النص الواضح $M$ إلى نص مشفر $C$ باستخدام المفتاح العام $e, N$.
&lt;/p>
$$ C \equiv M^e \pmod{N} $$
&lt;p>
فقط من يمتلك المفتاح الخاص $d$ يمكنه فك التشفير.
&lt;/p>
$$ M \equiv C^d \pmod{N} $$
&lt;/li>
&lt;/ol>
&lt;div class="mermaid">graph LR
A["النص الواضح (Plaintext)"] --> B["التشفير بالمفتاح العام (e, N)"]
B --> C["النص المشفر (Ciphertext)"]
C --> D["فك التشفير بالمفتاح الخاص (d)"]
D --> E["النص الواضح الأصلي"]
F["المهاجم (Attacker)"] -- "محاولة تحليل N إلى عوامله الأولية" --> C
F -.-> G["بدون معرفة p و q، لا يمكن حساب d"]&lt;/div>
&lt;p>لكسر تشفير RSA، من الضروري إيجاد الأعداد الأولية الأصلية $p$ و $q$ (التحليل إلى عوامل) انطلاقاً من العدد الضخم $N$. حتى باستخدام الخوارزميات السائدة حالياً (مثل منخل حقل الأعداد العام: GNFS)، فإن تحليل عدد يتكون من مئات الأرقام قد يستغرق وقتاً يتجاوز بكثير عمر الكون، حتى باستخدام أجهزة الكمبيوتر الفائقة.&lt;/p>
&lt;hr>
&lt;h1 id="7-تأثير-فرضية-ريمان-على-تقنيات-التشفير">7. تأثير فرضية ريمان على تقنيات التشفير
&lt;/h1>&lt;p>إذن، كيف تتقاطع &amp;ldquo;فرضية ريمان&amp;rdquo; الموجودة في قمة الرياضيات البحتة مع &amp;ldquo;تقنيات التشفير&amp;rdquo;؟&lt;/p>
&lt;h3 id="71-خوارزميات-توليد-الأعداد-الأولية-اختبار-الأولية-وفرضية-ريمان-المعممة-grh">7.1. خوارزميات توليد الأعداد الأولية (اختبار الأولية) وفرضية ريمان المعممة (GRH)
&lt;/h3>&lt;p>لتشغيل تشفير RSA، يجب أولاً توليد أعداد أولية ضخمة $p$ و $q$. ومع ذلك، فإن التحديد السريع والمؤكد لـ &amp;ldquo;ما إذا كان عدد ما أولياً أم لا&amp;rdquo; ليس أمراً سهلاً.&lt;/p>
&lt;p>حالياً، تستخدم الخوارزمية الاحتمالية المعروفة بـ &lt;strong>اختبار ميلر-رابين لأولية عدد (Miller-Rabin primality test)&lt;/strong> بشكل عملي. هذه الخوارزمية سريعة جداً، ولكنها تحمل خطراً ضئيلاً جداً لحدوث &amp;ldquo;أعداد شبه أولية&amp;rdquo;، حيث يتم تحديد عدد مركب بشكل خاطئ على أنه عدد أولي.&lt;/p>
&lt;p>ومع ذلك، إذا افترضنا أن &lt;strong>&amp;ldquo;فرضية ريمان المعممة (Generalized Riemann Hypothesis, GRH)&amp;rdquo;&lt;/strong>، التي توسع فرضية ريمان إلى دوال L لدركليه، صحيحة، فإن القصة تتغير بشكل جذري.
إذا كانت GRH صحيحة، فإن الحد الأقصى لعدد الاختبارات في خوارزمية ميلر-رابين يصبح مضموناً رياضياً، وترتقي من خوارزمية احتمالية إلى &lt;strong>&amp;ldquo;خوارزمية حتمية ذات وقت كثير الحدود&amp;rdquo;&lt;/strong> (كانت هذه حقيقة مهمة معروفة قبل اكتشاف اختبار AKS للأولية).&lt;/p>
&lt;p>بمعنى آخر، تلعب فرضية ريمان (وتعميماتها) دوراً في إعطاء ضمانات مباشرة وقاطعة لتوليد الأعداد الأولية الضخمة بسرعة وموثوقية مطلقة، وهو ما يمثل الأساس لتوليد التشفير.&lt;/p>
&lt;h3 id="72-العلاقة-بخوارزميات-التحليل-إلى-العوامل">7.2. العلاقة بخوارزميات التحليل إلى العوامل
&lt;/h3>&lt;p>تعتبر معرفة توزيع الأعداد الأولية أمراً حتمياً عند تقييم التعقيد الحسابي للخوارزميات المستخدمة لفك التشفير (مثل منخل حقل الأعداد العام). تعتمد العديد من خوارزميات التحليل إلى عوامل على توزيع &amp;ldquo;الأعداد السلسة (Smooth numbers: الأعداد التي تحتوي فقط على عوامل أولية صغيرة)&amp;rdquo;.&lt;/p>
&lt;p>لتقييم مدى تكرار ظهور الأعداد السلسة بدقة، يلزم وجود فهم عميق لتوزيع الأعداد الأولية، وهنا أيضاً يتم استخدام تقنيات نظرية الأعداد التحليلية المرتبطة مباشرة بدالة زيتا وفرضية ريمان. إذا تم إثبات فرضية ريمان وتم تحديد خطأ توزيع الأعداد الأولية بالكامل، فسيصبح من الممكن تحديد حدود الأداء لخوارزميات التحليل إلى عوامل بشكل أكثر دقة.&lt;/p>
&lt;hr>
&lt;h1 id="8-إذا-تم-إثبات-فرضية-ريمان-هل-سيتم-كسر-التشفير">8. إذا تم إثبات فرضية ريمان، هل سيتم كسر التشفير؟
&lt;/h1>&lt;p>غالباً ما يُقال كنوع من الأساطير الحضرية: &amp;ldquo;إذا حُلت فرضية ريمان، سينهار تشفير RSA في لحظة&amp;rdquo;، ولكن &lt;strong>هذا غير دقيق رياضياً&lt;/strong>.&lt;/p>
&lt;p>إثبات فرضية ريمان بحد ذاته لا يخلق فوراً خوارزمية سحرية تسرع بشكل كبير من التحليل إلى عوامل أولية. فرضية ريمان هي مجرد نظرية حول &amp;ldquo;الانتظام الماكروسكوبي لتوزيع&amp;rdquo; الأعداد الأولية، ولا تخبرنا مباشرة (كخاصية محلية) عن الأعداد الأولية التي تقسم عدداً معيناً $N$.&lt;/p>
&lt;p>ومع ذلك، فإن التأثير ليس صفراً.
لأنه في عملية إثبات فرضية ريمان، هناك احتمال كبير جداً لاكتشاف &lt;strong>&amp;ldquo;أدوات رياضية جديدة&amp;rdquo; أو &amp;ldquo;أساليب تحليل غير معروفة&amp;rdquo;&lt;/strong>. بالنظر إلى التاريخ، عندما تم إثبات مبرهنة فيرما الأخيرة أو حدسية بوانكاريه، فإن النظريات الجديدة التي طُورت خلال تلك العملية دفعت الرياضيات بأكملها إلى قفزات هائلة.&lt;/p>
&lt;p>إذا تم تأسيس طرق هندسية جبرية غير معروفة أو أساليب هندسية غير تبادلية قادرة على التحكم الكامل في خصائص أصفار دالة زيتا لريمان، فلا يمكن إنكار احتمال أن يؤدي ذلك كنتيجة إلى اكتشاف خوارزميات ثورية للتحليل إلى العوامل (على سبيل المثال، خوارزمية كلاسيكية تقلل وقت الحساب إلى وقت كثير الحدود). بهذا المعنى، لا يمكن لعلماء التشفير أن يغضوا الطرف أبداً عن تطورات فرضية ريمان.&lt;/p>
&lt;h3 id="الحواسيب-الكمومية-وخوارزمية-شور">الحواسيب الكمومية وخوارزمية شور
&lt;/h3>&lt;p>التهديد الأكثر مباشرة وواقعية لتقنيات التشفير ليس إثبات فرضية ريمان، بل &lt;strong>الحواسيب الكمومية&lt;/strong>. &amp;ldquo;خوارزمية شور&amp;rdquo; التي نشرها بيتر شور (Peter Shor) في عام 1994، أثبتت أنه بوجود حاسوب كمي ذو أداء كافٍ، يمكن حل التحليل إلى العوامل في وقت كثير الحدود. هذا يعني أن تشفير RSA وتشفير المنحنيات الإهليلجية سيتم كسرهما بشكل جذري.&lt;/p>
&lt;p>حالياً، يجري التحول عالمياً نحو &amp;ldquo;تشفير ما بعد الكوانتم (Post-Quantum Cryptography, PQC)&amp;rdquo; الذي لا يمكن فك تشفيره حتى بواسطة الحواسيب الكمومية (مثل التشفير القائم على الشبكات). ربما يقترب العصر الذهبي لتقنيات التشفير المعتمدة على الأعداد الأولية من نهايته بطريقة ما، لكن القيمة الرياضية للأعداد الأولية بحد ذاتها لن تضيع أبداً.&lt;/p>
&lt;hr>
&lt;h1 id="9-الخاتمة-تقاطع-التجريد-الرياضي-مع-المجتمع-الواقعي">9. الخاتمة: تقاطع التجريد الرياضي مع المجتمع الواقعي
&lt;/h1>&lt;div class="mermaid">graph TD
A["استكشاف الرياضيات البحتة"] --> B["توضيح فرضية ريمان"]
B --> C["فهم كامل لتوزيع الأعداد الأولية"]
C --> D["تطور هائل في نظرية الأعداد والهندسة الجبرية"]
D -.-> E["إمكانية خوارزميات جديدة للتحليل إلى العوامل"]
E -.-> F["تحديث تقييم أمان تقنيات التشفير"]
A --> G["الرياضيات التطبيقية وعلوم الكمبيوتر"]
G --> H["تحسين كفاءة اختبار الأولية وتوليد التشفير"]
H --> F&lt;/div>
&lt;p>الاستكشاف اللانهائي للأعداد الأولية، والذي استمر منذ اليونان القديمة، ارتقى بفضل العبقري ريمان ليصبح سيمفونية جميلة على المستوى المركب (أصفار دالة زيتا). ومن المثير للدهشة أن هذه البلورة الرياضية النقية، بعد مرور قرون، تُستخدم كأقوى درع لضمان أمن مجتمع الإنترنت.&lt;/p>
&lt;p>فرضية ريمان هي رمز يجسد في وقت واحد &amp;ldquo;الجمال التجريدي&amp;rdquo; للرياضيات و &amp;ldquo;القدرة المذهلة على التطبيق في العالم المادي والمجتمع الواقعي&amp;rdquo;.&lt;/p>
&lt;p>عندما يتم قهر هذا الجبل الرياضي الضخم الذي لم يصل إلى قمته أحد بعد، سنفهم تماماً الحقيقة الكونية المتمثلة في الأعداد الأولية، وسنمتلك منظوراً جديداً لبنية مجتمع المعلومات. إن دراسة تقنيات التشفير هي، في حد ذاتها، رحلة لتتبع تاريخ حكمة البشرية.&lt;/p></description></item><item><title>تاريخ تقنية التشفير: من تشفير قيصر إلى التشفير المقاوم للكم (PQC)</title><link>http://kenji.blog/ar/p/history-of-cryptography-caesar-to-pqc/</link><pubDate>Fri, 11 Sep 2026 15:00:00 +0900</pubDate><guid>http://kenji.blog/ar/p/history-of-cryptography-caesar-to-pqc/</guid><description>&lt;img src="http://kenji.blog/p/history-of-cryptography-caesar-to-pqc/img/eyecatch.jpg" alt="Featured image of post تاريخ تقنية التشفير: من تشفير قيصر إلى التشفير المقاوم للكم (PQC)" />&lt;h1 id="1-مقدمة-ما-هي-تقنية-التشفير">1. مقدمة: ما هي تقنية التشفير؟
&lt;/h1>&lt;p>تقنية التشفير (Cryptography) هي تقنية للحفاظ على سرية المعلومات، وقد تطورت مع تاريخ البشرية. من نقل الأوامر السرية في الحروب القديمة إلى حماية معلومات بطاقات الائتمان في الإنترنت الحديث، كان الغرض من التشفير ثابتًا. وهو &amp;ldquo;ضمان أن المتلقي المقصود فقط يمكنه فهم المعلومات، ولا يمكن لأي طرف ثالث فك تشفيرها&amp;rdquo;.&lt;/p>
&lt;p>في أمن المعلومات الحديث، لا تقتصر تقنية التشفير على مجرد &amp;ldquo;سرية المعلومات (Confidentiality)&amp;quot;، بل تلعب أيضًا أدوارًا مهمة مثل &amp;ldquo;سلامة البيانات (Integrity)&amp;quot;، &amp;ldquo;المصادقة (Authentication)&amp;quot;، و&amp;quot;عدم التنصل (Non-repudiation)&amp;rdquo;.&lt;/p>
&lt;p>في هذا المقال، سنستعرض بالتفصيل تاريخ تطور تقنية التشفير من منظور تقني ورياضي، بدءًا من تشفير الاستبدال البسيط في العصور القديمة، مرورًا بالتشفير الميكانيكي، وتشفير المفتاح المشترك والمفتاح العام الحديث، وصولًا إلى عصر &amp;ldquo;التشفير المقاوم للكم (PQC)&amp;rdquo; الذي سيحل مع الاستخدام العملي للحواسيب الكمومية.&lt;/p>
&lt;hr>
&lt;h1 id="2-عصر-التشفير-الكلاسيكي-استبدال-الحروف-وإعادة-ترتيبها">2. عصر التشفير الكلاسيكي: استبدال الحروف وإعادة ترتيبها
&lt;/h1>&lt;p>يعود أصل التشفير إلى ما قبل الميلاد. كان التشفير المبكر يتكون بشكل رئيسي من نهجين: &amp;ldquo;التبديل (القلب)&amp;rdquo; و&amp;quot;الاستبدال&amp;rdquo;.&lt;/p>
&lt;h2 id="تشفير-سكيوتال-تشفير-التبديل">تشفير سكيوتال (تشفير التبديل)
&lt;/h2>&lt;p>يُعد &amp;ldquo;سكيوتال (Scytale)&amp;quot;، الذي استُخدم في إسبرطة باليونان القديمة في القرن الخامس قبل الميلاد، أحد أقدم أدوات التشفير. يتم لف شريط طويل من الرق على عصا خشبية ذات سمك معين، وتُكتب الرسالة عليها أفقيًا. عند فك الشريط، تظهر الحروف بترتيب غير مفهوم، ولكن يمكن للمستلم الذي يمتلك عصا بنفس السمك قراءة الرسالة الأصلية بلف الشريط عليها مرة أخرى.&lt;/p>
&lt;h2 id="تشفير-قيصر-تشفير-الاستبدال-الأحادي">تشفير قيصر (تشفير الاستبدال الأحادي)
&lt;/h2>&lt;p>في القرن الأول قبل الميلاد، يُقال إن البطل الروماني القديم يوليوس قيصر استخدم &amp;ldquo;تشفير قيصر&amp;rdquo;. هذا التشفير هو تشفير استبدال أحادي (Monoalphabetic substitution) يزيح الأبجدية بعدد ثابت (عادة 3 أحرف).&lt;/p>
&lt;p>رياضيًا، إذا تعاملنا مع الحروف كأرقام من $0$ إلى $25$، وكان عدد الإزاحة هو $K$، فإن التحويل من النص العادي $P$ إلى النص المشفر $C$ يتم التعبير عنه بمعادلة التطابق التالية.&lt;/p>
$$C \equiv P + K \pmod{26}$$
&lt;p>ولفك التشفير يتم إجراء العملية العكسية.&lt;/p>
$$P \equiv C - K \pmod{26}$$
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># مثال لتنفيذ بسيط لتشفير قيصر بلغة بايثون&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">caesar_cipher&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">text&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">shift&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mode&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;encrypt&amp;#34;&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">mode&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;decrypt&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">shift&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">shift&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">char&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">text&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">char&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">isalpha&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">base&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">ord&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;A&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="n">char&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">isupper&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="nb">ord&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;a&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># حساب الإزاحة&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">result&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="nb">chr&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="nb">ord&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">char&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">base&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">shift&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">26&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">base&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">result&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">char&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">result&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># مثال على التنفيذ&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plaintext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;HELLO WORLD&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">caesar_cipher&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">plaintext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;encrypt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;النص المشفر: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># KHOOR ZRUOG&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="تحليل-التكرار-وتشفير-فيجينير">تحليل التكرار وتشفير فيجينير
&lt;/h2>&lt;p>أصبح فك تشفير الاستبدال الأحادي سهلاً بفضل &amp;ldquo;تحليل التكرار (Frequency Analysis)&amp;rdquo; الذي ابتكره العالم العربي الكندي في القرن التاسع. وهو يستغل الخصائص الإحصائية للغة، مثل كثرة ظهور حرفي &amp;ldquo;E&amp;rdquo; و &amp;ldquo;T&amp;rdquo; في اللغة الإنجليزية.&lt;/p>
&lt;p>ولمواجهة ذلك، تم ابتكار &amp;ldquo;تشفير فيجينير (Vigenère cipher)&amp;rdquo; في القرن السادس عشر. وهو تشفير استبدال متعدد (Polyalphabetic substitution) يستخدم عدة إزاحات (مفاتيح) بالتبادل دوريًا، وظل يُعرف باسم &amp;ldquo;التشفير غير القابل للكسر (Le Chiffre Indéchiffrable)&amp;rdquo; لنحو 300 عام.&lt;/p>
&lt;p>رياضيًا، يتم تشفير الحرف رقم $i$ من النص العادي $P_i$ والحرف رقم $i$ من المفتاح المتكرر $K_i$ على النحو التالي.&lt;/p>
$$C_i \equiv P_i + K_i \pmod{26}$$
&lt;p>تم فك هذا التشفير أيضًا في القرن التاسع عشر على يد تشارلز بابيج وفريدريش كاسيسكي، اللذين اكتشفا &amp;ldquo;اختبار كاسيسكي (Kasiski examination)&amp;rdquo; لتحديد طول المفتاح من الأنماط المتكررة في النص المشفر.&lt;/p>
&lt;div class="mermaid">graph TD
subgraph "تصنيف التشفير الكلاسيكي"
A["التشفير الكلاسيكي"] --> B["تشفير التبديل"]
A --> C["تشفير الاستبدال"]
B --> D["تشفير سكيوتال"]
C --> E["الاستبدال الأحادي"]
C --> F["الاستبدال المتعدد"]
E --> G["تشفير قيصر"]
F --> H["تشفير فيجينير"]
end&lt;/div>
&lt;hr>
&lt;h1 id="3-التشفير-الميكانيكي-والحروب-العالمية-إنجما-وفك-تشفيرها">3. التشفير الميكانيكي والحروب العالمية: إنجما وفك تشفيرها
&lt;/h1>&lt;p>مع دخول القرن العشرين، انتقلت وسائل الاتصال من الرسائل إلى التلغراف والراديو، مما تطلب سرعة وتعقيدًا أكبر في التشفير. وهنا ظهر &amp;ldquo;التشفير الميكانيكي&amp;rdquo; الذي يجمع بين الدوارات (العجلات الدوارة).&lt;/p>
&lt;h2 id="تهديد-إنجما-enigma">تهديد إنجما (Enigma)
&lt;/h2>&lt;p>خلال الحرب العالمية الثانية، استخدمت ألمانيا النازية &amp;ldquo;إنجما&amp;rdquo;، وهي أشهر آلة تشفير في تاريخ تقنية التشفير. كانت إنجما تتكون من عدة دوارات (عادة من 3 إلى 4)، ولوحة قوابس (Steckerbrett) لتبديل أسلاك الحروف، وعاكس (دوار عكسي).&lt;/p>
&lt;p>في كل مرة يتم فيها كتابة حرف على لوحة المفاتيح، يدور الدوار، بحيث يتم إخراج حرف مشفر مختلف حتى لو تم كتابة نفس الحرف بشكل متتالي (ذروة التشفير المتعدد). بلغ حجم مساحة المفاتيح (مجموعات الإعدادات) حوالي $1.58 \times 10^{19}$ احتمالًا (حوالي 15.8 كوينتيليون)، وكان يُعتبر من المستحيل فك تشفيرها باستخدام القوة الغاشمة بالتكنولوجيا المتوفرة في ذلك الوقت.&lt;/p>
&lt;h2 id="آلان-تورينج-وبومب-bombe">آلان تورينج و&amp;quot;بومب (Bombe)&amp;rdquo;
&lt;/h2>&lt;p>تصدى لهذا التشفير المنيع لإنجما فريق فك التشفير في حديقة بلتشلي في بريطانيا، بناءً على النتائج الأولية لعالم الرياضيات البولندي ماريان رييفسكي وآخرين.&lt;/p>
&lt;p>على وجه الخصوص، استخدم آلان تورينج (Alan Turing) تخمين النصوص العادية المقابلة لأجزاء من النص المشفر (Crib)، وطور آلة فك تشفير كهروميكانيكية تسمى &amp;ldquo;بومب (Bombe)&amp;rdquo;. تمكنت بومب من اكتشاف التناقضات المنطقية بسرعة عالية واستبعاد إعدادات الدوارات المستحيلة واحدة تلو الأخرى، مما أدى إلى نجاح فك تشفير إنجما. يُقال إن هذا الإنجاز العظيم عجّل بانتصار الحلفاء بعدة سنوات.&lt;/p>
&lt;hr>
&lt;h1 id="4-فجر-التشفير-الحديث-تشفير-المفتاح-المشترك-des-و-aes">4. فجر التشفير الحديث: تشفير المفتاح المشترك (DES و AES)
&lt;/h1>&lt;p>بعد الحرب، ومع ظهور أجهزة الكمبيوتر، شهد التشفير تحولاً جذرياً من معالجة &amp;ldquo;الحروف&amp;rdquo; إلى معالجة &amp;ldquo;البتات (0 و 1)&amp;rdquo;.&lt;/p>
&lt;h2 id="كلود-شانون-ونظرية-المعلومات">كلود شانون ونظرية المعلومات
&lt;/h2>&lt;p>في عام 1949، نشر كلود شانون ورقة بحثية بعنوان &amp;ldquo;نظرية الاتصال في الأنظمة السرية&amp;rdquo;، مرسيًا الأساس الرياضي للتشفير الحديث. واقترح &amp;ldquo;الارتباك (Confusion)&amp;rdquo; و&amp;quot;الانتشار (Diffusion)&amp;rdquo; كمبادئ لتصميم تشفير آمن.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>الارتباك (Confusion)&lt;/strong>: جعل العلاقة بين المفتاح والنص المشفر معقدة قدر الإمكان. (يتحقق عن طريق الاستبدال وصناديق S)&lt;/li>
&lt;li>&lt;strong>الانتشار (Diffusion)&lt;/strong>: التأكد من أن تغيير بت واحد من النص العادي يؤثر على العديد من بتات النص المشفر. (يتحقق عن طريق التبديل وإعادة الترتيب)&lt;/li>
&lt;/ul>
&lt;h2 id="des-data-encryption-standard">DES (Data Encryption Standard)
&lt;/h2>&lt;p>في عام 1977، وضع المعهد الوطني للمعايير والتكنولوجيا في الولايات المتحدة (NIST، وكان يسمى آنذاك NBS) &amp;ldquo;DES&amp;rdquo; كمعيار للتشفير بناءً على تصميم شركة IBM.
يتبنى DES بنية تسمى &amp;ldquo;شبكة فيستل (Feistel Network)&amp;quot;، ويبلغ طول كتلته 64 بت وطول المفتاح 56 بت. كان يتمتع بميزة تنفيذية تتمثل في أن خوارزميات التشفير وفك التشفير لها نفس البنية تقريبًا.&lt;/p>
&lt;p>ومع ذلك، مع تحسن القوة الحسابية لأجهزة الكمبيوتر، أصبح من الواضح أن طول المفتاح البالغ 56 بت (حوالي $7.2 \times 10^{16}$ احتمالًا) غير كافٍ. في عام 1998، طورت مؤسسة الحدود الإلكترونية (EFF) جهازًا مخصصًا يسمى &amp;ldquo;Deep Crack&amp;rdquo; وتمكنت من فك تشفير DES في غضون أيام قليلة.&lt;/p>
&lt;h2 id="aes-advanced-encryption-standard">AES (Advanced Encryption Standard)
&lt;/h2>&lt;p>كمعيار جديد يحل محل DES، تم اعتماد &amp;ldquo;AES&amp;rdquo; في عام 2001. تم اختيار خوارزمية &amp;ldquo;رايندال (Rijndael)&amp;rdquo; التي صممها علماء تشفير بلجيكيون من خلال دعوة عامة.&lt;/p>
&lt;p>يتبنى AES بنية &amp;ldquo;SPN (Substitution-Permutation Network)&amp;rdquo; بدلاً من بنية فيستل، ويستخدم العمليات الرياضية على مجال جالوا (المجال المحدود) $GF(2^8)$. يمكن اختيار طول المفتاح من 128 و 192 و 256 بت، ولا يزال يُستخدم على نطاق واسع كمعيار لتشفير المفتاح المشترك في جميع أنحاء العالم.&lt;/p>
&lt;div class="mermaid">graph TD
subgraph "معالجة الجولة الواحدة في AES (بنية SPN)"
A["حالة الإدخال (128-بت)"] --> B("SubBytes (استبدال البايت / S-Box)")
B --> C("ShiftRows (إزاحة الصفوف)")
C --> D("MixColumns (خلط الأعمدة / الضرب في GF(2^8))")
D --> E("AddRoundKey (XOR مع مفتاح الجولة)")
E --> F["إلى الجولة التالية"]
end&lt;/div>
&lt;hr>
&lt;h1 id="5-ثورة-تشفير-المفتاح-العام-من-ديفي-هيلمان-إلى-rsa">5. ثورة تشفير المفتاح العام: من ديفي-هيلمان إلى RSA
&lt;/h1>&lt;p>كان لتشفير المفتاح المشترك نقطة ضعف قاتلة. وهي &amp;ldquo;مشكلة توزيع المفاتيح (Key Distribution Problem)&amp;rdquo;. المشكلة هي كيفية مشاركة &amp;ldquo;المفتاح المشترك&amp;rdquo; بشكل آمن مع طرف بعيد قبل بدء الاتصال المشفر. تم حل هذه المشكلة بواسطة &amp;ldquo;تشفير المفتاح العام&amp;rdquo; الذي ظهر في السبعينيات.&lt;/p>
&lt;h2 id="تبادل-مفاتيح-ديفي-هيلمان">تبادل مفاتيح ديفي-هيلمان
&lt;/h2>&lt;p>في عام 1976، نشر ويتفيلد ديفي ومارتن هيلمان ورقة بحثية رائدة بعنوان &amp;ldquo;اتجاهات جديدة في التشفير&amp;rdquo;. لقد اقترحا طريقة لمشاركة المفاتيح بشكل آمن حتى على قنوات الاتصال التي يتم التنصت عليها، مستغلين الصعوبة الرياضية لـ &amp;ldquo;مشكلة اللوغاريتم المتقطع (Discrete Logarithm Problem)&amp;rdquo;.&lt;/p>
&lt;ol>
&lt;li>يتم نشر عدد أولي كبير $p$ ومولد $g$.&lt;/li>
&lt;li>تختار أليس قيمة سرية $a$ وترسل $A = g^a \pmod{p}$ إلى بوب.&lt;/li>
&lt;li>يختار بوب قيمة سرية $b$ ويرسل $B = g^b \pmod{p}$ إلى أليس.&lt;/li>
&lt;li>تحسب أليس $K = B^a \pmod{p}$ ، ويحسب بوب $K = A^b \pmod{p}$.&lt;/li>
&lt;li>وفقًا لقوانين الأسس، يصبح $K = (g^b)^a = (g^a)^b = g^{ab} \pmod{p}$، وبذلك ينجحان في مشاركة نفس المفتاح $K$.&lt;/li>
&lt;/ol>
&lt;h2 id="تشفير-rsa">تشفير RSA
&lt;/h2>&lt;p>في العام التالي، 1977، ابتكر رون ريفست وعادي شامير وليونارد أدليمان &amp;ldquo;تشفير RSA&amp;rdquo;. يعتمد هذا على خاصية أن &amp;ldquo;تحليل الأعداد المركبة الضخمة إلى عواملها الأولية أمر صعب&amp;rdquo;.&lt;/p>
&lt;p>&lt;strong>الآلية الرياضية لـ RSA:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>اختر عددين أوليين ضخمين $p$ و $q$ واحسب $n = p \times q$.&lt;/li>
&lt;li>احسب دالة مؤشر أويلر $\phi(n) = (p-1)(q-1)$.&lt;/li>
&lt;li>اختر عددًا صحيحًا $e$ (المفتاح العام) يكون أوليًا نسبيًا مع $\phi(n)$.&lt;/li>
&lt;li>احسب عددًا صحيحًا $d$ (المفتاح السري) بحيث يكون $e \times d \equiv 1 \pmod{\phi(n)}$.&lt;/li>
&lt;/ol>
&lt;p>التشفير: للنص العادي $M$، احسب $C \equiv M^e \pmod{n}$
فك التشفير: للنص المشفر $C$، احسب $M \equiv C^d \pmod{n}$&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># كود بايثون يوضح مفهوم تشفير RSA (غير مخصص للاستخدام العملي)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">ext_euclid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># حساب المعكوس الضربي المعياري باستخدام خوارزمية إقليدس الممتدة&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">b&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ext_euclid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">g&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">rsa_example&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># مثال باستخدام أعداد أولية صغيرة&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">61&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">p&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">phi&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">q&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">17&lt;/span> &lt;span class="c1"># قيمة أولية نسبيًا مع phi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">d&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ext_euclid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">phi&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">d&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">d&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">phi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;المفتاح العام: (e=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">, n=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">)&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;المفتاح السري: (d=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">, n=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">)&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># تشفير وفك تشفير الرسالة&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">65&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">decrypted&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;النص العادي: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> -&amp;gt; النص المشفر: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> -&amp;gt; بعد فك التشفير: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">decrypted&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">rsa_example&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h1 id="6-صعود-تشفير-المنحنى-الإهليلجي-ecc">6. صعود تشفير المنحنى الإهليلجي (ECC)
&lt;/h1>&lt;p>على الرغم من قوة تشفير RSA، إلا أنه مع تحسن أداء أجهزة الكمبيوتر، أصبح من الضروري زيادة طول المفتاح للحفاظ على الأمان (حاليًا 2048 أو 3072 بت)، مما أدى إلى مشكلة زيادة تكلفة الحساب.&lt;/p>
&lt;p>لذلك، تم اقتراح &amp;ldquo;تشفير المنحنى الإهليلجي (Elliptic Curve Cryptography: ECC)&amp;rdquo; في عام 1985. يستخدم هذا التشفير إضافة النقاط على المنحنيات الإهليلجية (عادة على شكل $y^2 = x^3 + ax + b$) فوق المجالات المحدودة.&lt;/p>
&lt;p>من المعروف أن مشكلة اللوغاريتم المتقطع على المنحنيات الإهليلجية (ECDLP) أصعب في الحل من مشكلة التحليل إلى العوامل الأولية، &lt;strong>ويمكن لـ ECC تحقيق نفس مستوى الأمان لمفتاح RSA بطول 3072 بت باستخدام مفتاح بطول 256 بت فقط&lt;/strong>. وقد أتاح هذا اتصالاً مشفرًا سريعًا وآمنًا (مثل ECDSA و ECDH) حتى في البيئات ذات الموارد الحسابية المحدودة، مثل الهواتف الذكية وأجهزة إنترنت الأشياء (IoT).&lt;/p>
&lt;hr>
&lt;h1 id="7-تهديد-الحواسيب-الكمومية-والتشفير-المقاوم-للكم-pqc">7. تهديد الحواسيب الكمومية والتشفير المقاوم للكم (PQC)
&lt;/h1>&lt;p>بدت تقنية التشفير راسخة، ولكن في عام 1994، أحدث &amp;ldquo;خوارزمية شور&amp;rdquo; التي نشرها بيتر شور (Peter Shor) صدمة كبيرة.&lt;/p>
&lt;p>تستغل الحواسيب الكمومية خصائص ميكانيكا الكم المتمثلة في &amp;ldquo;التراكب&amp;rdquo; و&amp;quot;التشابك الكمي&amp;rdquo; لإجراء العمليات الحسابية. وقد تم إثبات رياضيًا أنه عند تشغيل خوارزمية شور على حاسوب كمومي ذي أداء كافٍ، يمكن حل مشكلة التحليل إلى العوامل الأولية ومشكلة اللوغاريتم المتقطع في &amp;ldquo;وقت متعدد الحدود&amp;rdquo;. بمعنى آخر، في اليوم الذي يكتمل فيه حاسوب كمومي عملي (Q-Day)، ستنهار جميع تشفيرات المفتاح العام المستخدمة حاليًا مثل RSA و ECC على الفور.&lt;/p>
&lt;h2 id="ظهور-pqc-post-quantum-cryptography">ظهور PQC (Post-Quantum Cryptography)
&lt;/h2>&lt;p>استعدادًا لهذا التهديد غير المسبوق، تتقدم الأبحاث بوتيرة سريعة حول &amp;ldquo;تشفير الحواسيب المقاومة للكم (PQC)&amp;quot;، استنادًا إلى مشاكل رياضية جديدة يصعب حلها حتى بواسطة الحواسيب الكمومية. يعكف المعهد الوطني للمعايير والتكنولوجيا (NIST) على عملية توحيد معايير PQC لسنوات عديدة، وتعتبر الأساليب الرياضية التالية هي الأبرز:&lt;/p>
&lt;h3 id="1-التشفير-القائم-على-الشبكة-lattice-based-cryptography">1. التشفير القائم على الشبكة (Lattice-based Cryptography)
&lt;/h3>&lt;p>وهو النهج الأكثر ترجيحًا حاليًا، وقد تم اعتماده في خوارزميات التوحيد القياسي الخاصة بـ NIST (ML-KEM / Kyber و ML-DSA / Dilithium). يعتمد على صعوبة العثور على نقطة معينة على &amp;ldquo;شبكة (Lattice)&amp;rdquo; في مساحة متعددة الأبعاد (مثل مشكلة أقصر متجه: SVP) أو مشكلة LWE (التعلم مع الأخطاء).&lt;/p>
&lt;p>يستغل مفهوم مشكلة LWE الخاصية المتمثلة في أنه عند إضافة &amp;ldquo;ضوضاء (خطأ) صغيرة&amp;rdquo; عمدًا إلى نظام معادلات خطية متزامنة، يصبح من الصعب جدًا إيجاد الحل.
نظام المعادلات: $\mathbf{A}\mathbf{s} + \mathbf{e} \equiv \mathbf{b} \pmod{q}$
($\mathbf{A}$ و $\mathbf{b}$ علنية، $\mathbf{s}$ هو المفتاح السري، و $\mathbf{e}$ هي ضوضاء دقيقة)&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># كود كاذب لمفهوم مشكلة LWE (للأغراض التعليمية)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">numpy&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">np&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">256&lt;/span> &lt;span class="c1"># الأبعاد&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">q&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3329&lt;/span> &lt;span class="c1"># المعيار (Modulus)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">m&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">512&lt;/span> &lt;span class="c1"># عدد المعادلات&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># المفتاح السري s والخطأ الصغير e&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># المصفوفة العامة A والمتجه العام b&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">A&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">s&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># حتى باستخدام حاسوب كمومي، يُعتبر استعادة s من A و b أمرًا بالغ الصعوبة&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="2-التشفير-القائم-على-التجزئة-hash-based-cryptography">2. التشفير القائم على التجزئة (Hash-based Cryptography)
&lt;/h3>&lt;p>هو نظام توقيع رقمي يعتمد أمانه فقط على مقاومة الاصطدام لدوال التجزئة. وبما أنه لا يحتوي على بنية رياضية، فهو مقاوم للهجمات الكمومية، ولكن حجم التوقيع يميل إلى أن يكون كبيرًا (مثل SPHINCS+).&lt;/p>
&lt;h3 id="3-التشفير-القائم-على-الرموز-code-based-cryptography">3. التشفير القائم على الرموز (Code-based Cryptography)
&lt;/h3>&lt;p>وهو نظام تشفير يعتمد على نظرية رموز تصحيح الأخطاء. أشهرها هو تشفير McEliece المقترح في عام 1978، والذي يتمتع بتاريخ طويل وسمعة طيبة من حيث الأمان، ولكن لديه عيب يتمثل في أن حجم المفتاح العام كبير جدًا (قد يصل إلى عدة ميغابايت).&lt;/p>
&lt;div class="mermaid">timeline
title "تاريخ تطور تقنية التشفير والحواسيب"
"العصور القديمة والوسطى" : "تشفير قيصر" : "تشفير فيجينير" : "ولادة تحليل التكرار"
"الثلاثينيات والأربعينيات" : "تشغيل وفك تشفير إنجما" : "تطوير آلة تورينج وبومب"
"السبعينيات" : "توحيد معيار DES (1977)" : "تبادل مفاتيح ديفي-هيلمان (1976)" : "ولادة تشفير RSA (1977)"
"الثمانينيات والتسعينيات" : "اقتراح تشفير المنحنى الإهليلجي (ECC)" : "نشر خوارزمية شور (1994)"
"العقد الأول من القرن الحادي والعشرين" : "توحيد معيار AES (2001)"
"العقد الثاني من القرن الحادي والعشرين إلى الآن" : "تسريع أبحاث الحواسيب الكمومية" : "بدء مشروع توحيد معايير PQC من قبل NIST"
"المستقبل القريب (Q-Day)" : "تحقيق حواسيب كمومية واسعة النطاق؟" : "الانتقال الكامل إلى PQC (ML-KEM/ML-DSA)"&lt;/div>
&lt;hr>
&lt;h1 id="8-الخاتمة-معركة-لا-تنتهي-بين-الدرع-والرمح">8. الخاتمة: معركة لا تنتهي بين الدرع والرمح
&lt;/h1>&lt;p>تاريخ تقنية التشفير هو تاريخ لمعركة لا تنتهي بين اختراع طرق تشفير جديدة (الدرع) وطرق فك تشفير جديدة لكسرها (الرمح).&lt;/p>
&lt;p>انهزم تشفير قيصر أمام تحليل التكرار، وهُزمت إنجما التي كانت تعتبر لا تُقهر أمام العقل العبقري لتورينج وقوة الآلات. والآن، تواجه التشفيرات القوية مثل RSA و ECC التي تدعم أساس مجتمع الإنترنت الحديث، تهديدًا أمام &amp;ldquo;الرمح&amp;rdquo; الجديد المتمثل في الحواسيب الكمومية.&lt;/p>
&lt;p>ومع ذلك، فإن البشرية تتطلع بالفعل إلى المستقبل وتقوم بإعداد &amp;ldquo;درع&amp;rdquo; جديد يُسمى التشفير المقاوم للكم (PQC). في الوقت الحالي، أصبحت الاستعدادات للانتقال من تشفير المفتاح العام الحالي إلى PQC (ضمان المرونة التشفيرية - Crypto Agility) مهمة ملحة في البنى التحتية لتكنولوجيا المعلومات حول العالم.&lt;/p>
&lt;p>تقنية التشفير ليست مجرد لغز رياضي معقد، بل هي الجدار الدفاعي الأقوى لحماية خصوصيتنا وممتلكاتنا والبنية التحتية لمجتمعنا بأسره.&lt;/p></description></item><item><title>【شرح رياضيات】شرح آلية عمل تشفير RSA بطريقة يفهمها حتى طلاب الثانوية</title><link>http://kenji.blog/ar/p/rsa-encryption-math-explained-for-beginners/</link><pubDate>Fri, 11 Sep 2026 13:00:00 +0900</pubDate><guid>http://kenji.blog/ar/p/rsa-encryption-math-explained-for-beginners/</guid><description>&lt;img src="http://kenji.blog/p/rsa-encryption-math-explained-for-beginners/img/eyecatch.jpg" alt="Featured image of post 【شرح رياضيات】شرح آلية عمل تشفير RSA بطريقة يفهمها حتى طلاب الثانوية" />&lt;p>إحدى التقنيات التي تدعم أمن مجتمع الإنترنت من جذوره هي &amp;ldquo;تشفير RSA&amp;rdquo;. العديد من الاتصالات التي نستخدمها يوميًا دون تفكير، مثل مدفوعات بطاقات الائتمان في التسوق عبر الإنترنت، والتواصل مع الأصدقاء على شبكات التواصل الاجتماعي، وإرسال واستقبال المعلومات السرية للشركات، محمية بواسطة تشفير RSA أو التقنيات التي خلفته.&lt;/p>
&lt;p>ولكن عندما تسمع كلمة &amp;ldquo;تشفير&amp;rdquo;، قد تتخيل آلات تشفير معقدة كتلك التي تظهر في أفلام الجواسيس، أو رياضيات متقدمة للغاية لا يفهمها سوى بعض العباقرة. صحيح أن نظرية التشفير الحديثة تعتمد على رياضيات متقدمة، إلا أن &lt;strong>الآلية الأساسية لتشفير RSA يمكن فهمها تمامًا إذا كان لديك معرفة برياضيات المرحلة الثانوية (خصائص الأعداد الصحيحة، الأعداد الأولية، التطابق وغيرها)&lt;/strong>.&lt;/p>
&lt;p>في هذا المقال، ومن منطلق المعرفة برياضيات المرحلة الثانوية، سنشرح خطوة بخطوة وبشكل شامل المبادئ الرياضية التي يعمل بها تشفير RSA، ولماذا يصعب فك تشفيره. سنشرح بعناية مع استخدام أمثلة ملموسة حتى يتمكن حتى من يجدون صعوبة قليلة في الرياضيات من الفهم.&lt;/p>
&lt;hr>
&lt;h2 id="1-التشفير-بالمفتاح-المتماثل-والتشفير-بالمفتاح-المعلن">1. التشفير بالمفتاح المتماثل والتشفير بالمفتاح المعلن
&lt;/h2>&lt;p>قبل الخوض في الآلية الرياضية لتشفير RSA، دعونا أولاً ننظم الفكرة الأساسية للتشفير. تنقسم طرق التشفير بشكل عام إلى نوعين: &amp;ldquo;التشفير بالمفتاح المتماثل (المشترك)&amp;rdquo; و&amp;quot;التشفير بالمفتاح المعلن (العام)&amp;quot;.&lt;/p>
&lt;h3 id="11-حدود-طريقة-التشفير-بالمفتاح-المتماثل">1.1 حدود طريقة التشفير بالمفتاح المتماثل
&lt;/h3>&lt;p>العديد من الشفرات المستخدمة منذ القدم تسمى &amp;ldquo;طريقة التشفير بالمفتاح المتماثل&amp;rdquo;. وهي طريقة &lt;strong>تستخدم نفس المفتاح في &amp;ldquo;التشفير (تحويل الرسالة إلى نص مشفر سري)&amp;rdquo; و&amp;quot;فك التشفير (إعادة النص المشفر إلى الرسالة الأصلية)&amp;quot;&lt;/strong>.&lt;/p>
&lt;p>على سبيل المثال، لنفترض أن أليس تريد إرسال رسالة سرية إلى بوب. تضع أليس الرسالة في صندوق وتغلقه باستخدام قفل (مفتاح متماثل). لكي يفتح بوب ذلك الصندوق، يحتاج إلى امتلاك نفس المفتاح الذي استخدمته أليس.&lt;/p>
&lt;p>هذه الطريقة بها مشكلة كبيرة، وهي &amp;ldquo;مشكلة توزيع المفاتيح&amp;rdquo;. عندما تتواصل أليس وبوب، اللذان تفصل بينهما مسافة كبيرة، لأول مرة، كيف يمكنهما مشاركة المفتاح دون أن يتم التنصت عليهما؟ إذا سُرق المفتاح من قبل طرف ثالث أثناء إرساله بالبريد، فإن جميع الاتصالات المشفرة اللاحقة ستكون مكشوفة تمامًا.&lt;/p>
&lt;h3 id="12-الاختراع-الثوري-طريقة-التشفير-بالمفتاح-المعلن">1.2 الاختراع الثوري &amp;ldquo;طريقة التشفير بالمفتاح المعلن&amp;rdquo;
&lt;/h3>&lt;p>تم ابتكار &amp;ldquo;طريقة التشفير بالمفتاح المعلن&amp;rdquo; لحل مشكلة توزيع المفاتيح هذه. وتشفير RSA هو نوع من هذا التشفير.&lt;/p>
&lt;p>في طريقة التشفير بالمفتاح المعلن، يتم استخدام &lt;strong>مفتاحين مختلفين: &amp;ldquo;مفتاح للتشفير (المفتاح المعلن/العام)&amp;rdquo; و&amp;quot;مفتاح لفك التشفير (المفتاح السري/الخاص)&amp;quot;&lt;/strong>.&lt;/p>
&lt;ol>
&lt;li>يقوم المتلقي بوب بإنشاء زوج من &amp;ldquo;المفتاح المعلن&amp;rdquo; و&amp;quot;المفتاح السري&amp;quot;.&lt;/li>
&lt;li>ينشر بوب &amp;ldquo;المفتاح المعلن&amp;rdquo; للعالم أجمع (لا يهم من يحصل عليه).&lt;/li>
&lt;li>تستخدم المرسلة أليس &amp;ldquo;المفتاح المعلن&amp;rdquo; الخاص ببوب لتشفير رسالتها وإرسالها.&lt;/li>
&lt;li>لا يمكن فك تشفير الرسالة المشفرة إلا بواسطة &amp;ldquo;المفتاح السري&amp;rdquo; الذي يمتلكه بوب فقط.&lt;/li>
&lt;/ol>
&lt;p>إذا شبهنا ذلك بالقفل، فإن بوب يصنع الكثير من &amp;ldquo;الأقفال المفتوحة (المفاتيح المعلنة)&amp;rdquo; وينثرها في جميع أنحاء العالم. تضع أليس رسالتها الموجهة لبوب في صندوق وتغلقه باستخدام أحد أقفال بوب التي وجدتها. بمجرد إغلاق القفل، لا يمكن فتحه إلا باستخدام &amp;ldquo;المفتاح الرئيسي (المفتاح السري)&amp;rdquo; الذي يمتلكه بوب. حتى لو سرق شخص ما الصندوق في الطريق، فلا يمكنه فتحه لأنه لا يمتلك المفتاح الرئيسي.&lt;/p>
&lt;div class="mermaid">graph TD
A["أليس (المرسلة)"] --> B["نص صريح (رسالة)"]
B --> C["عملية التشفير"]
D["مفتاح بوب المعلن (متاح للجميع)"] --> C
C --> E["إرسال عبر الإنترنت: نص مشفر"]
E --> F["عملية فك التشفير"]
G["مفتاح بوب السري (يمتلكه بوب فقط)"] --> F
F --> H["النص الصريح المسترجع (الرسالة)"]
H --> I["بوب (المتلقي)"]&lt;/div>
&lt;p>لتحقيق هذا النظام الثوري، نحتاج إلى نوع من &lt;strong>&amp;ldquo;الدوال أحادية الاتجاه (لغز رياضي في اتجاه واحد)&amp;rdquo;&lt;/strong>، حيث &amp;ldquo;يمكن التشفير بسهولة باستخدام المفتاح المعلن، ولكن من المستحيل مطلقًا فك التشفير بدون المفتاح السري&amp;rdquo;. القطعة التي تم التركيز عليها لحل هذا اللغز هي &amp;ldquo;الأعداد الأولية&amp;rdquo; التي نعرفها جيدًا.&lt;/p>
&lt;hr>
&lt;h2 id="2-الأساس-الرياضي-الذي-يدعم-تشفير-rsa-1-الأعداد-الأولية-والتحليل-إلى-العوامل-الأولية">2. الأساس الرياضي الذي يدعم تشفير RSA 1: الأعداد الأولية والتحليل إلى العوامل الأولية
&lt;/h2>&lt;p>يعتمد أمان تشفير RSA على حقيقة رياضية مفادها أن &lt;strong>&amp;ldquo;تحليل الأعداد الضخمة إلى عواملها الأولية أمر صعب للغاية&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;h3 id="21-ما-هو-العدد-الأولي">2.1 ما هو العدد الأولي
&lt;/h3>&lt;p>العدد الأولي هو &amp;ldquo;عدد طبيعي أكبر من 1، لا يقبل القسمة إلا على 1 وعلى نفسه&amp;rdquo;.
مثال: $2, 3, 5, 7, 11, 13, 17, 19, 23...$&lt;/p>
&lt;p>الأعداد الأولية تشبه &amp;ldquo;الذرات&amp;rdquo; لجميع الأعداد الصحيحة. يمكن تحليل أي عدد طبيعي إلى شكل ضرب أعداد أولية. وهذا ما يسمى &lt;strong>التحليل إلى العوامل الأولية&lt;/strong>. على سبيل المثال، إمكانية التحليل إلى عوامل أولية بطريقة واحدة فقط (إذا تجاهلنا الترتيب) كما في $60 = 2^2 \times 3 \times 5$ تُعرف باسم &amp;ldquo;المبرهنة الأساسية في الحساب&amp;rdquo;.&lt;/p>
&lt;h3 id="22-صعوبة-التحليل-إلى-العوامل-الأولية-الدالة-أحادية-الاتجاه">2.2 صعوبة التحليل إلى العوامل الأولية (الدالة أحادية الاتجاه)
&lt;/h3>&lt;p>المهم هنا هو عدم التماثل حيث أن &lt;strong>&amp;ldquo;عملية الضرب سهلة، لكن التحليل إلى العوامل الأولية صعب&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>على سبيل المثال، حاول حساب حاصل ضرب العددين الأوليين التاليين ذهنيًا:
$11 \times 13 = ?$
هذا سهل، أليس كذلك؟ الجواب هو $143$.&lt;/p>
&lt;p>إذًا، ماذا عن العدد التالي؟
حلل العدد $323$ إلى عوامله الأولية.
ما رأيك؟ سيستغرق الأمر بعض الوقت. (الجواب هو $17 \times 19$).&lt;/p>
&lt;p>إذا كانت الأعداد صغيرة، فيمكن للإنسان حسابها بطريقة ما، ولكن عندما تصبح الأعداد كبيرة، يصبح الحساب صعبًا بشكل هائل حتى باستخدام أجهزة الكمبيوتر. في تشفير RSA السائد حاليًا، يتم استخدام عدد $N = p \times q$ ناتج عن ضرب عددين أوليين ضخمين بشكل لا يصدق $p$ و $q$ بحجم 2048 بت (حوالي 600 رقم بالنظام العشري).&lt;/p>
&lt;p>عند إعطاء عددين أوليين ضخمين $p$ و $q$، فإن حساب $N$ يستغرق جزءًا من الثانية بالنسبة للكمبيوتر (أقل من مللي ثانية). ولكن على العكس من ذلك، إذا تم إعطاء $N$ فقط لإيجاد $p$ و $q$ الأصليين، فسيستغرق الأمر وقتًا طويلاً لا يمكن لأسرع حاسوب عملاق حالي حله حتى لو استمر في العمل لترليونات السنين.&lt;/p>
&lt;p>هذا &lt;strong>&amp;ldquo;عدم التماثل في الحساب (طريق الذهاب سهل، وطريق العودة صعب)&amp;rdquo;&lt;/strong> هو الأساس الذي يخلق العلاقة بين المفتاح المعلن والمفتاح السري.&lt;/p>
&lt;hr>
&lt;h2 id="3-الأساس-الرياضي-الذي-يدعم-تشفير-rsa-2-التطابق-حساب-المقياس">3. الأساس الرياضي الذي يدعم تشفير RSA 2: التطابق (حساب المقياس)
&lt;/h2>&lt;p>لا تتم حسابات تشفير RSA بالجمع والضرب حيث تكبر الأعداد بشكل لا نهائي كما نستخدمها عادة، بل تتم في عالم &amp;ldquo;البواقي&amp;rdquo; بعد القسمة على عدد معين. وهذا ما يسمى &lt;strong>التطابق (حساب المقياس أو الحساب المعياري)&lt;/strong>.&lt;/p>
&lt;h3 id="31-رياضيات-الساعة">3.1 رياضيات الساعة
&lt;/h3>&lt;p>غالبًا ما يُشبه حساب المقياس بـ &amp;ldquo;رياضيات الساعة&amp;rdquo;. إذا كانت الساعة الآن 10، فكم ستكون الساعة بعد 5 ساعات؟ إنها $10 + 5 = 15$، ولكن في نظام الساعة المعتاد المكون من 12 ساعة، نجيب &amp;ldquo;الساعة 3&amp;rdquo;. هذا لأن باقي قسمة 15 على 12 هو 3.&lt;/p>
&lt;p>في عالم الرياضيات، يُكتب هذا على النحو التالي:
&lt;/p>
$$ 15 \equiv 3 \pmod{12} $$
&lt;p>
ويُقرأ: &amp;ldquo;15 و 3 متطابقان بمقياس 12 (باقي قسمتهما على 12 متساوٍ)&amp;rdquo;.&lt;/p>
&lt;h3 id="32-الخصائص-الأساسية-للتطابق">3.2 الخصائص الأساسية للتطابق
&lt;/h3>&lt;p>للتطابق خصائص مفيدة جدًا تشبه إلى حد كبير خصائص المعادلة ($=$). لنفترض أن المقياس (القاسم) هو $N$.
عندما يكون $a \equiv b \pmod N$ و $c \equiv d \pmod N$، يتحقق ما يلي:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>الجمع:&lt;/strong> $a + c \equiv b + d \pmod N$&lt;/li>
&lt;li>&lt;strong>الطرح:&lt;/strong> $a - c \equiv b - d \pmod N$&lt;/li>
&lt;li>&lt;strong>الضرب:&lt;/strong> $a \times c \equiv b \times d \pmod N$&lt;/li>
&lt;li>&lt;strong>الرفع لأس:&lt;/strong> $a^k \equiv b^k \pmod N$ (حيث $k$ عدد طبيعي)&lt;/li>
&lt;/ol>
&lt;p>الخاصية الأكثر أهمية هي &amp;ldquo;الرفع لأس&amp;rdquo;. هذا يعني أن &lt;strong>&amp;ldquo;أس الباقي يساوي باقي الأس&amp;rdquo;&lt;/strong>.
على سبيل المثال، لنفترض أننا نريد إيجاد باقي قسمة $7^{100}$ على $5$. سيكون من الصعب جدًا ضرب $7$ في نفسها 100 مرة ثم القسمة على $5$، ولكن باستخدام خصائص التطابق، نظرًا لأن $7 \equiv 2 \pmod 5$، فإن $7^{100} \equiv 2^{100} \pmod 5$، مما يبسط الحساب بشكل هائل. هذه الخاصية لا غنى عنها في عالم التشفير لأننا نتعامل مع أسس لأعداد كبيرة جدًا.&lt;/p>
&lt;hr>
&lt;h2 id="4-الأساس-الرياضي-الذي-يدعم-تشفير-rsa-3-مؤشر-أويلر-ومبرهنة-أويلر">4. الأساس الرياضي الذي يدعم تشفير RSA 3: مؤشر أويلر ومبرهنة أويلر
&lt;/h2>&lt;p>من هنا تبدأ الرياضيات السحرية التي تشكل جوهر تشفير RSA. ستظهر &amp;ldquo;مبرهنة أويلر&amp;rdquo;، وهي تعميم لـ &amp;ldquo;مبرهنة فيرما الصغرى&amp;rdquo;.&lt;/p>
&lt;h3 id="41-دالة-مؤشر-أويلر-دالة-توتنت-phin">4.1 دالة مؤشر أويلر (دالة توتنت) $\phi(N)$
&lt;/h3>&lt;p>دالة مؤشر أويلر (دالة $\phi$) هي دالة تعيد، بالنسبة لعدد طبيعي معين $N$، &lt;strong>&amp;ldquo;عدد الأعداد الطبيعية من 1 إلى $N$ التي تكون أولية نسبيًا مع $N$ (أي القاسم المشترك الأكبر بينهما هو 1)&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>دعونا نلقي نظرة على بعض الأمثلة:&lt;/p>
&lt;ul>
&lt;li>$\phi(5)$: من بين الأعداد 1, 2, 3, 4, 5، الأعداد الأولية نسبيًا مع 5 هي 1, 2, 3, 4 (عددها 4). إذن $\phi(5) = 4$.&lt;/li>
&lt;li>$\phi(6)$: من بين الأعداد 1, 2, 3, 4, 5, 6، الأعداد الأولية نسبيًا مع 6 هي 1, 5 (عددها 2). إذن $\phi(6) = 2$.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>【خاصية مميزة في حالة العدد الأولي】&lt;/strong>
إذا كان $p$ عددًا أوليًا، فإن جميع الأعداد من 1 إلى $p-1$ تكون أولية نسبيًا مع $p$. وبالتالي:
&lt;/p>
$$ \phi(p) = p - 1 $$
&lt;p>&lt;strong>【خاصية مميزة في حالة حاصل ضرب عددين أوليين】&lt;/strong>
بالنسبة لعددين أوليين مختلفين $p$ و $q$، إذا كان $N = p \times q$، فيمكن حساب $\phi(N)$ بسهولة كالتالي:
&lt;/p>
$$ \phi(N) = \phi(p) \times \phi(q) = (p - 1)(q - 1) $$
&lt;p>
هذه الخاصية تعمل كـ &amp;ldquo;باب خلفي سري (Trapdoor)&amp;rdquo; لتشفير RSA. فالشخص الذي يعرف $p$ و $q$ (منشئ المفتاح) يمكنه حساب $\phi(N)$ في لحظة، لكن الطرف الثالث الذي يعرف $N$ فقط لا يمكنه حساب $\phi(N)$ ما لم يقم بتحليل $N$ إلى عوامله الأولية.&lt;/p>
&lt;h3 id="42-مبرهنة-أويلر">4.2 مبرهنة أويلر
&lt;/h3>&lt;p>أثبت ليونهارد أويلر هذه المبرهنة الجميلة باستخدام $\phi(N)$:&lt;/p>
&lt;p>&lt;strong>مبرهنة أويلر:&lt;/strong>
عندما يكون العددان الصحيحان $a$ و $N$ أوليين نسبيًا، يتحقق التطابق التالي:
&lt;/p>
$$ a^{\phi(N)} \equiv 1 \pmod N $$
&lt;p>هذه خاصية مذهلة تعني أن &amp;ldquo;حاصل ضرب أي عدد $a$ في نفسه $\phi(N)$ مرة ثم قسمته على $N$، سيعطي باقيًا يساوي $1$ دائمًا&amp;rdquo;. (إذا كان $N$ عددًا أوليًا $p$، فإنها تصبح $a^{p-1} \equiv 1 \pmod p$، وتُعرف باسم مبرهنة فيرما الصغرى).&lt;/p>
&lt;p>دعونا نعدل مبرهنة أويلر هذه. سنضرب كلا الطرفين في $a$ مرة أخرى:
&lt;/p>
$$ a^{\phi(N) + 1} \equiv a \pmod N $$
&lt;p>علاوة على ذلك، بالنسبة لأي عدد صحيح $k$، فإن $a^{k \cdot \phi(N)}$ سيكون أيضًا $1^k = 1$، وبالتالي تتحقق المعادلة التالية:
&lt;/p>
$$ a^{k \cdot \phi(N) + 1} \equiv a \pmod N $$
&lt;p>هذه المعادلة بالذات هي المبدأ الأساسي الذي يجعل سحر تشفير RSA &lt;strong>&amp;ldquo;العودة إلى الحالة الأصلية بعد التشفير وفك التشفير&amp;rdquo;&lt;/strong> ممكنًا.&lt;/p>
&lt;hr>
&lt;h2 id="5-خوارزمية-تشفير-rsa-خطوات-إنشاء-المفتاح-التشفير-وفك-التشفير">5. خوارزمية تشفير RSA: خطوات إنشاء المفتاح، التشفير، وفك التشفير
&lt;/h2>&lt;p>بعد أن اكتملت المعرفة الأساسية، دعونا أخيرًا نلقي نظرة على الخطوات المحددة لتشفير RSA. ينقسم تشفير RSA بشكل رئيسي إلى ثلاث مراحل: &amp;ldquo;1. إنشاء المفتاح&amp;rdquo;، &amp;ldquo;2. التشفير&amp;rdquo;، و&amp;quot;3. فك التشفير&amp;quot;.&lt;/p>
&lt;div class="mermaid">flowchart TD
A1["1. اختيار عددين أوليين p, q"] --> A2["حساب N = p × q"]
A1 --> A3["حساب φ(N) = (p-1)(q-1)"]
A3 --> A4["اختيار e بحيث يكون أوليًا نسبيًا مع φ(N)"]
A3 --> A5["حساب d بحيث يتحقق التطابق e × d ≡ 1 (mod φ(N))"]
A2 --> A6["المفتاح المعلن (N, e)"]
A4 --> A6
A5 --> A7["المفتاح السري d"]
B1["2. النص الصريح (رسالة) M"] --> B2["حساب C ≡ M^e (mod N)"]
A6 -.-> B2
B2 --> B3["إرسال النص المشفر C"]
B3 --> C1["3. النص المشفر المُستلَم C"]
C1 --> C2["حساب M ≡ C^d (mod N)"]
A7 -.-> C2
C2 --> C3["الحصول على النص الصريح الأصلي M"]&lt;/div>
&lt;h3 id="51-إنشاء-المفتاح-key-generation">5.1 إنشاء المفتاح (Key Generation)
&lt;/h3>&lt;p>يقوم المتلقي بوب بإنشاء &amp;ldquo;مفتاح معلن&amp;rdquo; و&amp;quot;مفتاح سري&amp;quot; خاص به.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>اختيار الأعداد الأولية:&lt;/strong> يختار عشوائيًا عددين أوليين كبيرين $p$ و $q$.&lt;/li>
&lt;li>&lt;strong>حساب المقياس $N$:&lt;/strong> يحسب $N = p \times q$. هذا الـ $N$ سيتم إعلانه للجميع.&lt;/li>
&lt;li>&lt;strong>حساب $\phi(N)$:&lt;/strong> يحسب دالة أويلر $\phi(N) = (p - 1)(q - 1)$. هذا هو رقم بوب السري.&lt;/li>
&lt;li>&lt;strong>اختيار المفتاح المعلن $e$:&lt;/strong> يختار عددًا صحيحًا $e$ بحيث $1 &lt; e &lt; \phi(N)$ ويكون أوليًا نسبيًا مع $\phi(N)$.&lt;/li>
&lt;li>&lt;strong>حساب المفتاح السري $d$:&lt;/strong> يجد عددًا صحيحًا $d$ يحقق الشرط التالي:
$$ e \times d \equiv 1 \pmod{\phi(N)} $$
وهذا يعني، &amp;ldquo;العدد $d$ الذي يجعل باقي قسمة $e \times d$ على $\phi(N)$ يساوي $1$&amp;rdquo;.&lt;/li>
&lt;/ol>
&lt;p>وبهذا تكتمل تجهيزات المفاتيح.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>المفتاح المعلن:&lt;/strong> الزوج $(N, e)$. يتم نشره للعالم أجمع.&lt;/li>
&lt;li>&lt;strong>المفتاح السري:&lt;/strong> $d$. لا يخبر به أحداً على الإطلاق.&lt;/li>
&lt;/ul>
&lt;h3 id="52-التشفير-encryption">5.2 التشفير (Encryption)
&lt;/h3>&lt;p>لنفترض أن أليس تريد إرسال رسالة سرية $M$ إلى بوب. ($M$ هي أحرف تم تحويلها إلى أرقام، بحيث يكون $0 \le M &lt; N$). تستخدم أليس المفتاح المعلن لبوب $(N, e)$ للحساب كما يلي:&lt;/p>
$$ C \equiv M^e \pmod N $$
&lt;p>تحسب &amp;ldquo;باقي قسمة رسالة $M$ مرفوعة للأس $e$ على $N$، وهو $C$&amp;rdquo;. هذا الـ $C$ هو النص المشفر.&lt;/p>
&lt;h3 id="53-فك-التشفير-decryption">5.3 فك التشفير (Decryption)
&lt;/h3>&lt;p>يتلقى بوب النص المشفر $C$. يستخدم بوب المفتاح السري $d$ للحساب كما يلي:&lt;/p>
$$ M \equiv C^d \pmod N $$
&lt;p>عندما يحسب &amp;ldquo;باقي قسمة النص المشفر $C$ مرفوع للأس $d$ على $N$&amp;quot;، فإنه بشكل مذهل يسترجع الرسالة الأصلية $M$!&lt;/p>
&lt;hr>
&lt;h2 id="6-لماذا-يعود-إلى-حالته-الأصلية-عند-فك-التشفير-إثبات-رياضي">6. لماذا يعود إلى حالته الأصلية عند فك التشفير؟ (إثبات رياضي)
&lt;/h2>&lt;p>قد تتساءل: &amp;ldquo;كيف يمكن مجرد رفع $C$ للأس $d$ أن يعيده إلى $M$ الأصلي؟&amp;rdquo;. هنا تأتي قوة &amp;ldquo;مبرهنة أويلر&amp;rdquo; التي ذكرناها سابقًا.&lt;/p>
&lt;p>دعونا نعوض معادلة التشفير $C = M^e$ في معادلة فك التشفير $C^d \pmod N$:
&lt;/p>
$$ C^d \equiv (M^e)^d \equiv M^{ed} \pmod N $$
&lt;p>هنا، تذكر الخطوة 5 من عملية إنشاء المفتاح. اختار بوب $d$ بحيث يكون $e \times d \equiv 1 \pmod{\phi(N)}$. هذا يعني أن &amp;ldquo;$ed$ هو من مضاعفات $\phi(N)$ مضافًا إليه $1$&amp;rdquo;. باستخدام عدد صحيح $k$، يمكن كتابتها على النحو التالي:
&lt;/p>
$$ ed = k \cdot \phi(N) + 1 $$
&lt;p>نعوض هذا في جزء الأس ونفككه باستخدام قوانين الأسس:
&lt;/p>
$$ M^{ed} = M^{k \cdot \phi(N) + 1} = M^{k \cdot \phi(N)} \times M^1 = (M^{\phi(N)})^k \times M $$
&lt;p>هنا، بافتراض أن الرسالة $M$ و $N$ أوليان نسبيًا، فإنه وفقًا لـ &lt;strong>مبرهنة أويلر&lt;/strong>، يكون $M^{\phi(N)} \equiv 1 \pmod N$.
&lt;/p>
$$ (M^{\phi(N)})^k \times M \equiv 1^k \times M \equiv M \pmod N $$
&lt;p>وبالتالي، تتحقق المعادلة التالية بنجاح تام:
&lt;/p>
$$ C^d \equiv M \pmod N $$
&lt;p>أليس لا تعرف $d$، والمتنصت أيضًا لا يعرف $d$، لذا فإن الوحيد الذي يمكنه استخراج $M$ من $C$ هو بوب الذي يمتلك $d$.&lt;/p>
&lt;hr>
&lt;h2 id="7-مثال-تطبيقي-دعونا-نجرب-تشفير-rsa-بالحساب-اليدوي-باستخدام-أعداد-أولية-صغيرة">7. مثال تطبيقي: دعونا نجرب تشفير RSA بالحساب اليدوي باستخدام أعداد أولية صغيرة
&lt;/h2>&lt;p>دعونا نقوم بتجربة تواصل مشفر من أليس إلى بوب باستخدام أرقام صغيرة (أعداد أولية) في الواقع.&lt;/p>
&lt;p>&lt;strong>【مرحلة إنشاء المفتاح لبوب】&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>يختار عددين أوليين $p=11$, $q=13$.&lt;/li>
&lt;li>يحسب $N = 11 \times 13 = 143$.&lt;/li>
&lt;li>يحسب $\phi(N) = (11 - 1) \times (13 - 1) = 10 \times 12 = 120$.&lt;/li>
&lt;li>يختار مفتاحًا معلنًا $e$ يكون أوليًا نسبيًا مع $\phi(N)=120$. لنختر هنا $e=7$.&lt;/li>
&lt;li>يجد المفتاح السري $d$. يبحث عن $d$ الذي يحقق $7 \times d \equiv 1 \pmod{120}$.
في المعادلة $7d = 120k + 1$، عندما يكون $k=6$ يصبح الناتج $721$، و $721 \div 7 = 103$.
وبالتالي، $d = 103$.&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>المفتاح المعلن: $(N=143, e=7)$&lt;/li>
&lt;li>المفتاح السري: $d=103$&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>【مرحلة التشفير لأليس】&lt;/strong>
لنفترض أنها تريد إرسال الرسالة $M = 9$.
المعادلة: $C \equiv 9^7 \pmod{143}$
$9^7 = 4,782,969$. بقسمة هذا العدد على 143 نحصل على $33447$ والباقي $48$.
أصبح النص المشفر $C = 48$.&lt;/p>
&lt;p>&lt;strong>【مرحلة فك التشفير لبوب】&lt;/strong>
يتلقى بوب النص المشفر $C = 48$، ويستخدم المفتاح السري $d = 103$ لفك التشفير.
المعادلة: $M \equiv 48^{103} \pmod{143}$
عند تنفيذ &lt;code>(48 ** 103) % 143&lt;/code> على الآلة الحاسبة، ستجد أن النتيجة بشكل رائع هي &amp;ldquo;&lt;strong>9&lt;/strong>&amp;rdquo;! لقد تمكن من استلام الرسالة الأصلية بنجاح.&lt;/p>
&lt;hr>
&lt;h2 id="8-كيفية-إيجاد-المفتاح-السري-d-خوارزمية-إقليدس-الممتدة">8. كيفية إيجاد المفتاح السري $d$: خوارزمية إقليدس الممتدة
&lt;/h2>&lt;p>في مثال الحساب اليدوي، اعتمدنا على التخمين للبحث عن $k$ وإيجاد $d=103$، لكن هذه الطريقة مستحيلة عندما تتكون الأعداد من مئات الأرقام. في البرامج الحقيقية، تُستخدم خوارزمية تسمى &lt;strong>&amp;ldquo;خوارزمية إقليدس الممتدة&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>حل التطابق $7d \equiv 1 \pmod{120}$ هو نفسه إيجاد الأعداد الصحيحة $d, y$ التي تحقق المعادلة $7d + 120y = 1$. من خلال الحساب العكسي لخوارزمية إقليدس، يمكن إيجاد ذلك ميكانيكيًا.&lt;/p>
&lt;ol>
&lt;li>$120 \div 7 = 17$ والباقي $1$&lt;/li>
&lt;li>بتعديل هذه المعادلة نحصل على: $1 = 120 - 17 \times 7$&lt;/li>
&lt;li>بمعنى آخر، $-17 \times 7 \equiv 1 \pmod{120}$&lt;/li>
&lt;/ol>
&lt;p>الرقم $-17$ يحمل نفس المعنى مثل $120 - 17 = 103$ في عالم المقياس $120$. وبالتالي، يمكن إيجاد $d = 103$ في لحظة. تتيح هذه الطريقة إجراء حسابات سريعة جدًا بغض النظر عن مدى ضخامة الأعداد.&lt;/p>
&lt;hr>
&lt;h2 id="9-الوجه-الآخر-لتشفير-rsa-التوقيع-الرقمي">9. الوجه الآخر لتشفير RSA: التوقيع الرقمي
&lt;/h2>&lt;p>من الميزات الرائعة لتشفير RSA أنه يمكن استخدامه أيضًا كـ &lt;strong>&amp;ldquo;توقيع رقمي&amp;rdquo;&lt;/strong> عن طريق عكس أدوار المفتاح المعلن والمفتاح السري.&lt;/p>
&lt;p>في التشفير كان الإجراء &amp;ldquo;التشفير بالمفتاح المعلن $\Rightarrow$ فك التشفير بالمفتاح السري&amp;rdquo;،
أما في التوقيع الرقمي، نتبع خطوات &amp;ldquo;التشفير بالمفتاح السري $\Rightarrow$ فك التشفير بالمفتاح المعلن&amp;rdquo;.&lt;/p>
&lt;div class="mermaid">flowchart TD
A1["1. أليس تنشئ توقيعًا باستخدام مفتاحها السري"] --> A2["S ≡ M^d (mod N)"]
A2 --> A3["إرسال الرسالة M والتوقيع S"]
A3 --> B1["2. بوب يتحقق من التوقيع باستخدام المفتاح المعلن"]
B1 --> B2["حساب M' ≡ S^e (mod N)"]
B2 --> B3["التحقق مما إذا كان M' يتطابق مع M"]&lt;/div>
&lt;p>تستخدم أليس مفتاحها السري $d$ لتحويل الرسالة (وهذا هو التوقيع $S$)، وترسله إلى بوب. يستخدم بوب المفتاح المعلن لأليس $e$ لإجراء عملية التحقق. إذا كانت نتيجة الحساب تتطابق مع الرسالة الأصلية، فإن ذلك يثبت في نفس الوقت أن &amp;ldquo;هذه البيانات لا يمكن إنشاؤها إلا بواسطة المفتاح السري لأليس&amp;rdquo;، و&amp;quot;لم يتم التلاعب بالرسالة في الطريق&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="10-تجربة-تشفير-rsa-من-خلال-البرمجة">10. تجربة تشفير RSA من خلال البرمجة
&lt;/h2>&lt;p>حسابات الأسس التي تعتبر صعبة في الحساب اليدوي، يمكن تنفيذها بسهولة بالغة باستخدام بايثون (Python). وفيما يلي كود بايثون يمكنك من خلاله تجربة المنطق الأساسي لتشفير RSA.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">gcd&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;إيجاد القاسم المشترك الأكبر&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">b&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">b&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">a&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">mod_inverse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">phi&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;إيجاد المفتاح السري d (باستخدام الدالة المدمجة في بايثون 3.8 وما بعده)&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">phi&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. إنشاء المفتاح&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">p&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">phi&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">q&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">d&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">mod_inverse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">phi&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;المفتاح المعلن: (N=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">N&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">, e=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">), المفتاح السري: d=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. التشفير&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;النص المشفر: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. فك التشفير&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">decrypted_message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;الرسالة بعد فك التشفير: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">decrypted_message&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>تستخدم دالة &lt;code>pow(base, exp, mod)&lt;/code> في بايثون خوارزمية سريعة تسمى &amp;ldquo;التربيع المتكرر (Exponentiation by squaring)&amp;rdquo; داخليًا، لذلك حتى بالنسبة للأعداد المكونة من مئات الأرقام، ينتهي الحساب في لحظة.&lt;/p>
&lt;hr>
&lt;h2 id="11-الخلاصة-وتقنيات-التشفير-المستقبلية">11. الخلاصة وتقنيات التشفير المستقبلية
&lt;/h2>&lt;p>لقد قمنا بتوضيح آلية عمل تشفير RSA بناءً على المعرفة برياضيات المرحلة الثانوية.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>صعوبة التحليل إلى العوامل الأولية:&lt;/strong> حساب $p \times q = N$ سهل، لكن إيجاد $p, q$ من $N$ صعب للغاية.&lt;/li>
&lt;li>&lt;strong>التطابق ومبرهنة أويلر:&lt;/strong> بفضل القاعدة $a^{\phi(N)} \equiv 1 \pmod N$، يكتمل &amp;ldquo;الباب الخلفي&amp;rdquo; السحري الذي يسمح بـ &amp;ldquo;العودة إلى الحالة الأصلية عند الرفع لأس عدد معين&amp;rdquo;.&lt;/li>
&lt;li>&lt;strong>المفتاح المعلن والمفتاح السري:&lt;/strong> يمكن لأي شخص التشفير، ولكن المستلم الشرعي فقط هو من يمكنه فك التشفير.&lt;/li>
&lt;/ol>
&lt;p>الـ $N$ المستخدم في تشفير RSA الحالي يتكون من أكثر من 600 رقم، وحتى لو تم حشد جميع الحواسيب العملاقة في العالم، فإن التحليل إلى العوامل الأولية سيستغرق وقتًا أطول من عمر الكون. ومع ذلك، عندما تصبح &amp;ldquo;الحواسيب الكمومية&amp;rdquo;، التي تتقدم الأبحاث بشأنها في السنوات الأخيرة، قابلة للتطبيق العملي في المستقبل، فهناك احتمال أن يتم حل هذا التحليل إلى العوامل الأولية في لحظة بواسطة &amp;ldquo;خوارزمية شور&amp;rdquo;. لذلك، يجري حاليًا تطوير &amp;ldquo;تشفير مقاوم للحواسيب الكمومية&amp;rdquo;، والذي لا يمكن حتى للحواسيب الكمومية فك تشفيره، بوتيرة سريعة في جميع أنحاء العالم.&lt;/p>
&lt;p>الرياضيات المتقدمة التي غالبًا ما يُعتقد أنها &amp;ldquo;غير مفيدة&amp;rdquo;، تحمي في الواقع حياتنا اليومية من جذورها. يعتبر تشفير RSA من أفضل المواد التعليمية التي توضح لنا عمق وجمال هذه الرياضيات. نأمل أن تكون قد شعرت ولو قليلاً بمتعة التشفير والرياضيات من خلال هذا المقال.&lt;/p></description></item></channel></rss>