Path ORAM: إخفاء عمليات الوصول إلى الذاكرة
ادرسوا بنية Path ORAM، بما في ذلك الأشجار الثنائية وstash وخريطة المواقع، وضماناتها الأمنية.
Path ORAM: إخفاء عمليات الوصول إلى الذاكرة درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
مقدمة إلى Path ORAM
يُعد Path ORAM، الذي اقترحه Stefanov وvan Dijk وShi وFletcher وRen وYu وDevadas عام 2013، بنية ORAM الأكثر تأثيرًا من الناحية العملية. وينظم تخزين الخادم على شكل شجرة ثنائية من الحاويات، بحيث تقابل كل ورقة موضعًا لكتلة بيانات. ويحقق Path ORAM في صورته الأساسية كلفة اتصال قدرها O(log^2 N) لكل عملية وصول، كما أنه بسيط بما يكفي لتنفيذه في بضع مئات من أسطر التعليمات البرمجية.
خريطة المواضع
خريطة المواضع هي بنية بيانات لدى العميل تربط عنوان كل كتلة منطقية بعقدة ورقية في الشجرة الثنائية. وبالنسبة إلى قاعدة بيانات تتكون من N كتلة وشجرة ارتفاعها L = log N، تكون خريطة المواضع مصفوفة من فهارس الأوراق وعددها N. قبل الوصول إلى الكتلة b، يبحث العميل عن الورقة المعيّنة لها حاليًا في خريطة المواضع، ثم يعيّن لها ورقة عشوائية جديدة. وسيُقرأ مسار الورقة القديمة من الخادم ثم يُكتب إليه مجددًا.
مخبأ Path ORAM
المخبأ هو ذاكرة مؤقتة صغيرة لدى العميل، وتتسع عادةً لـ 20-40 كتلة، وتحتفظ مؤقتًا بالكتل التي قُرئت من الخادم ولم تُكتب إليه بعد. عند قراءة كتلة، تُزال من مسارها وتوضع في المخبأ. وبعد الوصول إليها وربما تعديلها، تُكتب مجددًا جميع الكتل الموجودة في المخبأ والتي يمكن وضعها على المسار الجديد. أما الكتل التي لا يمكن أن تتسع لها أي مسار، فتبقى في المخبأ.
بنية التخزين الشجرية
يتكون تخزين الخادم من شجرة ثنائية كاملة ذات L+1 مستوى (L = log N). وتحتوي كل عقدة (حاوية) على Z كتلة، وعادةً ما يكون Z = 5. وتمثل الأوراق مواضع لكتل البيانات. وهناك N عقدة ورقية، ولذلك يبلغ العدد الإجمالي للعقد 2N-1، ويبلغ إجمالي تخزين الخادم O(NZ). ويضم كل مسار من ورقة إلى الجذر log N عقد، ويمكنه استيعاب Z*log N كتلة، مما يوفر السعة اللازمة لاستراتيجية إخلاء المسار.
عملية القراءة في Path ORAM
لقراءة الكتلة b: (1) ابحث في خريطة المواضع عن الورقة الحالية l الخاصة بالكتلة b؛ (2) عيّن للكتلة b ورقة عشوائية جديدة l' وحدّث خريطة المواضع؛ (3) اقرأ جميع الحاويات الموجودة في المسار من الورقة l إلى الجذر (أي log N حاوية)؛ (4) اعثر على الكتلة b في المسار المقروء أو في المخبأ؛ (5) اكتب مجددًا جميع الكتل التي يمكن تعيينها إلى المسار الجديد l'، واملأ خانات الحاويات المتبقية بكتل وهمية. وهكذا يرى الخادم في كل مرة قراءة لمسار عشوائي.
عمليات الوصول الوهمية والإخفاء
يحافظ Path ORAM على إخفاء نمط الوصول لأن كل عملية وصول تقرأ وتكتب مسارًا واحدًا بالضبط من الجذر إلى الورقة، بصرف النظر عن الكتلة التي يجري الوصول إليها. ويتحدد المسار من خلال تعيين ورقة عشوائية موزعة توزيعًا منتظمًا، لا من خلال محتوى الكتلة أو عنوانها. وتملأ الكتل الوهمية خانات الحاويات الفارغة، بحيث يضم كل مسار العدد نفسه من الخانات المشغولة. ولا يرى الخصم الذي يراقب الخادم سوى عمليات وصول إلى مسارات عشوائية.
تعقيد الاتصال
تتطلب كل عملية وصول في Path ORAM قراءة مسار واحد من الجذر إلى الورقة وكتابته: أي O(log N) حاوية، تحتوي كل منها على Z كتلة. ومع حجم كتلة B وحجم حاوية Z، تنقل كل عملية وصول O(Z * log N * B) بت. وبالنسبة إلى المعاملات المعتادة (N = 2^20، Z = 5، B = 4KB)، يبلغ ذلك نحو 400KB لكل عملية وصول، مقارنةً بـ 4KB للوصول إلى نص صريح، أي كلفة إضافية قدرها 100x. وتخفض خرائط المواضع التكرارية كلفة الاتصال هذه إلى O(log^2 N) عند قياسها بعدد الكتل.
خريطة المواضع التكرارية
تتطلب خريطة المواضع الساذجة N مدخلة مخزنة لدى العميل، أي تخزينًا لدى العميل قدره O(N)، وهو بحجم قاعدة البيانات بأكملها. وتخفض خريطة المواضع التكرارية مساحة تخزين العميل إلى O(log^2 N) من خلال تخزين خريطة المواضع نفسها في ORAM أصغر بصورة تكرارية. وتنتهي عملية التكرار عندما يصبح ORAM صغيرًا بما يكفي ليتسع له المخبأ. وهذه هي التقنية القياسية لجعل Path ORAM عمليًا مع مجموعات البيانات الكبيرة.
تحليل امتلاء المخبأ
يزداد حجم المخبأ في Path ORAM إذا تعذر إخلاء الكتل إلى المسارات المعيّنة لها بسبب تعارضات المسارات. وقد أثبت Stefanov وآخرون أن احتمال امتلاء المخبأ (أي تجاوزه R كتلة) يتناقص أسيًا مع R، وتحديدًا لا يتجاوز 14 * (0.6002)^R في التحليل القياسي. ويؤدي ضبط R = 40 إلى احتمال فشل يبلغ نحو 2^{-38}، وينطبق ذلك على جميع تسلسلات الوصول، بما فيها التسلسلات التي يختارها خصم.
مقارنة مع بنيات ORAM الأخرى
قبل Path ORAM، كانت أفضل بنيات ORAM العملية تفرض كلفة قدرها O(log^3 N) (Shi وآخرون، 2011، "Oblivious RAM with O((log N)^3) Worst-Case Cost"). وقد خفض Path ORAM هذه الكلفة إلى O(log^2 N) مع بنية أبسط بكثير. وحسّنت الأعمال اللاحقة (Circuit ORAM وOptORAMa) الثوابت والحدود التقاربية بدرجة أكبر، لكن Path ORAM لا يزال البنية الأكثر تطبيقًا على نطاق واسع بفضل بساطته.
تنفيذ Path ORAM
نُفّذ Path ORAM في عشرات الأنظمة البحثية وأنظمة الإنتاج. ومن التطبيقات البارزة ZeroTrace (Intel SGX + Path ORAM)، وObladi (Path ORAM فوق التخزين السحابي)، وOpaque (Path ORAM فوق Apache Spark). وتحافظ مجموعة Stanford للحوسبة الآمنة على تنفيذ مفتوح المصدر لـ Path ORAM بلغة C++. وتوفر AWS تقنية Path ORAM ضمن نماذجها البحثية الأولية لـ Nitro Enclaves المخصصة لتحليلات البيانات التي تحافظ على الخصوصية.
اختبار خريطة المواضع
ما دور خريطة المواضع في Path ORAM؟
مراجعة Path ORAM
ينظم Path ORAM تخزين الخادم على شكل شجرة ثنائية، بحيث تقرأ كل عملية وصول مسارًا واحدًا من الجذر إلى الورقة وتكتبه. وتتتبع خريطة المواضع تعيين الورقة الحالية لكل كتلة، بينما يحتفظ المخبأ بالكتل التي جرى الوصول إليها مؤخرًا. وتُعشّى كل عملية وصول من خلال تعيين مواضع ورقية عشوائية جديدة، مما يجعل جميع عمليات الوصول التي يراها الخادم موزعةً بالتوزيع نفسه. وتبلغ كلفة الاتصال O(Z * log N) لكل عملية وصول. وتخفض خرائط المواضع التكرارية مساحة تخزين العميل إلى O(log^2 N). ويُعد Path ORAM بنية ORAM الأكثر تطبيقًا على نطاق واسع.
الأسئلة الشائعة
هل درس «Path ORAM: إخفاء عمليات الوصول إلى الذاكرة» مجاني؟
نعم — نص درس «Path ORAM: إخفاء عمليات الوصول إلى الذاكرة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «Path ORAM: إخفاء عمليات الوصول إلى الذاكرة»؟
ادرسوا بنية Path ORAM، بما في ذلك الأشجار الثنائية وstash وخريطة المواقع، وضماناتها الأمنية. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «Path ORAM: إخفاء عمليات الوصول إلى الذاكرة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تهديد تسريب أنماط الوصول
- Path ORAM: إخفاء عمليات الوصول إلى الذاكرة
- Circuit ORAM والأداء العملي
- ORAM في التخزين السحابي والمعالجات الآمنة