
HIDEAGEM منصة تجريبية لإخفاء المعلومات.
888 888 8888888 8888888b. 8888888888 d8888 .d8888b. 8888888888 888b d888
888 888 888 888 "Y88b 888 d88888 d88P Y88b 888 8888b d8888
888 888 888 888 888 888 d88P888 888 888 888 88888b.d88888
8888888888 888 888 888 8888888 d88P 888 888 8888888 888Y88888P888
888 888 888 888 888 888 d88P 888 888 88888 888 888 Y888P 888
888 888 888 888 888 888 d88P 888 888 888 888 888 Y8P 888
888 888 888 888 .d88P 888 d8888888888 Y88b d88P 888 888 " 888
888 888 8888888 8888888P" 8888888888 d88P 888 "Y8888P88 8888888888 888 888
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄ ____ ______ ____ ▄ ▄
█ / / \ \ HIDEAGEM STEGANOGRAPHY PLATFORM █ . . █
█ /___ /__\ \ █ .-. .-. '..' █
█ \ \ / / ASTRAL SOFTWARE FROM THE FUTURE █ (_ \ / ) .' . █ █ \ \ / / █ | : : █ █ \ \ / / COPYRIGHT 2024 WWW.CYBERGEM.NET █ | : : █ █ \ \ / / █ | ..' █
█ / LET'S DO COMPUTER STUFF ALL DAY █ █
█ █ █
█ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ █ .. .--. █
█ MMMMMSSSSSSSSSSSSSSSSSSSSSSSSSSddMMMMMSSSSSSMSSSSSSSSSS; █ | | / . █ █ MMMMSSSSSSSSSSSSSSSSSMSSSSS; ;SSdMMMMSSSSSSMMSSSSSSSSSS, █ | | (_) ( ) █ █ MMSSSSSSSMSSSSSMSSSSMMMSS."-.-":MMMMMSSSSMMMMSSMSSSMMSS █ _|_|_ '. / █ █ MSSSSSSSMSSSSMMMSSMMMPTMM;"-/\":MMM^" MMMSSMMMSSMM █ ' ' --' █
█ SSSSSSSMMSSMMMMMMMMMP-.MMM : ;.;P dMMMMMMMMMP' █ █
█ SSMSSSMMMSMMMMMMMMMP :M;: ;.'+"""t+dMMMMMMMMMMP █ _ █ █ MMMSSMMMMMMMMPTMMMM"""":P .// ' ""^^MMMMMMMP' █ .--. ' :--.--. █ █ MMMMMMPTMMMMP="TMMMsg, \/ dbc" dMMMMMP" █ ( ) | | | █
█ MMMMMM TMMM d$$$b ^ /T$; ;-/TMMMP' Let's █ () / | | | ) █
█ MMMMM; .^M; d$P^T$$b : $$ ::MMMMP hide some █ (_, | | |/ █ █ MMMMMM .-+d$$ $$$; ;. $$ ;;MMMP, Gems ! █ (J █ █ MMMMMMb _d$$$ $$$$ :$$$; :MMMMMMp. █ █ █ MMMMMM" " T$$$._.$$$; T$P.'MMMSSSSSSb █ _ █ █ MMMTMb -")T$$$$$$P' ._ "" :MMSSSMMP' █ __ ' :--.--. █
█ MMM / \ ' "T$$P" / :MMMMMMP' █ .' '. | | | █
█ MMSb. ; " :MMMMMM' █ ____________ | | | █ █ MMSSb_lSSSb. .___. MMMMMP ,d88b.d88b, █ | | | .., █ █ MMMMSSSSSSSSb. .MMMMMM. 88888888888 █ --': █
█ MMMMMMMMMMMSSSb .dMMMMMMMP Y8888888Y' █ █ █ MMMMMMMMMMMMMSS; .dMMMMMMMMMM' Y888Y' █ ... _ █
█ MMMMGEMMAMMMMb;"-. .dMMMMMMMMMMP' Y' █ .': \ /_) █
█ MMMMMMMMMMMMMMb: '--.___.dMMMMMMMMMPP' █ .' \ /. █
█ MMMMMMMMMMMMMMMb; dMMMMMMMMPPR █ ..' \ / ; █ █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ .'. / __.' █
█ █ █
█ ░░░░░░░░ ▒▒▒▒▒▒▒▒ ░░░░░░░░ █ █
█ ▓▓▓░░ ████████ ███▒▒ ▓▓▓▓▓▓▓▓ ▓▓▓░░ ████████ █ -. .-' █ █ ▒▒▒▓▓ ░░ ██ ▒▒▒▒▒▒░░░██ ▒▒ ▓▓ ░░░░░░▒▒▒▓▓ ░░ ██+§¥µ██ █ .-"-._.-"-._.- : : █ █ ███▒▒ ▓▓ ░░░██ ▒▒ ▓▓▓░░ ██ ▒▒▒▓▓ ░░ ███▒▒ ▓▓ ░░░██$@¢¶██ █ .-"-._.-"-._.- --:--:-- █ █ ██ ▒▒ ▓▓▓▓▓▓███▒▒ ▓▓ ░░ ██████▓▓▓░░ ██ ▒▒ ▓▓▓▓▓▓████████ █ : : █ █ ██ ▒▒▒▒▒▒▒▒ ▒▒▒▓▓ ░░░░░░░░ ░░░██ ▒▒▒▒▒▒▒▒ █ .-' -. █
█ ████████ ▓▓▓▓▓▓▓▓ ████████ CYBERGEM █ █
▀ ▀ ▀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
HIDEAGEM هي أداة experimental لإخفاء الملفات داخل الصور.
إنها مكتوبة بلغة C++ ويمكن استخدامها عبر واجهة سطر الأوامر Python والعقد المخصصة في ComfyUI لـ Stable Diffusion.
تحذير: HIDEAGEM برنامج تجريبي! قد يحتوي على عيوب أو ثغرات غير معروفة. استخدمه على مسؤوليتك الخاصة!
تحذير: لم تتم بعد دراسة HIDEAGEM لتحديد مقاومته لتحليل الإخفاء (مثل الأدوات التي تحسب احتمال وجود رسالة مخفية في صورة ما). لذا افترض أنه من الممكن أن يتمكن الخصوم من اكتشاف ما إذا كانت الصورة "مريبة".
للحصول على شرح متعمق لخوارزميات HIDEAGEM وتصميمها، يرجى الاطلاع على هذا المنشور.
تتوفر تحديثات التطوير والدعم على Discord.
يمكن الآن استخدام HIDEAGEM في المتصفح على WWW.HIDEAGEM.COM !
علم إخفاء المعلومات (Steganography) يتعلق بإخفاء وجود رسالة؛ أي إخفاء حقيقة وجود اتصال.
تهدف HIDEAGEM إلى أن تكون منصة إخفاء معلومات من الجيل التالي، تجمع بين التقنيات التشفيرية والإخفائية الحديثة لتسهيل إخفاء معلومات سريع وآمن ومتين داخل الوسائط الحاضنة (cover media).
بالإضافة إلى السعي لتحقيق الهدف التقليدي للإخفاء (الاتصال الخفي)، يتم استكشاف خصائص أمنية أخرى لإخفاء بتات الرسائل داخل مجموعات بتات كبيرة.
صُممت HIDEAGEM لتكون قابلة للتوسع والتكيف، وهي منصة يمكن من خلالها تشغيل خوارزميات وتقنيات إخفاء متنوعة لإخفاء البيانات داخل أنواع متعددة من الوسائط الحاضنة.
يمكن دمج خوارزميات إخفاء جديدة في البرنامج بمرور الوقت لدعم المزيد من أنواع الملفات والاستفادة من تقنيات جديدة.
قائمة بالميزات العامة والاتجاهات المحتملة للتطوير المستقبلي.
Current Features | Future Development
-------------------------------|---------------------------------------------------
Unicode passwords | Keyfiles
Tamper-proof Gem data | Mobile app
512-bit symmetric key | More stego algorithms
Secure Memory Handling | More cover media types
Multiple files per password | Split files across images
Multiple passwords per image | Web app (local execution)
Offline brute-force resistance | Browser extension (e.g. context menu Gem extract)
استخدم أي أحرف Unicode غريبة تريدها في كلمات المرور الخاصة بك: يمكنك حتى استخدام الرموز التعبيرية المفضلة لديك؛ لا أحد يستطيع إيقافك! 🐬
ملاحظة: تنطبق المعلومات أدناه فقط على خوارزميات HIDEAGEM الحالية في المجال المكاني (spatial domain) المتوافقة فقط مع تنسيقات الصور غير المفقودة مثل PNG وTIFF وBMP.
إذا تم استخراج Gem بنجاح وكان يحتوي على تجزئة Gem الصحيحة، فسيكون مضمونًا عمليًا أن يكون مطابقًا تمامًا (بتًا ببت) لنفس الـ Gem الذي أخفيته في الصورة.
إذا تم إتلاف حتى بت واحد من بكسل Gem (بكسل يحتوي على بيانات Gem مخفية بداخله)، فسيفشل استخراج الـ Gem.
تأتي المضادة للعبث على حساب الهشاشة: التغييرات الصغيرة على صور Gem قد تجعل البيانات غير قابلة للاسترداد. إنها هشة ويمكن كسرها بتغيير الحجم، أو القص، أو تحوير بكسل يحتوي على بيانات Gem.
تستخدم HIDEAGEM نظام مفاتيح متماثل تجريبي مصمم للعمل بالتنسيق مع خوارزميات الإخفاء الخاصة بها.
يتم توليد المفتاح 512-بت باستخدام دالة تجزئة كلمات المرور Argon2id من libsodium وكلمة المرور التي يقدمها المستخدم.
تم اختيار Argon2id لأنه يوفر معاملات قابلة للتهيئة لمقاومة هجمات القوة الغاشمة (مثل متطلبات الذاكرة)، ومقاومة هجمات القوة الغاشمة عبر وحدات معالجة الرسوميات GPU.
يتم تشفير بيانات Gem باستخدام مفتاح 256-بت مشتق من المفتاح 512-بت، ثم يتم إخفاؤها في الوسائط الحاضنة باستخدام المفتاح 512-بت. يجب أولاً استخدام المفتاح 512-بت لاستخراج الـ Gem المشفرة بالكامل قبل أن يمكن استخدام المفتاح 256-بت لفك تشفير أي من بتاتها.
يمكنك معرفة المزيد عن نظام المفاتيح هنا.
NOTE: The key's ultimate strength is only as strong as the password. A very
long/random password is required to leverage all 512 bits of the key.
To achieve 512 bits of entropy with a password using the ASCII character set,
the password would have to be >= ~74 chars and each character perfectly random.
من أجل محاولة التخفيف من هجمات القنوات الجانبية المحتملة، تُستخدم وظائف إدارة الذاكرة منخفضة المستوى الخاصة بـ libsodium لمسح ذاكرة المفاتيح وملفات Gem والبيانات الحساسة الأخرى الناتجة أثناء عمليات التضمين/الاستخراج بأمان.
كما أنها تُستخدم لمنع نقل البيانات الحساسة مثل المفاتيح إلى قرص التبديل (swap).
يمكنك التفكير في الصور كمجلدات ملفات أو أرشيفات مشفرة تُكتب مرة واحدة.
يمكنك إخفاء أي عدد من الملفات في صورة باستخدام كلمة مرور واحدة، مع تحديد السعة فقط بقدرة الصورة على التضمين. سيتم استخراجها جميعًا دفعة واحدة عند إدخال كلمة المرور الصحيحة.
يبلغ الحمل الإضافي لتدفق Gem 52 بايت، ولكل ملف Gem حمل إضافي قدره 8 بايتات.
تحاول HIDEAGEM ضغط جميع ملفات Gem باستخدام miniz (zlib) قبل تشفيرها، مما قد يقلل عدد البايتات المضمّنة بشكل كبير في بعض الأحيان.
الحد الأقصى لحجم الملف لكل ملف Gem والحد الأقصى للبايتات التي يمكن تضمينها لكل Ocean هو 16 إكسابايت.
تدعم HIDEAGEM حاليًا إخفاء مجموعات متعددة من الملفات باستخدام كلمات مرور متعددة وصورة واحدة، ومع ذلك لم يتم تطوير واجهة مستخدم لاستخدام هذه الميزة بعد.
طريقة عملها أيضًا غريبة بعض الشيء لأنها هرمية: للوصول إلى المجموعة التالية من الملفات، تحتاج إلى جميع كلمات المرور التي سبقتها بالإضافة إلى كلمة مرور مجموعة الملفات تلك.
لذا اعتبر هذه ميزة خفية من المحتمل أنها غير مفيدة بعد.
يتم استخدام دالة تجزئة كلمات المرور Argon2id لتوليد المفاتيح باستخدام كلمة المرور التي يقدمها المستخدم.
يتم توليد المفتاح الرئيسي باستخدام معاملات مفاتيح INTERACTIVE، مما يوفر مقاومة كبيرة لهجمات القوة الغاشمة على كلمة المرور مقارنة باستخدام دالة تجزئة عادية لتوليد المفتاح.
HIDEAGEM مكتوبة بلغة C++ ويمكن استخدامها في Python عبر واجهة برمجة تطبيقات صغيرة.
تتوفر عقد مخصصة لمنصة ComfyUI الخاصة بـ Stable Diffusion، مما يسهل دمجها في سير عمل الذكاء الاصطناعي التوليدي ثنائي الأبعاد.
تُستخدم المكتبات الخارجية التالية:
جميع العمليات التشفيرية، مثل تشفير بيانات Gem والتجزئة وتوليد الأرقام العشوائية، تتم باستخدام دوال libsodium.
توليد المفاتيح: دالة التجزئة BLAKE2b وخوارزمية تجزئة كلمات المرور Argon2id
تشفير بيانات Gem: خوارزمية التشفير المتماثل XChaCha20-Poly1305 (مفتاح 256-بت + قيمة nonce بطول 192-بت)
تنفيذ مولد الأرقام العشوائية الآمن تشفيريًا CSPRNG: تجزئة BLAKE2b وشفر التدفق XChaCha20 (بذرة 256-بت + nonce بطول 192-بت)
بالإضافة إلى ذلك، تُستخدم وظائف إدارة الذاكرة منخفضة المستوى في libsodium لإدارة البيانات الحساسة مثل المفاتيح وملفات Gem.
مكتبة صغيرة لإدارة سلاسل Unicode. تُستخدم لتطبيع كلمات مرور Unicode بحيث تعمل بشكل متسق بين الأنظمة.
يتم محاولة ضغط بيانات Gem باستخدام miniz (تنفيذ zlib) قبل التشفير.
احتفظ بالإصدارات القديمة من HIDEAGEM في حال احتجت إلى ترحيل البيانات.
التغييرات الصغيرة على كود HIDEAGEM خلال هذه المرحلة المبكرة من التطوير قد تكسر التوافق مع الإصدارات السابقة. قد لا تتمكن الإصدارات الجديدة من HIDEAGEM من استخراج الـ Gems المخفية بإصدارات أقدم.
لن تكون هذه مشكلة بمجرد اعتبار الكود مستقرًا، حيث سيتم من ذلك الحين استخدام نظام الإصدارات لتوفير التوافق مع جميع الإصدارات السابقة.
تأتي HIDEAGEM الإصدار 1 مع بعض العقد لـ ComfyUI. يمكنك استخدامها لإخفاء الـ Gems في صورك المولّدة بالذكاء الاصطناعي، أو أي صور محفوظة على القرص.
🚨 تحذير: عقدة حفظ الصور الافتراضية في ComfyUI ستكشف أن HIDEAGEM استُخدمت في بيانات PNG الوصفية !!!
من المهم استخدام عقدة SAVE IMAGE الخاصة بـ HIDEAGEM، لأنها لا تحفظ تلك البيانات الوصفية في صورة PNG الخاصة بـ Gem الناتجة.
تأتي العقد مع بعض مساحات العمل النموذجية التي توضح كيفية استخدامها.
عند البحث عن الـ Gems، ستتطلب نافذة الطرفية إدخال المستخدم لحفظ الـ Gems على القرص، لذا بعد بدء البحث عن Gem انتقل إلى طرفية ComfyUI لمعرفة النتيجة.
كيفية تجميع HIDEAGEM وجميع التبعيات من المصدر:
HIDEAGEM\builds\visual_studio\2022سيتم إنتاج الملفات التنفيذية في HIDEAGEM\bin
للاختبار، ثبّت Python ثم:
pip install -r requirements.txt
python HIDEAGEM.py demo
اضغط CTRL + C لإنهاء العرض التجريبي.
أولاً، ثبّت cmake و make، ثم:
git clone --recurse-submodules https://github.com/CYBERGEM777/HIDEAGEM
cd HIDEAGEM
make
سيتم إنتاج الملفات التنفيذية في HIDEAGEM/bin
للاختبار، ثبّت python3 ثم:
pip install -r requirements.txt
python HIDEAGEM.py demo
اضغط CTRL + C لإنهاء العرض التجريبي.
بعد البناء، يمكن استخدام HIDEAGEM عبر HIDEAGEM.py:
cd HIDEAGEM
pip install -r requirements.txt
python HIDEAGEM.py [ args ]
يمكن لـ HIDEAGEM إخفاء الـ Gems (ملفات) داخل أي ملف آخر، وهو ما تسميه HIDEAGEM محيطًا من البتات (bit Ocean).
سيحاول HIDEAGEM.py اكتشاف ما إذا كان Ocean المدخل ملف صورة، وإذا كان كذلك فسيستخدم فقط بايتات بكسلات الصورة باعتبارها Ocean البتات. سيتم تجاهل باقي ملف الصورة تمامًا، وسيتم حفظ صورة Gem في مجلد الإخراج المحدد كصورة .png بنفس اسم ملف الصورة المدخلة.
لإخفاء Gem، مرّر إلى HIDEAGEM Ocean وملف Gem واحدًا أو أكثر وكلمة مرور. إذا لم يتم تحديد مجلد إخراج، فسيتم تنفيذ إخفاء الـ Gem لكن لن يتم حفظ الناتج على القرص.
python HIDEAGEM.py hide --ocean MORIA.JPEG --files RUBY.TXT EMERALD.TXT SAPPHIRE.TXT --output gem_images/ --password mellon
سيتم إخفاء ملفات Gem النصية داخل بايتات البكسلات المنسوخة من MORIA.JPEG، وسيتم حفظ صورة Gem الناتجة MORIA.PNG في المجلد gem_images.
إذا تم استخدام صورة RGBA كـ Ocean، فلن تتم الكتابة إلى بايتات قناة الشفافية alpha وبايتات RGB لأي بكسل شفاف تمامًا.
البحث عن الـ Gems بسيط ( إذا كانت لديك كلمة المرور ! ):
python HIDEAGEM.py find --ocean MORIA.PNG --output gem_images/ --password mellon
ستبحث HIDEAGEM عن الـ Gems في Ocean MORIA.PNG باستخدام كلمة المرور "mellon"، وإذا وجدت أيًا منها فستحفظها في gem_images.
إذا تم تشغيل البحث عن Gem دون مجلد إخراج، فسيتم استخراج ملفات Gem (إن وُجدت) ولكن لن يتم حفظ أي شيء على القرص.
WARNING: Experimental feature !!! Use at own risk !
يمكن لـ HIDEAGEM وضع سحر فخ الزمن (Time Trap) على الـ Gems بحيث يصبح اختراق كلمة المرور بالقوة الغاشمة أكثر صعوبة.
تتمتع فخاخ الزمن بمستوى من 0 إلى 7 يغيّر المدة التي يستغرقها استخراج الـ Gem والتحقق من كلمة المرور.
المستوى 0 لا يضيف وقتًا إضافيًا: يستغرق تضمين الـ Gem واستخراجها نفس الوقت كما لو لم يكن هناك فخ زمن.
المستويات من 1 إلى 7 لها أوقات استخراج أطول، حيث يكون 1 الأقصر و7 الأطول.
عند إدخال كلمة المرور الصحيحة، يتم استخراج الـ Gem باستخدام مستوى فخ الزمن المحدد عند إخفاء الـ Gem.
عند إدخال كلمة مرور غير صحيحة، يتم سحب مستوى فخ زمن عشوائي من الـ Ocean مع احتمال كبير لاصطياد الأبطأ:
LEVEL 7 = 50% (1/2)
LEVEL 6 = 25% (1/4)
LEVEL 5 = 12.5% (1/8)
LEVEL 4 = 6.25% (1/16)
LEVEL 3 = 3.125% (1/32)
LEVEL 2 = 1.5625% (1/64)
LEVEL 1 = 0.78125% (1/128)
LEVEL 0 = 0.39062% (1/256)
حوالي نصف محاولات القوة الغاشمة لكلمات المرور ستختار المستوى 7، بغض النظر عن المستوى الذي استُخدم لإخفاء الـ Gem (حتى المستوى 0).
من الممكن إخفاء الـ Gems التي يستغرق استخراجها أقل من ثانية، ولكنها تستغرق عدة دقائق لمحاولة واحدة من القوة الغاشمة على كلمة المرور.
ثمن فخ الزمن هو الراحة: إدخال كلمة المرور الخاطئة عن طريق الخطأ قد يكلف الكثير من الوقت، لذا فهو غير مناسب للاستخدام في السياقات التي تتطلب تغذية راجعة فورية عن كلمة المرور الخاطئة.
لإضافة فخ زمن إلى Gem، فقط أضف العلامة --timetrap، مع مستوى اختياري من 0 إلى 7 (إذا لم يتم تحديد أي مستوى، فسيتم اختيار 0):
python HIDEAGEM.py hide --ocean MORIA.JPEG --files DIAMOND.TXT --output gem_images/ --password mellon --timetrap [level]
للبحث عن Gem بفخ زمن، فقط أضف العلامة --timetrap (لا حاجة لتضمين المستوى):
python HIDEAGEM.py find --ocean MORIA.PNG --output gem_images/ --password mellon --timetrap
لاحظ أن أمر find في HIDEAGEM لا يبحث تلقائيًا عن الـ Gems ذات فخاخ الزمن إلا إذا طُلب منه ذلك.
إذا كنت تريد مشاهدة HIDEAGEM وهي تولّد أختام Gem عشوائية عن طريق إخفاء بيانات عشوائية في Ocean عشوائي، يمكنك تشغيل وضع العرض التجريبي:
python HIDEAGEM.py demo
إذا كنت تريد رؤية HIDEAGEM تخفي وتجد الـ Gems بأسرع ما يمكن، يمكنك تشغيل بعض الاختبارات الوحدوية:
python HIDEAGEM.py unit
اضغط CTRL + C للخروج من كلا الوضعين.
HIDEAGEM مرخصة بموجب ترخيص متساهل + MAGIC AI LICENSE [ MAGIC-AL]