---
dir: rtl
lang: ar
title: "التشفير المتجانس: من الجزئي إلى الكامل (PHE → SHE → FHE) وكيف حلّ جنتري معضلة الضجيج"
date: 2025-12-27
tags: [Cryptography, FHE, Lattices, Algebraic Number Theory, Post-Quantum]
---
<style>
body { direction: rtl; text-align: right; }
</style>
<div dir="rtl" lang="ar">
# التشفير المتجانس (Homomorphic Encryption): الحساب على بيانات لا تُرى
الفكرة التي تبدو “سحرًا” في التشفير المتجانس (Homomorphic Encryption – HE) هي في الواقع **رياضيات قاسية**:
تُشفّر بياناتك (Encrypted Data / Ciphertext)، ثم يُجري طرفٌ غير موثوق (Server / Cloud) عمليات حسابية عليها **وهي ما تزال مشفّرة**، ثم تفك أنت فقط التشفير (Decryption) فتجد أن النتيجة مطابقة تمامًا لما لو أجريت الحساب على البيانات الأصلية (Plaintext).
النتيجة: **حوسبة دون كشف** (Computation without Disclosure).
وهذا بالضبط ما تحتاجه الحوسبة السحابية (Cloud Computing)، البيانات الطبية والمالية الحساسة، وأجزاء من الذكاء الاصطناعي (AI/ML) عندما تكون الخصوصية خطًا أحمر.
---
## صورة سريعة للفكرة (Conceptual Setup)
> (الصورة التالية مرخّصة CC0 من ويكيميديا كومنز)

**المعنى**:
- المستخدم يرسل قيَمًا مشفّرة.
- الخادم يحسب على المشفّر.
- المستخدم يسترجع ناتجًا مشفّرًا ويفك تشفيره فقط.
---
## التعريف الرسمي (مع قليل من LaTeX للتدقيق)
لنفترض لدينا:
- دالة تشفير `Enc(·)` (Encryption)
- دالة فك تشفير `Dec(·)` (Decryption)
- وخوارزمية تقييم/حساب على النص المشفّر `Eval(·)` (Evaluation)
الخاصية المتجانسة تعني – بصيغة مثالية – أن:
```latex
Dec\big(Eval(f, Enc(m))\big) = f(m).
````
أي أن “فك تشفير ناتج الحساب على المشفّر” يساوي “ناتج الحساب على الصريح”.
---
# قبل الوصول إلى FHE: لماذا لم يكن الأمر سهلًا؟
## 1) التشفير المتجانس الجزئي (Partially Homomorphic Encryption – PHE)
هذا هو الجيل الأبسط: يدعم **نوعًا واحدًا فقط** من العمليات:
* إما جمع (Addition)
* أو ضرب (Multiplication)
لكن ليس كليهما معًا بمرونة كاملة.
**أمثلة شهيرة (كمفهوم)**:
* RSA غير المبطّن يدعم ضربًا متجانسًا بشكل طبيعي (Multiplicative Homomorphism).
* Paillier يدعم جمعًا متجانسًا (Additive Homomorphism).
وهنا جوهر القيد:
معظم الخوارزميات الواقعية (وخاصة تعلم الآلة) تحتاج **جمعًا وضربًا معًا** وبشكل متكرر، لذا PHE مفيد لكنه غير كافٍ لبناء “حاسوب عام على بيانات مشفّرة”.
---
## 2) التشفير المتجانس المحدود (Somewhat Homomorphic Encryption – SHE)
جاءت الخطوة التالية: أن ندعم الجمع والضرب معًا، لكن **إلى حد معيّن فقط**.
السبب ليس مزاج المصمّم… بل “وحش” اسمه:
### الضجيج (Noise) — سلاح الأمان الذي يتحول إلى لعنة
في معظم مخططات HE الحديثة، كل نصّ مشفّر يحمل معه **ضجيجًا رياضيًا** صغيرًا مقصودًا:
* الضجيج ضروري للسرية (Security).
* لكنه **يتراكم** أثناء الحساب.
قاعدة عملية شائعة:
* الجمع يزيد الضجيج قليلًا.
* الضرب يرفع الضجيج بقفزة كبيرة.
عندما يتجاوز الضجيج حدًا معيّنًا (Noise Threshold)، يصبح فك التشفير غير مضمون:
النتيجة تنهار أو تصبح عشوائية.
---
## 3) مفهوم مهم: عمق الضرب (Multiplicative Depth)
ليس عدد العمليات هو ما يقتل الأداء فقط، بل **عدد طبقات الضرب المتسلسلة** داخل الدائرة الحسابية (Circuit).
لهذا السبب تسمع غالبًا أن HE “يكره الضرب” أكثر مما يكره الجمع.
---
# المعضلة التاريخية قبل جنتري: كيف نحصل على FHE؟
المعضلة كانت واضحة ومزعجة:
1. نحتاج ضجيجًا لتحقيق الأمن.
2. لكن الضجيج ينفجر مع الضرب المتكرر.
3. إذن: كيف ننفّذ حسابات غير محدودة (Unbounded Computation) دون أن يقتل الضجيج فك التشفير؟
طوال عقود، كانت النتيجة العملية:
* **PHE**: جيد لعملية واحدة (جمع أو ضرب).
* **SHE**: جيد لعدد محدود من العمليات/عمق محدود.
* **FHE**: فكرة مرغوبة لكنها “غير عملية/غير معروفة الطريق”.
---
# حلّ جنتري (Craig Gentry) سنة 2009: فتح الباب نحو FHE
في 2009 قدّم كريغ جنتري أول بناء مقنع لـ **التشفير المتجانس الكامل** (Fully Homomorphic Encryption – FHE) مبنيًا على تشفير قائم على الشبكيات (Lattice-based).
الفكرة الجوهرية التي قلبت الطاولة اسمها:
## Bootstrapping (إعادة التهيئة/إعادة الإقلاع)
بدل أن نترك الضجيج يتراكم حتى يقتل النص المشفّر، نقوم بعملية “تجديد” (Noise Refreshing):
* نأخذ نصًا مشفّرًا ضجيجه مرتفع.
* نجري عليه عملية داخل النظام تقلل الضجيج دون كشف الرسالة.
* فيعود النص صالحًا لمزيد من الحساب.
الفكرة العميقة هنا:
أن يكون النظام قادرًا على **تقييم دالة فك التشفير الخاصة به** على نحوٍ مشفّر، أي “يشغّل نفسه على نفسه” بشكل مضبوط.
عندها تصبح الحسابات قابلة للتمديد نظريًا بلا حد (Unbounded Depth).
> ملحوظة مهمة: كثير من المكتبات اليوم تستخدم “FHE بمستوى محدد” (Leveled FHE) بدون bootstrapping دائمًا، لأن bootstrapping مكلف—لكن وجوده هو الذي يعطيك مبدئيًا FHE الحقيقي.
---
# لماذا الرياضيات هنا ليست زينة؟ (الدور الحاسم للأعداد الجبرية والشبكيات)
هذه النقطة هي لبّ الموضوع:
**FHE لا يعيش على الأفكار البرمجية وحدها**، بل على بنية رياضية عميقة.
## أولًا: نظرية الأعداد الجبرية (Algebraic Number Theory)
معظم مخططات FHE العملية الحديثة تعمل في حلقات كثيرات حدود (Polynomial Rings) بدل الأعداد الصحيحة فقط.
الشكل الشائع هو العمل في فضاء من نوع:
$$R_q = \mathbb{Z}_q[x]/(f(x))$$
حيث:
* `q` عدد كبير (Modulus)
* و `f(x)` كثير حدود خاص، وغالبًا يُختار ليعطي بنية دورانية/سيكلوتومية (Cyclotomic Structure)
لماذا هذا الاختيار مهم؟
* يسمح بحسابات جمع وضرب أسرع على “كتل” من البيانات.
* يعطي انتظامًا بنيويًا يمكن استغلاله للتسريع.
* يقلّل أحجام المفاتيح والتمثيلات مقارنة ببعض البدائل.
بعبارة مباشرة:
**الأعداد الجبرية هنا هي ما يجعل الأداء “قابلًا للتفاوض”، لا مجرد نظري.**
---
## ثانيًا: نظرية الشبكيات (Lattice Theory) — أساس الأمن
الأمن في كثير من مخططات FHE الحديثة يرتبط بمسائل من نوع:
* LWE (Learning With Errors)
* RLWE (Ring Learning With Errors)
الصيغة المبسطة (للتقريب الذهني) لفكرة LWE/RLWE هي وجود علاقة من نمط:
```latex
b \approx a \cdot s + e \pmod q
```
حيث:
* `s` هو السر (Secret)
* `e` ضجيج صغير (Error/Noise)
* والمهاجم يرى `a` و `b` لكنه لا يستطيع استخراج `s` لأن الضجيج يربك المعادلة.
السبب في قوة هذا النموذج هو أن محاولة “إزالة الضجيج” تقود إلى مشاكل هندسية صعبة داخل الشبكيات، مثل:
* مشكلة أقصر متجه (Shortest Vector Problem – SVP)
* مشكلة أقرب متجه (Closest Vector Problem – CVP)
وهذه المسائل تقع في فضاءات عالية الأبعاد (High-Dimensional Geometry)، ويُعتقد أنها صعبة حتى أمام الحواسيب الكمية (Quantum Computers).
لذلك تُصنّف هذه العائلة ضمن **تشفير ما بعد الكم** (Post-Quantum Cryptography).
---
## صورة توضيحية مفيدة: اختزال الشبكة (Lattice Reduction)
> (الصورة التالية في المجال العام Public Domain من ويكيميديا كومنز)

الفكرة: نفس الشبكة يمكن تمثيلها بقواعد مختلفة (Bases)، وبعض القواعد “أسهل” من غيرها—ومن هنا تأتي خوارزميات مثل LLL و BKZ في التشفير القائم على الشبكيات.
---
# لماذا لا يزال FHE صعبًا عمليًا؟ (العوائق والمشاكل)
لنكن صريحين: FHE ليس مجانيًا.
## 1) البطء (Performance Overhead)
الحساب على نصوص مشفّرة أثقل بكثير من الحساب على بيانات صريحة:
* عمليات أكثر تعقيدًا
* معاملات أكبر
* ومحددات صارمة على شكل الحساب (خصوصًا الضرب)
## 2) كلفة الذاكرة (Memory Overhead)
النصوص المشفّرة عادة أكبر بكثير من البيانات الأصلية، خصوصًا مع:
* تعبئة البيانات (Packing/SIMD)
* أو معايير أمان أعلى
* أو عمليات bootstrapping
## 3) صعوبة البرمجة (Programming Model Constraints)
أشياء بديهية في البرمجة العادية تصبح مكلفة أو غير مباشرة هنا:
* المقارنات (Comparisons)
* الشروط (If/Else)
* الفروع (Branching)
لذلك تُحوّل كثير من الحسابات إلى دوائر (Circuits) أو كثيرات حدود (Polynomials)، وهذا يغيّر طريقة التفكير كليًا.
## 4) اختيار المعاملات (Parameter Selection)
أي خطأ في المعاملات قد يعطي:
* نظامًا بطيئًا جدًا
* أو غير صحيح (يفشل فك التشفير)
* أو (في أسوأ الأحوال) أضعف أمنيًا
---
# أين يلمع FHE فعليًا؟ (Use Cases واقعية)
يظهر FHE عندما تكون الخصوصية أهم من كل شيء:
* تحليلات طبية حساسة (Healthcare Analytics)
* بيانات مالية ومعاملات تحتاج سرية شديدة (Finance)
* تعاون بين أطراف لا تثق ببعضها (Distrustful Parties)
* استعلامات قواعد بيانات مشفّرة
* تشغيل نماذج تعلم آلي على بيانات خاصة دون كشفها (Privacy-preserving ML inference)
---
# المستقبل (Future Outlook): ماذا نتوقع بواقعية؟
## ما لن يحدث قريبًا
* FHE لن يصبح أسرع من الحساب التقليدي (Plain Computation) بشكل عام.
* ولن يدخل “كل تطبيق يومي” دون تمييز.
## ما يُرجّح أن يحدث
* تحسّن كبير في bootstrapping وطرق تقليل كلفته.
* أدوات ومترجمات (Compilers) تنقل الخوارزميات تلقائيًا إلى شكل مناسب للحساب المشفّر.
* حلول هجينة تجمع بين:
* FHE
* الحوسبة متعددة الأطراف (Multi-Party Computation – MPC)
* العتاد الموثوق (Trusted Hardware / TEEs)
للوصول إلى توازن عملي بين السرية والكلفة.
الخلاصة المستقبلية:
**FHE سيصبح “طبقة خصوصية معيارية” في القطاعات الحساسة، لا بديلًا شاملًا لكل الحوسبة.**
---
# قاموس مصطلحات مختصر (Glossary)
* التشفير المتجانس: Homomorphic Encryption (HE)
* التشفير المتجانس الجزئي: Partially Homomorphic Encryption (PHE)
* التشفير المتجانس المحدود: Somewhat Homomorphic Encryption (SHE)
* التشفير المتجانس الكامل: Fully Homomorphic Encryption (FHE)
* تشفير كامل بمستوى محدد: Leveled FHE
* الضجيج/الخطأ: Noise / Error
* إعادة التهيئة: Bootstrapping
* نظرية الأعداد الجبرية: Algebraic Number Theory
* نظرية الشبكيات: Lattice Theory
* تعلّم مع وجود أخطاء: Learning With Errors (LWE) / Ring-LWE (RLWE)
* أقصر/أقرب متجه: SVP / CVP
* ما بعد الحوسبة الكمية: Post-Quantum Cryptography (PQC)
---
# صور إضافية (اختيارية) عن “السيادة على البيانات” ودمج HE
> (الصورة التالية مرخّصة CC0 من ويكيميديا كومنز)

---
# مراجع مقترحة للقراءة (Recommended Reading)
* Craig Gentry (2009): "A Fully Homomorphic Encryption Scheme" (thesis).
* Wikipedia: Homomorphic Encryption (overview + taxonomy + history).
* Wikipedia: Lattice problem (SVP/CVP definitions and relations).
* Hanrot, Stehlé et al.: "Algorithms for the Shortest and Closest Lattice Vector Problems" (survey PDF).
---
</div>
اعتمدتُ في **التقسيم الرسمي للأنواع (PHE/SHE/Leveled FHE/FHE)**، وشرح تراكم الضجيج وعمق الضرب، وملخص تاريخ “جنتري 2009 + bootstrapping” على صفحة *Homomorphic encryption* في ويكيبيديا. :contentReference[oaicite:0]{index=0}
واعتمدتُ في **النقطة التاريخية** (أول بناء مقنع لـ FHE سنة 2009، وفكرة تقييم الدوائر على نصوص مشفّرة، وكون المسألة طُرحت منذ 1978) على أطروحة جنتري وملخص ورقته “Ideal Lattices”. :contentReference[oaicite:1]{index=1}
وفي تعريفات **SVP/CVP** وعلاقتها بمشاكل الشبكيات استندتُ إلى تعريفات “Lattice problem” في ويكيبيديا وإلى مسح Hanrot/Stehlé. :contentReference[oaicite:2]{index=2}
أما الصور الثلاث المدرجة فهي من ويكيميديا كومنز وبترخيص CC0 أو Public Domain كما هو مذكور في صفحات الملفات. :contentReference[oaicite:3]{index=3}
::contentReference[oaicite:4]{index=4}