تبدیلات مقایسه شده شامل تبدیل گسسته کسینوسی، موجک، هادامارد، سینوسی گسسته هستند. روشهای دیگر نهان نگاری بر مبنای فشردهسازی پیشنهاد شدهاند. در این روشها بلوکهایی از تصویر که حاوی الگوهای تکراری هستند، انتخاب میشوند. گر چه این روشها در برابر JPEG مقاوماند ولی بیشتر برای تصاویری که حاوی مناظر و اجسام طبیعی هستند، مناسب میباشند.
نهان نگاری به روش طیف گسترده از یک مفهوم مخابرات طیف گسترده استفاده میکند که در آن یک سیگنال باند باریک در داخل یک سیگنال شبه نویز منتقل میشود. توانایی این روش در تحمل تداخلات ناخواسته بسیار بالاست. این روش همچنین دارای مزایای امنیت حاصل از رمزنگاری است که بر مبنای کلیدهای استفاده شده در تولید رشتههای شبه تصادفی متعامد مانند رشتههای گلد یا کاسامی حاصل میشود.
۱-۵ نهان نگاری در رسانههای مختلف
با بهره گرفتن از قوه درک انسان میتوان دادهها را در فایل های مختلف پنهان کرد بدون اینکه بیننده یا شنونده متوجه آن شود. برای مثال، پوشش فرکانسی فایل های صوتی پدیدهای است که زمانی رخ میدهد که دو صوت با فرکانسهای مشابه و هم زمان پخش میشوند. شنونده تنها صوت بلند تر را میشوند و صوت دیگر پوشش داده میشود. به طور مشابه، پوشش زمانی، مواقعی رخ میدهد که یک سیگنال ضعیف بلافاصله بعد یا قبل از یک سیگنال قوی تر و در زمانی که شنونده نیاز به صرف زمان برای تنظیم کردن سیستم شنوایی خود جهت شنیدن سیگنال جدید دارد ظاهر میشود. این موارد امکانی برای ذخیره کردن اطلاعات به طور پنهان در یک فایل را فراهم میآورند.
در این بخش تعدادی از روشهای پنهان کردن اطلاعات در فایل های گوناگون و نرمافزارهای موجود برای آنها معرفی و شرح داده میشود (جهت مطالعه بیشتر به مرجع شماره [۱] مراجعه شود).
۱-۵-۱ نهان نگاری در متن
برای ادغام اطلاعات در یک فایل متنی میتوان به سادگی بعضی خصوصیات آن را تغییر داد. این خصوصیات میتواند قالببندی متن یا خصوصیات کاراکتر ها باشد. ممکن است به نظر برسد تغییر این خصوصیات برای خواننده فایل واضح باشد. ولی کلید این مشکل این است که سند متنی را طوری تغییر دهیم که با چشم انسان قابل تشخیص نباشد اما رایانه بتواند آن را کشف و رمزگشایی کند. شکل ۱-۳ اصول عمومی برای این کار را نشان میدهد. یک رمز کننده و یک رمزگشا برای این نوع رمزنگاری وجود دارند و همچنین یک کتاب رمز[۱۳] نیاز است که به رمز کننده بگوید کدام بخشهای سند باید تغییر داده شود.
شکل ۱-۳. اصول عمومی جهت نهان نگاری در متن
روشهای مختلف برای این نوع رمزنگاری به قرار زیر است:
پروتکل تغییر مکان خطوط
در این روش، خطوط مختلف متن را با توجه به کتاب رمز به نسبت بسیار کوچکی (مثلاً ۳۰۰/۱ اینچ) بالا یا پایین میبرند. در این صورت انتقال خطوط با چشم انسان قابل شناسایی نیست اما وقتی رایانه فاصله بین هر دو خط را اندازه بگیرد قابل تشخیص است. با انتقال خط به بالا یا پایین میتوان بیت صفر یا یک را نمایش داد. در این صورت وقتی کل سند را کنار هم قرار دهیم، میتوانیم تعداد زیادی بیت را در آن ذخیره کنیم که همان پیام پنهان شده است.
پروتکل تغییر مکان لغات
این پروتکل بر اصول پروتکل انتقال خطوط مبتنی است با این تفاوت که به جای انتقال خطوط به بالا و پایین، به رمز لغات به چپ و راست انتقال داده میشود. در این پروتکل کتاب رمز به رمز کننده میگوید کدام لغات و در کدام جهت باید انتقال داده شوند. رمزگشایی نیز با اندازه گرفتن فاصله بین لغات انجام میشود و یک انتقال به سمت چپ میتواند نمایشگر بیت صفر و انتقال به سمت راست میتواند نمایشگر بیت یک باشد. بدون داشتن متن اصلی و مقایسه با آن، معمولاً خواننده متوجه انتقال کلمات به چپ و راست نمیشود.
پروتکل کد کردن با توجه به ویژگیها
این پروتکل یک تفاوت اصلی با پروتکلهای قبل دارد و آن این است که در این پروتکل سند از یک تجزیه کننده عبور میکند و تجزیه کننده کل سند را بررسی میکند و بصورت خودکار یک کتاب رمز مخصوص آن سند تولید میکند و خصوصیاتی را که فکر میکند از طریق آنها میتوان اطلاعات را ذخیره کرد در فایلی نگهداری میکند. این خصوصیات میتواند شامل طول برخی کاراکترها، نقاط کاراکترها (مثل i) و طول افقی بعضی از آنها باشد. انتقال خط و لغت هم میتوانند با این پروتکل ادغام شوند تا بتوانند دادههای بیشتری را پنهان کنند.
دستکاری در فضای سفید
یک راه پنهان کردن اطلاعات استفاده از فضای سفید است. اگر از این روش درست استفاده شود، فضای سفید طوری تغییر داده میشود که بیتها میتوانند توسط آن ذخیره شوند؛ یعنی میزان مشخصی فضای سفید به آخر خطوط اضافه میشود. این میزان به یک عدد مشخص بیتی نسبت داده میشد. با توجه به این واقعیت که تقریباً تمام نرمافزارهای ویرایشگر متن فضای خالی انتهای خط را نادیده میگیرند، بیننده معمولی متوجه تغییرات نمیشود. در یک متن طولانی این باعث ایجاد فضای کافی برای ذخیرهسازی پیام میشود. یکی از نرمافزارهای رایگان که از این روش استفاده میکند اسنو[۱۴] نام دارد.
استفاده از محتوای متن
راه دیگر پنهان کردن اطلاعات این است که آن را در یک متن غیر محسوس ذخیره کنیم. دستور زبان در متن میتواند برای ذخیره اطلاعات استفاده شود. Texthideیکی از برنامههایی است که از این روش برای مخفی سازی پیامها استفاده میکند.
برای انجام این نوع از پنهان نگاری Texthideاز ویژگیهای زیر استفاده:
استفاده از جملات رایج در سیاست، بیزنس، اخبار، تیتر روزنامهها و .. به عنوان جمله مبدأ
رمز کردن جمله مورد نظر با بهره گرفتن از روشهایی مانند راس [۱۵]
استفاده از جمله رمز شده و همچنین یک کلید ۴۸ بیتی برای کنترل تغییر ترتیب لغات در دیکشنری توافق شده بین طرفین (در این حالت دیکشنری میتواند حالت گوناگون داشته باشد که کشف آن بسیار دشوار و زمان بر است)
جابجایی ترتیب لغات در جمله مبدأ با بهره گرفتن از دیکشنری تغییر دادهشده
روش دیگر برای استفاده مستقیم از متن این است که لغاتی را به صورت تصادفی برای رمز کردن اطلاعات استفاده کنیم. به لغات مختلف میتوان ارزشهای مختلفی نسبت داد. برخی از برنامه ها از این روش استفاده میکنند و ایمیل اسپم[۱۶] تولید میکند که حاوی یک پیام مخفی است. با توجه به اینکه در ایمیلهای اسپم معمولاً دستور زبان رعایت نمیشود، معمولاً بسیار سادهتر میتوان پیامی را بصورت نامحسوس ذخیره کرد. این نوع پنهان نگاری امروزه در ایمیلها، تبلیغات روزنامهها، صفحات وب و مکالمات روزمره استفاده میشود.
XML
XML به طور گستردهای برای مبادله دادهها استفاده میشود. این قالب امکانات زیادی برای مخفی کردن اطلاعات فراهم میکند. یک روش مخفی کردن اطلاعات در XML این است که از تگ[۱۷]های مختلف استفاده کنیم؛ مثلاً هر دو تگ زیر برای عکس قابل قبول هستند و در عین حال میتوانند نمایشگر بیتهای صفر و یک باشند:
Stego key:
<img></img> → ۰
<img/> → ۱
روشهای گوناگون دیگری برای ذخیره اطلاعات در چنین فایل هایی وجود دارد که در مرجع [۱] بررسی شدهاند.
۱-۵-۲ پنهان نگاری در عکس
مخفی کردن در بیت کم ارزش
این روش سادهترین راه پنهان سازی اطلاعات در عکس است و در عین حال بسیار مفید است. این روش با بهره گرفتن از بیتهای کم ارزش عکس برای مخفی کردن بیتهای پر ارزش عکس دیگر یا هر نوع اطلاع دیگری استفاده میشود. برای مثال در یک عکس با فرمت JPEG مراحل زیر انجام میشود:
ابتدا عکس اصلی و عکسی که قرار است پنهان شود را بار گزاری میکنیم.
سپس تعداد بیتهایی که میخواهیم عکس در آنها ذخیره شود را انتخاب میکنیم. هرچه تعداد بیشتری بیت از عکس میزبان را انتخاب کنیم، عکس میزبان بیشتر خراب میشود ولی باعث افزایش وضوح عکس پنهانشده میشود.
حالا باید با ترکیب پیکسلهای دو عکس، یک عکس جدید بسازیم. برای مثال فرض کنید که ۴ بیت از عکس میزبان را برای مخفی کردن اطلاعات انتخاب کنیم. به طور مثال یک پیکسل اینطور تغییر مییابد:
پیکسل میزبان: ۱۰۱۱۰۰۰۱
پیکسل پیام: ۰۰۱۱۱۱۱۱
پیکسل عکس تولید شده: ۱۰۱۱۰۰۱۱
برای بازسازی عکس مخفی شده تنها کافی است بدانیم چند بیت برای ذخیره کردن آن استفاده شده است. با توجه به آن کل عکس را بررسی میکنیم و بیتهای کم ارزش آن را که برای ذخیرهسازی پیام استفاده شدهاند بر میداریم و به جای بیتهای کم ارزش آن هم صفر قرار میدهیم؛ مثلاً:
پیکسل عکس تولید شده: ۱۰۱۱۰۰۱۱
پیکسل عکس جدید: ۰۰۱۱۰۰۰۰
شکل ۱-۴. مقایسه استفاده از تعداد بیتهای گوناگون در نهان نگاری به روش بیت کم ارزش
شکل ۱-۴ چگونگی تأثیر این روش بر عکسها را با انتخاب کردن تعداد بیتهای مختلف برای پنهان سازی نشان میدهد.
تبدیل کسینوسی مستقیم[۱۸]
یک راه مخفی کردن اطلاعات استفاده از تبدیل کسینوسی مستقیم است. این الگوریتم در فشردهسازی عکسها به فرمت JPEG استفاده میشود. روش اجرای الگوریتم به شرح زیر است:
عکس را به مربعهای ۸x8 پیکسل تقسیم کنید.
از اعداد هر مربع تبدیل کسینوسی مستقیم بگیرید که به عنوان خروجی ۶۴ ضریب را برمیگرداند.