پنهان نگاری یا استگانوگرافی هنر برقراری ارتباط پنهانی است و هدف آن پنهان کردن ارتباط به وسیله قرار دادن پیام در یک رسانه پوششی است به گونه*ای که کمترین تغییر قابل کشف را در آن ایجاد نماید و نتوان موجودیت پیام پنهان در رسانه را حتی به صورت احتمالی آشکار ساخت. پنهان نگاری خود شاخه ای از دانشی به نام ارتباطات پوشیده است. دانش ارتباطات پوشیده خود شامل چندین شاخه از جمله رمز نگاری، ته نقش نگاری و ... می باشد.
یکی از ساده*ترین روشها، استفاده از بیت*های کم ارزش فضای مورد نظر است. در پنهان نگاری نیز همانند رمز نگاری فرض بر آن است که الگوریتم*های بکار رفته در پنهان نگاری برای همه آشکار است. امنیت در این روشها بر پایه پنهان بودن کلید تعریف می*گردد به طوری که نتوان بدون داشتن کلید هیچ اطلاعی از وجود پیام پنهان کسب کرد.
ایده استگانوگرافی سادست استفاده از بیت های خالی فایل ها.
ماژول های که معمولاً در استگانو گرافی مورد استفاده قرار میگیرند:
1. ماژول GD
2. ماژول Image::Magick
3. ماژول Crypt::Image
ماژول GD یک کتابخانه ی بزرگ برای کار با فایل های بصریه (ایجاد فایل/ ویرایش ) این ماژول به صورت پیش فرض همراه با مفسر نصب میشه این ماژول برای کار با فایل های گرافیکی خیلی مفیده برای نمونه:میتونید از اون در ساخت بارکد/ایجاد کپچا بهره ببرید.[URL="http://www.indecorous.com/perl/steg/"]در این سایت[/URL] می تونید روشی رو برای استفاده از GD در استگانوگرافی مشاهده کنید.
گزینه دوم : این ماژول واقعاً جادوییه به راحتی با استفاده ازتوابع این ماژول می تونیم یه برنامه [URL="http://www.imagemagick.org/Usage/annotating"]mini photoshop[/URL] طراحی کنیم.
البته ماژول جادویی رو باید از مخازن بنصبید.
این کد رو ببینید الگویی برای استفاده کردن اسگانوگرافیه :
ماژول سوم Crypt-Image:
این ماژول صرفاً برای پنهان سازی داده در فایل مدیا طراحی شده البته عمر زیادی نداره نزدیک یه سال و نیمه که وارد CPAN شده نویسنده اون چندین ماژول ثبت شده داره ایشون یه اینترفیس برای کار با تفویم فارسی و اسلامی به ثبت رسونده.
برای استفاده از این ماژول باید اون رو به مفسر پرل اضافه کنید.
این ماژول کلاً دارای 2 متده: یکی برای ذخیره داده و دیگری برای استخراج داده ذخیره شده
محدودیت هایی هم وجود داره این ماژول در نسخه فعلی فقط قادر به کریپت و آنکریپت فایل های PNG می باشد .
پنهان سازی داده :
برای شروع شکل کلی متد رو ببینیم: