رمزنگاری و
امنیت تبادل داده
علیرضا احمدی.
کارشناس ارشد مخابرات-رمز
داود شنبه زاده کارشناس ارشد مخابرات-رمز
1- مقدمه
رمزنگاری از دیر بازبه عنوان یک ضرورت برای حفاظت
ازاطلاعات خصوصی در مقابل دسترسی - های غیر مجاز درتجارت
و سیاست و مسایل نظامی وجود داشته است به طور مثال تلاش برای ارسال یک پیام سری بین
دو هم پیمان به گونه ای که حتی اگر
توسط دشمن دریافت شود قابل درک نباشد، در رم قدیم نیزدیده
شده است(رمز سزار).در سالیان اخیر رمزنگاری وتحلیل
رمز از یک هنر پا را فراترگذاشته ویک علم مستقل شده است و در واقع به عنوان یک وسیله
عملی برای ارسال اطلاعات محرمانه روی کانا ل های غیر امن همانند
تلفن ، ماکرویو و ماهواره ها شناخته می شود.
پیشرفت علم رمز نگاری
موجب به وجود آمدن روشهای تحلیل مختلفی شده است به گونه ای که به طور متناوب سیستم
های رمز مختلف
شکسته شده اند . معروف ترین
نمونه این نوع سیستمها ماشین «انیگما » بوده است . انیگما
ماشین رمز گذار و کد گذار وکد کننده ای بوده است که حزب نازی در
زمان جنگ جهانی دوم برای ارسال پیام ها یشان از طریق
رادیو به سایر نقاط استفاده می کردند .
رمزنگاری که به طور
عمده به دو بخش رمزنگاری متقارن یا رمزنگاری با کلید خصوصی و رمزنگاری نامتقارن یا
رمزنگاری با کلید عمومی صورت می گیرد، تلاش می کند برای
ایجاد یک ارتباط سری
از طریق سیستمهای مخابراتی و شبکه های کامپیوتری مباحث
مربوط به محرمانگی و احراز هویت، را تحت فرضهای مشخص به درستی اثبات نماید .
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 iI[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=SES¢ باشد
در اینصورت آزمون جامع فضای کلید را می توان فقط در فضای
S اعمال نمود .
v حمله از طریق ویژگی بسته بودن : برای هر رمز قطعه
ای به طول n و
کلیدی به طول m هر
کلید یک تابع جابجائی از بردارهای باینری به طول n را مشخص می نماید . اگر G مجموعه تمام این 2 m جابجائی را
نشان بدهد و داشته باشیم
H={ Ti*Tj : Ti
|Tj IG }و * نماد ترکیب نگاشت ها باشد ، آنگاه 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 دو نوع کلید
به صورت کلیدهای رمزگذاری کلید که برای رمز نمودن سایر کلیدها برای توزیع بکار می
روند و کلیدهای داده که برای رمز نمودن ترافیک پیام ها بکار می روند در نظر گرفته
است که کلید های رمزگذاری کلید معمولاً به صورت تعریفی و یا قراردادی توزیع می
شوند .
روش دیگر می تواند
تقسیم کلیدهای ارتباطی به بخش های مختلف و ارسال هر یک از طریق یک کانال باشد که
لزوماً ممکن است روشی مؤثر و قابل بکارگیری نباشد . بنابراین شاید بهترین روش ها
برای تبادل کلیدهای جلسه استفاده از الگوریتم های تبادل کلید بر مبنای روش های
کلید عمومی و یا حتی الگوریتم های کلید خصوصی باشد .اما توزیع کلید در شبکه های
بزرگ به لحاظ تبادل های بسیار کلید میان کاربران مشکلاتی را به همراه دارد . به
طور مثال در یک شبکه با 6 کاربر تعداد 15 تبادل کلید مورد نیاز می باشد .بنابراین
در شبکه های گسترده ایجاد و استفاده از یک مرکز خدمات کلید امن و یا سازماندهی
ساختار های کلید عمومی (PKI) می تواند
بسیار مؤثر باشد .
4-3 تصدیق کلیدها
در تمامی تبادل های
کلید در مبادلات امن می بایست کلید های ارسال شده مورد بررسی و تصدیق قرار گیرند .
به طور مثال اگر کلید جلسه ارتباطی توسط کلید رمزگذاری کلید رمزشده باشد گیرنده
میتواند به این واقعیت اعتماد نماید که کلید رمزگذاری کلید جلسه تنها در اختیار
فرستنده می باشد .
یک روش مطمئن برای
تصدیق و احراز اصالت کلیدها می تواند استفاده از پروتکل های امضاء دیجیتال برای
امضاء کلیدها باشد و یا استفاده از مرکز توزیع و خدمات کلید امن برای انتقال
امضاء کلیدهای عمومی بکارگرفته شده باشد که در اینصورت باید اطمینان کافی به این
مرکز وجود داشته باشد .
در این میان ممکن است
خطاهائی در ارسال کلید به وجود آید و از آنجائیکه کلیدها ممکن است برای رمزگشائی
چندین مگابایت از متون رمزشده بکاررود لذا لزوم بررسی و تصحیح خطاها وجود دارد که
لزوماً این خطاها باید آشکارسازی شوند .یکی از پرکاربردترین روش های بکاررفته برای
این کار رمزنمودن یک مقدار ثابت با کلید دریافت شده و ارسال 2 تا 4 بایت متون
رمزشده با کلید می باشد در سمت دیگر نیز همین عمل انجام می شود و سپس با انطباق
مقادیر رمز شده مشخص می شود که کلید صحیح ارسال شده و یا نیاز به تصحیح و ارسال
دوباره دارد .
4-4 - طول
عمر کلیدها
هیچ یک از کلیدهای
رمزنگاری برای مدت نامعینی بکار گرفته نمی شوند . برای هر کاربرد رمزنگاری می
بایست یک سیاست امنیتی بر مبنای مدل های امنیتی تعریف شده در سیستم در نظر گرفته
شود گه در آن طول عمر کلیدها نیز مشخص شده باشد . کلیدهای متفاوت طول عمرهای
متفاوت دارند . در سیستم هائی که بر روی کانال های مخابراتی خاص و حساس عمل می
نمایند ، کلیدها بسته به ارزش و مقدار داده های اصلی و مقادیر رمز شده و اعتبار
آنها در طول مدت تعیین شده باید نسبتاً طول عمرهائی کوتاه داشته باشند . برای
سیستم هائی که در هر ثانیه چندین گیگا بایت اطلاعات را مبادله می نمایند نیز نسبت
به خطوط کم ترافیک تر تغییر کلیدها بیشتر صورت می گیرد . کلیدهای رمزگذاری کلید
معمولاً به طور متناوب تغییر نمی کنند . این کلیدها به منظور تبادل کلید به کار می
روند کلیدهای خصوصی رمزهای کلید عمومی نیز طول عمرهای متفاوتی وابسته به
کاربردهایشان دارند .
از جمله موارد دیگری
که در مدیریت کلید باید مورد نظر قرار گیرد مسائل مربوط به انهدام کلیدهای مصرف
شده ، ذخیره نمودن و Backup گرفتن
از آنها می باشد که در طرح یک سیستم جامع باید مد نظر باشد .
5- مدیریت کلید توسط
روشهای کلید عمومی
الگوریتم های کلید
عمومی می توانند مدیریت کلید را بسیار ساده تر نمایند هر چند که مشکلات مربوط به
خود را دارند . در واقع زمانی که کار برها در یک شبکه گسترده زیاد می شوند بدست
آوردن کلید عمومی طرف مورد نظر مبادله می تواند مشکلاتی را به همراه داشته باشد .
فرستنده برای ارسال پیام را از وی و یا یک بانک اطلاعاتی شامل کلید عمومی کاربران
دریافت نماید که این عمل امکان اجرای حملات شخص در میانه( Man in the middle attack ) و
جایگزینی کلید نفوذگرها توسط آنها با کلید عمومی گیرنده را به وجود می آورد .
گواهی های عمومی در
واقع کلید عمومی کاربری است که توسط یک مرکز قابل اطمینان امضاء می شود و امکان
جایگزینی کلیدها را برطرف می نماید . گواهی ها معمولاً در برگیرنده اطلاعات شخصی
دارنده کلید می باشند و نقش مهمی را در تعدادی از پروتکل های کلید عمومی همانند PEM و X509 دارند . سازماندهی ساختارهای مطمئن کلید
عمومی می تواند تمامی جزئیات وجود را در بر بگیرد . برقراری ساختارهای کلید عمومی PKI از جمله روش هائی است که می تواند امنیت و
در عین حال مدیریت کلید را در شبکه های کامپیوتری تضمین نماید . این ساختارها را
می توان به صورت مجموعه سخت افزارها ، نرم افزارها ، کاربران ، سیاست ها و رویه
هائی که برای ایجاد مدیریت ، ذخیره ، توزیع و انهدام گواهی های مبتنی بر رمزنگاری
با کلید عمومی مورد نیاز می باضشد ، تعریف نمود . در سازماندهی ساختار های کلید
عمومی دو عمل اصلی تولید گواهی (Certification) و
تعیین اعتبار (Validation) مورد
نیاز می باشند تا خصوصیاتی نظیر محرمانگی ، تمامیت ، احراز هویت ، عدم انکار و
کنترل مدون را برآورده سازند .
6- الگوریتم های
تبادل کلید
تبادل و یا توزیع
کلیدهای جلسه رمزنگاری میان دو طرف مبادله به طور معمول از روش های کلید عمومی
انجام می شود . معروف ترین پروتکل تبادل کلید ، الگوریتم دیفی – هلمن می باشد که بر مبنای روش های کلید
عمومی و با تکیه بر دشواری محاسبه لگاریتم گسسته در یک میدان متناهی صورت می گیرد
. اما این روش در برابر حملات شخص در میانه ضعیف می باشد که برای برطرف نمودن چنین
منافذی پروتکل های ایستگاه به ایستگاه (
Station to Station) ارائه شده که در آن دو طرف مبادله اطلاعات
مورد تبادل را امضاء نموده و از یک مرکر بیرونی امن و مطمئن نیز برای گرفتن گواهی
اعتماد استفاده می نمایند .
شاید روش های کلید
عمومی بهترین گزینه برای الگوریتم های تبادل کلید و اجرای مدیریت کلید باشند . اما
در طرح هائی که مبنای رمزگذاری اطلاعات در آن استفاده از رمزهای کلید خصوصی می
باشد می توان با استفاده مؤثر و امن از الگوریتم های کلید خصوصی نیاز به طراحی ،
بررسی و تحلیل رمزهای کلید عمومی و در عین حال خطر بکارگیری آنها را که هرگز قادر
نیستند امنیتی بدون قید و شرط را برقرار نمایند ، از میان برداشت .در واقع در
صورتیکه از امنیت وقابلیت یک الگوریتم رمز کلید خصوصی و متقارن اطمینان حاصل شده
باشد و تمامی منافذ تحلیل آن بررسی و پوشانده شده باشد ، می توان به جای بکارگیری
یک رمزکلید عمومی و درگیری با مسائل تحلیلی آن از همان رمز متقارن برای مدیریت
کلید استفاده نمود .
به عنوان نمونه
پروتکل هائی موجود می باشند که در آنها نیاز به تبادل کلیدهای سری و یا کلیدهای
عمومی نمی باشد و در عملکرد آنها از رمز متقارنی استفاده می شود که خصلت جابجائی
پذیری دارد . پروتکل زیر نحوه ارسال پیام M را توسط فرستنده ای با کلید A به گیرنده ای با کلید سری B نشان می دهد .
1- فرستنده M را با کلید خود رمز نموده و به گیرنده می دهد .
C1=EA(M)
2- گیرنده C1 را با کلید خود رمزنموده و به فرستنده ارسال می نماید .C2=EB(EA(M))
3- فرستنده C2 را با کلید خود رمزگشائی می نماید و به طرف دوم می دهد .
C3=DA(EB(EA(M)))=DA( EA(EB(M)) )=EB(M)
4-گیرنده
C3 را رمزگشائی نموده و M را بازیابی می نماید .
به
غیر از پروتکل بیان شده روش های دیگری نیز وجود دارد که در آن از رمزهای متقارن
برای تبادل پیام و کلید و با استفاده از کلیدهای خصوصی و عمومی استفاده می شود .
نمونه
زیر برای ایجاد امنیت و احراز هویت در شبکه های کامپیوتری طرح شده و در آن یک کلید
سری مشترک برای رمز نمودن یک کلید عمومی استفاده می شود . در واقع دو طرف مبادله
در یک کلمه عبور مشترک نظیر P توافق
می نمایند.
1-فرستنده
یک کلید تصادفی همانند K را
تولید نموده و آن را توسط یک الگوریتم متقارن و P به عنوان کلید خصوصی رمز نموده و EP(K) را به
گیرنده می فرستد .
2-گیرنده
P را می داند . بنابراین پیام را برای حصول K رمزگشائی می نماید و سپس یک کلید جلسه
تصادفی نظیر K را
تولید نموده و آنرا توسط کلیدی که از رمزگشائی بدست آورده رمز می نماید و مقدار EP(EK(K)) را به
فرستنده ارسال می نماید .
3-فرستنده
می تواند پیام را رمزگشائی نموده و K را
بدست بیاورد .
بنابراین
دو طرف کلیدهای خصوصی طرف دیگر را در اختیار دارند و می توانند توسط آن ارتباطی
امن را برقرار نمایند .
منابع:
Handbook
of Applied Cryptography| by A. Menezes| P. Van Oorschot| and S. Vanstone| CRC
Press| 1996.
بهبود پورتال
پورتال
پرتال
پرتال سازمانی
پورتال سازمانی
پورتال شرکتی
سامانه سازمانی
سامانه شرکتی
پرتال شرکتی
وب سایت شرکتی
وب سایت سازمانی
مدیریت آسان
مدیریت محتوا
مدیریت محتوا بدون دانش فنی
پنل ویژه همکاران
نظرسنجی آنلاین
فیش حقوقی
آپلود فیش حقوقی
مدیریت بیمه
مدیریت خدمات بیمه
خدمات بیمه
بیمه تکمیلی
آموزش
پیشنهادات
انتقادات
مدیریت جلسات
فرم ساز
مدیریت منو
مدیریت محتوا
مدیریت سئو
پنل مدیریتی چند کاربره
ریسپانسیو
گرافیک ریسپانسیو