الصياغة الرياضية لخط أنابيب الإخفاء والتشفير
يوثق هذا المرجع الصياغات الرياضية والمراحل الخوارزمية لخط أنابيب الإخفاء والاستخراج في منظومة STEGNOLINES.
١. اشتقاق المفاتيح والعداد ديناميكياً (PBKDF2-HMAC-SHA256)
يتم اشتقاق ملح تشفيري عالي الإنتروبيا $S$ من النص الحامل لضمان فرادته: $$S = ext{SHA256}( ext{CoverText})[0dots 15]$$ ويتم اشتقاق مفتاح AES-256 وكتلة عداد CTR باستخدام كلمة المرور: $$ ext{DerivedBytes} = ext{PBKDF2}( ext{Password}, S, 100000) quad ext{(384 bits generated)}$$ $$ ext{Key}_{AES} = ext{DerivedBytes}[0dots 31] quad ext{(256 bits)}$$ $$ ext{Counter}_{CTR} = ext{DerivedBytes}[32dots 47] quad ext{(128 bits)}$$
٢. تدفق التشفير المتماثل (AES-256-CTR)
يعمل التشفير في نمط العداد (Counter Mode) لتحقيق تطابق دقيق في الحجم بدون أي بايتات حشو زائدة: $$ ext{CipherBytes} = ext{AES-CTR}( ext{PayloadBytes}, ext{Key}_{AES}, ext{Counter}_{CTR})$$ ويُحول النص المشفر $ ext{CipherBytes}$ إلى تدفق بتات ثنائي $M = [m_1, m_2, dots, m_K]$.
٣. بذر محرك CSPRNG والتوزيع المكاني للبتات
يُشتق مفتاح الإخفاء إلى مفتاح بطول 256 بت باستخدام PBKDF2-HMAC-SHA256 بـ 100,000 تكرار: $$ ext{Key}_{256} = ext{PBKDF2}( ext{StegoKey}, ext{Salt}_{ ext{domain}}, 100000) quad ext{(256 bits)}$$ يبذر هذا المفتاح مولد AES-256-CTR CSPRNG. وتعمل خوارزمية سحب العينات غير المتحيز (Unbiased Rejection Sampling) على التخلص من انحياز المعامل (Modulo Bias)، مما ينتج مواقع بتات عشوائية وموزعة بانتظام $P = [p_1, p_2, dots, p_K]$ عبر خوارزمية $O(K)$ Lazy Fisher-Yates (مع ميزة التراجع التلقائي لمحرك Mulberry32 لدعم الرسائل القديمة).
٤. قناع عمليات XOR واسترجاع البيانات
لكل بت من النص المشفر $m_j$ وبت النص الحامل المختار $c_{p_j}$، يُحسب بت مفتاح XOR $k_j$ بالمعادلة: $$k_j = c_{p_j} oplus m_j$$ وأثناء الاستخراج، تسترجع عملية XOR العكسية البت الأصلي: $$m_j = c_{p_j} oplus k_j$$ ولأن $(c_{p_j} oplus m_j) oplus c_{p_j} = m_j$، يتم استرجاع الحمولة الأصلية بدقة متناهية.
٥. تحويل البايتات إلى محددات التنوع
يتم تحويل بايتات قناع XOR $B in [0, 255]$ إلى محددات تنوع يونيكود بالمعادلة: $$ ext{VS_CodePoint}(B) = egin{cases} 0 ext{xFE00} + B & ext{if } 0 le B le 15 quad ( ext{BMP Range VS1-VS16}) \ 0 ext{xE0100} + B - 16 & ext{if } 16 le B le 255 quad ( ext{Supplementary Range VS17-VS256}) end{cases}$$