بخشی از مقاله
چکیده: در استگانوگرافی و یا نهان نگاری متن در متن به این منظورمورد استفاده قرار می گیرد که داده میزبان هـیچ نشـانه ی قابـل رویتـی از وجـود داده سری نهان نگاری شده در خود ندارد و بدین ترتیب امکان ارسال امن اطلاعات را میسـر مـی سـازد .از ایـن رو نحـوه رمـز نگـاری داده بـا توجـه بـه تغییراتی که در جزئیات ظاهری متن ایجاد می کند دارای اهمیت است .ولی آنچه در درجه دوم اهمیت قرار دارد مقـاوم سـازی انتقـال در برابـر حمـلات فراگیر به داده ارسالی و البته دست نیافتنی کردن داده اصلی در صورت کشف وجود رمز در داده میزبان از طرف مهاجمین است . جهت رمز نگـاری یـک متن می توان از روش های واتر مارکینگ در تصویر متن استفاده کرد و یا با شیفت دادن کلمات در فضای میانی موجـود در بـین آنهـا و یـا شـیفت دادن خط زمینه ، داده سری مورد نظر را در متن زمینه پنهان سازی کرد اما روشی که در این پروژه مـد نظـر قـرار گرفتـه اسـت اسـتفاده از ایجـاد تغییـر در جزئیات (feature coding) است.در این روش از کشیده کردن برخی از نقاط پیوسته بین حروف متصل بهم در کلمات استفاده میکنیم ، بـدین ترتیـب که ابتدا متن سری مورد نظر را به بایت های داده تبدیل کرده و سپس آنها را در قالب افزایش طول نواحی مماس با خط زمینـه در کلمـات کـه البتـه در مقیاس نا محسوس صورت میگیرد نهان نگاری می کنیم. واحدهای داده که قرار است بصورت نهان نگاری شده ارسال شـوند در بخـش هـای منفصـل از هم جایگذاری میشوند و بدین منوال در مرحله دیکد کردن نیز قابل دسترس خواهند بود .
کلمات کلیدی: استگانوگرافی، نهان نگاری متن در متن، رمز نگاری، کدینگ جزئیات، تصویر متن
-1مقدمه
استگانوگرافی از واژه ای یونانی به معنی پوشیده نویسی گرفته شده است اصطلاح استگانوگرافی بـه معنـای پنهـان کـردن اطلاعـات در بـین اطلاعات دیگر می باشد.[1] به عبارتی این اصطلاح بیانگرعلم پنهان کردن اطلاعات است. استگانوگرافی از دو واژه یونانی استگانوس بـه معنـی پوشـیده و گرافتوس به معنی نوشتن گرفته شده است. عکس این عمل آنالیزگر استگ نام دارد که به معنای استخراج اطلاعات است. توجه بـه ایـن نکتـه لازم اسـت که در حالی که هدف رمزنگاری، غیرقابل خواندن کردن اطلاعات است، هدف استگانوگرافی مخفی کردن ایـن اطلاعـات مـی باشـد.[1]اسـتگانوگرافی بـه صورت تکنیک های ساده از صدها سال پیش مورد استفاده بوده است اما با افزایش استفاده از فایل هایی با فرمت الکترونیکی، تکنیک های جدیدی بـرای مخفی سازی اطلاعات امکان پذیر شد. . ساده ترین تکنیک استگانوگرافی که در گذشته مورد استفاده قرار می گرفته به این شـکل بـوده اسـت کـه مـتن مورد نظر را روی کاغذی توسط سرکه می نوشتند و بعد از خشک شدن، آن را به طرف مقابل می دادند تا با حـرارت دادن ورقـه، مـتن نـامرئی را نمایـان کند. این شاید یکی ازنخستین نمونه های استگانوگرافی باشد. اما امروزه با ظهور سیستم های کامپیوتری، این تکنیک نیز به تبع آن پیشرفت کرده و مـی توان اطلاعات زیادی را در لابلای تصاویر و صداها قرار داد. حال به بیان تفاوت میان دو مفهوم رمز نگاری و نهاننگاری (استگانوگرافی) میپردازیم.تفـاوت اصلی رمزنگاری و پنهان نگاری (استگانوگرافی) آن است که در رمز نگاری هدف اختفاء محتویات پیام است و نه به طـور کلـی وجـود پیـام، امـا در نهـان نگاری هدف مخفی کردن هر گونه نشانهای از وجود پیام است.[1] در مواردی که تبادل اطلاعات رمز شده مشکل آفرین است باید وجـود ارتبـاط پنهـان گردد. به عنوان مثال اگر شخصی به متن رمزنگاری شدهای دسترسی پیدا کند، به هر حال متوجه میشود که این متن حاوی پیام رمزی میباشد. امـا در پنهان نگاری شخص سوم ابدا از وجود پیام مخفی در متن اطلاعی حاصل نمیکند. در موارد حساس ابتدا مـتن را رمزنگـاری کـرده، آنگـاه آن را در مـتن دیگری پنهان نگاری میکنند. استگاگوگرافی و یا نهان نگاری متن در متن نیز به این منظورمورد استفاده قرار می گیرد کـه داده میزبـان هـیچ نشـانهی قابل رویتی از وجود داده سری نهان نگاری شده در خود ندارد و بدین ترتیب امکان ارسال امن اطلاعات را میسر می سـازد .از ایـن رو نحـوه رمـز نگـاری داده با توجه به تغییراتی که در جزئیات ظاهری متن ایجاد می کند دارای اهمیت است .ولی آنچه در درجه دوم اهمیت قرار دارد مقاوم سـازی انتقـال در برابر حملات فراگیر به داده ارسالی و البته دست نیافتنی کردن داده اصلی در صورت کشف وجود رمز در داده میزبان از طرف مهـاجمین اسـت.[1] روش های پنهان نگاری در تصویر از الگوریتم جاسازی و الگوریتم استخراج بیتها تشکیل شدهاند. به تصویر مـورد اسـتفاده بـرای پنهـان نگـاری پوشـانه و بـه تصویری که در اثر قرار دادن پیام به وسیله الگوریتم جاسازی به دست میآید تصویر میزبان یا گنجانه میگوییم. الگوریتمهـای پنهـان نگـاری بـه صـورت عمومی از افزونگی در فضای مکانی یا افزونگی در فضای تبدیل استفاده میکنند. در هر کدام از این فضاها به شیوههای گوناگونی میتوان دادهها را پنهـان کرد که یکی از سادهترین روشها، استفاده از بیتهای کم ارزش فضای مورد نظر است.[2] در پنهان نگاری نیز همانند رمز نگاری فـرض بـر آن اسـت کـه
الگوریتمهای بکار رفته در پنهان نگاری برای همه آشکار است. امنیت در این روشها بر پایه پنهان بودن کلید تعریف میگردد به طـوری کـه نتـوان بـدون داشتن کلید هیچ اطلاعی از وجود پیام پنهان کسب کرد. [2]
-2 تشریح تکنیکهای نهاننگاری
فرمول کلی برای تابع نهاننگاری چنین است:
داده میزبان+داده رمز شده+الگوریتم نهاننگاری=داده مورد انتقال
شکل 1-1شماتیک یک سیستم انتقال داده نهاننگاری شده
1-2 روشهای نهاننگاری در متن:
1-2-1 جابجایی خط زمینه :(Line-Shift Coding)
در این روش خطوط متن در راستای عمودی کمی تغییر مکان می دهند تا یک شکل منحصر به فردی را بسازند . رمز کردن و رمز گشایی کردن آن معمولاً توسط بررسی عکسِ متن انجام می شود . بوسیله تغییر مکان دومین خط هر صفحه به میزان یک سیصدم اینچ به بالا یا پایین ترکیب خوبی ایجاد شد که بعد از 20 بار کپی گرفتن از متن همچنان خواص خود را حفظ می کرد.اما این روش خواننده می تواند با استفاده از ابزار های تشخیص فاصله ببیند،یا اگر قسمتی از متن را کپی کند اطلاعات از دست می رود. به هر حال این روش برای متن هایی چاپی خوب است زیرا برای تغییر آن متن باید scan بشود، دوباره خطوطش به جای دیگر انتقال یابد و دوباره چاپ شود.[2]
1-2-2جابجایی حد فاصل بین کلمات (word-shift-coding)
در این روش رمزبوسیله جابجایی افقی در بعضی کلمات به نحوی که از حالت طبیعی خارج نشود ذخیره می شود . این روش را هم می توان در فایـل ِ حاوی متن اعمال کرد و هم در تصویر آن . برای اعمال این روش تنها متنی قابل قبول است که کلمات آن منظم باشد ، یعنی یا به سمت چپ ، راست یـا وسط متمایل باشد. اما word-shift coding با دو روش قابل دیدن و شناسایی است. اگر شخصی از الگوریتم فاصله ها اطلاع داشته باشـد مـی توانـد متن فعلی را با الگوریتم مقایسه کند و با استفاده از اختلاف ها اطلاعات مخفی شده را پیدا کند.روش دوم بررسی نقطه به نقطـه عکـس ِ مـتن اسـت تـا فاصله های تغییر یافته مشخص شود. این روش بسیار وقت گیر است و امکان پیدا شدن اطلاع مخفی شده در آن بسیار زیاد است.[2]
1-2-3 کدینگ جزئیات :(Feature Coding)
روش سومی که برای این کار پیشنهاد شده است Feature Codingاست که در عکس متن یا فایل ِ فرمـت دار ِ آن اعمـال مـی شـود. در ایـن روش بعضی از خواص متن با توجه به کلمه کد تغییر می کند . برای مثال ممکن است با توجه به کلمه کد و بیت هایی که می خواهند در متن جاسازی شـوند حروف آخر بعضی از خط ها که ا، ب یا ... هستند کمی بالا یا پایین می رود یا طول آن را زیاد یا کم می کنند . با این روش مـتن اصـلی را مـی تـوان بـا استفاده از عکس ِ متن پوشاننده بدون متن جاسازی شده یا با دانستن الگوریتم جاسازی پیدا کرد. در این روش به خاطر وجود مکان های زیـاد در مـتن برای تغییر یافتن می توان اطلاعات زیادی را جاسازی کرد در حالی که اصلا از نظر خواننده به آنها توجه نمـی شـود . بـرای خنثـی کـردن ایـن روش بـه راحتی می توان تمامی حروف را در یک فاصله ثابت با بقیه قرار داد . گاهی اوقات این روش با Word-Shifting ترکیـب مـی شـود تـا الگـوریتم هـای پیچیده تری را بسازد.[2]
2-2 پنهان شکنی
پنهان شکنی هنر کشف حضور اطﻻعات پنهان است. روشهای پنهان نگاری در صورتی امن هستند که تصویر میزبان یا گنجانه دارای نشانههای قابل کشف نباشد. به بیان دیگر، خواص آماری تصویر میزبان یا گنجانه باید همانند خواص آماری پوشانه باشد. توانایی کشف پیام در تصویر به طول پیام پنهان بستگی دارد. واضح است که هرچه مقدار اطلاعاتی که در یک تصویر قرار میدهیم کمتر باشد امکان کمتری هست که نشانههای قابل کشف به وجود آید.
2-3 روش انتخابی
روشی که مورد بررسی و پیاده سازی قرار گرفته است گونهای کدینگ جزئیات متن است که پیاده سازی این الگوریتم بوسیله نرم افزار متلب صورت گرفته است.