در این پست به پیاده سازی رمزنگاری تصویر با تابع آشوب در متلب پرداخته شده است. رمزنگاری تصویر یکی از روش های تأمین امنیت اطلاعات است. رمزنگاری تصویر تلاش می کند تا تصویر اصلی رابه تصویری که به سختی قابل تشخیص باشد تبدیل کند به عبارت دیگرهیچ کس نمی تواند تصویر را بدون در دست داشتن کلید شناسایی کند. رمزنگاری تصویر میتواند کاربردهای مختلفی درزمینه های تلویزیون، آلبوم عکس شخصی آنلاین، سیستم های تصویری پزشکی، ارتباطات تصویری نظامی و ویدیو کنفرانس های محرمانه داشته باشد.
به طور کلی الگوریتم های رمزنگاری تصویر به سه دسته الگوریتم های بر پایه ی تغییر موقعیت، الگوریتم های بر پایه ی تغییرمقدار و الگوریتم های بر پایه ی تبدیل بینایی تقسیم می شوند. در این پست تصمیم داریم تا رمزنگاری و رمزگشایی تصویر با تابع آشوب لجستیک سه بعدی در متلب را پیاده سازی کنیم و سپس ارزیابی خود از این روش رمزنگاری را ارائه خواهیم داد.
در انتهای این مجموعه شما فایل مربوط به پیاده سازی رمزنگاری تصویر با تابع آشوب در متلب را خواهید داشت و می توانید از آن برای رمزنگاری، رمزگشایی و ارزیابی روش استفاده کنید. در ادامه به بررسی این روش می پردازیم.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
معرفی آشوب
به طور کلی می توان گفت که کلید نظریه ی آشوب این است که در هر بی نظمی،نظمی نهفته است.به این معنی که نباید نظم را تنها در یک مقیاس کوچک جستجو کرد.پدیده ای که در مقیاس محلی کاملا تصادفی و غیرقابل پیش بینی به نظر می رسد چه بسا در مقیاس بزرگ تر کاملا منظم و قابل پیش بینی باشد. ظاهر بی نظم و غیرقابل پیش بینی توابع آشوب و همچنین حساسیت بالای این توابع به شرایط اولیه و نیز سرعت بالای الگوریتم های آشوبی نسبت به سایر الگوریتم ها موجب کاربرد این توابع در رمزنگاری تصویر شده است.
توابع زیادی برای آشوب معرفی شده اند از معروف ترین آنها می توان به تابع لورنز Lorenz، تابع راسلر Rossler، تابع لجستیک Logistic، تابع هنون Henon، تابع تنت Tent، تابع بیکر baker، تابع آرنولد Arnold و … اشاره کرد برای درک بیشتر به داکیومنت این پیاده سازی که یکی از محصولات ویژه سایت می باشد مراجعه فرمایید. داکیومنت رمزنگاری تصویر با استفاده از تابع آشوب لجستیک سه بعدی در واقع مکمل این پیاده سازی می باشد و این داکیومنت متن پایانامه ارائه شده است.
رمزنگاری تصویر با تابع آشوب – داکیومنت رمزنگاری تصویر با استفاده از تابع آشوب لجستیک سه بعدی
در این پست داکیومنت رمزنگاری تصویر با استفاده از تابع آشوب لجستیک سه بعدی عنوان مطلبی است که به آن پرداخته شده است. رمزنگاری فرآیند رمز کردن پیام ها یا اطلاعات است بصورتی که فقط برای گروه خاصی قابل خواندن باشد. در روش رمزنگاری تصویر یا اطلاعات که تصویر اصلی نامیده می شود بوسیله ی یک الگوریتم رمزنگاری رمز می شود حاصل تولید تصویر رمزنگاری شده است که فقط در صورت رمزگشایی قابل خواندن است.
روش های ارزیابی رمزنگاری تصویر
1- حساسیت به کلید
الگوریتم رمزنگاری باید به تغییرات جزیی در کلید حساس باشد.به طوری که با کوچکترین تغییر در کلید نتوان با معکوس کردن عمل رمزنگاری به تصویر اصلی دست یافت.هر چه میزان این حساسیت بالا باشد نشان دهنده ی عملکرد بهتر الگوریتم رمزنگاری است. در یک الگوریتم رمزنگاری هر چه میزان فضای کلید بزرگ باشد نشانگرعملکرد بهتر الگوریتم و مقاومت بهترآن در برابر حملات است.فضای کلید در واقع به مجموع تعداد کلید های مختلفی گفته می شود که در رمزنگاری مورد استفاده قرار می گیرد.
برای مثال اگر کلیدهای مورد استفاده در الگوریتم هشت بیتی باشند،فضای کلید شامل 28 حالت ممکن برای فضای کلید خواهد بود.
2- ضریب همبستگی
در یک تصویرمعمولی هر پیکسل شباهت زیادی با پیکسل های مجاورش دارد.در تمام الگوریتم های رمزنگاری بدنبال روشی هستیم که میزان همبستگی هر پیکسل با پیکسل های مجاورش به کمترین میزان خود برسد.کاهش میزان همبستگی نشانگر بهبود عملکرد سیستم رمزنگاری است.
3- آنتروپی
آنروپی اطلاعات می تواند به عنوان معیاری برای بدست آوردن میزان آشفتگی سطوح خاکستری پیکسل ها استفاده شود.
4- هیستوگرام
نمودار هیستوگرام میزان فراوانی پیکسل های یک تصویر را نشان می دهد.در این نمودار محور افقی بیانگر سطوح خاکستری که از0 تا 255 می باشد و محور عمودی فراوانی پیکسل ها را مشخص می کند. اگر چه با داشتن این نمودار نمی توان به تصویر اصلی رسید اما این نمودار حاوی اطلاعات مفیدی از قبیل میزان روشنایی و تیرگی تصویر،میزان کنتراست تصویر،مقادیر ماکزیمم و مینیمم تصویرو… می باشد که مورد استفاده مهاجمین قرار می گیرد.
متفاوت بودن هیستوگرام اصلی ورمز شده نشانگر عملکرد بهتر الگوریتم رمزنگاری است.حالت مطلوب هموار و یکنواخت بودن نمودار هیستوگرام تصویر رمزنگاری شده است که متفاوت با هیستوگرام تصویر اصلی باشد.یک نمودار هیستوگرام مسطح به معنی یکسان بودن فراوانی تمام پیکسل ها بوده و هیچ گونه اطلاعات مفیدی را به مهاجم نخواهد داد.
5- NPCR و UACI
برای آزمایش تأثیر تغییر یک پیکسل در تصویر اصلی بر روی تصویر رمزنگاری شده می توان از دو معیار NPCR و UACI استفاده کرد. NPCR را می توان بصورت نرخ تغییر پیکسل ها در تصویر رمزنگاری شده به ازای تغییر یک پیکسل در تصویر اصلی تعریف نمود.
6- PSNR
یک معیار ارزیابی PSNR می باشد که میزان اختلاف بین کیفیت تصویراصلی (f(x,y و تصویر رمزگشایی شده ی (g(x,y را نشان می دهد در اینجا منظور از نویز مجموع مربعات خطای بین تصویر اصلی و تصویر رمزنگاری شده است.هر قدر این معیار عدد بزرگ تری باشد به معنی اختلاف کمتر بین تصویر اصلی و رمزنگاری شده است و این به منزله ی کارایی روش رمزنگاری است.
شرح روش پیاده سازی شده
در این الگوریتم از دنباله های تولیدی بوسیله ی تابع آشوب لجستیک سه بعدی و عمل XOR استفاده می کنیم.در تابع لجستیک سه بعدی با اعمال شرایط اولیه و پارامترهای مربوط سه دنباله با اعداد تصادفی بین صفر و یک تولید می شود که با بهره گیری از آن ها رمزنگاری را انجام می دهیم.بلوک دیاگرام الگوریتم در شکل زیر نشان داده شده است.
تابع لجستیک سه بعدی بصورت زیر تعریف می شود و به ازای پارامترهای مشخص شده دنباله ی آشوبی تولید می کند:
جابه جایی سطری و ستونی
n عدد از دنباله ی تولیدی x را بر می داریم. اعداد تولیدی بین صفر و یک می باشند با رند کردن و ضرب اعداد در هزار،n عدد بین یک تا هزار بدست می آید.جابه جایی را با توجه به زوج یا فرد بودن این اعداد انجام می دهیم بدین صورت که به ترتیب اعداد را اعمال می کنیم اگر زوج بود ماتریس تصویر را یک شیفت ستونی به سمت راست و اگر فرد بود یک شیفت سطری به سمت پایین می دهیم.
عملیات XOR
در این قسمت با استفاده از عمل XOR مقادیر پیکسل ها را تغییر می دهیم.عمل XOR روی اعداد باینری انجام می گیرد بدین صورت که خروجی تنها زمانی برابر یک خواهد بود که فقط یکی از ورودی ها برابر یک باشد، در غیر این صورت خروجی برابر صفر است. ستون اول و دوم ماتریس تصویر را ثابت نگه می داریم.
ستون اول و سوم را XOR کرده و حاصل را در ستون سوم جایگذاری می کنیم.ستون سوم حاصل را با ستون پنجم XOR کرده و حاصل را در ستون پنجم جایگذاری می کنیم و … ستون دوم و چهارم را XOR کرده حاصل را درستون چهارم قرار می دهیم،ستون چهارم حاصل را با ستون ششم XOR کرده حاصل را در ستون ششم قرار می دهیم و … این عمل را تا ستون پایانی ادامه می دهیم.
بدین ترتیب تمامی درایه ها بجز ستون اول و دوم تغییر یافته اند. به تعداد درایه های ستون اول و دوم عدد از دنباله ی y بر می داریم. با رند کردن و ضرب اعداد در 255 ،اعداد بین یک و 256 بدست می آیند. این اعداد را با ستون اول و دوم XOR کرده و حاصل را در ستون اول و دوم جایگذاری می کنیم.
جابه جایی مکان پیکسل ها
ماتریس تصویر m*n را به بردار mn*1 تبدیل می کنیم.به تعداد درایه های این ماتریس عدد از دنباله ی z برمی داریم و بصورت برداری متناظر با بردار قبلی تشکیل می دهیم. درایه های بردار دوم را از کوچک به بزرگ مرتب می کنیم. براساس مکان جابه جایی درایه های این بردار، درایه های بردار اولی را جابه جا خواهیم کرد. برای مثال اگر در بردار دوم درایه ی 50 پس از مرتب سازی در مکان درایه ی 75 قرار گیرد،در بردار اول نیز درایه ی 50 را در مکان درایه ی 75 قرار می دهیم و به همین ترتیب این عمل برای تمامی درایه ها انجام می گیرد.
پس از جابه جایی بردار mn*1 اولی را به ماتریس m*n تبدیل می کنیم که در واقع همان تصویر رمزنگاری شده است.جدول شماره 3-6 چگونگی تعویض مکان را پس از مرتب سازی اعداد تولیدی تابع آشوب نشان می دهد برای مثال 0.04 که در ردیف 9 قرار دارد به عنوان کوچکترین عدد پس از مرتب سازی در ردیف 1 قرار داده می شود و شماره ی ردیف آن به ردیف یک منتقل می شود.
پروسه ی رمزگشایی بر عکس پروسه ی رمزنگاری است. برای رمزگشایی همان کلید های رمزنگاری مورد استفاده قرار می گیرد. در رمزگشایی،ابتدا جابه جایی مکان پیکسل ها،سپس عملیات XOR و در انتها جابه جایی سطری و ستونی بصورت برعکس الگوریتم رمزنگاری انجام می گیرند.
سورس کد رمزنگاری تصویر با تابع آشوب در متلب
این سورس کد همانطور که در شکل زیر دیده می شود شامل 13 فایل می باشد. که سه فایل Image_Encryption.m ، Image_Decryption.m و Evaluate.m فایل های اصلی و قابل اجرایی رمزنگاری تصویر با تابع آشوب در متلب هستند و 2 فایل مربوط به تصویر اولیه و کد شده می باشد و بقیه یعنی 8 فایل دیگر توابعی هستند که برای اجرا از داخل سه تابع اصلی فراخوانی می شوند.
قسمت هایی از سورس کد برنامه
clc clear close all [filename, pathname] = uigetfile({'*.jpg';'*.bmp'},'File Selector'); ss=strcat(pathname,filename); plainimage=imread(ss); plainimage = imresize(plainimage,[256 256]); if size(plainimage,3)==3 bin_im = rgb2gray(plainimage); else bin_im = plainimage; end plainimage=bin_im; subplot(2,2,1), imagesc(plainimage) % producing chaotic sequences tt=100000; x=zeros(tt,1); y=zeros(tt,1); z=zeros(1,tt); x(1)=0.2350; y(1)=0.3500; z(1)=0.7350; alfa=0.0125; beta=0.0157; gama=3.7700; for i=1:tt-1; x(i+1)=(gama.*x(i).*(1-x(i)))+(beta.*(y(i).^2).*x(i))+(alfa.*(z(i).^3)); end x1=x; x2=x1(1:225); for i=1:tt-1; y(i+1)=(gama.*y(i).*(1-y(i)))+(beta.*(z(i).^2).*y(i))+(alfa.*(x(i).^3)); end y1=y; y2=y1(1:256); for i=1:tt-1; z(i+1)=(gama.*z(i).*(1-z(i)))+(beta.*(x(i).^2).*z(i))+(alfa.*(y(i).^2)); end z1=z; z2=z1(1:65536);
تصاویر خروجی محصول
ویدئوی معرفی محصول
درباره سورس کد پیاده سازی رمزنگاری تصویر با تابع آشوب در متلب
پیاده سازی و کد رمزنگاری تصویر با استفاده از تابع آشوب لجستیک سه بعدی در متلب در نرم افزار Matlab 2014 نوشته شده و در نسخه های بالاتر نیز قابل اجرا می باشد. این فایل بصورت زیپ شده قابل دانلود می باشد. این محصول به صورت کامل در مورد رمزنگاری تصویر است و توسط کارشناسان پی استور بازنگری و تایید شده می باشد. این محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن ر ا خریداری فرمایید.
به محض خرید محصول لینک دانلود در دسترس خواهد بود. در صورت بروز هرگونه مشکل با واحد فروش پی استور تماس حاصل فرمایید.
مباحث مرتبط با رمزنگاری تصویر
تاریخ انتشار: | 11 تیر 1398 |
---|---|
تاریخ بروزرسانی: | 24 دی 1399 |
حجم فایل: | 0.1 کیلوبایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2014 و بالاتر |
تاکنون 336 نفر این محصول را تهیه کرده اند و 1 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 69,000 تومان
تاریخ انتشار: | 11 تیر 1398 |
---|---|
تاریخ بروزرسانی: | 24 دی 1399 |
حجم فایل: | 0.1 کیلوبایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2014 و بالاتر |
1 بازخورد (مشاهده نظرات)
قیمت: 69,000 تومان
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.