سورس پنهان سازی اطلاعات در تصاویر با الگوریتم ژنتیک به زبان سی شارپ
در این بخش سورس پنهان سازی اطلاعات در تصاویر با الگوریتم ژنتیک به زبان سی شارپ را برای شما آماده کرده ایم که در محیط نرم افزار Visual Studio و زبان برنامه نویسی سی شارپ نوشته شده است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نحوه کارکرد برنامه را مشاهده کنید.
توضیحات پروژه
برای پنهان سازی اطلاعات در تصاویر، روش های زیادی وجود دارند که یکی از این روش ها استفاده از الگوریتم ژنتیک برای تصاویر خاکستری (DEGGA) است که می تواند داده های زیادی را در تصاویر خاکستری ذخیره کند.
پنهان سازی اطلاعات در تصاویر در حوزه مکان
پنهان سازی اطلاعات در تصاویر در حوزه مکان یکی از ساده ترین و پرکاربرد ترین روش روش های رمزنگاری پس از روش افزونگی حجم است. در این روش از توانایی اندک سیستم بینایی انسان در تفکیک دقیق رنگ ها و تشخیص تغییرات، استفاده شده و بدون تغییر قابل محاسبه در ابعاد یا حجم تصویر از خود آن به عنوان حامل پیام استفاده می شود. در واقع در این روش پیام درون بخشی از فضای بیتی تصویر نهفته شده و در نتیجه امکان کشف آن با روش های ساده میسر نخواهد بود.
یکی از روش های مرسوم در پنهان سازی حوزه مکان، استفاده از بیت های کم ارزش بایت های تشکیل دهنده تصویر حداکثر تا بیت چهارم است. شکل زیر، نمونه ای از عمل کرد است که این روش را برای یک تصویر ۲۰ در ۲۰ خاکستری نمایش می دهد.
همانطور که مشاهده می کنید در این روش نهان سازی سطح خاکستری تصویر تغییری جزیی نموده و به جای عدد ۲۵۰ به عددی بین ۲۴۰ تا ۲۵۵ و در این مثال به ۲۵۳ تغییر می کند. چشم انسان نمی تواند به سهولت این میزان تغییر را درک کند و در صورتی که پیام ذخیره شده دارای توزیع تصادفی یکنواخت از صفر ها و یک ها باشد به هیچ عنوان چشم انسان نخواهد توانست تغییرات را احساس کند.
بدیهی است هرچه تعداد بیت مورد استفاده از تصویر برای نهان سازی کمتر باشد امکان تشخیص توسط چشم و در عین حال فضای ذخیره سازی کاهش می یابد. از چالش های اساسی در پنهان سازی داده ها در تصاویر عدم تشخیص اطلاعات مخفی شده، حجم اطلاعات قابل ذخیره در تصاویر و مقاومت در برابر تغییرات است.
یکی دیگر از روش های پنهان سازی اطلاعات در تصویر با استفاده از افزونگی حجم، ذخیره آن ها به عنوان ابرداده درون تصویر است. تقریبا اکثریت فرمت های تصویری این امکان را دارند که اطلاعاتی به صورت ابرداده درون آن ها ذخیره شوند.
این اطلاعات که به صورت کلی به آنها EXIF یا اطلاعات اضافی فایل گفته می شود محلی برای ذخیره سازی برخی مشخصات تصویر نظیر مدل دوربین، نوع لنز، نام عکاس، تاریخ عکاسی و غیره می باشند. اغلب نرم افزار های حرفه ای نمایش تصویر می توانند علاوه بر نمایش تصویر این اطلاعات را نیز استخراج و نمایش دهند با این حال در صورتی که در آن مکان ابرداده ای تعریف نشده وجود داشته باشد این نرم افزار ها امکان نمایش آن را نخواهند داشت. در نتیجه می توان هر حجم دلخواهی از دادگان را در این بخش از تصاویر ذخیره نمود.
مزیت این روش نسبت به روش قبل در آن است که دادگان در سرآیند تصویر ذخیره شده و در نتیجه به سادگی قابل مشاهده و ردیابی نخواهند بود. برای استفاده از این روش لازم است تا از نرم افزاری با قابلیت درج اطلاعات EXIF استفاده شود. ایراد هر دو روش مذکور و به طور کلی هر روش درج اطلاعات دیگری که موجب تغییر ابعاد فایل تصویر گردد در درجه اول در آن است که به سهولت قابل شناسایی است چرا که ابعاد واقعی فایل به راحتی قابل محاسبه است.
در درجه دوم آن است که در مقابل هیچ نوع تغییری نمی تواند مقاومت نشان داده و با کوچکترین تغییر و ذخیره سازی مجددی این اطلاعات از بین می روند. البته در این EXIF خصوص روش دوم اندکی مقاومتر بوده و در صورتی که فرمت تصویر تغییر نکند تغییرات ویرایش معمول موجب حذف اطلاعات نمی شوند.
معرفی الگوریتم ژنتیک برای پنهان سازی اطلاعات در تصاویر خاکستری
در الگوریتم ژنتیک (DEGGA) ابتدا تصویری که قرار است درون تصویر دیگر جاسازی شود پیکسل های آن که عددی بین ۰ تا ۲۵۵ است، خوانده شده و به مبنای ۲ تبدیل می شود. بعد از خوانده شدن تمام پیکسل ها و تبدیل آنها به مبنای ۲ رشته ای از صفر و یک ها بدست خواهد آمد سپس تصویری که قرار است اطلاعات سری درون آن جاسازی شود پیکسل هایش به بلوک های ۳*۳ تقسیم شده و مقدار آنها در مبنای ۲ نمایش داده می شوند. نمونه ای از این عملیات در شکل زیر نشان داده شده است.
در مرحله ای بعد، از بایت های تصویر سری ۴ بیت را برداشته و با ۴ بیت سمت راست بلوک ۱ تصویر پوششی جایگزین می کنیم این عملیات را تا پایان بیت های تصویر سری، بر روی تمام بایت های بلوک ها انجام می دهیم.
بعد از اتمام عملیات جایگزینی، ۳ بیت از سمت راست بلوک جدید، برداشته وعمل جهش بیتها را با xor کردن آنها با هم انجام می دهیم و دوباره سر جای خود قرار داده می شود این عمل را بر روی تمام بایت های بلوک ها انجام می دهیم.
بعد از اتمام این عملیات رشته های بدست آمده را به مبنای ۱۰ بر گردانده و با پیکسل معادل خود در تصویر پوششی جایگزین می کنیم. در این روش چون از ۴ بیت کم ارزش هر پیکسل استفاده می شود مقدار هر پیکسل ممکن است بین مثبت ۱۶ تا منفی ۱۶ تغییر پیدا کند.
بلوک دیاگرام و تصاویر استفاده شده در این الگوریتم بر روی تصاویر خاکستری در دو شکل زیر نشان داده شده است.
در جدول زیر حداکثر سیگنال به نویز تصویر پوششی با تصویر استگانوگرافی نمایش داده شده است که هر چه مقدار PSNR بیشتر باشد، بدین معنی است که تصویر نهایی به تصویر پوششی نزدیک است و هر چه این مقدار به عدد صفر نزدیک شود نشان دهنده تغییرات بیشتر تصویر نهایی می باشد.
هیچ نظری ثبت نشده است