من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

استگانوگرافی با متلب

استگانوگرافی با متلب
استگانوگرافی با متلب

استگانوگرافی با متلب

استگانوگرافی یا پنهان نگاری یکی از پر کاربردترین بخش‌های مرتبط به رمزنگاری است. در این نوشته روش انجام استگانوگرافی با متلب توسط روش LSB را بررسی خواهیم کرد. کلمه‌ی اختصاری LSB از واژه‌ی Least Significant Bit گرفته شده است.

 

استگانوگرافی با متلب

استگانوگرافی چیست‌؟

مفهوم Steganography از دو لغت زبان بین المللی یونانی‌:

  1. استگانوس. (پوشاندن)
  2. گرافتوس. (نوشتن )

گرفته شده است‌. مخفی کردن داده یا فایلی در یک فایل دیگر، به روشی که فقط افرادی که از آن موضوع آگاه هستند با ابزار لازم بتوانند کار بکنند و آن‌را واکاوی کنند. استگانوگرافی را گاهی با Watermarking می‌شناسند.

 

انواع استگانوگرافی

انواع مختلف استگانوگرافی به شرح زیر است:

  • استگانوگرافی در متن.
  • استگانوگرافی در تصاویر.
  • استگانوگرافی در صوت.
  • استگانوگرافی در ویدئو.

 

روش‌های استگانوگرافی

روش‌های مختلف استگانوگرافی به شرح زیر است:

  • روش open space methods.
  • روش syntactic methods.
  • روش semantic methods.

 

استگانوگرافی با متلب

برای انجام عملیات Steganography با متلب از کد زیر استفاده کنید:

clear all;
clc;
input = imread('img (1).jpg');
input=rgb2gray(input); 
input=imresize(input, [512 512]); 
message='Amir Shokri';
len = length(message) * 8;
ascii_value = uint8(message);
bin_message = transpose(dec2bin(ascii_value, 8));
bin_message = bin_message(:);
N = length(bin_message);
bin_num_message=str2num(bin_message);
output = input;
height = size(input, 1); 
width = size(input, 2);
embed_counter = 1;
for i = 1 : height 
    for j = 1 : width
        if(embed_counter <= len)
            LSB = mod(double(input(i, j)), 2);
            temp = double(xor(LSB, bin_num_message(embed_counter)));
            output(i, j) = input(i, j)+temp;
            embed_counter = embed_counter+1; 
        end
          
    end
end

sum1 = 0;
sum2 = 0;
for i =1 : 512
    for j = 1 : 512
        sum1 = sum1 + double(output(i, j));
        sum2 = sum2 + double(output(i, j));
    end
end
sum1 / (512*512)
sum2 / (512*512)

برای دریافت فایل این کد روی این لینک کلیک کنید.

توضیحات

  • تبدیل تصویر ورودی به خاکستری.
  • تغییر اندازه ی تصویر یا Resize.
  • تبدیل متن مورد نظر به باینری.
  • ساخت ابتدایی تصویر خروجی از تصویر ورودی.
  • یک حلقه از موارد زیر می‌سازیم:
    •   تبدیل پیکسل عکس به باینری.
    •   بیت بعدی برای جاسازی پیام انتخاب می‌شود.
    •   متغیر temp ساخته می‌شود.
    •   اگر بیت پیام و LSB یکسان بود مقدار temp صفر و در غیر اینصورت یک می‌شود.
    •   در آخر با کمک XOR بین پیکسل‌های پیام و LSB  متغیر temp تنظیم می‌شود.
  • تصویر خروجی به روزرسانی می‌شود.
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]