رمزنگاری و امنیت تبادل داده

رمزنگاری از دیر بازبه عنوان یک ضرورت برای حفاظت ازاطلاعات خصوصی در مقابل دسترسی  – های غیر مجاز درتجارت و سیاست و مسایل نظامی وجود داشته است به طور مثال تلاش برای ارسال یک پیام سری بین دو هم پیمان به  گونه ای که حتی اگر  توسط دشمن  دریافت شود قابل درک نباشد، در رم قدیم نیزدیده شده است(رمز سزار).در سالیان اخیر رمزنگاری وتحلیل  رمز از یک هنر پا را فراترگذاشته ویک علم مستقل شده است و در واقع به عنوان یک وسیله عملی برای ارسال اطلاعات محرمانه روی  کانا ل های غیر امن همانند تلفن ، ماکرویو و ماهواره ها  شناخته می شود.

Image result for ‫امنیت‬‎ رمزنگاری و امنیت تبادل داده رمزنگاری و امنیت تبادل داده 1844f5fea02b94e86d75526108caae73 XL

پیشرفت علم رمز نگاری موجب به وجود آمدن روشهای تحلیل مختلفی شده است به گونه ای که به طور متناوب سیستم های رمز مختلف شکسته شده اند . معروف ترین نمونه این نوع سیستمها ماشین «انیگما » بوده است . انیگما ماشین رمز گذار و کد گذار وکد کننده ای بوده است که حزب نازی در زمان جنگ جهانی دوم برای ارسال پیام ها یشان از طریق رادیو به سایر نقاط استفاده می کردند .

رمزنگاری که به طور عمده به دو بخش رمزنگاری متقارن یا رمزنگاری با کلید خصوصی و رمزنگاری نامتقارن یا رمزنگاری با کلید عمومی صورت می گیرد، تلاش می کند برای ایجاد یک ارتباط سری از طریق سیستمهای مخابراتی و شبکه های کامپیوتری مباحث مربوط به محرمانگی و احراز هویت، را تحت فرضهای مشخص به درستی اثبات نماید .

2- الگوریتم های رمزنگاری کلید خصوصی

رمزهای کلید خصوصی بر مبنای نوع عملکرد ، چگونگی طراحی و پیاده سازی و کاربردهایشان به دو گونه رمزهای قطعه ای و رمزهای دنباله ای تقسیم می شوند . که در هر یک از آ نها عملکرد رمز نگاری به صورت یک عملکرد دوجانبه بین دو طرف فرستنده و گیرنده می باشد که با ایجاد یک ارتباط اولیه با یکدیگر روی کلید خصوصی توافق میکنند به گونه ای که دشمن آن کلید را نداند. فرستنده S می خواهد پیام m1,….mi را به گونه ای به طرف گیرنده R بفرستد که او بتواند به محتوای پیام دست یابد و در عین حال حریف مخالف A نتواند محتوای پیام را درک کند حتی اگر A تمامی آنچه بین R و S انتقال می یابد را دریافت نماید.

به همین منظور فرستنده S هر متن روشن mi رابه وسیله الگوریتم رمزگذاری E و کلید خصوصی به متن رمز شده تبدیل میکند ودریافت کننده نیزکه متن رمز شده را دریافت کرده می تواند با الگوریتم رمز گشائی D و کلید خصوصی متن اصلی را بدست آورد.

 2- 1- رمزهای دنباله ای

در طراحی رمزهای دنباله ای یک مولد بیت شبه تصادفی نقش تولید کننده رشته کلید را برای سیستم رمزدنباله ای دارد . در واقع این مولد میتواند مولد رشته کلید نیز محسوب شود . از دیدگاه رمز نگاری یک مولد رشته کلید امن باید دارای سه پارامتر مهم زیر باشد :

  • 1- پریود رشته کلید تولید شده باید به حد کافی بزرگ باشد تا با طول پیام ارسال شده سازگاری داشته باشد .
  • 2- دنباله بیت خروجی حاصله از مولد باید به راحتی قابل تولید کردن باشد .
  • 3- بیتهای خروجی باید به سختی قابل پیش بینی باشند .

در واقع با در اخثیار داشتن مولد و اولین n بیت خروجی a(0) ، a(1) …… . a(n-1) از لحاظ محاسباتی پیش بینی بیت n+1 ام یعنی a(n+1) در دنباله با احتمال بیشتر از ½ باید غیر ممکن باشد.

حال مسئله اصلی این است با کدام مبنا واصولی میتوان این نتیجه گیری را انجام داد که سیگنال های خروجی از یک مولد رشته کلید به سختی قابل پیش بینی است ؟ به طور کلی اصولی قابل بررسی و کاربردی ارائه شده است تا امنیت مولد های بیت را ضمانت کند . در واقع تا کنون روشهای بسیاری برای تولید رشته کلیدهای امن پیشنهاد شده است و در مقابل نیز تحلیل هائی طرح شده است که با توجه به پیچیده ترشدن دنباله ها به صورت ماهرانه تری به تحلیل دنباله ها می پردازند. در ادامه به برخی از روشهای تولید بیت های شبه تصادفی می پردازیم.

2-1 -1- ساختار مولد های بیت شبه تصادفی و رمزهای دنباله ای

غیر قابل پیش بینی بودن یک دنباله همانند تصادفی بودن آن تعبیر می شود برای اینکه یک دنباله تصادفی باشد پریود آن باید به حد کافی بزرگ باشد و همچنین تکه های گوناگون درون دنباله دارای توزیعی تا حد ممکن یکنواخت باشند. در اینجا به طور خلاصه چندروش تولید بیت های شبه تصادفی ودنباله های شبه تصادفی شرح داده شده است .در این روش ها به طور مشخص ثبات های انتقال خطی برای ساختن مولدها به کار گرفته شده اند.

2-1- 2- مولدهای همنهشتی خطی (LCG)

در این روش برای تولید اعداد شبه تصادفی از روابط بازگشتی نظیر x j+1=axj+b بهره گرفته میشود .در اینجا سه تا ئی a) ، b ، m ) پارامترهائی را مشخص میکنند ،که مولد را شرح میدهند از این سه تائی به عنوان کلید مخفی میتوان استفاده کرد.با توجه به اینکه x0 هسته مولد میباشد ، اگر پارامترها بدقت انتخاب شوند اعدادی نظیر xj به صورت تکراری نخواهیم داشت مگر آنکه تمامی اعداد صحیح درون فاصله [0,m-1] در خروجی ظاهر شده باشند .« بویر» نشان داد که دنباله های تولید شده توسط LCG ها از نظر رمز نگاری امن نیستند . درواقع با در اختیار داشتن قطعه ای طولانی ازدنباله میتوان با روشهائی پارامترهای m و b و a را بازسازی نمود .

2-1- 3- ثبات های انتقال پس خور ) FSR (

دنباله های مورد استفاده در رمزنگاری می توانند بر مبنای ثبات های انتقال طراحی بشوند حتی وقتی که دارای پس خوری خطی باشند . یک ثبات انتقال پس خور از N فلیپ فلاپ و یک تابع پس خور تشکیل شده است . تابع پس خور هر عنصر جدید همانند t ) ) a از دنباله را به صورت جزئی از عناصری که از قبل تولید شده اند همانند a(t-1) ، …… a(t-n-1) ، a(t-n) بیان می کند . گونه ای از توابع پس خور وجود دارند که به صورت زیر عمل میکنند:

a(t) =g( a(t-1) , a(t-2) ……… , a(t-n+1)) Å a(t-n)

بسته به اینکه آیا تابع g خطی است (با عملگر Xor تنها قابل اجراست ( یانه ،مولد یک ثبات انتقال پس خور خطی ( LFSR ) یا ثبات انتقال پس خور غیر خطی ( NLFSR ) خوانده می شود.

پریود دنباله تولید شده بوسیله یک FSR به تعداد مراحل ذخیره سازی و جزئیات اتصال پس خور بستگی خواهد داشت و بطور کلی حداکثر پریود یک دنباله که توسط یک FSR دارای n مرحله تولید میشود ، 2 n خواهد بود .

2-1- 4- ثبات های انتقال پس خور غیر خطی (NLFSR )

دیاگرام حالت گونه هائی از FSR ها میتواند شامل چرخه های کوچک باشد و حالات تکراری داشته باشد و دنباله اگر در یکی از این حالات قرار بگیرد ممکن است نا امن شود . یک روش مناسب طراحی ثبات انتقال n مرحله ای که دنباله هائی با حداکثر پریود 2 n تولید می نماید و دنباله های « دی بروئن » می باشد.که تعداد دنباله های ممکن n مرحله ای آن به بزرگی 2 (2n-1)-n میباشد.که همگی آنها دارای توزیعهای ایده آلی میباشند .اما این دنباله ها که از ثبات های انتقال غیر خطی ساخته میشوند دارای مشکلاتی برای پیاده سازی توسط الگوریتمهای شناخته شده هستند . همچنین تولید سریع این دنباله ها به سختی صورت می گیرد . همچنین برخی از خواص همبستگی بین عناصر تولید شده می تواند راهکارهای مناسبی برای تحلیل این دنباله ها ایجاد نماید .

2-1- 5- ثبات های انتقال پس خور خطی (LFSR)

این ثبات ها مدت ها برای کدهای کنترل خطا ، آزمایشهای VLSI و مخابرات طیف گسترده مورد استفاده بوده اند و از جمله مهمترین اجزاء در ساختار مولدهای شبه تصادفی می با شند آنها توابع پس خوری به شکل زیر دارند .

a(t) =c1 a(t-1) Å c2 a(t-2) Å …………. Å c(n-1) a(t-n-1) Å a(t-n)

c i Î [0,1]

و با چند جمله ای پس خور زیر نشان داده میشوند .

f(n) = 1+ c1x + c2x2 + ……..+ c( n-1) x ( n-1) + x(n)

 به طور کلی برای اینکه حداکثر پریود ممکن 2n-1 را برای دنباله خروجی از یک LFSR داشته باشیم ، چند جمله ای پس خور آن می باید اولیه باشد . تعداد چند جمله ای های اولیه درجه n از رابطه f (2 n –1)/n بدست می آید که (n) f نمایانگر تابع اویلر می باشد که تعداد اعداد صحیح مثبت و اول کوچکتر از عدد n را نشان میدهد .

به هر صورت با توجه به توابع توزیع احتمال این دنباله ها با حداکثر پریود دیده می شود که خواص آماری مطلوبی در این دنباله ها به وجود می آید . اما در برابر این خصوصیات مولد های شبه تصادفی وبه علت استفاده گسترده از ثبات های انتقال در این گونه مولدها روش های تحلیل فراوانی نیز برای تحلیل دنباله خروجی حاصل طرح شده که استفاده از این ثبات ها را در ساختار مولدهای بیت شبه تصادفی دچار مشکل می کند .

2- 1-6- کاربردهای رمزهای دنباله ای ،مزایا و معایب

بسیاری از رمزهای دنباله ای کاربردی بر مبنای LFSR ها عمل می نمایند و از آنجائیکه یک ثبات انتقال در واقع آرایه ای از بیت های حافظه و یک سری فیدبک می باشد و با یک سری Xor قابل پیاده سازی است ، می توان امنیت قابل توجهی را تنها با تعداد کمی گیت منطقی بدست آورد .بنابراین رمزهای دنباله ای می توانند برای مصارف سخت افزاری بسیار مؤثر و کارا باشند .

اما در عین حال مشکلی که LFSR ها و در نتیجه رمزهای دنباله ای مبتنی بر آنها دارند ، ناکارآمد بودن آنها در نرم افزار است . در واقع برای مناسبت های نرم افزاری چندجمله ایهای فیدبک و تعداد فیدبک ها بسیار مهم می باشد. در حالیکه مؤثر انتخاب نکردن این چندجمله ایها امکان حملات وابستگی را نیز ممکن است فراهم آورد .

بنابراین رمزهای دنباله ای حتی انواع ساده تر آنها در اجراهای نرم افزاری نمی توانند سریعتر از رمزهای قطعه ای عمل نمایند . رمزهای دنباله ای به علت پیاده سازی مؤثرتر سخت افزاری کاربردهای فراوانی در صنایع نظامی به خصوص خطوط مخابرات نظامی دارند . از آنجا که در اینگونه رمزها هر یک از بیت های داده های اصلی به صورت مستقل رمز می شوند ، بکارگیری اینگونه رمزها در لینک های مخابراتی پر از اغتشاش و نویز به جهت امکان آشکارسازی و تصحیح خطاها مؤثرتر می باشد . در عین حال که برای رمز نمودن حجم عظیمی از داده ها بعلت سرعت اجرای بالا، رمزهای دنباله ای می توانند گزینه مناسبی باشند . همانطور که در سیستم های امنیت مخابراتی و رمزنگاری نظیر BEU ها دیده می شود .

تحلیل و آنالیز نمودن رمزهای دنباله ای نیز معمولاً ساده تر از رمزهای قطعه ای صورت می گیرد . در عین حال امکان طرح حملات وابستگی بر روی اینگونه سیستم ها که بر مبنای ثبات های انتقال خطی عمل می نمایند ، بیشتر است اغلیب رمزنگارها سعی می نمایند اجزاء مختلف اینگونه الگوریتم ها را در حالتی غیرخطی ترکیب نمایند و یا از ثبات های انتقال غیرخطی استفاده نمایند تامصونیت وابستگی لازم پدید آید .

2- 1-7- نمونه های رمزهای دنباله ای پیاده سازی شده

رمزهای دنباله ای بسیاری در طرح های مختلف پیاده سازی شده اند .

A5 یک الگوریتم رمز دنباله ای است که برای رمز نمودن سیستم ارتباط گروهی موبایل و یا در واقع سیستم مخابراتی GSM به کار می رود . این الگوریتم برای رمز نمودن لینک ارتباطی میان گوشی تلفن به ایستگاه پایه به کار می رود .

الگوریتم XPD/KPD که توسط شرکت هیوز طراحی شده است ، در رادیوهای تاکتیکی نظامی ارتش و تجهیزات جهت یاب به کار رفته است .

الگوریتم رمز دنباله ای NaNoTEQ که نام یک شرکت الکترونیکی در آمریکای جنوبی است برای رمز نمودن ارتباطات و مراسلات از طریق فاکس در اداره پلیس آمریکای جنوبی بکار رفته است .

می توان انواع دیگر رمزهای دنباله ای طرح شده را بیان نمود ، اما آنچه مشخص است اینگونه رمزها در تجهیزات مخابراتی و سخت افزاری کاربرد گسترده و فراوان دارند . به خصوص در خطوط رادیوئی که امکان اغتشاشات و نویزهای فراوان در آنها موجود می باشد . اما به علت سرعت نامناسب اجرای نرم افزاری آنها ، برای استفاده در شبکه های کامپیوتری و یا ایجاد امنیت در پروتکل های امنیت اینترنت بکار نمی روند .

2-2 – رمز قطعه ای

رمزهای قطعه ای که از جمله پرکاربردترین رمزهای کلیدخصوصی هستند ، به علت قابلیت های فراوان که در اجرای سریعتر و برقراری امنیت و ایجاد مقاومت در برابر انواع حملات متن منتخب و سایر انواع حمله های رمزنگاری دارند ، یکی از بهترین گزینه ها در ایجاد اهداف طرح های رمزنگاری می باشند . یک رمز قطعه ای قدرتمند قابلیت آن را دارد که توسط روش های مختلف بکارگیری به عنوان یک رمز دنباله ای قوی استفاده شود و یا اینکه ایجاد یک سامانه احراز هویت نماید .بر همین مبنا همواره سعی می شود یک الگوریتم رمز قطعه ای بر مبنای راهکارها و دستاوردهای نوین روش های طرح اینگونه رمزها و با توجه به تحلیل های جدید تر سامانه های رمز و حمله هائی که بر مبنای این تحلیل ها برروی رمز های قطعه ای طرح می شوند ، بدست آید ودر عین حال یک ساختار منظم ، قابل توسعه و در عین حال نوین از رمزهای قطعه ای معرفی شود که در صورت نیاز به توسعه در طول کلید سری مورد استفاده و یا طول قالب داده های ورودی به الگوریتم ، اصل ساختار الگوریتم توانائی این توسعه را بدون از دست دادن ساختار کلی شبکه رمز ، عملگرها و مبناهای بکارگرفته شده داشته باشد . الگوریتم رمز طرح شده باید بتواند امنیت مورد نیاز اطلاعات محرمانه را ایجاد نماید و حاشیه امنیت لازم برای حمله های نوین ارائه شده و قابل توسعه را نیز داشته باشد . در طراحی الگوریتم ، امنیت کامل وقابل اثبات در مقابل حمله های مؤثر و پرکاربردی نظیر حمله های تفاضلی و خطی و سایرحمله هائی که مبنای تازه تری برای تحلیل رمزهای قطعه ای دارند ، هدف اولیه بوده و در ادامه نیزپیاده سازی و اجرای موثر رمز که لازمه طراحی می باشد جزء اهداف در نظر گرفته می شود . چنین طرحی می تواند با ایجاد حداکثر امنیت ممکن در یک سامانه اطلاعاتی به سرعت اجرا شود و حوزه کاربردهای مختلف اطلاعات را برآورده سازد .در واقع با توجه به نوع اطلاعات مورد استفاده از لحاظ استراتژیک و تاکتیکی بودن می توان در کاربردهای مختلف مورد نیاز طرح کلی این الگوریتم را استفاده نمود .

رمزهای قطعه ای که تعریف آنها بر مبنای ترکیب توابع جایگزینی و جایگشتی می باشد ، ساختارهای متعددی دارند که هر یک مزایا و کاربردهای متعدد مربوط به خود را دارند . خواص رمزهای قطعه ای امن را به صورت زیر می توان بیان نمود .

  • 1- دستیابی به متن اصلی از طریق متن رمزگذاری شده بدون در اختیار داشتن کلید باید غیرممکن باشد . می توان این خصلت را با یکطرفه بودن الگوریتم رمزنگاری مقایسه نمود . در واقع کلید خصوصی الگوریتم دریچه تابع رمزنگاری می باشد که با در اختیار داشتن آن می توان از متن رمز شده ، متن اصلی را بدست آورد .
  • 2- آگاهی از الگوریتم نباید سبب تضعیف رمز شود . مخفی نگاه داشتن جزئیات الگوریتم در امنیت آن نقشی ندارد و امنیت الگوریتم باید تنها به کلید سری بستگی داشته باشد .
  • 3- هر بیت متن رمزشده باید به تمامی بیت های متن اصلی وابسته باشد . در اینصورت کوچکترین تغییردر متن اصلی ، متن رمزشده متفاوتی ایجاد می نماید . به اینگونه از رمزها کامل گفته می شود .
  • 4- هر بیت متن رمزشده می بایست به تمامی بیت های کلید سری وابسته باشد که در اینحالت در صورت کوچکترین تغییر در کلید ، متن رمزشده متفاوتی ایجاد می شود .
  • 5- تغییر هر بیت در داده های ورودی بدون تغییر کلید ، باید موجب تغییرات عمده در قطعه خروجی شود .
  • 6- تغییر هر بیت در کلید سری بدون تغییر متن اصلی ، باید موجب تغییرات عمده در متن رمزگذاری شده گردد .
  • 7- الگوریتم باید دارای عمل جانشینی بیت ها تحت کنترل داده های ورودی وکلید باشد .
  • 8- الگوریتم باید دارای عملکرد جابجائی بیت ها تحت کنترل داده های ورودی وکلید باشد .
  • 9- الگوریتم رمز نباید دارای ساختار جبری ساده باشد . در غیراینصورت تابع رمزگذاری با یک رابطه دارای بیان جبری ساده معادل خواهد شد .
  • 10- طول متن اصلی باید با طول متن رمز شده برابر باشد .
  • 11- تمامی کلیدهای سری بکار گرفته شده باید رمز قوی تولید نمایند .

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

در سال های گذشته بعلت نیازهای فراوانی که برای کاربردهای غیرنظامی رمزنگارها وجود داشته است ، بحث استاندارد سازی الگوریتم های رمزنگاری مطرح شده است . که نمونه های استاندارد شده آن در سال های گذشته DES با ساختاری به صورت فیستل و در سال های اخیر AES بوده که الگوریتم رایندال را با ساختاری نوین و به گونه ای مربعی بکار برده است .

الگوریتم DES از انجام عملیت بر روی قطعه های 1،4،6و 28 بیت بهره می گیرد که این عملکردهاپیاده سازی الگوریتم را برای مصارف نرم افزاری با مشکل روبرو می سازد . اما الگوریتم هائی نظیر FEAL که به منظور پیاده سازی سریع نرم افزاری طراحی شده است ، از زیر عملیات هائی بر روی قطعات 8 بیتی بهره می گیرد . بنابراین دیده می شود که یک الگوریتم رمزنگاری متناسب با پیاده سازی نرم افزاری لزوماً از عملوندهای منطبق با بایت و یا ضرایبی از بایت بهره می گیرد .

2-2-1- احراز هویت و شناسائی و توابع درهم ساز

کاربردهای گوناگون رمز های قطعه ای را می توان توسط مد های کاربردی که تعیین کننده گستره وسیع کاربردی رمزهای قطعه ای در مصارفی نظیر احراز هویت پیام ، مولد های بیت شبه تصادفی ، توابع درهم ساز و مدیریت کلید می باشد ، بیان نمود .

رمزهای قطعه ای در حالات ECB ، OFB ، CBC و CFB بکاربرده می شوند . حالات بکارگیری رمز در مدهای CFB و OFB در ایجاد مولدهای بیت شبه تصادفی و طراحی رمزهای دنباله ای کاربردهای فراوان دارند. در حالیکه مد OFB دارای مزایائی نظیر امنیت بالا ، انتشار خطای محدود و ایمنی در برابر حمله های لغت نامه ای و فعال می باشد و در عین حال سنکرون نبودن این گونه سیستم ها می تواند معایبی را در این نوع کاربرد به وجود آورد .

مزایای بکارگیری روشهای CBC و CFB را می توان در جامعیت پیام های ارسالی و قابلیت دسترسی گسترده به داده ها و تامین ایمنی در برابر حملات لغت نامه ای و مهم تر از همه تامین کد هویت و شناسائی پیام دانست .که قابلیت احراز هویت رابه کاربردهای رمزهای قطعه ای می افزاید . اما این دو حالت بکارگیری عیوب عمده ای نظیر انتشار خطا در خطوط ارتباطی را می توانند در بر داشته باشند .

استاندارد X909 الگوریتم DES را در حالت CBC به عنوان روش احراز هویت بیان می کند که در هر هفته در حدود5/1 تریلیون دلار از طریق آن میان مؤسسات مالی به شکل عمده مبادله می شد .

تکنیک های فراوانی نیز موجود می باشد که در آنها نشان داده شده است که از رمزهای قطعه ای می توان در طراحی توابع درهم ساز که از ملزومات روش های احراز هویت و امضاهای دیجیتال می باشند ، استفاده نمود .

3 – طراحی الگوریتم رمز قطعه ای

الگوریتم باید به گونه ای طراحی شود که معیارهای طراحی رمزهای استاندارد پیشرفته را برآورده سازد که این معیارها در زیر آورده شده اند .

  • ¨ طول کلید الگوریتم باید حداقل 128 بیت باشد . در واقع طبق آخرین استاندارد های ارائه شده توسط NIST برای جلوگیری از حمله های جستجوی فضای جامع کلی حداقل طول کلید باید 80 بیت باشد که استاندارد آن را برای پیاده سازی مناسب نرم افزاری 128 در نظر می گیرند .
  • ¨ الگوریتم تا حد ممکن کلید ضعیف و نیمه ضعیف نداشته باشد .
  • ¨ پیاده سازی الگوریتم باید روی زمینه های مختلف سخت افزاری و نرم افزاری مؤثر و کارا باشد . به خصوص شرایطی که پیاده سازی نرم افزاری الگوریتم را با توجه به طرح حاضر ، مؤثرتر می سازد فراهم شود .
  • ¨ طرح الگوریتم در برابر تبادل های موجود میان امنیت و اجرا در کاربردهای مختلف در رمزنگاری باید بسیار منعطف باشد و قابلیت استفاده برای کاربردهائی نظیر مولد بیت های شبه تصادفی امن ، توابع در هم ساز و MAC را داشته باشد وبرای مقاصدی نظیر احراز هویت و مدیریت کلید نیز قابل بکارگیری باشد .
  • ¨ طرح الگوریتم باید بسیار ساده باشد و به سهولت قابل بیان و آنالیز باشد و در عین حال قابل توسعه باشد .

اما با توجه به شرایطی که الگوریتم های رمز قطعه ای امن باید داشته باشند معیارهای زیر نیز در طراحی الگوریتم و برقراری امنیت آن باید مورد نظر باشد .

  • ¨ الگوریتم به گونه ای طرح شود که عملکرد های رمزگذاری و رمزگشائی آن تاحد ممکن یکسان عمل نمایند و اجرای سخت افزاری و نرم افزاری آنها مشابه یکدیگر باشند .
  • ¨ الگوریتم دارای طرحی موازی باشد و با استفاده از این الگوها پیاده سازی سریعتر و مؤثرتری داشته باشد .
  • ¨ امنیت الگوریتم در برابر تحلیل های شناخته شده در رمزنگاری همانند حمله های خطی و تفاضلی و تحلیل هائی که مبنای آنها این نوع حمله ها می باشند ، تضمین شده باشد . همچنین حاشیه امنیت لازم را برای حمله های تازه تر داشته باشد .
  • ¨ طرح تولید زیرکلید های الگوریتم ، امن و مؤثر باشد که در برابر حمله های مرتبط با کلید بتواند استقامت لازم را ایجاد نماید .
  • ¨ طرح کلید الگوریتم قابلیت پیش محاسبه شدن را با حداکثر سرعت ممکن داشته باشد و یا اینکه با حداقل حافظه مورد نیاز و حداکثر سرعت به صورت شناور بتواند زیرکلید ها را تولید نماید .

در طراحی الگوریتم رمز طرح حاضر می بایست تمامی نکاتی را که به عنوان اهداف طراحی بیان شد ، لحاظ شود .

 3- 1- طراحی امنیت و اجرای مؤثر الگوریتم رمز قطعه ای

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

حمله های طرح شده بر روی رمزهای قطعه ای نیز می تواند روش هائی برای طرح اینگونه رمز ها پیشنهاد نمایند . در واقع طرح اینگونه حمله ها ، ویژگی ها و معیارهای لازم در رمز های قطعه ای را برای مقاومت در برابر این حمله ها مشخص می نمایند . در ادامه چند حمله مختلف بر روی رمزهای قطعه ای که در اثر برخی خصوصیات تابع رمزگذاری طرح شده ، آورده می شود.

3-2- انواع حملات قابل اجرا بر روی الگوریتم

v آزمون جامع فضای کلید: این حمله با در اختیار داشتن چند زوج متن اصلی و متن رمز شده متناظر با آن صورت می گیرد وعبارتست از آزمودن تمامی 2 m کلید ممکن به منظور یافتن کلید اصلی رمزنگاری که همان کلید سری می باشد .

v حمله مکملیت : این حمله توسط خاصیت مکملیت صورت می گیرد . در واقع اگر X و Y دو بردار باینری به طول n باشند و X+Y=(1,…,1) باشد ، در اینصورت این دو بردار مکمل یکدیگر می باشند و خواهیم داشت Y=X ¢ .

حال اگر f مبین تابع یک رمز قطعه ای باشد و C=f(P,K) ، آنگاه رمز دارای خصلت مکملیت است اگر: ” P , ” K : f(P ¢ ,K ¢ )=C ¢ در اینصورت اگر فضای کلید رمزنگاری K به دو زیر فضای S و S ¢ که K=S È S ¢ باشد در اینصورت آزمون جامع فضای کلید را می توان فقط در فضای S اعمال نمود .

v حمله از طریق ویژگی بسته بودن : برای هر رمز قطعه ای به طول n و کلیدی به طول m هر کلید یک تابع جابجائی از بردارهای باینری به طول n را مشخص می نماید . اگر G مجموعه تمام این 2 m جابجائی را نشان بدهد و داشته باشیم H={ Ti*Tj : Ti ,Tj Î G } و * نماد ترکیب نگاشت ها باشد ، آنگاه G بسته است اگر H=G باشد . در واقع G بسته است اگر برای هر Ti و Tj در G بتوان Tk را در G به گونه ای یافت که برای تمام متون اصلی داشته باشیم :

(Ti*Tj )(P) = Tk(P)

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

سایر حمله های طرح شده بر روی رمزهای قطعه ای همانند حمله ملاقات در میانه ، حمله از طریق ویژگی آفینی و سایر حمله ها می توانند ویژگی های نامطلوب رمزهای قطعه ای را آشکار نمایند . اما بهترین و مؤثرترین تحلیل های ارائه شده بر روی اینگونه رمزها حمله های خطی وتفاضلی هستند که از جمله قدرتمندترین حمله ها ی نوع دوم و سوم بر روی رمز های قطعه ای می باشند . بنابراین امنیت بسیاری از رمز های قطعه ای به استحکام رمز در برابر این دو حمله بستگی خواهد داشت . در واقع معیار اصلی طراحی هررمز قطعه ای مقاومت دربرابر اینگونه حمله ها و سایر انواع حمله های طرح شده با توجه به شرایط تحلیل گر و آگاهی های او می باشد و تحلیل هائی که در ابتدا بیان شد به عنوان شروط لازم طراحی بکار می روند .

در میان دسته بندی تحلیل های رمزی چهار نوع عمومی از حمله های رمزنگاری وجود دارد که در هر کدام از آنها فرض می شود که تحلیل گر آگاهی لازم وکامل را از الگوریتم رمزگذاری مورد استفاده در اختیار دارد . این تحلیل ها به صورت زیر دسته بندی می شوند .

3-3- چهار نوع عمومی از حمله های رمزنگاری

3-3-1- حمله فقط متن رمز شده

در این نوع حمله تحلیل گر متن رمز شده پیام های مختلف را که همه آنها با استفاده از یک الگوریتم مشابه رمز شده اند ، در اختیار دارد . کار تحلیل گر بدست آوردن متن اصلی پیام های مختلف و یا یافتن کلید استفاده شده در عملکرد رمزگذاری است تا بوسیله آن سایر پیام های رمز شده را بتواند رمزگشائی نماید .

در واقع با در اختیار داشتن C1=EK(P1) تا Ci=EK(Pi) تحلیل گر سعی می نماید P1,…,Pi و K و یا الگوریتمی که بتواند Pi+1 را از Ci+1=EK(Pi+1) نتیجه بگیرد ، بدست آورد .

3-3-2- حمله متن روشن معلوم

در این حمله تحلیل گر نه تنها به متن رمزی پیام های مختلف بلکه به متن روشن این پیام ها نیز دسترسی دارد و کار اصلی او نتیجه گرفتن کلید و یا کلید های استفاده شده برای رمزگذاری پیام ها و یا بدست آوردن الگوریتمی که بتواند پیام های جدید رمزشده با کلید مشابه را رمزگشائی نماید ، می باشد . در واقع با در اختیار داشتن C1=EK(P1) و P1 تا Ci=EK(Pi) و Pi بتواند کلید K و یا الگوریتمی را بدست آورد که Pi+1 را از Ci+1=EK(Pi+1) حاصل نماید .

 3-3-3- حمله متن روشن منتخب

در این حمله تحلیل گر نه تنها به متن رمز شده و متن روشن مربوط به آن دسترسی دارد بلکه می تواند متون اصلی را نیز برای رمزگذاری انتخاب نماید . این تحلیل از یک حمله متن روشن معلوم قویتر می باشد زیرا تحلیل گر می تواند بلوک های متن روشن را برای رمزنمودن تعریف نماید و قطعه ای را انتخاب نماید که اطلاعات بیشتری درباره کلید از آن بدست آید . کار تحلیل گر نتیجه گرفتن کلید مورد استفاده در رمزگذاری پیام و یا بدست آوردن الگوریتمی برای رمزگشائی پیام های رمز شده جدید با کلید مشابه می باشد . در واقع با در اختیار داشتن C1=EK(P1) و P1 تا Ci=EK(Pi) و Pi که در آن P1 تا Pi را انتخاب نموده است ، کلید K و یا الگوریتمی برای بدست آوردن Pi+1 از Ci+1=EK(Pi+1) حاصل نماید .

3-3-4- حمله تطبیقی متن روشن منتخب

این نوع تحلیل یک مورد خاص از حمله متن روشن منتخب می باشد که در آن تحلیل گر نه فقط می تواند متن روشن را که رمزگذاری می شود انتخاب نماید بلکه می تواند انتخاب خود را بر مبنای نتایج رمزگذاری قبلی اصلاح نماید . در یک حمله متن روشن منتخب یک تحلیل گر ممکن است فقط قادر به انتخاب یک بلوک بزرگ از متن روشن برای رمزگذاری باشد .اما در یک حمله تطبیقی از نوع متن روشن منتخب او می تواند بلوک کوچکتری از متن روشن انتخاب نماید و سایر بلوک ها را بر مبنای نتایج این بلوک ابتدائی انتخاب نماید و به همین ترتیب ادامه دهد .

چند نوع حمله دیگر بر روی سیستم های رمزنگاری وجود دارد که در موارد خاص می توان از آنها استفاده نمود . همانند حمله متن رمزی منتخب که در آن تحلیل گر امکان انتخاب متون رمزشده را نیز دارد و یا حمله کلید منتخب که در این حمله تحلیل گر آگاهی هائی درباره روابط میان کلید های مختلف در اختیار دارد . اما تحلیل هائی که بر مبنای حمله های متن روشن و متن روشن منتخب صورت می گیرند بسیار معمول تر و واقعی تر می باشند و تحلیل های مؤثری بر مبنای این حمله ها تا کنون طرح شده است که بر روی بسیاری از رمزها مؤثر بوده اند . به طور مثال تحلیل های خطی و تفاضلی که بر روی DES مؤثر بوده اند از این گونه می باشند . در بکارگیری حمله های متن روشن منتخب بیشترین آگاهی از سیستم رمز در اختیار تحلیل گر قرار دارد بنابراین قویترین نوع حمله از نوع متن روشن منتخب می باشد که در آن تحلیل گر آگاهی کامل به الگوریتم رمزنگاری مورد استفاده دارد و امکان انتخاب و نمونه گیری از سیستم رمز را نیز خواهد داشت . بنابراین رمزی که در برابر این نوع حمله مقاوم باشد در بدترین شرایط می تواند امنیت کافی را اعمال نماید .

3-4- ملزومات طرح مؤثر و کارای نرم افزاری الگوریتم رمز.

3-4-1- در الگوریتم از پرش های شرطی در حلقه درونی الگوریتم باید اجتناب شود . هر تغییر غیر قابل پیش بینی در جریان کنترل الگوریتم به طور طبیعی موجب اختلال در عملکرد مقاوم پردازش و در نتیجه افزایش تعداد سیکل های ساعت مورد نیاز ، خواهد شد . بنابراین به طور مشخص هر عملگر و یا دستور همانند if ، then و یا else در زبان C و یا اسمبلی موجب پرش در جریان اجرا خواهد شد . پرش ها همچنین آسیب پذیری رمز را در برابر حمله های زمانی که در آورده شده ، افزایش می دهد .

3-4-2- از عملگرهائی که طبیعتاً ساختارهای سنگینی دارند استفاده نشود . در این دسته بندی می توان عملگرهای ضرب و تقسیم و سایر عملگرهائی را که بر روی پردازنده ها به سختی اجرا می شوند، قرار دارند . به طور مثال یک عملگر چرخش/انتقال متغیر ، ( که مقدار چرخش و یا انتقال در مرحله اول مشخص نمی باشد ) بر روی پردازنده پنتیوم نیاز به 4 سیکل ساعت برای اجرا خواهد داشت و در عین حال با هیچ عملگر دیگری نمی تواند به طور همزمان اجرا شود بنابراین به صورت چند زیر مجموعه از عملگرهای ساده انجام می شود و زمان مورد نیاز اجرای آن بیشتر از یک عملگر ساده تنها خواهد بود .

3-4-3- در طرح الگوریتم باید تا حد ممکن تعداد متغیرهای مورد نیاز را محدود نمود . بسیاری از پردازنده های مدرن شامل تعداد زیادی ثبات چندمنظوره می باشند . اما در برخی این تعداد ثبات چند منظوره بسیار کم می باشد . به طور مثال در پنتیوم تنها هفت ثبات چندمنظوره وجود دارد و در صورتیکه در حلقه درونی الگوریتم تعداد زیادی متغیر بکار رود تمامی آنها در ثبات ها قرار نمی گیرند و به علت نیاز به دسترسی به حافظه ، اجرا سنگین تر خواهد شد .

3-4-4- اندازه جداول بکار رفته تا حد ممکن باید کوچک باشد . هرچند که جداول بزرگتر از نظر رمزنگاری مناسبتر می باشند اما انواع کوچکتر آنها برای اجرای سریعتر نرم افزاری مطلوب تر هستند . با توجه به پردازنده های کنونی جداول باید به گونه ای در نظر گرفته شوند که بیش از چهار کیلو بایت برای ذخیره سازی نیاز نداشته باشند .

3-4-5- در طرح عملگرهای بکار رفته باید تا حد ممکن از الگو های موازی بسیار استفاده شود . ایده عمومی بکارگیری عملگرهای مستقل از یکدیگر و اجرای همزمان و موازی با هم این عملگرها می باشد . این الگو می تواند تا حد بسیار زیادی در افزایش سرعت اجرا مؤثر باشد .

نکاتی که بیان شد بسیار ساده می باشند اما با بهره گیری از آنها می توان تا حد بسیار زیادی پیاده سازی مؤثر و سرعت اجرای بالای نرم افزاری را برای الگوریتم ایجاد نمود .

4- مدیریت کلید

یک سیستم مخابراتی امن شامل اجزا و قسمت هائی همچون الگوریتم رمزنگاری ، پروتکل های قراردادی و … می باشد . با فرض اینکه تمامی این اجزاء قابلیت اطمینان لازم و کافی را داشته باشند ، هنوز یک مسئله باقی است و آن کلید های بکاررفته در مبادلات صورت گرفته است .

با توجه به اینکه در صورت غیرقابل شکست بودن الگوریتم های رمزنگاری و پروتکل های مورد استفاده ، بکارگیری کلیدهای ضعیف و یا استفاده نامناسب از کلیدهای مورد نیاز می تواند نقاط ضعف بسیاری را برای تحلیل امنیت باقی بگذارد .

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

مواردی که در یک پروسه مدیریت کلید باید در نظر گرفته شود فسمت های مختلفی را شامل می شود که هر کدام می توانند معیارهائی برای اجرای یک روند مناسب در اختیار بگذارند .

4-1 تولید کلیدها

الگوریتم تولید کلید می بایست شرایط مناسبی را برقرار نماید تا کلیدهای ضعیف تولید نشود .بر همین مبنا روند تولید کلیدها باید به گونه ای باشد که فضای کلید کاهش یافته به وجود نیاید و از تمامی بیت های کلید در نظر گرفته شده استفاده شود . به طور مثال اگر الگوریتمی از یک کلید 56 بیتی استفاده می نماید و برنامه ای برای تولید کلیدها از قالب ASCII استفاده نماید به طور طبیعی بیت مرتبه بالاتر هر بایت صفر در نظر گرفته می شود که موجب کاهش فضای کلید و در نتیجه امکان تحلیل رمز مورد استفاده شاید تا هزاران بار سریعتر می گردد .

همچنین انتخاب کلیدهای ضعیف می تواند منافذی را برای تحلیل امنیت الگوریتم رمز ایجاد نماید . از آنجا که حملات جستجوی فضای کلید در ابتدا کلیدهای ملموس تررا مورد نظر قرار می دهد ، تحلیل گر می تواند لغتنامه ای از کلیدهای معمول در نظر گرفته و به اصطلاح حمله لغتنامه ای انجام دهد .

کلیدهای خوب معمولاً رشته اعداد تصادفی تولید شده توسط یک پروسه اتوماتیک می باشند . تولید این کلیدها باید توسط یک منبع تصادفی قابل اطمینان و یا یک مولد بیت شبه تصادفی امن صورت بگیرد . همچنین کلیدهای ضعیف الگوریتم رمزنگاری مورد استفاده باید تا حدامکان حذف شود و یا مشخص باشند تا در هنگام تولید و انتخاب کلیدها استفاده نگردند .

به عنوان نمونه هائی از الگوریتم های تولید کلید می توان به استاندارد ANSI X9.17 اشاره نمود که روشی برای تولید کلید توسط الگوریتم رمز کلید خصوصی 3 DES ارائه می دهد و می تواند کلیدهای جلسه مناسب و یا اعداد شبه تصادفی تولید نماید .

در صورتیکه EK(X) تابع رمزگذاری با 3 DES بر روی X با کلید K باشد و V0 یک هسته 64 بیتی امن و T مهر زمانی آن باشد ، برای تولید کلید تصادفی Ri به صورت زیر عمل می شود :

Ri=EK(EK(Ti)+Vi)

Vi+1= EK(EK(Ti)+Ri)

که کلیدهای 64 بیتی تولید می نماید و با به هم چسباندن دنباله های 64 بیتی می توان نمونه های بلندتر نیز بدست آورد .

4-2 ارسال و توزیع کلیدها در شبکه های بزرگ

در یک مبادله اطلاعاتی امن مسئله ارسال کلید جلسه یک الگوریتم متقارن مسئله قابل تعمقی است . رمزنگاری با الگوریتم های کلید عمومی این مشکل را می توانند حل نمایند . هر چند که ممکن است تکنیک های مناسب را در شرایط گسترده در اختیار نگذارند

از آنجائیکه معمولاً کانال های امن مخابراتی به سادگی قابل حصول نیستند روش های مختلفی برای ارسال کلید سری یک مبادله متقارن در نظر گرفته شده است . استاندارد X 9.17 دو نوع کلید به صورت کلیدهای رمزگذاری کلید که برای رمز نمودن سایر کلیدها برای توزیع بکار می روند و کلیدهای داده که برای رمز نمودن ترافیک پیام ها بکار می روند.

برای خرید کتاب سیستم های مخابراتی اینجا کلیک کنید.

نظر دهید

پاسخ دهید

 آزمون تاپ
Logo
مقایسه موارد
  • کل (0)
مقایسه
0

مشاوره رایگان

آزمون کارشناسی رسمی نزدیکه!
برای مشاوره رایگان و عضویت در بزرگترین گروه کارشناسی رسمی فرم زیر را پر کنید.