سورس کد پیاده سازی رمزنگاری تصویر با تابع آشوب در متلب را در ادامه برای شما آماده کردهایم. رمزنگاری تصویر یکی از روشهای تأمین امنیت اطلاعات است. رمزنگاری تصویر تلاش میکند تا تصویر اصلی رابه تصویری که به سختی قابل تشخیص باشد تبدیل کند به عبارت دیگرهیچ کس نمیتواند تصویر را بدون در دست داشتن کلید شناسایی کند. رمزنگاری تصویر میتواند کاربردهای مختلفی درزمینههای تلویزیون، آلبوم عکس شخصی آنلاین، سیستمهای تصویری پزشکی، ارتباطات تصویری نظامی و ویدیو کنفرانسهای محرمانه داشته باشد.
رمزنگاری تصویر با تابع آشوب لجستیک سه بعدی
به طور کلی الگوریتمهای رمزنگاری تصویر به سه دسته الگوریتمهای بر پایهی تغییر موقعیت، الگوریتمهای بر پایه ی تغییرمقدار و الگوریتمهای بر پایهی تبدیل بینایی تقسیم میشوند. در این سورس کد رمزنگاری و رمزگشایی تصویر با تابع آشوب لجستیک سه بعدی در متلب پیاده سازی شده است. در انتهای این مجموعه شما فایل مربوط به پیاده سازی رمزنگاری تصویر با تابع آشوب در متلب را خواهید داشت و میتوانید از آن برای رمزنگاری، رمزگشایی و ارزیابی روش استفاده کنید. در ادامه به بررسی این روش میپردازیم.
معرفی آشوب
به طور کلی میتوان گفت که کلید نظریهی آشوب این است که در هر بی نظمی، نظمی نهفته است.به این معنی که نباید نظم را تنها در یک مقیاس کوچک جستجو کرد. پدیدهای که در مقیاس محلی کاملا تصادفی و غیرقابل پیش بینی به نظر میرسد چه بسا در مقیاس بزرگتر کاملا منظم و قابل پیش بینی باشد. ظاهر بی نظم و غیرقابل پیش بینی توابع آشوب و همچنین حساسیت بالای این توابع به شرایط اولیه و نیز سرعت بالای الگوریتمهای آشوبی نسبت به سایر الگوریتمها موجب کاربرد این توابع در رمزنگاری تصویر شده است.
توابع زیادی برای آشوب معرفی شدهاند از معروفترین آنها میتوان به تابع لورنز Lorenz، تابع راسلر Rossler، تابع لجستیک Logistic، تابع هنون Henon، تابع تنت Tent، تابع بیکر baker، تابع آرنولد Arnold و … اشاره کرد برای درک بیشتر به داکیومنت این پیاده سازی که یکی از محصولات ویژه سایت میباشد مراجعه فرمایید. داکیومنت رمزنگاری تصویر با استفاده از تابع آشوب لجستیک سه بعدی در واقع مکمل این پیاده سازی میباشد و این داکیومنت متن پایانامه ارائه شده است.
داکیومنت رمزنگاری تصویر با استفاده از تابع آشوب لجستیک سه بعدی
در این تحقیق به معرفی رمزنگاری و مفاهیم کلی آن پرداخته شده است سپس رمزنگاری تصویر و روشهای آن مانند آشوب و همچنین روشهای ارزیابی رمزنگاری تصویر مورد بررسی قرار گرفتهاند. در پایان یک روش رمزنگاری تصویر ساده بر مبنای تابع آشوب لجستیک سه بعدی ارائه و ارزیابی گردیده است.
الگوریتم رمزنگاری باید به تغییرات جزیی در کلید حساس باشد.به طوری که با کوچکترین تغییر در کلید نتوان با معکوس کردن عمل رمزنگاری به تصویر اصلی دست یافت. هر چه میزان این حساسیت بالا باشد نشان دهندهی عملکرد بهتر الگوریتم رمزنگاری است. در یک الگوریتم رمزنگاری هرچه میزان فضای کلید بزرگ باشد نشانگرعملکرد بهتر الگوریتم و مقاومت بهترآن در برابر حملات است. فضای کلید در واقع به مجموع تعداد کلیدهای مختلفی گفته میشود که در رمزنگاری مورد استفاده قرار میگیرد.
برای مثال اگر کلیدهای مورد استفاده در الگوریتم هشت بیتی باشند، فضای کلید شامل ۲۸ حالت ممکن برای فضای کلید خواهد بود.
۲- ضریب همبستگی
در یک تصویرمعمولی هر پیکسل شباهت زیادی با پیکسلهای مجاورش دارد. در تمام الگوریتمهای رمزنگاری بدنبال روشی هستیم که میزان همبستگی هر پیکسل با پیکسلهای مجاورش به کمترین میزان خود برسد. کاهش میزان همبستگی نشانگر بهبود عملکرد سیستم رمزنگاری است.
۳- آنتروپی
آنروپی اطلاعات میتواند به عنوان معیاری برای بدست آوردن میزان آشفتگی سطوح خاکستری پیکسلها استفاده شود.
۴- هیستوگرام
نمودار هیستوگرام میزان فراوانی پیکسلهای یک تصویر را نشان میدهد.در این نمودار محور افقی بیانگر سطوح خاکستری که از۰ تا ۲۵۵ میباشد و محور عمودی فراوانی پیکسلها را مشخص میکند. اگر چه با داشتن این نمودار نمیتوان به تصویر اصلی رسید اما این نمودار حاوی اطلاعات مفیدی از قبیل میزان روشنایی و تیرگی تصویر،میزان کنتراست تصویر،مقادیر ماکزیمم و مینیمم تصویرو… میباشد که مورد استفاده مهاجمین قرار میگیرد.
متفاوت بودن هیستوگرام اصلی ورمز شده نشانگر عملکرد بهتر الگوریتم رمزنگاری است.حالت مطلوب هموار و یکنواخت بودن نمودار هیستوگرام تصویر رمزنگاری شده است که متفاوت با هیستوگرام تصویر اصلی باشد.یک نمودار هیستوگرام مسطح به معنی یکسان بودن فراوانی تمام پیکسلها بوده و هیچ گونه اطلاعات مفیدی را به مهاجم نخواهد داد.
۵- NPCR و UACI
برای آزمایش تأثیر تغییر یک پیکسل در تصویر اصلی بر روی تصویر رمزنگاری شده میتوان از دو معیار NPCR و UACI استفاده کرد. NPCR را میتوان بصورت نرخ تغییر پیکسلها در تصویر رمزنگاری شده به ازای تغییر یک پیکسل در تصویر اصلی تعریف نمود.
۶- PSNR
یک معیار ارزیابی PSNR میباشد که میزان اختلاف بین کیفیت تصویراصلی (f(x,y و تصویر رمزگشایی شدهی (g(x,y را نشان میدهد در اینجا منظور از نویز مجموع مربعات خطای بین تصویر اصلی و تصویر رمزنگاری شده است. هر قدر این معیار عدد بزرگتری باشد به معنی اختلاف کمتر بین تصویر اصلی و رمزنگاری شده است و این به منزلهی کارایی روش رمزنگاری است.
شرح روش پیاده سازی شده
در این الگوریتم از دنبالههای تولیدی بوسیلهی تابع آشوب لجستیک سه بعدی و عمل XOR استفاده میکنیم. در تابع لجستیک سه بعدی با اعمال شرایط اولیه و پارامترهای مربوط سه دنباله با اعداد تصادفی بین صفر و یک تولید میشود که با بهره گیری از آنها رمزنگاری را انجام میدهیم.بلوک دیاگرام الگوریتم در شکل زیر نشان داده شده است.
تابع لجستیک سه بعدی بصورت زیر تعریف میشود و به ازای پارامترهای مشخص شده دنبالهی آشوبی تولید میکند:
جابه جایی سطری و ستونی
n عدد از دنبالهی تولیدی x را بر میداریم. اعداد تولیدی بین صفر و یک میباشند با رند کردن و ضرب اعداد در هزار، n عدد بین یک تا هزار بدست میآید.جابه جایی را با توجه به زوج یا فرد بودن این اعداد انجام میدهیم بدین صورت که به ترتیب اعداد را اعمال میکنیم اگر زوج بود ماتریس تصویر را یک شیفت ستونی به سمت راست و اگر فرد بود یک شیفت سطری به سمت پایین میدهیم.
عملیات XOR
در این قسمت با استفاده از عمل XOR مقادیر پیکسلها را تغییر میدهیم.عمل XOR روی اعداد باینری انجام میگیرد بدین صورت که خروجی تنها زمانی برابر یک خواهد بود که فقط یکی از ورودیها برابر یک باشد، در غیر این صورت خروجی برابر صفر است. ستون اول و دوم ماتریس تصویر را ثابت نگه میداریم.
ستون اول و سوم را XOR کرده و حاصل را در ستون سوم جایگذاری میکنیم.ستون سوم حاصل را با ستون پنجم XOR کرده و حاصل را در ستون پنجم جایگذاری میکنیم و … ستون دوم و چهارم را XOR کرده حاصل را درستون چهارم قرار میدهیم، ستون چهارم حاصل را با ستون ششم XOR کرده حاصل را در ستون ششم قرار میدهیم و … این عمل را تا ستون پایانی ادامه میدهیم.
بدین ترتیب تمامی درایهها بجز ستون اول و دوم تغییر یافتهاند. به تعداد درایههای ستون اول و دوم عدد از دنبالهی y بر میداریم. با رند کردن و ضرب اعداد در ۲۵۵ ،اعداد بین یک و ۲۵۶ بدست میآیند. این اعداد را با ستون اول و دوم XOR کرده و حاصل را در ستون اول و دوم جایگذاری میکنیم.
جابه جایی مکان پیکسلها
ماتریس تصویر m*n را به بردار mn*1 تبدیل میکنیم.به تعداد درایههای این ماتریس عدد از دنبالهی z برمیداریم و بصورت برداری متناظر با بردار قبلی تشکیل میدهیم. درایههای بردار دوم را از کوچک به بزرگ مرتب میکنیم. براساس مکان جابه جایی درایههای این بردار، درایههای بردار اولی را جابهجا خواهیم کرد. برای مثال اگر در بردار دوم درایهی ۵۰ پس از مرتب سازی در مکان درایهی ۷۵ قرار گیرد، در بردار اول نیز درایهی ۵۰ را در مکان درایهی ۷۵ قرار میدهیم و به همین ترتیب این عمل برای تمامی درایهها انجام میگیرد.
پس از جابه جایی بردار mn*1 اولی را به ماتریس m*n تبدیل میکنیم که در واقع همان تصویر رمزنگاری شده است.جدول شماره ۳-۶ چگونگی تعویض مکان را پس از مرتب سازی اعداد تولیدی تابع آشوب نشان میدهد برای مثال ۰.۰۴ که در ردیف ۹ قرار دارد به عنوان کوچکترین عدد پس از مرتب سازی در ردیف ۱ قرار داده میشود و شمارهی ردیف آن به ردیف یک منتقل میشود.
پروسهی رمزگشایی بر عکس پروسهی رمزنگاری است. برای رمزگشایی همان کلیدهای رمزنگاری مورد استفاده قرار میگیرد. در رمزگشایی، ابتدا جابه جایی مکان پیکسلها،سپس عملیات XOR و در انتها جابه جایی سطری و ستونی بصورت برعکس الگوریتم رمزنگاری انجام میگیرند.
سورس کد رمزنگاری تصویر با تابع آشوب در متلب
این سورس کد همانطور که در شکل زیر دیده میشود شامل ۱۳ فایل میباشد. که سه فایل Image_Encryption.m ، Image_Decryption.m و Evaluate.m فایلهای اصلی و قابل اجرایی رمزنگاری تصویر با تابع آشوب در متلب هستند و ۲ فایل مربوط به تصویر اولیه و کد شده میباشد و بقیه یعنی ۸ فایل دیگر توابعی هستند که برای اجرا از داخل سه تابع اصلی فراخوانی میشوند.
قسمتهایی از سورس کد برنامه
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 نوشته شده و در نسخههای بالاتر نیز قابل اجرا میباشد. این فایل بصورت زیپ شده قابل دانلود میباشد. این اثر به صورت کامل در مورد رمزنگاری تصویر است و توسط کارشناسان پی استور بازنگری و تایید شده میباشد. این اثر دارای نشان تضمین کیفیت پی استور میباشد. برای دانلود اثر مذکور آن ر ا خریداری فرمایید. به محض خرید فایل لینک دانلود در دسترس خواهد بود. در صورت بروز هرگونه مشکل با واحد فروش پی استور تماس حاصل فرمایید.
متشکل از اساتید و فارغ التحصیلان رشتههای فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
مشخصات تکمیلی سورس کد
نام اثر:
پیاده سازی رمزنگاری تصویر با تابع آشوب در متلب – رمزنگاری تصویر با تابع آشوب لجستیک سه بعدی
نوع اثر:
سورس کد
برنامهنویس:
تیم برنامهنویسی پیاستور
زبان برنامه نویسی:
MATLAB
ویژگی:
قابلیت دانلود و ویرایش
راهنمای خرید و ثبت سفارش
اگر در مورد این اثر یا نحوه تهیه آن سوالی دارید؟
با شماره تلفن واحد مخاطبین 44225175 (پیش شماره 041) تماس بگیرید. – تمام ساعات اداری
با ما مکاتبه ایمیلی داشته باشید (این لینک). – تمام ساعات
نظرات
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.