رمزنگاری ( هنر پنهان سازی داده یا اطلاعات ) ، حیطه ای از امنیت اطلاعات است که امروزه بعنوان یکی از ارکان اصلی مکانیزم های امنیتی بشمار می رود. هر جا که نیاز به تامین امنیت اطلاعات برای داده یا اطلاعات حساس باشد، الگوریتم های رمزنگاری از جمله پرکاربردترین شیوه های تامین امنیت به شمار می آیند.رمزنگاری و کاربردهای آن تا بدان جا اهمیت یافته اند که به عنوان یک روش موفق در تامین امنیت نسل آینده وب نیز توصیه می شوند.در این نوشتار سعی بر آن است تا با توجه به نقش مهم رمزنگاری در تامین امنیت اطلاعات در حیطه های گوناگون ( امنیت پایگاههای داده، امنیت پروتکلهای ارتباطی، امنیت وب معنایی و...) به بررسی مفاهیم پایه ای رمزنگاری بپردازیم.
رمزنگاری قدمتی به اندازه تاریخ انسان دارد. اولین تلاشهای ثبت شده در تاریخ برای رمزنگاری به بیش از 4000 سال پیش باز می گردد. تلاشهای اولیه بشر در رمزنگاری معطوف به ترجمه پیام خود از یک زبان به زبان دیگر ویا جابجایی حروف پیام خود بوده است. حاصل تمامی تلاشها برای ارتقاء مکانیزم های امنیتی منجر به ایجاد روشهای نوینی در علم رمزنگاری گردید، از اینرو می توان به دسته بندی روشهای رمزنگاری بصورت ذیل مبادرت ورزید:
1. رمزنگاری فیزیکی
2. رمزنگاری ریاضی ( مبتنی بر محاسبات ریاضی)
3. رمزنگاری کوانتوم
در اين نوشته به معرفي رمزنگاري فيزيكي خواهيم پرداخت :
رمزنگاری فیزیکی
به طور کلی ، رمزنگاری فیزیکی شامل حیطه هایی است که آن حیطه ها، روش های بکار گرفته شده برای رمزنگاری مقداری را توسط یک فرایند ریاضی تغییر نمی دهند. رمزنگاری فیزیکی روشهای گوناگونی را در بر می گیرد. معمولترین روشها در رمزنگاری فیزیکی انتقال یا جانشانی کارکترها یا کلمات است. روشهای دیگری مانند پنهان سازی از دیگر مکانیزم های امنیت فیزیکی است. در اینجا برای روشن تر شدن بحث لازم است تا مثالهایی آورده شود.
روشهای انتقالی
در این روش کارکترهای پیام(متن اصلی) به مکانهای دیگری منتقل می شوند. مثلا می توان حالتی را در نظر گرفت که متن در دو سطر بصورت ستون به ستون نوشته شود و سپس بصورت سطری بازنویسی شود.
MOHAMMAD HEYDARI : متن اصلی
M H M A H YAY : کلید
O A M D E D R
MHMAHYAYOAMDEDR : متن رمز شده
مثال دیگری از روش انتقال ماشین های روتور است. ماشین های روتور از چند سیلندر تشکیل است. شکل (1) به هنگام ورود یک حرف ، مسیر از سیلندر 1 به سیلندر 2 و تا پایان ادامه پیدا می کند و حرف رمز بدست می آید. سیلندر سمت راست با هر حرف یک چرخش به پایین انجام می دهد وقتی 26 چرخش (تعداد حروف انگلیسی) انجام شد سیلندر سمت چپی آن یک چرخش انجام می دهد. این عمل برای سیلندرهای دیگر از راست به چپ تکرار می شود. مثلا مطابق شکل(1 الف) ورودی A با کد اسکی 24 در سیلندر اول از مکان اول به مکان بیست و پنجم که با 24 مشخص شده می رود.سپس در سیلندر دوم از مکان بیست و پنجم به مکان هجدهم که با 24 مشخص شده و در نهایت در سیلندر سوم از مکان هجدهم به مکان دوم که با 18 مشخص شده منتقل می شود. پس خروجی B خواهد بود یعنی B رمز شده A است. با توجه به اینکه با رمز یک حرف ، سیلندر سوم یک واحد می چرخد. اگر بار دیگر حرف A رمز شود این بار خروجی(حرف رمز شده) E خواهد بود (شکل1 ب) عمل رمزگشایی نیز بطور معکوس انجام می شود.
شكل-1
رمز سزار
در این روش هر حرف با حرف دیگری که فاصله ثابت و یکسانی از حرف قبلی دارد جایگزین می شود. اگر فرض کنیم که P : متن اصلی ، C :متن رمز شده، EK :الگوریتم رمزنگاری و DK :الگوریتم رمزگشایی است و K عدد صحیحی است که میزان جابجایی حروف را نشان می دهد، آنگاه داریم :
C = EK (P) = P + K mod 26
P = DK (C) = C – K mod 26
به عنوان مثالی از رمز سزار در نظر بگیرید که الگوریتم رمزنگاری ما بدین صورت است که هر حرف از متن پیام باید با سه حرف بعد از خودش جایگزین شود ( K=+3 ) در چنین حالتی داریم:
متن اصلی : MOHAMMAD
متن رمز شده : PRKDPPRG
همانگونه که دریافتید این نوع از رمزنگاری دارای الگوریتم بسیار ساده ای است و برای رمزنگاری یک پیام تنها 25 کلید متفاوت وجود دارد (برای زبان انگلیسی) و بواسطه این مساله و با کمک گرفتن از فرکانس نسبی حروف در یک پیام ، متن رمز شده به راحتی قابل تشخیص است.
رمز تک حرفی
در این روش برای هر یک از حروف متن اصلی یک انتقال در نظر گرفته می شود، بنابراین تعداد حالات ممکن کلید برای زبان انگلیسی !26 است. استفاده از رمز تک حرفی این مشکل را ایجاد می کند که حمله کنندگان با داشتن اطلاعاتی درباره طبیعت زبان مانند درصد تکرار حروف بکار رفته در متن بتوانند به متن رمز شده حمله کرده و اصل پیام را بیابند.شکل (2) مثالی را از رمز تک حرفی نشان می دهد. در این مثال متن رمز شده به همراه درصد تکرار حروف بکار رفته در متن رمز شده در جدول درج گردیده است، همچنین متوسط تکرار حروف در زبان انگلیسی نیز توسط نمودار میله ای نشان داده شده است.
برای حمله به متن رمز شده و رمزگشایی آن می توان بصورت الگوی ذیل عمل نمود :
1. با مقایسه نمودار فوق و جدول تکرار نسبی حروف می توان حدس زد که احتمالا حرف e از متن اصلی به حرف p تبدیل شده است.
2. با انجام مقایسه های مشابه می توان حدس زد که {z/s/u/o/m/h} از متن اصلی معادل مجموعه {a/i/n/o/r/t/} از متن رمز شده است.
3. برای اینکه دریابیم حروف به چه حروف دیگری تبدیل شده انداز روش جستجوی کلمات دو حرفی مشهور مثل th و an و همچنین کلمات سه حرفی متداول مانند the و and استفاده می کنیم.
4. با پیدا شدن این حروف ، مابقی حروف را نیز می توان حدس زد. در این صورت متن اصلی پیام بصورت زیر بوده است.
It was discovered yesterday that several informal but direct contacts have been made with political in representatives of the Viet Cong Moscow
البته لازم به ذکر است که برای از بین بردن مشکل فوق و ایمن تر کردن رمز تک حرفی روشی به نام هم آوایی پیشنهاد گردید. در این روش حروفی که دارای بیشترین تکرار هستند به چند حرف ( بیش از دو حرف ) تبدیل می شوند و حروفی که تکرار کمتری دارند به یک یا دو حرف تبدیل می شوند. در این صورت نمودار تکرار حروف تقریبا همتراز می شود.
پنهان سازی پیام
در این روش ، کارهایی صورت می پذیرد تا داده یا اطلاعات به نحوی مخفی شوند. برخی از این روشهای قدیمی عبارت بودند از : نوشتن متن با جوهر بی رنگ - تایپ متن پیام با پاکن بین خطوط یک متن تایپ شده معمولی، که در صورت قرار گرفتن در معرض نور حروف نوشته شده با پاکن قابل خواندن است و ... اما روشهای نوینی نیز با الهام از روشهای سنتی معرفی شده اند. در این روشها یک شی داده ای به عنوان محملی برای مخفی کردن داده های اصلی بکار می رود که به آن شی پوششی گفته می شود. شی پوششی مجموعه ای از داده های عادی است که داده محرمانه را در خود مکتوم نگاه می دارد. روشهای نوین پنهان سازی پیام را می توان بر اساس ماهیت شی پوششی به سه گروه عمده طبقه بندی کرد. پنهان سازی در فایلهای متنی ، پنهان سازی در فایلهای تصویری و پنهان سازی در فایلهای صوتی. برای پنهان سازی پیام در داده های متنی استفاده از تکنیک های پنهان سازی زبان شتاختی روش متداولی بشمار می رود، همچنین استفاده از قالب بندی های ظاهری متن که در آن متن آماده ای بعنوان ورودی در نظر گرفته می شود و با اعمال تغییراتی مانند درج منظم فاصله خالی، کارکتر های غیر قابل مشاهده و ... پنهان نگاری صورت می پذیرد ، نیز از دیگر روشهای پنهان سازی در متن است. استفاده از پنهان سازی پیام در فایلهای گرافیکی از جمله پر کاربردترین روشهای پنهان سازی پیام می باشد. مزیت این روش در این است که با پنهان کردن پیام درون یک فایل گرافیکی ، افت نسبی کیفیت و یا بروز اختلالات جزیی در تصویر و حتی بروز برخی تغییرات در نور آن تصویر که معلول چنین پنهان سازی است قابل تحمل و پذیرفتنی می نماید. روش پذیرفته شده دیگری نیز در پنهان سازی پیام درون تصویر وجود دارد که به آن روش " جایگزینی بیت کم ارزش " می گویند. در این روش کم ارزش ترین بیت مربوط به رنگ هر نقطه به نگهداری یک بیت از داده های محرمانه اختصاص می یابد. بدین ترتیب، تصویر حاصل صرفا دارای اختلالات اندکی خواهد شد که محسوس نیست. البته باید در نظر داشت که اعمال برخی از روشهای فشرده سازی ، تبدیل فرمت فایلها و ... غیر ممکن است. پنهان سازی پیام در اصوات دارای این ویژگی است که اصولا برخی از فرکانسهای صوتی برای گوش انسان قابل شنیدن نیست و به همین دلیل در صورت استفاده از این فرکانسها برای پنهان سازی پیامها در اصوات هیچ گونه تغییرات صوتی قابل شنیدنی در صدا بوجود نخواهد آمد. این تکنیکها شامل درج اطلاعات در قالب فرکانسهای صوتی بسیار بالا و یا بسیار پایین ، ایجاد تغییرات در اکوی صدای اصلی با فواصل متغیر که این تغییر، در فاصله اکو و صدای اصلی می تواند مامنی برای کد کردن داده ها بحساب آید و ... می تواند از جمله این تکنیکها باشد.
در حال حاظر بیش از 100 برنامه در زمینه پنهان سازی پیام وجود دارد. بعنوان مثالی دراین باب پنهان سازی نقشه 11067 بایتی فرودگاهی در شهر برلینگتون ایالات متحده در فایلهای GIF وJPEG و WAV پرداخته شده است) شکل(3)(. در حالت اول نقشه فرودگاه مذکور با استفاده از نرم افزار Nelsonsoft ، در قالب یک فایل گرافیکی با فرمت Gif ، که نمای یک تفرجگاه در واشنگتن می باشد، پنهان شده است. شی پوششی ما که در اینجا تصویر این پارک در واشنگتن است 632778 بایت طول دارد و دارای 249 رنگ تفکیکی است اما پس از پنهان سازی نقشه فرودگاه در تصویر طول آن به 677733 بایت رسیده است و تعداد رنگ آن نیز به 256 رنگ افزایش یافته است. علت چنین افزایشی در دامنه رنگهای بکار رفته در تصویر کاهش اعوجاج تصویر نهایی بوده است.
3-1 : نقشه فرودگاه که باید پنهان سازی شود.
3-2 : فایل Gif ، حامل نقشه فرودگاه( پس از پنهان سازی)
شکل(4) پالت فایل را قبل و بعد از درج پیام ( که در اینجا نقشه فرودگاه بوده است) نشان می دهد. تمامی برنامه هایی که از روش جایگزینی بیت کم ارزش استفاده می کنند این تغییرات را بر روی 8 بیت رنگ ( RGB ) خود اعمال می کنند . در اینجا نیز از همین تکنیک استفاده شده است.
الف : قبل از پنهان سازی
ب : بعد از پنهان سازی
شکل (5) فایلی را با فرمت JPEG نشان می دهد که حامل نقشه فرودگاه است . این پنهان سازی توسط نرم افزاری به نام (JPHS) انجام شده است . این نرم افزار نیز از تکنیک جایگزینی بیت کم ارزش استفاده می کند.
فایل حامل نقشه فرودگاه در فرمت JPEG
نمونه آخری که در پایان این بخش می آوریم، پنهان سازی پیام در قالب یک فایل صوتی با فرمت WAV است. این پنهان سازی با استفاده از نرم افزار S-Tools است که می تواند پیام های مورد نظر را در قالب فایلهایی با فرمتهای GIFوBMPوWAV پنهان نماید. این نرم افزار هم از همان تکنیک جایگزینی بیت کم ارزش استفاده می کند. شکل (6) یک سطح از سیگنال فایل صوتی را در حالت قبل و بعد از پنهان سازی نقشه فرودگاه نشان می دهد. طول فایل WAV قبل از پنهان سازی نقشه 178544 بایت است که پس از پنهان سازی نقشه فرودگاه درون آن به 178298 بایت تغییر کرده است. اگرچه جزییات پنهان سازی در تصویر (6) بخوبی نمایان نیست، ولی با اندکی مداقه می توان به برخی از تفاوت های میان این دو سیگنال در ابتدا و انتهای آن پی برد.
شكل 6-1 : سیگنال صوتی فایل حامل قبل از پنهان سازی
شكل 6-2 : سیگنال صوتی فایل حامل بعد از پنهان سازی









